Wildfly 消息存储在多个服务器的 JDBC 数据源中
Wildfly messaging stored in a JDBC datasource for several servers
我尝试将来自 activeMQ 消息传递的消息保存在 postgres 数据库中。第一步很容易。我添加了这个 CLI
/subsystem=datasources/data-source=messagingDS:add(jndi-name="java:jboss/datasources/messagingDS",use-java-context=true, \
use-ccm=true,connection-url="{{ pg_db_connection_url_messaging }}",driver-name=postgres,transaction-isolation=TRANSACTION_READ_COMMITTED,min-pool-size=0, \
max-pool-size=20,user-name={{ pg_db_user_pg }},password={{ pg_db_password_pg }},blocking-timeout-wait-millis=10000,check-valid-connection-sql=select 1,validate-on-match=true, \
valid-connection-checker-class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker",validate-on-match=true, \
exception-sorter-class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter")
/subsystem=datasources/data-source=messagingDS:test-connection-in-pool
/subsystem=messaging-activemq/server=default:write-attribute(name=journal-datasource, value=messagingDS)
但我想对集群上的多个服务器使用相同的数据库模式,我在某处读到我必须使用一些后缀,但我找不到关于如何在 activeMQ 中为每个服务器配置后缀的信息,任何想法怎么做?
我认为 WildFly 不支持 JDBC table 名称的后缀或前缀,因此您需要为 journal
手动设置 table 名称] 配置。这是属性列表:
messages-table
bindings-table
jms-bindings-table
large-messages-table
node-manager-store-table
page-store-table
这些对于每台服务器都必须是唯一的。
谢谢,我想我有。这使得表是唯一的,例如,我可以将表用于四个集群,并为每个节点分配一个编号。自动化让这一切变得简单 ;)
目前尚未实现大型表的日志
/subsystem=messaging-activemq/server=default:write-attribute(name=journal-messages-table,value=MESSAGES_01)
/subsystem=messaging-activemq/server=default:write-attribute(name=journal-bindings-table,value=BINDINGS_01)
/subsystem=messaging-activemq/server=default:write-attribute(name=journal-large-messages-table,value=LARGE_MESSAGES_01)
/subsystem=messaging-activemq/server=default:write-attribute(name=journal-node-manager-store-table,value=NODE_MANAGER_STORE_01)
/subsystem=messaging-activemq/server=default:write-attribute(name=journal-page-store-table,value=PAGE_STORE_01)
我尝试将来自 activeMQ 消息传递的消息保存在 postgres 数据库中。第一步很容易。我添加了这个 CLI
/subsystem=datasources/data-source=messagingDS:add(jndi-name="java:jboss/datasources/messagingDS",use-java-context=true, \
use-ccm=true,connection-url="{{ pg_db_connection_url_messaging }}",driver-name=postgres,transaction-isolation=TRANSACTION_READ_COMMITTED,min-pool-size=0, \
max-pool-size=20,user-name={{ pg_db_user_pg }},password={{ pg_db_password_pg }},blocking-timeout-wait-millis=10000,check-valid-connection-sql=select 1,validate-on-match=true, \
valid-connection-checker-class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker",validate-on-match=true, \
exception-sorter-class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter")
/subsystem=datasources/data-source=messagingDS:test-connection-in-pool
/subsystem=messaging-activemq/server=default:write-attribute(name=journal-datasource, value=messagingDS)
但我想对集群上的多个服务器使用相同的数据库模式,我在某处读到我必须使用一些后缀,但我找不到关于如何在 activeMQ 中为每个服务器配置后缀的信息,任何想法怎么做?
我认为 WildFly 不支持 JDBC table 名称的后缀或前缀,因此您需要为 journal
手动设置 table 名称] 配置。这是属性列表:
messages-table
bindings-table
jms-bindings-table
large-messages-table
node-manager-store-table
page-store-table
这些对于每台服务器都必须是唯一的。
谢谢,我想我有。这使得表是唯一的,例如,我可以将表用于四个集群,并为每个节点分配一个编号。自动化让这一切变得简单 ;)
目前尚未实现大型表的日志
/subsystem=messaging-activemq/server=default:write-attribute(name=journal-messages-table,value=MESSAGES_01)
/subsystem=messaging-activemq/server=default:write-attribute(name=journal-bindings-table,value=BINDINGS_01)
/subsystem=messaging-activemq/server=default:write-attribute(name=journal-large-messages-table,value=LARGE_MESSAGES_01)
/subsystem=messaging-activemq/server=default:write-attribute(name=journal-node-manager-store-table,value=NODE_MANAGER_STORE_01)
/subsystem=messaging-activemq/server=default:write-attribute(name=journal-page-store-table,value=PAGE_STORE_01)