需求
因为我们的硬件sdk只提供了python的版本,故需要python作为采集端来获取数据,然后将数据发送给java作为数据中心处理。
分析
这里就涉及到跨语言跨进程的数据的中转。有以下的几种解决方法
- tcp:基于tcp自己拆包粘包,做心跳。一看就pass
- netty:比上面好一点,而且netty自带了tcp的各种控制功能,但是netty只是java的。对于python 而言,要实现的功能一个不少。
- vertx:最终的解决方案,通过网上各种查找资料找得号称可以跨进程且自带心跳重连,协议统一的框架。
实践vertx中的一些趣事
首先我根据ai的回答去找vertx的pip源,结果ai的回答五花八门。要不然不存在,要不是就是zpi不对。看的我两眼一黑。然后去pipy上看。
不存在官方的pip
我首先去搜索了半天,绕晕了
分不清,不知道是那个
想了想还是决定去github主页上看
github
兜兜转转了半天,来到了官方的主页
https://github.com/vert-x3/vertx-eventbus-bridge-clients/tree/master/python
然后直接将官方的整个库(其实也就两个文件)给放到了我的下面
github官方api的错误
根据这个演示文件,我发现库文件压根没有这个api。幸亏我没有用这个。
结束
然后非常完美和java的vertx联调非常成功。