AF_INET域与AF_UNIX域socket通信原理对比(转载)
1. AF_INET域socket通信过程 典型的TCP/IP四层模型的通信过程: 发送方、接收方依赖IP:Port来标识,即将本地的socket绑定到对应的IP端口上,发送数据时,指定对方的IP端口,经过Internet,可以根据此IP端口最终找到接收方;接收数据时,可以从数据包中获取到发送方的IP端口。 发送方通过系统调用s… 阅读更多 »AF_INET域与AF_UNIX域socket通信原理对比(转载)
1. AF_INET域socket通信过程 典型的TCP/IP四层模型的通信过程: 发送方、接收方依赖IP:Port来标识,即将本地的socket绑定到对应的IP端口上,发送数据时,指定对方的IP端口,经过Internet,可以根据此IP端口最终找到接收方;接收数据时,可以从数据包中获取到发送方的IP端口。 发送方通过系统调用s… 阅读更多 »AF_INET域与AF_UNIX域socket通信原理对比(转载)
五种基于go的轻量级数据库的比较 本项目基于github上的开源项目badger-bench对五种基于go的轻量级数据库——badger、lmdb、boltdb、rocksdb,leveldb——进行比较。 项目原址: badger-bench 一、实验环境 本项目的运行环境为Ubuntu 9.3.0-17ubuntu1~2… 阅读更多 »五种基于go的轻量级数据库的比较
1. 幂等性 用户对同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生了副作用。 2. 造成重复消费的原因 因为网络传输等等故障,确认信息没有传送到消息队列,导致消息队列不知道自己已经消费过该消息了,再次将该消息分发给其他的消费者。 例子1 在支付场景中,用户购买商品后支付,支付扣款成功,但是返回结果的时候… 阅读更多 »幂等性及数据防重复(转载)
1. 基础命令 watch可以帮你监测一个命令的运行结果,来监测你想要的一切命令的结果变化 常见命令参数 Usage: watch [-dhntv] [–differences[=cumulative]] [–help] [–interval=<n>] [–no-title] [–version] <… 阅读更多 »Linux watch命令详解(转载)
1. 缓存数据不一致 数据库的瓶颈是大家有目共睹的,高并发的环境下,很容易 I/O 锁死。当务之急,就是把常用的数据,给捞到速度更快的存储里去。 这个更快的存储,就有可能是分布式的,比如 Redis,也有可能是单机的,比如 Caffeine。 但一旦加入缓存,就不得不面对一个蛋疼的问题:数据的一致性。 数据不一致的问题,人世间多… 阅读更多 »缓存数据一致性问题(转载)
1. 系统吞度量要素 1.1. 基本概念 一个系统的吞度量(承压能力)与request对CPU的消耗、外部接口、IO等等紧密关联。 单个reqeust 对CPU消耗越高,外部系统接口、IO影响速度越慢,系统吞吐能力越低,反之越高。 系统吞吐量几个重要参数:QPS(TPS)、并发数、响应时间 QPS(TPS):每秒钟request… 阅读更多 »系统吞吐量(TPS)、用户并发量、性能测试概念和公式(转载)
1. Memcached 1.1. Memcached的优点 Memcached可以利用多核优势,单实例吞吐量极高,可以达到几十万QPS(取决于key. value的字节大小以及服务器硬件性能,日常环境中QPS高峰大约在4-6w左右)。适用于最大程度扛量。 支持直接配置为session handle。 1.2. Memcache… 阅读更多 »Redis、Memcache和MongoDB的区别(转载)