zoukankan      html  css  js  c++  java
  • web 对接 platform

    一个项目拆成web和platform,web不对接数据库,只调用各个platform,每个平台负责出一个httpclient的client-jar包,封装好curd方法给web端调用,入参和出参用jar包的d

    web调用platform的方法是用走controller,现在重复走了很多遍层,现在把platform的controller删掉,接口抽象到client-jar包里面,那么web也可以直接调用

    jar包上的接口的时候使用动态代理(代表不用一条条去写),带上方法的参数类型(防止重载情况,int, Number,Integer)拼接一条url,host/rpc/类名/方法名,通过httpclient发送请求,platform这边由于json带了参数类型,正常的controller接受不了

    platform使用一个filter来匹配拦截rpc的路径,通过url上的类名,从spring容器里面获得bean,通过bean来getclass,和穿过来param类型获得方法,最好通过方法,对象,入参数据,获得返回数据,转成json传回去

     

    把每个client-jar包的共有部分拆出来作为公司的common包,有HTTP client,proxy factory工厂,proxy的handler代理类,实现心跳检查(像zookeeper一样,维护一个path的节点)雨燕是自己扫瞄client,根据service名字和zk联系,我这里写得启动时候硬编码,沒有zk,迫不得以用一个Router传来传去

    client-jar抽象成用来描述平台接口和入参出参的dto和枚举类

    接下来就是全部封装好就是透明的方法对接方法,换言之,httpclient帮我们完成网络调用,动态代理帮我们动态编程,dubbo,spring could帮我们完成了上面两部,zk还是作为third party帮我们解耦注册中心(不用我们写一个host list)(Balanced load在调用方写)

    demo2是为了实现多个服务,

     下面三个是web - client - platform版本

    上面就是ins-deme-util  分解了ins-demo-common和ins-demo-client

  • 相关阅读:
    【BZOJ4514】【SDOI2016】数字配对 [费用流]
    【BZOJ4517】【SDOI2016】排列计数 [数论]
    【BZOJ4516】【SDOI2016】生成魔咒 [SAM]
    【BZOJ1560】【JSOI2009】火星藏宝图 [DP]
    【BZOJ4903】【CTSC2017】吉夫特 [DP]
    【BZOJ3884】上帝与集合的正确用法 [欧拉定理]
    【BZOJ4869】相逢是问候 [线段树][欧拉定理]
    树和二叉树知识点总结
    Socket详解
    Host文件简介
  • 原文地址:https://www.cnblogs.com/vhyc/p/10476326.html
Copyright © 2011-2022 走看看