事件驱动架构是由生产者和消费者组成,生产者负责生产事件,消费者监听并消费事件。
创新互联专业为企业提供隆昌网站建设、隆昌做网站、隆昌网站设计、隆昌网站制作等企业网站建设、网页设计与制作、隆昌企业网站模板建站服务,十年隆昌做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
事件驱动架构
事件分发以近实时的方式进行,所以当事件产生时,消费者可以立即做出应对。
还有一种模式,多个消费者是竞争的关系,它们从同一个队列消费,不出现错误的情况下每个事件都只被处理一次。
另外,在某些系统中,事件导入的吞吐量要求也很高,比如IoT系统。
事件驱动架构可以通过发布/订阅模型或事件流模型来实现:
在事件的消费上,也可以有一些略微不同的方式:
事件通常来源于外部系统,比如IoT中的物理设备、互联网用户的端上。我们在设计时,必须认真评估总体的数据量和吞吐量,以保证系统能支撑这个量级。
在上面的流程图中,右侧的三个格子表示三种类型的消费者,每种类型的消费者下面有多个实例。在实际场景中,出于容灾的目的,多个消费者实例的情况非常普遍。为了保证事件处理的吞吐量,多个实例也是有必要的。
在处理事件时,一个消费者实例可以创建多个线程。这也能提高处理的吞吐量,不过事件被处理的顺序就乱了,业务上可能无法接受;另外多线程处理也很难保证exactly-once语义。
在设计系统时,我们通常需要考虑单条消息的大小,它对系统的性能和金钱成本影响都非常大。如果走两个极端的话,可以是:
如果将所有需要的信息都放到单个事件里,处理起来会很方便,并且能够避免额外的信息查询。
如果将非常少的信息放到单个事件里,比如ID字段,那么会节省大量传输数据的时间和金钱成本,但其他信息需要访问其他服务才能获取到。
这其中的利益权衡,看自己的业务来定了。
文章名称:服务架构:事件驱动架构
当前地址:http://www.csdahua.cn/qtweb/news27/67477.html
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网