JMSメッセージの永続化、ActiveMQメッセージのmysqlデータベースへの永続化
1833 ワード
ActiveMQ5.8.0バージョンではkahadbをデフォルトのメッセージ永続化方式として採用しています.デフォルトの永続化メカニズムを使用すると、メッセージがどのように永続的であるかを直接見ることは容易ではありません.ActiveMQが提供するJDBC永続化メカニズムは、永続化情報をデータベースに格納することができる.データベース内のActiveMQによって生成されたテーブル構造と格納されたデータを表示することで、メッセージの永続化メカニズムをよりよく理解できます.次にactivemqを構成しmysqlにデータを永続化する方法について説明します.
1.activeMQに必要なmysqlデータソースの構成
JDBCを使用してmysqlデータベースにアクセスするには、メッセージ・サーバのデータベース・ソースを構成する必要があることは明らかです.Activemqapache-activemq-5.8.0confactivemq.xmlで構成
2.activeMQのデフォルトの永続化方法を変更する
ここでxmlではデフォルトのkahadbを注釈し、jdbc持続化を使用します.
3.mysqlのドライバを提供する
ActiveMQメッセージサーバのためmysqlデータベースを持つドライバはありません.メッセージサーバにmysqlドライバを手動で追加する必要があります.
方法は、apache-activemq-5.8.0libディレクトリにドライバをコピーすることです.
上記の3ステップ構成により、メッセージサーバを再起動すると、activeMQがデータベースに3枚のテーブルを新規作成していることがわかります.
activemq_acks ,activemq_lock ,activemq_msgs .これでデータベースの永続化が完了します.後続のブログでは、この3枚の表の意味と使用について引き続き紹介しますが、まだ分かりません.
1.activeMQに必要なmysqlデータソースの構成
JDBCを使用してmysqlデータベースにアクセスするには、メッセージ・サーバのデータベース・ソースを構成する必要があることは明らかです.Activemqapache-activemq-5.8.0confactivemq.xmlで構成
<!-- MySQL DataSource -->
<bean id="mysqlDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://127.0.0.1:3306/amq_db?relaxAutoCommit=true"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
<property name="poolPreparedStatements" value="true"/>
</bean>
ノードの後、データソースの構成を追加2.activeMQのデフォルトの永続化方法を変更する
ここでxmlではデフォルトのkahadbを注釈し、jdbc持続化を使用します.
<!--
<persistenceAdapter>
<kahaDB directory="${activemq.data}/kahadb"/>
</persistenceAdapter>
-->
<persistenceAdapter>
<jdbcPersistenceAdapter dataSource="#mysqlDataSource"/>
</persistenceAdapter>
3.mysqlのドライバを提供する
ActiveMQメッセージサーバのためmysqlデータベースを持つドライバはありません.メッセージサーバにmysqlドライバを手動で追加する必要があります.
方法は、apache-activemq-5.8.0libディレクトリにドライバをコピーすることです.
上記の3ステップ構成により、メッセージサーバを再起動すると、activeMQがデータベースに3枚のテーブルを新規作成していることがわかります.
activemq_acks ,activemq_lock ,activemq_msgs .これでデータベースの永続化が完了します.後続のブログでは、この3枚の表の意味と使用について引き続き紹介しますが、まだ分かりません.