- 浏览: 1700369 次
- 性别:
- 来自: 杭州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),如果我的服务不想被外网的人看到,如何保证其安全性呢?
相关推荐
Dubbo 也是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring框架无缝集成。 主要核心部件: Remoting: 网络通信框架,实现了 sync-over-...
在这个"阿里巴巴开源RPC框架dubbo的hello world实例"中,我们将深入理解dubbo的基本工作原理和如何创建一个简单的应用。 首先,我们需要了解dubbo的核心概念。dubbo提供服务提供者(Provider)、服务消费者...
本文档为alibaba 开源的优秀服务治理框架dubbo的使用手册,目前dubbo已经贡献给apache社区。
《Dubbo:阿里巴巴分布式服务框架详解》 Dubbo,源自阿里巴巴,是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用、智能容错和负载均衡、以及服务自动注册与发现。作为企业级...
包含阿里分布式开源框架dubbo视频详解,dubbo工具包,源码分析,zookeepr视频,mycat介绍
7. **集成其他优秀技术**:Webx与其他阿里巴巴开源项目,如Dubbo(服务治理框架)、Druid(数据库连接池)等深度集成,提供了一站式的解决方案。 "Webx及框架简介"的PPT文件可能涵盖了框架的基本概念、安装配置、...
基于java的开发源码-服务框架 Dubbo.zip 基于java的开发源码-服务框架 Dubbo.zip 基于java的开发源码-服务框架 Dubbo.zip 基于java的开发源码-服务框架 Dubbo.zip 基于java的开发源码-服务框架 Dubbo.zip 基于java的...
Dubbo 是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring框架无缝集成。 主要核心部件: •Remoting: 网络通信框架,实现了 sync-over-async ...
Dubbo是中国阿里巴巴开源的一款高性能、轻量级的Java分布式服务框架,它主要为了解决企业应用之间的服务调用问题,提供了服务注册、服务发现、负载均衡、容错处理等一系列完整的服务治理功能。在这个"Dubbo分布式...
阿里巴巴的Dubbo框架,作为一款高性能、轻量级的开源Java RPC框架,自发布以来便备受业界关注,尤其在电商领域,它已成为构建大型分布式系统不可或缺的一部分。本文将对这款最新的Dubbo框架进行全面解析,帮助开发者...
分布式服务框架Dubbo是阿里巴巴开源的一款高性能、轻量级的服务治理框架,旨在提高微服务架构下的服务调用效率,提供服务发现、流量控制、容错重试等核心功能。本调研报告将深入探讨Dubbo的核心特性、设计理念以及...
Dubbo是阿里巴巴开源的一款高性能、轻量级的Java分布式服务框架,它致力于提供面向服务的RPC(Remote Procedure Call)解决方案,以实现服务间的高效通信和治理。Dubbo的核心目标是促进微服务架构的发展,通过解耦...
教程视频:Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring框架无缝集成
Dubbo是阿里巴巴开源的一款高性能、轻量级的Java服务治理框架,它专注于服务之间的远程调用,旨在提高系统间的解耦和可扩展性。Dubbo的核心组件包括服务提供者(Provider)、服务消费者(Consumer)、注册中心...
Apache Dubbo 是一个高性能的、基于 Java 的开源 RPC 框架。dubbo源码
【标题】中的“dubbo-project”指的是一个围绕阿里巴巴开源项目Dubbo构建的示例或实践项目,它将Dubbo作为核心的远程过程调用(RPC)框架。Dubbo是一款高性能、轻量级的开源Java RPC框架,旨在提高服务间的通信效率...
1、dubbo入门教程 基础篇教学视频 高级篇教学视频 PPT源码 2、dubbo 进阶 dubbo的高级特征、集群,负载均衡、直连开发模式和API详解以及资料和源码 3、dubbo分布式项目实战 springmvc+dubbo项目 商场系统 数据交换...
Apache Dubbo,作为阿里巴巴开源的一款高性能、基于Java的RPC(远程过程调用)框架,自2011年发布以来,已经在业界得到了广泛应用,尤其在微服务架构中扮演了重要角色。Dubbo的核心目标是解决分布式系统中的服务治理...
Java服务框架Dubbo是一个高性能、轻量级的服务治理平台,由阿里巴巴开源并贡献给社区,旨在解决大型分布式系统中的服务治理问题。它提供了包括服务注册、服务发现、负载均衡、容错处理、监控等一系列功能,帮助...
Dubbo API 阿里巴巴Duboo 这是 dubbo 2.5.3最新的API,大家共同学习