
Spring Cloud
文章平均质量分 86
Spring Cloud
JoyceYoungYYY
这个作者很懒,什么都没留下…
展开
-
spring cloud 知识点汇总
目录一、Spring Cloud 综述(一)Spring Cloud 是什么(二)Spring Cloud 解决什么问题(三)Spring Cloud 架构1、Spring Cloud 核⼼组件2、Spring Cloud 体系结构(组件协同⼯作机制)(四)Spring Cloud 与 Dubbo 对⽐(五)Spring Cloud 与 Spring Boot 的关系二、第⼀代 Spring Cloud 核⼼组件(一)Eureka服务注册中⼼1、关于服务注册中⼼①服务注册中⼼⼀般原理②主流服务中⼼对⽐2、服原创 2021-06-02 00:49:28 · 2220 阅读 · 2 评论 -
15-3、基于 Nacos 实现 Sentinel 规则持久化
目录一、pom二、application.yml中配置Nacos数据源一、pom<!-- Sentinel⽀持采⽤ Nacos 作为规则配置数据源,引⼊该适配依赖 --><dependency> <groupId>com.alibaba.csp</groupId> <artifactId>sentinel-datasource-nacos</artifactId></dependency>二、原创 2021-01-15 12:59:56 · 422 阅读 · 0 评论 -
16、Nacos + Sentinel + Dubbo 三剑合璧
目录一、 提取dubbo服务接⼝⼯程二、服务提供者⼯程改造(一)pom(二)新增一个接口实现类(三)配置⽂件中添加dubbo配置(四)项目重启三、服务消费者⼯程改造(一)pom.xml(二)application.yml配置(三)代码四、测试一、 提取dubbo服务接⼝⼯程lagou-service-dubbo-api二、服务提供者⼯程改造(一)pom<!--spring cloud alibaba dubbo 依赖--> <dependency>原创 2021-01-15 12:53:08 · 584 阅读 · 1 评论 -
15-2、Sentinel 自定义兜底逻辑
一、pom<!-- Sentinel⽀持采⽤ Nacos 作为规则配置数据源,引⼊该适配依赖 --><dependency> <groupId>com.alibaba.csp</groupId> <artifactId>sentinel-datasource-nacos</artifactId></dependency>二、兜底逻辑三、兜底逻辑不在同一个类中四、结果展示...原创 2021-01-14 18:17:32 · 580 阅读 · 0 评论 -
15-1、sentinel分布式系统的流量防卫兵
目录一、Sentinel 介绍一、Sentinel 介绍原创 2021-01-13 23:47:09 · 655 阅读 · 1 评论 -
14-2、SAC组件☞Nacos:进阶
目录一、Nacos Server 数据持久化1、新建数据库 nacos_config2、修改${nacoshome}/conf/application.properties,增加Mysql数据源配置二、 Nacos Server 集群1、安装3个或3个以上的Nacos2、修改配置⽂件①application.properties②cluster.conf3、分别启动每⼀个实例一、Nacos Server 数据持久化Nacos 默认使⽤嵌⼊式数据库进⾏数据存储,它⽀持改为外部Mysql存储1、新建数据库原创 2021-01-11 11:05:20 · 764 阅读 · 0 评论 -
14-1、SAC组件☞Nacos:介绍及基础应用
目录一、Nacos 介绍二、 Nacos 单例服务部署1、下载解压安装包,执⾏命令启动2、访问nacos管理界⾯三、Nacos 服务注册中⼼X(一)服务提供者注册到Nacos1、父工程引入依赖2、在服务提供者⼯程中引⼊nacos客户端依赖(注释eureka客户端)3、application.yml修改,添加nacos配置信息4、访问(二)服务消费者从Nacos获取服务提供者Spring Cloud Alibaba(SCA),SCA 是由⼀些阿⾥巴巴的开源组件和云产品组成的,2018年,Spring Clo原创 2021-01-11 00:17:44 · 681 阅读 · 0 评论 -
13-4、基于Oauth2的 JWT 令牌信息扩展
目录一、认证服务器⽣成JWT令牌时存⼊扩展信息(⽐如clientIp)1、继承DefaultAccessTokenConverter类,重写convertAccessToken⽅法存⼊扩展信息2、将⾃定义的转换器对象注⼊二、资源服务器取出 JWT1、继承DefaultAccessTokenConverter,重写extractAuthentication提取⽅法2、将⾃定义的转换器对象注⼊三、测试比如,在认证服务器中存入自定义的信息,然后在资源服务器中取出一、认证服务器⽣成JWT令牌时存⼊扩展信息(原创 2021-01-09 23:07:44 · 737 阅读 · 0 评论 -
13-3、Oauth + jwt :从数据库加载数据
目录一、从数据库加载Oauth2客户端信息(一)数据库(二)pom(三)配置文件添加datasource(四)配置类(五)测试二、从数据库验证⽤户合法性(一)创建user表(二)写查询接口(三)实现UserDetailsService类(四)配置类修改(五)测试一、从数据库加载Oauth2客户端信息(一)数据库表名及字段是固定的SET NAMES utf8mb4;SET FOREIGN_KEY_CHECKS = 0;-- ------------------------------ Tabl原创 2021-01-09 22:08:20 · 482 阅读 · 0 评论 -
13-2、微服务统一认证 Spring Cloud OAuth2 + JWT--》JWT
一、认证服务器(Authorization Server)lagou-cloud-oauth-server-9999–》OauthServerConfigurer需要调整3处 /** * 该方法用于创建tokenStore对象(令牌存储对象) * token以什么形式存储 * * @return */ private TokenStore tokenStore() {// return new InMemoryTokenSto原创 2021-01-08 17:32:25 · 232 阅读 · 0 评论 -
13-1、微服务统一认证 Spring Cloud OAuth2 + JWT--》oauth开放授权协议
一、oauth介绍(一)基本介绍比如,登录拉勾网的时候,不在拉勾网注册账户,而是使用qq账户登录。使⽤OAuth2解决问题的本质是,引⼊了⼀个认证授权层,认证授权层连接了资源的拥有者,在授权层⾥⾯,资源的拥有者可以给第三⽅应⽤授权去访问我们的某些受保护资源(二)实现思路二、搭建认证服务器(Authorization Server)新建项⽬lagou-cloud-oauth-server-9999(1)pom<dependencies> <!--导入Eu原创 2021-01-08 00:21:08 · 850 阅读 · 0 评论 -
12、分布式链路追踪:Sleuth + Zipkin
目录应用实例(一)Sleuth1、每⼀个需要被追踪踪迹的微服务⼯程都引⼊依赖坐标2、每⼀个微服务都修改application.yml配置⽂件,添加⽇志级别(二)ZipkinZipkin Server 构建1、pom2、application.yml3、启动类Zipkin Client构建(在具体微服务中修改)1、pom添加依赖2、添加配置(三)测试应用实例(一)Sleuth1、每⼀个需要被追踪踪迹的微服务⼯程都引⼊依赖坐标<!--链路追踪--><dependency>原创 2021-01-06 13:07:49 · 549 阅读 · 1 评论 -
11、Spring Cloud Stream消息驱动组件
目录一、解决的问题二、重要的概念三、消息通信⽅式及编程模型1、消息通信⽅式2、编程模型四、应用实例(一)⽣产者端1、pom2、application.yml3、service①IMessageProducer②MessageProducerImpl4、test测试(二)消费者端接收消息1、pom2、application.yml3、service(三)测试(四)consumer集群一、解决的问题二、重要的概念Spring Cloud Stream 是⼀个构建消息驱动微服务的框架。应⽤程序通过input原创 2021-01-05 00:22:02 · 213 阅读 · 0 评论 -
10-2、Spring Cloud Config配置中心:刷新的问题
客户端取到了配置中⼼的值之后,我们修改GitHub上⾯的值时,服务端(Config Server)能实时获取最新的值,但客户端(Config Client)读的是缓存,⽆法实时获取最新值。Spring Cloud已 经为我们解决了这个问题,那就是客户端使⽤post去触发refresh,获取最新数据。一、手动刷新⼿动刷新⽅式避免了服务重启(一)Client客户端添加依赖springboot-starter-actuator(已添加)(二)Client客户端bootstrap.yml中添加配置(暴露原创 2020-12-31 01:05:19 · 575 阅读 · 0 评论 -
10-1、Spring Cloud Config配置中心:介绍及应用
目录一、应用场景二、Config配置中心介绍三、使用实例(一)构建Config Server统⼀配置中⼼1、pom2、配置文件3、启动类4、测试(二)构建Client客户端1、pom2、配置文件3、添加一个controller测试是否可以配置中心获取值4、测试5、注意①client server jar引用②client clientjar引用③以上两个jar包,版本要对应一、应用场景二、Config配置中心介绍Spring Cloud Config是⼀个分布式配置管理⽅案,包含了Server端和原创 2020-12-31 00:44:09 · 591 阅读 · 0 评论 -
9、GateWay⽹关组件介绍及应用
目录一、GateWay简介(一)什么是GateWay(二)GateWay核⼼概念(三)GateWay⼯作过程二、GateWay应⽤实例(一)pom(二)application.yml(三)配置启动类并启动(四)测试(五)动态路由详解三、GateWay过滤器(一)两种过滤器介绍(二)Gateway Filter示例(三)GlobalFilter示例:自定义全局过滤器1、自定义类并实现接口2、测试一、GateWay简介(一)什么是GateWayGateWay–>Spring Cloud GateWa原创 2020-12-29 22:01:43 · 1112 阅读 · 0 评论 -
8-2、Feign支持的其他组件介绍及配置
目录一、Feign对负载均衡Ribbon的⽀持二、Feign对熔断器hystrix的⽀持(一)开启配置(二)超时时长配置(三)⾃定义FallBack处理类(需要实现FeignClient接⼝)1、定义一个类,实现FeignClient接口2、FeignClient类注解需要调整3、测试三、Feign的⽇志级别配置(一)开启Feign⽇志功能及级别(二)配置log⽇志级别为debug一、Feign对负载均衡Ribbon的⽀持Feign 本身已经集成了Ribbon依赖和⾃动配置,因此我们不需要额外引⼊依赖,原创 2020-12-29 17:26:01 · 489 阅读 · 0 评论 -
8-1:feign介绍及基本应用
目录一、Feign介绍二、Feign配置应⽤(一)服务消费者⼯程(中引⼊Feign依赖(或者⽗类⼯程)(二)启动类(三)定义FeignClient 类(四)Controller层写法(五)测试(六)附:完整pom一、Feign介绍二、Feign配置应⽤在服务调⽤者⼯程(消费)创建接⼝(添加注解)(效果)Feign = RestTemplate + Ribbon + Hystrix(一)服务消费者⼯程(中引⼊Feign依赖(或者⽗类⼯程) <dependency>原创 2020-12-29 16:55:44 · 320 阅读 · 0 评论 -
7-2、hystrix-2:高级应用进阶
目录一、Hystrix⼯作流程1、方法中添加配置2、application.yml添加配置3、postman中调用接口查看二、Hystrix Dashboard断路监控仪表盘三、Hystrix Turbine聚合监控一、Hystrix⼯作流程代码中配置:1、方法中添加配置commandProperties = { @HystrixProperty(name = "execution.isolation.thread.timeoutInMillisecond原创 2020-12-28 20:50:00 · 616 阅读 · 0 评论 -
7-1、hystrix-1:基础知识
目录一、雪崩二、雪崩效应解决⽅案1、服务熔断2、服务降级3、服务限流三、Hystrix简介四、Hystrix的应用1、pom添加jar包2、服务消费者⼯程的启动类中添加熔断器开启注解3、定义服务降级处理⽅法。五、Hystrix舱壁模式(线程池隔离策略)(一)存在的问题(二)解决方案一、雪崩微服务中,⼀个请求可能需要多个微服务接⼝才能实现,会形成复杂的调⽤链路。在微服务架构中,⼀个应⽤可能会有多个微服务组成,微服务之间的数据交互通过远程过程调⽤完成。这就带来⼀个问题,假设微服务A调⽤微服务B和微服原创 2020-12-28 20:39:16 · 200 阅读 · 0 评论 -
6、Ribbon
目录一、关于负载均衡1、服务器端负载均衡2、客户端负载均衡3、Ribbon说明二、Ribbon应用三、Ribbon负载均衡策略1、负载均衡策略说明2、修改负载均衡策略一、关于负载均衡负载均衡⼀般分为服务器端负载均衡和客户端负载均衡。区别就是,负载均衡在哪里执行。1、服务器端负载均衡⽐如Nginx、F5这些,请求到达服务器之后由这些负载均衡器根据⼀定的算法将请求路由到⽬标服务器处理。2、客户端负载均衡⽐如我们要说的Ribbon,服务消费者客户端会有⼀个服务器地址列表,调⽤⽅在请求前通过⼀定的负载均原创 2020-12-27 18:04:40 · 562 阅读 · 0 评论 -
5、eureka细节梳理
目录1、元数据①在服务端application.yml中添加配置②客户端获取2、客户端①服务注册详解(服务提供者)②服务续约详解(服务提供者)③获取服务列表详解(服务消费者)3、服务端①服务下线② 失效剔除③⾃我保护:建议⽣产环境打开⾃我保护机制1、元数据Eureka的元数据有两种:标准元数据和⾃定义元数据。标准元数据:主机名、IP地址、端⼝号等信息,这些信息都会被发布在服务注册表中,⽤于服务之间的调⽤。自定义元数据:可以使⽤eureka.instance.metadata-map配置,符合KE原创 2020-12-26 23:06:28 · 260 阅读 · 0 评论 -
4、 从Eureka Server中获取服务的实例信息
import org.springframework.cloud.client.discovery.DiscoveryClient; @Autowired private DiscoveryClient discoveryClient; /** * 服务注册到Eureka之后的改造 * * @param userId * @return */ @GetMapping("/checkState/{userId}")原创 2020-12-26 22:16:31 · 1244 阅读 · 0 评论 -
3、将服务注册到eureka
目录1、修改相关服务的application.yml2、启动类添加注解1、修改相关服务的application.yml在原有基础上添加以下配置# 添加注册到eureka的配置eureka: client: service-url: defaultZone: http://LagouCloudEurekaServerA:8762/eureka,http://LagouCloudEurekaServerB:8763/eureka2、启动类添加注解// 开启Eureka Cl原创 2020-12-26 21:39:19 · 506 阅读 · 0 评论 -
2、Eureka 集群实例
目录1、修改hosts文件2、复制两份单例实例代码3、修改application.yml①8762②87634、分别启动两个启动类之后访问本次集群测试使用修改hosts文件的方式1、修改hosts文件win10下路径为【C:\Windows\System32\drivers\etc】#eureka集群测试127.0.0.1 LagouCloudEurekaServerA127.0.0.1 LagouCloudEurekaServerB2、复制两份单例实例代码单例实例然后修改端口号等相关原创 2020-12-26 21:00:01 · 293 阅读 · 0 评论 -
1、Eureka 单例实例
在lagou-parent下新建一个Module1、 parent的pom添加Jaxb在⽗⼯程的pom⽂件中⼿动引⼊jaxb的jar,因为Jdk9之后默认没有加载该模块,EurekaServer使⽤到,所以需要⼿动导⼊,否则EurekaServer服务⽆法启动<!--引⼊Jaxb,开始--> <dependency> <groupId>com.sun.xml.bind</groupId> &原创 2020-12-26 19:55:52 · 321 阅读 · 1 评论