redis集群搭建

支持100+业务线、累计发布17万次|宜信容器云的A点与B点(分享实录)

主宰稳场 提交于 2019-12-18 18:24:07
宜信公司从2018年初开始建设容器云,至今,容器云的常用基本功能已经趋于完善,主要包括服务管理、应用商店、Nginx配置、存储管理、CI/CD、权限管理等,支持100+业务线、3500+的容器运行。伴随公司去VMware以及DevOps、微服务不断推进的背景,后续还会有更多的业务迁移到容器云上,容器云在宜信发挥着越来越重要的作用。本次分享主要介绍宜信容器云平台的背景、主要功能、落地实践及未来规划。 一、宜信容器云平台背景 宜信容器云平台的建设背景主要包括: 提高资源利用率。容器云建设之前,每台物理机上平均运行的虚拟机大概是20个,使用了容器云之后,每台物理机上平均运行的容器数达到50个;之前的CPU利用率大概在10%左右,迁移到容器云后,CPU利用率提高到20%以上,整个资源利用率得到了极大的提升。 提升服务可靠性。传统的虚拟机运维方式下,当机器宕机或系统故障时,需要运维手动重启虚拟机和服务,整个过程最快需要几十分钟到几个小时才能解决;使用容器云后,通过健康检查的方式,一旦发现有问题就自动重启恢复服务,可以达到分钟级甚至秒级的恢复。 节约成本。通过容器云提高了资源利用率,同时也节约了成本。公司每年会采购一些商业化软件,如虚拟化软件、商业存储等,费用动辄千万。我们基于开源技术自研一套容器解决方案,每年为公司节省上千万的软件采购和维保费用。 弹性伸缩。我们公司每年都会组织财富峰会

redis集群之REDIS CLUSTER

微笑、不失礼 提交于 2019-12-18 16:10:29
1. Linux系统配置 1.1. vm.overcommit_memory设置 overcommit_memory文件指定了内核针对内存分配的策略,其值可以是0、1、2。 0, 表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。 1, 表示内核允许分配所有的物理内存,而不管当前的内存状态如何。 2, 表示内核允许分配超过所有物理内存和交换空间总和的内存 jenkins_service@jenkinsservice:~/redis-3.0.1$ sudo sysctl vm.overcommit_memory=1 vm.overcommit_memory = 1 1.2. Transparent Huge Pages开启 THP(Transparent Huge Pages)是一个使管理Huge Pages自动化的抽象层。 目前需要注意的是,由于实现方式问题,THP会造成内存锁影响性能,尤其是在程序不是专门为大内内存页开发的时候,简单介绍如下: 操作系统后台有一个叫做khugepaged的进程,它会一直扫描所有进程占用的内存,在可能的情况下会把4kpage交换为Huge Pages,在这个过程中,对于操作的内存的各种分配活动都需要各种内存锁,直接影响程序的内存访问性能,并且,这个过程对于应用是透明的

redis集群搭建

梦想与她 提交于 2019-12-18 10:51:13
1、下载 cd /usr/local wget http://download.redis.io/releases/redis-3.2.3.tar.gz 2、解压安装 tar -zxvf redis-3.2.3.tar.gz cd redis-3.2.3 安装需要gcc、tcl yum install gcc yum install tcl 安装 make MALLOC=libc make install 3. 修改配置文件redis.conf 新建目录 mkdir /usr/local/redisCluster cd /usr/local/redisCluster 在redisCluster 下新建目录 mkdir 7000 mkdir 7001 mkdir 7002 mkdir 7003 mkdir 7004 mkdir 7005 复制文件到7000 cp -r /usr/local/redis-3.2.3/* /usr/local/redisCluster/7000 修改redis.conf vim /usr/local/redisCluster/7000/redis.conf ##修改配置文件中的下面选项 port 7000 bind ip pidfile /var/run/redis_7000.pid logfile /var/log/redis_7000

容器化之后如何节省云端成本?(二十六)

