高可用

百度架构师是怎样搭建MySQL分布式集群

怎甘沉沦 提交于 2019-12-04 08:09:52
1、准备集群搭建环境 使用6台虚拟机来搭建 MySQL分布式集群 ,相应的实验环境与对应的MySQL节点之间的对应关系如下图所示: 管理节点(MGM):这类节点的作用是管理MySQLCluster内的其他节点,如提供配置数据,并停止节点,运行备份等。由于这类节点负责管理其他节点的配置,应该在启动其他节点之前启动这类节点。MGM节点是用命令“ndb_mgmd”启动的; 数据节点(NDB):这类节点用于保存Cluster的数据,数据节点的数目与副本的数目相关,是片段的倍数。例如,对于两个副本,每个副本有两个片段,那么就有4个数据节点,没有必要设定过多的副本,在NDB中数据会尽量的保存在内存中。数据节点使用命令“ndb”启动的; SQL节点:这是用来访问Cluster数据的节点,对于MySQL Cluster,客户端节点是使用NDB Cluster存储引擎的传统MySQL服务器。通常,SQL节点使用命令“mysqld-ndbcluster”启动的; 2、准备安装包 在官网上下载mysql的安装包: mysql-cluster-gpl-7.4.11-Linux-glibc2.5-x86_64.tar.gz,并进行解压。 3、集群搭建流程 1]将上述安装包解压出来的文件都移到/usr/local/mysql下; 2]运行script目录下的mysql-install-db.sh脚本

一张图秒懂微服务网络架构

拜拜、爱过 提交于 2019-12-04 06:12:09
摘自: https://www.cnblogs.com/yuesf/p/11831234.html 一张图秒懂微服务网络架构   最近参与了 公有云微服务项目 ,已经有一段时间未公开发表。通过这次改造公有云微服务项目的实践过程,分享一下公有云微服务网络架构,及服务部署方案。 每个平台的网络架构图都类似,但细节根据自有服务有组件又各不一样,别人的架构拿过来不一致适合你的架构,那么首先要了解每层架构及每个服务的职责,以及服务与服务之间的交互逻辑。我们根据私有云的架构迁移过来,保持了部分架构,补充了原来在私有云部署中公共组件部分。迁移到公有云后,一些公共组件由我们自己搭建并运维。整理总览图请看下图: 网络架构总览图 一、互联网层   外网层也是网络架构中最上一层,是指服务报露在互联网中使用的,通过IP或域名的方式访问服务。访问的域名通过解析服务器,解析到指定的互联网机器。 互联网机器一般是使用云服务的方式构建。 二、云服务平台层 云计算按照服务类型大致可以分为三类: 将基础设施作为服务Iaas 将平台作为服务PaaS 将软件作为服务SaaS 按照云计算服务的部署方式和服务对象的范围可以将云计算分为三类,即公共云、私有云和混合云。 公共云:是由云服务提供商运营,为最终用户提供从应用程序、软件运行环境,到物理基础设施等各种各样的IT资源。在该方式下

一张图秒懂微服务网络架构

℡╲_俬逩灬. 提交于 2019-12-04 04:29:35
  最近参与了 公有云微服务项目 ,已经有一段时间未公开发表。通过这次改造公有云微服务项目的实践过程,分享一下公有云微服务网络架构,及服务部署方案。 每个平台的网络架构图都类似,但细节根据自有服务有组件又各不一样,别人的架构拿过来不一致适合你的架构,那么首先要了解每层架构及每个服务的职责,以及服务与服务之间的交互逻辑。我们根据私有云的架构迁移过来,保持了部分架构,补充了原来在私有云部署中公共组件部分。迁移到公有云后,一些公共组件由我们自己搭建并运维。整理总览图请看下图: 网络架构总览图 一、互联网层   外网层也是网络架构中最上一层,是指服务报露在互联网中使用的,通过IP或域名的方式访问服务。访问的域名通过解析服务器,解析到指定的互联网机器。 互联网机器一般是使用云服务的方式构建。 二、云服务平台层 云计算按照服务类型大致可以分为三类: 将基础设施作为服务Iaas 将平台作为服务PaaS 将软件作为服务SaaS 按照云计算服务的部署方式和服务对象的范围可以将云计算分为三类,即公共云、私有云和混合云。 公共云:是由云服务提供商运营,为最终用户提供从应用程序、软件运行环境,到物理基础设施等各种各样的IT资源。在该方式下,云服务提供商需要保证所提供资源的安全性和可能性等非功能性需求,而最终用户不关心具体资源由谁提供、如何实现等问题。 私有云:是由企业自建自用的云计算中心,相对于公共云

一张图秒懂微服务网络架构

