阅读更多

2顶
1踩

开源软件
阿里巴巴开源服务框架Dubbo2.0.10版本发布了,该版本只修复BUG,没有增加新功能。

Dubbo首页:
http://code.alibabatech.com/wiki/display/dubbo/Home

Dubbo 2.0.10下载地址:
http://code.alibabatech.com/wiki/display/dubbo/Download#Download-Releases

Dubbo 2.0.10发布记录:
http://code.alibabatech.com/wiki/display/dubbo/Release+Notes#ReleaseNotes-2.0.10%2820111228%29

BUG修复:

[DUBBO-70] - 修复Cluster层传递RpcException的ErrorCode
[DUBBO-101] - 增加init属性确定是否在afterpropertiesSet时饥饿初始化
[DUBBO-124] - telnet 向上键失效
[DUBBO-131] - telnet 缓存问题,历史记录没有设置上限。
[DUBBO-132] - bytecode包的Wrapper的反射方法调用,提供方没有重载的方法时,当提供多余的参数时,多余参数会被忽略(应该报错)
[DUBBO-141] - 共享连接后,不能使用连接上保存的服务信息,否则多服务时会有问题
[DUBBO-142] - DubboCodec在获取函数时没有判断$invoke和$echo等特殊函数
[DUBBO-144] - 扩展点加载失败(如依赖的三方库运行时没有),如扩展点没有用到,则加载不要报错(在使用到时报错)
[DUBBO-146] - 调用的返回值在Provider端序列化失败(如传输对象没有实现Serialiable接口),Provider端也没有异常输出,Consumer端超时出错
[DUBBO-148] - telnet请求没有终结,死循环发送消息
[DUBBO-152] - RegistryDirectory在unsubscribe之后再标记为destroyed,否则unsubscribe会失败
[DUBBO-155] - zookeeper注册的时候抛ConnectionLoss异常
[DUBBO-157] - 配置加载时对${user.home}等占位符没有替换
[DUBBO-158] - Config类的toString方法显示的标签名不对

功能改进:

[DUBBO-113] - registry客户端缓存采用ip作为key
[DUBBO-145] - 服务方法调用重试过程中输出引起重试异常的日志
[DUBBO-147] - 通过RpcContext可以获得所有尝试过的Invoker
[DUBBO-149] - <dubbo:protocol>未配name时,生成的缺省id也应为dubbo,便于-D参数覆盖
[DUBBO-153] - telnet增加--no-prompt参数,用于nc获取信息时不显示提示符
[DUBBO-159] - URL基于host自动添加anyhost和localhost参数
[DUBBO-160] - 给Multicast和Zookeeper注册中心URL增加缺省端口
2
1
评论 共 58 条 请登录后发表评论
18 楼 王_辉 2012-01-10 16:53
javatar 写道
王_辉 写道
刚才试了试,使用dubbo协议就可以实现软集群,rmi协议就会报错,是那里配置的不正确???


只修改dubbo-demo-provider.jar中的META-INF/spring/dubbo-common.xml:
将:
<dubbo:protocol name="dubbo" ... />

改成:
<dubbo:protocol name="rmi" ../>


刚已验证过,换成RMI,软负载可以生效,实际上Cluster是独立的模块,不感知通讯协议。

BTW: 启多个进程时,注意改dubbo.properties中的端口。

rmi协议下会同时调用multicast广播端相同所有服务,如果关掉其中一个服务,就会抛异常
17 楼 王_辉 2012-01-10 16:45
javatar 写道
王_辉 写道
刚才试了试,使用dubbo协议就可以实现软集群,rmi协议就会报错,是那里配置的不正确???


只修改dubbo-demo-provider.jar中的META-INF/spring/dubbo-common.xml:
将:
<dubbo:protocol name="dubbo" ... />

改成:
<dubbo:protocol name="rmi" ../>


刚已验证过,换成RMI,软负载可以生效,实际上Cluster是独立的模块,不感知通讯协议。

BTW: 启多个进程时,注意改dubbo.properties中的端口。

