微服务之springCloud实现分析

1.springcloud组件有那些?

1)eureka 实现微服务的注册和发现,包含三个部分:服务发现组件、服务的提供者、服务的消费者;
2)ribbon 实现微服务负载均衡;
3)foreign eureka 和ribbon的结合体,实现微服务API 请求的转发和调度;
4)zuul 服务网关,实现路由服务转发,同时具备权限控制功能;
5)histy 熔断器,防止出现服务出现故障时还被持续访问,最终导致自身服务的瘫痪。
6)config 配置中心,用于分布式系统的配置,分为两部分,一是Config Server,二是Config Client。

2.springcloud组件内部具体如何实现?

2.1 eureka实现

服务注册表
是服务发现组件的核心,它用来记录各个微服务的信息,例如微服务的名称、IP、端口等。服务注册表提供查询API和管理API,查询API用于查询可用的微服务实例,管理API用于服务的注册和注销。

2.1.1 服务如何注册

1)注册IP、端口、服务名称
Eureka Server 提供服务发现的能力,各个微服务启动时,会向Eureka Server注册自己的信息(例如IP、端口、微服务名称等),Eureka Server会存储这些信息。
Eureka Client是一个Java客户端,用于简化与Eureka Server的交互。
2)注册表数据同步
默认情况下,Eureka Server同时也是Eureka Client。多个Eureka Server实例,相互之间通过复制的方式,来实现服务注册表中的数据的同步。

2.1.2 如何发现服务

1)获取网络地址、调用接口
服务消费者可从服务发现组件查询服务提供者的网络地址,并使用该地址调用服务提供者的接口;
2)缓存注册表信息
Eureka Client 会缓存服务注册表中的信息。这种方式有一定的优势——首先,微服务无须每次请求都查询Eureka Server 的压力;其次即使Eureka Server所有节点都宕掉,服务消费者依然可以使用缓存中的信息找到服务提供者并完成调用。

2.1.3 服务检查和维护服务链接

1)心跳检查
微服务启动后会周期性(默认30秒)地向Eureka Server发送心跳以续约自己的“租期”。
2)超时注销
如果Eureka Server在一定时间内没有接收到某个微服务实例的心跳,Eureka Server将会注销该实例(默认90秒)。
3)注册表自动刷新
微服务网络地址发生变更(例如实例增减或者IP端口发生变化等)时,会重新注册到服务发现组件。使用这种方式,服务消费者就无须人工修改提供者的网络地址了。

2.1.3 eureka 高可用

Eureka Server可以通过运行多个实例并相互注册的方式实现高可用部署,Eureka Server实例会彼此增量地同步信息,从而确保所有节点数据一致。事实上,节点之前相互注册是Eureka Server的默认行为,前面单节点Eureka Server,额外配置了eureka.client.registerWithEureka=false、eureka.client.fetchRegistry=false。

2.1.4 eureka 安装配置

参考:
https://blog.csdn.net/chen497147884/article/details/79861084

3.springcloud微服务API请求如何转发?

5.springcloud微服务如何熔断,如何放置雪崩?

6.springcloud服务如何降级?

7.springcloud配置文件如何配置?

发布了113 篇原创文章 · 获赞 25 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/leinminna/article/details/105605491