WildFly 8与GlassFish 4 –选择哪个应用服务器

自从我上一个博客以来已经有一段时间了。 我显然忙于其他事情,包括我的主要工作。 在对应用服务器的正确选择提出更多疑问之后,是时候再次讨论这个话题并分享我的想法。

该博客上最常阅读的文章之一是有关选择哪种Java EE 6应用程序服务器的文章 。 我一直在研究很多标准,并根据一个非常基本但通用的模式将不同的认证服务器拆掉。 考虑到每个服务器都应作为OSS和商业支持的变体提供的主要指导原则,本文最后建议同时推荐GlassFish 3和JBoss AS7作为有效选择。 自去年11月更新GlassFish路线图之后,情况似乎已经改变,许多人倾向于接受AS7 / WildFly现在仍然是唯一的选择。 今天,我想将焦点转移到这一点上,并尝试将讨论放回到更具战略意义的背景下,并进一步详细说明对今天的GlassFish与WildFly决定的影响。

Java EE应用程序的基本策略原理

从决定基于Java EE开发新应用程序开始,您已经假设了几件事。 出于某种原因,Java EE被称为行业标准。 这意味着它已被广泛采用,但仍未被诸如DIN / ISO或IEEE等官方标准或标准化组织之一正式捕获。 JCP为它提供规则和规章,并由不同个人和组织的广泛贡献来对其进行管理。 称之为开放行业标准对我来说很常见且有效。 您可以自己权衡两者之间的差异。 原则上, Java EE认证列表为您提供了一系列至少符合所谓的Java EE TCK的不同产品。 对TCK进行了广泛讨论,可以放心地认为它并未完全涵盖所有包含规范的每一行。 但是,每个经过认证的Java EE服务器基本上都应该准备好执行Java EE应用程序。 一次写入-随处运行的原则可以实现(至少在一定程度上)。

您的决定的底线是:避免(供应商)特定功能,并在开放的行业标准上构建新应用程序,该标准可提供灵活性并在不同产品和供应商之间进行选择。

除此之外,您还可以灵活地从提供Java EE技术的技能和服务的众多公司和开发人员中进行选择,从而获得更多价值。

从Java EE 7的角度来看,WildFly 8和GlassFish 4相等

随着WildFly 8 CR1的发布,它通过了Java EE 7 TCK。 即使正式的文书工作显然尚未完全处理,看起来8决赛也将正式获得认证。 至少就Java EE 7技术而言,两个服务器都提供相同的功能。 核心技术堆栈周围始终存在着不同的附加功能,但是我尚未对它们进行完整的功能比较,老实说,我无意这样做。

如果您打算进行绿地开发,请制定自己的决策流程并权衡这些其他指标。您已经是Oracle或Red Hat客户吗? 还是使用其他最适合彼此配合的基础设施组件? 根据我的经验,您还需要权衡其他几个因素(根据我的经验,我们正在谈论> = 30)并相应地对它们进行排名。

从GlassFish 2.x,3.x迁移到4.0?

这些天最常见的问题。 我应该如何处理已在GlassFish 2.x或3.x上运行的应用程序? 它可能是最难的了。 我需要您进一步了解才能回答。

Oracle / GlassFish客户/商店并没有更改任何内容?

您已经在使用Oracle GlassFish Server(商业支持的版本)还是在使用开源版本? 您打算扩展应用程序还是使用新引入的Java EE 7功能? 如果您已经连接到Oracle或商业版本,并且不打算进行任何更改,则基本上不必担心迁移。 根据Oracle终身支持政策 (PDF),将继续支持现有的Oracle GlassFish Server 2.1.x和3.1.x商业客户。 如果您处于这种环境,我基本上不建议完全迁移。 这两款服务器的扩展支持分别于2017年1月(GFv2)和2019年3月(GFv3)终止。

Oracle / GlassFish客户/商店并愿意尽早使用Java EE 7的新功能?

因此,您是Oracle客户,并且渴望早日使用最新技术? 还是需要大量修改应用程序?

基本上,您有三个选择:坚持使用GlassFish 4 OSS版本(无支持合同)或移至WebLogic 12c(12.1.4),后者很可能将获得完整的EE 7支持,或者首先移至GF 4逐步进行操作。然后再到WebLogic 12.1.4。

直接切换到GlassFish并计划在生产中继续使用WebLogic会带来在开发和生产中使用不同应用程序服务器的风险。 您需要对此加以重视并进行相应处理。

