观前提示:本文基于Python,给出三种较为简单的微服务处理框架的实现,配合之前《Go的RPC微服务开发初探》帮助读者同学更好的理解微服务的概念
作为本专栏的第二篇文章,强烈建议读者同学在看这篇文章之前先去看这一篇:《Go的RPC微服务开发初探》不熟悉Go语言的同学可以看完这篇文章关于RPC的概念之后再跳到本文。
文章目录
RPC的概念
这里把上一篇文章的核心概念整理如下,具体讨论过程在这篇文章中:《Go的RPC微服务开发初探》。
三个核心概念:
- 传输中的网络协议
- 传输中的序列化和反序列化的方式
- 根据函数名在目标的地方找到对应的函数
服务端的四个核心过程:
- 备货(定义函数)
- 备车(定义服务端)
- 装货(绑定函数)
- 发车(启动服务)
极简RPC的实现
实际上Python和Go一样,也内置了一种RPC的实现,是基于xml的rpc。
Server端
from xmlrpc.server import SimpleXMLRPCServer
class Hello: # 定义函数(备货)
def call(self, req):
print(f"RPC Hello {
req}")
ho = Hello()
server = SimpleXMLRPCServer(("localhost", 8888