02SpringCloudAlibaba服务注册中心—Eureka
推荐与对比观看:003SpringCloud---Eureka_gh_xiaohe的博客-CSDN博客
服务提供者
1、
2、pom.xml
3、改yum
4、主启动
5、业务类
测试1:
访问:
服务消费者
1、
2、pom.xml
3、改yum
4、主启动
5、业务类
config
controller
测试
单个 Eureka
pom.xml
<!--eureka-server-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
主启动类
server:
port: 7001
eureka:
instance:
hostname: localhost #eureka服务端的实例名称
client:
#false表示不向注册中心注册自己。
register-with-eureka: false
#false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
fetch-registry: false
service-url:
#设置与Eureka server交互的地址查询服务和注册服务都需要依赖这个地址。
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
集群 Eureka
修改本地C:\Windows\System32\drivers\etc\hosts 文件
添加:
两个微服务 注册进Eureka集群 80 、8001
订单服务 配置为集群
地址写死了 ?
使用@LoadBalaned注解赋予RestTemplate负载均衡的能力
后访问出错
actuator 信息完善
主机名称:服务名称修改
注意对齐:
修改前
修改后
访问信息有IP信息提示
服务发现 ?Discovery @EnableDiscoveryClient 【重要】
@Resource
private DiscoveryClient discoveryClient;
@GetMapping(value = "/payment/discovery")
public Object discovery() {
//获取的服务列表清单 方式一:
List<String> services = discoveryClient.getServices(); //在Eureka 里面运行的服务有哪些
for (String element : services) {
log.info("*****element: " + element);
}
//通过微服务的名进而获得 服务信息 方式二:
//一个微服务名称下面的 全部个种具体实例
List<ServiceInstance> instances = discoveryClient.getInstances("CLOUD-PAYMENT-SERVICE");//getInstances 实例:此时就是我们对外暴露的 微服务名称
for (ServiceInstance instance : instances) {
log.info(instance.getServiceId() + "\t" + instance.getHost() + "\t" + instance.getPort() + "\t" + instance.getUri());
}
return this.discoveryClient;
}
自我保护机制(高可用机制)、禁止自我保护 CAP AP 思想
cloud-eureka-server7001
02-cloud-provider-payment-eureka-8001
关闭自我保护后