1. Dubbo フレームワークの概要
1. フレームワークの依存関係
凡例の説明:
1) 図内の小さなボックス (プロトコル、クラスター、プロキシ、サービス、コンテナー、レジストリ、およびモニター) はレイヤーまたはモジュールを表します。青いものはビジネスとの対話を示し、緑色のボックスはビジネス内でのみ対話します。ダボ。
2) 図の背景の四角形のコンシューマ、プロバイダ、レジストリ、およびモニタは、展開論理トポロジ ノードを表します。
3) 図中の青い点線は初期化中に呼び出され、赤い点線は実行時の非同期呼び出し、赤い実線は実行時に同期的に呼び出されます。
4) この図には RPC 層のみが含まれており、リモート処理層は含まれていません。リモート処理全体はプロトコルに暗黙的に含まれています。
2. コアの役割の説明
1) プロバイダーはサービスを公開するサービスプロバイダーです
2) コンシューマーはサービスコンシューマー (ロード) を呼び出しますリモート サービスの残高)
3) レジストリ サービスの登録および検出登録センター (監視、ハートビート、キックアウト、再エントリ)
4) サービスのコンシューマとプロバイダの累積呼び出し時間を監視するメモリ内と通話時間を監視し、統計データを毎分監視センターに積極的に送信します。
5) コンテナを実行するコンテナ サービス: リモート呼び出し、シリアル化
2. SpringBoot2 との統合.0
1. コアの依存関係
<!-- 这里包含了Zookeeper依赖和Dubbo依赖 --> <dependency> <groupid>com.alibaba.boot</groupid> <artifactid>dubbo-spring-boot-starter</artifactid> <version>0.2.0</version> </dependency>
2. プロジェクト構造の説明
構造説明
dubbo-consume:服务消费方 dubbo-provider:服务提供方 dubbo-common:公共代码块,Dubbo接口,实体类
3. コア構成
1 )プロバイダー構成
server: tomcat: uri-encoding: UTF-8 max-threads: 1000 min-spare-threads: 30 port: 7007 connection-timeout: 5000ms spring: application: name: block-dubbo-provider # Dubbo 配置文件 dubbo: application: name: block-dubbo-provider registry: address: 127.0.0.1:2181 protocol: zookeeper protocol: name: dubbo port: 20880 scan: base-packages: com.boot.consume
2) コンシューマー構成
server: tomcat: uri-encoding: UTF-8 max-threads: 1000 min-spare-threads: 30 port: 7008 connection-timeout: 5000ms spring: application: name: block-dubbo-consume # Dubbo 配置文件 dubbo: application: name: block-dubbo-consume registry: address: 127.0.0.1:2181 protocol: zookeeper
3. デモケース
1. サービスリモート呼び出し
1) プロバイダーサービス インターフェイス
ここに注釈を付けてください com.alibaba.dubbo.config.annotation.Service
@Service @Component public class DubboServiceImpl implements DubboService { private static Logger LOGGER = LoggerFactory.getLogger(DubboServiceImpl.class) ; @Override public String getInfo(String param) { LOGGER.info("字符参数:{}",param); return "[Hello,Cicada]"; } @Override public UserEntity getUserInfo(UserEntity userEntity) { LOGGER.info("实体类参数:{}",userEntity); return userEntity; } }
2) Consumer インターフェイス
@Service public class ConsumeService implements DubboService { @Reference private DubboService dubboService ; @Override public String getInfo(String param) { return dubboService.getInfo(param); } @Override public UserEntity getUserInfo(UserEntity userEntity) { return dubboService.getUserInfo(userEntity); } }
2 、インターフェイス タイムアウト設定
この構成は、サービス プロバイダーまたはサービス コンシューマーで構成できます。ここでは、プロバイダーでの構成のデモを示します。注: タイムアウト 1) サービス インターフェイス アノテーション@Service(timeout = 2000) @Component public class DubboServiceImpl implements DubboService { }
@Override public String timeOut(Integer time) { return dubboService.timeOut(time); }
com .alibaba.dubbo.remoting.TimeoutException
@Service(version = "1.0.0") @Component public class VersionOneImpl implements VersionService { @Override public String getVersion() { return "{当前版本:1.0.0}"; } }
@Service(version = "2.0.0") @Component public class VersionTwoImpl implements VersionService { @Override public String getVersion() { return "{当前版本:2.0.0}"; } }
rree
以上がSpringBoot2.0 が RPC サービスのリモート呼び出しを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。