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

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启动参数示例

[用户指南]

相关文章:

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

HP-SOA 功能完备&#xff0c;简单易用&#xff0c;高度可扩展的Java微服务框架。 项目主页 : https://www.oschina.net/p/hp-soa下载地址 : https://github.com/ldcsaa/hp-soa开发文档 : https://gitee.com/ldcsaa/hp-soa/blob/master/README.mdQQ Group: 44636872, 66390394…...

代码随想录Day 52|题目:101.孤岛的面积、102.沉没孤岛、103.水流问题、104.建造最大岛屿

提示&#xff1a;DDU&#xff0c;供自己复习使用。欢迎大家前来讨论~ 文章目录 图论part03题目一&#xff1a;101.孤岛的总面积解题思路DFS**BFS** 题目二&#xff1a;102. 沉没孤岛解题思路 题目三&#xff1a;103. 水流问题解题思路优化 题目四&#xff1a;104.建造最大岛屿…...

go webapi上传文件

一、导入依赖 import "net/http" 我这里用到了Guid所以安装依赖 go get github.com/google/uuid 二、main.go package mainimport ("fmt""github.com/jmoiron/sqlx""github.com/tealeg/xlsx""log""path/filepath&q…...

【小沐学GIS】基于Openstreetmap创建Sionna RT场景(Python)

文章目录 1、简介1.1 blender 2、下载和安装2.1 Python2.2 jupyter 3、运行结语 1、简介 1.1 blender https://www.blender.org/ Blender 是一款免费开源的3D创作套件。 使用 Blender&#xff0c;您可以创建3D可视化效果&#xff0c;例如静态图像、3D动画、VFX&#xff08;…...

网安面试题1

深信服厂商面 自我介绍 我看到你介绍里面有提到独立设计网络拓扑图&#xff0c;你知道内网有哪些攻击途径吗 护网红队有什么成果 sql注入有哪些类型 sql注入的防御方式 讲一个你工作中遇到的应急响应 怎么判断内网的攻击是不是真实攻击 Windows中了勒索病毒你应该怎么办 linux被…...

你了解system V的ipc底层如何设计的吗?消息队列互相通信的原理是什么呢?是否经常将信号量和信号混淆呢?——问题详解

前言&#xff1a;本节主要讲解消息队列&#xff0c; 信号量的相关知识。 ——博主主要是以能够理解为目的进行讲解&#xff0c; 所以对于接口的使用或者底层原理很少涉及。 主要的讲解思路就是先讨论消息队列的原理&#xff0c; 提一下接口。 然后讲解ipc的设计——这个设计一些…...

python爬虫初体验(一)

文章目录 1. 什么是爬虫&#xff1f;2. 为什么选择 Python&#xff1f;3. 爬虫小案例3.1 安装python3.2 安装依赖3.3 requests请求设置3.4 完整代码 4. 总结 1. 什么是爬虫&#xff1f; 爬虫&#xff08;Web Scraping&#xff09;是一种从网站自动提取数据的技术。简单来说&am…...

ER 图 Entity-Relationship (ER) diagram 101 电子商城 数据库设计

起因&#xff0c; 目的: 客户需求, 就是要设计一个数据库。 过程&#xff0c; 关于工具: UI 设计&#xff0c;我最喜欢的工具其实是 Canva, 但是 Canva 没有合适的模板。我用的是 draw.io, 使用感受是&#xff0c;很垃圾。 各种快捷键不适应&#xff0c;箭头就是点不住&…...

JavaSE--IO流总览06:字符转换输入(输出)流: InputStreamReader ,OutputStreamWrite

IO流体系(学到哪扩展到哪)&#xff1a; 学习字符转换流的目的是为了什么&#xff1f; InputStreamReader---解决不同编码时字符流读取文本内容乱码的问题 OutPutStreamWrite---可以控制写出去的字符使用什么字符集编码 为什么会有乱码呢&#xff1f;因为读取的文件内容编码与…...

浙版传媒思迈特软件大数据分析管理平台建设项目正式启动

近日&#xff0c;思迈特软件与出版发行及电商书城领域的领军企业——浙江出版传媒股份有限公司&#xff0c;正式启动大近日&#xff0c;思迈特软件与出版发行及电商书城领域的领军企业——浙江出版传媒股份有限公司&#xff0c;正式启动大数据分析管理平台建设项目。浙版传媒相…...

漏洞——CVE简介

1、什么是CVE CVE (Common Vulnerabilities and Exposures)&#xff08;常见漏洞与暴露&#xff09;是一个标准化的命名系统&#xff0c;用于识别和描述公开披露的网络安全漏洞。CVE 的目的是为漏洞提供唯一的标识符&#xff0c;使安全专家、软件供应商和用户能够统一参考和讨…...

IT行业中的技术趋势与未来展望

IT行业中的技术趋势与未来展望 IT行业作为全球经济发展的重要引擎&#xff0c;正在以惊人的速度推动着科技进步与创新。随着技术的不断演进&#xff0c;一些新的趋势正悄然改变着我们的工作方式和生活方式。本文将探讨当前IT行业中的主要技术趋势以及未来展望&#xff0c;帮助…...

解决 webpack 配置 sass-loader后报错,无法正常build

1. 问题描述 总是打包build报错&#xff0c;本质上css样式语法也没写错在使用 sass-resources-loader 的项目中&#xff0c;开发者常常遇到构建错误或意外的样式行为&#xff0c;这是因为 sass-resources-loader 的作用和使用场景并不总是被正确理解。sass-resources-loader 主…...

CentOS中使用DockerCompose方式部署带postgis的postgresql(附kartoza/docker-postgis镜像下载)

场景 CentOS中使用Docker部署带postgis的postgresql&#xff1a; CentOS中使用Docker部署带postgis的postgresql_centos postgis插件在容器中如何安装-CSDN博客 上面使用Docker搜索和拉取kartoza/postgis时并没有任何限制。 当下如果不能科学上网时&#xff0c;大部分镜像源…...

初识elasticsearch

初识elasticsearch 1.什么是elasticsearch 一个开源的分布式搜索引擎&#xff0c;可以用来实现搜索、日志统计、分析、系统监控等功能&#xff1b;elasticsearch 是结合kibana、Logstash、Beats,也就是elastic stach(ELK)。被广泛应用在日志数据分析、实时监控等领域。 elastic…...

react hooks--React.memo

基本语法 React.memo 高阶组件的使用场景说明&#xff1a; React 组件更新机制&#xff1a;只要父组件状态更新&#xff0c;子组件就会无条件的一起更新。 子组件 props 变化时更新过程&#xff1a;组件代码执行 -> JSX Diff&#xff08;配合虚拟 DOM&#xff09;-> 渲…...

App端测——稳定性测试

稳定性测试项&#xff1a;Crash、ANR、OOM、内存泄漏 crash&#xff1a;应用崩溃&#xff0c;从提测后开始关注&#xff0c;monkey持续上报跟踪 ANR&#xff1a;系统无响应&#xff0c;使用低端机内存小的机型测试&#xff0c;及monkey中关注ANR问题。关于ANR详细&#xff1a…...

[数据结构与算法·C++] 笔记 1.4 算法复杂性分析

1.4 算法复杂性分析 算法的渐进分析 数据规模 n 逐步增大时, f(n)的增长趋势当 n 增大到一定值以后&#xff0c;计算公式中影响最大的就是 n 的幂次最高的项其他的常数项和低幂次项都可以忽略 大O表示法 函数f&#xff0c;g定义域为自然数&#xff0c;值域非负实数集定义: …...

Hive parquet表通过csv文件导入数据

1. background 已建好了 hive parquet 格式的表, 需要从服务器的csv导入数据至该hive表 2. step 提前上传csv至服务器 /path/temp.csv 创建 textfile 格式的中转表(这里使用内部表,方便删除) ,源表名dw_procurement.dwd_tc_comm_plant ,这里中转表加上了csv后缀 CREATE TA…...

C++ 构造函数最佳实践

文章目录 1. 构造函数应该做什么1.1 初始化成员变量1.2 分配资源1.3 遵循 RAII 原则1.4 处理异常情况 2. 构造函数不应该做什么2.1 避免做大量的工作2.2 不要在构造函数中调用虚函数2.3 避免在构造函数中执行复杂的初始化逻辑2.4 避免调用可能抛出异常的代码 3. 构造函数的其他…...

vscode里如何用git

打开vs终端执行如下&#xff1a; 1 初始化 Git 仓库&#xff08;如果尚未初始化&#xff09; git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql

智慧工地管理云平台系统&#xff0c;智慧工地全套源码&#xff0c;java版智慧工地源码&#xff0c;支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求&#xff0c;提供“平台网络终端”的整体解决方案&#xff0c;提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法

深入浅出&#xff1a;JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中&#xff0c;随机数的生成看似简单&#xff0c;却隐藏着许多玄机。无论是生成密码、加密密钥&#xff0c;还是创建安全令牌&#xff0c;随机数的质量直接关系到系统的安全性。Jav…...

屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!

5月28日&#xff0c;中天合创屋面分布式光伏发电项目顺利并网发电&#xff0c;该项目位于内蒙古自治区鄂尔多斯市乌审旗&#xff0c;项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站&#xff0c;总装机容量为9.96MWp。 项目投运后&#xff0c;每年可节约标煤3670…...

LOOI机器人的技术实现解析:从手势识别到边缘检测

LOOI机器人作为一款创新的AI硬件产品&#xff0c;通过将智能手机转变为具有情感交互能力的桌面机器人&#xff0c;展示了前沿AI技术与传统硬件设计的完美结合。作为AI与玩具领域的专家&#xff0c;我将全面解析LOOI的技术实现架构&#xff0c;特别是其手势识别、物体识别和环境…...

6.9-QT模拟计算器

源码: 头文件: widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QMouseEvent>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public QWidget {Q_OBJECTpublic:Widget(QWidget *parent nullptr);…...

机器学习的数学基础:线性模型

线性模型 线性模型的基本形式为&#xff1a; f ( x ) ω T x b f\left(\boldsymbol{x}\right)\boldsymbol{\omega}^\text{T}\boldsymbol{x}b f(x)ωTxb 回归问题 利用最小二乘法&#xff0c;得到 ω \boldsymbol{\omega} ω和 b b b的参数估计$ \boldsymbol{\hat{\omega}}…...

MySQL基本操作(续)

第3章&#xff1a;MySQL基本操作&#xff08;续&#xff09; 3.3 表操作 表是关系型数据库中存储数据的基本结构&#xff0c;由行和列组成。在MySQL中&#xff0c;表操作包括创建表、查看表结构、修改表和删除表等。本节将详细介绍这些操作。 3.3.1 创建表 在MySQL中&#…...

今日行情明日机会——20250609

上证指数放量上涨&#xff0c;接近3400点&#xff0c;个股涨多跌少。 深证放量上涨&#xff0c;但有个小上影线&#xff0c;相对上证走势更弱。 2025年6月9日涨停股主要行业方向分析&#xff08;基于最新图片数据&#xff09; 1. 医药&#xff08;11家涨停&#xff09; 代表标…...

【SSM】SpringMVC学习笔记7:前后端数据传输协议和异常处理

这篇学习笔记是Spring系列笔记的第7篇&#xff0c;该笔记是笔者在学习黑马程序员SSM框架教程课程期间的笔记&#xff0c;供自己和他人参考。 Spring学习笔记目录 笔记1&#xff1a;【SSM】Spring基础&#xff1a; IoC配置学习笔记-CSDN博客 对应黑马课程P1~P20的内容。 笔记2…...