首页 > 解决方案 > 当几个小时或几天没有请求时,Elasticsearch 会进入睡眠状态吗?

问题描述

我有一个带有 docker 的 3 节点 ElasticSearch (7.14.2),Web App 使用它和 Python ElasticSearch 库 (elasticsearch==7.15.0)。

我连接:

connection = Elasticsearch(
            [cnt_params],
            max_retries=100,
            retry_on_timeout=True,
            timeout=700,
            request_timeout=800,
        )
if connection.ping():
   return connection
else:
   return None 

一切运行正常,但有时在应用程序空闲几天或几小时后,ping() 返回 False,然后如果我再试一次,ping 返回 True。就像 ElasticSearch 进入睡眠状态一样。

这是我的 docker-compose.yml

version: '3'
services:  
  fsmysql_20211019:
    image: mysql:8.0.26
    command: --default-authentication-plugin=mysql_native_password
    container_name: fs_mysql_20211019
    cap_add:
      - SYS_NICE
    environment:
      MYSQL_ROOT_PASSWORD: some_pass
    volumes:
      - /opt/my_app/mysql/data:/var/lib/mysql
      - /opt/my_app/mysql/conf:/etc/mysql
    networks:
      fsnet:
        ipv4_address: 192.169.1.5

  fses20211019n01:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.14.2
    container_name: fses20211019n01
    environment:
      - network.host=192.169.1.1
      - node.name=fses20211019n01
      - cluster.name=fs-es-cluster
      - discovery.seed_hosts=fses20211019n02,fses20211019n03
      - cluster.initial_master_nodes=fses20211019n01,fses20211019n02,fses20211019n03
      - bootstrap.memory_lock=true
      - xpack.security.enabled=false
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - /opt/my_app/elasticsearch/esdata:/usr/share/elasticsearch/data
    networks:
      fsnet:
        ipv4_address: 192.169.1.1
  fses20211019n02:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.14.2
    container_name: fses20211019n02
    environment:
      - network.host=192.169.1.2
      - node.name=fses20211019n02
      - cluster.name=fs-es-cluster
      - discovery.seed_hosts=fses20211019n01,fses20211019n03
      - cluster.initial_master_nodes=fses20211019n01,fses20211019n02,fses20211019n03
      - bootstrap.memory_lock=true
      - xpack.security.enabled=false
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - /opt/my_app/elasticsearch/esdata2:/usr/share/elasticsearch/data
    networks:
      fsnet:
        ipv4_address: 192.169.1.2
  fses20211019n03:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.14.2
    container_name: fses20211019n03
    environment:
      - network.host=192.169.1.3
      - node.name=fses20211019n03
      - cluster.name=fs-es-cluster
      - discovery.seed_hosts=fses20211019n01,fses20211019n02
      - cluster.initial_master_nodes=fses20211019n01,fses20211019n02,fses20211019n03
      - bootstrap.memory_lock=true
      - xpack.security.enabled=false
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - /opt/my_app/elasticsearch/esdata3:/usr/share/elasticsearch/data
    networks:
      fsnet:
        ipv4_address: 192.169.1.3
        
  fsfluentd_20211019:
    image: qlands/fluentd:v1.14-1
    container_name: fs_fluentd_20211019
    environment:
      WAIT_HOSTS: 192.169.1.1:9200, 192.169.1.4:5900
      WAIT_HOSTS_TIMEOUT: 3200
    volumes:
      - /opt/my_app/log:/opt/formshare_log
      - /opt/my_app/fluentd:/fluentd/etc/
    networks:
      fsnet:
        ipv4_address: 192.169.1.6

  formshare_20211019:
    image: qlands/formshare2:20211019
    container_name: formshare_20211019
    environment:
      MYSQL_HOST_NAME: 192.169.1.5
      MYSQL_USER_NAME: root
      MYSQL_USER_PASSWORD: some_pass
      FORMSHARE_ADMIN_USER: admin
      FORMSHARE_ADMIN_EMAIL: info@me.com
      FORMSHARE_ADMIN_PASSWORD: some_pass
      ELASTIC_SEARCH_HOST: 192.169.1.1
      ELASTIC_SEARCH_PORT: 9200
      FORMSHARE_HOST: 192.169.1.4
      FORMSHARE_PORT: 5900
      FORWARDED_ALLOW_IP: localhost
      CONFIGURE_FLUENT: "true"
      WAIT_HOSTS: 192.169.1.1:9200, 192.169.1.5:3306
      WAIT_HOSTS_TIMEOUT: 1200
    volumes:
      - /opt/my_app/repository:/opt/formshare_repository
      - /opt/my_app/log:/opt/formshare_log
      - /opt/my_app/celery:/opt/formshare_celery
      - /opt/my_app/config:/opt/formshare_config
      - /opt/my_app/fluentd:/opt/formshare_fluentd
      - /opt/my_app/plugins:/opt/formshare_plugins
      - /opt/my_app/mosquitto:/etc/mosquitto/conf.d/
      - /opt/tomcat/webapps:/opt/formshare_odata_webapps
    ports:
      - 5900:5900
      - 9001:9001
    networks:
      fsnet:
        ipv4_address: 192.169.1.4
  
networks:
  fsnet:
     ipam:
        driver: default
        config:
          - subnet: 192.169.0.0/16

这是之前在这里报道过的:https ://discuss.elastic.co/t/does-elasticsearch-go-to-sleep-when-there-are-no-requests-for-a-couple-of-hours/231632 但是没有迹象表明可能导致它的原因。

任何想法都值得赞赏。

标签: elasticsearch

解决方案


推荐阅读