服务器集群

various system release [online]

♀尐吖头ヾ 提交于 2019-12-01 18:27:54
1、 金丝雀发布 Canary 简单的金丝雀测试一般通过手工测试验证,复杂的金丝雀测试需要比较完善的监控基础设施配合,通过监控指标反馈,观察金丝雀的健康状况,作为后续发布或回退的依据。 金丝雀发布,一般先把新版本发布到单集群1台服务器,或者一个小比例,主要做流量验证用。 如果金丝测试通过,则把剩余的原有版本全部升级为新版本。如果金丝雀测试失败,则直接摘除金丝雀的流量,宣布发布失败。 金丝雀发布,简单可控不粗暴!初创型公司比较适合。 2、 一群金丝雀发布 单服务器集群滚动发布,老司机给起个名字叫“一群金丝雀发布”。 单服务器集群滚动发布,在金丝雀发布基础上的进一步优化改进,是一种自动化程度较高的发布方式,用户体验比较平滑,是目前成熟型技术组织所采用的主流发布方式。 前提:滚动发布需要比较复杂的发布工具和智能 LB,支持平滑的版本替换和流量拉入拉出 单服务器集群滚动发布实践起来这样的: 1. 先发 1 台,或者一个小比例,主要做流量验证用,是不是很像金丝雀 (Canary) 测试; 2. 每次发布时,先将老版本流量从LB上摘除,清除老版本,发布新版本,再将LB流量接入新版本; 3. 滚动式发布每次操作一般由若干个批次组成,每批的数量一般是可以预设的(使用发布模板设定)。例如:第一批2%,第二批10%,第三批50%,第四批100%。每批上线之间留观察间隔

Nginx 反向代理与负载均衡

匆匆过客 提交于 2019-12-01 09:38:02
转载来自于 https://mp.weixin.qq.com/s/xLOS-XNOinkptKRBJN8gXg 什么是反向代理与负载均衡 什么是反向代理 当我们有一个服务器集群,并且服务器集群中的每台服务器的内容一样的时候,同样我们要直接从个人电脑访问到服务器集群服务器的时候无法访问,必须通过第三方服务器才能访问集群 这个时候,我们通过第三方服务器访问服务器集群的内容,但是我们并不知道是哪一台服务器提供的内容,此种代理方式称为 反向代理 什么是负载均衡 公司会建立很多的服务器,这些服务器组成了服务器集群,然后,当用户访问网站的时候,先访问一个中间服务器,再让这个中间服务器在服务器集群中选择一个压力较小的服务器,然后将该访问请求引入选择的服务器 所以,用户每次访问,都会保证服务器集群中的每个服务器压力趋于平衡,分担了服务器压力,避免了服务器崩溃的情况 一句话: nginx会给你分配服务器压力小的去访问 Nginx反向代理与负载均衡的实现 用户访问网站的时候首先会访问nginx服务器,然后nginx服务器再从服务器集群中选择压力较小的服务器,将该访问请求引向该服务器 nginx配置 下面修改配置方面我就从mac系统下来进行简单的演示,如何安装的话也暂以mac为主了,windows系统直接去Nginx官网下载安装即可 安装nginx 1-进到homebrew官网,然后复制命令

一篇文章说尽所有软件发布

主宰稳场 提交于 2019-11-30 15:53:26
高效能组织和低效能组织在软件交付的效率上有数量级上的差异。技术组织的软件交付能力是一种综合能力,涉及众多环节,其中发布是尤为重要的环节。——鲁迅 即使作为非开发工程师,相信很多人也听说过“金丝雀发布”、“滚动发布”和“蓝绿发布”等术语。 老司机想通过一篇文字给各位分享一下常见的几种发布模式,让开发或者非开发人员对软件发布一个更为清晰全面的认识,让大家能够根据自己的所在团队的情况,对发布策略给出正确的实践,必要时候参与讨(si)论(bi)。 1、 金丝雀发布 金丝雀 (Canary) 测试。源于以前矿工下矿洞前,先会放一只金丝雀进去探是否有有毒气体,看金丝雀能否活下来,由此得名。 简单的金丝雀测试一般通过手工测试验证,复杂的金丝雀测试需要比较完善的监控基础设施配合,通过监控指标反馈,观察金丝雀的健康状况,作为后续发布或回退的依据。 金丝雀发布,一般先把新版本发布到单集群1台服务器,或者一个小比例,主要做流量验证用。 如果金丝测试通过,则把剩余的原有版本全部升级为新版本。如果金丝雀测试失败,则直接摘除金丝雀的流量,宣布发布失败。 金丝雀发布,简单可控不粗暴!初创型公司比较适合。 2、 一群金丝雀发布 单服务器集群滚动发布,老司机给起个名字叫“一群金丝雀发布”。 单服务器集群滚动发布,在金丝雀发布基础上的进一步优化改进,是一种自动化程度较高的发布方式,用户体验比较平滑

《大型网站技术实践》借助LVS+Keepalived实现负载均衡

