# rfid-cloud-framework
**Repository Path**: yalikwang/rfid-cloud-framework
## Basic Information
- **Project Name**: rfid-cloud-framework
- **Description**: No description available
- **Primary Language**: Java
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2024-02-05
- **Last Updated**: 2025-06-27
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
阿法迪云平台
# 架构简述
阿法迪云平台采用国内流行的开源技术,以微服务、容器化、devops为云原生基座,建设数据中台、集中中台和基础服务中台,助力网借云、elib5.0、文博云等业务产
品发展,形成一横多纵的技术格局。

本系统主要聚焦在微服务架构上,在技术方案选择上,平台以Spring为框架核心,集成Redis、nacos、Rocketmq、gateway、Elasticsearch等主流中间件和框架,
构建起微服务的主体架构。

针对产品的多租户诉求,系统在框架层实现流量识别、租户透传和资源隔离等高级特性,业务模块无须关注多租户技术实现。
* 流量识别:识别客户端的请求属于哪个租户,系统采用的是基于域名的识别。租户合法域名需要在租户管理中心定义并同步至配置中心。
* 租户透传:租户标识在不同服务节点、中间件之间进行传递,主要包含内部rpc调用、消息队列、外部系统对接。内部rpc使用的是feign框架,所以将租户标识存放在http header中,
消息数据的租户标识放在消息头中,外部系统目前暂定为http header携带。
* 资源隔离:租户之间计算资源共享,此处主要指数据隔离,涉及到缓存隔离、ES文档隔离、消息隔离、数据库数据隔离几个方面。其中除了数据库,其余全部采用逻辑隔离。
数据库数据隔离采用的是基于Schema的隔离模式,支持共享数据库、独立数据库、异构数据库等多种隔离模式,满足公有云混合云等场景。
# quickStart
## 云平台框架开发环境搭建
环境要求 java8
git clone http://58.33.104.58:30406/rfid-cloud/rfid-cloud-framework.git
IDEA 打开该工程
(忽略单元测试)执行maven install
# elib5.0开发环境搭建
环境要求 java8
git clone http://58.33.104.58:30406/rfid-cloud/rfid-cloud-elib5.git
IDEA打开该工程
# 启动网关、system、infra服务
在云平台工程下,打开网关子模块(rfid-gateway),修改bootstrap.yaml中spring.profiles.active为local,
打开bootstrap-local.yaml,修改spring.cloud.nacos.discovery.group为一个唯一值,比如YalikWang、geKun等,
用于和其他环境作区分, 解决不同网络环境下的服务调用不通问题。
system、infra模块修改如上。
启动GatewayServerApplication、InfraServerApplication、SystemServerApplication
# 启动elib5.0后台应用
在elib5.0工程下,打开rfid-cloud-elib5-starter
修改bootstrap-dev.yaml中spring.profiles.active为local
打开bootstrap-local.yaml,修改spring.cloud.nacos.discovery.group为一个唯一值,比如YalikWang、geKun等,
用于和其他环境作区分,解决不同网络环境下的服务调用不通问题。
启动Elib5ApplicationStarter
# 其他
如果不想在本机启动多个服务,可以在公司内网部署好公共服务(system、infra、gateway),
将spring.cloud.nacos.discovery.group设置为一个唯一值,比如wuhan或者shanghai,
用于 和其他网络环境区分。
内网公共环境调试的时候,可以通过tag值来做优先路由,这里需要前端配合。
# 全套环境搭建
## 配置中心
nacos中新建rfid-cloud命名空间,需要上传到nacos中的配置文件:
* application-common.yaml(请一定注意dataId一定要有文件后缀)
* env-common.yaml(请一定注意dataId一定要有文件后缀)
* rfid-module-system/rfid-module-system-biz/src/main/resources/rfid-cloud-system.yaml
* rfid-module-infra/rfid-module-infra-biz/src/main/resources/rfid-cloud-infra.yaml
* rfid-gateway/src/main/resources/rfid-cloud-gateway.yaml
## 租户设置
在租户管理中心中创建租户rfid,进行租户应用授权后,配置租户应用数据源信息,点击租户上线。具体参考租户管理中心说明文档。
## 数据库
准备postgresql数据库,版本暂无要求。创建数据库rfid,在数据库下创建模式rfid-cloud-system,在该模式下执行sql/postgresql/rfid-cloud.sql。
## 启动应用
依次启动如下应用
* SystemServerApplication
* InfraServerApplication
* GatewayServerApplication