不同编程语言之间的通信方式有哪些?

2016-06-03 19:23:06 +08:00
 hujianxin

最近在思考一个问题,就是两种或者多种编程语言之间有哪些通信方式,以及他们的适合领域是哪些呢?

我自己能想到的(但是并不一定对)有:

  1. ffi 方式。例如 racket 有自己的 ffi 模块,可以使用 c 语言。但是这种方式试用范围很有限,只能使用少数几种编程语言支持的编程语言。
  2. 共用数据库。在有些场合中,两种编程语言之间只需要交互数据,这样的话可以共用数据库。
  3. webserver 方式,例如 java 和 python 之间通信,可以使用 flask 起一个 web server ,然后 java 起一个简单的客户端。这种应该是用的比较多的吧?
  4. 甚至可以通过在一种编程语言使用管道运行另一种编程语言。

但是,最近还在网上看到了 rpc 通信方式,由于没有经验,对这方面不是很懂,希望这方面经验大大可以指教一下。

10891 次点击
所在节点    程序员
32 条回复
ElloRay
2016-06-04 09:40:05 +08:00
thrift 没人用吗
kanner
2016-06-04 10:10:22 +08:00
thrift 的序列化+thrift 的 RPC
elgoog1970
2016-06-04 10:26:00 +08:00
json,xml,protobuf, .....
tobyxdd
2016-06-04 10:28:37 +08:00
socket 挺好
ooTwToo
2016-06-04 10:34:43 +08:00
总归都是 tcp 和 udp 吧
quericy
2016-06-04 10:42:30 +08:00
json,msgpack
alexapollo
2016-06-04 10:43:07 +08:00
@ooTwToo RPC 才走协议栈
alexapollo
2016-06-04 10:43:39 +08:00
@ElloRay
@kanner 现在都有哪些公司在用 thrift ?有用 grpc 的吗?
edfward
2016-06-04 11:49:11 +08:00
@alexapollo https://github.com/uber/tchannel Uber 内 thrift+tchannel 挺常见的
alexapollo
2016-06-04 11:50:45 +08:00
@edfward hmm ,我在想 thrift 对比 grpc 是否更成熟点
alexapollo
2016-06-04 11:51:52 +08:00
默默给各位安利一下刚刚画的两张图,说明这些技术、概念的关系的
传送门 1 : http://www.anwcl.com/wordpress/ipc-rpc/
传送门 2 : http://www.v2ex.com/t/283430#reply0
smithtel
2016-06-04 13:37:31 +08:00
ICE

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/283323

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX