跳至主要內容
微服务之注册和发现

微服务之注册和发现

服务注册和发现的基本原理

服务定义是服务提供者和服务消费者之间的约定,但是在微服务架构中,如何达成这个约定呢?这就依赖于服务注册和发现机制。

注册和发现的角色

在微服务架构下,服务注册和发现机制中主要有三种角色:

  • 服务提供者(RPC Server / Provider)
  • 服务消费者(RPC Client / Consumer)
  • 服务注册中心(Registry)

钝悟...大约 21 分钟设计架构微服务设计架构微服务分布式注册中心
微服务之服务调用

微服务之服务调用

RPC 简介

通过注册中心,服务消费者和服务提供者就可以感知彼此。但是,要实现交互还必须解决通信问题。

在单体应用中,一次服务调用发生在同一台机器上的同一个进程内部,因此也被称为本地方法调用。在微服务应用中,由于服务提供者和服务消费者运行在不同物理机器上的不同进程内,因此也被称为远程方法调用,简称 RPC(Remote Procedure Call)

RPC 是微服务架构的基石,它提供了一种应用间通信的方式。RPC 的主要作用是:


钝悟...大约 15 分钟设计架构微服务设计架构微服务分布式RPC
《微服务架构核心 20 讲》笔记

《微服务架构核心 20 讲》笔记

什么是微服务架构

微服务是一种架构模式。

微服务的六个特点:

  • 一组小的服务
  • 独立的进程
  • 独立部署
  • 轻量级通信
  • 基于业务能力
  • 无集中式管理——这里指的是可以用不同的技术栈,不同的存储

微服务定义:基于有界上下文的、松散耦合的、面向服务的架构。

架构师如何权衡微服务的利弊

架构之道在于权衡利弊。


钝悟...大约 8 分钟笔记设计设计架构微服务
RPC 高级篇

RPC 高级篇

异步 RPC

链路跟踪

分布式链路跟踪就是将一次分布式请求还原为一个完整的调用链路,我们可以在整个调用链路中跟踪到这一次分布式请求的每一个环节的调用情况,比如调用是否成功,返回什么异常,调用的哪个服务节点以及请求耗时等等。

Trace 就是代表整个链路,每次分布式都会产生一个 Trace,每个 Trace 都有它的唯一标识即 TraceId,在分布式链路跟踪系统中,就是通过 TraceId 来区分每个 Trace 的。
Span 就是代表了整个链路中的一段链路,也就是说 Trace 是由多个 Span 组成的。在一个 Trace 下,每个 Span 也都有它的唯一标识 SpanId,而 Span 是存在父子关系的。还是以讲过的例子为例子,在 A->B->C->D 的情况下,在整个调用链中,正常情况下会产生 3 个 Span,分别是 Span1(A->B)、Span2(B->C)、Span3(C->D),这时 Span3 的父 Span 就是 Span2,而 Span2 的父 Span 就是 Span1。


钝悟...大约 7 分钟分布式分布式通信RPCRPC综合分布式分布式应用微服务RPC
RPC 进阶篇

RPC 进阶篇

RPC 架构模型

了解前面的知识点(序列化、动态代理、通信),其实已经可以实现一个点对点的 RPC 架构了。

采用微内核架构的 RPC 架构模型:

img
img

在 RPC 框架里面,怎么支持插件化架构的呢?我们可以将每个功能点抽象成一个接
口,将这个接口作为插件的契约,然后把这个功能的接口与功能的实现分离,并提供接口的默认实现。在 Java 里面,JDK 有自带的 SPI(Service Provider Interface)服务发现机
制,它可以动态地为某个接口寻找服务实现。使用 SPI 机制需要在 Classpath 下的 META-INF/services 目录里创建一个以服务接口命名的文件,这个文件里的内容就是这个接口的具体实现类。


钝悟...大约 14 分钟分布式分布式通信RPCRPC综合分布式分布式应用微服务RPC
Dubbo 快速入门

