在如今的開發環境中,部署一套像 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
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
- <scope>provided</scope>
+ <!-- <scope>provided</scope> -->
</dependency>
- 修改完成後,選擇基於源碼構建組件,填寫 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 前端服務
前端服務目錄結構
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站賬號動態。