服务1:
<dubbo:registry protocol="multicast" address="224.5.6.7:1001" />
	<dubbo:protocol name="rmi" port="2900"/>

服务2:
<dubbo:registry protocol="multicast" address="224.5.6.7:1001" />
	<dubbo:protocol name="rmi" port="8601" />


服务1和服务2同时启动,客户端调用会同时连接服务1、2。如果关掉其中一个,客户端就会抛异常,同时调用另外一个服务
严重: Failed to refer invoker for interface:interface com.fireball.service.FireBallService,url:(rmi://172.16.53.239:2900/com.fireball.service.FireBallService?anyhost=true&application=fireball&check=false&cluster=failsafe&dubbo=2.0.10&interface=com.fireball.service.FireBallService&loadbalance=roundrobin&methods=deleteById,query,queryByJSONArray,saveMethod&prompt=dubbo&revision=)Lookup of RMI stub failed; nested exception is java.rmi.ConnectException: Connection refused to host: 172.16.53.239; nested exception is: 
	java.net.ConnectException: Connection refused: connect, dubbo version: 2.0.10, current host: 172.16.53.239
org.springframework.remoting.RemoteLookupFailureException: Lookup of RMI stub failed; nested exception is java.rmi.ConnectException: Connection refused to host: 172.16.53.239; nested exception is: 
	java.net.ConnectException: Connection refused: connect
	at org.springframework.remoting.rmi.RmiClientInterceptor.lookupStub(RmiClientInterceptor.java:214)
	at org.springframework.remoting.rmi.RmiClientInterceptor.prepare(RmiClientInterceptor.java:146)
	at org.springframework.remoting.rmi.RmiClientInterceptor.afterPropertiesSet(RmiClientInterceptor.java:134)
	at org.springframework.remoting.rmi.RmiProxyFactoryBean.afterPropertiesSet(RmiProxyFactoryBean.java:67)
	at com.alibaba.dubbo.rpc.protocol.rmi.RmiProtocol.refer(RmiProtocol.java:199)
	at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper.refer(ProtocolFilterWrapper.java:65)
	at com.alibaba.dubbo.rpc.protocol.ProtocolListenerWrapper.refer(ProtocolListenerWrapper.java:69)
	at com.alibaba.dubbo.rpc.Protocol$Adpative.refer(Protocol$Adpative.java)
	at com.alibaba.dubbo.registry.support.RegistryDirectory.toInvokers(RegistryDirectory.java:258)
	at com.alibaba.dubbo.registry.support.RegistryDirectory.notify(RegistryDirectory.java:155)
	at com.alibaba.dubbo.registry.support.FailbackRegistry.notify(FailbackRegistry.java:328)
	at com.alibaba.dubbo.registry.multicast.MulticastRegistry.registered(MulticastRegistry.java:234)
	at com.alibaba.dubbo.registry.multicast.MulticastRegistry.receive(MulticastRegistry.java:123)
	at com.alibaba.dubbo.registry.multicast.MulticastRegistry.access$100(MulticastRegistry.java:47)
	at com.alibaba.dubbo.registry.multicast.MulticastRegistry$1.run(MulticastRegistry.java:90)
	at java.lang.Thread.run(Thread.java:662)
Caused by: java.rmi.ConnectException: Connection refused to host: 172.16.53.239; nested exception is: 
	java.net.ConnectException: Connection refused: connect
	at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:601)
	at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:198)
	at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:184)
	at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:322)
	at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)
	at java.rmi.Naming.lookup(Naming.java:84)
	at org.springframework.remoting.rmi.RmiClientInterceptor.lookupStub(RmiClientInterceptor.java:199)
	... 15 more
Caused by: java.net.ConnectException: Connection refused: connect
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)
	at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)
	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
	at java.net.Socket.connect(Socket.java:529)
	at java.net.Socket.connect(Socket.java:478)
	at java.net.Socket.<init>(Socket.java:375)
	at java.net.Socket.<init>(Socket.java:189)
	at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocketFactory.java:22)
	at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMasterSocketFactory.java:128)
	at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:595)
	... 21 more

