日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

activemq端口怎么調(diào) activemq詳解( 二 )

如何保證消息的可靠性
回答這個問題主要從持久化,事務,簽收這幾個方面入手
消息持久化的核心代碼:
//queue模式的消息持久化 默認是持久化的 producer.setDeliveryMode(DeliveryMode.PERSISTENT);/** * topic模式的持久化 */Topic topic = session.createTopic(TOPIC_NAME);ActiveMQMessageProducer producer = (ActiveMQMessageProducer)session.createProducer(topic);producer.setDeliveryMode(DeliveryMode.PERSISTENT);connection.start();事務的核心代碼(偏生產(chǎn)者):
//參數(shù)設置成trueconnection.createSession(false, Session.AUTO_ACKNOWLEDGE);//事務提交session.commit();簽收的核心代碼(偏消費者):
//參數(shù)設置成手動提交connection.createSession(false, Session.CLIENT_ACKNOWLEDGE);//消息簽收message.acknowledge();注意:若是既開啟事務,又開啟手動簽收,以事務為準,只要事務被提交了也默認消息被簽收了
性能提升:
1.利用nio的協(xié)議比tcp的性能高,

  • 配置方式:在conf目錄下activemq.xml照著下面配置
<broker>...<transportConnectors><transportConnector name="nio" uri="nio://0.0.0.0:61616"/></<transportConnectors>...</broker>
  • 第二步是代碼訪問方式由tcp改為nio
//創(chuàng)建工廠ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory("nio://127.0.0.1:61616");2.jdbc+Journaling提高只有jdbc持久化的性能,它在做持久化入數(shù)據(jù)庫之前,會先將數(shù)據(jù)保存到Journaling文件中,之后才慢慢同步到數(shù)據(jù)庫中,等于中間加了一層緩沖層 。
  • 把數(shù)據(jù)庫mysql的驅動包放到lib目錄下
  • 配置方式:在conf目錄下activemq.xml照著下面配置,其中有個createTablesOnStartup屬性,默認值是true,表示每次啟動后去數(shù)據(jù)庫自動建表
<persistenceAdapter><kahaDB directory="${activemq.data}/kahadb"/> </persistenceAdapter> //上面是默認配置找到改成下面的配置<persistenceAdapter><journalPersistenceAdapterFactory journalLogFiles="5" dataDirectory="${basedir}/activemq-data" dataSource="#mysql-ds"/></persistenceAdapter> //下面的代碼寫在<beans>節(jié)點中<bean id="mysql-ds" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"><property name="driverClassName" value="https://www.jinnalai.com/fenxiang/com.mysql.jdbc.Driver"/><property name="url" value="https://www.jinnalai.com/fenxiang/jdbc:mysql://localhost/activemq?relaxAutoCommit=true"/><property name="username" value="https://www.jinnalai.com/fenxiang/activemq"/><property name="password" value="https://www.jinnalai.com/fenxiang/activemq"/><property name="poolPreparedStatements" value="https://www.jinnalai.com/fenxiang/true"/></bean>

推薦閱讀