SpringCloud
SpringCloud
杨林伟
像火箭科学家一样思考!
展开
-
24SpringCloud - Spring Cloud Bus 消息总线集成(RabbitMQ)
Config Client实现配置的实时更新,我们可以使用/refresh 接口触发,如果所有客户端的配置的更改,都需要手动触发客户端/refresh ,当服务越来越多的时候,那岂不是维护成本很高,显然不太合适,而使用Spring Cloud Bus消息总线实现方案,可以优雅的解决以上问题,那就是通过消息代理中间件RabbitMQ加Git的Webhooks來触发配置的更新,那具体是怎么实现的,我会...原创 2019-05-23 10:30:00 · 1440 阅读 · 3 评论 -
23SpringCloud - Spring Cloud Config 中使用 Refresh
上一篇文章讲了SpringCloudConfig 集成Git仓库,配和 Eureka 注册中心一起使用,但是我们会发现,修改了Git仓库的配置后,需要重启服务,才可以得到最新的配置,这一篇我们尝试使用 Refresh 实现主动获取 Config Server 配置服务中心的最新配置。添加依赖<!-- actuator 监控 --><dependency> &l...原创 2019-05-23 10:11:26 · 1454 阅读 · 0 评论 -
22SpringCloud - Spring Cloud Config 集成 Eureka 服务
在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件。在Spring Cloud中,有分布式配置中心组件spring cloud config ,它支持配置服务放在配置服务的内存中(即本地),也支持放在远程Git仓库中。在spring cloud config组件中,分两个角色,一是config server,二是config client,业界也有...原创 2019-05-23 10:02:57 · 588 阅读 · 0 评论 -
21SpringCloud - 服务网关 Zuul Filter 使用
zuul 执行流程Zuul大部分功能都是通过过滤器来实现的。Zuul中定义了四种标准过滤器类型,这些过滤器类型对应于请求的典型生命周期。PRE: 这种过滤器在请求被路由之前调用。我们可利用这种过滤器实现身份验证、在集群中选择请求的微服务、记录调试信息等。ROUTING: 这种过滤器将请求路由到微服务。这种过滤器用于构建发送给微服务的请求,并使用Apache HttpClient或Netfi...原创 2019-05-23 09:31:24 · 550 阅读 · 0 评论 -
20SpringCloud - 服务网关zuul路由规则
网关的默认路由规则Spring cloud zuul 默认情况下,Zuul会代理所有注册到Eureka Server的微服务,并且Zuul的路由规则如下:[http://ZUUL_HOST:ZUUL_PORT/]()微服务在Eureka上的serviceId/**会被转发到serviceId对应的微服务。我们注释 spring-cloud-zuul-service项目中关于路由的配置:#zu...原创 2019-05-22 11:21:53 · 464 阅读 · 0 评论 -
19SpringCloud - 服务网关zuul服务转发
添加依赖<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId></dependency>修改配置配置文件 application.yml...原创 2019-05-22 11:19:02 · 471 阅读 · 0 评论 -
18SpringCloud - 服务网关 zuul项目示例
新建项目spring-cloud-zuul-service添加依赖<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zuul</artifactId></dependency>...原创 2019-05-22 11:11:06 · 340 阅读 · 0 评论 -
17SpringCloud - 服务网关 zuul简介
服务网关是微服务架构中一个不可或缺的部分。通过服务网关统一向外系统提供REST API的过程中,除了具备服务路由、均衡负载功能之外,它还具备了权限控制等功能。Spring Cloud Netflix中的Zuul就担任了这样的一个角色,为微服务架构提供了前门保护的作用,同时将权限控制这些较重的非业务逻辑内容迁移到服务路由层面,使得服务集群主体能够具备更高的可复用性和可测试性。路由在微服务体系结构的...原创 2019-05-22 11:02:05 · 497 阅读 · 0 评论 -
16SpringCloud - 断路器项目示例(Hystrix Dashboard)
简介Hystrix Dashboard在微服务架构中为例保证程序的可用性,防止程序出错导致网络阻塞,出现了断路器模型。断路器的状况反应了一个程序的可用性和健壮性,它是一个重要指标。Hystrix Dashboard是作为断路器状态的一个组件,提供了数据监控和友好的图形化界面。添加依赖<dependency> <groupId>org.springframewo...原创 2019-05-22 10:20:49 · 404 阅读 · 0 评论 -
15SpringCloud - 断路器项目示例(Feign Hystrix)
在 Feign中使用断路器添加依赖Feign是自带断路器的,如果在Dalston版本的Spring Cloud中,它没有默认打开。需要需要在配置文件中配置打开它,本项目我们是不需要打开的。feign: hystrix: enabled: true服务注册修改HomeClient类 ,@FeignClient 注解,加上fallbackFactory指定新建的HystrixC...原创 2019-05-22 10:09:02 · 434 阅读 · 0 评论 -
14SpringCloud - 断路器项目示例(Ribbon Hystrix)
在 Ribbon中使用断路器添加依赖在项目pom 加上hystrix的依赖<!-- hystrix 断路器 --><dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-hystrix<...原创 2019-05-22 10:02:52 · 385 阅读 · 0 评论 -
13SpringCloud - 断路器(Hystrix)
断路器模式源于Martin Fowler的Circuit Breaker一文。“断路器”本身是一种开关装置,用于在电路上保护线路过载,当线路中有电器发生短路时,“断路器”能够及时的切断故障电路,防止发生过载、发热、甚至起火等严重后果。在分布式架构中,断路器模式的作用也是类似的,当某个服务单元发生故障(类似用电器发生短路)之后,通过断路器的故障监控(类似熔断保险丝),向调用方返回一个错误响应,而不...原创 2019-05-22 09:42:25 · 372 阅读 · 0 评论 -
12SpringCloud - 断路器(Hystrix)引入
在微服务架构中,根据业务来拆分成一个个的服务,服务与服务之间可以相互调用(RPC),在Spring Cloud可以用RestTemplate+Ribbon和Feign来调用。为了保证其高可用,单个服务通常会集群部署。由于网络原因或者自身的原因,服务并不能保证100%可用,如果单个服务出现问题,调用这个服务就会出现线程阻塞,此时若有大量的请求涌入,Servlet容器的线程资源会被消耗完毕,导致服务...原创 2019-05-22 09:32:48 · 306 阅读 · 0 评论 -
11SpringCloud - Feign项目导入简述
添加依赖新建项目 spring-cloud-feign-consumer pom.xml中引入需要的依赖内容:<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-feign</artifactId...原创 2019-05-22 09:24:00 · 685 阅读 · 0 评论 -
10SpringCloud - Feign简介
Feign是一个声明式的伪Http客户端,它使得写Http客户端变得更简单。使用Feign,只需要创建一个接口并注解,它具有可插拔的注解特性,可使用Feign 注解和JAX-RS注解,Feign支持可插拔的编码器和解码器,Feign默认集成了Ribbon,并和Eureka结合,默认实现了负载均衡的效果。Feign 具有如下特性:可插拔的注解支持,包括Feign注解和JAX-RS注解支持可...原创 2019-05-22 09:16:26 · 346 阅读 · 0 评论 -
09SpringCloud - Ribbon项目示例
服务提供者在项目:spring-cloud-eureka-provider-1,spring-cloud-eureka-provider-2,spring-cloud-eureka-provider-3的启动类,都加入@Value("${server.port}"),修改home()方法, 来区分不同端口的Controller 响应,因为接下来,使用ribbon做均衡需要测试需要使用到。@Sp...原创 2019-05-21 16:22:35 · 391 阅读 · 0 评论 -
08SpringCloud - Ribbon介绍
Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具。它是一个基于HTTP和TCP的客户端负载均衡器。它可以通过在客户端中配置ribbonServerList来设置服务端列表去轮询访问以达到均衡负载的作用。Ribbon是什么?Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法,将Netflix的中间层服务连接在一...原创 2019-05-21 16:11:05 · 282 阅读 · 0 评论 -
07SpringCloud - Consul项目示例
新建项目:spring-cloud-consul-client添加依赖在项目 spring-cloud-consul-client pom.xml中引入需要的依赖内容:<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-clou...原创 2019-05-21 15:52:17 · 517 阅读 · 0 评论 -
06SpringCloud - Consul高可用及搭建步骤
Consul 的高可用Consul Cluster集群架构图如下:这边准备了三台Centos 7.3的虚拟机,主机规划如下,供参考:搭建步骤在 node1 机器上启动 Consulcd /opt/mkdir dataconsul agent -data-dir /opt/data -node=192.168.252.121 -bind=0.0.0.0 -datacenter=dc...原创 2019-05-21 15:33:39 · 927 阅读 · 0 评论 -
05SpringCloud - Consul常用命令
常用命令命令解释示例agent运行一个consul agentconsul agent -devjoin将agent加入到consul集群consul join IPmembers列出consul cluster集群中的membersconsul membersleave将节点移除所在集群consul leaveconsul agen...原创 2019-05-21 14:42:53 · 383 阅读 · 0 评论 -
05SpringCloud - Consul 环境搭建
参考Spring Cloud 官方文档Consul 官方文档要想利用Consul提供的服务实现服务的注册与发现,我们需要搭建Consul Cluster 环境。在Consul方案中,每个提供服务的节点上都要部署和运行Consul的agent,所有运行Consul agent节点的集合构成Consul Cluster。Consul agent有两种运行模式:Server和Client。...原创 2019-05-21 14:30:47 · 471 阅读 · 0 评论 -
04SpringCloud 之 Consul 简介
Spring Cloud Consul 项目是针对Consul的服务治理实现。Consul是一个分布式高可用的系统,具有分布式、高可用、高扩展性。Consul 是 HashiCorp 公司推出的开源工具,用于实现分布式系统的服务发现与配置。与其他分布式服务注册与发现的方案,Consul的方案更“一站式” ,内置了服务注册与发现框 架、具有以下性质:分布一致性协议实现健康检查Key/Va...原创 2019-05-21 10:10:33 · 407 阅读 · 0 评论 -
03SpringCloud服务的注册与发现(Service Provider)
服务提供方:将自身服务注册到 Eureka 注册中心,从而使服务消费方能够找到添加依赖在项目 spring-cloud-eureka-provider pom.xml中引入需要的依赖内容:<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>s...原创 2019-05-18 17:53:51 · 958 阅读 · 1 评论 -
02SpringCloud服务的注册与发现(Eureka Server)
服务治理由于Spring Cloud为服务治理做了一层抽象接口,所以在Spring Cloud应用中可以支持多种不同的服务治理框架,比如:Netflix Eureka、Consul、Zookeeper。在Spring Cloud服务治理抽象层的作用下,我们可以无缝地切换服务治理实现,并且不影响任何其他的服务注册、服务发现、服务调用等逻辑。Spring Cloud EurekaSpring C...原创 2019-05-18 16:26:09 · 335 阅读 · 0 评论 -
01SpringCloud简介
Spring Cloud 是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中涉及的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一种简单的开发方式。Spring Cloud包含了多个子项目(针对分布式系统中涉及的多个不同开源产品),比如:Spring Cloud Config、Spring Clo...原创 2019-05-18 15:42:08 · 380 阅读 · 0 评论