Skip to content

turingF/newZKdemo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

newZK集成规范

消息模式规定v1.0

消息以json的形式来传递。主要消息类型暂定为:

集成消息

待集成模块向register里发布集成信息,管理总线订阅newTopic,如收到订阅信息则将其 放入集成队列并upload其项目文件。

  • moduleName:项目名称,主键

控制消息

管理总线可以向controlAdmin发布消息,所有模块得到消息后对比如果是自己的消息模块 则运行其command并把自身状态反馈。

暂定控制消息为控制模块运行状态status的值:

  • moduleName:需要控制的项目
  • command:需要调整的状态(0/1/2)

反馈消息

在模块进行command控制后反馈给管理总线自身状态,通过向feedback发布自身状态。

  • moduleName:需要控制的项目
  • command:模块自身状态

心跳信号

模块集成后每5秒向beatHeart发布自身心跳信号。管理总线维持着自身的模块管理表,若 管理表中模块对应的心跳信号连续三次未收到则断开该模块集成。

  • moduleName:自身主键

信号的发送与接收规则

因为kafka的接收数据(poll)是基于轮询的,所以规定每次轮询函数(ConsumerLoop)必须 单独创建一个线程,而发送线程只需要运行在主线程,特别的心跳信号发送是一个调度线程。

虽然可以用topic来区分消息类型,但每次consumer拉取下来的是所有订阅模块的信息。批处理 时无法判断是从哪个topic拉取下来的,所以规定发布消息record的格式为<topicName,jsonMessage>。 当然这已经在api中完成。

业务逻辑

管理总线

管理模块的集成信息和控制信息。管理总线维系着一张拥有所有已集成模块的信息表,表中内容为 模块名称作为主键。

业务总线

控制模块间的信息传输。

模块内置功能

见ZkModule的类中的功能描述。

主函数

创建管理与业务两条总线。

neo4j应用

初步暂定neo4j为展示集成的总体体系,当topic/module生成时会产生新的节点,当pub/sub操作 时会产生相应的边。

About

kafka demo test

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages