TCP网络状态分析
后台开发中,大多数工作都是建立在网络通信这个过程中,客户端发起连接的请求后,服务端接收客户端的请求数据,服务端处理后给客户端返回响应,然后关闭连接。在这个过程中,网络可能会存在各式各样的问题,导致我们无法正常返回响应,也可能有一些异常的场景导致服务器性能受到影响。因此本文想整理下服务器端在可能会存在的异常场景,以及应对的方式。
后台开发中,大多数工作都是建立在网络通信这个过程中,客户端发起连接的请求后,服务端接收客户端的请求数据,服务端处理后给客户端返回响应,然后关闭连接。在这个过程中,网络可能会存在各式各样的问题,导致我们无法正常返回响应,也可能有一些异常的场景导致服务器性能受到影响。因此本文想整理下服务器端在可能会存在的异常场景,以及应对的方式。
Mysql中存在好几种日志,其中bin log、redo log、undo log被用于支持数据库的可靠性,例如数据备份、崩溃恢复等,今天来认识下这几种日志。
如何保证数据库的数据和缓存中的数据的一致性。也就是说,当我们对数据库中的数据进行修改后,此时缓存的数据已经与数据库中的数据不一致,如何修复这种不一致的状态。显而易见,不一致的场景都是出现在缓存中已经存在数据的情况,接下来我们就以这个来分析实现数据一致性的各种方式。
Redis虽然是以单线程高性能著称,在一些可能会影响到性能的场景下,redis都做了很多优化来避免主线程受到阻塞,例如开辟子线程来处理。不过即使如此,也依旧有很多场景可能会导致主线程受到阻塞进而影响到系统的吞吐能力,尤其是海量业务场景下,更有可能发生。因此本文想梳理下这些场景,帮助自己在后面的工作能够关注这些场景。
好多年没写个人的年终总结了,上一次写还是2016年初的时候写给2015年的,内容主要还是围绕工作在写。为什么今年又有了想写总结的冲动呢。一方面是觉得今年在很多方面有了新的认知和想法,另一方面也是成为人父后身份的升级,在生活上有了更多的体验。也因此这次的总结我想从不同的层面来写,也算是一个多个方面的回顾了。
SOLID 是面向对象编程和设计中的五个基本原则的首字母缩写,旨在提高软件开发的可维护性、灵活性和扩展性。本文将基于Go语言给出这个五个原则实现,加强对这五个原理的理解。
在现代软件开发的世界里,可维护性不仅是代码质量的标志,更是项目成功的关键。想象一下,一段精心编写的代码,它能够在不断变化的需求和技术前景中稳如泰山,这不仅减少了维护成本,也极大提高了软件的生命周期。而当代码运行在生产环境中,面临着不断的挑战和意外情况时,可维护性也显得尤为重要。一段易于理解和修改的代码,可以让开发者在面对紧急问题,如性能瓶颈、安全漏洞或突发故障时,迅速定位并解决问题。这不仅提升了应对紧急情况的效率,也确保了系统的稳定性和用户体验的连续性。
每个人都希望自己能够养成良好的习惯,例如希望自己能养成健身的习惯,养成阅读的习惯。也有很多人希望自己能够改掉已经养成的不良习惯,例如改掉刷短视频的习惯,改掉抽烟的习惯。可是大家好像对一个行为之所谓能成为习惯的原因却一直没有了解,只是简单的认为,我们只要逼着自己重复的去执行一件事情,它就能成为习惯。
git merge应该是大部分人合并分支的方式,可能很多人也只知道这种。但除了merge的方式之外还有rebase的方式,你知道这两种的区别么?是否知道这两者的应用场景呢? 而当分支合并之后,或者你提交的代码被发现存在问题之后,你知道如何回滚么,知道git revert如何使用么? 本文想通过几个简单的例子来帮助理解几个常用的分支合并和回滚指令,即git merge、git rebase和git revert的使用。
《金钱心理学》应该是今年在商业类书籍里很热门的一本书了,其实我一直都不怎么喜欢书籍标题有心理学的字样,总感觉在卖弄一些什么。但出于这本书人们的程度,也见过好几个播客讲过这本书,我还是去看了。不得不说,是本好书。虽然书里很多案例都是在讲投资,但依旧也能对生活有一定启发,尤其是对消费的观念有了更进一步的理解。后来我又听了播客“纵横四海”对这本书的解读,又加深了对里面内容的理解。这篇文章,我想将书里一些我认为对我影响很深的整理出来。