锁定老帖子 主题:阿里巴巴Dubbo分布式服务框架已开源
该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2012-03-12
javatar 写道 aaa_star 写道 通过查看代码了解框架太费时间了,能否把概要设计类的文档发布一下,那方便多啦,不过这种先例好少,阿里能更进一步吗,hehe,太贪心了^-^.
另外,大概看了一下开发文档,没有发现动态加载服务的方式?比如服务容器CC在运行,里面有A服务,我想在不停服务容器CC的情况下,替换一个A服务版本,或新增加个B服务?如何实现呢,有类似osgi容器的方式,可以动态发布jar形式的新服务吗? http://code.alibabatech.com/wiki/display/dubbo/Developer+Guide 开发指南上的设计图,就是Dubbo的整体设计,其它都是实现细节。 Dubbo1.0有用SpringDM的OSGi容器动态加载服务的功能,但一直没有人使用,就废弃了。 热加载有很多问题,比如ClassLoader的内存释放,以及服务引用的外部资源可能得不到有效释放。 一般应用都有多台机器集群,不在乎逐台重启一遍。 知道啦,谢谢 |
|
返回顶楼 | |
发表时间:2012-03-12
最后修改:2012-03-12
遇到一个问题:
现在机房弄了2个虚机,上面启了provider、monitor、注册中心,服务起来了,但是注册的服务全是内网地址,我本机的consumer的,无法连接到provider,怎么解决? 再描述一下, 相当于是,provider 、monitor 、注册中心 分别在机房两台服务器上,一个公网IP ,consumer在我本机,两个provider启动,注册的是内网地址,如下: dubbo://192.168.255.101:20880/com.pica.service.UpgradeService?anyhost=true&application=PICA-Service-01&dubbo=2.0.12&interface=com.pica.service.UpgradeService&methods=getUpgrade&prompt=dubbo&revision=1.0-SNAPSHOT&threads=200 我本机访问不到了。这种情况,有什么好的办法,可以将内网ip转换成公网 ? |
|
返回顶楼 | |
发表时间:2012-03-13
javatar 写道 aaa_star 写道 基本实现了“点对点”方式的,没实现“发布/订阅”方式的是吧?
Dubbo所支持的异步“发布/订阅”模式,借助了公司另一个消息队列产品,所以没有开源,后续有时间会写一个开源版本。 这个是否是Metamorphosis? http://www.iteye.com/news/24495 |
|
返回顶楼 | |
发表时间:2012-03-14
Letsgo 写道 遇到一个问题:
现在机房弄了2个虚机,上面启了provider、monitor、注册中心,服务起来了,但是注册的服务全是内网地址,我本机的consumer的,无法连接到provider,怎么解决? 再描述一下, 相当于是,provider 、monitor 、注册中心 分别在机房两台服务器上,一个公网IP ,consumer在我本机,两个provider启动,注册的是内网地址,如下: dubbo://192.168.255.101:20880/com.pica.service.UpgradeService?anyhost=true&application=PICA-Service-01&dubbo=2.0.12&interface=com.pica.service.UpgradeService&methods=getUpgrade&prompt=dubbo&revision=1.0-SNAPSHOT&threads=200 我本机访问不到了。这种情况,有什么好的办法,可以将内网ip转换成公网 ? 可以修改/etc/hosts中本机名的映射到公网地址,如: 127.0.0.1 localhost 221.2.3.4 myhostname 或者直接在dubbo.properties配置: dubbo.protocol.host=221.2.3.4 或dubbo.xml配置: <dubbo:protocol name="dubbo" host="221.2.3.4" /> 不建议将Dubbo的服务直接暴露到公网。 |
|
返回顶楼 | |
发表时间:2012-03-14
最后修改:2012-03-14
yanwt 写道 javatar 写道 aaa_star 写道 基本实现了“点对点”方式的,没实现“发布/订阅”方式的是吧?
Dubbo所支持的异步“发布/订阅”模式,借助了公司另一个消息队列产品,所以没有开源,后续有时间会写一个开源版本。 这个是否是Metamorphosis? http://www.iteye.com/news/24495 不是,这个是淘宝的Metamorphosis,Dubbo用的是阿里巴巴B2B的Napoli项目,阿里不同子公司用的产品不一样。 如果有兴趣的朋友,可以将这个Metamorphosis和Dubbo集成。 |
|
返回顶楼 | |
发表时间:2012-03-14
遇到一下问题
com.alibaba.dubbo.rpc.RpcException: Waiting server-side response timeout by scan timer. start time: 2012-03-14 11:29:22.015, end time: 2012-03-14 11:29:37.016, client elapsed: 24 ms, server elapsed: 14977 ms, timeout: 15000 ms |
|
返回顶楼 | |
发表时间:2012-03-14
FQ_kevin 写道 遇到一下问题
com.alibaba.dubbo.rpc.RpcException: Waiting server-side response timeout by scan timer. start time: 2012-03-14 11:29:22.015, end time: 2012-03-14 11:29:37.016, client elapsed: 24 ms, server elapsed: 14977 ms, timeout: 15000 ms 响应太慢了,15秒都没返回结果,ping一下网络延迟,以及用Profiler或在程序中打印业务的执行时间。 |
|
返回顶楼 | |
发表时间:2012-03-23
楼主
当我在dubbo:service 设置async="true"时,为什么dubbo:reference设置cache="true"的时候,cache不起作用,如果去掉async="true"是可以的,可以解释一下吗? |
|
返回顶楼 | |
发表时间:2012-03-23
最后修改:2012-03-23
yanwt 写道 楼主
当我在dubbo:service 设置async="true"时,为什么dubbo:reference设置cache="true"的时候,cache不起作用,如果去掉async="true"是可以的,可以解释一下吗? 因为async后,服务方法是立即返回null的,所以cache拿不到返回结果。 异步结果需通过RpcContext.getContext().getFuture().get()拿到。 |
|
返回顶楼 | |
发表时间:2012-03-23
最后修改:2012-03-23
非常感谢楼主,这种情况,应该把cache="true"加在dubbo:service里面吧
|
|
返回顶楼 | |