-
Notifications
You must be signed in to change notification settings - Fork 691
ReleaseNotes
#Metaq release notes ##Metaq 1.4.4更新日志 1.配置变更:
- 添加新选项stat,可设置全局是否开启实时统计,默认为false
- 添加新选项updateConsumerOffsets,当消费者的offset不在Broker的数据范围内,是否强制更新消费者的offset为当前最大offset。默认为false。测试开发环境建议开启此选项,生产环境不建议。
- 添加新选项loadMessageStoresInParallel,是否在启动的时候并行加载数据,提高启动速度,默认为false。
2.协议变更:
- put协议添加checksum,服务端将根据checksum校验producer发送的消息数据是否完整。
- sync协议新增checksum,类似put
- stats协议新增reset和help命令,分别用于重设实时统计数据和打印帮助信息。
3.易用和稳定性改进:
-
新增local模式启动服务器,它将启动一个内置的zookeeper服务器并启动metaq服务器,方便用户测试开发。生产环境仍然建议用单独的zookeeper集群。
./metaServer.sh start local
-
添加服务端启动时的配置参数校验,帮助检查配置错误。
-
metaServer.sh新增slave-status命令,用于查看异步复制状态。
-
更优雅地关闭服务器,避免数据损坏。
-
当服务器端列表变动的时候,尽量避免producer发送消息异常。
-
当同步复制的slave服务端无法服务时,master服务器将尽快返回失败异常给producer。
-
改进consumer的负载均衡实现,更快速和稳定地实现负载均衡。
-
修复producer可能出现的连接内存泄漏。
4.性能改进:
- 改进group commit实现
5.新功能,主要改进在Java客户端的API上:
- Java客户端新增
RejectConsumptionHandler
接口,当消费消息尝试多次失败后将调用此接口的rejectConsumption
方法处理。 - Java客户端
MessageConsumer
接口新增setRejectConsumptionHandler
方法用于设置拒绝消费处理器。 -
Message
对象新增readOnly
属性,可设置消息是否只读。在PartitionSelector
的getPartition方法中,消息将强制为只读。 -
MessageListener
接口的recieveMessages
方法可抛出InterruptedException
的受控异常,响应中断。当中断发生时正在消费的消息将被回滚。
##Metaq 1.4.3 release notes
1.Impl a ruby client for metaq
2.Improved python client for metaq
3.Added two new options in server.ini: acceptPublish
and acceptSubscribe
to control whether the broker or topic can accept messages from producer or accept subscription from consumer.
Note:these options only influence the new clients(1.4.3) behavior,old clients will not be influenced.
4.Make stopping broker more friendly by JMX instead of kill
.
5.Other small changes: upgrade gecko to 1.1.1 and quartz to 2.1.4 version;internal refactoring and added integration test.
1.Adds new api to get partitions for topic in MessageSessionFactory
:
public List<Partition> getPartitionsForTopic(String topic)
2.Copy new topics config from master to asynchronous slave broker automatically.A new option in async_slave.properties
to control :
autoSyncMasterConfig=true
3.Adds new api to get statistics from broker in MessageSessionFactory
public Map<InetSocketAddress, StatsResult> getStats() throws InterruptedException;
public Map<InetSocketAddress, StatsResult> getStats(String item) throws InterruptedException;
public StatsResult getStats(InetSocketAddress target) throws InterruptedException;
public StatsResult getStats(InetSocketAddress target, String item) throws InterruptedException;
4.Merge tools
and server-wrapper
projects,provide a powerful script metaServer.sh
to manage broker.
5.Provides bat script to run broker on windows.
6.Adds a new contrib project meta-python
-- metaq client for python,it only supports sending message now.
7.Adds a new stat item config
,you can use stat config
to get broker's config file content.
8.Other small changes,including statistics improvement etc.