ホームページ Java &#&チュートリアル Apache Dubbo リリース: Triple X がマイクロサービス通信の新時代をリード

Apache Dubbo リリース: Triple X がマイクロサービス通信の新時代をリード

Oct 22, 2024 pm 08:47 PM

Apache Dubbo のスター数は 40,000 を超えました。チームは誇りを持って Dubbo 3.3 の正式リリースを発表します。 Dubbo は、主要なオープンソース マイクロサービス フレームワークとして、分散サービス向けの高性能、スケーラブル、柔軟なソリューションを開発者に提供することに常に取り組んできました。 トリプル X アップグレードを特徴とする Dubbo 3.3 のリリースは、以前の制限を打ち破り、南北および東西両方のトラフィックの包括的なサポートを実現し、クラウドネイティブ アーキテクチャとの互換性を強化します。

ダボの紹介

Apache Dubbo は、当初 Java で開発された高性能で軽量のマイクロサービス フレームワークです。その後、Go、Rust、Python などの複数の言語をサポートするように拡張され、クロス言語、クロスプラットフォームの分散システムの構築に最適になりました。 Dubbo は、サービスの登録と検出、ロード バランシング、フォールト トレランス、コール チェーン トレースなどの豊富なサービス ガバナンス機能を提供し、開発者が効率的で柔軟なマイクロサービス アーキテクチャを構築するのに役立ちます。

Dubbo はその進化により、通信パフォーマンス、サービス ガバナンス、言語間の互換性が大幅に向上し、最新のマイクロサービス アーキテクチャをサポートする強力なツールになりました。

トリプル X アップグレードの背景

Dubbo は、初期のアプリケーションで、データセンター サービスの相互運用性において優れたパフォーマンスを実証しました。しかし、テクノロジーが進化し、アプリケーションのシナリオが拡大するにつれて、元のアーキテクチャにはボトルネックが現れ始めました。これらの制限は、クロスリージョンおよびクロスクラウド環境で特に顕著になり、Web フレームワークと RPC フレームワーク間の頻繁な切り替えが開発の複雑さの増大とシステム パフォーマンスの低下につながりました。

伝統的なアーキテクチャの問題点:

  1. データセンター アプリケーションに限定: クロスリージョンまたはクロスクラウド アプリケーションでは、Dubbo の従来のアーキテクチャには広域環境のネイティブ サポートが不足しており、開発者は複数のプロトコルとフレームワークを切り替える必要がありました。複雑さが増します。

  2. 南北および東西トラフィックに関する課題: Dubbo などの従来の RPC フレームワークは、多くの場合、サービス間 (東西) トラフィックの最適化に重点を置いています。しかし、効率的な南北通信 (クライアントからサーバーへ) の必要性が高まっており、新たな課題が生じています。

  3. クラウドネイティブおよびクロス言語の要件: クラウドネイティブ テクノロジの成長に伴い、システムは、従来の Dubbo ではサポートされていなかった HTTP プロトコルとクロス言語通信のサポートの強化を必要としています。最適化されました。

トリプル X の変革とブレークスルー: トリプル X アップグレードは、これらの問題点に直接対処します。 Dubbo の高性能通信機能を継承しながら、gRPC プロトコルとの完全な互換性を実現し、HTTP/1、HTTP/2、および HTTP/3 プロトコルをサポートします。これにより、クロスクラウドおよびクロスリージョンのアプリケーション シナリオの柔軟性と効率が向上します。

Apache Dubbo  Released: Triple X Leads a New Era of Microservices Communication

トリプル X コア機能の概要

  • 包括的なトラフィック サポート: トリプル X は、南北 (クライアントからサーバー) と東西 (サービスからサービス) の両方のトラフィックをサポートします。このシームレスなサポートにより、柔軟な変換が保証され、通信リンクの全体的な効率が向上します。

  • gRPC プロトコル標準への準拠: トリプル X は gRPC プロトコル標準に準拠し、Protobuf を介した通信を許可します。これにより、gRPC サービスとのシームレスな対話が可能になり、Dubbo のクロス言語、クロスプラットフォームの通信機能が拡張されます。

  • HTTP プロトコルに基づいて構築され、ネイティブのクラウドネイティブ サポート: トリプル X は HTTP/1、HTTP/2、および HTTP/3 に基づいて構築されており、ネットワーク パフォーマンスを最適化し、クラウドネイティブと統合します。さまざまなゲートウェイやサービス メッシュのサポートを含むインフラストラクチャ。

  • 高性能の最適化: トリプル X は、特に同時実行性が高く脆弱なネットワーク環境において、極端なパフォーマンスの強化を提供し、システムのスループットと応答速度を大幅に向上させます。

  • スムーズな移行とフレームワークの互換性: トリプル X を使用すると、開発者はコードを変更せずに既存の Spring Web プロジェクトを移行でき、Spring MVC などのフレームワークのサポートを維持しながらトリプル X へのシームレスな切り替えが可能になります。

  • 高い拡張性: 20 を超える新しい SPI 拡張ポイントを備えた Triple X により、ルーティング、パラメータ解析、シリアル化、例外処理などのコア動作のカスタマイズが可能になります。これにより柔軟性が向上し、開発者が特定のビジネス ニーズに合わせてフレームワークを適応できるようになります。

