国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Spring Boot 2.0 M7 整合 ES 5 、Kibana 和 X-pack

這篇具有很好參考價(jià)值的文章主要介紹了Spring Boot 2.0 M7 整合 ES 5 、Kibana 和 X-pack。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

本章內(nèi)容

      1. ES 及 x-pack 下載安裝
      1. Kibana 及 x-pack 下載安裝
      1. Spring Boot 整合 ES
      1. Spring Boot 操作 ES

閱讀時(shí)間:5 分鐘

摘錄:打算起手不凡寫出鴻篇巨作的,往往堅(jiān)持不了完成第一章節(jié)

原文出處:spring4all.com

1. ES 及 x-pack 下載安裝

spring-data-elasticsearch 之 ElasticSearch 架構(gòu)初探,詳細(xì)看下我另外一篇文章《深入淺出 spring-data-elasticsearch 之 ElasticSearch 架構(gòu)初探(一)》 http://www.spring4all.com/article/330

ES 三大要素:

  • 文檔(Document) 文檔,在面向?qū)ο笥^念就是一個(gè)對(duì)象。在 ES 里面,是一個(gè)大 JSON 對(duì)象,是指定了唯一 ID 的最底層或者根對(duì)象。文檔的位置由 _index、_type 和 _id 唯一標(biāo)識(shí)。

  • 索引(Index) 索引,用于區(qū)分文檔成組,即分到一組的文檔集合。索引,用于存儲(chǔ)文檔和使文檔可被搜索。比如項(xiàng)目存索引 project 里面,交易存索引 sales 等。

  • 類型(Type) 類型,用于區(qū)分索引中的文檔,即在索引中對(duì)數(shù)據(jù)邏輯分區(qū)。比如索引 project 的項(xiàng)目數(shù)據(jù),根據(jù)項(xiàng)目類型 ui 項(xiàng)目、插畫項(xiàng)目等進(jìn)行區(qū)分。

和關(guān)系型數(shù)據(jù)庫(kù) MySQL 做個(gè)類比:

  • Document 類似于 Record
  • Type 類似于 Table
  • Index 類似于 Database

安裝步驟如下:

1. 下載 ES 5.5.3

下載地址: https://www.elastic.co/downloads/past-releases/elasticsearch-5-5-3

2. 安裝 ES 插件 x-pack

解壓 – 然后安裝 插件 x-pack

tar -xzf elasticsearch-5.3.0.tar.gz
cd elasticsearch-5.3.0/

// 安裝 X-Pack
bin/elasticsearch-plugin install x-pack


3. 配置 ES 并啟動(dòng)

設(shè)置 Xpack 安全驗(yàn)證為 false:

vim config/elasticsearch.yml

并添加下面配置:

xpack.security.enabled: false

并啟動(dòng) ES:

./bin/elasticsearch

或者后臺(tái)啟動(dòng)
./bin/elasticsearch -d

2. Kibana 及 x-pack 下載安裝

1. 下載 Kibana 5.5.3

下載地址: https://www.elastic.co/downloads/past-releases/kibana-5-5-3

2. 安裝 Kibana 插件 x-pack

解壓 – 然后安裝 插件 x-pack

tar -zxvf kibana-5.5.3-darwin-x86_64.tar.gz
cd kibana-5.5.3-darwin-x86_64/

// 安裝 X-Pack
bin/kibana-plugin install x-pack


3. 配置 Kibana 并啟動(dòng)

設(shè)置 Xpack 安全驗(yàn)證為 false:

vim config/kibana.yml

并添加下面配置:

xpack.security.enabled: false

并啟動(dòng) Kibana:

./bin/kibanah

或者后臺(tái)啟動(dòng)
nohup ./bin/kibana &

必須注意:先啟動(dòng) ES,再啟動(dòng) Kibana。

如果后臺(tái)啟動(dòng)注意,關(guān)閉命令如下:

ps aux | grep 'elastic'
kill -9 pid

啟動(dòng)成功后,打開網(wǎng)頁(yè)訪問(wèn) 127.0.0.1:5601 , 默認(rèn)賬號(hào)為:elasti,密碼為 changeme。

3. Spring Boot 整合 ES

1. pom.xml 依賴

代碼如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.spring4all</groupId>
    <artifactId>bysocket</artifactId>
    <version>1.0.0</version>

    <description>bysocket :: AI For All</description>

    <properties>
        <lombok.version>1.16.18</lombok.version>
    </properties>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.0.M7</version>
    </parent>

    <dependencies>

        <!-- web 依賴 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <!-- 日志 log4j2 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-log4j2</artifactId>
        </dependency>

        <!-- 容器 undertow -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-undertow</artifactId>
        </dependency>

        <!-- 簡(jiǎn)化 lombok -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>${lombok.version}</version>
        </dependency>

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

    <repositories>
        <repository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/libs-milestone</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
    </repositories>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>1.5.7.RELEASE</version>
                <configuration>
                    <fork>true</fork>
                    <addResources>true</addResources>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

