简介 搭建时间:2014/07/24 搭建系统:centos 6.2,centos 6.5 服务器架构 192.168.0.221 twemproxy,redis master01,redis slave02 192.168.0.220 twemproxy,redis master02,redis slave01 192.168.0.10 keepalived master 192.168.0.20 keepalived slav
简介
搭建时间:2014/07/24
搭建系统:centos 6.2,centos 6.5
服务器架构
192.168.0.221 twemproxy,redis master01,redis slave02
192.168.0.220 twemproxy,redis master02,redis slave01
192.168.0.10 keepalived master
192.168.0.20 keepalived slave
服务版本:
redis?: 2.4.10
keepalived: 1.2.2
twemproxy-master: 0.3.0
Redis
安装Redis
解压redis源码包;
根据README的介绍,完成安装步骤(make)
将redis文件夹mv到/usr/local下面,完成安装
配置redis的master/slave
新建redis配置文件路径
登录到192.168.0.221服务器
mkdir /var/redis/master01/{conf,data,logs,run};
mkdir /var/redis/slave02/{conf,data,logs,run};
登录到192.168.0.220服务器
mkdir /var/redis/master02/{conf,data,logs,run};
mkdir /var/redis/slave01/{conf,data,logs,run};
创建redis.conf文件(master和slave都大致一样,只有2行不同)
dir /var/redis/master01/? #redis的地址
pidfile ./run/redis.pid? #相对路径地址是相当dir来说的
logfile ./logs/stdout.log
dbfilename ./data/dump.rdb
bind 192.168.0.220 #监听服务地址
daemonize yes
requirepass 123qwe #服务密码
masterauth 123qwe? #这个只是在slave服上面配置,master不需要配置
slaveof 192.168.0.221 6601 #这个只是需要在slave上面配置,master不需要配置,指定master的地址
databases 16
port 6601 # 服务端口
timeout 0
loglevel verbose
save 900 1
save 300 10
rdbcompression yes
slave-serve-stale-data yes #如果master断了,slave是否提供服务
appendonly no
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
slowlog-log-slower-than 10000
slowlog-max-len 1024
启动redis服务 先启动redis master服务,然后再启动redis slave服务
登录到slave服务器,执行./redis-cli -h 192.168.0.220 -p 6601 -a 123qwe info,如果配置正确,最后会显示
role:slave
master_host:192.168.0.221
master_port:6601
master_link_status:up
master_last_io_seconds_ago:8
master_sync_in_progress:0
说明redis的master/slave已经完成配置
twemproxy
安装twemproxy
首先去下载最新的twemproxy,在github上面找到最新版本
如果是采用和我一样的系统,需要先更新autoconf,系统自带版本过低,编译会报错
CFLAGS=”-ggdb3 -O0″ autoreconf -fvi
./configure –prefix=/usr/local/twemproxy? –enable-debug=log
make && make install
配置twemproxy
这里配置是采用2台服务器搭建,每个服务器都安装一个twemproxy,配置一样,前端使用keepalived进行LVS分发
登陆到192.168.0.221/220,修改conf下面的nutcracker.yml,配置如下:
redis1:
listen: 0.0.0.0:10000
hash: fnv1a_64 #分发算法
distribution: ketama
timeout: 400
backlog: 1024
preconnect: true
auto_eject_hosts: true
server_retry_timeout: 2000 # 重试的时间
server_failure_limit: 3 #失败尝试次数,达到上限就取消后端分发权限
servers:
- 192.168.0.220:6601:1? # redis实例的ip,端口,权重
- 192.168.0.221:6601:1
redis启动服务
/usr/local/twemproxy/sbin/nutcracker -c /usr/local/twemproxy/conf/nutcracker.yml -d
redis测试服务
随便另外找一个安装有redis的服务器
./redis-cli -h 192.168.0.220 -p 10000 -a 123qwe
如果没有报错,说明成功!
keepalived
安装keepalived
登录到192.168.0.10
yum install kernel-devel
./configure –prefix=/usr/local/keepalived –with-kernel-dir=/usr/src/kernels/2.6.18-308.el5-x86_64/
make && make install
在make之前,如果现实如下结果,表示你的系统可以完成keepalived的各项功能
Keepalived configuration
————————
Keepalived version?????? : 1.2.2
Compiler???????????????? : gcc
Compiler flags?????????? : -g -O2 -DETHERTYPE_IPV6=0x86dd
Extra Lib??????????????? : -lpopt -lssl -lcrypto
Use IPVS Framework?????? : Yes # 要实现LVS功能,必须保证这个地方是YES
IPVS sync daemon support : Yes #
IPVS use libnl?????????? : No
Use VRRP Framework?????? : Yes
Use Debug flags????????? : No
keepalived配置
修改文件keepalived.conf
global_defs {
router_id wd_twemproxy
}vrrp_instance wd2 {
state BACKUP # master标准MASTER
nopreempt
interface em2
track_interface {
em2
}virtual_router_id 70
priority 100 # 权重高的作为master
advert_int 1
authentication {
auth_type PASS
auth_pass css74..tfwwapmzi4r
}virtual_ipaddress {
192.168.0.100/16 dev em2 scope global #定义VIP
}
}virtual_server 192.168.0.100 10000 {
delay_loop 6
lb_algo wrr
lb_kind DR
nat_mask 255.255.0.0
persistence_timeout 120
protocol TCPreal_server 192.168.0.220 10000 {
weight 1
TCP_CHECK {
connect_timeout 60
nb_get_retry 3
delay_before_retry 3
connect_port 10000
}
}real_server 192.168.0.221 10000 {
weight 1
TCP_CHECK {
connect_timeout 60
nb_get_retry 3
delay_before_retry 3
connect_port 10000
}
}
}
配置完成了之后,启动keepalived
/usr/local/keepalived/sbin/keepalived -f /usr/local/keepalived/etc/keepalived/keepalived.conf
执行 ipvsadm -Ln
显示如下:
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port
Forward Weight ActiveConn InActConn
TCP? 192.168.0.100:10000 wrr persistent 120
-> 192.168.0.220:10000???????? Route?? 1????? 0????????? 0
-> 192.168.0.221:10000???????? Route?? 1????? 0????????? 0
说明keepalived配置成功
总结(关键,可以首先阅读)
因为不想再次修改上面的内容,所以直接在后面添加说明,看了之后再根据下面的内容自己调整上面的配置!
坑爹第一季
以上的做法当你完全配置完成之后,可以发现无法提供服务,想知道为什么吗,我TM也不知道,反正就是不行,无法连接
[Mon Jul 28 10:57:29 2014] nc_proxy.c:336 accepted c 9 on p 8 from ‘unknown’
[Mon Jul 28 10:57:29 2014] nc_core.c:201 close c 9 ‘unknown’ on event FF00FF eof 0 done 0 rb 0 sb 0: Connection reset by pee
[Mon Jul 28 10:57:35 2014] nc_proxy.c:336 accepted c 9 on p 8 from ‘unknown’
[Mon Jul 28 10:57:35 2014] nc_core.c:201 close c 9 ‘unknown’ on event FF00FF eof 0 done 0 rb 0 sb 0: Connection reset by peer
以上为twemproxy启动之后报错信息,如果你也是采用keepalived作为最前端的LVS分发功能,那估计结果不会比我好到哪去。
解决办法:
放弃使用keepalived使用LVS的功能,最多使用热备功能,前端使用两个twemproxy,一个主,一个备,keepalived提供服务。
坑爹第二季
如果redis使用主备功能,不要使用密码认证,直接使用内网地址也很安全,不然twemproxy无法提供服务,切记,切记!!!
原文地址:Keepalive,Twemproxy,Redis整体集群搭建记录, 感谢原作者分享。

