SpringCloud
服务开发注意事项:
- 不同微服务,不开发相同业务
2.微服务数据独立,不问其他 微服务数据库
3.微服务将自己的业务接口暴露为借口,供其他微服务调用
提供者与消费者
- 提供者:一次业务中被其他微服务调用的服务(提供接口给其他)
- 消费者:一次业务中调用其他微服务的服务(调用其他微服务接口)
服务调用出现问题:
-
消费者如何获取提供者地址信息?
-
有多个提供者消费者如何选择?
-
消费者如何获取提供者的健康状态?
Eureka
EurekaServer:服务端注册中心
- 记录服务信息
- 心跳监控
EurekaClient:客户端
provider:提供者
提供者启动时向Eureka注册自己的信息
每隔30S向Eureka发送心跳请求
cunsumer:消费者
消费者根据服务名称想Eureka拉取服务列表
消费者利用负载均衡算法,选中一个微服务后发起远程调用
- 消费者如何获取提供者地址信息?
- 提供者启动时向Eureka注册自己的信息
- Eureka保存这些信息
- 消费者根据服务名称想Eureka拉取提供者信息
- 有多个提供者消费者如何选择?
消费者利用负载均衡算法,从服务列表中挑选一个 - 消费者如何获取提供者的健康状态?
- 服务提供者会每隔30S向Eureka发送心跳请求,报告健康状态
- Eureka更新记录列表信息,心跳不正常会被剔除
3.消费者拉取到最新的信息
搭建Eurekaserver
步骤:
- 创建项目,引入
spring-cloud-starter-netflix-eureka
依赖
spring-cloud-starter-netflix-eureka
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
- 添加application.yml文件,编写以下配置
application.yml
spring:
application:
name: eurekaserve
eureka:
client:
service_url:
defaultZone:http://127.0.0.1:10086/eureka
服务注册
实行多实例部署,需要避免端口冲突,修改端口设置
-Dservice.port=8081