- 浏览: 1680565 次
- 性别:
- 来自: 杭州699号
文章分类
最新评论
-
莫莫摸:
为什么不用dubbo
RCP数据传输模型回顾 -
大胡子爸爸:
String, Class 都实现了Serializable接 ...
RPC框架几行代码就够了 -
lss598018587:
谢谢大神分享,比起新手看复杂的dubbo框架还不如看大神的这一 ...
RPC框架几行代码就够了 -
15606915740:
你好,请问一下。<dubbo:consumer filt ...
Dubbo文档 -
joqk12345:
...
一些设计上的基本常识
阿里巴巴开源服务框架Dubbo2.0.8发布
阿里巴巴开源服务框架Dubbo2.0.8版本发布了,
增加了Zookeeper和Multicast注册中心,RMI和Hessian协议,以及修复了一些BUG。
Dubbo2.0.8下载地址:
http://code.alibabatech.com/wiki/display/dubbo/Download
Dubbo2.0.8发布记录:
http://code.alibabatech.com/jira/secure/ReleaseNote.jspa?projectId=10040&version=10160
New Feature
[DUBBO-3] - 实现与zookeeper注册中心的桥接
[DUBBO-14] - 增加RMI协议的开源
[DUBBO-15] - 增加Hessian协议的开源
[DUBBO-16] - 增加Multicast注册中心的开源
[DUBBO-19] - <dubbo:protocol>增加register="false"属性,表示该协议不注册到注册中心。
[DUBBO-30] - remoting reconnect功能在config层增加配置项
Bug
[DUBBO-1] - Change schema element "sent" default value to false
[DUBBO-2] - 停止时,程序和ShutdownHook重复调用了destroy。
[DUBBO-4] - Dubbo Serialization序列化BigInteger空指针错误
[DUBBO-7] - PojoUtils(generalize/realize)出错,类型丢失
[DUBBO-11] - Future :访问超时时,可能会有NPE问题
[DUBBO-17] - 多个注册中心指定一个注册中心引用无效
[DUBBO-18] - rmi protocol can't handle biz exception
[DUBBO-20] - 设置delay属性导致服务一直处理禁用状态
[DUBBO-22] - refer.autodestory功能存在资源泄漏的风险。
[DUBBO-31] - consumer sticky配置项丢失
[DUBBO-32] - 在linux server上和本地连不上nettyserver时抛出来的异常不一致
[DUBBO-39] - hessian协议的timeout没有wrap为RpcException
[DUBBO-42] - Wrapper类使用javassit低版本的时遇到的NoClassDefFoundError问题
[DUBBO-43] - 解决cluseter(除了failover以外)在无invoker时的空指针
[DUBBO-44] - fix 2.0.8无法调用1.0.x
[DUBBO-47] - rmi 协议对2.0.8之前版本不兼容
[DUBBO-48] - AccessLogFilter在只写文件名的情况下NPE
[DUBBO-50] - 迁移错误的扩展点位置
[DUBBO-59] - Monitor 地址配置错误的情况下导致循环调用
[DUBBO-60] - exchange codec decodeResponseData的重载方法调用错误
[DUBBO-61] - 还原Restable接口的reset(Parametes parametes )方法保持与2.0.5之前版本的api兼容
[DUBBO-65] - server graceful shutdown 问题
[DUBBO-69] - 修复FailoverClusterInvoker丢失error code
Improvement
[DUBBO-9] - ExtensionLoader增加获取DefaultExtension的方法
[DUBBO-12] - 拆分不同实现为子模块
[DUBBO-13] - 为ReflectUtils增加cache
[DUBBO-21] - 整理UrlUtils
[DUBBO-34] - TraceFilter中达到trace.count后,从tracersMap中去掉Channel
[DUBBO-35] - LazyConnectExchangeClient去掉不必要的Wrapper
[DUBBO-36] - ExtensionLoader读取属性文件时可以有注释、固定用UTF8读取
[DUBBO-45] - Reference的初始化时出Remoting异常后,Reference没有捕捉,导致直接抛出Remoting异常,不能方便诊断是哪个Service出错
[DUBBO-49] - Injvm的端口总是置为0,以免因配置端口导致不可用
[DUBBO-51] - 配有多协议时,必须指定缺省协议,否则报错
[DUBBO-52] - Remoting中的类使用的是父类的Logger,导致异常信息排查不方便
[DUBBO-53] - Remoting Client连接出错时,会重试时打出异常栈的日志应该给出*会重试*的说明
用brap好,比起dubbo,轻量级,注册服务在服务器少的情况下简直废的。
http://brap.tornado.no/documentation.html
您好,我最近正准备推广你们的dubbo产品,可是在管理员端操作界面上发下很多问题哦,希望能解释一下。
1:添加并且启用一个路由规则后,无法删除该路由规则
2:服务管理一栏,服务禁用效果无效,通过设定路由规则的方式来屏蔽所有消费方接入provider的方式也无效。
3:在zookeeper节点中生成的节点包含utf-8编码问题(出现%3D等字符)
总之感觉整个管理员端问题重重,而且缺乏相关文档,Duboo交流群里也有不少人反应过该问题,希望能不吝宝贵时间,给与一个答复,谢谢了,高手~
1. 路由规则你可以尝试禁用,具体不能删除的原因待查。
2. 如果只有一个提供者,禁止是会失效的,因为消息方有容错,如果收到空集合,会使用上一次的通知列表进行调用,路由规则是可以的,但路由规则的限制是针对提供者,并且需要设置强制执行标识。
3. %3D不是乱码,是URL转义,存入的时候入URL.encode(),读取的时候会URL.decode().
我也碰到这样的问题,禁用的话,会多一条一样的记录,而且有的时候不能禁用。
编辑后保存,会有两条一样的记录。
dubbo管理端对zookeeper的操作,确实存在那样的问题,即会多一条记录,而且无法删除,导致服务禁用后,就不能再上线该服务了,除非手工删除对应的zk节点 ~—~糗啊~~
求梁大哥解释哦~~
您好,我最近正准备推广你们的dubbo产品,可是在管理员端操作界面上发下很多问题哦,希望能解释一下。
1:添加并且启用一个路由规则后,无法删除该路由规则
2:服务管理一栏,服务禁用效果无效,通过设定路由规则的方式来屏蔽所有消费方接入provider的方式也无效。
3:在zookeeper节点中生成的节点包含utf-8编码问题(出现%3D等字符)
总之感觉整个管理员端问题重重,而且缺乏相关文档,Duboo交流群里也有不少人反应过该问题,希望能不吝宝贵时间,给与一个答复,谢谢了,高手~
1. 路由规则你可以尝试禁用,具体不能删除的原因待查。
2. 如果只有一个提供者,禁止是会失效的,因为消息方有容错,如果收到空集合,会使用上一次的通知列表进行调用,路由规则是可以的,但路由规则的限制是针对提供者,并且需要设置强制执行标识。
3. %3D不是乱码,是URL转义,存入的时候入URL.encode(),读取的时候会URL.decode().
我也碰到这样的问题,禁用的话,会多一条一样的记录,而且有的时候不能禁用。
编辑后保存,会有两条一样的记录。
如果不可以,那文档介绍中是写在consumer.xml里的,是不是写错了?
是的,可以。
您好,我最近正准备推广你们的dubbo产品,可是在管理员端操作界面上发下很多问题哦,希望能解释一下。
1:添加并且启用一个路由规则后,无法删除该路由规则
2:服务管理一栏,服务禁用效果无效,通过设定路由规则的方式来屏蔽所有消费方接入provider的方式也无效。
3:在zookeeper节点中生成的节点包含utf-8编码问题(出现%3D等字符)
总之感觉整个管理员端问题重重,而且缺乏相关文档,Duboo交流群里也有不少人反应过该问题,希望能不吝宝贵时间,给与一个答复,谢谢了,高手~
1. 路由规则你可以尝试禁用,具体不能删除的原因待查。
2. 如果只有一个提供者,禁止是会失效的,因为消息方有容错,如果收到空集合,会使用上一次的通知列表进行调用,路由规则是可以的,但路由规则的限制是针对提供者,并且需要设置强制执行标识。
3. %3D不是乱码,是URL转义,存入的时候入URL.encode(),读取的时候会URL.decode().
您好,我最近正准备推广你们的dubbo产品,可是在管理员端操作界面上发下很多问题哦,希望能解释一下。
1:添加并且启用一个路由规则后,无法删除该路由规则
2:服务管理一栏,服务禁用效果无效,通过设定路由规则的方式来屏蔽所有消费方接入provider的方式也无效。
3:在zookeeper节点中生成的节点包含utf-8编码问题(出现%3D等字符)
总之感觉整个管理员端问题重重,而且缺乏相关文档,Duboo交流群里也有不少人反应过该问题,希望能不吝宝贵时间,给与一个答复,谢谢了,高手~
NettyHandler中的url上的属性,只有protocol相关的有意义,service相关的不能讯取,就像你说的,因为多个service共享一个连接。
ProxyFactory是一个扩展点,因为asm生成代理可读性差,并且性能上优势没有想像的大,后续如果有时间,会加一个AsmProxyFactory,有兴趣的朋友,也可以自己加上。
是的,2.0.8的container模块有bug,container模块在2.0.9才开始使用。
可以参见:http://code.alibabatech.com/wiki/display/dubbo/User+Guide#UserGuide-TokenVerify
你可以开启token验证,如:
这个token会通过注册中心下发给提供者,基于注册中心发现的方式调用不会受影响,点对点直连就会被控制住。
增加了Zookeeper和Multicast注册中心,RMI和Hessian协议,以及修复了一些BUG。
Dubbo2.0.8下载地址:
http://code.alibabatech.com/wiki/display/dubbo/Download
Dubbo2.0.8发布记录:
http://code.alibabatech.com/jira/secure/ReleaseNote.jspa?projectId=10040&version=10160
New Feature
[DUBBO-3] - 实现与zookeeper注册中心的桥接
[DUBBO-14] - 增加RMI协议的开源
[DUBBO-15] - 增加Hessian协议的开源
[DUBBO-16] - 增加Multicast注册中心的开源
[DUBBO-19] - <dubbo:protocol>增加register="false"属性,表示该协议不注册到注册中心。
[DUBBO-30] - remoting reconnect功能在config层增加配置项
Bug
[DUBBO-1] - Change schema element "sent" default value to false
[DUBBO-2] - 停止时,程序和ShutdownHook重复调用了destroy。
[DUBBO-4] - Dubbo Serialization序列化BigInteger空指针错误
[DUBBO-7] - PojoUtils(generalize/realize)出错,类型丢失
[DUBBO-11] - Future :访问超时时,可能会有NPE问题
[DUBBO-17] - 多个注册中心指定一个注册中心引用无效
[DUBBO-18] - rmi protocol can't handle biz exception
[DUBBO-20] - 设置delay属性导致服务一直处理禁用状态
[DUBBO-22] - refer.autodestory功能存在资源泄漏的风险。
[DUBBO-31] - consumer sticky配置项丢失
[DUBBO-32] - 在linux server上和本地连不上nettyserver时抛出来的异常不一致
[DUBBO-39] - hessian协议的timeout没有wrap为RpcException
[DUBBO-42] - Wrapper类使用javassit低版本的时遇到的NoClassDefFoundError问题
[DUBBO-43] - 解决cluseter(除了failover以外)在无invoker时的空指针
[DUBBO-44] - fix 2.0.8无法调用1.0.x
[DUBBO-47] - rmi 协议对2.0.8之前版本不兼容
[DUBBO-48] - AccessLogFilter在只写文件名的情况下NPE
[DUBBO-50] - 迁移错误的扩展点位置
[DUBBO-59] - Monitor 地址配置错误的情况下导致循环调用
[DUBBO-60] - exchange codec decodeResponseData的重载方法调用错误
[DUBBO-61] - 还原Restable接口的reset(Parametes parametes )方法保持与2.0.5之前版本的api兼容
[DUBBO-65] - server graceful shutdown 问题
[DUBBO-69] - 修复FailoverClusterInvoker丢失error code
Improvement
[DUBBO-9] - ExtensionLoader增加获取DefaultExtension的方法
[DUBBO-12] - 拆分不同实现为子模块
[DUBBO-13] - 为ReflectUtils增加cache
[DUBBO-21] - 整理UrlUtils
[DUBBO-34] - TraceFilter中达到trace.count后,从tracersMap中去掉Channel
[DUBBO-35] - LazyConnectExchangeClient去掉不必要的Wrapper
[DUBBO-36] - ExtensionLoader读取属性文件时可以有注释、固定用UTF8读取
[DUBBO-45] - Reference的初始化时出Remoting异常后,Reference没有捕捉,导致直接抛出Remoting异常,不能方便诊断是哪个Service出错
[DUBBO-49] - Injvm的端口总是置为0,以免因配置端口导致不可用
[DUBBO-51] - 配有多协议时,必须指定缺省协议,否则报错
[DUBBO-52] - Remoting中的类使用的是父类的Logger,导致异常信息排查不方便
[DUBBO-53] - Remoting Client连接出错时,会重试时打出异常栈的日志应该给出*会重试*的说明
评论
25 楼
climbtop
2013-10-29
用brap好,比起dubbo,轻量级,注册服务在服务器少的情况下简直废的。
http://brap.tornado.no/documentation.html
24 楼
xiangkui
2013-06-27
xiangkui 写道
qianshangding 写道
javatar 写道
xiangkui 写道
您好,我最近正准备推广你们的dubbo产品,可是在管理员端操作界面上发下很多问题哦,希望能解释一下。
1:添加并且启用一个路由规则后,无法删除该路由规则
2:服务管理一栏,服务禁用效果无效,通过设定路由规则的方式来屏蔽所有消费方接入provider的方式也无效。
3:在zookeeper节点中生成的节点包含utf-8编码问题(出现%3D等字符)
总之感觉整个管理员端问题重重,而且缺乏相关文档,Duboo交流群里也有不少人反应过该问题,希望能不吝宝贵时间,给与一个答复,谢谢了,高手~
1. 路由规则你可以尝试禁用,具体不能删除的原因待查。
2. 如果只有一个提供者,禁止是会失效的,因为消息方有容错,如果收到空集合,会使用上一次的通知列表进行调用,路由规则是可以的,但路由规则的限制是针对提供者,并且需要设置强制执行标识。
3. %3D不是乱码,是URL转义,存入的时候入URL.encode(),读取的时候会URL.decode().
我也碰到这样的问题,禁用的话,会多一条一样的记录,而且有的时候不能禁用。
编辑后保存,会有两条一样的记录。
dubbo管理端对zookeeper的操作,确实存在那样的问题,即会多一条记录,而且无法删除,导致服务禁用后,就不能再上线该服务了,除非手工删除对应的zk节点 ~—~糗啊~~
求梁大哥解释哦~~
23 楼
qianshangding
2013-06-26
javatar 写道
xiangkui 写道
您好,我最近正准备推广你们的dubbo产品,可是在管理员端操作界面上发下很多问题哦,希望能解释一下。
1:添加并且启用一个路由规则后,无法删除该路由规则
2:服务管理一栏,服务禁用效果无效,通过设定路由规则的方式来屏蔽所有消费方接入provider的方式也无效。
3:在zookeeper节点中生成的节点包含utf-8编码问题(出现%3D等字符)
总之感觉整个管理员端问题重重,而且缺乏相关文档,Duboo交流群里也有不少人反应过该问题,希望能不吝宝贵时间,给与一个答复,谢谢了,高手~
1. 路由规则你可以尝试禁用,具体不能删除的原因待查。
2. 如果只有一个提供者,禁止是会失效的,因为消息方有容错,如果收到空集合,会使用上一次的通知列表进行调用,路由规则是可以的,但路由规则的限制是针对提供者,并且需要设置强制执行标识。
3. %3D不是乱码,是URL转义,存入的时候入URL.encode(),读取的时候会URL.decode().
我也碰到这样的问题,禁用的话,会多一条一样的记录,而且有的时候不能禁用。
编辑后保存,会有两条一样的记录。
22 楼
xiaoduo2048
2013-03-12
为什么没人回答问题呢???
21 楼
xiaoduo2048
2013-03-06
请教如下错误原因
provider.xml里写如下配置,版本dubbo-2.4.9.jar
<dubbo:protocol name="webservice" port="8088" />
报错信息:
Exception in thread "main" java.lang.NoSuchFieldError: QUALIFIED
at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.getOrCreateSchema(ReflectionServiceFactoryBean.java:1454)
at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.createWrappedSchema(ReflectionServiceFactoryBean.java:1133)
at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeWrappedSchema(ReflectionServiceFactoryBean.java:1034)
at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildServiceFromClass(ReflectionServiceFactoryBean.java:478)
at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:536)
at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:248)
at org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java:101)
at org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java:159)
at com.alibaba.dubbo.rpc.protocol.webservice.WebServiceProtocol.doExport(WebServiceProtocol.java:117)
at com.alibaba.dubbo.rpc.protocol.AbstractProxyProtocol.export(AbstractProxyProtocol.java:69)
at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper.export(ProtocolFilterWrapper.java:55)
at com.alibaba.dubbo.rpc.protocol.ProtocolListenerWrapper.export(ProtocolListenerWrapper.java:56)
at com.alibaba.dubbo.rpc.Protocol$Adpative.export(Protocol$Adpative.java)
at com.alibaba.dubbo.registry.integration.RegistryProtocol.doLocalExport(RegistryProtocol.java:153)
at com.alibaba.dubbo.registry.integration.RegistryProtocol.export(RegistryProtocol.java:107)
at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper.export(ProtocolFilterWrapper.java:53)
at com.alibaba.dubbo.rpc.protocol.ProtocolListenerWrapper.export(ProtocolListenerWrapper.java:54)
at com.alibaba.dubbo.rpc.Protocol$Adpative.export(Protocol$Adpative.java)
at com.alibaba.dubbo.config.ServiceConfig.doExportUrlsFor1Protocol(ServiceConfig.java:485)
at com.alibaba.dubbo.config.ServiceConfig.doExportUrls(ServiceConfig.java:281)
at com.alibaba.dubbo.config.ServiceConfig.doExport(ServiceConfig.java:242)
at com.alibaba.dubbo.config.ServiceConfig.export(ServiceConfig.java:143)
at com.alibaba.dubbo.config.spring.ServiceBean.onApplicationEvent(ServiceBean.java:109)
at org.springframework.context.event.SimpleApplicationEventMulticaster$1.run(SimpleApplicationEventMulticaster.java:78)
at org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:49)
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:76)
at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:274)
at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:736)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:383)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:93)
at Provider.main(Provider.java:6)
provider.xml里写如下配置,版本dubbo-2.4.9.jar
<dubbo:protocol name="webservice" port="8088" />
报错信息:
Exception in thread "main" java.lang.NoSuchFieldError: QUALIFIED
at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.getOrCreateSchema(ReflectionServiceFactoryBean.java:1454)
at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.createWrappedSchema(ReflectionServiceFactoryBean.java:1133)
at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeWrappedSchema(ReflectionServiceFactoryBean.java:1034)
at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildServiceFromClass(ReflectionServiceFactoryBean.java:478)
at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:536)
at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:248)
at org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java:101)
at org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java:159)
at com.alibaba.dubbo.rpc.protocol.webservice.WebServiceProtocol.doExport(WebServiceProtocol.java:117)
at com.alibaba.dubbo.rpc.protocol.AbstractProxyProtocol.export(AbstractProxyProtocol.java:69)
at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper.export(ProtocolFilterWrapper.java:55)
at com.alibaba.dubbo.rpc.protocol.ProtocolListenerWrapper.export(ProtocolListenerWrapper.java:56)
at com.alibaba.dubbo.rpc.Protocol$Adpative.export(Protocol$Adpative.java)
at com.alibaba.dubbo.registry.integration.RegistryProtocol.doLocalExport(RegistryProtocol.java:153)
at com.alibaba.dubbo.registry.integration.RegistryProtocol.export(RegistryProtocol.java:107)
at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper.export(ProtocolFilterWrapper.java:53)
at com.alibaba.dubbo.rpc.protocol.ProtocolListenerWrapper.export(ProtocolListenerWrapper.java:54)
at com.alibaba.dubbo.rpc.Protocol$Adpative.export(Protocol$Adpative.java)
at com.alibaba.dubbo.config.ServiceConfig.doExportUrlsFor1Protocol(ServiceConfig.java:485)
at com.alibaba.dubbo.config.ServiceConfig.doExportUrls(ServiceConfig.java:281)
at com.alibaba.dubbo.config.ServiceConfig.doExport(ServiceConfig.java:242)
at com.alibaba.dubbo.config.ServiceConfig.export(ServiceConfig.java:143)
at com.alibaba.dubbo.config.spring.ServiceBean.onApplicationEvent(ServiceBean.java:109)
at org.springframework.context.event.SimpleApplicationEventMulticaster$1.run(SimpleApplicationEventMulticaster.java:78)
at org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:49)
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:76)
at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:274)
at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:736)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:383)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:93)
at Provider.main(Provider.java:6)
20 楼
xiaoduo2048
2013-03-06
xiaoduo2048 写道
(1) 不同服务不同协议
比如:不同服务在性能上适用不同协议进行传输,比如大数据用短连接协议,小数据大并发用长连接协议。
consumer.xml
?
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd "> <dubbo:application name="world" /> <dubbo:registry id="registry" address="10.20.141.150:9090" username="admin" password="hello1234" /> <!-- 多协议配置 --> <dubbo:protocol name="dubbo" port="20880" /> <dubbo:protocol name="rmi" port="1099" /> <!-- 使用dubbo协议暴露服务 --> <dubbo:service interface="com.alibaba.hello.api.HelloService" version="1.0.0" ref="helloService" protocol="dubbo" /> <!-- 使用rmi协议暴露服务 --> <dubbo:service interface="com.alibaba.hello.api.DemoService" version="1.0.0" ref="demoService" protocol="rmi" /> </beans>
(2) 多协议暴露服务
比如:需要与http客户端互操作
consumer.xml
?
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd "> <dubbo:application name="world" /> <dubbo:registry id="registry" address="10.20.141.150:9090" username="admin" password="hello1234" /> <!-- 多协议配置 --> <dubbo:protocol name="dubbo" port="20880" /> <dubbo:protocol name="hessian" port="8080" /> <!-- 使用多个协议暴露服务 --> <dubbo:service id="helloService" interface="com.alibaba.hello.api.HelloService" version="1.0.0" protocol="dubbo,hessian" /> </beans>
这两个xml里 <dubbo:service >标签是服务提供者暴露服务配置的标签,只能写在provider.xml里,还是在consumer.xml里也可以用??
比如:不同服务在性能上适用不同协议进行传输,比如大数据用短连接协议,小数据大并发用长连接协议。
consumer.xml
?
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd "> <dubbo:application name="world" /> <dubbo:registry id="registry" address="10.20.141.150:9090" username="admin" password="hello1234" /> <!-- 多协议配置 --> <dubbo:protocol name="dubbo" port="20880" /> <dubbo:protocol name="rmi" port="1099" /> <!-- 使用dubbo协议暴露服务 --> <dubbo:service interface="com.alibaba.hello.api.HelloService" version="1.0.0" ref="helloService" protocol="dubbo" /> <!-- 使用rmi协议暴露服务 --> <dubbo:service interface="com.alibaba.hello.api.DemoService" version="1.0.0" ref="demoService" protocol="rmi" /> </beans>
(2) 多协议暴露服务
比如:需要与http客户端互操作
consumer.xml
?
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd "> <dubbo:application name="world" /> <dubbo:registry id="registry" address="10.20.141.150:9090" username="admin" password="hello1234" /> <!-- 多协议配置 --> <dubbo:protocol name="dubbo" port="20880" /> <dubbo:protocol name="hessian" port="8080" /> <!-- 使用多个协议暴露服务 --> <dubbo:service id="helloService" interface="com.alibaba.hello.api.HelloService" version="1.0.0" protocol="dubbo,hessian" /> </beans>
这两个xml里 <dubbo:service >标签是服务提供者暴露服务配置的标签,只能写在provider.xml里,还是在consumer.xml里也可以用??
如果不可以,那文档介绍中是写在consumer.xml里的,是不是写错了?
19 楼
xiaoduo2048
2013-03-06
(1) 不同服务不同协议
比如:不同服务在性能上适用不同协议进行传输,比如大数据用短连接协议,小数据大并发用长连接协议。
consumer.xml
?
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd "> <dubbo:application name="world" /> <dubbo:registry id="registry" address="10.20.141.150:9090" username="admin" password="hello1234" /> <!-- 多协议配置 --> <dubbo:protocol name="dubbo" port="20880" /> <dubbo:protocol name="rmi" port="1099" /> <!-- 使用dubbo协议暴露服务 --> <dubbo:service interface="com.alibaba.hello.api.HelloService" version="1.0.0" ref="helloService" protocol="dubbo" /> <!-- 使用rmi协议暴露服务 --> <dubbo:service interface="com.alibaba.hello.api.DemoService" version="1.0.0" ref="demoService" protocol="rmi" /> </beans>
(2) 多协议暴露服务
比如:需要与http客户端互操作
consumer.xml
?
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd "> <dubbo:application name="world" /> <dubbo:registry id="registry" address="10.20.141.150:9090" username="admin" password="hello1234" /> <!-- 多协议配置 --> <dubbo:protocol name="dubbo" port="20880" /> <dubbo:protocol name="hessian" port="8080" /> <!-- 使用多个协议暴露服务 --> <dubbo:service id="helloService" interface="com.alibaba.hello.api.HelloService" version="1.0.0" protocol="dubbo,hessian" /> </beans>
这两个xml里 <dubbo:service >标签是服务提供者暴露服务配置的标签,只能写在provider.xml里,还是在consumer.xml里也可以用??
比如:不同服务在性能上适用不同协议进行传输,比如大数据用短连接协议,小数据大并发用长连接协议。
consumer.xml
?
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd "> <dubbo:application name="world" /> <dubbo:registry id="registry" address="10.20.141.150:9090" username="admin" password="hello1234" /> <!-- 多协议配置 --> <dubbo:protocol name="dubbo" port="20880" /> <dubbo:protocol name="rmi" port="1099" /> <!-- 使用dubbo协议暴露服务 --> <dubbo:service interface="com.alibaba.hello.api.HelloService" version="1.0.0" ref="helloService" protocol="dubbo" /> <!-- 使用rmi协议暴露服务 --> <dubbo:service interface="com.alibaba.hello.api.DemoService" version="1.0.0" ref="demoService" protocol="rmi" /> </beans>
(2) 多协议暴露服务
比如:需要与http客户端互操作
consumer.xml
?
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd "> <dubbo:application name="world" /> <dubbo:registry id="registry" address="10.20.141.150:9090" username="admin" password="hello1234" /> <!-- 多协议配置 --> <dubbo:protocol name="dubbo" port="20880" /> <dubbo:protocol name="hessian" port="8080" /> <!-- 使用多个协议暴露服务 --> <dubbo:service id="helloService" interface="com.alibaba.hello.api.HelloService" version="1.0.0" protocol="dubbo,hessian" /> </beans>
这两个xml里 <dubbo:service >标签是服务提供者暴露服务配置的标签,只能写在provider.xml里,还是在consumer.xml里也可以用??
18 楼
xiaoduo2048
2013-03-06
你好,我现在在学习dubbo,有几个问题不太明白,请教一下
1、在demo里的Consumer.java
我看到引用 import com.alibaba.dubbo.demo.DemoService;这个包是服务端的,这样一来客户端和服务端如果在两台不同的机器上怎么实现?为什么要这么写呢
2、webservice实现问题,我用cxf做为客户端,想调用dubbo的服务提供者,我启动了提供者的服务,那服务路径是什么呢?还有dubbo服务提供者的配置文件要怎么写?
1、在demo里的Consumer.java
我看到引用 import com.alibaba.dubbo.demo.DemoService;这个包是服务端的,这样一来客户端和服务端如果在两台不同的机器上怎么实现?为什么要这么写呢
2、webservice实现问题,我用cxf做为客户端,想调用dubbo的服务提供者,我启动了提供者的服务,那服务路径是什么呢?还有dubbo服务提供者的配置文件要怎么写?
17 楼
javatar
2013-02-17
45088648 写道
consumer可以继承到web工程里,用tomcat部署是吧?
是的,可以。
16 楼
45088648
2013-01-28
consumer可以继承到web工程里,用tomcat部署是吧?
15 楼
javatar
2012-11-19
xiangkui 写道
您好,我最近正准备推广你们的dubbo产品,可是在管理员端操作界面上发下很多问题哦,希望能解释一下。
1:添加并且启用一个路由规则后,无法删除该路由规则
2:服务管理一栏,服务禁用效果无效,通过设定路由规则的方式来屏蔽所有消费方接入provider的方式也无效。
3:在zookeeper节点中生成的节点包含utf-8编码问题(出现%3D等字符)
总之感觉整个管理员端问题重重,而且缺乏相关文档,Duboo交流群里也有不少人反应过该问题,希望能不吝宝贵时间,给与一个答复,谢谢了,高手~
1. 路由规则你可以尝试禁用,具体不能删除的原因待查。
2. 如果只有一个提供者,禁止是会失效的,因为消息方有容错,如果收到空集合,会使用上一次的通知列表进行调用,路由规则是可以的,但路由规则的限制是针对提供者,并且需要设置强制执行标识。
3. %3D不是乱码,是URL转义,存入的时候入URL.encode(),读取的时候会URL.decode().
14 楼
xiangkui
2012-11-16
您好,我最近正准备推广你们的dubbo产品,可是在管理员端操作界面上发下很多问题哦,希望能解释一下。
1:添加并且启用一个路由规则后,无法删除该路由规则
2:服务管理一栏,服务禁用效果无效,通过设定路由规则的方式来屏蔽所有消费方接入provider的方式也无效。
3:在zookeeper节点中生成的节点包含utf-8编码问题(出现%3D等字符)
总之感觉整个管理员端问题重重,而且缺乏相关文档,Duboo交流群里也有不少人反应过该问题,希望能不吝宝贵时间,给与一个答复,谢谢了,高手~
13 楼
javatar
2012-01-13
长沙伟子88 写道
dubbo的源码写的非常经典,功能很强大,自适应扩展,切片都比较的强。
在看了NettyHandler的代码中,
实际private final URL url;
在有多个服务暴露的时候,对应在一个通道上,因此这个属性貌似没有什么作用。实际处理还是根据Request参数找到对应的exporter进行处理的
在看了NettyHandler的代码中,
实际private final URL url;
在有多个服务暴露的时候,对应在一个通道上,因此这个属性貌似没有什么作用。实际处理还是根据Request参数找到对应的exporter进行处理的
NettyHandler中的url上的属性,只有protocol相关的有意义,service相关的不能讯取,就像你说的,因为多个service共享一个连接。
12 楼
javatar
2012-01-13
长沙伟子88 写道
还有个问题,为什么不把使用动态生成类修改成使用asm,在把asm引入到工程中,象fastjson那样处理,又可以减少javassist的依赖了
ProxyFactory是一个扩展点,因为asm生成代理可读性差,并且性能上优势没有想像的大,后续如果有时间,会加一个AsmProxyFactory,有兴趣的朋友,也可以自己加上。
11 楼
长沙伟子88
2011-12-20
还有个问题,为什么不把使用动态生成类修改成使用asm,在把asm引入到工程中,象fastjson那样处理,又可以减少javassist的依赖了
10 楼
长沙伟子88
2011-12-20
dubbo的源码写的非常经典,功能很强大,自适应扩展,切片都比较的强。
在看了NettyHandler的代码中,
实际private final URL url;
在有多个服务暴露的时候,对应在一个通道上,因此这个属性貌似没有什么作用。实际处理还是根据Request参数找到对应的exporter进行处理的
在看了NettyHandler的代码中,
实际private final URL url;
在有多个服务暴露的时候,对应在一个通道上,因此这个属性貌似没有什么作用。实际处理还是根据Request参数找到对应的exporter进行处理的
9 楼
javatar
2011-12-13
gnimnew 写道
俺运行了一下,报了
java.lang.ClassNotFoundException: com.alibaba.dubbo.container.spring.JettyContainer
这个错误,然后我看JettyContainer的类是在com.alibaba.dubbo.container.jetty中,而services配的是com.alibaba.dubbo.container.spring.JettyContainer
是不是配错了?
java.lang.ClassNotFoundException: com.alibaba.dubbo.container.spring.JettyContainer
这个错误,然后我看JettyContainer的类是在com.alibaba.dubbo.container.jetty中,而services配的是com.alibaba.dubbo.container.spring.JettyContainer
是不是配错了?
是的,2.0.8的container模块有bug,container模块在2.0.9才开始使用。
8 楼
javatar
2011-12-13
sodarfish 写道
请问一下:
如果将hessian服务通过servlet发布,和web应用公用一个端口(假设是80),如果我的服务不想被外网的人看到,如何保证其安全性呢?
如果将hessian服务通过servlet发布,和web应用公用一个端口(假设是80),如果我的服务不想被外网的人看到,如何保证其安全性呢?
可以参见:http://code.alibabatech.com/wiki/display/dubbo/User+Guide#UserGuide-TokenVerify
7 楼
javatar
2011-12-13
sodarfish 写道
请问一下:
如果将hessian服务通过servlet发布,和web应用公用一个端口(假设是80),如果我的服务不想被外网的人看到,如何保证其安全性呢?
如果将hessian服务通过servlet发布,和web应用公用一个端口(假设是80),如果我的服务不想被外网的人看到,如何保证其安全性呢?
你可以开启token验证,如:
<!--随机产生UUID做为token--> <dubbo:protocol name="hessian" token="true" />
这个token会通过注册中心下发给提供者,基于注册中心发现的方式调用不会受影响,点对点直连就会被控制住。
6 楼
sodarfish
2011-12-13
请问一下:
如果将hessian服务通过servlet发布,和web应用公用一个端口(假设是80),如果我的服务不想被外网的人看到,如何保证其安全性呢?
如果将hessian服务通过servlet发布,和web应用公用一个端口(假设是80),如果我的服务不想被外网的人看到,如何保证其安全性呢?
相关推荐
阿里巴巴开源RPC框架dubbo的hellworld实例
Dubbo 也是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring框架无缝集成。 主要核心部件: Remoting: 网络通信框架,实现了 sync-over-...
本文档为alibaba 开源的优秀服务治理框架dubbo的使用手册,目前dubbo已经贡献给apache社区。
Dubbo阿里巴巴分布式服务框架
开源分布式服务框架Dubbo调研报告,开源分布式服务框架Dubbo调研报告,开源分布式服务框架Dubbo调研报告,开源分布式服务框架Dubbo调研报告
包含阿里分布式开源框架dubbo视频详解,dubbo工具包,源码分析,zookeepr视频,mycat介绍
基于java的开发源码-服务框架 Dubbo.zip 基于java的开发源码-服务框架 Dubbo.zip 基于java的开发源码-服务框架 Dubbo.zip 基于java的开发源码-服务框架 Dubbo.zip 基于java的开发源码-服务框架 Dubbo.zip 基于java的...
Dubbo 是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring框架无缝集成。 主要核心部件: •Remoting: 网络通信框架,实现了 sync-over-async ...
阿里巴巴的dubbo框架 所有的电商网站都用这个 非常优秀的框架 这是截至目前阿里巴巴最新的dubbo框架 完整的版本,方便大家学习使用。
教程视频:Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring框架无缝集成
dubbo-project 基于阿里巴巴开源项目dubbo为RPC框架
Dubbo分布式服务框架入门2
阿里巴巴 开源框架dubbo视频讲解
基于阿里巴巴开源rpc框架dubbo2.5.3编译jar包
Dubbo是阿里巴巴SOA服务化治理方案的核心框架,每天为1,000+个服务提供2,000,000,000+次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点。
1、dubbo入门教程 基础篇教学视频 高级篇教学视频 PPT源码 2、dubbo 进阶 dubbo的高级特征、集群,负载均衡、直连开发模式和API详解以及资料和源码 3、dubbo分布式项目实战 springmvc+dubbo项目 商场系统 数据交换...
Dubbo API 阿里巴巴Duboo 这是 dubbo 2.5.3最新的API,大家共同学习
java并发编程阿里巴巴-梁飞Dubbo作者.pptx,java并发编程阿里巴巴-梁飞Dubbo作者.pptx
<?xml version="1.0" encoding="UTF-8" standalone="no"?> ... targetNamespace=...[CDATA[ Namespace support for the dubbo services provided by dubbo framework. ]]> <xsd:attribute name=
阿里巴巴分布式开源框架dubbo的demo,maven版