Mysql:Proxy---Atlas的配置过程

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
传统型负载均衡 CLB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
简介:

Atlas是一个mysql-proxy软件,它所在的服务器也叫做中间件服务器,它存活的意义就是使mysql读写分离。这里用图说明:


原本我们的服务器与数据库的连接是很直观的:

wKioL1gcA4XBd71LAAAWdMMGZOI027.png


而引入了atlas之后,就是这样的过程了:

wKioL1gcKqSDsAmrAAA8xYrIw6g726.png


安装atlas的方法很简单,这里我们使用360公司的atlas,先登陆https://github.com/Qihoo360/Atlas/releases/,在如图的地方选择Atlas-2.2.1.el6.x86_64.rpm,把这个rpm搞到atlas服务器上,然后#rpm -i Atlas-2.2.1.el6.x86_64.rpm 即可。

wKiom1icDOLjLSSaAAEldp4f7kA100.png


现在做一下试验,本次试验都是由阿里云提供,其他云厂家的操作也是同理。实验材料如表格:


atlas服务器 10.168.157.193
模块服务器 10.174.178.61
目标读数据库 rr-bp1qn16ffr8s3y5s4.mysql.rds.aliyuncs.com
目标主数据库 rm-bp10ky13h2d8y007a.mysql.rds.aliyuncs.com


首先登陆atlas服务器,修改配置文件,#cd /usr/local/mysql-proxy/conf,然后建立一个叫openhlstest.cnf,整个cnf文件如下(多余文字已经省略):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[mysql-proxy]
admin-username = user
admin-password =  pwd
proxy-backend-addresses =  rm -bp10ky13h2d8y007a.mysql.rds.aliyuncs.com:3306  #填写主库
proxy- read -only-backend-addresses = rr-bp1qn16ffr8s3y5s4.mysql.rds.aliyuncs.com:3306@1  #填写读库
pwds = 填写数据库对应账号密码,注意,密码要经过bin /encrypt 的再加工
daemon =  true
keepalive =  true
event-threads = 8
log-level = debug
log-path =  /usr/local/mysql-proxy/log
sql-log = ON
sql-log-slow = 10
#instance = test
proxy-address = 0.0.0.0:3310  #一台atlas可以负载多个数据库,但是端口要错开,比如3306、3307、3308,这里我填写的是3310...
admin-address = 0.0.0.0:2348  #这里也是,注意端口一定要错开,不然的话atlas无法启动。

编写完毕之后,保存退出,然后来到/usr/local/mysql-proxy/bin里,启动一下,注意!在启动之前需要在阿里云控制台里把这台atlas添加到数据库的白名单里,启动过程如图:

wKioL1gcLuGwvhPyAACnZ4fMVd8442.png

wKioL1gcL6qxSPOLAAFO2kxQ6Q0935.png


可以看到atlas已经成功启动,并且我当前的机器里复用了多个atlas服务,这些服务之间互不干扰。


然后我们就要验证一下了。

wKioL1gcM9mTT0hgAACPefPXWVU825.png

可见现在这台atlas本身已经与数据库“融为一体”了,访问atlas本身即是访问到我们conf文件里面的那个数据库。


现在我们登陆10.174.178.61这台模块服务器,来测试一下是否可以登陆到这台atlas的“数据库”。

wKiom1gcRYjxxdelAAF-5wuycR8255.png

wKioL1gcRjqwZNOwAACWjbZcskE409.png


连接成功!模块服务器也已经可以通过atlas来访问到目标服务器了,这样就是实现了mysql的读写分离。


如果不是一个单台的atlas,而是一个atlas集群怎么办?那么就需要申请一个负载均衡,把这几台atlas添加到负载均衡里,同时负载均衡需要监听对应的3307,3308...这样的端口,然后让模块服务器区访问这个负载均衡的内网ip地址可破。


模块程序则需要重新启动进程就可以连接上atlas这个“数据库”了,注意!如果模块们是需要通过zk来获取数据库host以及账号密码的话,zk里面的配置项也要随之更改,重点是别忘了加上port:3307、3308这样自己设定的端口号。不然的话,会报“

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure  

Last packet sent to the server was 0 ms ago.” 这样的错误。



 本文转自 苏幕遮618 51CTO博客,原文链接:http://blog.51cto.com/chenx1242/1869527

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3天前
|
SQL 关系型数据库 MySQL
MySQL Workbench的安装与配置
MySQL Workbench的安装与配置
|
16天前
|
Prometheus 监控 关系型数据库
数据库同步革命:MySQL GTID模式下主从配置的全面解析
数据库同步革命:MySQL GTID模式下主从配置的全面解析
65 0
|
2天前
|
关系型数据库 MySQL 数据库
MySQL8.0.36 安装配置教程(保姆级,包含图文讲解,环境变量的配置)适合小白
MySQL8.0.36 安装配置教程(保姆级,包含图文讲解,环境变量的配置)适合小白
|
5天前
|
SQL 监控 关系型数据库
实时计算 Flink版产品使用问题之使用mysql cdc配置StartupOptions.initial()全量之后就不增量了,是什么原因
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
11天前
|
存储 DataWorks 关系型数据库
DataWorks产品使用合集之在使用数据集成中的同步任务从mysql同步表到oss,存储为csv时,最终生成的文件中没有表头,这个属性可以在哪里配置么
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
8天前
|
关系型数据库 MySQL 数据库
Mysql—8.0.21下载安装配置教程
该教程介绍了MySQL的下载与安装步骤。建议从官网下载MySQL 8.0及以上版本,也可通过提供的百度网盘链接获取。解压后,在指定目录创建my.ini配置文件,并替换basedir和datadir为自己实际的安装路径。接着,将MySQL安装目录的bin文件夹添加到系统环境变量Path中。以管理员模式运行CMD,进入bin目录,使用`mysqld --initialize --console`初始化数据库,记下生成的临时密码。最后,用`net start mysql`启动服务,`mysql -u root -p`登录并使用ALTER指令修改初始密码。
74 1
|
10天前
|
分布式计算 DataWorks 关系型数据库
DataWorks操作报错合集之数据源同步时,使用脚本模式采集mysql数据到odps中,使用querySql方式采集数据,在脚本中删除了Reader中的column,但是datax还是报错OriginalConfPretreatmentUtil - 您的配置有误。如何解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
9天前
|
运维 关系型数据库 MySQL
Serverless 应用引擎产品使用合集之如何配置MySQL的白名单IP
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
12天前
|
SQL 存储 关系型数据库
Mysql配置及常见命令
mysql 语法规范 SQL不区分大小写,但是建议关键字大写,表名、列名要小写; 每个句子写完,需要以分号结尾;
20 3
|
3天前
|
Java 关系型数据库 流计算
实时计算 Flink版操作报错合集之配置cats进行从MySQL到StarRocks的数据同步任务时遇到报错,该怎么办
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
177 0