一点记录

今天看了点 mysql 的知识点:
    1. 小数使用 decimal 类型而不用 double 和 float。因为 decimal 精度高。
    2. 日期,年月日使用 date 类型,年月日时分秒使用 datetime 类型,timestamp 类型用在更新时间字段上,开关打开,只要表中字段有更新,timestamp 列值都会改变
    3. char,varchar 和 text。char 类型比 varchar 类型效率高,char(n) 存储 n 个字符,占用 n 个字节,不足的用空格补齐,varchar(n) 最大可存储 n 个字符,若存储 m(m<=n) 个字符,占用 m+1(m<=255) 或 m+2(m>255) 个字节,varchar 类型最大可存储 65532 个字节。对中文存储,mysql 5.0 以后,每个中文占 3 个字节。text 类型不用指定长度,效率没有 varchar 类型高,text 类型不能建索引,varchar 类型可以建索引。
    
今天又有线上问题。做回执时有阻断信息,经查阻断信息是我们代码给的,再查日志发现查询关联系统得到的对象里一个属性没有值会导致这个提示。然后就想把这个问题抛给关联系统,但是一看对象其他信息都正常,提示客户没有交费,看日志也交了费。想到我们是微服务架构会调其他服务,去查上游服务日志,发现那个字段是有值的,再查下游服务器,发现日志中有那个值,但都是另一个业务打的日志,报提示信息的业务没有相关日志。再查得到下面关系图。

这时候问题挺清晰了,因为某种原因 policy 里没接收到字段。查代码都没问题,最后想到是上线时构建了 cbs 后没有构建 policy,因为 cbs 是作为 maven 依赖存在于 policy 工程的。至此,问题解决。这里主要总结下,解决问题时排除思想,因为从日志里已经可以清楚看到是 policy 工程没接收到属性值,所以应该直接在 policy 查,再查 policy 代码是对的,那该想到是依赖、构建的问题。
第二个是问题解决后,一定要验证,验证无误后解决问题的流程才算走完,问题才算处理完。
第三个是合代码时,如果要处理冲突,那解决完冲突后再检查下从上次上线到这次上线之间的所有提交及需要上线的代码是否都已包含在处理冲突后的代码里,这样不会拉下要上线的代码。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值