个人笔记-实战微服务中数据库事务注意
作者前言:缓存消耗的是服务器的内存,使用缓存前必须先对应用需要缓存的数据大小进行评估,包括缓存的数据结构、缓存大小、缓存数量、缓存的失效时间,否则会造成资源浪费或者缓存空间不够。缓存穿透:redis跟数据库都不存在,比如拿一个不存在的用户请求,请求就会打到db上。解决方式:生成一个有效时间的占位数据来代替。缓存击穿:redis不存在,数据库存在,一般是redis的某个key突然过期,前端并发请求到
·
前言:微服务中经常会出现在数据库事务中调用远程服务,由于远程服务超时而拉长事务,导致数据库瘫痪的情况,因此在事务处理过程中,禁止执行可能产生线程阻塞的调用,例如:锁等待、远程调用等。
开发中,特别是微服务架构,事务要尽可能保持短事务,一个事务中最后不要有太多的操作,长时间操作事务会影响或堵塞其他的请求,累积可造成数据库故障,同一事务中大量的数据操作会引起锁的范围和影响扩大,易造成数据库的其他操作阻塞而导致短暂的不可用。
因此,要尽可能用短事务来代替长事务,降低事务执行时间,减少锁的时长,使用最终一致性来保证数据的一致性原则
更多推荐
已为社区贡献1条内容
所有评论(0)