SpringCloud
SpringCloud介绍
Spring Cloud provides tools for developers to quickly build some of the common patterns in distributed systems (e.g. configuration management, service discovery, circuit breakers, intelligent routing, micro-proxy, control bus, one-time tokens, global locks, leadership election, distributed sessions, cluster state).
SpringCloud的全量技术图
注册中心的对比
现在大部分服务都是有注册中心的
主流的有dubbo的zk和springcloud的euerka
SpringCloud的注册中心可以换成ZK
https://www.cnblogs.com/toov5/p/9952131.html
在SpringCloud的euerka中 注册中心本身就是一个服务
所以是包含Client 和 Server的
- spring-cloud-netflix-eureka-server.jar
自动装配bean META-INFO/Spring.factors EurekaServerAutoConfiguration
一个eurekaClientConfigBean 这里定义了client的配置 eureka.client - spring-cloud-netflix-eureka-server.jar
自动装配bean META-INFO/Spring.factors EurekaClientAutoConfiguration EurekaDiscoveryClientConfiguration
有配置文件 EurekaServerConfigBean#EurekaServerConfig eureka.server
注意 对zone和region理解:
https://www.cnblogs.com/junjiang3/p/9061867.html
常用的配置和含义
Eureka instance 配置项:
#服务注册中心实例的主机名
eureka.instance.hostname=localhost
#注册在Eureka服务中的应用组名
eureka.instance.app-group-name=
#注册在的Eureka服务中的应用名称
eureka.instance.appname=
#该实例注册到服务中心的唯一ID
eureka.instance.instance-id=
#该实例的IP地址
eureka.instance.ip-address=
#该实例,相较于hostname是否优先使用IP
eureka.instance.prefer-ip-address=false
#用于AWS平台自动扩展的与此实例关联的组名,
eureka.instance.a-s-g-name=
#部署此实例的数据中心
eureka.instance.data-center-info=
#默认的地址解析顺序
eureka.instance.default-address-resolution-order=
#该实例的环境配置
eureka.instance.environment=
#初始化该实例,注册到服务中心的初始状态
eureka.instance.initial-status=up
#表明是否只要此实例注册到服务中心,立马就进行通信
eureka.instance.instance-enabled-onit=false
#该服务实例的命名空间,用于查找属性
eureka.instance.namespace=eureka
#该服务实例的子定义元数据,可以被服务中心接受到
eureka.instance.metadata-map.test = test
#服务中心删除此服务实例的等待时间(秒为单位),时间间隔为最后一次服务中心接受到的心跳时间
eureka.instance.lease-expiration-duration-in-seconds=90
#该实例给服务中心发送心跳的间隔时间,用于表明该服务实例可用
eureka.instance.lease-renewal-interval-in-seconds=30
#该实例,注册服务中心,默认打开的通信数量
eureka.instance.registry.default-open-for-traffic-count=1
#每分钟续约次数
eureka.instance.registry.expected-number-of-renews-per-min=1
#该实例健康检查url,绝对路径
eureka.instance.health-check-url=
#该实例健康检查url,相对路径
eureka.instance.health-check-url-path=/health
#该实例的主页url,绝对路径
eureka.instance.home-page-url=
#该实例的主页url,相对路径
eureka.instance.home-page-url-path=/
#该实例的安全健康检查url,绝对路径
eureka.instance.secure-health-check-url=
#https通信端口
eureka.instance.secure-port=443
#https通信端口是否启用
eureka.instance.secure-port-enabled=false
#http通信端口
eureka.instance.non-secure-port=80
#http通信端口是否启用
eureka.instance.non-secure-port-enabled=true
#该实例的安全虚拟主机名称(https)
eureka.instance.secure-virtual-host-name=unknown
#该实例的虚拟主机名称(http)
eureka.instance.virtual-host-name=unknown
#该实例的状态呈现url,绝对路径
eureka.instance.status-page-url=
#该实例的状态呈现url,相对路径
eureka.instance.status-page-url-path=/status
Eureka client 配置
#该客户端是否可用
eureka.client.enabled=true
#实例是否在eureka服务器上注册自己的信息以供其他服务发现,默认为true
eureka.client.register-with-eureka=false
#此客户端是否获取eureka服务器注册表上的注册信息,默认为true
eureka.c