作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Ubuntu v. 21.04 运行 React
, 和 Node.js
应用程序,使用 grpc
.这是我的特使配置:
static_resources:
listeners:
- name: listener_0
address:
socket_address: { address: 0.0.0.0, port_value: 8082 }
filter_chains:
- filters:
- name: envoy.filters.network.http_connection_manager
typed_config:
'@type': type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
codec_type: auto
stat_prefix: ingress_http
route_config:
name: local_route
virtual_hosts:
- name: local_service
domains: ['*']
routes:
- match: { prefix: '/' }
route:
cluster: echo_service
timeout: 0s
max_stream_duration:
grpc_timeout_header_max: 0s
cors:
allow_origin_string_match:
- prefix: '*'
allow_methods: GET, PUT, DELETE, POST, OPTIONS
allow_headers: keep-alive,user-agent,cache-control,content-type,content-transfer-encoding,custom-header-1,x-accept-content-transfer-encoding,x-accept-response-streaming,x-user-agent,x-grpc-web,grpc-timeout
max_age: '1728000'
expose_headers: custom-header-1,grpc-status,grpc-message
http_filters:
- name: envoy.filters.http.grpc_web
- name: envoy.filters.http.cors
- name: envoy.filters.http.router
clusters:
- name: echo_service
connect_timeout: 0.25s
type: logical_dns
http2_protocol_options: {}
lb_policy: round_robin
load_assignment:
cluster_name: cluster_0
endpoints:
- lb_endpoints:
- endpoint:
address:
socket_address:
address: 0.0.0.0
port_value: 50052
我的 react
docker-compose
文件:
version: '3.9'
services:
envoy:
build: .
ports:
- 8082:8082
前端
dockerfile
:
FROM envoyproxy/envoy:v1.17.0
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
我的 Node.js
docker-compose
:
version: '3.9'
services:
postgres:
image: postgres:13.3
env_file:
- ./.env.development
ports:
- '5432:5432'
states-service:
build:
context: .
dockerfile: Dockerfile.dev
args:
- NPM_TOKEN=${NPM_TOKEN}
ports:
- '50052:50052'
volumes:
- ./src:/app/src
- /node_modules
env_file:
- ./.env.development
environment:
- KNEX_CONNECTION_HOST=postgres
depends_on:
- postgres
它从端口
50052
开始.
BloomRPC
获取任何东西时调用
0.0.0.0:8082
, 与
web
模式,通话将永远持续下去。
localhost:50052
在 grpc 模式下,它可以工作。我错过了什么?
最佳答案
如果同时没有解决,试试这个集群配置:
- name: echo_service
connect_timeout: 0.25s
type: STRICT_DNS
lb_policy: ROUND_ROBIN
http2_protocol_options: {}
dns_resolvers:
- socket_address:
address: 127.0.0.11
port_value: 53
load_assignment:
cluster_name: cluster_0
endpoints:
- lb_endpoints:
- endpoint:
address:
socket_address:
address: gateway.docker.internal
port_value: 50052
但是最好使用一个 docker-compose 文件并在 envoy 集群配置中使用容器名称作为地址,但这只有在 envoy 和 Node 容器使用相同的 docker 网络时才有可能。
关于node.js - 未见特使,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69708793/
我知道这是一个愚蠢的错误,但我无法弄清楚发生了什么。我已经创建了一些扩展方法并尝试访问它们,但是默认方法不断被调用: namespace MyProject { public static c
我有一个 mixin,它具有检查用户是否登录的方法: authenticated: function() { return this.state.currentUser !== null; }
我有一个源文件,其中包含以下代码,它使用 python 的 jsonrpclib 模块 server = jsonrpclib.Server(url) try: res = server.user
对于知道自己在做什么的人来说,这会很容易。 我有一个启动日历按钮、一个继续按钮和一个日期文本框。该按钮在弹出窗口中启动 JavaScript 日历。该日历使用以下方法将日期返回到 Reservatio
我是一名优秀的程序员,十分优秀!