Eureka 服务的注册、发现、调用
前天学习了 Eureka 的基本使用并搭建了 Eureka 单节点和集群,今天来学习 Eureka 是如何注册、发现、调用服务的。
注册中心继续用上次配置好的 eureka-server,eureka-provider 和eureka-consumer 需要配置下:
服务提供者
创建eureka-provider 的 SpringBoot 项目
引入依赖
1 | <dependency> |
启动类
添加注解@EnableEurekaClient或@EnableDiscoveryClient 使其拥有服务注册和发现的能力
1 |
|
注:@EnableEurekaClient和@EnableDiscoveryClient的区别在于:
spring cloud中discovery service有许多种实现(eureka、consul、zookeeper等等),@EnableDiscoveryClient基于spring-cloud-commons, @EnableEurekaClient基于spring-cloud-netflix。
其实用更简单的话来说,就是如果选用的注册中心是eureka,那么就推荐@EnableEurekaClient,如果是其他的注册中心,那么推荐使用@EnableDiscoveryClient。
配置文件
1 | server: |
REST API
前面学过,Eureka 是基于 REST 的,服务之间的调用是 http 协议,服务提供者对外提供服务只需要提供一个 controller 的调用即可:
1 |
|
先后启动 eureka-server 和 eureka-provider,访问注册中心管理页面 http://localhost:8000
发现服务 provider 服务已注册,访问http://localhost:9000/hello 发现页面返回”hello! Yakai!” 说明服务正常。
服务消费者
创建eureka-consumer 的 SpringBoot 项目
引入依赖
同服务提供者一样
1 | <dependency> |
启动类
1 |
|
注:
@EnableEurekaClient 使其拥有服务注册和发现的能力。
@EnableFeignClients 使用 Feign 来远程调用服务。
配置文件
1 | server: |
调用服务
service
1 | //调用的服务名称 对应 spring.application.name |
controller
1 |
|
测试
启动 eureka-consumer项目,访问http://localhost:10000/hello 发现页面返回 “hello! Yakai!”,说明consumer 正确发现并调用了 provider的服务。
- Title: Eureka 服务的注册、发现、调用
- Author: 薛定谔的汪
- Created at : 2018-05-27 18:20:16
- Updated at : 2023-11-17 19:37:36
- Link: https://www.zhengyk.cn/2018/05/27/springcloud/register-discovery/
- License: This work is licensed under CC BY-NC-SA 4.0.