随笔分类 - Unix/Linux
摘要:对于一个7*24小时无间断的线上服务来说,在服役时间内难免会遇到一些fail,例如db断开连接且短暂连接不上了, 下游的某个节点忽然挂了,运维部署上依赖的某一个东西不存在了等等场景。本文主要来讨论一下这些场景使用怎样的策略会比较好。 最简单的方法,While(true) + sleep(固定时...
阅读全文
摘要:需求: 准入授权配置文件有时候分了好几个维度进行配置,例如 company|product|sys这种格式的配置:1.配置 "sina|weibo|pusher" 表示 sina公司weibo产品pusher系统能够准入,而"sina|weibo|sign"不允许准入2.配置 "sina|*|pu...
阅读全文
摘要:由来:最近一直在想怎么高效率的在IO线程接收到数据时通知逻辑线程(基于线程池)工作的问题,像网络编程的服务器模型的一些模型都需要用到这个实现,下面我这里简单的罗列一个多线程的网络服务器模型半同步/半异步(half-sync/half-async):许多餐厅使用半同步/半异步模式的变体。例如,餐厅常常...
阅读全文
摘要:内容:本文将介绍几种常用的内存池技术的实现,这是我最近学习各大开源的内存池技术遗留下来的笔记,其主要内容包括:STL内存池以及类STL内存池实现Memcached内存池实现固定规格内存池实现Nginx内存池实现一.类STL的内存池实现方式SGI STL的内存池分为一级配置器和二级配置器,一级配置器主...
阅读全文
摘要:问题: 我们在写程序的时候经常发现程序使用的内存往往比我们申请的多,为了优化程序的内存占用,搅尽脑汁想要优化内存占用,可是发现自己的代码也无从优化了,怎么办?现在我们把我们的焦点放到malloc上,毕竟我们向系统申请的内存都是通过它完成了,不了解他,也就不能彻底的优化内存占用。来个小例子//g++...
阅读全文
摘要:问题: 如何增量同步文件,例如一个文本文件有10M,分别存放在A,B两个地方,现在两个文件是完全一样的,但是我马上要在A上对这个文件进行修改,B如何实现自动和A上的文件保持一致,并且网络的传输量最少。 应用场景: 这样的使用场景太多,这里随便列举几个 1.A机器为线上运营的机器,现在需要一台备份的机
阅读全文
摘要:最近开发一些东西,线程数非常之多,当用户输入Ctrl+C的情形下,默认的信号处理会把程序退出,这时有可能会有很多线程的资源没有得到很好的释放,造成了内存泄露等等诸如此类的问题,本文就是围绕着这么一个使用场景讨论如何正确的终止正在运行的子线程。其实本文更确切的说是解决如何从待终止线程外部安全的终止...
阅读全文