关于微服务和 Java 需要知道的 5 件事

原文地址:https://www.ibm.com/developerworks/cn/java/j-cn-java-and-microservice-5-reason/index.html

附:

Java 和微服务,第 1 部分: 微服务

Java 和微服务,第 2 部分: 在 Java 中创建微服务

Java 和微服务,第 3 部分: 微服务通信

Java 和微服务,第 4 部分: 处理数据

 Java 和微服务,第 5 部分: 演化策略

Java 和微服务,第 6 部分: 企业数据访问模式

Java 和微服务,第 7 部分: 安全和治理

Java 和微服务,第 8 部分: 性能

许多企业在不断努力加快开发速度,减少客户遇到的宕机时间 。微服务架构是更快地迭代、更高效地扩展和创建适应能力更强的应用程序的唯一途径。使用微服务构建的应用程序由各种各样的服务组成,这些服务执行不同的功能,而且通常是使用不同语言编写的。

Java 是一种历史悠久的语言,一些人会问它在微服务环境中是否有用。这篇文章将给出 Java 对现代应用程序(包括微服务)仍有很大价值的一些理由。

以下是您应该知道的关于微服务和 Java 的 5 件事:

1.为什么我应该用 Java 编写微服务?

Java 成为一种流行的语言选择是有其充分理由的。它是一种强大的语言,拥有多年的运行任务关键型应用程序的经验,并随着新编程模式的出现而不断改进。Java 在企业应用程序中得到普遍应用,培养了一大批拥有 Java 技能的软件开发人员。利用现有技能很有意义,甚至从头创建新应用程序时也是如此。微服务为他们提供了陡峭的学习曲线,而且添加一种新编程语言可能增加风险。它给创建、部署和在生产中管理微服务应用程序的过程引入了更多未知因素。

应用程序的前端通常是使用 JavaScript 创建的(尤其是基于 Web 的应用程序)。后端中常常会使用到 Java,用于获得经得起实践检验的数据管理。整个编程领域仍有很大的变化空间,但毫无疑问,Java 非常适合编写微服务。

2.Java EE 在微服务领域为我提供了什么?

Java Platform, Enterprise Edition 或 Java EE 是由社区推动的企业 Java 应用程序标准。它提供了各种各样的规范,受到大量供应商的支持。Java EE 中的许多标准非常适合微服务应用程序:使用 JAX-RS 提供 API,使用 JPA 处理数据,使用 CDI 执行依赖注入和生命周期管理,以便能够更轻松地在应用程序中执行测试。

3.我应该如何打包 Java 微服务?

微服务应用程序应包含部署所需的一切资源。在不更改代码或部署包的情况下,单个不可变的部署包应该能够从开发环境迁移到生产环境,这明显背离了传统 Java EE 应用程序的标准。 创建一个 war 文件,然后将它交给运营团队,让他们添加应用服务器,这显然不是微服务最佳实践。相反,有两种选择:已打包服务器或容器。已打包服务器可以是可执行的 JAR 或 zip 文件,这无关紧要。该数据包应包含应用程序、任何依赖项和应用服务器。WebSphere Application Server Liberty、Wildfly Swarm 和 Spring Boot 都提供了此选项。第二个选项 是创建一个容器,通常是 Docker 容器。使用 Docker 容器会创建一个将应用程序分离的额外层。它们可部署到本地和云中,在开发和生产环境之间实现最大的平等性。

4.用于 Java 开发中的基于微服务的工具是否存在?

是,在 Java 中开发微服务时,有许多工具可简化开发工作。服务发现解决方案(比如 Netflix Eureka、Consul 或 Amalgam8)很容易与 Java 微服务关联起来。为了提高恢复和容错能力,Netflix Hystrix 使用了一个 Java 客户端提供了隔板和断路器功能。还有其他一些可帮助测试新微服务的不错工具。您会发现,在测试微服务时使用模拟对象非常有用,JMockit 和 Mockito 简化了模拟对象的创建。

5.我是否需要在 Java 中编写所有应用程序?

不需要,您不应该为了使用它而使用它。如果您已经掌握了一些 Java 技能,或者确定微服务的一些功能使用 Java 更容易完成,那么您可以使用 Java。否则,可以挑选适合自己状况的语言。请保守一点,您应该不想维护一个使用了 10 种不同语言的微服务系统,但也不要害怕使用多种语言。要让您的工作更轻松,可以采用一种通用数据结构(比如 JSON)和 API 文档工具(比如 Swagger)。您的微服务应采用一种与语言无关的协议(比如 REST)进行通信,所以它们应始终能完美地协同工作。

更多信息

如您所见,Java 非常适合微服务是有诸多原因的(本文仅介绍了其中一小部分原因)。 如果您想了解有关的更多信息,或者掌握一些最佳实践技巧,请持续关注我们后续推出的一系列关于 Java 和微服务的文章。


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值