Python加Java!有什么项目是这两兄弟不能完成的吗?高效的交互!

7 篇文章 0 订阅
4 篇文章 0 订阅

问题背景

项目过程中可能会遇到,java从数据库取了很多数据,但java本身不方便处理,所以传递给python去处理,如何传?

解决方法

调研了一些方法,譬如可以直接在java中调研python,传入参数的方式,或者数据先存储到excel中,然后python去excel中读取,但是这些方法还是存在不便利和性能会有限制。之后,我尝试了增加个rabbitmq消息中间件进行不同语言之间的通信交互。

MQ是消费-生产者模型的一个典型的代表,一端往消息队列中不断写入消息,而另一端则可以读取或者订阅队列中的消息。MQ和JMS类似,但不同的是JMS是SUN JAVA消息中间件服务的一个标准和API定义,而MQ则是遵循了AMQP协议的具体实现和产品。RabbitMQ是一个在AMQP基础上完成的,可复用的企业消息系统。

上图是简单抽象的描述,具体到 rabbitmq 有很多详细的概念,这里不一一详述。

我自己是一名高级python开发工程师,这里有我自己整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。送给正在学习python的小伙伴!这里是python学习者聚集地,欢迎初学和进阶中的小伙伴!


来微❤公粽号:“速学Python”,拿Python学习资料

.

当然,我们上面也说过 ,rabbitmq 是 AMQP 协议的一个开源实现,所以其内部实际上也是 AMQP 中的基本概念,包括:Message(消息)、Publisher(消息生产者),Exchange(交换器),Binding(绑定),Queue(消息队列),Connection(网络连接),Channel(信道),Consumer(消息消费者),Virtual Host(虚拟主机),Broker(消息队列服务器)。

实际例子

生产者使用java,往队列中写入待处理的消息。

java代码(即生产者)

 

消费者使用python代码,从消息队列中获取java生成者发送的消息进行处理。

python代码(即消费者)

 

我们可以看到python顺利拿到java传输的数据,至于你拿到数据后,后面要做什么复杂的操作、分析,那就是看你自己的需要了。

另外,你不妨尝试把模拟数据条数提高到10万条甚至更多, rabbitmq基本能保持稳定有效。

小结

在解决不同语言程序之间数据传输问题上,方法各异,rabbitmq是一个很好的选择,处理数据量大,且从时间效率上来说也快,而且很方便的进行系统的解耦。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值