摘要: 一 延时消息队列任务 1 延时消息队列介绍 (1)业务场景 例如在如下场景中可能会需要延时队列: 用户下订单成功之后隔20分钟给用户发送上门服务通知短信 订单完成一个小时之后通知用户对上门服务进行评价 业务执行失败之后隔10分钟重试一次 类似的场景比较多,简单的处理方式就是使用定时任务,假如数据比较 阅读全文
posted @ 2019-10-14 21:25 Vagrant。 阅读(483) 评论(0) 推荐(0) 编辑
摘要: 一、Redis介绍 Redis是一个开源的,基于内存的结构化数据存储媒介,可以作为数据库、缓存服务或消息服务使用。Redis支持多种数据结构,包括字符串、哈希表、链表、集合、有序集合、位图、Hyperloglogs等。Redis具备LRU淘汰、事务实现、以及不同级别的硬盘持久化等能力,并且支持副本集 阅读全文
posted @ 2019-06-21 16:08 Vagrant。 阅读(901) 评论(0) 推荐(0) 编辑
摘要: 一 概述 Object是java所有类的基类,是整个类继承结构的顶端,也是最抽象的一个类。 Object 是类层次结构的根类。每个类都使用 Object 作为超类。所有对象(包括数组)都实现这个类的方法。所有的类都直接或者间接的继承自Object类。该类的设计也符合面向对象中"万事万物皆对象"的思想 阅读全文
posted @ 2019-10-21 16:52 Vagrant。 阅读(418) 评论(0) 推荐(0) 编辑
摘要: 一 ArrayList循环删除陷阱 模板测试代码如下: 1 错误写法一 执行结果如下: 可以发现,有一个"bb"的字符串没有被删除掉。 2 错误写法二 执行结果如下: 发现抛出ConcurrentModificationException的异常。 3 问题分析 要分析产生上述错误现象的原因唯有翻一翻 阅读全文
posted @ 2019-10-21 11:15 Vagrant。 阅读(2076) 评论(0) 推荐(1) 编辑
摘要: 一 简介 单例模式是一种常用的软件设计模式,其定义是单例对象的类只能允许一个实例存在。 许多时候整个系统只需要拥有一个全局的对象,这样有利于我们协调系统整体的行为。 比如在某个服务器程序中,该服务器的配置信息存放在一个文件中,这些配置数据由一个单例对象统一读取,然后服务进程中的其他对象再通过这个单例 阅读全文
posted @ 2019-10-14 14:13 Vagrant。 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 一 wait/notify如何使用 wait\notify 这两个方法是Object 类中的方法,这两个方法包括他们的重载方法一共有5个,而Object 类中一共才 12 个方法,可见这2个方法的重要性。我们先看看 JDK 中的代码: 其中有3个方法是 native 的,也就是由虚拟机本地的c代码执 阅读全文
posted @ 2019-10-13 20:33 Vagrant。 阅读(1056) 评论(0) 推荐(0) 编辑
摘要: 一 前言 在 Java 的并发编程中,有一个问题需要特别注意,那就是死锁,如果发生了死锁,基本就是重启,而重启将会丢失运行中的数据。所以,了解死锁的形成并排查死锁到预防死锁成了一个重要的问题。 我们了解任何一个事情的步骤是:what,how,why,why not。 二 什么是死锁 上面的代码中,我 阅读全文
posted @ 2019-10-13 18:01 Vagrant。 阅读(698) 评论(0) 推荐(0) 编辑
摘要: /** * 详见博客: * https://www.cnblogs.com/onepixel/articles/7674659.html * https://www.cnblogs.com/yjiyjige/p/3256700.html */ public class SortAlgorithm { /** * 1、冒泡排序 * 算法描述 * 比较相邻的元素。如果第一个比第二个大,就交换它们两个; 阅读全文
posted @ 2019-09-23 22:45 Vagrant。 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 一 前言 打开浏览器从输入网址到网页呈现在大家面前,背后到底发生了什么?经历怎么样的一个过程?先给大家来张总体流程图,具体步骤请看下文分解! 从URL输入到页面展现 从URL输入到页面展现 总体来说分为以下几个过程: (1)URL 解析 (2)DNS 解析:将域名解析成 IP 地址 (3)TCP 连 阅读全文
posted @ 2019-09-07 15:03 Vagrant。 阅读(1796) 评论(0) 推荐(0) 编辑
摘要: 一 背景 1 什么是雪崩效应 分布式系统环境下,服务间类似依赖非常常见,一个业务调用通常依赖多个基础服务。如下图,对于同步调用,当库存服务不可用时,商品服务请求线程被阻塞,当有大批量请求调用库存服务时,最终可能导致整个商品服务资源耗尽,无法继续对外提供服务。并且这种不可用可能沿请求调用链向上传递,因 阅读全文
posted @ 2019-09-07 15:02 Vagrant。 阅读(2030) 评论(0) 推荐(0) 编辑
摘要: 一 什么是类的加载机制 虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。 类的加载指的是将类从“.java”代码文件编译成的“.class”字节码文件中的二进制数据读入到内存中,将其放在运行时数 阅读全文
posted @ 2019-08-23 21:41 Vagrant。 阅读(645) 评论(0) 推荐(0) 编辑