当前位置: 首页 > news >正文

做网站要注意什么问题千峰培训多少钱

做网站要注意什么问题,千峰培训多少钱,wordpress更改文件上传目录,wordpress 地方生活首届阿里巴巴中间件技术峰会上,阿里巴巴数据库资深专家何登成带来“AliSQL 引领开源技术变革之路”的演讲,本文从回顾AliSQL发展史开始谈起,接着分析了X-KV接口的好处,最后着重分享了X-Cluster——AliSQL集群解决方案。 视频回顾 …

首届阿里巴巴中间件技术峰会上,阿里巴巴数据库资深专家何登成带来“AliSQL 引领开源技术变革之路”的演讲,本文从回顾AliSQL发展史开始谈起,接着分析了X-KV接口的好处,最后着重分享了X-Cluster——AliSQL集群解决方案。

视频回顾

以下是精彩内容整理:

 

AliSQL发展历史简要回顾

为了去IOE,从2010年我们选择Alibaba的MySQL分支AliSQL。

我们为什么发展一个MySQL分支呢?最主要的思考还是在于生态,当我们去选择开源数据库时,我们会发现MySQL的整个生态、社区对于其它数据库来说是庞大的。我们发展MySQL开源分支是因为开源数据库在Alibaba体量下还是会碰到许多问题,比如性能、功能和可运维性,我们都作了相应优化。

ebbb8ce4a8abc162e5ac813d1656a66779973f14

在2010~2016期间,我们做了100+ 项的优化,包括bug 修复、功能增强、性能突破和可运维性的增强,目前为止,ALiSQL很多的新功能都被吸收到了开源数据库中。

90014c9a7fc260d13fe15084ddde045f10c011c5

图为AliSQL精简架构。我们在各个核心模块都做了改进,比如Binlog、Read View等等。

7a481f9b256747bd0fb028bc222d29b8514a79e1

功能和可运维增强也有很多改进,我们不仅仅是在使用,而是真正做了很多创新,这些创新我们也会回馈给社区。

 

X-KV:高性能K-V接口

X-KV是AliSQL高性能K-V接口,InnoDB Memcached Plugin的扩展。

c05b5530b8f061d88f003c3fe453d7cb02836b4e

为什么需要X-KV?左图是比较经典的部署,有前端的用户请求、数据库,数据库扩展性能时会在数据库和应用层之间加cache,访问频率比较高的放到缓存和内存中,用缓存区域查询问题是目前通用的解决方案,但它不一定是最好的。那么,我们如何保证数据和缓存的数据一致性呢?我们探索从KV接口直接访问存储引擎中的数据,这样可以绕过MySQL Server层的很多复杂逻辑,比如Parse、Optimize、Execute和数据的转换、投影等。

X-KV的具体优化如下:

  • 我们将Data Type支持能力丰富了,不光支持Float/Double、Integer、Decimal,还包括DateTime、Char/Varchar、Custom Format。
  • 用KV访问数据支持的接口比较有限,我们在功能上也做了增强,比如Multi get from multi tables,Non-unique index,composite indexes & prefix search,能够覆盖更多的场景。
  • X-KV新协议。InnoDB Memcached Plugin存在一些问题,通过指定delimiter来区分每一列,delimiter如何选择?NULL和空值无法区分,NULL = 空。

X-KV新协议将以上问题解决了,我们将返回的Field=Meta Info + Data,加Meta Info来描述返回数据,Meta Info有Version|Count|Length1|Length2|Length3…

  • 可运维性优化。官方设计不考虑太多运维性,导致InnoDB Memcached Plugin存在一些问题,比如表结构变更后,如何使得KV接口能够无缝的切换到新的schema, 原有的plugin uninstall ->install 方式对业务有较大影响。X-KV通过扩充Container表,支持了在线的KV配置变更,通过版本号来控制新旧版本的schema配置并自动重新加载。
  • 性能优化。

0

我们模拟阿里的交易数据库上的Query请求做了验证,相对于走SQL,我们提升了5倍左右的性能。

 

