Eureka(注册中心)说白了就是管提供端和消费端分配的。这里简单演示下提供端和消费端在eureka注册中心上的基础搭建,另外提供demo工程代码下载,地址:https://download.csdn.net/download/qq_42695631/87824641
eureka集群
1. eureka注册中心模块,添加pom.xml的依赖,注意此依赖是作为eureka服务端的,与其它客户端有区别
<!-- eureka服务端-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
2. eureka模块主启动类配置,@EnableEurekaServer注解表示此服务是eureka的服务提供中心
//主启动类注解
@SpringBootApplication
//表示eureka服务注册中心服务端在此
@EnableEurekaServer
public class EurekaMain7001 {
public static void main(String[] args) {
SpringApplication.run(EurekaMain7001.class, args);
}
}
3. eureka模块application.yml添加如下配置。注意这是一个eureka模块的搭建结束了,所谓eureka集群,就是有很多个eureka模块作为一个整体的表现,其配置内容类似,但在application.yml的注册地址defaultZone里要彼此注册,即我的yml里要写全其它所有的地址,其它的也要写完除他之外的其它地址,这是实现负载均衡+故障容错、相互注册、相互守望的原理
#eureka服务端设置
eureka:
instance:
hostname: eureka7001.com #eureka服务端的实例名称
client:
# false表示不向注册中心注册自己
register-with-eureka: false
# false表示自己端就是注册中心,职责就是维护服务实例,不需要去检索服务
fetch-registry: false
service-url:
# 设置与eureka server交互的地址查询服务、注册服务都会依赖的地址
# eureka集群间互相注册,项目里只有两个eureka模块,故只写对方的地址
defaultZone: http://eureka7002.com:7002/eureka/
注册中心集群基础搭建完成
提供端集群
1. provider提供端模块pom.xml添加eureka-client的jar依赖:
<!-- eureka客户端-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
2. 提供端模块的主启动类添加注解
@EnableEurekaClient,表示此为eureka的客户端
//微服务提供者8001主启动类
@SpringBootApplication
//eureka客户端注解
@EnableEurekaClient
public class PaymentMain8001 {
public static void main(String[] args) {
SpringApplication.run(PaymentMain8001.class,args);
}
}
3. 提供端的application.yml添加如下配置
#eureka客户端设置
eureka:
client:
register-with-eureka: true
fetchRegistry: true
service-url:
# eureka集群时,每个注册中心地址都要注册
defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka
所谓提供端集群就是很多个provider模块组成的提供端群,作为一个提供端来使用。提供端配置到此结束。下面是消费端的配置。
消费端
1. consumer消费端模块pom.xml添加eureka-client的jar依赖:与提供端类似,都视为eureka的客户端
<!-- eureka客户端-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
2. 消费端主启动类
//消费端微服务80主启动类
@SpringBootApplication
//eureka客户端
@EnableEurekaClient
public class OrderMain80 {
public static void main(String[] args) {
SpringApplication.run(OrderMain80.class, args);
}
}
3. 消费端application.yml添加如下配置
eureka:
client:
# 是否入驻:是
register-with-eureka: true
fetchRegistry: true
service-url:
defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka
消费端要添加@LoadBalanced来开启负载均衡,否则多次调用也只能被一个提供端服务。消费端使用spring提供的RestTemplate方法远程http调用服务端的方法,在这不多做赘述。详细工程、注解在文章开头链接中,可下载供参考。eureka微服务集群示意图