jstack jstack是java虚拟机自带的一种堆栈跟踪工具,jstack命令主要用来查看Java线程的调用堆栈的,可以用来分析线程问题(如死锁)。 jstack [-l] pid jstack dump分析当前各个线程的运行情况,如是否存在死锁、是否存在一个线程长时间持有锁不放等等。 定位 在top命令中,已经获取到了占用cpu资源较高的线程pid,将该pid转成16进制的值,在thread … 继续阅读
分类目录归档:分布式
QPS、PV和需要部署机器数量计算公式
QPS、PV和需要部署机器数量计算的整理。 QPS Queries Per Second意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。 TPS TPS是 TransactionsPerSecond的缩写,也就是事务数/秒。它是软件测试结果的测量单位。一个事务是指一个客户机向服务器发送请求然后服务器 做出反应的过程。客户机在发 … 继续阅读
域名A记录和CNAME设置和解析
A记录 A记录 A (Address) 记录是用来指定主机名(或域名)对应的IP地址记录。用户可以将该域名下的网站服务器指向到自己的网页服务器(web server)上。同时也可以设置域名的子域名。 通俗来说A记录就是服务器的IP,域名绑定A记录就是告诉DNS,当输入域名的时候给你引导向设置在DNS的A记录所对应的服务器。 CNAME CNAME 简介 CNAME 即指别名记录,也被称为规范名字 … 继续阅读
分布式锁以及基于Redis的实现
使用场景 在某些场景中,多个进程必须以互斥的方式独占共享资源,这时用分布式锁是最直接有效的。 分布式锁需满足四个条件 分布式锁需满足四个条件 为了确保分布式锁可用,我们至少要确保锁的实现同时满足以下四个条件: 互斥性。在任意时刻,只有一个客户端能持有锁。 不会发生死锁。即使有一个客户端在持有锁的期间崩溃而没有主动解锁,也能保证后续其他客户端能加锁。 解铃还须系铃人。加锁和解锁必须是同一个客户端,客 … 继续阅读
Redis的持久化
最近要对看了生产环境的Redis配置文件,对redis的持久化比较感兴趣,于是整理了相关的内容,用来加深记忆。 Redis有两种持久化的方式:快照(RDB文件)和追加式文件(AOF文件): RDB持久化方式会在一个特定的间隔保存那个时间点的一个数据快照。 AOF持久化方式则会记录每一个服务器收到的写操作。在服务启动时,这些记录的操作会逐条执行从而重建出原来的数据。写操作命令记录的格式跟Redis协 … 继续阅读
一致性哈希算法
一致性哈希算法 一致性哈希算法是一种分布式哈希(DHT)算法,设计目标是为了解决因特网中的热点(Hot spot)问题。一致性哈希算法是一种负载均衡算法。 一致性哈希的原理 环形Hash空间 按照常用的hash算法来将对应的key哈希到一个具有2^32次方个桶的空间中,即0~(2^32)-1的数字空间中。现在我们可以将这些数字头尾相连,想象成一个闭合的环形。 然后把数据通过一定的hash算法处理后 … 继续阅读