·Redis是Wmware开发的开源免费的KV型NoSQL缓存产品
·Redis具有很好的性能,最多可以提供10万次/秒的读写
·目前新浪微博团队组建了世界上最大规模的Redis集群
·高速缓存利用内存保存数据,读写速度远超硬盘
·高速缓存可以减少I/O操作,降低I/O压力
1. Redis目前的集群方案分为以下几种:
o 1.RedisCluster:官方推荐,没有中心节点
o 2.Codis:中间件产品,存在中心节点
o 3.Twemproxy:中间件产品,存在中心节点
2. RedisCluster
3. 无中心节点,客户端与redis节点直连,不需要中间代理层
4. 数据可以被分片存储(切分存储)
5. 管理方便,后续可自行增加或摘除节点
6. 主从同步
7. Redis集群中的数据库复制是通过主从同步来实现的
8. 主节点(Master)把数据分发给从节点(Slave)
9. 主从同步的好处在于高可用,Redis节点有冗余设计
10. 高可用
11. Redis集群中应该包含奇数个Master,至少应该有3个Master
12. Redis集群中每个Master都应该有Slave
·解除docker集群
·docker swarm leave -f
导入本地Redis镜像文件,运行Redis容器
配置Redis文件
AOF是开启日志功能
安装redis-trib.rb
redis-trib是基于Ruby的Redis集群命令行工具
·cp /usr/redis/src/redis-trib.rb
·cd /usr/redis/cluster
·apt-get isntall ruby
·apt-get isntall rubygems
·gem install redis
利用redis-trib.rb创建Redis集群
参数表示为每个主节点创建一个从节点
·./redis-trib.rb create --replicas 1 172.190.2:6379 172.19.0.3:6379 172.1904:6379 172.19.0.5:6379 172.19.0.6:6379 172.19.07:6379
renren-fast包含了tomcat.jar文件,所以工程打包成JAR文件就能独立运行
·修改数据库配置文件(数据源,redis集群 tomcat端口)
·doker禁止跨网段访问,解决方案是把java所在容器的网络对接到宿主机上,不再专门划分网段
·利用Maven打包工程
o mvn clean install -Dmaven.test.skip=true:
代表跳过测试代码
o clean:表示清除之前的JAR文件;
o install:意味着打包到本地;
o Dmaven.test.skip=true:代表跳过测试代码
·创建j1卷docker volume create j1
·运行Java容器,部署并运行JAR文件
·docker run -it -d --name j1 -v j1:/home/soft(jar
文件所在位置) --net=host java
·docker exec -it j1 bash
·nohup java -jar /home/soft/renren-fast.jar
其他节点也是类似过程,不过tomcat端口要递增
·创建j2卷docker volume create j2
·运行Java容器,部署并运行JAR文件
·docker run -it -d --name j2 -v j2:/home/soft(jar
文件所在位置) --net=host java
·docker exec -it j2 bash
·nohup java -jar /home/soft/renren-fast.jar
Nginx是性能非常出色的反向代理服务器,最大可以支持8万/秒的并发访问
·docker pull nginx
·启动(数据卷只能实现目录与目录之间的映射,不能实现文件与文件之间的映射)
·docker run -it -d --name n1 -v /home/n1/nginx.conf:/etc/nginx/nginx.conf --net=host --privileged nginx
·docker exec -it n1 bash
·apt-get update
·apt-get install keepalived
·vi /etc/keepalived/keepalived.conf
·网卡填写宿主机的网卡,定义虚拟节点
·service keepalived start
·ping 192.168.99.151 测试是否成功
·docker exec -it n2 bash
·apt-get update
·apt-get install keepalived
·vi /etc/keepalived/keepalived.conf
·网卡填写宿主机的网卡,定义虚拟节点(这里real_server要换成n2的端口)
·service keepalived start
·ping 192.168.99.151 测试是否成功
另一个节点略。
VM虚拟机对keepalive的支持不好(挂起虚拟机有影响,需要重启)
·docker-machine
·docker-compose
·docker-swarm
·docker swarm init
·–listen-addr ip:port 管理者节点
·–advertise-addr ip 广播地址
·docker warm join-token manager
·docker swarm join-token worker
·添加manager或者worker节点到集群,只要执行对应的命令即可
·docker node ls 只可以在Manager节点执行该命令