</project>


Spring Data

要了解 spring-data-elasticsearch 是什么,首先了解什么是 Spring Data。 Spring Data 基于 Spring 為數(shù)據(jù)訪問(wèn)提供一種相似且一致性的編程模型,并保存底層數(shù)據(jù)存儲(chǔ)的。

Spring Data Elasticsearch

spring-data-elasticsearch 是 Spring Data 的 Community modules 之一,是 Spring Data 對(duì) Elasticsearch 引擎的實(shí)現(xiàn)。 Elasticsearch 默認(rèn)提供輕量級(jí)的 HTTP Restful 接口形式的訪問(wèn)。相對(duì)來(lái)說(shuō),使用 HTTP Client 調(diào)用也很簡(jiǎn)單。但 spring-data-elasticsearch 可以更快的支持構(gòu)建在 Spring 應(yīng)用上,比如在 application.properties 配置 ES 節(jié)點(diǎn)信息和 spring-boot-starter-data-elasticsearch 依賴,直接在 Spring Boot 應(yīng)用上使用。

這里依賴的 spring-boot-starter-data-elasticsearch 版本是 2.0,對(duì)應(yīng)的 spring-data-elasticsearch 版本是 5.5.3.RELEASE。 對(duì)應(yīng) ES 盡量安裝成版本一致 5.5.3。

2. application.properties 配置 ES 地址

application.properties 配置如下:

# ES
spring:
  data:
    elasticsearch:
      repositories:
        enabled: true
      cluster-name: elasticsearch
      cluster-nodes: 120.132.29.37:9300


默認(rèn) 9300 是 Java 客戶端的端口。9200 是支持 Restful HTTP 的接口。 更多配置:

  • spring.data.elasticsearch.cluster-name Elasticsearch 集群名。(默認(rèn)值: elasticsearch)
  • spring.data.elasticsearch.cluster-nodes 集群節(jié)點(diǎn)地址列表,用逗號(hào)分隔。如果沒有指定,就啟動(dòng)一個(gè)客戶端節(jié)點(diǎn)。
  • spring.data.elasticsearch.propertie 用來(lái)配置客戶端的額外屬性。
  • spring.data.elasticsearch.repositories.enabled 開啟 Elasticsearch 倉(cāng)庫(kù)。(默認(rèn)值:true。)

3. ES 數(shù)據(jù)操作層

文章實(shí)體類代碼如下:

/**
 * 文章
 */
@Document(indexName = "elasticsearch", type = "article")
@Data
public class ArticleEntity implements Serializable {

    // 作者信息
    private String writer;

    // 文章信息
    @Id
    private Long id;

    private String title;

    private String content;

    // 歸屬信息
    private Long admin;
}

  1. City 屬性名不支持駝峰式。
  2. indexName 配置必須是全部小寫,不然會(huì)出異常。 org.elasticsearch.indices.InvalidIndexNameException: Invalid index name [provinceIndex], must be lowercase

ES 數(shù)據(jù)操作層實(shí)現(xiàn)代碼如下:

@Repository
public interface ArticleRepository extends ElasticsearchRepository<ArticleEntity, Long> {

}

接口只要繼承 ElasticsearchRepository 接口類即可,具體使用的是該接口的方法:

    <S extends T> S save(S var1);

    <S extends T> Iterable<S> saveAll(Iterable<S> var1);

    Optional<T> findById(ID var1);

    boolean existsById(ID var1);

    Iterable<T> findAll();

    Iterable<T> findAllById(Iterable<ID> var1);

    long count();

    void deleteById(ID var1);

    void delete(T var1);

    void deleteAll(Iterable<? extends T> var1);

    void deleteAll();
    
    <S extends T> S index(S var1);

    Iterable<T> search(QueryBuilder var1);

    Page<T> search(QueryBuilder var1, Pageable var2);

    Page<T> search(SearchQuery var1);

    Page<T> searchSimilar(T var1, String[] var2, Pageable var3);

    void refresh();

    Class<T> getEntityClass();

增刪改查、搜索都有了,不需要我們具體實(shí)現(xiàn),只需我們傳入對(duì)應(yīng)的參數(shù)即可。

4. 文章搜索 ES 業(yè)務(wù)邏輯實(shí)現(xiàn)類

