集群服务器

分布式系统学习总结

微笑、不失礼 提交于 2019-12-22 04:50:01
前言 随着大型网站的各种高斌发访问、海量数据处理等场景越来越多,如何实现网站的高可用、易伸缩、可扩展、安全等目标就显得越来越重要。为了解决这样一系列问题。大型网站的架构也在不断发展。提高大型网站的高可用架构,就不得不提 分布式系统(Distributed Systems) 。下面说一下分布式系统及其相关的概念 在学习分布式系统之前,先了解一下与之相对应的集中式系统是什么样的。 集中式系统 集中式系统,主要指IBM、HP一个主机带多个终端。终端没有数据处理能力,仅负责数据的录入和输出。而运算、存储等全部在主机上进行,也就是我们平常说的单机服务器。 集中式系统的最大特点就是不熟结构非常简单,底层一般采用IBM、HP等厂商购买的昂贵的大型主机。因此无需要考虑如何对服务进行多节点的部署,也就不用考虑各节点的分布式协作问题。但是,由于采用单机部署、和可能带来系统大而复杂、难于维护、发生单点故障(单个点发生故障的时候会波及到整个系统或者网络,从而导致整个系统或者网络的瘫痪)、扩展性差等问题。 说完集中式系统,再来说一个与分布式很相似的概念-集群 集群 集群是一组独立的计算机系统构成一个松耦合的多处理器系统,它们之间通过网络实现进程间的通信。用来提供比集中式系统更具扩展性与可用性的服务平台。集群有两个关键的特性: 可扩展性,集群的性能不限于单一的服务实体,新的服务实体可以动态地添加到集群

Java分布式应用

醉酒当歌 提交于 2019-12-22 04:49:18
分布式计算就是通过计算机网络将计算工作分布到多台主机上,多个主机一起协同完成工作。 我试着列一下相关知识吧。 网络通讯,网络是分布式的基础,对分布式的理解建立在对网络的理解上,包括: OSI模型的7层 TCP/IP,DNS,NAT HTTP,SPDY/HTTP2 Telnet 网络编程,是通过程序在多个主机之间通信。包括: Socket 多线程 非阻塞IO 网络框架 Netty Mina ZeroMQ 操作系统的网络部分 RPC,Socket使用不是很方便,很多分布式应用是基于RPC的,包括: 同步RPC 异步RPC 主要的一些RPC协议 RMI Rest API Thrift 集群,分布式计算离不开集群。集群就是多台主机被当作一个系统 集群类型 高可用,如主机备机切换,冷备,热备,双活 伸缩性,如Web服务器集群,数据库服务器的Sharding 并行计算,如网格,大数据 集群相关技术,包括: 高可用性,保证服务一直能够被访问,延长MTBF,缩短MTTR 冗余的设备 多副本,为了避免单点失效 负载均衡,如何将大量工作负载分配到多个主机上,最大化吞吐量,最小化平均响应时间,最大化资源利用率。 伸缩性(横向),能够添加计算机和设备来应对增长的计算压力 分片(Sharding),把数据分成多个数据集,由多个服务器来分别处理。 自动分片 容错性,当硬件或软件发生故障,能够继续运转 故障检测

分布式计算,核心知识点

隐身守侯 提交于 2019-12-22 04:48:40
最近在学习和总结,分布式相关的一些技术知识。 读了几本书,感觉内容比较多,需要梳理下。 在知乎等地方,也找到了一些写得比较好的文章。 以下为转载内容 分布式计算就是通过计算机网络将计算工作分布到多台主机上,多个主机一起协同完成工作。 我试着列一下相关知识吧。 网络通讯,网络是分布式的基础,对分布式的理解建立在对网络的理解上,包括: OSI模型的7层 TCP/IP,DNS,NAT HTTP,SPDY/HTTP2 Telnet 网络编程,是通过程序在多个主机之间通信。包括: Socket 多线程 非阻塞IO 网络框架 Netty Mina ZeroMQ 操作系统的网络部分 RPC,Socket使用不是很方便,很多分布式应用是基于RPC的,包括: 同步RPC 异步RPC 主要的一些RPC协议 RMI Rest API Thrift 集群,分布式计算离不开集群。集群就是多台主机被当作一个系统 集群类型 高可用,如主机备机切换,冷备,热备,双活 伸缩性,如Web服务器集群,数据库服务器的Sharding 并行计算,如网格,大数据 集群相关技术,包括: 高可用性,保证服务一直能够被访问,延长MTBF,缩短MTTR 冗余的设备 多副本,为了避免单点失效 负载均衡,如何将大量工作负载分配到多个主机上,最大化吞吐量,最小化平均响应时间,最大化资源利用率。 伸缩性(横向)

