阿里云「飞天发布时刻」2024来啦!新产品、新特性、新能力、新方案,等你来探~ 了解详情
写点什么

2016 年会成为 Java EE 微服务年吗?

  • 2016-02-15
  • 本文字数:1444 字

    阅读完需:约 5 分钟

进入 2016 年时间还不是很长,让我们回顾下去年年底的一个预言。去年 12 月,来自 C2B2 的 Steve Millidge预测,2016 年将会成为Java EE微服务年。在一定程度上,这是基于 Steve 在 JavaOne 上的演讲,他在演讲中详细地讨论了这个主题。此外,Steve 还是 Payara 的联合创始人,Payara 的目标用户也是对微服务感兴趣的 Java EE 开发人员。Steve 还认为,SOA 和微服务之间的差别很小,这种观点我们以前听说并且报道过。他在视频中指出:

“微服务与 SOA 没什么不同。它还是关于 SOA”。

当然,现在还存在争论,因为他的背景和当前的工作重心,Steve 可能会发现自己很难保持客观的态度。不过,早在 2014 年,微服务还处于起步阶段,Adam Bien 就描述了理想的 Java EE 微服务

[…] 理想的 Java EE 微服务是一个单 [实体控制边界] 组件,在一个 WAR 包中,部署在单台服务器 / 域中。在这种情况下,开发人员可以单独地发布和重新部署单个组件(又称微服务)。WAR 包之间不可能直接调用方法,因此,WAR 包将不得不使用比如 JAX-RS 来彼此通信。

我们在去年年底就微服务、DevOps 和 Java EE 相关内容采访了Markus Eisele ,他详细论述了自己为什么认为 Java EE 将会在微服务生态圈的发展中扮演重要的角色。还有一些其他使用 Java EE 编写微服务的方法,包括 TomEE WildFly KumuluzEE 是 JavaOne 2015 Duke 选择奖的其中一个获奖者,该框架是一个 Java EE 微服务框架。该框架的联合创建者 Matjaz Juric 解释说:

KumuluzEE 是第一个使用标准 Java API 的微服务框架。微服务架构的重点是将应用程序开发成服务并将这些服务单独部署;没有一个框架提供自动化部署和配置,是不可能使用 Java EE 实现真正的微服务架构的。

让我们看一些人们如何看待微服务和 Java EE 的其他例子,这会非常有趣,因为有些人严格来讲并不属于传统的 Java EE 领域。例如,早在 2014 年,Alex Soto 就论述了为什么 Java EE 和 RxJava 是一个很棒的方案。不过,并不是每个人都认可使用 Java EE 能使开发人员采用微服务。正如 Rick Hightower 所说的那样:

如果你将一个 WAR 文件部署到一个 Java EE 容器,那么你很可能不是在做微服务开发。如果你在一个容器或 EAR 文件中包含超过一个 WAR 文件,那么你肯定不是在做微服务开发。如果你将服务部署为 AMI 或 Docker 容器,而且你的微服务有一个 main 方法,那么你可能是在编写微服务。

而且,Rick 也不认为微服务与 SOA 相同:

事实上,它们在许多方面是完全相反的。例如,SOA 往往采用 WSDL,后者是一种非常严格的、强类型的服务端点定义方式。WSDL 和 XML 模式中所有的未知量都来自 XML。

当然,我们已经多次讨论过, SOA 和 Web Service 常常没有关系。不过,Rick 及其他一些人确信,Java EE 太过臃肿或者说笨拙,以其为基础构建微服务并不合适。 Jeppe Cramon 认为,Java EE 之所以是一个糟糕的基础还有更为根本的原因:

如果我们将两路(同步)通信与小 / 微服务结合使用,并根据比如“1 个类 =1 个服务”的原则,那么我们实际上回到了使用 Corba、J2EE 和分布式对象的 20 世纪 90 年代。遗憾的是,新生代的开发人员没有使用分布式对象的经验,因此也就没有认识到这个主意多么糟糕,他们正试图重复历史,只是这次使用了新技术,比如用 HTTP 取代了 RMI 或 IIOP。

