简化部署流程:Rainbond让Jeepay支付系统部署更轻松

简介: 简化部署流程:Rainbond让Jeepay支付系统部署更轻松

在如今的开发环境中,部署一套像 Jeepay 这样的 Java 支付系统往往需要开发者面对繁琐的配置、依赖环境管理以及服务的高可用性保障,手动部署和运维变得异常艰巨和费时。然而,借助 Rainbond 这样的云原生 PaaS 平台,这一过程变得前所未有的简单。通过 Rainbond 的“点点点”式应用管理和自动化运维功能,开发者可以轻松完成 Jeepay 系统的部署,极大减少了传统的部署难度和复杂性,让你更专注于业务的快速迭代和创新。

本文将详细介绍如何通过 Rainbond 平台一步步部署 Jeepay 系统,无需复杂的配置,只需简单操作即可完成,帮助开发者快速构建一个稳定、安全的支付系统。

关于 Jeepay#
Jeepay是一套适合互联网企业使用的开源支付系统,支持多渠道服务商和普通商户模式。已对接微信支付,支付宝,云闪付官方接口,支持聚合码支付。Jeepay使用Spring Boot和Ant Design Vue开发,集成Spring Security实现权限管理功能,是一套非常实用的web开发框架。

项目特性#
支持多渠道对接,支付网关自动路由
已对接微信服务商和普通商户接口,支持V2和V3接口
已对接支付宝服务商和普通商户接口,支持RSA和RSA2签名
已对接云闪付服务商接口,可选择多家支付机构
提供http形式接口,提供各语言的sdk实现,方便对接
接口请求和响应数据采用签名机制,保证交易安全可靠
系统安全,支持分布式部署,高并发
管理端包括运营平台和商户系统
管理平台操作界面简洁、易用
支付平台到商户系统的订单通知使用MQ实现,保证了高可用,消息可达
支付渠道的接口参数配置界面自动化生成
使用spring security实现权限管理
前后端分离架构,方便二次开发
由原XxPay团队开发,有着多年支付系统开发经验
使用 Rainbond 开源应用商店部署 Jeepay#
首先需要在你的服务器上部署 Rainbond,只需一条命令即可完成部署,更多部署方式请参阅 Rainbond 部署文档。

curl -o install.sh https://get.rainbond.com && bash ./install.sh
部署完成后,进入 Rainbond 平台,选择通过应用市场部署,在开源应用商店中搜索Jeepay 并进行一键安装。

等待拓扑图中的组件颜色变为绿色,即可点击访问按钮访问 Jeepay。

Jeepay-ui-manager 是 Jeepay 运营平台,默认账号密码:jeepay/jeepay123
Jeepay-ui-merchant 是 Jeepay 商户系统,默认账号密码:账号在运营平台创建/密码为jeepay666

使用 Rainbond 源码部署 Jeepay#
本章节介绍如何在 Rainbond 上通过源代码部署 Jeepay。

中间件部署#
软件名称 版本 说明
Redis 3.2.8 分布式缓存,高版本也支持
MySQL 5.7 不低于5.7,支持8.0高版本
MQ ActiveMQ 或 RabbitMQ 或 RocketMQ 消息中间件
中间件准备:

Redis: 通过 Rainbond 应用商店搜索并部署,随意一个版本都可以。
MySQL: 通过Rainbond 应用商店搜索并部署,部署 8.0 以上的版本,部署后打开 MySQL 组件的对外端口,通过本地工具连接,初始化 Jeepay SQL。
MQ: 这里选择部署 RabbitMQ,有两种方式可选:
根据 Jeepay 提供的 Dockerfile 构建 RabbitMQ 并配置。
通过 Rainbond 应用商店把整套 Jeepay 部署下来,删除其他只保留 RabbitMQ(同样来自 Jeepay提供的Dockerfile构建)
部署 Jeepay 后端服务#
在部署之前需要修改 pom.xml 文件启动 RabbitMQ,jeepay-components/jeepay-components-mq/pom.xml


org.springframework.boot
spring-boot-starter-amqp

  • provided

  • 修改完成后,选择基于源码构建组件,填写 Git 相关信息

检测完成后进入多模块构建,选择可启动的模块并创建

切换到编辑模式,将后端服务都连接到中间件。

