What is Event Driven Architecture (EDA) and Why Does it Matter EDA 摘要
来源:互联网 发布:java中间件有哪些 编辑:程序博客网 时间:2024/04/28 04:06
出现EDA的原因:
1. Competitive pressure to deal with the increasing pace of business:
2. On-line responses
3. IT capability
交互的三种模式:
1.scheduled
Scheduled activities work fine when the timing of the work is predictable and fast
response to an external entity is not important.
2.pulled
requester (information consumer) does not know when to ask for fresh information.
3.pushed
适合的场景:
A.实时处理
A push application anticipates consumer needs, proactively executes services and then sends critical
information to consumers. By contrast, pull systems are inherently reactive
B.需要多步处理的情况
The second area where push-based relationships are important is in multistep processes
这种情况一般是把需要及时响应的部分使用拉的方式处理,而把其他的步骤用推得方式进行处理
事件是发生的事实
an event is the fact of something happening, such as a bank transaction, stock trade, customer order, address
change, shipment delivery or buying a house
计算机不能处理事件,计算机处理的是事件对象(XML的形式等)
通知就是一个包含事件对象的消息
Event processing is defined as computing that performs operations on event objects.
Event processing includes creating, reading, deleting, transforming and responding to
event objects.
An event processing system has at least two components
(1) a sensor or source that senses events and emits event objects
(2) a consumer or responder that receives and responds to event objects
在Staged EDA 系统中每一个组件可能同时充当这两个角色
EDA是处理推事件对象的软件架构的一种方式,但是不是所有的事件处理都是EDA.事件对象可以被拉,后台事务及推等方式处理,事件对象也可能保存到信息库中后用于进行数据挖掘;或者事件对象可能被打包成远程调用,一个应用是否是EDA需要满足如下的三个条件:
1.事件对象是推过来的(event object is pushed)
事件对象被发送从事件源到消费者通过异步消息在事件被事件源监测到的时候,推的方式能够减少延迟;与拉的方式相比在请求很多的情况下系统将变得无法处理
2.组件在事件到达时进行处理(components process events on arrival)
事件消费者在得到一个事件对象的时候马上进行处理;一个端到端的处理可以马上响应只能在接收到一个事件对象的时候马上处理而不是对待一个计划的时间.
当然在高负载的情况下事件对象到来的时间比处理事件的时间还要快,在这种场景下只能尽可能快的处理事件对象
3.事件对象不指定操作
事件对象不指定操作,事件的消费者在接受到事件对象的时候进行操作.这样可以减少事件源于事件消费者之间的逻辑耦合
事件源在事件发生的时候简单的发送一个消息报告,怎么处理的逻辑由消费者来确定,这样的话开发者可以很灵活的改变,新增一个消费者而不用修改事件源.相反RPC机制以及大多数的请求响应的SOA服务包含一个服务请求者及提供者之间必须达成一致的方法名,因此请求者及提供者在修改的时候必须同步进行
可插入性是EDA系统相比请求应答系统的一个关键优势
EDA不需要使用消息中间件及pub/sub ,尽管他们通常来说很有用.同时消息中间件及pub/sub也不一定要使用EDA的方式实现
pub/sub 也经常用来发布数据而不是消息对象,例如音乐 EDA 不等于消息中间件及pub/sub
- What is Event Driven Architecture (EDA) and Why Does it Matter EDA 摘要
- What Is UAT, And Why Do It?
- EDA
- EDA?
- What is initrd and why is it necessary
- What Is UTF-8 And Why Is It Important?
- What is svchost.exe And Why Is It Running?
- What is a magic number? And why is it bad?
- 【html】What is href=“#” and why is it used?
- What is Docker and why is it so darn popular?
- what-is-the-bios-and-what-does-it-do
- What is DMA and what does it do?
- 【Architecture】EDA事件驱动架构
- node-haystack Episode 1: What is it and why
- what is *.php.inc, and why using it?
- What is d_type and why Docker overlayfs need it
- "Premium HDMI Cable" Certification -- What is it, and Why?
- What is SMS and how does it work?
- TIM通用定时器(三):PWM输入捕获模式
- 如何把任意文件隐藏在一张图片里?
- 编译错误:errno undeclared的解决
- Python文件、目录函数
- 批处理学习之三
- What is Event Driven Architecture (EDA) and Why Does it Matter EDA 摘要
- SHTML之2
- Unix哲学
- struts2 result传递参数问题
- JAVA和JSP之间的关系
- yaffs tragedy: Bad object type 错误
- 解决pydiction在(后无法补全的问题
- TCL 屏闪问题
- 六年后的回答:请问N路硬件高速缓存具体意思指什么?