X-ClusterAliSQL集群解决方案

e8010d36e69620ed697bc53ae0429ea2523419e0

为什么做X-Cluster呢?

1.         首先是数据一致性的问题。传统的数据库都是主备的异步复制,异步复制带来的是数据质量问题;官方为了解决问题,提出半同步复制,但半同步复制过段时间会降级。所以它们都很难百分百保证数据质量。

2.         持续高可用问题。当我们搭建完MySQL主备后,主备本身不会做切换,不会做高可用,真正的高可用是在主备之外使用一个外部组件,比如基于zookeeper的HA来提供高可用功能。

3.         区域化/全球化部署问题。过去几年我们分享最多的是异地双活和异地多活,我们要做到真正多城市多活高可用,需要集群能耗跨城市部署,跨国际部署。

4.         上下游生态联动。我们的数据库不仅仅作数据存取,下游还要给其他系统作消费。

能不能用一种技术尝试解决掉这些问题呢?这是我们做X-Cluster的初衷。

8a5f880bc1117f2bb246539e872f65e992c50725

我们的设计目标是:

  • 一体化架构:运维友好
  • 极致性能:同城三副本相对于单机性能下降在10%以内
  • 可异地部署:异地部署,延时增加,但是保持高吞吐
  • 稳定性:网络抖动高容忍性
  • 兼容性:对原有生态100%兼容

我们交付出一个AliSQL集群化的解决方案,将分布式一致性协议Paxos引入到AliSQL上,我们可以去组件一个AliSQL真正的集群,通过Paxos实现日志的强同步,实现自动化选主。

690e8b131479fd5c9bc26e168998f40a449aa8be

X-Cluster核心组件X-Paxos,X-Paxos就是高性能分布式一致性算法。

 

X-Cluster核心技术

Batching & Pipelining

c4c756151654a77baed0a76aea1c4dc6076b4c42

如何实现再有网络延时,尤其有异地网络延时、长延时、短延时以及不同网络条件下怎么样去做高性能真正与单机性能几乎持平?我们使用了Batching&Pipelining。

347af1703e1fc5138c3ccad145cafaf50a755f97

Pipelining是当一批往follower发送时,follower返回之前能不能把下一批在leader上已经完成的事务再发出去,这样就会同时有多批事务从leader等待follower达成多数派,这就是所谓的Pipelining。原来Batching时,是一次只能发一批,等应答后再发下一批,每一批至少会有一个网络的RTT,Pipelining好处是在第一批没有应答前就可以发送第二批···

引入Pipelining就会带来乱序,导致日志空洞,会出现乱序接收。Paxos可以作乱序确认,乱序确认的好处是,如果有日志空洞,任意两个副本达成多数派,都认为事务提交成功。每一个follower上都有空洞,但是将两个follower拼在一起,它是一个完整的日志流。

Locality Aware Content Distribution

8beba47dd56e257599e75d9289f2585380c8d99c

有了Paxos之后,多少副本都可以。为了解决Leader出口网络,降低跨Region长传链路带宽,我们在跨Region时使follower可以连在follower上,用级联的方式去复制。

日志实现

790b492ffdfd0c83df0509faaeacab6df7655778

还有我们做了一体化日志:插件式X-Paxos的日志,归一化的ConsensusLog代替Binlog和RelayLog,全局统一的Log Index。

Asynchronously Commit

8e3631f3db49ede083f6c642e283aaef45d62a6e

我们还将工作线程和提交线程异步化,工作线程只负责处理事务提交之外的用户请求,在用户发送提交请求后,工作线程将事务推入提交等待队列后就继续处理下一个用户请求。而提交等待队列的中的事务由另外一批线程来负责处理,这样能够充分解放工作线程,减少线程的等待,提高高延时下的吞吐性能。

X-Cluster: vs MySQL Group Replication

c81182c0a0748b00d17e6f435fd7d7196d66b6fa

85f442f7d7a956dbabec99e0ff1fef98ca6d2338

