当前位置: 首页 > article >正文

流架构的读书笔记(2)

流架构的读书笔记(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 考虑参与流程标准,相关技术或组织网络的创建,以提高效率或通过流创建
新的市场生态系统。

六、流媒体和服务的四个类别

寻址和发现
命令和控制
查询和可观测性
遥测和分析

在现代复杂的系统环境中,必须跨服务协调工作,以正确定位,表示,
(即分配标识符)并且利用系统范围内的每个新实体和现有的实体。
这就是所谓的寻址和发现。

询问事件流的问题,并且使用该数据来理解行为查询和可观测性侧重于
询问和监控单个代理或特定的(尽管可能很大)组的代理。
而遥测和分析侧重于理解系统行为。

双向对话用消息,单向传信息用事件,事件用于警报,通知,简单状态
更新,系列事件的应用程序包括股票行情,气候数据跟踪,医疗保健监测等。


http://www.kler.cn/a/455591.html

相关文章:

  • Fama MacBeth两步法与多因子模型的回归检验
  • VUE3+VITE简单的跨域代理配置
  • UE(虚幻)学习(三) UnrealSharp插件中调用非托管DLL
  • .NET能做什么?全面解析.NET的应用领域
  • 简单讲解关于微信小程序调整 miniprogram 后, tabbar 找不到图片的原因之一
  • golang连接jenkins构建build
  • 「地平线」副总裁余轶南与「理想汽车」智驾产品总监赵哲伦联手创业,入局具身智能赛道!
  • 实践KDTS-WEB从mysql迁移到kingbasev9
  • 平凉大锅盔:历史与美味的交织
  • matlab客户端最新功能:使用vs code的github copilot编写mlx实时脚本文件
  • 渗透--还是tp
  • 浅谈下Spring MVC的执行流程
  • 关于SNAT、DNAT及浮动地址
  • MAC M4安装QT使用国内镜像源在线安装
  • JAVAweb學習日記(四)Maven
  • 大语言模型提示词工程
  • 基于Sentinel的服务保护方案的三种方式(请求限流、线程隔离、服务熔断)超详细讲解
  • AR 模型的功率谱
  • 优雅草央千澈-关于蓝湖如何快速的标注交互原型是如何使用的-如何使用蓝湖设计交互原型和整个软件项目的流程逻辑-实践项目详细说明
  • 卷积神经网络-三维卷积
  • 请分别从CPU、内 存、IO、⽹络的⻆度判断Linux的瓶颈?
  • 【数据库学习笔记】SQL触发器(例题+代码)
  • STM32F103RCT6学习之二:GPIO开发
  • Java 中的 7 种重试机制
  • 网狐旗舰版源码搭建概览
  • uniapp小程序使用webview 嵌套 vue 项目