本次和大家分享的主要是docker搭建es和springboot操作es的内容,也便于工作中或将来使用方便,因此从搭建es环境开始到代码插入信息到es中;主要节点如下:

  1. elasticsearch启动
  2. mobz/elasticsearch-head启动
  3. kibana启动
  4. springboot操作es

1.elasticsearch启动

  我本机环境是windows10,要挂载es的配置文件需要在本机上创建配置文件,因此这里创建配置文件C:UsersAdministratoreses-master.yml,配置文件内容如:

 #集群名称
cluster.name: "shenniu_elasticsearch"
#本节点名称
node.name: master
#是否master节点
node.master: true
#是否存储数据
node.data: true
#head插件设置
http.cors.enabled: true
http.cors.allow-origin: "*"
http.port:
transport.tcp.port:
#可以访问的ip
network.bind_host: 0.0.0.0

  这里配置一个es的cluster的master节点,集群名称shenniu_elasticsearch,有了配置下面就是启动es命令:

 docker pull elasticsearch
docker run -d --name es-master -p : -p : -v C:/Users/Administrator/es/es-mast
er.yml:/usr/share/elasticsearch/config/elasticsearch.yml elasticsearch

  启动完后在浏览器浏览 http://192.168.183.9:9200/ 得到如下成功信息:

  

2.mobz/elasticsearch-head启动

  elasticsearch-head做为es集群状态查看插件工具,用起来还是挺方便的,启动命令如:

 docker pull mobz/elasticsearch-head
docker run -d -p : --name mobz-es mobz/elasticsearch-head

  然后在浏览器录入 http://192.168.183.9:9100/ ,能够看到插件的操作界面,其中包含了索引,数据,基本查询等功能很是方便

  

  为了博客内容充实性,这里我添加了一些日志到es中,通过head工具能够看到如:

    

3.kibana启动

  kibana是专门针对es内容的一款查看工具,和elasticsearch-head不同的是前者主要是内容显示,通常有elk的组合,这里同样通过docker来启动下

 docker pull kibana
docker run --name kibana -e ELASTICSEARCH_URL=http://192.168.183.9:9200 -p 5601:5601 -d kibana

  这里需要配置关联的es的地址,否则kibana界面无法正常使用,倘若es停了,kibana界面也会变成如下

  

  如果es和kibana都正常的话,就能够进入到如下界面

  

4.springboot操作es

  要说springboot中使用es有很多方式,这里使用的是它集成的包,通过maven添加如下依赖:

 <!--es-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>

  然后需要在配置文件中增加关于es的的相关配置,由于这里采用的是resposity操作es,所以这里需要设置为启动状态:

 spring:
data:
elasticsearch:
cluster-name: shenniu_elasticsearch
cluster-nodes: 192.168.183.9:
repositories:
enabled: true

  cluster-name对应的是上面启动es时集群配置的名称,cluster-nodes对应集群访问的ip和端口;一般往es中存储的都是对象形式,所以这里需要定义一个实体类,这里是 MoEsLog:

 @Document(indexName = "eslog")
public class MoEsLog {
private String message; public String getMessage() {
return message;
} public void setMessage(String message) {
this.message = message;
} private String dateTime; public String getDateTime() {
return dateTime;
} public void setDateTime(String dateTime) {
this.dateTime = dateTime;
} @Id
private String _id;
}

  通过注解@Document里面的indexName来创建es索引名,然后通过继承ElasticsearchRepository来使用里面的增删改查方法,这里创建一个es工厂接口如:

 @Repository
public interface IEsRepository extends ElasticsearchRepository<MoEsLog, String> {
}

  到此基本的配置和底层的工厂接口都完成了,剩下的就是怎么调用和简单的封装了,这里以save方法为例:

 @Service
public class EsLogServiceImpl implements EsLogService { @Autowired
private IEsRepository esRepository; @Override
public void addEsLog(String message) { Executors.newFixedThreadPool().submit(new Runnable() {
@Override
public void run() {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ"); MoEsLog esLog = new MoEsLog();
esLog.setMessage(message);
esLog.setDateTime(simpleDateFormat.format(new Date()));
esRepository.save(esLog);
}
});
} @Override
public <T> void addEs(T t) {
addEsLog(JsonUtil.toJson(t));
}
}

  值得主要的是里面对datetime属性赋值的是一个时间字符串,格式如:yyyy-MM-dd'T'HH:mm:ss.SSSZ,这里匹配es的时间格式,不出意外的运行程序后,能够在kibana中看到如下信息:

  

  这里再转到9100端口的mobz/elasticsearch-head界面,也能够看到如下的记录:

  

