安琪拉的博客

其他

【深夜好文】如何做好应用架构分层和模块化?

上次关于如何编写代码的文章里面提到了应用的模块化和分层,这篇文章就来聊聊这个事情。没有顶层设计、模块划分的应用就像一团打结的毛线,代码分支可能会跳来跳来,没有边界。很难理清楚内部的业务逻辑,更糟糕的是随着需求的堆积,日积月累更难理清楚内部的模块划分,所以从一开始就应该定好系统的模块,确定好边界之后才知道每一部分往哪里放。每次实现一个新需求内心都有一个层次树,大概会在哪个模块加什么东西,传统的MVC
2021年12月20日
其他

雷军做程序员时写的博客,有点东西!

我们换个工种来看,石匠应该是熟练工种,属于工人,更和艺术似乎沾不上边。但正是这些石匠,给我们留下多少文物古迹,如乐山大佛、莫高窟等等。应该说这些石匠给我们留下了无穷的文化财产。
2021年11月6日
其他

漫画 | 一台Linux服务器最多能支撑多少个TCP连接?

困惑很多人的并发问题在网络开发中,我发现有很多同学对一个基础问题始终是没有彻底搞明白。那就是一台服务器最大究竟能支持多少个网络连接?我想我有必要单独发一篇文章来好好说一下这个问题。很多同学看到这个问题的第一反应是65535。原因是:“听说端口号最多有65535个,那长连接就最多保持65535个了”。是这样的吗?还有的人说:“应该受TCP连接里四元组的空间大小限制,算起来是200多万亿个!”如果你对这个问题也是理解的不够彻底,那么今天讲个故事讲给你听!一次关于服务器端并发的聊天"TCP连接四元组是源IP地址、源端口、目的IP地址和目的端口。任意一个元素发生了改变,那么就代表的是一条完全不同的连接了。拿我的Nginx举例,它的端口是固定使用80。另外我的IP也是固定的,这样目的IP地址、目的端口都是固定的。剩下源IP地址、源端口是可变的。所以理论上我的Nginx上最多可以建立2的32次方(ip数)×2的16次方(port数)个连接。这是两百多万亿的一个大数字!!""进程每打开一个文件(linux下一切皆文件,包括socket),都会消耗一定的内存资源。如果有不怀好心的人启动一个进程来无限的创建和打开新的文件,会让服务器崩溃。所以linux系统出于安全角度的考虑,在多个位置都限制了可打开的文件描述符的数量,包括系统级、用户级、进程级。这三个限制的含义和修改方式如下:"系统级:当前系统可打开的最大数量,通过fs.file-max参数可修改用户级:指定用户可打开的最大数量,修改/etc/security/limits.conf进程级:单个进程可打开的最大数量,通过fs.nr_open参数可修改"我的接收缓存区大小是可以配置的,通过sysctl命令就可以查看。"$
2021年5月25日
其他

面试官问为什么新生代不用标记清除算法

框架里面的Bean管理相关的对象(ApplicationContext),整个应用运行期间都存在,这种一般经过几次回收最后都放在老年代,但是如果不区分新老代,每次都一起回收,性能消耗很大。
2021年5月11日
其他

这些springboot项目真牛逼【视频+源码】【开源】【白嫖】

他为什么项目撸的这么厉害呢?因为以前撸的多,经验丰富,今天托他把这50个Java项目实战资料免费分享给大家,涵盖入门、进阶各个阶段学习内容,可以说非常全面了。大部分视频还附带源码,学起来还不费劲!
2021年5月9日
其他

不鸽了,小林的「图解网络 3.0 」发布!

因为小林这边消息比较多,也没有助理,全部都是我一个人处理,所以必然会有疏忽的地方,而且公众号后台留言也不方便讨论,首先是字数的限制,其次是不能放图片。
2021年5月9日
被用户删除
其他

Redis 高可用篇:Cluster 集群能支撑的数据有多大?

错误(负载均衡,数据已经迁移到其他实例上):当客户端将一个键值对操作请求发送给某个实例,而这个键所在的槽并非由自己负责的时候,该实例会返回一个
2021年5月8日
其他

一个ThreadLocal和面试官大战30个回合

之前我跟你们一面面试官聊过,我是怎么把支付宝后台负责的系统四十几个核心rpc接口性能大幅度提升的,下面这个就是其中一个接口切流之后的效果,其中就用到了Threadlocal。
2021年5月7日
其他

进了趟派出所

一千多块钱,公司组织北京总部来的老师给我们培训,培训结束我和另一个朋友晚上请老师吃饭,吃完饭发现包不见了,虽然现在想来钱不多,但是那时候是我一个月的生活费和房租,那时候真的非常难过。
2021年5月2日
其他

五一特辑

语法也不复杂,常用的就几个(标题、引用),还可以设置剩下的网上一搜就知道了,下面是我之前找工作写的简历,关键信息隐去了。当然最关键是的还是简历的内容,二个点:
2021年5月1日
其他

InnoDB解决幻读的方案--LBCC&MVCC

此处我们演示的是update的情况,对于删除的情况可以认为是update的特殊情况,会将版本链上最新的数据复制一份,然后将trx_id改成删除操作的trx_id,同时在该条记录的头信息(record
2021年4月29日
其他

今天有二件事很开心

今天主要聊第一件事,文字不多,都是聊天记录,我看了下时间,差不多正好是20天,我见证了他一步步的打算找工作,到拿到口头offer,被毁约,再继续找工作,最后如愿入职的心路历程。
2021年4月29日
其他

几道高频面试题解

双亲委派的过程:某个特定的类加载器在接到加载类的请求时,首先将加载任务委托给父类加载器,依次递归,如果父类加载器可以完成类加载任务,就成功返回;只有父类加载器无法完成此加载任务时,才自己去加载。
2021年4月26日
自由知乎 自由微博
其他

漫画:AOP 面试造火箭事件始末

程序在执行流程中经过的一个个时间点,这个时间点可以是方法调用时,或者是执行方法中异常抛出时,也可以是属性被修改时等时机,在这些时间点上你的切面代码是可以(注意是可以但未必)被注入的
2021年4月23日
其他

深入理解JDK动态代理

动态代理实际上就是帮我们在JVM内存中直接重新生成了代理类class和对应类对象,然后通过执行者InvocationHandler调用被代理对象SimpleProvider。
2021年4月22日
其他

一个HashMap跟面试官扯了半个小时

右位移16位,正好是32bit的一半,自己的高半区和低半区做异或,就是为了混合原始哈希码的高位和低位,以此来加大低位的随机性。而且混合后的低位掺杂了高位的部分特征,这样高位的信息也被变相保留下来。
2020年3月15日