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

  • 相关阅读:
    Python httpServer服务器(初级)
    分布式服务管理zookeeper的java api
    基于netty的异步http请求
    for之Python vs C#
    表单验证
    contact表单错误解决记录
    表单
    Django后台管理界面
    正则表达式替换和不包含指定字符串
    Django模型-数据库操作
  • 原文地址:https://www.cnblogs.com/vhyc/p/10476326.html
Copyright © 2011-2022 走看看