apache / apache/servicecomb-java-chassis
[FEATURE] - 一个性能优化思路,扩展服务监听/注册/发现和流量调度机制,实现本地地址监听&本地实例优先调度,提高微服务框架通信性能
- 主要言語
- Java
- スター
- 1.9k
- フォーク
- 814
- 平均マージ
- 8日 23時間
- マージ済み PR(30日)
- 1
説明
### Problem this feature would solve
微服务架构的特点是服务粒度比较小,实例数量多,实例之间存在大量通信,通信时涉及大量网络IO、加密传输、接口鉴权等性能损耗。
### Describe the solution
由于微服务实例粒度比较小,实际部署时往往多个实例会部署在一个主机上,假如同一个主机上的实例之间使用127.0.0.1地址来通信,那么受攻击面会大大减少,业务就可以考虑去掉加密传输、接口鉴权这些安全性的开销,同时在主机内通信只需要在内核协议转中转发,不需要经过网卡驱动和IO。
进一步来说,假如每个consumer都优先路由到本地的provider、同时兼顾全局的流量均衡,那么整个系统的性能都会有较大提升。
我们在业务产品上做了实验,原来一个主机上最多部署5个实例,优化后可以部署10个实例,CPU占用率与5个实例时基本持平,主机资源总体可以节省20%左右。
请社区看下这个特性,如果有价值的话我可以把代码提交进来。
### Alternatives considered
_No response_
### Additional Context
_No response_
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
調査の方向性
まず、ServiceComb Java Chassis におけるサービス登録、サービスディスカバリ、トラフィックルーティングのエントリーポイントを読みます。この issue では、具体的なファイルやテストは指定されていません。グローバルなトラフィックのバランシングを維持しながら、ローカルアドレスでのリスニングとローカルプロバイダーインスタンスの優先が既存のメカニズムにどのように適合するかを評価します。完了条件は、提案した通信およびリソース使用の改善を実証する、合意済みの設計と実装です。この issue 自体には受け入れテストはありません。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- java
- 領域
- backend, distributed-systems
- issue の種類
- 機能追加
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 活発さ
- 静か
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 28/100