负载均衡

搭建 RabbitMQ Server 高可用集群

旧城冷巷雨未停 提交于 2019-12-20 18:15:03
原文: 搭建 RabbitMQ Server 高可用集群 阅读目录: 准备工作 搭建 RabbitMQ Server 单机版 RabbitMQ Server 高可用集群相关概念 搭建 RabbitMQ Server 高可用集群 搭建 HAProxy 负载均衡 因为公司测试服务器暂不能用,只能在自己电脑上重新搭建一下 RabbitMQ Server 高可用集群,正好把这个过程记录下来,以便日后查看。 公司测试服务器上的 RabbitMQ 集群,我搭建的是三台服务器,因为自己电脑空间有限,这边只能搭建两台服务器用作高可用集群,用的是 Vagrant 虚拟机管理工具。 环境介绍: RabbitMQ 节点 IP 地址 工作模式 node1 192.168.1.50 DISK CentOS 7.0 - 64位 node2 192.168.1.51 DISK CentOS 7.0 - 64位 整体架构: 1. 准备工作 首先,在 node1 服务器上,修改 vi /etc/hostname : node1 在 node2 服务器上,修改 vi /etc/hostname : node2 然后在 node1 服务器上,修改 vi /etc/hosts : node1 192.168.1.50 node2 192.168.1.51 127.0.0.1 node1 ::1 node1 在 node2

从运维角度看中大型网站架构的演变之路

非 Y 不嫁゛ 提交于 2019-12-20 03:30:37
前言 网上有很多文章类似于我今天要分享的课程,有架构师写的,有运维写的,还有开发些的,偏重点都不同,今天我以咱们运维角度全面讲解。 一个成熟的网站架构并不是一开始设计就具备高可用、高伸缩、高性能等特性的,它是随着用户量和业务线不断增加,基础架构才逐渐健壮的。在发展初期,一般都是从0到1,不会一上来就整一些大而全的架构,也很少人这么任性。 说明 适用业务: 电商/门户/招聘网站 开发语言: PHP和JAVA Web服务: Nginx/Tomcat8 数据库: MySQL 操作系统: CentOS 物理服务器: Dell R730/R430 一、单台服务器部署 项目开发完成上线,用户访问量寥寥无几。 二、WEB与数据库独立部署 有一定用户访问量,单台服务器性能有些吃力,想提高并发能力,增加一台服务器,将HTTP请求与SQL操作负载分散不同服务器。 三、动静分离-初期 什么是动静分离?静态页面与动态页面分离部署。 四、数据库主从与查询缓存 RedisCache 使用Redis缓存数据库查询结果,将热数据放到内存中,提高查询速度,减少数据库请求。 MySQL主从 基于binlog异步复制。 HA MySQL:Keepalived 怎么保证Redis缓存时效性? a) 增加中间件,在主从同步延迟时间内,中间件将SQL读操作还路由到主。 b) 主从同步延迟时间后,再异步发起一次淘汰Cache。

LVS是什么及作用?

喜夏-厌秋 提交于 2019-12-20 02:58:27
LVS的概念和重要性 LVS: 概念:是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统 作用:举例   像有三个小区,但是工作的时间和休息的时间不一样,第一个是白天工作,一个是晚上工作,一个是比较散时间,   如果没有负载均衡lvs的话,那么这三个小区,都是只是能用自己的那台服务器, 仅仅的用一台服务器的带宽1M,这样的话,三个小区就会总会有一段时间会没有人用,而其他的小区又只能限制在一台上 (图示:大圈代表小区集体,小圈代表服务器,1M代表一兆的带宽) 使用lvs之后的形式图示 大圈:人群 中间小圈:负载均衡服务器 右边小圈:服务器realserver 这样就会均衡不同时段的可以使用的服务器的数量 一.LVS是什么? LVS的英文全称是Linux Virtual Server,即Linux虚拟服务器。 它是我们国家的章文嵩博士的一个开源项目。在linux内存2.6中,它已经成为内核的一部分,在此之前的内核版本则需要重新编译内核。 二.LVS能干什么? LVS主要用于多服务器的负载均衡。它工作在网络层,可以实现高性能,高可用的服务器集群技术。 它廉价,可把许多低性能的服务器组合在一起形成一个超级服务器。 它易用,配置非常简单,且有多种负载均衡的方法。它稳定可靠,即使在集群的服务器中某台服务器无法正常工作,也不影响整体效果。

SO_REUSEADDR与SO_REUSEPORT平台差异性总结

