首页 > 技术文章 > getaway之基础概念

lnkD 2021-01-21 21:55 原文

依赖问题

 == 引入依赖的时候有一个坑,sprint-boot-starter-web这个依赖是不能够引入的,引入的话getway就启动不了== 

核心概念

路由:引导请求正确进入微服务
断言:id属性-当前路由的唯一标志,满足断言
过滤器:

动态路由

uri: lb://服务名
uri: lb://order #路由的目标地址  匹配所有order下面服务 eureka上面去找 负载均衡

过滤器

1、GateWayFilter :单个路由器
2、GlobalFilter: 所有的路由器

pre 前置处理
post后置处理

//exchange封装了request response,chain放过
Mono filter(ServerWebExchange exchange, GatewayFilterChain chain)

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:端口/微服务名/请求 进行调用

推荐阅读