使用 JHipster 构建微服务架构

本文涉及的产品
注册配置 MSE Nacos/ZooKeeper,182元/月
云原生网关 MSE Higress,422元/月
MSE Nacos/ZooKeeper 企业版试用,1600元额度,限量50份
简介: 在本文中,我们将着眼于代码生成工具 JHipster 生成和支持的微服务架构。JHipster 是一个代码生成工具,可以为 Kubernetes 创建 Web 应用程序、微服务、部署文件、云集成和 CI/CD Jenkins 文件。这个工具对于可以快速生成代码并避免创建样板代码的开发人员非常有帮助,可以节省 30% 的工作量。JHipster 支持 Spring Boot 中的后端代码和 Angular/React/Vue.js 中的前端代码。在本文中,我们将研究 JHipster 生成和支持的微服务架构。

在本文中,我们将着眼于代码生成工具 JHipster 生成和支持的微服务架构。

JHipster 是一个代码生成工具,可以为 Kubernetes 创建 Web 应用程序、微服务、部署文件、云集成和 CI/CD Jenkins 文件。这个工具对于可以快速生成代码并避免创建样板代码的开发人员非常有帮助,可以节省 30% 的工作量。

JHipster 支持 Spring Boot 中的后端代码和 Angular/React/Vue.js 中的前端代码。

在本文中,我们将研究 JHipster 生成和支持的微服务架构。

微服务是独立的、模块化的可部署组件,按业务领域模型、可扩展、高效且可快速部署的业务功能拆分。

微服务有几个组件组成,包括服务注册、服务发现、健康检查、弹性、容错和安全。

JHipster 支持以下微服务组件来完成上述组件:

1. JHipster Registry:这是服务注册中心,不同的微服务可以在这里注册和发现配置。该注册表还提供监控和健康检查仪表板。

JHipster Registry 建立在 2 个组件之上:Netflix Eureka 和 Spring Cloud Config Server。

a、Netflix Eureka:Eureka 提供动态服务注册和发现。Eureka 维护了一个中央服务注册中心,可以注册新的微服务并在服务宕机时将其下架。注册表维护有关可用服务及其元数据的最新信息。注册到 Eureka 服务器的服务会发送它们的心跳,当客户端不再发送心跳时,服务就会从注册表中取出。

Eureka 提供动态发现,客户端在其中查找服务注册表以获取服务信息,例如服务的 URL,并通过 URL 进行连接。

b、Spring Cloud Config Server:这提供了用于管理所有微服务的属性和配置的集中存储。

微服务可以连接到cloud-config服务并获取配置详细信息,配置服务也可以暴露给 Rest API。

2、HashiCorp Consul: Consul 是来自 HashiCorp 服务发现客户端。Consul 为键值存储提供服务发现、容错、Vault。这是 JHipster Registry 的替代方案,可以提供服务发现和配置存储。

Eureka 支持用 Spring Boot 编写的应用程序服务。Consul 可以支持用 Java、Golang 或其他编程语言编写的多个客户端。

Consul 支持开箱即用的多个数据中心。运行 Consul 的节点运行一个 consul 代理来监控服务的健康状况。

3. JHipster API 网关

JHipster 提供网关,它是访问服务的单一入口点。网关提供请求、响应转换、API 安全、缓存、节流、路由、过滤和容错。

JHipster 网关集成了用于 API 网关功能的 Zuul 和用于弹性和断路器功能的 Hystrix。由于将来会删除对 Hystrix 的支持,因此 JHipster 正在寻找 Resilience4J 集成以实现断路器功能。

Hystrix 或 Resilience4J 阻止分布式系统中的级联故障,启用回退服务,控制系统的延迟。

JHipster API Gateway 将与 JHipster Registry 一起使用 Spring Cloud Load Balancer 进行服务发现和负载平衡 HTTP 请求。

4. JHipster Control Center: 控制中心监控和管理应用程序。控制中心提供以下功能:

a、Instances: Instances 提供应用程序实例的列表;当服务在 JHipster Registry 中注册时,该服务在实例列表中可用。它还提供了一个仪表板来查看列表。

b. Metrics: 指标由 Micrometer 管理,该 Micrometer 跟踪系统指标,如 JVM、HTTP 请求、缓存使用情况和数据库连接。

C、健康检查:健康检查与 Spring Actuator 集成以获取服务的健康状态。

d、日志:日志与 Logback 集成,用于跟踪正在运行的应用程序的日志。

e. API 文档:API 文档提供 Swagger APIn 文档。

5. JWT 的安全性: JWT 是一种无状态的安全机制,可以扩展到多个服务器。这是 JHipster 微服务的默认安全选项。

JWT 提供 Header、Payload 和 Signature。所有客户端会话数据都存储在令牌中。JWT 中没有进行服务器端会话管理。OAuth 2.0 支持 JWT 以实现安全传输。

6. JHipster UAA 的微服务安全性: JHipster UAA 是使用 OAuth2 的用户记账和创作微服务。

