SpringCloud-5-Eureka 服务注册 单机版+集群版
一 Eureka单机版
新建子工程->eureka
pom.xml
<dependencies> <!-- eureka-server --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency> <!-- 引用自己定义的api通用包,可以使用Payment支付Entity --> <dependency> <groupId>com.mengxiangnongfu</groupId> <artifactId>commons</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--监控--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <!-- 一般通用配置 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</optional> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies>
application.yml
server:
port: 7001
eureka:
instance:
hostname: eureka1.com
client:
#false 表示不向注册中心注册自己
register-with-eureka: false
fetch-registry: false
service-url:
#设置与Eureka Server交互的地址查询服务和注册服务都需要这个地址
defaultZone: http://127.0.0.1:7001/eureka
spring:
application:
name: eureka
主启动类 注意:这里使用
@EnableEurekaServer注解标识为Eureka服务端
package com.mengxiangnongfu; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; @SpringBootApplication @EnableEurekaServer public class EurekaApplicationMain { public static void main(String[] args) { SpringApplication.run(EurekaApplicationMain.class); } }
下面将服务注册进Eureka服务中心 以生产者PAYMENT服务为实例
增加依赖
<groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency>
修改application.yml
server:
port: 80
spring:
application:
name: order
eureka:
client:
register-with-eureka: true
fetch-registry: true
service-url:
defaultZone: http://127.0.0.1:7001/eureka #单机版
#defaultZone: http://127.0.0.1:7001/eureka,http://127.0.0.1:7002/eureka #集群版
修改启动类 注意增加:
@EnableEurekaClient标识为一个Eureka的客户端
package com.mengxiangnongfu; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.EnableEurekaClient; @SpringBootApplication @EnableEurekaClient public class OrderApplicationMain { public static void main(String[] args) { SpringApplication.run(OrderApplicationMain.class); } }
二 Eureka集群版
前言:建立Eureka1 和 Eureka2 分别使用两个端口,因为本地测试为同一台电脑,可以修改
hosts文件映射两个不同的域名
搭建:建立两个子工程 Eureka1 和 Eureka2 pom文件粘贴单机版,配置文件修改如下参考
① eureka2 7002 端口的application.yml 在7002端口下注册到7001 7001注册到7002形成集群,相互注册
server:
port: 7002
eureka:
instance:
hostname: eureka2.com
client:
#false 表示不向注册中心注册自己
register-with-eureka: false
fetch-registry: false
service-url:
#设置与Eureka Server交互的地址查询服务和注册服务都需要这个地址
defaultZone: http://127.0.0.1:7001/eureka #集群版
spring:
application:
name: eureka
②eureka1 7001端口的application.yml
server:
port: 7001
eureka:
instance:
hostname: eureka1.com
client:
#false 表示不向注册中心注册自己
register-with-eureka: false
fetch-registry: false
service-url:
#设置与Eureka Server交互的地址查询服务和注册服务都需要这个地址
defaultZone: http://eureka2.com:7002/eureka
spring:
application:
name: eureka
Eureka注册中心的其他代码和单机版相同
在客户端Client方面进行修改 注意在 defaultZone 注册地址为两个Eureka的地址 生产者消费者相同
server:
port: 80
spring:
application:
name: order
eureka:
client:
register-with-eureka: true
fetch-registry: true
service-url:
#defaultZone: http://127.0.0.1:7001/eureka #单机版
defaultZone: http://127.0.0.1:7001/eureka,http://127.0.0.1:7002/eureka #集群版