(1)两个eureka相关联
这里使用两个eureka一个端口为7001,一个端口为7002:
两个eureka的pom.xml依赖一样:
跟客户端和服务端主要是多了个:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
开始前设置地址映射:在:C:\Windows\System32\drivers\etc\host 文件下加入
127.0.0.1 eureka7001.com (注意有空格)
127.0.0.1 eureka7002.com (注意有空格)
让 eureka7001.com,eureka7 002.com映射主机地址
然后是7001端口的
application.yml:
server:
port: 7001
eureka:
instance:
hostname: eureka7001.com
client:
#false表示不行注册中心注册自己,
register-with-eureka: false
#false表示自己端就是注册中心,我的职责是维护服务实例,不需要检索服务
fetch-registry: false
service-url:
#设置与Eureka Server交互的的地址查询服务和注册服务都需要依赖这个地址
defaultZone: http://eureka7002.com:7002/eureka/
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource # 当前数据源操作类型
driver-class-name: org.gjt.mm.mysql.Driver # mysql驱动包
url: jdbc:mysql://localhost:3306/db2019?useUnicode=true&characterEncoding=utf-8&useSSL=false
这是7002端口的
application.yml:
server:
port: 7002
eureka:
instance:
hostname: eureka7002.com
client:
#false表示不行注册中心注册自己,
register-with-eureka: false
#false表示自己端就是注册中心,我的职责是维护服务实例,不需要检索服务
fetch-registry: false
service-url:
#设置与Eureka Server交互的的地址查询服务和注册服务都需要依赖这个地址
defaultZone: http://eureka7001.com:7001/eureka/
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource # 当前数据源操作类型
driver-class-name: org.gjt.mm.mysql.Driver # mysql驱动包
url: jdbc:mysql://localhost:3306/db2019?useUnicode=true&characterEncoding=utf-8&useSSL=false
这两个通过配置文件得以相关联:
最后写两个eureka的主启动类:(记得加上@EnableEurekaServer注解)
7001端口:
@SpringBootApplication
@EnableEurekaServer
public class EurekaMain7001 {
public static void main(String[] args) {
SpringApplication.run(EurekaMain7001.class,args);
}
}
7002端口:
@SpringBootApplication
@EnableEurekaServer
public class EurekaMain7002 {
public static void main(String[] args) {
SpringApplication.run(EurekaMain7002.class,args);
}
}
开始先测试这两个eureka关联是否成功:
访问http://localhost:7001/
在DS Replicas里能看见对方就说明两个eureka关联成功。
(2)客户端关联eureka
pom.xml加入新依赖:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
客户端的application.yml新加入:
eureka:
client:
#是否让自己注册EurekaServer 默认为true
register-with-eureka: true
#是否从EurekaServer抓取已有的注册信息, 默认为true 单节点无所谓,集群必须设置为true,才能配合ribbon负载均衡
fetchRegistry: true
service-url:
#defaultZone: http://localhost:7001/eureka
defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka #集群板
客户端主启动类上加入:@EnableEurekaClient
@SpringBootApplication
@EnableEurekaClient
public class OrderMain8002 {
public static void main(String[] args) {
SpringApplication.run(OrderMain8002.class,args);
}
}
(3)服务端关联eureka(一般是多个服务器)
pom.xml跟客户端一样先加入依赖:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
application.yml新加入:
eureka:
client:
#是否让自己注册EurekaServer 默认为true
register-with-eureka: true
#是否从EurekaServer抓取已有的注册信息, 默认为true 单节点无所谓,集群必须设置为true,才能配合ribbon负载均衡
fetchRegistry: true
service-url:
#host文件里做了映射主机地址127.0.0.1 到了eureka7001.com上
# defaultZone: http://localhost:7001/eureka
defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka #集群板
最后主启动类里加入:@EnableEurekaClient
@SpringBootApplication
@EnableEurekaClient
public class PaymentMain8001 {
public static void main(String[] args) {
SpringApplication.run(PaymentMain8001.class,args);
}
}
然后启动测试:
7001端口: