前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >小故事详解负载均衡技术的实现:从tomcat到Nginx

小故事详解负载均衡技术的实现:从tomcat到Nginx

原创
作者头像
用户2164320
发布于 2018-08-14 15:35:51
发布于 2018-08-14 15:35:51
4810
举报

什么是负载均衡?

通俗一点讲,就是在高并发、大数据环境下给服务器减压的技术。

负载均衡是任何一个有一定规模的互联网企业都会考虑的问题,负载方式很多,有依靠硬件实现的,也有依靠软件实现负载的。

今天来聊聊使用软件来负载的方式。

你可能听过各自负载的方式,比如常见的nginx,dubbo,springcloud等等技术框架都能实现负载,作为软件大牛的你有没有考虑过这些负载方式的区别呢?

下面小源就来假想个案例来谈谈常用的负载,我想对你一定会有帮助。

【以下故事纯属虚构,请勿对号入座,想学习linux相关的配置以及更多的负载知识请加群523916260

从一个tomcat谈起

在很久很久以前,小源成立了自己的公司,并做了一个购物网站-《小源购物网》,刚开始架构非常简单,传统的java开发框架,一个tomcat容器,经过1个月的没日没夜的编码,搞定,上线。

1年后,项目没想到火了,每天都有大量的人来购买娃娃、衣服、杯子等等。突然发现一个tomcat搞不定,怎么办?两个tomcat呗!

那么问题来了,两个tomcat没问题,服务器也整几台,但是我域名只有一个啊,怎么办?

Nginx登场

Nginx登场,通过一棒子程序猿的倒腾,在项目中引入nginx就能解决并发问题了,其中的研究过程也并不简单,session怎么共享,配置文件怎么配置等等,说多了都是泪,不管怎么说,起码完成了任务,能让2个tomcat联合起来工作了。

然而在线商城越来越火,没过2个月,发现2个tomcat也搞不定了,怎么办?只能集成更多tomcat了,当然Nginx集成很多tomcat都没问题,架构图如下:

但是……

增加tomcat小源得修改nginx.conf这配置文件,修改了配置问题我当然可以reload,让nginx生效,但reload狗血的经常有问题,而我又不得不经常重启。

重启就麻烦大了,我那服务不得停止,客户好好的在购物,突然发现不能下单,不能付款了,这不非常糟糕?

其实也还好,虽然客户友好度不好,但小源一般凌晨3点加班来维护,幸苦是辛苦,但勉强能接受。

直到有一天……

噩梦的一天

那天小源正在午睡,3伏天,太阳高晒着,在睡梦中砰的一声,电是没停,可是那台nginx服务器已经在冒烟了。

怎么办?那一天nginx的服务器肯定是报销了,没过多久客户的投诉电话就没完没了的打了过来,而这只是刚过去10分钟……

只能重新搭建个服务器了,好在服务器还有,只是配置文件什么了都忘记备份了,火急火燎的我足足花了1个小时才把服务器弄好,还是nginx配置文件非常熟练的情况下。

问题虽然解决了,但当天小源依然被投资经理一顿臭骂,一个小时损失了很多钱啊,而且客户的投诉还堆积如山。

以后再发生这情况怎么办?我肯定记得把配置文件进行备份了,但再发生nginx死机也是不能接受的啊.

终于……

Nginx+keepalived上线

一个nginx机群肯定是不行了,那我得用两个nginx机群才行,一个nginx冒烟了,另外个nignx马上等顶替,这样不就好了吗?

好了,那么总体的架构图如下。

终于,这样的架构解决了很大的问题。

但是这架构也有问题,至于到底有什么问题呢?Dubbo,spring cloud,zookeeper到底和负载有什么关系呢?

我先举个例子轻松一下,然后告诉你一个大多数人都会面临的问题。

一个大多数人都会面临的问题

下面这样一件事,你肯定也感同身受。

张程已经工作2年了,每个项目都是熬夜加班、高质量完成,薪资却依旧没有过万!多次提出加薪请求,领导总说哦哦哦知道了。

吃午饭时他听说,有个离职的同事,换了工作后年薪翻了1倍,已经40万+了。此时他心中一惊,明白了问题不在自己,而是目前的工作很难再大幅涨薪了。

你肯定也想快速拿到40万+年薪,不是吗?

很明显,java架构师正是你的机会。

我了解到,目前全行业都在使用微服务技术,人才短缺非常严重,普通微服务开发起薪也在15K/月。

靠微服务技术拿到高薪的例子,新闻里我们身边都有很多!

或许你也有过这样的经历:

到百度搜索“如何学习微服务?”,在结果页中点开的却都是广告,往下翻个5、6页,也没有满意的答案。

你又到知乎搜索“微服务要学什么技术?该怎么学?”。

各路键盘大神告诉你,要好几本书......

你把书买回家,每本都厚如砖头。我猜你肯定会想:“看完这些书怎么也得2年吧”,瞬间从“信心十足”变成“就当看着玩吧”。

