OSC 第 81 期高手问答 —— ZeroC Ice 究竟是何方神圣?

叶秀兰 发布于 2015/07/06 07:08
阅读 31K+
收藏 17

OSCHINA 本期高手问答(7月6日-7月12日) 我们请来了 @mycat (吴治辉)为大家解答关于 ZeroC Ice 方面的问题。

吴治辉,@mycat, 拥有超过 15 年的软件研发经验,精通 Java 编程,专注于电信软件和云计算方面的软件研发,参与过众多与分布式、云计算相关的大型项目的架构设计和编程,具备丰富的大型项目架构设计经验,是业界少有 的具备很强编程能力的S级资深架构师,目前就职于惠普。此外,他还是国内知名开源分布式数据库中间件 MyCat 的发起人。目前 MyCat 项目已经有超过 15 名活跃志愿者在参与和推进,其社区 QQ 群人数超过2000人,是当下热门的移动互联网和云计算项目必备基础中间件之一。

随着移动互联网的迅猛发展,HTTP REST 这种曾经风靡一时的低效的远程通信技术已不再风光,而多语言支持的高性能 RPC 技术再次王者归来。Facebook Thrift  一经开源即引起轰动,Hadoop 父兼 Apache 主席的 Doug Cutting 也耐不住诱惑,开放了他在 Hadoop 里研发的创新性的 RPC 框架—— Avro。而作为唯一平台级的开源产品,此次话题的主角—— ZeroC Ice 正在低调地进军互联网领域。

为了鼓励踊跃提问,@博文视点 会在问答结束后从提问者中抽取 5 名幸运会员赠予ZeroC Ice权威指南一书。

样章试读:http://www.oschina.net/doc/14217

   

购买链接:http://item.jd.com/11714602.html

OSChina 高手问答一贯的风格,不欢迎任何与主题无关的讨论和喷子。

下面欢迎大家就 ZeroC ICE 方面问题向 @mycat 提问,请直接回帖提问。

加载中
1
金贞花
金贞花
。。。没什么用
mycat
mycat
手机端开发也非常有用,Android/IOS都支持,一个Ice服务,不管是Java开发也好,C开发也好,Web端、Android/IOS都一样的调用方法,Ice是全栈工程师/架构师最好的搭档。
1
mycat
mycat

引用来自“Carvendy”的评论

@mycat : 性能测试 报告什么可以看看吗?和其他 工具性能差异,优势到底在哪里呢?

Ice比Duboo 快4倍,比Thift 快 1.6倍,而且并发越高,差距越大。

有人测试对比过,完整的源码和说明在 http://i.mycat.io 论坛


1
雷兽
@mycat :

zeroice网上有篇不得不承认Zeroc Ice是RPC王者: 完爆Dubbo,Thrift,谷歌RPC  就是mycat团队的人写的  而且基本上也只有这一篇比较文章

但是如果你仔细看那篇文章就会发现 那是在全windows下测试的结果,更不要说各个rpc的优化了,

别的不说,dubbo严格来说不仅仅是rpc而是服务框架,dubbo模式很多,最快的模式根本不走rpc通道是调用服务的一方直接连提供服务的一方,没有rpc那样的桥接,何来速度慢于别的rpc的可能?

这点就是原理上都说不通的,故意比较dubbo rpc桥接模式下的性能 对dubbo来说公平吗 ?呵呵,至于为什么要这么干 那懂的人都懂  看看那些说zeroice好的人 链接里是啥?不是有书待售 就是收费培训课程  还有人不懂吗?

雷兽
回复 @弓箭手 : 我现在认为 一个大型项目内里的架构 可能是基于dubbo 服务框架或者ice这样的复合型ice,而外部应该交给集群编排 api网关 等等 那些组件化 的存在 当然 集群编排也可以完全直接管理每个服务 当然这样服务的细粒度就细了 不太符合国内很多项目的现实情况
雷兽
回复 @弓箭手 : 现在我的理解 dubbo 是类似软件开发者想用来应对分布式 服务化的方案 dubbo中唯一的非软件开发者内部控制的主要是zookeeper 软件开发者控制度在90%以上 ice是半软类方案 有一定组件化 软件开发者可控制的度在60%左右 集群编排k8s mesos这些 跟软件开发者关系有限 软件开发能控制的在10-20%以下
雷兽
回复 @弓箭手 : 其实我在说 dubbo esb ice这些 还是不如mesos k8s 这些集群编排 服务做好服务内部的事情就好了 服务间的事情 应该让集群编排去做
雷兽
回复 @弓箭手 : dubbo有那些 zeroice未必是那些啊 看具体情况了 料想是差不多的
弓箭手
哈哈,这个也看过。 请教一下:是不是直联的情况下,大家都用同样的nio,用同样的序列化,速度应该差不多吧。
0
lxitgto
lxitgto

@mycat : 我们4年前开始使用Zeroc ICE,从3.4用到3.5,期间也是掉过无数的坑。严重吐槽一下ICE的官方文档,感觉不是英文为母语的人写的。我很好奇国内还有哪些项目使用了ICE?成功案例?

