发布网友 发布时间:2022-04-25 16:03
共2个回答
懂视网 时间:2022-05-02 15:15
. /etc/rc.d/init.d/functions
case "$1" in
start)
ifconfig lo:0 $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP
/sbin/route add -host $SNS_VIP dev lo:0
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
sysctl -p >/dev/null 2>&1
echo "RealServer Start OK"
;;
stop)
ifconfig lo:0 down
route del $SNS_VIP >/dev/null 2>&1
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
echo "RealServer Stoped"
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac
exit 0
授权
chmod 750 realserver
启动
service realserver start
再次ifconfig查询虚拟IP是否配置成功
2台服务器安装keepalived
yum –y install keepalived
配置keepalived.conf文件,安装的位置可能不能,本实例采用默认安装文件(/etc/keepalived/keepalived.conf)
global_defs {
# notification_email {
# admin@gool.com
# }
# notification_email_from master@gool.com
# smtp_server smtp.exmail.qq.com
# smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state MASTER ##备份LVS服务器设置为BACKUP
interface eth0 # #设置对外服务的接口
virtual_router_id 51
priority 100 #设置优先级,数值越大,优先级越高,backup设置为99,这样就能实现当master宕机后自动将backup变为master,而当原master恢复正常时,则现在的master再次变为backup。
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.110.200 ##设置VIP,可以多个,每个占一行。 此 IP也是对外映射的IP
}
}
virtual_server 192.168.110.200 80 {
delay_loop 6
lb_algo wrr
lb_kind DR
nat_mask 255.255.255.0
persistence_timeout 0
protocol TCP
real_server 192.168.110.5 80 {
weight 6
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 192.168.110.6 80 {
weight 3
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
对于udp的监听,由于keepalived不直接支持,需要使用MISC_CHECK健康检查,MISC_CHECK此方法根据shell脚本的返回值做判断,具体参考keepalived手册
启动keepalived
service keepalived start
3台MySQL数据库安装,数据库的安装请参考http://blog.51cto.com/9695005/2054161
1,mysql主服务器的配置
配置my.cnf
设置server-id和log-bin,主服务器和从服务器server-id不能一样,
可以使用查看
SHOW VARIABLES LIKE 'server_id';
重启mysql服务器
service mysqld restart
1) Mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | 106 | | |
+------------------+----------+--------------+------------------+
2) 记录下 FILE 及 Position 的值,在后面进行从服务器操作的时候需要用到。
添加一个用户,给从服务器使用
2配置从服务器
change master to
master_host='主服务器ip',
master_user='gool',
master_password='gool',
master_log_file='mysql-bin.000001',
master_log_pos=106;
1) 正确执行后启动Slave同步进程
2) 启动slave
mysql> start slave;
3) 查看slave状态
mysql> show slave statusG
4) 其中Slave_IO_Running 与 Slave_SQL_Running 的值都必须为YES,才表明状态正常。
1:先确定主,从库上没有任何自定义表
2:主服务器上的操作
在主服务器上创建数据库gool_db
mysql> create database gool_db;
在主服务器上创建表itcast_tb
mysql> create table gool_tb(id int(3),name char(9));
在主服务器上的表itcast_tb中插入记录
mysql> insert into gool_tb values(01,'gool1');
3:从服务器上查看是否已经同步?
1:server_id 配置的一样或是配置的没有更新到Mysql数据中来
2:防火墙拦截了3306端口
3:用户与密码不正确
4:Mysql不允许其它机器访问
mysql-proxy服务器配置
查看lua是否安装
rpm -qa | grep lua
安装依赖
yum -y install gcc* gcc-c++*autoconf* automake* zlib* libxml* ncurses-devel* libmcrypt* libtool* flex* pkgconfig* libevent* glib* readline*
tar xzvfmysql-proxy-**.tar.gz
cd mysql-proxy-**
cp lib/rw-splitting.lua /opt/mysql-proxy/scripts --此目录自己创建
修改默认连接,进行快速测试,不修改的话要达到连接数为4时才启用读写分离
vim /opt/mysql-proxy/scripts/rw-splitting.lua
=============================
-- connection pool
if not proxy.global.config.rwsplit then
proxy.global.config.rwsplit = {
min_idle_connections = 1, //默认为4
max_idle_connections = 1, //默认为8
is_debug = false
}
启动mysql-proxy
./mysql-proxy --proxy-backend-addresses="IP:数据库端口" --proxy-read-only-backend-addresses="IP:数据库端口" --proxy-lua-script=/opt/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua
最后:
配置web项目,启动,测试环境
lvs+keepalived+tomcat+mysql集群
标签:架构 主从复制 集群 lvs+keepalived
热心网友 时间:2022-05-02 12:23
首先,在keepalived的配置文件中,添加realserver(后端真实服务器)的代码通常如下:
tomcat默认端口为8080,这里假设你已经把端口改为80端口了。
上面的TCP_CHECK 部分,就是每隔3秒对这台realserver的80端口进行健康检测,当80端口不可达的时候,keepalived会剔除这台服务器,当其恢复时再加进来。
另外,还有一种与TCP_CHECK不同的健康监测方式,即HTTP_GET。TCP_CHECK是通过监测端口是否可以访问来判断是否正常,而HTTP_GET是通过检测网页是否可以访问来判断服务器的健康状态。
一般来说,HTTP_GET更为准确。另外,欢迎通过百度“成航先森”进入我的博客,了解更多关于keepalived的相关问题。