16 楼 javatar 2012-01-06 10:47
王_辉 写道
刚才试了试,使用dubbo协议就可以实现软集群,rmi协议就会报错,是那里配置的不正确???


只修改dubbo-demo-provider.jar中的META-INF/spring/dubbo-common.xml:
将:
<dubbo:protocol name="dubbo" ... />

改成:
<dubbo:protocol name="rmi" ../>


刚已验证过,换成RMI,软负载可以生效,实际上Cluster是独立的模块,不感知通讯协议。

BTW: 启多个进程时,注意改dubbo.properties中的端口。
15 楼 javatar 2012-01-06 10:38
王_辉 写道
multicast如果有多个广播段一样的服务,消费者连接multicast.此时会把两个服务都注册上,配置了loadbalance="roundrobin"。假如停止了一个服务,客户端就会抛异常,配置容错机制也不起做用


同一个服务接口,如果有多个服务提供者,停止一个服务提供者,会重试另一个,只是正在调用的请求,如果被中断,会打印WARN日志,但最终会调用成功。

如果一个服务接口,只有一个服务提供者,停止后消费方会调用失败,但服务提供者重启后能自动恢复。
14 楼 王_辉 2012-01-06 10:36
王_辉 写道
javatar 写道
王_辉 写道
multicast注册中心支不支持使用逗号分割做集群?如果支持需要配置那些呢?

multicast本身就是无中心广播,所以不需要集群。

multicast如果有多个广播段一样的服务,消费者连接multicast.此时会把两个服务都注册上,配置了loadbalance="roundrobin"。假如停止了一个服务,客户端就会抛异常,配置容错机制也不起做用

刚才试了试,使用dubbo协议就可以实现软集群,rmi协议就会报错,是那里配置的不正确???
13 楼 王_辉 2012-01-06 09:53
javatar 写道
王_辉 写道
multicast注册中心支不支持使用逗号分割做集群?如果支持需要配置那些呢?

multicast本身就是无中心广播,所以不需要集群。

multicast如果有多个广播段一样的服务,消费者连接multicast.此时会把两个服务都注册上,配置了loadbalance="roundrobin"。假如停止了一个服务,客户端就会抛异常,配置容错机制也不起做用
12 楼 javatar 2012-01-05 19:34
王_辉 写道
multicast注册中心支不支持使用逗号分割做集群?如果支持需要配置那些呢?

multicast本身就是无中心广播,所以不需要集群。
11 楼 王_辉 2012-01-05 16:27
multicast注册中心支不支持使用逗号分割做集群?如果支持需要配置那些呢?
10 楼 javatar 2012-01-03 20:08
王_辉 写道
测试代码的时候使用默认的dubbo协议就可以,服务端换成hessian协议,为什么客户端调用的时候一直抛 java.io.FileNotFoundException。


GenericService暂只支持Dubbo协议。
9 楼 王_辉 2012-01-03 17:55
测试代码的时候使用默认的dubbo协议就可以,服务端换成hessian协议,为什么客户端调用的时候一直抛 java.io.FileNotFoundException。


ApplicationConfig app = new ApplicationConfig();
app.setName("client");
RegistryConfig registry = new RegistryConfig();
registry.setAddress("multicast://224.5.6.7:1234");
ReferenceConfig<GenericService> refence = new ReferenceConfig<GenericService>();
refence.setInterface("com.dubbo.service.Service");
refence.setApplication(app);
refence.setRegistry(registry);
refence.setGeneric(true);
GenericService gs = refence.get();
Object result =gs.$invoke("sayHello",new String[]{"java.lang.String"},new Object[]{"word"});
System.err.println(result.toString());


<dubbo:registry address="multicast://224.5.6.7:1234"/>
   
    <dubbo:protocol name="dubbo" port="${dubbo.protocol.port}" heartbeat="180000" />
   
    <dubbo:protocol name="hessian" port="8080" server="servlet" />
   
    <dubbo:service ref="service" interface="com.dubbo.service.Service" protocol="hessian"></dubbo:service>
   
    <bean id="service" class="com.dubbo.service.ServiceImpl" />



