阅读更多

10顶
0踩

开源软件

原创新闻 分布式消息中间件MetaQ发布1.4.5

2013-06-04 09:40 by 资深记者 dennis_zane 评论(8) 有11976人浏览

 

P.S. 这是我个人从淘宝开源的MetaQ 1.x版本发展起来的github分支,与目前淘宝开源的MetaQ 2.0的发展方向不同。

 

分布式消息中间件MetaQ发布1.4.5版本。主要改进如下:

 

1.新功能:

  • MetaQ终于有了一个Web管理平台,默认访问http://[host]:8120即可访问管理平台。使用管理平台可以查询本机和集群信息,查询Topic信息以及某个消费分组的消费信息,查询日志信息,重载配置文件等。P.S. 整个管理平台是使用Clojure语言编写的。
  • 大幅度改进XA事务实现(两阶段提交协议支持分布式事务),消除了原来无法运作在broker集群的限制。
  • 提供了全新的Spring框架支持API,简化Java客户端配置和编程,具体见Spring框架支持
  • 新增TopicBrowser API,用于遍历某个Topic下的所有消息。
  • 改动同步复制,在slave写入失败情况下将自动移除master,并且自动检测恢复。
  • 改进对Storm框架支持,升级spout支持storm 0.8 API。

2.API改进:

  • Message消息对象新增setRollbackOnly()方法,用于主动回滚消息。
  • ConsumerConfig消费者配置新增方法setConsumeFromMaxOffset(boolean always)用于设置是否每次consumer启动都从最新位置开始消费。
  • 新增分区选择器RandomPartitionSelector,用于随机发送消息。
  • 当消息发送失败,提供更详细的错误信息,包括服务器地址,分区号,topic等等。
  • XAMessageProducer新增setUniqueQualifier方法用于设置全局唯一标识符。
  • MessageSessionFactory新增方法createTopicBrowser用于创建TopicBrowser
  • Spring框架支持相关API。

3.配置和脚本变更:

  • 服务端新增配置项dashboardHttpPort用于设置web管理平台的HTTP端口,默认是8120端口。
  • 同步复制Master配置新增三个选项:
    #发送到slave的消息超时时间,单位毫秒
    sendToSlaveTimeoutInMills=2000
    #发送到Slave消息连续失败次数阈值,超过这个数值将会自动把master从zookeeper移除并在后台做检测
    #当检测slave成功恢复,将自动注册master到zookeeper。
    slaveContinuousFailureThreshold=100
    #检测slave恢复的时间间隔,单位毫秒。
    checkSlaveIntervalInMills=100
    
  • Java客户端新增环境变量metaq.client.loopback.connection.enable,用于设置对于本机服务器,是否优先使用网络回路连接,节省带宽。默认不启用。
  • env.sh新增选项export enableHttp=false,用于设置服务端是否启用HTTP RESTFull接口。如果启用,用户可以通过HTTP方式发送或者消费消息。
  • 添加locaMetaServer.bat脚本,用于windows环境下启动内嵌zookeeper模式的MetaQ服务器。
  • 移除服务端diamond相关配置。

4.其他改进:

  • 提供了详细的Java客户端用户指南
  • 移除了一些不再需要的淘宝类库依赖。
  • 修复Javadoc乱码问题,新的文档看这个
  • 升级gecko到1.1.3版本,修复并发隐患。
  • 升级aviator到2.3.0版本。
  • 部分bug修复。
  • 改进分布式事务,改进spring框架支持例子。

5.升级指南:

  • 服务端和客户端都保持向前兼容。但是如果你是从1.4.3之前版本升级上来的,请先升级服务端,再升级客户端。
  • 服务端可无缝升级,如果你同一台机器跑了多个broker,需要明确配置每个broker的dashboardHttpPort,防止冲突。
  • 客户端也可以无缝升级,推荐使用Spring框架的朋友采用新API来简化编程。