分布式计算,核心知识点

旧时模样 提交于 2019-12-22 04:48:25
最近在学习和总结,分布式相关的一些技术知识。 读了几本书,感觉内容比较多,需要梳理下。 在知乎等地方,也找到了一些写得比较好的文章。 以下为转载内容 分布式计算就是通过计算机网络将计算工作分布到多台主机上,多个主机一起协同完成工作。 我试着列一下相关知识吧。 网络通讯,网络是分布式的基础,对分布式的理解建立在对网络的理解上,包括: OSI模型的7层 TCP/IP,DNS,NAT HTTP,SPDY/HTTP2 Telnet 网络编程,是通过程序在多个主机之间通信。包括: Socket 多线程 非阻塞IO 网络框架 Netty Mina ZeroMQ 操作系统的网络部分 RPC,Socket使用不是很方便,很多分布式应用是基于RPC的,包括: 同步RPC 异步RPC 主要的一些RPC协议 RMI Rest API Thrift 集群,分布式计算离不开集群。集群就是多台主机被当作一个系统 集群类型 高可用,如主机备机切换,冷备,热备,双活 伸缩性,如Web服务器集群,数据库服务器的Sharding 并行计算,如网格,大数据 集群相关技术,包括: 高可用性,保证服务一直能够被访问,延长MTBF,缩短MTTR 冗余的设备 多副本,为了避免单点失效 负载均衡,如何将大量工作负载分配到多个主机上,最大化吞吐量,最小化平均响应时间,最大化资源利用率。 伸缩性(横向)

分布式集群的Session问题

霸气de小男生 提交于 2019-12-22 04:46:50
1、 Session的实现 在Session开始时候,分配一个唯一的Session标识 sessionId ,通过 Cookie 把 sessionId 告诉浏览器,以后每次请求的时候,浏览器都会带上 sessionId 告诉web服务器,这个请求属于哪个Session。 在web 服务器上,每个Session都有独立的存储,保存不同的Session信息。 如果遇到禁用Cookie的情况,一般做法是把sessionId方法 放到 URL 参数中。 2、集群的Session 问题的解决方案 因为Session数据保存在单机上,当应用服务器变成多台之后,要保证对用户透明。 (1)、Session 粘贴 负载均衡器根据每次请求的Session进行转发,即保证同一Session请求都在同一台Web 服务器上处理,那么对这个Session个体来说,与之前安单机的情况是一致的。 优点 :简单容易实现,有利于服务器端本地对Session进行缓存。 缺点 :(a)、如果集群上有一台服务器down,则上面的Session数据全部丢失,用户需要重新登录。 (b)、负载均衡器需要解析Session的请求,开销很大 (c)、负载均衡器变成了有状态的节点,内存消耗大,容灾麻烦。 (2)、Session 复制 Web服务器进行Session数据同步,即同一个Session的数据会复制到所有的Web服务器上。

单台Linux服务器实现Redis群集

柔情痞子 提交于 2019-12-22 04:20:14
一、Redis简介 Redis是目前大规模使用的缓存中间件,由于它强大、高效、便捷的功能,得到了广泛的使用。 Redis在2015年发布了3.0.0,官方就已经支持了redis cluster。redis cluster在设计的时候,就考虑到了去中心化、去中间件。也就是说,集群中的每个节点都是平等的关系,每个节点都保存各自的数据和整个集群的状态。每个节点都和其他所有节点连接,而且这些连接保持活跃,这样就保证了我们只需连接集群中的任意一个节点,就可以获取到其他节点的数据。 二、Redis集群介绍 Redis集群是一个可以在多个Redis节点之间进行数据共享的设施。Redis集群不支持那些需要同时处理多个键的redis命令,因为执行这些命令需要在多个节点之间移动数据,并且在高负载的情况下,这些命令将降低redis集群的性能,并导致不可预测的行为。 Redis集群通过分区来提供一定程度的可用性,即使集群中一部分节点失效或者无法通信,集群也可以继续处理命令请求。 三、Redis集群原理 Redis是如何合理发呢配这些节点和数据的? Redis并没有采用传统的一致性哈希来分配数据,而是采用了另一种叫做哈希槽的方式分配的。Redis cluster默认分配了16384个slot,当我们set一个key时,会采用CRC16算法(循环冗余校验码)来获取所属的slot

【HBase】(三)HBase 集群安装

