摘要:
需要使用幂等的场景: 前端重复提交 接口超时重试 消息队列重复消费 解决方案: token机制:①客户端请求获取token,服务端生成一个唯一ID作为token存在redis中;②客户端第二次请求时携带token,服务端校验token成功则执行业务操作并删除token,服务端校验token失败则表示 阅读全文
摘要:
在网络延迟等不可控的因素下,消息被重复发送的问题不可避免,但是我们应该保证我们的消息不被重复消费。 如何解决? 在消费的业务逻辑里加入保证MQ重复消费的幂等性的操作。 什么是幂等性? 其任意多次执行多产生的影响均与一次执行的影响相同。 如何保证幂等性? 从业务的实际操作划分解决方案 仅使用消息进行数 阅读全文
摘要:
页面卡顿,可能涉及到很多页面性能问题,有可能是来自前端,有可能是来自后端,也有可能是来自用户网络问题等。 有可能是前端加载的某些js文件加载失败了或者是报错了 有可能是该页面请求的接口太多了,导致数据返回慢,可适当做缓存 有可能是浏览器渲染的东西太多导致卡顿。 但页面卡顿更大的可能是来自内存泄漏。 阅读全文
摘要:
监控是为了能让系统维护人员快速发现生产问题并定位到原因。 告警的类型有: 批处理效率:包括日终跑批处理效率和数据处理效率。需要配置超时阀值及监控。 流量监控:主要监控的指标有:TPS(每秒完成事务量)、HPS(每秒服务端收到的请求数)、IOPS(单位时间内系统能处理的IO请求数量)、QPS(每秒服务 阅读全文
摘要:
在处理大数据量时可以将mysql读写分离以达到提高性能、缓解数据库压力、缓解服务器压力的目的。 什么是读写分离? 基本原理为主库处理事务型查询,从库处理select查询。数据库复制把事务型查询导致的变更同步到从库中。 读写分离的好处: 增加冗余 增加机器的处理能力 确保写的服务器压力小。 为什么读写 阅读全文
摘要:
使用left join 时,on和where的条件的区别如下 on条件是在生成临时表时使用的条件,不管on中的条件是否为真,都会返回左表中的记录。 where条件是在临时表生成好后,在对临时表进行过滤条件,条件不为真的就全部过滤。 案例: select * from tab1 left join t 阅读全文
摘要:
什么是触发器? 触发器是一种特殊的存储过程,它在insert、delete、update时触发执行,它比数据库本身标准的功能有更精细和复杂的数据控制能力。 触发器的作用: 在写入表前可强制检验或转换数据 触发器发生错误时,异动的结果会被撤销 可依照特定情况,替换异动的指令(instead of) 在 阅读全文
摘要:
QUIC(Quick UDP Internet Connections),是一种完全基于UDP的协议,目前HTTP/3是建立在该协议上的。QUIC不仅常丹了传输层协议的职责,还具备了TLS的安全性相关的能力。 QUIC具有以下特点: 基于UDP的传输层协议:使用UDP端口号来识别指定机器上的特定服务 阅读全文
摘要:
mysql 可以运行在不同的 SQL Mode模式下,不同的SQL Mode定义了不同的SQL语法,有不同的数据校验规则。 SQL Mode的作用: 不同的mode可以完成不同严格程度的数据校验,保障数据的准确性。 改变mode能够更方便的进行数据在不同库中的迁移。 SQL Mode的种类: ONL 阅读全文