聊聊我对 设计模式 的想法吧

先说一下我的观点,我保持中立哈哈哈哈哈哈。

不是啥两边倒哈,我觉得应该具体问题具体分析,脱离了实际的辩论都是虾扯蛋。

我说个故事吧,憋在我心里好久了。

在我做第一个后端项目的时候,是老师给我们的框架,我又自己找学长拿了他的项目,两者框架差不多,看样子是没怎么改了。

什么框架呢,很常见。说一下前置服务器,一个好好的前置服务器,拆分为:

Inaddress模块、

Sock模块

Accept模块

Epoll_base模块

Epoll模块

我当时就给整懵了,花了两天时间才捋清楚这些绕来绕去的,毕竟第一次嘛。

但是呢,捋清楚就完事儿了吗?当我们开发到后期的时候,进行测试,我们几个做服务端的组长是有群的,对,组长都是负责服务端,他们也都是沿用老师给的框架,没有改过。

测试结果:

1分钟,3K个连接;

6分钟,9K个连接;

30分钟,1W个连接。

这是刚开始比较慢的。

经过我们几天的调优,同时连接1W个客户端进来也要花小十分钟。可惜我是个极简主义者,那时候留下了不少记录博客,全让我清理了,不然这会儿就能贴出来做个证据了。

为了加快速度,什么办法我们都试过了,后来,我实在是忍不了了,那么多个模块对象,我在网上看到一份纯C的epoll前置服务器,直接扒拉下来一试,诶呦,1W连接30s!

我苦思冥想一晚上,越想越觉得是因为没有那么多弯弯绕,于是我干脆仿照那套模式,把我的前置服务器全都堆到一个模块里面去,从配置网络接口到accept,再到epoll管理,统统放到一个 run 函数里面去,构造一个对象之后直接run。

一测试,1W连接2s。平均1W连接6s。

虽然后来的项目中我又对前置服务器进行了切割,不过那是采用了责任链模式对epoll模块进行简化,其实是进一步的优化了性能。


Ending

Tip:由于文章篇幅有限制,下面还有20个关于MySQL的问题,我都复盘整理成一份pdf文档了,后面的内容我就把剩下的问题的目录展示给大家看一下

如果觉得有帮助不妨【转发+点赞+关注】支持我,后续会为大家带来更多的技术类文章以及学习类文章!(阿里对MySQL底层实现以及索引实现问的很多)

吃透后这份pdf,你同样可以跟面试官侃侃而谈MySQL。其实像阿里p7岗位的需求也没那么难(但也不简单),扎实的Java基础+无短板知识面+对某几个开源技术有深度学习+阅读过源码+算法刷题,这一套下来p7岗差不多没什么问题,还是希望大家都能拿到高薪offer吧。

需求也没那么难(但也不简单),扎实的Java基础+无短板知识面+对某几个开源技术有深度学习+阅读过源码+算法刷题,这一套下来p7岗差不多没什么问题,还是希望大家都能拿到高薪offer吧。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值