负载均衡

SpringCloud之Ribbon负载均衡及Feign消费者调用服务

孤人 提交于 2019-12-05 07:12:59
目的:      微服务调用 Ribbon      Ribbon负载均衡      Feign简介及应用 微服务调用Ribbon    Ribbon简介    1. 负载均衡框架,支持可插拔式的负载均衡规则   2. 支持多种协议,如HTTP、UDP等   3. 提供负载均衡客户端 Ribbon是Netflix发布的负载均衡器,它有助于控制HTTP和TCP的客户端的行为。为Ribbon配置服务提供者地址后,Ribbon就可基于某种负载均衡算法,自动地帮助服务消费者去请求。Ribbon默认为我们提供了很多负载均衡算法,例如轮询、随机等。当然,我们也可为Ribbon实现自定义的负载均衡算法。 在Spring Cloud中,当Ribbon与Eureka配合使用时,Ribbon可自动从Eureka Server获取服务提供者地址列表,并基于负载均衡算法,请求其中一个服务提供者实例。展示了Ribbon与Eureka配合使用时的架构。 初步应用 Ribbon是客户端负载均衡,所以肯定集成再消费端,也就是consumer端 我们修改 microservice-student-consumer-80 (工程我是在上一篇博客中玩集成建成 https://www.cnblogs.com/huangting/p/11902121.html ) 首先,引入依赖, pom.xml 加入

第一篇:什么是Nginx

喜欢而已 提交于 2019-12-05 07:01:35
一、前言 Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发的。从2004年发布至今,凭借开源的力量,已经接近成熟与完善。 Nginx功能丰富,可作为HTTP服务器,也可作为反向代理服务器,邮件服务器。支持FastCGI、SSL、Virtual Host、URL Rewrite、Gzip等功能。并且支持很多第三方的模块扩展。 Nginx的稳定性、功能集、示例配置文件和低系统资源的消耗让他后来居上,在全球活跃的网站中有12.18%的使用比率,大约为2220万个网站。 Nginx的特点: Nginx 做为 HTTP 服务器,有以下几项基本特性: 处理静态文件,索引文件以及自动索引;打开文件描述符缓冲. 无缓存的反向代理加速,简单的负载均衡和容错. FastCGI,简单的负载均衡和容错. 模块化的结构。包括 gzipping, byte ranges, chunked responses,以及 SSI-filter 等 filter。如果由 FastCGI 或其它代理服务器处理单页中存在的多个 SSI,则这项处理可以并行运行,而不需要相互等待。 支持 SSL 和 TLSSNI. Nginx 专为性能优化而开发,性能是其最重要的考量,实现上非常注重效率 。它支持内核 Poll 模型,能经受高负载的考验,有报告表明能支持高达 50,000 个并发连接数。

nginx负载均衡

橙三吉。 提交于 2019-12-05 06:56:34
1、请解释一下什么是Nginx? Nginx是一个web服务器和方向代理服务器,用于HTTP、HTTPS、SMTP、POP3和IMAP协议。 2、请列举Nginx的一些特性。 Nginx服务器的特性包括: 反向代理 /L7负载均衡器 嵌入式 Perl解释器 动态二进制升级 可用于重新编写 URL,具有非常好的PCRE支持 3、使用“反向代理服务器”的优点是什么? 反向代理服务器可以隐藏源服务器的存在和特征。它充当互联网云和 web服务器之间的中间层。这对于安全方面来说是很好的,特别是当使用web托管服务时。 来源: https://www.cnblogs.com/lingboweifu/p/11912096.html

springcould03 (微服务调用Ribbon、Feign简介及应用)

会有一股神秘感。 提交于 2019-12-05 04:59:00
微服务调用Ribbon 简介 前面讲了eureka服务注册与发现,但是结合eureka集群的服务调用没讲。 这里的话 就要用到Ribbon,结合eureka,来实现服务的调用; Ribbon是Netflix发布的负载均衡器,它有助于控制HTTP和TCP的客户端的行为。为Ribbon配置服务提供者地址后,Ribbon就可基于某种负载均衡算法,自动地帮助服务消费者去请求。Ribbon默认为我们提供了很多负载均衡算法,例如轮询、随机等。当然,我们也可为Ribbon实现自定义的负载均衡算法。 在Spring Cloud中,当Ribbon与Eureka配合使用时,Ribbon可自动从Eureka Server获取服务提供者地址列表,并基于负载均衡算法,请求其中一个服务提供者实例。展示了Ribbon与Eureka配合使用时的架构。 Ribbon是客户端负载均衡,所以肯定集成再消费端,也就是consumer端 我们修改 microservice-student-consumer-80 首先,引入依赖,pom.xml 加入 ribbon相关依赖 <!--ribbon相关依赖--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId>

正向代理和反向代理

夙愿已清 提交于 2019-12-05 04:48:29
正向代理 正向代理(forward proxy) :是一个位于客户端和目标服务器之间的服务器(代理服务器),为了从目标服务器取得内容,客户端向代理服务器发送一个请求并指定目标,然后代理服务器向目标服务器转交请求并将获得的内容返回给客户端。 这种代理其实在生活中是比较常见的,比如科学上wang技术,其用到的就是代理技术。 有时候,用户想要访问某国外网站,该网站无法在国内直接访问,但是我们可以访问到一个代理服务器,这个代理服务器可以访问到这个国外网站。这样呢,用户对该国外网站的访问就需要通过代理服务器来转发请求,并且该代理服务器也会将请求的响应再返回给用户。这个上网的过程就是用到了正向代理。 这个过程其实和租房子很像。 租房子的时候,一般情况下,我们很难联系到房东,因为有些房东为了图方便,只把自己的房屋信息和钥匙交给中介了。而房客想要租房子,只能通过中介才能联系到房东。而对于房东来说,他可能根本不知道真正要租他的房子的人是谁,他只知道是中介在联系他。 这里面一共有三个角色,租客(用户)、中介(代理服务器)和房东(国外网站,目标服务器)。引入中介(代理服务器)的原因是用户无法联系上房东(用户无法访问国外网站)。 正向代理,其实是"代理服务器"代理了"客户端",去和"目标服务器"进行交互。 通过正向代理服务器访问目标服务器,目标服务器是不知道真正的客户端是谁的

node.js中http模块、koa、pm2、nginx、域名 的关系

孤者浪人 提交于 2019-12-05 04:48:24
如果我们想要自己搭建一个服务器,上面这些名词应该是我们经常会听到的,他们之间有什么关系呢? node.js http模块 基础支持 koa 路由 静态文件 权限 中间件 模板 文件上传 Gzip压缩 pm2 热启动 单机负载均衡 监听 nginx 集群负载均衡 反向代理 虚拟主机 Gzip压缩 域名 服务器于用户之间的连接 来源: https://www.cnblogs.com/mrzhu/p/11907200.html

各种软件的含义和特点

主宰稳场 提交于 2019-12-05 04:29:50
一、 heartbeat的概念 Linux-HA的全称是High-Availability Linux,它是一个开源项目,这个开源项目的目标是:通过社区开发者的共同努力,提供一个增强linux可靠性(reliability)、可用性 (availability)和可服务性(serviceability)(RAS)的群集解决方案。其中Heartbeat就是Linux-HA项目中 的一个组件,也是目前开源HA项目中最成功的一个例子,它提供了所有 HA 软件所需要的基本功能,比如心跳检测和资源接管、监测群集中的系统服务、在群集中的节点间转移共享 IP 地址的所有者等,自1999年开始到现在,Heartbeat在行业内得到了广泛的应用,也发行了很多的版本,可以从Linux-HA的官方网站www.linux-ha.org下载到Heartbeat的最新版本。 二、 HA集群中的相关术语 1.节点(node) 运行heartbeat进程的一个独立主机,称为节点,节点是HA的核心组成部分,每个节点上运行着操作系统和heartbeat软件服务,在 heartbeat集群中,节点有主次之分,分别称为主节点和备用/备份节点,每个节点拥有唯一的主机名,并且拥有属于自己的一组资源,例如,磁盘、文件 系统、网络地址和应用服务等。主节点上一般运行着一个或多个应用服务。而备用节点一般处于监控状态。 2.资源

分布式

夙愿已清 提交于 2019-12-05 02:10:23
谈谈业务中使用分布式的场景 首先,需要了解系统为什么使用分布式。 随着互联网的发展,传统单工程项目的很多性能瓶颈越发凸显,性能瓶颈可以有几个方面: 1.应用服务层:随着用户量的增加,并发量增加,单项目难以承受如此大的并发请求导致的性能瓶颈。 2.底层数据库层:随着业务的发展,数据库压力越来越大,导致的性能瓶颈。 #场景1:应用系统集群的 Session 共享 应用系统集群最简单的就是服务器集群,比如:Tomcat 集群。应用系统集群的时候,比较凸显的问题是 Session 共享,Session 共享我们一是可以通过服务器插件来解决。另外一种也可以通过 Redis 等中间件实现。 #场景2:应用系统的服务化拆分 服务化拆分,是目前非常火热的一种方式。现在都在提微服务。通过对传统项目进行服务化拆分,达到服务独立解耦,单服务又可以横向扩容。服务化拆分遇到的经典问题就是分布式事务问题。目前,比较常用的分布式事务解决方案有几种:消息最终一致性、TCC 补偿型事务等。 #场景3:底层数据库的压力分摊 如果系统的性能压力出现在数据库,那我们就可以读写分离、分库分表等方案进行解决。 Session 分布式方案 #基于 nfs(net filesystem) 的 Session 共享 将共享服务器目录 mount 各服务器的本地 session 目录,session 读写受共享服务器 io 限制

nginx常见的面试题

六月ゝ 毕业季﹏ 提交于 2019-12-05 00:22:29
问题1:Nginx是用来干嘛的? Nginx是一个高性能的HTTP和反向代理服务器,这个基本是用来前端服务器集群后做负载均衡和动静分离用的。 负载均衡即是代理服务器将接收的请求均衡的分发到各服务器中, 问题2:负载均衡原理 问题3:负载均衡的几种常用方式?几种策略 1、轮询(默认) 2、weight(权重) ,即指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的 情况。 upstream backserver { server 192.168.0.14 weight=3; server 192.168.0.15 weight=7; } 权重越高,在被访问的概率越大,如上例,分别是30%,70%。 但是上述方式存在一个问题就是说,在负载均衡系统中,假如用户在某台服务器上登录了,那么该用户第二次请求的时候,因为我们是负载均衡系统,每次请求都会重新定位到服务器集群中的某一个,那么已经登录某一个服务器的用户再重新定位到另一个服务器,其登录信息将会丢失,这样显然是不妥的。 3、ip_hash: 每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。 4、url_hash: 5、fair(第三方) :按后端服务器的响应时间来分配请求,响应时间短的优先分配。 问题4:即session不同步怎么办?

Nginx 配置从零开始

吃可爱长大的小学妹 提交于 2019-12-04 19:28:43
作为一个 nginx 的初学者记录一下从零起步的点滴。 基本概念 Nginx 最常的用途是提供反向代理服务,那么什么反向代理呢?正向代理相信很多大陆同胞都在这片神奇的土地上用过了,原理大致如下图: 代理服务器作为客户端这边的中介接受请求,隐藏掉真实的客户,向服务器获取资源。如果代理服务器在长城外的话还能顺便帮助我们实现翻越长城的目的。而反向代理顾名思义就是反过来代理服务器作为服务器的中介,隐藏掉真实提供服务的服务器,原理大致如下图: 这么做当然不是为了实现翻越长城,而是为了实现安全和负载均衡等一系列的功能。所谓安全指客户端的请求不会直接落到内网的服务器上而是通过代理做了 一层转发,在这一层就可以实现安全过滤,流控,防 DDOS 等一系列策略。而负载均衡指我们可以水平扩展后端真正提供服务的服务器数量,代理按规则转发请求到各个服务器,使得各个服务器的负载接近均衡。 而 nginx 就是目前流行的这样一个反向代理服务。 安装 在 Ubuntu 下,可以舍去编译安装的过程,直接 apt-get sudo apt-get install nginx 安装好之后可以直接通过: sudo service nginx start 来启动 nginx 服务,nginx 默认设置了 80 端口的转发,我们可以再浏览器访问 http://locallhost 来进行检查。 初始配置 nginx