Spring Boot 集成 Flyway 实现数据库版本控制

2020-05-26
阅读 6 分钟
3.1k
在项目迭代开发中,难免会有更新数据库 Schema 的情况,比如添加新表、在表中增加字段或者删除字段等,那么当我对数据库进行一系列操作后,如何快速地在其他同事的电脑上同步?如何在测试/生产服务器上快速同步?

如何阅读源码?

2020-04-26
阅读 3 分钟
8.7k
阅读源码是每个优秀开发工程师的必经之路,那么这篇文章就来讲解下为什么要阅读源码以及如何阅读源码。 首先来说下为什么要读源码,有学习源码的必要吗? 为什么要阅读源码? 关于为什么阅读和学习源码,我个人认为可能有以下几点: (一)吊打面试官,应对面试 为了找到更好的工作,应对面试,因为在面试中肯定会问到源...

给学妹的 Java 学习路线

2020-04-19
阅读 3 分钟
2.2k
大家好,这篇文章主要是讲解下如何自学 Java,这个问题有很多粉丝私信问过,今天又有直系学妹问我如何学习 Java? 我就以我的经历,总结下分享给大家,有不当指出或者有更好的方法建议也欢迎留言指出,大家一起交流进步。 首先给出一张思维导图,图片和思维导图源文件可以在公众号武培轩后台回复java即可。 首先第一步就...

我就站在你面前,你却视而不见!

2020-04-15
阅读 2 分钟
1.3k
在上一篇文章一男子给对象转账5000元,居然又退还了!中,我们学习了并发三大特性之一的原子性,并对原子性问题进行分析。 这篇文章我们就一起来了解下可见性: 可见性 首先看下可见性的概念: 可见性就是指某一个线程修改了共享变量的值时,其他线程能够立即得知这个修改。 什么?难道变量被修改了,线程不应该马上读取...

一男子给对象转账5000元,居然又退还了!

2020-04-14
阅读 3 分钟
2.2k
在并发编程中,所有问题的根源就是可见性、原子性和有序性问题,这篇文章我们就来聊聊原子性问题。 在介绍原子性问题之前,先来说下线程安全: 线程安全 我理解的线程安全就是不管单线程还是多线程并发的时候,始终能保证运行的正确性,那么这个类就是线程安全的。 其中在《Java并发编程实战》一书中对线程安全的定义如...

一文搞懂 ThreadLocal 原理

2020-04-05
阅读 10 分钟
1.6k
本文主要介绍线程封闭中的其中一种体现:ThreadLocal,将会介绍什么是 ThreadLocal;从 ThreadLocal 源码角度分析,最后介绍 ThreadLocal 的应用场景。

听说用 Lombok 可以早点下班?

2020-03-31
阅读 5 分钟
1.6k
在介绍之前,先通过是否使用 Lombok 的效果来看下对比,首先来看下没有 Lombok 之前,我们的一个简单的 Java 对象(POJO)是长什么样子的:

原来 CPU 为程序性能优化做了这么多

2020-03-29
阅读 3 分钟
1.9k
CPU 缓存是为了提高程序运行的性能,CPU 在很多处理上内部架构做了很多调整,比如 CPU 高速缓存,大家都知道因为硬盘很慢,可以通过缓存把数据加载到内存里面,提高访问速度,而 CPU 处理也有这个机制,尽可能把处理器访问主内存时间开销放在 CPU 高速缓存上面,CPU 访问速度相比内存访问速度又要快好多倍,这就是目前大...

如何优雅地中止线程?

2020-03-27
阅读 3 分钟
1k
首先来讲解一个错误的方式来中止线程 — stop:中止线程,并且清除监控器锁的信息,但是可能导致线程安全问题,JDK 不建议使用,类似的方法还有 destory,由于 JDK 从未实现该方法,在这里就不介绍了。

线程数,射多少更舒适?

2020-03-25
阅读 3 分钟
2.8k
我相信大家都用过线程池,但是线程池数量设置为多少比较合理呢? 线程数的设置的最主要的目的是为了充分并合理地使用 CPU 和内存等资源,从而最大限度地提高程序的性能,因此让我们一起去探索吧! 首先要考虑到 CPU 核心数,那么在 Java 中如何获取核心线程数? 可以使用 Runtime.getRuntime().availableProcessor() 方...

Elasticsearch 之聚合分析入门

2020-03-22
阅读 4 分钟
2.8k
首先举一个生活中的例子,这个是京东的搜索界面,在搜索框中输入“华为”进行搜索,就会得到如上界面,搜索框就是我们常用的搜索功能,而下面这些,比如分类、热点、操作系统、CPU 类型等是根据 ES 的聚合分析获得的相关结果。

一文搞懂 Elasticsearch 之 Mapping

2020-03-18
阅读 6 分钟
2k
这篇文章主要介绍 Mapping、Dynamic Mapping 以及 ElasticSearch 是如何自动判断字段的类型,同时介绍 Mapping 的相关参数设置。

看完这篇还不会 Elasticsearch 搜索,那我就哭了!

2020-03-13
阅读 6 分钟
6.3k
本文主要介绍 ElasticSearch 搜索相关的知识,首先会介绍下 URI Search 和 Request Body Search,同时也会学习什么是搜索的相关性,如何衡量相关性。

ElasticSearch 文档的增删改查都不会?

2020-03-11
阅读 4 分钟
3k
这个表包含了 Index、Create、Read、Update、Delete 这五种方法,我们先来看下 CRUD 操作的 HTTP 请求都长什么样子?

ElasticSearch 分词器,了解一下

2020-03-08
阅读 10 分钟
3.2k
这篇文章主要来介绍下什么是 Analysis ,什么是分词器,以及 ElasticSearch 自带的分词器是怎么工作的,最后会介绍下中文分词是怎么做的。

