架构设计
一颗向上的草莓
后台开发者,前端爱好者,个人博客:http://catchu.github.io
展开
-
分布式系统的面试题11
1、面试题zk都有哪些使用场景?2、面试官心里分析zk,zookeeper,你们现在在聊的面试topic,是分布式系统,他其实已经跟你聊完了dubbo以及相关的一些问题,确认,你现在分布式服务框架,rpc框架,基本都有一些认知。可能开始要跟你聊分布式相关的其他问题了。分布式锁这个东西,很常用的,你做java系统开发,分布式系统,可能会有一些场景会用到。最常用的分布式锁就是zookeeper来做分布式锁。其实说实话,问这个问题,一般就是看看你是否了解zk,因为...转载 2020-06-27 13:42:52 · 270 阅读 · 0 评论 -
延时队列的实现方案
一、延时队列的应用什么是延时队列?顾名思义:首先它要具有队列的特性,再给它附加一个延迟消费队列消息的功能,也就是说可以指定队列中的消息在哪个时间点被消费。延时队列在项目中的应用还是比较多的,尤其像电商类平台:1、订单成功后,在30分钟内没有支付,自动取消订单2、外卖平台发送订餐通知,下单成功后60s给用户推送短信。3、如果订单一直处于某一个未完结状态时,及时处理关单,并退还库存4、淘宝新建商户一个月内还没上传商品信息,将冻结商铺等。。。。上边的这些场景都可以应用延时队列解决。转载 2020-06-11 21:20:38 · 245 阅读 · 0 评论 -
点赞功能,用 MySQL 还是 Redis 好
点赞功能是目前app开发基本的功能今天我们就来聊聊 点赞、评论、收藏等这些场景的db数据库设计问题,1. 我们先来看看场景的需求: 显示点赞数量 判断用户是否点过赞,用于去重,必须的判断 显示个人点赞列表,一般在用户中心 显示文章点赞列表 我们先看一下头条和微博的例子这两个都是具有顶级流量的,后端肯定有复杂的架构,我们今天只谈大众化的方案。2.1 mysql方案mysql方案, 随着nosql的流行,大数据的持续热点,但是mysql仍然不可原创 2020-06-06 07:41:58 · 251 阅读 · 1 评论 -
接口如何设计才能保证安全,防止攻击
说明:在实际的业务中,难免会跟第三方系统进行数据的交互与传递,那么如何保证数据在传输过程中的安全呢(防窃取)?除了https的协议之外,能不能加上通用的一套算法以及规范来保证传输的安全性呢?下面我们就来讨论下常用的一些API设计的安全方法,可能不一定是最好的,有更牛逼的实现方式,但是这篇是我自己的经验分享. 本章目录:1. token简介 2.timestamp 简介 3.sign 简介 4.防止重复提交 5. 使用流程 6. 代码分享一:toke...转载 2020-06-03 10:50:46 · 1786 阅读 · 0 评论 -
分布式协调服务zookeeper总结
1.zookeeper简介1.1简介Zookeeper是一个分布式协调服务,换言之,就是为用户的分布式应用程序提供协调服务 - zookeeper是为别的分布式程序服务的 - Zookeeper本身就是一个分布式程序(只要有半数以上节点存活,zk就能正常服务) - Zookeeper所提供的服务涵盖:主从协调、服务器节点动态上下线、统一配置管理、分布式共享锁、统一名称服务 - 虽然说可以提供原创 2017-12-20 16:47:27 · 1586 阅读 · 0 评论 -
使用Guava retryer优雅的实现接口重试
API 接口调用异常, 网络异常在我们日常开发中经常会遇到,这种情况下我们需要先重试几次调用才能将其标识为错误并在确认错误之后发送异常提醒。guava-retry可以灵活的实现这一功能。Guava retryer在支持重试次数和重试频度控制基础上,能够兼容支持多个异常或者自定义实体对象的重试源定义,让重试功能有更多的灵活性。Guava Retryer也是线程安全的,入口调用逻辑采用的是Java.u...转载 2019-05-28 13:06:56 · 1033 阅读 · 1 评论 -
海量数据和高并发下的 Redis 业务优化实践
观众朋友们,我是来自掌阅的工程师钱文品,掘金小册《Redis 深度历险》的作者。今天我带来的是分享主题是:Redis 在海量数据和高并发下的优化实践。Redis 对于从事互联网技术工程师来说并不陌生,几乎所有的大中型企业都在使用 Redis 作为缓存数据库,但是对于绝大多数企业来说只会用到它的最基础的 KV 缓存功能,还有很多 Redis 的高级功能可能都未曾认真实践过。今天在这一个小时的时间我会...转载 2019-06-25 21:29:28 · 604 阅读 · 0 评论 -
生产环境redis锁的使用(与定时任务搭配,也可实现分布式定时任务)
之前2片文章介绍了spring利用注解实现定时任务:https://blog.csdn.net/QiaoRui_/article/details/82999655spring定时任务的动态修改:https://blog.csdn.net/QiaoRui_/article/details/83110794描述:...转载 2019-06-26 12:52:40 · 639 阅读 · 0 评论 -
如何使用redis缓存来实现用户最近浏览的商品列表
如何使用redis缓存来实现用户最近浏览的商品列表首先,我们要弄明白两个要点:最近浏览的商品肯定是一个存和取的两个操作.好了目前摆在我们面前的有以下几个问题:1,最近浏览的记录肯定是需要失效时间的确定使用缓存,缓存可以设置失效时间(最大设置为一个月,但是这已经足够了),如果使用mysql等数据库,还需要定时任务清除,很明显是不切合实际的,...转载 2019-06-27 21:48:16 · 998 阅读 · 0 评论