《后端成长路线》系列 导航篇

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介:

事情是这样的:

1、在CSDN这么久了,也是有感情的。很感谢这么多粉丝们关注了我,我想,是要回报一下大家的。所以我的博客也是比较用心的,大家可以看出来吧,几乎每周我都会 “排水”,平时也坚持尽量不灌水。上上周我一波就清理了六十几篇水文,感觉整体质量又上了一个台阶。十月份预计保留在我的主页上的有350篇,透个底,我目前的更新速度是一周20篇左右。小短文居多,没什么流量,但是基本一针见血,你们看着省时间,我写的也更省时间。写完我就发我粉丝群去,说真的,不差那点流量,虽然我也很想有朋友跟我说:你这里写的不对,我想你写一篇XXX,都是过去式啦,我们已经组成了技术探讨小组,可以互相往死里问哈哈,有想来可以私信我。

2、今天发现我的一个基础认知又一次出现了偏差,在CPU上。我这些天一直认为,一个进程运行的时候独占一个CPU,然后CPU里面的核拿去给这个进程里面的线程分配。结果今天剖 nginx 源码的时候,我发现它一个进程绑在一个核上,我有点吃惊:会这么细?会这样。很快我就反应过来了,那是单线程的进程,给它那么多核干嘛,它用得完吗它?然后我就意识到问题不对劲了,我好像,这些天一直理解错了!

3、然后,我就意识到,我的博客其实,很多地方都没有讲明白,没有讲透。也很杂乱的。其实不是我不想讲透,我是知无不言,言无不尽呐,可惜我真的就只懂那么些啊,全写博客里了。。。于是我做了个决定,我要把我的博客拿出来,再重头过一遍,尽量的自我批判,打破限制,把能想到的地方全都去摸索透了重发。

4、我又往深了再想,我何不来这么一个系列,把重新捋过的博客按照学习的路线整理成一个系列呢?怎么说我也是CSDN认证讲师嘛。那这个系列我决定这样设计:可以没有专栏,也可以有专栏。主要还是靠这篇导航篇,我会不断的更新链接。而且我插入链接的位置是不定的,唯一可以确定的是对小白来说需要重头往下学。我在新插入的链接的后面会做标记:“新增”,大家遇到哪个语义不通的点、想要看的知识点讲解都可以随意一篇底下评论,或者私信我。直接私信我是最有效的。

5、这个系列不会设为收费专栏,其他系列也不会再设为付费专栏了,我觉得我还没到那个地步哈。

6、非必要的话,本系列不涉及:数据结构、算法、Python、程序人生、问题解决专栏的内容。

7、大家都讲烂的东西我不喜欢,我经验不多,做不到全篇都是经验之谈,但是每篇里面也会尽量掺那么一点两点经验,希望对大家有帮助。毕竟bug嘛,还是要防范于未然的。


操作系统

多CPU && 多核CPU | 多进程 && 多线程 | 并行 && 并发

阻塞 & 非阻塞 | 同步 & 异步

不可不知的操作系统知识

文件I/O 小小经验谈

操作系统·进程

进程绑定CPU

进程间通信

异步通信之 信号

守护进程,一份nginx实现,一份我的实现,看着拿呗

聊聊线程,有点多

线程同步与互斥

while 如何解决虚假唤醒 及 if 为什么就不行?

线程池实现与讲解

操作系统抖动现象、网络抖动与延迟、函数抖动之防抖与节流

零拷贝技术 与 sendfile


TCP/IP

计网基础 ·运输层

三次握手 && 四次挥手

慢启动 && 拥塞避免 | 快速重传 && 快速恢复

wireshark简明教程,新手专用,挑实在的讲,不搞花里胡哨

tcp/ip协议如何处理环回接口与目标地址为本机地址的数据包?


Socket

SOCKET网络编程

服务端向客户端传输文件

不同语言、不同平台可以通信吗?JSON做序列化会粘包吗?附粘包处理

设置非阻塞网络I/O


Epoll

深入了解epoll模型 -- 开卷有益

重新认识一下 epoll 的 ET 模式和 LT 模式吧?+ 源码验证 + 新疑惑


MySQL

MySQL见闻录 - 入门之旅

《深入浅出SQL》问答录

全面分析 MySQL并发控制


redis

带上问题来学redis,看到不吃亏(什么是redis?缓存问题、数据一致性、redis配置文件汉化版)

全面分析redis持久化机制

【redis】跟我一起动手玩玩redis主从复制和哨兵模式

【redis】闲得无聊,来聊聊当下爆火的 redis集群,顺便搭一个玩玩呗

当下热点词再学:redis缓存预热、更新、降级,限流

【redis】redis内存管理、淘汰机制、内存优化

【redis】来吧,展示一下redis 发布-订阅模式


“三高”:高并发、高可用、高可拓展

深入了解epoll模型 -- 开卷有益

(关于PB,已经安排上日程了,下个月就会有PB系列出来了。事务繁忙,这个月已经排满了)

简单说说 RPC 框架,你 悟到了吗?

什么是服务熔断?

消息队列:解耦、异步、削峰,现有MQ对比以及新手入门该如何选择MQ?

聊聊分布式事务

游戏服务器的常用架构

