当前位置: 首页 > news >正文

人大网站硬件建设与信息宣传工作网站如何做推广

人大网站硬件建设与信息宣传工作,网站如何做推广,公众平台微信登录,扫二维码直接进入网站怎么做1 Dubbo服务消费端远程调用过程概述 (1)当消费方调用远程服务的方法时,会被InvokerInvocationHandler拦截,执行其invoke()方法,创建RpcInvocation对象; (2)接着会选择远程调用的负…

1 Dubbo服务消费端远程调用过程概述

(1)当消费方调用远程服务的方法时,会被InvokerInvocationHandler拦截,执行其invoke()方法,创建RpcInvocation对象;

(2)接着会选择远程调用的负载均衡策略;

(3)最后执行DubboInvoker的doInvoke()方法发起远程调用。

2 消费端远程调用执行入口

服务消费端启动时,会为需要调用的远程服务类创建代理类(通过ReferenceConfig的get()方法),其中代理类的方法拦截器为InvokerInvocationHandler。代码如下所示。

    public <T> T getProxy(Invoker<T> invoker, Class<?>[] interfaces) {try {return (T) Proxy.getProxy(interfaces).newInstance(new InvokerInvocationHandler(invoker));} catch (Throwable fromJavassist) {// try fall back to JDK proxy factorytry {T proxy = jdkProxyFactory.getProxy(invoker, interfaces);logger.error(PROXY_FAILED, "", "", "Failed to generate proxy by Javassist failed. Fallback to use JDK proxy success. " +"Interfaces: " + Arrays.toString(interfaces), fromJavassist);return proxy;} catch (Throwable fromJdk) {logger.error(PROXY_FAILED, "", "", "Failed to generate proxy by Javassist failed. Fallback to use JDK proxy is also failed. " +"Interfaces: " + Arrays.toString(interfaces) + " Javassist Error.", fromJavassist);logger.error(PROXY_FAILED, "", "", "Failed to generate proxy by Javassist failed. Fallback to use JDK proxy is also failed. " +"Interfaces: " + Arrays.toString(interfaces) + " JDK Error.", fromJdk);throw fromJavassist;}}}

所以,当消费方调用远程服务的方法时,会被InvokerInvocationHandler拦截,执行其invoke()方法。其中method为调用的方法,args为参数。此处创建的RpcInvocation对象会一直传递下去,直到发起远程调用。invoke()方法代码如下所示。

    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {if (method.getDeclaringClass() == Object.class) {return method.invoke(invoker, args);}String methodName = method.getName();Class<?>[] parameterTypes = method.getParameterTypes();if (parameterTypes.length == 0) {if ("toString".equals(methodName)) {return invoker.toString();} else if ("$destroy".equals(methodName)) {invoker.destroy();return null;} else if ("hashCode".equals(methodName)) {return invoker.hashCode();}} else if (parameterTypes.length == 1 && "equals".equals(methodName)) {return invoker.equals(args[0]);}RpcInvocation rpcInvocation = new RpcInvocation(serviceModel, method.getName(), invoker.getInterface().getName(), protocolServiceKey, method.getParameterTypes(), args);if (serviceModel instanceof ConsumerModel) {rpcInvocation.put(Constants.CONSUMER_MODEL, serviceModel);rpcInvocation.put(Constants.METHOD_MODEL, ((ConsumerModel) serviceModel).getMethodModel(method));}return InvocationUtil.invoke(invoker, rpcInvocation);}

http://www.ds6.com.cn/news/12100.html

相关文章:

  • 网站建设教程网外贸网站平台都有哪些
  • 二次开发是什么高明公司搜索seo
  • 电子商务公司网站怎么建windows优化大师的功能
  • 网站模板和后台抖音seo是什么
  • 网站名称怎样做如何提高关键词搜索排名
  • 兰州网站怎么建设地推怎么做最有效
  • 建设网站 怀疑对方传销 网站制作 缓刑怎样开自己的网站
  • 宁波网站开发建设公司seo学院
  • 做任务佣金的网站安徽网站推广
  • 广西城乡建设网站如何制作自己的网址
  • 六安网站制作人才招聘2023年10月疫情还会严重吗
  • 如何制作一个企业网站北京百度推广排名优化
  • 网站原创文章来源宁波seo关键词
  • 网站建设客户调研表全国各城市感染高峰进度查询
  • 扬州百姓网免费发布信息网seo职位
  • b2b行业门户网站策划实战研究报告百度快照怎么发布
  • 德兴网站seo免费的网站域名查询app
  • 网站开发调研海口网站建设
  • 义乌网站建设公司书生商友网络营销过程步骤
  • dw网站模板下载上海热点新闻
  • 一般网站图标是用什么做的百度推广代运营
  • wordpress chm免费网站seo诊断
  • wordpress文章url设置seo 深圳
  • 汉中网站开发商品关键词优化的方法
  • 湖北专业网站制作公司网络营销师是做什么的
  • 做外贸出口的网站百度一下网页
  • 使用云主机做网站教程合肥seo网络优化公司
  • 成都 企业网站建设公司2022最火营销方案
  • wordpress稳定版seo自学教程seo免费教程
  • 网站开发的教学视频教程怎样制作网页设计