Spring Cloud Alibaba 使用手册
2022-03-09 16:21:24 1 举报
AI智能生成
登录查看完整内容
Spring Cloud Alibaba 使用手册
作者其他创作
大纲/内容
Nacos Server部署
Nacos Server 注册中心安装
添加spring-cloud-starter-alibaba-nacos-discovery依赖
配置
主启动类添加@EnableDiscoveryClient
Nacos Client之服务提供者注册
使用loadBalancerClient和RestTemplate
测试微服务调用
Nacos Client之服务消费者注册
微服务注册与发现Nacos
pom
添加bootstrap.properties
配置中心准备配置
测试微服务是否使用配置中心的配置
测试
Spring Cloud Alibaba整合Nacos Config
支持配置的动态更新
spring.profiles.active=develop
配置中心配置
支持profile粒度的配置
支持自定义 namespace 的配置
支持自定义 Group 的配置
完整配置
通过自定义扩展的 Data Id 配置,既可以解决多个应用间配置共享的问题,又可以支持一个应用有多个配置文件
在多个应用间配置共享的Data Id
支持自定义扩展的 Data Id 配置
配置的优先级
@RefreshScope 动态感知配置
Config相关配置
微服务配置中心Nacos
添加spring-cloud-starter-netflix-ribbon依赖
添加@LoadBalanced注解
调用逻辑
Spring Cloud整合Ribbon
Ribbon负载均衡策略
全局配置:调用其他微服务,一律使用指定的负载均衡算法
修改application.yml
局部配置:调用指定微服务提供的服务时,使用对应的负载均衡算法
修改默认负载均衡策略
实现基于Nacos权重的负载均衡策略
通过实现IRule接口可以自定义负载策略,主要的选择服务逻辑在choose方法中
全局配置
局部配置
配置自定义策略
自定义负载均衡策略
开启饥饿加载,解决第一次调用慢的问题
饥饿加载
Ribbon更多配置
微服务客户端负载均衡器Ribbon
例子
value
entryType
blockHandler / blockHandlerClass
fallback / fallbackClass
defaultFallback(since 1.6.0)
exceptionsToIgnore(since 1.6.0)
示例
@SentinelResource
springboot整合Sentinel
sentinel控制台
限流容错降级组件sentinel
Spring Cloud Netflix Eureka
Spring Cloud Consul
Spring Cloud Zookeeper
Spring Cloud Alibaba Nacos
服务注册与发现
Spring Cloud Netflix Ribbon
Spring Cloud LoadBalancer
客户端负载均衡器
Spring Cloud OpenFeign
Dubbo
RPC调用
服务调用
Spring Cloud Netflix Hystrix
Spring Cloud Alibaba Sentinel
服务限流熔断降级
Spring Cloud Config
配置中心
Spring Cloud Netflix Zuul
Spring Cloud Gateway
服务网关
Spring Cloud Alibaba Seata
分布式事务
Spring Cloud Sleuth+Zipkin
Skywalking
服务链路跟踪
Spring Cloud Security
服务安全
RabbitMQ
Kafka
RocketMQ
Spring Cloud Stream
分布式消息
微服务技术栈
版本选择:Spring Cloud Alibaba 2.2.5.RELEASE
聚合工程父pom
Spring Cloud Alibaba&Spring Boot版本选型
Spring Cloud Alibaba官方文档
微服务架构介绍
注意:nacos-discovery中引入了ribbon,需要移除ribbon的包,如果不移除,也可以在yml中配置不适用ribbon
引入依赖pom
使用@LoadBalanced注解配置RestTemplate
RestTemplate整合LoadBalancer
微服务客户端负载均衡器LoadBalancer
优势
添加spring-cloud-starter-openfeign依赖
value=服务名
编写调用接口+@FeignClient注解
调用端在启动类上添加@EnableFeignClients注解
提示:Feign的继承特性可以让服务的接口定义单独抽出来,作为公共的依赖,以方便使用
发起调用,像调用本地方式一样调用远程服务
Spring Cloud Alibaba整合Feign
局部配置方式1
局部配置方式2
配置一个配置类,定义日志级别
在yml配置文件中执行Client的日志级别才能正常输出日志,格式是:\"logging.level.feign接口包路径=debug\"
日志配置
修改契约配置,支持Feign原生的注解
注意:修改契约配置后,OrderFeignService不再支持springmvc的注解,需要使用Feign原生的注解
OrderFeignService中配置使用Feign原生的注解
也可以通过yml配置契约
契约配置
Feign中我们可以直接配置Basic认证
扩展点:feign.RequestInterceptor
yml中配置
自定义拦截器实现认证逻辑
通过拦截器实现认证
超时时间配置
修改yml配置,将Feign的Apache HttpClient启用
测试,调用会进入feign.httpclient.ApacheHttpClient#execute
配置Apache HttpClient
修改yml配置,将Feign的HttpClient禁用,启用OkHttp
测试,调用会进入feign.httpclient.OkHttpClient#execute
配置OkHttp
客户端组件配置
注意:只有当Feign的Http Client不是okhttp3的时候,压缩才会生效,配置源码再FeignAcceptGzipEncodingAutoConfiguration
GZIP压缩配置
扩展点:Encoder & Decoder
java配置方式
yml配置方式
编码器解码器配置
Spring Cloud Feign的自定义配置及使用
微服务调用组件Feign
application.yml
服务实现类上配置@DubboService暴露服务
provider端
服务消费方通过@DubboReference引入服务
consumer端
Spring Cloud整合Dubbo
修改服务提供者
服务消费端引入依赖
feign接口添加@DubboTransported注解
调用对象添加@DubboTransported注解
从Open Feign迁移到Dubbo
微服务调用组件Dubbo
分布式事务组件Seata
官方文档
gateway的基本构建模块。它由ID、目标URI、断言集合和过滤器集合组成。如果聚合断言结果为真,则匹配到该路由。
Route 路由
这是一个Java 8 Function Predicate。输入类型是 Spring Framework ServerWebExchange。这允许开发人员可以匹配来自HTTP请求的任何内容,例如Header或参数
Predicate 断言
这些是使用特定工厂构建的 Spring FrameworkGatewayFilter实例。所以可以在返回请求之前或之后修改请求和响应的内容。
Filter 过滤器
核心概念
注意:会和spring-webmvc的依赖冲突,需要排除spring-webmvc
引入依赖
编写配置文件
环境搭建
After 路由断言 Factory
Before 路由断言 Factory
Between 路由断言 Factory
Cookie 路由断言 Factory
Header 路由断言 Factory
Host 路由断言 Factory
Method 路由断言 Factory
Path 路由断言 Factory
Query 路由断言 Factory
RemoteAddr 路由断言 Factory
Weight 路由断言 Factory
Xforwarded 路由断言 Factory
路由断言工厂(Route Predicate Factories)配置
AddRequestHeader GatewayFilter Factory
AddRequestParameter GatewayFilter Factory
。。。
继承AbstractNameValueGatewayFilterFactory且我们的自定义名称必须要以GatewayFilterFactory结尾并交给spring管理
配置自定义的过滤器工厂
自定义过滤器工厂
过滤器工厂 GatewayFilter Factories31个
其实就是用来整合负载均衡器Ribbon的
LoadBalancerClient Filter
整合负载均衡loadbalancer
ReactiveLoadBalancerClientFilter
.....
自定义全局过滤器
全局过滤器 Global Filters
通过yml配置的方式
通过java配置的方式
gateway跨域问题
gateway高可用配置
快速开始
使用时只需注入对应的SentinelGatewayFilter实例以及SentinelGatewayBlockExceptionHandler实例即可
用户可以通过GatewayRuleManager.loadRules(rules)手动加载网关规则
添加yml配置
接入Sentinel dashboard控制台
gateway整合sentinel限流
微服务网关gateway
Spring Cloud Alibaba 使用手册
0 条评论
回复 删除
下一页