zk.zkEnable=true(是否注册到zk,默认为true)
zk.zkConnect=localhost:2181 (zk的服务列表)
zk.zkSessionTimeoutMs=30000(zk心跳超时,单位毫秒,默认30s)
zk.zkConnectionTimeoutMs=30000(zk连接超时,单位毫秒,默认30s)
brokerId : (服务器ID 必须是集群内唯一,必须为整形0-1024之间)
serverPort: (服务器端口)
hostName: (默认将取本机IP(多机网卡,需要指明)
dataLogPath: (日志数据文件路径,默认跟dataPath一样)
dataPath: (于指定默认的数据存储路径)
deletePolicy=delete,168 (数据删除策略,默认超过7天即删除,这里的168是小时 10s 为10秒 10m为分钟,默认为小时)
deleteWhen: (何时执行删除策略的cron表达式 默认是 0 0 6,18 ** ? ,也就是每天早晚6点执行策略)
flushTxLogAtCommit=1(事务日志的同步设置,0表示让操作系统决定,1表示每次commit同步,2表示每隔1s同步一次,此参数严重影响事务性能,可根据你需要的性能和可靠性之间权衡做出一个合理的选择,通常设置 2 每隔1s刷盘一次,最多丢失一秒内的运行事务,这样的可靠性是足够的,最安全的是 设置为1 但是严重影响性能,而0为安全最低 1>=2 >0 性能 0>=2>1)
unflushThreshold : (每隔多少条消息做一次磁盘sync,强制将更改的数据刷入磁盘,默认为1000。也就是在掉电情况下,最多允许丢失1000条消息。可设置为0,强制每次写入都sync。在设置为0的情况下,服务器会自动启用groupcommit技术,将多个消息合并一次sync来提示IO性能。进过测试,group commit情况下消息发送者的TPS没有受太大影响,但是服务端的负载会上升很多)
unflushInterval: (间隔多少毫秒定期做一次磁盘sync,默认是10s,也就是在服务器掉电情况下,最多丢失10s内发送过来的数据,不可设置为小于或等于0)
metaq的集群实现
(1)所有的broker注册到zookeeper
(2)客户端连接zookeeper并返回可用的broker列表,选择一个broker并发送消息