![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SpringCloud
文章平均质量分 94
SpringCloud
Liu_Shihao
这个作者很懒,什么都没留下…
展开
-
Eureka注册中心源码分析及在生产环境中的优化
目录一、简介二、快速搭建2.1 单节点版2.2 双节点版2.3 三节点版三、Server端源码分析3.1 启动服务端3.2 自我保护源码分析3.3 三级缓存3.3.1 初始化缓存3.3.2 服务注册时将缓存失效3.3.3 使用缓存3.4 集群同步3.5 服务续约、下线3.6 拉取注册表(全量和增量)3.7 unavailable-replicas 副本不可用问题四、Client端源码分析五、总结Server端配置Client端配置一、简介Eureka是Spring Cloud Netflix生态中的服务原创 2022-05-02 15:32:25 · 2091 阅读 · 0 评论 -
分布式系统认证解决方案SpringSecurityOAuth2.0(四)整合网关认证授权
目录一、简介二、搭建网关路由配置转发路由一、简介网关整合OAuth2.0有两种思路,一种是认证服务器生成JWT令牌,所有的请求统一在网关层验证,判断权限等操作;另一种是由各资源服务处理,网关只做请求转发。如果网关选择Zuul可以选择第一种。如果网关选择Gateway可以选择第二种方式,因为Gateway网关是用的是webFlux 其对@EnableResourceServer不支持,如果要将网关服务也作为资源服务实现比较麻烦。API网关在认证授权体系中主要负责两件事:作为OAuth2.0的资源原创 2021-08-24 22:34:04 · 1542 阅读 · 0 评论 -
分布式系统认证解决方案SpringSecurityOAuth2.0(三)资源服务器使用Redis令牌、JWT令牌认证及RSA非对称加密算法
目录一、简介二、JWT三、代码实现——JWT格式令牌3.1 POM依赖3.2 修改授权服务器修改TokenStore修改令牌管理服务tokenServices()3.3 修改资源服务器TokenStore四、测试——JWT令牌申请校验4.1 原来申请的普通令牌4.2 申请的JWT令牌4.3 请求资源服务器认证五、代码实现——数据库存储客户端详情、授权码5.1 建表SQL5.2 数据库存储客户端详情5.3 数据库存储授权码六、测试——数据库存储客户端详情、授权码6.1 申请令牌6.2 校验令牌申请授权码一、原创 2021-08-23 21:49:37 · 1792 阅读 · 4 评论 -
分布式系统认证解决方案SpringSecurityOAuth2.0(二)分布式系统认证流程分析与实现
目录一、简介1.1 OAuth2.0协议角色1.2 SpringSecurityOAuth2.01.3 授权服务 Authorization Server1.4 资源服务 Resource Server二、认证流程三、授权服务器——代码实现3.1 主要依赖3.2 AuthorizationServer3.2.1 配置客户端详情信息3.2.2 配置令牌的服务端点及令牌管理服务3.2.3 配置令牌服务端点的安全约束3.2.4 总结三、授权服务器——测试3.1 授权码模式示例申请授权同意授权拒绝授权申请令牌3.2原创 2021-08-23 15:51:45 · 1251 阅读 · 0 评论 -
分布式系统认证解决方案SpringSecurityOAuth2.0(一)认证授权
目录一、简介二、认证2.1 认证流程2.2 代码实现表结构配置类 WebSecurityConfigurerAdapter认证逻辑 UserDetailsService2.3 认证测试匿名访问使用 zs 登录使用 ls 登录三、授权3.1 授权流程3.2 代码实现表结构授权逻辑 PermissionEvaluator@EnableGlobalMethodSecurity开启注解校验@PreAuthorize("hasPermission('/r/r1','p1')")3.3 授权测试使用 zs 登录3.4原创 2021-08-19 17:00:52 · 1057 阅读 · 0 评论 -
SpringCloud微服务API网关Gateway的使用和配置(三)动态路由
目录一、介绍二、代码实现2.1 根据Spring Cloud Gateway的路由模型定义数据传输模型2.2 编写动态路由实现类2.3 编写 Rest接口三、测试添加路由:更新路由:删除路由:码源参考文章一、介绍在实际生产环境中为了保证高可靠和高可用,尽量避免重启,如果有新的服务要上线时,可以通过动态路由配置功能上线。Gateway配置路由主要有两种方式:用yml配置文件,写在代码里。而无论是 yml,还是代码配置,启动网关后将无法修改路由配置,如有新服务要上线,则需要先把网关下线,修改 y原创 2021-08-17 15:21:27 · 1445 阅读 · 0 评论 -
SpringCloud微服务API网关Gateway的使用和配置(二)过滤器
目录一、介绍二、配置StripPrefixPrefixPathAddRequestHeaderAddRequestParameterAddResponseHeaderDedupeResponseHeaderSpringCloud微服务API网关Gateway的使用和配置(一)路由转发、断言谓词:https://blog.csdn.net/DreamsArchitects/article/details/119330223一、介绍本章学习一下Gateway的过滤器的用法。所有的过滤器都是Gateway原创 2021-08-17 10:15:13 · 4507 阅读 · 0 评论 -
SpringCloud微服务API网关Gateway的使用和配置(一)路由转发、断言谓词
文章目录一、介绍二、Gateway依赖三、 Gateway网关的yml配置自动转发配置跨域配置全局http超时配置route (路由)配置lb://微服务名实现负载均衡predicates (断言/谓词)配置PathQueryHeaderMethodCookieAfter、Before、BetweenWeightHost 、RemoteAddrfilters(过滤器)配置PrefixPathStripPrefix四、完整yml配置五、源码一、介绍实现微服务网关的技术有很多。nginxNginx(e原创 2021-08-03 15:42:40 · 1125 阅读 · 0 评论 -
搭建SpringCloudAlibaba微服务时遇到的Nocos、Feign注入、Seata的各种问题
文章目录服务注册到Nacos读取错误的配置文件Nacos配置中心一直不停的在更新配置文件分布式事务Seata找不到配置中心的TC服务服务注册到Nacos读取错误的配置文件启动 当前 Account服务,控制台日志显示读取的是其他服务的配置文件Nacos配置中心一直不停的在更新配置文件分布式事务Seata找不到配置中心的TC服务# 第一种报错:no available service 'seata-server' found, please make sure registry config原创 2021-07-27 09:38:58 · 958 阅读 · 0 评论 -
SpringCloudAlibaba——Nacos负载均衡的使用
目录一、介绍二、依赖三、负载均衡3.1 使用@LoadBalanced注解3.2 使用Feign四、测试一、介绍Nacos不仅可以用作注册中心和配置中心,还可以做负载均衡。二、依赖<!-- Nacos注册中心--><dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery原创 2021-07-23 15:15:31 · 854 阅读 · 0 评论 -
分布式事务seata——使用nacos作为配置中心
文章目录一、版本介绍二、启动Nacos在启动seata服务以前,需要先把相关的配置先推送到nacos上启动seata-server启动客户端一、版本介绍Nacos:1.2.0Seata:1.2.1框架版本SpringBoot2.2.5SpringCloudHoxton.SR3SpringCloudAlibaba2.2.1Sentine1.7.1Nacos1.2.1Seata1.2.0二、启动Nacoshttps://github.原创 2021-07-01 10:20:11 · 1435 阅读 · 2 评论 -
SpringCloudAlibaba——Sentinel工作原理解析
目录一、Sentinel 功能和设计理念1.1 什么是流量控制1.2 什么是熔断降级二、Sentinel工作主流程三、Sentinel 核心类解析3.1 ProcessorSlotChain3.2 Context3.3 Entry3.4 Node3.5 StatisticSlot四、手撕源码组件版本关系:一、Sentinel 功能和设计理念1.1 什么是流量控制流量控制在网络传输中是一个常用的概念,它用于调整网络包的发送数据。然而,从系统稳定性角度考虑,在处理请求的速度上,也有非常多的讲究。任意原创 2021-06-28 17:30:27 · 824 阅读 · 0 评论 -
SpringCloudAlibaba——Sentinel(四)定义资源与定义规则
目录一、介绍二、定义资源2.1主流框架的默认适配(SpringBoot)Fegin支持RestTemplate 支持动态数据源支持Zuul 支持Spring Cloud Gateway 支持2.2 抛出异常的方式定义资源2.3 返回布尔值方式定义资源2.4 注解方式定义资源2.5 异步调用支持三、规则的种类3.1 流量控制规则 (FlowRule)3.2 熔断降级规则 (DegradeRule)3.3 系统保护规则 (SystemRule)3.4 访问控制规则 (AuthorityRule)3.5 热点规则原创 2021-06-28 15:50:12 · 621 阅读 · 0 评论 -
SpringCloudAlibaba——Sentinel与SpringBoot整合
目录一、介绍二、如何使用2.1 引入依赖2.2 Sentinel 控制台2.3 Fegin支持2.4 RestTemplate 支持2.5 网关限流2.5.1 Zuul 支持2.5.2 Spring Cloud Gateway 支持2.6 Endpoint 支持2.7 配置一、介绍随着微服务的流行,服务和服务之间的稳定性变得越来越重要。 Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。Sentinel 具有以下特征:丰富的应用场景: Sentin原创 2021-06-28 10:37:14 · 1771 阅读 · 0 评论 -
SpringCloudAlibaba——Sentinel(二)流控实例Demo
目录一、介绍二、pom依赖2.1 消费者POM2.2 生产者POM三、源码分析3.1 生产者3.2 消费者3.3 配置文件四、启动测试一、介绍本实例分为消费者和生产者:生产者查询数据库,消费者调用生产者接口。引入了Nacos注册中心、Ribbon负载均衡、Sentinel流量控制,服务调用使用RestTemplate、持久层使用JPA。SpringCloudAlibaba——Sentinel分布式系统的流量防卫兵SpringCloudAlibaba——Nacos注册中心、配置中心的使用消费者目录原创 2021-06-21 13:13:05 · 378 阅读 · 1 评论 -
SpringCloudAlibaba——Seata分布式事务的解决方案
环境介绍注册中心:eureka服务间调用:feign持久层:mybatis数据库:mysql 5.7.20Springboot: 2.2.2.RELEASESpringcloud: Hoxton.SR4jdk:1.8seata:1.4一、下载Seata下载seata解压后文件目录:二、搭建项目2.0 父工程pom文件2.1 eureka2.2 order2.3 account2.4 storage...原创 2021-03-23 15:43:29 · 418 阅读 · 0 评论 -
SpringCloudAlibaba——Nacos注册中心、配置中心的使用
目录一、介绍1.1 什么是注册中心2.1 为什么要使用注册中心二、环境准备三、服务注册3.1 pom依赖3.2 application.yml配置文件3.3 示例一、介绍1.1 什么是注册中心注册中心在微服务项目中扮演着非常重要的角色,是微服务架构中的纽带,类似于通讯录,它记录了服务和服务地址的映射关系。在分布式架构中,服务会注册到这里,当服务需要调用其它服务时,就到这里找到服务的地址,进行调用。2.1 为什么要使用注册中心注册中心解决了服务发现的问题。在没有注册中心时候,服务间调用需要知道被调方原创 2021-05-14 15:30:56 · 623 阅读 · 2 评论 -
SpringCloudAlibaba——Sentinel分布式系统的流量防卫兵
目录一、介绍二、控制台三、客户端3.1 引入JAR包3.2 定义规则3.3 配置启动参数3.4 启动客户端一、介绍随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。Sentinel 分为两个部分:核心库(Java 客户端)不依赖任何框架/库,能够运行于所有 Java 运行时环境,同时对 Dubbo / Spring Cloud 等框架也有较好的支持。控制台(Dashboard)基于 Sprin原创 2021-06-18 09:05:56 · 248 阅读 · 1 评论 -
SpringCloud微服务熔断技术_Hystrix、Feign以及Dashboard服务监控
Hystrix一、介绍Hystrix是什么Hystrix能干什么二、使用Hystrix做熔断(主要是在被调用端熔断)三、使用Fegin熔断(主要是在调用端熔断)引入Fegin依赖yml配置文件@EnableFeignClients@FeignClientFeign中提供熔断与服务提供端提供熔断的区别搭建dashboard图形界面微服务引入pom依赖yml文件主启动类被监控的项目引入pom依赖yml文件主启动类DeptControllerBug 监控页面一直显示Loading一、介绍Netflix的创造原创 2020-11-06 23:31:25 · 321 阅读 · 1 评论 -
SpringCloud微服务负载均衡_Feign技术
文章目录一、介绍二、使用Feign1.引入pom依赖2.@EnableFeignClients3.@FeignClientBug 参数为[text/plain] 无法转化为json使用Feign带参调用服务-GET使用Feign带参调用服务-POST完整代码UserControllerUserServiceDeptController1DeptController2一、介绍声明性REST客户端:FeignFeign是一个声明式的伪Http客户端,它使得写Http客户端变得更简单。使用Feign,只需要原创 2020-11-06 15:37:58 · 346 阅读 · 0 评论 -
SpringCloud微服务负载均衡_Ribbon技术
Spring Cloud Ribbon一、介绍二、User微服务模块ymlConfigController三、Dept微服务模块ymlController测试User服务调用Dept服务报错解决办法1:解决办法2:四 、创建第二个Dept微服务模块yml配置文件五、开启Ribbon负载均衡1.Ribbon的pom依赖2.@LoadBalanced3.调用的URL测试负载均衡一、介绍Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端的负载均衡的工具。简单的说,Rib原创 2020-11-06 11:03:38 · 1576 阅读 · 0 评论 -
搭建高可用的服务注册中心(Eureka集群)
Eureka集群一、 第一个Eureka服务端节点pom主启动类yml配置文件二、第二个Eureka服务端节点yml配置三、Eureka客户端pom启动类yml配置文件一、 第一个Eureka服务端节点新建两个Eureka微服务模块pom <dependencies> <dependency> <groupId>org.springframework.cloud</groupId>原创 2020-11-06 09:14:05 · 277 阅读 · 1 评论 -
SpringCloudConfig配置中心以及SpringCloudBus消息总线
配置中心以及消息总线一、SpringCloudConfig配置中心1.介绍2.服务端pom依赖:yml配置文件主启动类3.客户端pom依赖bootstrap.yml4.启动测试二、SpringCloudBus消息总线1.服务端pom依赖yml配置文件2.客户端Bug 启动报错一、SpringCloudConfig配置中心1.介绍在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件。在Spring Cloud中,有分布式配置中心组件spring cloud原创 2020-11-05 10:35:34 · 310 阅读 · 0 评论 -
SpringCloud微服务网关技术_Zuul网关以及zuul导致请求头信息丢失
在微服务架构中,通常会有多个服务提供者。设想一个电商系统,可能会有商品、订单、支付、用户等多个类型的服务,而每个类型的服务数量也会随着整个系统体量的增大也会随之增长和变更。作为UI端,在展示页面时可能需要从多个微服务中聚合数据,而且服务的划分位置结构可能会有所改变。网关就可以对外暴露聚合API,屏蔽内部微服务的微小变动,保持整个系统的稳定性。当然这只是网关众多功能中的一部分,它还可以做负载均衡,统一鉴权,协议转换,监控监测等一系列功能。原创 2020-11-04 14:14:12 · 902 阅读 · 0 评论 -
微服务搭建_Eureka注册中心
文章目录一、项目搭建二、创建Eureka模块pom.xml文件主启动类三、创建common公共模块一、项目搭建创建父工程pom.xml文件打包方式为pom删除src文件夹添加SpringBoot父工程添加SpringCloud的版本可以添加打包时跳过测试<packaging>pom</packaging><parent> <groupId>org.springframework.boot</groupId>原创 2020-10-28 19:41:31 · 280 阅读 · 3 评论