当前位置: 首页 > article >正文

Java 微服务框架 HP-SOA v1.1.4

HP-SOA

HP-SOA

功能完备,简单易用,高度可扩展的Java微服务框架。

  • 项目主页 : https://www.oschina.net/p/hp-soa
  • 下载地址 : https://github.com/ldcsaa/hp-soa
  • 开发文档 : https://gitee.com/ldcsaa/hp-soa/blob/master/README.md
  • QQ Group: 44636872, 663903943

1.1.2 版本更新内容:

  1. 增加RocketMQ支持:hp-soa-starter-rocketmq。
  2. 增加国际化支持:通过 X-Language HTTP 请求头传递语言选项,通过 I18nHelper 读取国际化资源。
  3. 优化应用程序打包发布方案。
  4. 增加 Docker 环境下应用程序镜像构建和容器运行通用方案。
  5. 补充【应用程序打包发布】方案与实施文档。
  6. 支持运行期设置应用程序只读(配置参考:Nacos配置中心)
  7. 支持运行期动态修改日志级别(配置参考:Nacos配置中心)
  8. 组件更新:
    • Spring-Boot -> 3.2.9
    • Spring-Cloud -> 2023.0.3
    • Dubbo -> 3.2.16

【快速开始】


技术架构

技术架构

技术集成

  • Web 服务框架:spring-boot 3.x
  • 微服务框架:spring-cloud 4.x
  • 微服务框架:Dubbo 3.x
  • 服务注册中心:Nacos
  • 配置中心:Nacos
  • 服务治理中心:Dubbo Admin
  • 流量控制中心:Sentinel Dashboard + Nacos
  • 数据库:MySQL、Druid、mybatis-plus(支持多数据源)
  • 缓存:Redis + Redisson(支持多实例)
  • NoSQL 数据库:MongoDB
  • 搜索引擎:Elasticsearch
  • 消息总线:RabbitMQ(支持多实例、可靠消息、Stream 消息)
  • 消息队列:Kafka(支持可靠消息)
  • MQTT发布订阅:Eclipse PAHO mqttv5
  • 分布式Job:xxl-job
  • 轻量级Job:Redisson + Spring Scheduled
  • 分布式事务:Seata
  • 全局ID:Leaf(支持 Snowflake ID 和 Segment ID)
  • 统一日志:Log4j + Kafka + ELK
  • 调用链跟踪:Skywalking
  • 监控告警:Prometheus + Grafana + Alert Manager

模块说明

  • hp-soa-dependencies 依赖管理模块,定义依赖包及其版本
  • hp-soa-framework-core 基础模块,定义 HP-SOA 基础组件和工具
  • hp-soa-framework-web Web应用模块,集成 spring-boot 和 Dubbo,提供核心微服务功能
  • hp-soa-framework-leaf Leaf全局ID模块,基于Leaf,提供分布式全局ID功能
  • hp-soa-framework-gelf GELF日志模块,提供TCP、UDP、HTTP、Redis、Kafka等远程日志传输功能
  • hp-soa-framework-util 工具包模块,提供文件处理、邮件、远程访问等组件和工具
  • hp-soa-starter-web Web应用启动器,配置并启动应用服务,所有 HP-SOA 项目都必须引入该启动器
  • hp-soa-starter-web-cloud Spring Cloud 启动器,开启 Spring Cloud 微服务功能,所有 Spring Cloud 微服务项目都必须引入该启动器
  • hp-soa-starter-web-dubbo Dubbo 启动器,开启 Dubbo 微服务功能,所有 Dubbo 微服务项目都必须引入该启动器
  • hp-soa-starter-task Task启动器,开启 Spring Task 功能,并为 Spring Task 提供日志关联和调用链跟踪能力
  • hp-soa-starter-nacos Nacos配置中心启动器,开启配置中心功能,应用程序可以从远程配置中心加载配置
  • hp-soa-starter-data-mysql MySQL启动器,开启MySQL数据库访问功能,并提供动态数据源、数据源监控和全局事务管理等能力
  • hp-soa-starter-data-redis Redis启动器,开启Redis访问功能,支持多Redis实例,支持Spring Cache
  • hp-soa-starter-data-mongodb MongoDB 启动器,开启 MongoDB 访问功能,支持通过 Spring Data 接口方式访问 MongoDB
  • hp-soa-starter-data-elasticsearch Elasticsearch 启动器,开启 Elasticsearch 访问功能,支持通过 Spring Data 接口方式访问 Elasticsearch
  • hp-soa-starter-rabbitmq Rabbitmq启动器,开启Rabbitmq访问功能,支持多Rabbitmq实例,提供可靠消息实施方案以及消息跟踪能力
  • hp-soa-starter-kafka Kafka 启动器,开启 Kafka 访问功能,提供可靠消息实施方案以及消息跟踪能力
  • hp-soa-starter-mqtt MQTT启动器,开启MQTT发布订阅功能,全面支持mqttv5协议
  • hp-soa-starter-job-exclusive 轻量级Job启动器,开启轻量级排他Job功能,提供Job执行日志关联和调用链跟踪能力
  • hp-soa-starter-job-xxljob Xxl-Job启动器,开启 Xxl-Job 功能,结合 xxl-job-admin 提供分布式Job能力
  • hp-soa-starter-leaf Leaf全局ID启动器,开启Leaf全局ID功能,支持通过Snowflake算法和Segment算法生成全局ID
  • hp-soa-starter-seata Seata启动器,开启Seata分布式事务功能,结合 Seata TC 提供分布式事务能力
  • hp-soa-starter-sentinel Sentinel启动器,开启Sentinel流量控制功能,结合 Sentinel Dashboard 和 Nacos 提供流量控制和流控规则持久化能力
  • hp-soa-starter-skywalking Skywalking启动器,开启Skywalking调用链跟踪功能,结合 Skywalking Agent 和 Skywalking Server 提供调用链跟踪能力