张寒枫
张寒枫
回复 @mycat : 宝钢没有用这个框架,宝钢有自己的iplat4j,对外的用webservice
mycat
mycat
回复 @mycat : 据一些粉丝说,国内也有一些军队的系统采用了Ice,很多大公司内部使用了Ice,但不好公开宣传,因为Ice 是GPL的。
k
kitsudo
回复 @mycat : 人人网还叫校内的时候的确用ice的 现在就不知道了
mycat
mycat
Ice在国内,最早有腾讯、以及一些电信软件开发公司使用,后来有部分互联网企业用,据说有人人网等公司使用,接触过一些电信软件开发的相关人员,反馈是Ice非常稳定可靠,这与其经久考验的代码质量密切相关,其官网上,Skpye的案例不用说了,还列举了宝钢这个客户。
mycat
mycat
Ice的官方文档总共大概1000多页,写的是很详细,但详细不代表着容易理解,这是因为几个原因,首先,它是开源的,所以依赖服务盈利,公开的文档要“闪烁其辞",第二,Ice里面有很多概念和术语,需要理解这些术语,才能很好的掌握Ice,而绝大多数使用者一上来就急于编码写Demo,没有时间仔细学习和研究,导致后期发现很多”坑“,而Ice至今没有一本详细指导开发实践的书籍,这更增加了掌握它的难度。
0
Carvendy
Carvendy
@mycat :我只想知道群在哪里
xingfeichen
xingfeichen
回复 @_zhanggx :
杨延庆
杨延庆
回复 @_zhanggx : 我申请加入了qq群,请批准吧
_zhanggx
_zhanggx
我们为@mycat的著作《ZeroC Ice权威指南》建立了一个QQ群,在里面会专门讨论Ice的热点问题并回答读者的各种问题,如果楼主感兴趣,可以加入。该群QQ号是:100483292
Carvendy
Carvendy
回复 @叶秀兰 : 谢谢
许雷神
许雷神
回复 @叶秀兰 : 感谢
下一页
0
nullptr
nullptr

@mycat :最近学习ICE几天了,有点疑惑,不知道问题是不是太低级了,但是现在确实卡在这里了,若能回复下,不胜感激:

1:在官方的demo中,ice 回调模式只有read/writer(proxy),但是proxy这个类貌似没有写入数据的地方,所以我像问下在callback模式中怎么去设置发送的数据呢?

2:在官方demo中Glacier2模式的callback中,有个这个文件:config.glacier2.(就是除了server,client配置之前的另一个配置文件,配置的)网上说启动这个文件,但是不知道如何启动(windows);

3:能不能推荐个这方面的网站,因为我除了官方的没见过其他的文档和论坛,资料太少了..

mycat
mycat
回复 @nullptr : 先理解其概念,就容易掌握原理,编程出现问题的时候也容易排查问题了。
nullptr
nullptr
回复 @mycat : 因为官方demo太多,所以选择了主目录下面的学习,虽然回答了但是还是不太懂,看看你给推荐的再自己研究研究,谢谢回复
lxitgto
lxitgto
回复 @mycat : ICE的回调里面很多坑,比如说客户端如果多网卡多IP,服务端回调的时候会尝试随机连接某一个IP。如果连接不到也没有异常,而是尝试下一个IP。
mycat
mycat
Ice回调模式有两种,一种是传统的回调模式,你传递一个接口实现类,它来调用你;另外一个是你去探测异步调用是否完成,完成后获取返回结果,这个在书里貌似写了的,两种用法各自有其用武之地。 IceBox以及IceGrid是学习重点,也是Ice精华,建议先学这部分。
0
Carvendy
Carvendy
@mycat : 性能测试 报告什么可以看看吗?和其他 工具性能差异,优势到底在哪里呢?
Carvendy
Carvendy
回复 @mycat : 要没要更详细的测试报告,想更深入了解一下。
mycat
mycat
Ice最早是即时通讯和在线游戏项目中所用,追求性能和稳定性是其重要目标,Hadoop作者看不惯Thrift而开发的新的RPC框架Avro也很不错,采用了Netty做通信,据说性能跟 Thrift有的一拼,但它只在Java里用了Netty,其他语言用HTTP通信,请求应答消息相同的情况下,HTTP方式的TPS是500左右,Netty模式是1.5万左右,Ice则是2.5万
0
pj220
pj220
@mycat :ICE 在嵌入式的windows CE系统下,目前仅支持ARM处理器,我想知道如何将ICE移植到MIPS处理器上?
mycat
mycat
它的源码是开放的,另外,查询到一些资料,表明应该是可以在MIPS上编译和支持的:zeroc-ice (3.0.1-2) unstable; urgency=low * Patch for MIPS support was incomplete (Closes: #357899). * Added compilation fix for Alpha (Closes: #358488).
0
LeoXu
LeoXu
@mycat :您好,请问开头介绍中为什么说“HTTP REST 这种曾经风靡一时的低效的远程通信技术已不再风光”,可以给我们大家分析分析吗,谢谢
mycat
mycat
关于HTML5在移动设备上的被Native方式的App所替代,这个现象应该大家都有所耳闻,最著名的是Facebook事件,而引发Rest VS RPC通信的则是知名的印象笔记 这款APP,他们还写过一个架构说明,为什么用RPC,总结下来,原因有几个:高性能,传输数据量大幅压缩,安全,保持技术优势(RPC门槛高于REST),以及APP的安装包缩减
0
flink58
flink58
@mycat :@mycat :我们公司现在都在用ice ,感觉ice的分布式的方式不是很难,我们是用javaweb的项目,感觉ice的.ice 文件配置不是很方便,端口号每次从svn下载要改好
mycat
mycat
估计是没有用IceGrid,如果用这个,就不存在改端口的问题,而且部署更方便了
返回顶部
顶部