首先, 不一定能做成. 参与点我 -> 新版重构任务列表
本项目的思路最初来源于看 Linux kernel 有关于总线的时候,想完成一个事件总线来做一个事件驱动的框架,基于云的事件总线在各大云厂商(Google 等)中已有实例。后来我也找到了事件驱动的开源项目 Dapr 成为组织成员贡献(但 Dapr 还年轻,太复杂,不适合小公司)。中间将学习到的思想实践在这个库中。项目链接: silverswords/pulse
思考 Microservice Orchestraion 的事。了解现有的微服务理念和实践的差异,主要在于逻辑依旧没有简化,调用模式从本地调用变成了 RPC,服务注册从文件中写函数转移到注册中心。事件总线区别于调用式的编程,最大限度减少系统间的硬性依赖。这样的编程泛型在计算机科学中已历经多年,在 AWS (EventBrige C++ Lumberyard )等云厂商中也有对应产品。这样的框架是否能成为通用云原生的编程泛型?
简单来说,场景有混合云和物联网。使用事件驱动的框架进行消息传递。第一步实现一个易改动易扩展的发布/订阅系统,然后将它改造应用在不同的场景中。
新版的设计草图如下:
接已有的项目代码,通过 Driver 抽象层解耦底层的 Message Queue 应用(或是一个简单的 Streaming Conn),通过 Adapter 层实现字节流到 DDD 定义的消息之间的转换。Pub/Sub 模型建立在 主题 和 消息 两个概念上。最后在此模型上增添协议层, 用于控制该模型的通信。(如重试,限流,服务调用机制等)