热点数据调度 - 使用大顶堆实现优先队列

最近做一个分布式对象云存储项目,中遇到”热点数据调度”的需求,觉得有必要做个记录。 需求 定时将下载次数最多的文件,冗余一份到最热门的10个节点上 把优先调度热点提供下载 这是一个典型的优先队列应用场景。我选择大顶堆(大根堆)作为基础实现。 堆 (heap)特性 二叉堆是一棵完全二叉树 堆中的某个节点的值总是不大于其父节点的值(最大堆,大顶堆) 相应地定义出最小堆,小顶堆 用数组存储二......

如何设计一个秒杀系统

秒杀系统本质上就是一个满足大并发、高性能和高可用的分布式系统… – 摘自 “如何设计一个秒杀系统” by 许令波 极客时间 架构原则 - 4要1不要数据量要尽量少请求的数据量要少: 数据经过服务器处理,压缩和字符编码,需要消耗CPU数据对系统的依赖要少: 减少服务器后台服务和数据库打交道,这些都要耗CPU 请求数要尽量少比如js,css资源文件,http请求要经过三次握手,连接请求,......

Gosig - 区块链共识算法

最近公司做共识机制改造,经过一番研究,决定采用gosig共识算法,过程虽然艰辛但是收获满满,这里记录一下。 感谢算法作者李沛伦先生的帮助。Gosig共识算法论文 https://arxiv.org/abs/1802.01315 Gosig共识算法,它是一种可扩展的基于拜占庭的共识算法,这个算法经过数学逻辑验证,改进了BFT共识协议,可以使同时参与区块生产的节点达上万个。在带宽为 2Mbps-......

golang实现一致性hash环及优化方法

一致性Hash原理一致性哈希算法在1997年由麻省理工学院的Karger等人在解决分布式Cache中提出的,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简单哈希算法带来的问题,使得DHT可以在P2P环境中真正得到应用。 但现在一致性hash算法在分布式系统中也得到了广泛应用,研究过memcached缓存数据库的人都知道,me......
go

PHP7.2与PHP5.6的性能对比

服务器配置单核 Intel(R) Core(TM) i7-8850H CPU @ 2.60GHz内存 1G系统 Centos 7gcc 版本 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) 安装./configure --prefix=/usr/local/php-7.2.0 --enable-opcache ./configure --prefix=/us......
PHP

PHP静态代码检查工具的使用

前言如何保证PHP的代码质量?我们首先想到的是要遵循代码规范,良好的代码风格和良好的代码习惯,虽然说PSR给出了良好的规范标准,但是光靠人工遵守难免会把握不到位。 本篇来介绍一下PHP可用的静态代码质量检查工具,可以提前在你本地编辑器编写代码的时候就对你的”Bad Coding”代码做出提醒和预警,防止代码部署后,在运行时才发现问题,造成事故。 另外,推荐一个工具:grumphp能够在代码提......
PHP

认识OOM Killer - 记一次MySQL挂掉的领悟

国庆假期刚过,还在假期后遗症中。公司的内部测试服务器配的MySQL不给了,给我挂了好几次。 查看一下系统日志: tail -1000 /var/log/messages | grep mysqld 发现Out of memory: Kill process 129382 (mysqld) score 9 or sacrifice child Out of memory: Kill proce......

Zabbix监控TCP11种状态

tcp11种状态: SYN_SENT、SYN_RECV、LISTEN、LAST_ACK、ENSABLISHED、FIN_WAIT1、FIN_WAIT2、TIME_WAIT、CLOSING、CLOST_WAIT、CLOSE 在agent添加配置 vim &x2F;etc&x2F;zabbix&x2F;zabbix-agentd.d&x2F;tcp_status.conf UserParame......

Linux后台进程管理利器:supervisor

0. 简单介绍因为supervisor是c/s架构的,有一个主进程来管理多个子进程,同时提供==supervisorctl==工具来管理子进程。 1. 安装supervisor安装当然可以通过源代码安装。官网地址http://www.supervisord.org/ 也可以使用快捷的安装工具: easy_installyum install python-setuptoolseasy_ins......

Zabbix监控使用总结

Zabbix架构体系 Zabbix Server Zabbix Agent 数据库(独立) 安装参考:https://www.zabbix.com/download?zabbix=3.0&os_distribution=centos&os_version=7&db=mysql 安装源: rpm -Uvh https:&x2F;&x2F;repo.zabbix.c......