数据库集群

大型网站架构常用解决方案

廉价感情. 提交于 2019-11-27 03:17:41
每个大型网站都是由小变大的,在变大的过程中,几乎都需要经历单机架构、集群架构到分布式架构的演变。而伴随着业务系统架构一同演变的,还有各种外围系统和存储系统,比如关系型数据库的分库分表改造、从本地缓存到分布式缓存的过渡等。 在业务架构逐渐复杂的同时,保证系统的高性能、高可用、易扩展、可伸缩,使框架能有效地满足业务需要,是一个长远而艰巨的任务。本文介绍了五种相关的技术:分布式服务化架构、大流量的限流和削峰、分布式配置管理服务、热点数据的读写优化和数据库的分库分表。 值得注意的是,技术并不是越复杂越好,技术是为了更好地服务业务,只要能达到业务的需求,就是好的技术。简单说就是,即使你有实现复杂技术的能力,没有用户量和利润为基础,也难以落地实施。所以虽然下文中提到了一些框架,但是并不是每一种框架都需要你去亲自实践。很多时候,只是给你提供一个新的思路,一种新的方法,而至于是不是值得被实践,还需要得到业务和用户的考验。 文章目录 分布式服务化架构 集群和分布式 服务化架构,微服务和RPC 服务化架构的组成 服务的横向拆分 服务治理方案 总结 大流量的限流和削峰 分布式系统为什么要进行流量管制 限流方案 削峰方案 基于时间分片的削峰方案 基于异步调用的削峰方案 分布式配置管理服务 热点数据的读写优化 缓存技术 热卖商品的高并发读 基于Redis集群的多写多读方案

四、瞬时响应:网站的高性能架构

99封情书 提交于 2019-11-26 21:00:03
4 .1 网站性能测试 4.2 Web前端性能优化 4.3 应用服务器性能优化 4.4 存储性能优化 4.1 网站性能测试   性能测试是性能优化的前提和基础,也是性能优化结果的检查和度量标准。不同视角下的网站性能有不同的标准,也有不同的优化手段。 4.1.1 不同视角下的网站性能   1.用户视角   从用户视角,网站性能就是用户在浏览器上直观感受到的网站响应速度快还是慢。   用户感受到的时间,包括用户计算机和网站服务器通信的时间、网站服务器处理的时间、用户计算机浏览器构造请求解析响应数据的时间。   不同计算机的性能差异,不同浏览器解析HTML速度的差异,不同网络运营商提供的互联网贷款服务的差异,这些差异最终导致用户感受到的响应延迟可能会远远大于网站服务器处理请求需要的时间。   实践中,使用一些前端架构优化手段,通过优化页面 HTML 、利用浏览器端的并发和异步特性、调整浏览器缓存策略、使用CDN服务、反向代理等手段,使浏览器尽快地显示用户感兴趣的内容、尽可能近地获取页面内容,即使不优化应用程序和架构也可以很大程度地改善用户视角下地网站性能。   2.开发人员视角的网站性能   开发人员关注的主要是应用程序本身及其相关子系统的性能,包括响应延迟、系统吞吐量、并发处理能力、系统稳定性等技术指标。主要的优化手段有使用缓存加速数据读取,使用集群提高吞吐能力

部署MySQL高可用集群

妖精的绣舞 提交于 2019-11-26 12:16:36
  一.简介     本文将介绍如何使用mysql-mmm搭建数据库的高可用架构.   二.环境 服务器 主机名 Ip Severed Mysql版本 系统 Master1 master1 192.168.4.10 10 5.6.15 Centos6.9 Master2 master2 192.168.4.11 11 5.6.15 Slave1 slave1 192.168.4.12 12 5.6.15 Slave2 slave2 192.168.4.13 13 5.6.15 Monitor monitor 192.168.4.100 无 无 Client client 192.168.4.120 无 5.6.15       虚拟IP        虚拟ip 功能 描述 192.168.4.200 Write 主用master写入虚拟Ip 192.168.4.201 read 读服务器虚拟Ip 192.168.4.202 Read 读服务器虚拟Ip 案例图谱   三.mmm架构 服务器角色 类型 服务进程 主要用途 管理节点 mmm-monitor 负责所有的监控工作的监控守护进程,决定故障节点的移除或恢复。 数据库节点 mmm-agent 运行所在MySQL服务器殇的代理守护进程,提供简单远程服务集、提供给监控节点(可用来更改只读模式、复制的主服务器等 )     

