网站建设0基础,哈尔滨快速制作网站,如何做彩票网站的源码,网站编程代码大全一、环境搭建
Vitess环境搭建#xff1a;
具体vitess安装不再赘述#xff0c;主要是需要启动3个vtgate#xff08;官方推荐vtgate和vtablet数量一致#xff09;
操作#xff1a;
在vitess/examples/common/scripts目录中#xff0c;修改vtgate-up.sh文件#xff0c;…一、环境搭建
Vitess环境搭建
具体vitess安装不再赘述主要是需要启动3个vtgate官方推荐vtgate和vtablet数量一致
操作
在vitess/examples/common/scripts目录中修改vtgate-up.sh文件
cp vtgate-up.sh vtgate-up-2.sh
cp vtgate-up.sh vtgate-up-3.sh
修改vtgate-up-2.sh文件 source $(dirname ${BASH_SOURCE[0]:-$0})/../env.sh cell${CELL:-test} web_port15002 grpc_port15992 mysql_server_port15307 mysql_server_socket_path/tmp/mysql2.sock # Start vtgate. # shellcheck disableSC2086 vtgate \ $TOPOLOGY_FLAGS \ --log_dir $VTDATAROOT/tmp \ --log_queries_to_file $VTDATAROOT/tmp/vtgate_querylog2.txt \ --port $web_port \ --grpc_port $grpc_port \ --mysql_server_port $mysql_server_port \ --mysql_server_socket_path $mysql_server_socket_path \ --cell $cell \ --cells_to_watch $cell \ --tablet_types_to_wait PRIMARY,REPLICA \ --service_map grpc-vtgateservice \ --pid_file $VTDATAROOT/tmp/vtgate2.pid \ --mysql_auth_server_impl none \ $VTDATAROOT/tmp/vtgate2.out 21 # Block waiting for vtgate to be listening # Not the same as healthy echo Waiting for vtgate to be up... while true; do curl -I http://$hostname:$web_port/debug/status /dev/null 21 break sleep 0.1 done; echo vtgate is up! echo Access vtgate at http://$hostname:$web_port/debug/status disown -a
修改vtgate-up-3.sh文件 # This is an example script that starts a single vtgate. source $(dirname ${BASH_SOURCE[0]:-$0})/../env.sh cell${CELL:-test} web_port15003 grpc_port15993 mysql_server_port15308 mysql_server_socket_path/tmp/mysql3.sock # Start vtgate. # shellcheck disableSC2086 vtgate \ $TOPOLOGY_FLAGS \ --log_dir $VTDATAROOT/tmp \ --log_queries_to_file $VTDATAROOT/tmp/vtgate_querylog3.txt \ --port $web_port \ --grpc_port $grpc_port \ --mysql_server_port $mysql_server_port \ --mysql_server_socket_path $mysql_server_socket_path \ --cell $cell \ --cells_to_watch $cell \ --tablet_types_to_wait PRIMARY,REPLICA \ --service_map grpc-vtgateservice \ --pid_file $VTDATAROOT/tmp/vtgate3.pid \ --mysql_auth_server_impl none \ $VTDATAROOT/tmp/vtgate3.out 21 # Block waiting for vtgate to be listening # Not the same as healthy echo Waiting for vtgate to be up... while true; do curl -I http://$hostname:$web_port/debug/status /dev/null 21 break sleep 0.1 done; echo vtgate is up! echo Access vtgate at http://$hostname:$web_port/debug/status disown -a
在执行vtgate-up.sh脚本时执行vtgate-up-2.shvtgate-up-3sh
这样就可以同时启动3个vtgate而且随便连接哪一个vtgate效果一样。 搭建HAProxy
前置条件
epel-releasegccsystemd-devel
下载HAProxy
wget https://www.haproxy.org/download/2.6/src/haproxy-2.6.2.tar.gz
解压源码包
tar zxf haproxy-2.6.2.tar.gz
从源码编译 HAProxy 应用
cd haproxy-2.6.2
make clean
make -j 8 TARGETlinux-glibc USE_THREAD1
make PREFIX${/app/haproxy} SBINDIR${/app/haproxy/bin} install # 将 ${/app/haproxy} 和 ${/app/haproxy/bin} 替换为自定义的实际路径。
重新配置 profile 文件
echoexport PATH/app/haproxy/bin:$PATH /etc/profile
source /etc/profile
检查 HAProxy 是否安装成功
which haproxy 增加一个配置文件/opt/haproxy/haproxy.cnf格式如下 global # 全局配置。 log 127.0.0.1 local2 # 定义全局的 syslog 服务器最多可以定义两个。 chroot /opt/haproxy/lib # 更改当前目录并为启动进程设置超级用户权限从而提高安全性。 pidfile /opt/haproxy/pid # 将 HAProxy 进程的 PID 写入 pidfile。 maxconn 4096 # 单个 HAProxy 进程可接受的最大并发连接数等价于命令行参数 -n。 nbthread 48 # 最大线程数。线程数的上限与 CPU 数量相同。 user haproxy # 同 UID 参数。 group haproxy # 同 GID 参数建议使用专用用户组。 daemon # 让 HAProxy 以守护进程的方式工作于后台等同于命令行参数“-D”的功能。当然也可以在命令行中用“-db”参数将其禁用。 stats socket /opt/haproxy/stats # 统计信息保存位置。 defaults # 默认配置。 log global # 日志继承全局配置段的设置。 retries 2 # 向上游服务器尝试连接的最大次数超过此值便认为后端服务器不可用。 timeout connect 2s # HAProxy 与后端服务器连接超时时间。如果在同一个局域网内可设置成较短的时间。 timeout client 30000s # 客户端与 HAProxy 连接后数据传输完毕即非活动连接的超时时间。 timeout server 30000s # 服务器端非活动连接的超时时间。 listen admin_stats # frontend 和 backend 的组合体此监控组的名称可按需进行自定义。 bind 0.0.0.0:8080 # 监听端口。 mode http # 监控运行的模式此处为 http 模式。 option httplog # 开始启用记录 HTTP 请求的日志功能。 maxconn 10 # 最大并发连接数。 stats refresh 30s # 每隔 30 秒自动刷新监控页面。 stats uri /haproxy # 监控页面的 URL。 stats realm HAProxy # 监控页面的提示信息。 stats auth admin:pingcap123 # 监控页面的用户和密码可设置多个用户名。 stats hide-version # 隐藏监控页面上的 HAProxy 版本信息。 stats admin if TRUE # 手工启用或禁用后端服务器HAProxy 1.4.9 及之后版本开始支持。 listen vitess-cluster # 配置 database 负载均衡。 bind 0.0.0.0:3390 # 浮动 IP 和 监听端口。 mode tcp # HAProxy 要使用第 4 层的传输层。 balance leastconn # 连接数最少的服务器优先接收连接。leastconn 建议用于长会话服务例如 LDAP、SQL、TSE 等而不是短会话协议如 HTTP。该算法是动态的对于启动慢的服务器服务器权重会在运行中作调整。 server vitess-1 127.0.0.1:15306 check inter 2000 rise 2 fall 3 # 检测 15306 端口检测频率为每 2000 毫秒一次。如果 2 次检测为成功则认为服务器可用如果 3 次检测为失败则认为服务器不可用。 server vitess-2 127.0.0.1:15307 check inter 2000 rise 2 fall 3 server vitess-3 127.0.0.1:15308 check inter 2000 rise 2 fall 3
启动:
haproxy -f /opt/haproxy/haproxy.cnf 测试
1.使用Navicat连接 可以成功看到数据库数据 2.使用HAProxy监控
登录地址http://IP:8080/haproxy
例如http://172.23.185.18:8080/haproxy
账号:admin
密码:vitess123
登录成功后可以看到3个vtgate正在工作