- 暂时没用过,了解后再更新
- 这题貌似是接着dubbo问的
- 服务注册中心(比如spring cloud的eureka) 服务提供者 服务消费者
- 服务消费的负载均衡
- 语义是指: 函数/接口可以使用相同的参数重复执行, 不应该影响系统状态, 也不会对系统造成改变 .
- http的幂等性
- 分布式接口的幂等性
- 强制一致性
- 最终一致性
- 参考:http://www.codeceo.com/distributed-transaction.html
- 微服务构架下,分布式事务一般采用最终一致性保证:https://blog.csdn.net/javahongxi/article/details/54177741
- 对于涉及支付的系统,人工对账是终极防线
- spring cloud的:https://blog.csdn.net/rickiyeat/article/details/64918756
- 随机
- 轮询
- BestAvailable
- weighted
- 配置服务
- 分布式锁
- 看了网上说的比较乱 总结一下,数据拆分可以从两个维度来分类,第一类:分库分表;第二类: 水平拆分、垂直拆分。所以对应到实际应用场景,应该有四种:①垂直拆库 ②垂直拆表 ③水平拆库 ④水平拆表 http://www.infoq.com/cn/articles/summary-and-key-steps-of-vip-orders-depots-table#
- 垂直拆库 是根据数据库里面的数据表的相关性进行拆分,比如:一个数据库里面既存在用户数据,又存在订单数据,那么垂直拆分可以把用户数据放到用户库、把订单数据放到订单库
- 垂直拆表 是对数据表进行垂直拆分的一种方式,常见的是把一个多字段的大表按常用字段和非常用字段进行拆分,每个表里面的数据记录数一般情况下是相同的,只是字段不一样,使用主键关联
- 水平拆分是把单个大表(数据量大>1000W行)按某个规则把数据分散到多个表的拆分方式
- 拆分出来的表,可以分别放至到不同数据库中,即同时进行水平拆库操作
- 一定要结合一个实际的MQ产品来说,比如Kafka
- 一般有三种实现方案
- redis:https://yq.aliyun.com/articles/307547
- zookeeper:http://www.54tianzhisheng.cn/2018/04/24/Distributed_lock
- mysql