基于Eureka搭建基础服务注册与发现的单机环境
Eureka-server
server的pom引入spring-cloud-starter-netflix-eureka-server
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
application.yml
server:
port: 7001
eureka:
instance:
hostname: localhost
client:
#false表示自己就是注册中心,职责维护实例,不需要检索服务
fetch-registry: false
#false表示不向注册中心注册自己
register-with-eureka: false
service-url:
# 设置与eureka server交互的地址查询服务和注册服务都需要依赖这个地址
defaultZone: http://localhost:7001/eureka
Eureka-client
client的pom引入spring-cloud-starter-netflix-eureka-client
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
application.yml
server:
port: 8001
spring:
application:
name: cloud-payment-service
eureka:
client:
register-with-eureka: true
# 是否从EurekaServer抓取已有的注册信息,默认为true,单节点无所谓,集群必须设置为true才能配合ribbon使用负载均衡
fetch-registry: true
service-url:
defaultZone: http://localhost:7001/eureka
配置多个client(修改端口即可),分别为client-1(提供者),client-2(消费者)
client-1(提供者)实现业务service层,client-2(消费者)通过restTemplate(http协议,类似httpclient)调用提供者的controller
基于Eureka搭建基础服务注册与发现的集群环境
Eureka-server
pom文件同单机环境pom
搭建多个Eureka-server服务端,端口分别为7001,7002
7001的application.yml
server:
port: 7001
eureka:
instance:
hostname: eureka7001.com #hosts映射 127.0.0.1 eureka7001.com
client:
fetch-registry: false # false表示自己就是注册中心,职责维护实例,不需要检索服务
register-with-eureka: false # false表示不向注册中心注册自己
service-url:
# 设置与eureka server交互的地址查询服务和注册服务都需要依赖这个地址
defaultZone: http://eureka7002.com:7002/eureka
7002的application.yml
server:
port: 7002
eureka:
instance:
hostname: eureka7002.com
client:
fetch-registry: false # false表示自己就是注册中心
register-with-eureka: false # false表示不向注册中心注册自己
service-url:
# 设置与eureka server交互的地址查询服务和注册服务都需要依赖这个地址
defaultZone: http://eureka7001.com:7001/eureka
Eureka-client
搭建多个服务提供者集群,与单机集群区别在注册时,需要往多个注册中心注册,在消费者client调用时restTemplate需要开启负载均衡的功能通过@LoadBalanced注解。
8001 application.yml
server:
port: 8001
eureka:
client:
service-url:
defaultZone: http://eureka7002.com:7002/eureka,http://eureka7001.com:7001/eureka/
8002 application.yml
server:
port: 8002
eureka:
client:
service-url:
defaultZone: http://eureka7002.com:7002/eureka,http://eureka7001.com:7001/eureka/
配置完成后,启动server和client,调用服务时会轮询访问提供者服务器。