【独家干货】线下沙龙嘉宾讨论技术点大集合-李艳鹏篇

原创 2017年07月19日 13:10:59


1

一致性问题产生的背景



JEE架构


SSH架构


Web Service


ESB


微服务


微服务团队管理




2

生活中遇见的一致性问题



假如你想要享受生活的随意,只想买个两居,不想让房贷有太大压力,而你媳妇却想要买个三居,还得带花园的,那么你们就不一致了,不一致导致生活不愉快、不协调,严重情况下还会吵架,可见生活中的不一致问题影响很大。


服务化系统中遇到的不一致的问题

ž

1、转账 ž

2、下订单和扣库存 ž

3、同步超时

ž4、异步回调超时

5、ž掉单 ž

6、系统间状态不一致 ž

7、缓存和数据库不一致

 ž8、本地缓存节点间不一致

 ž9、缓存数据结构不一致



3

酸碱平衡原理


酸碱平衡 – 酸(ACID)


žA: Atomicity,原子性 ž

C: Consistency,一致性

 žI: Isolation,隔离性 

žD: Durability,持久性


酸碱平衡 – 帽子(CAP)


žC:Consistency,一致性, 数据一致更新,所有数据变动都是同步的 ž


A:Availability,可用性, 好的响应性能,完全的可用性指的是在任何故障模型下,服务都会在有限的时间处理响应


 žP:Partition tolerance,分区容错性,可靠性


酸碱平衡 – 碱(BASE)


žBA:Basically Available,基本可用 ž


S:Soft State,软状态,状态可以有一段时间不同步 


žE:Eventually Consistent,最终一致,最终数据是一致的就可以了,而不是时时保持强一致


4

分布式一致性协议


两阶段


三阶段


TCC


5

最终一致性


查询模式


补偿模式


异步确保模式

定期校对模式


定期校对模式



可靠消息模式



缓存一致性模式


1、ž缓存是用来加速的,牺牲了一致性,获得高性能,只适合特殊场景; ž ž


2、保持数据库和缓存的强一致性是个伪命题 ;ž ž


3、如果性能要求不是非常的高,尽量使用分布式缓存,而不要使用本地缓存


 4、种缓存的时候一定种完全,如果缓存数据的一部分有效,一部分无效,宁可放弃种缓存,也不要把部分数据种入缓存;

 

5、通常情况下读的顺序要先缓存,后数据库,写的顺序要先数据库,后缓存。


6

微服务交互模式


同步调用


受理模式


消息模式


同步与异步的抉择


1、ž尽量使用异步来替换同步操作;

 ž 

ž2、能用同步解决的问题,不要引入异步化。


同步两状态接口超时



同步三状态接口超时



异步接口超时


异步内部超时


异步回调超时


消息队列发送超时


消息队列接收超时


超时补偿原则


生活案例:



模式:


ž1、服务1调用服务2,如果服务2响应服务1,并且告诉服务1消息我接收了,那么服务1就的任务就结束了,如果服务2处理失败,服务2应该负责重试或者补偿。在这种情况下,服务2通常先持久消息后再告诉服务1接收成功,随后服务2才开始处理持久的消息,避免服务进程被杀掉丢失消息的情况。 

 

2、服务1调用服务2,如果服务2没有给出明确的接收响应,那么服务1应该持续尝试重试,直到服务2明确表达已经接收消息。这种情况下,容易出现消息重复,因此在服务2中通常要保证滤重或者幂等性。


ž


7

其他问题



迁移开关的设计


ž1、不要用统一配置开关 ž;

 ž

2、不要用节点内独立的开关 ;

ž ž

3、迁移开关必须使用订单开关 ž;

 

4、ž开关要有权限控制 ž;

 

ž5、开关要能开能关。




Java我最强,关心Java人成长的技术社区,加入精品技术群请公众号后台留言“加群”。投稿合作请邮件至:javawozuiqiang@qq.com,注明“Java我最强投稿”。



