ActiveMQ默认是不开启用户认证机制的,如果需要开启则需要修改配置。
1. 首先打开activemq.xml,在broker下增加
<plugins> <jaasAuthenticationPlugin configuration="activemq" /> <authorizationPlugin> <map> <authorizationMap> <authorizationEntries> <authorizationEntry queue=">" read="admins" write="admins" admin="admins" /> <authorizationEntry topic=">" read="admins" write="admins" admin="admins" /> </authorizationEntries> </authorizationMap> </map> </authorizationPlugin> </plugins>authorizationEntry中配置队列(queue)或主题(topic)的read、write、admin分别需要什么角色。>表示统配。
2. 修改login.conf
activemq { org.apache.activemq.jaas.PropertiesLoginModule required org.apache.activemq.jaas.properties.user="users.properties" org.apache.activemq.jaas.properties.group="groups.properties"; };这里的activemq 要与<jaasAuthenticationPlugin configuration="activemq" /> 中configuration的值保持一致。
3. 修改users.properties
admin=admin前面是用户名后面是密码
4. 修改groups.properties
admins=admin前面是组名,后面是用户列表。多个用户之间用逗号分隔。
首先需要将mysql驱动、commons-dbcp、commons-pool这三个jar包放到activemq的lib目录下。
修改activemq.xml
<persistenceAdapter> <jdbcPersistenceAdapter dataDirectory="${activemq.base}/data" dataSource="#mysql-ds" useDatabaseLock="false"/> </persistenceAdapter>在broker外配置
<bean id="mysql-ds" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://192.168.1.202:3306/activemq?relaxAutoCommit=true"/> <property name="username" value="root"/> <property name="password" value="root"/> <property name="maxActive" value="200"/> <property name="poolPreparedStatements" value="true"/> </bean>然后创建数据库activemq。
修改mysql配置
[mysqld] binlog_format=mixed