Proxy 特使和GRPC不工作(无健康上游)

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

我有一个提供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: 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。