当前位置: 首页 > news >正文

黑龙江省农业网站建设情况网站建设费与网络维护费区别

黑龙江省农业网站建设情况,网站建设费与网络维护费区别,网站建设公司 专题制作,网站seo谷歌InnoDB Cluster 集群 Mysql-Router 代理层 前言 Mysql是现今最常用的关系型数据库之一#xff0c;高可用一直是我们对软件服务的要求。常见的Mysql高可用是主从配置#xff0c;在主节点挂掉后需要依赖监控脚本进行主从切换将从节点升级#xff0c;后台服务代码层面也…InnoDB Cluster 集群 Mysql-Router 代理层 前言 Mysql是现今最常用的关系型数据库之一高可用一直是我们对软件服务的要求。常见的Mysql高可用是主从配置在主节点挂掉后需要依赖监控脚本进行主从切换将从节点升级后台服务代码层面也需要进行相关配置。那有没有更简约的办法做到后台代码零侵入呢答案是有的本文就采用 Mysql 官方的集群模式加官方的 Router 代理层实现 Mysql 对后台服务的隐藏后台服务只需要像连接普通 Mysql 服务一样连接到 Router 即可。 这种方案优势非常明显 MySQL Router 是官方出品是轻量级代理程序后台应用不可见。Router 可自己实现读写分离。数据库服务器故障业务可以正常运行。由MySQL Router来进行自动下线不可用服务器和替换主节点。 现在直接把全套最佳实践正文发布如下Docker版本三节点。 1、InnoDB Cluster集群 1.1、Mysql8.0 standalone(建议至少3个节点才能保证高可用) 使用Mysql8.0镜像启动3个节点一主两从除server_id和report_host外其他配置均一致。 # docker-compose services:mysql-server:# container_name: mysql-serverimage: mysql/mysql-server:8.0restart: always# volumes:# - /data/mysql-server:/var/lib/mysqlnetwork_mode: hostenvironment:MYSQL_ROOT_PASSWORD: rootMYSQL_ROOT_HOST: %command: [mysqld,--server_id1,--report_host$HOSTNAME, # 通信的ip地址--report_port3306, # 通信的端口--binlog_checksumNONE,--gtid_modeON,--enforce_gtid_consistencyON,--log_bin,--log_slave_updatesON,--master_info_repositoryTABLE,--relay_log_info_repositoryTABLE,--transaction_write_set_extractionXXHASH64,--usermysql,--skip-host-cache,--skip-name-resolve,--default_authentication_pluginmysql_native_password,--binlog_transaction_dependency_trackingWRITESET]1.2、使用mysql-shell建立集群 # 手动方式 mysqlsh --uri rootmysql-server-1// init.js var password root var clusterName mysqlClustertry {print(Setting up InnoDB cluster...\n);shell.connect(root127.0.0.1:3306, password)var cluster dba.createCluster(clusterName);print(Adding instances to the cluster.);cluster.addInstance({user: root, host: 127.0.0.1, port: 3307, password: password}, {recoveryMethod:clone})print(.);cluster.addInstance({user: root, host: 127.0.0.1, port: 3308, password: password}, {recoveryMethod:clone})print(.\nInstances successfully added to the cluster.);print(\nInnoDB cluster deployed successfully.\n); } catch(e) {print(\nThe InnoDB cluster could not be created.\n\nError: e.message \n); }1.3、使用docker自动建立集群 1.3.1、docker-entrypoint.sh #!/bin/bash set -eif [ -n $1 ]; thenexec $ fiif [ -z $MYSQL_HOST ]; thenecho -e MYSQL_HOST is required.exit 1 fi if [ -z $MYSQL_PORT ]; thenecho -e MYSQL_PORT is required.exit 1 fi if [ -z $MYSQL_USER ]; thenecho -e MYSQL_USER is required.exit 1 fi if [ -z $MYSQL_PASSWORD ]; thenecho -e MYSQL_PASSWORD is required.exit 1 fimax_tries10 attempt_num0 until (echo /dev/tcp/$MYSQL_HOST/$MYSQL_PORT) /dev/null 21; doecho Waiting for mysql server $MYSQL_HOST ($attempt_num/$max_tries)sleep $(( attempt_num ))if [ attempt_num -eq max_tries ]; thenexit 1fi doneif [ -n $MYSQLSH_SCRIPT ]; thenmysqlsh $MYSQL_USER$MYSQL_HOST:$MYSQL_PORT --password$MYSQL_PASSWORD -f $MYSQLSH_SCRIPT || true fi if [ -n $MYSQL_SCRIPT ]; thenmysqlsh $MYSQL_USER$MYSQL_HOST:$MYSQL_PORT --password$MYSQL_PASSWORD --sql -f $MYSQL_SCRIPT || true fi1.3.2、Dockerfile FROM alpine:3.18 as downloadARG pkgmysql-shell-8.0.33-linux-glibc2.12-x86-64bit RUN wget https://dev.mysql.com/get/Downloads/MySQL-Shell/$pkg.tar.gz### FROM debian:bullseye-slimARG pkgmysql-shell-8.0.33-linux-glibc2.12-x86-64bit COPY --fromdownload /$pkg.tar.gz /opt COPY docker-entrypoint.sh /bin/ RUN cd /opt \tar -xzf $pkg.tar.gz \ln -s /opt/$pkg/bin/mysqlsh /bin/ \rm -f /$pkg.tar.gz \chmod 755 /bin/docker-entrypoint.sh ENTRYPOINT [docker-entrypoint.sh] CMD []1.3.3、docker-compose services:mysql-shell:container_name: mysql-shellimage: mysql-shell:8.0build: ./mysql-shell-builderrestart: on-failurevolumes:- ./scripts/:/scripts/environment:- MYSQL_HOSTmysql-server-1- MYSQL_PORT3306- MYSQL_USERroot- MYSQL_PASSWORDroot- MYSQLSH_SCRIPT/scripts/init.js- MYSQL_SCRIPT/scripts/init.sqldepends_on:- mysql-server-1- mysql-server-2- mysql-server-32、Mysql Router代理层 # docker-compose services:mysql-router:container_name: mysql-routerimage: mysql/mysql-router:8.0restart: alwaysports:- 3306:6446environment:- MYSQL_HOSTmysql-server-1- MYSQL_PORT3306- MYSQL_USERroot- MYSQL_PASSWORDroot- MYSQL_INNODB_NUM_MEMBERS3 #Wait for this number of cluster instances to be online.- MYSQL_CREATE_ROUTER_USER0depends_on:- mysql-server-1- mysql-server-2- mysql-server-3- mysql-shell3、整合 3.1、目录结构 - PROJECT_DIRECTORY- mysql-shell-builder* docker-entrypoint.sh * Dockerfile- scripts* init.js* init.sql [optional]* docker-compose.yaml3.2、docker-compose.yaml version: 3services:mysql-server-1:container_name: mysql-server-1image: mysql/mysql-server:8.0restart: alwaysvolumes:- /data/mysql-server-1:/var/lib/mysql# ports:# - 3301:3306environment:MYSQL_ROOT_PASSWORD: rootMYSQL_ROOT_HOST: %command: [mysqld,--server_id1,--binlog_checksumNONE,--gtid_modeON,--enforce_gtid_consistencyON,--log_bin,--log_slave_updatesON,--master_info_repositoryTABLE,--relay_log_info_repositoryTABLE,--transaction_write_set_extractionXXHASH64,--usermysql,--skip-host-cache,--skip-name-resolve,--default_authentication_pluginmysql_native_password,--binlog_transaction_dependency_trackingWRITESET]mysql-server-2:container_name: mysql-server-2image: mysql/mysql-server:8.0restart: alwaysvolumes:- /data/mysql-server-2:/var/lib/mysql# ports:# - 3302:3306environment:MYSQL_ROOT_PASSWORD: rootMYSQL_ROOT_HOST: %command: [mysqld,--server_id2,--binlog_checksumNONE,--gtid_modeON,--enforce_gtid_consistencyON,--log_bin,--log_slave_updatesON,--master_info_repositoryTABLE,--relay_log_info_repositoryTABLE,--transaction_write_set_extractionXXHASH64,--usermysql,--skip-host-cache,--skip-name-resolve,--default_authentication_pluginmysql_native_password,--binlog_transaction_dependency_trackingWRITESET]mysql-server-3:container_name: mysql-server-3image: mysql/mysql-server:8.0restart: alwaysvolumes:- /data/mysql-server-3:/var/lib/mysql# ports:# - 3303:3306environment:MYSQL_ROOT_PASSWORD: rootMYSQL_ROOT_HOST: %command: [mysqld,--server_id3,--binlog_checksumNONE,--gtid_modeON,--enforce_gtid_consistencyON,--log_bin,--log_slave_updatesON,--master_info_repositoryTABLE,--relay_log_info_repositoryTABLE,--transaction_write_set_extractionXXHASH64,--usermysql,--skip-host-cache,--skip-name-resolve,--default_authentication_pluginmysql_native_password,--binlog_transaction_dependency_trackingWRITESET]mysql-shell:container_name: mysql-shellimage: mysql-shell:8.0build: ./mysql-shell-builderrestart: on-failurevolumes:- ./scripts/:/scripts/environment:- MYSQL_HOSTmysql-server-1- MYSQL_PORT3306- MYSQL_USERroot- MYSQL_PASSWORDroot- MYSQLSH_SCRIPT/scripts/init.js# - MYSQL_SCRIPT/scripts/init.sqldepends_on:- mysql-server-1- mysql-server-2- mysql-server-3mysql-router:container_name: mysql-routerimage: mysql/mysql-router:8.0restart: alwaysports:- 3306:6446environment:- MYSQL_HOSTmysql-server-1- MYSQL_PORT3306- MYSQL_USERroot- MYSQL_PASSWORDroot- MYSQL_INNODB_NUM_MEMBERS3 #Wait for this number of cluster instances to be online.- MYSQL_CREATE_ROUTER_USER0depends_on:- mysql-server-1- mysql-server-2- mysql-server-3- mysql-shell后台启动 docker compose up -d后记 官方平台对服务透明自动故障处理想要的功能它都有。就是首次配置可能需要多花点时间但是参考本文相信你可以对这套实践有更快的理解欢迎点赞收藏
http://www.dnsts.com.cn/news/145176.html

