微服务-Eureka

Eureka的作用

使用RestTemplate完成远程调用需要被调用者 的ip和端口,从而能够发起http请求,但是如果有很多个实例也更加不能有效的处理,而且我们又该如何知道这些实例是否健康呢。所以就有了很多的注册中心比如Eureka、Nacos等等。

  1. 服务注册:服务提供者实例启动后会把自己的信息注册到eureka中,eureka会将服务名称与服务实例之间的映射关系
  2. 服务发现:服务消费者会根据服务名称拉取服务的时候会根据映射关系找到对应的实例
  3. 负载均衡:服务消费者消费者从实例列表中利用负载均衡算法选中一个实例地址
  4. 健康检测:服务提供者每隔一段时间会向eureka发生心跳,来证明自己存活,可以被调用

Eureka的使用

Eureka服务搭建

1)引入依赖

我们需要一个一个maven项目,单独作为eureka服务,导入依赖:

xml 复制代码
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>

2)配置文件

yml 复制代码
server:
  port: 10086
spring:
  application:
    name: eureka-server
eureka:
  client:
    service-url: 
      defaultZone: http://localhost:10086/eureka

3)启动类

给该项目的启动类添加@EnableEurekaServer注解。

4)启动项目并进行验证

服务注册

1)依赖引入

需要引入eureka-client的依赖

xml 复制代码
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>

2)配置文件

添加服务名称、eureka地址:

yml 复制代码
spring:
  application:
    name: userservice
eureka:
  client:
    service-url:
      defaultZone: http://127.0.0.1:10086/eureka

3)启动多个实例

服务发现

1)依赖引入

需要引入eureka-client的依赖

xml 复制代码
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>

2)配置文件

服务发现也需要知道eureka地址,因此第二步与服务注册一致,都是配置eureka信息,添加服务名称、eureka地址:

yml 复制代码
spring:
  application:
    name: orderservice
eureka:
  client:
    service-url:
      defaultZone: http://127.0.0.1:10086/eureka

3)服务拉取

这里的ip+端口需要变成我们服务注册的时候的服务名称。

并且需要给调用者的RestTemplete加上@LoadBalanced注解开启负载均衡。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Ribbon负载均衡

SpringCloud的负载均衡是通过一个Ribbon的组件来实现的。

我们使用postman多进行几次测试,会发现user服务的两个实例都被调用了,如图所示

相关推荐
可触的未来,发芽的智生4 小时前
触摸未来2025.10.04:当神经网络拥有了内在记忆……
人工智能·python·神经网络·算法·架构
夜月yeyue5 小时前
个人写HTOS移植shell
c++·mcu·算法·性能优化·架构·mfc
brzhang6 小时前
为什么 OpenAI 不让 LLM 生成 UI?深度解析 OpenAI Apps SDK 背后的新一代交互范式
前端·后端·架构
brzhang6 小时前
OpenAI Apps SDK ,一个好的 App,不是让用户知道它该怎么用,而是让用户自然地知道自己在做什么。
前端·后端·架构
Lei活在当下7 小时前
【业务场景架构实战】7. 多代智能手表适配:Android APP 表盘编辑页的功能驱动设计
android·设计模式·架构
Jolie_Liang7 小时前
保险业多模态数据融合与智能化运营架构:技术演进、应用实践与发展趋势
大数据·人工智能·架构
K_i1348 小时前
Docker、容器、虚拟机到底是什么
docker·微服务·云原生·容器·kubernetes
aklry8 小时前
elpis之动态组件机制
javascript·vue.js·架构
brzhang9 小时前
高通把Arduino买了,你的“小破板”要变“AI核弹”了?
前端·后端·架构
我星期八休息9 小时前
C++异常处理全面解析:从基础到应用
java·开发语言·c++·人工智能·python·架构