理解单例:

在程序运行的周期内,只初始化一次,称为单例

在go中,我们可以使用两种方法来实现单例。

  1. init 方法
  2. sync.Once

init非常地简单,在程序运行的时候,提前把我们需要的资源初始化好,就可以实现一个简单单例了。

但是在程序的其他地方,如何控制只实现一次?

这里就需要使用到sync.Once.

继续阅读

  • 设置一下每一台的主机名
    hostnamectl set-hostname k8s-master
    hostnamectl set-hostname k8s-node1
    hostnamectl set-hostname k8s-node2
    hostnamectl set-hostname k8s-node3
    hostnamectl set-hostname k8s-node4
    hostnamectl set-hostname k8s-node5

继续阅读

我们都知道Redis是一款内存型的KV数据库(为了便于理解,暂时先忽略掉Redis数据持久化的AOF和RDB)。
但是当内存即将被塞满的时候,如何决定哪些数据被淘汰是一种非常重要的决策。
继续阅读

不挂载目录可以直接启动,但是一旦挂载config和data目录后就无法启动

错误提示如下:

elasticsearch | Caused by: java.lang.IllegalStateException: Failed to create node environment

查询github后,解释是用户组权限问题,改成 chown -R 1000:1000 * 可以正常启动。

关于权限的问题,可以参考文章Docker 相同GID对应不同用户组导致的无权限问题

参考:https://github.com/elastic/elasticsearch-docker/issues/21