背景随着微服务化的系统越来越多,系统间的交互也呈现几何倍增的趋势,系统间面临一致性问题越来越突出。为了保障服务提供方与服务消费方的一致性,特别是面临最大努力通知型或补偿性的技术需求,服务化前做法是服务提供方需手写重试策略及各种配置->持久化消息->定时去处理消息等。它带来的以下问题是:1.客户端(新 ...
分类:
其他好文 时间:
2020-02-18 12:41:15
阅读次数:
117
随着交易量逐步上升,业务越来越复杂,在设计整个帐务处理中考虑最终一致性的方案。 整个方案大概流程可以分为: 在业务完成后同步记录资金变动流水 如果需要里面处理的账务,则同步发出账务处理的异步消息 通过定时任务每分钟拉去需要记账的流水记录 启动线程池对每笔流水记录进行帐务更新 在数据更新很大的情况下, ...
分类:
其他好文 时间:
2020-02-17 19:59:37
阅读次数:
75
k8s目前主要支持CPU和内存两种资源,为了支持用户需要按需分配的其他硬件类型的资源的调度分配,k8s实现了设备插件框架(device plugin framework)来用于其他硬件类型的资源集成,比如现在机器学习要使用GPU等资源,今天来看下其内部的关键实现
分类:
Web程序 时间:
2020-02-17 16:21:26
阅读次数:
104
秒杀系统经常出现在例如淘宝京东这类购物网站,由于商品的优惠、商品数量有限制,其特点是在特定的时间会有大量用户对服务器发起请求,容易对服务器造成巨大压力。对于一个秒杀系统,需要有特殊的设计才能解决秒杀场景下的巨大流量洪峰以及数据的一致性问题。 秒杀架构设计理念: 防刷设计:设计有效的防刷机制,有效拦截 ...
分类:
其他好文 时间:
2020-02-17 14:25:10
阅读次数:
430
数据分布设计原则 数据均匀:不同存储节点中存储的数据要尽量均衡,用户访问也要做到均衡 数据稳定:当存储节点出现故障需要移除或者扩增时,数据按照分布规则得到的结果应该尽量保持稳定,不要出现大规模的数据迁移 节点异构性:不同存储节点的硬件配置可能差别较大 隔离故障域:保证数据的可用和可靠性 性能稳定性: ...
分类:
其他好文 时间:
2020-02-17 11:58:45
阅读次数:
77
CAP的定义 C: Consistency,一致性,指的是所有节点在同一时刻的数据是相同的 A: Available,可用性,指的是系统提供的服务一直处于可用状态 P:Partition tolerance,分区容错性,指分布式系统在遇到网络分区的情况下,仍然能响应用户的请求 CAP理论指的是在分布 ...
分类:
其他好文 时间:
2020-02-17 01:00:13
阅读次数:
72
组合模式 定义:也称为 整体-部分(Part-Whole)模式,它的宗旨是通过将单个对象(叶子节点)和组合对象(树枝节点)用相同的接口进行表示,使得客户对单个对象和组合对象的 使用具有一致性。组合模式 一般用来描述 整体 与 部分 的关系,它将对象组织到树形结构中,最顶层的节点称为根节点,根节点下面 ...
分类:
其他好文 时间:
2020-02-16 21:03:27
阅读次数:
102
一、快速了解Raft算法Raft适用于一个管理日志一致性的协议,相比于Paxos协议Raft更易于理解和去实现它。为了提高理解性,Raft将一致性算法分为了几个部分,包括领导选取(leaderselection)、日志复制(logreplication)、安全(safety),并且使用了更强的一致性来减少了必须需要考虑的状态。相比Paxos,Raft算法理解起来更加直观。Raft算法将Server
分类:
编程语言 时间:
2020-02-16 01:41:48
阅读次数:
93
1、一致性的非锁定读 一致性的非锁定读(consistent nonlocking read)是指InnoDB存储引擎通过行多版本控制(multi versionning)的方式来读取当前执行时间数据库中行的数据。如果读取的行正在执行DELETE或UPDATE操作,这时读取操作不会因此去等待行上锁的 ...
分类:
数据库 时间:
2020-02-15 18:18:47
阅读次数:
84
一、前言 在解决分布式系统中负载均衡的问题时候可以使用Hash算法让固定的一部分请求落到同一台服务器上,这样每台服务器固定处理一部分请求(并维护这些请求的信息),起到负载均衡的作用。 但是普通的余数hash(hash(比如用户id)%服务器机器数)算法伸缩性很差,当新增或者下线服务器机器时候,用户i ...
分类:
其他好文 时间:
2020-02-15 15:21:09
阅读次数:
62