久未见 提交于 2019-12-20 01:28:19
SO_REUSEADDR与SO_REUSEPORT平台差异性 前言 BSD系统 Linux系统 Windows 参考文档 前言 在网上看到很多人说在socket中设置SO_REUSEADDR选项的用途是端口复用/地址复用,具体来说就是让处于time_wait状态的socket可以快速重新绑定原来的ip+port。对于服务端而言,设置SO_REUSEADDR作用就是在重启服务器时能马上重新绑上原来的端口,方便调试。不然就绑定会失败,提示ADDR已经在使用中——那只好等等再重试了,麻烦。 但我在Windows系统下的试验结果与这种说法不一致,再继续深入搜索下去,发现了关于 SO_REUSEADDR与SO_REUSEPORT平台差异性 的说法,又在Windows中试验了一下(其他平台没测试),基本一致,现总结如下。 注:以下结论只针对TCP连接。 BSD系统 SO_REUSEADDR选项作用 让处于time_wait状态的socket可以快速复用原ip+port(网上广泛流传的说法) 使得0.0.0.0(ipv4通配符地址)与其他地址(127.0.0.1和10.0.0.x)不冲突( 详见此文章 ) SO_REUSEPORT选项作用 能够让多个socket同时绑定完全相同的ip+port,但不能实现负载均衡,似乎请求都是由后面绑定的socket接收(根据[SO_REUSEADDR与SO

几种简单的负载均衡算法及其Java代码实现

时光总嘲笑我的痴心妄想 提交于 2019-12-20 00:46:02
什么是负载均衡 负载均衡,英文 名称为Load Balance,指由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务而无须其他服务器的辅助。通过某种 负载分担技术,将外部发送来的请求均匀分配到对称结构中的某一台服务器上,而接收到请求的服务器独立地回应客户的请求。负载均衡能够平均分配客户请求到服 务器阵列,借此提供快速获取重要数据,解决大量并发访问服务问题,这种集群技术可以用最少的投资获得接近于大型主机的性能。 负载均衡分为软件负载均衡和硬件负载均衡,前者的代表是阿里章文嵩博士研发的LVS,后者则是均衡服务器比如F5,当然这只是提一下,不是重点。 本文讲述的是" 将外部发送来的请求均匀分配到对称结构中的某一台服务器上 "的各种算法,并以Java代码演示每种算法的具体实现,OK,下面进入正题,在进入正题前,先写一个类来模拟Ip列表: 1 public class IpMap 2 { 3 // 待路由的Ip列表,Key代表Ip,Value代表该Ip的权重 4 public static HashMap<String, Integer> serverWeightMap = 5 new HashMap<String, Integer>(); 6 7 static 8 { 9 serverWeightMap.put("192.168.1.100",

几种简单的负载均衡算法及其Java代码实现

倖福魔咒の 提交于 2019-12-20 00:45:27
什么是负载均衡 负载均衡,英文名称为Load Balance,指由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务而无须其他服务器的辅助。通过某种负载分担技术,将外部发送来的请求均匀分配到对称结构中的某一台服务器上,而接收到请求的服务器独立地回应客户的请求。负载均衡能够平均分配客户请求到服务器阵列,借此提供快速获取重要数据,解决大量并发访问服务问题,这种集群技术可以用最少的投资获得接近于大型主机的性能。 负载均衡分为软件负载均衡和硬件负载均衡,前者的代表是阿里章文嵩博士研发的LVS,后者则是均衡服务器比如F5,当然这只是提一下,不是重点。 本文讲述的是" 将外部发送来的请求均匀分配到对称结构中的某一台服务器上 "的各种算法,并以Java代码演示每种算法的具体实现,OK,下面进入正题,在进入正题前,先写一个类来模拟Ip列表: 1 public class IpMap 2 { 3 // 待路由的Ip列表,Key代表Ip,Value代表该Ip的权重 4 public static HashMap<String, Integer> serverWeightMap = 5 new HashMap<String, Integer>(); 6 7 static 8 { 9 serverWeightMap.put("192.168.1.100", 1);

CDN基本工作过程

故事扮演 提交于 2019-12-20 00:31:09
看了一些介绍CDN的文章,感觉这篇是讲的最清楚的。   使用CDN会极大地简化网站的系统维护工作量,网站维护人员只需将网站内容注入CDN的系统,通过CDN部署在各个物理位置的服务器进行全网分发,就可以实现跨运营商、跨地域的用户覆盖。由于CDN将内容推送到网络边缘,大量的用户访问被分散在网络边缘,不再构成网站出口、互联互通点的资源挤占,也不再需要跨越长距离IP路由了。   CDN是如何工作的呢?让我们先看看没有CDN服务时,一个网站是如何向用户提供服务的。   今天我们看到的网站系统基本上都是基于B/S架构的。B/S架构,即Browser-Server(浏览器 服务器)架构,是对传统C/S架构的一种变化或者改进架构。在这种架构下,用户只需使用通用浏览器,主要业务逻辑在服务器端实现。B/S架构,主要是利用了不断成熟的WWW浏览器技术,结合浏览器的多种Script语言(VBScript、JavaScript等)和ActiveX等技术,在通用浏览器上实现了C/S架构下需要复杂的软件才能实现的强大功能。   用户通过浏览器等方式访问网站的过程如图1-2所示。 ①用户在自己的浏览器中输入要访问的网站域名。 ②浏览器向本地DNS服务器请求对该域名的解析。 ③本地DNS服务器中如果缓存有这个域名的解析结果,则直接响应用户的解析请求。 ④本地DNS服务器中如果没有关于这个域名的解析结果的缓存

LVS负载均衡群集——理论篇

霸气de小男生 提交于 2019-12-19 19:40:21
LVS负载均衡群集 理解负载均衡群集的原理 掌握LVS-NAT的部署 企业群集应用概述 群集的含义: 1.Cluster,集群、群集 2.由多台主机构成,但对外只表现为一个整体 在互联网应用中,随着站点对硬件性能、响应速度、服务稳定性、数据可靠性等要求越来越高,单台服务器力不从心 解决方法: 1.使用价格昂贵的小型机、大型机 2.使用普通服务器构建服务群集 企业群集分类 根据群集所针对的目标差异,可分为三种类型: 1.负载均衡群集(轮询,最小连接的加权重) 2.高可用群集(访问的速度,可靠性) 3.高性能运算群集(并发处理任务) 负载均衡群集(Load Balance Cluster): 1.以提高应用系统的响应能力、尽可能处理更多的访问请求、减少延迟为目标,获得高并发、负载(LB) 的整体性能 2.LB的负载分配依赖于主节点的分流算法 高可用群集(High Availability Cluster): 1.以提高应用系统的可靠性、尽可能地减少中断时间为目标,确保服务的连续性,达到高可用(HA) 的容错效果 2.HA的工作方式包括双工和主从两种模式 高性能运算群集(High Performance Computer Cluster): 1.以提高应用系统的CPU运算速度、扩展硬件资源和分析能力为目标,获得相当于大型、超级计算机的高性能运算(HPC)能力 2

LVS负载均衡群集——实战篇

拈花ヽ惹草 提交于 2019-12-19 19:16:50
LVS负载均衡群集 环境准备: CentOS 7-1:调度器,网关(需要两块网卡)外:12.0.0.1 内:192.168.200.1 CentOS 7-2:网站服务器(Apache)192.168.200.110 CentOS 7-3:网站服务器(Apache)192.168.200.120 CentOS 7-4:提供共享存储 192.168.200.130 win7-1:客户端 12.0.0.12 yum在线安装前置操作: 1.共享存储服务器CentOS 7-4的操作: [root@localhost ~]# rpm -q nfs-utils nfs-utils-1.3.0-0.48.el7.x86_64 [root@localhost ~]# rpm -q rpcbind rpcbind-0.2.0-42.el7.x86_64 2.节点服务器CentOS 7-2和7-3两台节点服务器: [root@localhost ~]# yum install httpd -y 3.调度器网关CentOS 7-1操作: //要先添加一个网络适配器,成为两个网卡 [root@localhost ~]# yum install ipvsadm -y 共享存储服务器CentOS 7-4: //先将网卡更改为仅主机模式 [root@localhost ~]# vim /etc/sysconfig

OceanBase分布式系统负载均衡案例学习

南楼画角 提交于 2019-12-19 17:11:02
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 一个集群如果出现了负载不均衡问题,那么负载最大的机器往往将成为影响系统整体表现的瓶颈和短板。为了避免这种情况的发生,需要动态负载均衡机制,以达到实时的最大化资源利用率,从而提升系统整体的吞吐。 OceanBase架构介绍 OceanBase是一个具有 自治功能 的分布式存储系统,由 中心节点RootServer、静态数据节点ChunkServer、动态数据节点UpdateServer以及数据合并节点MergeServer四个Server构成 ,如下图所示。 Tablet:分片数据,最基本的存储单元,一般会存储多份,一个Table由多个tablet构成; RootServer:负责集群机器的管理、Tablet定位、数据负载均衡、Schema等元数据管理等。 UpdateServer:负责存储动态更新数据,存储介质为内存和SSD,对外提供写服务; ChunkServer:负责存储静态Tablet数据,存储介质为普通磁盘或者SSD。 MergeServer:负责对查询中涉及多个Tablet数据进行合并,对外提供读服务; 在一个集群中,Tablet的多个副本分别存储在不同的ChunkServer,每个ChunkServer负责一部分Tablet分片数据,MergeServer和ChunkServer一般会一起部署。