为了完全降低风险,我建议至少等待WebLogic 12.1.3,该WebLogic 12.1.3将具有第一组新的Java EE 7规范,并有望在CY2014上半年推出。

如果您不运行关键任务应用程序并且不需要支持合同,那么我建议您迁移到GlassFish 4.0,以促进已经可用的基础架构,技能和合同。 对我而言,匆匆更换供应商毫无意义。 准备终止支持合同,然后计划评估您对正确的开源应用程序服务器的决策。

真的不是Oracle客户/商店,是否对EE 7新功能没有任何兴趣?

在您的需求更改之前,根本不要迁移。 您可能会很快开始评估您的下一个Java EE 7服务器产品。 但是到目前为止,还没有很多认证的替代产品。

并非如此,Oracle客户/商店会不断变化的要求,是否会使用新的EE 7功能?

今年可能是时候重新审视您的IT环境。 似乎您已经决定在某些时候使用GlassFish。 您可能需要重新考虑以前的决定并评估该做什么。 要对下一个Java EE服务器做出有充分根据的决定,为时过早。 EE 7服务器的认证矩阵大部分为空。 等待更多的选择。 我预计这将占用2014财年的大部分时间。

如果您从今天起就需要新的EE 7功能,并且将来需要能够购买商业支持,但现在就不需要,现在唯一的选择就是WildFly 8。

GlassFish 4的未来将如何发展?

我希望我能告诉你。 我想我在较早的帖子中提出了自己的观点。 Oracle需要GlassFish作为Java EE参考实现,并且考虑到WebLogic和GlassFish中常用组件的数量,它将始终存在。 可以肯定地认为,Java EE规范将始终是GlassFish中最新和最完善的规范。 但是,Java EE生态系统导致了许多厂商特定的扩展和功能,这些扩展和功能并未真正包含在任何规范中。 这些对我们所有人来说都是商品(主要是集群,管理功能,嵌入式服务器),在很多情况下我们都不想错过它们。 进一步,社区参与的补丁频率和等级将是GlassFish在项目和开发人员之间成功传播的关键因素。

参考: WildFly 8与GlassFish 4 –从我们的JCG合作伙伴 Markus Eisele中选择哪个应用程序服务器 ,该博客在Java企业软件开发中 。

翻译自: https://www.javacodegeeks.com/2014/02/wildfly-8-vs-glassfish-4-which-application-server-to-choose.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/364876.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue--- 一点车项目

一点车项目 cli脚手架 组件化 数据交互路由指向存入数据库 前端页面 cli脚手架的安装与搭建 创建对应包 页面组件化编辑 (共享组件:摘取出来一模一样的组件重用)(私有组件:在自己的组件写入 引入共享组件) 数据交…

设计模式:模式或反模式,这就是问题