MMM搭建高可用mysql集群

情到浓时终转凉″ 提交于 2019-11-26 12:15:04
简介 MMM(Master-Master replication manager for MySQL)是一套支持双主故障切换和双主日常管理的脚本程序。MMM使用Perl语言开发,主要用来监控和管理MySQL Master-Master(双主)复制,虽然叫做双主复制,但是业务上同一时刻只允许对一个主进行写入,另一台备选主上提供部分读服务,以加速在主主切换时刻备选主的预热,可以说MMM这套脚本程序一方面实现了故障切换的功能,另一方面其内部附加的工具脚本也可以实现多个slave的read负载均衡。 MMM提供了自动和手动两种方式移除一组服务器中复制延迟较高的服务器的虚拟ip,同时它还可以备份数据,实现两节点之间的数据同步等。由于MMM无法完全的保证数据一致性,所以MMM适用于对数据的一致性要求不是很高,但是又想最大程度的保证业务可用性的场景。对于那些对数据的一致性要求很高的业务,非常不建议采用MMM这种高可用架构。 MMM项目来自 Google: http://code.google.com/p/mysql-master-master 官方网站为: http://mysql-mmm.org 系统环境 主机名 操作系统 IP地址 VIP地址 角色 mysql-mmm服务器 CentOS 7.0 x86_64 192.168.96.169 master01服务器 CentOS 7.0 x86

Linux高级篇--MySQL高可用集群

老子叫甜甜 提交于 2019-11-26 12:12:25
MySQL集群 MySQL高可用 MMM: Multi-Master Replication Manager for MySQL,Mysql主主复制管理器是一套灵活的脚本程序,基于perl实现,用来对mysql replication进行监控和故障迁移,并能管理mysql Master-Master复制的配置(同一时间只有一个节点是可写的)   官网: http://www.mysql-mmm.org    https://code.google.com/archive/p/mysql-master-master/downloads MHA: Master High Availability,对主节点进行监控,可实现自动故障转移至其它从节点;通过提升某一从节点为新的主节点,基于主从复制实现,还需要客户端配合实现,目前MHA主要支持一主多从的架构,要搭建MHA,要求一个复制集群中必须最少有三台数据库服务器,一主二从,即一台充当master,一台充当备用master,另外一台充当从库,出于机器成本的考虑,淘宝进行了改造,目前淘宝TMHA已经支持一主一从   官网: https://code.google.com/archive/p/mysql-master-ha/ Galera Cluster:wsrep(MySQL extended with the Write Set

MySQL-MMM高可用集群搭建(可用)

心已入冬 提交于 2019-11-26 12:11:08
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。 http://lizhenliang.blog.51cto.com/7876557/1354576 一、环境简述 1、工作逻辑图 2、MySQL-MMM 优缺点 优点:高可用性,扩展性好,出现故障自动切换,对于主主同步,在同一时间只提供一台数据库写操作,保证的数据的一致性。 缺点:Monitor节点是单点,可以结合Keepalived实现高可用。 3、MySQL-MMM工作原理 MMM(Master-Master replication managerfor Mysql , Mysql 主主复制管理器 ) 是一套灵活的脚本程序,基于 perl 实现,用来对 mysql replication 进行监控和故障迁移,并能管理 mysql Master-Master 复制的配置 ( 同一时间只有一个节点是可写的 ) 。 mmm_mond : 监控进程,负责所有的监控工作,决定和处理所有节点角色活动。此脚本需要在监管机上运行。 mmm_agentd : 运行在每个mysql服务器上的代理进程,完成监控的探针工作和执行简单的远端服务设置。此脚本需要在被监管机上运行。 mmm_control : 一个简单的脚本,提供管理mmm_mond进程的命令。 mysql-mmm

剖析LNMP架构

