微服务的注册中心

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

  • 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
相关推荐
mldong1 小时前
事务不归引擎管:ITransactionTemplate,聚合一致性的最后一块拼图
后端·架构
CopyCode6 小时前
用 AI 迁项目有多爽?我把 Webpack 迁 Vite 的全过程记下来了
前端·架构
美好世界6 小时前
Codex 源码导读:第五部分——事件出口与多入口适配
架构
初学AI的小高6 小时前
LangGraph断点恢复与幂等执行实战
后端·架构
美好世界6 小时前
Codex 源码导读:第四部分——上下文压缩与继续执行
架构
美好世界6 小时前
Codex 源码导读:第十部分——Session、Thread 持久化与 Memory
架构
据说幸运很容易6 小时前
TestNG 分组接入现有框架:实现、踩坑与解法
后端·架构
farerboy6 小时前
WEB 项目如何禁用 F12 等功能
前端·vue.js·架构
美好世界6 小时前
Codex 源码导读:第六部分——模型请求与流式网络层
架构
美好世界6 小时前
Codex 源码导读:第三部分——沙箱真实执行
架构