SpringCloud
1.服务
服务注册与发现
服务调用
服务熔断
负载均衡
服务降级
服务消息队列
配置中心管理
服务网关
服务监控
全链路追踪
自动化构建部署
服务定时任务调度操作
2.服务注册
CAP原则
-
Consistency(一致性)
- 在分布式系统中的所有数据备份,在同一时刻是否同样的值。(等同于所有节点访问同一份最新的数据副本)
-
Availability(可用性)
- 保证每个请求不管成功或者失败都有响应。
-
Partition tolerance(分区容错性)
- 系统中任意信息的丢失或失败不会影响系统的继续运作。
-
AP(Eureka);CP(Zookeeper/Consul)
Eureka
-
Eurka Server提供服务注册服务
- 各个微服务节点通过配置启动后,会在EurekaServer中进行注册,这样EurekaServer中的注册服务表中将会存储所有可用服务节点的信息,服务节点的信息可以在界面中直观看到。
-
EurekaClient通过注册中心进行访问
- 是一个JAVA客户端,用于简化Eureka Server的交互,客户端同时具备一个内置的使用,轮询负载算法的负载均衡器。在应用启动后,将会向Eureka Server发送心跳(默认周期为30s)。如果Eureka Server在多个心跳周期内没有接收到某个节点的心跳,EurekaServer将会从服务注册表中把这个服务节点移除(默认90s)。
-
相关配置
-
application.yml配置
-
eureka:
instance:
hostname: localhost
client:
register-with-eureka: false
fetch-registry: true
service-url:
defaultZone: http:// e u r e k a . i n s t a n c e . h o s t n a m e : {eureka.instance.hostname}: eureka.instance.hostname:{server.port}/eureka/- @EnableEurekaServer注册
-
eureka:
client:
#表示是否将自己注册进EurekaServer默认为true。
register-with-eureka: true
#是否从EurekaServer抓取已有的注册信息,默认为true。单节点无所谓,集群必须设置为true才能配合ribbon使用负载均衡
fetchRegistry: true
serviceUrl:
#单机版
defaultZone: http://localhost:7001/eureka
集群版
#defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka
- @EnableEurekaClient注册
-
-
pom文件配置
-
Zookeeper
-
分布式协调工具,可以实现注册中心功能
-
关闭服务器防火墙后启动Zookeeper服务器
-
Zookeeper扶我去取代Eureka服务器,zk作为服务注册中心
-
常用注解
- @EnableDiscoveryClient
Consul
- 介绍:是一套快院的分布式服务发现和配置管理系统,由HashiCorp公司用Go语言开发
- 提供了微服务中的服务治理,配置中心,控制总线等功能。
- 优点:基于raft协议,比较简洁;支持健康检查,同时支持HTTP和DNS协议支持跨数据汇总新的WAN集群,提供图形界面,跨平台,支持Linux、Mac、Windows.