Redis是现在最热门的key-value数据库,Redis的最大特点是key-value存储所带来的简单和高性能;相较于MongoDB和Redis,晚一年发布的ES可能知名度要低一些,ES的特点是搜索,ES是围绕搜索设计的。

本篇文章给大家带来了关于redis的相关知识,其中主要介绍了关于redis的一些优势和特点,Redis 是一个开源的使用ANSI C语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式存储数据库,下面一起来看一下,希望对大家有帮助。

nginxupstream开启keepaliveupstreamtomcat{serverops-coffee.cn:8080;keepalive1024;}server{location/{proxy_http_version1.1;proxy_set_headerConnection"";proxy_passhttp://tomcat;}}nginx在项目中大多数情况下会作为反向代理使用,例如nginx后接tomcat,nginx后接php等,这时我们开启nginx和后端

本篇文章给大家带来了关于redis的相关知识,其中主要介绍了Redis Cluster集群收缩主从节点的相关问题,包括了Cluster集群收缩概念、将6390主节点从集群中收缩、验证数据迁移过程是否导致数据异常等,希望对大家有帮助。

本篇文章给大家带来了关于redis的相关知识,其中主要介绍了Redis实现排行榜及相同积分按时间排序,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,希望对大家有帮助。

本篇文章给大家带来了关于redis的相关知识,其中主要介绍了关于原子操作中命令原子性的相关问题,包括了处理并发的方案、编程模型、多IO线程以及单命令的相关内容,下面一起看一下,希望对大家有帮助。

本篇文章给大家带来了关于redis的相关知识,其中主要介绍了bitmap问题,Redis 为我们提供了位图这一数据结构,位图数据结构其实并不是一个全新的玩意,我们可以简单的认为就是个数组,只是里面的内容只能为0或1而已,希望对大家有帮助。

httpkeepalive在http早期,每个http请求都要求打开一个tpcsocket连接,并且使用一次之后就断开这个tcp连接。使用keep-alive可以改善这种状态,即在一次tcp连接中可以持续发送多份数据而不会断开连接。通过使用keep-alive机制,可以减少tcp连接建立次数,也意味着可以减少time_wait状态连接,以此提高性能和提高httpd服务器的吞吐率(更少的tcp连接意味着更少的系统内核调用,socket的accept()和close()调用)。但是,keep-ali


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

WebStorm Mac version
Useful JavaScript development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

SublimeText3 Chinese version
Chinese version, very easy to use

Safe Exam Browser
Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.

Dreamweaver Mac version
Visual web development tools
