【转载】一次面试引发的思考(中小型网站优化思考)

news/2024/5/20 8:49:37/文章来源:https://blog.csdn.net/weixin_33711641/article/details/94178115

前言

故事的起因是这样的,由于本人地处偏僻工作地点在美丽的冰城哈尔滨虽然地方很美丽,但是这里的软件行业实在是算不上“美丽”,这么多年由于个人原因或者公司原因经常换工作,因为这里都是中小型公司,没有什么大公司。今天安静的上班明天老板接不到外包可能就要解散,我见过最狠的老板压了我6个月的工资,我都忘记我当年为什么没被饿死过来的,据说年前有一个哈尔滨的某奇葩食品行业公司雇佣了好几十个员工干活,结果项目做完了以后,公司申请破产了,末月就是不给你结算,爱那那告,结果几个月以后又开始恢复营业了。(好吧我的嘴癌又开始犯了)言归正传,由于这种环境所以我对自己的技术也有一个了解,高难度项目不好说,但是一些中小型的解决方案,即使拿不下,也能说个六七分。今年大概三月份开始陆陆续续面试了一些公司(因为工资要的多,所以很多时候要仔细甄选是不是骗子,不能给个电话就去。) 有一天我面试了一家据说很大,给百度旗下做seo优化的公司,全国有五个分部。

概况

面试的过程很简单一个年纪跟我差不多的兄弟出来大概问了我几个问题,问了问工作年限,我说我是12年毕业的,虽然是12年毕业但是实际我已经工作五年了,他停顿了一会,然后跟我聊了聊雇佣人的原因:

据说他们公司花了很久的功夫开发了一套系统,这个东西就是处理集团五个分部的业务和会计实务进行报告的总公司,进行递交,然后进行月末统计,但是问题来了因为月末要提交所以五个分部总是在月末的最后一天递交相关资料,结果系统老是崩溃,他们想招收一个能解决问题的大拿,但是说的过程我就看出来可能觉得我很年轻,语气很是轻蔑,我当时就有预感肯定不会要我,但是我稳住了,可是我心里也很是轻蔑,花了好几年做的一套系统,一直崩溃,你们以前的技术经理是吃s的?但是,为了保持矜持(不要打我),我就岔开了话题问了一点别的,为了不引起疑心,我旁敲侧击的问了一下集团情况,他说咱们总部是150人,我说那外面呢?他说都差不多,这个时候我的脑洞的打开了,假如咱们取个中间值,五个分部,每个分部160人,那么就是800人,一个综合性公司,开发人员不能上传报表吧?销售也是,他也说了,只是管理会计这一块的,我们取个中间值,上下的并发量400人的网站,(我觉得差不多了,其实如果网站规划得好400 的并发和800的并发优化没什么区别)一个网站400就崩了,我觉得好可怜,(为什么他们还那么趾高气昂?),然后我又问咱们用的是几台服务器?他说是一台,最后他说您想要多少钱的工资?我说8k-10k,结果他马上站起来就说:你可以走了! 就凭借这句话我再也不想来这个公司面试了。

分析

我问的问题可能不全面但是是有条理的,我问他们几台服务器,就是想问问做没做基本的图片服务器和数据库服务器分离,结果是就这样被征服了。

那么问题就来了,原因可能是如下几种:

1.上传的文件太多(或者图片太多)。

2.网页的页面压力太大写的不够好。

3.数据库的压力太大。

思路

第一种问题解决方案,上传的文件太多,这个问题最难解决了,同时也是最简单的,因为解决的方案就是一个字钱,君不见优酷土豆此类网站烧钱之甚啊!因为涉及到并发,打个比方,一条高速公路是100M,那么你的并行量级咱们就按照100M计算,(这种说法已经最笨了)假设每个人的上传5M的文件和图片那么这个网站的并发我是不是就可以认为是100/5 = 20呢? 也就是说这个网站只能20个人访问了,多了轻则卡顿丢失文件,总则就是网站崩溃了,这种问题也最难解决,因为文件和图片永远都是网站流量的最大杀手,没什么好办法只能做图片服务器分离.文件服务器分离了,(但是这里又违背了人家只用一台服务器的原则),有的公司看上去很大,但是老板就是对IT部门不重视不投资那么多没什么办法。

