當Crystal框架項目中需要使用消息機制,而項目規模不大、性能要求不高時,可內置啟動MetaQ服務器。
項目引入crystal-extend-metaq模塊,如下:
<dependency> <groupId>com.gsoft.crystal</groupId> <artifactId>crystal-extend-metaq</artifactId> </dependency>
服務器默認參數如下:
[system] brokerId=0 hostName=192.168.1.150 numPartitions=6 serverPort=8123 dashboardHttpPort=8120 unflushThreshold=0 unflushInterval=10000 maxSegmentSize=1073741824 maxTransferSize=1048576 deletePolicy=delete,168 deleteWhen=0 0 6,18 * * ? flushTxLogAtCommit=1 stat=true ;; Update consumers offsets to current max offsets when consumers offsets are out of range of current broker's messages. ;; It must be false in production.But recommend to be true in development or test. updateConsumerOffsets=true [zookeeper] zk.zkConnect=localhost:2181 zk.zkSessionTimeoutMs=30000 zk.zkConnectionTimeoutMs=30000 zk.zkSyncTimeMs=5000 ;; Topics section [topic=test] [topic=meta-test]
可在項目src/main/resource/metaq目錄下,創建service.ini文件,並將以上默認內容復制到文件中後,修改相應內容;
若項目中存在service.ini文件,則優先作為MetaQ服務啟動的配置文件。
啟動項目是,MetaQ服務將自動啟動。
如對MetaQ服務器性能要求較高,需要集群等,請單獨部署MetaQ服務器。