Spring Batch 2.0 新功能概述

工程 | Dave Syer | 2008年10月21日 | ...

在这篇文章中,我们概述了Spring Batch 2.0 的主要主题,并重点介绍了与 1.x 版本相比的变化。新版本的开发工作正在顺利进行,上周发布了 M2 版本,我们收到了很多关注,所以现在似乎是给出一些提示的好时机。

Spring Batch 2.0 主题

新版本的四个主要主题是:

  • Java 5 和 Spring 3.0
  • 非顺序执行
  • 可扩展性
  • 配置:注解和 XML 命名空间
因此,我们将分别介绍这些领域,并描述它们的含义以及这些更改对现有 Spring Batch 用户的影响。下面将详细介绍已经实现的功能,这主要体现在第一类中,其他领域也有一些启用功能。

Spring Batch 2.0.0.M2 中项目的物理布局没有任何变化(相同的旧下载,相同的 Java 包基本布局)。我们没有删除任何功能,但我们利用这个机会修改了几个 API,并且还有一些细微的更改……

理解 OSGi uses 指令

工程 | Glyn Normington | 2008年10月20日 | ...

如果您为 SpringSource dm Server 或任何其他 OSGi 平台构建应用程序,您可能会很快遇到uses指令。除非您清楚地了解该指令的目的,否则您将不知道何时编写它,并且当捆绑包由于uses冲突而无法解析时,您将只能猜测。本文应让您彻底了解uses指令,何时使用它以及如何调试uses冲突。

捆绑包解析

OSGi 的设计使得一旦捆绑包“解析”,通常您就不会因为类型问题而遇到类转换异常和类似的问题……

优化和调整 Apache Tomcat - 第 2 部分

工程 | Mark Thomas | 2008年10月14日 | ...

几周前,Filip Hanik 和我在关于优化和调整 Apache Tomcat 的一系列网络研讨会中进行了第二次研讨会。可以在SpringSource 网站的网络研讨会部分获取网络研讨会的录制和幻灯片的副本。同一页面包含所有以前的 SpringSource 网络研讨会的链接,以及Covalent 网络研讨会存档

