文章目录

前段时间拿golang写了一个tcp连接代理,后端由python来处理逻辑,中间通信用了zeromq。本来呢我还是挺满意这套方案的,一是golang写的东西稳定性还不错,性能高,用chan实现goroutine间的通信十分方便;二是zeromq来跟后端的python做通信,让python进程来处理逻辑部分,如果逻辑更新只需要重启python就可以实现不断线更新代码;三是zeromq的通信模式很适合做成分布式,不需要自己处理一些仔细问题。但在使用zeromq的过程是对于req/rep模型的服务端死亡后导致客户端一直阻塞的情况没有找到比较好的解决方案,只能使用超时机制。如果能有超时加错误状态的冲突检测功能就好了。

后来在跟卿卿聊天中提到了erlang,原先我也考虑过这个东西,只是一直没去学它,本来打算做为以后改进时使用的一个备用方案留档的。不过现在既然翻出来了就决定好好的学习一下,毕竟这货是专门为了分布式而生的。

先在此挖个坑。。。。。

在自己的 mac 上装了 Erlang R16B02 (erts-5.10.3) ,顺便看了一些相关的资料,越看越觉得这货很好,分布式的能力太强大了。

文章目录