web服务器、web应用服务器、应用服务器、web容器和servlet容器这几个概念的区别和联系。

web服务器、web应用服务器、应用服务器、web容器和servlet容器这几个概念的区别和联系。,第1张

Web服务器的基本功能就是提供Web信息浏览服务。它只需支持HTTP协议、HTML文档格式及URL。与客户端的网络浏览器配合。因为Web服务器主 要支持的协议就是HTTP,所以通常情况下HTTP服务器和WEB服务器是相等的(有没有支持除HTTP之外的协议的web服务器,作者没有考证过),说 的是一回事。

应用程序服务器(简称应用服务器),我们先看一下微软对它的定义:"我们把应用程序服务器定义为“作为服务器执行共享业务应用程序的底层的系统软件”。 就像文件服务器为很多用户提供文件一样,应用程序服务器让多个用户可以同时使用应用程序(通常是客户创建的应用程序)"

servlet容器是用来同意管理servlet实例的额,包括servlet实例的初始化、生成、运行、销毁的统一维护。

中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。中间件位于客户机/ 服务器的操作系统之上,管理计算机资源和网络通讯。是连接两个独立应用程序或独立系统的软件。相连接的系统,即使它们具有不同的接口,但通过中间件相互之间仍能交换信息。

执行中间件的一个关键途径是信息传递。通过中间件,应用程序可以工作于多平台或 OS 环境。

中间件是介于操作系统和应用软件之间,为应用软件提供服务功能的软件,有消息中间件,交易中间件,应用服务器等。由于介于两种软件之间,所以,称为中间件。

Linux系统常用的中间件

1、tomcat

是一款java语言servlet规范的服务器软件适用于本地开发,小项目,或者是个人开发(免费的开放源代码的Web 应用服务器),Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet,但是Tomcat处理静态[HTML]的能力不如Apache服务器

2、weblogic

大项目或者商业项目,Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中,是美国bea公司出品的一个基于j2ee架构的中间件。

3、jetty

一些示例项目或者小项目常(开源的servlet容器),是使用Java语言编写的,Jetty的运行速度较快,而且是轻量级的,可以在Java中可以从test case中控制其运行。从而可以使[自动化测试]不再依赖外部环境,顺利实现自动化测试

4、JBoss

管理EJB的容器和服务器(开放源代码的项目),JBoss遵循商业友好的LGPL授权分发,并且由开源社区开发

5、WebSphere

IBM 的软件平台,它包含了编写、运行和监视全天候的工业强度的随需应变 Web 应用程序和跨平台、跨产品解决方案所需要的整个中间件基础设施,如服务器、服务和工具。WebSphere 提供了可靠、灵活和健壮的软件。WebSphere 是一个模块化的平台,基于业界支持的开放标准。可以通过受信任和持久的接口,将现有资产插入 WebSphere,可以继续扩展环境。WebSphere 可以在许多平台上运行,包括 Intel、Linux 和 z/OS。

1、更强大的服务器让虚拟化成为可能

  有一段时间,服务器硬件在其性能上相对适中。工作负载需要专用的硬件来运行。随着时间的推移,服务器硬件变得更强大;许多应用程序只消耗现代服务器一小部分资源 。引入服务器虚拟化是为了更好地利用硬件,其允许多个工作负载在虚拟机中同时运行。这些虚拟机充当隔离界限,每个虚拟机都有自己的专用操作系统、虚拟硬盘、内存分配等。

随着时间的推移,钟摆开始向另一个方向摆动。虚拟机最初是为了提高硬件利用率,随着用户开始使用如此多的虚拟机,硬件再次成为限制因素。一个物理服务器在耗尽资源前只能运行那么多的工作量。

随着服务器虚拟化的成熟,虚拟机监控程序供应商寻找各种方法来增加物理服务器能够容纳的虚拟机数量,比如引入精简配置的虚拟硬盘和内存过量使用等功能。容器被认为具有类似功能,因为它们可以帮助服务器容纳额外的工作负载。

  2、容器消减虚拟化体积

  这就提出了一个问题:虚拟服务器和容器之间有何不同。虚拟服务器被设计为有独立操作系统、应用程序和硬件资源。如果一个虚拟机中发生问题,这个问题不会影响到其它虚拟机,因为虚拟服务器充当隔离边界。

虚拟机的问题是它们比真正需要的更多。以一个应用程序服务器为例,该应用程序服务器包含应用程序和一个专用的操作系统。这个操作系统消耗存储空间、内存、CPU周期和其它硬件资源。虽然对于运行少量虚拟机的主机来说,这可能不是一个问题,但是想象一下,如果一个主机必须运行大量的虚拟机并且所有的虚拟机都运行相同的操作系统呢?

