{"id":20243912,"url":"https://github.com/ldcsaa/hp-soa","last_synced_at":"2025-04-07T15:10:44.923Z","repository":{"id":177230746,"uuid":"660127209","full_name":"ldcsaa/hp-soa","owner":"ldcsaa","description":"A fully functional, easy-to-use, and highly scalable microservice framework","archived":false,"fork":false,"pushed_at":"2025-03-31T00:00:48.000Z","size":91767,"stargazers_count":88,"open_issues_count":0,"forks_count":9,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-03-31T00:18:10.388Z","etag":null,"topics":["configuration-center","distributed-systems","dubbo","easy-to-use","high-scalability","java","logging","metrics","microservice","microservice-framework","microservices","microservices-framework","nacos","prometheus-metrics","solutions-architect","spring-boot","spring-cloud","springboot","springcloud","tracing"],"latest_commit_sha":null,"homepage":"https://github.com/ldcsaa/hp-soa","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ldcsaa.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-06-29T09:54:51.000Z","updated_at":"2025-03-22T02:08:28.000Z","dependencies_parsed_at":null,"dependency_job_id":"9c75b252-18d3-485c-b6e3-88fecd952474","html_url":"https://github.com/ldcsaa/hp-soa","commit_stats":null,"previous_names":["ldcsaa/hp-soa"],"tags_count":32,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ldcsaa%2Fhp-soa","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ldcsaa%2Fhp-soa/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ldcsaa%2Fhp-soa/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ldcsaa%2Fhp-soa/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ldcsaa","download_url":"https://codeload.github.com/ldcsaa/hp-soa/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247675607,"owners_count":20977378,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["configuration-center","distributed-systems","dubbo","easy-to-use","high-scalability","java","logging","metrics","microservice","microservice-framework","microservices","microservices-framework","nacos","prometheus-metrics","solutions-architect","spring-boot","spring-cloud","springboot","springcloud","tracing"],"created_at":"2024-11-14T09:10:09.870Z","updated_at":"2025-04-07T15:10:44.898Z","avatar_url":"https://github.com/ldcsaa.png","language":"Java","readme":"![HP-SOA](misc/doc/images/HP-SOA.png \"HP-SOA\")\n\n---\n\n#  HP-SOA\n功能完备，简单易用，高度可扩展的Java微服务框架。\n\n【[快速开始](misc/doc/user_guide.md)】\n\n### 技术架构\n![技术架构](misc/doc/images/Technical-Architecture.png)\n\n### 技术集成\n- Web服务框架：spring-boot 3.x\n- 微服务框架：spring-cloud 4.x\n- 微服务框架：Dubbo 3.x\n- 服务注册中心：Nacos\n- 配置中心：Nacos\n- 服务治理中心：Dubbo Admin\n- 流量控制中心：Sentinel Dashboard + Nacos\n- 数据库：MySQL、mybatis-plus（支持多数据源）\n- 缓存：Redis + Redisson（支持多实例）\n- NoSQL数据库：MongoDB\n- 搜索引擎：Elasticsearch\n- 消息总线：RabbitMQ（支持多实例、可靠消息、Stream 消息）\n- 消息队列：RocketMQ（支持多顺序消息、延时消息、事务消息）\n- 消息队列：Kafka（支持可靠消息）\n- MQTT发布订阅：Eclipse PAHO mqttv5\n- 分布式Job：xxl-job\n- 分布式Job：snail-job\n- 轻量级Job：Redisson + Spring Scheduled\n- 分布式事务：Seata\n- 全局ID：Leaf（支持 Snowflake ID 和 Segment ID）\n- 统一日志：Log4j + Kafka + ELK\n- 调用链跟踪：Skywalking\n- 监控告警：Prometheus + Grafana + Alert Manager\n\n### 模块说明\n- **[hp-soa-dependencies](hp-soa-dependencies)** 依赖管理模块，定义依赖包及其版本\n- **[hp-soa-framework-core](hp-soa-framework/hp-soa-framework-core)** 基础模块，定义 HP-SOA 基础组件和工具\n- **[hp-soa-framework-web](hp-soa-framework/hp-soa-framework-web)** Web应用模块，集成 spring-boot，提供核心Web服务功能\n- **[hp-soa-framework-leaf](hp-soa-framework/hp-soa-framework-leaf)** Leaf全局ID模块，基于Leaf，提供分布式全局ID功能\n- **[hp-soa-framework-gelf](hp-soa-framework/hp-soa-framework-gelf)** GELF日志模块，提供TCP、UDP、HTTP、Redis、Kafka等远程日志传输功能\n- **[hp-soa-framework-util](hp-soa-framework/hp-soa-framework-util)** 工具包模块，提供文件处理、邮件、远程访问等组件和工具\n- **[hp-soa-starter-web](hp-soa-starter/hp-soa-starter-web)** Web应用启动器，配置并启动应用服务，所有 HP-SOA 项目都必须引入该启动器\n- **[hp-soa-starter-web-cloud](hp-soa-starter/hp-soa-starter-web-cloud)** Spring Cloud 启动器，开启 Spring Cloud 微服务功能，所有 Spring Cloud 微服务项目都必须引入该启动器\n- **[hp-soa-starter-web-dubbo](hp-soa-starter/hp-soa-starter-web-dubbo)** Dubbo启动器，开启Dubbo微服务功能，所有 Dubbo 微服务项目都必须引入该启动器\n- **[hp-soa-starter-task](hp-soa-starter/hp-soa-starter-task)** Task启动器，开启 Spring Task 功能，并为 Spring Task 提供日志关联和调用链跟踪能力\n- **[hp-soa-starter-nacos](hp-soa-starter/hp-soa-starter-nacos)** Nacos配置中心启动器，开启配置中心功能，应用程序可以从远程配置中心加载配置\n- **[hp-soa-starter-data-mysql](hp-soa-starter/hp-soa-starter-data-mysql)** MySQL启动器，开启MySQL数据库访问功能，并提供动态数据源、数据源监控和全局事务管理等能力\n- **[hp-soa-starter-data-redis](hp-soa-starter/hp-soa-starter-data-redis)** Redis启动器，开启Redis访问功能，支持多Redis实例，支持Spring Cache\n- **[hp-soa-starter-data-mongodb](hp-soa-starter/hp-soa-starter-data-mongodb)** MongoDB启动器，开启MongoDB访问功能，支持通过 Spring Data 接口方式访问MongoDB\n- **[hp-soa-starter-data-elasticsearch](hp-soa-starter/hp-soa-starter-data-elasticsearch)** Elasticsearch启动器，开启Elasticsearch访问功能，支持通过 Spring Data 接口方式访问Elasticsearch\n- **[hp-soa-starter-rabbitmq](hp-soa-starter/hp-soa-starter-rabbitmq)** Rabbitmq启动器，开启Rabbitmq访问功能，支持多Rabbitmq实例，提供可靠消息实施方案以及消息跟踪能力\n- **[hp-soa-starter-rocketmq](hp-soa-starter/hp-soa-starter-rocketmq)** Rocketmq启动器，开启Rocketmq访问功能，支持多Rocketmq实例，提供可靠消息实施方案以及消息跟踪能力\n- **[hp-soa-starter-kafka](hp-soa-starter/hp-soa-starter-kafka)** Kafka启动器，开启Kafka访问功能，提供可靠消息实施方案以及消息跟踪能力\n- **[hp-soa-starter-mqtt](hp-soa-starter/hp-soa-starter-mqtt)** MQTT启动器，开启MQTT发布订阅功能，全面支持mqttv5协议\n- **[hp-soa-starter-job-exclusive](hp-soa-starter/hp-soa-starter-job-exclusive)** 轻量级Job启动器，开启轻量级排他Job功能，提供Job执行日志关联和调用链跟踪能力\n- **[hp-soa-starter-job-xxljob](hp-soa-starter/hp-soa-starter-job-xxljob)** Xxl-Job启动器，开启 Xxl-Job 功能，结合 xxl-job-admin 提供分布式Job能力\n- **[hp-soa-starter-job-snailjob](hp-soa-starter/hp-soa-starter-job-snailjob)** Snail-Job启动器，开启 Snail-Job 功能，结合 snail-job-server 提供分布式Job能力\n- **[hp-soa-starter-leaf](hp-soa-starter/hp-soa-starter-leaf)** Leaf全局ID启动器，开启Leaf全局ID功能，支持通过Snowflake算法和Segment算法生成全局ID\n- **[hp-soa-starter-seata](hp-soa-starter/hp-soa-starter-seata)** Seata启动器，开启Seata分布式事务功能，结合 Seata TC 提供分布式事务能力\n- **[hp-soa-starter-sentinel](hp-soa-starter/hp-soa-starter-sentinel)** Sentinel启动器，开启Sentinel流量控制功能，结合 Sentinel Dashboard 和 Nacos 提供流量控制和流控规则持久化能力\n- **[hp-soa-starter-skywalking](hp-soa-starter/hp-soa-starter-skywalking)** Skywalking启动器，开启Skywalking调用链跟踪功能，结合 Skywalking Agent 和 Skywalking Server 提供调用链跟踪能力\n\n### 应用接入（参考：[hp-demo](hp-demo/)）\n\n1. pom.xml 中添加 HP-SOA 依赖\n\n```xml\n\u003cdependencyManagement\u003e\n    \u003cdependencies\u003e\n        \u003c!-- 添加 hp-soa 依赖管理 --\u003e\n        \u003cdependency\u003e\n            \u003cgroupId\u003eio.github.hpsocket\u003c/groupId\u003e\n            \u003cartifactId\u003ehp-soa-dependencies\u003c/artifactId\u003e\n            \u003cversion\u003e${hp-soa.version}\u003c/version\u003e\n            \u003ctype\u003epom\u003c/type\u003e\n            \u003cscope\u003eimport\u003c/scope\u003e\n        \u003c/dependency\u003e\n    \u003c/dependencies\u003e\n\u003c/dependencyManagement\u003e\n\n\u003cdependencies\u003e\n    \u003c!-- 普通项目引用 hp-soa-starter-web --\u003e\n    \u003cdependency\u003e\n        \u003cgroupId\u003eio.github.hpsocket\u003c/groupId\u003e\n        \u003cartifactId\u003ehp-soa-starter-web\u003c/artifactId\u003e\n    \u003c/dependency\u003e\n    \u003c!-- Spring Cloud 项目引用 hp-soa-starter-web-cloud --\u003e\n    \u003c!--\n    \u003cdependency\u003e\n        \u003cgroupId\u003eio.github.hpsocket\u003c/groupId\u003e\n        \u003cartifactId\u003ehp-soa-starter-web-cloud\u003c/artifactId\u003e\n    \u003c/dependency\u003e\n    --\u003e\n    \u003c!-- Dubbo 项目引用 hp-soa-starter-web-dubbo --\u003e\n    \u003c!--\n    \u003cdependency\u003e\n        \u003cgroupId\u003eio.github.hpsocket\u003c/groupId\u003e\n        \u003cartifactId\u003ehp-soa-starter-web-dubbo\u003c/artifactId\u003e\n    \u003c/dependency\u003e\n    --\u003e\n    \u003c!-- 根据项目需要，引用其它 hp-soa starter --\u003e\n    \u003cdependency\u003e\n        \u003cgroupId\u003eio.github.hpsocket\u003c/groupId\u003e\n        \u003cartifactId\u003ehp-soa-starter-xxx\u003c/artifactId\u003e\n    \u003c/dependency\u003e\n\u003c/dependencies\u003e\n```\n\n2. 修改应用配置（参考 Demo [hp-demo-bff-basic](hp-demo/hp-demo-bff-basic) 的[本地配置文件](hp-demo/hp-demo-bff-basic/src/main/resources/bootstrap.yml) ，配置中心的[远程配置文件](misc/nacos/config/namespace-DEV/GLOBAL_GROUP)），主要配置项：\n    - hp.soa.web\n    - spring.cloud (Spring Cloud 项目)\n    - dubbo (Dubbo项目)\n    - server\n    - spring\n    - management\n    - springdoc\n    \n3. 修改全局配置（可选）\n    - 系统配置文件，用于设置系统属性，默认配置文件：`/opt/hp-soa/config/system-config.properties`参考：[system-config.properties](misc/opt/hp-soa/config/system-config.properties)\n    - 扩展配置文件，用于配置注册中心地址、配置中心地址等公共属性，默认配置文件：`/opt/hp-soa/config/extended-config.properties`参考：[extended-config.properties](misc/opt/hp-soa/config/extended-config.properties)\n    \n4. 实现 HTTP 鉴权接口（可选）\n    - 如果是Gateway/BFF应用，并且应用属性`hp.soa.web.access-verification.enabled = true`，则需要实现[AccessVerificationService](hp-soa-framework/hp-soa-framework-web/src/main/java/io/github/hpsocket/soa/framework/web/service/AccessVerificationService.java)接口，用于HTTP请求鉴权。\n    \n5. 启动应用\n    - 以[io.github.hpsocket.soa.framework.web.server.main.AppStarter](hp-soa-framework/hp-soa-framework-web/src/main/java/io/github/hpsocket/soa/framework/web/server/main/AppStarter.java)作为启动类，启动应用程序。\n    - JVM启动参数参考：[JVM启动参数示例](misc/jvm/java-opts.txt)\n\n---\n\n[[用户指南](misc/doc/user_guide.md)]\n\n#### 技术交流\n\n- *[怪兽乐园①群](https://jq.qq.com/?_wv=1027\u0026k=3UAbrhTG)*\n- *[怪兽乐园②群](https://jq.qq.com/?_wv=1027\u0026k=uYBpc6bG)*","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fldcsaa%2Fhp-soa","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fldcsaa%2Fhp-soa","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fldcsaa%2Fhp-soa/lists"}