OAuth2 是一个可用于集中身份管理的授权框架。JHipster UAA 提供了一个 OAuth2 端点,该端点基于身份验证提供访问令牌。令牌提供细粒度的访问控制来访问基于 Rest 的服务。UAA 是授权服务器和资源服务器的组合。

示例 OAuth 流程如下所示:

使用 JHipster 为微服务生成的实例架构架构如下所示:

本文介绍了 JHipster 支持的不同微服务组件,让您了解如何使用 JHipster 构建微服务架构。谢谢阅读!

目录
相关文章
|
2月前
|
消息中间件 负载均衡 中间件
⚡ 构建真正的高性能即时通讯服务:基于 Netty 集群的架构设计与实现
本文介绍了如何基于 Netty 构建分布式即时通讯集群。随着用户量增长,单体架构面临性能瓶颈,文章对比了三种集群方案:Nginx 负载均衡、注册中心服务发现与基于 ZooKeeper 的消息路由架构。最终选择第三种方案,通过 ZooKeeper 实现服务注册发现与消息路由,并结合 RabbitMQ 支持跨服务器消息广播。文中还详细讲解了 ZooKeeper 搭建、Netty 集群改造、动态端口分配、服务注册、负载均衡及消息广播的实现,构建了一个高可用、可水平扩展的即时通讯系统。
194 0
|
3月前
|
存储 SQL 分布式计算
19章构建企业级大数据平台:从架构设计到数据治理的完整链路
开源社区: 贡献者路径:从提交Issue到成为Committer 会议演讲:通过DataWorks Summit提升影响力 标准制定: 白皮书撰写:通过DAMA数据治理框架认证 专利布局:通过架构设计专利构建技术壁垒
|
5月前
|
人工智能 算法 网络安全
基于PAI+专属网关+私网连接:构建全链路Deepseek云上私有化部署与模型调用架构
本文介绍了阿里云通过PAI+专属网关+私网连接方案,帮助企业实现DeepSeek-R1模型的私有化部署。方案解决了算力成本高、资源紧张、部署复杂和数据安全等问题,支持全链路零公网暴露及全球低延迟算力网络,最终实现技术可控、成本优化与安全可靠的AI部署路径,满足企业全球化业务需求。
|
2月前
|
小程序 安全 JavaScript
构建即时通讯APP内的小程序生态体系:从架构设计到技术实现-优雅草卓伊凡
构建即时通讯APP内的小程序生态体系:从架构设计到技术实现-优雅草卓伊凡
117 1
构建即时通讯APP内的小程序生态体系:从架构设计到技术实现-优雅草卓伊凡
|
2月前
|
数据采集 存储 分布式计算
一文读懂数据中台架构,高效构建企业数据价值
在数字化时代,企业面临数据分散、难以统一管理的问题。数据中台架构通过整合、清洗和管理数据,打破信息孤岛,提升决策效率。本文详解其核心组成、搭建步骤及常见挑战,助力企业高效用数。
|
2月前
|
消息中间件 缓存 负载均衡
构建高效可扩展的后端架构:从设计到实现
本文探讨了如何构建高效、可扩展的后端架构,涵盖需求分析、系统设计、实现与优化全过程。内容包括微服务、数据库设计、缓存与消息队列等关键技术,并涉及API设计、自动化测试、CI/CD及性能优化策略,助力打造高性能、易维护的后端系统。
|
5月前
|
Cloud Native Serverless 流计算
云原生时代的应用架构演进:从微服务到 Serverless 的阿里云实践
云原生技术正重塑企业数字化转型路径。阿里云作为亚太领先云服务商,提供完整云原生产品矩阵:容器服务ACK优化启动速度与镜像分发效率;MSE微服务引擎保障高可用性;ASM服务网格降低资源消耗;函数计算FC突破冷启动瓶颈;SAE重新定义PaaS边界;PolarDB数据库实现存储计算分离;DataWorks简化数据湖构建;Flink实时计算助力风控系统。这些技术已在多行业落地,推动效率提升与商业模式创新,助力企业在数字化浪潮中占据先机。
319 12
|
6月前
|
机器学习/深度学习 设计模式 API
Python 高级编程与实战:构建微服务架构
本文深入探讨了 Python 中的微服务架构,介绍了 Flask、FastAPI 和 Nameko 三个常用框架,并通过实战项目帮助读者掌握这些技术。每个框架都提供了构建微服务的示例代码,包括简单的 API 接口实现。通过学习本文,读者将能够使用 Python 构建高效、独立的微服务。
|
9月前
|
弹性计算 API 持续交付
后端服务架构的微服务化转型
本文旨在探讨后端服务从单体架构向微服务架构转型的过程,分析微服务架构的优势和面临的挑战。文章首先介绍单体架构的局限性,然后详细阐述微服务架构的核心概念及其在现代软件开发中的应用。通过对比两种架构,指出微服务化转型的必要性和实施策略。最后,讨论了微服务架构实施过程中可能遇到的问题及解决方案。