Skip to main content

06 系统知识

必读书籍

C10K 问题

  • C10K Problem 本质上是操作系统处理大并发请求的问题,了解操作系统是如何通过多路复用的技术来解决这个问题的
  • C10M Problem

实践项目

telnet 版本的聊天服务器

  • 每个客户端可以通过telnet ip:port的方式连接到服务器上
  • 新连接需要用用户名和密码登录(需要注册)
  • 可以选择一个聊天室加入聊天
  • 管理员有权创建或删除聊天室,普通人员只能加入、退出、查询聊天室
  • 聊天室需要有人数限制,每个人发出来的话,其它所有的人都要能看得到

HTTP 服务器

  • 解释浏览器传来的 HTTP 协议,只需要处理 URL path
  • 把所代理的目录列出来
  • 在浏览器上可以浏览目录里的文件和下级目录
  • 如果点击文件,则把文件打开传给浏览器(浏览器能够自动显示图片、PDF,或 HTML、CSS、JavaScript 以及文本文件)
  • 如果点击子目录,则进入到子目录中,并把子目录中的文件列出来

生产者 / 消费者消息队列服务

  • 采用一个 Ring-buffer 的数据结构
  • 可以有多个 topic 供生产者写入消息及消费者取出消息
  • 需要支持多个生产者并发写
  • 需要支持多个消费者消费消息(只要有一个消费者成功处理消息就可以删除消息)
  • 消息队列要做到不丢数据(把消息持久化)
  • 做到性能很高

方向建议

底层方向:操作系统、文件系统、数据库、网络……

架构方向:分布式系统架构、微服务、DevOps、Cloud Native……

数据方向:大数据、机器学习、人工智能……

前端方向:用户体验、交互......

其它方向:安全开发、运维开发、嵌入式开发……