摘要:
1.Producer 即消息生产者,负责产生消息,一般由业务系统负责产生消息。 2.Consumer 即消息消费者,负责消费消息,一般是后台系统负责异步消费。 3.Push Consumer Consumer的一种,应用通常向Consumer对象注册一个Listener接口,一旦收到消息,Consu 阅读全文
摘要:
消息中间件需要解决哪些问题 1.Publish/Subscribe(发布订阅) 发布订阅是消息中间件最基本的功能 2.Message Priority(消息优先级) 在消息队列中,每条消息都有不同的优先级,优先级高的先投递。 由于rocketmq的所有消息都是持久化的,按照优先级排序开销会非常大,所 阅读全文
摘要:
什么是Elastic-Job Elastic-Job是当当网大牛基于Zookepper,Quartz开发并且开源的Java分布式定时任务,解决Quartz不支持分布式的弊端。它由两个相互独立的子项目Elastic-Job-Lite和Elastic-Job-Cloud组成。 基本概念 分片概念:任务分 阅读全文
摘要:
安装redis 首先下载redis 进入到redis-4.0.10的src目录下,启动redis服务 注意:由于启动后是在前台运行,想要让redis服务在后台运行,有很多方法。 使用redis-cli命令测试服务是否开启 搭建redis集群 在根目录(随便)下创建文件夹 在7000-7005每个目录 阅读全文
摘要:
单例模式 作为对象的创建模式,单例模式确保某一个类只有一个实例,且自行实例化并向系统提供这个实例,这个类称为单例类。 单例模式的特点: 1. 单例类只有一个实例 2. 单例类必须自己创建自己的唯一实例 3. 单例类必须给所有对象提供这一实例 饿汉式 饿汉式,就是使用类的时候不管用的是不是类的单例部分 阅读全文
摘要:
简单工厂模式 简单工厂模式是类的创建模式,又称静态工厂方法模式。简单工厂模式的实质是由一个工厂类根据具体的参数,动态创建具体的实现类(这些实现类都继承自一个父类或接口)的实例。 为什么要使用简单工厂模式 解耦合:A对象调用B对象时,通过new创建一个B对象,当要用C对象取代B对象时,程序不得不重写A 阅读全文
摘要:
HashMap 特点: HashMap的key和value都允许为空,无序的,且非线程安全的 数据结构: HashMap底层是一个数组,数组的每一项又都是链表,即数据和链表的结合体。当新建一个HashMap对象时,就会初始化一个数组 HashMap的存储单元Entry里面存放键值,且它持有指向下一个 阅读全文
摘要:
归并排序 归并排序: 将两个有序的数组归并成一个更大的有序数组。要将一个数组排序,可以先(递归的)将它分成两半分别排序,然后把结果归并成一个数组。归并排序最吸引人的性质是它能保证将任意长度为N的数组排序所需的时间和NlogN成正比。它的主要缺点是它所需的额外空间和N成正比。 原地归并的抽象方法 实现 阅读全文
摘要:
希尔排序 希尔排序是一种基于插入排序的排序算法。对于大规模的乱序数组,插入排序很慢,因为它只会交换相邻的元素,因此元素只能一点一点从数组的一端移动到另一端。希尔排序为了加快速度简单的改进了插入排序,交换不相邻的元素以对数组的局部进行排序,并最终用插入排序将局部有序的数组排序 希尔排序的思想是使数组中 阅读全文
摘要:
插入排序 插入排序: 将元素插入到已排序好的元素中,为了给要输入的元素腾出空间,我们需要将其余所有元素在插入之前都向右移动一位。 与选择排序一样,当前索引左边的所有元素都是有序的,但它们的最终位置还不确定,为了给更小的元素腾出空间,它们可能会被移动。当索引到达数组的右端时,数组排序就完成了。 和选择 阅读全文