一、目录分析
从上面看出一般的项目目录类似,简单分析下其作用:
- bin:为启动目录。
- conf:为配置文件,核心文件有activemq.xml(核心配置,加载jetty.xml等文件和管理数据持久化)、jetty.xml(配置启动端口)、jetty-realm.properties(配置用户名密码)几个。在登录web控制台的时候,需要用户名和密码。
- data:是消息持久化的地方,默认使用kahadb,当然我们可以采用leveldb,或者采用JDBC存储到MySQL,或者干脆不使用持久化机制。 -
- webapps:使用jetty提供的web控制台
二、启动ActiveMQ
在win下直接点击如下脚本即可启动,访问目录:http://localhost:8161
用户名密码可在jetty-realm.properties文件中查看。
# 用户名: ,密码, [,角色 ...]
admin: admin, admin
user: user, user
三、 HelloWorld
基于P2P的简单例子
//参数1:是否启用事务;参数2:签收模式:
session = conn.createSession(true, Session.AUTO_ACKNOWLEDGE);
简单说,就是消费者接受到消息后,需要告诉消息服务器,
我收到消息了。当消息服务器收到回执后,本条消息将失效。
因此签收将对PTP模式产生很大影响。如果消费者收到消息后,
并不签收,那么本条消息继续有效,很可能会被其他消费者消费掉!
- AUTO_ACKNOWLEDGE:表示在消费者receive消息的时候自动的签收
- CLIENT_ACKNOWLEDGE:表示消费者receive消息后必须手动的调用acknowledge()方法进行签收。更好用,我们可以手动控制,如果消息处理失败,那么消息还有效,任然会继续处理,直到成功。
- DUPS_OK_ACKNOWLEDGE:签不签收无所谓了,只要消费者能够容忍重复的消息接受,当然这样会降低Session的开销
package