微服务
秋洛颍
这个作者很懒,什么都没留下…
展开
-
服务网关——Zuul
是什么说Zuul之前,我们先来说一下之前我们做过的项目架构,我们之前使用Eureka实现服务注册中心以及服务注册与发现功能,而服务间通过Ribbon或OpenFeign实现服务的消费以及均衡负载。为了使得服务集群更为健壮,使用Hystrix的融断机制来避免在微服务架构中个别服务出现异常时引起的故障蔓延。在这样的架构中,我们的服务集群虽然注册到了Eureka中,但是确实一个对外的服务,通过负载均衡公开至服务的调用方。这样直接暴露我们的服务地址存在很大的不足:破坏了服务无状态特点。为了保证对外服务原创 2020-06-03 10:15:09 · 209 阅读 · 0 评论 -
服务调用——OpenFeign
之前有一篇文章讲解了Ribbon的负载均衡功能,服务调用——Ribbon,当时的消费者服务调用代码如下:分析上面的结构,我们能发现什么问题?1.通过RestTemplate,我们需要访问一个url地址。2、需要手动拼接路径和参数。3、对于多个方法,代码将会大量重复,并不优雅。那么有没有一种更优雅的方式,来解决服务调用问题呢?OpenFeign出现了。是什么Fegin本意是“伪装”,可以把Rest的请求进行隐藏,伪装成类似SpringMVC的Controller一样。你不用再自己拼接url,原创 2020-06-03 08:17:30 · 264 阅读 · 0 评论 -
服务降级——Hystrix
是什么Hystix是Netflix开源的一个延迟和容错库,用于隔离访问远程服务、第三方库,防止出现级联失败。这么说,可能大家还是不明白,那Hystrix到底是什么呢?我们来模拟一个场景,在微服务的大环境下,一个请求可能调用多个后端服务,而某一个后端服务也可能需要调用其他的服务,如果此时,其中一个服务宕机或出现异常,导致服务无法返回结果,那么调用这个服务的其他服务将进行等待状态,如果此时又来了多个同样的请求,那么这些请求也将处于等待阻塞的状态,由于服务器支持的线程和并发的数量有限,请求一直阻塞将导致服务原创 2020-06-02 16:43:45 · 247 阅读 · 0 评论 -
服务调用——Ribbon
什么是Ribbon在微服务项目中,一个后端服务我们一般会配置一个集群在不同服务器中进行启动,用来保证即使一个服务器宕机其他服务器也能进行服务提供。我们获取的服务列表中就会有多个,那么到底该访问哪一个呢?一般这种情况下我们就需要编写负载均衡算法,在多个实例列表中进行选择。Ribbon是netflix发布的负载均衡器,有助于控制HTTP和TCP客户端的行为,为Ribbon配置服务提供者列表后,Ribbon就可基于某种负载均衡算法,自动的帮助服务消费者去请求。Ribbon默认为我们提供了很多的负载均衡算法(轮原创 2020-06-02 09:57:51 · 527 阅读 · 0 评论 -
服务注册中心——Eureka
服务注册中心随着微服务的崛起,市面上出现了各种各样的服务注册中心,优秀的服务框架往往会支持多种配置中心,但是注册中心的选择依然与服务框架强关联。ZooKeeper是一款经典的服务注册中心产品(虽然它最初的定位并不在于此),在很长一段时间里,它是国人在提起RPC服务注册中心时心里想到的唯一选择,这很大程度上与Dubbo在中国的普及程度有关。Consul和Eureka都出现于2014年,Consul在设计上把很多分布式服务治理上要用到的功能都包含在内,可以支持服务注册、健康检查、配置管理、Service M原创 2020-06-01 15:45:59 · 252 阅读 · 0 评论