41|阶段实操(6):构建一个简单的KV server-异步处理
陈天
该思维导图由 AI 生成,仅供参考
你好,我是陈天。
到目前为止,我们已经一起完成了一个相对完善的 KV server。还记得是怎么一步步构建这个服务的么?
基础篇学完,我们搭好了 KV server 的基础功能(21 讲、22 讲),构造了客户端和服务器间交互的 protobuf,然后设计了 CommandService trait 和 Storage trait,分别处理客户端命令和存储。
在进阶篇掌握了 trait 的实战使用技巧之后,(26 讲)我们进一步构造了 Service 数据结构,接收 CommandRequest,根据其类型调用相应的 CommandService 处理,并做合适的事件通知,最后返回 CommandResponse。
但所有这一切都发生在同步的世界:不管数据是怎么获得的,数据已经在那里,我们需要做的就是把一种数据类型转换成另一种数据类型的运算而已。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文详细介绍了如何构建一个简单的KV server,并重点讲解了异步处理的实现。作者通过实际代码和详细解释,帮助读者深入了解了如何构建一个简单的KV server,并实现了异步处理的技术特点。文章首先回顾了之前构建KV server的过程,然后介绍了在进阶篇中掌握了trait的实战使用技巧,并进一步构造了Service数据结构,处理客户端命令和存储。接着,文章讲解了在涉足网络世界时提供了TLS的支持,并开始处理异步。作者详细介绍了如何构建ProstStream结构,让其实现Stream和Sink这两个trait,并对其进行了具体的实现。最后,文章总结了实现Stream的poll_next()方法的具体步骤,以及在异步处理中需要注意的细节。整体来说,本文通过实际代码和详细解释,帮助读者深入了解了如何构建一个简单的KV server,并实现了异步处理的技术特点。文章内容丰富,对于想要深入了解KV server构建和异步处理的读者来说是一篇很有价值的技术文章。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《陈天 · Rust 编程第一课》,新⼈⾸单¥68
《陈天 · Rust 编程第一课》,新⼈⾸单¥68
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(5)
- 最新
- 精选
- 罗杰前两节感觉理解有些吃力了,今天的实操突然又让我觉得好像也没那么难了。老师实操阶段的代码真是赏心悦目。我要动手好好理解一下。
作者回复: 👍
2021-12-0324 - 罗同学利用异步io 重构后 process ,性能会不会有一定提升呢?
作者回复: 对于这个特定的例子,不会有显著提升,因为之前也已经是异步处理,只是接口并没有兼容 stream/sink。
2021-12-032 - Geek_64affe尝试回答第一个问题:因为当poll返回的是Pending,会直接返回出去,如果使用局部变量,每次进到poll里面都会被重置,导致逻辑错误2022-01-1814
- 小可爱(`へ´*)ノ坚持✊2023-01-04归属地:四川
- 啦啦啦啦啦啦啦为方便在 sink 和 stream 中对 stream 操作?因为是异步环境中使用,使用局部变量时会丢失数据吧2022-02-26
收起评论