ActiveMQ概念及Broker服务创建

What's ActiveMQ

JMS Provider的一种实现,用来帮助实现高可用,高性能,可伸缩,易用和安全的企业级面向消息服务的系统。

1.实现系统之间的解耦

old: System A ---> System  B
now: SysTem A ---> (Message Oriented Middleware消息中间件) --->System B

2.保证高性能,A系统发出请求后不再需要等待B系统的响应就可以继续做其他事情了!    

JMS概念

1.PTP ,Pub/Sub API结构

PTP: 
    1.每条消息只能有一个消费者
    2.消息的生产者和消费者之间没有时间上的相关性,无论生产者是否在运行,消费者都可以从队列中提取消息
            send           acknowdge
    Producer ------> Queue ----------> Consumer

PUB/SUB: 
    1.每条消息可以有多个消费者
    2.消息的生产这和消费者之间存在时间上的相关性,消费者只能在订阅之后接收订阅时间之后Topic中的消息  
            publish	      subscrible
    Producer --------> Topic -----------> Subscriber(1...n)

2.JMS持久化和非持久Topic

消息类型:TextMessage,MapMessage,BytesMessage,StreamMessage,ObjectMessage    

非持久的Topic:
    必须要求消费者在线。唯有消费者在线,生产者发送消息,消费者才能接收到消息。

持久的Topic:
    必须先运行消费者端,等于向消息中间件注册该订阅指定topic的消费者。然后运行生产者端,此时无论消费者是否在线都可以接收到消息,不在线的话,下次连接时,会自动接收到不在线期间订阅的消息。
    1.保证了消息的可靠性,消息不易丢失。

ActiveMQ安装及基本使用

1.去Apache ActiveMQ官网下载   ActiveMQ download  本人下载版本为:apache-activemq-5.15.12-bin.tar.gz 

解压:tar -xvf ./apache-activemq-5.15.12-bin.tar.gz

2.启动ActiveMQ broker服务

解压安装后, bin目录下 ./activemq start
#此命令默认使用conf目录下的activemq.xml(内部配置消息持久化,broker等相关配置信息)作为配置文件启动activeMQ,推荐大家去详读一下相关配置内容。

#如果需要使用自定义的配置文件来启动activeMQ,则命令为: ./activemq start xbean:file:xxxxx(自定义文件路径)。

##ActiveMQ 服务默认端口为61616

3.去ActiveMQ自带的管理页面查看相关服务信息 http://ip-addr:8161/admin/

4.Java手动创建ActiveMQ Broker服务,一般在ActiveMQ服务器宕机时候可以临时代替使用

普通Broker服务:
引入ActiveMQ核心组件依赖
Pom:
<dependency>
	<groupId>org.apache.activemq</groupId>
	<artifactId>activemq-core</artifactId>
	<version>5.7.0</version>
</dependency>

<dependency>
	<groupId>org.apache.xbean</groupId>
	<artifactId>xbean-spring</artifactId>
	<version>4.16</version>
</dependency>

Java:
public class createBroker {
    public static void main(String[] args) throws Exception {
        BrokerService broker=new BrokerService();
        broker.setUseJmx(true);
        broker.addConnector("tcp://localhost:61616");
        broker.start();
    }
}

#测试,通过Producer和Consumer分别发送和接受消息,如果都没问题证明我们手动创建的Broker生效。

 

用Spring实现的Broker服务

pom:
<dependency>
	<groupId>org.apache.activemq</groupId>
	<artifactId>activemq-spring</artifactId
	<version>5.15.12</version>
</dependency>
<!--注册消息连接池相关类-->
<dependency>
	<groupId>org.apache.activemq</groupId>
	<artifactId>activemq-pool</artifactId>
	<version>5.15.12</version>
</dependency>

<!--注册jms核心类-->
<dependency>
	<groupId>org.springframework</groupId>
	<artifactId>spring-jms</artifactId>
	<version>5.2.5.RELEASE</version>
</dependency>
<dependency>
	<groupId>org.springframework</groupId>
	<artifactId>spring-context</artifactId>
	<version>5.2.5.RELEASE</version>
</dependency>

ApplicationContext.xml:
<!--broker bean-->
<bean id="broker" class="org.apache.activemq.broker.BrokerService" init-method="start" destroy-method="stop">
	<property name="brokerName" value="myBroker"/>
	<property name="persistent" value="false"/>
	<property name="transportConnectorURIs">
		<list>
			<value>tcp://localhost:61616</value>
		</list>
	</property>
</bean>
...

JAVA:
	ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");

#测试,通过Producer和Consumer分别发送和接受消息,如果都没问题证明我们手动创建的Broker生效。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值