zoukankan      html  css  js  c++  java
  • 【activemq artemis】消息持久化——文件系统以及jdbc

    说明文档主要翻译自官方文档,关键环境的配置我加入一些描述和截图,整体配置还是挺顺利。

    警告:Apache ActiveMQ Artemis JDBC持久性存储正在开发中,包含在其中用于评估。

    Apache ActiveMQ Artemis JDBC 持久层提供了使用数据库存储代理状态(消息、地址和其他应用程序状态)的能力。

    N、 B.JDBC持久层当前不支持地址完整策略分页(请参阅:关于分页的部分)。

    文件日志是 ActiveMQ Artemis 推荐使用的配置,因为它提供了更高的性能,并且更加成熟。JDBC持久层的目标是那些必须使用数据库的用户,例如由于公司内部策略的原因。

    ActiveMQ Artemis目前支持的数据库供应商数量有限(较旧的版本可以工作,但里程数可能有所不同):

    PostgreSQL 9.4.x版

    MySQL 5.7.x版本

    ApacheDerby10.11.1.1版

    JDBC存储使用JDBC连接将消息和绑定数据存储在数据库表中的记录中。存储在数据库表中的数据使用Apache ActiveMQ Artemis内部编码进行编码

    jdbc 依赖得 添加运行时依赖项

    添加运行时依赖项

    运行时依赖项(如转移、转换器、代理插件、JDBC驱动程序、密码解码器等)必须在运行时由代理访问。将依赖项打包到jar中,并将其放在代理的类路径上。

    这可以通过将jar文件放在代理发行版本身的lib目录或代理实例的lib目录中来完成。

    默认情况下,代理实例没有lib目录,因此可能需要创建它。它应该与bin、data、log等目录放在“顶层”。

    在与bin同级的目录里放入mysql驱动器

    配置JDBC持久性

    要将Apache ActiveMQ Artemis配置为使用数据库来保存消息和绑定数据,必须执行两件事。

    请参阅有关添加运行时依赖项的文档,以了解如何使JDBC驱动程序对代理可用。

    在broker.xml文件<core>元素下的配置文件。例如:

    <store>
    <database-store>
    <jdbc-connection-url>jdbc:mysql://xxxx/monitodb?relaxAutoCommit=true</jdbc-connection-url>
    <jdbc-user>用户名</jdbc-user>
    <jdbc-password>密码</jdbc-password>
    <bindings-table-name>atmq_bind</bindings-table-name>
    <message-table-name>atmq_msg</message-table-name>
    <page-store-table-name>atmq_page</page-store-table-name>
    <large-message-table-name>atmq_large_msg</large-message-table-name>
    <node-manager-store-table-name>atmq_node_manager</node-manager-store-table-name>
    <jdbc-driver-class-name>com.mysql.jdbc.Driver</jdbc-driver-class-name>
    </database-store>
    </store>
    

      

    jdbc-connection-url

    数据库服务器的完整JDBC连接URL。连接url应该包含所有配置参数和数据库名称。注意:使用XML配置文件配置服务器时,请确保转义任何非法字符;例如,“&”在JDBC连接url中是典型的,应转义为“&”。

    bindings-table-name

    将为ActiveMQ Artemis服务器保留绑定数据的表的名称。指定表名允许用户在多个服务器之间共享单个数据库,而不受干扰。

    message-table-name

    将为ActiveMQ Artemis服务器保留绑定数据的表的名称。指定表名允许用户在多个服务器之间共享单个数据库,而不受干扰。

    large-message-table-name

    将为ActiveMQ Artemis服务器保留消息和相关数据的表的名称。指定表名允许用户在多个服务器之间共享单个数据库,而不受干扰。

     page-store-table-name

     存放页面存储目录信息的表的名称。请注意,每个地址都有自己的页表,该页表将使用此名称并附加一个最多20个字符的唯一id。

     node-manager-store-table-name

     将为ActiveMQ Artemis服务器保留HA共享存储锁定(即实时和备份)和HA相关数据的表的名称。指定表名允许用户在多个服务器之间共享单个数据库,而不受干扰。每个共享存储区实时/备份对必须使用相同的表名,并且不支持在多个(和不相关的)实时/备份对之间共享同一个表。

     jdbc-driver-class-name

    所需数据库驱动程序的完全限定类名。

    jdbc-network-timeout 

    JDBC网络连接超时(毫秒)。默认值为20000毫秒(即20秒)。使用共享存储时,建议将其设置为小于或等于jdbc锁过期时间。

     jdbc-lock-renew-period

     JDBC锁的保持活动服务的周期(毫秒)。默认值为2000毫秒(即2秒)。

     jdbc-lock-expiration

     以毫秒为单位的JDBC锁被认为在不保持其活动状态下有效。默认值为20000毫秒(即20秒)。

     jdbc-journal-sync-period

     日志将与JDBC同步的时间(毫秒)。默认值为5毫秒。

  • 相关阅读:
    Importing csv data file in SQLite3
    【北京】【高级爬虫开发工程师、高级网页分析工程师】知名上市互联网公司招聘【猎头】
    介绍一个C++的ORM工具ODB(一)
    基础c练习
    virtualenv中文文档放出,请雅正
    navicat sqlite使用了一种wine的方式来支持linux平台,
    之前 传闻已经的djblets竟是reviewboard团队整的
    在HTML5 Web SQL中使用ORM工具 前端开发 e800
    本来想注册个51cto的blog
    Portable way to get file size (in bytes) in shell?
  • 原文地址:https://www.cnblogs.com/heweiquan123/p/12910799.html
Copyright © 2011-2022 走看看