9、Config 分布式配置中心
9.1、概述
Spring Cloud Config 解决了在分布式场景下多环境配置文件的管理和维护。
好处:
集中管理配置文件
不同环境不同配置,动态化的配置更新
配置信息改变时,不需要重启即可更新配置信息到服务
9.2、快速入门
config server:
1.使用gitee创建远程仓库,上传配置文件
2.搭建 config server 模块
3.导入 config-server 依赖
4.编写配置,设置 gitee 远程仓库地址
5.测试访问远程配置文件
config client:
1.导入 starter-config 依赖
2.配置config server 地址,读取配置文件名称等信息
3.获取配置值
4.启动测试
客户端刷新
1.在 config 客户端引入 actuator 依赖
2.获取配置信息类上,添加 @RefreshScope 注解
3.添加配置
management.endpoints.web.exposure.include: refresh
4.使用curl工具发送post请求
curl -X POST http://localhost:8001/actuator/refresh
Config集成Eureka
config-client配置:
spring:
cloud:
config:
discovery:
enabled: true
service-id: config-server
config-server配置:
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka/
10、Bus 消息总线
1.分别在 config-server 和 config-client中引入 bus依赖:bus-amqp
2.分别在 config-server 和 config-client中配置 RabbitMQ
3.在config-server中设置暴露监控断点:bus-refresh
4.启动测试
10.1、RabbitMQ Windows 安装
10.1.1 安装Erlang
双击资料中提供的 otp_win64_22.1.exe ,选择对应安装目录,一路下一步,完成安装。
设置Erlang环境变量
(1)新建ERLANG_HOME
(2)修改环境变量path,增加Erlang变量至path,%ERLANG_HOME%\bin;
(3)打开cmd命令框,输入erl,如果能看到版本号,则Erlang安装完成。
10.1.2 安装RabbitMQ
双击资料中提供的 rabbitmq-server-3.7.7.exe ,选择对应安装目录,一路下一步,完成安装。
设置环境变量
(1) 新建RABBITMQ_HOME
(2)修改环境变量path,增加rabbitmq变量至path,%RABBITMQ_HOME%\sbin
查看信息。打开cmd命令框,切换至D:\Program Files\rabbitmq_server-3.7.7\sbin目录下,输入rabbitmqctl status
安装插件,命令:rabbitmq-plugins.bat enable rabbitmq_management。出现下面信息表示插件安装成功。
10.1.3 启动RabbitMQ
启动RabbitMQ:rabbitmq-server -detached 后台启动
停止RabbitMQ:rabbitmqctl stop
rabbitmq启动成功,浏览器中http://localhost:15672,默认用户名和密码 都是 guest
至此,rabbitMQ安装部署完成。
11、Stream 消息驱动
11.1、概述
Spring Cloud Stream 是一个构建消息驱动微服务应用的框架。
Stream 解决了开发人员无感知的使用消息中间件的问题,因为Stream对消息中间件的进一步封装,可以做到代码层面对中间件的无感知,甚至于动态的切换中间件,使得微服务开发的高度解耦,服务可以关注更多自己的业务流程。
Spring Cloud Stream目前支持两种消息中间件RabbitMQ和Kafka
11.2、组件
Spring Cloud Stream 构建的应用程序与消息中间件之间是通过绑定器 Binder 相关联的。绑定器对于应用程序而言起到了隔离作用, 它使得不同消息中间件的实现细节对应用程序来说是透明的。
binding 是我们通过配置把应用和spring cloud stream 的 binder 绑定在一起
output:发送消息 Channel,内置 Source接口
input:接收消息 Channel,内置 Sink接口
11.3、Stream 消息生产者
1.创建消息生产者模块,引入依赖 starter-stream-rabbit
2.编写配置,定义 binder,和 bingings
3.定义消息发送业务类。添加 @EnableBinding(Source.class),注入MessageChannel output ,完成消息发送
4.编写启动类,测试
11.4、Stream 消息消费者
1.创建消息消费者模块,引入依赖 starter-stream-rabbit
2.编写配置,定义 binder,和 bingings
3.定义消息接收业务类。添加 @EnableBinding(Sink.class),使用@StreamListener(Sink.INPUT),完成消息接收。
4.编写启动类,测试
12、Sleuth+Zipkin 链路追踪
12.1、概述
Spring Cloud Sleuth 其实是一个工具,它在整个分布式系统中能跟踪一个用户请求的过程,捕获这些跟踪数据,就能构建微服务的整个调用链的视图,这是调试和监控微服务的关键工具。
耗时分析
可视化错误
链路优化
Zipkin 是 Twitter 的一个开源项目,它致力于收集服务的定时数据,以解决微服务架构中的延迟问题,包括数据的收集、存储、查找和展现。
12.2、快速入门
1.安装启动zipkin。 java –jar zipkin.jar
2.访问zipkin web界面。 http://localhost:9411/
3.在服务提供方和消费方分别引入 sleuth 和 zipkin 依赖
4.分别配置服务提供方和消费方。
5.启动,测试