文章目录
Sleuth+zipkin链路跟踪
Sleuth用来产生链路跟踪日志
添加Sleuth
- 修改2,3,4,6的pom文件,添加sleuth依赖
- sleuth自动配置
zipkin的连接方式
2.,3,4,6的链路跟踪日志,发送到rabbitmq,再向zipkin中转发送
- 在2.,3,4,6添加依赖:zipkin client
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
- 在06添加rabbitmq的依赖和连接配置
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
- 修改06的application.yml:
zipkin:
sender:
type: rabbit
日志方式方式:rabbit
- 修改2,3,4的yml,添加发送方式,提交推送到远程仓库
Eureka客户端注册正确的地址
- 选择正确的网卡
在bootstrap.yml里修改:
#选择注册的网卡
#必须在应用启动之前,在引导配置阶段完成
spring:
cloud:
inetutils:
preferred-networks:
#- 自己的物理网络ip网段
- 172\.233\.5\..+ #. +是任意字符1个或多个
- 注册IP地址,而不是主机名
订单的流量削峰
导入项目
- 解压对应的文件
- 打开rabbitmq工程
- 修改pom.xml中springboot版本
- 右击点击add maven project加入maven工程
导入数据库
- 用sqlyog,右击点数据库连接,找到对应的sql语句进行导入
- 成功后,进行刷新即可
- 如果失败,在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
启动项目
- 右击启动类,运行
- 在启动配置中,配置working directory,设置pd-web文件夹的路径
- 重启
- 访问http://localhost
如果看到浏览器下载,可以清一下浏览器缓存
订单发送到rabbitmq
-
添加rabbitmq依赖
org.springframework.boot spring-boot-starter-amqp -
yml配置rabbitmq连接
spring:
rabbitmq:
host: 192.168.64.140
port: 5672
username: admin
password: admin
virtual-host: hrj
- 在启动类(或者自定义自动配置类)中,配置队列的参数“orderQueue ,true(持久),false(独占),false(自动删除)”
//创建对象,封装队里的参数,配置使用的队列
//orderQueue,持久,非独占,不自动删除,自动配置
@Bean
public Queue orderQueue(){
return new Queue("orderQueue",true,false,true);
}
- 修改OrderServiceImpl.saveOrder(),使用AmqpTemplate封装工具发送订单
订单的消费者配置
- rabbitmq的依赖、连接配置、使用队列配置
- 新建消费者类:OrderConsumer
- 通过注解配置,从orderQueue接收订单
- 调用OrderServiceImpl.saveOrder()存储订单
- 调整OrderServiceImpl