apache / apache/servicecomb-java-chassis

Edge Service作为网关和其他常见网关的差异

Ouverte
#3,485 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
edge
Langage dominant
Java
Étoiles
1.9k
Forks
814
Merge moyen
8 j 23 h
PR mergées (30 j)
1

Description

Edge Service是 servicecomb 提供的一个微服务网关, 他的主要功能是将请求转发到 java chassis开发的微服务。 虽然主要功能也是请求转发,但是和其他网关,比如 Zuul, Spring Cloud Gateway在功能设计上存在很多差异。 这里主要描述其差异。

# 转发的协议

Edge Service可以将用户的HTTP请求转发到java chassis开发的微服务,不管java chassis开发的微服务是什么协议,比如 REST、Highway等,都可以转发。 Edge Service会自动基于swagger信息进行协议转换。

# 转发的内容和原始请求的关系

Edge Service不会将原始请求直接转发给后台服务,这个是和其他网关不一样的。 如果后台微服务是一个REST微服务,用户通过HTTP请求传递了很多的头、query参数、body参数等, Edge Service会根据swagger解析消息,只传递后台微服务在swagger声明的头、query参数、body参数等, swagger 未声明的信息会被丢弃。 因此经过edge service转发的HTTP信息,是被重新修改的信息,应用程序不能假设这些信息和用户传递的原始信息是完全相同的。

在需要传递swagger声明之外信息的时候,需要在Edge Service配置映射或者自定义Filter,将信息放到InvocationContext里面传递,后台服务可以[通过 InvocationContext 获取](https://servicecomb.apache.org/references/java-chassis/zh_CN/general-development/context.html) 。

>>> 点击查看 [和 Edge Service 有关的问题](https://github.com/apache/servicecomb-java-chassis/issues?q=is%3Aopen+is%3Aissue+label%3Aedge)

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Piste de recherche

Utilisez les sections de l’issue sur les protocoles de transfert et la relation entre le contenu transféré et la requête d’origine comme plan. Consultez la référence liée à InvocationContext ainsi que les issues associées de Edge Service pour le contexte. Le travail est considéré comme terminé lorsque les différences avec Zuul et Spring Cloud Gateway sont documentées, notamment la manière de transmettre des informations non déclarées.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
java
Domaine
documentation
Type d'issue
Documentation
Difficulté
2/5
Temps estimé
Une demi-journée
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
52/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.