养码场技术交流N群
每周周一,与您相约“一周播报”
20:30
技术问题
Q:有两张表(一个库),一个是用户表、一个是会员表,一个会员记录对应多条用户记录,有一个事务过程如下:每更新用户表中一条记录,更新(update)对应会员表中的一条记录,由于多条用户记录对应会员表中的一条记录,当并发量大的时候,会有多条请求会update同一条会员记录,此时会使数据库变得很慢甚至挂掉,该如何解决?
养码人A提出:在where条件增加一个乐观锁字段,如果没有命中就不会更新。
但是这条被提问人否决了:这样做是解决相同的更新请求如何避免重复的,但这些请求并不是一个,是不同的请求。
养码人B又说:通过消息队列做成异步更新,消费者消费消息时还可以内合并每秒(指定时延)相同数据的更新操作。
提出人觉得这个比较靠谱,但还是有个问题:如果异步更新的话,怎么保证同步的接口,这个事务操作接口业务系统在调用时肯定需要同步得到结果的,换句话说你的操作转换成了同步接口里面调用了异步的更新接口。那该如何保证呢?
养码人B补充道:用缓存服务器比如redis暂存接口调用状态,消费者执行结束更新状态,同步接口等待状态标记改变;相当于用消息队列去合并更新和限流,改动有点多,再想想其他方案,如果不需要同步,没有强事务可以这样~
养码人们都觉得B的方案不错,但是也要看具体业务场景,而且加队列后并发性能会下降,并发比较高多个请求的情况下会使更新数据库操作时间加长。所以各位养码人,有没有更好的方法呢?
生活不止眼前的苟且
还有未来的苟且啊!
一位群友问各位养码人:杭州滨江一套6平米的房子,带独立卫生间,660块一个月,有没有朋友要租?
各位养码人都惊了:这6平米,2*3,能住吗???还能带卫生间???卫生间在头上吗???
群友说:虽然我现在住了别墅(场主心情复杂),但是在这之前也是北京1个6平米的小房间,奋斗的时候要给自己制造悲凉的气氛啊!
另一位养码人说:刚量了下我现在住的带卫生间,也就8平方不到。
纷纷感叹:哎,生活不止眼前的苟且,还有未来的苟且啊......
其他组的同事不给我看代码
有些养码人有这样的困扰:其他组的同事做某件事,结果质量和性能都不佳,但就是不给看代码。无法理解这是什么心理!
养码人A:反编译吧,混口饭也不容易,想自我保护吧。
养码人B:啥呀,这根本不是自我保护,他就是担心代码被看了直接就要滚蛋了,而手中的代码就是他们唯一的救命稻草!
养码人C:这个也要看是什么合作方式了,从协作边界来说,人家独立团队在没有高层指示时,有权力不给源码。你是需求方,你的权力是对产出结果进行要求,而不是干预对方工作过程。当然,如果你们协议中有提供源码的要求,是可以要源码的哦。
各位养码人,你们咋看待这件事呢?你会给不同组的人看自己的代码吗?给场主留言呗~
细数那些“不务正业”的公司
各位养码人一定有孩子在学乐器,都知道雅马哈吧,这个“不正经”的公司,明明玩乐器的,居然去造路由器、发动机还有摩托车了!
养码人A:这有啥啊,诺基亚还是造纸起家的呢。 养码人B:诺基亚也做过军工啊。 养码人C:德国那些汽车厂以前都是造坦克的呢。 养码人D:通用电气做灯泡起家的,还做过医疗设备、造飞机引擎。 养码人E:那小米不也是吗,一个做手机的,现在做了电饭煲、毛巾、接线板......
场主看了大家的回复,表示学到了学到了!