zoukankan      html  css  js  c++  java
  • [svc]简单理解什么是rpc调用?跟restapi有何区别?

    什么是rpc调用

    • restapi调用方式是对数据的crud. 常见的我们写flash写个api,或者借助django drf写个标准的resetapi,一个url可以借助httpget post put delete实现数据的crud. 属于应用层http调用了

    那个文章说:
    REST表示的是描述性状态传递(representational state transfer),REST整个就是关于 客户端和服务端之间的关系的,其中服务端要提供格式简单的描述性数据,常用的是JSON和XML。
    不知道和osi7层的表示层有关系没

    找了个django-microservice例子

    订单服务调用邮件服务

    邮件服务是通过url暴漏的, 通过post方式收到参数,发出邮件

    • rpc调用方式: 简单理解为主机B可以调用主机A的函数. 属于4层tcp调用,效率更高
    hostA  hostB
    f1     f2
           tcp:A:port f1 参数
    

    python的rdc协议框架-zerorpc

    注: 不需要安装zeromq

    import zerorpc
    class Cooler(object):
        """ Various convenience methods to make things cooler. """
        def add_man(self, sentence):
            """ End a sentence with ", man!" to make it sound cooler, and
            return the result. """
            return sentence + ", man!"
        def add_42(self, n):
            """ Add 42 to an integer argument to make it cooler, and return the
            result. """
            return n + 42
        def boat(self, sentence):
            """ Replace a sentence with "I'm on a boat!", and return that,
            because it's cooler. """
            return "I'm on a boat!"
    s = zerorpc.Server(Cooler())
    s.bind("tcp://0.0.0.0:4242")
    s.run()
    

    模拟远程调用

    $ zerorpc -j tcp://localhost:4242 add_42 1
    43
    

    grpc调用

    服务端写了个类: 暴露了个端口,将这个类通过tcp抛出去

    客户端访问服务端的函数

  • 相关阅读:
    定时器
    WPF拖动总结
    将两个不同进程的窗口设置为父子关系
    Docker私有仓库管理
    Dockerfile创建zabbix监控体系
    Dockfile自动创建discuz论坛和可道云
    Docker的自动构建镜像
    Docker简介
    Mapreduce
    分布式文件系统与HDFS
  • 原文地址:https://www.cnblogs.com/iiiiiher/p/10336822.html
Copyright © 2011-2022 走看看