微服务的注册中心

目前开源的注册中心框架有很多,国内比较常见的有:

  • Eureka:Netflix公司出品,目前被集成在SpringCloud当中,一般用于Java应用
  • Nacos:Alibaba公司出品,目前被集成在SpringCloudAlibaba中,一般用于Java应用
  • Consul:HashiCorp公司出品,目前集成在SpringCloud中,不限制微服务语言
    以上几种注册中心都遵循SpringCloud中的API规范,因此在业务开发使用上没有太大差异。由于Nacos是国内产品,中文文档比较丰富,而且同时具备配置管理功能(后面会学习),因此在国内使用较多。
    我们基于Docker来部署Nacos的注册中心,首先我们要准备MySQL数据库表,用来存储Nacos的数据。然后将sql文件导入到Docker的MySQL文件中,由于是Docker部署,所以大家需要将资料中的SQL文件导入到你Docker中的MySQL容器中:
bash 复制代码
docker run -d \
--name nacos \
--env-file ./nacos/custom.env \
-p 8848:8848 \
-p 9848:9848 \
-p 9849:9849 \
--restart=always \
nacos/nacos-server:v2.1.0-slim

启动完成后,访问下面地址:http://192.168.150.101:8848/nacos/,注意将192.168.150.101替换为你自己的虚拟机IP地址。首次访问会跳转到登录页,账号密码都是nacos。

接下来,我们把服务注册到Nacos,步骤如下:

  • 引入依赖``
  • 配置Nacos地址
  • 重启在pom.xml文件添加
bash 复制代码
<!--nacos 服务注册发现-->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

在application.yml中添加nacos地址配置:

bash 复制代码
spring:
  application:
    name: item-service # 服务名称
  cloud:
    nacos:
      server-addr: 192.168.150.101:8848 # nacos地址

启动实例访问nacos控制台就可以在服务管理的服务列表里面发现服务注册成功。

如果我们要订阅服务,这个这个过程就是服务发现,步骤如下:

  • 引入依赖
  • 配置Nacos地址
  • 发现并调用服务

这里Nacos的依赖于服务注册时一致,这个依赖中同时包含了服务注册和发现的功能。因为任何一个微服务都可以调用别人,也可以被别人调用,即可以是调用者,也可以是提供者。我们在调用服务中的pom.xml中添加下面的依赖:

bash 复制代码
<!--nacos 服务注册发现-->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

在调用服务的application.yml中添加nacos地址配置:

bash 复制代码
spring:
  cloud:
    nacos:
      server-addr: 192.168.150.101:8848
相关推荐
Kel11 小时前
深入剖析 openai-node 源码:一个工业级 TypeScript SDK 的架构之美
javascript·人工智能·架构
毛骗导演12 小时前
@tencent-weixin/openclaw-weixin 插件深度解析(四):API 协议与数据流设计
前端·架构
毛骗导演12 小时前
@tencent-weixin/openclaw-weixin 插件深度解析(二):消息处理系统架构
前端·架构
EllenLiu12 小时前
架构演进与性能压榨:在金融 RAG 中引入条款森林 (FoC)
人工智能·架构
guoji778813 小时前
2026年Gemini 3 Pro vs 豆包2.0深度评测:海外顶流与国产黑马谁更强?
大数据·人工智能·架构
殷紫川13 小时前
高并发系统性能优化全链路实战:端到端榨干系统性能,百万 QPS 零卡顿
性能优化·架构
AI成长日志14 小时前
【Vibe Coding专栏】easy-vibe与vibe-vibe对比分析:两大vibecode项目技术架构、适用场景与选型指南
架构·ai编程
殷紫川14 小时前
全链路压测硬核实战:从方案落地、瓶颈根因定位到全链路性能优化
架构·测试
殷紫川14 小时前
别等业务中断才补坑!RTO/RPO 核心逻辑与全场景灾备架构选型全攻略
数据库·架构
殷紫川14 小时前
从 0 到 1 落地异地多活:单元化、数据同步与流量调度的核心壁垒全击穿
微服务·架构