activemq小总结
基于jms实现的消息中间件,可以进行多种配置,实现同步或异步消息处理,实现事务处理。
同步接收消息:
MessageConsumer中的Messagereceive()方法,会阻塞的获取同步消息,此方法可以带参数,控制最长阻塞时间
异步接收消息:
MessageConsumer中的voidsetMessageListener(MessageListenerlistener),可以设置个监听器,等有消息来的时候触发此监听中实现的方法onMessage(Messagemessage)方法,对消息做处理
事务
Connection生成session时,SessioncreateSession(booleantransacted,intacknowledgeMode)方法的第一个参数是配置事务用的,如果第一个参数是true,第二个参数就必须是Session.SESSION_TRANSACTED。它们的意思是这个session必须有明确的事务处理。比如session.commit()来确认发送或接收
master-slave
只需要把多个activemq中的存储消息的地址设置成一个,就会自动进入master-slave模式,第一个启动的activemq就会是master,其他的mq会等待,如果master发生故障,其他的mq会自动抢存储地址,抢到的就成为master。修改<kahaDBdirectory="XXX"/>
负载均衡
需要在broker节点里配置<networkConnectors>,在多个activemq中设置<networkConnectors>属性,并且uri地址互指,在代码调用的时候url的设置可以做类似"failover:(tcp://localhost:61617,tcp://localhost:61616)"这样的设置