Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

445
Vistas
Nodos dockerizados de Elasticsearch no disponibles para Liferay 7.1

Liferay no puede reconocer mi clúster de Elasticsearch cuando se inicia. Aquí está mi configuración docker-compose:

 version: '2.2' services: es01: image: docker.elastic.co/elasticsearch/elasticsearch:7.1.1 container_name: es01 environment: - node.name=es01 - discovery.seed_hosts=es02 - cluster.initial_master_nodes=es01,es02 - cluster.name=liferay-cluster - bootstrap.memory_lock=true - "ES_JAVA_OPTS=-Xms512m -Xmx512m" ulimits: memlock: soft: -1 hard: -1 volumes: - esdata01:/usr/share/elasticsearch/data ports: - "9299:9200" - "9399:9300" expose: - "9299" networks: - esnet es02: image: docker.elastic.co/elasticsearch/elasticsearch:7.1.1 container_name: es02 environment: - node.name=es02 - discovery.seed_hosts=es01 - cluster.initial_master_nodes=es01,es02 - cluster.name=liferay-cluster2 - bootstrap.memory_lock=true - "ES_JAVA_OPTS=-Xms512m -Xmx512m" ulimits: memlock: soft: -1 hard: -1 ports: - "9298:9200" - "9398:9300" expose: - "9298" volumes: - esdata02:/usr/share/elasticsearch/data networks: - esnet volumes: esdata01: driver: local esdata02: driver: local networks: esnet:

Contenido del archivo com.liferay.portal.search.elasticsearch6.configuration.ElasticsearchConfiguration.config

 transportAddresses="127.0.0.1:9299" logExceptionsOnly="false" operationMode="REMOTE" indexNamePrefix="myprefix-" clusterName="liferay-cluster"

Al iniciar docker-compose, puedo acceder a mis dos clústeres ES en: http://127.0.0.1:9299/ y http://127.0.0.1:9298/

Sin embargo, cuando se inicia liferay, no puede acceder a los nodos ES:

 NoNodeAvailableException[None of the configured nodes are available: [{#transport#-1}{vUNCF_HNRtu_tYUjkqhXvg}{127.0.0.1}{127.0.0.1:9299}]]

Alguien probó esta configuración? Cualquier ayuda sería apreciada. Gracias :-)

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

He encontrado una solución. Podría ayudar si alguien está tratando de hacer lo mismo.

Como dije en mi comentario a @ibexit, estoy ejecutando dos clústeres ES dockerizados y dos portales Liferay separados (no en contenedores) en la misma máquina (modo de desarrollo).

Cambié la dirección de transporte en el archivo de configuración de Liferay OSGi, ya que debe coincidir con el puerto tcp de transporte donde se ejecuta ES:

 transportAddresses="127.0.0.1:9301" logExceptionsOnly="false" operationMode="REMOTE" indexNamePrefix="myprefix-" clusterName="liferay-cluster"

También agregué la propiedad network.publish_host=127.0.0.1 en mis clústeres de ES (sin esta propiedad, Liferay no pudo detectar los nodos de ES)

Aquí está mi docker-compose.yml :

Usando ES 6.1.4

 version: '2.2' services: es01: image: docker.elastic.co/elasticsearch/elasticsearch:6.1.4 container_name: es01 environment: - node.name=es01 - cluster.name=liferay-cluster - bootstrap.memory_lock=true - "ES_JAVA_OPTS=-Xms512m -Xmx512m" - transport.tcp.port=9301 - network.publish_host=127.0.0.1 ulimits: memlock: soft: -1 hard: -1 volumes: - esdata01:/usr/share/elasticsearch/data ports: - "9201:9200" - "9301:9301" networks: - esnet es02: image: docker.elastic.co/elasticsearch/elasticsearch:6.1.4 container_name: es02 environment: - node.name=es02 - cluster.name=liferay-cluster2 - bootstrap.memory_lock=true - "ES_JAVA_OPTS=-Xms512m -Xmx512m" - transport.tcp.port=9302 - network.publish_host=127.0.0.1 ulimits: memlock: soft: -1 hard: -1 ports: - "9202:9200" - "9302:9302" volumes: - esdata02:/usr/share/elasticsearch/data networks: - esnet volumes: esdata01: driver: local esdata02: driver: local networks: esnet:

¡ network.publish_host hizo el truco!

over 4 years ago · Santiago Trujillo Denunciar

0

Por defecto, elasticsearch une los puertos de transporte y http solo a localhost ( local ). Entonces, sus puertos expuestos por la ventana acoplable no funcionan. Debe vincularse a una IP específica o usar 0.0.0.0 para todo o sitio como se explica aquí: https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-network.html#network-interface -valores

Tenga en cuenta que habilitar esto iniciará el nodo en modo de producción seguido de varias comprobaciones de arranque. Consulte los documentos si necesita más información sobre estos temas o busque SO.

over 4 years ago · Santiago Trujillo Denunciar

0

Mi configuración local de trabajo con docker compose y dos nodos de búsqueda elástica en contenedores docker y Liferay ejecutándose en el host. Estoy usando imágenes de elasticsearch 6.8.2 modificadas de acuerdo con los documentos de Liferay disponibles en docker hub con url: https://hub.docker.com/repository/docker/ktorek/liferay7-elasticsearch .

Estoy usando el espacio de trabajo de gradle. Entonces configuré: configs/local/osgi/configs/com.liferay.portal.search.elasticsearch6.configuration.ElasticsearchConfiguration.config :

 operationMode=REMOTE clusterName=docker-cluster transportAddresses=127.0.0.1:9300,127.0.0.1:9301

He matado mucho tiempo con la configuración de transportAddresses , ya que está documentado que usa corchetes y comillas cuadradas transportAddresses=["192.168.1.1:9300","192.168.1.2:9300"] pero no funciona. La configuración enumerada anteriormente contiene la sintaxis de configuración de trabajo real.

Mi docker-compose.yml :

 version: '3.7' services: es01: container_name: "es01" image: ktorek/liferay7-elasticsearch:latest environment: - node.name=es01 - node.data=true - cluster.name=docker-cluster - xpack.security.enabled=false - bootstrap.memory_lock=true - "ES_JAVA_OPTS=-Xms512m -Xmx512m" - "discovery.zen.ping.unicast.hosts=es02" ports: - "9300:9300" - "9200:9200" networks: - mynetwork volumes: - es01-data:/usr/share/elasticsearch/data ulimits: memlock: soft: -1 hard: -1 es02: container_name: "es02" image: ktorek/liferay7-elasticsearch:latest environment: - node.name=es02 - node.data=true - cluster.name=docker-cluster - xpack.security.enabled=false - bootstrap.memory_lock=true - "ES_JAVA_OPTS=-Xms512m -Xmx512m" - "discovery.zen.ping.unicast.hosts=es01" ports: - "9301:9300" - "9201:9200" networks: - mynetwork volumes: - es02-data:/usr/share/elasticsearch/data ulimits: memlock: soft: -1 hard: -1 networks: mynetwork: name: mynetwork driver: bridge ipam: config: - subnet: 172.30.29.0/24
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda