EurekaServer集群

注:EurekaServer中的成员需要相互注册

1.创建微服务模块

2.pom.xml文件加入对应依赖

<!-- 引入 eureka-server -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
等其他依赖
3. 创建 resources/application.yml
server :
port : 9002
eureka :
instance :
hostname : eureka9002.com
client :
register-with-eureka : false
fetch-registry : false
service-url :
defaultZone : http://eureka9001.com:9001/eureka/ # 相 互 注 册 , 这 里 写
eureka9001.com
4.创建主启动类
 @EnableEurekaServer  别忘记加到主启动类 启动服务
搭建会员中心服务提供方 - 集群
注:
1. 因为 member-service-provider-10000 member-service-provider-10002 作为一个集
群提供服务 , 因此需要将 spring.application.name 进行统一( 这样在注册表中一个key 对应多个地址 这样消费方通过统一的别名进行负载均衡调用)
在消费服务中要使用注解@LoadBalanced 赋予 RestTemplate 负载均衡的能力
@Configuration
public class CustomizationBean {
@Bean
@LoadBalanced
public RestTemplate getRestTemplate () {
return new RestTemplate();
}
}

DiscoveryClient

消费方希望获取 Eureka Server 服务注册信息 ---DiscoveryClient

1在controller中增加代码

@Resource
private DiscoveryClient discoveryClient ;
@GetMapping (value = "/member/consumer/discovery" )
public Object discovery () {
List < String > services = discoveryClient .getServices();
for ( String element : services) {
System.out.println( "======== 服 务 名 " + element + "=======================" );
List < ServiceInstance > instances = discoveryClient .getInstances( element );
for ( ServiceInstance instance : instances) {
System.out.println( instance .getServiceId() + " \t " + instance .getHost()
+ " \t " + instance .getPort() + " \t " + instance .getUri());
  }
}
 return this . discoveryClient ;
}
1. discoveryClient .getServices();得到服务名(集合 注册中心key小写)
2. discoveryClient .getInstances(服务名 ) 得到实例 ; 该实例  个人理解为服务中心一行封装为对象
3.通过该实例拿到想要的信息

2.在主启动类增加注解

//@EnableDiscoveryClient 注解启用服务发现
@EnableDiscoveryClient

注:1. 在引入 DiscoveryClient 时,不要引入错误的包

正确的包 : import org.springframework.cloud.client.discovery.DiscoveryClient ;
错误的包 : import com.netflix.discovery.DiscoveryClient ;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值