MQ常用配置详解以及注意事项

MQ常用配置详解以及注意事项)

  • MQ消息管理管:
  • 配置
  • 持久化
  • 注意

MQ消息管理管:

至于中间件的安装这个就比较容易,下载下来解压到指定的目录就行/
默认登录地址以及账号信息
地址:http://localhost:8161/admin
用户名:admin
密 码:admin

配置

用户配置信息在…\conf这个目录,找到jetty-realm.properties文件,可以查看,以及进行配置
端口号配置在…\conf下的jetty.xml

持久化

MQ消息持久化:
1.kahadb方式是ActiveMQ默认的持久化方式,是一个文件型数据库。并且kahadb可以限制每个文件的大小
1、db-.log(主要存数据)是KahaDB存储消息到预定义大小的数据记录文件,文件命名为db-.log,当数据文件已满时,
一个新的文件会随之创建,number数值也会随之递增,它随之消息数量的增多,如每32M一个文件,文件名按照数字进行编号,
如sb-1.log……当不再有引用到数据文件中的任何消息时,文件会被删除或归档。
2、db.data文件包含了持久化的BTree索引,索引了消息数据记录中的消息,它是消息的索引文件,本质上是B-Tree(B树),使用B-Tree作为索引指向db-.log里面存储的消息。
3、db.free文件表示当前db.data文件哪些页面是空闲的,文件具体内容是所有空闲页的ID。
4、db.redo文件是用来进行消息恢复,如果KahaDB消息存储在强制退出后启动,用于恢复BTree索引。
5、lock文件表示当前获得KahaDB读写权限的broker。

2.JDBC持久化需要在activemq.xml文件配置有关JDBC内容
	首先需要定义一个数据源,bean的id为'mysql-ds',然后在persistenceAdapter节点配置以下内容,
		并且引用定义的数据源;createTablesOnStartup决定是否在启动的时候创建数据表,默认值为true。一般建议第一次启动为true
		还有一点需要注意的是,如果采用jdbc方式持久化,需要将相关的jar包拷贝到lib目录中去
 <persistenceAdapter>
			<jdbcPersistenceAdapter dataSource="#mysql-ds" createTablesOnStartup="false"/>
		</persistenceAdapter>
		
数据源
		<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://localhost/activemq?relaxAutoCommit=true"/>
			<property name="username" value="root"/>
			<property name="password" value="123456"/>
			<property name="maxActive" value="200"/>
			<property name="poolPreparedStatements" value="true"/>
		</bean>
	程序启动后会建立三张表
	activemq_msgs:
		用于存储消息,Queue 和 Topic 都存储在这个表中:
			ID:自增的数据库主键
			CONTAINER:消息的 Destination
			MSGID_PROD:消息发送者客户端的主键
			MSG_SEQ:是发送消息的顺序,MSGID_PROD+MSG_SEQ 可以组成 JMS 的 MessageID
			EXPIRATION:消息的过期时间,存储的是从 1970-01-01 到现在的毫秒数
			MSG:消息本体的 Java 序列化对象的二进制数据
			PRIORITY:优先级,从 0-9,数值越大优先级越高

	activemq_acks:
		用于存储订阅关系。如果是持久化 Topic,订阅者和服务器的订阅关系在这个表保存:
		主要的数据库字段如下:
			CONTAINER:消息的 Destination
			SUB_DEST:如果是使用 Static 集群,这个字段会有集群其他系统的信息
			CLIENT_ID:每个订阅者都必须有一个唯一的客户端 ID 用以区分
			SUB_NAME:订阅者名称
			SELECTOR:选择器,可以选择只消费满足条件的消息。条件可以用自定义属性实现,可支持多属性 AND 和 OR 操作
			LAST_ACKED_ID:记录消费过的消息的 ID。
	activemq_lock:一般用于集群环境

注意

目前存在问题是,jdbc持久化方式将相关的jar包加入指定目录后,启动程序报错。(目前得知结论是由于8.0数据库不太支持)

你可能感兴趣的:(项目笔记,java)