SpringCloud

发布时间 2023-08-22 15:50:47作者: 当尖草北平铲

SpringCloud

服务开发注意事项:

  1. 不同微服务,不开发相同业务
    2.微服务数据独立,不问其他 微服务数据库
    3.微服务将自己的业务接口暴露为借口,供其他微服务调用
提供者与消费者
  • 提供者:一次业务中被其他微服务调用的服务(提供接口给其他)
  • 消费者:一次业务中调用其他微服务的服务(调用其他微服务接口)
服务调用出现问题:
  • 消费者如何获取提供者地址信息?

  • 有多个提供者消费者如何选择?

  • 消费者如何获取提供者的健康状态?

Eureka

EurekaServer:服务端注册中心

  • 记录服务信息
  • 心跳监控

EurekaClient:客户端

provider:提供者

提供者启动时向Eureka注册自己的信息
每隔30S向Eureka发送心跳请求

cunsumer:消费者

消费者根据服务名称想Eureka拉取服务列表
消费者利用负载均衡算法,选中一个微服务后发起远程调用

  • 消费者如何获取提供者地址信息?
  1. 提供者启动时向Eureka注册自己的信息
  2. Eureka保存这些信息
  3. 消费者根据服务名称想Eureka拉取提供者信息
  • 有多个提供者消费者如何选择?
    消费者利用负载均衡算法,从服务列表中挑选一个
  • 消费者如何获取提供者的健康状态?
  1. 服务提供者会每隔30S向Eureka发送心跳请求,报告健康状态
  2. Eureka更新记录列表信息,心跳不正常会被剔除
    3.消费者拉取到最新的信息

搭建Eurekaserver

步骤:

  1. 创建项目,引入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>
2. 编写启动类,添加 @EnableEurekaServer 注解
  1. 添加application.yml文件,编写以下配置
application.yml
spring:
    application:
      name: eurekaserve
eureka:
  client:
    service_url:
      defaultZone:http://127.0.0.1:10086/eureka

服务注册

实行多实例部署,需要避免端口冲突,修改端口设置

image

-Dservice.port=8081

服务发现

image