修改后端服务配置文件,根据 Jeepay 提供模版进行修改,只需修改对应连接中间件的信息即可。这里采用环境变量的方式,是因为在 Rainbond 上组件A依赖了组件B后,组件B的环境变量会被注入到组件A中,那么组件A就可以很灵活的连接后端服务。

https://gitee.com/jeequan/jeepay/tree/master/conf

spring:
datasource:

  • url: jdbc:mysql://${DB_HOST}:3306/${MYSQL_DATABASE}?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&allowPublicKeyRetrieval=true
    username: root
  • password: ${MYSQL_ROOT_PASSWORD}
    redis:
  • host: ${REDIS_HOST}
    port: 6379
    database: 2 #1库:运营平台 #2库:商户系统 #3库:支付网关
    timeout: 1000
    password:
    rabbitmq:
  • addresses: ${RABBITMQ_HOST}:5672
    username: admin
    password: admin
    dynamic: true
    virtual-host: jeepay
    mq:
  • vender: rabbitMQ
    环境变量可在组件的依赖信息中查看。

为各个组件挂载配置文件,在组件的环境配置下进行挂载,每个服务挂载它对应的配置文件即可。挂载路径都保持一致/app/application.yml

部署 Jeepay 前端服务#
前端服务目录结构

[kod.wgooo.net)
[kod.willawen.com)
[kod.xyzytv.com)
[kod.wqcycpms.com)
[kod.wnear.com)
[kod.xinceshi.net)
[kod.woimac.com)
[kod.yiwechat.com)
[kod.xiaobaiai.net)
jeepay-ui
├── jeepay-ui-cashier -- 聚合收银台项目
├── jeepay-ui-manager -- 运营平台web管理端
└── jeepay-ui-merchant -- 商户系统web管理端
通过源码部署 jeepay-ui-manager 前端项目,填写相关 Git 信息以及子目录

检测完成后选择 NodeJSStatic 语言,如下

Node版本选择 16.20.0 其他不变。

等待构建完成。jeepay-ui-merchant、jeepay-ui-cashier重复上述操作,只修改子目录路径即可。
建立前端到后端服务的依赖关系。

添加前端 Nginx 配置文件,3个前端服务都需要挂载配置文件,只是内容不同。

以下配置文件只需修改 proxy_pass 的地址,同样也可以像上述一样采用环境变量或者填写实际的后端服务的对内地址和端口。

jeepay-ui-manager

