什么是DNS解析域名

DNS域名解析就是讲域名转化为不需要显示端口(二级域名的端口一般为80)的IP地址,域名解析的一般先去本地环境的host文件读取配置,解析成对应的IP地址,根据IP地址访问对应的服务器。若host文件未配置,则会去网络运营商获取对应的IP地址和域名.

什么是Nginx

Nginx是一个高级的轻量级的web服务器,由俄罗斯科学家开发的,具有如下优点:

1.占用内存少,并发量强,支持多种并发连接,效率高.

2.能够作为负载均衡服务器和(内部直接支持 Rails 和 PHP)代理服务器。Nginx用C编写开销和CPU占有小.

3.安装启动简单,配置简洁,bug少,一般几个月不需要重新启动且不会宕机,稳定性和安全性好.

Nginx的作用

反向代理、负载均衡、配置主备tomcat、动静分离

Nginx 应用场景

做HTTP服务器、反向代理服务器、静态资源服务器

什么是反向代理

代替真实服务器接收网络请求,然后将请求转发到真实服务器

反向代理的作用

隐藏真实服务器,使真实服务器只能通过内网访问,保护了真实服务器不被攻击。配置负载均衡,减轻单台真实服务器的压力。配置主备服务器,保持服务稳定运行。

Nginx如何配置反向代理

首先到DNS服务器做域名解析,如果是局域网在hosts文件中配置IP和域名对应关系。编辑nginx的nginx.conf文件,配置server_name为指向nginx服务器的域名,location拦截请求,如果是访问nginx本地资源则配置root,如果是反向代理到真实服务器则配置proxy_pass为服务器地址

说说常用Nginx的相关配置

upstream 负载均衡配置

server [IP] [weight] [backup] 配置tomcat集群

proxy_connect_timeout、proxy_read_timeout、proxy_send_timeout 连接时间、真实服务器响应时间、返回结果时间

location 匹配用户请求的url

root 配置本地资源路径

proxy_pass    配置真实服务器地址

请画图展示反向代理流程

LVS与Nginx区别

LVS是四层反向代理,基于TCP和UDP协议,可用于管理Nginx集群,抗负载能力强。Nginx是七层反向代理,基于HTTP协议,用于管理真实服务器集群。

location的作用

匹配用户请求url,根据不同请求转发到不同的服务器。

Nginx中如何配置负载均衡

在upstream中配置多个server,在location的proxy_pass配置为http://+upstream名称

四层负载均衡与七层负载均衡区别

四层负载均衡基于TCP和UDP协议,通过IP+端口号接受请求并转发到服务器。七层负载均衡基于HTTP协议,通过url或主机名接收请求并转发到服务器。

四层负载均衡有那些实现方案

LVS、F5

负载均衡有那些算法

轮询算法:按照时间顺序分配到不同的服务器,当其中一台服务器宕机则被自动剔除,切换到正常的服务器。

权重算法:按照分配给服务器的权重比例来分发到不同服务器,权重比例越高,则访问几率越大。

IP绑定(ip_hash):根据访问的IP的哈希结果来判定,使同一个IP访问一台固定的后端服务器,同时解决动态页面的session问题.

服务器分布式后,会产生了那些问题

分布式锁

分布式全局ID

分布式Session一致性问题

分布式事务

分布式任务调度

分布式日志收集

分布式配置中心

什么是动态负载均衡

一般情况下,使用nginx搭建服务器集群,每次修改nginx.conf配置文件都需要重启nginx服务器。动态负载均衡就是修改nginx.conf配置文件后不必重启nginx而使配置生效。

Nginx如何实现动态负载均衡

搭建Nginx+Consul+Upsycn环境。Nginx实现服务的反向代理和负载均衡。Consul是一个开源的注册中心和服务发现的框架,通过HTTP API来发现服务,注册服务。同时支持故障发现,K/V存储,多数据中心,Raft算法等多种高可用特性。Consul在Nginx动态负载均衡作用是通过Http api注册和发现服务.Upsycn是新浪微博的开源框架,在Nginx动态负载均衡的作用是Consul的后端的server列表,即获取Nginx的上游服务器(Upstream server)信息,并动态更新Nginx的路由信息.

什么是Http协议

超文本传输协议

Http协议组成部分

Http协议是基于TCP协议封装成超文本传输协议,包括请求(request)和响应(response),http协议请求(request)分为请求参数(request params)和方法类型(request method)、请求头(request hearder)、请求体(request body) ,

响应(response)分为 响应状态(response state)、响应头(response header)、响应体(response body)等.

TCP与UDP区别

udp:

a、是面向无连接, 将数据及源的封装成数据包中,不需要建立连接

