SpringCloud中Sleuth+zipkin链路跟踪、订单的流量削峰的配置

文章目录

  • Sleuth+zipkin链路跟踪
        • Sleuth用来产生链路跟踪日志
        • 添加Sleuth
        • zipkin的连接方式
        • 2.,3,4,6的链路跟踪日志,发送到rabbitmq,再向zipkin中转发送
      • Eureka客户端注册正确的地址
  • 订单的流量削峰
      • 导入项目
      • 导入数据库
      • 启动项目
      • 订单发送到rabbitmq
        • 订单的消费者配置

Sleuth+zipkin链路跟踪

Sleuth用来产生链路跟踪日志

SpringCloud中Sleuth+zipkin链路跟踪、订单的流量削峰的配置_第1张图片

添加Sleuth

  1. 修改2,3,4,6的pom文件,添加sleuth依赖
  2. sleuth自动配置

zipkin的连接方式

SpringCloud中Sleuth+zipkin链路跟踪、订单的流量削峰的配置_第2张图片

2.,3,4,6的链路跟踪日志,发送到rabbitmq,再向zipkin中转发送

  1. 在2.,3,4,6添加依赖:zipkin client
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
  1. 在06添加rabbitmq的依赖和连接配置
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
  1. 修改06的application.yml:
  zipkin:
    sender:
      type: rabbit
      日志方式方式:rabbit
  1. 修改2,3,4的yml,添加发送方式,提交推送到远程仓库

Eureka客户端注册正确的地址

  1. 选择正确的网卡
    在bootstrap.yml里修改:
#选择注册的网卡
#必须在应用启动之前,在引导配置阶段完成
spring:
  cloud:
    inetutils:
      preferred-networks:
        #- 自己的物理网络ip网段
        - 172\.233\.5\..+   #. +是任意字符1个或多个
  1. 注册IP地址,而不是主机名

订单的流量削峰

导入项目

  1. 解压对应的文件
  2. 打开rabbitmq工程
  3. 修改pom.xml中springboot版本
  4. 右击点击add maven project加入maven工程

导入数据库

  1. 用sqlyog,右击点数据库连接,找到对应的sql语句进行导入
  2. 成功后,进行刷新即可
  3. 如果失败,在sqlyog执行以下语句:
set   global  max_allowed_packet=1000000000;
set   global  net_buffer_length=100000;
set   GLOBAL  interactive_timeout=28800000;
set   GLOBAL  wait_timeout=28800000

删除测试用户
delete from pd_user
删除订单数据
delete from pd_order
delete from pd_order_item

启动项目

  1. 右击启动类,运行
  2. 在启动配置中,配置working directory,设置pd-web文件夹的路径
  3. 重启
  4. 访问http://localhost
    如果看到浏览器下载,可以清一下浏览器缓存

订单发送到rabbitmq

  1. 添加rabbitmq依赖

    org.springframework.boot spring-boot-starter-amqp
  2. yml配置rabbitmq连接

spring:
  rabbitmq:
    host: 192.168.64.140
    port: 5672
    username: admin
    password: admin
    virtual-host: hrj
  1. 在启动类(或者自定义自动配置类)中,配置队列的参数“orderQueue ,true(持久),false(独占),false(自动删除)”
//创建对象,封装队里的参数,配置使用的队列
//orderQueue,持久,非独占,不自动删除,自动配置
@Bean
public Queue orderQueue(){
	return new Queue("orderQueue",true,false,true);
}
  1. 修改OrderServiceImpl.saveOrder(),使用AmqpTemplate封装工具发送订单

订单的消费者配置

  1. rabbitmq的依赖、连接配置、使用队列配置
  2. 新建消费者类:OrderConsumer
  3. 通过注解配置,从orderQueue接收订单
  4. 调用OrderServiceImpl.saveOrder()存储订单
  5. 调整OrderServiceImpl

你可能感兴趣的:(Spring,Cloud,rabbitmq,java,spring,boot)