第二种问题解决方案,网页的页面压力太大不够好,这个我可要说说了,我见过很多程序员写的页面一直都是在应付,因为我是做.net开发的,虽然.net的定位一直都是中小型网站,但是我认为不能因为它只是个中小型网站就可以敏捷开发一样快速写成功了没有了bug就可以了,咱们具体分析一下原因:

IIS 内部运行机制及Asp.Net执行过程详解 中说道:(咱们就根据iis5.x的运行机制来分析一下)

当一个HTTP请求从客户端发送过来之后会被WEB服务器进行Queue并进行分解归类,如果某个请求仅包含静态文件的请求,比如 CSS,JS,Html文件或者虚拟目录所包含的文件如图片,IIS直接提取对应的文件将其作为Http Response返回给Client,如果事情仅仅是这样,我们很多人就会失业了,呵呵。但是对于这些需要进一步处理的动态执行的文件,IIS必须将 Request进一步传递给对应的处理程序,待处理程序执行完毕获得最终的Http Response通过IIS返回给Client。如果一个请求中包含动静态请求,那么静态内容会等到动态内容生成HTML后组合在一起返回给 Client。对于IIS来说,这些处理程序通过ISAPI Extension来体现。ISAPI Extension接收到请求页的扩展名之后会到IIS的Metadata database维护着一个称为ISAPI Extension Mapping的数据表查询,负责将不同类型的Resource影射到对应的ISAPI Extension。对应.ASPX的Mapping是ASP.NET ISAPI,至此,ASP.NET ISAPI会创建一aspnet_wp.exe的worker process(若该Process不存在的话)。当地一个ASP.NET接收到Application中的任何一个.ASPX请求时,名为 ApplicationManager的类会创建一个ApplicationDomain(应用程序域)。ApplicationDomain会为全局变量提供应用程序隔离,并允许单独写真每个应用程序。在应用程序域中,将为名为 HostingEnvironment 的类创建一个实例,该实例提供对有关应用程序的信息(如存储该应用程序的文件夹的名称)的访问。如果需要,ASP.NET 还可对应用程序中的顶级项进行编译,其中包括 App_Code 文件夹中的应用程序代码。创建了应用程序域并对 HostingEnvironment 对象进行了实例化之后,ASP.NET 将创建并初始化核心对象,如 HttpContext、HttpRequest 和 HttpResponse。 HttpContext 类包含特定于当前应用程序请求的对象,如 HttpRequest 和 HttpResponse 对象。 HttpRequest 对象包含有关当前请求的信息,包括 Cookie 和浏览器信息。 HttpResponse 对象包含发送到客户端的响应,包括所有呈现的输出和 Cookie。

从上面的分析我们可以总结出iis读取页面的机理和原因:

第一种:就是对internet请求进行分析和归类,分成静态页面请求和动态页面请求,所谓的静态请求就是html静态页面,动态请求我们暂时理解为aspx,或者cshtml请求。

第二种:就是对动态页面请求进行分析,等到动态请求分析成为静态请求的时候组合再一起返回给浏览器。

所以我得出了两个结论:

第一种,我们把一些流量高但是页面数据不总是变化页面我们可以考虑使其静态化。这也是现在一些流行网站的做法。

第二种,我们可以尽力的减少动态请求分析的时间。

第三种数据库压力大的解决方案,这种问题很多就是程序员自己自身素质的问题了,或者架构没有搭建好。

我猜想原因可能是:

第一种,有的人喜欢把文件或者图片变成二进制保存到数据库里,这样参照第一种崩溃原因。

第二种,就是有的程序员他很擅长数据库方面的技术,所以他把所有的业务和逻辑都封装成了存储过程保存在数据库里,后台代码只有一个事务回滚甚至没有,这样的业务,在后台响应时间内接收不到回应自然会报错了。

结尾

我想说的是,.net语言因为其入门门槛低,容易掌握,造成了很多程序员素质参差不齐,也有很多程序员学了很多年坐了项目经理连最基本的uml 建模都没学过,这样给团队协作开发造成了非常大的影响,也给一些公司造成了不可挽回的损失,有一些老板一直在催快点干完,这个项目三天,三天能不能完成?他们只注重速度和钱,但是不注重质量,像我面试的这个公司一样自己开发的系统,居然还一直崩溃,一个网站或者公司,虽然开始的定位一定是中小型,但是我们避免不了要发展要生存,这还只是一个公司内部的系统,如果要是线上的项目,我估计没准连服务器都会崩溃了! 虽然干了五年因为不是专业出身所以底子不好写的也不怎么样,希望各位朋友能指点指点我,这只是我人生路上面试过程中的一个小部分,我只想说,无论我们是做程序员还是做人,要对得起自己的技术,对得起自己的研究成果!做到问心无愧就可以了!

 

