Refactoring to onStreamOpen, onStreamClose, and onStreamCloseWithError to include Node
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Refactorización
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- grpc, java
- Área
- backend-api-design
Línea de trabajo
Comienza con el ciclo de vida del observador del stream y lee la discusión de la pull request enlazada, especialmente las ventajas y desventajas sobre cuándo se dispara onStreamOpen. Sigue cómo la última DiscoveryRequest proporciona Node a onStreamClose y onStreamCloseWithError. Se considera terminado cuando los callbacks exponen Node cuando está disponible, los callbacks de cierre documentan un Node nullable y el momento elegido para el evento de apertura es coherente con el protocolo ADS/xDS.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Relevant discussion: https://github.com/envoyproxy/java-control-plane/pull/35#discussion_r177099465
Ideally we would have access to the Node during the stream open and close callbacks. Due to the stream observer design, there are some tradeoffs in order to support that.
For onStreamOpen, currently we're triggering that callback outside of the request StreamObserver. At that point, we haven't actually received a DiscoveryRequest yet, so we haven't been given the Node yet. A potential workaround would be to delay the onStreamOpen event until we receive the first request message. In theory there could be an arbitrarily large gap between when the stream is actually opened and when the first request is sent and with this approach we lose the ability to measure that. In practice, is that something that we really care about for this use case? With the ADS/xDS protocol design, the first message is always sent from the client and it occurs immediately after the stream is opened.
For onStreamClose and onStreamCloseWithError, we can just cache the Node from the last request message. Consumers will just need to be aware that the node parameter in this scenario is @Nullable because the stream could close without ever receiving a request.
- Lenguaje dominante
- Java
- Estrellas
- 312
- Forks
- 150
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de envoyproxy/java-control-plane
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 45/100
envoyproxy/java-control-plane#481 ·
-
Support stream scoped routes Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 30/100
envoyproxy/java-control-plane#471 · 1 comentario ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
envoyproxy/java-control-plane#463 ·
-
help Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
envoyproxy/java-control-plane#432 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 45/100
envoyproxy/java-control-plane#411 ·
Todos los issues de envoyproxy/java-control-plane
Issues similares
-
awaiting triage bug Causes friction Hop Gui P1 P2 Transforms
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
apache/flink-agents#1152 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
jenkinsci/blueocean-plugin#5417 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
objectionary/eo-graphs#75 ·