文章482
标签257
分类63
在单台服务器部署多个ElasticSearch节点

在单台服务器部署多个ElasticSearch节点

对于想要学习ES的人来说, 集群是一个不得不谈的话题, 而且就目前的形式来说, 越来越要求开发人员会用分布式. 对于ES来说, 由于其本身对分布式集群已经支持的相当完善, 已经屏蔽了大多数的服务发现, fallover等. 但是学习集群首先要有一个集群, 对于大多数人来说, 还是希望在本地运行一个集群. 所以本篇是在笔者查阅了大量资料之后, 经过尝试总结的在ES 7.x版本下如何在单节点下运行ES集群.

阅读本文你将学会:

  • 通过将ES复制多份实现单节点集群部署
  • 通过使用启动参数(Options)部署单节点集群
  • 使用Docker部署单节点集群
  • Elasticsearch7目录详解
  • Elasticsearch7配置详解
  • 部署Elasticsearch7时需要修改的操作系统参数
  • ……
ElasticSearch为什么在高版本移除映射类型

ElasticSearch为什么在高版本移除映射类型

由于ElasticSearch官方文档使用的还是2.x版本, 而在使用其中的某些API时, 会出现deprecated提示. 本篇主要总结ElasticSearch中那些由于版本更新而不再推荐使用的API, 例如: 移除了映射类型(mapping types). 同时也作为正式学习ElasticSearch前的又一次预热.

本篇主要内容:

  • 什么是映射类型(mapping types)
  • 为什么要移除映射类型
  • 映射类型的可选替代方案: 每种文档类型一个索引/自定义类型字段
  • Elastic Search 各个版本对types的支持
  • 一些Elastic Search在新版本的使用技巧
  • ……
ElasticSearch之安装篇

ElasticSearch之安装篇

本篇主要讲述了ElasticSearch的基本概念, 以及ElasticSearch的安装与简单配置, 主要是为接下来ElasticSearch热身.

主要内容包括:

  • Elastic Search相关介绍
  • Elastic Search安装与配置
  • Kibana安装
  • 一些由于版本兼容而导致的坑
  • ……
为什么在Java中String被设计为不可变

为什么在Java中String被设计为不可变

最近在学习新的编程语言Scala了, 在Scala中变量分为val(不可变类型), 和var(可变类型). 突发奇想想到了在Java中的String都被声明为final, 也就相当于是Scala中都被声明为val了吧! 但是具体是为什么呢? 本篇文章带你探寻在Java中String被声明为不可变背后的秘密!

本篇文章主要内容:

  • String源码简单分析
  • String在JVM中的常量池的解析: 字面量, new, +连接, intern()
  • String中的==和equals
  • 什么是Java中的不可变? 不可变的好处与坏处?
  • 证明回答String被设计成不可变和不能被继承的原因
  • ……

示例代码: https://github.com/JasonkayZK/Java_Samples/tree/java-string

YAML文件总结

YAML文件总结

最近在学习Kubernetes, 其中建立pods需要用到YAML配置.

同时在Springboot中,推荐使用properties或者YAML文件来完成配置,但是对于较复杂的数据结构来说,YAML又远远优于properties。本文就快速介绍YAML的常见语法格式.

本篇主要内容:

  • YAML的基本语法与格式要求
  • YAML中的注释
  • YAML的数据类型: 对象, 数组, 常量
  • YAML中的特殊符号
  • ……
NIO相关基础篇之实战

NIO相关基础篇之实战

继前两篇介绍NIO的文章之后, 本篇主要是对之前NIO相关知识的实战. 实战内容包括:

  • FileChannel: 传统IO与NIO读取对比
  • SocketChannel: 服务端OIO与NIO对比(Selector和SelectionKey实现)
  • 内存映射文件: ByteBuffer和MappedByteBuffe对比
  • Scatter & Gatter
  • TransferFron & TransferTo
  • Pipe
  • DatagramChannel
  • ……

本文转自: Java NIO?看这一篇就够了!

代码实例: https://github.com/JasonkayZK/Java_Samples/tree/java-nio

NIO相关基础篇之操作系统I/O模型

NIO相关基础篇之操作系统I/O模型

本篇继上篇之后, 继续NIO相关话题内容,主要谈谈一些Linux 网络 I/O模型下与NIO相关的知识, 主要包括:

  • 用户空间以及内核空间:
  • Linux 网络 I/O模型: Blocking I/O, Non-Blocking I/O, I/O Multiplexing, Signal Driven I/O, Asynchronous I/O
  • 五种I/O模型对比
  • 文件描述符fd以及Linux内核命令: select, poll, epoll等
  • Zero-Copy相关;
  • 直接内存
  • Selector空轮询在Netty中的处理:
  • ……
NIO相关基础篇之JDK

NIO相关基础篇之JDK

最近在看《Netty In Action》, 发现里面好多东西看不懂, 实际上是Java IO相关的知识太少了! 尤其是Java 1.4之后推出的NIO. 所以在网上搜集了资料, 在这里整理一下关于Java NIO的相关知识.

  • Java IO体系以及IO相关主题
  • 什么是NIO? NIO与OIO(Old IO)/IO的区别是什么?
  • Buffer(缓冲区): 视图缓存区类以及相关问题, Buffer的属性, 使用
  • Channel(通道): 通道的种类, 如何获取通道, 使用transferTo连接通道
  • FileLock(文件锁): 文件锁lock()与tryLock()
  • Selector(选择器): 选择器的种类与方法, SelectionKey的四个重要常量
  • 简单介绍AIO
  • …….

代码实例: https://github.com/JasonkayZK/Java_Samples/tree/java-nio


在Linux下配置Docker的相关问题以及工具推荐

在Linux下配置Docker的相关问题以及工具推荐

今天在VSCode中添加与Docker相关的插件时, 一直报错, 果然是Linux用户权限的问题. 本篇文章带你解决Docker在Linux操作系统中权限问题的同时, 教你简单配置Docker, 并推荐Docker管理的相关软件!

本篇包括:

  • Linux下非root用户的权限配置(解决connect EACCES /var/run/docker.sock错误)
  • Docker设置国内安装源
  • Docker相关管理软件推荐
  • ……
Kubernetes之Minikube安装与无法获取docker镜像源的解决方法

Kubernetes之Minikube安装与无法获取docker镜像源的解决方法

今天在安装部署Minikube的时候, 使用minikube start的时候, 由于k8s镜像源被墙无法拉取所需要的镜像,所以通过在阿里云下载镜像通过docker tag 改标签的方式来进行.

本篇文章主要内容:

  • Minikube的安装与配置
  • Minikube安装镜像源获取shell
  • Kubernetes简单配置
  • 一些Kubernetes的工具
  • ……