ElasticSearch—动态映射与静态映射(十)
映射就是 Mapping,它用来定义一个文档以及文档所包含的字段该如何被存储和索引。所以,它其实有点类似于关系型数据库中表的定义。 映射分类 动态映射 顾名思义,就是自动创建出来的映射。es 根据存入…
ElasticSearch—锁和版本控制(九)
当我们使用 es 的 API 去进行文档更新时,它首先读取原文档出来,然后对原文档进行更新,更新完成后再重新索引整个文档。不论你执行多少次更新,最终保存在 es 中的是最后一次更新的文档。但是如果有两…
ElasticSearch—文档路由(八)
es 是一个分布式系统,当我们存储一个文档到 es 上之后,这个文档实际上是被存储到 master 节点中的某一个主分片上。 例如新建一个索引,如下: 接下来,向该索引中保存一个文档: PUT /bl…
Websocket通讯(上层的STOMP)
前面两种建立websocket通讯,不管是用javax的包还是spring的包都是用的比较底层的协议,下面我们来看看用上层的STOMP来建立websocket通讯 http://www.enmalvi…
Websocket通讯(底层的协议)
在spring和spring boot中配置websocket的代码基本一样的,只是pom引入的包不一样,需要注意的是不同的tomcat版本对websocket的支持可能有区别,造成了代码的区别。 s…
ElasticSearch—增删改查(七)
创建数据PUT 第一条数据: PUT /test/_doc/1 { "name":"xjh", "age":21, "desc":"shangjin", "tags":["xx","ss","dd",…
Elasticsearch—Rest风格说明(六)
一种软件架构风格,而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。 基本Rest命令说明: 基础测…
ElasticSearch—索引基本操作(五)
新建索引 通过 head 插件新建索引 在 head 插件中,选择 索引选项卡,然后点击新建索引。新建索引时,需要填入索引名称、分片数以及副本数。 索引创建成功后,如下图: 0、1、2、3、4 分别表…
ElasticSearcha—分词器(四)
内置分词器 ElasticSearch 核心功能就是数据检索,首先通过索引将文档写入 es。查询分析则主要分为两个步骤: 词条化:分词器将输入的文本转为一个一个的词条流。过滤:比如停用词过滤器会从词条…
ElasticSearch—核心概念(三)
在前面的学习中,我们已经掌握了es是什么,同时也把es的服务已经安装启动,那么es是如何去存储数据,数据结构是什么,又是如何实现搜索的呢?我们先来聊聊ElasticSearch的相关概念吧! 集群,节…
ElasticSearch—安装(二)
ElasticSearch安装 我们需要下载和安装ElasticSearch的服务端和客户端! ElasticSearch是使用java开发的,且本版本的es需要的jdk版本要是1.8以上,所以安装E…
ElasticSearch—简介(一)
Lucene Lucene 是一个开源、免费、高性能、纯 Java 编写的全文检索引擎,可以算作是开源领域最好的全文检索工具包。 在实际开发中,Lucene 几乎适用于任何需要全文检索的场景,所以 L…
Java—根据经纬度计算实际距离
在项目中可能会遇到需要计算坐标点的距离等,所以我们需要通过这个包来实现。 <dependency> <groupId>org.gavaghan</groupId> <artif…
Kotlin—简介与环境搭建(一)
让开发人员更快乐的一门现代编程语言。 这是 Kotlin中文官网上的一句话,是的!它真的让我感到了快乐!!! Kotlin出来已经良久了。Kotlin有着众多优势,不管是用于Android开发中,还是…
Mybatis-plus—kotlin代码生成
mybatis-plus 2.1.5 发布,新增 kotlin 代码生成 [v2.1.5] 2017.11.11 通用枚举 spring boot 兼容调整PostgreSQL 支持关键词非关键词转换…
Docker—Docker Compose(七)
Docker ——DockerFile build run 手动操作,单个容器! 微服务。100个微服务!依赖关系。 Docker Compose 来轻松高效的管理容器。定义运行多个容器。 官方介绍 …
Docker—网络(六)
理解Docker0 测试 查看本地ip ip addr 这里我们分析可得,有三个网络: lo 127.0.0.1 # 本机回环地址 eth0 172.17.90.138 # 阿里云的私有IP dock…
Docker—DockerFile(五)
我们要研究自己如何做一个镜像,而且我们写的微服务项目以及springboot打包上云部署,Docker就是 最方便的。 微服务打包成镜像,任何装了Docker的地方,都可以下载使用,极其的方便。 流程…
Docker—数据卷(四)
docker的理念回顾: 将应用和运行的环境打包形成容器运行,运行可以伴随着容器,但是我们对于数据的要求,是希望能够持久化的! 就好比,你安装一个MySQL,结果你把容器删了,就相当于删库跑路了,这T…
Docker—镜像(三)
镜像是什么 镜像是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码、运行时、库、环境变量和配置文件。 Docker镜像加载原理 …
Docker—常用命令(二)
了解过Docker的基本知识后,接下来看看Docker的常用命令。 http://www.enmalvi.com/2020/10/29/docker/ 帮助命令 docker version #显示D…
Docker—安装与基本组成(一)
Docker为什么出现 1.环境(切换/配置)麻烦 一般我们写程序的,能接触到好几个环境: 自己写代码的环境叫做开发环境。给测试去跑的环境叫做测试环境。测试完可以对外使用的叫做生产环境。 其实我们在学…
Java—线程池Executors使用中的坑
我们介绍过了Java中线程池的常见用法以及基本原理。 http://www.enmalvi.com/2020/10/26/java-threadpoolexecutor-threadpooltaske…
Java—ThreadPoolExecutor/ThreadPoolTaskExecutor 线程池技术提高系统吞吐量
1、概述 在Java中,我们一般通过集成Thread类和实现Runnnable接口,调用线程的start()方法实现线程的启动。但如果并发的数量很多,而且每个线程都是执行很短的时间便结束了,那样频繁的…
Java—集合知识总结
集合概述 集合:集合是Java中提供的一种容器,可以用来存储多个数据。 集合和数组的区别: (1)数组长度的是固定的,集合的长度是可变的。 (2)数组中存储的都是同一类型的元素。集合存储的都是对象,对…
Java—Pair、MutablePair、ImmutablePair(实用数据结构推荐apache)
当一个函数返回两个值并且两个值都有重要意义时我们一般会用Map的key和value来表达,但是这样的话就需要两个键值对,用Map映射去做处理时,此时的key相当于value的一个描述或者引用,而具体的…
Java—Future、FutureTask、CompletionService、CompletableFuture多线程并发中归集问题的效率对比
开启线程执行任务,不管是使用Runnable(无返回值不支持上报异常)还是Callable(有返回值支持上报异常)接口,都可以轻松实现。那么如果是开启线程池并需要获取结果归集的情况下,如何实现,以及优…
Java8—新特性之CompletableFuture(构建异步应用)
异步 传统单线程环境下,调用函数是同步的,必须等待程序返回结果后,才可进行其他处理。因此为了提高系统整体的并发性能,引入了异步执行~ jdk中已经内置future模式的实现。Future是Java5添…
Java—Future与FutureTask的区别与联系
Future模式简述 传统单线程环境下,调用函数是同步的,必须等待程序返回结果后,才可进行其他处理。 Futrue模式下,调用方式改为异步。Futrue模式的核心在于:充分利用主函数中的等待时间,利用…
Java—Future模式(数据库连接池)
在学习了Future模式后可以来尝试着应用它,所有就有了这个数据库连接池。 http://www.enmalvi.com/2020/10/25/java-future-2/ 1、手动写一个数据库连接池…