RPC服务

全局锁GIL的存在导致Python只能利用CPU单核的算力。其单进程架构的不足之处如图所示:

https://static.vnpy.com/upload/temp/3f51a477-36db-41d4-9632-75067ba24be7.png

使用多进程分布式的程序架构可以突破该限制。但每个进程之间的数据,在操作系统内默认是独立隔离的,无法直接访问。RPC服务正好能解决这个痛点:RPC全称Remote-Procedure-Call,中文“远程过程调用”,是最常用的跨进程通讯方式之一。在vnpy中,一个特定进程连接交易接口充当Server的角色,在本地物理机或者局域网内部进行事件的推送,推送给其他独立的Client进程,如图。

https://static.vnpy.com/upload/temp/a67e561d-d94d-43f4-9d40-bb929ed6e0e5.png