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抛出去

    客户端访问服务端的函数

  • 相关阅读:
    oracle 进阶之model子句
    SiteMesh的使用--笔记
    JZ49:把字符串转换成整数
    面试题45:把数组排成最小的数
    面试题43:1~n整数中1出现的次数
    面试题42:连续子数组的最大和
    面试题41:数据中的中位数
    面试题40:最小的k个数
    面试题39:数组中出现次数超过一半的数字
    面试题38:字符串的排列
  • 原文地址:https://www.cnblogs.com/iiiiiher/p/10336822.html
Copyright © 2011-2022 走看看