使用 JHipster 构建微服务架构

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
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月前
|
SQL 监控 关系型数据库
MySQL主从复制:构建高可用架构
本文深入解析MySQL主从复制原理与实战配置,涵盖复制架构、监控管理、高可用设计及性能优化,助你构建企业级数据库高可用方案。
|
2月前
|
数据采集 运维 监控
构建企业级Selenium爬虫:基于隧道代理的IP管理架构
构建企业级Selenium爬虫:基于隧道代理的IP管理架构
|
2月前
|
人工智能 监控 测试技术
告别只会写提示词:构建生产级LLM系统的完整架构图​
本文系统梳理了从提示词到生产级LLM产品的八大核心能力:提示词工程、上下文工程、微调、RAG、智能体开发、部署、优化与可观测性,助你构建可落地、可迭代的AI产品体系。
466 51
|
1月前
|
Cloud Native Serverless API
微服务架构实战指南:从单体应用到云原生的蜕变之路
🌟蒋星熠Jaxonic,代码为舟的星际旅人。深耕微服务架构,擅以DDD拆分服务、构建高可用通信与治理体系。分享从单体到云原生的实战经验,探索技术演进的无限可能。
微服务架构实战指南:从单体应用到云原生的蜕变之路
|
2月前
|
机器学习/深度学习 人工智能 搜索推荐
从零构建短视频推荐系统:双塔算法架构解析与代码实现
短视频推荐看似“读心”,实则依赖双塔推荐系统:用户塔与物品塔分别将行为与内容编码为向量,通过相似度匹配实现精准推送。本文解析其架构原理、技术实现与工程挑战,揭秘抖音等平台如何用AI抓住你的注意力。
542 7
从零构建短视频推荐系统:双塔算法架构解析与代码实现
|
1月前
|
负载均衡 Java API
《深入理解Spring》Spring Cloud 构建分布式系统的微服务全家桶
Spring Cloud为微服务架构提供一站式解决方案,涵盖服务注册、配置管理、负载均衡、熔断限流等核心功能,助力开发者构建高可用、易扩展的分布式系统,并持续向云原生演进。
|
2月前
|
消息中间件 缓存 监控
中间件架构设计与实践:构建高性能分布式系统的核心基石
摘要 本文系统探讨了中间件技术及其在分布式系统中的核心价值。作者首先定义了中间件作为连接系统组件的"神经网络",强调其在数据传输、系统稳定性和扩展性中的关键作用。随后详细分类了中间件体系,包括通信中间件(如RabbitMQ/Kafka)、数据中间件(如Redis/MyCAT)等类型。文章重点剖析了消息中间件的实现机制,通过Spring Boot代码示例展示了消息生产者的完整实现,涵盖消息ID生成、持久化、批量发送及重试机制等关键技术点。最后,作者指出中间件架构设计对系统性能的决定性影响,
|
2月前
|
传感器 人工智能 算法
分层架构解耦——如何构建不依赖硬件的具身智能系统
硬件与软件的彻底解耦,并通过模块化、分层的架构进行重构,是突破这一瓶颈、构建通用型具身智能系统的核心基石。这种架构将具身智能系统解耦为三个核心层级:HAL、感知决策层和任务执行层。这一模式使得企业能够利用预置的技能库和低代码工具快速配置新任务,在不更换昂贵硬件的前提下,实现从清洁机器人到物流机器人的快速功能切换。本文将通过对HAL技术原理、VLA大模型和行为树等核心技术的深度剖析,并结合Google RT-X、RobotecAI RAI和NVIDIA Isaac Sim等主流框架的案例,论证这一新范式的可行性与巨大潜力,探讨硬件解耦如何将机器人从一个“工具”升级为“软件定义”的“多面手”,从而
440 3
|
3月前
|
存储 自然语言处理 前端开发
百亿级知识库解决方案:从零带你构建高并发RAG架构(附实践代码)
本文详解构建高效RAG系统的关键技术,涵盖基础架构、高级查询转换、智能路由、索引优化、噪声控制与端到端评估,助你打造稳定、精准的检索增强生成系统。
674 2
|
2月前
|
SQL 弹性计算 关系型数据库
如何用读写分离构建高效稳定的数据库架构?
在少写多读业务场景中,主实例读请求压力大,影响性能。通过创建只读实例并使用数据库代理实现读写分离,可有效降低主实例负载,提升系统性能与可用性。本文详解配置步骤,助你构建高效稳定的数据库架构。

热门文章

最新文章