Proxy 特使和GRPC不工作(无健康上游)
我有一个提供GRPC的Java后端,在没有特使的情况下使用时效果很好,但是对于GRPC web,它给了我503响应。我已经试了好几天了,都没有成功 这是我的特使。亚马尔:Proxy 特使和GRPC不工作(无健康上游),proxy,grpc,http2,envoyproxy,grpc-web,Proxy,Grpc,Http2,Envoyproxy,Grpc Web,我有一个提供GRPC的Java后端,在没有特使的情况下使用时效果很好,但是对于GRPC web,它给了我503响应。我已经试了好几天了,都没有成功 这是我的特使。亚马尔: admin: access_log_path: /tmp/admin_access.log address: socket_address: { address: 0.0.0.0, port_value: 9901 } static_resources: listeners: - name: li
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: 8081 }
filter_chains:
- filters:
- name: envoy.filters.network.http_connection_manager
typed_config:
"@type": type.googleapis.com/envoy.config.filter.network.http_connection_manager.v2.HttpConnectionManager
codec_type: auto
stat_prefix: ingress_http
route_config:
name: local_route
virtual_hosts:
- name: local_service
domains: ["*"]
routes:
- match: { prefix: "/" }
route:
cluster: greeter_service
max_grpc_timeout: 50s
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: greeter_service
connect_timeout: 50.25s
type: logical_dns
http2_protocol_options: {}
lb_policy: round_robin
# win/mac hosts: Use address: host.docker.internal instead of address: localhost in the line below
load_assignment:
cluster_name: cluster_0
endpoints:
- lb_endpoints:
- endpoint:
address:
socket_address:
address: 0.0.0.0
port_value: 6565
下面是我的代码:
componentDidMount() {
this.setState({ name: "mounted" });
var xtcoinsClient = new XTCoinsClient('http://127.0.0.1:8081');
var request = new GetProfileRequest();
request.setUserid("5fc951e5e44055118cf193c5");
xtcoinsClient.getProfile(request, {}, function (err, response) {
console.log(response.getMessage());
});
}
其结果如下:
这就是我尝试使用GRPCUI的时候:
这是使用curl:
Lemmers-MBP:~ lemmer$ curl -v http://localhost:8081/com.lemmer.grpc.xtcoins.XTCoins/getProfile
* Trying ::1...
* TCP_NODELAY set
* Connection failed
* connect to ::1 port 8081 failed: Connection refused
* Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to localhost (127.0.0.1) port 8081 (#0)
> GET /com.lemmer.grpc.xtcoins.XTCoins/getProfile HTTP/1.1
> Host: localhost:8081
> User-Agent: curl/7.64.1
> Accept: */*
>
< HTTP/1.1 503 Service Unavailable
< content-length: 19
< content-type: text/plain
< date: Sun, 06 Dec 2020 10:56:52 GMT
< server: envoy
<
* Connection #0 to host localhost left intact
no healthy upstream* Closing connection 0
Lemmers MBP:~lemmer$curl-vhttp://localhost:8081/com.lemmer.grpc.xtcoins.XTCoins/getProfile
*正在尝试::1。。。
*TCP_节点集
*连接失败
*连接到::1端口8081失败:连接被拒绝
*正在尝试127.0.0.1。。。
*TCP_节点集
*已连接到本地主机(127.0.0.1)端口8081(#0)
>GET/com.lemmer.grpc.xtcoins.xtcoins/getProfile HTTP/1.1
>主机:本地主机:8081
>用户代理:curl/7.64.1
>接受:*/*
>
非常感谢您的帮助。我发现特使的配置非常糟糕。我没有看到任何明显的错误。包括特使日志会很有用。/apple_dns_impl.cc:201][Error path]添加到待回调的查询[2020-12-08 16:44:42.984][1984320][warning][upstream][source/common/network/apple_dns_impl.cc:209][Error path]dns解析程序刷新待回调查询当我使用Docker时,我启动:“Docker run d-v”$(pwd)“/embasic.yaml:/etc/embasic/embasic.yaml:ro-p8081:8081-p9901:9901 envoyproxy/embasic:v1.16.1”那么,你的问题解决了吗?这是苹果驱动程序的问题,放弃吧,用Docker。