Eureka之服务注册与发现
2020-07-20 04:13
441 查看
Eureka服务注册
先将Eureka client注册到Eureka Server 中,然后在启动类上使用@EnableEurekaClient开启客户端
客户端需要引入eureka-client依赖
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency>
Eureka-client的配置
register-with-eureka: true 服务注册到Eureka
fetch-registry: true 拉取eureka中的服务列表,这样才知道有哪些服务。
service-url: 注册中心的地址
instance.instance-id:实例id,在eureka服务列表中显示的,下图中Status中的那个名称,如果不写的话,就会显示主机+服务名称(application.name的值)
eureka: client: register-with-eureka: true ## 是否向eurekaServer抓取已有的注册信息 fetch-registry: true service-url: defaultZone: http://localhost:7001/eureka # 注册到eurekaServer instance: instance-id: payment8001
服务发现:在启动类上使用@EnableDiscoveryClient注解,然后你就可以在的程序中使用
@Autowire
DiscoveryClient discoveryClient; 来获取所有的服务列表
discoveryClient.getServices(): 获取eureka注册中心的所有服务列表
discoveryClient.getInstances(“服务名称【application.name】”) 获取指定的服务列表,返回值是一个集合(服务是可以集群部署的)
service:获取的实例,可以得到该服务相关的信息
@GetMapping("/services") public String getALLService(){ List<String> services = discoveryClient.getServices(); /*cloud-payment-service, cloud-order-service 注册到eureka的服务*/ log.info("所有的服务"+services); List<ServiceInstance> instances = discoveryClient.getInstances("cloud-order-service"); log.info("order的所有服务"+instances); ServiceInstance orderService = instances.get(0); String host = orderService.getHost(); String instanceId = orderService.getInstanceId(); URI uri = orderService.getUri(); // getInstance得到具体的服务列表 /*localhost---localhost:cloud-order-service:80---http://localhost:80---80*/ System.out.println(host+"---"+instanceId+"---"+uri+"---"+orderService.getPort()); return "success"; }
Eureka注册中心
注册中心需要映入eureka-server依赖,启动类似@EnableEurekaServer注册即可
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency>
注册中心yml配置:
register-with-eureka: false 单节点的Eureak Server 不需要注册到服务列表中去
server: port: 7001 spring: application: name: server7001 eureka: instance: hostname: eureka7001.com #eureka服务端的实例名称 写主机的名称 client: # false表示不向注册中心注册自己 register-with-eureka: false # false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要检索服务 fetch-registry: false service-url: defaultZone: http://eureka7001.com:7001/eureka server: #关闭自我保护模式,保证不可用服务被及时删除 enable-self-preservation: false eviction-interval-timer-in-ms: 2000
注册中心集群,相互注册,避免单点故障
只需要将该注册中心注册 到其他的注册中心即可,service-url是其他注册中心的地址
register-with-eureka改为true,注册到其他注册中心去
fetch-registry 改为true,拉取注册中心的服务列表
service-url:
defaultZone: http://eureka7002:com:7002/eureka
以后我们的客户端在注册到注册中心的时候,我们在 service-url 中写多个地址即可
以上是观看尚硅谷教学视频后的总结,如果有不对之处,请指正,,感谢!!
相关文章推荐
- SpringCloud的服务注册与发现Eureka
- spring-cloud学习(一)———eureka集群服务注册于与发现
- 第一篇: 服务的注册与发现(Eureka)
- 最简单的Spring Cloud教程第一篇:服务的注册与发现(Eureka)
- 一起来学Spring Cloud | 第二章:服务注册和发现组件 (Eureka)
- Spring Boot+SpringCloud实现MicroService微服务中的服务发现注册Eureka
- • 服务注册与发现(Eureka、Consul)
- 《Spring Cloud Netflix》-- 服务注册和服务发现-Eureka的服务认证和集群
- spring cloud服务的注册与发现(Eureka)
- SpringCloud系列——Eureka 服务注册与发现
- SpringCloud 学习笔记 | 第一篇: 服务的注册与发现Eureka(Finchley版本)
- 史上最简单的 SpringCloud 教程 | 第一篇: 服务的注册与发现(Eureka)
- spring cloud篇(服务发现,注册中心Eureka)
- 02. Spring Cloud Eureka:服务注册与发现
- SpringCloud系列之服务注册发现(Eureka)应用篇
- SpringCloud Eureka实现服务注册与发现
- spring cloud 系列第1篇 —— eureka 服务的注册与发现 (F版本)
- 玩转SpringCloud(F版本) 一.服务的注册与发现(Eureka)
- 使用 Eureka 实现服务注册与发现
- SpringCloud 教程 | 第一篇: 服务的注册与发现(Eureka)