netty 和 rabbitmq 问题 (层次/关系/区别/结合)

65535 发布于 2015/04/22 16:58
阅读 4K+
收藏 2

开源之夏第三届火热来袭,高校学生参与赢万元奖金!>>>

小弟不才,最近在关于netty和rabbitmq之间才生一些问题,希望各位不吝赐教,十分感谢。

1、netty和rabbitmq层次的问题:
我知道netty是tcp通信框架,rabbitmq是基于tcp通信封装的一种消息队列。如果包含套节字的话他们之间的关系层次是 socket/nio ---> netty ---> rabbitmq 这种,不知道我理解的有没有错误。

2、netty和rabbitmq 替换关系:
在不考虑数据解析序列化的前提下,单对单的,不涉及延时:能用netty的地方是不是可以用rabbitmq?能用rabbitmq的地方是不是可以使用netty+protobuf替换。

3、netty和rabbitmq 的使用场景:
netty一般用于哪种情形,server与server之间的通信是吗?能举例出其他的吗?
rabbitmq呢?怎么感觉server与server的通信也可以?
是不是netty涉及底层消息通信多一点,而rabbitmq涉及到业务层次用的蛮多的呢(说的我自己都乱了,抱歉)。

4、一个业务场景:
1台server(简单化点,假使它不会挂掉)负责生产uuid,其他的业务server的均要向他请求uuid(此业务案例参考flickr ticket server),这时他们之间的通信该采用何种模式?netty+protobuf?我怎么感觉rabbitmq或者甚至httpclient都可以怎么回事啊。

5、netty+socket.io/rabbitmq+socket.io:
看到有网友使用文章netty+socket.io这种架构,以前尝试过rabbitmq+socket.io去做推送,怎么感觉rabbitmq才适合这种业务场景,netty用在这里怎么感觉怪怪的啊。

6、best practice:
关于netty和rabbitmq结合的最佳实践是怎么样的啊,下面这种是吗?
server(server1) ---> rabbitmq(纷发路由) ---- > netty(通信/序列化) ----> server(server2) 这种层次。
还是其他呢?

小弟愚昧,恳请指教,十分感谢。
加载中
0
开源中国好小伙

我也想问,关键是没人回答呀

0
ArchitectureMaster
ArchitectureMaster

netty是一个基础网络框架,相当于做房子的绞手架,你可以在这个框架为基础开发自己的协议或基于某些协议实现。如netty可以实现一个http echo服务或mqtt。

市面上有很多http的框架,如beeltx fasthttpapi、httpd这些,你可以通过netty现实自己的类似于这样的框架。

而mq则是一种协议标准,rabbitmq、 rocketmq都是实现了mq这种标准的应用。

你可以基于netty 框架实现一个mq协议。当然也可以从零开始基于socket的tcp来实现一个mq。这就看你自己的选择。

总之,MQ是一种标准,即MQ的消息生产者和消费者都要遵守的规则,这时就可以使用MQ。而RabbitMQ只是不同的发行版本,而Netty则是一个轻量级的网络通信基础框架,你可以使用其示例代码里的MQTT示例,也可以自己去实现。

 

OSCHINA
登录后可查看更多优质内容
返回顶部
顶部
返回顶部
顶部