爷,独闯天下 提交于 2019-12-17 21:28:37
前言 Kubernetes的教程一直在编写,目前已经初步完成了以下内容: 1)基础理论 2)使用Minikube部署本地Kubernetes集群 3)使用Kubeadm创建集群 接下来还会逐步完善本教程,比如Helm、ELK、Windows Server容器等等。 目录 Kubernetes主体架构 1.1.主要核心组件 1.1.1. Master组件 1.1.2. 节点(Node)组件 1.1.3. 插件 1.2. 基本概念 1.2.1. 容器组(Pod) 1.2.2. 服务(Service) 1.2.3. 卷(Volume) 1.2.4. 标签(Labels)和标签选择器(Label Selector) 1.2.5. 复制控制器(Replication Controller,RC) 1.2.6. 副本集控制器(Replica Set,RS) 1.2.7. 部署控制器(Deployment) 1.2.8. StatefulSet 1.2.9. 后台支撑服务集(DaemonSet) 1.2.10. 一次性任务(Job) Kubernetes主体架构 k8s的整体架构如下图所示: C:\Users\Lys_Desktop\Documents\Tencent Files\512982554\FileRecv\思维导图1.png 1.1主要核心组件 1.1.1Master组件

(五)Redis Cluster 集群

断了今生、忘了曾经 提交于 2019-12-17 12:16:08
Redis Cluster 需求:1、请求量过大 100w/s 2、数据量大 1、数据分布 哈希分布特点: 数据分散度高 键值分布业务无关 无法顺序访问 支持批量操作 顺序分布特点: 数据分散度易倾斜 键值业务相关 可顺序访问 支持批量操作 2、数据分区 节点取余分区特点: 客户端分片:哈希 + 取余 节点伸缩数据迁移率过大 节点伸缩采用翻倍扩展 一致性哈希特点: 使用token环,顺时针定位节点 节点伸缩时影响临近节点,存在数据迁移 翻倍伸缩,保证最小迁移数据和负债均衡 虚拟哈希分区特点: 预设虚拟槽,每个槽映射一个数据子集,一般比节点数大 良好的哈希函数 服务端管理槽 3、集群架构 多个主节点,从节点 meet:完成节点通信 指派槽: 复制:高可用 4、安装配置 原生安装: 1、配置节点 port ${port} daemonize yes dir "" dbfilename "dump-${port}.rdb" logfile "${port}.log" # 代表当前节点为cluster节点 cluster-enabled yes # 指定当前cluster节点的配置 cluster-config-file nodes-${port}.conf 2、配置开启Redis 3、cluster meet ip port redis-cli -h 127.0.0.1 -p 7000

【12.16】redis 集群

为君一笑 提交于 2019-12-17 00:15:13
【12.16】redis 集群 21.22 redis集群介绍 21.23/21.24 redis集群搭建配置 21.25 redis集群操作 21.22 redis集群介绍 多个 redis 节点网络互联,数据共享 所有的节点都是一主一从(可以是多个从),其中从不提供服务,仅作为备用 不支持同时处理多个键(如mset/mget),因为 redis 需要把键均匀分布在各个节点上,并发量很高的情况下同时创建键值会降低性能并导致不可预测的行为。 支持在线增加、删除节点 客户端可以连任何一个主节点进行读写 类似于磁盘做reid 21.23/21.24 redis集群搭建配置 1、场景设置: 两台机器,分别开启三个 Redis 服务(端口) A机器上三个端口7000,7002,7004,全部为主 B机器上三个端口7001,7003,7005,全部为从 两台机器上都要编译安装redis,然后编辑并复制 3 个不同的 redis.conf,分别设置不同的端口号、dir等参数,还需要增加 cluster 相关参数,然后分别启动6个 redis 服务 2、在 A 机器编辑 redis_7000,redis_7002,redis_7004 [ root@arslinux-01 ~ ] # vim redis_7000.conf port 7000 bind 192.168.194.130

Redis-5-集群