server {
listen 5000;

location / {
root /app/www;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
location /api/{
proxy_next_upstream http_502 http_504 error timeout invalid_header;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://${MANAGER_HOST}:9217;

# 启用支持websocket连接
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";

}
}

jeepay-ui-merchant

server {
listen 5000;

location / {
root /app/www;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
location /api/{
proxy_next_upstream http_502 http_504 error timeout invalid_header;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://${MERCHANT_HOST}:9218;

# 启用支持websocket连接
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";

}
}

jeepay-ui-cashier

server {
listen 5000;

location / {
root /app/www;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
location /api/{
proxy_next_upstream http_502 http_504 error timeout invalid_header;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://${PAYMENT_HOST}:9218;

# 启用支持websocket连接
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";

}
}
添加配置文件后更新组件。

到这就部署完成了,可以通过各个前端的对外地址进行访问,如遇问题可参考 Jeepay 文档进行排查。

最后#
通过上述步骤,我们已经成功在 Rainbond 平台上部署了 Jeepay 支付系统。借助 Rainbond,我们可以非常简单的部署应用和开发应用,使我们无需关心部署相关,只需关注代码即可。如果是第一次接触 Rainbond 的小伙伴上来就通过源码去部署 Jeepay 可能相对会懵懂一些,预计节后会录制一个通过源代码部署 Jeepay 的视频,大家可关注Rainbond B站账号动态。

相关文章
|
24天前
|
弹性计算 人工智能 架构师
阿里云携手Altair共拓云上工业仿真新机遇
2024年9月12日,「2024 Altair 技术大会杭州站」成功召开,阿里云弹性计算产品运营与生态负责人何川,与Altair中国技术总监赵阳在会上联合发布了最新的“云上CAE一体机”。
阿里云携手Altair共拓云上工业仿真新机遇
|
16天前
|
存储 关系型数据库 分布式数据库
GraphRAG:基于PolarDB+通义千问+LangChain的知识图谱+大模型最佳实践
本文介绍了如何使用PolarDB、通义千问和LangChain搭建GraphRAG系统,结合知识图谱和向量检索提升问答质量。通过实例展示了单独使用向量检索和图检索的局限性,并通过图+向量联合搜索增强了问答准确性。PolarDB支持AGE图引擎和pgvector插件,实现图数据和向量数据的统一存储与检索,提升了RAG系统的性能和效果。
|
20天前
|
机器学习/深度学习 算法 大数据
【BetterBench博士】2024 “华为杯”第二十一届中国研究生数学建模竞赛 选题分析
2024“华为杯”数学建模竞赛,对ABCDEF每个题进行详细的分析,涵盖风电场功率优化、WLAN网络吞吐量、磁性元件损耗建模、地理环境问题、高速公路应急车道启用和X射线脉冲星建模等多领域问题,解析了问题类型、专业和技能的需要。
2577 22
【BetterBench博士】2024 “华为杯”第二十一届中国研究生数学建模竞赛 选题分析
|
18天前
|
人工智能 IDE 程序员
期盼已久!通义灵码 AI 程序员开启邀测,全流程开发仅用几分钟
在云栖大会上,阿里云云原生应用平台负责人丁宇宣布,「通义灵码」完成全面升级,并正式发布 AI 程序员。
|
3天前
|
JSON 自然语言处理 数据管理
阿里云百炼产品月刊【2024年9月】
阿里云百炼产品月刊【2024年9月】,涵盖本月产品和功能发布、活动,应用实践等内容,帮助您快速了解阿里云百炼产品的最新动态。
阿里云百炼产品月刊【2024年9月】
|
2天前
|
存储 人工智能 搜索推荐
数据治理,是时候打破刻板印象了
瓴羊智能数据建设与治理产品Datapin全面升级,可演进扩展的数据架构体系为企业数据治理预留发展空间,推出敏捷版用以解决企业数据量不大但需构建数据的场景问题,基于大模型打造的DataAgent更是为企业用好数据资产提供了便利。
164 2
|
20天前
|
机器学习/深度学习 算法 数据可视化
【BetterBench博士】2024年中国研究生数学建模竞赛 C题:数据驱动下磁性元件的磁芯损耗建模 问题分析、数学模型、python 代码
2024年中国研究生数学建模竞赛C题聚焦磁性元件磁芯损耗建模。题目背景介绍了电能变换技术的发展与应用,强调磁性元件在功率变换器中的重要性。磁芯损耗受多种因素影响,现有模型难以精确预测。题目要求通过数据分析建立高精度磁芯损耗模型。具体任务包括励磁波形分类、修正斯坦麦茨方程、分析影响因素、构建预测模型及优化设计条件。涉及数据预处理、特征提取、机器学习及优化算法等技术。适合电气、材料、计算机等多个专业学生参与。
1576 16
【BetterBench博士】2024年中国研究生数学建模竞赛 C题:数据驱动下磁性元件的磁芯损耗建模 问题分析、数学模型、python 代码
|
22天前
|
编解码 JSON 自然语言处理
通义千问重磅开源Qwen2.5,性能超越Llama
击败Meta,阿里Qwen2.5再登全球开源大模型王座
978 14
|
4天前
|
Linux 虚拟化 开发者
一键将CentOs的yum源更换为国内阿里yum源
一键将CentOs的yum源更换为国内阿里yum源
221 2
|
17天前
|
人工智能 开发框架 Java
重磅发布!AI 驱动的 Java 开发框架:Spring AI Alibaba
随着生成式 AI 的快速发展,基于 AI 开发框架构建 AI 应用的诉求迅速增长,涌现出了包括 LangChain、LlamaIndex 等开发框架,但大部分框架只提供了 Python 语言的实现。但这些开发框架对于国内习惯了 Spring 开发范式的 Java 开发者而言,并非十分友好和丝滑。因此,我们基于 Spring AI 发布并快速演进 Spring AI Alibaba,通过提供一种方便的 API 抽象,帮助 Java 开发者简化 AI 应用的开发。同时,提供了完整的开源配套,包括可观测、网关、消息队列、配置中心等。
735 9