• Web服务器


    Web服务

    1.Web服务器简介

    简单来说

    Web服务器就是一个能够接收http请求并作出响应的java程序

    我们再二阶段编写的webServer项目其实就是我们手写的Web服务器

    我们现在开发的标准SpringBoot项目启动时内置的Web服务器叫Tomcat

    实际上我们业界中还有很多Web服务器,它们具备很多不同的特征

    网关Gateway项目使用Netty服务器,Netty服务器内部是NIO的所以性能更好

    下图以Tomcat为例,解释请求响应流程
    请添加图片描述
    大多数情况我们会使用Tomcat作为Web服务器

    它是我们请求\响应流程中的核心组件

    Tomcat是也有缺点

    常规情况下,一个tomcat并发数在100多一点

    一般情况下,一个网站要1000人在线,并发数是2%~5% 也就是20~50并发

    如果需要一个支持更高并发的服务器,就是需要使用Nginx

    Nginx

    Nginx (“engine x”) 是一个高性能的 HTTP 和 反向代理 服务器,也是一个IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的Rambler.ru 站点开发的,第一个公开版本 0.1.0 发布于 2004 年 10 月 4 日。其将源代码以类 BSD 许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。

    我们一般使用它来做反向代理和静态资源服务器

    1.Nginx的优势

    1. 高并发响应性能非常好,官方 Nginx 处理静态文件并发 5万/秒
    2. 反向代理性能非常强。(可用于负载均衡)
    3. 内存和 cpu 占用率低。(为 Apache(也是一个服务器) 的 1/5-1/10)

    又小又快

    Nginx快速的原因

    常见面试题:Nginx为什么快

    Nginx内部是一个主进程(Master)多个工作进程(Worker)

    Master负责统筹管理配置和Worker的分工

    Worker来负责处理请求,作出响应

    而且使用非阻塞式的,异步的

    简单来说,就是一个Worker接到一个请求后,对请求进行处理,处理后在响应返回前,这个Worker还会处理别的请求,直到请求返回响应时,才会处理响应,也就是Worker这个进程全程无阻塞

    要想了解反向代理,首先了解正向代理

    请添加图片描述
    正向代理,当我们访问的目标服务器无法连通时,可以借助代理服务器,简介访问该目标服务器

    关系类似于生活中的介绍人

    反向代理
    请添加图片描述
    请求反向代理服务器的特点是,我们请求的是代理服务器的地址,真正提供服务的服务器地址我们不需要知道,这样做的好处是反向代理服务器后可能是一个集群,方便负载均衡

    有点类似于生活中的代理人,有什么事情直接找这个人就能完成需求,它怎么完成的我们不用管

    2.Nginx的使用

    实际开发中,Nginx可以用于反向代理服务器,

    实际处理请求的是Tomcat服务器
    请添加图片描述
    因为Nginx优秀的静态内容并发性能

    我们常常使用它做静态资源服务器

    在Nginx中保存图片,文件视频等静态资源

    经常和FastDFS组合使用

    FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。

    Nginx和Gateway的区别

    首先明确Nginx和Gateway并不冲突

    他们都是统一入口的概念,它们可以同时开启

    也可以开启其中一个

    只不过Nginx不属于java程序,而Gateway是java程序

    Nginx是服务器程序我们不可编辑,

    Gateway是我们自己创建的项目,依赖和配置都由我们自己完成

    最终如果想做反向代理服务器,就使用Nginx

    如果是微服务项目的网关就是Gateway

    MybatisPlus

    MybatisPlus是一个国内的团队在Mybatis框架基础上新增了一些功能的框架

    MybatisPlus新增的功能主要两方面

    1.提供的代码生成器

    可以根据指定的数据库表,自动生成基本的实体类\控制器\业务层\持久层的相关文件

    2.自动提供基本增删改查方法的默认实现

    Oauth2.0

    是一个授权框架

    类似一个授权协议标准

    我们常用的扫码登录就是Oauth2标准下的功能

    nacos工作原理

    本质上讲,我们启动服务,注册到nacos

    就是将当前服务器信息提交到注册中心

    nacos中会保存当前所有服务列表

    当有新的信息到nacos时(或者是每隔5秒的心跳访问时)

    nacos会将当前最新的服务列表信息同步给当前服务

    我是将军;我一直都在,。!

  • 相关阅读:
    UE5 里的一些常用的了解
    JavaScript 到底放在哪个位置,不同位置效果又是怎么样
    制作一个简单HTML宠物猫网页(HTML+CSS)
    pytorch的卷积层池化层和非线性变化 和机器学习线性回归
    第五十三周总结——云文档开发一周总结
    C++(Qt)软件调试---线程死锁调试(15)
    [第五空间2019 决赛]PWN5
    述职报告写作总结
    图扑 3D 可视化国风设计 | 科技与文化碰撞炫酷”火花“
    SpringBoot入门案例
  • 原文地址:https://blog.csdn.net/letterljhx/article/details/126990742