五阶段--config bus + rabbitmq 消息总线配置刷新 //sleuth链路跟踪 + zipkin 收集并提供可视化链路分析

目录

一 config bus + rabbitmq 消息总线配置刷新

1对BUS消息总线使用的解释:

2 BUS消息总线 配置刷新

二  sleuth 链路跟踪

1 sleuth 用于产生链路跟踪日志 ,只添加依赖,零配置

 三 sleuth + zipkin 链路分析

链路数据抽样比例

zipkin 服务

 四 向eureka注册正确的ip地址

1  选择正确网卡

2 注册ip地址,不注册主机名


spring cloud 配置中心连接rabbitmq消息服务器  ,且全程保证虚拟机rabbitmq的启动,因为要使用到它的服务解耦,流量削峰,异步调用等场景 

一 config bus + rabbitmq 消息总线配置刷新

本章节结合  上面的链接继续编辑

1对BUS消息总线使用的解释:

bus

2 BUS消息总线 配置刷新

第一步:依次启动05,09,02,03,04,06服务,查看02,03工程启动日志是否连接到rabbitmq消息服务器

 第二步: 修改2/3/4/9工程,添加依赖: bus,rabbitmq,rabbitmq-binder  

  •  再手动添加binder-rabbitmq依赖 
       <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-stream-binder-rabbit</artifactId>
        </dependency>
       
        

第三步:配置rabbitmq连接

  • 09工程---修改application.yml文件
rabbitmq:    #rabbitmq 消息服务连接
    host: 192.168.64.140   #wht6.cn
    port: 5672
    username: admin
    password: admin
    #virtual-host: vh-qt  使用老师的服务器需要在rabbitmq手动创建空间

 此处,使用自己的服务器,不需要创建空间

  • 2,3,4---修改config目录的三个文件都添加连接rabbitmq的配置,提交推送到远程仓库
rabbitmq:    #rabbitmq 消息服务连接
    host: 192.168.64.140   #wht6.cn
    port: 5672
    username: admin
    password: admin
    #virtual-host: vh-qt  使用老师的服务器需要在rabbitmq手动创建空间

第四步:09项目修改,暴露bus-refresh 刷新端点和路径:  

  • 添加actuator依赖:
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
  • 09配置文件配置bus-refresh:
m.e.w.e.i=bus-refresh

 第五步:重启09,等待09完全启动,再重启02,03工程,最后重启04工程,查看刷新端点

  • postman 向 bus-refresh 刷新端点发送 post 请求

  • 刷新指定的微服务

 第六步:03工程添加刷新数据的注解,然后重启

 

 第七步:访问7,8,9,三个用户信息,在此想添加新的用户99

 第八步:config目录下user-service-dev.yml添加99用户,推送到远程仓库

  • 查看rabbitmq服务,Exchanges栏BUS绑定状态

二  sleuth 链路跟踪

随着系统规模越来越大,微服务之间调用关系变得错综复杂,一条调用链路中可能调用多个微服务,任何一个微服务不可用都可能造整个调用过程失败.

spring cloud sleuth 可以跟踪调用链路,分析链路中每个节点的执行情况.

是一个监控工具,能查看服务进度.

使用工具:sleuth + zipkin.

1 sleuth 用于产生链路跟踪日志 ,只添加依赖,零配置

第一步:修改2,3,4,6 添加sleuth依赖  

 第二步:按2,3,4,6顺序重启这几个服务,其他服务保持打开状态,如果都是关闭状态,按照5,9,2,3,4,6顺序启动服务

第三步:访问订单服务,在06工程控制查看链路日志

 

 三 sleuth + zipkin 链路分析

zipkin 可以收集链路跟踪数据,提供可视化的链路分析  ,解耦,削峰

链路数据抽样比例

默认 10% 的链路数据会被发送到 zipkin 服务。可以配置修改抽样比例

spring:
  sleuth:
    sampler:
      probability: 0.1

zipkin 服务

下载 zipkin 服务器

下载zipkin

 需求:2,3,4,6产生的链路日志,要发送到zipkin进行处理

第一步:在2,3,4,6工程 pom文件中分别都添加依赖:zipkin client  

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-zipkin</artifactId>
        </dependency>

第二步:在6中添加rabbitmq配置

  • rabbitmq依赖,2,3,4都已经加过,再在6中加rabbitmq依赖即可

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-amqp</artifactId>
        </dependency>
  • rabbitmq连接配置添加到06工程的配置文件中
  rabbitmq: #rabbitmq 消息服务连接  ,位置在spring下
    host: 192.168.64.140   #wht6.cn
    port: 5672
    username: admin
    password: admin
    #virtual-host: vh-qt  使用老师的服务器需要在rabbitmq手动创建空间

第三步:修改yml配置,日志发送方式: rabbit

  • 06修改 application.yml 添加zipkin配置连接rabbitmq
 zipkin:  #连接rabbitmq服务
    sender:
      type: rabbit
  • 2,3,4修改 config文件夹的三个文件,也添加zipkin连接rabbitmq的配置然后提交推送到远程仓库
 zipkin:  #连接rabbitmq服务
    sender:
      type: rabbit

第四步:启动zipkin的jar文件,连接rabbitmq消息服务

  • zipkin.jar文件目录栏下cmd进入dos窗口,输入下面命令,注意版本和ip端口号
java -jar zipkin-server-2.23.4-exec.jar  --zipkin.collector.rabbitmq.uri=amqp://admin:admin@192.168.64.140:5672     

第五步:访问,查看是否能访问zipkin服务

 第六步:依次重启2,3,4,6服务

访问服务,调用其他服务,产生链路日志,rabbitmq接收,再发送给zipkin,刷新访问多次,链路跟踪数据中,默认只有 10% 会被收集到zipkin

可以在zipkin服务查看调用日志

 四 向eureka注册正确的ip地址

以上两个并不是IP地址,只是本地的主机名或本地ip,不算是正确的网卡,给其他人无法使用!

 

 eureka客户端向eureka注册时, 会自动选择网卡, 并可能注册主机名而不是ip地址.

下面配置可以选择正确网卡的ip向eureka进行注册. 以09工程的注册IP地址为例执行下面1和2两步骤

1  选择正确网卡

服务器有多块网卡,要选择正确网卡的ip地址向eureka进行注册

第一步:bootstrap.yml添加配置

spring:
  cloud:
    inetutils:
      ignored-interfaces: # 忽略的网卡
        - VM.*            #忽略所有VM开头的网卡, .点代表任意字符,*星号代表多个
      preferred-networks: # 要是用的网卡的网段
        - 192\.168\.0\..+ 

第二步:修改09工程bootstrap.yml,如果没有就创建一个bootstrap.yml

spring:
  cloud:
    inetutils:
      ignored-interfaces:
        - VM.*
      preferred-networks:
       # - 192\.168\.9\..+
        - 176\.8\.6\..+

2 注册ip地址,不注册主机名

注册时,有可能自动选择主机名进行注册,而不使用ip地址. 主机名在局域网内有可能不会被正确的解析,最好使用ip地址进行注册,而不注册主机名

  • 修改application.yml   ,使用ip注册
eureka: 
  instance:
    prefer-ip-address: true  #使用ip注册
  • 重启09工程

 

  •  再在09 工程的application.yml文件中添加配置,界面列表中显示的格式也显示ip
eureka:
  instance:
    prefer-ip-address: true # 使用ip进行注册
    instance-id: ${spring.cloud.client.ip-address}:${spring.application.name}:${server.port} # 界面列表中显示的格式也显示ip

再次重启09工程,查看eureka服务中config-server的注册名是不是改为了ip地址

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值