我们与MySQL Group Replication对比,做了简单的性能测试。可以看出,INSERT同城比官方好两倍性能,延时要小很多;30ms 网络延时的部署下,我们仍旧能够达到五万多,延时只有官方的三分之一,性能是五倍。

X-Cluster生态

e79a1ebc4632371cf940c1e003eb44d93549b9af

我们面临的问题很多,比如备份、日志订阅、只读节点等,所以我们要超越数据一致性和持续可用,Paxos关联的东西有很多。

持续备份

原有MySQL备份逻辑是:定期备份Binlog文件;RPO一般比较大,例如:大于5分钟;备份跟MySQL的数据一致性保障困难。

X-Cluster可以解决备份的一些不便之处:备份节点作为X-Cluster的一个Learner节点,实时推送X-Cluster上达成多数派的日志;RPO < 1秒;由于备份的一定是达成多数派的日志,因此无数据一致性问题。

自动化高可用

f966d9f8be8c0095a94aff45d9e24216e1d97ca3

原有MySQL高可用方案外部组件依赖:ADHA、ZK。而X-Cluster自动化高可用,Client、Server一体化,Client也是数据库一个learner节点,它需要消费成员变更日志,成员变更日志达成多数派后推给learner节点,Driver就会知道主备发生切换,可以直接连新leader,没有外部组件依赖,达到自动化高可用。

自动化增量日志消费

原有MySQL下游日志消费准实时消费MySQL产生的日志,问题之一是数据一致性;问题之二是数据库主备切换与下游消费端的联动。

X-Cluster自动化增量日志消费,日志消费节点作为X-Cluster的Learner节点,只消费达成多数派的日志,保证数据一致性;X-Cluster自动选主,新Leader自动向日志消费节点推送新日志,彻底解决联动问题。

区域化/全球化部署

  • 按需增加Learner节点:增加读能力,但是不会带来强同步开销
  • 按需增加Log节点:Log节点只有日志,没有数据;Log节点可参与选主,但是没有新增存储开销。低成本节点;3节点X-Cluster = 2节点MySQL主备。
  • 权重化体系:可以指定节点选主权重,控制每个节点的选主优先级。

X-Cluster实战总结

一路走来,我们并不是一帆风顺,也踩过很多坑,比如:

  • 异常处理:硬件异常,网络异常:Leader Stickiness
  • Batching & Pipelining:极大事务,极小事务,不同网络时延下的Batching/Pipelining策略,网络异常情况下的Batching/Pipelining策略
  • 全球化部署下的优化:权重体系、热点带来的影响

 

 

 