丶灬走出姿态 提交于 2019-12-15 17:50:08
1.什么是Redis集群? Redis的集群有两种: 读写分离集群,主从复制。 内置集群,分片。 2.为什么要使用Redis集群? 读写分离集群,解决的是高可用问题。 内置集群,解决的是高扩展和高可用问题。 3.如何搭建Redis集群? 为了保证集群投票,至少需要3个主节点,每个主节点至少需要一个从节点,作为读写分离和热备,总共需要6台服务器。 3.1准备集群节点 复制一个干净的Redis环境的bin文件夹,清理后作为第一个Redis节点 # 进入redis安装目录 cd /usr/local/redis #新建目录,存放redis集群节点目录 mkdir redis-cluster # 复制redis cp -R bin/ redis-cluster/node1 #进入node1目录 cd redis-cluster/node1 # 删除快照和持久化文件(如果有的话) rm -f dump.rdb & rm -f appendonly.aof # 删除原来的配置文件(如果该配置文件被修改过,则删除,可选) #rm -r redis.conf # 复制新的配置文件(可选) #cp /root/redis-5.0.5/redis.conf ./ # 修改配置文件 vi redis.conf 3.2集群环境的Redis配置文件 # 不能设置密码,否则集群启动时会连接不上 #

搭建redis集群(非Docker CentOS)

廉价感情. 提交于 2019-12-15 01:54:46
搭建Redis集群 上文中说了三种Redis搭建的模式,分别是主从模式、哨兵模式、Cluster模式,关于前两种网上有着非常多的教程,这里就不再重新演示了,这里着重演示一下如何去搭建一个Redis Cluster集群。 环境准备 CentOS 7,Redis5.0.4 场景描述 本次会启动三台CentOS 7服务器,每台服务器上搭载三个Redis实例,一主二从,一共三个Master实例,六个Slave实例。 清单如下: Master 1:IP:192.168.43.101 Port:7001 Master 2:IP:192.168.43.102 Port:7002 Master 3:IP:192.168.43.103 Port:7003 Slave 1:IP:192.168.43.101 Port:6001 Slave 2:IP:192.168.43.102 Port:6002 Slave 3:IP:192.168.43.103 Port:6003 Slave 4:IP:192.168.43.101 Port:6004 Slave 5:IP:192.168.43.102 Port:6005 Slave 6:IP:192.168.43.103 Port:6006 修改配置文件 熟悉Redis的应该明白,所谓Redis实例,实际上就是一个又一个的配置文件

Redis进阶:Redis的集群模式介绍

隐身守侯 提交于 2019-12-13 07:50:31
Redis进阶:Redis的集群模式介绍 为什么要使用Redis集群 上一期我们介绍了Redis的哨兵机制,通过哨兵机制实现对Redis的监控、提醒,实现自动故障转移,这期我们继续学习下Redis的集群模式。 哨兵模式主要解决的是高可用,提升了Redis读性能,但是Redis的写性能及存储并没有得到有效提升,Redis的集群模式就是解决Redis缓存大数据量及提升写性能而推出的一种解决方案。 Redis通过分区来将数据自动分割到不同的节点,部分节点不可用时,整体上也能继续执行指令。 搭建Redis集群 准备Redis集群配置文件 新建配置文件 redis.conf port 7000 cluster-enabled yes cluster-config-file nodes7000.conf cluster-node-timeout 5000 appendonly yes daemonize yes 新建7000~7005,6个文件夹及配置文件。 [root@localhost redis-cluster]# mkdir 7000 7001 7002 7003 7004 7005 # 将上一步新增的配置文件放到各个文件夹中 注意修改成对应的端口号 [root@localhost 7000]# cp redis.conf ../7002/redis.conf 启动Redis服务

Windows环境安装Redis集群一键部署

限于喜欢 提交于 2019-12-13 02:32:14
1、环境安装 Redis cluster(redis集群)是在版本3.0后才支持的架构。Redis启动需要使用ruby安装环境,就好java需要JVM一样。本文搭建环境为三主三从。 主节点与从节点: Adding replica 127.0.0.1:9003 to 127.0.0.1:9000 Adding replica 127.0.0.1:9004 to 127.0.0.1:9001 Adding replica 127.0.0.1:9005 to 127.0.0.1:9002 Redis版本:3.1.00 Ruby版本:2.2.4 2、所需文件 Redis3.1.0、ruby2.2.4、安装集群脚本 redis-trib.rb、 Redis的驱动 redis-3.2.2.gem、 压缩包地址: https://download.csdn.net/download/concealed0/12025036 注:以上版本应用于实际生产环境中,未对其他版本进行环境测试。 3、脚本描述 脚本名称 脚本描述 RegisAllRedisService.bat 将redis注册为Windows服务 DeleteAllRedisService.bat 将redis服务从Windows中卸载 StartAllRedisService.bat 一键启动六个redis服务