トリプル X の使用シナリオ

Dubbo 3.3 の

Triple X は、マイクロサービス アーキテクチャに柔軟な統合アプローチを提供し、さまざまなシステム要件に適応します。システム アーキテクチャに応じて、トリプル X は 集中型分散型 の両方の統合アプローチを提供し、さまざまなアプリケーション シナリオに適しています。

1. 一元的な統合

集中統合 アプローチでは、外部トラフィックは統合サービス ゲートウェイを介して Dubbo バックエンド サービスに入ります。ゲートウェイは、HTTP トラフィックの解析、転送、および適切なバックエンド サービスへのリクエストのルーティングを処理します。このアプローチは、統合トラフィック管理、フロー制御、権限検証に対する高い要件を持つシステムに適しており、受信トラフィックを一元的に制御できます。

Apache Dubbo  Released: Triple X Leads a New Era of Microservices Communication

  • 使用シナリオ: トラフィックの監視やレート制限など、外部リクエストの集中管理が必要なシステムの場合、トリプル X は HTTP/1、HTTP/2、および HTTP/3 トラフィックを効率的に処理できます。サービスゲートウェイを介してDubboサービスに転送します。

  • 利点: 集中制御、管理の容易さ、統合トラフィックガバナンスを必要とする大規模システムに適しています。

2. 分散型統合

分散型統合 アプローチでは、外部クライアントは中間ゲートウェイに依存せずに、HTTP 経由で Dubbo バックエンド サービスに直接アクセスできます。このアプローチは、ゲートウェイの必要性を排除することで通信オーバーヘッドを削減し、それによってシステムの応答速度を向上させるため、高性能かつ低遅延の要件を持つシステムに適しています。また、ゲートウェイ ノードを削除すると、ゲートウェイの障害によるシステムの利用不能が回避され、展開アーキテクチャが簡素化され、安定性が向上します。

Apache Dubbo  Released: Triple X Leads a New Era of Microservices Communication

  • 使用シナリオ: 中間ステップを減らし、応答速度を向上させるために、HTTP 経由で Dubbo サービスに直接アクセスする必要があるシステムの場合、トリプル X を使用すると、ゲートウェイなしで REST API を公開できます。

  • 利点: 中間ステップを排除し、パフォーマンスを向上させ、アーキテクチャを簡素化し、低遅延アプリケーションに適しています。

トリプル X 機能の詳細な内訳

1. 包括的なトラフィック管理と効率的なコミュニケーション

複雑なマイクロサービス アーキテクチャでは、南北 (クライアントからサーバー) と東西 (サービスからサービス) の両方のトラフィックを処理することが困難になる場合があります。 Triple X は、統合通信プロトコルを使用して両方をサポートするため、Web フレームワークと RPC フレームワークを切り替える必要がなくなり、開発プロセスが簡素化され、パフォーマンスと保守性が向上します。

開発者はトリプル X を利用して、ユーザーが開始したリクエストとサービス間通信の両方を効率的にサポートし、すべてトリプル X 経由でスムーズに送信できます。

package org.apache.test;

@DubboService
public class UserServiceImpl implements UserService {
   // Handles east-west requests
}

// Triple X also supports north-south traffic
@DubboService
public class OrderService {
   @GetMapping("/order/{orderId}")
   public Order getOrderById(@PathVariable("orderId") String orderId) {}
}
ログイン後にコピー
ログイン後にコピー

2. gRPCプロトコル標準への準拠

分散システムでは言語を越えたサービス間の通信が課題となることが多く、gRPC は一般的なソリューションです。トリプル X は gRPC プロトコル標準 に準拠しており、Protobuf を使用した gRPC とのシームレスな対話を可能にし、言語間およびプラットフォーム間の通信機能を強化します。

トリプル X を使用するサービスは、追加の調整を行わずに gRPC ベースのサービスと直接対話できるため、開発が簡素化されます。

3. HTTP プロトコルに基づいて構築され、ネイティブのクラウドネイティブ サポート