實(shí)現(xiàn)了批量保存到 ES 的接口,代碼如下:

@Service
@Primary
@AllArgsConstructor
@Log4j2
public class ArticleServiceImpl implements ArticleService {

    private final ArticleRepository articleRepository;

    @Override
    public boolean saveArticles(List<ArticleBean> articleBeanList) {

        List articleEntityList = transferToArticleEntityList(articleBeanList);
        articleRepository.saveAll(articleEntityList);

        return true;
    }

	... 省略
} 

4. Spring Boot 操作 ES

用 Postman 工具新增文章:

POST /api/articles HTTP/1.1
Host: 127.0.0.1:8080
Content-Type: application/json
Cache-Control: no-cache
Postman-Token: d6288a82-b98f-1c1e-6dad-15b0223102ab

[
	{
    	"id":2,
    	"title":"文章題目",
    	"writer":"溫嶺",
    	"content":"溫嶺是個(gè)沿海城市",
    	"admin":1
	},
	{
    	"id":3,
    	"title":"文章題目文章題目文章題目",
    	"writer":"溫1嶺",
    	"content":"溫2嶺是個(gè)沿海城市",
    	"admin":1
	}
]

然后在 Kibana 設(shè)置 indexName 為 “elasticsearch”,并打開 Discover tab,可以看到數(shù)據(jù),并可以搜索查詢,如圖:

更多 ES 文章:

  • 《Spring Boot 整合 Elasticsearch》
  • 《深入淺出 spring-data-elasticsearch 之 ElasticSearch 架構(gòu)初探(一)》
  • 《深入淺出 spring-data-elasticsearch 系列 – 概述及入門(二)》
  • 《深入淺出 spring-data-elasticsearch – 基本案例詳解(三)》
  • 《深入淺出 spring-data-elasticsearch – 實(shí)戰(zhàn)案例詳解(四)》

關(guān)注即可得系列教程文章哦!

作者:SpringForAll

原文地址:https://my.oschina.net/u/3677020/blog/1586271文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-830701.html

喜歡 0