ⅰ亾dé卋堺 提交于 2019-12-04 04:16:25
  最近参与了 公有云微服务项目 ,已经有一段时间未公开发表。通过这次改造公有云微服务项目的实践过程,分享一下公有云微服务网络架构,及服务部署方案。 每个平台的网络架构图都类似,但细节根据自有服务有组件又各不一样,别人的架构拿过来不一致适合你的架构,那么首先要了解每层架构及每个服务的职责,以及服务与服务之间的交互逻辑。我们根据私有云的架构迁移过来,保持了部分架构,补充了原来在私有云部署中公共组件部分。迁移到公有云后,一些公共组件由我们自己搭建并运维。整理总览图请看下图: 网络架构总览图 一、互联网层   外网层也是网络架构中最上一层,是指服务报露在互联网中使用的,通过IP或域名的方式访问服务。访问的域名通过解析服务器,解析到指定的互联网机器。 互联网机器一般是使用云服务的方式构建。 二、云服务平台层 云计算按照服务类型大致可以分为三类: 将基础设施作为服务Iaas 将平台作为服务PaaS 将软件作为服务SaaS 按照云计算服务的部署方式和服务对象的范围可以将云计算分为三类,即公共云、私有云和混合云。 公共云:是由云服务提供商运营,为最终用户提供从应用程序、软件运行环境,到物理基础设施等各种各样的IT资源。在该方式下,云服务提供商需要保证所提供资源的安全性和可能性等非功能性需求,而最终用户不关心具体资源由谁提供、如何实现等问题。 私有云:是由企业自建自用的云计算中心,相对于公共云

构建Keepalived高可用集群

