摘要: 1. 简介 代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。 比如:我们在调用底层框架方法时候,需要在调用方法的前后打印日志,或者做一些逻辑判断。此时我们无法去修改底层框架方法, 阅读全文
posted @ 2021-09-26 23:17 张铁牛 阅读(343) 评论(0) 推荐(2) 编辑
摘要: 1. 简介 JAVA反射机制是在运行状态中。 对于任意一个类,都能够知道这个类的所有属性和方法。 对于任意一个对象,都能够调用它的任意一个方法和属性。 这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 2. Class Class类其实也是一个Java类,存在于JDK的ja 阅读全文
posted @ 2021-09-25 17:54 张铁牛 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 1. 简介 我们在上一篇博文中遗留了一个小问题,就是虽然TTL + DLX能实现延迟队列的功能,但是有两个问题。 首先业务场景为:比如海底捞预约,每个人预约的时间段不一致,有个可能一个小时后,有的可能三个小时等,当快到预约时间点需要给用户进行短信通知。 通过给Queue设置过期时间的方式不现实,因为 阅读全文
posted @ 2021-09-16 23:34 张铁牛 阅读(807) 评论(4) 推荐(6) 编辑
摘要: 1. 简介 死信队列,简称:DLX,Dead Letter Exchange(死信交换机),当消息成为Dead message后,可以被重新发送到另外一个交换机,这个交换机就是DLX。 (一般会将DLX和与其binding 的 Queue,一并称为死信队列或DLX,习惯而已,不必纠结) 那么什么情况 阅读全文
posted @ 2021-09-16 00:06 张铁牛 阅读(281) 评论(0) 推荐(3) 编辑
摘要: 1.简介 为什么要对消费端进行限流? 其实很好理解,比如我们常能接触到的消费场景:春运期间12306火车票的抢购,双11期间的下单等。这些场景都有一个共同点就是都会导致短暂时间内请求数激增,如果我们的Consumer最多只支持每秒1000的QPS,而由于请求的激增导致每秒2000甚至更多的并发,此时 阅读全文
posted @ 2021-09-12 15:59 张铁牛 阅读(55) 评论(2) 推荐(0) 编辑
摘要: 1. 简介 MQ虽然帮我们解决了很多问题,但是也带来了很多问题,其中最麻烦的就是:如何保证消息的可靠性传输。 我们在聊如何保证消息的可靠性传输之前,先考虑下哪些情况下会出现消息丢失的情况。 首先,上图中完整的展示了消息从生产到被消费的完整链路,我们通过图列举下各种情况。 Producer在把Mess 阅读全文
posted @ 2021-09-12 12:47 张铁牛 阅读(366) 评论(2) 推荐(3) 编辑
摘要: 1. 简介 MQ(Message Queue)消息队列,是基础数据结构中“FIFO(先进先出)”的一种数据结构。 一般用来解决应用解耦,异步消息,流量削峰等问题,实现高性能,高可用,可伸缩和最终一致性架构。 应用解耦 MQ相当于一个中介,生产方通过MQ与消费方交互,它将应用程序进行解耦合。 异步消息 阅读全文
posted @ 2021-09-09 23:28 张铁牛 阅读(71) 评论(0) 推荐(2) 编辑
摘要: 1. 简介 OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。因此OAUTH是安全的。OAuth是Open Authorization的简写。 而OAuth2.0是OAuth协议的下一版 阅读全文
posted @ 2021-09-07 22:42 张铁牛 阅读(40) 评论(0) 推荐(0) 编辑
摘要: 1. 简介 我们在之前的博文中讲解了如何使用redis实现分布式锁,其实除了 redis 还有 zookeeper 也能实现分布式锁。 废话不多说,直接上图。 从整个流程中可以看出,zk实现分布式锁,主要是靠zk的临时顺序节点和watch机制实现的。 2. quick start Curator 是 阅读全文
posted @ 2021-09-06 22:54 张铁牛 阅读(276) 评论(0) 推荐(4) 编辑
摘要: 1. 简介 zookeeper是一个开源的分布式协调服务, 提供分布式数据一致性解决方案,分布式应用程序可以实现数据统一配置管理、统一命名服务、分布式锁、集群管理等功能. ZooKeeper主要服务于分布式系统,使用分布式系统就无法避免对节点管理的问题(需要实时感知节点的状态、对节点进行统一管理等等 阅读全文
posted @ 2021-08-31 23:01 张铁牛 阅读(245) 评论(0) 推荐(1) 编辑