首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  服务器

大佬们,帮我看看我这个情况适合用 RPC 吗?

  •  
  •   c0011 · 44 天前 · 2508 次点击
    这是一个创建于 44 天前的主题,其中的信息可能已经有所发展或是发生改变。

    服务器是 C++写的。卖的时候要把服务器部署到客户公司内部。比如卖到两个公司 A,B。然后 A 服务器下的客户端可能只在 A 服务器内部互相通信。也有可能在 A 上的客户端与在 B 上的客户端通信。

    现在的问题是跨 A B 通讯的时候比较麻烦,都是异步操作。 比如 A 去问 B 服务器客户端 b 的状态,然后 B 服务器查询完 b 的状态再返回给 A。 A 收到 B 的返回信息再从 callbacks 里找到正确的 callback,进行调用。

    像这种用 rpc 技术是最适合的方式吗? 还有更好的方式吗?

    先谢过了!

    5 回复  |  直到 2019-09-02 10:53:35 +08:00
        1
    BingoXuan   44 天前 via Android
    当你通过网络调用其他机器的服务时候,其实就是一种 rpc
        2
    phantomzz   44 天前
    RPC 只是一种通讯方式,与 RPC 同等概念的还可以是你们自己封装的私有协议,以及 HTTP 等公用协议,你们这个场景我觉得用不用 RPC 不是关键,只是一种通讯方式而已,关键是保证通讯的可靠性。你们的产品是直接让客户间进行通信吗。。你们自己没有服务器吗?所有的流量都走到你们这边来啊,监控和运维都好办一点,哪端有异常都能及时发现。
        3
    c0011   44 天前
    @phantomzz 跨服务器的时候,客户端都是通过服务器收发数据的,不允许客户端直接通讯。还有跨服务器通讯的时候,发起方是主服务器。因为是跨服务器,主服务器需要通过次服务器来获取到次服务器上的客户端的状态。
    ----
    主要还是想降低程序开发复杂度,自己设计协议需要很多异步操作,还需要保存很多 callback,感觉挺麻烦的。
        4
    c0011   44 天前
    @BingoXuan 那跨服务器通讯标准做法是什么样啊?
        5
    robot1   44 天前
    有一个 c++的协程框架 libgo,可以使用 go 风格的协程,解决掉了回调问题
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2648 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 23ms · UTC 14:10 · PVG 22:10 · LAX 07:10 · JFK 10:10
    ♥ Do have faith in what you're doing.