8 楼 javatar 2011-12-30 10:26
jjshanwei 写道
有外面的公司用过此物吗? 好使吗?

从收集到的情况,已有不少公司开始试用dubbo。

springhill 写道
bug针对,而且都挺关键,确认这东西真的好用吗?

dubbo在阿里内部大量使用,一些细节都有考虑到了,算是好用吧,但要根据你应用的情况,可能没有好用,只有适用。
7 楼 javatar 2011-12-30 10:23
bingki 写道
我不是很情况,这东西和普通的webservice有什么区别,我看下和cxf有点像

和cxf是有相似之处,但dubbo不捆绑webservice。

freespace 写道
能做到服务自动发现,性能会比webservice高些。

确实是这样。
6 楼 javatar 2011-12-30 10:14
zuiyanwangyue 写道
从很大程度上看又是一个轮子 哥一直用hessian

Dubbo做的是RPC协议集成和集群管理,你可以选hessian协议通讯,让Dubbo接管服务发现,服务路由,负载均衡,容错切换,调用监控等。
http://code.alibabatech.com/wiki/display/dubbo/User+Guide#UserGuide-HessianProtocol
5 楼 zuiyanwangyue 2011-12-29 18:15
从很大程度上看又是一个轮子 哥一直用hessian
4 楼 freespace 2011-12-29 11:38
能做到服务自动发现,性能会比webservice高些。
3 楼 springhill 2011-12-29 09:45
bug针对,而且都挺关键,确认这东西真的好用吗?
2 楼 jjshanwei 2011-12-29 09:39
有外面的公司用过此物吗? 好使吗?
1 楼 bingki 2011-12-29 09:22
我不是很情况,这东西和普通的webservice有什么区别,我看下和cxf有点像

发表评论

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

