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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 简化部署流程: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站账号动态。

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
消息中间件 前端开发 安全
简化部署流程:Rainbond让Jeepay支付系统部署更轻松
在如今的开发环境中,部署一套像 Jeepay 这样的 Java 支付系统往往需要开发者面对繁琐的配置、依赖环境管理以及服务的高可用性保障,手动部署和运维变得异常艰巨和费时。然而,借助 Rainbond 这样的云原生 PaaS 平台,这一过程变得前所未有的简单。通过 Rainbond 的“点点点”式应用管理和自动化运维功能,开发者可以轻松完成 Jeepay 系统的部署,极大减少了传统的部署难度和复杂性,让你更专注于业务的快速迭代和创新。 本文将详细介绍如何通过 Rainbond 平台一步步部署 Jeepay 系统,无需复杂的配置,只需简单操作即可完成,帮助开发者快速构建一个稳定、安全的支付系统
简化部署流程:Rainbond让Jeepay支付系统部署更轻松
|
6月前
|
Kubernetes 监控 负载均衡
Istio:微服务开发的终极利器,你还在为繁琐的通信和部署流程烦恼吗?
本文介绍了服务网格(Service Mesh)的概念及其在微服务架构中的重要性。微服务强调围绕业务构建团队和去中心化的数据管理,带来更高的灵活性和扩展性。然而,随着服务数量增加,网络通信成为挑战,包括服务发现、路由和安全等问题。 Service Mesh如Istio应运而生,通过边车代理解决服务间通信,提供服务发现、负载均衡、智能路由、安全和监控等功能。它与Kubernetes结合,增强了容器环境的服务管理能力。Istio的bookinfo示例展示了其在多语言微服务中的应用,简化了代码中的服务调用逻辑,使开发更专注于业务本身。
759 3
Istio:微服务开发的终极利器,你还在为繁琐的通信和部署流程烦恼吗?
|
Cloud Native jenkins 测试技术
Jenkins自动化:简化部署流程
Jenkins自动化:简化部署流程
124 0
|
7月前
|
开发工具 git 开发者
企业级项目代码管理流程
使用Sourcetree(是一个Gui图形化用户界面,全拼Graph User interface)来进行操作
266 0
|
数据可视化 IDE BI
如何实现软件的快速交付与部署?
如何实现软件的快速交付与部署?
136 0
|
安全 网络协议 Java
IDEA 集成 Docker 插件实现一键远程部署 SpringBoot 应用,无需三方依赖,开源微服务全栈有来商城线上部署方式
IDEA 集成 Docker 插件实现一键远程部署 SpringBoot 应用,无需三方依赖,开源微服务全栈有来商城线上部署方式
|
存储 安全 区块链
  DAPP趣步模式系统开发部署
虽然有很多人看好区块链技术,但也要看到推动人类发展的技术有很多种,哪种技术更方便更高效,人们就会应用该技术。
|
前端开发 Java 开发工具
从0到1构建,一个SpringBoot对接支付宝沙箱环境案例
首先,看这篇文章的小伙伴肯定具有Springboot的基础以及更为深刻的技术功底; 其次,这篇文章主要是作为个人笔记学习之用,记录自己从0到1构建出一个完整的支付环境,方便后期个人项目整合的时候用得到。如果有总结的不对的地方,希望技术大佬给予指正,我会马上修改。 默认您有以下的知识或者技术功底:
|
弹性计算 Linux Windows
轻松复用你搭建好的环境和应用——镜像管理
轻松复用你搭建好的环境和应用——镜像管理自制脑图, 介绍了镜像的作用,如何创建镜像,复制、共享与导入镜像,使用云市场镜像。
146 0
轻松复用你搭建好的环境和应用——镜像管理
|
区块链
去中心化社区治理代币模式DAO系统开发部署详细教程
去中心化社区治理代币模式DAO系统开发部署详细教程