docker+es+kibana和springboot中使用es的更多相关文章

  1. Elasticsearch核心技术(1)--- Docker容器中运行ES、Kibana、Cerebro

    Docker容器中运行ES,Kibana,Cerebro和Logstash安装与数据导入ES 想加强ES有关的知识,看了阮一鸣老师讲的<Elasticsearch核心技术与实战>收获很大, ...

  2. Docker中Nginx,部署Tomcat,部署es + kibana,Docker的可视化,Commit镜像

    docker安装使用Nginx # 搜索信息 docker search nginx # 下载镜像 docker pull nginx # 运行测试 # --name给容器命名 # -p 宿主机端口: ...

  3. SpringBoot整合ES+Kibana

    前言:最近在写一个HTTP代理服务器,记录日志使用的是ES,所以涉及到SpringBoot和ES的整合,整合完毕后又涉及到数据可视化分析,所以使用了Kibana进行管理,有些坑,需要记录一下 Spri ...

  4. Docker(40)- docker 实战三之安装 ES+Kibana

    背景 参考了狂神老师的 Docker 教程,非常棒! https://www.bilibili.com/video/BV1og4y1q7M4?p=16 es 前言 es 暴露的端口很多 es 十分耗内 ...

  5. docker efk(filebeat+logstash+es+kibana)

    ​ 1.系统架构 ​ 通常我们说的elastic stack,也就是elk,通过es 收集日志数据,存到elasticsearch,最后通过kibana进行统计分析,但是elastic公司后续又推出了 ...

  6. docker-compose搭建单机多节点es + kibana

    docker-compose.yml配置如下: version: '2.2' services: elasticsearch: image: docker.elastic.co/elasticsear ...

  7. Spring Cloud全链路追踪实现(Sleuth+Zipkin+RabbitMQ+ES+Kibana)

    简介 在微服务架构下存在多个服务之间的相互调用,当某个请求变慢或不可用时,我们如何快速定位服务故障点呢?链路追踪的实现就是为了解决这一问题,本文采用Sleuth+Zipkin+RabbitMQ+ES+ ...

  8. SpringBoot支持SpringData es

    ElasticSearch CRUD 1.springboot springData es spring data 是spring对数据访问抽象.这些数据可以放入db,index,nosql等包含以下 ...

  9. 在SpringBoot中使用Docker(利用dockerfile-maven-plugin插件)

    周末在家做了一个实验: 将Docker通过插件的方式集成到SpringBoot中 然后通过Maven命令根据项目中的Dockerfile自动生成Docker镜像,同时将镜像推送到远程Linux服务器( ...

随机推荐

  1. RESTful API 设计

    http://www.ruanyifeng.com/blog/2014/05/restful_api.html

  2. TestNG 自动化测试入门教程--典型示例

    TestNG介绍 TestNG是Java中的一个测试框架, 类似于JUnit 和NUnit,   功能都差不多, 只是功能更加强大,使用也更方便 Java中已经有一个JUnit的测试框架了.  Tes ...

  3. junit+mock+spring-test构建后台单元测试

    from:从0开始,构建前后端分离应用 1. 一些基本概念 1.1 为什么要进行单元测试?我自己的理解是 1.能够快速发现问题.避免衍生BUG的出现     在对一些现有代码进行修改时,或者修改现有B ...

  4. etcd_selector.go

    ) % s.len //not use lock for performance so it is not precise even         server := s.Servers[s.cur ...

  5. 网络流解线性规划问题 BZOJ1061: [Noi2008]志愿者招募

    线性规划定义: 在给定有限的资源和竞争约束情况下,很多问题都可以表述为最大化或最小化某个目标.如果可以把目标指定为某些变量的线性函数,而且如果可以将资源约束指定为这些变量的等式或不等式,则得到了一个线 ...

  6. BZOJ_2303_[Apio2011]方格染色 _并查集

    BZOJ_2303_[Apio2011]方格染色 _并查集 Description Sam和他的妹妹Sara有一个包含n × m个方格的 表格.她们想要将其的每个方格都染成红色或蓝色. 出于个人喜好, ...

  7. BZOJ_2157_旅游_树剖+线段树

    BZOJ_2157_旅游_树剖+线段树 Description Ray 乐忠于旅游,这次他来到了T 城.T 城是一个水上城市,一共有 N 个景点,有些景点之间会用一座桥连接.为了方便游客到达每个景点但 ...

  8. 使用limit查询的同时取得总的记录数:SQL_CALC_FOUND_ROWS和FOUND_ROWS()

    通常我们都用如下的sql来进行列表 SELECT COUNT(*) FROM users WHERE name LIKE 'a%';SELECT name, email FROM users WHER ...

  9. webpack下css/js/html引用图片的正确方式

    在webpack的处理下,为了使引用的图片被打包编译(以把src的图片文件编译到dist中或者对src的文件进行base64编码),应使用如下引用方式: 1. 在html/ejs等中引用图片: 借助r ...

  10. PCB设计检查

    一.资料输入阶段1.在流程上接收到的资料是否齐全(包括:原理图.*.brd文件.料单.PCB设计说明以及PCB设计或更改要求.标准化要求说明.工艺设计说明文件)2.确认PCB模板是最新的3. 确认模板 ...