自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

听雪楼

听雪楼中听雪落,彼岸花开彼岸零

  • 博客(96)
  • 资源 (7)
  • 收藏
  • 关注

原创 RabbitMQ-基础组件封装

基础组件封装思路和架构设计方案支持高性能的序列化转换, 异步化发送消息支持消息生产实例与消费实例的链接池化缓存化, 提升性能支持可靠性投递消息, 保障消息100%不丢失支持消费端的幂等操作, 避免消费端重复消费的问题支持迅速消息发送模式, 在一些日志收集/统计分析等需求下可以保证高性能, 高吞吐量支持延迟消息模式, 消息可以延迟发送, 指定延迟时间, 用于某些延迟检查, 服务限流场...

2018-12-31 10:54:00 5338

原创 RabbitMQ集群恢复与故障转移

前提 : A, B两个节点组成一个镜像队列, B是Master节点场景一A先停, B后停解决方案 : 该场景下B是Master, 只要先启动B, 在启动A即可。或者先启动A, 30秒之内启动B即可恢复镜像队列场景二A, B同时停机解决方案 : 只需要在30秒内连续启动A和B即可恢复镜像场景三A先停, B后停, 且A无法恢复解决场景 : 因为B是Master, 所以等B启...

2018-12-31 10:48:22 2076

原创 从零开始搭建高可用RabbitMQ镜像模式集群

RabbitMQ集群模式搭建集群架构图:准备工作准备三台安装了RabbitMQ的节点, 我本地三台虚拟机地址如下 :IPhostname192.168.72.138:5672rabbit138192.168.72.139:5672rabbit139192.168.72.140:5672rabbit140选取任意一个节点作为master节点, 进...

2018-12-31 10:45:52 3504 1

原创 RabbitMQ集群架构模式介绍

主备模式实现RabbitMQ的高可用集群, 一般在并发和数据量不高的情况下, 这种模型简单好用。主备模式也从称之为Warren模式主节点如果挂了, 从节点提供服务远程模式远程模式可以实现双活的一种模式, 简称Shovel模式, 所谓Shovel就是我们可以把消息进行不同数据中心的复制工作, 可以跨地域的让两个MQ集群互联Shovel模式拓扑图:Shovel集群的配...

2018-12-31 10:20:01 2323

原创 SpringBoot整合RabbitMQ

Producer配置publisher-confirms, 实现一个监听器用于监听Broker端给我们返回的确认请求 : RabbitTemplate.ConfirmCallbackpublisher-returns, 保证消息对Broker端是可达的, 如果出现路由键不可达的情况, 则使用监听器对不可达的消息进行后续的处理, 保证消息的路由成功 : RabbitTemplate.Retur...

2018-12-31 10:14:18 1219 1

原创 Spring AMQP整合RabbitMQ

