关于微服务

参考B站:BV1gMm5YDEDy

一、Nacos

一个更易于构建云原生应用的动态服务发现,配置管理和服务管理平台。

Nacos致力于帮助您发现、配置和管理微服务,提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。

NameSpace:实现环境隔离,默认值public。

Group:不同的service可以组成一个Group,默认值Default-Group。

Service:服务名称。

Cluster:对指定的微服务虚拟划分,默认值Default。

Instance:某个服务的具体实例。

二、负载均衡

1.负载均衡的两种方式

  • 服务器端负载均衡
  • 客户端负载均衡

2.Ribbon(Netflix开源的客户端负载均衡器)

引入依赖,增加配置,启动注解 

三、使用Feign实现远程HTTP调用

1.常见HTTP客户端

HttpClient

Okhttp

HttpURLConnection

RestTemplate

Feign是Netflix开源的声明式HTTP客户端。

【Feign和OpenFeign的区别:Spring Cloud openfeign对Feign进行了增强,使其支持Spring MVC注解,另外整合了Ribbon和Eureka,从而使得Feign使用更加方便。 】

三、容错

产生服务雪崩的常见原因:程序Bug,大流量请求,硬件故障,缓存击穿。

常见容错方案:隔离,超时,限流,熔断,降级

1.隔离

2.超时

在上游服务调用下游服务的时候,上游服务设置一个最大响应时间,如果超过这个时间,下游未作出反应,上游服务就断开请求,释放掉线程。

3.限流

限制请求核心服务提供者的流量,使大流量拦截在核心服务之外,这样可以更好的保证核心服务提供者不出问题,对于一些出问题的服务可以限制流量访问。

4.熔断(牺牲局部,保全整体)

在互联网系统中,当下游服务因访问过大而响应变慢或失败,上游服务为了保护系统整体的可用性,可以暂时切断对下游服务的调用。

  • 熔断关闭状态(Closed)

服务没有故障时,熔断器所处的状态,对调用方的调用不做任何限制。

  • 熔断开启状态(Open)

后续对该服务接口的调用不再经过网络,直接执行本地的fallback方法。

  • 半熔断状态(Half-Open)

尝试恢复服务调用,允许有限的流量调用该服务,并监控调用成功率。如果成功率达到预期,则说明服务已恢复,进入熔断关闭状态;如果成功率依旧很低,则重新进入熔断关闭状态。

5.降级

我们调用的服务异常超时等原因不能正常返回的情况下,,我们返回一个缺省的值。

常见的容错组件:Hystrix Resilience4J Sentinel

四、Sentinel

Sentinel是面向分布式服务架构的高可用流量防护组件,主要以流量为切入点,从限流、流量控制、熔断降级、系统负载保护、热点防护等多个维度来帮助开发者保障微服务的稳定。

Sentinel分为两个部分:

核心库(Java客户端)不依赖任何框架/库,能够运行于所有Java运行时环境,同时对Dubbo/Spring Cloud等框架也有较好的支持。

控制台(DashBoard)基于Spring Boot开发,打包后可以直接运行,不需要额外的Tomcat等应用容器。

功能和设计理念

Sentinel的主要功能就是容错。

1.流量控制(上游)

Sentinel作为一个调配器,可以根据需要把随机的请求调整为合适的形状。

2.熔断降级(下游)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值