我们在问答环节中无法解答所有问题,因此,正如承诺的那样,以下是一些剩余的问题和我们的答案。

  • 如何在 Tomcat 应用程序中识别内存泄漏?

    您几乎肯定需要使用分析器来识别内存泄漏的根本原因。最新的 Sun JDK 包含诸如 jhat 和 jmap 之类的工具。还有许多其他分析器可用,既有免费的,也有商业的。Filip 和我在调查 Tomcat 内存泄漏时使用YourKit,因为 YourKit 为开源开发者提供免费许可证。

  • 重新部署如何导致内存泄漏?

    这通常发生在 Tomcat 加载的类保留对 Web 应用程序加载的类的引用时。当 Web 应用程序停止时,Tomcat 类加载器继续保留对 Web 应用程序加载的类的引用。此类保留对 Web 应用程序类加载器的引用,而类加载器又保留对其加载的所有类的引用。因此,Web 应用程序类加载器及其加载的所有类都不符合垃圾收集的条件。这会导致内存泄漏。造成这种情况的典型根本原因是 JDBC 驱动程序和日志框架。

  • 更改 Tomcat 使用的 JVM 的最佳方法是什么?

    要使用的 JVM 使用 JAVA_HOME(完整 JDK)或 JRE_HOME(仅 JRE)环境变量设置。设置此变量的正确位置取决于您的环境,特别是如果 Tomcat 配置为在系统启动时自动启动。如果您可以在任何位置自由选择,则应根据您的操作系统使用 setenv.bat 或 setenv.sh。

  • 您是否推荐特定的 JVM?

    不,我们不推荐。您选择的 JVM 供应商取决于您的操作系统。

  • 我应该使用哪个连接器将 Apache httpd 连接到 Tomcat?

    我们推荐 mod_proxy_http,mod_jk 位居第二。通常,mod_proxy_ajp 比 mod_proxy_http 或 mod_jk 不稳定。请注意,mod_jk2 已弃用,不应再使用。

  • 使用 SSL 时 maxKeepAliveRequests 的正确设置是什么?

    使用 SSL 时,应启用 HTTP 保持活动,因为 SSL 握手对于每个请求而言都是一项相对昂贵的操作。

  • 如果我们在 Solaris 上运行 Tomcat,您是否建议不要使用本机 APR 连接器?

    是的,我们建议不要使用。我们从客户那里收到的反馈是 APR 连接器在 Solaris 上不稳定。

  • 我们之前尝试迁移到 Solaris 上的 mod_proxy_http,但遇到了一些错误。这些错误是否已解决?

    在不知道您使用的确切错误或版本的情况下,很难发表评论。所有已知的 Apache httpd 问题和当前状态都可以在ASF Bugzilla 数据库中找到。Tomcat 问题也可以在 Bugzilla 中找到。

  • 使用默认阻塞 IO HTTP 连接器时,我应该为 maxKeepAliveRequests 使用什么值?

    对于高并发环境,将其设置为 1。否则,将其设置为页面上对象的平均数量,介于 10 到 100 之间。

  • 如何配置 JkOptions +DisableReuse?

    JkOptions +DisableReuse 应与其他 mod_jk 设置一起放在您的 httpd.conf 文件中。

  • 何时最好使用非阻塞 IO HTTP 连接器?

    当您需要支持具有保持活动的高并发并且 APR 不是选项时,例如,因为它在您的平台上不稳定。

  • 如果我在 Apache Tomcat 前面使用 Apache httpd,我会看到更好的性能吗?

    这取决于。如果您将所有请求代理到 Tomcat,则性能会略微下降。如果 httpd 处理一些请求(例如所有静态内容),则您可能会看到一些好处。有一些基准测试试图证明一个连接器比另一个连接器更好。但是,这些基准测试不太可能代表您的应用程序。唯一确定方法是在您的环境中使用真实的负载和使用模式进行测试。

  • 可以在没有 Web 服务器的情况下在生产环境中使用 Tomcat 吗?

    可以。这是否为您的环境提供最佳性能取决于该环境和您的应用程序。与前面的问题一样,唯一确定方法是在您的环境中使用真实的负载和使用模式进行测试。

  • 在 Tomcat 前面使用 Apache httpd 会提高安全性吗?

    安装的安全性取决于许多因素。是否使用 Apache httpd 不太可能显着改变安装的安全性。其他因素(例如保持最新的补丁程序和使用防火墙)通常会对您的整体安全级别产生更大的影响。

  • 哪个 Apache httpd MPM 提供最佳性能?

    与往常一样,这将取决于您的环境,但httpd 性能调整文档提供了一些有用的常规指导。

  • SpringSource ERS 和 Apache Tomcat 之间的性能差异是什么?

    SpringSource ERS 不仅仅是 Apache Tomcat。从纯 Tomcat 的角度来看,性能并不是区别因素。ERS 的优势在于简单的安装、易于管理的升级和修补、对多个实例的支持以及所有组件的集成。

  • 我的公司使用 Tomcat 和 XYZ 应用程序服务器。Tomcat 与 XYZ 应用程序服务器相比如何?合并是否有好处?

    会有很多差异,重要的差异因组织而异。首先确定您需要从应用程序服务器获得什么,然后将该列表与市场进行比较。合并是有好处的。更大的一致性意味着更简单的维护、更少的培训等等。但是,也存在成本。您需要查看您的组织以及它如何计划合并(仅限新项目、下一个主要版本的全部项目、现在的一切等等),以将成本与相关利益进行比较。

  • 您是否有 Tomcat 和 XYZ 应用程序服务器的性能比较?

    已在此领域发布了各种报告。结果是否有用取决于测试与您的负载匹配程度。与往常一样,唯一确定方法是在您的环境中使用真实的负载和使用模式进行测试。

  • 负载测试 Tomcat 服务器的好方法是什么?

    有几个选项可以使用驱动负载的工具,既有免费的,也有商业的。免费工具包括abJMeter

  • 为了实现高可用性和高性能,可以将 Tomcat 配置为为同一 Web 应用程序启动多个 JVM 吗?

    Tomcat 没有将其作为配置选项提供。当然,您可以创建多个 Tomcat 实例,在每个实例上安装您的应用程序,然后跨实例进行负载平衡。

  • 是否有用于 Tomcat 的通用运行状况检查脚本?

    管理器状态页面可能是开始的好地方。您可以使用该 Servlet 的代码作为您自己的更具体/更广泛检查的基础,如果需要的话。如果您确实对其进行了增强,请考虑将您的增强功能贡献回 Apache Tomcat 社区。

  • logging.properties 文件位于哪里?

    默认位置在 $CATALINA_BASE/conf 中。

平衡问题:调整维护策略

工程 | Rod Johnson | 2008年10月7日 | ...

经营企业至少在一个方面类似于编写代码:即使您知道要实现的目标,您也并非总能第一次就成功——但是,如果您准备在必要时重新修改工作,最终您会得到更好的结果。在 SpringSource,我们对我们最近发布的维护策略有明确的愿景:平衡开源社区的需求与企业用户和 Spring 创建者的需求,造福所有人。但是,我们并没有第一次就取得完美的平衡,现在是进行一些重构的时候了。

在过去的几周里,我……

通用服务定位器库

工程 | Mark Pollack | 2008年10月3日 | ...

本周在CodePlex上发布了CommonServiceLocator项目,其总体思路是提供一个与IoC容器无关的API,用于使用服务定位来解析依赖项。来自SpringSource的Erich Eichinger贡献了Spring.NET的实现,感谢Erich!

以下是API,您可以了解基本概念 public interface IServiceLocator : System.IServiceProvider {

object GetInstance(Type serviceType); object GetInstance(Type serviceType, string key); IEnumerable GetAllInstances(Type serviceType); TService GetInstance(); TService GetInstance(string key); IEnumerable GetAllInstances(); } …

SpringSource dm Server 1.0.0 reaches GA

Engineering | Peter Cooper-Ellis | September 30, 2008 | ...

