摘要: 前言 本篇文章讲述客户端与服务端的具体设计细节。有细心的小伙伴发现,客户端和服务端的工作方式不一样:服务端是多线程计算模型,利用工作线程完成数据的读取,而客户端是单线程(利用Reactor线程完成数据的读取)。这么做的原因有二:首先我们认为我们的使用RPC的初衷是由于CPU计算是瓶颈,不得已把计算放 阅读全文
posted @ 2017-09-21 17:17 haolujun 阅读(702) 评论(0) 推荐(0) 编辑
摘要: 为什么需要序列化和反序列化? 假设你是客户端,现在要调用远程的加法计算服务,你与服务端商定好了发送数据的格式:发送8个字节的请求,前4字节是第一个数,后4字节是第二个数,服务端读取数据的时候也按照商定的方式读取。其实,这就是一个序列化和反序列化的过程。序列化:2个数字变成8个字节数据,反序列化:8个 阅读全文
posted @ 2017-09-21 17:16 haolujun 阅读(725) 评论(0) 推荐(1) 编辑
摘要: 前言 这篇文章主要介绍整个框架用到的最核的一个设计模式:反应器模式。这个设计模式可以在《面向对象的软件架构》中详细了解,没有这本书的小伙伴不要急,我通过咱们的SimpleRpc来告诉大家这个设计模式是如何运用的。之所以它叫反应器模式,是因为它是处理事件的一种比较优美的框架。如何优美,我们慢慢道来。 阅读全文
posted @ 2017-09-21 17:16 haolujun 阅读(1062) 评论(0) 推荐(0) 编辑
摘要: 系统边界 什么是系统边界?系统边界就是在系统设计之初,对系统所要实现的功能进行界定,不乱添加,不多添加。这么做的好处就是,系统简单明了,主旨明确,方便开发和用户使用。举个例子,一个自动售货机的本职工作是自动售货,用户投入零钱,选择商品,出货,找零,功能简单明了。但是,工程师非要再给售货机添加一个播放 阅读全文
posted @ 2017-09-21 17:09 haolujun 阅读(1488) 评论(0) 推荐(0) 编辑
摘要: 想自己动手实现一个RPC么?想只用一天就能理解RPC的设计核心么?本文列出了设计一个RPC设计时考虑的四大主要问题,并且自己实现了一个1000余行代码的RPC框架,欢迎交流探讨。 阅读全文
posted @ 2017-09-21 17:07 haolujun 阅读(2267) 评论(6) 推荐(2) 编辑