依赖问题
== 引入依赖的时候有一个坑,sprint-boot-starter-web这个依赖是不能够引入的,引入的话getway就启动不了==
核心概念
路由:引导请求正确进入微服务
断言:id属性-当前路由的唯一标志,满足断言
过滤器:
动态路由
uri: lb://服务名
uri: lb://order #路由的目标地址 匹配所有order下面服务 eureka上面去找 负载均衡
过滤器
1、GateWayFilter :单个路由器
2、GlobalFilter: 所有的路由器
pre 前置处理
post后置处理
//exchange封装了request response,chain放过
Mono
filters:
- StringPrefix=1 去掉地址的一个字符串
自定义过滤器,完成限流
微服务监控--日志
1、动态展示服务的链路
2、分析服务链的瓶颈,对其调优
3、快速进行服务链路的故障发现
分布式链路追踪(全链路追踪)springcloud sleuth +twiter ZipKin(储存展示)+ES
ELK,全链路追踪
日志记录:
trance:踪迹 gateway+order+prooduct
tranceId:唯一id,每次调用全链路
spanId:每个组件的id,每个服务可看成一个span
服务端搭建-sleuth
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-logging -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
<version>2.3.4.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-sleuth -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-sleuth</artifactId>
<version>2.2.5.RELEASE</version>
</dependency>
每个微服务都放入 都配置
导入logging
logging:
level:
org.springframework.web.servlet.DispatcherServlet: debug
org.springframework.cloud.sleuth: debug
客户端搭建-Zipkin
服务端:
Zipkin Server Zipkin Client
zipkin-server:exclusion 排除spring-boot-starter-log4j2
zipkin-autoconfigure-ui
@enableZipkinServer
management: #自动检测 ,启动会报错
metrics:
web:
server:
auto-time-requests: false
9411
客户端:(需要追踪的服务)
spring-cloud-starter-zipkin
spring:
zipkin:
base-url: http://localhost:9411
sender:
type: web #http请求方式传递到服务端,或者使用消息队列(以什么方式发送到zipkin)
sleuth:
sampler:
probability: 1 #采样率 百分之百 默认0.1
界面
持久化
database:zipkin
github-zipkin
zipkin-storage
mysql-v1----resouces------sql
mysql驱动
druid
zipkin-autoconfigure-storage-mysql
spring-tx
spring-jdbc
配置
druid数据源
zipkin:
storage:
type: mysql
简单使用理解
gateway 网关对微服务的管理
对服务进行划分管理
使用 ip:端口/微服务名/请求 进行调用