dubbo-(源码基于2.6.x)
dubbo(源码基于2.6.x)
老猿说说
Java老猿
展开
-
dubbo01-spi
为什么要设计adaptive?注解在类上和注解在方法上的区别?adaptive设计的目的是为了识别固定已知类和扩展未知类。1.注解在类上:代表人工实现,实现一个装饰类(设计模式中的装饰模式),它主要作用于固定已知类,目前整个系统只有2个,AdaptiveCompiler、AdaptiveExtensionFactory。a.为什么AdaptiveCompiler这个类是固定已知的?因为整个...原创 2020-10-12 14:15:12 · 142 阅读 · 0 评论 -
dubbo-consumer-invoker
InvokerInvocationHandler @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { String methodName = method.getName(); Class<?>[] para...原创 2020-10-12 14:19:20 · 103 阅读 · 0 评论 -
dubbo-consumer-refer
RegistryProtocol1.registry.register()注册consumer到zk2.directory.subscribe()监听consumer dataChange获取provider3.cluster.joinprivate <T> Invoker<T> doRefer(Cluster cluster, Registry registry...原创 2020-10-12 14:19:08 · 106 阅读 · 0 评论 -
dubb-LoadBalance
RandomLoadBalancepublic class RandomLoadBalance extends AbstractLoadBalance { public static final String NAME = "random"; private final Random random = new Random(); @Override prot...原创 2020-10-12 14:17:17 · 100 阅读 · 0 评论 -
dubo-filter
EchoFilter@Activate(group = Constants.PROVIDER, order = -110000)public class EchoFilter implements Filter { @Override public Result invoke(Invoker<?> invoker, Invocation inv) throws R...原创 2020-10-12 14:17:05 · 126 阅读 · 0 评论 -
dubbo-netty
NettyServerHandler.channelActivepublic void channelActive(ChannelHandlerContext ctx) throws Exception {ctx.fireChannelActive(); NettyChannel channel = NettyChannel.getOrAddChannel(ctx.channel(),...原创 2020-10-12 14:17:32 · 148 阅读 · 0 评论 -
基于dubbo的分布式应用中的统一异常处理
背景目前在做的项目使用 dubbo 作为分布式服务框架,新项目开发过程中遇到一个问题:provider 端抛出了自定义的业务异常,而 consumer 接收到的却是 RpcException,原来的业务异常(包括异常栈)被包装到了 message 中,导致 consumer 不能正确获取 provider 想要提供的 message。出现这个问题,有几个前提:自定义的异常自定义的业务异常继...转载 2019-01-28 14:21:12 · 6135 阅读 · 2 评论 -
dubbo-export
ServiceBean.onApplicationEvent() public void onApplicationEvent(ApplicationEvent event) { if (ContextRefreshedEvent.class.getName().equals(event.getClass().getName())) { if (isDel...原创 2020-10-12 14:16:35 · 165 阅读 · 0 评论 -
dubbo-动态编译
public final class URL implements Serializable { private static final long serialVersionUID = -1985165475234910535L; private final String protocol; private final String username; p...原创 2020-10-12 14:15:44 · 145 阅读 · 0 评论 -
dubbo-ExtensionLoader
ExtensionLoader private static final ConcurrentMap<Class<?>, ExtensionLoader<?>> EXTENSION_LOADERS = new ConcurrentHashMap<Class<?>, ExtensionLoader<?>>(); p...原创 2020-10-12 14:21:53 · 145 阅读 · 0 评论 -
dubbo-main
Mainpublic class Main { public static final String CONTAINER_KEY = "dubbo.container"; public static final String SHUTDOWN_HOOK_KEY = "dubbo.shutdown.hook"; private static final Logger ...原创 2020-10-12 14:15:27 · 66 阅读 · 0 评论 -
dubbo-配置
dubbo.container=log4j,springdubbo.application.name=hello-core-servicedubbo.application.owner=coretdubbo.registry.address=zookeeper://127.0.0.1:2181dubbo.protocol.name=dubbodubbo.protocol.port=564...原创 2020-10-12 14:14:51 · 144 阅读 · 0 评论 -
dubbo2.7.x
自 2017 年 7 月阿里重启 Dubbo 开源,到目前为止 github star 数,contributor 数都有了非常大的提升。2018 年 2 月 9 日阿里决定将 Dubbo 项目贡献给 Apache,经过一周的投票,顺利成为了 Apache 的孵化项目,也就是大家现在看到的Incubator Dubbo。预计在 2019 年 4 月,Dubbo 可以达成毕业,成为 Apache ...转载 2019-06-04 09:21:56 · 1106 阅读 · 0 评论