今天压了一下日志接口,发现只有大概400qps,其中一定有环节出现性能瓶颈,一个字 查~
7层网络负载优化
发表于
最初单位的网络结构是这样的
BASE理论
发表于
BASE是Basically Availability、Soft state、Eventually consistent三个短语的缩写,是对CAP中AP的一个扩展,通常用于描述 NoSQL 数据库的特性。
基本可用性
: 分布式系统在出现故障时,允许损失部分可用功能,保证核心功能可用软状态(Soft-state)
: 允许系统中存在中间状态,这个状态不影响系统可用性。最终一致性(Eventually Consistency)
:经过一段时间之后,所有节点数据将会达到一致。
BASE中用软状态和最终一致性保证了延迟后的一致性,BASE和ACID是相反的,它完全不同于ACID的强一致性模型,而是通过牺牲强一致性来获得可用性,允许数据在一段时间内是不一致的,但最终达到一致状态。
CAP理论
发表于
1998年,加州大学的计算机科学家 Eric Brewer 提出,分布式系统有三个指标。
- Consistency(一致性)
- Availability(可用性)
- Partition tolerance(分区容错)
Eric Brewer 说,这三个指标不可能同时做到,这个结论就叫做CAP理论
异地多活设计
发表于
logtailer分析
发表于
logtailer是部门用于收集日志收集的软件,使用python开发。
logtailer的作用是收集apache、nginx等服务日志,产出metric信息,如qps、单位时间内大于500MS的请求、单位时间内大于50MS的请求等指标信息。
通过指标信息我们可以快速了解服务状况,另外可通过指标信息进行服务治理,如服务扩缩容。
堆排序时间复杂度分析
发表于
堆排序包括两个阶段,初始化建堆和重建堆。所以堆排序的时间复杂度由这两方面组成,下面分别进行分析。先post一个实现代码,便于分析。
排序之多路归并
发表于
假设有k个有序序列,我们希望将他们归并到一个单独的有序序列中。归并的任务可以通过循环输出k个序列中键值最小的记录来完成。
最简单的方法是对k个有序序列k-1次进行比较得出最小值,然后循环这个过程。这里能不能优化查找最小值的方式?人民是智慧的,这里可以采用胜者树
和败者树
来降低查找最小元素所需的比较次数。