£可爱£侵袭症+ 提交于 2019-12-04 03:17:46
Keepalived的作用是检测服务器的状态,如果有一台web服务器宕机或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器. 高可用集群(HA High Availability Cluster) 作用:最大限度的保证用户的应用程序持久,不间断的提供服务.(实现故障转移) 高可用性(HA High Availablity)是指通过尽量缩短系统停机时间(因日常的维护操作或突发的系统崩溃等),以提高系统和应用的可用性. 高可用集群最少是2个节点做出的HA集群,有很多通俗不科学的名称,比如 "双机热备","双机互备",这样做的好处是当服务启动的时候,两台服务器一个作主(mast),另外一个作从(ser),测试机每几秒会ping主机当发现主机没有回应,就证明主机拓机了,那么从机马上会启动相应的服务,继续进行服务,这样就可保证服务不间断. 负载均衡集群与高性能运算集群(HPC),的区别? 负载均衡集群:通过提高单位时间内的执行的任务数量来提高效率. 高性能运算集群:通过提高单位时间内的执行时间来提高效率. VRRP(Virtual Router Redundancy Protocol

函数计算进行自动化运维专题

杀马特。学长 韩版系。学妹 提交于 2019-12-04 02:33:41
前言 通常来说,自动化运维有两种类型的运维方式: 定时的脚本任务, 比如定时更换云服务的 acess key secret , 定时检查 ecs 对外暴露的端口等 报警事件的紧急处理, 比如 ecs 实例发生异常重启 在传统的运维中,对于定时任务的处理通常用crontab脚本来实现,但是一旦管理的机器多了,必定会对脚本进行集中管理,这个时候对集中管理脚本的机器的可用性、脚本里面会散落密码明文等相关信息以及定时任务执行的记录都是一个很大的挑战;而对于事件驱动的报警处理,要么是通过短信报警告知运维人员,要么需要自建服务来处理报警信息, 无论是哪种方式,财务成本和运维成本都很大。本文探讨一种新的运维方式,利用函数计算做自动化运维,以极低的成本就可以获得一个高可靠,高质量的运维服务。 函数计算 阿里云 函数计算 是一个事件驱动的serverless计算服务。通过函数计算,您无需管理服务器等基础设施,只需编写代码并上传。函数计算会为您准备好计算资源,以弹性、可靠的方式运行您的代码,具体表现为: 无需采购和管理服务器等基础设施 按需付费,比如对运维管控这类低频调用的系统,财务成本通常能节约90%以上 专注业务逻辑的开发,能极大提高开发效率,比如 十分钟上线弹性高可用的图片处理服务 稳定高可用,毫秒级别弹性伸缩,快速实现底层扩容以应对峰值压力 提供日志查询、性能监控、报警等功能快速排查故障

云原生存储和云存储有什么区别?

亡梦爱人 提交于 2019-12-03 19:44:32
作者 | 李鹏(壮怀) 阿里云智能事业群高级技术专家 导读 :新的企业负载/智能工作负载容器化、迁云、存储方面遇到的性能、弹性、高可用、加密、隔离、可观测性以及生命周期等方面的问题,不但需要存储产品层次的改进,更需要在云原生的控制/数据平面的改进,推进云原生存储和云存储的演进。本文将介绍一下问题场景,探讨可行的解决方案,最终得出云原生存储以及云存储目前可以做什么和未来还需要做什么。 引言 最近有幸参加了由 Infra Meetup 联合 Kubernetes & Cloud Native Meetup 共同组织的面向云原生持久化应用的 Meetup,结合最近对云存储、开源存储、云原生存储的思考,对云原生存储到底是什么,需要做些什么,云原生存储未来挑战是什么,做了更多的反思和梳理,一家之言,分享了几个初步观点。 随着云原生应用对可迁移性、扩展性和动态特性的需求,相应的,对云原生存储也带来了密度、速度、混合度的要求,所以对云存储基本能力又提出了在效率、弹性、自治、稳定、应用低耦合、GuestOS 优化、安全等方面的诉求。 云原生现状 容器和云原生计算被企业快速接纳 Forrester 预测:到 2022 年, 全球组织/公司在生成环境运行容器化应用,从今天不足 30% 的比例将大幅度提升到超过 75%,企业应用容器化的趋势势不可挡。 另一方面,根据 IDC

使用 RMI + ZooKeeper 实现远程调用框架

旧时模样 提交于 2019-12-03 19:20:32
在 Java 世界里,有一种技术可以实现“跨虚拟机”的调用,它就是 RMI (Remote Method Invocation,远程方法调用)。例如,服务A 在 JVM1 中运行,服务B 在 JVM2 中运行,服务A 与 服务B 可相互进行远程调用,就像调用本地方法一样,这就是 RMI。在分布式系统中,我们使用 RMI 技术可轻松将 服务提供者 (Service Provider)与 服务消费者 (Service Consumer)进行分离,充分体现组件之间的弱耦合,系统架构更易于扩展。 本文先从通过一个最简单的 RMI 服务与调用示例,让读者快速掌握 RMI 的使用方法,然后指出 RMI 的局限性,最后笔者对此问题提供了一种简单的解决方案,即使用 ZooKeeper 轻松解决 RMI 调用过程中所涉及的问题。 下面我们就从一个最简单的 RMI 示例开始吧! 1 发布 RMI 服务 发布一个 RMI 服务,我们只需做三件事情: 定义一个 RMI 接口 编写 RMI 接口的实现类 通过 JNDI 发布 RMI 服务 1.1 定义一个 RMI 接口 RMI 接口实际上还是一个普通的 Java 接口,只是 RMI 接口必须继承 java.rmi.Remote ,此外,每个 RMI 接口的方法必须声明抛出一个 java.rmi.RemoteException 异常,就像下面这样: <!--

Keepalived+Lvs高可用负载服务器

眉间皱痕 提交于 2019-12-03 14:30:47
Keepalived+LVS服务器 3.1 问题 使用Keepalived为LVS调度器提供高可用功能,防止调度器单点故障,为用户提供Web服务: 路由器对外公网IP地址为202.114.106.20 路由器内网IP地址为192.168.0.254 路由是需要设置SNAT及DNAT功能 LVS1调度器真实IP地址为192.168.0.10 LVS2调度器真实IP地址为192.168.0.20 服务器VIP地址设置为192.168.0.253 真实Web服务器地址分别为192.168.0.1、192.168.0.2 使用加权轮询调度算法,真实服务器权重与其IP地址末尾数一致 3.2 方案 使用5台虚拟机,1台作为Linux路由器、2台作为LVS调度器、2台作为Real Server、物理机作为客户端,拓扑结构如图-2所示。 图-3 3.3 步骤 实现此案例需要按照如下步骤进行。 步骤一:配置网络环境 1)设置Web服务器网络参数 [root@web1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 ONBOOT=yes BOOTPROTO=static IPADDR=192.168.0.1 NETMASK=255.255.255.0 GATEWAY=192.168.0.254 DNS1=202.106.0

漫谈互联网架构

对着背影说爱祢 提交于 2019-12-03 14:07:00
互联网的标准技术架构如下图所示,这张图基本上涵盖了互联网技术公司的大部分技术点,不同的公司只是在具体的技术实现上稍有差异,但不会跳出这个框架的范畴。 存储层技术SQL SQL即我们通常所说的关系数据。前几年NoSQL火了一阵子,很多人都理解为NoSQL是完全抛弃关系数据,全部采用非关系型数据。但经过几年的试验后,大家发现关系数据不可能完全被抛弃,NoSQL不是No SQL,而是Not Only SQL,即NoSQL是SQL的补充。 所以互联网行业也必须依赖关系数据,考虑到Oracle太贵,还需要专人维护,一般情况下互联网行业都是用MySQL、PostgreSQL这类开源数据库。这类数据库的特点是开源免费,拿来就用;但缺点是性能相比商业数据库要差一些。随着互联网业务的发展,性能要求越来越高,必然要面对一个问题:将数据拆分到多个数据库实例才能满足业务的性能需求(其实Oracle也一样,只是时间早晚的问题)。 数据库拆分满足了性能的要求,但带来了复杂度的问题:数据如何拆分、数据如何组合?这个复杂度的问题解决起来并不容易,如果每个业务都去实现一遍,重复造轮子将导致投入浪费、效率降低,业务开发想快都快不起来。 所以互联网公司流行的做法是业务发展到一定阶段后,就会将这部分功能独立成中间件,例如百度的DBProxy、淘宝的TDDL。不过这部分的技术要求很高,将分库分表做到自动化和平台化