10 月,开发者不可错过的开源大数据大会-2021 WeDataSphere 社区大会深圳站 了解详情
写点什么

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

2016 年 8 月 24 日

如今的各大互联网公司都在推崇使用分布式系统架构,国外的 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 发起和主办的,以资深架构师为主的不定期技术交流活动,旨在通过及时的分享和深入的交流,在资深技术人员之间搭建一个平台,让彼此之间的信息无障碍流通,同时增加彼此识朋交友的机会。

2016 年 8 月 24 日 05:084338
用户头像

发布了 104 篇内容, 共 34.4 次阅读, 收获喜欢 112 次。

关注

评论

发布
暂无评论
发现更多内容

四种策略切实保障用户身份安全-行云管家堡垒机!

行云管家

堡垒机 双因子认证

拼多多 +蚂蚁金服 +头条(已拿offer),面试真题分享!

云流

Java 程序员 架构 面试 计算机

智能获客黑科技系统开发搭建

“运愁维卧”,决胜千里 | TcaplusDB 7.24运维日致敬每一位运维人

数据人er

数据库 nosql tencentdb TcaplusDB

博睿数据把脉“体验经济”,以“上帝”视角解决业务运营挑战

博睿数据

双因子认证是什么意思?有什么作用?

行云管家

信息安全 双因子认证

Spring Boot指标监控与健康检查

偏执

面试 spring Boot Starter

Qunar SwiftUI 的实践、评测与思考

Qunar技术沙龙

objective-c swift UI SwiftUI UIKit

二本的他是如何在12天面试突击中,拿到阿里P7的offer

Java架构师迁哥

阿里员工:非科班出身,工作10年,我从1800到如今年薪200万

互联网架构师小马

易聊首次公开智能客服技术与产品体系,在线客服IM永久免费改变行业模式

易聊科技

Redis 关键点思维导图

康斯坦丁

详解什么是JMM!

愚者

JMM

Spring Boot基础学习

偏执

面试 后端 spring Boot Starter

用了七个步骤,4面通过拿offer,终“跳进”字节跳动

云流

Java 编程 程序员 架构 面试

fil是怎么挖的?Fil矿机有什么配置要求?

区块链 IPFS fil fil矿机 fil矿机配置

现在双非本科的学历还有机会拿到大厂 offer 吗?

java小李

面试 spring Boot Starter

淘宝商城的系统架构,是如何一步步突破“亿”级并发的?

Java架构师迁哥

spring-boot-starter自动配置的理解

偏执

面试 spring Boot Starter

springboot自动装配源码解析

偏执

面试 后端 spring Boot Starter

2021秋招我这样准备,提前批就已经拿到了9个大厂offer

北游学Java

Java 面试 秋招

什么是JVM?深入解析JVM原理!

愚者

Java JVM

持续演进的云原生应用交付

CODING DevOps

云原生 k8s 研发工具 CODING DevOps 交付工具

快手技术大咖分享“领域数据建设”实践经验

Geek老T

大数据 数据治理

底层即真理!Netty+Redis+ZooKeeper解读高并发系统架构!

Java架构追梦

Java redis zookeeper 架构 架构编程

从零开始学习3D可视化之项目部署

森友小锘

前端 数据 可视化 数字孪生

你的服务器可以安装TcaplusDB吗?来看一下软硬件配置

数据人er

数据库 nosql tencentdb TcaplusDB

单机12万QPS——FunTester复仇记

FunTester

性能测试 接口测试 测试框架 压力测试 测试开发

洗清杂念 辟除妄见 归于自然|靠谱点评

无量靠谱

【入门必读】《TcaplusDB数据库常见问题解决及诊断技巧集锦-数据库使用类-2》

数据人er

数据库 nosql tencentdb TcaplusDB

模块三作业

Geek_35a345

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