Java客户端Maven引用:

<dependency>
    <groupId>com.taobao.metamorphosis</groupId>
    <artifactId>metamorphosis-client</artifactId>
    <version>1.4.5</version>
</dependency>

 

 

下载地址:http://code.google.com/p/meta-queue/downloads/list

项目主页: https://github.com/killme2008/Metamorphosis

项目文档: https://github.com/killme2008/Metamorphosis/wiki

 

谢谢,欢迎反馈意见。

10
0
评论 共 8 条 请登录后发表评论
8 楼 skmbw 2013-06-06 12:43
有和淘宝开源的 2.0 做过对比吗?
7 楼 viei 2013-06-04 15:52
通过git和各种信息,你会知道这个项目是有持续跟进的项目,值得推荐
6 楼 qianmeng 2013-06-04 15:39
不错项目,正在使用中!!!
5 楼 billingfoot 2013-06-04 15:34
很不错的一个软件,一直在用,准备一下升级中...
4 楼 javalinjx 2013-06-04 15:33
非常优秀的消息中间件产品,感谢dennis的无私奉献!一直当作我努力的目标。。
3 楼 icefishc 2013-06-04 11:57
dennis_zane 写道
icefishc 写道
不好意思 我想问一下 这个有陶宝的授权么?
我想用户都不会想在这方面惹上麻烦。


MetaQ的协议是apache license 2.0,完全没有问题

明白了 谢谢~
2 楼 dennis_zane 2013-06-04 11:57
icefishc 写道
不好意思 我想问一下 这个有陶宝的授权么?
我想用户都不会想在这方面惹上麻烦。


