集群服务器

lvs快速入手

耗尽温柔 提交于 2020-01-18 12:18:17
lvs简介 ​ Linux 虚拟服务器(Linux Virtual Servers,LVS) 使用负载均衡技术将多台服务器组成一个虚拟服务器。它为适应快速增长的网络访问需求提供了一个负载能力易于扩展,而价格低廉的解决方案。 名词说明 单词 说明 LB 负载均衡器 VIP 负载均衡器IP地址,作为访问入口 CIP 客户端IP RIP 真实服务器地址 RS 真实服务器 LVS结构与工作原理 1、LVS的结构 ​ 虚拟服务器的体系结构如图所示,一组服务器通过局域网或广域网相连接,前端有一个负载调度器(Load Balancer), 负载均衡器将网络请求调度至真实服务器 (Real Server RS)群 上,LVS这种结构对用户来说是透明的,用户访问只能看到一台作为LB的虚拟服务器 (virtual server VS), 当用户请求发往RS, LB根据设定的包转发策略和负载均衡调度算法在转发给RS, RS最终在将用户请求的结果返回。 2、LVS内核模型 ​ 首先lvs是基于tcp四层传输层协议,它根据请求报文的目标IP和PORT将其转发至后端主机集群中的某一台主机(根据挑选算法) 当客户端的请求到达 LB 的内核空间时,首先会到达 PREROUTING链 当内核发现请求数据包的 目的地址是本机 时, 将数据包送往 INPUT链 LVS由 用户空间的 ipvsadm 和

深入解析Jedis底层源码

