本文详细介绍spring cloud微服务的默认注册中心--eureka注册与发现。开发环境需要Windows系统、jdk和intellij idea。与zookeeper注册中心相比,eureka不需要服务器中间件,而且有更高的可用性,但不保证强一致性。
用idea生成spring boot项目,选中jar包Cloud Discovery--Eureka Server,在启动类添加注解@EnableEurekaServer表名该服务为注册中心。下面分单节点和多节点(高可用)分别介绍配置文件:
单节点配置application.yml非常简单,但因为是单节点,必须配置禁止自己注册自己:
spring:
application:
name: register #微服务名称
eureka:
instance:
hostname: localhost #主机名
client:
service-url:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ #默认到此路径发现服务
register-with-eureka: false
fetch-registry: false
server:
enable-self-preservation: false
server:
port: 1111
打包,再cmd启动注册中心--单节点:java -jar F:jars egister-0.0.1-SNAPSHOT.jar即可,web监控访问地址:http://localhost:1111,监控内容这里省略不讲
多个节点(3个节点为例)配置application.yml有一小点麻烦,这里需要配置三个文件application-peer1.yml,application-peer2.yml,application-peer3.yml,以application-peer1.yml为例,其他两个类似:
spring:
application:
name: eureka-server #服务名称
eureka:
instance:
hostname: peer1 #服务器上配置主机名叫peer1
client:
service-url:
defaultZone: http://peer2:1112/eureka/,http://peer3:1113/eureka/ #默认到这两个地址发现服务
server:
port: 1111
cmd启动注册中心--高可用多节点(3个节点为例):
先配置hosts文件--将hosts文件拖到桌面添加如下内容,再拖回原来的位置,替换使hosts生效:
127.0.0.1 peer1
127.0.0.1 peer2
127.0.0.1 peer3
java -jar F:jars
egister-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer1
java -jar F:jars
egister-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer2
java -jar F:jars
egister-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer3
web监控访问地址:http://localhost:1111,监控内容这里省略不讲
源码下载地址:https://github.com/zhzhair/spring-cloud-examples.git