服务调用出现的问题
- 服务消费者该如何获取服务提供者的地址信息?
- 如果有多个服务提供者,消费者该如何选择?
- 消费者如何得知服务提供者的健康状态?
Eureak 的作用
- 注册中心 eureka -server
- 注册服务信息
- 消费者向eureka拉取服务
- 远程调用
- 健康状态保证: 每隔30s发送一次心跳,若没有心跳续约,则将其从列表中剔除,消费者获取不到已经剔除的服务
- 若有多个服务提供者,服务消费者利用负载均衡算法,从服务列表中选择一个 - 客户端 eureka-client
注册中心
- 服务端、注册中心
- 记录服务信息
- 心跳监控
客户端
- provider 服务提供者:注册自己的信息到eurekaserver
- 每30秒向eureka发送心跳
consumer:服务消费者 - 根据服务者名称从EurekaServer拉取服务列表
- 基于服务列表做负载均衡,选择一个微服务发起远程调用
搭建EurekaServer
服务注册
- 引入依赖
- 编写配置
启动多个服务
修改端口
服务拉取
服务拉取基于服务名称获取服务列表,然后在服务列表中做负载均衡
- 使用服务名称代替ip端口
- 在启动类的restTemplate中添加负载均衡注解@LoadBalanced