Микросервисы Spring Boot: ошибка «Служба недоступна» при доступе к конечной точке через шлюз APIJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Микросервисы Spring Boot: ошибка «Служба недоступна» при доступе к конечной точке через шлюз API

Сообщение Anonymous »

Я работаю над микросервисным приложением Spring Boot и закрепил все сервисы. Хотя все службы работают, я столкнулся с проблемой при попытке доступа к конечным точкам через шлюз API.
Сообщение об ошибке:

Код: Выделить всё

{
"timestamp": "2024-06-24T14:01:32.938+00:00",
"path": "/departments",
"status": 503,
"error": "Service Unavailable",
"requestId": "1a88ca39-1"
}
Описание проблемы:
Сервер Eureka (реестр служб) регистрирует только шлюз API, а не другие службы (

Код: Выделить всё

department-service
, служба сотрудников и служба проекта). Это заставляет меня думать, что шлюз API не может найти службы или службы неправильно настроены для получения конфигурации с сервера конфигурации, который является другой независимой службой.
Файлы конфигурации:
Конфигурация реестра служб (Eureka):

Код: Выделить всё

server:
port: 8761

spring:
application:
name: service-registry

eureka:
client:
register-with-eureka: false
fetch-registry: false
serviceUrl:
defaultZone: http://service-registry:8761/eureka/
Конфигурация API-шлюза:

Код: Выделить всё

server:
port: 8060

eureka:
client:
serviceUrl:
defaultZone: http://service-registry:8761/eureka/

spring:
application:
name: api-gateway
cloud:
gateway:
routes:
- id: employee-service
uri: lb://employee-service
predicates:
- Path=/employees/**
- id: department-service
uri: lb://department-service
predicates:
- Path=/departments/**
- id: project-service
uri: lb://project-service
predicates:
- Path=/projects/**
Конфигурация отдела:

Код: Выделить всё

spring:
application:
name: department-service

config:
import: "optional:configserver:http://config-server:8088"
Конфигурация сотрудника и проекта такая же, как и у отдела, только другое имя приложения:
Конфигурация сервера< /strong>:

Код: Выделить всё

server:
port: 8088

spring:
application:
name: config-server
profiles:
active: native
cloud:
config:
server:
native:
search-locations: classpath:/config
Конфигурация отдела сервера[/b]:

Код: Выделить всё

eureka:
client:
serviceUrl:
defaultZone: http://service-registry:8761/eureka/

spring:
application:
name: department-service
datasource:
url: jdbc:jdbc:postgresql://postgres:5432/microservice_comp_data
username: postgres
password: password
driver-class-name: org.postgresql.Driver
jpa:
hibernate:
ddl-auto: update
show-sql: true
properties:
hibernate:
format_sql: true
database: postgresql
database-platform: org.hibernate.dialect.PostgreSQLDialect

server:
error:
include-message: always
port: 8081

management:
tracing:
sampling:
probability: 1.0
Сотрудник сервера конфигурации и проект аналогичны отделу, только другое имя приложения:
Docker Compose< /strong>:

Код: Выделить всё

version: '3.8'
services:
config-server:
build:
context: ./config-server
ports:
- "8088:8088"

service-registry:
build:
context: ./service-registry
ports:
- "8761:8761"
depends_on:
- config-server

department-service:
build:
context: ./department-service
ports:
- "8081:8081"
environment:
SPRING_DATASOURCE_URL: jdbc:postgresql://postgres:5432/microservice_comp_data
SPRING_DATASOURCE_USERNAME: postgres
SPRING_DATASOURCE_PASSWORD: password
depends_on:
- service-registry
- postgres

employee-service:
build:
context: ./employee-service
ports:
- "8082:8082"
environment:
SPRING_DATASOURCE_URL: jdbc:postgresql://postgres:5432/microservice_comp_data
SPRING_DATASOURCE_USERNAME: postgres
SPRING_DATASOURCE_PASSWORD: password
depends_on:
- department-service

project-service:
build:
context: ./project-service
ports:
- "8083:8083"
environment:
SPRING_DATASOURCE_URL: jdbc:postgresql://postgres:5432/microservice_comp_data
SPRING_DATASOURCE_USERNAME: postgres
SPRING_DATASOURCE_PASSWORD: password
depends_on:
- employee-service

api-gateway:
build:
context:  ./api-gateway
ports:
- "8060:8060"
depends_on:
- service-registry

postgres:
image: postgres:latest
container_name: postgres-container
environment:
POSTGRES_DB: microservice_comp_data
POSTGRES_USER: postgres
POSTGRES_PASSWORD: password
ports:
- "5431:5432"

zipkin:
image: openzipkin/zipkin
ports:
- "9411:9411"
Я дважды проверил конфигурации и журналы, но не смог точно определить проблему. Мы будем очень признательны за любые указания о том, что может быть не так или как правильно настроить эти микросервисы.

Подробнее здесь: https://stackoverflow.com/questions/786 ... endpoint-v
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»