西纳普斯RPC框架1-起点

https://github.com/synapse-rpc

目前已经发布到GITHUB

之前的系统开发中,因为各种规则比较宽松,我们也比较崇尚自由,让最适合的语言去做最适合的事情,不可避免的带来了不少跨平台跨语言的通信需求,早些时候 GRPC等还不是很成熟,故我们自己造了一个基于 RabbitMQ 消息队列的RPC和事件系统,也就是我们称作为 西纳普斯 的系统.

一点技术之外的杂谈

本来我们就有使用二次元以及历史相关进行命名的习惯,正好那时候,重温了《天降之物》,忽然灵光一闪,这不正是符合我们命名的方案吗?

西纳普斯(Synapse) - 出自日本漫画家水无月嵩的漫画作品《天降之物》,是在天空漂浮经常移动的领域,以守形的说法为“新大陆”,停留在智树所住的空美镇,里面居住的角色都长有翅膀,分为“天使”和“人造天使”。 有一棵被称作“规则”的石柱,和地面的古老樱花树相对应,是人造天使们的诞生地。

而各种人行天使,伊卡洛斯,阿斯特蕾娅.... 嗯,就这样决定了系统的命名, 给我最喜欢的C#赋予了我最喜欢的伊卡洛斯的名字.

愿景

要实现的整个系统,首先要有最基础的RPC功能,以及事件驱动的系统.当然负载均衡也是不能少的东西.至于为什么使用了RabbitMQ作为底层,这个只能说我们最熟悉的就是这个东西了.

一些已有实现:

  1. c#(.net core2+) - 伊卡洛斯(Type α“Icarus”) icarus https://github.com/synapse-rpc/icarus
  2. golang - 妮姆芙(Type β“Nymph”)  nymph https://github.com/synapse-rpc/nymph
  3. python - 阿斯特蕾亚(Type Δ“Astraea”) astraea https://github.com/synapse-rpc/astraea
  4. java - 卡奥斯(Type ε“Chaos”) chaos https://github.com/synapse-rpc/chaos

目前这四个是已经完整的实现,github上也有其他的相关实现,不过因为并没有在实际使用中,php等对多线程支持不是很好的语言,早期也没有做到很好的实现服务器功能.

系统整体相对比较简单,通讯是基于json数据,通过消息队列进行传递.

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注