转载于:https://www.cnblogs.com/joeymary/p/4804226.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_775687.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

tp5网站 服务器部署,tp5云服务器部署

tp5云服务器部署 内容精选换一换SAP B1的部署方案如图1所示。说明如下:VPC网络:为了保证网络的安全,SAP B1系统中所有节点在一个VPC网络内,且所有节点应属于同一个AZ(Available Zone)。公网子网区:NAT(Network Address…

html 隐藏广告代码大全,JS广告代码_JS广告代码大全_js特效代码_js特效代码大全 - 懒人建站...

网站设置点击任何地方弹出新页面广告只弹出,可指定时间间隔。利用Cookie记忆,超过指定时间刷新页面广告会再次生效。参数说明: href:http://www.51xuediannao.com/, //链接地址,必须配置成你的地址 target:_blank, zIndex:9999999…

利用 IIS日志追查网站入侵者

<script type"text/javascript"></script> <script type"text/javascript" src"http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>以前黑站黑了很多&#xff0c;但是就没有想过会不会被追踪到&…

nginx配置多个ssl证书_给自己的网站主页配置ssl证书

使用https 可以防止数据在传输过程中产生一些不必要的泄露&#xff0c;未 的页面在经过ssl证书的签发后会变成https开头&#xff0c;下面记录一下配置https加密的整个过程购买域名首先第一步我们为了防止自己的公网ip暴露出去&#xff0c;需要给自己的网站设定一个全球唯一的域…

网站搭建教程(详细步骤)

文章目录网站组成一、服务器二、网站程序三、域名空间基本介绍网站空间如何购买空间&#xff08;云虚拟主机&#xff09;如何登陆服务器网站创建安装宝塔并配置信息云虚拟机安装宝塔修改账号密码安装软件创建站点上传程序创建多个链接网站组成 一、服务器 什么是服务器? 我…

25台服务器怎样支撑世界第54大网站

StackOverflow是一个IT技术问答网站&#xff0c;用户可以在网站上提交和回答问题。当下的StackOverflow已拥有400万个用户&#xff0c;4000万个回答&#xff0c;月PV5.6亿&#xff0c;世界排行第54。然而值得关注的是&#xff0c;支撑他们网站的全部服务器只有25台&#xff0c;…

华为云网站解析

来源&#xff1a;微信公众号「编程学习基地」 文章目录配置网站解析&#xff08;华为云注册域名&#xff09;操作流程步骤一&#xff1a;查看域名步骤二&#xff1a;为域名添加A记录集步骤三&#xff1a;为子域名添加A记录集配置网站解析&#xff08;华为云注册域名&#xff0…

码支付如何对接网站_扫码支付解决新方案——自助设备优先

前几天和朋友一起出去,在一个小摊贩哪里买东西,由于摊主的年纪较大,暂时不会弄二维码收款,我们出门又没带现金,所以我们只好到附近的自助售卖机上面去买饮料了。出乎意料的是附近的自助售卖机上面,竟然不支持二维码支付,还保留纸币和硬币的支付方式。小编很是吃惊!那么今天小编…

ourphp傲派企业建站系统如何对接短信功能?

OURPHP 可以快速、安全的开启一个大气、功能强大的企业网站,它不但可以帮助您的企业树立形象,还可以实现在您自已的官方网站上展开电子商务。OURPHP理论上支持创建世界上所有国家语言的网站&#xff0c;那么电商平台的短信功能如何接入呢&#xff1f;今天我们来分享下。 插件说…

python在线开发网站_Django开发在线教育网站1

Django的基本结构 现在&#xff0c;我们在使用Python进行网站开发的过程中&#xff0c;不可避免地会使用到Django框架&#xff1b;我们将从一个项目实战出发来熟悉Django整个开发的流程&#xff1b;便于让大家在项目开发的过程中&#xff0c;深入地理解Django的使用&#xff0c…

基于javaweb的黑马旅游网站来源_宁波成“春节旅游过年”黑马城市 这十个景区最热门...

用旅游的方式过年已成为新年俗&#xff0c;哪些城市是今年旅游过年的"黑马"&#xff1f;据携程最新发布的数据显示&#xff0c;宁波上榜“2020年旅游过年十大国内黑马城市”。同时入选的城市还有&#xff1a;丽水、福州、汕头、腾冲、宁蒗、兰州、长沙、沈阳。宁波为…

企业中小规模网站架构逻辑图

一、资源规划 服务器说明外网 IP(NAT&#xff09;内网 IP(NAT)主机名称规划nginx 负载服务器 01172.16.1.5lb01nginx 负载服务器 02172.16.1.6lb02nginx web 服务器172.16.1.7web01apache web 服务器172.16.1.8web02mysql 数据库服务器172.16.1.51db01NFS 存储服务器172.16.1.3…

访问页面要看什么数据包_SEO专员,为什么要经常访问百度搜索资源平台?

在做SEO的过程中&#xff0c;很长一段时间&#xff0c;大部分的站长都可能处于“自娱自乐”的状态&#xff0c;并且总是习惯性的按照自己的实战思维去评估自身网站的状态。这并没有什么问题&#xff0c;但我们经常会忽略一些“百度搜索”的搜索引擎优化指南&#xff0c;实际上&…

PHP网站如何实现短信验证码功能?

很多网站注册会员的时候&#xff0c;都需要用户填写手机号码进行验证&#xff0c;那么如何实现这个功能呢&#xff1f; 网站实现短信验证功能的流程&#xff1a; 用户将收到的短信验证码填写到网站&#xff0c;网站对用户填写的验证码进行校验&#xff0c;如果一致&#xff0…

大型网站架构演化历程

大型网站的挑战主要来自庞大的用户&#xff0c;高并发的访问和海量数据&#xff0c;任何简单的业务一旦需要处理数以P计的数据和面对数以亿计的用户&#xff0c;问题就会变得棘手。大型网站架构主要就是解决这类问题。 本文内容大部分来自《大型网站技术架构》&#xff0c;这本…

大型网站架构之分布式消息队列

本文主要介绍消息队列概述&#xff0c;消息队列应用场景和消息中间件示例&#xff08;电商&#xff0c;日志系统&#xff09;。 本次分享大纲 消息队列概述消息队列应用场景消息中间件示例JMS消息服务常用消息队列参考&#xff08;推荐&#xff09;资料本次分享总结 一、消息…

dns遭到劫持_网站优化中判断pr劫持的办法、判断pr劫持的办法

网站优化中判断pr劫持的办法、判断pr劫持的办法网站优化中判断pr劫持的办法&#xff0c;那到底什么是PR挟持呢&#xff1f;我专门搜集了网络上关于PR挟持概念比较正确的解释。PR挟持的概念是SEO最重要的概念之一。PR劫持是什么&#xff1f;PR挟持就是用欺骗手段获得工具条上比较…

爬get接口_Python爬虫十三 网站的反爬

使用Python可以爬虫&#xff0c;那么网站就会出现反爬虫&#xff0c;我们又会根据网站反爬虫逻辑方法&#xff0c;制定反反爬。。。。爬虫和反爬的对抗一直在进行中。。。一、反爬方式的种类1、判断请求头来进行反爬这是很早期的网站进行的反爬方式User-Agent 用户代理referer …

Java开发学习网站

2019独角兽企业重金招聘Python工程师标准>>> 国内外Java学习论坛汇总 Java的学习离不开交流&#xff0c;本文提供了许多国内外较为优秀的Java论坛&#xff0c;Java学习者爱好者可于此进行交流&#xff0c;学习和提高。 AD&#xff1a; Java论坛汇总&#xff1a; 国内…

php钓鱼网站怎么做视频教程,反黑钓鱼网站全过程

一、被盗号找上门今天一打开QQ邮箱&#xff0c;看到个群邮件这货以发聚会照片为名义给出了一个网址Defaulthttp://202.194.131.20/xcb/xcb/link.php?id73&urlhttp://yyhhj.emy.in/cc/?9330461http://202.194.131.20/xcb/xcb/link.php?id73&urlhttp://yyhhj.emy.in/c…