MetaQ的协议是apache license 2.0,完全没有问题
1 楼 icefishc 2013-06-04 11:52
不好意思 我想问一下 这个有陶宝的授权么?
我想用户都不会想在这方面惹上麻烦。

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • upcasting 的理解

    什么叫“upcasting”? 从派生类到基类的转换在继承表中是往上走的,因此叫upcasting,其总是安全的,因为其将一个特定的对象转换为了一个更通用的对象。唯一的变化是其可能失去某些成员,但它至少还是个instrument,因此编译器不用显式的强制转换。 Upcasting和拷贝构造函数 当编译器为派生类自动生成拷贝构造函数时,其将自动调用基类的拷贝构造函数,然后是各个成员对象的拷贝构

  • Ext学习之2_messagebox1

    在Ext中定义了一个类MessageBox来实现弹出框,它有一个精简的名字Msg, 它的实现原理就是:弹出一个层,并将 原页面覆盖 */ /** * 提示框语法: * Ext.MessageBox.alert(String title, String msg, Function...

  • ext2 grid 封装 (包含增删改查 导入导出等操作)

    最近项目又用到ext 比较杯具的是ext版本使用2.0 初步封装了一下grid(还在完善中) ext技术交流群:164648099   取一行所有信息通用函数 Ext.override(Ext.grid.GridView,{ getRecord:function(grid,rowIndex)...

  • Ext 与 Jquery 的结合应用

    我一直主张各司其职,页面的UI就应该由专门的人去做(flash,css等)而不应该交给js来完成,不过最近在周围朋友的影响下对ext也充满了好奇,毕竟ext的UI表现还是很优美的(本人是个大老粗对审美就这点品味了),...

  • Ext JS的4.1.0的RC 1的发行说明

    Ext JS的 - JavaScript框架 Ext JS的4.1.0的RC 1的发行说明 发行日期:2012年3月13, 版本号:4.1.0的RC 1 修正的错误 钮 EXTJSIV-5129 按钮不坚持宽度设置在IE9 图表 EXTJSIV-...

  • 关于EXT结合JXL(系列之三)导入Excel文件的一点点个人收获...(jxl中间插叙)

    准本好包(commons-fileupload-1.2.1,commons-io-1.4),其实就是用谁的上传处理而已,这个因人而异,随你喜好,不过我说的不是这里,而是在程序中出现的request得不到的问题,具体的,还请接着看. 准备好EXT的插件.要包含...

  • elementUI在按需加载的情况下更换主题样式

    2. 按需导入elementUI组件后, 打包后css的体积为27.67kb 对比之后, css的体积缩小了8.5kb左右, js的体积也会相对减少, 这样的好处就是提升性能, 减少内存 二. 按需加载的步骤 tips: 按照elementUI...

  • Ext之旅(对话框篇)

     我一直主张各司其职,页面的UI就应该由专门的人去做(flash,css等)而不应该交给js来完成,不过最近在周围朋友的影响下对ext也充满了好奇,毕竟ext的UI表现还是很优美的(本人是个大老粗对审美就这点品味了),...

  • Ext面向对象开发实践

    这是自己在学习Ext过程中一个写的一个示例程序,仅为练习,功能并不全,现将其记录在我的博客中,希望可以和学习Ext的朋友一起分享。   示例程序简述: 这个Demo为了演示如将使用GridPanel显示数据,并为...

  • Spring MVC 与ExtJS完美集成

    但是,为了加深理解,我是直接从官网上下载的包,然后一个个试的,中间遇到了很多问题,包括少包,包冲突等。 2 、配置文件 先看 web.xml 。 &lt; web-app xmlns:xsi = ...

  • Ext JS 4.2 - 小总结 2017-5-26 15:13:54

    js/data.js hdjg url:'jsp/hdjg/hdjg.jsp', ... // hdjg.js 是 hdjg.jsp 页面信息,以 ext 的界面显示 &lt;script type="text/javascript" src="extjs/hdjg.js"&gt;&lt;/script&gt; // 需要的 j...

  • 廖雪峰Python 3.X 教程

    Python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言。 现在,全世界差不多有600多种编程语言,但流行的编程语言也就那么20来种。如果你听说过TIOBE排行榜,你就...

  • ExtJS(2)- Grid技巧

    Grid是ExtJS中最常用的组件之一,今天在此稍作整理,主要针对一些常用的功能...一、基础的Grid表格Ext.create('Ext.data.Store',{ storeId:'simpsonsStore', fields:['name','email','phone'], data:{'items':[ {'...

  • Sencha Touch开发一些需要注意的地方

    但要注意,对于子元素有滚动的,父元素不能有滚动,否则可能会出现滚动条冲突的问题 ----------------------------- 使用控制器可以是代码变得干净和可读性强,下面的例子展示了controller的使用: Ext....

  • MVC模式及Extjs框架应用

    Ext.MessageBox.confirm('确认', '确认删除选中记录么?', function (btn) { if (btn == 'yes') { var panel = button.up('panel'); var selectionRecord = panel.getSelectionModel().getSelection()[0]; ...

  • M5(项目)-01-尚硅谷谷粒商城项目分布式基础篇开发文档

    我的NodeJS版本是v12.18.2,package.json中**“node-sass”: “^4.14.1”** ​ (2). 后端(idea):下载并导入人人开源后台管理系统renren-fast和逆向工程renren-generator快速生成dao,entity,service,controller基本...

  • 若依框架前后端打包到linux部署,踩坑

    -openssl-legacy-provider && node build/index.js --preview", "lint": "set NODE_OPTIONS=--openssl-legacy-provider && eslint --ext .js,.vue src" }, 路由模式修改为hash 否则打包后请求路径会和后端冲突 src/...

  • setting.xml文件,修改Maven仓库指向至阿里仓

    setting.xml文件,修改Maven仓库指向至阿里仓

  • 基于java的玉安农副产品销售系统的开题报告.docx

    基于java的玉安农副产品销售系统的开题报告

  • dev-c++ 6.3版本

    dev-c++ 6.3版本

Global site tag (gtag.js) - Google Analytics