无人久伴 提交于 2019-12-22 01:38:08
文章目录 一、前言 二、JDK / Hadoop 的选择 三、安装 1、zookeeper的安装 2、Hadoopd的安装 3、下载安装包 4、上传服务器并解压缩到指定目录 5、修改配置文件 (1)修改hbase-env.sh (2)修改hbase-site.xml (3)修改regionservers 6、配置环境变量 四、启动HBase集群 1、启动zookeeper集群 2、启动HBase 一、前言 1、HBase 依赖于 HDFS 做底层的数据存储 2、HBase 依赖于 MapReduce 做数据计算 3、HBase 依赖于 ZooKeeper 做服务协调 4、HBase源码是java编写的,安装需要依赖JDK 二、JDK / Hadoop 的选择 此处我们的hadoop版本用的的是2.6.0,HBase选择的版本是1.2.0 三、安装 1、zookeeper的安装 2、Hadoopd的安装 Hadoop 分布式安装 3、下载安装包 找到官网下载 hbase 安装包 hbase-1.2.0-bin.tar.gz,这里给大家提供一个下载地址: http://mirrors.hust.edu.cn/apache/hbase/ 4、上传服务器并解压缩到指定目录 5、修改配置文件 配置文件目录在安装包的conf文件夹中 (1)修改hbase-env.sh 1. export

MariaDB Galera Cluster部署实践

試著忘記壹切 提交于 2019-12-21 23:37:09
官方文档: http://galeracluster.com/documentation-webpages/index.html 一、 Galera Cluster的工作原理 主要关注点是数据一致性。 事务既可以应用于每个节点,也可以不全部应用。 所以,只要它们配置正确,数据库保持同步。 Galera复制插件不同于传统的MySQL复制,可以解决多个问题,包括多主写入冲突,复制滞后和主从不同步。 在典型的Galera集群实例中,应用程序可以写入集群中的任何节点,然后通过基于认证的复制将事务提交(RBR事件)应用于所有服务器。 使用组通信和事务排序技术,基于认证的复制是同步数据库复制的另一种方法 二、Galera集群安装 说明:Galera集群至少需要三个节点的服务器硬件。 node-12:10.71.11.12 node-13:10.71.11.13 node-14:10.71.11.14 操作系统: centos7 内核版本: 3.10.0-693.21.1.el7.x86_64 开始安装 说明:为集群中的每个节点执行以下步骤。文档以node-12配置为例 1.编辑/etc/hosts文件,配置节点互相解析 [root@node-12 ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4

使用GFS集群部署KVM虚拟化平台(实例!!!)

旧街凉风 提交于 2019-12-21 19:37:21
实验环境 4台GFS节点服务器做GlusterFS集群,提供存储服务给KVM客户端做虚拟化 服务器角色 IP地址 磁盘空间 gfs-node1 192.168.142.152 40G+40G gfs-node2 192.168.142.154 40G+40G gfs-node3 192.168.142.162 40G+40G gfs-node4 192.168.142.163 40G+40G kvm-client 192.168.142.163 40G 第一步:部署GFS节点服务器 1.为四台GFS节点服务器服务器每台添加一个新磁盘 2.使用脚本一键部署GFS节点 #!/bin/bash systemctl stop firewalld.service setenforce 0 #格式化磁盘 echo "the disks exist list:" fdisk -l |grep '磁盘 /dev/sd[a-z]' echo "==================================================" PS3="chose which disk you want to create:" select VAR in `ls /dev/sd*|grep -o 'sd[b-z]'|uniq` quit do case $VAR in sda) fdisk -l

LVS

僤鯓⒐⒋嵵緔 提交于 2019-12-21 19:19:54
一,LVS功能详解 1.1 LVS(Linux Virtual Server)介绍 LVS是Linux Virtual Server 的简写(也叫做IPVS),意即Linux虚拟服务器,是一个虚拟的服务器集群系统,可以在UNIX/LINUX平台下实现负载均衡集群功能。 1.2 企业网站LVS集群架构图 1.3 IPVS软件工作层次图 从上图我们看出,LVS负载均衡调度技术是在Linux内核中实现的,因此,被称之为Linux虚拟服务器(Linux Virtual Server)。我们使用该软件配置LVS时候,不能直接配置内核中的ipbs,而需要使用ipvs管理工具ipvsadm进行管理,或者通过Keepalived软件直接管理ipvs。 1.4 LVS体系结构与工作原理简单描述 LVS集群负载均衡器接受服务的所有入站客户端计算机请求,并根据调度算法决定哪个集群节点应该处理回复请求。负载均衡器(简称LB)有时也被称为LVS Director(简称Director)。 LVS虚拟服务器的体系结构如下图所示,一组服务器通过高速的局域网或者地理分布的广域网相互连接,在他们的前端有一个负载调度器(Load Balancer)。 负载调度器能无缝地将网络请求调度到真实服务器上,从而使得服务器集群的结构对客户是透明的,客户访问集群系统提供的网络服务就像访问一台高性能,高可用的服务器一样