那我们该如何轻松学习微服务呢?

下面的方法可以帮到你!

其实要轻松学习很简单,

我给你总结了两个要点:

  1. 找到一套好的视频课程,紧跟大牛梳理好的知识框架进行学习。
  2. 多练。

你我都不是天才,但只要你能做到这两点,短时间掌握技术的概率是非常大的。

那怎样才能找到一套好课程呢?

而且还必须免费 !

别急,我这就给你分享一个java架构师学习群474862212,入群之后每周6天,每天2小时(20:00-22:00)提醒督促你免费学习java知识,国防科大知名讲师讲解,学知识,交朋友,遇到问题老师耐心细致讲解。喜欢Java的,喜欢编程,有梦想成为架构师的程序员们,我只能帮你们到这里了。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
电脑桌面整理软件
腾讯桌面整理本来是腾讯电脑管家中的一款扩展应用,但是如今已经剥离出来可以单独下载了。软件本身十分轻量化,没有广告没有捆绑,功能也十分单一,就是给桌面图标分类。
季春二九
2023/03/22
2K0
电脑桌面整理软件
VisioPro2019下载及安装教程
下面我们详解安装最新版Visio: 首先,下载链接(百度网盘):pan.baidu.com/s/12Zd8zX_hostaz-SHdSZGcw
荣仔_最靓的仔
2021/02/02
2.7K1
VisioPro2019下载及安装教程
清理C盘非必要文件(从认识到C盘空间管理)
1:C盘与其它盘符的关系 C盘是计算机的硬盘分区之一,同我们计算机系统中可以看见的其它盘符一样,都可以进行存储数据。 说明一下D,E盘这些类似的盘符只是计算机系统中可见的盘,但是在实际的物理状态下是不存在的。都是逻辑上建立的分区,所谓逻辑不过就是虚拟出来的而已。 我们的电脑硬盘需要进行分区,才可以进行合理有效的利用。在分区的时候我们一般进行确定一个基本的主分区,然后就是扩展分区,扩展分区下面我们就进行逻辑划分,逻辑划分出来的就是D盘,E盘,F盘这些。 我们的目前的磁盘啊只能进行划分4个主分区,为什么呢?因为硬盘只提供分区表64个字节的存储空间,而每个分区的参数只占据16个字节,所以我们就只能最多划分4个主分区。然后扩展分区就是和主分区和不能大于四。当主分区划分满后,就没有扩展分区了。但是对于系统的设计效率,或者计算机及数据执行的效率而讲,我们这样做显然不明智。
兰舟千帆
2022/07/16
5.2K0
清理C盘非必要文件(从认识到C盘空间管理)
modelsim安装_Modelsim10.5安装教程
2. 打开解压后的文件夹,鼠标右击“modelsim-win64-10.5”,选择“以管理员身份运行”。
全栈程序员站长
2022/08/31
2.9K0
modelsim安装_Modelsim10.5安装教程
运维:C盘告急?一招让Chrome缓存搬家,小白也能轻松搞定!
本次迁移到D:\Program Files\Google 目录,迁移完成后,删除桌面的Google快捷方式,然后重新创建快捷方式。
小明互联网技术分享社区
2025/04/23
1530
运维:C盘告急?一招让Chrome缓存搬家,小白也能轻松搞定!
一个强迫症的电脑上(桌面篇)
这张好康的壁纸来自一个神奇的软件,wallpaper engine,想必绅士们都知道(咳咳咳,我的壁纸年龄分级从来都是大众级哈。)
小孙同学
2022/01/17
1.7K0
一个强迫症的电脑上(桌面篇)
禁止QQ轻聊版升级到TIM
大概是因为 QQ 轻聊版即将被抛弃,最近腾讯开始强制版本升级。即便在设置中选择了“有安全更新时提醒我,不自动安装”,QQ 轻聊版还是会自动下载 TIM 安装包并且自卸载升级到 TIM。reizhi 还是比较习惯轻聊版的手感,经过一番研究找到了禁止升级的方法,并且不需要任何第三方软件,也不需要更改路由器的设置。
reizhi
2022/09/26
1K0
禁止QQ轻聊版升级到TIM
电脑桌面图标点击打不开怎么办_双击桌面图标打开的是属性
大家好,又见面了,我是你们的朋友全栈君。 在网上我们经常会看到有人提问“怎样解决笔记本电脑双击桌面图标打不开”的问题,引发该问题的原因是exe文件的关联损坏了,当然系统中毒也可能导致此现象,那么我
全栈程序员站长
2022/09/21
3.1K0
电脑桌面图标点击打不开怎么办_双击桌面图标打开的是属性
MATLAB2019a
magnet:?xt=urn:btih:733DFBA6CCC23DB9FFD6287C169A15664897E78D
小文要打代码
2024/10/16
830
MATLAB2019a
程序员的强迫症–如何让电脑桌面变得非常干净?
作为一枚有强迫症的程序员是忍受不了这么乱的桌面,接下来教你们整理电脑桌面又不妨碍办公,还能装装逼,让电脑小白使用你的电脑不知如何下手。
忆想不到的晖
2020/07/15
2.3K0
程序员的强迫症–如何让电脑桌面变得非常干净?
Win11怎么把C盘分成几个盘?
很多Windows11用户会发现,系统默认只给电脑分配了一个C盘,而C盘不仅是系统盘,还是软件的默认安装位置,并且个人数据也是保存在C盘。这种情况下,电脑使用时间久了会遇到一个常见问题:C盘空间不足或是需要将C盘分成多个部分以便更好地管理文件和数据。本文将详细介绍如何在Win11系统中将C盘分成多个分区,帮助您轻松完成磁盘管理。
用户7704932
2024/09/04
3300
Win11怎么把C盘分成几个盘?
电脑技巧:如何更改Win10桌面文件路径,轻松给系统盘瘦身!
大家平常为了方便经常会在桌面上保存各种各样的文件,有些桌面文件可能会比较大从而占用C盘的磁盘空间,而系统盘我们在分配的时候,一般只有60-100G左右,时间长了我们的系统盘就会出现磁盘容量不足的情况,其实我们可以将桌面的文件路径修改为其它的磁盘。
小明互联网技术分享社区
2022/04/07
2.4K0
电脑技巧:如何更改Win10桌面文件路径,轻松给系统盘瘦身!
Project 2010 软件下载安装详细教程
Microsoft Project是一款由微软公司开发的项目管理类软件,适用于互联网、房地产、活动策划等各行各业。
软件小栈
2022/10/17
9370
Project 2010 软件下载安装详细教程
Win11 桌面快捷方式未全部显示的诡异现象及解决方法
最近在使用我的电脑时,开机后,桌面的快捷方式总感觉少了很多,怀疑是之前使用了 360 桌面助手导致的,但是我没有证据。现在已经没有使用了,还是这样,所以也不太确定。先来看看现在出现问题的情况,现在桌面上总共有 38 个项目(一列 14 个):
独立观察员
2023/03/08
2.9K0
Win11 桌面快捷方式未全部显示的诡异现象及解决方法
Windows10美化小记
1.需要的软件。 ①软媒魔方桌面,绿色版。(提供下载) ②水滴时钟桌面。(提供下载和时间皮肤) ③TransucentTB(透明任务栏,提供下载按需使用) ④Wallpaper Engine(动态壁纸软件,按需求下载,我是STEAM18软妹币入正的,所以不提供下载。可以去度娘搜索pj版本) ⑤Pure轻语图标包,这里使用了 【Pure 轻雨 图标包】 的图标文件。@森雨Plus ,希望大佬不要介意
叮当叮
2020/04/20
1.1K0
Windows10美化小记
Project 2013 软件下载安装详细教程
project2013官方版是一款由微软推出的多功能项目管理软件。microsoft project 2013中文版支持为任务分配资源、跟踪进度、管理预算和分析工作量等功能,能够协助项目经理发展计划。
软件小栈
2022/10/17
1.2K0
Project 2013 软件下载安装详细教程
苹果电脑桌面怎么清理 苹果电脑桌面文件太多怎么办
若想提高工作效率,必须做好桌面文件管理。苹果电脑桌面图标太多,文件排列杂乱无章,会严重影响用户的工作效率。桌面文件管理得当,节省了文件归档和检索的时间,工作效率自然会得到提高。有关苹果电脑桌面怎么清理,苹果电脑桌面文件太多怎么办的问题,本文将进行详细介绍。
逐梦岛
2024/08/13
1.2K1
苹果电脑桌面怎么清理 苹果电脑桌面文件太多怎么办
(图文)U盘安装原版WIN10系统
首先 我们先去下载好WIN10 64的原版系统 那么去哪里下呢 不用看 首选肯定是MSDN的了 直接百度MSDN 或者 I TELL YOU 都可以进入都官网 【这里直接提供一个镜像下载】:
Erwin
2019/12/31
1.2K0
ubuntu20.04安装pycharm2021.3.3_ubuntu镜像安装
https://www.jetbrains.com/pycharm/download/#section=linux 这里我下载的是社区开源免费版
全栈程序员站长
2022/09/27
6910
ubuntu20.04安装pycharm2021.3.3_ubuntu镜像安装
IntelliJ IDEA 2019软件下载和安装教程
IntelliJ IDEA 2019是一款非常好用的编程工具,拥有强大的静态代码分析和人体工程学设计,整合了智能代码助手、代码自动提示、J2EE支持、Ant、JUnit、CVS整合、代码审查等功能,帮助用户更加简单轻松地完成开发设计工作。
肉肉软件安装
2022/11/04
1.7K0
IntelliJ IDEA 2019软件下载和安装教程
推荐阅读
相关推荐
电脑桌面整理软件
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档