ActiveMQ学习总结

ActiveMQ是一种开源的,实现了JMS规范的,面向消息(MOM)的中间件,为应用程序提供高效的、可扩展的、稳定的和安全的企业级消息通信。

什么是消息中心?

是指在分布式环境中,两个或者多个独立运行的系统之间,提供消息通讯作用的中介。

什么是JMS?

Java消息服务(Java Message Service)应用程序接口,是JavaEE平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。

RPC框架的局限性:

我们现在使用的框架基本是RPC框架。那么在面对规模比较大,越来越复杂的分布式系统中,它的局限性就越来越明显。原因:

1)同步通讯,当客户端发送一个请求到我们的后台,那么这个时候必须要等后台返回结果之后才能继续执行,单向性。

2)客户端和服务端的生命周期紧密耦合在一起,这样的结果是,服务端和客户端都必须正常运行的时候,才能够运行我们的系统。当服务端或者网络出现问题的时候。客户端将会出现异常。

3)点对点的通讯,客户端的传输只能发给一个 单独的目标对象。

使用消息中心的特点:

1)消息的异步接收,消息的发送者不需要再去等待响应的结果,这提高了整个应用系统的性能

2)消息的可靠接收,消息发送之后会保存到一个容器中,只有消息接收者接收到数据之后才会将消息进行删除

3)消息以队列的方式接收:消息以队列的形式进行接收,等着一个一个去处理

案例:

生产者:

消费者:

生产者:

第一个参数的是否开启事务,当设置为true的时候,参数B是被忽略的。当执行生产者去生产消息,是无法生产的。因为开启了事务,那么就必须提交事务。这样才能生产消息队列。当第一个参数设置为false,这个时候,参数B是生效的。其中所对应的值分别为:

Session.AUTO_ACKNOWLEDGE:当客户端从receive或onMessage成功返回时,session自动签收客户端的这条消息的收条.

Session.CLIENT_ACKNOWLEDGE:客户端通过调用Message的acknowledge方法签收消息.在这种情况下,签收发送在session层面,签收一个已经消费的消息会自动的签收这个session所有已经消费消息的收条.

Session.DUPS_OK_ACKNOWLEDG:此选项只是Session不必确保对传送消息的签收.它可能引起消息的重复,但是降低了session的开销.所以只有客户端能容忍重复消息,才可使用.

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值