与世无争的帅哥 提交于 2020-01-18 06:40:05
第1章 访问缓存服务器过程(hget) 架构在jedis外层封装了一个客户端ClusterNativeClient,在这个类中,提供了很多访问redis的方法,包括:hget、hset、hdel等,即成为前台业务代码和jedis进行交互的桥梁。 我们以查询操作为例,详细描述一下jedis的实现过程。 1.1 源码分析 1.1.1 ClusterNativeClient中hget方法: public String hget(String key, String field) { return pool.hget(key, field); } 说明: Pool是缓存初始化时建立的,我们后面详细讲。 public static void init(Properties props) { String[] servers = props.getProperty(“host”).split(","); HashSet nodes = new HashSet(); for (String s : servers) { String[] ipAndPort = s.split("😊; String ip = ipAndPort[0]; int port = Integer.valueOf(ipAndPort[1]).intValue(); nodes.add(new HostAndPort(ip

GFS分布式文件系统集群(理论)

核能气质少年 提交于 2020-01-18 03:39:08
GlusterFS概述 1、GlusterFS简介 (1)开源的分布式文件系统 (2)由存储服务器、客户端以及NFS/Samba存储网关组成 (3)无元数据服务器(数据传输组件RDMA) (4)GlusterFS特点:扩展性、高性能、高可用性 (5)全局统一命名空间 (6)弹性卷管理---->云的特性:水平(实例数)、垂直(硬件性能),包括ECS(虚拟)、OSS和RDS(裸金属) (7)基于标准协议 2、GlusterFS术语 (1)Brick(节点) (2)Volume(卷) (3)FUSE(用户端交互模块) (4)VFS(虚拟化文件系统) (5)Glusterd(服务) 3、模块化堆栈式架构 (1)模块化、堆栈式的架构 (2)通过对模块的组合,实现复杂的功能 GlusterFS工作原理 2、弹性HASH算法 (1)通过HASH算法得到一个32位的整数 (2)划分为N个连续的子空间,每个空间对应一个Brick (3)弹性HASH算法的优点: ☀保证数据平均分布在每一个Brick中 ☀解决了对元数据服务器的依赖,进而解决了单点故障以及访问瓶颈 GlusterFS的卷类型 1、分布式卷 ●没有对文件进行分块处理 ●通过扩展文件属性保存HASH值 ●支持的底层文件系统有ext3、ext4、 ZFS、 XFS等 (1)特点 ●数据被分割成更小块分布到块服务器群中的不同条带区

RabbitMQ安装与原理详解

人走茶凉 提交于 2020-01-18 02:40:32
文章目录 一、概述 1. 什么是消息队列 2. 为什么要使用消息队列 3. RabbitMQ特点 二、安装 1. 安装Erlang 2. 安装RabbitMQ 三、RabbitMQ 1. 启动和关闭 2. 插件管理 3. 用户管理 4. 权限管理 5. vhost管理 6. 设置管理员权限 四、消息发送和接收 1. RabbitMQ消息发送和接收机制 2. AMQP 中的消息路由 3. Exchange与Queue关联绑定 4. Exchange 类型 (1)direct (2)fanout (3)topic 5. Client与Brocker进行连接 五、RabbitMQ镜像集群 1. 准备 2. 配置Cookie文件 3. 配置hosts文件 4. 组建集群 5. 节点类型 一、概述 1. 什么是消息队列 消息(Message)是指在应用间传送的数据。消息可以非常简单,比如只包含文本字符串,也可以更复杂,可能包含嵌入对象。 消息队列(Message Queue)是一种应用间的通信方式,消息发送后可以立即返回,由消息系统来确保消息的可靠传递。消息发布者只管把消息发布到 MQ 中而不用管谁来取,消息使用者只管从 MQ 中取消息而不管是谁发布的。这样发布者和使用者都不用知道对方的存在。 2. 为什么要使用消息队列 从上面的描述中可以看出消息队列是一种应用间的 异步协作机制

Redis集群原理

会有一股神秘感。 提交于 2020-01-17 13:02:58
节点主从(镜像全量)+哈希slot(分片) 无主模型 遵循 CAP原则 C一致性 A可用性 P分区容错性,三者不可兼得 数据放在大数据集群中的方式/集群承载数据的方式:分片 镜像全量 镜像全量 优:做数据的高可用(节点不单一),不担心某一个节点故障,数据在其他节点有相同备份 缺:占用内存资源,横向来说,没有对数据的扩展能力(4G–>12G) 分片 优:横向扩展能力强 缺:没有备份 CRUD操作 增加(Create)、读取查询(Retrieve)、更新(Update)和删除(Delete) 主从复制 主可以进行CRUD所有操作 从只能R 主从模型 图上能看得到的信息: 只有1个Master,可以有N个slaver,而且Slaver也可以有自己的Slaver,由于这种主从的关系决定他们是在配置阶段就要指定他们的上下级关系,而不是Zookeeper那种平行关系是自主推优出来的。 读写分离,Master只负责写和同步数据给Slaver,Slaver承担了被读的任务,所以Slaver的扩容只能提高读效率不能提高写效率。 Slaver先将Master那边获取到的信息压入磁盘,再load进内存,client端是从内存中读取信息的,所以Redis是内存数据库。 当一个新的Slaver加入到这个集群时,会主动找Master来拜码头,Master发现新的小弟后将全量数据发送给新的Slaver

虚拟机创建及安装ELK

旧巷老猫 提交于 2020-01-17 10:35:01
1.虚拟机创建 1.1 系统环境 [root@localhost ~]# cat /etc/os-release NAME="CentOS Linux" VERSION="7 (Core)" ID="centos" ID_LIKE="rhel fedora" VERSION_ID="7" PRETTY_NAME="CentOS Linux 7 (Core)" ANSI_COLOR="0;31" CPE_NAME="cpe:/o:centos:centos:7" HOME_URL="https://www.centos.org/" BUG_REPORT_URL=https://bugs.centos.org/ 主机名设置 hostnamectl set-hostname elk [root@elk ~]# hostnamectl Static hostname: elk Icon name: computer-vm Chassis: vm Machine ID: d1d80bc30b414ba7a6e5e49906699d7d Boot ID: 49488ed1b1434c8aa06fca343bf67ccf Virtualization: vmware Operating System: CentOS Linux 7 (Core) CPE OS Name: cpe:/o

Redis 哨兵集群搭建

泪湿孤枕 提交于 2020-01-17 06:07:20
Redis 哨兵集群搭建 在搭建哨兵集群之前先搭建 redis主从服务器 redis主从复制详尽步骤 哨兵服务器的搭建最少要3台服务,这里是在上一篇的基础上搭建的是伪集群服务 如图 192.168.172.21 服务器上创建文件夹 从 redis源码里面复制一份 redis-sentinel.conf 各个端口文件夹下面并改名 [ root@localhost ~ ] # mkdir / opt / redis / redis - sentinel / { sentinel_26379 , sentinel_26380 , sentinel_26381 } [ root@localhost ~ ] # tree / opt / redis / / opt / redis / ├── redis - 5.0 .7 │ ├── bin │ │ ├── redis - benchmark │ │ ├── redis - check - aof │ │ ├── redis - check - rdb │ │ ├── redis - cli │ │ ├── redis - sentinel -> redis - server │ │ └── redis - server │ ├── conf │ │ └── redis . conf │ ├── logs │ │ └── redis_6379

集群管理工具Salt

↘锁芯ラ 提交于 2020-01-17 05:33:21
简介 系统管理员(SA)通常需要管理和维护数以百计的服务器,如果没有自动化的配置管理和命令执行工具,那么SA的工作将会变得很繁重。例如,要给集群中的每个服务器添加一个系统用户,那么他必须登陆到每台服务器上去逐一的执行命令。好在有编程能力的SA能通过bash + ssh的方式来自动化自己的工作,于是出现了ClusterShell这一类的工具。但这类工具只是解决了远程命令调用的问题,并没有对一些运维的过程进行抽象,在面对不同的操作系统等环境时,使用会变得复杂和繁琐,对常见的运维操作,如包管理、配置文件分发也没有很好的支持。于是出现了CFEngine,Puppet,Chef,Salt等工具,他们在远程命令执行的基础上对一些常见的运维操作进行了抽象,如节点分组、命令编排、状态管理等。 Salt正是其中年轻一员,它是一个使用Python和ZeroMQ开发的开源项目,使用Apache 2.0 License。Salt的主要功能有两个:1)配置管理,使节点处于所定义的状态,如指定web类节点apache包的状态为安装并运行;2)分布式的命令执行系统,一方面分发命令到节点执行,另一方面从节点收集所需的数据。 特点 (翻译自官方介绍 http://salt.readthedocs.org/en/latest/topics/index.html ) 1)简单 salt能适用于不同规模的部署

redis集群

我只是一个虾纸丫 提交于 2020-01-17 01:07:47
redis集群 什么是集群? 集群就是多个服务器集中再一起 ,去处理同一个业务 集群和分布式概念 分布式是指将不同的业务分布在不同的地方,多个服务器去完成不同的业务功能 集群指的是将多台服务器集中在一起,实现同一业务 集群的好处-------- 解决 高并发 大数据的问题 集群的特点 (1) 扩展性 --可以动态的去扩展的服务器 (2) 高可用 --> 具备容错的功能 (错误恢复) (3) 负载均衡 -->把请求分配到不同的服务器里面 Redis集群方案 方案一 主从复制 优点: 支持主从复制,主机会自动将数据同步到从机,可以进行读写分离 缺点:不具备自动容错和恢复功能(keepalive) 获取 手动重启 扩展服务器比较麻烦 方案二: 哨兵模式 Redis 2.8中提供了哨兵工具来实现自动化的系统监控和故障恢复功能 哨兵的作用就是监控Redis系统的运行状况。它的功能包括以下两个。 (1)监控主服务器和从服务器是否正常运行。 (2)主服务器出现故障时自动将从服务器转换为主服务器 优点: 主从可以自动切换,系统更健壮,可用性更高 。 缺点: Redis较难支持在线扩容,在集群容量达到上限时在线扩容会变得很复杂 方案3 Redis-Cluster 集群 Redis-Cluster 采用无中心结构 好处:可以完成分布式存储问题,解决容量问题 redis集群搭建步骤

redis集群笔记

允我心安 提交于 2020-01-17 00:08:04
1 什么是集群(理解) 多个服务器集中再一起 ,去处理同一个业务 集群和分布式概念(理解) 2 为什么需要集群 ,集群有什么好处?(理解) 解决 高并发 大数据的问题 3 集群的特点(理解) (1) 扩展性 --可以动态的去扩展的服务器 (2) 高可用 --> 具备容错的功能 (错误恢复) (3) 负载均衡 -->把请求 分配到不同的服务器里面 4 面试题 :集群和分布式区别?(理解) (1)相同点 ​ 解决高并发 和 大数据的问题 (2)不同点 ​ 集群 是 多个服务去实现同一个功能 ​ 分布式 不同的服务器实现不同的功能 5 如果要做集群 应该怎么做? 方案一 主从复制 好不好? 优点: 完成主从复制 , 缺点:不能完成容错或者恢复的功能(keepalive) 获取 手动重启 ​ 扩展服务器比较麻烦 方案二: 哨兵模式 Redis 2.8中提供了哨兵工具来 实现自动化的系统监控和故障恢复功能 。 好处:完成自动的主从切换 缺点:Redis较难支持在线扩容,在集群容量达到上限时在线扩容会变得很复杂 方案三: Redis-Cluster (搭建) 好处:可以完成分布式存储问题,解决容量问题 Redis-Cluster 采用无中心结构 6 redis集群搭建步骤(了解) (1) 拷贝6份 redis文件 ​ 修改 端口 为 6379 , 6380,6381,6382,6383