gpt4 book ai didi

java - 将 Node.js Web 客户端连接到 Java gRPC 服务器时出错

转载 作者:行者123 更新时间:2023-12-02 08:43:52 25 4
gpt4 key购买 nike

我有一个用 Java 编写的 gRPC 服务器,目前正在尝试使用 React 创建一个 Web 客户端。但是,我似乎无法管理客户端连接的特使代理与实际服务器之间的连接。

我希望收到与 Java 客户端相同的消息,但收到错误 "Http response at 400 or 500 level" ,Web 客户端收到空响应,而 Java 服务器甚至没有收到请求。

服务器在端口 8080 上运行,envoy 代理在端口 9090 上配置,这是 Web 客户端使用的端口。

Dockerfile:

FROM envoyproxy/envoy-dev:latest
COPY ./envoy.yaml /etc/envoy/envoy.yaml
CMD /usr/local/bin/envoy -c /etc/envoy/envoy.yaml -l trace --log-path /tmp/envoy_info.log

envoy.yaml:

admin:
access_log_path: /tmp/admin_access.log
address:
socket_address: { address: 0.0.0.0, port_value: 9901 }

static_resources:
listeners:
- name: listener_0
address:
socket_address: { address: 0.0.0.0, port_value: 9090 }
filter_chains:
- filters:
- name: envoy.http_connection_manager
config:
codec_type: auto
stat_prefix: ingress_http
route_config:
name: local_route
virtual_hosts:
- name: local_service
domains: ["*"]
routes:
- match: { prefix: "/" }
route:
cluster: m_service
cors:
allow_origin:
- "*"
allow_headers: keep-alive,user-agent,cache-control,content-type,content-transfer-encoding,x-accept-content-transfer-encoding,x-accept-response-streaming,x-user-agent,x-grpc-web,grpc-timeout
expose_headers: grpc-status,grpc-message
enabled: true
http_filters:
- name: envoy.grpc_web
- name: envoy.cors
- name: envoy.router
clusters:
- name: m_service
connect_timeout: 0.25s
type: logical_dns
http2_protocol_options: {}
lb_policy: round_robin
hosts:
socket_address:
address: localhost
port_value: 8080

我用于构建和运行 docker 容器的命令是 docker build -t m-server . ,和docker run -p 9090:9090 -td m-server /bin/bash前端的原型(prototype)类是静态加载的。

如果还有其他有用的代码可以发布,请告诉我。如有任何建议,我们将不胜感激,谢谢!

最佳答案

对我来说,解决方案是更改传递来运行容器的命令,因此 docker run -p 9090:9090 -td m-server /bin/bash成为docker run -d -p 9090:9090 -p 9901:9901 m-server 。主要区别是使用 -d 而不是 -td,第二个端口映射用于 Envoy 服务器。

我刚刚学习 Docker,根据我从 documentation 中了解到的内容,解释是我在分离模式下运行容器,但分配了伪 tty,该伪 tty 在前台模式下使用。我见过here但目的略有不同,当时我误解了它,因为仅保持容器运行并不是我所需要的。

按照this answer中的建议将“localhost”更改为“0.0.0.0”也很重要。

关于java - 将 Node.js Web 客户端连接到 Java gRPC 服务器时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61208647/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com