在公司做项目遇到哪些坑,如何解决的,备之,算积累经验

在公司做项目遇到哪些坑,如何解决的,备之,算积累经验

1
问题:
与XX的接口,商量好,每天XX会把钱打到公司账户上,日终我们拿这钱进行入账,XX公司没放钱,结果大半夜日终卡掉,半夜业务人员也睡了,搁置到了早上才解决
解决:
到了早上,XX公司人员打钱,继续跑任务,解决
经验:
做系统千万别相信人的主观能动性,能不手工做就别让人手工做

2 做还款业务
问题:贷款业务无非就是放款和还款,还款中会遇到各种问题,正向交易还好,逆向交易会让你想死的感觉都有

解决:还款会有还款顺序问题,但是代偿的业务,还款顺序可能发生变化。比如正向顺序: 罚息 滞纳金 费用 利息 本金
那么逆向顺序就有可能是本金 利息 罚息 滞纳金 费用等。这还好,总之是还款,要是还款撤销,可就糊他了,要记录各种还款之前的状态,不光金额要回滚,包括还款计划状态,结清状态,罚息滞纳金是否要重新记回来等各种问题

经验:一切正向的操作还好说,一旦陷入逆向操作,要谨慎,会有各种问题

3 做划扣业务–关于异步
这里写图片描述

如图,如果M系统的三个块代表一个方法,那么中间逻辑,或者调用其他系统的逻辑有一个地方出现问题,对系统都是致命的。

如何处理好这些逻辑,对提升系统的健壮性非常有必要,不知道这张图你能看懂吗?

其实这个问题就是分布式事务的问题的,
一,可以分段提交事务,TCC
二, 也可以在出现异常时提供回调接口来冲掉刚才的操作

4 关于resthub接口超时问题

问题:调用接口,基于rcp调用,刚开始是没有配置超时的,但是在有一天,技术部不知道为啥,配置了,接口处理时间1分钟后超时,结果造成大面积的数据异常。

想想A系统发B系统,接口超时,结果,数据到没到B,B到底处理了吗?A系统是因为超时造成的异常还是就是数据处理异常,真想说一句,MYGOD.

解决:后来,经沟通,让技术部去掉了接口超时验证。

经验:任何策略的产生都要考虑清楚

5 db2单表数据5000万,查询分页都要2分钟才能查出10条数据,如果分表,没有好的分法,比如我们不能根据id进行Hash,前端列表页还有查询各种条件。大神有好的方法吗?

大表需要分表,目前可能只有这一种方法来提高效率。

6,rabitmq踩的坑,同一个生产者,在测试环境,只有一个消费者没有问题。
但是在生产环境配置了负载均衡。如果发两条一样的信息,在测试环境,肯定是这要的

第一条插入时,数据库没有该数据,没有问题
第二条插入时,数据库有了该数据,更新该数据,也没有问题

但是在生产上,如果发两条一样的信息,这时候,假如A机器消费了,插入库还没有提交事务,这时候B机器也消费了,插入库的时候因为A的数据还没有提交,所以它认为数据库没有该数据,也会执行插入,
待事务提交的时候,这时候会出现两条记录同时插入的情况。

解决方案:一, 将消费者只保持在一台服务器上 ,将另一台的消费者干掉
二,消费者同时在两台服务器存在,在表中加上唯一索引,当出现索引重复的时候,第二条数据是插入不了的,然后捕获运行时异常,不抛出。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

知乎关注八戒来了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值