SpringCloud 的服务注册和发现是由Eureka来完成。
1.eureka server
1.1 依赖
org.springframework.cloud spring-cloud-starter-netflix-eureka-server
1.2 @EnableEurekaServer 注册服务
@SpringBootApplication@EnableEurekaServer //开启服务注册中心public class EurekaServerApplication{ public static void main(String[] args) { SpringApplication.run(EurekaServerApplication.class, args); }}
1.3. 配置
server: port: 8761eureka: instance: hostname: localhost client: # 表示本应用是否是向注册中心注册自己 register-with-eureka: false # 是否检索服务 fetch-registry: false
2. eureka client
2.1 依赖
org.springframework.cloud spring-cloud-starter-netflix-eureka-client
2.2 @EnableDiscoveryClient
@SpringBootApplication@EnableDiscoveryClientpublic class EurekaClientApplication{ public static void main(String[] args) { SpringApplication.run(EurekaClientApplication.class, args); }}
2.3 配置
eureka: client: service-url: defaultZone: http://localhost:8761/eureka/ # 客户端名称 instance: hostname: client-1spring: application: # 注册到服务端名称 name: eureka-client # 客户端端口server: port: 8081
3.高可用
3.1 服务端配置(配置3个服务端)
server1
#服务名spring.application.name=eureka-server#注册中心-01 端口server.port=1001#注册中心主机名eureka.instance.hostname=server1#指定另外的注册中心eureka.client.serviceUrl.defaultZone=http://server2:1002/eureka/,http://server3:1003/eureka/
server2
#服务名spring.application.name=eureka-server#注册中心-02 端口server.port=1002#注册中心主机名eureka.instance.hostname=server2#指定另外的注册中心eureka.client.serviceUrl.defaultZone=http://server1:1001/eureka/,http://server3:1003/eureka/
server3
#服务名spring.application.name=eureka-server#注册中心-03 端口server.port=1003#注册中心主机名eureka.instance.hostname=server3#指定另外的注册中心eureka.client.serviceUrl.defaultZone=http://server1:1001/eureka/,http://server2:1002/eureka/
3.2 客户端配置
#设置服务名spring.application.name=eureka-client#指定服务注册中心地址eureka.client.service-url.defaultZone=http://server1:1001/eureka/,http://server2:1002/eureka/,http://server3:1003/eureka/
4.启动时配置端口
java -jar eureka-service-1.0-SNAPSHOT.jar –server.port=8080