HBase (一)系统架构

本文基本是对 MapR 的官网文章An In-Depth Look at the HBase Architecture的翻译 HBase 存储架构HBase 采用 Master/Slave 架构搭建集群,它隶属于 Hadoop 生态系统,由一下类型节点组成:HMaster 节点、HRegionServer 节点、ZooKeeper 集群,而在底层,它将数据存储于 HDFS 中,因而涉及到 HDFS 的 NameNode、DataNode 等,总体结构如下: HMaster 节点 管理 HRegionServer,实现其负载均衡。 管理和分配 HRegion,比如在 HRegion s ...

HBase(一)系统架构

本文基本是对 MapR 的官网文章An In-Depth Look at the HBase Architecture的翻译 HBase 存储架构HBase 采用 Master/Slave 架构搭建集群,它隶属于 Hadoop 生态系统,由一下类型节点组成:HMaster 节点、HRegionServer 节点、ZooKeeper 集群,而在底层,它将数据存储于 HDFS 中,因而涉及到 HDFS 的 NameNode、DataNode 等,总体结构如下: HMaster 节点 管理 HRegionServer,实现其负载均衡。 管理和分配 HRegion,比如在 HRegion s ...

发号器

为什么需要一个发号器在使用数据库时,表的主键经常会使用数据库的自增(auto_increment)来产生。这当然很方便也很高效。但是使用自增也会带来一些麻烦。如果从一个数据库以外的地方,也就是发号器来产生全局唯一 ID,这些问题就可以得到解决,生活就可以更美好。 难以适应分片场景在采用数据库分片时,如果使用数据库自增 ID,不同分片上会产生相同的 ID。单靠 ID 无法唯一标示一个对象,还需要额外加上分片字段才行。如果需要将 ID 用于其他对象的关联时,会麻烦很多。而采用发号器生成的是全局唯一的 ID,单靠 ID 就能实现关联。同时,这也使得采用 ID 作为分片字段成为可能。 主备切换时数据 ...

架构(二)秒杀架构设计

秒杀业务与难点秒杀业务在各业务中已然非常流行,这里我将互联网行业中的秒杀定义为: 在非常短的时间内,将一件商品分成多份进行购买的行为。微信抢红包、一元夺宝、双 11 大促抢购等业务本质上都可视作秒杀业务。而最近大热的抢红包的难度在于这是和钱打交道的秒杀场景,对于事务的要求性更高。 秒杀业务优化的难点或者说痛点在于: 同一件商品在同一时间段内有非常多的用户去进行抢夺,从而造成服务器资源的紧张。非秒杀情况下,比如非大促的时候,用户购买的体验都是非常不错的。但是在秒杀场景下,这时意味着多个用户在同时抢一件商品,也就是并发很高,但集中在同一商品上,造成实质为串行操作。因为在数据库这层本质执行的是对同一 ...

常用架构分析

常用架构分析常用经典架构分析,了解设计思路和注意问题1、架构师技能和微服务架构图谱2、秒杀架构设计3、通用可编排订单状态机引擎设计4、架构设计参考规范

Shell(二)分支和主干jar差异

分支和主干 jar 差异脚本文件见附件,可以快速了解本次分支修改,便于发布前比对当前的开发分支和主干 jar 差异情况。 将 jar-diff.sh 放在根目录文件下面。 #!/bin/bash # 获取当前git分支 CURRENT_BRANCH=`sh -c 'git branch --no-color 2>/dev/null' | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/'` if [ ...

Shell常用命令

find + xargs将当前目录下.bak 的文件,移动到临时/tmp 下面 find . -name "*.bak" | xargs -I '{}' mv {} /tmp 移动到/tmp 临时目录下,不要使用 rm -rf 命令防止误删,其中-I ‘{}’标识占位符 awk分隔字符串,排序 grep charles /home/zhangcheng.log | awk '{split($0,a,",");if (index(a ...