什么是轻量级容器?为什么我们需要轻量级容器?
什么是轻量级容器
所谓容器(container),指应用代码的运行框架。业务对象在容器里运行,被容器管理。像EJB就是过去管理J2EE业务对象时最常用的容器。
任何容器都应该包含如下服务:
- 生命周期管理:最起码,容器应该负责创造构件。
- 查找服务:容器必须有一种途径来获得受控构件的引用,以使构件可以互操作。
- 配置管理:容器应该尽可能的讲简单的易变换的配置值从代码中提取出来,为构件提供统一的方法来配置。
- 依赖解析:管理各个构件之间的管理。
上面讲的是容器核心模块应该提供的服务,但是容器还必须提供其它一些服务,增加实用性。
- 企业级服务:为构件提供事务管理。
- 线程管理:对于构件的操作,容器需要给出一个线程模型。
- 对象池:提供一个实例池来管理对象。
- 集群服务:容器的提供集群服务在需要支持有状态的构件是必须的,但是如果是无状态,容器提供集群服务就不是很重要了,因为容器无需为集群维护状态。
- 管理:如JMX。
- 远程服务:提供远程服务和访问远程对象。
- 扩展性:可以为某一类构件提供定制的服务。
一个轻量级容器应该遇有下列特性:
- 非侵入性:可以管理业务代码,但是不应该给代码强加入对容器的依赖。
- 可以快速启动。
- 部署简单。
- 轻量级容器是用纯JAVA开发的,不依赖J2EE。
需要容器的理由
以前也讲过EJB作为容器很多不令人满意的地方,那我们需要容器的理由呢?
- 可接插性:容器将调用方法与具体的实现策略分开。虽然Java接口提供了很好的接口和实现分离,但是必须用一种方法去帮我们找到一个接口的实现,用容器调用显然比在代码中硬编码要好。
- 服务定位:容器像是个服务的盒子,如果没有容器了,配置管理这些服务是十分困难的。
- 为开发和部署量身订做服务。
轻量级容器的优势
由于代码对容器的依赖很少,很显然带来了如下好处:
- 提高代码的复用度;在开发过程中没有假定必须在某个平台下运行。
- 提高可测试性:在容器之外就可以完成测试。
容器对构件的编写限制很少:
- 更好的面向对象:容器对构件的编写限制很少,这样可以更好的实践面向对象了。
分享到:
- 2007-07-25 21:26
- 浏览 1744
- 评论(0)
- 论坛回复 / 浏览 (0 / 2646)
- 查看更多
相关推荐
【Java轻量级容器的比较】 Java轻量级容器,如Spring、HiveMind和PicoContainer,是为了降低系统组件间的耦合度而设计的。它们都采用了依赖注入这一核心设计模式,但在实现方式和哲学上各有不同。 **Spring ...
# 基于C语言的轻量级容器运行时iSulad系统 ## 项目简介 iSulad是一款为物联网和云基础设施设计的轻量级容器运行时守护进程。它具有轻量、快速的特点,不受硬件规格和架构的限制,应用范围广泛。该项目提供了容器...
基于liblxc的轻量级容器运行时CLI工具lcr,就是这样一个将容器技术应用到实际操作中的工具。 首先,liblxc是Linux平台上一个用于操作LXC(Linux Containers)的库,它允许用户无需进入容器内部就可以管理容器的生命...
Linux轻量级容器技术在近年来已经成为了IT领域中不可或缺的一部分,尤其在开发、测试和部署环境中,它提供了高效且隔离的运行环境。"Linux-mkcontainer"是一个利用`make`和`systemd-nspawn`创建容器的工具,旨在简化...
部分内容:本文档旨在深入探讨Spring轻量级容器与EJB重量级容器的区别,通过对这两个概念的剖析,帮助读者理解它们在企业级应用中的不同作用与优势。 一、容器的概念与服务 容器是现代软件工程中的关键概念之一,...
Martin Fowler的文章探讨了Java社区近期关注的一个热点话题:轻量级容器及其背后的模式。这些容器的主要目标是帮助开发者将来自不同项目的组件组装成一个内聚的应用程序。在这些容器背后的核心模式被称为“控制反转...
主要是 VMware 为容器化应用而设计的轻量级的操作系统。类似RedHat的Atomic 项目,以及Ubuntu的Snappy项目。Project Photon主要用于运行VMware vSphere和VMware vCloud,它使得企业可以在单一平台上同时启动容器与...
这是Hibernate和Spring的培训教材,相信对大家很有帮助。
Docker部署基于Docker容器技术,它允许开发者将应用及其运行环境打包在一个轻量级、可移植的容器中。每个容器都包含了运行应用所需的一切,包括代码、运行时、库、环境变量和配置文件等。Docker容器之间相互隔离,...
与传统的全虚拟化技术相比,轻量级虚拟机通常更加高效,因为它不需要模拟底层硬件,而是依赖于操作系统级别的抽象,这种技术也被称为容器或轻量级容器。 在轻量级虚拟机中,核心组件是虚拟化层,它将硬件资源如CPU...
iSulad是一个由C/C++编写实现的轻量级容器引擎,具有轻、灵、巧、快的特点,不受硬件规格和架构限制,底噪开销更小,可应用的领域更为广泛。iSulad是一个由C/C++编写实现的轻量级容器引擎,具有轻、灵、巧、快的特点...
出于需要,我们自己造一个轻量级的轮子,为了保持规范,我们基于PSR-11 来实现。 PSR-11 PSR 是 php-fig 提供的标准建议,虽然不是官方组织,但是得到广泛认可。PSR-11 提供了容器接口。他包含 ContainerInterface ...
- Docker:轻量级容器技术,方便应用的打包和部署。 - Jenkins或Azure DevOps:自动化构建、测试和部署工具,实现持续集成和持续交付。 7. **学习资源** - Microsoft官方文档:提供详尽的C#和ASP.NET教程及API...
**C-Choir:基于LXD的轻量级容器编排器** C-Choir是一个创新的容器编排工具,专门设计用于充分利用LXD(Linux Containers Host)的轻量级特性。LXD是一种流行的容器管理平台,它允许用户在Linux主机上运行轻量级...
Java中的Jetty是一个轻量级、高性能且可嵌入式的Web服务器和Servlet容器,它以其简单易用和高效性在开发社区中广受欢迎。本文将深入探讨Jetty的基本概念、特性以及如何在Java项目中使用它。 1. **Jetty简介** - ...
轻量级Java EE是指使用相对较小、更易于理解和维护的技术栈来实现企业级应用,通常包括Spring框架、Hibernate持久化框架以及一些轻量级容器,如Tomcat,以替代传统的、更重量级的应用服务器,如WebLogic或WebSphere...
传统的J2EE架构往往因为其复杂性和较高的资源消耗而受到诟病,而轻量级容器架构则因其高效、易维护和可扩展性强等特点成为了中小型信息系统架构的优选方案。本文主要研究如何利用这种轻量级架构来简化WAP应用的开发...
"轻量级虚拟化容器技术介绍" 本文将对轻量级虚拟化容器技术进行介绍,涵盖容器简述、J2EE 容器、OpenVZ、Jails(FreeBSD)、Zones(Solaris)、Linux lxc、Docker Container 等多种轻量级虚拟化技术。 首先,容器是一...
#### 一、轻量级容器平台监控需求 在当今高度动态的云原生环境中,容器化已成为部署应用程序的标准方式之一。随着容器数量的增长,对其进行有效监控的需求也日益增加。轻量级监控旨在为容器环境提供一种低开销、高...