elasticsearch5.4.3、kibana分布式安装

Elasticsearch集群配置与优化
本文详细介绍了如何在两台机器上配置Elasticsearch集群,包括master和slave节点的设置,以及为解决大量数据插入时的gcoverhead问题而进行的ping超时时间调整。同时,还提供了Kibana和Elasticsearch-head的配置指南。

设置elasticsearch

两台机器:

master ip 192.168.31.106

slave ip 192.168.31.162

master  elasticsearch.yml

bootstrap.memory_lock: false
bootstrap.system_call_filter: false

node.name: node-1
node.master: true
node.data: true
network.bind_host: 192.168.31.106
network.publish_host: 192.168.1.106
network.host: 0.0.0.0
http.max_content_length: 1024mb
discovery.zen.ping.unicast.hosts: ["192.168.31.162"]
http.cors.enabled: true
http.cors.allow-origin: "*"
discovery.zen.ping_timeout: 10s
discovery.zen.minimum_master_nodes: 2
discovery.zen.fd.ping_timeout: 10000s
discovery.zen.fd.ping_retries: 10

The discovery.zen.ping_timeout (which defaults to 3s) determines how long the node will wait before deciding on starting an election or joining an existing cluster. 

discovery.zen.fd:

ping_timeout

How long to wait for a ping response, defaults to 30s.

 

ES在大量插入数据时会产生gc overhead 错误,在gc overhead 过程中会进入stop-the-world状态,导致ping不通,因此调整ping的时间长度

slave elasticsearch.yml

bootstrap.memory_lock: false
bootstrap.system_call_filter: false

node.name: node-2
node.master: true
node.data: true
network.bind_host: 192.168.31.162
network.publish_host: 192.168.1.162
network.host: 0.0.0.0
http.max_content_length: 1024mb
discovery.zen.ping.unicast.hosts: ["192.168.31.106"]
http.cors.enabled: true
http.cors.allow-origin: "*"
discovery.zen.ping_timeout: 10s
discovery.zen.minimum_master_nodes: 2
discovery.zen.fd.ping_timeout: 10000s
discovery.zen.fd.ping_retries: 10

设置node.master: true ,两台机器哪个先启动,哪个就是master。

设置kibana

server.host: "0.0.0.0"
elasticsearch.url: "http://192.168.1.162:9200"

设置ElasticSearh-head

下载elasticsearch-head

cd /path/to/elasticsearch-head
npm install -g grunt-cli
npm install
grunt server
http://localhost:9100/
 

### Elasticsearch Kibana 分布式存储引擎与 Spring Boot 集成 #### 1. 准备工作 为了实现ElasticsearchKibana分布式存储引擎与Spring Boot应用的成功集成,需先确保环境配置得当。这包括安装并运行最新稳定版的JDK、Maven构建工具以及Git版本控制系统。 #### 2. 添加依赖项到项目中 在`pom.xml`文件里加入必要的依赖来支持Elasticsearch客户端操作: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-elasticsearch</artifactId> </dependency> ``` 此步骤允许应用程序通过RESTful API与Elasticsearch集群通信[^3]。 #### 3. 配置连接参数 编辑application.properties或application.yml文件设置Elasticsearch节点地址和其他必要选项: 对于properties格式: ```properties spring.elasticsearch.rest.uris=http://localhost:9200 ``` YAML格式则为: ```yaml spring: elasticsearch: rest: uris: http://localhost:9200 ``` 上述配置指定了本地主机上监听端口9200的服务作为目标Elasticsearch实例的位置[^4]。 #### 4. 创建实体类映射至索引文档结构 定义Java对象表示要保存于Elasticsearch中的记录形式;例如创建名为`Article.java`的新POJO类用于管理文章元数据: ```java import org.springframework.data.annotation.Id; import org.springframework.data.elasticsearch.annotations.Document; @Document(indexName = "articles", type = "_doc") public class Article { @Id private String id; private String title; private String content; } ``` 这段代码片段展示了如何声明一个简单的模型类,并将其关联到特定名称下的索引内。 #### 5. 实现CRUD接口方法 利用Spring Data Repository简化持久层逻辑开发过程。只需继承自`CrudRepository<T, ID>`接口即可获得基本的操作函数集: ```java import org.springframework.data.repository.CrudRepository; public interface ArticleRepository extends CrudRepository<Article, String> {} ``` 这样就完成了针对之前所建模类型的增删改查功能封装。 #### 6. 测试API交互效果 最后一步是验证整个系统的正常运作情况。可以通过编写单元测试案例或者启动Web服务器暴露HTTP endpoint供外部调用来完成这项任务。比如,在控制器层面添加如下路径处理器: ```java @RestController @RequestMapping("/api/articles") public class ArticlesController { @Autowired private final ArticleRepository repository; public ArticlesController(ArticleRepository repo){ this.repository = repo; } @GetMapping("/{id}") ResponseEntity<?> get(@PathVariable String id) { ... } // Other CRUD endpoints... } ``` 以上就是关于怎样把Elasticsearch及其配套组件融入现有Spring Boot项目的指导说明。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值