apache / apache/servicecomb-java-chassis

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

オープン
#3,485 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
edge
主要言語
Java
スター
1.9k
フォーク
814
平均マージ
8日 23時間
マージ済み PR(30日)
1

説明

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)

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

調査の方向性

転送プロトコルと、転送されたコンテンツと元のリクエストの関係に関する issue のセクションをアウトラインとして使用してください。コンテキストを把握するため、リンク先の InvocationContext リファレンスと関連する Edge Service の issue を確認してください。Zuul および Spring Cloud Gateway との違い(宣言されていない情報を渡す方法を含む)を文書化できれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
java
領域
documentation
issue の種類
ドキュメント
難易度
2/5
見積もり時間
半日
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
52/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。