相关推荐

  • Dubbo教程

    DUBBO是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广泛应用于阿里巴巴集团的各成员...

  • dubbo教程

     简介 DUBBO是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广泛应用于阿里巴巴集团的各...

  • Dubbo 原理与部署

    微服务架构在企业开发中应用越来越广泛,而 Alibaba Dubbo 代表国内微服务框架的最高成就,在国内有广泛的应用。本文讲述了 Dubbo 要解决的问题、现状和架构原理,注册中心/提供者/消费者的实现方法,以及服务治理...

  • Dubbo

    1、 了解什么是dubbo 2、 我们使用dubbo能做什么 3、 Dubbo快速入门案例 4、 Dubbo监控、admin控制台 参考资料: http://dubbo.io/ https://www.gitbook.com/@dubbo Dubbo项目GitHub主页: ...

  • dubbo入门教程

    1. 学习大纲 ...DUBBO是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广泛应用于阿

  • dubbo学习

    2015-10-12 http://www.cnblogs.com/Javame/p/3632473.html dubbo框架学习 http://www.oschina.net/question/113994_126551 dubbo注册多个服务Provider,后注册的显示警告信息 ...

  • Dubbo学习入门教程

    2.1. 简介DUBBO是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广泛应用于阿里巴巴集团...

  • dubbo入门学习教程

    1. 学习大纲 ...DUBBO是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被...

  • dubbo入门

    1. 学习大纲 1、 了解什么是dubbo?...DUBBO是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持...

  • DUBBO使用指南

    DUBBO用户指南 标签:dubbo| 发表时间:2014-04-28 06:08 | 作者:jy02718805 分享到: 出处:http://www.iteye.com 入门 (+) (#) 背景 (#) 随着互联网的发展,网站应用的规模...

  • DUBBO用户指南

    入门 (+) (#) 背景 (#) 随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。 单一应用架构 当网站...

  • 第一章 SpringCloud Alibaba简介——学习笔记

    1、SpringCloud版本发布时间统计 springcloud官方网站:https://spring.io/ 1.1、SpringCloud的版本更新发布时间(统计时间2020.04.28) Angel版本:2015年3月 Brixton版本:2016年5月 Camden版本:2016年9月 ...

  • 如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包

    版权声明:本文欢迎转载! https://blog.csdn.net/zpcandzhj/article/details/78575773 ... 1. 教程大纲 1、 了解什么是dubbo 2、 我们使用dubbo能做什么 3、 Dubbo快速入门案例 4、 Dub...

  • 99-智慧园区数据平台方案.pptx

    99-智慧园区数据平台方案.pptx

  • node-v12.11.1-x86.msi

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

  • 基于Springboot+Vue华强北商城二手手机管理系统-毕业源码案例设计.zip

    网络技术和计算机技术发展至今,已经拥有了深厚的理论基础,并在现实中进行了充分运用,尤其是基于计算机运行的软件更是受到各界的关注。加上现在人们已经步入信息时代,所以对于信息的宣传和管理就很关键。系统化是必要的,设计网上系统不仅会节约人力和管理成本,还会安全保存庞大的数据量,对于信息的维护和检索也不需要花费很多时间,非常的便利。 网上系统是在MySQL中建立数据表保存信息,运用SpringBoot框架和Java语言编写。并按照软件设计开发流程进行设计实现。系统具备友好性且功能完善。 网上系统在让售信息规范化的同时,也能及时通过数据输入的有效性规则检测出错误数据,让数据的录入达到准确性的目的,进而提升数据的可靠性,让系统数据的错误率降至最低。 关键词:vue;MySQL;SpringBoot框架 【引流】 Java、Python、Node.js、Spring Boot、Django、Express、MySQL、PostgreSQL、MongoDB、React、Angular、Vue、Bootstrap、Material-UI、Redis、Docker、Kubernetes

  • Excel模版:工资条模板

    Excel工资条模板是一种预先设计好的电子表格文件,主要用于生成和打印员工的工资单,让员工清楚了解自己的工资组成和扣款详情。模板通常包含了以下几个关键部分: 1. **员工信息区**: - 姓名 - 员工编号/工号 - 部门 - 职位 2. **工资构成区**: - 基本工资 - 岗位工资 - 绩效奖金 - 加班工资 - 其他补贴(如交通补贴、餐补、全勤奖等) - 各项津贴(如高温补贴、取暖费等) - 其他应发收入(如年终奖、提成、福利等) 3. **扣款项目区**: - 社保扣款(养老保险、医疗保险、失业保险、工伤保险、生育保险) - 住房公积金 - 个人所得税 - 其他扣款(如迟到、旷工、违规罚款等) - 预借还款(如有) 4. **工资结算区**: - 应发工资总额 - 扣款总额 - 实发工资 5. **备注栏**: - 用于标注本月工资的特殊情况说明,如请假、调休、加班等情况。 6. **签名栏**: - 供员工确认工资数额无误后签名,也可以

  • 29-【智慧城市与政府治理分会场】10亿大数据助推都市治理-30页.pdf

    29-【智慧城市与政府治理分会场】10亿大数据助推都市治理-30页.pdf

  • 基于Springboot+Vue的租房管理系统-毕业源码案例设计.zip

    网络技术和计算机技术发展至今,已经拥有了深厚的理论基础,并在现实中进行了充分运用,尤其是基于计算机运行的软件更是受到各界的关注。加上现在人们已经步入信息时代,所以对于信息的宣传和管理就很关键。系统化是必要的,设计网上系统不仅会节约人力和管理成本,还会安全保存庞大的数据量,对于信息的维护和检索也不需要花费很多时间,非常的便利。 网上系统是在MySQL中建立数据表保存信息,运用SpringBoot框架和Java语言编写。并按照软件设计开发流程进行设计实现。系统具备友好性且功能完善。 网上系统在让售信息规范化的同时,也能及时通过数据输入的有效性规则检测出错误数据,让数据的录入达到准确性的目的,进而提升数据的可靠性,让系统数据的错误率降至最低。 关键词:vue;MySQL;SpringBoot框架 【引流】 Java、Python、Node.js、Spring Boot、Django、Express、MySQL、PostgreSQL、MongoDB、React、Angular、Vue、Bootstrap、Material-UI、Redis、Docker、Kubernetes

Global site tag (gtag.js) - Google Analytics