Dubbo 快速入门

简介

Apache Dubbo 是一款高性能、轻量级的开源微服务框架。它提供了 RPC 通信微服务治理 两大关键能力。

Dubbo 的核心功能

Dubbo 提供了六大核心能力:

  • 面向接口代理的高性能 RPC 调用:提供高性能的基于代理的远程调用能力,服务以接口为粒度,为开发者屏蔽远程调用底层细节。
  • 智能容错和负载均衡:内置多种负载均衡策略,智能感知下游节点健康状况,显著减少调用延迟,提高系统吞吐量。
  • 服务自动注册和发现:支持多种注册中心服务,服务实例上下线实时感知。
  • 高度可扩展能力:遵循微内核+插件的设计原则,所有核心能力如 Protocol、Transport、Serialization 被设计为扩展点,平等对待内置实现和第三方实现。
  • 运行期流量调度:内置条件、脚本等路由策略,通过配置不同的路由规则,轻松实现灰度发布,同机房优先等功能。
  • 可视化的服务治理与运维:提供丰富服务治理、运维工具:随时查询服务元数据、服务健康状态及调用统计,实时下发路由策略、调整配置参数。

钝悟...大约 5 分钟分布式分布式通信RPCDubbo分布式分布式应用微服务Dubbo
微服务简介

微服务简介

本文关键词:定义演进利弊如何拆分容量规划核心组件

什么是微服务

微服务定义

微服务是由单一应用程序构成的小服务,拥有自己的进程与轻量化处理,服务依业务功能设计,以全自动的方式部署,与其他服务使用 HTTP API 通讯。同时,服务会使用最小规模的集中管理 (例如 Docker)技术,服务可以用不同的编程语言与数据库等。

——Martin Fowler 和 James Lewis 对应微服务( Microservices)的定义


钝悟...大约 16 分钟设计架构微服务设计架构微服务分布式
Dubbo 快速入门

Dubbo 快速入门

Apache Dubbo 是一款高性能、轻量级的开源 Java RPC 框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。

一、Dubbo 简介

Apache Dubbo 是一款高性能、轻量级的开源 Java RPC 框架。


钝悟...大约 30 分钟分布式分布式通信RPCDubbo分布式分布式应用微服务Dubbo
《从 0 开始学微服务》笔记

《从 0 开始学微服务》笔记

到底什么是微服务?

微服务定义

微服务是由单一应用程序构成的小服务,拥有自己的进程与轻量化处理,服务依业务功能设计,以全自动的方式部署,与其他服务使用 HTTP API 通讯。同时,服务会使用最小规模的集中管理 (例如 Docker)技术,服务可以用不同的编程语言与数据库等。

——Martin Fowler 和 James Lewis

单体应用的问题

  • 部署效率低
  • 团队协作开发成本高
  • 单点故障问题
  • 线上发布变慢

钝悟...大约 20 分钟笔记设计设计架构微服务
微服务

微服务

微服务是一种架构模式,它提倡将一个单一应用拆分为一些可独立运行可协同工作小的服务。在微服务架构中,每个小服务都拥有独立的进程和轻量级通信。这些服务是围绕业务能力构建的,并且可以通过全自动化部署机制独立部署。这些服务会使用最小规模的集中式管理能力(例如 Docker) ,可以用不同的编程语言编写并使用不同的数据存储技术。

📖 内容

  • 微服务简介 - 关键词:定义演进利弊如何拆分容量规划核心组件
  • 微服务之注册和发现 - 关键词:服务定义注册中心元数据健康检查服务订阅一致性
  • 微服务之服务调用 - 关键词:RPC通信协议传输方式序列化
  • 微服务基本原理 - 关键词:微服务序列化动态代理通信服务注册发现健康检查路由负载均衡容错处理优雅上线下线限流熔断业务分组

钝悟...大约 2 分钟设计架构微服务设计架构微服务分布式
2