You may have noticed that SpringSource announced the general availability of the SpringSource dm Server™ today. The dm Server is part of the SpringSource Application Platform. Since this is the first time out for the dm Server, I want to make a couple of short comments about the product.

We believe that the dm Server overall will change the way enterprise Java software is developed and deployed. In particular, the dm Server is designed from the ground up, to be lightweight (the dm Kernel has a footprint of about 3 megabytes), flexible, and fast. It is also designed to facilitate modular…

SpringSource Seminar Day Linz in Review

Engineering | Juergen Hoeller | September 23, 2008 | ...

A brief pictorial review of the SpringSource Seminar Day in Linz, having happened on September 8th, 2008, at the Bergschloessl Linz... More than 150 people were listening to a six-pack of presentations about what's new and upcoming at SpringSource. The "Story of Spring" keynote by Rod Johnson and Adrian Colyer was a great start into a day full of information: about the SpringSource Application Platform, the SpringSource Tool Suite, Spring 3.0, etc. (See the original blog announcement for details on the agenda.)

It was a pleasure to see so many people attending: from Austria as well as from Germany and Eastern Europe - and even from Norway! I hope you enjoyed the seminar and your stay in Upper Austria. Looking forward to seeing you again at the SpringOne Europe 2009 conference in Amsterdam, April 27-29... as well as at upcoming EJUG Austria

SpringSource (and other top vendors) leading the OSGi charge

Engineering | Adrian Colyer | September 17, 2008 | ...

In a press release made available by the OSGi Alliance yesterday, several leading vendors including SpringSource, IBM, Oracle, RedHat, Sun, SAP, ProSyst, and Paremus joined forces in their support of OSGi as the foundation for next generation server platforms.

To highlight some of the key points:

Craig Hayman, VP IBM WebSphere said

[IBM] has been shipping WebSphere Application Server built on OSGi since 2006. As a result, IBM clients benefit from a modular platform built with proven components and the ability to automatically use only the components required by their application.
Steven G. Harris, SVP of Development at Oracle said
Oracle WebLogic Server is a great example of the customer benefits of modularization, with its reduced footprint, improved startup time, and flexible configuration options. OSGi technology provides the standards based foundation...
Sacha Labourey, VP of Engineering for RedHat's middleware business said
Running OSGi technology in JBoss Enterprise Middleware Solutions enables our customers to deliver safer services and applications in a more dynamic runtime environment.
Tom Kincaid, Executive Director of Application Platforms at Sun Microsystems said
Sun has seen strong demand for OSGi technology within the GlassFish community. The GlassFish community will be able to take advantage of the modularity and dynamic extensibility implemented via an OSGi-technology based microkernel in the upcoming GlassFish v3 Prelude Release.
What all of the vendors quoted in the release have in common, including SpringSource, is that they build their server platforms on top of OSGi. This has the potential to deliver a set of benefits to users of those platforms including more modular server structures with the ability to run in a smaller footprint and to dynamically alter server characteristics and capabilities.

You need to look a bit harder at the various vendor offerings to determine to what extent they have been able to realize those benefits for you as a user. At SpringSource you could say we were "lucky" in this respect. We had the good fortune to be able to design…

SpringSource dm Server 1.0 RC2 Released

Engineering | Rob Harrop | September 11, 2008 | ...

I'm happy to announce the availability of RC2 of the SpringSource dm Server, previously known as the SpringSource Application Platform. This release is feature complete and barring any serious issues will become 1.0 GA in two weeks time.

This release fixes a few critical bugs, upgrades to Tomcat 6.0.18 and updates all code, documentation and supporting materials to reflect the new name.

Due to the renaming of the product, PlatformOsgiBundleXmlWebApplicationContext has been renamed to ServerOsgiBundleXmlWebApplicationContext and moved from the com.springsource.platform.web.dm package to the com.springsource.server.web.dm package. Thus, if you are setting the contextClass for Spring MVC's ContextLoaderListener or DispatcherServlet in web.xml in a Shared Services WAR, be sure to change the fully qualified path to com.springsource.server.web.dm.ServerOsgiBundleXmlWebApplicationContext

Early draft of OSGi Service Platform Release 4.2 specification now available

Engineering | Adrian Colyer | September 01, 2008 | ...

The OSGi Alliance have posted an early draft of release 4.2 of the Service Platform specification.  SpringSource employees are active members of both the Core Platform Expert Group (CPEG) and the Enterprise Expert Group (EEG) within the Alliance. My personal involvement has been largely with the EEG, and particularly with RFC 124 "A Component Model for OSGi".

RFC 124 is a standardization of the core ideas behind Spring Dynamic Modules. If you look at the configuration schema, you'll see that it very closely resembles the "osgi" namespace provided by Spring Dynamic Modules (DM).  RFC 124 takes…

Get the Spring newsletter

Stay connected with the Spring newsletter

Subscribe

Get ahead

VMware offers training and certification to turbo-charge your progress.

Learn more

Get support

Tanzu Spring offers support and binaries for OpenJDK™, Spring, and Apache Tomcat® in one simple subscription.

Learn more

Upcoming events

Check out all the upcoming events in the Spring community.

View all