b、每个数据报的大小在限制64k内

c、因无连接,是不可靠协议

d、不需要建立连接,速度快

tcp:

a、建议连接,形成传输数据的通道.

b、在连接中进行大数据量传输,以字节流方式

c 通过三次握手完成连接,是可靠协议

d 必须建立连接m效率会稍低

谈谈七层网络模型

应用层:客户端的各种应用、app;

表示层:进行数据的格式区分,如图片、编码;

会话层:本地主机与远程主机的会话管理;

传输层:定义传输数据的协议端口号,TCP和UDP是这一层的协议;

网络层:进行逻辑地址寻址;

数据链路层:建立逻辑连接,进行硬件地址寻址;

物理层:建立物理连接;

Nginx如何实现TCP四层负载均衡

在nginx.conf文件中配置tcp模块,在upstream块中定义socket服务器负载均衡,其余与nginx配置七层负载均衡相同。

tcp {

### 定义多个上游服务器

upstream  itmayeidu{

### 定义TCP模块上游服务器

server 192.168.5.165:80001;

server 192.168.5.165:80002;

}

server {

listen       9999;

server_name  192.168.212.137;

### 反向代理upstream

proxy_pass itmayeidu;

}

}

lvs 与Nginx 区别

lvs工作在网络第四层,nginx工作在网络第七层;lvs比nginx抗负载能力强;lvs对网络依赖性强,nginx对网络依赖性弱;lvs几乎可以对所有应用做负载均衡,比如数据库。

lvs与keepalived区别

Lvs可以实现负载均衡,但是无法实现健康检查。Keepalived可以进行健康检查实现高可用。

keepalived 作用

keepalive 软件可以进行健康检查,而且能同时实现 LVS 的高可用性,解决 LVS 单点故障的问题

如何实现双机主从热备

Nginx+Tomcat:在upstream中配置多台服务器,从服务器后加backup

Keepalived+Nginx:在多台nginx服务器上安装keepalived,将主服务器的state设置为MASTER,从服务器设置为BACKUP,主服务器的优先级要高于从服务器

lvs+Keepalived+Nginx架构流程图

项目发布如何不影响到正常用户访问,实现7*24小时访问

可以两台机子互为热备,平时各自负责各自的服务。在做上线更新的时候,关闭一台服务器的tomcat后,nginx自动把流量切换到另外一台服务的后备机子上,从而实现无痛更新,保持服务的持续性,提高服务的可靠性,从而保证服务器7*24小时运行。

项目如何发生故障宕机了,如何处理。

使用lvs+keepalived+Nginx做主从热备,lvs管理nginx集群,nginx管理服务器集群,在服务器宕机的情况下keepalived启动健康检测,多次重启无果可以短信通知运维人员及时维护。

动态网站与静态网站区别

在浏览器中打开一个网站,点击鼠标右键查看源码,多次请求后如果源码不产生变化就是静态网站,变化就是动态网站。

动态页面静态化的作用

便于搜索引擎抓取和排名

什么是动静分离架构模式

静态页面与动态页面分开不同系统访问的架构设计方法,静态页面与动态页面以不同域名区分。

如何搭建动静分离

以nginx服务器作为静态资源服务器,静态资源和动态资源访问分开配置,静态资源在location中使用本地文件路径配置方式,动态资源使用proxy_pass配置到后台服务器。

如:

###静态资源访问

server {

listen       80;

server_name  static.itmayiedu.com;

location /static/imgs {

root F:/;

index  index.html index.htm;

}

}

###动态资源访问

server {

listen       80;

server_name  www.itmayiedu.com;

location / {

proxy_pass http://127.0.0.1:8080;

index  index.html index.htm;

}

}

动静分离与前后分离区别

动静分离是将静态资源和动态资源存放在不同服务器中,前后分离是将前端和后台分离,前端通过api调用后台接口

如何控制浏览器静态资源缓存

静态资源存在缓存的原因是项目上线时,浏览器缓存中的静态资源导致与服务器将淘汰资源的代码发生冲突(或者是页面访问频繁访问同一资源,导致一些浏览器如IE(本人开发亲身经历过)返回默认的响应结果,与实际响应结果不符合),一般的服务器是强制F5进行刷新或者是清除缓存,最有效的解决方法就是在请求资源后面加上变量(如时间戳,随机数)

Http状态码304的作用

表示浏览器存在静态资源缓存就不从服务器获取静态资源

