每到节假日和过年,需要外出通行的人几乎都会遇到一个问题:抢火车票!当全国上亿人都在固定的时间段抢票,服务器动辄就要承受上百万级并发的情况时,你就会明白, 一个支持高并发的服务器架构有多重要!
在后端程序员的面试中,如果你有开发高并发服务器的经验,也往往能得到比别人更多的机会。
提到「高并发」,就不得不提天生为高并发而生的 Go 语言 。今天,我们就带大家从 0 开始,用 Go 语言完成一个企业级服务器的开发。
关于实现一个企业级框架,你无需恐惧难度过高,你只需要有 Golang 的基础知识即可。我们会每次只会添加一些微小的功能,以循序渐进的曲线方式了解服务器框架的领域。
教程出自实验楼课程—— 《Go 并发服务器框架 Zinx 入门》 ,欢迎来实验楼免费学习!
课程地址:
在本章实验中,我们将学习从 0 开始完成一个服务器框架的开发。
知识点
- Zinx 架构图
- 模块化
Zinx 为什么会出现呢?作者是这样说的。
所以,本课程的实验学习完成后,你将学到:Golang 如何实现 TCP 服务器,一个企业级框架是如何诞生的。
关于实现一个企业级框架,你也无需恐惧难度过高,你只需要有 Golang 的基础知识,我们之后的每一节实验,都只会添加一些微小的功能,以循序渐进的曲线方式了解服务器框架的领域。
我们先来模拟一下一个客户端请求服务器响应的过程:
- 要有一个客户端对服务器发起请求。
- 我们的服务器应该去启动对客户端的处理模块并打开工作池来提升并发量。
- 处理客户端的模块开启两个模块,一个负责读客户端请求,一个负责写客户端请求。
- 用于读的功能模块,去任务的消息队列里去请求读数据。用于写的功能模块,通过 API 接口,当然我们的 API 不可能只有一个,所以这里肯定是 APIS。
这个过程就是 Zinx 官方架构图中的一个流程:
Zinx 作为一个轻量级框架,虽然轻便,但是却可以满足以上的过程,所以是具生产力的框架。
我在下面整理了一个 思维导图 ,这个导图中就是我们接下来的实验中要实现的功能。我们将从 0.1 版本开始,一直实现到 1.0 的完整版本。
今天我们的前导课,主要是给大家讲解了 Zinx 框架的一个架构设计与功能模块有什么,给大家留下一个印象,后面的实验中,我们会逐步去实现相应的模块功能。
后面还有 10 个章节的内容,完全免费,你将学到: