负载均衡

搭建 RabbitMQ Server 高可用集群

匿名 (未验证) 提交于 2019-12-03 00:20:01
搭建 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 在

Spring Cloud 常用框架组件

匿名 (未验证) 提交于 2019-12-03 00:18:01
微服务的理解: 就是把一个项目拆分为多个项目, 项目之间进行独立运行。 通过 Http 或者 Socket 来进行通信处理数据和调用。 (服务治理) 服务治理: 服务治理是微服务架构中最为核心和基础的模块,它主要用来实现各个微服务实例的自动化注册和发现。 服务注册: 在服务治理框架中,通常都会构建一个注册中心,每个服务单元向注册中心登记自己提供的服务,包括服务的主机与端口号、服务版本号、通讯协议等一些附加信息。注册中心按照服务名分类组织服务清单,同时还需要以心跳检测的方式去监测清单中的服务是否可用,若不可用需要从服务清单中剔除,以达到排除故障服务的效果。 服务发现: 在服务治理框架下,服务间的调用不再通过指定具体的实例地址来实现,而是通过服务名发起请求调用实现。服务调用方通过服务名从服务注册中心的服务清单中获取服务实例的列表清单,通过指定的负载均衡策略取出一个服务实例位置来进行服务调用。 Eureka 服务端: Eureka 服务端,即服务注册中心。它同其他服务注册中心一样,支持高可用配置。依托于强一致性提供良好的服务实例可用性,可以应对多种不同的故障场景。 Eureka 服务端支持集群模式部署,当集群中有分片发生故障的时候, Eureka 会自动转入自我保护模式。它允许在分片发生故障的时候继续提供服务的发现和注册,当故障分配恢复时,集群中的其他分片会把他们的状态再次同步回来

漫谈互联网架构

匿名 (未验证) 提交于 2019-12-03 00:17:01
互联网的标准技术架构如下图所示,这张图基本上涵盖了互联网技术公司的大部分技术点,不同的公司只是在具体的技术实现上稍有差异,但不会跳出这个框架的范畴。 存储层技术SQL SQL即我们通常所说的关系数据。前几年NoSQL火了一阵子,很多人都理解为NoSQL是完全抛弃关系数据,全部采用非关系型数据。但经过几年的试验后,大家发现关系数据不可能完全被抛弃,NoSQL不是No SQL,而是Not Only SQL,即NoSQL是SQL的补充。 所以互联网行业也必须依赖关系数据,考虑到Oracle太贵,还需要专人维护,一般情况下互联网行业都是用MySQL、PostgreSQL这类开源数据库。这类数据库的特点是开源免费,拿来就用;但缺点是性能相比商业数据库要差一些。随着互联网业务的发展,性能要求越来越高,必然要面对一个问题:将数据拆分到多个数据库实例才能满足业务的性能需求(其实Oracle也一样,只是时间早晚的问题)。 数据库拆分满足了性能的要求,但带来了复杂度的问题:数据如何拆分、数据如何组合?这个复杂度的问题解决起来并不容易,如果每个业务都去实现一遍,重复造轮子将导致投入浪费、效率降低,业务开发想快都快不起来。 所以互联网公司流行的做法是业务发展到一定阶段后,就会将这部分功能独立成中间件,例如百度的DBProxy、淘宝的TDDL。不过这部分的技术要求很高,将分库分表做到自动化和平台化

Docker环境下的前后端分离项目部署与运维

匿名 (未验证) 提交于 2019-12-03 00:15:02
本教程将从零开始部署一个的开源项目,利用docker虚拟机的容器技术,采用分布式集群部署,将项目转换成为高性能、高负载、高可用的部署方案。包括了MySQL集群、Redis集群、负载均衡、双机热备等等。 部署图 所用到的主流技术 Docker 容器、前后端集群、MySQL集群、Redis集群、Haproxy负载均衡、Nginx负载均衡、Keepalived实现双机热备 前后端分离项目部署图 前后端分离项目开源框架介绍 本次教程所采用的的项目开源框架是人人网的renren-fast,前台开发语言采用Vue,后台是java。 总体部署方案概述 数据库我们采用的是集群,每一个MySQL节点都是要发布到一个 Docker 虚拟机实例中(实例就是一个虚拟的空间,或者叫容器),每一个MySQL都要部署到独立的容器里面,这些MySQL之间有一个集群环境。 然后我们不能把所有的数据库的请求都定向给一个MySQL去处理,因为这样负载会很高,所以我们应该分散MySQL的处理数据的请求,那么我们该怎么做呢? 答案就是做一个负载均衡,后台程序发给数据库所有的请求都由负载均衡分散给其余的MySQL,这些MySQL就能去处理对应的请求了,这样每一个MySQL节点的负载相应的会低一点。 而后台项目要体现的就是高可用,任何一个节点挂掉后不影响整体的运行,所以后台项目也要搞集群,这个集群用的技术就是Nginx了。

调度器优劣对比

匿名 (未验证) 提交于 2019-12-03 00:14:01
调度器对比: Nginx 优点 1.9版本开始支持四层代理。 正则表达式比HaProxy强大,开源LVS不支持正则。 使用亲和性强,(可排错性强)通过日志可以解决多数问题。 并发量可以达到几万次。 缺点 七层代理仅支持http、https、mail协议,应用面小。 健康检查仅通过端口状态,无法使用url来进行健康检查。 Nginx支持基本正则,扩展正则,perl正则,posix正则。所以灵活性强,可以完成更多的需求。 LVS [x] 工作在TCP/IP协议四层,转发包不对包进行拆包和封装,硬件资源消耗低。 [x] 配置性低,没有太多可配置性,配置也更简单。 [x] 工作在TCP/IP四层,几乎可以为所有应用提供负载均衡。 [ ] 不支持正则表达式,不能实现动静分离。 [ ] 如果服务架构庞大,LVS-DR模式配置比较繁琐。 LVS开源版本不支持正则表达式,所以无法实现很多功能。但是优点非常明确,工作在TCP/IP四层几乎可以为所有应用提供服务,而且少了七层调度的拆包和封包效率非常高!硬件资源占用更加低! HaProxy [x] 支持session、cookie功能。 [x] 可以通过url进行健康检查。 [x] 效率、负载均衡速度,高于Nginx,低于LVS。 [x] HAProxy 支持TCP,可以对MySQL进行负载均衡。 [x] 调度算法丰富。 [ ] 正则弱于Nginx [

代理和反向代理

匿名 (未验证) 提交于 2019-12-03 00:13:02
一、背景介绍 Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件代理服务器。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。 二.知识剖析 1.代理服务器 一般是指局域网内部的机器通过代理服务器发送请求到互联网上的服务器,代理服务器一般作用在客户端。 一个完整的代理请求过程为:客户端首先与代理服务器创建连接,接着根据代理服务器所使用的代理协议,请求对目标服务器创建连接、或者获得目标服务器的指定资源。 Web代理(proxy)服务器是网络的中间实体。 代理位于Web客户端和Web服务器之间,扮演“中间人”的角色。HTTP的代理服务器即是Web服务器又是Web客户端。 2.正向代理 正向代理 是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。 3.反向代理 反向代理 在计算机世界里,由于单个服务器的处理客户端(用户)请求能力有一个极限,当用户的接入请求蜂拥而入时

SpringCloud入门(二)

匿名 (未验证) 提交于 2019-12-03 00:13:02
上文只是将服务注册到eureka上,但是consumer还是硬编码调用,前文也有提到这种硬编码方式肯定是不合理的,一来服务上线之后,IP地址肯定是变动的, 再则,采用硬编码的方式是无法实现负载均衡的。 ribbon便是一个用来做负载均衡的组件。 ribbon是一个负载均衡客户端 类似nginx反向代理,可以很好的控制htt和tcp的一些行为。Feign默认集成了ribbon。 在server-order项目的pom.xml里加上: <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-ribbon</artifactId> </dependency> 在加载restTemplates的方法上添加@LoadBalanced注解,使其具有负载均衡的能力,然后将硬编码的ip地址换成服务提供者的应用名字(application.name属性的值),修改之后controller便变成了下面的样子,其他地方不做修改。 在server-order项目下的启动类里改成这个样子: @SpringBootApplication @EnableEurekaClient public class OrderApp { public static void main(String[

软/硬 负载均衡产品

匿名 (未验证) 提交于 2019-12-03 00:11:01
负载均衡 (Load Balance),其意思就是将负载(工作任务)进行平衡、分摊到多个操作单元上进行执行。需要我们注意的是:它并不属于网络基础架构,而是属于一种网络优化设备。它是建立在现有的网络基础架构之上,给企业提供了更廉价更有效的扩展选择。 相对来说,对于一些网站和一些网络应用而言,需不需要负载均衡,要看网站的访问量是不是增长的很快,单个处理单元无法满足负载需求时,网络应用流量将要出现瓶颈时,负载均衡才会起到作用。 当需要负载均衡来进行网络优化时,挑选一款适合自己企业的负载均衡产品就显得尤为重要了。这里我们从软件和硬件两个角度,来简单介绍一下负载均衡的一些产品。 硬件负载均衡 硬件负载均衡在国外比较流行。硬件负载均衡解决方案是直接在服务器和外部网络间安装负载均衡设备,这种设备我们通常称之为负载均衡器,由于专门的设 备完成专门的任务,独立于操作系统,整体性能得到大量提高,加上多样化的负载均衡策略,智能化的流量管理,可达到最佳的负载均衡需求。 下面就来了解一下市场中,比较主流的几类产品。 ◆F5 BIG-IP负载均衡器(LTM) BIG-IP系列产品受到了用户的广泛认可,使用的人也很多。它的强大之处是基于简单的Web管理界面,包括其他F5设备也是如此。同时,这个负载 均衡器还可以处理SSL证书。F5的主要特点之一是其广域网优化管理器,具备高可用的加密通道,同时具有广域网传输速度

apache结合tomcat实现负载均衡

匿名 (未验证) 提交于 2019-12-03 00:09:02
首先装tomcat服务步骤如下: 1、关闭防火墙和安全机制 [root@localhost ~]# systemctl stop firewalld [root@localhost ~]# iptables -F [root@localhost ~]# setenforce 0 2、查看JDK是否安装 [root@localhost ~]# java -version openjdk version "1.8.0_222" OpenJDK Runtime Environment (build 1.8.0_222-b10) OpenJDK 64-Bit Server VM (build 25.222-b10, mixed mode) 3、卸载用rpm方式安装的JDK 方法一、 [root@localhost ~]# rpm -qa | grep -i openjdk 检测是否为需要的版本 java-1.8.0-openjdk-headless-1.8.0.222.b10-0.el7_6.x86_64 java-1.8.0-openjdk-1.8.0.222.b10-0.el7_6.x86_64 [root@localhost ~]# rpm -e java-1.8.0-openjdk --nodeps //有依赖关系,解除依赖关系后面加 --nodeps [root

企业级负载均衡集群――lvs下的健康检测(Idirectord)

匿名 (未验证) 提交于 2019-12-03 00:06:01
1.为什么要进行健康检测? 之前lvs的DR模式和TUN模式我们都是假设后端服务器是可以正常工作的 对于一台后端服务器来说,它不可能永远是可以使用的,有自己的寿命或者会出现其它问题 当lvs集群中的一台后备服务器挂了之后,为了不影响客户的正常访问,应该将它从集群当中踢出去,让客户不再轮询访问 调度器只把客户端的请求转发给状态好的那台web服务器,否则客户端是一会可以访问,一会不能访问,其实实际的企业当中,一个集群的web服务器上面的资源一模一样,访问哪个客户根本感觉不到 演示的时候写的共享内容不一样是为了实验效果看的更明显而已 如果lvs集群当中所有的后备服务器都挂了,为了不影响客户的正常访问,在调度器上面也安装一个httpd服务,当客户端访问调度器的时候,调度器直接通过自己的httpd服务告诉服务器坏了. 以上这两种情况我们都要考虑到,因此要给客户端一个正常的回应 2.在lvs中实现健康检测 在web1上面模拟httpd服务出现问题 然后在客户端测试 发现一个web挂了,很影响体验 在web1上面恢复好httpd服务 客户端测试又恢复了 现在使用ldirectord这个插件解决上面的问题,使得客户可以稳定的访问web资源 将idirectord这个rpm包从真机传送给server1 在server1中安装发现不能够安装 所以需要在server1中,配置一个高可用的yum源