SpringCloud是一系列框架的有序集合,这些框架提供了分布式系统构建工具
SpringCloud包含的项目:
服务注册与发现: Alibaba Nacos、Netfix Eureka、Apache Zookper
分布式配置中心: Alibaba Naocs、Spring Cloud Config
网关: Spring Cloud Gateway、Netfix Zull
限流熔断器: Alibaba Sentinel、Netfix Hystrix、Resilience4j
服务调用: RestTemplate、Open Feign、Dubbo Spring Cloud
负载均衡: Spring Cloud LoadBalancer、Netfix Rubbon
消息总线: Spring Cloud Bus
分布式
CAP:Consistency(一致性) Availability(可用性) Partition Tolerance(分区容错性)
微服务规定原则:CP / AP 三选二挑一
C:保证微服务之间的数据强一致性,如zookeeper 发送消息必须等待其它节点都有反馈结果才可成功
A:保证微服务之间的可用,如某个节点掉线(需返回错误响应结果)但其他节点可正常使用则不影响整体的服务调用流程
P:保证由于网络故障原因(网络不可靠运行)引起的服务波动不影响整体的系统运行,分布式系统的基石
nacos:阿里开源的微服务注册中心
服务注册:微服务调用注册中心客服端服务发送微服务实例信息完成注册
服务心跳:客户端会以默认5秒的频率向服务端发送心跳,告知注册中心当前服务的健康状态
服务健康检查:服务端启用定时任务默认每15秒检查一次注册服务列表的健康状态如超过25秒未响应则将服务置不健康状态并下线
服务发现:注册中心的服务能被其它服务检测到且可调用
服务同步:CP
nacos 本地单机采用的是内嵌的derby数据库,分布式下需配置外接数据库(目前只支持Mysql)