扫码关注公众号
Hystrix能干嘛?
服务降级服务熔断服务限流接近实时的监控
微服务之间是如何通讯的?
第一种:远程过程调用(RemoteProcedureInvocation)直接通过远程过程调用来访问别的service。示例:REST、gRPC、Apache、Thrift优点:简单,常见。因为没有中间件代理,系统更简单缺点:只支持请求/响应的模式,不支持别的,比如通知、请求/异步响应、发布/订阅、发布/异步响应降低了可用性,因为客户端和服务端在请求过程中必须都是可用的第二种:消息使用异步消息来做服务间通信。服务间通过消息管道来交换消息,从而通信。示例:ApacheKafka、RabbitMQ优点:把客户端和服务端解耦,更松耦合提高可用性,因为消息中间件缓存了消息,直到消费者可以消费。支持很多通信机制比如通知、请求/异步响应、发布/订阅、发布/异步响应。缺点:消息中间件有额外的复杂性
什么是服务熔断,什么是服务降级
服务熔断:熔断机制是应对雪崩效应的一种微服务链路保护机制。当扇出链路的某个微服务不可用或者响应时间太长时,会进行服务的降级,进而熔断该节点微服务的调用,快速返回”错误”的响应信息。当检测到该节点微服务调用响应正常后恢复调用链路。在SpringCloud框架里熔断机制通过Hystrix实现。Hystrix会监控微服务间调用的状况,当失败的调用到一定阈值,缺省是5秒内20次调用失败就会启动熔断机制。熔断机制的注解是@HystrixCommand。Hystrix服务降级:其实就是线程池中单个线程障处理,防止单个线程请求时间太长,导致资源长期被占有而得不到释放,从而导致线程池被快速占用完,导致服务崩溃。Hystrix能解决如下问题:请求超时降级,线程资源不足降级,降级之后可以返回自定义数据线程池隔离降级,分布式服务可以针对不同的服务使用不同的线程池,从而互不影响自动触发降级与恢复实现请求缓存和请求合并
什么是 Eureka服务注册与发现
Eureka是Netflix的一个子模块,也是核心模块之一。Eureka是一个基于REST的服务,用于定位服务,以实现云端中间层服务发现和故障转移。服务注册与发现对于微服务架构来说是非常重要的,有了服务发现与注册,只需要使用服务的标识符,就可以访问到服务,而不需要修改服务调用的配置文件了。功能类似于dubbo的注册中心,比如Zookeeper。