尤里卡作为服务注册与发现的组件,Eureka2.0已经闭源了,但是本教程还是以尤里卡为核心进行展开。
<强> 1,三个模块强>
春云尤里卡是春云Netflix微服务套件之一,基于Netflix尤里卡做了二次封装,主要负责完成微服务架构中的服务治理功能。
eueka的3个重要模块,eureka-server,服务提供者,服务使用者
eureka-server:服务端,提供服务注册和发现,
eureka-client-service-provider:服务端,服务提供者,通过http rest告知服务端注册,更新,取消服务,
eureka-client-service-consumer:客户端,服务消费者,通过http rest从服务端获取需要服务的地址列表,然后配合一些负载均衡策略(丝带)来调用服务端服务。
2, eureka-server
尤里卡服务器的服务注册数据存储层是双层的ConcurrentHashMap(线程安全高效的映射集合)。
第一层的关键=spring.application.name也就是客户端实例注册的应用名;值为嵌套的ConcurrentHashMap。
第二层的关键=instanceId也就是服务的唯一实例ID值为租赁对象,租赁对象存储着这个实例的所有注册信息,包括ip、端口,属性等。
申明语句如下:
私人最终ConcurrentHashMap<字符串,Map<字符串,Lease
服务注册表没有持久化到数据库,我想应该是出于性能的考虑吧。毕竟,注册表信息是需要定时获取,更新的。
3,创建服务注册中心——演示
3.1,引入依赖砰的一声。xml
& lt; dependencies> & lt; !——www.1b23.com——比; & lt; dependency> & lt; groupId> org.springframework.boot & lt; artifactId> spring-boot-starter-web & lt;/dependency> & lt; dependency> & lt; groupId> org.springframework.cloud & lt; artifactId> spring-cloud-starter-netflix-eureka-server & lt;/dependency> & lt; dependency> & lt; groupId> org.springframework.boot & lt; artifactId> spring-boot-starter-test & lt; scope> test & lt;/dependency> & lt;/dependencies>
3.2,尤里卡服务器启动代码
//www.1b23.com @SpringBootApplication @EnableEurekaServer 公开课EurekaServerApplication { 公共静态void main (String [] args) { SpringApplication.run (EurekaServerApplication.class, args); } }
@EnableEurekaServer的主要作用是启动EurekaServer运行环境和上下文。
3.3,应用配置文件
应用配置文件可以是xml或yml结构,我比较喜欢xml结构,yml是缩进格式,我觉得比较容易写错。
服务器。端口=8080
spring.application.name: eureka-server
#服务注册中心实例的主机名
eureka.instance。主机名:localhost
#表示是否将自己注册在EurekaServer上,默认为真的。由于当前应用就是EurekaServer,所以置为假
eureka.client。register-with-eureka:假
#表示表示是否从EurekaServer获取注册信息,默认为真实的。单节点不需要同步其他的EurekaServer节点的数据
eureka.client。fetch-registry:假
#设置尤里卡的地址
eureka.client.service-url.defaultZone: http://$ {eureka.instance.hostname}: $ {server.port}/尤里卡/
3.4,查看尤里卡服务器
访问http://localhost: 8080/地址。如图上部分
环境:环境,默认为测试,生产环境建议改下,看着顺眼
数据中心:数据中心,生产环境建议改下
当前时间:当前的系统时间
正常运行时间:已经运行了多少时间
租赁到期启用:是否启用租约过期,自我保护机制关闭时,该值默认是真的,自我保护机制开启之后为假。
更新阈值:每分钟最少续约数,尤里卡服务器期望每分钟收到客户端实例续约的总数。
更新(最后一分钟):最后一分钟的续约数量(不含当前,1分钟更新一次),尤里卡服务器最后1分钟收到客户端实例续约的总数。
页面下部分:
total-avail-memory:总共可用的内存
环境:环境名称,默认测试
num-of-cpus: CPU的个数
当前内存使用量:当前已经使用内存的百分比
服务器的正常运行时间:服务启动时间