这里讲的是基于springboot和springboot alibaba的微服务,Spring Boot和Spring Boot Alibaba都是基于Spring框架的开源框架,用于简化应用程序的开发和部署。 这篇文章里会介绍微服务的整体概念,目前国内常用的组件,以及国内使用非常广泛的Snowy框架。 首先说一下微服务的概念,相信很多小伙伴已经对单体架构和SOA架构有所了解,当然如果没有了解过也不用着急,这里大致讲一下: 单体架构:将系统所有功能,包括前端界面、后端服务全部在同一个工程上开发,最终将所有模块、所有功能打包在一起放在一个进程上运行。 SOA架构:粗颗粒度的、松耦合的、面向服务的架构,在架构中使用一个标准 的通信协议,通过网络提供应用程序的业务功能服务,且所有服务都是完全独立部署和维护的,并且可以组合使用。 SpringCloud是目前国内使用最广泛的微服务框架。官网地址:https://spring.io/projects/spring-cloud SpringCloud集成了各种微服务功能组件,并基于SpringBoot实现了这些组件的自动装配,从而提供了良好的开箱即用体验。 所以刚入手SpringCloud的家人们可以简单理解成一个SpringCloud项目是把一个整体的SpringBoot项目拆成很多小的SpringBoot项目并且集成上优秀组件。 本文中会介绍feign,ribbon,nacos,gateway,rabbitMQ,redis,Sentinel,Seata,以及docker部署工具。 下面这个是一个典型的微服务架构,整个项目拆分成四个模块。
看到上面的图,有些小伙伴就会想到一个问题,不同的微服务会部署到不同的服务器上,这样就会涉及到一个远程调用的问题,那么这里就开始介绍SpringCloud的第一个组件——feign。 Feign是一个声明式的http客户端,官方地址:https://github.com/OpenFeign/feign
这里我们先看一下官方文档: 这段话总结一下就是Feign是以添加注释的形式使用的。 Feign的具体使用方法如下:
在启动类上加上 @EnableFeignClients 注解
要是有用过RestTemplate的小伙伴就会发现Feign要整洁很多,可读性也更高。 Feign还可以支持很多的自定义配置,如下表所示:
一般情况下,默认值就能满足我们使用,如果要自定义时,只需要创建自定义的@Bean覆盖默认Bean即可。 基于配置文件修改feign的日志级别可以针对单个服务:
也可以针对所有服务:
基于Java代码来修改日志级别:先声明一个类,然后声明一个Logger.Level的对象:
如果要全局生效,将其放到启动类的@EnableFeignClients这个注解中:
如果是局部生效,则把它放到对应的@FeignClient这个注解中:
我们在使用中还会遇到Feign性能优化的问题,这里主要使用的就是用连接池替换Feign默认的URLConnection。 |
原文地址:https://blog.csdn.net/qq_39321234/article/details/131694855
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:https://www.msipo.com/article-1035.html 如若内容造成侵权/违法违规/事实不符,请联系MSIPO邮箱:3448751423@qq.com进行投诉反馈,一经查实,立即删除!
Copyright © 2023, msipo.com