【一】实战:SpringBoot与Elasticsearch完美融合,WebFlux响应式编程实现

【其一】安装新版的Elasticsearch(8.8.0)Kibana(8.8.0)

原文发布于:实战:SpringBoot与Elasticsearch完美融合,WebFlux响应式编程实现,欢迎使用 RSS 订阅获取最新更新。

1. 前言

文章包含以下内容:

  • 安装新版的Elasticsearch(8.8.0)Kibana(8.8.0)
  • SpringBoot 集成Elasticsearch CRUD和WebFlux 实现全响应式编程
    • Java17
    • spring-boot 3.1.2
    • SSL连接Elasticsearch
  • Filebeat(8.8.0)安装并上传SpringBoot 项目产生的日志,最后能在Kibana上查询到

搭建环境:

  • 已经安装Docker的GNU/linux主机

最近对响应式编程很来劲,什么都想用这个去写,就跟有了榔头看什么都是钉子一样。正好一些自己的项目想用上ES(Elasticsearch) ,所以干脆学学怎么做全响应式编程,和对ES的CRUD,当中还是碰到了挺多的问题,因为内容比较多,所以会分几节说明各个部分。

2. 安装新版的Elasticsearch(8.8.0)与Kibana(8.8.0)

Elasticsearch是啥就不用我介绍了吧,能够做到查询亿级数据毫秒级。

官方的安装文档在这里:run-elasticsearch-locally

太长不看的直接看下面的简单版本:

2.1 创建ES数据存储,插件,日志的目录

bash 复制代码
mkdir /dockerData/elasticsearch/data
mkdir /dockerData/elasticsearch/plugins
mkdir /dockerData/elasticsearch/logs

2.2 运行ES容器

bash 复制代码
创建network用来和kibana交互
docker network create elastic
拉取指定版本镜像
docker pull docker.elastic.co/elasticsearch/elasticsearch:8.8.0

docker run -d \
    --name elasticsearch \
    -e "ES_JAVA_OPTS=-Xms4096m -Xmx4096m" \
    -e "discovery.type=single-node" \
   -v /dockerData/elasticsearch/data:/usr/share/elasticsearch/data \
   -v /dockerData/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
    -v /dockerData/elasticsearch/logs:/usr/share/elasticsearch/logs \
    --privileged \
    --network elastic \
    -p 9200:9200 \
    -p 9300:9300 \
docker.elastic.co/elasticsearch/elasticsearch:8.8.0
  • -d: 表示以"后台模式"(detached mode)运行容器,即使关闭终端或退出SSH会话,容器仍然保持运行状态。
  • -name elasticsearch: 指定容器的名称为"elasticsearch",以便于以后可以使用名称来管理和访问容器。
  • -e "ES_JAVA_OPTS=-Xms4096m -Xmx4096m": 设置Elasticsearch的Java虚拟机选项,这里设置初始堆内存(Xms)和最大堆内存(Xmx)为4GB,即4096MB,这个根据你的机器自己调整。
  • -e "discovery.type=single-node": 设置Elasticsearch的节点发现类型为单节点(single-node),意味着Elasticsearch将作为单独的节点运行,而不是作为集群中的一部分。
  • -v /dockerData/elasticsearch/data:/usr/share/elasticsearch/data: 将宿主机上的/dockerData/elasticsearch/data目录挂载到容器内的/usr/share/elasticsearch/data目录,用于持久化存储Elasticsearch的数据。
  • -v /dockerData/elasticsearch/plugins:/usr/share/elasticsearch/plugins: 将宿主机上的/dockerData/elasticsearch/plugins目录挂载到容器内的/usr/share/elasticsearch/plugins目录,用于存储Elasticsearch插件。
  • -v /dockerData/elasticsearch/logs:/usr/share/elasticsearch/logs: 将宿主机上的/dockerData/elasticsearch/logs目录挂载到容器内的/usr/share/elasticsearch/logs目录,用于存储Elasticsearch的日志文件。
  • -privileged: 提供容器以特权模式运行,这对于某些特殊需求可能是必要的。
  • -network elastic: 将容器连接到名为"elastic"的Docker网络,这个网络通常用于连接Elasticsearch、Kibana和其他Elastic Stack组件。
  • -p 9200:9200: 将宿主机的9200端口映射到容器内的9200端口,用于访问Elasticsearch的HTTP API。
  • -p 9300:9300: 将宿主机的9300端口映射到容器内的9300端口,用于Elasticsearch的节点间通信(集群通信)。
  • docker.elastic.co/elasticsearch/elasticsearch:8.8.0: 指定要使用的Elasticsearch Docker镜像及其版本,这里使用的是8.8.0版本。

可能会有安装过ES的同学要问,这里我直接使用"后台模式"(detached mode),那怎么看到第一次生成的token呢?别急,现在有新办法了,在安装kibana的时候会说到

2.3 运行Kibana容器

就下面两行,需要注意的,运行的这个Kibana,我是没有在后台模式运行的,方便等等看生成的验证码。

bash 复制代码
docker pull docker.elastic.co/kibana/kibana:8.8.0
docker run --name kibana --net elastic -p 5601:5601 docker.elastic.co/kibana/kibana:8.8.0

当Kibana容器运行之后,用浏览器打开服务器的ip:5601 ,用的云服务的同学不要忘了配置上云服务配置安全组规则,接着会看到需要我们输入ES的token。

我们重新打开一个终端连接到服务器,然后输入以下命令进入到容器的终端

bash 复制代码
docker exec -it elasticsearch /bin/bash

然后通过下面的命令重新生成一个token

bash 复制代码
bin/elasticsearch-create-enrollment-token --scope kibana

此时你会看到终端会生成一个token,需要把这个token复制到浏览器kibana页面中,用草稿本记一下先。

还通过以下命令需要生成一个密码,记下来,等等登录kibana会用到

bash 复制代码
bin/elasticsearch-reset-password  -u elastic

如图:

填入token

输入完成之后,点击Configure Elastic,就会看到需要我们输出一个验证码

这个验证码,在刚刚打开Kibana的终端那可以找到,如下所示:

输入完成之后就需要我们刚刚生成的密码登录Kibana了。

到这一步完成了ES和Kibana的安装,你可以在新版的ES中探索一下有什么好玩的。

下一章节:【二】实战:SpringBoot与Elasticsearch完美融合,WebFlux响应式编程实现

相关推荐
用户908324602731 天前
Spring AI 1.1.2 + Neo4j:用知识图谱增强 RAG 检索(上篇:图谱构建)
java·spring boot
洛森唛2 天前
ElasticSearch查询语句Query String详解:从入门到精通
后端·elasticsearch
用户8307196840822 天前
Spring Boot 集成 RabbitMQ :8 个最佳实践,杜绝消息丢失与队列阻塞
spring boot·后端·rabbitmq
Java水解2 天前
Spring Boot 视图层与模板引擎
spring boot·后端
Java水解2 天前
一文搞懂 Spring Boot 默认数据库连接池 HikariCP
spring boot·后端
洋洋技术笔记2 天前
Spring Boot Web MVC配置详解
spring boot·后端
洛森唛3 天前
Elasticsearch DSL 查询语法大全:从入门到精通
后端·elasticsearch
初次攀爬者3 天前
Kafka 基础介绍
spring boot·kafka·消息队列
用户8307196840823 天前
spring ai alibaba + nacos +mcp 实现mcp服务负载均衡调用实战
spring boot·spring·mcp
Java水解3 天前
SpringBoot3全栈开发实战:从入门到精通的完整指南
spring boot·后端