第三方平台对接
1.1 获取授权
授权方式:
方式一:成为第三方服务商 https://developer.walmart.com/doc/us/mp/us-mp-authorize/ (可行性较低)
方式二:线下直接获取卖家clientId,clientSecret(卖家后台可以看到)(目前采用)
1.2 同步订单
1.3 部署流程(手动):
1、将项目打成jar包以及Dockefile文件后上传至目标服务器;
2、构建docker镜像
3、构建docker容器
4、运行容器
(2,3,4步写成shell脚本,在服务器上运行脚本即可完成部署)
线上问题复盘
问题1:
原有的issues表中没有添加ai_platform字段,导致程序报错,影响后续流程。
分析1:
缺少数据迁移文件。
我扒了我所有的提交记录,发现自己并没有提交修改表的migrate文件!
修改表的正规操作:
- 1、先通过命令创建migrate文件;
例:generate migration AddAiPlatformToIssues ai_platform:string
- 2、编辑migrate文件
- 3、执行
db:migrate
命令后才会真正修改数据库
注意点:
- 提交代码时,一定要提交migrate文件!!!
- 不要通过图形工具直接去修改数据库中的表!!!
线上与我相关的相关的问题大致就以上这点,因为主要的流程并不在我这里。
开发问题复盘
问题1:
网络访问问题:本地测试的好好的,一部署就出问题?
分析1:
部署在AWS上的服务器之间都是通过内网访问的,通过外网访问不到!!
而在本地的办公网络访问不到内网,只能用外网ip做测试。
例如:在服务器上发起http请求
这种网络访问的问题之前确实没遇到过,之前的工作只有crud,写写对外的接口,在提供对内调用的接口时确实要注意内外网的问题,属于低级错误了!
问题2:
线上服务调不通:
分析2:
先上一张部署图,
吸取内网外网调用的问题后,确认是通过内网ip在进行调用。在测试服务器上分别调用两台机器的服务,发现都能够调通,将问题缩小为问题出现在了负载均衡服务器的配置上,请教运维后,发现是端口映射出了问题,负载均衡服务器只对外暴露了80端口,在docker中容器的8888端口与宿主机的80做映射docker run -p 80:8888 --name shulex-tag-app:shulex-tag-app:latest -d
ok,问题解决。
问题3:
一个不是问题的问题?
分析3:
在进行ai_issues表插入的时候遇到回滚,当时就认为是自己程序的问题,完全没结合具体的业务去分析问题,
Optional 参数:来自官方文档的解释
ai_issues表中的tag_id也就是对应这里的tag,是不能为空的!所以在插入时必须去验证tag对象是否存在,为空就插入不了。就应该回滚!
注意:
分析问题时请不要脱离业务!!
bug解决
解决maven依赖冲突
报错信息:
NoSuchMethidError一般就是版本冲突了,通过maven命令mvn -Dverbose dependency:tree
找到冲突的包,排除掉即可。
排除mysql中的即可: