后端开发
文章平均质量分 91
shiyuezhong
从事java web开发
展开
-
订单超时处理方案介绍
如果对于超时精度比较高,超时时间在24小时内,且不会有峰值压力的场景,推荐使用RocketMQ的定时消息解决方案。在电商业务下,许多订单超时场景都在24小时以上,对于超时精度没有那么敏感,并且有海量订单需要批处理,推荐使用基于定时任务的跑批解决方案。原创 2023-02-16 12:42:29 · 735 阅读 · 0 评论 -
MQ 消息丢失、重复、积压问题,如何解决?
引入 MQ 消息中间件最直接的目的是:做系统解耦合流量控制,追其根源还是为了解决互联网系统的高可用和高性能问题。原创 2023-01-31 13:55:50 · 1343 阅读 · 0 评论 -
实现关闭订单
在电商、支付等领域,往往会有这样的场景,用户下单后放弃支付了,那这笔订单会在指定的时间段后进行关闭操作,细心的你一定发现了像某宝、某东都有这样的逻辑,而且时间很准确,误差在1s内;那他们是怎么实现的呢?一般的做法有如下几种:定时任务关闭订单 rocketmq延迟队列 rabbitmq死信队列 时间轮算法 redis过期监听。原创 2022-12-23 14:16:16 · 197 阅读 · 1 评论 -
基于Kubernetes的微服务项目设计与实现
本文会从设计开始,设计一个简单的前后端分离的项目,并将它部署在 kubernetes 集群上,期间我们将关注微服务和 kubernetes 配合的各个方面,并且从 系统的可用性,可靠性、强壮性、可扩展进行讨论,最终设计一个可以真正实用的系统。整体上我们从4个章节描述这个目标,分别是:第一章:微服务项目的设计第二章:微服务项目的具体实现第三章:kubernetes的部署第四章:微服务高可用部署及验证微服务是一种设计思想,它并不局限于任何开发语言,在本例中我们选择java的spring原创 2021-03-25 17:48:53 · 752 阅读 · 1 评论 -
浅谈Redis
Redis 为什么响应快①数据保存在内存中Redis 数据保存在内存中,读写操作只要访问内存,不需要磁盘 IO。②底层数据结构如下: Redis 的数据以 key:value 的格式存储在散列表中,时间复杂度 o(1)。 Redis 为 value 定义了丰富的数据结构,包括动态字符串、双向链表、压缩列表、hash、跳表和整数数组,可以根据 value 的特性选择选择最高效的数据结构。 ③单线程模型Redis 的网络 IO 和数据读...转载 2021-03-24 10:20:04 · 198 阅读 · 0 评论 -
分库分表
本文主要阐述在分库分表改造过程中需要考虑的因素以及对应的解法,还有踩过的那些坑。一 前言我们既然要做分库分表,那总要有个做事的动机。那么,在动手之前,首先就要弄明白下面两个问题。1 什么是分库分表?其实就是字面意思,很好理解: 分库:从单个数据库拆分成多个数据库的过程,将数据散落在多个数据库中。 分表:从单张表拆分成多张表的过程,将数据散落在多张表内。 2 为什么要分库分表?关键字:提升性能、增加可用性。从...转载 2021-03-22 11:27:08 · 249 阅读 · 0 评论