- Служба ECOM
- Шлюз API
- NOTIFICATION-SERVICE (служба Spring на основе gRPC)
Связь работает отлично, когда я настраиваю 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/

В пользовательском интерфейсе я вижу, что порт не отображается для сервера уведомлений. Фактическая ошибка, которую я получаю:
Код: Выделить всё
`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
Мобильная версия