开发者社区> 问答> 正文

帮忙看下我的JAVA分布式架构? 400 报错

帮忙看下我的JAVA分布式架构? 400 报错

基于Zookeeper和netty写的,直接说问题:

首先我的这个是基于RPC(netty)消息传递(用的google protocol buffer).

分三层:最上层是Web server(Tomcat). 中间层是 Master Server(负载均衡,缓存定位,计算等服务). 最下层是 各种各样的 Salve Server

我目前了解的消息传递方式有2种:

1.Web只和Master链接. Master与所有的Slave链接,并接收web的请求,将web请求转发给slave,最终将结果返回给web.

这样做的好处是消息能够统一处理,思路比较清晰。但是!对网络的利用不好,因为每个请求和返回要走2次网络。当返回为较大的缓存数据时比较头大! 并且Master压力过于繁重!

2.Web和master链接,也和slave链接。 Master不链接任何Slave,它只告诉web去访问哪个slave处理这个请求。最后web直连slave做消息处理。

这样做的好处是网络利用非常好,请求和返回只在网络中传递一次。(当然还有一个web向master询问slave信息的请求和返回,这个信息量很小。。可以不计) 但是!消息不能统一处理,比如我要有一个手机应用要做和web同样的事情,那么要copy很多同样的代码! 并且此时Master干的活非常的少。。。。

我目前是第二种。。。。。。有木有更好的方式?或者我的分布式架构完全是错的。。。。。

展开
收起
爱吃鱼的程序员 2020-06-03 16:49:05 413 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    这个我不懂,帮顶######Thx~######手机和web访问同样的接口不行么######

    参考淘宝 dubbo

    注册中心,monitor,admin界面

    ######多谢~我参考下######

    你这个和dubbo是一模一样的。连底层采用的都一样。如果要用protobuf,那你就针对dubbo开发protobuf协议支持就实现你的要求了。 

    dubbo原来说要支持protobuf的,不知道现在支持了没有。

    ######多谢 ~~ 我参考下。######个人也倾向第二种方案,避免copy代码的话,可以重构出一个公共的jar包,这样系统的依赖性就降低了######是的~~我也是这么打算的,本来打算就这么做的,不过还是上来发帖问问,哈哈。。######另外,如果只是Java层面的内网通讯,建议看看hadoop ipc模块(效率更高 http://git.oschina.net/jiangdx/hadoop-ipc )######好的,我看下。######第二种,Master Server和Web合并。手机和web访问同样的接口 +1。
    ######想过这么搞,但是如果把web和master合并,那么负载均衡,缓存定位等服务也就在web上了。一旦手机应用链接的话,就比较麻烦。######顶一下######请问大牛, Web server是不是也要做负载啊,不然怎么保持高并发下的链接数啊######当然,web做负载均衡比较简单。所以我没描述。
    2020-06-03 20:45:59
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载