运行微服务的一个实例,URL是硬编码在客户端中,以及服务与服务间的调用中。现实情况中,此办法不
妥,因为服务的实例可以有多个,此时,我们应当使用一个load balancer或一个本地DNS服务器来抽象
掉实际实例的位置,在客户端中配置的就应该是一个别名或load balancer的地址。load balancer
之后接收到别名,将其解析成可用实例中的一个。用此方式,我们就能配置许多实例,它还帮助处理
服务器失败问题,这对于客户端来说是透明的。
上面说的主意可以用Spring Cloud Netflix Ribbon来实现。Ribbon是一个客户端load balancer,
它可以在一组服务器上执行round-robin load balancing。Ribbon库也可以有其他负载均衡算法。
Spring Cloud提供来一种声明的方式来配置和使用Ribbon client。
如上图所示,Ribbon客户端从Config服务器获取所有可用微服务实例的一个列表,并且,默认运用
round-robin负载均衡算法。
为了使用Ribbon客户端,需添加如下maven依赖:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-ribbon</artifactId>
</dependency>
修改Booking微服务配置文件,booking-service.properties,添加一个新的属性用来配置
一组Fare微服务:
fares-proxy.ribbon.listOfServers=localhost:8080,localhost:8081
此时要修改原先的FareServiceProxy类,以便使用Ribbon客户端,注意到原先@RequestMapping
中的value需要从/get改成/fares/get,这样的话,就很容易把host name和port移到配置文件中:
@FeignClient(name="fares-proxy")
@RibbonClient(name="fares")
public interface FareServiceProxy {
@RequestMapping(value = "fares/get", method=RequestMethod.GET)
这个时候,我们就能运行2个Fares微服务实例,一个在8080,一个在8081:
java -jar -Dserver.port=8080 fares-1.0.jar
java -jar -Dserver.port=8081 fares-1.0.jar
运行Booking微服务,当它启动时,它的CommandLineRunner会自动插入一个booking记录,这会走
第一个服务器。
当运行website项目,它调用Booking服务,该请求走第2个服务器。
相关推荐
Netflix Ribbon是Netflix发布的云中间层服务开源项目,主要...在Netflix的架构中,Ribbon通常与Eureka一起使用,Eureka是一个服务治理组件,用于服务的注册与发现,而Ribbon则负责在多个服务实例之间进行负载均衡。
1. **服务发现**:Consul通过DNS或HTTP接口实现服务发现,允许开发人员轻松地注册、发现和注销服务,从而实现高可用和负载均衡。 2. **健康检查**:Consul具备强大的健康检查功能,可以监控服务的状态并根据设定的...
Ribbon 用于动态路由和负载均衡 Hystrix 提供了断路器功能,以处理无响应的 API 调用 Turbine 提供了关于 Hystrix 的全部可用断路器的信息 标签:Spring
2. 负载均衡:Spring Cloud支持负载均衡的能力,通过集成Ribbon和Feign等组件,可以实现对服务的自动负载均衡,提高系统的可用性和性能。 3. 服务调用和熔断:Spring Cloud通过集成Ribbon和Hystrix等组件,提供了...
Spring Cloud是一个用于构建分布式系统的开源框架,它基于Spring Boot提供了丰富的工具和库,用于快速开发和部署分布式应用程序。以下是一份关于Spring Cloud的笔记的可能内容: ...- **负载均衡(Ribbon)
springcloud教学视频,Eureka:基于REST服务的分布式中间件,主要用于服务管理。 Hystrix:容错框架,通过添加延迟阀值以及容错的逻辑,来...Ribbon:负载均衡框架。 Zuul:为微服务集群提供过代理、过滤、路由等功能。
微服务之间使用负载均衡(ribbon); 微服务网关路由配置; 微服务断路器(hystrix)及监听服务等 启动步骤: 1.启动server-eureka,端口6600,微服务注册中心 访问http://localhost:6600,查看效果 2.启动...
该系统涉及 分销商、供应商、平台管理员等多种分销角色,技术采用spring-cloud 2.0微服务化框架、eureka注册中心、ribbon负载均衡、hystrix限流降级、spring security权限控制、redis缓存 elasticsearch索引等主流...
word源码java spring cloud 一、doc 1、deploy-shell: ...实现负载均衡 3、集成 swagger2 实现在线接口 4、实现统一异常处理 五、springcloud-provider 1、集成注册中心eureka 2、实现了一个简单的
Ribbon:客户端负载均衡 Feign:基于Ribbon和Hystrix的声明式服务调用组件 Zuul:网关组件 Spring Cloud Bus:事件、消息总线,用于传播集群中的状态变化或事件 Spring Cloud Consul:服务发现与配置管理工具 Spring...
<module>orion-ribbon</module> 负载均衡算法 <module>orion-archer</module> 远程服务调度框架 <module>orion-monitor</module> 链路监控 <module>orion-client</module> 客户端测试包 <module>orion-server...
sc-eureka:Netflix Eureka云端负载均衡,一个基于REST的服务,用于定位服务,以实现云端的负载均衡和中间层服务器的故障转移。 sc-consumer-freemarker:客户端,即consumer服务消费者,前端采用的是freemarker,...
eureka用户服务注册,config用于服务注册,config-client作为客户端注册,通过ribbon实现了客户端访问study-springcloud-service-1,study-springcloud-service-2间负载均衡 等 由于上传限制 ,另一部分请参考 study...
eureka用户服务注册,config用于服务注册,config-client作为客户端注册,通过ribbon实现了客户端访问study-springcloud-service-1,study-springcloud-service-2间负载均衡 等,由于上传文件大小限制 另一部分请参考...
一个java客户端,用来简化与服务器的交互、作为轮询负载均衡器,并提供服务的故障切换支持。 2、Zuul 基于JVM路由和服务端的负载均衡器 类似nginx,反向代理的功能 3、Hystrix 提供了熔断、隔离、Fallback、cache、...
它主要提供的模块包括:服务发现(Eureka),断路器(Hystrix),智能路由(Zuul),客户端负载均衡(Ribbon)等。 2)Feign Feign是一个声明式的伪Http客户端,它使得写Http客户端变得更简单。 使用Feign,只...
将服务保留的rest进行代理和网关控制,除了平常经常使用的node.js、nginx外,Spring Cloud系列的zuul和ribbon,可以帮我们进行正常的网关管控和负载均衡。其中扩展和借鉴国外项目的扩展基于JWT的Zuul限流插件,方面...
spring cloud robbin:使用客户端负载均衡,进行服务提供者的调用 spring cloud feign:分装了ribbon的使用,直接使用注解的方式,进行调用 弹簧靴启动:弹簧靴项目的健康检查,此项目整合了应用服务的健康状态 ...
使用Redis来缓存常用查询结果提高系统性能,以及SSO支持,使用阿里OSS做的图片存储服务器,使用Docker进行容器化部署,解决部署时的繁琐,使用Nginx对商城前台家用进行负载均衡的访问。前台系统:用户可以在前台系统...
它使用功能区作为负载均衡器 article-service :使用Spring Boot创建的简单REST服务作为示例 author-service :使用Spring Boot创建的简单REST服务作为示例 服务: api-gateway , article-service和author-service...