
Spring Cloud微服务
微服务架构设计与技术实现:Spring Cloud
巅峰键盘侠
致力于互联网软件技术普及与教育。
在软件公司负责系统架构、技术研发、技术管理工作多年,带领过60人以上技术团队,主导设计和开发过大型APP项目、Web项目,对缓存、集群、分布式、微服务、负载均衡等高并发处理技术有深刻理解,擅长Java技术,精通Spring Boot、Spring Cloud等Java框架,熟悉Docker、Kubernetes、Rancher等微服务容器化技术,掌握PHP技术,熟悉ThinkPHP、Laravel等PHP框架,具备Redis、RabbitMQ、MyCat、GlusterFS等NoSQL缓存、消息中间件、数据库中间件、分布式存储的应用经验。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Dubbo、Spring Cloud微服务多网卡异常
1、在bootstrap.yml或者application.yml增加配置 spring.cloud.inetutils.ignored-interfaces[0]=VirtualBox Host-Only Network spring.cloud.inetutils.preferred-networks[0]=10.13 2、查看你的网卡 本地Windows电脑查看: 服务器查看: # ifconfig ...原创 2022-04-19 18:38:48 · 1909 阅读 · 0 评论 -
12 网关组件Spring Cloud Zuul的动态刷新实现方案
生产环境中微服务的发布是非常频繁的,对于一些互联网型的项目,甚至在你与他人谈话闲聊的几分钟内便有新的版本发布出来;一般的,每发布一个新的微服务,网关就可能需要为新发布的微服务定义对应的访问路由,如果没有将网关的配置文件通过Spring Cloud Config配置中心抽离出来存放到Git仓库中,那么网关每次在配置文件中定义了新的访问路由,就必然需要重启才能让配置生效,而网关是整个微服务架构唯一对外...原创 2019-09-14 22:47:21 · 695 阅读 · 0 评论 -
13 网关组件Spring Cloud Zuul自定义前置和后置过滤器
在Spring Cloud Zuul组件中,一共有四种类型的过滤器:Pre前置过滤器、Post后置过滤器、Route路由过滤器、Error错误过滤器。通过自定义前置过滤器、后置过滤器,可以实现对请求的Request处理和Response处理,比如在前置过滤器中实现用户登录验证、权限验证等业务,在后置过滤器中实现对响应数据的统一处理等。 (1)自定义前置过滤器 打开一个Spring Clou...原创 2019-09-15 14:23:10 · 1464 阅读 · 0 评论 -
14 基于网关Spring Cloud Zuul的接口限流实现方案
在Spring Cloud Zuul网关中,限流业务是放在前置过滤器实现的,也就是在请求被Zuul转发给微服务之前进行限流。另外,当前置过滤器中同时存在限流、鉴权、身份认证等业务时,应该将限流业务放在首位执行。 实现接口限流的方案有很多,常见的包括令牌桶、漏桶、计数器等,这里基于Spring Cloud Zuul网关以令牌桶限流方案来实现接口的限流,令牌桶限流方案的架构图如下所示: 令牌生...原创 2019-09-15 20:31:45 · 885 阅读 · 0 评论 -
15 服务容错可视化解决方案HyStrix Dashboard
1、基于HyStrix Dashboard实现容错可视化 基于Spring Cloud Hystrix实现微服务容错时,通过集成HyStrix Dashboard组件,可以实现微服务容错的可视化。 2、在Spring Cloud微服务项目中的具体实现 使用IntelJ IDEA打开一个集成了Spring Cloud Hystrix 组件的微服务项目,然后进行如下操作: (1)在pom...原创 2019-09-15 20:42:38 · 170 阅读 · 0 评论 -
16 基于Consul实现微服务架构下的服务注册与服务发现
1、环境 操作系统:macOS 分布式协调框架:Consul 1.6.1 2、安装Consul brew install consul 3、启动Consul consul agent -dev 4、查看Web控制台 通过浏览器打开Consul的Web控制台,查看Consul的运行情况:http://localhost:8500/ ...原创 2019-09-19 17:00:40 · 227 阅读 · 0 评论 -
17 微服务架构下使用Postgres数据库
1、安装 打开MacBook命令行窗口,执行如下命令: (1)查看可用版本Postgres brew search postgresql (2)安装Postgres brew install postgresql@9.5 -v 如果顺利安装成功,将会在安装结束后输出如下信息: If you need to have postgresql@9.5 first in yo...原创 2019-09-25 13:08:10 · 467 阅读 · 0 评论 -
18 基于Spring Cloud Zuul的接口鉴权实现
以RBAC权限管理体系为例,在Zuul的拦截器中基于访问URI可以实现用户的权限鉴别需求;鉴权拦截器示例如下所示: @Component public class AuthUserFilter extends ZuulFilter { @Override public String filterType() { return PRE_TYPE; // 定义过滤器...原创 2019-10-04 21:26:44 · 946 阅读 · 0 评论 -
19 配置Spring Cloud Zuul支持跨域
作为网关组件,Spring Cloud Zuul对于跨域的支持是必不可少的,一般有如下两种方式设置跨域: (1)在类或方法上增加@CrossOrigin注解 @RestController @RequestMapping("/goods") @CrossOrigin // 设置控制器支持跨域 public class GoodsController { @GetMapping("/...原创 2019-10-04 22:17:29 · 306 阅读 · 0 评论 -
11 分布式系统中基于Spring Cloud Zuul实现微服务网关
(1)创建项目 打开IntelJ IDEA,创建一个Spring Boot项目,在选择依赖包的步骤,勾选Spring Cloud 下边的Zuul,以及注册中心Eureka Client、配置中心Config Client。 选择项目类型为Spring Initializr设置项目的Group、Artifact、Package等信息添加项目的依赖:Zuul、Config、Eureka设置项目的存...原创 2019-09-13 00:03:19 · 317 阅读 · 0 评论 -
10 微服务架构下网关的技术选型及网关必备特征
服务网关是所有处于内网中的微服务的唯一入口,在进行网关组件的技术选型时,所选择的网关组件必须具备以下特性: 高可用 服务网关是对外的唯一关口,必须保证 7 * 24小时可用,持续提供稳定可靠的服务 高性能 所有的请求都会经过服务网关,它承受的压力是巨大的,所以必须保证它具备良好的性能,以应对高并发请求 高安全性 服务网关必须能够防止外部的恶意访问,确保内网各个微服务的安全 高扩展性 服务网...原创 2019-09-11 21:06:45 · 3146 阅读 · 0 评论 -
09 Spring Cloud Bus结合RabbitMQ动态刷新配置
Spring Cloud Bus结合RabbitMQ消息队列动态刷新配置架构图: (1)为配置中心Config Server端添加Spring Cloud Bus依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cl...原创 2019-09-10 21:34:49 · 407 阅读 · 0 评论 -
02 微服务注册中心Spring Cloud Eureka高可用配置
1、Eureka高可用原理 基于两两注册的方式,将多个Eureka注册中心相互注册,实现Eureka的高可用。 2、Eureka高可用实现 假设当前在服务器A(Eureka-1)、服务器B(Eureka-2)、服务器C(Eureka-3)分别部署了三个Eureka注册中心,这三个Eureka实例的注册地址分别为: Eureka-1:http://192.168.0.1:8761/eurek...原创 2019-09-04 15:54:28 · 154 阅读 · 0 评论 -
03 微服务配置中心:Spring Cloud Config
1、配置中心的作用 当使用Spring Cloud开发微服务项目时,即使是小一些的项目,微服务的数量一般都在30个以上,绝大部分微服务项目的微服务数量都是上百个的。 在这种情况下,如果还是一个微服务一个配置文件,修改起来工作量就非常的庞大,所以需要对微服务项目的配置进行统一的管理;因此,Spring Cloud Config应运而生。 在Spring Cloud Config,配置中心的架构...原创 2019-09-05 22:49:10 · 138 阅读 · 0 评论 -
04 服务容错:Spring Cloud Hystrix
1、为何要使用Hystrix 在开发微服务架构的项目时,微服务之间必然存在相互调用的关系,以一个电商项目为例,用户完成一个购物流程,至少会涉及到3个微服务:商品微服务、订单微服务、支付微服务,它们的调用关系如下图所示: 用户通过商品微服务ms-goods选择商品,通过订单微服务ms-order完成下单,通过支付微服务ms-pay完成订单的支付,在这个流程里面,订单微服务ms-order在抢...原创 2019-09-06 22:25:00 · 125 阅读 · 0 评论 -
05 服务网关:Spring Cloud Zuul
1、在Spring Cloud项目中引入Zuul依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-zuul</artifactId> </dependency&...原创 2019-09-07 23:08:36 · 157 阅读 · 0 评论 -
06 为注册中心Spring Cloud Eureka增加安全认证
1、为何要加安全认证 在开发Spring Cloud微服务项目时,Eureka默认是可以直接访问的,当项目上线部署时会暴露出很多安全问题,比如只要获取到Eureka注册中心的访问地址,就可以知悉该项目下所有的微服务信息,因此需要为线上生产环境的Eureka注册中心增加认证体系,只有通过安全校验的用户才有权访问。 2、开发安全的Spring Cloud Eureka 通过为Spri...原创 2019-09-08 23:41:34 · 241 阅读 · 0 评论 -
07 Spring Cloud Eureka 生产环境和开发环境的高可用配置
通过启动注册中心Eureka Server的多份实例(生产服务器上就是部署多份副本),并且将这些Eureka实例进行相互注册,就可以实现Eureka Server的高可用。 在本地开发和测试时,可以在IntelJ IDEA中的右上角处点击 Edit Configurations...菜单来创建多份运行实例并启动它们,来实现高可用: (1)创建多份实例 打开IntelJ IEDA,在右上角处找...原创 2019-09-10 21:23:24 · 1134 阅读 · 0 评论 -
08 Spring Cloud Config 生产环境和开发环境的高可用配置
通过启动注册中心Config Server的多份实例(生产服务器上就是部署多个副本),并且将这些实例都注册到Eureka注册中心,就可以实现Config Server的高可用。 在本地开发和测试时,可以在IntelJ IDEA中的右上角处点击 Edit Configurations...菜单来创建多份运行实例并启动它们,来实现高可用: (1)创建多份实例 在打开的Run/Debug Co...原创 2019-09-10 21:26:35 · 572 阅读 · 0 评论 -
01 前言:关于Spring Cloud的核心组件
在Spring Cloud生态体系内,最核心的五大部件成就了它如今的辉煌: 1、注册中心 在Spring Cloud中,注册中心有多个方案可选:Eureka、Zookeeper、Consul。 目前使用最多的是Eureka,如果熟悉阿里Dubbo框架的话,也可以采用Zookeeper作为注册中心,毕竟熟悉的东西用起来更得心应手。 2、配置中心 Spring Cloud Config...原创 2019-08-30 23:55:41 · 277 阅读 · 0 评论