相关文章:

  • 网站建设设计费会计分录应用程序开发
  • 免费行情软件网站大全下载注重网站建设 把好宣传思想关口
  • 校园网站建设方案模板下载个人如何建立微信公众号
  • 百度网站关键词排名助手正邦设计公司招聘要求
  • 一屏网站模板下载 迅雷下载 迅雷下载地址游戏租号网站开发
  • 自己的电脑可以做网站服务器做公司网站找谁
  • 公益网站建设 参考文献网站开发的阶段流程图
  • 网站建设 业务培训免费下载素材的设计网站
  • 网站招聘怎么做个人博客主页代码
  • 郑州网站运营专业乐云seo双语 网站 数据怎么做
  • 网站建设钱wordpress的用户管理实现原理
  • 庆阳北京网站建设广东省建筑施工企业安全管理人员
  • 包装公司网站模板百度平台我的订单查询在哪里
  • 专业的医疗网站建设免费查公司信息哪个软件好
  • 做网站用php学生制作设计个人网站
  • 浙江省建设网站徐叨法杭州外贸网站建设公司排名
  • 网站设计赏析wordpress小工具宽度
  • t型布局网站大学生创业做网站的筹资方式
  • 上海免费网站建设咨询seo在线培训机构
  • 太原企业网站制作公司海南网页设计
  • 生意宝做网站行吗因酷西安网站建设公司怎么样
  • 网站运营推广主要做什么的制作网页可以用word吗
  • 网站是用dw做的吗郑州网站seo优化公司
  • 沈阳中讯国际网站建设福州建网站哪家好
  • 鄂州网站建设企业推广网站群建设方案6
  • 专做PPP项目网站门户网站平台建设方案
  • 做专属淘客网站外汇网站建设制作
  • wordpress双语建站哪些网站可以做设计
  • 如何选择网站建设平台网站服务公司哪个好
  • 前端优化网站wordpress账号密码