读《Chrome源码剖析》,对其架构设计有感


debug

用过的gdb命令


框架系列

简单说说 RPC 框架,你 悟到了吗?

(还有ORM框架还没写上)


源码学习系列

剖析谈不上,学学思想,顺便看看有没有什么能用的模块直接拿走。

muduo

缩略muduo网络库(1)周边小代码
缩略muduo网络库(2)事件处理器 Chanel
缩略muduo网络库(3)事件分发器poller
缩略muduo网络库(4)事件循环 EventLoop
缩略muduo网络库(5)Thread、EventThread、EventThreadPool
缩略moduo网络库(6)acceptor
缩略muduo网络库(7)Buffer 缓冲区
缩略muduo网络库(8)TcpConnection
缩略muduo网络库(9)TcpServer

从实例看muduo网络库各模块交互过程
IO缓冲区设计 -- from muduo

这么多源码大家看着也麻烦,我直接提点我看到的点吧:
1、reactor + one loop per thread。
2、多使用智能指针。
3、利用好 function+bind,可以有效的松耦合。
4、使用 gettid 来获取线程ID。
5、使用 swap 函数交换任务队列,提高并发效率。
6、利用好 epoll 的 event.data.ptr 这个“留给后来人使用”的预留空间,还有好多地方有这种空间,我们也可以自己给后面的版本留空间。
7、buffer 缓冲区的设计。

点开最后两篇看就好了。

这就不需要我多介绍了吧,都是精华。
然后中间还有几篇还没写,upstream、core、···。
后面也还有几个数据结构还没写。


其他

API接口安全性设计

关于单例模式的线程安全问题讨论以及加锁时机之我的想法

printf的线程安全性以及cout的线程不安全性验证,以及意外收获


秋招

深信服22秋招,本科年薪21W起,简历优化、面试经验都可以私信我哦。
能力足够的还可以挑战 SP offer。

内推码:NTAHdRk

如果是23届,或者24届,决定了走后端路线,也可以私信我,这条路我已经帮你们踩了不少坑,有一点能让你们少走弯路的经验哈哈,可以分享。

持续整理中···

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
QGS
|
XML 前端开发 JavaScript
手搭手Ajax经典基础案例省市联动
手搭手Ajax经典基础案例省市联动
QGS
58 1
|
8月前
|
机器学习/深度学习 前端开发
前端移动web高级详细解析二(2)
02-动画 过渡:实现两个状态间的变化过程 动画:实现多个状态间的变化过程,动画过程可控(重复播放、最终画面、是否暂停) 动画实现步骤
79 0
|
8月前
|
前端开发
前端移动web高级详细解析二(1)
移动 Web 第二天 01-空间转换 空间转换简介 空间:是从坐标轴角度定义的 X 、Y 和 Z 三条坐标轴构成了一个立体空间,Z 轴位置与视线方向相同。 空间转换也叫 3D转换 属性:transform
72 0
|
2月前
|
前端开发 JavaScript 数据处理
前端界的宝藏技术:掌握这些,让你的网页秒变交互神器!
【10月更文挑战第31天】前端开发藏有众多宝藏技术,如JavaScript异步编程和Web Components。异步编程通过Promise、async/await实现复杂的网络请求,提高代码可读性;Web Components则允许创建可重用、封装良好的自定义组件,提升代码复用性和独立性。此外,CSS动画、SVG绘图等技术也极大丰富了网页的视觉和交互体验。不断学习和实践,让网页秒变交互神器。
35 2
|
6月前
|
前端开发
网页设计03,解析网页六大导航设计
网页设计03,解析网页六大导航设计
|
8月前
|
数据安全/隐私保护 UED 开发者
【Uniapp 专栏】Uniapp 项目中路由管理的实战经验分享
【5月更文挑战第12天】在 Uniapp 项目中,路由管理至关重要,涉及清晰的规划、配置和权限控制。合理设计路由结构便于开发维护,设置可读性高的页面路径和参数。根据场景选择参数传递和导航方式,处理嵌套路由,确保数据准确无误。添加权限判断保护受限页面,利用过渡动画提升用户体验。在复杂项目中,采用模块化管理路由,结合状态管理工具优化路由状态。持续测试和优化,以实现高效、流畅的用户导航。这些实战经验有助于提升 Uniapp 应用的质量。
273 6
|
存储 前端开发 关系型数据库
[后端浅了解]web开发合作
[后端浅了解]web开发合作
|
存储 机器学习/深度学习 Kubernetes
前端设计走查平台实践(后端篇)
设计师在进行走查的过程中,肉眼的比对偶尔会忽略一些细微部分,同时也会耗费设计师大量的精力,为了辅助设计同学能够更高效的进行设计走查,本文旨在通过设计走查平台在后端侧的实践总结下对于视觉稿还原程度比对的一些思路。
129 0
|
数据采集 存储 缓存
【浅入浅出】现代前端框架单页面
【浅入浅出】现代前端框架单页面
130 0
【浅入浅出】现代前端框架单页面
|
前端开发
前端知识学习案例5-开发企业网站5-编写导航css样式
前端知识学习案例5-开发企业网站5-编写导航css样式
87 0
前端知识学习案例5-开发企业网站5-编写导航css样式

热门文章

最新文章