今天从群里得到消息说Dubbo又重新维护了,然后去官网看了一下,
确实是得到官方重新维护了,但是还不了解最新的规划放向

看了下github上的issue


面临的问题还是有很多的,但是应付一般的企业需求应该是足够了。
之前公司里面用过阿里的烂尾项目,踩了很多坑。所以现在还是慎重选择国内的开源框架。

Dubbo的一些坑

在application节点设置logger使用slf4j之后,还是报没有找到log4j的警告

在dubbo启动之前设置 System.setProperty("dubbo.application.logger","slf4j");   

使用Dubbo注解@Service 和Spring注解 @Transactional冲突的问题,同样存在于和其他自定义使用AOP代理过得对象有冲突

原因:Dubbo早期 使用Spring2,如果自己排除了Spring低版本,使用高版本的Spring。其代理的生成方式有变,早期使用JDK动态代理,现在默认是使用CGLib字节码生成方式而Dubbo对于字节码生成方式没有做考虑,所以存在问题

解决方案1:
1
2
3
4
5
6
Service service;
if (AopUtils.isAopProxy(proxy) ){
service =(根据代理对象获得到的cglib或者jdkproxy的原始对象)
}else{
service = bean.getClass().getAnnotation(Service.class);
}

解决方案2:不用注解,使用xml方式更好

2.5.3会间歇性连接超时

问题
参考解决方案
以及修改host文件

分布式事物问题

dubbo暂时没有支持分布式事物的功能,考虑之后将dubbox的分布式事物功能合并过来,
可以自己使用Zookeeper自己实现分布式事物

dubbo 管理控制台的问题

dubbo的管理控制台是一个阉割版。到处是bug。推荐使用 [dubbokeeper](https://github.com/dubboclub/dubbokeeper)

优雅停机的bug

dubbo的原生graceful shutdown是有bug的,仅释放了一些资源但没有尝试等待服务线程结束。官方还在进行修复和优化,另外如果dubbo是同web容器一起启动的话,dubbo和web容器会有一个时间差,
具体可以参考解决方案https://my.oschina.net/u/1398931/blog/790709  

提供者的RpcResult的attachment放了值,消费着获取不到

必须要从扩展的层次来操作,比如通过做Filter扩展

dubbo提供者线程池满了后不返回报错

新版本2.5.4 说是解决了。未验证,参考issue https://github.com/alibaba/dubbo/issues/494

dubbo 提供restful webservice

该功能暂时还没排上计划,可以自己使用resteasy 或者spring mvc

Dubbo以webservice协议发布接口时不支持最新的CXF

可以使用cxf老版本的xfire,或者cxf新版本的3.1.6

客户端与服务端Channel断了,无法自动恢复

自己还没有碰到该问题,这是个大问题 - -,详见https://github.com/alibaba/dubbo/issues/458

服务提供者启动暴露服务后,少量请求超时

多半是有的服务接口处理耗时较长,在配置里面把对应的超时时间调大一点应该就可以了

dubbo的异步调用传递性问题

若cosumer async=true去调 serviceA,确实是异步调用.serviceA并未在xml配置async .那么serviceA调用serviceB会变成async=true异步的,导致返回值为null
在查看了github 的issue之后作者标记在2.5.4.M1 里程碑版本重点在解决这个问题

消费者抛监控异常

配置文件打开了dubbo的监控,但是simple-monitor没有运行。

dubbo 默认的序列化方式存在的问题

dubbo默认序列化协议是hession,hession对于特殊对象,序列化不行这是他的一大劣势,解决办法:
1、自己转化下思路,比如转化为string类型的
2、不用hession协议,直接使用protobuf协议做序列化协议

所有非dubbo的序列化协议都是不建议在生成上使用的- -

非dubbo协议为了调试和测试使用的,使用非Dubbo的协议都存在一个问题,如何进行服务注册与服务发布?以及如何进行负载均衡等?

Spring Cloud

能够选择Spring Cloud的话还是选择Spring Cloud吧,指望dubbo能够稳定下来还是遥遥无期