代码之家  ›  专栏  ›  技术社区  ›  user1008636

允许通过网络调用函数的现代方法

  •  6
  • user1008636  · 技术社区  · 6 年前

    将此视为现代系统设计范式的概述:

    假设我已经编写了一个程序来返回两个给定数字的和。让我们称之为神奇的加法器。我的目标是使这个神奇的加法器可供其他人使用。截至2018年,将这一令人惊叹的加法器作为公共服务提供给世界的主流和现代方式是什么?我更感兴趣的是后端架构,而不是用户界面。根据我对系统设计的了解,我可以想到:

    1) 使其成为一个REST服务,但是这个用例是否很好地适应REST范式?如何调用终结点?如果我所做的只是在没有状态信息的情况下添加到数字中,我需要支持哪些操作(更新、删除等)?

    http://www.theAmazingAdder.com/add ,有效负载为{'number1':2,“number2”:3},我的服务将返回{'sum':3}

    3) 通过Profobuf或Thrift使其成为二进制RPC格式。是不是太过分了?客户机和服务器都必须有什么“代码定义”?

    4) 传统的Python pickling还是通过网络的java序列化/rmi?这样做合适吗?

    我还错过了其他流行的现代范式吗?

    1 回复  |  直到 6 年前
        1
  •  3
  •   Alex Kurkin    6 年前

    今天(2018年)“主流”和“现代”这样做的方式是 grpc 或者有一个指定的rest服务 OpenApi

    使用哪种方法很大程度上取决于上下文

    在grpc中,您可以使用函数定义.proto文件,并生成客户端库以与服务的使用者共享。