ElasticSearch 需要注意的是,最新的es到了8.x的版本,很多的api发生了变化,我所下载的是7.12.1的版本我们要安装的内容包含2部分::存储、搜索和运算kibana:图形化展示首先Elasticsearch不用多说,是提供核心的数据存储、搜索、分析功能的。然后是Kibana,Elasticsearch对外提供的是Restful风格的API,任何操作都可以通过发送http请求来完成。不过http请求的方式、路径、还有请求参数的格式都有严格的规范。
数据结构-归并排序笔记 归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。归并的缺点在于需要O(N)的空间复杂度,归并排序的思考更多的是解决在磁盘中的外排序问题。时间复杂度:O(N*logN)空间复杂度:O(N)稳定性:稳定。
rabbitMQ d \可以看到在安装命令中有两个映射的端口:- 15672:RabbitMQ提供的管理控制台的端口- 5672:RabbitMQ的消息发送处理接口1 交换机发消息的时候必须绑定相应的队列2 绑定了的队列都能收到交换机发送的消息模拟WorkQueue,实现一个队列绑定多个消费者基本思路如下:1.在RabbitMQ的控制台创建一个队列,名为work.queue2.在publisher服务中定义测试方法,在1秒内产生50条消息,发送到work.queue。
数据结构-快速排序 快速排序法介绍:快速排序(Quicksort)是对冒泡排序的一种改进。基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列快速排序整体的综合性能和使用场景都是比较好的,所以才敢叫快速排序时间复杂度:O(N*logN)空间复杂度:O(logN)稳定性:不稳定。
分布式事务Seata 解决分布式事务的方案有很多,但实现起来都比较复杂,因此我们一般会使用开源的框架来解决分布式事务问题。在众多的开源分布式事务框架中,功能最完善、使用最多的就是阿里巴巴在2019年开源的Seata了。
数据结构-希尔排序(ShellSort)笔记 希尔排序是对直接插入排序的优化。当gap > 1时都是预排序,目的是让数组更接近于有序。当gap == 1时,数组已经接近有序的了,这样就会很快。这样整体而言,可以达到优化的效果。希尔排序的时间复杂度不好计算,因为gap的取值方法很多,导致很难去计算,这里不深究。时间复杂度O(N^1.5)空间复杂度O(1)稳定性:不稳定。
数据结构-插入排序笔记 插入排序(Insertion Sorting)的基本思想是:把n个待排序的元素看成为一个有序表和一个无序表,开始时有序表中只包含一个元素,无序表中包含有n-1个元素,排序过程中每次从无序表中取出第一个元素,把它的排序码依次与有序表元素的排序码进行比较,将它插入到有序表中的适当位置,使之成为新的有序表。
八大排序-冒泡排序 冒泡排序应该是我们最熟悉的排序了,在C语言阶段我们就学习了冒泡排序。他的思想也非常简单:两两元素相比,前一个比后一个大就交换,直到将最大的元素交换到末尾位置。这是第一趟一共进行n-1趟这样的交换将可以把所有的元素排好。(n-1趟是因为只剩两个元素时只需要一趟就可以完成)
数据结构-贪心算法笔记 注意LinkedList的插入add方法,还有排序实现comparetor接口是怎么实现的。我们使用list.toArray()来将集合转化为数组,注意转化为二维数组的实现。我们使用list.toArray()来将集合转化为数组,注意转化为二维数组的实现。我们使用list.toArray()来将集合转化为数组,注意转化为二维数组的实现。而且使用Integer.compare()方法,防止数据溢出。这里自己实现转化集合为二维数组会超出内存限制。分两个维度,那么一个维度一个维度来。我这里统一对左边界进行排序。