如果微服务和 SOA 密切相关,那么可能会有一种观点,就是微服务可以像 SOA 那样采用一种技术无关的方式。你认为呢?2016 年会成为Java EE 微服务年吗?如果有的话,Java EE 会在微服务中扮演什么角色?

查看英文原文: Java EE and Microservices in 2016?

2016-02-15 18:005141
用户头像

发布了 1008 篇内容, 共 374.3 次阅读, 收获喜欢 341 次。

关注

评论

发布
暂无评论
发现更多内容

【碎碎念】下雪了

Firshare

年终总结

跨域:后端工程师最熟悉的陌生“人”

华为云开发者联盟

后端 华为云 跨域 企业号 1 月 PK 榜

站酷基于服务网格 ASM 的生产实践

阿里巴巴中间件

阿里云 云原生 服务网格

软件测试/测试开发 | Jenkins job 机制该如何使用?

测试人

软件测试 jenkins 自动化测试 测试开发

Halcon快速入门教程

嵌入式视觉

定位 算子 测量 HALCON 工业智慧视觉

Apache IoTDB 中的时间精度 | 铁头乔分享

Apache IoTDB

pip安装时 fatal error C1083 无法打开包括文件 “io.h” No such file or directory

代码的路

Python

Linux安装tensorflow

代码的路

Linux

软件测试/测试开发 | Jenkins 持续集成体系介绍

测试人

软件测试 持续集成 jenkins 自动化测试 测试开发

怎样快速地迁移 MySQL 中的数据?

C++后台开发

MySQL 数据库 中间件 后端开发 C++开发

redis.conf 7.0 生产配置详解,全网最全

码哥字节

NoSQL 数据库 redis 底层原理 Redis 7

屡获殊荣|旺链科技亮相2022中国双链年会并喜获佳绩

旺链科技

区块链 区块链技术 双链年会

服务网格|如何使用 Amesh 配置插件

API7.ai 技术团队

Service Mesh 服务网格 APISIX 网关 Kubernetes Serverless

等保堡垒机选择哪个厂家好?咨询电话多少?

行云管家

等保 堡垒机 等级保护

【HA小知识】DRBD数据不一致怎么办?怎么处理?

行云管家

高可用 ha 高可用软件

如何管理项目干系人?

敏捷开发

项目管理 项目干系人

易观:2022年中国产业数字化发展成熟度指数报告

易观分析

数字化 产业 报告

对话 BitSail Contributor | 姚泽宇:新生火焰,未来亦可燎原

字节跳动数据平台

大数据 开源 字节跳动 数据引擎

NFTScan 与 AlienSwap 达成战略合作伙伴,双方在 NFT 数据层面展开合作

NFT Research

NFT

写作的“收益”超乎想象

王中阳Go

深度思考 学习方法 写作 写作技巧 写作感悟

性能再升级,XMeter Cloud专业版正式上线

EMQ映云科技

物联网 IoT 云服务 mqtt 企业号 1 月 PK 榜

从TMMI角度谈谈质量度量

老张

软件测试 质量度量

当你输入网址,小手一点,然后发生了什么

华为云开发者联盟

前端 HTTP 华为云 企业号 1 月 PK 榜

算力攻坚,视频云背后的「硬」核玩家

云布道师

阿里云 视频云

长安汽车*IoTDB | 构建1.5亿时间序列车况数据处理方案,查询稳定实现毫秒级返回

Apache IoTDB

年中盘点 | 2022年,PaaS 再升级

亚马逊云科技 (Amazon Web Services)

PaaS 亚马逊云科技 Builder 专栏

使用 DataEase 制作动态轮播仪表板

搞大屏的小北

透视华为云云原生数据库的演进,能给行业带来哪些启发?

华为云开发者联盟

数据库 云原生 后端 华为云 企业号 1 月 PK 榜

软件测试/测试开发 | 做到这几点,你也能成为 BAT 的抢手人!

测试人

软件测试 自动化测试 测试开发 测试工程师

不写代码就实现了自动化测试,面试官都惊呆了!Apipost的自动化测试功能强烈推荐

徐天

自动化测试 apipost

华为云发布CodeArts Check代码检查服务 守护软件质量和安全

科技热闻

2016年会成为Java EE微服务年吗?_Java_Mark Little_InfoQ精选文章