高并发解决方案相关面试题相关推荐

  1. 互联网高并发解决方案相关面试题

    高并发服务限流特技有哪些算法? 传统计算器算法,滑动窗口计数器算法,令牌桶算法和漏桶算法. 传统计数器限流算法有什么弊端? 传统计数器限流方式不支持高并发,存在线程安全问题.若大量访问请求集中在计数器 ...

  2. 打车业务下单高并发解决方案

    简介: 打车业务下单高并发解决方案 前言 在技术领域有一条准则,即不存在银弹技术.在实际工作中,通常无法通过几项简单的技术组合就解决实际业务中各种场景下的复杂问题.虽然追求架构的简单简洁也是架构师的目 ...

  3. 高并发解决方案 超详细!!!

    高并发解决方案 1. 高并发和大流量解决方案 高并发解决方案案例 流量优化:防盗链处理 前端优化:减少HTTP请求,合并css或js,添加异步请求,启用浏览器缓存和文件压缩,CDN加速,建立独立图片服 ...

  4. 高并发编程(四)高并发解决方案从前端到数据库

    1. 高并发和大流量解决方案 高并发架构相关概念 并发:在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理 ...

  5. 搞懂分布式技术30:高并发解决方案——提升高并发量服务器性能解决思路

    高并发解决方案--提升高并发量服务器性能解决思路 一个小型的网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目录下,这样的网站对系统架构.性能的要求都很 ...

  6. 01 - Java并发编程与高并发解决方案笔记-基础篇

    01 - Java并发编程与高并发解决方案笔记-基础篇 基础篇很重要!很重要!很重要!!!一定要理解和认真思考. 01 - Java并发编程与高并发解决方案笔记-基础篇 1.课程准备 2.并发编程基础 ...

  7. 大型网站应用之海量数据和高并发解决方案

    一.网站应用背景 开发一个网站的应用程序,当用户规模比较小的时候,使用简单的:一台应用服务器+一台数据库服务器+一台文件服务器,这样的话完全可以解决一部分问题,也可以通过堆硬件的方式来提高网站应用的访 ...

  8. 大数据和高并发解决方案

    一.网站应用背景 开发一个网站的应用程序,当用户规模比较小的时候,使用简单的:一台应用服务器+一台数据库服务器+一台文件服务器,这样的话完全可以解决一部分问题,也可以通过堆硬件的方式来提高网站应用的访 ...

  9. 大数据时代的海量数据存储、和高并发解决方案总结

    一.结构化数据的存储 随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题.对于一个大型的互联网应用,每天几十亿的PV无疑对数据库造成了相当高的负载.对于系统的稳定性和扩展性造成了极 ...

  10. 《Java并发编程入门与高并发面试》or 《Java并发编程与高并发解决方案》笔记

    <Java并发编程入门与高并发面试>or <Java并发编程与高并发解决方案>笔记 参考文章: (1)<Java并发编程入门与高并发面试>or <Java并发 ...

最新文章

  1. 基础设计模式:单例模式+工厂模式+注册树模式
  2. 七猫php面试,七猫面试 - osc_2frv0wjp的个人空间 - OSCHINA - 中文开源技术交流社区...
  3. Node.js 15 正式发布,14 将支持到 2023 年
  4. python中mat函数_python matplotlib中的subplot函数使用详解
  5. 【转】图文详解YUV420数据格式
  6. php return 值_php return的用法是什么
  7. Leetcode每日一题:35.search-insert-position(搜索插入位置)
  8. php7 imagick扩展,php7如何安装imagick扩展
  9. 牛客 彩虹 【经典状压dp】
  10. EyouCMS瀑布流分页详细教程
  11. 函数判断闰年:输入年份 判断此2月份的天数
  12. 2022-2028全球多层共烧基板行业调研及趋势分析报告
  13. 1.贝尔曼方程(Bellman equation)
  14. PADA: Example-based Prompt Learning for on-the-fly Adaptation to Unseen Domains
  15. selenium爬取亚马逊商品评论
  16. 国产开源基于 Java 的轻量级 CMS 解决方案 天梯
  17. b树和b+树的区别。
  18. HttpClient请求范文示例,及注意点提示
  19. 用Universe Sandbox模拟引力弹弓(地球+木星)
  20. 说说压缩文件“打开密码”的两种模式

热门文章

  1. java多线程优秀开源项目_github比较热门的Java开源项目
  2. 网狐荣耀手机端内核源码
  3. 史上最全Java学习资料,共14W字,耗时半年整理
  4. 【2022最新】最新桌面CPU显卡天梯图
  5. 腾讯云TDSQL分布式数据库安装部署
  6. Modelsim SE-64 10.4版本在WIN10-64位下找不到LICENSE的解决办法
  7. chrome 安装 gliffy插件以及使用
  8. 词法分析器java语言_Java语言词法分析器
  9. 齐全且实用的MySQL函数使用大全
  10. 【系统安装】MediaCreationTool工具制作U盘安装win10系统