流架构的读书笔记(2)
一、建模工具之一沃德利地图
推测技术的发展,交流和辩论思想的最有力的方法是沃德利地图
沃德利地图的制作步骤
1确定范围和用户需求
2确定满足用户需求所需的组件
3在一条范围从全新到被人们接受的演进轴上评估这些组成
部分的演进过程
地图的横轴是演化进程,从起源,定制,产品,商品四个阶段.
地图的纵轴是价值链的可见性的度量,从不可见到可见的过程.
在做地图的时候,需要问自己的问题有
谁是需要流集成的用户?
一个不太显眼的组件对一个更显眼的组件有什么承诺呢?
二、流架构的主要的组件的简介
定义,创建和控制流连接的接口
定义如何以及何时在两个实体之间传输数据的协议(包括格式化和流控制)
逻辑关联:消费者与生产者协商建立和管理对流的访问的接口
发现:用于发现流的来源并描述其属性(如数据量,使用的协议)的接口
逻辑关联的接口在生产者与消费者(或他们的代理,如有使用)之间
建立了一个关于如何打包和支付数据的契约。这个接口将允许使用者
发送身份验证信息以建立订阅,订阅有效时管理该订阅,以及在不再需要
订阅时关闭该订阅。
使用发现接口来确定流的质量,例如技术流量,负载模式,财务费用等。
接口的例子:HTTP,WEBSocket,MQTT
消息传递协议的例子:MQTT,AMQP,Kafka Connect API ,Kabbit MQ API
源:收集数据的设备或者软件组件
处理器:处理传入的数据的组件
队列:一种代表生产者消费者收集存储转发流数据和事件的机制
接收器:用于显示,存储流结果的组件
容量:执行各种计算任务所需要的时间和资源
商品服务:许多流交互任务所需要的共享计算能力
三、技术演进阶段
起源:独特,罕见,不确定,不断变化,新发现
定制:仍在学习,不寻常,频繁变化
产品:包括租赁,定义更明确,稳定,同一
商品:包括工具集,高度标准化
产品阶段重点是改善运营,维护产品
商品阶段重点是无情地消除偏差,提高工业化程度和运营效率。
四、流架构的前身
实时数据共享的最早尝试只是允许共享访问文件或者是数据库。
组合数据库涉及重写(以及“重新布线如打开新的网络端口”)
现有的应用程序,或者插入新技术来同步两个应用程序的数据库
之间的数据(本质上就是在两个数据库之间创建一个数据流)
软件使用消息队列来实现异步通信。侧重于生产者和消费者解耦,
并提供各种传递保证。
MQTT是一种发布和订阅的协议。
基本操作如下:
1客户端(充当发布者,访阅者或者两者兼而有之)请求与代理连接。
该连接被分配了一个连接ID,并由客户端和代理监控
2代理管理一个主题列表,使其能够识别对一组消息集合感兴趣的订阅者组
3作为订阅者的客户端请求订阅一个或者多个主题
4充当发布者的客户端向包含相关主题名称的代理发布消息。
5然后,代理使用主题名称将消息路由到适当的客户端
HTTP是一个请求应答的协议
WEBSocket是一个通信的协议
事件处理引擎包括 函数(包括低代码或无代码处理器)
基于日志的流平台,有状态的流处理。
可组合系统通常不会出现在商业平台中,因为这些平台试图通过预定义
关键流程或流程自动化元素来移除工作。
对于平台供应商来说,使用连接器是一种理想的方案,因为它们可以实现
生态系统形成和营销方案的一致性。通过控制谁和什么可以扩展你的平台,
你可以控制品牌,市场契合度和效用。还可以避免由于采用这种可组合的
方法所造成的针对平台的许多奇怪的意想不到的用法。
五、建设一个流的未来的三件事
1确定组织中对接近实时处理的需求,以响应组织软件系统内外状态的变化
2采用“事件优先”策略来架构和操作满足这些需求应用程序和服务,
包括与外部实体集成的地方
3 考虑参与流程标准,相关技术或组织网络的创建,以提高效率或通过流创建
新的市场生态系统。
六、流媒体和服务的四个类别
寻址和发现
命令和控制
查询和可观测性
遥测和分析
在现代复杂的系统环境中,必须跨服务协调工作,以正确定位,表示,
(即分配标识符)并且利用系统范围内的每个新实体和现有的实体。
这就是所谓的寻址和发现。
询问事件流的问题,并且使用该数据来理解行为查询和可观测性侧重于
询问和监控单个代理或特定的(尽管可能很大)组的代理。
而遥测和分析侧重于理解系统行为。
双向对话用消息,单向传信息用事件,事件用于警报,通知,简单状态
更新,系列事件的应用程序包括股票行情,气候数据跟踪,医疗保健监测等。