• 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

  • 相关阅读:
    java security
    java 反射 动态代理
    java 泛型
    angularjs编码实践
    angularjs 资源集合
    java 类的加载,链接,初始化
    java 伪共享
    java cpu缓存
    SpringMVC,Controller的返回页面类型以及路径设置默认值
    org.springframework.web.bind.annotation重定向的问题
  • 原文地址:https://www.cnblogs.com/vhyc/p/10476326.html
Copyright © 2020-2023  润新知