Ich habe 3 Projekte: Ein hystrix Armaturenbrett, ein Turbinen Server (unter Verwendung von AMQP) und eine APITurbine nur ein Host finden können, wenn Docker mit
Als ich in der Entwicklung env beginnen, richte ich zwei Instanzen der API (über Port 8080 und 8081). Um die Aggregation der Turbine zu testen, mache ich Anrufe und im Dashboard sehe ich Hosts: 2
.
Obwohl, wenn ich Docker verwende, selbst wenn der Load Balancer den 2 Server erreicht, sehe ich nur einen Host auf dem Hystrix Dashboard.
Meine Annahmen:
1- als beide Behälter auf dem gleichen Port (8080) beginnen, sieht Turbine sie als eine
2- als auch ich RabbitMQ dockerize, dies verursacht hier
meine ist docker-compose.yml
Datei
version: '2'
services:
postgres:
image: postgres:9.5
ports:
- "5432"
environment:
POSTGRES_PASSWORD: postgres
POSTGRES_USER: postgres
POSTGRES_DB: fq
volumes:
- /var/lib/postgresql
rabbitmq:
image: rabbitmq:3-management
ports:
- "5672"
- "15672"
environment:
RABBITMQ_DEFAULT_USER: turbine
RABBITMQ_DEFAULT_PASS: turbine
volumes:
- /var/lib/rabbitmq/
hystrix:
build: hystrixdashboard/.
links:
- turbine_server
ports:
- "8989:8989"
turbine_server:
build: turbine/.
links:
- rabbitmq
ports:
- "8090:8090"
persona_api:
build: persona/.
ports:
- "8080"
links:
- postgres
- rabbitmq
lb:
image: 'dockercloud/haproxy:1.5.1'
links:
- persona_api
volumes:
- /var/run/docker.sock:/var/run/docker.sock
ports:
- 80:80
meine persona_api
Konfigurationsdatei
spring:
application:
name: persona_api
profiles:
active: dev
rabbitmq:
addresses: 127.0.0.1:5672
username: turbine
password: turbine
useSSL: false
server:
compression.enabled: true
port: ${PORT:8080}
params:
datasource:
driverClassName: org.postgresql.Driver
username: postgres
password: postgres
maximumPoolSize: 10
poolName: fq_connection_pool
spring.jpa:
show-sql: true
hibernate:
ddl-auto: update
turbine:
aggregator:
clusterConfig: persona_api
appConfig: persona_api
---
spring:
profiles: dev
params:
datasource:
jdbcUrl: jdbc:postgresql://127.0.0.1:5432/fq
---
spring:
profiles: docker
rabbitmq:
addresses: rabbitmq:5672
params:
datasource:
jdbcUrl: jdbc:postgresql://postgres:5432/fq
Ich fürchte, wenn ich es in der Produktion (auf Rancher oder Docker Cloud) bereitstellen, sehe ich das gleiche Problem.
hier ist ein GIF von dem, was geschieht, wenn ich zwei APIs eingerichtet laden ausgewogene
Ich habe vielleicht die ganze config verpasst: eigentlich, in der application.yml habe ich einen Eintrag für dockerized rabbitmq mit dem Springprofil "docker" und der Einstiegspunkt meiner persona_api ist 'ENTRYPOINT [" java "," - Djava.security.egd = file:/dev /./ urandom "," - Dspring.profiles.active = docker "," - jar ","/app.jar "]] also zeige ich nach rechts Ress ... I –
Ahh Entschuldigung, die Konfiguration wurde abgeschnitten. Können Sie überprüfen, ob Rabbit alle Clients sieht, um festzustellen, ob das Problem mit dem Herstellen einer Verbindung oder einer Berichterstellung verbunden ist? –
Ich benutze den gleichen Benutzernamen für alle Verbindungen ('Turbine') und ich kann 3 Verbindungen auf RabbitMQ sehen, aber die Kanäle scheint seltsam, denke ich: https://i.imgur.com/4WmeW11.png sollte nicht Ich sehe nur einen Kanal? und sie teilen diesen Kanal, alle Server? Für die Warteschlangen habe ich nur einen: springCloudHystrixStream.xxxxxx –