搜索引擎之倒排索引浅析

2020-03-03
阅读 3 分钟
4.7k
倒排索引(Inverted Index) 也常被称为反向索引,是搜索引擎中非常重要的数据结构,为什么说它重要呢,我们首先拿一本书《重构 改善既有代码的设计》举个例子:

一篇文章带你搞定 ElasticSearch 术语

2020-02-27
阅读 8 分钟
4.4k
这篇文章主要介绍 ElasticSearch 的基本概念,学习文档、索引、集群、节点、分片等概念,同时会将 ElasticSearch 和关系型数据库做简单的类比,还会简单介绍 REST API 的使用用法。

手把手教你搭建 ELK 实时日志分析平台

2020-02-27
阅读 5 分钟
10.4k
Logstash 是服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到诸如 Elasticsearch 等存储库中。

深入源码分析SpringMVC执行过程

2020-02-26
阅读 17 分钟
6.4k
首先,让我们从 Spring MVC 的四大组件:前端控制器(DispatcherServlet)、处理器映射器(HandlerMapping)、处理器适配器(HandlerAdapter)以及视图解析器(ViewResolver) 的角度来看一下 Spring MVC 对用户请求的处理过程,过程如下图所示:

什么是链表?

2020-02-26
阅读 4 分钟
2.7k
如上图所示就是链表的概念图,Blue、Yellow、Red 这 3 个字符串作为数据被存储于链表中,也就是数据域,每个数据都有 1 个指针,即指针域,它指向下一个数据的内存地址,其中 Red 是最后 1 个数据,Red 的指针不指向任何位置,也就是为 NULL,指向 NULL 的指针通常被称为空指针。

什么是数组?

2020-02-26
阅读 3 分钟
2.4k
今天要介绍的主角就是-数组,数组也是数据呈线性排列的一种数据结构。与前一节中的链表不同,在数组中,访问数据十分简单,而添加和删除数据比较耗工夫。这和什么是数据结构那篇文章中讲到的姓名按拼音顺序排列的电话簿类似。

什么是栈?

2020-02-26
阅读 4 分钟
1.6k
本文将介绍一个重要的数据结构—栈,和之前讲到的链表、数组一样也是一种数据呈线性排列的数据结构,不过在这种结构中,我们只能访问最新添加的数据。栈就像是一摞书,拿到新书时我们会把它放在书堆的最上面,取书时也只能从最上面的新书开始取。

什么是哈希表?

2020-02-26
阅读 5 分钟
2.3k
哈希表存储的是由键(key)和值(value)组成的数据。 例如,我们将每个人的性别作为数据进行存储,键为人名,值为对应的性别,其中 M 表示性别为男,F 表示性别为女。

全文搜索引擎 Elasticsearch 入门:集群搭建

2020-02-26
阅读 5 分钟
2.8k
本文主要介绍什么是 ElasticSearch 以及为什么需要它,如何在本机安装部署 ElasticSearch 实例,同时会演示安装 ElasticSearch 插件,以及如何在本地部署多实例集群,方便在日后学习分布式相关原理。

令人痛哭的10道题答案解析

2020-02-25
阅读 5 分钟
1.7k
Dubbo提供了随机、轮询、最少调用优先等多种负载均衡策略,提供对zk等多种注册中心等支持,能够自动完成服务的注册与发现。dubbo提供可视化的管理后台,方便对服务状态进行监控和管理。dubbo的数据通信默认使用netty来实现,拥有非常不错的性能。Dubbo默认的容错方案是Failover Cluster,即:失败自动切换,当出现失败,...

什么是队列?

2020-02-25
阅读 4 分钟
3.6k
与前面提到的数据结构相同,队列中的数据也呈线性排列。虽然与栈有些相似,但队列中添加和删除数据的操作分别是在两端进行的,就和队列这个名字一样,把它想象成排成一队的人更容易理解。在队列中,处理总是从第一名开始往后进行,而新来的人只能排在队尾。

最大的 String 字符长度是多少?

2020-02-25
阅读 2 分钟
2.3k
String 类可以说是在 Java 中使用最频繁的类了,就算是刚刚接触 Java 的初学者也不会陌生,因为对于 Java 程序来说,main 方法就是使用一个 String 类型数组来作为参数的(String[] args)。对于这样一个频繁使用的类,String 字符串可以有多长呢?十万字符?一百万字符?还是无限的呢?

一篇文章带你了解 ZooKeeper 架构

2020-02-25
阅读 5 分钟
2.9k
上一篇文章,我们讲解了 ZooKeeper 入门知识,这篇文章主要讲解下 ZooKeeper 的架构,理解 ZooKeeper 的架构可以帮助我们更好地设计协同服务。

什么是数据结构?

2020-02-25
阅读 2 分钟
1.8k
本篇文章主要来介绍什么是数据结构。 首先让我们来看一张图片: 数据存储于计算机的内存中。内存如上图所示,形似排成 1 列的箱子,1 个箱子里存储 1 个数据。 数据存储于内存时,决定了数据顺序和位置关系的便是数据结构。 其实在我们生活中用到很多数据结构的知识,那么举一个我们生活中的栗子: 首先举一个从上往下顺...

Nginx 了解一下?

2020-02-25
阅读 4 分钟
2.5k
这篇文章主要简单的介绍下 Nginx 的相关知识,主要包括以下几部分内容: Nginx 适用于哪些场景? 为什么会出现 Nginx? Nginx 优点 Nginx 的编译与配置 Nginx 适用于哪些场景? 如图所示,一个请求会先经过 Nginx 到达应用服务层,然后再去访问数据层(比如 Redis、MySQL 等),提供基本的数据功能。我们的应用服务因为...