ダボマイクロサービスはシンプルで実用的です

  前回のブログでは、Dubbo環境のインストールを更新しました。実際の戦闘用の簡単なプロジェクトの作成を始め
  
  ましょうまず、空のプロジェクトを
  作成してから、この空のプロジェクトでプロジェクトをビルドします。サブモジュール作成するには、mavenを作成するか、作成します。 springbootプロジェクトは、サービスプロバイダーとコンシューマーのサブモジュールを作成します。プロジェクトの構造は次のとおりです。
ここに画像の説明を挿入
  プロジェクトの作成、2つのモジュールのサービスを記述し、サービスコンテンツ
  
  をカスタマイズして、ダボ構成を開始します。最初にサービスを構成します。プロバイダー

1.jarパッケージをインポートします
<!-- dubbo -->
<dependency>
    <groupId>org.apache.dubbo</groupId>
    <artifactId>dubbo-spring-boot-starter</artifactId>
    <version>2.7.8</version>
</dependency>
<!-- zookeeper -->
<dependency>
    <groupId>com.github.sgroschupf</groupId>
    <artifactId>zkclient</artifactId>
    <version>0.1</version>
</dependency>
<dependency>
    <groupId>org.apache.curator</groupId>
    <artifactId>curator-framework</artifactId>
    <version>5.1.0</version>
</dependency>
<dependency>
    <groupId>org.apache.curator</groupId>
    <artifactId>curator-recipes</artifactId>
    <version>5.1.0</version>
</dependency>
<dependency>
    <groupId>org.apache.zookeeper</groupId>
    <artifactId>zookeeper</artifactId>
    <version>3.6.2</version>
    <!-- 排除日志jar包 -->
    <exclusions>
        <exclusion>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
        </exclusion>
    </exclusions>
</dependency>
2.ダボ関連の構成を構成します
server.port=8081
# 服务应用名称,消费者通过这个名称去找到这个服务
dubbo.application.name=provider-server
# 注册中心地址
dubbo.registry.address=zookeeper://192.168.0.109:2181
# 需要被注册的服务
dubbo.scan.base-packages=com.provider.service
# 注册超时时间
dubbo.registry.timeout=20000

## 注意,zookeeper的默认超时时间是2秒,如果两秒内连上了就没问题,项目会启动
## 如果两秒内没连上,项目会启动失败
## 所以建议将超时时间设置大一点,或者去更改zookeeper的配置文件:tickTime 参数
3.スキャンサービスに注釈を追加します
/**
 *	注意这个服务类的注解,新版使用的是DubboService
 *	之前的版本使用的是Service,引入包的时候选择dubbo下面的,否则会扫描失败
 *	或者使用万能注解Component
 **/
import org.apache.dubbo.config.annotation.DubboService;
@DubboService
public class ProviderService implements IProviderService {
    
    
    @Override
    public String demo(String str) {
    
    
        String result = "传了一个参数:" + str;
        System.out.println(result);
        return result;
    }
}

  プロジェクトの開始後、dubboのバックグラウンドコントロールインターフェイスに登録し
ここに画像の説明を挿入
  たサービスがサービスプロバイダーで正常に実行されていることを確認してから、サービスコンシューマーの構成を開始します。

1.jarパッケージをインポートします
<!-- dubbo -->
<dependency>
    <groupId>org.apache.dubbo</groupId>
    <artifactId>dubbo-spring-boot-starter</artifactId>
    <version>2.7.8</version>
</dependency>
<!-- zookeeper -->
<dependency>
    <groupId>com.github.sgroschupf</groupId>
    <artifactId>zkclient</artifactId>
    <version>0.1</version>
</dependency>
<dependency>
    <groupId>org.apache.curator</groupId>
    <artifactId>curator-framework</artifactId>
    <version>5.1.0</version>
</dependency>
<dependency>
    <groupId>org.apache.curator</groupId>
    <artifactId>curator-recipes</artifactId>
    <version>5.1.0</version>
</dependency>
<dependency>
    <groupId>org.apache.zookeeper</groupId>
    <artifactId>zookeeper</artifactId>
    <version>3.6.2</version>
    <!-- 排除日志jar包 -->
    <exclusions>
        <exclusion>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
        </exclusion>
    </exclusions>
</dependency>
2.ダボ関連の構成を構成します
server.port=8082
# 消费者名称
dubbo.application.name=consumer-service
# 注册中心地址
dubbo.registry.address=zookeeper://192.168.0.109:2181
# 连接超时时间
dubbo.registry.timeout=20000

## 注意,zookeeper的默认超时时间是2秒,如果两秒内连上了就没问题,项目会启动
## 如果两秒内没连上,项目会启动失败
## 所以建议将超时时间设置大一点,或者去更改zookeeper的配置文件:tickTime 参数
3.サービスコールをリモートで書き込む

リモートサービスを呼び出す方法は2つあります。1つは、サービスコンシューマプロジェクトのサービスプロバイダーと同じパッケージと同じ名前のインターフェイスクラスを作成することです。これは完全に同じである必要があります。そうでない場合、呼び出し時に失敗します。
もう1つは、pomファイルにインポートすることです。サービスプロバイダーの座標は、実際の開発で座標を導入するために使用されます。

<!-- 服务提供者的坐标 -->
<dependency>
    <groupId>com.provider</groupId>
    <artifactId>provider-server</artifactId>
    <version>1.0</version>
</dependency>
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.stereotype.Service;
@Service //注意,这里在本地使用,直接加入到本地spring容器
public class ConsumerService implements IConsumerService {
    
    
    @DubboReference //引用远程服务
    private IProviderService providerService;

    @Override
    public void consumerDemo() {
    
    
        System.out.println(providerService.demo("测试"));
    }
}

  次に、単体テストでテストします
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/weixin_45481406/article/details/109728364