容器设法通过所有的容器共享使用一个操作系统来解决大小问题。容器类似于一个虚拟应用程序,它存储应用程序的二进制文件和配置文件,但只存储应用程序修改的操作系统组件,如注册表项或特定于应用程序的驱动程序。

  3、为什么微软推出Windows Server容器和Hyper-V容器?这个问题有很多不同的答案,但归根结底是信任问题。

当运行Windows Server容器,容器使用主机操作系统。这对受信任应用程序的运行是没有问题的,但运行不受信任的应用程序是不合适的。Hyper-V容器提供一个额外的隔离边界,每个容器都有自己的操作系统二进制文件的副本。唯一能真正区别Hyper-V容器与Hyper-V虚拟机的是,Hyper-V容器可以用Docker管理,而Hyper-V虚拟机不能。

容器是一个通过共享操作系统二进制文件提高效率的机制。这种方法不仅能提高主机的性能,这也使得补丁管理更加容易,因为有更少的操作系统要打补丁。

1、weblogic

WebLogic是美国bea公司出品的一个application server确切的说是一个基于j2ee架构的中间件。BEA WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中。

2、webSphere

WebSphere是 IBM 的集成软件平台。它包含了编写、运行和监视全天候的工业强度的随需应变 Web 应用程序和跨平台、跨产品解决方案所需要的整个中间件基础设施。

如服务器、服务和工具。WebSphere 提供了可靠、灵活和健壮的集成软件。

3、JBoss

JBoss是一个管理EJB的容器和服务器,支持EJB 11、EJB 20和EJB30的规范。但JBoss核心服务不包括支持servlet/JSP的WEB容器,一般与Tomcat或Jetty绑定使用。2006年,Jboss公司被Redhat公司收购。

4、 Apache

Apache源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的Web服务器软件之一。

Apache是自由软件,所以不断有人来为它开发新的功能、新的特性、修改原来的缺陷。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。

本来它只用于小型或试验Internet网络,后来逐步扩充到各种Unix系统中,尤其对Linux的支持相当完美。

Apache是以进程为基础的结构,进程要比线程消耗更多的系统开支,不太适合于多处理器环境,因此,在一个Apache Web站点扩容时,通常是增加服务器或扩充群集节点而不是增加处理器。

到目前为止Apache仍然是世界上用的最多的Web服务器,世界上很多著名的网站都是Apache的产物,它的成功之处主要在于它的源代码开放、有一支开放的开发队伍、支持跨平台的应用(可以运行在几乎所有的Unix、Windows、Linux系统平台上)以及它的可移植性等方面。

5、 IIS

Microsoft的Web服务器产品为InternetInformation Server (IIS), IIS 是允许在公共Intranet或Internet上发布信息的Web服务器。

IIS是目前最流行的Web服务器产品之一,很多著名的网站都是建立在IIS的平台上。IIS提供了一个图形界面的管理工具,称为 Internet服务管理器,可用于监视配置和控制Internet服务。

IIS是一种Web服务组件,其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络(包括互联网和局域网)上发布信息成了一件很容易的事。

它提供ISAPI(IntranetServer API)作为扩展Web服务器功能的编程接口;同时它还提供一个Internet数据库连接器,可以实现对数据库的查询和更新。

容器技术是近几年云行业发展中不可缺少的一环。Docker和k8s的大热极大可能会推动云计算PAAS层的完善和普及。

容器(Container)是一种更轻量级,更灵活的虚拟化处理方式,它将一个应用程序所需的一切打包在一起。

容器包括所有代码,各种依赖甚至操作系统,这让应用程序几乎在任何地方都可以运行。因此它的诞生,解决了一个重要问题:如何确保应用程序从一个环境移动到另一个环境的正确运行。它只是虚拟了操作系统,而不像虚拟机一样去虚拟底层计算机。

Docker 容器是一个开源的应用容器引擎,让开发者可以以统一的方式打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何安装了docker引擎的服务器上(包括流行的Linux机器、windows机器),也可以实现虚拟化。

容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app)。几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖于任何语言、框架包括系统。

定期渗透测试,安全审计;

尽量采用image的正规镜像来源,相对于传统安全,容器安全受质疑很大程度上是在于镜像的维护及升级,因此在镜像源头保证安全和及时更新;

及时升级容器服务,比如采用rollingupdate的方式对跑服务的容器进行升级等方式。

Docker容器与其他的容器技术都是大致类似的。但是,Docker在一个单一的容器内捆绑了关键的应用程序组件,这也就让这容器可以在不同平台和云计算之间实现便携性。其结果就是,Docker就成为了需要实现跨多个不同环境运行的应用程序的理想容器技术选择。

Docker还可以让使用微服务的应用程序得益,所谓微服务就是把应用程序分解成为专门开发的更小服务。 这些服务使用通用的RESTAPI来进行交互。使用完全封装Docker容器的开发人员可以针对采用微服务的应用程序开发出一个更为高效的分发模式。

