HP-SOA
HP-SOA - 功能完备,简单易用,高度可扩展的Java微服务框架。现已支持spring cloud和dubbo微服务架构,劳烦大家加星支持~
另外还有大量DEMO以供开发者参考
@全体成员
HP-SOA - 功能完备,简单易用,高度可扩展的Java微服务框架。现已支持spring cloud和dubbo微服务架构,劳烦大家加星支持~
https://github.com/ldcsaa/hp-soa
https://gitee.com/ldcsaa/hp-soa
技术架构
技术集成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(支持多实例,支持可靠消息)消息队列: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-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)
<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>
[*]修改应用配置(参考 Demo hp-demo-bff-basic 的本地配置文件 ,配置中心的远程配置文件),主要配置项:
[*]hp.soa.web
[*]spring.cloud (Spring Cloud 项目)
[*]dubbo (Dubbo 项目)
[*]server
[*]spring
[*]management
[*]springdoc
[*]修改全局配置(可选)
[*]系统配置文件,用于设置系统属性,默认配置文件:/opt/hp-soa/config/system-config.properties 参考:system-config.properties
[*]扩展配置文件,用于配置注册中心地址、配置中心地址等公共属性,默认配置文件:/opt/hp-soa/config/extended-config.properties 参考:extended-config.properties
[*]实现 HTTP 鉴权接口(可选)
[*]如果是 Gateway/BFF 应用,并且应用属性 hp.soa.web.access-verification.enabled = true,则需要实现 AccessVerificationService 接口,用于 HTTP 请求鉴权。
[*]启动应用
[*]以 io.github.hpsocket.soa.framework.web.server.main.AppStarter 作为启动类,启动应用程序。
[*]JVM 启动参数参考:JVM 启动参数示例
支持支持:) 出Java微服务框架啦:) 感谢分享 支持一下,论坛的新皮肤好丑啊:dizzy: 支持一下,论坛的新皮肤好丑:lol 多谢分享,我也来看看
页:
[1]