XxPay刷脸支付系统使用Java开发,RPC服务使用Dubbo,可分布式部署。前期业务量小或对系统可用性要求不是很高,可单点部署,后期随着业务量增长,再通过横向扩展进行分布式部署。
推荐购买阿里云ECS服务器,建议不低于以下配置:
操作系统 |
CPU |
内存 |
带宽 |
硬盘 |
开放端口 |
Linux CentOS 7.X |
4核 |
8G |
2M(或弹性) |
40G |
80、443、22 |
系统服务端使用Java开发,部署时需要提前安装好以下软件:
软件 |
版本 |
说明 |
JDK |
1.8 |
Java运行依赖环境 |
ActiveMQ |
5.15.8 |
消息中间件 |
Redis |
3.2.8 |
缓存使用 |
Zookeeper |
3.4.6 |
服务注册中心 |
MySQL |
5.7.X |
数据库,推荐使用阿里云RDS数据库 |
Nginx |
1.14.1 |
负载均衡、反向代理 |
以上软件的安装,有更详细的安装步骤,可参考另一篇文章。
连接Mysql,创建数据库:xxpaydb,创建用户:xxpay,并为该用户赋权限。
执行项目根目录下的inti.sql文件,完成表结构创建及初始化数据。
可通过本地开发工具(建议Idea)或Jenkins完成项目的编译打包,打包后会在target目录下生成一个.tar.gz结尾的文件(如 xxpay-isv-bin.tar.gz),将文件上传至服务器,然后执行bin目录下的启动脚本即可。以下为最佳实践,仅供参考。
编译前需修改配置文件,Zookeeper、ActiveMQ、Redis、Mysql主从库等配置。
在服务器创建用户xxpay,然后在/home/xxpay下创建service目录。将编译后的:
xxpay-manage-bin.tar.gz
xxpay-isv-bin.tar.gz
xxpay-agent-bin.tar.gz
xxpay-merchant-bin.tar.gz
xxpay-member-bin.tar.gz
xxpay-pay-bin.tar.gz
xxpay-task-bin.tar.gz
上传至service目录下,解压后分别执行项目下的启动脚本,如xxpay-manage的启动命令:
cd /home/xxpay/xxpay-manage/bin
sh ./app.sh start
其他模块参考启动即可,启动后项目可通过IP+端口形式访问(云服务器需开通端口号才可以访问)。
项目需要域名访问,需要将域名做解析到服务器公网IP,一般需解析如下域名(如域名为: xxpay.vip):
mgr.xxpay.vip,isv.xxpay.vip,agent.xxpay.vip,mch.xxpay.vip,mbr.xxpay.vip,pay.xxpay.vip
在Nginx中做好域名绑定,如果https访问,可申请域名ssl证书,在nginx中配置即可。
一般是由于mysql 的 sql-mode设置,在linux下修改msyql配置,修改my.cnf文件,一般在/etc/my.cnf
在 [mysqld] 中增加下述语句
sql-mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
或者将已有sql-mode修改上述语句
将 explicit_defaults_for_timestamp = true 注释掉 或者修改fase
explicit_defaults_for_timestamp = false
然后重启mysql即可。
需要去官方下载JCE无限制权限策略文件。
JDK8的下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html
下载后解压,可以看到local_policy.jar和US_export_policy.jar以及readme.txt
将两个jar文件也放到%JDK_HOME%\jre\lib\security目录下覆盖原来文件。
📎local_policy.jar📎US_export_policy.jar
这是的两个附件是jdk1.8对应的,可直接使用。
3. 预制二维码出现 口口口口 异常时
是由于服务端未安装中文字体导致。
将SimSun.ttc的字体文件拷贝到新建的%JAVA_HOME%/jre/lib/fonts/fallback目录下, 重启项目即可。
字体文件已上传到代码目录:【 /fonts/宋体.7z】 压缩包内包含中文字体文件和说明文档。