クラウドネイティブ環境では、サービスは、パフォーマンスを向上させるためにさまざまな HTTP プロトコルをサポートしながら、API ゲートウェイやサービス メッシュなどのさまざまなネットワーク設備と効果的に統合する必要があります。

トリプル X は HTTP/1、HTTP/2、および HTTP/3 をサポートしているため、開発者は追加の構成を行わずに、長時間接続、多重化、ヘッダー圧縮などのプロトコルの利点を活用できます。 HTTP/3 もヘッドオブライン ブロッキングの問題を解決し、その UDP ベースの通信は脆弱なネットワーク環境でも高品質とサービス パフォーマンスを維持します。

Triple X を使用すると、Spring Boot の既存の Servlet ポートを再利用して HTTP トラフィックを処理できるため、別の Netty リスニング ポートが不要になります。これにより、ネットワーク アーキテクチャが簡素化され、メンテナンス コストが削減され、セキュリティが向上し、トラフィックが企業のファイアウォールやゲートウェイをより簡単に通過できるようになります。

Apache Dubbo  Released: Triple X Leads a New Era of Microservices Communication

4. 高性能の最適化、5 倍の QPS 向上

同時実行性の高いシナリオでは、従来の通信プロトコルがボトルネックとなり、システムの応答時間とスループットに影響を与えることがよくあります。

トリプル X は、Radix TreeZero Copy などのテクノロジーを使用して CPU 使用率とメモリ消費量を削減し、特に同時実行性が高く脆弱なネットワーク環境でのシステム パフォーマンスを大幅に向上させます。

  • 効率的なルーティング: ルート マッチングに基数ツリーを使用し、キー ハッシュ アルゴリズムを最適化し、動的更新をサポートします。これにより、メモリ使用量が削減され、マッチング効率が向上します。

  • メモリ使用量の最適化: ゼロ コピーとオブジェクトの再利用を組み合わせて、データ コピーとオブジェクト作成のオーバーヘッドを削減します。これにより、ガベージ コレクションの圧力が低下し、スループットが向上します。

  • HTTP/3 サポート: QUIC ベースの HTTP/3 プロトコルを利用し、遅延を削減し、接続の信頼性を高めることで、弱いネットワーク条件でのパフォーマンスを向上させます。

  • マルチプロトコルのストレス テストと最適化: Dubbo チームは、複数のプロトコルで広範なストレス テストを実施し、数回の最適化を実行して、さまざまなシナリオにわたって最適なパフォーマンスを確保しました。

パフォーマンス テストによると、従来の Spring Boot REST サービスと比較して、トリプル X を使用したシンプルな REST サービスは、高圧下で 5 倍の QPS を達成し、応答時間を 3 分の 1 に短縮し、メモリ割り当てを50% となり、システムのパフォーマンスとリソース効率が大幅に向上します。

Apache Dubbo  Released: Triple X Leads a New Era of Microservices Communication

Apache Dubbo  Released: Triple X Leads a New Era of Microservices Communication

Apache Dubbo  Released: Triple X Leads a New Era of Microservices Communication

Apache Dubbo  Released: Triple X Leads a New Era of Microservices Communication

5. スムーズな移行とフレームワークの互換性

トリプル X は、コードを大幅に変更することなく、既存の Spring Web プロジェクトのマイクロサービス アーキテクチャへの移行もサポートします。

Triple X は、非侵入型移行ソリューションを提供します。これにより、開発者は、Spring MVC などのフレームワークをサポートしながら、既存のコードを変更することなく、既存の Spring Web プロジェクトを Triple X に移行できます。

package org.apache.test;

@DubboService
public class UserServiceImpl implements UserService {
   // Handles east-west requests
}

// Triple X also supports north-south traffic
@DubboService
public class OrderService {
   @GetMapping("/order/{orderId}")
   public Order getOrderById(@PathVariable("orderId") String orderId) {}
}
ログイン後にコピー
ログイン後にコピー

このリリースのその他の機能強化の概要

1. ネイティブ イメージ AOT のサポート

Dubbo 3.3 では、ネイティブ イメージ AOT (Ahead-of-Time Compilation) のサポートが導入され、開発者は Dubbo アプリケーションをネイティブ バイナリにコンパイルできるようになります。これにより、起動時間とメモリ使用量が大幅に削減され、サーバーレス シナリオに最適です。

2. プロジェクトルームのサポート

Dubbo 3.3 は、Project Loom のサポートを追加し、仮想スレッドを使用した同時実行性の高いシナリオでのスレッド管理を最適化し、非同期プログラミング モデルを簡素化し、同時実行処理を改善します。

3. 新しいルーティング ルール

Dubbo 3.3 では、新しいルーティング ルールも導入され、より柔軟なトラフィック制御とサービス ガバナンスをサポートし、大規模なマイクロサービス展開への適応性が強化されています。

