小乙侃科技|高性能开发十大必须掌握的核心技术( 三 )


而共享内存这种进程间通信方案的核心在于:如果让同一个物理内存页面映射到两个进程地址空间中 , 双方不是就可以直接读写 , 而无需拷贝了吗?
小乙侃科技|高性能开发十大必须掌握的核心技术
文章图片
当然 , 共享内存只是最终的数据传输载体 , 双方要实现通信还得借助信号、信号量等其他通知机制 。
用上了高性能的共享内存通信机制 , 多个服务进程之间就可以愉快的工作了 , 即便有工作进程出现Crash , 整个服务也不至于瘫痪 。
不久 , 老板增加需求了 , 不再满足于只能提供静态网页浏览了 , 需要能够实现动态交互 。 这一次老板还算良心 , 给你加了一台硬件服务器 。
于是你用Java/PHP/Python等语言搞了一套web开发框架 , 单独起了一个服务 , 用来提供动态网页支持 , 和原来等静态内容服务器配合工作 。
这个时候你发现 , 静态服务和动态服务之间经常需要通信 。
一开始你用基于HTTP的RESTful接口在服务器之间通信 , 后来发现用JSON格式传输数据效率低下 , 你需要更高效的通信方案 。
这个时候你需要:
小乙侃科技|高性能开发十大必须掌握的核心技术
文章图片
RPC&amp&amp序列化技术
什么是RPC技术?
RPC全称RemoteProcedureCall , 远程过程调用 。 我们平时编程中 , 随时都在调用函数 , 这些函数基本上都位于本地 , 也就是当前进程某一个位置的代码块 。 但如果要调用的函数不在本地 , 而在网络上的某个服务器上呢?这就是远程过程调用的来源 。