电销抗封号电销卡办理流程
销售打电话专用手机卡
销售打电话用的手机卡
销售打电话用的电销卡
靠谱卡商专业办理高频外呼手机
微服务的目标是将应用程序尽量分解 / 解耦为围绕业务功能组织的一系列松散耦合服务。这些分布式的微型单元共同满足应用程序的目标。
将单个应用程序拆分为多个微服务后,跨越多个服务的事务(读取和写入)就变得不可避免了。进而,跨各个微服务边界的通信——工作流管理——数据存储机制 就成为了挑战。这一系统应符合被称为分布式计算谬误的准则。当跨多个服务(每个都有自己的业务逻辑和数据库)处理事务时,数据库系统承诺的 ACIDity 是无法保障的。CAP 定理 意味着你需要在一致性(C)和可用性(A)之间做出权衡,因为分区容错(P)在分布式系统中是无法指望的。在这篇博客文章中,我们将探讨针对这些挑战和设计模式的解决方案。
协调服务间通信
针对不同环境和目标的客户和服务可以通过不同的机制来通信。通信可以是同步的或异步的,具体取决于协议。
同步通信——请求响应方法
在同步通信中,需要一个预定义的源服务地址,指明请求要发送到何处,并且 两边的服务(调用方和被调用方)都应处于启动和运行状态。尽管协议可能是同步的,但 I/O 操作可以是异步的,其中客户端不必等待响应。这是 I/O 和协议 之间的区别。Web API 常见的通用请求 - 响应方法包括 REST、GraphQL 和 gRPC。
异步通信
在异步通信的情况下,调用方不必有被调用方的具体地址。这样就可以相对容易地一次处理多个消费者(因为服务可能会增加消费者数量)。此外,如果接收服务关闭,消息就会进入队列,然后在接收服务打开时继续处理。从 松散耦合、多服务通信以及应对部分服务器故障 的角度来看,这尤其重要。正是这些决定性的因素让 微服务倾向于异步通信。诸如 MQTT、STOMP、AMQP 之类的异步协议由 Apache Kafka Stream、RabbitMQ 之类的平台处理。
了解何时何地使用同步模型与异步模型,是设计高效微服务通信机制时的基础要素。
消息与事件
在异步通信中,常见的机制是消息传递和事件流。
消息
消息 是发送到特定目的地的数据项目,它封装了 意图 / 动作(需要发生的事情),并通过消息传递之类的渠道分发。队列负责存储消息,直到它们得到处理和删除。在消息驱动的系统中,可寻址的收件人等待消息到达并做出响应,否则将处于休眠状态。
事件
事件封装了状态的变化(发生了什么),而事件侦听器会附加到事件源上,以便在事件发出时调用它们。
域事件:与应用程序生成的业务域相关的事件(下图中的 OrderRequested、CreditReserved、InventoryReserved)。这些事件是事件源关注的。