BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

闭门会:解决分布式系统下共享资源和数据同步

| 作者 薛梁 关注 1 他的粉丝 发布于 2016年8月25日. 估计阅读时间: 5 分钟 | CNUTCon 了解国内外一线大厂50+智能运维最新实践案例。

如今的各大互联网公司都在推崇使用分布式系统架构,国外的Google和国内的BAT等大型IT公司也都将分布式系统用到了极致。分布式系统最大的特点是廉价高效,由成本低廉的PC服务器组成的集群,在性能方面能够达到或超越大型机的处理性能,在成本上远低于大型机。这也是分布式系统吸引企业客户的关键地方。

但是,在分布式系统中,业务分布式处理一旦有共享资源,就会涉及共享资源的访问问题,不论是采用集中式处理方式,还是锁的方式,都对并发带来较大的影响,如何解决这些问题?同时,在可扩展的分布式系统下,随着系统的逐渐扩容,系统业务的并发增大,对DB读写要求越来越高,但DB本身性能有限,在这种场景下,如何考虑DB性能的扩展?

为此,我们特别策划了架构师闭门会“分布式系统”话题交流活动。

我们邀请了在分布式系统研发、应用和推广的厂商及技术专家们,一起讨论彼此真正关心的问题,了解双方的需求和规划。在本次闭门会议上,大家抛出问题、探讨方法,一同交流心得、分享经验。

在分布式中共享资源时如何保证事物的性能?

在实际业务中,很多事物要对当前的数据进行处理,比如为了整个事物的一致性会压损数据,在这个情况下如何对业务做一个取舍或者提高性能?有些公司的数据只在一个地方放着,数据是分开写的,会写两份提高性能,写的时候是一个离境的处理。在放数据的地方加锁,两边最终一致,不是两边同时提交和修改。关于锁,这里遇到一个问题,那就是在改代码锁的时候,性能下降非常大,即使有多个节点,性能下降很厉害。如何解决这个问题呢?

讨论过程中,有专家给出解决方法,整理如下:

  • 原子操作,尽量小原子化
  • 给资源池加锁,避免分配不均匀
  • 根据具体的业务需求,对分布式系统进行设计
  • 转换成队列的方式处理
  • 业务上避免解锁,锁跟高键位是冲突的,必须要找到一个平衡

分布结点的数据一致性如何保证?

同城同步和异地同步的业务选择上,大家能保证哪个程度的一致性呢?这里以某电商为例,电商的多中心是以数据库为中心来划分的,在A处的用户只有通过IOS直接到内存,所有的数据在这里有一个完整的映射。另外有一种做法就是数据双写,有的是多写,有的是单写。

  • 把用户ID用一个数据中心也可以,上海一个数据中心,北京一个,每一个城市都有IDC,这就是一个再平衡的过程。就这里出现为什么不用分布式数据库的问题了,这样可以节省很多流程,因为数据是有地域属性的。
  • 通过shading的方式,把业务之间的数据隔离规整到一块来管理。

一次性的过程中如何构件多连接的日志并且进行分析?

在某些场景下经常出现分配一条任务要占很多个模块,部署在不同的机器上会出现很多问题,没有日志管理和处理的方式,那么如何选取较好的系统来定位问题?

  • 在多个结算节点上处理之后,异步处理。
  • 标记一个ID,快速定位这个ID出现了哪些问题。
  • 关于日志收集,完全自动化很难,部分自动化可以,把那些最常见的错误把它尽量自动化。
  • 分布式系统里要做到ID一致,就要加上本地时间,加上不同的时间序列。

树型数据库在业界是否有应用,什么样的数据访问特点适合树型数据库?

  • 对于通讯领域,定义了好多标准,用一个树来描述整个配制下发的数据,而使关系型数据转为二维表很麻烦,有没有一个很好的接口高效对接而不用拆表呢?
  • 通过增加层级来产生循环链达到自我控制。
  • 不断的增加层级,用一个K关联。
  • 使用一个树型结构ETCB存储,不过得自己拆开。

一般使用的集群技术是什么?如何解决脑裂问题?

  • 在采集EDN过程中要解决一个集群中达成数据一致实现起来很简单,包括EBCD。目前一些TAV也是这么做的,可以解决一个集群中数据同步,可以保证数据的强一致。如果中间有一个集群跟其他集群隔离,可以保证这个数据是正确的。
  • 一般的应用只要一个业务的多实力,通过通讯的负载均衡达到集群的效果,如果需要有一致性的数据时候再用ZooKeper来做。有的团队为了屏蔽底层数据的通用性,直接用akka的集群建立一个系统维护起来,同步自己集群状态信息。
  • 其他简单的方法就用一个ZooKeper,自发现跟Elasticsearch一样,这种情况等于它内部实现了一个EBC。这和ZooKeper防脑裂一样,需要有一个结点配制,小这个结点不能选取,小数点不可用,不能同时出现两个活着的集群。

微服务架构使用情况,服务之间的接口有哪些方式?

  • TCP
  • STP协议
  • ETC
  • VP1,VP2,VP3,有兼容
『架构师俱乐部』是国际知名技术社区InfoQ发起和主办的,以资深架构师为主的不定期技术交流活动,旨在通过及时的分享和深入的交流,在资深技术人员之间搭建一个平台,让彼此之间的信息无障碍流通,同时增加彼此识朋交友的机会。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT