Flink流处理框架下的交通灯控制器

Flink流处理框架下的交通灯控制器,第1张

Flink流处理框架下的交通灯控制器

假设目前系统的每个信号量都在正常执行任务,同时传感器在不断注册信息上传至云端同时控制器接受使用过程收到的记录,允许根据实时方向的流密集度,自适应调整允许对应的交通灯保持红-绿灯间隔状态时间。

控制器核心:

1. SemaphoreController 模块管理系统中与信号量的收集相关功能,由于Semaphore不是唯一能够发送信息的载体;在智能手机等智能设备已成为普遍的设备,利用它们的传播和网络链接来获取越来越重要的数据是友好的方式所以SemaphoreController模块的Semaphore具有扩展性同时SemaphoreController模块在信号量处理并将通知用户,同时利用机器学习算法控制交通灯路口对信号量进行计时。设备间通信出现问题,SemaphoreController模块会建立紧急模式。
2. 如果不是所有载体都收到一条消息就会出现不愉快的情况,基于此使用2PC协议来交换消息,将事务提交过程分成两个阶段来进行处理,使得每个载体必须知道控制器做出的决定。
3. 传感器发送的数据被一个组件接收,该组件在执行流处理、聚合并输出有效的统计数据以检索。这样的所有流程都由发布/订阅消息框架捆绑在一起,允许组件之间的简单有效消息交换。

流程周期结构:


1. 数据由传感器生成,这些传感器生成包含不同信息的元组流。这些元组被生成到kafka主题中,从Flink和Java实例中读取。Flink使用这些数据来计算聚合并发送到Kafka主题的结果。这些结果由名为Monitor的Java实例读取,以便计算查询,计算结果被写入基于分布式文件存储的数据库MongoDB。
2. 传感器元组与发送数据的信号量控制器的读取流,由于信息号量控制器可以决定那个信号量元组可以设置为绿色,这决定是在不同Kafka主题上发送的,信号量可以在这些主题上收听并被告知那些状态必须改变。

模块流程结构:


Fornt end:由一个网页与监视器实例组成。检索有关信息的唯一方法是从数据库中读取。
IoTSimulator:使用Kafka代理模拟IOT数据交换。
Semaphore:使用Kafka读取交通灯路口信息并发送传感器数据并提供REST接口在实例化期间由用户进行配置。
Semaphore Controller:涉及2PC协议在信号量中交换消息,检索由机器学习算法做出决策或包括管理交通灯在内的一切。
Crossroad controller:此实例可以访问存储系统并存储它负责的信号量状态以及自身状态,允许添加新的信号量或删除它们。
Monitor:它从 Kafka 读取 Flink 结果,计算查询并将输出存储在 MongoDB 上。
Monitor front end:从 MongoDB 读取数据并提供用户界面来检查十字路口的信号量。
Monitor Back end:在REST接口上接收用户请求。
Flink Dispatcher:从 Kafka 主题读取传感器数据并使用 Apache Flink 进行流处理,发送关于另一个 Kafka 主题的结果。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5671728.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存