Java我最强

关心Java人成长的技术社区

快速关注


1

一致性问题产生的背景


2

生活中遇见的一致性问题

ž

2

生活中遇见的一致性问题

ž

李艳鹏:分布式一致性协议

国际开放标准组织Open Group定义了DTS(分布式事务处理模型),模型中包含4个角色:应用程序、事务管理器、资源管理器、通信资源管理器四部分。事务处理器是统管全局的管理者,资源处理器和通信资源处...
  • qq_36510261
  • qq_36510261
  • 2017年12月07日 14:47
  • 45

参加第6期项目管理者联盟俱乐部沙龙聚会

参加第6期项目管理者联盟俱乐部沙龙聚会本次沙龙活动的部分照片screen.width-333)this.width=screen.width-333" border="0" src_cetemp="h...
  • litp
  • litp
  • 2007年08月05日 18:18
  • 1663

TopLanguage论坛创立者-----南大计算机系 刘未鹏 技术分享

从此篇文章结识:点击打开链接  我在南大的七年 此君博客:点击打开链接 csdn连接地址 技术连接:点击打开链接 新地址...
  • gws1229
  • gws1229
  • 2015年02月03日 16:02
  • 588

Android开发干货大全(持续更新)

Android开源项目: Android 开源项目分类汇总 GitHub上排名前100的Android开源库介绍 一个用于app指向性功能高亮的库 个人站点: 代码家 鸿洋 Andro...
  • zuolongsnail
  • zuolongsnail
  • 2016年03月10日 10:45
  • 6704

TopLanguage小组讨论精选[三](2007.11-2007.12)

TopLanguage小组讨论精选[三](2007.11-2007.12) By 刘未鹏(pongba)C++的罗浮宫(http://blog.csdn.net/pongba) TopLanguage...
  • pongba
  • pongba
  • 2007年11月29日 16:03
  • 11031

好消息!!!XMind出视频教程了

她是中国区第一位XMIND导图认证大师/全球博赞导图授权认证导师(TLI)/百万微博话题#思维导图训练营#网课创始人/TEDx演讲嘉宾,还受邀去阿里巴巴、伊利集团、博世汽车这种级别的企业做培训。 哇...
  • wv_123456
  • wv_123456
  • 2018年01月12日 10:23
  • 121

李艳鹏:技术人如何修炼内功

李艳鹏:技术人如何修炼内功 前不久趣直播举办了一场技术人成长交流会。邀请了易宝支付产品中心首席架构师李艳鹏来分享。以下是视频: 以下是文字版: 有请李艳鹏老师!第...
  • huangshulang1234
  • huangshulang1234
  • 2017年11月30日 09:18
  • 315

云时代架构系列经典技术书籍

云时代架构系列经典技术书籍包括: 1. 《分布式服务架构:原理、设计与实战》 2. 《可伸缩服务架构:框架与中间件》 3. 《互联网轻量级框架SSM源码解密》 4....
  • fishmai
  • fishmai
  • 2018年01月17日 08:29
  • 93

Spring Boot干货系列:(五)开发Web应用JSP篇

后端编程嘟 2017-03-14 00:06 前言 上一篇介绍了Spring Boot中使用Thymeleaf模板引擎,今天来介绍一下如何使用SpringBoot官方不推荐的j...
  • gebitan505
  • gebitan505
  • 2017年04月12日 10:33
  • 1537

TopLanguage讨论精选二(2007.10-2007-11)

TopLanguage讨论精选二(2007.10-2007-11) 注:TopLanguage是我建立的一个google讨论组,目的是交流关于编程的任何问题(当然,包括八卦:-)),三个月来加入的同学...
  • pongba
  • pongba
  • 2007年10月29日 15:35
  • 11591
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【独家干货】线下沙龙嘉宾讨论技术点大集合-李艳鹏篇
举报原因:
原因补充:

(最多只允许输入30个字)