云计算集群技术与应用 教案全套-教学设计 高小辉 第1-9章 集群基础知识-大型网站集群架构项目二_第1页
云计算集群技术与应用 教案全套-教学设计 高小辉 第1-9章 集群基础知识-大型网站集群架构项目二_第2页
云计算集群技术与应用 教案全套-教学设计 高小辉 第1-9章 集群基础知识-大型网站集群架构项目二_第3页
云计算集群技术与应用 教案全套-教学设计 高小辉 第1-9章 集群基础知识-大型网站集群架构项目二_第4页
云计算集群技术与应用 教案全套-教学设计 高小辉 第1-9章 集群基础知识-大型网站集群架构项目二_第5页
已阅读5页,还剩233页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

云计算集群技术与应用教学设计课程名称:云计算集群技术与应用__授课年级:_______________________授课学期:_______________________教师姓名:_______________________年月日课程名称第1章集群基础知识计划学时2学时内容分析本章主要介绍集群的概念、集群的特点、集群的分类、负载均衡的相关介绍,以及服务器健康检查。教学目标与教学要求【知识目标】理解集群的核心概念。理解集群的特点。理解集群的分类。理解负载均衡的相关知识。了解服务器健康检查。【技能目标】理解并掌握集群的核心概念。理解并掌握的特点。理解并掌握集群的分类。理解并掌握负载均衡的相关知识。【思政育人目标】引导学生在学习中健全职业道德的规范。引导学生创新思维和探索的科学精神。培养学生爱岗敬业、遵纪守法的职业精神。教学重点集群的核心概念、负载均衡的分类、四层合七层负载均衡的区别、负载均衡的主要方式教学难点负载均衡的主要方式、负载均衡的算法教学方式课堂讲解配合ppt演示2学时教学过程第一学时(集群简介、集群的分类)一、提出需求,导入学习任务(1)思考集群技术与应用的学习应该从何入手。说到集群,讲一个例子帮助学生理解其概念。原先的饭店只有一个厨师,负责洗菜、切菜、备料、炒菜,饭店正常运行,后来客人多了,一个厨师满足不了上菜需求,于是老板又招了厨师,两个厨师可以炒出同样的菜,两个厨师可以看作集群。随着饭店规模和客流量的增多,还可以继续招厨师,这些厨师就是一个集群。介绍集群基础知识,为以后的学习打下基础。(2)明确学习方向。理解并掌握集群的核心概念。理解并掌握的特点。理解并掌握集群的分类。理解并掌握负载均衡的相关知识。了解服务器健康检查。二、知识讲解(一)集群简介1.集群的核心概念(1)单机结构的定义单机结构是指所有应用或服务部署到一台服务器上。(2)集群的定义集群(Cluster)是指部署相同应用或服务的一组(多台)服务器组成一个并行或者分布式系统,作为一个整体向用户提供网络资源。组成集群的单个服务器为一个节点(Node),这些节点可以相互通信,协同为用户提供相同的资源,一个节点的宕机并不影响其他节点的运行和用户使用。(3)负载均衡的定义负载均衡(LoadBalance,LB)是指将负载(工作任务)分摊给到多个服务器上进行执行,如Web服务器、企业核心应用服务器、FTP服务器等,协同处理工作任务。当大量用户请求集群系统时,通过负载均衡器使得每个节点的负载情况比较平均,从而达到集群节点分担流量的作用。(4)高可用高可用(HighAvailability,HA)是指保持服务的高可用性,即保证一个系统不会因一台服务器发生故障或宕机而导致服务停止。如果某个节点服务器故障,负载均衡器则会将请求转移到其他节点上,实现冗余接管,这就是系统的高可用。(5)分布式结构分布式结构是指将同一业务模块分为多个(两个以上)子任务,部署到多个服务器上,即不同的业务模块部署到不同的服务器上。2.集群的特点(1)高可用性和容错性(2)高性能(3)可扩展性(4)成本相对较低(5)负载均衡(二)集群的分类1.负载均衡集群负载均衡集群是指在使用一组应用程序为大量客户提供服务时,通过若干前端负载均衡器将客户请求分发到后端应用集群服务器的技术,各个节点的访问请求被动态分配,达到整个系统的高可用和高性能。负载均衡集群的架构如图。2.高可用集群高可用集群是指以尽量减少服务中断时间为目的的集群技术,在任意一个节点失效时,该节点所分配的所有工作任务将会自动分配给其他可用节点,保证集群正常运行并提供服务,保持业务的正常运行。高可用性集群的架构如图。3.高性能计算集群高性能计算集群,又称科学计算集群,是指用于计算海量数据,解决复杂问题的技术三、知识巩固(1)回顾上课前的学习目标,对本节课知识点进行总结。(2)使用第一章课后作业。第二学时(负载均衡、服务器健康检查)一、回顾上节课内容(1)对上节课布置的作业以及学生提出的问题进行答疑解惑。(2)回顾上节课内容,引出本节课主题。(3)明确学习方向。理解负载均衡的分类。理解四层和七层负载均衡的区别。理解负载均衡的主要方式。理解负载均衡的算法了解服务器健康检查二、知识讲解(一)负载均衡1.负载均衡的分类(1)负载均衡按软硬件分类,软件有Nginx、LVS、Amoeba、HAProxy等,硬件有ROSE、安瑞科技、F5、Citrix等。软件类的负载均衡是指在服务器相应的操作系统上安装软件来实现负载均衡,配置简单,使用灵活;硬件类的负载均衡是指在服务器和外部网络之间安装的负载均衡设备,整体性能高。负载均衡器按OSI七层模型可以分为二层、三层、四层、七层,具体如表。负载均衡OSI七层模型位置技术原理典型代表二层负载均衡数据链路层通过一个虚拟MAC地址接收请求,然后再分配到后端真实的MAC地址F5、LVSDR模式三层负载均衡网络层通过一个虚拟IP地址接收请求,然后再分配到后端真实的IP地址LVSTUNNEL模式(IP隧道)四层负载均衡传输层通过虚拟IP+端口接收请求,然后再转发到后端真实的服务器F5、LVSNAT、HAProxy、Nginx、SLB七层负载均衡应用层通过虚拟的URL、IP或主机名接收请求,然后再转发到后端真实的服务器F5、LVSNAT、HAProxy、Nginx、SLBDNS一个域名有多个A解析、智能解析万网、DNSPod(3)四层负载均衡四层负载均衡是基于IP和端口的负载均衡,即通过发布三层的IP地址(虚拟IP)和四层的端口号,来对流量做负载均衡和分发处理,转发到后端服务器,并且记录该TCP或UDP协议的流量到达的服务器,下次仍由此台服务器处理。基于四层的负载均衡可达到每秒几十万的处理量,效率更高。(4)七层负载均衡七层负载均衡是根据用户请求的内容等应用层信息为其分配相对应的后端服务器,在这种模式下可以在同一端口下同时运行多个Web服务器。2.四层和七层负载均衡的区别(1)技术原理的区别四层负载均衡主要通过客户端请求报文中的目标地址和端口,再根据负载均衡器选择的转方式,决定最终的真实服务器。七层负载均衡主要通过报文中的应用层信息,再根据负载均衡器选择的转发方式,决定最终的真实服务器。(2)应用场景的需求四层负载均衡适用于TCP应用。四层负载均衡比七层处理效率高,更适用于网络吞吐量和并发量高的集群,可作为多种软件的负载均衡器。七层负载均衡使得整个网络更加“智能化”,功能多,控制灵活,可根据用户访问内容,将访问请求转发到相应服务器。(3)安全性四层负载均衡不能够拦截SYN攻击,会将攻击转发到后端服务器上,而七层负载均衡可以拦截SYN攻击,不会影响后端服务器。七层负载均衡还可以设定安全策略,以过滤不安全报文。由此可见,七层负载均衡比四层负载均衡安全性更高。3.负载均衡的主要方式(1)HTTP重定向HTTP重定向会根据客户端应用层的报文计算出一个真实的Web服务器IP地址,并将该IP地址写入HTTP重定向响应中返回给客户端,客户端收到重定向响应之后再去访问真实服务器,其工作原理如图。(2)DNS方式DNS负责提供域名到IP解析的过程,这时DNS服务器也就充当了负载均衡,很多域名运营商提供的智能DNS以及多线解析都是利用了DNS负载均衡的技术,开源的Bind软件就可提供电信联通多线解析等强大的技术。在DNS服务器上配置多个域名对应IP的记录,其工作原理如图1.7所示(3)反向代理方式反向代理部署在Web服务器前面,提供负载均衡的功能,同时管理着一组Web服务器,根据负载均衡算法将访问请求转发给不同的Web服务器,处理结果经过反向代理返回给浏览器。工作原理如图。(4)IP负载方式IP负载均衡是在网络层和传输层(IP和端口)通过修改目标地址进行负载均衡,具体工作结构如图。(5)链路层负载方式网络中的每台设备都有一个唯一的网络标识,这个地址叫MAC地址或网卡地址。数据链路层负载均衡是在数据链路层修改MAC地址进行负载均衡,其工作原理如图。4.负载均衡的算法(1)静态负载均衡算法静态负载均衡算法一般包括轮询法、加权轮询法、目标地址哈希法、源地址哈希法。轮询法轮询调度算法(RoundRobinScheduling,RR),调度器采用这种算法时,会将用户请求无差别地按顺序轮流分配到集群中的真实服务器上,不关心每个服务器上实际的连接数和当前系统负载信息。加权轮询法加权轮询调度算法(WeightedRoundRobinScheduling,WRR),调度器采用这种算法时,会将用户请求按照真实服务器不同的处理能力进行分配。给配置高、负载低的机器配置更高的权重,让其处理更多的请求;而配置低、负载高的机器,给其分配较低的权重,降低其系统负载。按照权重进行任务的调度,可以保证请求分配的合理性。目标地址哈希法目标地址哈希法(DestinationHashingScheduling,DH)是一种静态映射算法,通过一个散列(Hash)函数将一个目标IP地址映射到一台服务器。服务器首先将用户请求的目标IP地址作为散列键(HashKey),再从静态分配的散列表找出对应的服务器,如果该服务器是可用的且未超载,就将请求发送到该服务器,否则返回空。源地址哈希法源地址哈希法(SourceHashingScheduling,SH)也是一种静态映射算法,通过一个散列(Hash)函数将一个源地址IP地址映射到一台服务器。服务器首先将用户请求的源IP地址(即客户端地址)作为散列键(HashKey),再从静态分配的散列表找出对应的服务器,如果该服务器是可用的且未超载,就将请求发送到该服务器,否则返回空。采用源地址哈希法进行负载均衡,源地址一样的请求都会被分配到同一台服务器进行处理,可以实现会话的粘滞性。为了帮助大家更好地理解这四种算法,此处一张表来对它们的优缺点做对比说明,具体如表。静态负载均衡算法优缺点对比表算法优点缺点轮询法简单高效,易于水平扩展,每个服务器任务分配均衡无法保证任务分配的合理性,无法根据服务器承受能力来分配任务加权轮询法可以将不同机器的性能问题纳入考量范围,集群性能最优最大化服务器抗压能力无法精确估量,静态算法导致无法实时动态调整节点权重,只能粗糙优化目标地址哈希法根据用户访问的URL的哈希结果,使每个URL定向到同一个后端服务器上,假如某一个目标服务器不可以,或者负载过高,那么会影响发往该目标服务器的请求无法得到响应。源地址哈希法源地址一样的请求都会被分配到同一台服务器进行处理,可以解决session会话共享的问题,实现会话粘滞EQ\o\ac(○,1)由于用户的活跃度不同,可能会有大量的活跃用户被哈希到相同的服务器上,造成该服务器特别繁忙,大量的非活跃用户被哈希到相同的服务器上,造成该服务器几乎没有请求,造成请求不均衡;EQ\o\ac(○,2)一旦某个服务器挂掉,那么哈希到该服务器的所有源请求都会失败,直到服务恢复或者服务器列表中去掉该服务器(2)动态负载均衡算法最小连接法最小连接法(LeastConnectionScheduling,LC),采用这种算法做负载均衡时,调度器会根据每个真实服务器当前的连接情况,动态选取当前连接数最小的服务器来处理当前请求。最小连接法通过真实服务器当前活跃的连接数来判断真实服务器的情况,每当真实服务器有新的连接或断开连接时都需要进行计数,调度器根据各个真实服务器的连接数合理进行任务的分配。加权最小连接法加权最小连接法(WeightedLeastConnectionScheduling,WLC)在实现时增加了权重的计算,在LC算法的计算标准上除以权重,计算结果数值小的将接受下次访问请求,是企业最常用的算法也是LVS的默认算法。采用这种算法时,调度器可以自动问询真实服务器的负载情况,并动态调整其权值。基于局部性的最少链接法基于局部性的最少链接法(Locality-BasedLeastConnectionsScheduling,LBLC)类似目标地址哈希法,是针对目标IP地址的负载均衡算法,调度器根据请求的目标IP地址找出最近为该目标IP地址服务的真实服务器,若该真实服务器是可用的且没有超载,则将请求发送给该真实服务器,否则调度器将使用“最小连接”原则选出一个可用的真实服务器并将请求发送到该服务器,这种算法主要用于Cache集群系统。带复制的基于局部性最少链接法带复制的基于局部性最少链接法(Locality-BasedLeastConnectionswithReplicationScheduling,LBLCR)也是针对目标IP地址的负载均衡,它与LBLC算法的不同之处是它维护的是从一个目标IP地址到一组服务器的映射,而LBLC算法维护的是从一个目标IP地址到一台服务器的映射。(二)服务器健康检查服务器的健康检查是指负载均衡通过健康检查判断后端服务器是否可用。如果后端服务器异常,负载均衡将自动把访问请求转发到其他健康的服务器上;当异常服务器恢复正常时,负载均衡会自动将该服务器加入集群,继续服务。服务器健康检测技术主要讲解以下3种。1.HTTP/HTTPS监听健康检查机制在七层负载均衡模式下,负载均衡器向后端转发HTTP请求,健康检查通过HTTPHEAD请求获取状态信息,后端服务器收到请求后,根据业务的运行状况,返回HTTP状态码。2.ICMP监听健康检查机制负载均衡器向后端服务器发送ICMPEcho包,即ping的方式,若后端服务器可以正常收到ICMPReply,那么服务器ICMO协议处理正常,即服务器是“活的。3.TCP监听健康检查机制负载均衡器向后端服务器的相应端口发送TCP连接请求,如果三次握手成功建立,那么服务器TCP协议处理正常。除此3种服务器健康检测方式,还可以发送UDP、FTP、DNS、SSL等协议包通过是否收到正确的应答来检查服务器是否存活。服务器的健康检测在集群系统中有着至关重要的作用,有利于维护系统的高可用。三、知识巩固(1)回顾上课前的学习目标,对本节课知识点进行总结。(2)使用第一章课后作业。习题教材第1章习题教学后记云计算集群技术与应用教学设计课程名称:云计算集群技术与应用__授课年级:_______________________授课学期:_______________________教师姓名:_______________________年月日课程名称第2章Web服务集群计划学时6学时内容分析本章主要介绍Web服务集群的相关知识,包含搭建LAMP平台,搭建LNMP平台,Nginx做负载均衡,以及Web集群实战案例。教学目标与教学要求【知识目标】理解Web服务集群。理解LAMP和LNMP。理解Nginx做负载均衡的相关知识。【技能目标】掌握LAMP和LNMP的部署。掌握部署Nginx负载均衡器。掌握构建Web集群的基本能力。【思政育人目标】针对文件配置和算法设计,需要精益求精,大力弘扬工匠精神;。引导学生树立刻苦钻研的“钉子”精神培养学生扎实稳打,迎难而上的性格。针对日常运维,培养从小事中发现、分析问题的科学思维观。教学重点部署LAMP平台,部署LNMP平台,以Nginx做负载均衡,Web集群实战案例教学难点以Nginx做负载均衡,Web集群实战案例教学方式课堂讲解配合ppt演示3学时,上机演练3学时教学过程第一学时(Web服务集群简介、搭建LAMP平台)一、提出需求,导入学习任务(1)思考Web集群的学习应该从何入手。大家所熟悉的博客、论坛等网站,其特点就是用户群体较大。当Web服务器直接面向客户端时,服务器往往要承载大量并发请求,单台服务器难以负荷。为了应对以上问题,其中的办法之一,可以配置多台Web服务器组成集群,以扩展架构的稳定性和可扩展性,承载更多的并发量以及提高用户的访问速度。(2)明确学习方向。理解Web服务集群简介。理解并掌握搭建LAMP平台。二、知识讲解(一)Web服务集群简介1.概念Web服务集群是指配置若干(两台及以上)台Web服务器组成一个系统,作为一个整体为用户提供Web服务。在Web集群环境中,前端使用负载均衡,将用户请求的流量按照算法分散地移交到后端Web服务器集群中,实现请求的分发,将会大大提升系统的吞吐量与请求性能。2.Web服务器Web服务器又称为网站服务器,能够处理浏览器等客户端的请求然后返回相应结果,Web服务器可提供浏览类网站文件,又可提供下载类数据文件。当前主流的Web服务器有Apache、Nginx、IIS,在云端Web类应用中,使用率可达95%以上。3.Web集群基础架构(二)搭建LAMP平台1.LAMP简介在LAMP中,Linux是自由和开放源码的类Unix操作系统,可安装在各种计算机硬件设备中。Apache是最受欢迎的一个开放源码的Web服务器软件,强大且实用。M可以是多线程、多用户的SQL数据库管理系统MySQL,也可以是MariaDB。P一般是指PHP、Perl或Python等脚本语言,其中PHP是一种编程语言,最初用来设计生产动态网站,主要用于服务器端的应用程序软件。(1)LAMP可以是LinuxApacheMySQLPHP的简写,其实就是把Apache、MySQL以及PHP安装在Linux系统上,来运行动态网站或者服务器,是比较常用的Web搭建框架。(2)LAMP的工作原理2.实验的准备环境本书全部实验使用虚拟机代替物理服务器,在虚拟环境下的Linux操作系统中进行,实验所用操作系统版本为CentOS7.6。CentOS7自带Firewalld和SELinux守护工具,一外一内,保证系统的安全。(1)查看系统版本号。(2)关闭CentOS7默认防火墙Firewalld。(3)关闭SELinux3.LAMP的部署及测试准备1台VM虚拟机搭建LAMP平台。HostNameIP说明web139搭建LAMP框架(1)Apache的安装与测试安装Apache[root@web1~]#yum-yinstallhttpd查看Apache版本[root@web1~]#httpd-vServerversion:Apache/2.4.6(CentOS)Serverbuilt:Nov10202114:41:18启动Apache服务并设置开机自启[root@web1~]#systemctlstarthttpd[root@web1~]#systemctlenablehttpd验证Apache服务是否安装成功在本机浏览器中输入虚拟机的IP地址,如果看到Apache默认的测试页面,说明Apache服务成功运行。测试Apache是否能解析常见的动静态页面(2)PHP的安装与测试安装PHP[root@web1html]#yum-yinstallphp重启Apache服务[root@web1html]#systemctlrestarthttpd再次访问index.php(3)数据库的安装与测试安装MariaDB客户端与服务端[root@web1~]#yum-yinstallmariadbmariadb-server更改数据库密码。[root@web1~]#mysql_secure_installation登录数据库测试[root@web1~]#mysql-uroot-p123测试PHP与数据库是否连通查看PHP的拓展模块[root@web1~]#php-m|grepmysql安装php-mysql[root@web1~]#yum-yinstallphp-mysql再次查看PHP的拓展模块重启Apache服务再次在浏览器上访问linktest.php三、知识巩固(1)回顾上课前的学习目标,对本节课知识点进行总结。(2)使用第2章课后作业。第二学时(上机练习-LAMP的部署及测试)一、目标学生根据教材中的操作步骤和教师的演示进行上机练习,以此练习LAMP的部署等相关知识,以及检查学生对相关知识点的掌握情况。上机练习完成后将报告通过平台提交给老师。二、上机任务1.在单机环境下部署LAMP环境安装Apache安装PHP或Python安装MySQL或者MariaDB三、教师评分教师根据学生对上机任务的完成度给予评分,满分为4分,并纳入平时成绩中。第三学时(搭建LNMP平台、Nginx-负载均衡)一、回顾上节课内容(1)对上节课布置的作业以及学生提出的问题进行答疑解惑。(2)回顾上节课内容,引出本节课主题。(3)明确学习方向。理解并掌握搭建LNMP平台。理解Nginx做方向代理和负载均衡。了解Nginx负载均衡的优缺点。了解Nginx负载均衡后端状态。理解Nginx负载均衡的应用。二、知识讲解(一)搭建LNMP平台1.LNMP简介(1)LAMP是LinuxNginxMySQLPHP的简写,即把Nginx、MySQL以及PHP安装在Linux系统上,组成一个高效、免费、高扩展的网站服务系统,是国内大中型互联网公司网站常用的Web搭建框架。(2)LAMP中是以Apache作为Web服务器与客户端浏览器进行交互,顾名思义,在LNMP环境中,是以Nginx作为Web服务器。Nginx(enginex)是一款高性能、轻量级的Web服务器,是一款反向代理服务器,也是一款邮箱代理服务器(IMAP/POP3/SMTP),具有性能优越、功能丰富、占有内存少等优点。(3)LNMP的工作原理。2.LNMP的分离部署及测试在本案例中准备两台VM虚拟机(或物理服务器),分离部署LNMP环境,如表。HostNameIP说明web139应用程序及文件服务器db140数据库服务器(1)部署Nginx—应用服务器(1)Nginx的安装。[root@web1~]#yum-yinstallnginx启动Nginx服务,并设置该项服务开机自启。[root@web1~]#systemctlstartnginx[root@web1~]#systemctlenablenginx检查Nginx是否正常工作在80端口。[root@web1~]#netstat-unltp|grep80打开浏览器,输入IP,即可看到Nginx的欢迎界面。测试Nginx是否能解析常见的动静态页面。(2)部署PHP-FPM—应用服务器(39)Nginx不支持对外部动态程序的直接调用或者解析,所有的外部程序(包括PHP)必须通过FastCGI接口来调用。想要让服务器可以处理PHP文件,则必须安装PHP-FPM。下载安装PHP-FPM及相关插件[root@web1~]#yuminstall-yphp-fpmphp-mysqlphp-gdPHP-FPM安装完成后,将其开启并设置其开机自启。[root@web1~]#systemctlstartphp-fpm[root@web1~]#systemctlenablephp-fpmPHP正常工作在9000端口,查看PHP-FPM的进程信息。[root@qfedu~]#netstat-anpt|grepphp-fpm将.php文件加入网站处理的范围,更新网站接收的文件类型。#在Nginx配置文件的Server模块内进行添加即可。[root@web1~]#vim/etc/nginx/conf.d/default.confserver{listen80;server_namelocalhost;location/{root/usr/share/nginx/html;indexindex.htmlindex.htmindex.php;}#省略部分代码}在其配置文件的Server模块启用nginx_fastcgi功能,修改其调用路径。location~\.php${root/usr/share/nginx/html;fastcgi_pass:9000;fastcgi_indexindex.php;fastcgi_paramSCRIPT_FILENAME/$document_root$fastcgi_script_name;includefastcgi_params;}再次重启Nginx,访问测试文件index.php。3.部署数据库—数据库服务器(40)安装MariaDB客户端与服务端[root@db1~]#yum-yinstallmariadbmariadb-server启动MariaDB服务,并设置其开机自启更改数据库密码登陆数据库测试,并授予应用服务器操作权限[root@db1~]#mysql-uroot-p123……MariaDB[(none)]>grantallon*.*toroot@'39'identifiedby'123';QueryOK,0rowsaffected(0.00sec)MariaDB[(none)]>flushprivileges;QueryOK,0rowsaffected(0.00sec)在网站默认目录下创建文件link.php[root@db1~]#cat/usr/share/nginx/html/link.php<?php$link=mysql_connect('2','root','123');if($link)echo"Successfully";elseecho"Fail";mysql_close();?>在浏览器中访问link.php(二)Nginx-负载均衡1.反向代理与负载均衡(1)Nginx不仅是一款优秀的Web软件,还可以作为七层代理和负载均衡。(2)代理服务器(ProxyServer)是网络信息的中转站,是个人网络和Internet服务商之间的中间代理机构,负责转发合法的网络信息,对转发进行控制和登记。正向代理是处于客户端与服务端之间的代理节点。反向代理同样是处于客户端与服务端之间的代理节点,与正向代理不同的是,反向代理是服务于客户端的代理节点。2.Nginx负载均衡的优缺点(1)Nginx作为负载均衡具备如下特点。作为开源软件,功能强大,性能卓越,运行稳定。配置文件简单灵活。有内置的健康检查功能,能够自动剔除工作不正常的后端服务器。上传文件使用异步模式。支持多种分配策略,可以分配权重,分配方式灵活。(2)Nginx作为负载均衡的优缺点如下所示。优点Nginx可以复制用户请求。Nginx可以根据域名、URL识别用户的请求类型,因此Nginx可以做动静分离。Nginx为开源软件,可以免费使用。缺点Nginx不仅要把用户的请求发送给后端真实服务器,还要将后端真实服务器返回的页面发送给用户,流量会经过Nginx,所以Nginx可能成为瓶颈。3.Nginx负载均衡算法轮询算法(RoundRobin,简称RR)加权轮询算法(WeightRoundRobin,简称WRR)IP_hash算法fair公平算法URL_hash算法4.Nginx负载均衡后端状态后端Web服务器在前端Nginx负载均衡调度中的状态,主要有以下几种。down:表示当前的服务器暂时不参与负载。weight:默认值为1。weight值越大,负载的权重就越大。max_fails:表示允许请求失败的次数,默认值为1。fail_timeout:达到max_fails所指定的失败次数后需要暂停的时间。backup:所有的非backup状态的服务器,down或者压力很大时,backup服务器将会开始接受请求,所以这台服务器压力会最小。client_body_in_file_only:设置为on可以将客户端上传的数据记录到文件中用来做调试。client_body_temp_path:设置记录文件的目录,最多可以设置3层目录。Location:对URL进行匹配,可以进行重定向或者进行新的负载均衡。5.Nginx负载均衡的应用实际上,对于用户访问量不大的小型企业来说,一般用不到负载均衡。访问流量一般的中型企业,通常只做四层负载均衡或七层负载均衡中的一种。而一些大型企业中,每时每刻访问量都非常大,通常四、七层负载均衡都会做,常见的负载架构如图。三、知识巩固(1)回顾上课前的学习目标,对本节课知识点进行总结。(2)使用第2章课后作业。第四学时(上机练习-LNMP的分离部署及测试)一、目标学生根据教材中的操作步骤和教师的演示进行上机练习,以此练习LNMP的分离部署等相关知识,以及检查学生对相关知识点的掌握情况。上机练习完成后将报告通过平台提交给老师。二、上机任务1.准备两台VM虚拟机(或物理服务器),分离部署LNMP环境安装部署Nginx安装部署PHP-FPM安装部署数据库三、教师评分教师根据学生对上机任务的完成度给予评分,满分为4分,并纳入平时成绩中。第五学时(Web集群实战案例-业务上线)一、回顾上节课内容(1)对上节课布置的作业以及学生提出的问题进行答疑解惑。(2)回顾上节课内容,引出本节课主题。(3)明确学习方向。理解并掌握集群架构的设计。掌握部署数据库掌握在应用服务器上线业务。掌握部署Nginx负载均衡。二、知识讲解工作原理在负载均衡集群中,Web服务集群的所有服务器节点想客户端提供相同的服务。集群负载均衡器则会接收用户的入站请求,然后将请求分摊给后端的Web服务集群。这样即可实现负载均衡的功能,以提升系统的吞吐量、请求性能、高容灾。本节的案例中,将Nginx作为负载均衡器,也是反向代理服务器,在Web集群上部署博客应用,其工作原理如图。准备环境准备4台VM虚拟机(或者物理服务器),一台做负载均衡器,两台Web服务器做集群,一台做数据库服务器。HostNameIP说明lb139Nginx负载均衡器web140Web服务器部署论坛应用web241Web服务器部署论坛应用db142数据库服务器(1)同步时间(详见第2章PPT)(2)域名解析部署数据库—数据库服务器(42)安装MariaDB客户端与服务端,具体如下所示。[root@db1~]#yum-yinstallmariadbmariadb-server启动MariaDB服务,并设置其开机自启。进入数据库安全设置模式,更改数据库密码登录数据库,授予Web服务器操作权限,然后创建网站数据库。[root@db1~]#mysql-uroot-p123……MariaDB[(none)]>grantallon*.*toroot@'40'identifiedby'123';QueryOK,0rowsaffected(0.00sec)MariaDB[(none)]>grantallon*.*toroot@'41'identifiedby'123';QueryOK,0rowsaffected(0.00sec)#创建discuz数据库,做Web集群的数据库MariaDB[(none)]>createdatabasediscuz;QueryOK,1rowaffected(0.21sec)MariaDB[(none)]>flushprivileges;QueryOK,0rowsaffected(0.06sec)论坛业务上线(详细步骤见第2章PPT)1.两台Web服务器上搭建LNMP环境首先安装Nginx,并设置为开机自启。[root@web1~]#yuminstall-ynginx[root@web1~]#systemctlstartnginx[root@web1~]#systemctlenablenginx检查Nginx是否正常工作在80端口。下载安装PHP-FPM及相关插件。PHP-FPM安装完成后,将其开启并设置其开机自启。将.php文件加入网站处理的范围,更新网站接收的文件类型。2.在Web应用服务器中通过Discuz项目包模拟需要上线的软件包,Discuz项目包可以通过Discuz官方网站获取。将获取的项目包放到/tmp目录之后进行解压。[root@web1tmp]#unzipDiscuz_X3.4_SC_UTF8.zip为保证业务正常上线,将html目录下的文件删除。将软件包目录下所有文件备份到页面路径下。授予该路径相应的权限。有了执行权限,业务就可以在线上运行。重新启动Nginx服务,即可访问到该业务。单击“我同意”按钮,进入论坛安装页面若出现部分文件不可写的情况,可以通过终端对项目文件与目录授予相关权限。单击“下一步”按钮,设置运行环境选择“全新安装”并单击“下一步”按钮,开始填写数据库与网站管理员信息填写完成之后,单击“下一步”按钮开始安装论坛继续访问页面。将Web1中的网站资源备份到Web2中。[root@web1~]#scp-r/usr/share/nginx/html/*11:/usr/share/nginx/html/通过web2终端对各文件与目录授予相关权限。[root@web2html]#chmod-R777/usr/share/nginx/html/*至此,Web真实服务器的论坛业务已成功上线。部署负载均衡—Nginx—(负载均衡器(39))Windows本地hosts文件的位置在C:\Windows\System32\drivers\etc中,以记事本的方式打开hosts文件,追加以下内容即可。39在服务器上安装EPEL源。[root@lb1~]#yum-yinstallepel-releaseEPEL源安装完成后,可以使用ls命令查看服务器现有源,若出现epel.repo,说明EPEL源成功安装。[root@lb1~]#ls/etc/yum.repos.dCentOS-Base.repoepel.repo接下来使用Yum的方式获取Nginx。[root@lb1~]#yum-yinstallnginx安装Nginx后,编辑其配置文件/etc/nginx/nginx.conf,添加相关的服务器组。[root@lb1~]#vim/etc/nginx/nginx.conf#注意更改的位置!http{······此处省略部分代码······server{······此处省略部分代码······#引用服务器组location/{proxy_passhttp://html;proxy_set_headerHost$host;proxy_set_headerX-Real-IP$remote_addr;proxy_set_headerREMOTE-HOST$remote_addr;proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;}······此处省略部分代码······}#配置服务器组upstreamhtml{ serverweb1:80weight=5; serverweb2:80weight=5;}}配置完成后启动Nginx。[root@lb1~]#systemctlstartnginx至此,负载均衡器配置完成。实现Web服务负载均衡(详细步骤见第2章PPT)1.由于Web服务集群中的负载均衡器已经设置好了域名,那么使用Windows浏览器访问或网站(即Nginx负载均衡器的IP)可访问Web集群。2.强制刷新浏览器,再次访问网站,可通过访问web1和web2的access.log查看客户端请求的信息。3.在web1和web2使用tail命令加-f参数可动态查看正在修改的文件,具体如下所示。[root@web1nginx]#tail-f/var/log/nginx/access.log4.刷新浏览器,再次访问网站,访问结果如图。5.刷新浏览器,再次访问网站,访问结果如图。从两次的访问结果可以看到网站两次访问的结果发生了变动,这是因为第一次请求到来时,调度器将请求分配给了第一台真实服务器进行处理;第二次请求到来时,调度器按默认(轮询)算法将请求分配给了第二台真实服务器进行处理,实现了系统的负载均衡。若后端真实服务器集群中有更多的机器,则会有更多的机器按顺序循环参与工作。三、知识巩固(1)回顾上课前的学习目标,对本节课知识点进行总结。(2)使用第2章课后作业。第六学时(上机练习-Web集群实战案例-业务上线)一、目标学生根据教材中的操作步骤和教师的演示进行上机练习,以此练习Web集群实战案例-业务上线等相关知识,以及检查学生对相关知识点的掌握情况。上机练习完成后将报告通过平台提交给老师。二、上机任务1.将Nginx作为负载均衡器,也是反向代理服务器,在Web集群上部署博客应用。其工作原理如图。所有用户的请求统一发送到Nginx负载均衡器,然后根据负载均衡器的调度算法请求访问web1和web2。准备4台VM虚拟机(或者物理服务器),一台做负载均衡器,两台Web服务器做集群,一台做数据库服务器,具体如表。HostNameIP说明lb139Nginx负载均衡器web140Web服务器部署论坛应用web241Web服务器部署论坛应用db142数据库服务器三、教师评分教师根据学生对上机任务的完成度给予评分,满分为4分,并纳入平时成绩中。习题教材第2章习题教学后记云计算集群技术与应用教学设计课程名称:云计算集群技术与应用__授课年级:_______________________授课学期:_______________________教师姓名:_______________________年月日课程名称第3章数据库集群计划学时4学时内容分析本章主要介绍数据库集群的相关知识,包含数据库简介、数据库集群简介、数据库集群架构、数据库主从复制实战、数据库读写分离实战。教学目标与教学要求【知识目标】理解数据库简介。理解数据库集群简介。理解数据库集群架构。【技能目标】掌握部署数据库主从复制。掌握部署数据库读写分离。【思政育人目标】引导学生认识学习的过程也是由简入难的逐步积累过程,并且学习的过程也需要秉承严谨、踏实、精益求精的大国工匠精神。引导学生树立科学严谨的架构精神,数据安全意识。培养学生项目开发的全局观和系统思维。教学重点数据库集群架构、数据库主从复制实战、数据库读写分离实战教学难点数据库集群架构、数据库主从复制实战、数据库读写分离实战教学方式课堂讲解配合ppt演示2学时,上机演练2学时教学过程第一学时(数据库简介、数据库集群简介、数据库集群架构)一、提出需求,导入学习任务(1)思考数据库集群的学习应该从何入手。通过MySQL宕机事故,引出数据库集群的重要性。事件一:2012年9月10-11日,GitHub服务中断,持续1.46小时。宕机的原因为GitHub将一对古老的、基于DRBD的MySQL服务器替换成一个拥有3个节点的集群。在合并到新系统时,“活动的”数据库自动出现了多个故障转移(failover),同时又因为集群管理软件的错误操作导致性能下降,最终造成网站宕机。事件二:2012年6月29日,AmazonRDS宕机事件,持续时间3小时。一个被称为derecho的强雷暴天气系统通过弗吉尼亚州北部,使得亚马逊在该地区的设施失去了动力,发电机不能正常运行,消耗应急电源的不间断电源(电源)系统,从而导致运行在AmazonRDS上的大概上千个MySQL数据库宕机。(2)明确学习方向。理解相关数据库。理解数据库集群。理解数据库集群架构。二、知识讲解(一)数据库简介1.概念数据库(Database)是按照一定的数据结构(数据结构是指数据的组织形式或数据之间的联系)来组织、存储及管理数据的仓库,可视为电子化的文件柜,用户可以对文件中的数据进行新增、查询、更新、删除等操作。2.数据库模型早期比较受欢迎的数据库模型有三种,分别为层次式数据库、网络式数据库、关系型数据库。而现代的互联网世界中,最常用的数据库模型只有两种,关系型数据库和非关系型数据库。关系型数据库关系型数据库模型是把复杂的数据结构归结为简单的二元关系(即二维表格形式)。在关系型数据库中,对数据的操作几乎全部建立在一个或多个关系表格上,通过这些关联的表格分类、合并、连接或选取等运算来实现数据的管理。非关系型数据库非关系型数据库也被称为NoSQL数据库,NoSQL的本意是“NotOnlySQL”,指的是非关系型数据库,而不是“NOSQL”的意思,因此,NoSQL的产生并不是要彻底否定关系型数据库,而是作为传统数据库的一个有效补充。NoSQL数据库在特定的场景下可以发挥难以想象的高效率和高性能。(二)数据库集群简介1.概念数据库集群,顾名思义,配置若干(两台及以上)台数据库服务器组成一个系统,作为一个整体为客户端提供透明的数据服务。大量读写请求来临时,数据库集群可以将请求分发给不同的集群节点,这样的处理使得数据的读写速度更快,也更好地解决了高并发情况下单节点数据库的性能问题。2.分布式数据库分布式数据库是指利用网络将分散的数据存储节点连接起来组成一个整体提供数据库服务。用户通过分布式数据库系统的就近访问原则,可以访问就近的数据库节点,数据库各节点之间能够同步数据传输,实现了数据的一致性。3.数据库集群与分布式数据库系统的对比图4.数据库集群与分布式数据库系统的区别数据库可以具有多个相似或相同的数据集,分布式数据库系统一般具有完全不同的数据集。数据库集群的各节点使用相同的操作系统、数据库版本,以及相同版本的补丁包,而分布式数据库系统中各节点可以使用不同的操作系统和不同版本的数据库系统。数据库集群一般情况下是建立在高速局域网内,而分布式数据库系统还可以建立在异地远程网络。(三)数据库集群架构主从复制主从复制架构,顾名思义,分为主数据库和从数据库。从数据库要求与主数据库有完全相同数据库环境,当主数据库实时更新数据信息时,主数据库会将更新信息写入一个二进制文件binlog中,然后发送到从数据库中。从服务器成功连接主服务器后,读取主服务器的二进制文件,并执行相应的操作直至最后一次更新的位置,然后等待主服务器通知新的更新。数据的完整性依赖于主库保存的binlog,比如主库宕机了,还可以通过binlog把丢失的数据同步到从库中,以加强数据的安全性。一主多从复制的逻辑图。多级复制一主多从的复制架构可以解决大部分请求压力较大的场景需求,随着业务量的增大,主库发送binlog日志到从库的I/O访问频率过高,网络压力也会随着增大,这时多级复制架构可以解决主库额外的I/O线程压力和网络压力。MySQL的多级复制逻辑图。双主复制双主复制(DualMaster)又称为主主复制,即两个主数据库,且两个主库互为主从。主主复制架构常用于数据库管理员做维护时需要主从切换的场景,从而避免了重复搭建从库的麻烦。主主复制逻辑图。多源复制MySQL5.7版本开始支持多源(Multi-Source)复制,实现了多主一从复制,将多个数据库(Master)的数据集中发送到1台从库(Slave)上。多源复制结构要求至少包含两个主库和一个从库,常被用于复杂的业务需求,不但可以支撑OLTP(联机事务处理),又能够满足OLAP(联机分析处理)。多源复制的逻辑图。三、知识巩固(1)回顾上课前的学习目标,对本节课知识点进行总结。(2)使用第3章课后作业。第二学时(数据库主从复制实战、数据库读写分离实战)一、回顾上节课内容(1)对上节课布置的作业以及学生提出的问题进行答疑解惑。(2)回顾上节课内容,引出本节课主题。(3)明确学习方向。掌握部署数据库主从复制。掌握部署数据库读写分离。二、知识讲解(一)数据库主从复制实战1.MySQL主从复制原理MySQL的主从复制是一个异步的复制过程,数据将从一个MySQL数据库(Master)复制到另外一个MySQL数据库(Slave),是由三个线程参与完成了在Master与Slave之间数据复制的过程。其中有两个线程(SQL线程和I/O线程)在Slave端,另外一个线程(I/O线程)在Master端。要实现MySQL的主从复制,首先必须打开Master端的binlog记录功能,否则就无法实现。因为整个复制过程实际上就是Slave端从Master端获取binlog日志,然后再在Slave上以相同的顺序执行获取的binlog日志中所记录的各种SQL操作。要打开MySQL的binlog记录功能,可以通过在MySQL的配置文件f中的mysqld模块增加log_bin参数来实现。MySQL主从复制的工作过程。2.实验环境准备2台VM虚拟机(或者物理服务器),一台做主数据库(master1),一台从数据库(slave1),具体如表。配置项主服务器从服务器HostNamemaster1slave1IP4445ServerID144145版本号MySQL5.7MySQL5.73.部署MySQL(1)配置MySQL镜像源(2)下载并安装MySQL查看Yum仓库中提供的MySQL版本。市场中现在使用的是较稳定的5.7版本,这里借助Yum管理工具包关闭MySQL8.0版本,开启5.7版本进行实验。首先下载Yum管理工具包。[root@qfedu~]#yum-yinstallyum-utils使用yum-config-manager命令关闭MySQL8.0版本,并开启MySQL5.7版本。[root@qfedu~]#yum-config-manager--disablemysql80-community[root@qfedu~]#yum-config-manager--enablemysql57-community设置完成后再次确认目前仓库中提供的MySQL版本。[root@qfedu~]#yumrepolistenabled|grepmysqlmysql-connectors-community/x86_64MySQLConnectorsCommunity221mysql-tools-community/x86_64MySQLToolsCommunity135mysql57-community/x86_64MySQL5.7CommunityServer使用Yum命令下载并安装MySQL,具体如下所示。[root@qfedu~]#yum-yinstallmysql-community-server(3)初始化MySQL安装完成后,启动MySQL服务并设置开机自启。[root@qfedu~]#systemctlstartmysqld[root@qfedu~]#systemctlenablemysqld查看系统为root用户随机生成的临时密码。[root@qfedu~]#cat/var/log/mysqld.log|grep"temporarypassword"2020-01-03T07:22:33.997442Z1[Note]Atemporarypasswordisgeneratedforroot@localhost:g8R4#F*4l,WX临时密码为“g8R4#F*4l,WX”。使用root用户及临时密码,进入数据库。[root@qfedu~]#mysql-uroot-p'g8R4#F*4l,WX'……mysql>看见mysql>提示符,说明数据库登录成功。更改数据库的密码为“QianFeng@123”。mysql>ALTERUSER'root'@'localhost'IDENTIFIEDBY'qianfeng@123';ERROR1819(HY000):Yourpassworddoesnotsatisfythecurrentpolicyrequirements由上述结果可知,返回了一个错误提示,设置的密码不符合密码安全策略。针对以上问题,需要在配置文件中设置密码强度。[root@qfedu~]#vim/etc/f#在[mysqld]下添加如下内容[mysqld]validate_password=off然后重启数据库,重新登录数据库,修改密码。[root@qfedu~]#systemctlrestartmysqld[root@qfedu~]#mysql-uroot-p'g8R4#F*4l,WX'······此处省略部分代码······mysql>alteruser'root'@'localhost'identifiedby'qianfeng@123';QueryOK,0rowsaffected(0.11sec)使用root用户及设定的新密码登陆数据库,验证密码是否更改成功。[root@qfedu~]#mysql-uroot-p'QianFeng@123'······此处省略部分代码······mysql>由上述结果可知,密码更改成功,数据库初始化完成。4.部署主从复制集群(1)配置主服务器在配置主从复制集群时,需要在主服务器上开启二进制日志并配置唯一的服务器ID,配置完成后需要重新启动mysqld服务。编辑主服务器的配置文件f。[root@master1~]#vi/etc/f[mysqld]#添加如下代码log-bin=/var/log/mysql/mysql-binserver-id=144创建相关的日志目录并赋予权限。[root@master1~]#mkdir/var/log/mysql[root@master1~]#chownmysql.mysql/var/log/mysql目录创建完成后,重新启动mysqld服务。[root@master1~]#systemctlrestartmysqld为了保证在使用带事务的InnoDB进行复制设置时尽可能提高持久性和一致性,也需要在主服务器(master1)的f配置文件中加入以下配置项。innodb_flush_log_at_trx_commit=1sync_binlog=1在MySQL中查看skip_networking选项状态。mysql>showvariableslike'%skip_networking%';+++|Variable_name|Value|+++|skip_networking|OFF|+++1rowinset(0.00sec)由上述结果可知,skip_networking选项为关闭状态。(2)创建指定用户创建一个专门用于复制数据的用户,每个从服务器需要使用MySQL主服务器上的用户名和密码连接到主服务器上。例如,在主服务上创建用户repl,并允许该用户可以从任何主机上连接到Master上进行复制操作。mysql>createuser'repl'@'%';QueryOK,0rowsaffected(0.02sec)mysql>grantreplicationslaveon*.*to'repl'@'%'identifiedby'qianfeng@123';QueryOK,0rowsaffected(0.02sec)用户和权限设置完成后,可以尝试在从服务器上使用刚才创建的用户进行测试连接。[root@slave1~]#mysql-urepl-p'qianfeng@123'-hmaster1……mysql>由上述结果可知,用户repl可以通过从服务器登陆主服务器。(3)拷贝数据在搭建主从复制集群时,主服务上可能会已经存在数据,为了模拟真实的生产环境,在主服务器上插入测试数据。mysql>createdatabasetest;mysql>createtabletest.t1(idint,namevarchar(50));mysql>insertintotest.t1values(1,"lucky"),(2,"Cookie"),(3,"Belle");在启动复制之前,需要将主服务器中现有的数据与从服务器保持同步,在进行相关操作时需要保持客户端的正常运行,以便锁定保持不变。将主服务器中现有的数据导出,并将导出的数据复制到每个从服务器上。本次实例将使用mysqldump工具创建要复制的所有数据库转储。[root@master1~]#mysqldump-uroot-p'qianfeng@123'--all-databases--master-data=1>dbdump.db查看备份中数据记录的二进制日志的位置,以便在从服务器配置中使用。[root@master1~]#vimdbdump.db……22CHANGEMASTERTOMASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=1255;//省略部分内容//使用scp或者rsync工具将备份出来的数据传输到从服务器上。[root@master1~]#scpdbdump.dbroot@slave1:/root/(4)配置从服务器数据拷贝完成后,在从服务器的f配置文件中添加ServerID。[root@slave1~]#vi/etc/f[mysqld]server-id=145需要注意,配置修改完成后需要重新启动mysqld的服务。[root@slave1~]#systemctlrestartmysqld接下来,在从服务器的数据库中导入备份数据。mysql>source/root/dbdump.db从服务器上连接主服务器,注意相关信息的准确性。mysql>CHANGEMASTERTO->master_host='master1',->master_user='repl',->master_password='qianfeng@123',->master_log_file='mysql-bin.000001',->master_log_pos=1255;在从服务器开始复制线程。mysql>startslave;在从服务器执行如下操作可以验证线程是否工作正常。mysql>showslavestatus\G……Slave_IO_Running:YesSlave_SQL_Running:Yes……I/O线程和SQL线程的状态都为YES,证明主从复制线程启动成功。5.测试数据同步(详见第3章PPT)(1)复制状态验证(2)故障排除(3)加入新的从服务器(二)数据库读写分离实战1.数据库代理(1)代理服务器是网络信息的中转站,是信息“交流”的使者,常见的数据库代理架构。(2)代理服务器提供统一的入口供用户访问,当用户访问代理服务器时,代理服务器会将用户请求平均的分发到后端的服务器集群,并且其本身并不会做任何的数据处理。这样一来,代理服务器不仅起到负载均衡的作用,而且同时还提供了独立的端口和IP。当后端的服务器处理完请求后也会通过代理服务器返回给用户,基本的网络拓扑如图。数据库代理(DBProxy)又被称为数据库中间件,当面对大量的应用请求时,代理可以通过对数据进行分片以及自身的自动路由与聚合机制实现对不同请求的分发,以此来达到数据库的读写分离功能。2.Mycat读写分离原理Mycat是一款开源的数据库代理软件,由阿里巴巴在Cobar的基础上进行改良,不仅支持市场上主流的数据库(MySQL、Oracle、MongoDB等),而且还支持数据库中的事务操作。通过搭建Mycat代理,实现MySQL双主双从集群的读写分离。读写分离集群架构如图。3.实验环境读写分离集群中,各服务器的详细参数如表。主机名称主机IP系统Mycat40Centos7Master144Centos7Slave145Centos7Master241Centos7Slave242Centos74.部署流程(详见第3章PPT)(1)配置Java环境在Mycat服务器中使用Wget工具下载相应的JDK压缩包并解压。[root@mycat~]#lsjdk-8u311-linux-x64.tar.gz[root@mycat~]#tarxfjdk-8u311-linux-x64.tar.gz-C/usr/local/[root@mycat~]#ln-s/usr/localk1.8.0_311//usr/local/java解压完成后需要在全局配置文件内追加设置Java环境变量。[root@mycat~]#vim/etc/profileJAVA_HOME=/usr/local/javaPATH=$JAVA_HOME/bin:$PATHexportJAVA_HOMEPATH刷新全局变量,使环境变量生效。[root@mycat~]#source/etc/profile使用相关命令验证Java环境是否安装成功。[root@mycat~]#env|grepJAVAJAVA_HOME=/usr/local/java[root@mycat~]#java-versionjavaversion"1.8.0_311"Java(TM)SERuntimeEnvironment(build1.8.0_311-b11)JavaHotSpot(TM)64-BitServerVM(build25.311-b11,mixedmode)(2)配置MycatJava环境搭建完成后,即可部署Mycat服务。首先,为了让应用之间互不影响,可以为Mycat创建一个专属的用户。#查看是否已经存在Mycat用户[root@mycat~]#cat/etc/group|grepmycat[root@mycat~]#cat/etc/passwd|grepmycat#创建Mycat用户[root@mycat~]#groupaddmycat[root@mycat~]#useradd-gmycatmycat在Mycat服务器中使用wget工具进行下载,下载完成后将压缩包解压至指定路径即可。[root@mycat~]#wget//20190828135747/Mycat-server--release-20190828135747-linux.tar.gz[root@mycat~]#tarxfMycat-server--release-20190828135747-linux.tar.gz-C/usr/local/[root@mycat~]#ls/usr/local/mycat/bincatletconfliblogsversion.txt由上述结果可知,解压在/usr/local/目录下有一个mycat文件夹,将该文件夹的所有者设置为mycat用户。[root@mycat~]#chown-Rmycat:mycat/usr/local/mycatetc文件下的profile文件是设置系统级别的环境变量和启动程序的,其中的配置会对所有用户生效。此时只需修改单个用户的环境变量,编辑~/.bashrc文件。[root@mycat~]#vim~/.bashrc#添加如下代码exportMYCAT_HOME=/usr/local/mycatexportPATH=$PATH:$MYCAT_HOME/bin刷新全局变量,使环境变量生效。[root@mycat~]#source/etc/profile修改server.xml配置文件。修改schema.xml文件。(3)配置MySQL集群Mycat代理配置完成后,需要在后端的MySQL集群上设置mycatproxy的访问权限。例如,在Master1服务器上设置用户权限。mysql>grantallon*.*to'mycatproxy'@'40'identifiedby'QianFeng@123';需要注意,40为Mycat服务器的IP地址。(4)启动Mycat在MySQL服务器将权限开启完成后,在Mycat服务器上启动代理服务。[root@mycat~]#/usr/local/mycat/bin/mycatstartStartingMycat-server...当执行结果出现“StartingMycat-server”时,则表示代理服务正在启动。另外,也可以查看通过查看相应的端口来检查服务器是否正常运行。(5)配置mycat后端数据库当Mycat代理服务器启动起来后并不能直接使用,因为Mycat本身并不提供数据存储功能,所以还需要将Mycat中虚拟的数据库框架与后端真实的数据库进行绑定。为了方便读者理解,这里将在Mycat主机上安装MySQL服务,具体如下所示。[root@mycat~]#wget /get/mysql80-community-release-el7-4.noarch.rpm[root@mycat~]#yum-ylocalinstallmysql80-community-release-el7-4.noarch.rpm[root@mycat~]#yum-yinstallyum-utils[root@mycat~]#yum-config-manager--disablemysql80-community[root@mycat~]#yum-config-manager--enablemysql57-community[root@mycat~]#yumrepolistenabled|grepmysqlmysql-connectors-community/x86_64MySQLConnectorsCommunity221mysql-tools-community/x86_64MySQLToolsCommunity135mysql57-community/x86_64MySQL5.7CommunityServer544[root@mycat~]#yum-yinstallmysql-community-server[root@mycat~]#systemctlstartmysqld[root@mycat~]#systemctlenablemysqld[root@mycat~]#cat/var/log/mysqld.log|grep"temporarypassword"2022-01-21T08:54:26.713978Z1[Note]Atemporarypasswordisgeneratedforroot@localhost:&.XrF!?y,50F[root@mycat~]#vim/etc/f#添加以下内容validate_password=off[root@mycat~]#mysql-uroot-p'&.XrF!?y,50F'……mysql>ALTERUSER'root'@'localhost'IDENTIFIEDBY'qianfeng@123';QueryOK,0rowsaffected(0.00sec)mysql>\q[root@mycat~]#mysql-h-uroot-pqianfeng@123-P9066……mysql>showdatabases;++|DATABASE|++|T

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论