蟻の金のドレスのJava RPCのオープンソースのフレームワーク-SOFARPC

SOFARPCプロフィール

SOFARPCは拡張性の高い、高パフォーマンス、生産レベルのJava RPCフレームです。蟻ゴールドドレスSOFARPCは、開発の10年以上と5世代バージョンを経験しています。SOFARPCはRPCは、透明性、安定的かつ効率的なリモートサービスコールポイントプログラムを容易にするためのアプリケーションのための単純化されたアプリケーション間のコールを約束しました。強化された機能を持つユーザーや開発者を容易にするために、SOFARPC抽象モデルはように、フィルタ、ルーティング、負荷分散とを含む豊富で拡張可能なインタフェースを提供します。SOFARPCサービスフレームワークとその周辺部品の周りにマイクロガバナンスプログラムの富を提供します。

特長

  • 透明な、高性能のリモートサービスコール
  • 複数のサービスのルーティングおよび負荷分散戦略のサポート
  • これは、統合されたレジストリの様々なサポートしています
  • などボルト、休憩、ダボ、を含む複数のプロトコルのサポート
  • これは、同期、一方通行、補正、一般化して呼び出すために他の方法をサポートしています
  • フォールトトレラントクラスタ、暖かいサービス、自動障害分離をサポートしています
  • 各機能ブロックのために必要な強力な拡張を拡張することができます

開発環境のサポート

図1は、コンパイラは、JDK 7が必要以上、Mavenの3.2.5及び上記
上記2、動作要件JDK 6及び

基本的な

SOFARPC
1.アプリケーションがSOFARPCを開始し、私たちが発見した場合、現在のアプリケーションは、その後SOFARPCこれらのサービスは、サービス・レジストリに登録されます、RPCサービスを公開する必要があります。図レジストリ内のサービスポイント。
このサービスSOFARPCアプリケーションが起動に言及する場合2、それはサービスに対応するメタデータ情報を登録するには、サービスセンターに加入します。サービスレジストリは、サブスクリプション要求を受信した後、メタデータリストは、リアルタイムの引用サービス側の出版社にプッシュされます。ポイントレジストリ参考に示したよう。
3.サービスの基準側がアドレスを取得するには、通話を開始するためのアドレスから選択することができます。リファレンスポイントサービスに示すように。

クイックスタート

SOFARPC出版およびリファレンスサービスを適用する方法を示します。この例では、ポートでリッスンを開始し、ローカルのアナログ・サーバにおけるコールへのサービス、顧客サービスの直接参照を公開します。

最初のステップ:新しいMavenプロジェクトを作成し、SOFARPC依存性の導入
<dependency>
    <groupId>com.alipay.sofa</groupId>
    <artifactId>sofa-rpc-all</artifactId>
    <version>5.5.3</version>
</dependency>

バージョンダウンロード:https://mvnrepository.com/artifact/com.alipay.sofa/sofa-rpc-all/

ステップ2:サーバーのリアライズを書きます

インタフェースHelloServiceを作成します

/**
 * Quick Start demo interface
 */
public interface HelloService {
    String sayHello(String string);
}

インタフェースHelloServiceImplを作成します

/**
 * Quick Start demo implement
 */
public class HelloServiceImpl implements HelloService {
    @Override
    public String sayHello(String string) {
        System.out.println("Server receive: " + string);
        return "hello " + string + " !";
    }
}

サーバーのコードを書きます

/**
 * Quick Start Server
 */
public class QuickStartServer {

    public static void main(String[] args) {
        ServerConfig serverConfig = new ServerConfig()
                .setProtocol("bolt") // 设置一个协议,默认bolt
                .setPort(12200) // 设置一个端口,默认12200
                .setDaemon(false); // 非守护线程

        ProviderConfig<HelloService> providerConfig = new ProviderConfig<HelloService>()
                .setInterfaceId(HelloService.class.getName()) // 指定接口
                .setRef(new HelloServiceImpl()) // 指定实现
                .setServer(serverConfig); // 指定服务端

        providerConfig.export(); // 发布服务
    }
}

クライアントの実装を書きます

/**
 * Quick Start client
 */
public class QuickStartClient {
    public static void main(String[] args) {
        ConsumerConfig<HelloService> consumerConfig = new ConsumerConfig<HelloService>()
            .setInterfaceId(HelloService.class.getName()) // 指定接口
            .setProtocol("bolt") // 指定协议
            .setDirectUrl("bolt://127.0.0.1:12200"); // 指定直连地址
        // 生成代理类
        HelloService helloService = consumerConfig.refer();
        while (true) {
            System.out.println(helloService.sayHello("world"));
            try {
                Thread.sleep(2000);
            } catch (Exception e) {
            }
        }
    }
}

ランは
、それぞれの業績を観察するために、サーバーとクライアントを起動します。
プリントサーバー:

Server receive: world

クライアントが印刷されます:

hello world !

概要

、違いSOFA-RPCとダボ、Motanあまりないのが見つかりません。ダボは、フルサービスのガバナンスとして存在し、SOFA-RPCは、より包括的で強力な、多様なRPCプログラミングAPIを提供するために、HSFの変換の枠組みに基づいて、唯一の軽量RPCフレームワークです。

最新版のv5.5.3は、コンテンツを公開します

このSOFARPCのv5.5.3は、現在、アップグレードするユーザーを奨励するために使用されているバグ修正バージョン5.5.xバージョンです。
1、互換性が
ない非互換性はありません

3、BUGの修理

  • 特別なシーンにルートの重複を修復
  • トレーサー互換サンプル識別
  • 修理汎化コールの再試行再び質問

フォローします

協力者

よりエキサイティングなコンテンツは、「IT本当の連合」のパブリックに集中することができ会衆号ああ~~~

ここに画像を挿入説明

おすすめ

転載: blog.csdn.net/zhenghhgz/article/details/90437546