我最近遇到了Wiki页面“ Anti-pattern” ,其中包含详尽的反模式列表。 其中一些对我来说很明显。 他们中的一些让我想了一下,其他的让我想了更多。 然后,我开始在页面上查找反模式“ singleton”,但找不到。 (文本搜索…

Redis的散列类型

Redis是采用字典结构以key-value的形式存储数据的,在散列类型(所谓的hash)中的value也是一种字典结构。如果用关系表结构去理解,就是key为对象,value是属性和属性值。如下图: 所以使用散列(hash…

python configparser 注释_使用configpar添加注释

如果您想去掉尾随的,可以按照atomopter的建议将ConfigParser.ConfigParser子类化,并实现自己的write方法来替换原来的方法:import sysimport ConfigParserclass ConfigParserWithComments(ConfigParser.ConfigParser):def add_comment(self, …

easy html css tree 简单的HTML css导航树

code: show: 更多专业前端知识,请上 【猿2048】www.mk2048.com

使用Maven和WebLogic 12c开发Java EE应用程序

WebLogic Server 12c现在对Maven提供了很好的支持。 不过,此文档有点被隐藏,因此这里是直接链接http://docs.oracle.com/middleware/1212/core/MAVEN 总而言之,Oracle没有为其服务器工件提供公共的Maven存储库管理器托管。 但是,…

Java实现并发线程中线程范围内共享数据

---恢复内容开始--- 利用Map,HashMap键值对的数据结构,实现并发线程中线程范围内数据共享。 package cn.qy.heima2;import java.util.HashMap; import java.util.Map; import java.util.Random;public class ThreadScopeShareData {private static int …

Aspose 插件

百度:Aspose Aspose.Cells.dll Aspose.Slides.dll Aspose.Words.dll 转载于:https://www.cnblogs.com/Tpf386/p/10001814.html

mysql数据库version版本控制_MySQL数据库版本控制

你用什么方法来控制你的数据库?我已经将所有数据库表作为单独的.sql脚本提交到我们的respository(mercurial)。这样,如果团队中的任何成员对employee表进行了更改,比如说,当我更新我的存储库时,我会立即知道哪个表被修…

js生成二维码

1.引入js文件 https://blog-static.cnblogs.com/files/cengjingdeshuige/jquery.qrcode.js https://blog-static.cnblogs.com/files/cengjingdeshuige/qrcode.js 2.页面加入元素 <div id"qrcodeCanvas"></div>3.js里面生成二维码$(#qrcodeCanvas).qrc…

Java 8将默认使用传输级别安全性(TLS)1.2

传输级别安全性&#xff08;TLS&#xff09;1.2将默认设置为3月18日发布的标准Java的下一版本。TLS将提供加密的Internet通信&#xff0c;但不能完全解决Java的安全问题&#xff0c;因为Java的加密通信没有灵丹妙药有关安全问题的解释。 TLS版本1.2将在Java开发工具包&#xf…

18.11.16-高等数学-曲率计算

11.16 转载于:https://www.cnblogs.com/coder211/p/10005502.html

springboot干什么的_Spring Boot 项目的这些文件都是干啥用的?

上一讲我们用官网包或者 IDE 工具&#xff0c;快速构建了 Spring Boot 应用&#xff0c;并且看到了第一个程序的运行结果&#xff1a;Hello World&#xff01;本文我们了解下 Spring Boot 的目录结构&#xff0c;了解一个事物&#xff0c;清楚了它的结构&#xff0c;明白了内部…

微信小程序开发——点击按钮退出小程序的实现

微信小程序官方是没有提供退出的API的&#xff0c;但是在navigator这个组件中&#xff0c;是有退出这个功能的&#xff1a; 详情参考官方文档&#xff1a;navigator。 示例代码&#xff1a; 1 <navigator open-type"exit" target"miniProgram">关闭小…

使用RequestHandlerRetryAdvice重试Web服务操作

1.引言 有时在调用Web服务时&#xff0c;我们可能有兴趣在发生错误的情况下重试该操作。 使用Spring Integration时&#xff0c;我们可以使用RequestHandlerRetryAdvice类实现此功能。 此类将使我们在放弃并引发异常之前重试指定次数的操作。 这篇文章将向您展示如何完成此任务…

ASP.NET MVC如何做一个简单的非法登录拦截

摘要&#xff1a;做网站的时候&#xff0c;经常碰到这种问题&#xff0c;一个没登录的用户&#xff0c;却可以通过localhost:23244/Main/Index的方式进入到网站的内部&#xff0c;查看网站的信息。我们知道&#xff0c;这是极不安全的&#xff0c;那么如何对这样的操作进行拦截…

无法创建java虚拟机_创建java虚拟机失败的解决方法

创建java虚拟机失败的解决方法解决问题的步骤&#xff1a;1、从eclipse文件夹中打开eclipse.ini文件2、修改–launcher.XXMaxPermSize属性3、将值改为512m即可配置文件格式&#xff1a;-startupplugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar--launcher.libra…

Java简述

Java的特点&#xff08;11个关键术语&#xff09;from《Java核心技术I》 1) 简单性 2) 面向对象 3) 分布式 Java有一个丰富的例程库&#xff0c;用于处理像HTTP和FTP之类的TCP/IP协议。Java应用程序能够通过URL打开和访问网络上的对象&#xff0c;其便捷程度就好像访问本地文…

java 泛型嵌套泛型_Java泛型嵌套

package com.study.generics;//泛型的嵌套使用public class GenericsDemo06 {public static void main(String []args) {GenericsComputer computer new GenericsComputer("联想笔记本电脑","联想");GenericsPeople people new GenericsPeople(computer)…

zipkin 服务追踪

服务追踪,就是对请求接口的追踪并保存. 在测试的过程中我们会发现&#xff0c;有时候&#xff0c;程序刚刚启动后&#xff0c;刷新几次&#xff0c;并不能看到任何数据&#xff0c;原因就是我们的spring-cloud-sleuth收集信息是有一定的比率的&#xff0c;默认的采样率是0.1&am…