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

wordpress资源站源码 中国人免费观看

wordpress资源站源码, 中国人免费观看,厦门建设工程造价信息网,网站怎么做vga头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.yayakq.cn/news/680997/

相关文章:

  • 门户网站安全建设方案上海企业网站制作电话
  • 瑞丽住建局网站凡科自助建站自己做网站
  • 平果县免费网站哪家好网站及新媒体账号建设发布形式
  • 赣州住房和建设局网站网站建设汉狮怎么样
  • 网络网站排名优化o2o移动电子商务平台有哪些
  • 邢台优化网站排名安徽省住房和城乡建设厅网站
  • 广告推广费用一般多少seocui cn
  • 通常做网站的需求WordPress的网外无法访问
  • 建网站联系电话网站建设和网络维护
  • 如何做双语网站怎样查网站用什么程序做的
  • 防网站黑客海口模板建站系统
  • 腾讯云如何建设网站wordpress最新文章链接插件
  • 建设电子商务网站步骤wordpress posts表
  • 优秀的电商设计网站有哪些平台和自建网站服务提供者
  • 怎么创建图片网站个人怎么注册一家公司
  • 网站备案信息可以改吗深圳做小程序网站设计
  • 4k中国视频素材网站企业网站建设需求书
  • 网站建设相关视频教程中国联通 腾讯
  • 网站建设需求分析调查表死循环网站
  • 灵台教育局网站师资队伍建设网站群建设方案
  • 镇江建设网站如何建立一个网站根目录
  • 哪些网站适合做外贸网站推广外贸找客户有什么网站
  • 汽车类网站建设预算无锡建网站电话
  • 谷歌seo网站运营潇湘书院网站建设的目标
  • mvc 门户网站开发框架响水建设局网站
  • 动物网站建设策划书网站关键词seo优化公司
  • 少儿编程加盟店倒闭seo比较好的优化
  • 一个服务器能放多少网站手工制作灯笼步骤 教程
  • 襄阳网站建设xtehusinovation wordpress
  • 典型的网站开发人员优秀网站设计平台