Сервис GRPC недоступен через EurekaJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Сервис GRPC недоступен через Eureka

Сообщение Anonymous »

У меня настроены микросервисы со следующими службами:
  • Служба ECOM
  • Шлюз API
  • NOTIFICATION-SERVICE (служба Spring на основе gRPC)
Я пытаюсь заставить службу ECOM взаимодействовать со службой NOTIFICATION-SERVICE.

Связь работает отлично, когда я настраиваю gRPC-клиент в статическом режиме
Однако, когда я переключаюсь в режим обнаружения (с помощью Eureka/Consul), соединение терпит неудачу.
ЭКОМ

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

spring.application.name=ecom
server.port=${APPLICATION_PORT:8080}

spring.datasource.url=${DB_URL}
spring.datasource.username=${DB_USERNAME}
spring.datasource.password=${DB_PASSWORD}
spring.datasource.driver-class-name=org.postgresql.Driver
spring.jpa.hibernate.ddl-auto=update
spring.security.jwt.secret=${Hs256SecretKey:Evb7Mepwi49E8pXiFehyF4cI54+POA9dr1OjtpyhVkc=}

eureka.instance.hostname=localhost
eureka.instance.prefer-ip-address=false
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=true
eureka.client.service-url.defaultZone=http://${eureka.instance.hostname}:8761/eureka/

grpc.client.NOTIFICATION-SERVICE-CLIENT.address=discovery:///NOTIFICATION-SERVICE
grpc.client.NOTIFICATION-SERVICE-CLIENT.negotiation-type=plaintext
net.devh.boot.grpc.client.nameresolver.discovery-client.service-metadata-keys=grpc_port
grpc.discovery.enabled=true
СЛУЖБА УВЕДОМЛЕНИЙ

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

spring.application.name=notification-service

grpc.server.port=9090
grpc.server.enable-reflection=true

eureka.instance.hostname=10.164.200.38
eureka.instance.prefer-ip-address=true
eureka.instance.metadata-map.grpc_port=${grpc.server.port}

eureka.client.register-with-eureka=true
eureka.client.fetch-registry=false
eureka.client.service-url.defaultZone=http://${eureka.instance.hostname}:8761/eureka/
Я убедился, что NOTIFICATION-SERVICE также зарегистрирован в Eureka через пользовательский интерфейс eureka.
Изображение

В пользовательском интерфейсе я вижу, что порт не отображается для сервера уведомлений. Фактическая ошибка, которую я получаю:

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

`io.grpc.StatusRuntimeException: UNAVAILABLE: Network closed for unknown reason
at io.grpc.stub.ClientCalls.toStatusRuntimeException(ClientCalls.java:368) ~[grpc-stub-1.74.0.jar:1.74.0]
at io.grpc.stub.ClientCalls.getUnchecked(ClientCalls.java:349) ~[grpc-stub-1.74.0.jar:1.74.0]
at io.grpc.stub.ClientCalls.blockingUnaryCall(ClientCalls.java:174) ~[grpc-stub-1.74.0.jar:1.74.0]
at com.learning.common.NotificationServiceGrpc$NotificationServiceBlockingStub.sendNotification(NotificationServiceGrpc.java:196) ~[common-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]
at com.generic.ecom.view.Services.NotificationServiceGRPCClient.sendNotification(NotificationServiceGRPCClient.java:20) ~[classes/:na]
at com.generic.ecom.controller.HomepageController.getProduct(HomepageController.java:37) ~[classes/:na]
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na]
`
Спасибо, что уделили время.

Подробнее здесь: https://stackoverflow.com/questions/797 ... via-eureka
Ответить

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

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

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

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

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