2024年8月29日
摘要: 架构原则:“4 要 1 不要” 如果你是一个架构师,你首先要勾勒出一个轮廓,想一想如何构建一个超大流量并发读写、高性能,以及高可用的系统,这其中有哪些要素需要考虑。我把这些要素总结为“4要 1 不要”。 1.数据要尽量少 所谓“数据要尽量少”,首先是指用户请求的数据能少就少。请求的数据包括上传给系统 阅读全文
posted @ 2024-08-29 17:19 坐在云上飘 阅读(6) 评论(0) 推荐(0) 编辑
摘要: RocketMQ 延迟消息 延迟消息,当消息写入到 Broker 后,不会立刻被消费者消费,需要等待指定的时长后才可被消费处理的消息,称为延时消息。在订单创建之后,我们就可以把订单作为一条消息投递到 rocketmq,并将延迟时间设置为 30 分钟, 这样30分钟后我们定义的 consumer 就可 阅读全文
posted @ 2024-08-29 17:01 坐在云上飘 阅读(6) 评论(0) 推荐(0) 编辑
摘要: Redisson 是一个基于 redis 实现的 Java 驻内存数据网格,它不仅提供了一系列的分布式的 Java 常用对象,还提供了许多分布式服务。 Redisson 除了提供我们常用的分布式锁外,还提供了一个分布式延迟队列 RDelayedQueue,他是一种基于 zset 结构实现的延迟队列, 阅读全文
posted @ 2024-08-29 16:51 坐在云上飘 阅读(68) 评论(0) 推荐(0) 编辑
摘要: redis 是一个高性能的 KV 数据库,除了用作缓存以外,其实还提供了过期监听的功能在 redis.conf 中,配置 notify-keyspace-events Ex 即可开启此功能。 然后在代码中继承 KeyspaceEventMessageListener,实现 onMessage 就可以 阅读全文
posted @ 2024-08-29 16:27 坐在云上飘 阅读(25) 评论(0) 推荐(0) 编辑
摘要: DelayQueue是JDK提供的一个无界队列,我们可以看到,DelayQueue队列中的元素需要实现Delayed,它只提供了一个方法,就是获取过期时间。 用户的订单生成以后,设置过期时间比如30分钟,放入定义好的DelayQueue,然后创建一个线程,在线程中通过while(true)不断的从D 阅读全文
posted @ 2024-08-29 16:17 坐在云上飘 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 通过定时任务关闭订单,是一种成本很低,实现也很容易的方案。通过简单的几行代码,写一个定时任务,定期扫描数据库中的订单,如果时间过期,就将其状态更新为关闭即可 优点:实现容易,成本低,基本不依赖其他组件。 缺点:时间可能不够精确。由于定时任务扫描的间隔是固定的,所以可能造成一些订单已经过期了一段时间才 阅读全文
posted @ 2024-08-29 16:12 坐在云上飘 阅读(12) 评论(0) 推荐(0) 编辑
  2024年8月12日
摘要: 事务的四大特性 原子性 undolog 要么全部成功 要么全部失败 隔离性 锁加mvcc 持久性 redolog 加 double read buffer 双写缓冲 一致性 事务的隔离级别 read uncommitted(读未提交) read committed(读已提交) repeatable 阅读全文
posted @ 2024-08-12 17:30 坐在云上飘 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 如何防止api接口被恶意调用或攻击 无论网站,还是App目前基本都是基于api接口模式的开发,那么api的安全就尤为重要了。目前攻击最常见的就是“短信轰炸机”,由于短信接口验证是App,网站检验用户手机号最真实的途径,使用短信验证码在提供便利的同时,也成了呗恶意攻击的对象,那么如何才能防止被恶意调用 阅读全文
posted @ 2024-08-12 17:15 坐在云上飘 阅读(4) 评论(0) 推荐(0) 编辑
摘要: https://blog.csdn.net/weixin_43888891/article/details/131031003 阅读全文
posted @ 2024-08-12 17:01 坐在云上飘 阅读(2) 评论(0) 推荐(0) 编辑
摘要: redis更新策略 1.先更新缓存再更新数据库:在双写场景下,很容易出现一致性问题,在读写场景下,小概率出现一致性问题,所以Pass。 2.先删除缓存再更新数据库:在双写场景下,不会出现一致性问题,在读写场景下,很容易出现一致性问题,所以Pass。 3.先更新数据库再更新缓存:在双写场景下,很容易出 阅读全文
posted @ 2024-08-12 16:32 坐在云上飘 阅读(21) 评论(0) 推荐(0) 编辑