Syndra(Synergy(协同)+ Data(数据)) 是一个现代化的异构系统集成编排平台,专为多协议、多系统耦合而设计。通过配置服务和发布机制,实现不同厂商系统之间的最简化对接,为企业数字化转型提供强大的集成解决方案。
- 多协议支持: 支持 HTTP、SOAP、RPC、HL7 等多种通信协议
- 可视化工作流: 基于 Apache Camel 的图形化流程设计
- 实时监控: 完整的系统监控和日志追踪
- 安全可靠: 数据加密传输,权限精细化管理
- 扩展性强: 支持自定义组件和插件扩展
- React 19.2 - 现代化的用户界面框架
- Ant Design 6.x - 企业级 UI 组件库(采用零运行时,因此需要手动引入 antd/dist/antd.css,详情参考 {@link https://ant.design/docs/react/customize-theme-cn#zero-runtime})
- Ant Design Form使用是需要注意 - 6.0版本对Form进行了改造,如果其中的Form.Item使用了Space.Compace来包裹会出现通过form.setFieldsValue,表单数据不回显的问题,详情解决方案参考 {@link https://github.com/ant-design/ant-design/issues/56109}
- Vite(rolldown) - 快速的前端构建工具
- TypeScript - 类型安全的 JavaScript 超集
- Zustand - 轻量级状态管理
- Tanstack Router - 客户端路由管理
- TanStack Query - 强大的数据获取和缓存
- ECharts - 数据可视化图表库
- Sass - CSS 预处理器
- keepalive-for-react - react版keepalive(注意:不能升级到5.0.7,他与Tanstack Router搭配不是很好,升级了会出现content区域切换的时候刷新两次)
- Spring Boot 4.0.3 - 企业级 Java 应用框架
- JDK 25 - 最新的 Java 开发工具包
- Spring Security + JWT - 认证授权框架
- MyBatis-Flex - 灵活的 ORM 框架
- Apache Camel 4.18 - 企业集成模式框架
- Redis - 缓存实现与分布式锁
- PostgreSQL - 关系型数据库
- Bun - 快速的 JavaScript 运行时和包管理器
- Biome - 快速的代码格式化和检查工具
- Tailwind CSS - 实用优先的 CSS 框架
Syndra 平台深度集成 Apache Camel,作为核心的数据交互引擎:
graph TB
A[前端界面] --> B[API Gateway]
B --> C[Spring Boot 后端]
C --> D[Apache Camel 路由引擎]
D --> E[多种协议适配器]
E --> F[外部系统]
E --> G[HTTP/HTTPS]
E --> H[SOAP Web Services]
E --> I[RPC 调用]
E --> J[文件传输]
E --> K[数据库连接]
E --> L[消息队列]
- HTTP/HTTPS: RESTful API 和 Web 服务调用
- SOAP: Web 服务集成
- File: 文件传输和处理
- FTP/SFTP: 文件传输协议
- Database: 数据库连接和操作
- JMS/AMQP: 消息队列集成
- Timer: 定时任务调度
- Mail: 邮件服务集成
- 自定义组件: 支持业务特定的集成需求
@Component
public class IntegrationRoute extends RouteBuilder {
@Override
public void configure() throws Exception {
// HTTP 到数据库的集成路由
from("direct:http-to-db")
.log("接收到 HTTP 请求: ${body}")
.transform().jsonpath("$.data")
.to("sql:INSERT INTO integration_log (data, timestamp) VALUES (:#data, :#timestamp)")
.setBody(constant("数据已成功处理"));
// 定时数据同步
from("timer:sync?period=30000")
.to("sql:SELECT * FROM source_table WHERE updated_at > :#lastSync")
.split(body())
.to("http4://target-system/api/sync")
.log("同步完成: ${body}");
}
}syndra-admin/
├── src/
│ ├── components/ # 通用组件
│ │ ├── base/ # 基础组件
│ │ ├── CodeEditor/ # 代码编辑器
│ │ ├── workflow/ # 工作流组件
│ │ └── ...
│ ├── views/ # 页面视图
│ │ ├── dashboard/ # 仪表板
│ │ ├── integrated/ # 集成管理
│ │ ├── system/ # 系统管理
│ │ └── ...
│ ├── services/ # API 服务
│ ├── stores/ # 状态管理
│ ├── utils/ # 工具函数
│ └── types/ # 类型定义
├── public/ # 静态资源
├── images/ # 项目截图
└── docs/ # 文档
- Node.js: >= 22.12.0
- Bun: 最新版本
- Java: JDK 25
- 数据库: PostgreSQL 13+
# 使用 Bun 安装依赖
bun install# 启动前端开发服务器
bun run dev# 构建生产版本
bun run build
# 预览生产构建
bun run preview项目支持多环境配置,通过 .env 文件进行配置:
# 开发环境
VITE_API_BASE_URL=http://localhost:9193
VITE_APP_TITLE=Syndra Admin
# 生产环境
VITE_API_BASE_URL=https://xxx.xxx.com
VITE_APP_TITLE=Syndra 集成平台开发环境已配置 API 代理,将 /api 请求代理到后端服务:
// vite.config.ts
server: {
port: 8000,
proxy: {
'/api': {
target: 'http://localhost:9193',
changeOrigin: true,
rewrite: (path) => path.replace(/^\/api/, ''),
},
},
}- 传输加密: 所有 API 请求使用 HTTPS 加密传输(生产环境下)
- 数据加密: 敏感数据使用 AES 加密存储
- 密码加密: 用户密码使用 BCrypt 加密
- RBAC 模型: 基于角色的访问控制
- 菜单权限: 动态菜单权限控制
- 接口权限: API 接口级别的权限验证
- 实时监控: 系统运行状态实时监控
- 性能指标: CPU、内存、磁盘使用率监控
- 业务指标: 集成流程执行统计
- 操作日志: 用户操作行为记录
- 系统日志: 系统运行日志
- 错误日志: 异常和错误信息记录
- 审计日志: 数据变更审计记录
# Dockerfile
FROM node:22-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN bun install
COPY . .
RUN bun run build
FROM nginx:alpine
COPY --from=builder /app/dist /usr/share/nginx/html
COPY nginx.conf /etc/nginx/nginx.conf
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]# 构建生产版本
bun run build:prod
# 部署到服务器
rsync -av dist/ user@server:/var/www/syndra-admin/我们欢迎社区贡献!请遵循以下步骤:
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启 Pull Request
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。
- 项目主页: GitHub Repository
- 问题反馈: Issues
- 文档: Wiki
- 支持更多 Apache Camel 组件
- 增强工作流可视化编辑器
- 添加更多数据源连接器
- 完善监控和告警功能
- AI 辅助集成配置
- MQ实现消息削峰
- 多租户支持
- 国际化支持
⭐ 如果这个项目对您有帮助,请给我们一个 Star!
Made with ❤️ by Syndra Team