到了這里,關(guān)于Spring Boot 2.0 M7 整合 ES 5 、Kibana 和 X-pack的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Logback:SpringBoot 2.0 整合 Logback (kafaka es)

    1. 規(guī)范了日志的打印格式? ? 2. 增加了彩色日志輸出?? 3. 支持異步推送kafka?? 4. 日志文件壓縮功能 我們無(wú)需關(guān)心 Logback 版本,只需關(guān)注 Boot 版本即可,Parent 工程自動(dòng)集成了 Logback。Springboot 本身就可以打印日志,為什么還需要規(guī)范日志? 日志統(tǒng)一,方便查閱管理。 日志歸

    2024年04月22日
    瀏覽(22)
  • Spring Boot 2.0 @ModelAttribute

    Spring Boot 2.0 @ModelAttribute

    Spring Boot 2.0 中的注解 @ModelAttribute 有什么作用呢? 通常情況下,我們會(huì)將 @ModelAttribute 注解放置在 Controller 中的某個(gè)方法上,那么,如果您在請(qǐng)求這個(gè) Controller 中定義的 URI 時(shí),會(huì)首先調(diào)用這個(gè)被注解的方法,并將該方法的結(jié)果作為 Model 的屬性,然后才會(huì)調(diào)用對(duì)應(yīng) URI 的處理

    2024年02月08日
    瀏覽(14)
  • 大數(shù)據(jù)技術(shù)(入門篇) --- 使用 Spring Boot 操作 CDH6.2.0 Hadoop

    大數(shù)據(jù)技術(shù)(入門篇) --- 使用 Spring Boot 操作 CDH6.2.0 Hadoop

    本人是web后端研發(fā),習(xí)慣使用spring boot 相關(guān)框架,因此技術(shù)選型直接使用的是spring boot,目前并未使用 spring-data-hadoop 依賴,因?yàn)檫@個(gè)依賴已經(jīng)在 2019 年終止了,可以點(diǎn)擊查看 ,所以我這里使用的是自己找的依賴, 聲明:此依賴可能和你使用的不兼容,我這個(gè)適用于我自己的

    2024年02月02日
    瀏覽(21)
  • 【Spring Boot】Spring Boot整合多數(shù)據(jù)源

    在實(shí)際的開發(fā)工作中,我們經(jīng)常會(huì)遇到需要整合多個(gè)數(shù)據(jù)源的情況,比如同時(shí)連接多個(gè)數(shù)據(jù)庫(kù)、讀寫分離、跨數(shù)據(jù)庫(kù)查詢等。本文將介紹如何使用Spring Boot來(lái)實(shí)現(xiàn)多數(shù)據(jù)源的整合,對(duì)于剛剛接觸開發(fā)的小伙伴可能有一些幫助。 在一個(gè)應(yīng)用程序中使用多個(gè)數(shù)據(jù)源意味著我們需要

    2024年02月10日
    瀏覽(28)
  • 六、Spring/Spring Boot整合ActiveMQ

    六、Spring/Spring Boot整合ActiveMQ

    2.1 applicationContext.xml 路徑:src/main/resources/applicationContext.xml 2.2 生產(chǎn)者 2.3 消費(fèi)者 3.1 applicationContext.xml 路徑:src/main/resources/applicationContext.xml 3.2 生產(chǎn)者 和隊(duì)列的代碼一樣,只是在配置文件里面改了destination 3.3 消費(fèi)者 和隊(duì)列的代碼一樣,只是在配置文件里面改了destination 實(shí)現(xiàn)

    2024年02月22日
    瀏覽(15)
  • Spring Boot進(jìn)階(96):輕松上手:實(shí)戰(zhàn)Spring Boot整合Docker

    Spring Boot進(jìn)階(96):輕松上手:實(shí)戰(zhàn)Spring Boot整合Docker

    ??Docker 是一個(gè)開源的應(yīng)用程序容器化工具,它可以將應(yīng)用程序和依賴組件打包到一個(gè)容器中,實(shí)現(xiàn)應(yīng)用程序的快速部署和運(yùn)行。Spring Boot 是一個(gè)快速開發(fā)應(yīng)用程序的框架,使用 Spring Boot 可以快速構(gòu)建各種各樣的應(yīng)用程序。本文將介紹如何使用 Spring Boot 整合 Docker,實(shí)現(xiàn)應(yīng)用

    2024年02月07日
    瀏覽(26)
  • Spring boot 整合各種功能

    我們?cè)谑褂胹pringboot時(shí),并沒有像之前項(xiàng)目加載我們的前端控制DispatcherServlet,也沒有寫編碼過(guò)濾器。但是springboot可以完成請(qǐng)求以及編碼的設(shè)置。 原理: 主啟動(dòng)類上的@SpringBootApplication注解上,而該注解是一個(gè)復(fù)合組件,而在復(fù)合注解中存在@EnableAutoConfiguration, 這個(gè)@EnableAutoCon

    2024年02月11日
    瀏覽(16)
  • Spring Boot整合MyBatis

    Spring Boot整合MyBatis

    在開發(fā)中,通常會(huì)涉及到對(duì)數(shù)據(jù)庫(kù)的數(shù)據(jù)進(jìn)行操作,Spring Boot在簡(jiǎn)化項(xiàng)目開發(fā)以及實(shí)現(xiàn)自動(dòng)化配置的基礎(chǔ)上,對(duì)關(guān)系型數(shù)據(jù)庫(kù)和非關(guān)系型數(shù)據(jù)庫(kù)的訪問(wèn)操作都提供了非常好的整合支持。 Spring Boot默認(rèn)采用整合SpringData的方式統(tǒng)一處理數(shù)據(jù)訪問(wèn)層,通過(guò)添加大量自動(dòng)配置,引入各

    2024年02月06日
    瀏覽(19)
  • Spring Boot 整合 Mybatis

    Spring Boot 整合 Mybatis

    導(dǎo)入依賴的時(shí)候,需要根據(jù)自己所使用的Spring Boot和MySQL的版本而定。 我這里使用的是MySQL數(shù)據(jù)庫(kù)。 首先創(chuàng)建一個(gè)mybatis_learn的數(shù)據(jù)庫(kù)。然后創(chuàng)建一個(gè)student的表。 對(duì)應(yīng)的,要實(shí)現(xiàn)一個(gè)Java的實(shí)體類,來(lái)對(duì)應(yīng)數(shù)據(jù)庫(kù)的表。 創(chuàng)建如圖結(jié)構(gòu)的各個(gè)包和文件。 這個(gè)接口是對(duì)應(yīng)Mybatis的

    2024年02月03日
    瀏覽(32)
  • Spring Boot 整合 Kafka

    環(huán)境:自行創(chuàng)建 Spring Boot 項(xiàng)目,添加測(cè)試依賴,并啟動(dòng) Zookeeper 和 kafka 服務(wù)。 注意:Zookeeper 默認(rèn)好像占用 8080 端口,自己注意端口占用問(wèn)題。 1. 添加依賴 2. 添加配置 3. 創(chuàng)建消息生產(chǎn)者 4. 創(chuàng)建消息消費(fèi)者 5. 消息發(fā)送測(cè)試

    2023年04月11日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包