这里的容器特指计算机科学领域内的容器,对于容器的其他解释,请参见容器(消歧义) 容器是应用服务器中位于组件和平台之间的接容器一般位于应用服务器之内,由应用 服务器负责加载和维护。一个容器只能存在于一个应用服务器之内,一个应用服务器可以

         容器: 容器是轻量级的操作系统级虚拟化,可以让我们在一个资源隔离的进程中运行应用及其依赖项 。

        运行应用程序所必需的组件都将打包成一个镜像并可以复用。执行镜像时,它运行在一个隔离环境中,并且不会共享宿主机的内存、CPU 以及磁盘,这就保证了容器内进程不能监控容器外的任何进程。容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟,而是对进程进行封装隔离。

         虚拟机:通常包含整个操作系统及其应用程序,同时也需要运行一个 hypervisor 来控制虚拟机。

        虚拟一套硬件后, 在其上运行一个完整操作系统,在该系统上在运行所需应用进程

         容量大小:

                虚拟机:大小一般是几个G,

                容器:容器是轻量级的而且大小在 M 以内

         性能:

                虚拟机:启动操作系统以及初始化托管应用会花费几分钟的时间

                容器:表现更加出色,并且几乎可以秒启动。

         架构:

        1 敏捷环境:容器技术最大的优点是创建容器实例比创建虚拟机示例快得多,容器轻量级的脚本可以从性能和大小方面减少开销。

        2 提高生产力:容器通过移除跨服务依赖和冲突提高了开发者的生产力。每个容器都可以看作是一个不同的微服务,因此可以独立升级,而不用担心同步。

        3 版本控制:每一个容器的镜像都有版本控制,这样就可以追踪不同版本的容器,监控版本之间的差异等等。

        4 运行环境可移植:容器封装了所有运行应用程序所必需的相关的细节比如应用依赖以及操作系统。这就使得镜像从一个环境移植到另外一个环境更加灵活。比如,同一个镜像可以在 Windows 或 Linux 或者 开发、测试或 stage 环境中运行。

        5 标准化: 大多数容器基于开放标准,可以运行在所有主流 Linux 发行版、Microsoft 平台等等。

        6 安全:容器之间的进程是相互隔离的,其中的基础设施亦是如此。这样其中一个容器的升级或者变化不会影响其他容器。

        1 复杂性增加:随着容器及应用数量的增加,同时也伴随着复杂性的增加。在生产环境中管理如此之多的容器是一个极具挑战性的任务,可以使用 Kubernetes 和 Mesos 等工具管理具有一定规模数量的容器。

        2 原生 Linux 支持:大多数容器技术,比如 Docker,基于 Linux 容器(LXC),相比于在原生 Linux 中运行容器,在 Microsoft 环境中运行容器略显笨拙,并且日常使用也会带来复杂性。

        3 不成熟:容器技术在市场上是相对新的技术,需要时间来适应市场。开发者中的可用资源是有限的,如果某个开发者陷入某个问题,可能需要花些时间才能解决问题。

操作系统容器 :如维基百科中所述,“操作系统层虚拟化是一种计算机虚拟化技术,这种技术将操作系统内核虚拟化,可以允许多个独立用户空间的存在,而不是只有一个。这些实例有时会被称为容器、虚拟引擎、虚拟专用服务器或是 jails(FreeBSD jail 或者 chroot jail)。从运行在容器中的程序角度来看,这些实例就如同真正的计算机。”

如上所述,容器共享宿主机的内核,但是提供用户空间隔离。我们可以像在宿主机操作系统上一样,在容器中安装、配置以及运行应用程序。相似的是,分配给容器的资源仅对自己可见。就好比是,任何虚拟机不能获取其他虚拟机的资源。

当需要配置大量具有相同配置的操作系统时,操作系统容器就会非常有用。因此,容器有助于创建模板,可以用于创建与另一个操作系统类似风格的容器。

要创建操作系统容器,我们可以利用容器技术,如 LXC,OpenVZ,Linux VServer,BSD Jails 和 Solaris 区域。

应用容器 :如维基百科所述,“应用程序虚拟化是从其所执行的底层操作系统封装计算机程序的软件技术。一个完全虚拟化的应用,尽管仍像原来一样执行,但是并不会进行传统意义上的安装。应用在运行时的行为就像它直接与原始操作系统以及操作系统所管理的所有资源进行交互一样,但可以实现不同程度的隔离或者沙盒化。”

在这种情况下,术语 “虚拟化” 是指被封装的工件(应用程序),这与其在硬件虚拟化中的含义截然不同,其中它涉及被抽象的工件(物理硬件)。

应用程序容器旨在作为单个进程进行打包和运行服务,而在 OS 容器中,可以运行多个服务和进程。

容器技术如 Docker 和 Rocket 就是应用程序容器的示例。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » web服务器、web应用服务器、应用服务器、web容器和servlet容器这几个概念的区别和联系。

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情