spring cloud
Be Like!
征途是星辰大海
展开
-
解决Hmily与Feign冲突报错 NullPointerException
在项目中使用了Hmily保证分布式事务的一致性,由于Hmily会注册一个 HmilyFeignInterceptor ,并且feign会将其添加到 SynchronousMethodHandler 中的 requestInterceptors ,当feign客户端执行 HmilyFeignInterceptor 中apply方法public void apply(final RequestTemplate requestTemplate) { Transmiter.getInstance原创 2020-06-02 22:40:41 · 974 阅读 · 3 评论 -
Spring Cloud Gateway 整合Spring Security
做了一个Spring Cloud项目,网关采用 Spring Cloud Gateway,想要用 Spring Security 进行权限校验,由于 Spring Cloud Gateway 采用 webflux ,所以平时用的 mcv 配置是无效的,本文实现了 webflu 下的登陆校验。1. Security配置这里先贴出配置类,方便了解大致情况。其中涉及到的三个处理器均为自定义package com.shop.jz.gateway.security.config;import com.sh原创 2020-05-24 17:41:44 · 7753 阅读 · 6 评论 -
Spring Cloud Feign异常处理机制
在Spring Cloud 微服务中不可避免的使用Feign来远程调用其他服务接口,一般情况下,会在报文格式中冗余一个响应码和响应信息的字段,例如:{ "msg": "产品不存在", "code": 40005, "data": null}在调用Feign接口时,我们都希望直接返回的就是想要的结果,如果每个接口的返回数据都要像上边一样,就需要对返回的数据进行处理,是非常繁琐的,而且会造成代码的冗余,但是当被调用服务抛出业务异常时,FeignClient抛出的异常是被封装过的,无法获得有用原创 2020-05-16 20:58:33 · 8258 阅读 · 6 评论 -
搭建Spring Cloud Gateway
spring boot版本:2.1.10.RELEASEspring cloud版本:Greenwich.SR41.添加pom依赖<!-- spring gateway依赖 --><dependency> <groupId>org.springframework.cloud</groupId> <artifactId&g...原创 2020-05-02 16:12:04 · 1322 阅读 · 0 评论 -
分布式链路跟踪Sleuth与Zipkin
随着业务发展,系统拆分导致系统调用链路愈发复杂一个前端请求可能最终需要调用很多次后端服务才能完成,当整个请求变慢或不可用时,我们是无法得知该请求是由某个或某些后端服务引起的,这时就需要解决如何快读定位服务故障点,以对症下药。于是就有了分布式系统调用跟踪的诞生。 现今业界分布式服务跟踪的理论基础主要来自于 Google 的一篇论文《Dapper, a Large-Scale Distribu...原创 2020-02-09 19:17:21 · 4380 阅读 · 0 评论 -
Spring Boot2.x sleuth集成ELK日志管理系统
搭建ELK日志管理系统Ubuntu 18.04 安装ElasticSearchUbuntu 18.04搭建LogstashUbuntu 18.04 搭建Kibana添加依赖<!--sleuth 服务跟踪依赖--><dependency> <groupId>org.springframework.cloud</groupId> <...原创 2020-02-08 19:21:44 · 909 阅读 · 0 评论 -
Spring Cloud Stream【消息分组和消息分区】
spring boot版本:2.1.10.RELEASEspring cloud版本:Greenwich.SR4上一篇博文 Spring Cloud Stream 初步了解了Spring Cloud Stream,并写了一个入门的例子,本文在上一篇的基础上,实现消息的分组。stream-receiver 项目(1)添加配置#配置eureka注册中心eureka.client.servi...原创 2020-02-04 19:17:58 · 1079 阅读 · 0 评论 -
Spring Cloud Stream
spring boot版本:2.1.10.RELEASEspring cloud版本:Greenwich.SR4stream结构图stream 解决了什么问题?Stream 解决了开发人员无感知使用消息中间件的问题。 因为Stream 对消息中间件的进一步封装,可以做到代码层面对中间件的无感知,甚至于动态的切换中间件(例如从RabbitMQ 切换为Kafka)。使得微服务开发的高度解...原创 2020-02-04 17:52:10 · 320 阅读 · 0 评论 -
Spring Cloud 配置中心采用bus(消息总线)自动刷新集群配置
spring boot版本:2.1.10.RELEASEspring cloud版本:Greenwich.SR4一、从客户端刷新以下所有配置均针对客户端,并在 微服务搭建Spring Cloud配置中心【客户端】 的基础上新增(这里贴出的配置都是完整版,但不再详细解释)。添加依赖<dependency> <groupId>org.springframew...原创 2020-02-02 15:58:41 · 469 阅读 · 0 评论 -
Spring Cloud 配置中心开启用户安全认证
spring boot版本:2.1.10.RELEASEspring cloud版本:Greenwich.SR4配置中心服务端(1)添加依赖:<!--安全认证--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring...原创 2020-02-01 21:00:02 · 891 阅读 · 0 评论 -
Spring Cloud配置中心非对称加密
spring boot版本:2.1.10.RELEASEspring cloud版本:Greenwich.SR4微服务搭建Spring Cloud配置中心【服务端】Spring Cloud配置中心服务端对称加密创建证书用JAVA的证书管理工具Keytool创建证书,建议先看 Keytool常用命令 这篇博文了解 Keytool 的基本用法,有助于对后边相关配置的理解。打开命令行界面,执...原创 2020-02-01 20:05:58 · 716 阅读 · 0 评论 -
Spring Cloud配置中心服务端对称加密
spring boot版本:2.1.10.RELEASEspring cloud版本:Greenwich.SR4微服务搭建Spring Cloud配置中心【服务端】为什么要加密 首先我们要知道加密的是什么,加密的是配置文件的信息,上一篇文章我们都是使用明文的,但是如果是重要的信息,比如说是数据库的账号和密码就是十分重要的信息,不允许泄露的,一旦泄露会造成重大的损失。PS:由于Spri...原创 2020-02-01 15:33:50 · 515 阅读 · 0 评论 -
微服务搭建Spring Cloud配置中心【客户端】
spring boot版本:2.1.10.RELEASEspring cloud版本:Greenwich.SR4微服务搭建Spring Cloud配置中心【服务端】添加依赖<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-c...原创 2020-01-31 16:54:37 · 228 阅读 · 0 评论 -
微服务搭建Spring Cloud配置中心【服务端】
spring boot版本:2.1.10.RELEASEspring cloud版本:Greenwich.SR4添加依赖<!--配置中心依赖--><dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-co...原创 2020-01-29 17:03:58 · 394 阅读 · 0 评论 -
微服务Zuul性能调优
Zuul底层采用了ribbon和hystrix来通信,hystrix默认情况下采用的是线程池隔离,超时时间1000ms,而ribbon默认超时时间是5秒。 若hystrix超时,则不会触发ribbon的集群重试,最终的结果就是整个系统挂掉,所以ribbon的超时时间要小于hystrix,不然不会进行集群轮询。配置如下#第一层hystrix超时时间设置#默认情况下是线程池隔离,超时时...原创 2020-01-28 16:45:07 · 1257 阅读 · 0 评论 -
微服务Zuul实现限流保护
spring boot版本:2.1.10.RELEASE1、项目搭建所需依赖及项目的搭建请参考上一篇博客 微服务中网关的作用及搭建2、添加限流相关依赖<!--Zuul限流的相关依赖--><dependency> <groupId>com.marcosbarbero.cloud</groupId> <artifactId...原创 2020-01-28 16:16:02 · 4194 阅读 · 0 评论 -
微服务Zuul网关实现服务降级
spring boot版本:2.1.10.RELEASE1、项目搭建所需依赖及项目的搭建请参考上一篇博客 微服务中网关的作用及搭建2、添加fallback的bean在spring boot 2.0之前实现的是 ZuulFallbackProvider接口,但是在spring boot 2.0之后实现的是 FallbackProvider 接口。package com.ebook.zuul...原创 2020-01-28 14:51:11 · 945 阅读 · 0 评论 -
微服务Zuul中添加过滤器
1、项目搭建所需依赖及项目的搭建请参考上一篇博客 微服务中网关的作用及搭建2、添加过滤器添加一个类,并继承 ZuulFilter 类package com.ebook.zuul.filter;import com.netflix.zuul.ZuulFilter;import com.netflix.zuul.context.RequestContext;import com.net...原创 2020-01-27 17:42:12 · 869 阅读 · 0 评论 -
微服务中网关的作用及搭建
作用(1)统一入口 为全部微服务提供唯一入口点,网关起到内部和外部隔离,保障了后台服务的安全性。(2)鉴权校验识别每个请求的 权限,拒绝不符合要求的请求。(3)动态路由动态的将请求 路由 到不同的后端集群中。(4)降低耦合度减少客户端与服务的 耦合 ,服务可以独立发展。通过网关层来做映射。...原创 2020-01-27 11:51:18 · 15461 阅读 · 0 评论 -
微服务架构6种常用设计模式
微服务架构6种常用设计模式代理设计模式在微服务架构中 代理服务 是必然存在的,常用的代理服务是 网关服务。微服务的各个服务是没有状态的,需要通过统一的入口(代理服务)经过权限的校验、请求的过滤(非法请求、SQL注入等),然后请求具体的服务。聚合设计模式聚合设计模式常用于 报表服务,在微服务系统中报表服务是肯定存在的。链条设计模式聚合链条设计模式数据共享设计模式后台管理系统...原创 2020-01-22 21:01:41 · 1811 阅读 · 0 评论 -
Spring Cloud 添加Dashboard断路监控
spring boot版本:2.1.10.RELEASE适用于spring boot 2.x1、添加相关依赖<!--spring-boot-starter-actuator 可以得到SpringBoot项目的各种信息--><dependency> <groupId>org.springframework.boot</groupId>...原创 2020-01-14 21:04:49 · 244 阅读 · 0 评论 -
Greenwich.SR4 ribbon全局配置和局部配置
spring boot 版本:2.1.10.RELEASEspring cloud版本:Greenwich.SR41、全局配置# 请求连接的超时时间 默认1秒ribbon.ConnectTimeout=5000# 请求处理的超时时间 默认1秒ribbon.ReadTimeout=50002、局部配置以上全局配置针对所有服务,无法针对具体服务进行配置,下面是局部配置,针对某个具...原创 2020-01-11 15:52:03 · 701 阅读 · 0 评论 -
spring boot 2.x feign使用httpclient连接池
1、添加依赖<!--使用Apache HttpClient 替换feign原生 httpclient--><dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> &l...原创 2020-01-09 21:27:35 · 2991 阅读 · 1 评论 -
Spring Boot 2.1.x 中使用Feign
1.添加feign依赖spring boot 1.x中,使用的依赖如下<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-feign</artifactId></dependency...原创 2020-01-05 16:36:55 · 1597 阅读 · 0 评论 -
spring boot 2.x创建spring cloud eureka server
刚开始学习微服务,用的spring boot 2.x,但是添加的依赖用的是1.x的一直报错,今天终于弄好了,记录一下。1、spring cloud版本spring cloud的主版本号都是伦敦地铁站名字命名的。SNAPSHOT:开发版,团队内部使用。GA:内部开发到一定阶段,各个模块完成并全面测试后,核心功能可以使用,可以对外发行。Mx:其中x代表数字。由于GA版还不是公开发行版,功能...原创 2019-12-14 16:45:54 · 328 阅读 · 0 评论