RabbitAdminRabbitAdmin类可以很好的操作RabbitMQ, 在Spring中直接进行注入即可@Beanpublic RabbitAdmin rabbitAdmin(ConnectionFactory ConnectionFactory) { RabbitAdmin rabbitAdmin = new RabbitAdmin(connectionFactory)...

2018-12-31 10:11:45 1560

原创 RabbitMQ高级特性-死信队列(DLX)

死信队列(DLX)Dead-Letter-Exchange利用DLX, 当消息在一个队列中变成死信(dead message)之后, 它能被重新publish到另一个Exchange, 这个Exchange就是DLXDLX也是一个正常的Exchange, 和一般的Exchange没有区别, 它能在任何队列上被指定, 实际上就是设置某个队列的属性为死信队列当这个队列中有死信时, Rabbi...

2018-12-31 10:02:56 4897

原创 RabbitMQ高级特性-TTL队列/消息

TTL队列/消息TTL是Time To Live的缩写, 也就是生存时间RabbitMQ支持消息的过期时间, 在消息发送时可以进行指定RabbitMQ支持队列的过期时间, 从消息入队列开始计算, 只要超过了队列的超时时间配置, 那么消息会自动清除代码演示消费者中设置队列超时时间为10秒, 启动之后关闭消费者生产者发送两条消息, 一条消息不设置超时时间, 一条消息设置5秒后超时启...

2018-12-31 09:59:16 9880 3

原创 leetcode401. 二进制手表

题目二进制手表顶部有 4 个 LED 代表小时(0-11),底部的 6 个 LED 代表分钟(0-59)。每个 LED 代表一个 0 或 1,最低位在右侧。例如,上面的二进制手表读取 “3:25”。给定一个非负整数 n 代表当前 LED 亮着的数量,返回所有可能的时间。案例:输入: n = 1返回: ["1:00", "2:00", "4:00", "8:00", "0:01", ...

2018-12-27 19:11:31 585

原创 leetcode200. 岛屿的个数

题目给定一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。示例 1:输入:11110110101100000000输出: 1示例 2:输入:11000110000010000011输出: 3解题遍历二维数组, 每找到一个1就表示有...

2018-12-27 19:04:34 347

原创 leetcode90. 子集 II

题目给定一个可能包含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例:输入: [1,2,2]输出:[ [2], [1], [1,2,2], [2,2], [1,2], []]解题递归 + 回溯先排序注意重复元素剔除空集也是一个子集class Solution { List<Lis...

2018-12-27 18:55:05 296

原创 leetcode79. 单词搜索

题目给定一个二维网格和一个单词,找出该单词是否存在于网格中。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。示例:board =[ ['A','B','C','E'], ['S','F','C','S'], ['A','D','E','E']]给定 word = "ABCCED...

2018-12-27 18:52:30 472

原创 leetcode78. 子集

题目给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例:输入: nums = [1,2,3]输出:[ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], []]解题递归 + 回溯不包含重复元素空集也是一个子集class Solution {...

2018-12-27 18:48:22 375

原创 RabbitMQ高级特性-消费端ACK与重回队列

消费端ACK与重回队列消费端ACK消费端的手工ACK和NACK, ACK是确认成功消费, NACK表示消息处理失败, 会重发消息消费端进行消费的时候, 如果由于业务异常我们可以进行日志的记录, 然后进行补偿如果由于服务器宕机等严重问题, 就需要手工进行ACK保障消费端消费成功重回队列消费端重回队列是为了对没有处理成功的消息, 把消息重新回递给Broker一般在实际应用中, 都会...

2018-12-26 07:02:27 2109 1

原创 RabbitMQ高级特性-消费端限流

消费端限流消息队列中囤积了大量的消息, 或者某些时刻生产的消息远远大于消费者处理能力的时候, 这个时候如果消费者一次取出大量的消息, 但是客户端又无法处理, 就会出现问题, 甚至可能导致服务崩溃, 所以需要对消费端进行限流RabbitMQ提供了一种qos(服务质量保证)功能, 即在非自动确认消息的前提下, 如果一定数目的消息(通过consumer或者channel设置qos的值)未被确...

2018-12-26 06:58:54 3235

原创 RabbitMQ高级特性-消费端自定义监听

消费端自定义监听在之前的代码演示中, consumer进行消费时 ,都是使用while循环进行消息消费, 然后使用consumer.nextDelivery()方法获取下一条消息但是在实际工作中, 使用自定义的Consumer更加的方便, 解耦性也更加的强, 实现自定义的Consumer可以实现Consumer接口, 或者更常用的是继承默认的DefaultConsumer代码演示自定义...

2018-12-26 06:55:31 3059

原创 RabbitMQ高级特性-Return消息机制

Return消息机制Return Listener用于处理一些不可路由的消息正常情况下消息生产者通过指定一个Exchange和RoutingKey, 把消息送到某一个队列中去, 然后消费者监听队列, 进行消费但在某些情况下, 如果在发送消息的时候, 当前的exchange不存在或者指定的路由key路由不到, 这个时候如果我们需要监听这种不可达的消息, 就要使用Return Lis...

2018-12-26 06:52:04 2657 1

原创 RabbitMQ高级特性-Confirm确认消息

Confirm确认消息消息的确认, 是指生产者投递消息后, 如果Broker收到消息, 则会给我们产生一个应答生产者进行接收应答, 用来确定这条消息是否正常发送到Broker, 这种方式也是消息的可靠性投递的核心保障如何实现Confirm确认消息在channel上开启确认模式 : channel.confirmSelect()在channel上添加监听 : addConf...

2018-12-26 06:49:35 2539 5

原创 RabbitMQ高级特性-幂等性保障

消费端-幂等性保障幂等性 : 多次执行, 结果保持一致主流的幂等性操作唯一ID + 指纹码机制, 利用数据库主键去重好处 : 实现简单坏处 : 高并发下有数据库写入的性能瓶颈解决方案 : 根据ID进行分库分表进行算法路由利用Redis的原子性实现需要关注的问题:是否要进行数据落库, 如果落库的话, 数据库和缓存如何做到原子性如果不落库, 数据都存储到缓存...

2018-12-26 06:46:39 2792

原创 RabbitMQ高级特性-消息可靠性投递

消息如何保障100%的投递成功什么是生产端的可靠性投递保障消息的成功发出保障MQ节点的成功接收发送端收到MQ节点(Broker)的确认应答完善的消息补偿机制可靠性投递的解决方案消息落库, 对消息状态进行标记将消息落入数据库中, 对消息状态进行标记, 消息状态发生变更时, 更新标记信息对失败消息进行轮询重发, 设置轮询次数消息入库消息发送消费端消息确...

2018-12-26 06:43:04 2678

原创 leetcode216. 组合总和 III

题目找出所有相加之和为 n 的 k 个数的组合。组合中只允许含有 1 - 9 的正整数,并且每种组合中不存在重复的数字。说明:所有数字都是正整数。解集不能包含重复的组合。示例 1:输入: k = 3, n = 7输出: [[1,2,4]]示例 2:输入: k = 3, n = 9输出: [[1,2,6], [1,3,5], [2,3,4]]解题递归 + 回溯cla...

2018-12-25 16:41:12 1004

原创 leetcode40. 组合总和 II

题目给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的每个数字在每个组合中只能使用一次。说明:所有数字(包括目标数)都是正整数。解集不能包含重复的组合。示例 1:输入: candidates = [10,1,2,7,6,1,5], target = 8,所求解集为:[...

2018-12-25 16:38:40 731

原创 leetcode39. 组合总和

题目给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的数字可以无限制重复被选取。说明:所有数字(包括 target)都是正整数。解集不能包含重复的组合。示例 1:输入: candidates = [2,3,6,7], target = 7,所求解集为:[...

2018-12-25 16:32:50 520

原创 leetcode77. 组合

题目给定两个整数 n 和 k,返回 1 … n 中所有可能的 k 个数的组合。示例:输入: n = 4, k = 2输出:[ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4],]解题递归 + 回溯class Solution { List<List<Integer>> result = ...

2018-12-25 16:28:06 306

原创 RabbitMQ成员简介

Exchange 交换机Exchange : 接收消息, 并根据路由键转发消息所绑定的队列交换机属性Name : 交换机名称Type : 交换机类型, direct, topic, fanout, headersDurability : 是否需要持久化, true为持久化Auto Delete : 当最后一个绑定到Exchange上的队列删除后, 自动删除该Exchange...

2018-12-24 20:05:03 1209

原创 RabbitMQ入门与AMQP协议简介

文章目录概述优点RabbitMQ高性能的原因AMQP协议AMQP简介AMQP协议模型AMQP核心概念RabbitMQ整体架构RabbitMQ消息流转RabbitMQ安装与使用安装步骤RabbitMQ启动命令行与管控台快速入门添加Maven依赖生产者代码消费者代码概述RabbitMQ是一个开源的消息代理和队列服务器, 用来通过普通协议在完全不同的应用之间共享数据, RabbitMQ使用Erla...

2018-12-23 21:36:52 1629

原创 leetcode-47. 全排列 II

题目给定一个没有重复数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]解题递归 + 回溯 + 剪枝class Solution { public List<List<Integer>> permuteUnique(i...

2018-12-21 06:50:52 274

原创 leetcode46. 全排列

题目给定一个没有重复数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]解题递归 + 回溯class Solution { List<List<Integer>> result = new A...

2018-12-21 06:48:09 478

原创 leetcode131. 分割回文串

题目给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串。返回 s 所有可能的分割方案。示例:输入: "aab"输出:[ ["aa","b"], ["a","a","b"]]解题...

2018-12-20 09:41:00 347

原创 LeetCode93. 复原IP地址

题目给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。示例:输入: "25525511135"输出: ["255.255.11.135", "255.255.111.35"]解题递归 + 回溯简单来说, 就是ip的每一段分别取1位, 2位, 3位, 分别穷举之后的字符, 并判断每部分是否为有效的ip, 代码如下:class Solution { Li...

2018-12-18 16:08:45 648

原创 LeetCode17. 电话号码的字母组合

题目给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:"23"输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].说明:尽管上面的答

2018-12-18 12:13:15 581

原创 LeetCode236. 二叉树的最近公共祖先

题目给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉树: root = [3,5,1,6,2,0,8,null,null,7,4]示例 1:输入: root = [3,5,...

2018-12-18 12:10:32 217

原创 leetcode230. 二叉搜索树中第K小的元素

题目给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素。说明:你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数。示例 1:输入: root = [3,1,4,null,2], k = 1 3 / \ 1 4 \ 2输出: 1示例 2:输入: root = [5,3,6,2,4,null,null,1],...

2018-12-17 20:03:29 212

原创 leetcode108. 将有序数组转换为二叉搜索树

题目将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。示例:给定有序数组: [-10,-3,0,5,9],一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树: 0 / \ -3 9 / / -10...

2018-12-17 20:00:59 561

原创 leetcode450. 删除二叉搜索树中的节点

题目给定一个二叉搜索树的根节点 root 和一个值 key,删除二叉搜索树中的 key 对应的节点,并保证二叉搜索树的性质不变。返回二叉搜索树(有可能被更新)的根节点的引用。一般来说,删除节点可分为两个步骤:首先找到需要删除的节点;如果找到了,删除它。说明: 要求算法时间复杂度为 O(h),h 为树的高度。示例:root = [5,3,6,2,4,null,7]key = 3 ...

2018-12-17 19:57:42 334

原创 leetcode98. 验证二叉搜索树

题目假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。示例 1:输入: 2 / \ 1 3输出: true示例 2:输入: 5 / \ 1 4 / \ 3 6输出: false解释: 输入为: [5,1,4,nul...

2018-12-16 21:22:32 325

原创 leetcode437. 路径总和 III

题目给定一个二叉树,它的每个结点都存放着一个整数值。找出路径和等于给定数值的路径总数。路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。二叉树不超过1000个节点,且节点数值范围是 [-1000000,1000000] 的整数。示例:root = [10,5,-3,3,2,null,11,3,-2,null,1], sum = 8 ...

2018-12-15 21:36:16 409

原创 leetcode129. 求根到叶子节点数字之和

题目给定一个二叉树,它的每个结点都存放一个 0-9 的数字,每条从根到叶子节点的路径都代表一个数字。例如,从根到叶子节点路径 1->2->3 代表数字 123。计算从根到叶子节点生成的所有数字之和。说明: 叶子节点是指没有子节点的节点。示例 1:输入: [1,2,3] 1 / \ 2 3输出: 25解释:从根到叶子节点路径 1->2 代表数...

2018-12-15 21:33:42 241

原创 leetcode113. 路径总和 II

题目给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。说明: 叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ ...

2018-12-15 21:31:43 730

原创 leetcode347. 前K个高频元素

题目给定一个非空的整数数组,返回其中出现频率前 k 高的元素。示例 1:输入: nums = [1,1,1,2,2,3], k = 2输出: [1,2]示例 2:输入: nums = [1], k = 1输出: [1]说明:你可以假设给定的 k 总是合理的,且 1 ≤ k ≤ 数组中不相同的元素的个数。你的算法的时间复杂度必须优于 O(n log n) , n 是数组的大...

2018-12-14 19:58:56 323

mysql-8.0.25-macos11-x86_64.zip

mysql for mac 8.0

2021-06-03

23种设计模式思维导图

23种设计模式思维导图 创建型设计模式 结构型设计模式 行为型设计模式

2018-11-25

事务定义,特性,隔离级别

作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行

2018-07-29

极客学院算法wiki

LeetCode 题解 - v1.0 轻松学习排序算法 - v1.0 一步一步写算法 - v1.0 坐在马桶上学算法 - v1.1

2017-10-28

PHP+Ajax+jQuery网站开发项目式教程

慕课网视频教程,资源是个下载地址 项目1 PHP环境搭建 项目2 学生信息管理 项目3 网站用户中心 。。。

2017-10-24

阿里巴巴Java开发手册

阿里巴巴集团推出的《阿里巴巴Java开发手册》是阿里巴巴近万名开发同学集体智慧的结晶,以开发视角为中心,详细列举如何开发更加高效、更加容错、更加有协作性,力求知其然,更知其不然,结合正反例,让Java开发者能够提升协作效率、提高代码质量。

2017-10-23

算法新解—刘新宇

《算法新解》一书由刘新宇所著,本书适合软件开发人员、编程和算法爱好者,以及高校学生阅读参考。邮电出版社出版发行

2017-09-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除