
dubbo
文章平均质量分 83
ph3636
这个作者很懒,什么都没留下…
展开
-
dubbo服务暴露
dubbo服务暴露原创 2017-12-27 13:54:32 · 283 阅读 · 0 评论 -
Dubbo源码分析之处理请求(下)
处理请求,判断请求是否已经被损坏void handleRequest(final ExchangeChannel channel, Request req) throws RemotingException { Response res = new Response(req.getId(), req.getVersion()); if (req.isBroken()) { ...原创 2019-06-13 16:42:42 · 314 阅读 · 0 评论 -
Dubbo源码分析之异步回调
异步回调需要设置方法返回值为CompletableFuture或者他的子类消费端判断返回值,设置参数异步加回调class InvokerInvocationHandler implements InvocationHandlerprivate RpcInvocation createInvocation(Method method, Object[] args) {...原创 2019-06-13 17:00:23 · 614 阅读 · 0 评论 -
Dubbo源码分析之扩展机制(1)
Dubbo源码分析系列基于最新的master分支。特性 基于透明接口的RPC 智能负载均衡 自动服务注册和发现 可扩展性高 运行时流量路由 可视化的服务治理 内容核心类是ExtensionLoader,主要用于实现扩展性,例如类实例之间的自动注入,自动包装,获取满足条件自适应的实例信息。Java的...原创 2019-06-10 13:36:24 · 656 阅读 · 0 评论 -
Dubbo源码分析之扩展机制(2)
当没有设置自适应类型时动态创建自定义类private Class<?> createAdaptiveExtensionClass() { String code = new AdaptiveClassCodeGenerator(type, cachedDefaultName).generate(); ClassLoader classLoader = findC...原创 2019-06-10 13:46:28 · 250 阅读 · 0 评论 -
Dubbo源码分析之扩展机制(3)
获取到自适应类型后进行实例化并且进行属性注入,这里会判断对象工厂是否为空,当类型type为ExtensionFactory时会为空,也就是不会注入属性,它的自适应类型为AdaptiveExtensionFactory,所以其他类型的objectFactory就是AdaptiveExtensionFactoryprivate T injectExtension(T instance) { ...原创 2019-06-10 13:50:05 · 203 阅读 · 0 评论 -
Dubbo源码分析之提供端(1)
Dubbo启动依赖于spring容器的启动,而spring容器的启动主要的方法都在AbstractApplicationContext类的refresh方法中,而我们在xml文件里面配置的标签<dubbo:service>或者设置的注解service对应的类为ServiceBean,它实现了一个ApplicationListener,这个接口的主要是监听spring容器的启动事件,当s...原创 2019-06-10 14:10:50 · 111 阅读 · 0 评论 -
Dubbo源码分析之提供端(2)
获取注册URL,还原原来的协议,因为设置的临时协议只是为了导向到该类。private URL getRegistryUrl(Invoker<?> originInvoker) { URL registryUrl = originInvoker.getUrl(); if (REGISTRY_PROTOCOL.equals(registryUrl.getProtoc...原创 2019-06-10 14:15:57 · 145 阅读 · 0 评论 -
Dubbo源码分析之提供端(3)
包装交换处理类,增加解码以及处理请求的功能public HeaderExchangeHandler(ExchangeHandler handler) { if (handler == null) { throw new IllegalArgumentException("handler == null"); } this.handler = hand...原创 2019-06-10 14:24:31 · 574 阅读 · 0 评论 -
Dubbo源码分析之处理请求(上)
提供端接收请求class NettyServerHandler extends ChannelDuplexHandlerpublic void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception { NettyChannel channel = NettyChannel.getOrAddChanne...原创 2019-06-13 16:39:13 · 470 阅读 · 0 评论 -
Dubbo源码分析之发送请求
消费端操作InvokerInvocationHandler代理发送请求,组装调用类public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { String methodName = method.getName(); Class<?>[] paramete...原创 2019-06-13 16:35:53 · 329 阅读 · 0 评论 -
dubbo扩展机制
dubbo扩展机制原创 2017-12-27 09:22:32 · 283 阅读 · 0 评论 -
dubbo服务引用
dubbo服务引用原创 2017-12-28 08:26:09 · 691 阅读 · 0 评论 -
dubbo服务调用
dubbo服务调用原创 2017-12-28 10:27:14 · 9921 阅读 · 2 评论 -
dubbo超时重试
1.此截图来自官网http://dubbo.io,超时的配置关系如下,方法超时参数为findXxx.timeout,接口超时参数为timeout,全局配置超时参数为default.timeout,当提供端url有变动时这几个参数都会设置到url的参数中。2.超时等参数的设置。当消费端引用某个接口服务时会订阅提供端服务的相关变动,开源代码的注册中心实现是Zookeeper,当有变动时动触原创 2018-01-29 11:29:20 · 3405 阅读 · 0 评论 -
Dubbo源码分析之消费端
dubbo的xml配置文件<dubbo:reference>对应的就是ReferenceBean,它实现了FactoryBean,所以在初始化实例时就会调用他的实现方法,从而开启服务引用public Object getObject() { return get();}检查必要的配置信息,加载注册中心URL,拼装引用URL。checkRegistry();...原创 2019-06-13 15:56:26 · 496 阅读 · 0 评论 -
Dubbo源码分析之构建远程Invoker
无提供者消费端初次注册当没有提供者时或者提供者都取消注册时,监听器会通知消费端节点变更,即各个节点下无子节点时会返回一个空集合,然后组装一个空协议的URL返回private List<URL> toUrlsWithEmpty(URL consumer, String path, List<String> providers) { List<U...原创 2019-06-13 15:59:25 · 731 阅读 · 0 评论 -
Dubbo源码分析之建立连接
当消费端监听到有提供者URL存在时,会进行服务引用,建立与提供端之间的链接invoker = new InvokerDelegate<>(protocol.refer(serviceType, url), url, providerUrl);引用过程会经过监听器和过滤器的包装public <T> Invoker<T> refer(Class<...原创 2019-06-13 16:04:43 · 647 阅读 · 0 评论 -
Dubbo源码分析之编解码
编码器private class InternalEncoder extends MessageToByteEncoder { @Override protected void encode(ChannelHandlerContext ctx, Object msg, ByteBuf out) throws Exception { org.apache.d...原创 2019-06-13 16:32:02 · 491 阅读 · 0 评论 -
Dubbo源码分析之提供端(4)
获取zookeeper注册中心private Registry getRegistry(final Invoker<?> originInvoker) { URL registryUrl = getRegistryUrl(originInvoker); return registryFactory.getRegistry(registryUrl);}移除暴...原创 2019-06-10 14:28:34 · 985 阅读 · 0 评论