微服务架构下服务注册的几种方式

简介: 【2月更文挑战第15天】微服务架构下服务注册的几种方式

接入微服务架构后面临的问题,如果得知哪些机器上部署了我需要的服务,不知道该调用哪个节点

单体的服务一般直接是localhost:8080的形式

方式一:IP直连

直接通过IP+端口来通信,比如服务A是192.168.23.11:8080,服务B是192.168.23.11:8090,直接访问这两个地址就可以请求服务。

缺点:IP是变动的,很难维护

一般用于开发环境联调或是使用灰度节点debug的时候,使用IP直连通信

方式二:域名+DNS

请求域名服务器获取service_a.com域名对应的IP地址,然后直接请求这个IP地址。

因为解析域名有开销,一般会在客户端缓存解析域名的结果。

优点:简单好用,无需额外组件

缺点:如果客户端不缓存DNS结果,每次调用都需要多了一次通信;如果不缓存DNS结果,无法及时更新本地的可用节点列表。

方式三:注册中心

方式二的问题是节点变化后域名服务器没有及时通知客户端,优化一下就是让域名服务器主动通知节点变化,即注册中心,基本的思路是:

  • 服务器启动的时候在注册中心注册
  • 客户端在第一次发起调用之前查询注册中心,然后缓存可用节点
  • 注册中心在服务端节点发生变动的时候,主动通知客户端

缺点:在大规模集群下有瓶颈

方式四:服务自省

在方式三的注册中心里,随着集群规模增长和微服务框架复杂度上升,导致注册中心的数据越来越多,更新越来越频繁,从而导致注册中心成为瓶颈。

服务自省就是为了解决这种问题,基本思路是:

  • 保留注册中心,但是注册中心里只有最小化的数据

  • 剩余的跟服务有关的元数据,通过一个元数据服务来暴露

正常来说只需要查询一次元数据,因为元数据一般不会有变化。

不常用

方式五:借助网关服务

客户端发请求到网关,网关和域名一般是匹配的,或是把网关的节点地址写在特定的配置项里;网关把请求转发到真实服务端上,需要知道服务端的地址,这部分也是一个服务注册与发现的过程,可以借助注册中心或是DNS。

目录
相关文章
|
8月前
|
运维 负载均衡 微服务
|
10月前
|
消息中间件 负载均衡 中间件
⚡ 构建真正的高性能即时通讯服务:基于 Netty 集群的架构设计与实现
本文介绍了如何基于 Netty 构建分布式即时通讯集群。随着用户量增长,单体架构面临性能瓶颈,文章对比了三种集群方案:Nginx 负载均衡、注册中心服务发现与基于 ZooKeeper 的消息路由架构。最终选择第三种方案,通过 ZooKeeper 实现服务注册发现与消息路由,并结合 RabbitMQ 支持跨服务器消息广播。文中还详细讲解了 ZooKeeper 搭建、Netty 集群改造、动态端口分配、服务注册、负载均衡及消息广播的实现,构建了一个高可用、可水平扩展的即时通讯系统。
1045 0
|
7月前
|
Cloud Native Serverless API
微服务架构实战指南:从单体应用到云原生的蜕变之路
🌟蒋星熠Jaxonic,代码为舟的星际旅人。深耕微服务架构,擅以DDD拆分服务、构建高可用通信与治理体系。分享从单体到云原生的实战经验,探索技术演进的无限可能。
微服务架构实战指南:从单体应用到云原生的蜕变之路
|
9月前
|
负载均衡 Java Nacos
微服务架构中的服务注册与发现流程
本内容介绍了微服务架构中的服务注册与发现流程,包括服务注册中心(如Nacos)、服务提供者和调用者的角色分工。服务启动时自动注册信息至注册中心,调用者通过客户端负载均衡(如Spring Cloud Loadbalancer)选取服务实例进行远程调用。同时,内容还讲解了OpenFeign的工作原理,其作为HTTP客户端集成负载均衡,通过接口定义、代理生成、请求发送与结果解析,实现服务间的高效通信。
|
弹性计算 API 持续交付
后端服务架构的微服务化转型
本文旨在探讨后端服务从单体架构向微服务架构转型的过程,分析微服务架构的优势和面临的挑战。文章首先介绍单体架构的局限性,然后详细阐述微服务架构的核心概念及其在现代软件开发中的应用。通过对比两种架构,指出微服务化转型的必要性和实施策略。最后,讨论了微服务架构实施过程中可能遇到的问题及解决方案。
|
10月前
|
文字识别 运维 监控
架构解密|一步步打造高可用的 JOCR OCR 识别服务
本文深入解析了JOCR OCR识别服务的高可用架构设计,涵盖从用户上传、智能调度、核心识别到容错监控的完整链路,助力打造高性能、低成本的工业级OCR服务。
400 0
架构解密|一步步打造高可用的 JOCR OCR 识别服务
|
11月前
|
人工智能 安全 Cloud Native
Nacos 3.0 架构全景解读,AI 时代服务注册中心的演进
Nacos 3.0 正式发布,定位升级为“一个易于构建 AI Agent 应用的动态服务发现、配置管理和 AI 智能体管理平台”。架构上强化了安全性,引入零信任机制,并支持 MCP 服务管理、AI Registry 等新特性,助力 AI 应用高效开发与运行。
|
10月前
|
缓存 Cloud Native Java
Java 面试微服务架构与云原生技术实操内容及核心考点梳理 Java 面试
本内容涵盖Java面试核心技术实操,包括微服务架构(Spring Cloud Alibaba)、响应式编程(WebFlux)、容器化(Docker+K8s)、函数式编程、多级缓存、分库分表、链路追踪(Skywalking)等大厂高频考点,助你系统提升面试能力。
1179 0
|
Java 开发者 微服务
从单体到微服务:如何借助 Spring Cloud 实现架构转型
**Spring Cloud** 是一套基于 Spring 框架的**微服务架构解决方案**,它提供了一系列的工具和组件,帮助开发者快速构建分布式系统,尤其是微服务架构。
2247 70
从单体到微服务:如何借助 Spring Cloud 实现架构转型