使用 Quarkus 和 MicroProfile 实现微服务特性
Quarkus 的文章之前写过三篇了,讲过了 Quarkus 的小而快。 Hello, Quarkus 应"云"而生的 Java 框架 Quarkus:构建本机可执行文件 谁说 Java 不能用来跑 Serverless? 一直在酝酿写一篇 Quarkus 生态相关的,因为最近一直在忙 Meetup 的事情而搁浅。正好看到了这篇文章,就拿来翻译一下,补全云原生中的“微服务”这一块。 本文译自《Implementing Microservicilities with Quarkus and MicroProfile》 。 为什么要使用微服务特性? 在微服务架构中,一个应用程序是由几个相互连接的服务组成的,这些服务一起工作来实现所需的业务功能。 因此,典型的企业微服务架构如下所示: 刚开始,使用微服务架构实现应用程序看起来很容易。 但是,因为有了单体架构没有一些新的挑战,因此做起来并不容器 举几个例子,比如容错、服务发现、扩展性、日志记录和跟踪。 为了解决这些挑战,每个微服务都应实现我们在 Red Hat 所说的“微服务特性”。 该术语是指除业务逻辑以外,服务还必须实现来解决的跨领域关注点清单,如下图所示: 可以用任何语言(Java、Go、JavaScript)或任何框架(Spring Boot、Quarkus)实现业务逻辑,但是围绕业务逻辑,应实现以下关注点: API:可通过一组定义的 API 操作来访问该服务。例如,对于 RESTful Web API,HTTP 用作协议。此外,可以使用诸如 Swagger 之类的工具来记录 API 。 服务发现(Discovery):服务需要发现其他服务。