坚强是说给别人听的谎言 提交于 2019-11-30 04:59:20
一、负载均衡:必不可少的基础手段 1.1 找更多的牛来拉车吧   当前大多数的互联网系统都使用了服务器集群技术,集群即 将相同服务部署在多台服务器上构成一个集群整体对外提供服务 ,这些集群可以是Web应用服务器集群,也可以是数据库服务器集群,还可以是分布式缓存服务器集群等等。 古人有云: 当一头牛拉不动车的时候,不要去寻找一头更强壮的牛,而是用两头牛来拉车 。   在实际应用中,在Web服务器集群之前总会有一台负载均衡服务器,负载均衡设备的任务就是作为Web服务器流量的入口,挑选最合适的一台Web服务器,将客户端的请求转发给它处理,实现客户端到真实服务端的透明转发。最近几年很火的「云计算」以及分布式架构,本质上也是将后端服务器作为计算资源、存储资源,由某台管理服务器封装成一个服务对外提供,客户端不需要关心真正提供服务的是哪台机器,在它看来,就好像它面对的是一台拥有近乎无限能力的服务器,而本质上,真正提供服务的,是后端的集群。 1.2 负载均衡的类型   负载均衡可以采用硬件设备(例如常常听见的F5),也可以采用软件负载。   商用硬件负载设备成本通常较高(一台几十万上百万很正常),所以在条件允许的情况下我们会采用软件负载;   软件负载解决的两个核心问题是:选谁、转发,其中最著名的是 LVS (Linux Virtual Server)。 传送门->

Nginx+tomcat配置集群

送分小仙女□ 提交于 2019-11-30 01:16:09
开发的应用采用F5负载均衡交换机,F5将请求转发给5台hp unix服务器,每台服务器有多个webserver实例,对外提供web服务和socket等接口服务。之初,曾有个小小的疑问为何不采用开源的apache、Nginx软件负载,F5设备动辄几十万,价格昂贵?自己一个比较幼稚的问题,后续明白:F5是操作于IOS网络模型的传输层,Nginx、apache是基于http反向代理方式,位于ISO模型的第七层应用层。直白些就是TCP UDP 和http协议的区别,Nginx不能为基于TCP协议的应用提供负载均衡。 了解了二者之间的区别于应用场景,对Nginx产生浓厚的兴趣,阅读张宴的<实战Nginx>(这个85年的小伙子年轻有为羡慕+妒忌),搞明白了大致原理和配置,Ubuntu10.10,window下对Nginx+tomcat负载均衡做了配置尝试,将全部请求转发到tomcat,并未做静态,动态分开,图片防盗链等配置。 Nginx 介绍 Nginx (发音同 engine x)是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。 其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页伺服器中表现较好.目前中国大陆使用nginx网站用户有:新浪、网易、 腾讯

为什么要放弃 JSP ?

 ̄綄美尐妖づ 提交于 2019-11-29 06:54:17
作者 | 水车 链接 | www.cnblogs.com/xuange306 前言 以前的项目大多数都是Java程序猿又当爹又当妈,既搞前,又搞后端。 随着时代的发展,渐渐的许多大中小公司开始把前后端的界限分的越来越明确,前端工程师只负责前端的事情,后端工程师只管后端的事情。正所谓术业有专攻,一个人如果什么都会,那么每一样都很难达到精通。 大中型公司需要专业人才,小公司需要全才,但是对于个人职业发展来说,我建议是分开。你要是这辈子就吃 Java 这碗饭,就不要去研究什么 css,js 等等。 把你的精力专注在 Java,JVM 原理,Spring原理,mysql锁,事务,多线程,大并发,分布式架构,微服务,以及相关的项目管理等等,这样你的核心竞争力才会越来越高,正所谓你往生活中投入什么,生活就会反馈给你什么。 曾几何时 我们的Java Web项目都是使用了若干后台框架进行开发,Spring、Spring MVC、MyBatis、Hibernate等等。 而且大多数项目在Java后端都是分了三层,控制层、业务层、持久层。控制层负责接收参数,调用相关业务层,封装数据,以及路由到JSP页面。然后Jsp页面上使用各种标签(jstl/el)表达式将后台的数据展现出来。 我们先看上述这种情况,需求定完了,代码写完了,测试测完了,然后发布:

Linux服务器集群性能监控之Performance Co-Pilot(PCP)部署

喜欢而已 提交于 2019-11-28 15:38:34
转载自: https://blog.csdn.net/w84268426/article/details/78431778 在部署PCP时,我用到了两台cent os 7虚拟机。 1.官方安装文档 http://pcp.io/docs/guide.html 2.官方用户指引 http://pcp.io/doc/pcp-users-and-administrators-guide.pdf 3.安装步骤简介 监控机和被监控机均需要关闭firewall防火墙 关闭firewall: systemctl stop firewalld.service #停止firewall systemctl disable firewalld.service #禁止firewall开机启动 firewall-cmd --state #查看默认防火墙状态(关闭后显示not running,开启后显示running) 监控机: ①安装Collector # yum install pcp # systemctl enable pmcd # systemctl start pmcd # systemctl enable pmlogger # systemctl start pmlogger # cd /var/lib/pcp/pmdas/proc # ./Install ②安装monitor # yum

