首页 文章 精选 留言 我的

精选列表

搜索[process],共4873篇文章
优秀的个人博客,低调大师

微服务设计部署3 - Inter-Process Communication

简介 在一个monolithic应用程序中,组件彼此调用是通过语言级别的方法或函数调用完成的。相反地,一个基于微服务的应用程序是运行在多台机器上的分布式系统。每个服务实例通常是一个独立的进程。 因此,如图3-1所示,服务之间需要使用一种 IPC 机制来进行交互。 在我们讨论具体的 IPC 技术之前,让我们先来看看各种交互设计思路。 Interaction Styles 当为一个服务选择 IPC 机制时,首先应该思考服务之间是如何进行交互的。存在很多客户端-服务器交互方式。可以从两个维度来划分交互方式。第一个维度,交互是一对一还是一对多的: One-to-one:每个客户端请求只被一个服务实例处理 One-to-many:每个客户端请求被多个服务实例处理 第二个考虑维度,交互是异步的还是同步的:• Synchronous–Theclientexpectsatimelyresponsefromtheserviceandmighteven block while it waits• Asynchronous – The client doesn’t block while waiting for a response, and the response, if any, isn’t necessarily sent immediately. 同步:客户端希望得到服务的及时响应,在得到响应以前甚至可能会一直阻塞 异步:客户端在等待响应时不会阻塞,服务端也不必立即响应结果 下表总结了各种交互方式。 有以下几种 one-to-one 的交互方式,既有同步的也有异步的: Request/response:客户端向服务发起请求,客户端希望响应结果能立即到达。在一个基于多线程的应用程序中,处理请求的线程可能会因为等待响应而阻塞住 Notification:也被称作 one-way request,客户端向服务发起请求,但不需要响应 Request/async response:A client sends a request to a service, which replies asynchronously The client does not block while waiting and is designed with the assumption that the response might not arrive for a while. 有以下两种一对多交互方式,都是异步的: Publish/subscribe:客户端发出通知消息,该消息将被0个或多个感兴趣的服务消费 Publish/async responses:A client publishes a request message, and then waits a certain amount of time for responses from interested services 每个服务通常会是使用以上这些交互方式的一种组合。对某些服务来说,使用一种IPC 机制就可以了,而其他服务可能会需要使用一种组合方案。 图3-2显示了,当打车软件中的用户发起一个行程时,软件中的所有服务可能是如何交互的。图示叫车服务使用了notifications、request/response和 publish/subscribe 三种交互方式的组合。例如,乘客的智能手机发送了一个notification到 行程管理服务请求搭载。行程管理服务采用request/response 方式调用乘客管理服务来验证乘客账户是否在线。然后行程管理服务创建行程,并采用 Publish/subscribe 方式去通知其他服务,包括分配司机服务,该服务职责是定位一个有效的司机。 在已经了解了交互方式后,让我们看看如何来定义 API。 Defining APIs

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册