没有合适的资源?快使用搜索试试~ 我知道了~
首页微服务实战(三):深入微服务架构的进程间通信
微服务实战(三):深入微服务架构的进程间通信
1.2k 浏览量
更新于2023-05-30
评论
收藏 589KB PDF 举报
【编者的话】这是采用微服务架构创建自己应用系列第三篇文章。第一篇介绍了微服务架构模式,和单体式模式进行了比较,并且讨论了使用微服务架构的优缺点。第二篇描述了采用微服务架构应用客户端之间如何采用APIGateway方式进行通信。在这篇文章中,我们将讨论系统服务之间如何通信。在单体式应用中,各个模块之间的调用是通过编程语言级别的方法或者函数来实现的。但是一个基于微服务的分布式应用是运行在多台机器上的。一般来说,每个服务实例都是一个进程。因此,如下图所示,服务之间的交互必须通过进程间通信(IPC)来实现。后面我们将会详细介绍IPC技术,现在我们先来看下设计相关的问题。当为某一个服务选择IPC时,首先
资源详情
资源评论
资源推荐

微服务实战(三):深入微服务架构的进程间通信微服务实战(三):深入微服务架构的进程间通信
【编者的话】这是采用微服务架构创建自己应用系列第三篇文章。第一篇介绍了微服务架构模式,和单体式模式进行了比较,
并且讨论了使用微服务架构的优缺点。第二篇描述了采用微服务架构应用客户端之间如何采用API Gateway方式进行通信。在
这篇文章中,我们将讨论系统服务之间如何通信。
简介
在单体式应用中,各个模块之间的调用是通过编程语言级别的方法或者函数来实现的。但是一个基于微服务的分布式应用是运
行在多台机器上的。一般来说,每个服务实例都是一个进程。因此,如下图所示,服务之间的交互必须通过进程间通信
(IPC)来实现。
后面我们将会详细介绍IPC技术,现在我们先来看下设计相关的问题。
交互模式
当为某一个服务选择IPC时,首先需要考虑服务之间如何交互。客户端和服务器之间有很多的交互模式,我们可以从两个维度
进行归类。第一个维度是一对一还是一对多:
(1)一对一:每个客户端请求有一个服务实例来响应。
(2)一对多:每个客户端请求有多个服务实例来响应
第二个维度是这些交互式同步还是异步:
(1)同步模式:客户端请求需要服务端即时响应,甚至可能由于等待而阻塞。
(2) 异步模式:客户端请求不会阻塞进程,服务端的响应可以是非即时的。
下表显示了不同交互模式:
一对一的交互模式有以下几种方式:
(1) 请求/响应:一个客户端向服务器端发起请求,等待响应。客户端期望此响应即时到达。在一个基于线程的应用中,等待过
程可能造成线程阻塞。
(2) 通知(也就是常说的单向请求):一个客户端请求发送到服务端,但是并不期望服务端响应。
(3)请求/异步响应:客户端发送请求到服务端,服务端异步响应请求。客户端不会阻塞,而且被设计成默认响应不会立刻到
达。



















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0