应用接入(参考:hp-demo)

  1. pom.xml 中添加 HP-SOA 依赖
<dependencyManagement>
    <dependencies>
        <!-- 添加 hp-soa 依赖管理 -->
        <dependency>
            <groupId>io.github.hpsocket</groupId>
            <artifactId>hp-soa-dependencies</artifactId>
            <version>${hp-soa.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

<dependencies>
    <!-- 普通项目引用 hp-soa-starter-web -->
    <dependency>
        <groupId>io.github.hpsocket</groupId>
        <artifactId>hp-soa-starter-web</artifactId>
    </dependency>
    <!-- Spring Cloud 项目引用 hp-soa-starter-web-cloud -->
    <!--
    <dependency>
        <groupId>io.github.hpsocket</groupId>
        <artifactId>hp-soa-starter-web-cloud</artifactId>
    </dependency>
    -->
    <!-- Dubbo项目引用 hp-soa-starter-web-dubbo -->
    <!--
    <dependency>
        <groupId>io.github.hpsocket</groupId>
        <artifactId>hp-soa-starter-web-dubbo</artifactId>
    </dependency>
    -->
    <!-- 根据项目需要,引用其它 hp-soa starter -->
    <dependency>
        <groupId>io.github.hpsocket</groupId>
        <artifactId>hp-soa-starter-xxx</artifactId>
    </dependency>
</dependencies>
  1. 修改应用配置(参考 Demo hp-demo-bff-basic 的本地配置文件 ,配置中心的远程配置文件),主要配置项:
    • hp.soa.web
    • spring.cloud (Spring Cloud 项目)
    • dubbo (Dubbo项目)
    • server
    • spring
    • management
    • springdoc
  2. 修改全局配置(可选)
    • 系统配置文件,用于设置系统属性,默认配置文件:/opt/hp-soa/config/system-config.properties参考:system-config.properties
    • 扩展配置文件,用于配置注册中心地址、配置中心地址等公共属性,默认配置文件:/opt/hp-soa/config/extended-config.properties参考:extended-config.properties
  3. 实现 HTTP 鉴权接口(可选)
    • 如果是Gateway/BFF应用,并且应用属性hp.soa.web.access-verification.enabled = true,则需要实现AccessVerificationService接口,用于HTTP请求鉴权。
  4. 启动应用
    • 以io.github.hpsocket.soa.framework.web.server.main.AppStarter作为启动类,启动应用程序。
    • JVM启动参数参考:JVM启动参数示例

[用户指南]


http://www.kler.cn/news/319705.html

相关文章:

  • 【网络】高级IO——Reactor版TCP服务器
  • 刷题训练之栈
  • 系统敏感信息搜索工具(支持Windows、Linux)
  • Unnity IOS安卓启动黑屏加图(底图+Logo gif也行)
  • docker中搭建nacos并将springboot项目的配置文件转移到nacos中
  • 流 Stream
  • 代码随想录算法训练营第二十天 | Java |530.二叉搜索树的最小绝对差、501.二叉搜索树中的众数、236. 二叉树的最近公共祖先
  • 聚观早报 | 小米三折叠手机专利曝光;李斌谈合肥投资蔚来
  • K8S服务发布
  • 操作系统 | 学习笔记 | | 王道 | 5.3 磁盘和固态硬盘
  • Qwen大型语言模型系列的最新成果 ----Qwen2.5
  • 设备稳定流畅视频体验,乐鑫ESP32-S3芯片方案无线音视频传输通信
  • docker和docker-compose安装
  • 【计算机网络】理解应用层协议HTTP
  • Codeforces 1338A —— Powered Addition 题解
  • 持续学习与创新能力的双重提升
  • javaseday31多线程
  • Node.js 学习 path模块、fs模块、npm软件包管理器、导出、导入
  • 通信工程学习:什么是VPN虚拟专用网络
  • 微服务配置中心介绍
  • 计算机毕业设计之:基于微信小程序的校园流浪猫收养系统
  • 【24华为杯数模研赛赛题思路已出】国赛B题思路丨附参考代码丨免费分享
  • 应用层 I(C/S模型、P2P模型、域名系统DNS)【★★】
  • can not run elasticsearch as root
  • 【前端】ES6:Proxy代理和Reflect对象
  • 【百日算法计划】:每日一题,见证成长(020)
  • 如何查看线程
  • 项目第一弹:RabbitMQ介绍
  • C语言之预处理详解(完结撒花)
  • JAVA链表