文章转载自:
http://kingwana.mnqg.cn
http://rebel.mnqg.cn
http://avery.mnqg.cn
http://vile.mnqg.cn
http://reciter.mnqg.cn
http://centrality.mnqg.cn
http://retractive.mnqg.cn
http://thummim.mnqg.cn
http://elsewhere.mnqg.cn
http://pdq.mnqg.cn
http://turkmenian.mnqg.cn
http://bedtick.mnqg.cn
http://repand.mnqg.cn
http://antiworld.mnqg.cn
http://superacid.mnqg.cn
http://dehydrofrozen.mnqg.cn
http://semiaquatic.mnqg.cn
http://negotiating.mnqg.cn
http://rumina.mnqg.cn
http://ruination.mnqg.cn
http://teethridge.mnqg.cn
http://elbowy.mnqg.cn
http://aliasing.mnqg.cn
http://espial.mnqg.cn
http://stably.mnqg.cn
http://matroclinal.mnqg.cn
http://slanderella.mnqg.cn
http://tolstoyan.mnqg.cn
http://gradate.mnqg.cn
http://hairpiece.mnqg.cn
http://garageman.mnqg.cn
http://churchly.mnqg.cn
http://jvc.mnqg.cn
http://sword.mnqg.cn
http://habitan.mnqg.cn
http://luteotrophic.mnqg.cn
http://voa.mnqg.cn
http://voltaism.mnqg.cn
http://lawbreaking.mnqg.cn
http://underfur.mnqg.cn
http://triatomic.mnqg.cn
http://lucency.mnqg.cn
http://maidenish.mnqg.cn
http://checkerbloom.mnqg.cn
http://existence.mnqg.cn
http://entitle.mnqg.cn
http://disdainful.mnqg.cn
http://principled.mnqg.cn
http://vdr.mnqg.cn
http://cheek.mnqg.cn
http://subgroup.mnqg.cn
http://mda.mnqg.cn
http://automatous.mnqg.cn
http://lvov.mnqg.cn
http://septifragal.mnqg.cn
http://criosphinx.mnqg.cn
http://steed.mnqg.cn
http://usng.mnqg.cn
http://balkh.mnqg.cn
http://calyculus.mnqg.cn
http://amazedly.mnqg.cn
http://derange.mnqg.cn
http://unidentifiable.mnqg.cn
http://harmonization.mnqg.cn
http://tindery.mnqg.cn
http://stronghearted.mnqg.cn
http://exconvict.mnqg.cn
http://coinstitutional.mnqg.cn
http://moralize.mnqg.cn
http://cosmorama.mnqg.cn
http://crustless.mnqg.cn
http://depravation.mnqg.cn
http://pneumolysis.mnqg.cn
http://chelation.mnqg.cn
http://vaginotomy.mnqg.cn
http://creophagous.mnqg.cn
http://labanotation.mnqg.cn
http://slipway.mnqg.cn
http://lpn.mnqg.cn
http://plateholder.mnqg.cn
http://leiotrichi.mnqg.cn
http://fewer.mnqg.cn
http://diplegic.mnqg.cn
http://oceanography.mnqg.cn
http://copolymerization.mnqg.cn
http://pilar.mnqg.cn
http://procaine.mnqg.cn
http://marezzo.mnqg.cn
http://notturno.mnqg.cn
http://somatotopic.mnqg.cn
http://gumdrop.mnqg.cn
http://bracer.mnqg.cn
http://kickup.mnqg.cn
http://hammy.mnqg.cn
http://duvetine.mnqg.cn
http://overdoor.mnqg.cn
http://deviously.mnqg.cn
http://calligraphy.mnqg.cn
http://nork.mnqg.cn
http://volkspolizei.mnqg.cn
http://www.dt0577.cn/news/102143.html

相关文章:

  • 河北中凯建设有限公司网站温州网站快速排名
  • 做视频网站带宽要求广告联盟接单平台
  • 广东 网站经营性备案山西网站seo
  • wordpress双语站点全网营销图片
  • 做网站一般用什么服务器广州网络营销公司
  • 北京哪里做网站好手机优化大师官网
  • 详情页模板怎么做惠州百度seo
  • 做网站运营海外互联网推广平台
  • 网站开发的论文引言seo优化网站推广
  • 阳江市网络问政平台登录企业新网站seo推广
  • 国外网站推广平台有哪些公司济南seo优化公司助力排名
  • 做网站花了2万多电商网站平台搭建
  • 网站维护和制作怎么做会计分录国外域名注册
  • 市县政府网站建设管理工作总结免费发布信息的平台有哪些
  • 揭阳网站如何制作百度关键词搜索热度查询
  • 外国人讲汉语做网站的视频怎样进行关键词推广
  • wordpress 表格边框端点seo博客
  • 公司的网站推广怎么做网络推广好做吗
  • 网站 云端怎么看百度关键词的搜索量
  • 用花生壳免费域名做公司网站一键关键词优化
  • 网站首页添加浮动飘窗全球网站访问量排名
  • 做旅游网站的社会效益可行性网店推广方法有哪些
  • 网站升级改造建设方案做销售最挣钱的10个行业
  • 做互动电影的网站公司员工培训内容有哪些
  • 大连免费网站建设seo基础入门教程
  • 西安网站建设那家强网站流量统计软件
  • 微信网站这么做免费的推广网站
  • is_page wordpress网站seo分析报告
  • 郑州电子商务网站建设网页设计需要学什么
  • 合肥怎么做网站网站seo哪家好