DaprClientBuilder выдает фатальную ошибку в приложении SpringBoot, работающем в Kubernetes ⇐ JAVA
DaprClientBuilder выдает фатальную ошибку в приложении SpringBoot, работающем в Kubernetes
У меня есть два приложения SpringBoot как часть образа Docker, работающего в Kubernetes (microk8s). Я пытаюсь заставить приложение вызывать службу HTTP во втором приложении через DaprClient. Развертывание приложений выглядит хорошо, панель мониторинга Dapr работает нормально и показывает два зарегистрированных приложения. Когда я наконец вызываю службу для первого приложения внутри страны, предполагается, что она вызывает второе приложение через DaprClient, но происходит сбой во время «DaprClient daprClient = (new DaprClientBuilder()).build();» линия. Некоторое время застрял в этой проблеме и не знаю, что еще попробовать. Я перепроверил порты, но ошибка возникла задолго до вызова client.invoke. Очень признателен, если кто-нибудь сможет указать мне правильное направление.
Ниже приведен файл Deployment.yaml первого приложения1(orderservice):
apiVersion: apps/v1 вид: Развертывание метаданные: название: система заказов этикетки: приложение: система заказов спецификация: селектор: Метки совпадений: приложение: система заказов шаблон: метаданные: этикетки: приложение: система заказов аннотации: dapr.io/включено: «истина» dapr.io/app-id: «система заказов» dapr.io/app-port: "8082" спецификация: контейнеры: - название: система заказов изображение: localhost: 5000/ordersystem: последний порты: - порт контейнера: 8082 Ниже приведен фрагмент кода Java, который пытается выполнить попытку. Ошибка появляется после сообщения «О инициализации daprClient» и до сообщения «Инициализация клиента Dapr сработала», поэтому это должно быть во время инициализации.
@Override общественный список findAllOrdersDetails () { List orderDTO = (List)ordersRepo.findAllOrdersDetails(); for(OrderJoinDTO заказ: orderDTO) { System.out.println("Извлечение информации о продукте из продуктов приложения DAPR для orderId: "+order.getOrderId()+" с ProductId: "+order.getProductsId()); пытаться { System.out.println("Инициализация daprClient, пожалуйста, подождите"); DaprClient daprClient = (новый DaprClientBuilder()).build(); // вызываем метод GET (HTTP), пропуская сериализацию: \say с возвращаемым типом Mono System.out.println("Инициализация клиента Dapr сработала, переходим к вызову"); Ответ продуктов = daprClient.invokeMethod("products", "findByProductsId/"+order.getProductsId(), null, HttpExtension.GET, Products.class).block(); System.out.println("Получено из DAPR: "+response.toString()); order.setPname(response.getPname()); order.setDescription(response.getDescription()); } catch (Исключение е) { // TODO Автоматически сгенерированный блок catch е.printStackTrace(); } } возврат заказаDTO; } И ошибку, которую я вижу в консоли Kubernetes.
2022-11-08 09:46:33.619 INFO 1 --- [nio-8082-exec-1] o.s.web.servlet.DispatcherServlet: инициализация завершена за 2 мс Спящий режим: выберите заказы0_.orderId как col_0_0_, пользователи1_.имя_пользователя как col_1_0_, пользователи1_.адрес как col_2_0_, пользователи1_.электронная почта как col_3_0_, userpaymen2_.PaymentType как col_4_0_, Orders_pro3_.productsId как col_5_0_ из Orders order0_ перекрестное объединение пользователейusers1_ перекрестное объединение UserPayments userpaymen2 _ крест присоединиться к Orders_Products_MAPorders_pro3_, гдеorders0_.userId=users1_.userId и order0_.paymen2_. PaymentId и order0_.orderId=orders_pro3_.orderId Fething ProductInfo из продуктов приложения DAPR для orderId: 1 с ProductId: 1 Скоро инициализация daprClient, подождите. # # Среда выполнения Java обнаружила фатальную ошибку: # # SIGSEGV (0xb) по адресу pc=0x0000000000003efe, pid=1, tid=0x00007f0eb58cbb10 # # Версия JRE: среда выполнения OpenJDK (8.0_212-b04) (сборка 1.8.0_212-b04) # Java VM: 64-битная серверная виртуальная машина OpenJDK (25.212-b04, смешанный режим, сжатый linux-amd64, упс) # Производное: IcedTea 3.12.0 # Распространение: индивидуальная сборка (суббота, 4 мая, 17:33:35 UTC 2019 г.) # Проблемный кадр: # C 0x0000000000003efe # # Не удалось записать дамп ядра. Дампы ядра отключены. Чтобы включить дамп ядра, попробуйте «ulimit -c неограниченный» перед повторным запуском Java. # # Файл отчета об ошибках с дополнительной информацией сохраняется как: # //hs_err_pid1.log # # Если вы хотите отправить отчет об ошибке, укажите # инструкции о том, как воспроизвести ошибку и посетить: # https://icedtea.classpath.org/bugzilla #
У меня есть два приложения SpringBoot как часть образа Docker, работающего в Kubernetes (microk8s). Я пытаюсь заставить приложение вызывать службу HTTP во втором приложении через DaprClient. Развертывание приложений выглядит хорошо, панель мониторинга Dapr работает нормально и показывает два зарегистрированных приложения. Когда я наконец вызываю службу для первого приложения внутри страны, предполагается, что она вызывает второе приложение через DaprClient, но происходит сбой во время «DaprClient daprClient = (new DaprClientBuilder()).build();» линия. Некоторое время застрял в этой проблеме и не знаю, что еще попробовать. Я перепроверил порты, но ошибка возникла задолго до вызова client.invoke. Очень признателен, если кто-нибудь сможет указать мне правильное направление.
Ниже приведен файл Deployment.yaml первого приложения1(orderservice):
apiVersion: apps/v1 вид: Развертывание метаданные: название: система заказов этикетки: приложение: система заказов спецификация: селектор: Метки совпадений: приложение: система заказов шаблон: метаданные: этикетки: приложение: система заказов аннотации: dapr.io/включено: «истина» dapr.io/app-id: «система заказов» dapr.io/app-port: "8082" спецификация: контейнеры: - название: система заказов изображение: localhost: 5000/ordersystem: последний порты: - порт контейнера: 8082 Ниже приведен фрагмент кода Java, который пытается выполнить попытку. Ошибка появляется после сообщения «О инициализации daprClient» и до сообщения «Инициализация клиента Dapr сработала», поэтому это должно быть во время инициализации.
@Override общественный список findAllOrdersDetails () { List orderDTO = (List)ordersRepo.findAllOrdersDetails(); for(OrderJoinDTO заказ: orderDTO) { System.out.println("Извлечение информации о продукте из продуктов приложения DAPR для orderId: "+order.getOrderId()+" с ProductId: "+order.getProductsId()); пытаться { System.out.println("Инициализация daprClient, пожалуйста, подождите"); DaprClient daprClient = (новый DaprClientBuilder()).build(); // вызываем метод GET (HTTP), пропуская сериализацию: \say с возвращаемым типом Mono System.out.println("Инициализация клиента Dapr сработала, переходим к вызову"); Ответ продуктов = daprClient.invokeMethod("products", "findByProductsId/"+order.getProductsId(), null, HttpExtension.GET, Products.class).block(); System.out.println("Получено из DAPR: "+response.toString()); order.setPname(response.getPname()); order.setDescription(response.getDescription()); } catch (Исключение е) { // TODO Автоматически сгенерированный блок catch е.printStackTrace(); } } возврат заказаDTO; } И ошибку, которую я вижу в консоли Kubernetes.
2022-11-08 09:46:33.619 INFO 1 --- [nio-8082-exec-1] o.s.web.servlet.DispatcherServlet: инициализация завершена за 2 мс Спящий режим: выберите заказы0_.orderId как col_0_0_, пользователи1_.имя_пользователя как col_1_0_, пользователи1_.адрес как col_2_0_, пользователи1_.электронная почта как col_3_0_, userpaymen2_.PaymentType как col_4_0_, Orders_pro3_.productsId как col_5_0_ из Orders order0_ перекрестное объединение пользователейusers1_ перекрестное объединение UserPayments userpaymen2 _ крест присоединиться к Orders_Products_MAPorders_pro3_, гдеorders0_.userId=users1_.userId и order0_.paymen2_. PaymentId и order0_.orderId=orders_pro3_.orderId Fething ProductInfo из продуктов приложения DAPR для orderId: 1 с ProductId: 1 Скоро инициализация daprClient, подождите. # # Среда выполнения Java обнаружила фатальную ошибку: # # SIGSEGV (0xb) по адресу pc=0x0000000000003efe, pid=1, tid=0x00007f0eb58cbb10 # # Версия JRE: среда выполнения OpenJDK (8.0_212-b04) (сборка 1.8.0_212-b04) # Java VM: 64-битная серверная виртуальная машина OpenJDK (25.212-b04, смешанный режим, сжатый linux-amd64, упс) # Производное: IcedTea 3.12.0 # Распространение: индивидуальная сборка (суббота, 4 мая, 17:33:35 UTC 2019 г.) # Проблемный кадр: # C 0x0000000000003efe # # Не удалось записать дамп ядра. Дампы ядра отключены. Чтобы включить дамп ядра, попробуйте «ulimit -c неограниченный» перед повторным запуском Java. # # Файл отчета об ошибках с дополнительной информацией сохраняется как: # //hs_err_pid1.log # # Если вы хотите отправить отчет об ошибке, укажите # инструкции о том, как воспроизвести ошибку и посетить: # https://icedtea.classpath.org/bugzilla #
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Поддерживаемые версии Kubernetes для каждой версии JAR клиента Kubernetes
Anonymous » » в форуме JAVA - 0 Ответы
- 38 Просмотры
-
Последнее сообщение Anonymous
-