使用 JHipster 构建微服务架构

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
注册配置 MSE Nacos/ZooKeeper,118元/月
云原生网关 MSE Higress,422元/月
简介: 在本文中,我们将着眼于代码生成工具 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 构建微服务架构。谢谢阅读!

目录
相关文章
|
7天前
|
存储 监控 安全
构建现代后端系统:架构与实践
【8月更文挑战第12天】本文旨在探讨构建现代后端系统时需考虑的架构和实践问题。我们将通过分析现代后端系统的核心组件、设计原则、以及如何应对可扩展性、安全性、性能等挑战,提供一个全面的视角。文章不包含代码示例,而是侧重于理论与策略层面的讨论,以期为后端开发人员提供有价值的参考和指导。
|
2天前
|
监控 负载均衡 API
从单体到微服务:架构转型之道
【8月更文挑战第17天】从单体架构到微服务架构的转型是一项复杂而系统的工程,需要综合考虑技术、团队、文化等多个方面的因素。通过合理的规划和实施策略,可以克服转型过程中的挑战,实现系统架构的升级和优化。微服务架构以其高度的模块化、可扩展性和灵活性,为业务的持续发展和创新提供了坚实的技术保障。
|
2天前
|
运维 安全 SDN
网络拓扑设计与优化:构建高效稳定的网络架构
【8月更文挑战第17天】网络拓扑设计与优化是一个复杂而重要的过程,需要综合考虑多方面因素。通过合理的拓扑设计,可以构建出高效稳定的网络架构,为业务的顺利开展提供坚实的支撑。同时,随着技术的不断进步和业务需求的不断变化,网络拓扑也需要不断优化和调整,以适应新的挑战和机遇。
|
4天前
|
运维 监控 负载均衡
如何构建高可用的系统基础架构
【8月更文挑战第15天】构建高可用的系统基础架构是一个复杂而系统的工程,需要综合考虑设计原则、关键技术和实践策略等多个方面。通过冗余设计、分布式架构、自动化与智能化等技术的运用,可以显著提升系统的可用性和稳定性。同时,加强运维团队的能力建设和制定完善的高可用性策略也是确保系统高可用性的重要保障。希望本文能为读者在构建高可用系统时提供有益的参考和借鉴。
|
11天前
|
Cloud Native 云计算 微服务
云原生时代:企业分布式应用架构的惊人蜕变,从SOA到微服务的大逃亡!
【8月更文挑战第8天】在云计算与容器技术推动下,企业分布式应用架构正经历从SOA到微服务再到云原生的深刻变革。SOA强调服务重用与组合,通过标准化接口实现服务解耦;微服务以细粒度划分服务,增强系统灵活性;云原生架构借助容器化与自动化技术简化部署与管理。每一步演进都为企业带来新的技术挑战与机遇。
38 6
|
7天前
|
负载均衡 监控 API
构建高效微服务架构:后端开发的新趋势
【7月更文挑战第43天】 在当今软件开发领域,微服务架构已成为推动技术创新与实现业务敏捷性的一股不可忽视的力量。本文旨在深入剖析构建高效微服务架构的核心原则、关键技术和实践挑战,为后端开发者提供一套行之有效的解决方案。通过精心设计的模块化服务、智能的服务发现机制、弹性的负载均衡策略以及持续的性能优化实践,我们能够确保系统的可扩展性、稳定性及快速响应市场变化的能力。文章将详细探讨如何通过容器化技术、服务网格、API网关等现代工具和框架,来构建和维护一个高效的微服务系统。
|
9天前
|
设计模式 监控 API
探索微服务架构中的API网关模式
在微服务的宇宙里,API网关是连接星辰的桥梁。它不仅管理着服务间的通信流量,还肩负着保护、增强和监控微服务集群的重任。本文将带你走进API网关的世界,了解其如何成为微服务架构中不可或缺的一环,以及它在实际应用中扮演的角色和面临的挑战。
|
4天前
|
安全 Nacos 数据库
【技术安全大揭秘】Nacos暴露公网后被非法访问?!6大安全加固秘籍,手把手教你如何保护数据库免遭恶意篡改,打造坚不可摧的微服务注册与配置中心!从限制公网访问到启用访问控制,全方位解析如何构建安全防护体系,让您从此告别数据安全风险!
【8月更文挑战第15天】Nacos是一款广受好评的微服务注册与配置中心,但其公网暴露可能引发数据库被非法访问甚至篡改的安全隐患。本文剖析此问题并提供解决方案,包括限制公网访问、启用HTTPS、加强数据库安全、配置访问控制及监控等,帮助开发者确保服务安全稳定运行。
11 0
|
4天前
|
安全 Nacos 数据安全/隐私保护
【技术干货】破解Nacos安全隐患:连接用户名与密码明文传输!掌握HTTPS、JWT与OAuth2.0加密秘籍,打造坚不可摧的微服务注册与配置中心!从原理到实践,全方位解析如何构建安全防护体系,让您从此告别数据泄露风险!
【8月更文挑战第15天】Nacos是一款广受好评的微服务注册与配置中心,但其连接用户名和密码的明文传输成为安全隐患。本文探讨加密策略提升安全性。首先介绍明文传输风险,随后对比三种加密方案:HTTPS简化数据保护;JWT令牌减少凭证传输,适配分布式环境;OAuth2.0增强安全,支持多授权模式。每种方案各有千秋,开发者需根据具体需求选择最佳实践,确保服务安全稳定运行。
16 0
|
12天前
|
缓存 监控 API
【微服务战场上的神秘守门人】:揭秘API网关的超能力 —— 探索微服务架构中的终极守护者与它的神奇魔法!
【8月更文挑战第7天】随着微服务架构的流行,企业应用被拆分为围绕特定业务功能构建的小型服务。API网关作为微服务间的通信管理核心,对请求进行路由、认证、限流等处理,简化客户端集成并提升用户体验。以电商应用为例,通过Kong部署API网关,配置产品目录等服务的API及JWT认证插件,确保安全高效的数据交互。这种方式不仅增强了系统的可维护性和扩展性,还提供了额外的安全保障。
29 2