Redis 笔记之十一-集群 Cluster
背景 在 Redis Cluster 方案诞生以前,在 Redis 集群遇到单机资源和流量瓶颈时,有两种常见分布式解决方案: 客户端方案:需要自己处理分区逻辑、路由、故障转移(有时候 Routing、LB 和 Failover是同一个问题,都需要通过 routing 技术来切换流量的 endpoint)。 代理方案:减轻了客户端的职责和压力,架构上的负担过重。 Redis Cluster 的出现,极大地降低了架构师的负担,解放了生产力。 数据分布 数据分布理论 |分区方式|特点|代表产品|取舍逻辑| |:–:|:–:|:–:| |哈希分区| 离散度好 数据分布业务无关 无法顺序访问| KV型 Redis Cluster Cassandra Dynamo Elastic Search|如果需要平衡地存储大量数据而只有随机访问其中的若干条,则可以使用简单的哈希分区| |顺序分区|离散度易倾斜 数据分布业务相关 可顺序访问| 表型 Bigtable HBase Hypertable|如果需要存储大量数据且需要支持区间查找,则也需要使用简单的顺序分区,如果要解决负载均衡的问题可能需要...
保险专业基本功
保险行业市场参与者 直保公司(也就是常见的保险公司),如泰康人寿、平安财险。 保险中介(帮直保公司卖保险的机构),如携程保代、慧择经纪、XX银行分行兼业代理。 再保险公司(直保公司将无法独自分摊的风险进行再分摊),如瑞士再保险,中国再保险。 保险公估(帮助保险公司理赔的专业公司),如泛华公估、民太安公估。 保险资管公司(帮助保险公司进行资产管理的公司),如中国人保资产管理。 类目的区别 财产险:经营跟财产损失有关的业务,主要是车险。 寿险:经营与人身损失有关的业务,主要是重疾险、健康险及寿险等。 财产险公司及寿险公司均可经营一年期及更短保障期限的健康险及意外险业务,这就是为什么百万医疗虽然是人身相关的保险,但是最早研发推出的是众安在线(一家财产险公司),而支付宝的好医保·长期医疗6年期百万医疗只能由人保健康这类人寿险公司推出。 互联网保险的模式 什么是场景保险模式 依靠场景销售保险产品,可以是传统的保险产品定制也可以是全新设计的保险产品。 a) 传统的保险产品定制:以携程为代表,机票搭售航意险,以变现为导向。 b) 全新设计的保险产品:以“准时宝”、“退回运费险”为代表,针...
Redis 笔记之十-哨兵 Sentinel
Redis 有若干套高可用实现方案。2.8 开始提供哨兵功能(不要使用更低版本的哨兵,可能有 bug)。 基本概念 主从复制模式的问题 Redis 天然就带有主从复制的功能,但主从复制有若干缺点: 需要手工干预,缺乏自动 FO 机制-分布式高可用问题。 单机的写能力有限-分布式容量问题。 单机的存储能力有限-分布式容量问题。 一个经典的高可用场景 当一个主从集群的 主节点 失效的时候,经典的恢复步骤如下: 主节点失效。 选出新的从节点,slaveof no one。 先更新应用方的连接。 再让其他从节点换主。 再把恢复好的主节点作为新的从节点复制新的主节点。 3 和 4 的步骤可以互换。这种需要手工介入的运行机制不能被当作高可用的。而 sentinel 的作用是把这些经典步骤从手工实现为自动。 Sentinel 的高可用性 Sentinel 方案是在原生的 Master-Slave 集群之外加上一个 Sentinel 集群。 每个 Sentinel 节点会监控其他 Sentinel 节点和所有 Redis 节点。任何一个不可达的节点,它都会将其做下线标识。 如果标识的是...
复式记账法
借记和贷记 解释一 借贷是符号,对于资产和费用,借方是增加,贷方是减少。 对于负债,权益和收入,借方是减少,贷方是增加。 提高,借贷表示价值流向,借方表示价值去向,贷方表示价值来源。 借方资产,表示价值流向资产,资产增加了。 借方负债,表示价值流向负债,偿还了负债,负债减少了。 贷方权益,表示价值来源于权益,权益增加了。贷方收入,表示价值来源于收入,收入增加了。 因为价值的来源和去向必定是相等的,所以有借必有贷,借贷必相等。 解释二 复式簿记中,“借”的含义是“借进来”,“贷”的含义是“借出去”,而这个“借进来”和“借出去”又是从对方的视角来看的。复式簿记发展的最初是以记录债权、债务为目的使用的,而且也没有那么多会计科目,基本都是使用人名(或者商店名字)来进行记录的。而这里的“借进来”“借出去”并不一定是借,这是用来表示财产的流向的。下面为了解释借方、贷方的含义,会有很多简化处理。用户A向银行存钱,在银行的账本上,在现金这个会计科目下,会记录从用户A处“借进来”200元;在用户A这个会计科目下,记录“借出去”现金200元。这里的“借进来”对应着现金会计科目下的“借方”,“借出去”...
世界上最简单的会计书
世界上最简单的会计书.xmind
常见数学术语中英文对照
集合与简易逻辑 集合(集) set 非负整数集 the set of all non-negative integers 自然数集 the set of all natural numbers 正整数集 the set of all positive integers 整数集 the set of all integers 有理数集 the set of all rational numbers 实数集 the set of all real numbers 元素 element 属于 belong to 不属于 not belong to 有限集 ...
Docker 命令与场景
常用命令 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091docker --helpdocker-compose --help# 后台启动当前应用docker-compose -f docker-compose.yml up -d# 暂停当前应用docker-compose -f docker-compose.yml stop# Stop and remove the deployment(network, containers, and volumes)docker-compose down -v# 关闭容器且删除容器、网络、镜像和卷docker-compose -f docker-compose.yml kill && docker-compose -f docker...
进程和操作系统的诊断工具
ps 12ps -auxps -elf pstree 12pstree -lappstree --help 输出: 123456789101112docker_run.sh,1 /usr/bin/docker_run.sh `-start.sh,35 /usr/local/services/app1/bin/start.sh `-app1,42 -c /usr/local/services/app1/conf/gopass.yaml |-{app1},43 |-{app1},44 |-{app1},45 |-{app1},46 |-{app1},47 |-{app1},48 |-{app1},49 |-{app1},50 `-{app1...
架构整洁之道笔记
最早的《The Clean Architecture》诞生于 2012年,这个问题很早就被讨论清楚了。 思维导图: 注意,所有的接口都是在高层声明的:UseCase Input Port 和 UseCase Output port,所以高层可以实现高层的接口,低层也可以实现高层的接口。 注意,sofa的分层就是在一个横向的模块里声明了业务用例的接口和 core-model 的接口,这样源代码级的依赖都集中在抽象上: Use Case Interactor 和 Presenter 应该是可测试的,而 Data Access Interface、View、ORM 应该是 humble object。所以一个应用的低层(外层)应该是被排除掉不做测试的。 附件下载: xmind 关于源代码中的依赖关系的一些澄清: “使用”并不意味着“定义”,而只是引用 dashed outline 代表虚线框,也代表抽象。
Petroware 的 Unit Testing Guidelines
Keep unit tests small and fast Ideally the entire test suite should be executed before every code check in. Keeping the tests fast reduce the development turnaround time. 让单元测试保持小和快。 最完美的是,整个测试套件应该在每次代码被签入的时候被执行。让测试保持快速减少了开发的周转时间。 点评:小的测试是低成本测试。 Unit tests should be fully automated and non-interactive The test suite is normally executed on a regular basis and must be fully automated to be useful. If the results require manual inspection the tests are not proper unit tests. 单元测试应该是全自动化且无交互...