結論

Apache Dubbo 3.3 のリリースは、マイクロサービス通信テクノロジにおける重要なマイルストーンをマークします。 Triple X により、Dubbo は南北と東西の両方のトラフィックの包括的なサポート、gRPC とのシームレスな統合、HTTP プロトコルを介したクラウドネイティブ サポート、および大幅なパフォーマンスの最適化を提供し、開発者に強力で強力な機能を提供します。最新の分散システムを構築するための柔軟なツール。

サービス間通信の効率を強化する必要がある場合でも、言語間の互換性を達成する必要がある場合でも、クラウドネイティブの通信パフォーマンスを最適化する必要がある場合でも、Dubbo 3.3 は、最新の分散システムの課題に取り組むための理想的な選択肢です。 。今すぐ Dubbo 3.3 にアップグレードして、マイクロサービス通信の新時代の到来を告げる トリプル X によってもたらされる変革を体験してください!

以上がApache Dubbo リリース: Triple X がマイクロサービス通信の新時代をリードの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

会社のセキュリティソフトウェアはアプリケーションの実行に失敗していますか?それをトラブルシューティングと解決する方法は? 会社のセキュリティソフトウェアはアプリケーションの実行に失敗していますか?それをトラブルシューティングと解決する方法は? Apr 19, 2025 pm 04:51 PM

一部のアプリケーションが適切に機能しないようにする会社のセキュリティソフトウェアのトラブルシューティングとソリューション。多くの企業は、内部ネットワークセキュリティを確保するためにセキュリティソフトウェアを展開します。 ...

MapsTructを使用したシステムドッキングのフィールドマッピングの問題を簡素化する方法は? MapsTructを使用したシステムドッキングのフィールドマッピングの問題を簡素化する方法は? Apr 19, 2025 pm 06:21 PM

システムドッキングでのフィールドマッピング処理は、システムドッキングを実行する際に難しい問題に遭遇することがよくあります。システムのインターフェイスフィールドを効果的にマッピングする方法A ...

エンティティクラス変数名をエレガントに取得して、データベースクエリ条件を構築する方法は? エンティティクラス変数名をエレガントに取得して、データベースクエリ条件を構築する方法は? Apr 19, 2025 pm 11:42 PM

データベース操作にMyBatis-Plusまたはその他のORMフレームワークを使用する場合、エンティティクラスの属性名に基づいてクエリ条件を構築する必要があることがよくあります。あなたが毎回手動で...

名前を数値に変換してソートを実装し、グループの一貫性を維持するにはどうすればよいですか? 名前を数値に変換してソートを実装し、グループの一貫性を維持するにはどうすればよいですか? Apr 19, 2025 pm 11:30 PM

多くのアプリケーションシナリオでソートを実装するために名前を数値に変換するソリューションでは、ユーザーはグループ、特に1つでソートする必要がある場合があります...

Intellijのアイデアは、ログを出力せずにSpring Bootプロジェクトのポート番号をどのように識別しますか? Intellijのアイデアは、ログを出力せずにSpring Bootプロジェクトのポート番号をどのように識別しますか? Apr 19, 2025 pm 11:45 PM

intellijideaultimatiateバージョンを使用してスプリングを開始します...

Javaオブジェクトを配列に安全に変換する方法は? Javaオブジェクトを配列に安全に変換する方法は? Apr 19, 2025 pm 11:33 PM

Javaオブジェクトと配列の変換:リスクの詳細な議論と鋳造タイプ変換の正しい方法多くのJava初心者は、オブジェクトのアレイへの変換に遭遇します...

eコマースプラットフォームSKUおよびSPUデータベースデザイン:ユーザー定義の属性と原因のない製品の両方を考慮する方法は? eコマースプラットフォームSKUおよびSPUデータベースデザイン:ユーザー定義の属性と原因のない製品の両方を考慮する方法は? Apr 19, 2025 pm 11:27 PM

eコマースプラットフォーム上のSKUおよびSPUテーブルの設計の詳細な説明この記事では、eコマースプラットフォームでのSKUとSPUのデータベース設計の問題、特にユーザー定義の販売を扱う方法について説明します。

データベースクエリにTKMYBATISを使用するときに、エンティティクラスの変数名の構築クエリ条件をエレガントに取得する方法は? データベースクエリにTKMYBATISを使用するときに、エンティティクラスの変数名の構築クエリ条件をエレガントに取得する方法は? Apr 19, 2025 pm 09:51 PM

データベースクエリにTKMYBATISを使用する場合、クエリ条件を構築するためにエンティティクラスの変数名を優雅に取得する方法は一般的な問題です。この記事はピン留めします...

See all articles