nginx负载均衡?

蹲街弑〆低调 提交于 2019-11-28 06:30:23
本文目录 1 什么是负载均衡? 2 HTTP重定向实现负载均衡 3 DNS负载均衡 4 反向代理负载均衡 5 负载均衡组件 回到目录 1 什么是负载均衡? 当一台服务器的性能达到极限时,我们可以使用服务器集群来提高网站的整体性能。那么,在服务器集群中,需要有一台服务器充当调度者的角色,用户的所有请求都会首先由它接收,调度者再根据每台服务器的负载情况将请求分配给某一台后端服务器去处理。 那么在这个过程中,调度者如何合理分配任务,保证所有后端服务器都将性能充分发挥,从而保持服务器集群的整体性能最优,这就是负载均衡问题。 下面详细介绍负载均衡的四种实现方式 回到目录 2 HTTP重定向实现负载均衡 过程描述 当用户向服务器发起请求时,请求首先被集群调度者截获;调度者根据某种分配策略,选择一台服务器,并将选中的服务器的IP地址封装在HTTP响应消息头部的Location字段中,并将响应消息的状态码设为302,最后将这个响应消息返回给浏览器。 当浏览器收到响应消息后,解析Location字段,并向该URL发起请求,然后指定的服务器处理该用户的请求,最后将结果返回给用户。 在使用HTTP重定向来实现服务器集群负载均衡的过程中,需要一台服务器作为请求调度者。用户的一项操作需要发起两次HTTP请求,一次向调度服务器发送请求,获取后端服务器的IP,第二次向后端服务器发送请求,获取处理结果。 调度策略

五、网站的高可用架构

时光怂恿深爱的人放手 提交于 2019-11-28 03:10:39
   5.1 网站可用性的度量与考核      网站的可用性描述网站可有效访问的特性。     网站的页面能完整呈现在用户面前,需要经过很多环节,任何一个环节出问题,都会导致网站页面不可访问。     DNS会被劫持、CDN服务可能会挂掉、网站服务器可能会宕机、网站交换机可能会失效、硬盘会损坏、网卡会松掉、机房会停电、空调会失灵、程序会有Bug、黑客会攻击、促销引来大量的访问、第三方合作伙伴的服务不可用.....   5.2 高可用的网站架构       网站高可用架构设计的主要目的就是保证服务器硬件故障时服务依然可用、数据依然保存并能够被访问。     实现上述高可用架构的主要手段是数据和服务的冗余备份及失效转移,一旦某些服务器宕机,就将服务切换到其他可用的服务器上,如果磁盘损坏,则从备份的磁盘读取数据。     一个典型的网站设计通常遵循如下图所示的基本分层架构模型   典型的分层模型是三层,即应用层、服务层、数据层;各层之间具有相对独立性,应用层主要负责具体业务逻辑处理;服务层负责提供可复用的服务;数据层负责数据的存储与访问。        不同的业务产品会部署在不同的服务器集群上,如某网站的文库、贴吧、百科等属于不同的产品,部署在各自独立的服务器集群上,互不相干。这些产品又会依赖一些共同的复用业务,如注册登录服务、Session 管理服务、账户管理服务等

linux+nginx+tomcat通过反向代理实现负载均衡

試著忘記壹切 提交于 2019-11-27 22:55:02
最近在看一本关于JavaWeb实现网站分布式架构的书,里面提到了通过负载均衡,可以避免由于大规模访问所导致的服务器瘫痪或者由于单一服务器造成的唯一一台服务器故障后,导致用户无法访问等问题。实现负载均衡的方式有很多,有硬件方式,如:F5服务器 或者 软件方式,如:lvs( Linux虚拟服务器 )或Nginx。我选择了利用Nginx来实践负载均衡。 Nginx简介 nginx是通过反向代理的方式实现负载均衡,什么是反向代理呢?援引一段在百度上找到的解释,我觉得很贴切: “ 大家都有过这样的经历,拨打10086客服电话,可能一个地区的10086客服有几个或者几十个,你永远都不需要关心在电话那头的是哪一个,叫什么,男的,还是女的,漂亮的还是帅气的,你都不关心,你关心的是你的问题能不能得到专业的解答,你只需要拨通了10086的总机号码,电话那头总会有人会回答你,只是有时慢有时快而已。那么这里的10086总机号码就是我们说的 反向代理 。客户不知道真正提供服务人的是谁。 ” 再举个例子,当你输入www.baidu.com的时候,你并不知道你访问的具体IP是什么(当然你也不必知道),www.baidu.com就相当于一个反向代理服务器,它的背后有很多台服务器,它会通过一定的算法,指定一台“离你最近”的服务器,将你的请求发送给它。借助这种服务器集群的方式,可以大大减轻单台服务器的压力。