基于nginx和Mycat的信息系统架构及其配置方法
文献发布时间:2023-06-19 12:02:28
技术领域
本发明涉及软件技术领域,特别涉及一种基于nginx和Mycat的信息系统架构及其配置方法。
背景技术
Nginx,发音为“engine X”,是一种高性能的HTTP(HTTP-Hypertext transferprotocol,超文本传输协议)和反向代理服务器,同时也是一种IMAP(Internet MessageAcess Protocol,互联网邮件访问协议)/POPS(Post Office Protocol3,即邮局协议的第3个版本)/SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)代理服务器。Nginx专为性能优化而开发,性能是其最重要的考量,实现上非常注重效率。
Mycat是一个强大的数据库中间件,不仅仅可以用作读写分离、分库分表以及容灾备份,而且可以用于多租户应用开发、云平台基本设施、使架构具备很强的适应性和灵活性,借助于Mycat智能优化模块,系统的数据访问瓶颈和热点一目了然,根据这些统计分析数据,可以自动或手工调整后端存储,将不同的表映射到不同的存储引擎上,而不用改变整个应用的代码。
在信息系统创建初期,一般都使用单台机器对台提供集中式服务,但是随着业务量越来越多,信息系统在性能上和稳定性上都有了更大的挑战,大量用户访问、高并发请求、数据库容灾等方面的问题日益突显。
发明内容
本发明针对上述问题,提供一种使用高性能的Http服务器及反向代理服务器,实现数据库自动故障切换,支持数据库读写分离的信息系统架构方案。
为实现以上目的,本发明通过以下技术方案予以实现:
一种基于nginx和Mycat的信息系统架构,包含至少一台反向代理nginx服务器、多台Http服务器、至少一台Mycat数据库中间件服务器、多台Mysql数据库服务器,其中:
反向代理nginx服务器配置包括,用于接收到客户端Http请求,向Http服务器发送Http请求;从Http服务器获取结果反馈,将结果反馈发送给客户;
Http服务器配置包括,接受反向代理nginx服务器发送的Http请求,将Http请求转发至Mycat数据库中间件服务器;获取Mycat数据库中间件服务器发送的结果反馈,并将结果反馈转发至反向代理nginx服务器;
Mycat数据库中间件服务器配置包括,接收所述Http服务器发送的数据请求,根据自身配置将数据请求处理为分发请求,并将分发请求分发给Mysql服务器,获取Mysql数据库服务器的反馈数据,将反馈数据处理为结果反馈,并将结果反馈发送至Http服务器;
Mysql数据库服务器配置包括,接收所述Mycat数据库中间件服务器发送的分发请求,并将反馈数据发送至给Mycat数据库中间件服务器。
进一步地,所述基于nginx和Mycat的信息系统架构还包括:执行器,配置包括向反向代理nginx服务器发送Http请求,并获取反向代理nginx服务器的结果反馈。
优选地,所述反向代理nginx服务器配置还包括:根据从所述测试执行器接收到的Http请求,获取到的所述Http请求对应的后端节点。
本发明第二个方面,一种基于nginx和Mycat的信息系统架构运行方式,包括以下步骤:
反向代理nginx服务器接收到客户端Http请求,向Http服务器发送Http请求;
Http服务器接受反向代理nginx服务器发送的Http请求,将Http请求转发至Mycat数据库中间件服务器;
Mycat数据库中间件服务器接收所述Http服务器发送的数据请求,根据自身配置将数据请求处理为分发请求,并将分发请求分发给Mysql服务器;
Mysql数据库服务器接收所述Mycat数据库中间件服务器发送的分发请求,并将反馈数据发送至给Mycat数据库中间件服务器;
Mycat数据库中间件服务器获取Mysql数据库服务器的反馈数据,将反馈数据处理为结果反馈,并将结果反馈发送至Http服务器;
Http服务器获取Mycat数据库中间件服务器发送的结果反馈,并将结果反馈转发至反向代理nginx服务器;
反向代理nginx服务器从Http服务器获取结果反馈,将结果反馈发送给客户。
优选地,所述一种基于nginx和Mycat的信息系统架构运行方式,还包括以下步骤:
反向代理nginx服务器根据从所述测试执行器接收到的Http请求,获取到的所述Http请求对应的后端节点。
本发明第三个方面,所述基于nginx和Mycat的信息系统配置方法,包括以下步骤:
在所述反向代理nginx服务器上安装部署nginx;
修改nginx.conf文件,进行优化配置;
根据所述Http服务器地址修改反向代理nginx服务器配置文件,配置集群负载均衡;
在所述多台Mysql数据库服务器上分别安装部署Mysql;
配置所述Mysql数据库服务器主从同步;
在所述Mycat数据库中间件服务器上安装部署Mycat;
根据所述Mysql服务器的配置,修改所述Mycat数据库中间件服务器中schema.xml文件,配置读写分离、故障切换。
进一步地,所述修改反向代理nginx服务器配置文件,配置集群负载均衡包括:
根据所述Http服务器配置和端口,修改后端转发地址以及代理服务器的主域名和端口号,重新启动。
进一步地,配置所述Mysql数据库服务器主从同步;
主库配置:创建专用于主从复制的用户;查看状态;
从库配置:复制主从复制地用户信息;开始复制;查看状态。
进一步地,所述根据所述Mysql服务器的配置,修改所述Mycat数据库中间件服务器中schema.xml文件,配置读写分离、故障切换,包括以下子步骤:
打开解压目录下conf文件夹中的schema.xml,根据Mysql数据库服务器的主从同步数据库关系进行修改;
打开所述schema.xml文件中配置的用户远程连接权限;
启动Mycat。
本发明通过以上方式,实现了nginx与Mycat的结合,使用户能够根据环境需要,快速形成软件产品架构体系。
与现有架构方案相比较,至少具有以下优势:
1、能够快速建立技术架构体系,所使用产品开源,成本低,易掌握。
2、简化了复杂功能的配置,减少了环境部署的时间开销。
3、引入Mycat数据库中间件,业务扩展性强,可以适应更为复杂的需求。
附图说明
图1是本发明实施例二一种基于nginx和Mycat的信息系统架构运行方式流程图;
图2是本发明实施例1一种基于nginx和Mycat的信息系统架构方案结构示意图。
具体实施方式
为使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体实施方式,进一步阐述发明。
实施例一
一种基于nginx和Mycat的信息系统架构,包含至少一台反向代理nginx服务器、多台Http服务器、至少一台Mycat数据库中间件服务器、多台Mysql数据库服务器,其中:
反向代理nginx服务器配置包括,用于接收到客户端Http请求,向Http服务器发送Http请求;从Http服务器获取结果反馈,将结果反馈发送给客户;
Http服务器配置包括,接受反向代理nginx服务器发送的Http请求,将Http请求转发至Mycat数据库中间件服务器;获取Mycat数据库中间件服务器发送的结果反馈,并将结果反馈转发至反向代理nginx服务器;
Mycat数据库中间件服务器配置包括,接收所述Http服务器发送的数据请求,根据自身配置将数据请求处理为分发请求,并将分发请求分发给Mysql服务器,获取Mysql数据库服务器的反馈数据,将反馈数据处理为结果反馈,并将结果反馈发送至Http服务器;
Mysql数据库服务器配置包括,接收所述Mycat数据库中间件服务器发送的分发请求,并将反馈数据发送至给Mycat数据库中间件服务器。
进一步地,所述基于nginx和Mycat的信息系统架构还包括:执行器,配置包括向反向代理nginx服务器发送Http请求,并获取反向代理nginx服务器的结果反馈。
优选地,所述反向代理nginx服务器配置还包括:根据从所述测试执行器接收到的Http请求,获取到的所述Http请求对应的后端节点。
实施例二
一种基于nginx和Mycat的信息系统架构运行方式,包括以下步骤:
反向代理nginx服务器接收到客户端Http请求,向Http服务器发送Http请求;
Http服务器接受反向代理nginx服务器发送的Http请求,将Http请求转发至Mycat数据库中间件服务器;
Mycat数据库中间件服务器接收所述Http服务器发送的数据请求,根据自身配置将数据请求处理为分发请求,并将分发请求分发给Mysql服务器;
Mysql数据库服务器配置包括,接收所述Mycat数据库中间件服务器发送的分发请求,并将反馈数据发送至给Mycat数据库中间件服务器;
Mycat数据库中间件服务器获取Mysql数据库服务器的反馈数据,将反馈数据处理为结果反馈,并将结果反馈发送至Http服务器;
Http服务器获取Mycat数据库中间件服务器发送的结果反馈,并将结果反馈转发至反向代理nginx服务器;
反向代理nginx服务器从Http服务器获取结果反馈,将结果反馈发送给客户。
优选地,所述一种基于nginx和Mycat的信息系统架构运行方式,还包括以下步骤:
反向代理nginx服务器根据从所述测试执行器接收到的Http请求,获取到的所述Http请求对应的后端节点。
实施例三
所述基于nginx和Mycat的信息系统配置方法,包括以下步骤:
步骤1:在所述反向代理nginx服务器上安装部署nginx;
具体的,根据所述服务器的操作系统下载对应的nginx安装包,进行解压安装即可。启动服务后查看进程是否存在,如存在即安装启动完成,如不存在即启动失败,进入nginx目录中的logs文件夹查看error.log日志文件。
步骤2:修改nginx.conf文件,进行优化配置;
常规的,设置工作进程数为cpu核心数,设置最大连接数为cpu*2048,设置客户端链接超时时间,设置编码格式,增大缓存区大小等。
步骤3:根据所述Http服务器地址修改反向代理nginx服务器配置文件,配置集群负载均衡;
具体的,根据所述Http服务器配置和端口,修改后端转发地址以及代理服务器的主域名和端口号,重新启动。
步骤4:在所述多台Mysql数据库服务器上分别安装部署Mysql;
具体的,根据所述Mysql数据库服务器系统和业务需要,下载对应版本的Mysql安装包,默认安装即可。
步骤5:配置所述Mysql数据库服务器主从同步;
具体的,
主库配置:
A:创建专用于主从复制的用户。执行语句;
Grant replication slave on *.* to ‘user’@’IP’ identified by‘password’;
Flush PRIVILEGES;
B:查看状态,show master status;
从库配置:
A:执行语句:
Change master to
Master_host = “IP”(主从复制用户的IP地址)
Master_user = “user”(主从复制用户)
Master_password = “password”(主从复制用户的密码)
Master_port = 3309(端口号)
Master_log_file = “Mysql-bin.000003”(所述主库配置中B显示的file文件名)
Master_log_pos= 604(所述主库配置中B显示的position大小)
B:开始复制,start slave;
C:查看状态,show slave status,出现两个yes则代表操作成功,如出现connecting,请检查网络、从库配置是否正确;
步骤6:在所述Mycat数据库中间件服务器上安装部署Mycat;
具体的,下载与所述Mycat数据库中间件服务器对应系统的适当版本Mycat,直接解压至目标目录即可。
步骤7:根据所述步骤4、步骤5中Mysql服务器的配置,修改所述Mycat数据库中间件服务器中schema.xml文件,配置读写分离、故障切换;
具体的,
A:打开所述步骤7解压目录下conf文件夹中的schema.xml,根据所述步骤5中数据库关系进行修改。
B:配置完成,打开所述schema.xml文件中配置的用户远程连接权限,执行:
Grant all privileges on *.* to ‘user’@’IP’ identified by ‘password’with grant option;;
Flush PRIVILEGES;
C:启动Mycat
本发明实现了nginx与Mycat的结合,使用户能够根据环境需要,快速形成软件产品架构体系;所使用产品开源,成本低,易掌握;简化了复杂功能的配置,减少了环境部署的时间开销;引入Mycat数据库中间件,业务扩展性强,可以适应更为复杂的需求。
以上显示和描述了本发明的基本原理和主要特征和优点。本领域技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都属于本发明要求保护的范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
- 基于nginx和Mycat的信息系统架构及其配置方法
- 基于Nginx自研扩展模块自动拉取服务注册中心TCP配置方法