独自空忆成欢 提交于 2019-11-26 01:48:12
一、什么是LNMP? LNMP指的是一个基于Centos/Debian编写的NGINX、PHP、MySQL、PHPmyadmin、eaccelerator集成的一键安装包。可以在VPS、独立的(云)主机上轻松地安装生产环境。 1、软件服务解释: Linux:一套免费试用和自由传播的类Unix操作系统,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。代表linux版本有: NGINX:一个高性能的HTTP和反向代理服务器,也是一个IMAP/pop3/SMTP代理服务器。 PHP:一种在服务端执行的嵌入HTML文档的脚本语言。 MySQL:一个关系型数据库管理系统(RDBMS)。 PHPmyadmin:一个以PHP为基础和web-base方式架构在网站主机上的MySQL的数据库管理工具,能让管理者可用web接口管理MySQL数据库。 eaccelerator:一个自由开源的PHP加速器,优化和动态内容缓存,提高PHP脚本的缓存性能,使PHP脚本在编译的状态下,对服务器的开销几乎完全消除。能使PHP程序代码执效提高1-10倍。 2、LNMP工作原理 lnmp简化版原理: 第一步、用户在浏览器输入域名或者IP访问网站 第二步、用户在访问网站的时候,向web服务器发出http request请求,服务器响应并处理web请求,返回静态网页资源,如CSS

京东数据库运维自动化体系建设之路

删除回忆录丶 提交于 2019-11-25 22:02:10
运维自动化来源于工作中的痛点,京东数据库团队面对的是商城成千上万的研发工程师,这种压力推动我们不断变革,然而变革不是一蹴而就,也经历过从手工到脚本化、自动化、平台化、智能化的艰难转变,所以说是需求在驱动运维体系的建设,而运维自动化的真谛在于解放运维人员,促进人率提升,减少人为故障,要学会培养自己“懒”这个好习惯。京东的自动化运维体系建设始于2012年,下面从两个方面进行介绍。 1. 京东数据库智能运维平台 京东业务每年都在以爆发的形式在增长,数据库服务器的数量众多,产品线也多达上千条,要支持如此庞大的业务体系,需要一套完善的运维自动化管理平台。目前京东MySQL数据库管理平台简称DBS,主要涵盖以下内容:完善的资产管理系统、数据库流程管理系统、数据库监控系统、数据库故障管理系统、数据库报表系统、弹性数据库系统以及数据库辅助运维工具,涉及DBA运维的方方面面,实现了DBA对MySQL的自动化、自助化、可视化、智能化、服务化管理,避免DBA因手工操作失误带来的生产事故,保障京东数据库的安全、稳定、高效运行。这里着重介绍以下部分核心功能组件。 1.1. 元数据管理 作为自动化运维的基石,它的准确性直接关系到整个数据库管理平台的可靠性。京东数据库管理平台从数据库业务方、DBA的运维习惯等方面出发,涵盖机房、主机、业务、集群、实例、库、表等多个维度。  机房和主机维度

没有宫廷内斗,数据库界的延禧攻略

那年仲夏 提交于 2019-11-25 21:07:31
各位老铁们,你们有没有想老张,最近老张的才华被工作的繁忙所限制了,所以一直没时间更博,今儿个时隔数日我们终于再次见面啦(很开心)!最近有部特别火的宫廷戏,不知道大家有没有看,剧名叫做《延禧攻略》,讲述得是一个宫女,一路过关斩将,最后成为皇上最宠爱的令贵妃的故事。加上我本人巨爱这类题材,所以痴迷得不得了。(好像暴露了自己没有更博的真正原因哈哈)。宫廷类的剧,都是后宫嫔妃之间的尔虞吾诈,勾心斗角,有你没我,有我没你的残酷事实。胜者为王,败者为寇这种思想好像从古代就一直延续到今日。非要分出个胜负,分出个谁好,谁坏才罢休。 在数据库领域也会有此类问题,老张我混迹开源数据库圈多年。MySQL数据库占领着开源数据库的头把交椅,MongoDB占领着NoSQL数据库的第一位。我们来看下数据库的整体排名情况; 两者都是第一,所有总会拿来比较。也会经常被人问及到诸如此类的问题MongoDB4.0已经问世了,而且支持事务了,是不是将来可以取代MySQL了。MySQL和MongoDB哪个数据库好用啊。今天老张想通过这篇文章,带着大家全方位解读MySQL与MongoDB的区别。让有困惑的老铁们明白,没有谁替代谁,只有哪个场景更适合谁。 我们从下面四个方向依次阐明两者的区别。只有更了解彼此,让能更好地利用它们的功能性。 第一部分:数据库概述 我们先来了解一下MySQL这个数据库;