🌟 后端 | SpringCloud -> 微服务治理



微服务

  • 一个微服务负责一部分业务功能,并且其核心数据不依赖于其它模块。
  • 每个微服务都有自己独立的开发、测试、发布、运维。
  • 每个微服务都独立打包部署,访问自己独立的数据库。
  • 每个微服务的职责要尽量单一,包含的业务相互关联度高、完整度高。
  • 每个微服务的功能要相对独立,尽量减少对其它微服务的依赖,或者依赖接口的稳定性要强。

服务注册与发现

有时微服务需要提供接口供其它微服务访问,比如前端调用后端一般直接访问网关的微服务,再由网关转发到注册中心指定的微服务。

通常会在服务的 application.yml 中配置 eureka 地址、端口、密码,这样服务启动时就会注册自己的服务信息(服务名、IP、端口)到注册中心

  • 服务提供者会定期向注册中心发送请求,报告自己的健康状态
  • 当服务有新实例启动时,会发送注册服务请求,其信息会被记录在注册中心的服务实例列表

引入 eureka 依赖

1
2
3
4
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>

Eureka和Nacos的区别有:

  • Eureka的心跳是30秒一次,Nacos则是5秒一次
  • Eureka如果90秒未收到心跳,则认为服务疑似故障,可能被剔除。Nacos中则是15秒超时,30秒剔除。
  • Eureka每隔60秒执行一次服务检测和清理任务;Nacos是每隔5秒执行一次。
  • Eureka只能等微服务自己每隔30秒更新一次服务列表;Nacos即有定时更新,也有在服务变更时的广播推送
  • Eureka仅有注册中心功能,而Nacos同时支持注册中心、配置管理
  • Eureka和Nacos都支持集群,而且默认都是AP模式