ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,尽管JMS规范出台已经是很久的事情了,但是JMS在当今的J2EE应用中间仍然扮演着特殊的地位。
主要特点:
1. 多种语言和协议编写客户端。语言: Java, C, C++, C#, Ruby, Perl, Python, PHP。应用协议: OpenWire,Stomp REST,WS Notification,XMPP,AMQP
2. 完全支持JMS1.1和J2EE 1.4规范 (持久化,XA消息,事务)
3. 对Spring的支持,ActiveMQ可以很容易内嵌到使用Spring的系统里面去,而且也支持Spring2.0的特性
4. 通过了常见J2EE服务器(如 Geronimo,JBoss 4, GlassFish,WebLogic)的测试,其中通过JCA 1.5 resource adaptors的配置,可以让ActiveMQ可以自动的部署到任何兼容J2EE 1.4 商业服务器上
5. 支持多种传送协议:in-VM,TCP,SSL,NIO,UDP,JGroups,JXTA
6. 支持通过JDBC和journal提供高速的消息持久化
7. 从设计上保证了高性能的集群,客户端-服务器,点对点
8. 支持Ajax
9. 支持与Axis的整合
10. 可以很容易得调用内嵌JMS provider,进行测试
Beanstalk 是一个简单、快速的消息队列。Beanstalkd之于RabbitMQ,就好比Nginx之于Apache,Varnish之于Squid。后面在项目中使用Beanstalkd的过程中,更发现其简单、轻量级、高性能、易使用等特点,以及优先级、多队列、持久化、分布式容错、超时控制等特性。
Beanstalkd 包含多种编程语言的客户端开发包,详情请看这里。Beanstalkd 同时也提供一些图形化的管理工具,详情请看这里。
示例代码:
1
2
|
beanstalk = Beanstalk::Pool.
new
([
'10.0.1.5:11300'
])
beanstalk.put(
'hello'
)
|
如果从产品背景来划分,可以说,网易、腾讯、阿里推出的IM云服务属于这个市场上的巨头级产品,尤其腾讯和网易,有着十余年的IM开发运维经验,比较成熟。而融云、环信、亲加、容联云则属于创业公司级产品,多数融资到A轮,为吸引客户做出的免费力度也是最大。
作为资金紧缺的创业公司,可以通过各家开放的免费项目进行测试,从而选择性价比最高的。而对于想要长远发展的产品来说,免费的服务恐怕不能作为长期的IM功能支持,收费且稳定的大公司级产品应该作为重点考虑。
云服务后期技术支持有多重要?
市场上众多的IM云服务,仅从表面的功能介绍来看,很难判定谁更靠谱。但是当互联网巨头开始进入这个市场后,其带给创业公司的竞争压力就需要做考虑在内,毕竟互联网行业风云变幻,“B轮死”的现象很常见。
另外,凡是接入过IM云服务的开发者都知道,接入IM云服务是很简单的事,基本上1-3天内即可完成接入。但比接入和技术本身更重要的往往是“后期维护”,牵涉到出个问题你能不能找到人、对方技术人员配备是否完善。上述论坛曝光的阿里悟空后期找不到人员维护就会对开发者造成很大损失,甚至造成宕机,影响用户体验。一些创业公司也经常面临人员缺乏的问题。