Springbootシリーズのdubbo


Springbootシリーズのdubbo
dubboの概要
Apache Dubbo™ 高性能Java RPCフレームワークです.(1)インタフェースエージェント向け高性能RPC呼び出し   高性能のエージェントベースのリモートコール能力を提供し、サービスはインタフェースを粒度とし、開発者のためにリモートコールの最下位の詳細を遮断します.(2)知能負荷等化   多種の負荷均衡戦略を内蔵し、下流ノードの健康状況を知能的に感知し、呼び出しの遅延を著しく減少させ、システムのスループットを高める.(3)サービス自動登録と発見   複数の登録センターサービスをサポートし、サービスインスタンスの上下線をリアルタイムで感知します.(4)高度な拡張性   マイクロカーネル+プラグインの設計原則に従い、Protocol、Transport、Serializationなどのすべてのコア能力を拡張点として設計し、内蔵実装とサードパーティ実装を平等に扱う.(5)運転期間フロースケジューリング   条件、スクリプトなどのルーティングポリシーを内蔵し、異なるルーティングルールを構成することで、階調パブリケーション、同機械室優先などの機能を簡単に実現します.(6)可視化されたサービスガバナンスと運行メンテナンス   豊富なサービスガバナンス、メンテナンスツールを提供します:いつでもサービスメタデータ、サービス健康状態と呼び出し統計を照会し、リアルタイムでルーティングポリシーを送信し、構成パラメータを調整します.
dubbo使用(dubbo直結方式を使用)
1、springbootプロジェクトの名前を作成する:dubbo-service 2、dubbo依存を追加する

     org.apache.dubbo
     dubbo-spring-boot-starter
     2.7.7

3、dubboプロバイダクラスUser、UserInfoService、UserInfoServiceImplの作成
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class User {
    private Long id;
    private String userName;
    private String password;
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private LocalDateTime createTime;
}

public interface UserInfoService {
    /**
     *       
     *
     * @return
     */
    User getUserInfo();
}

@Component
@Service(version = "1.0.0", timeout = 10000, interfaceClass = UserInfoService.class)
public class UserInfoServiceImpl implements UserInfoService {

    @Override
    public User getUserInfo() {
            return User.builder().userName("name").password(UUID.randomUUID().toString().replaceAll("-", ""))
            .createTime(LocalDateTime.now()).build();
    }
}

4、dubbo消費者類DubboControllerの作成
@RestController
public class DubboController {
    @Reference(version = "1.0.0", url = "dubbo://127.0.0.1:12345")
       private UserInfoService userInfoService;

    @RequestMapping("userInfo")
    public User userInfo(){
        return userInfoService.getUserInfo();
    }
}

5、アプリケーション.propertiesプロファイルの変更
spring.application.name=dubbo-service
dubbo.scan.base-packages=com.wotrd.dubboprovider.service
# Dubbo Protocol
dubbo.protocol.name=dubbo
dubbo.protocol.port=12345
## Dubbo Registry
dubbo.registry.address=N/A

6、サービスを起動し、アクセスアドレスhttp://localhost:8080/userInfoテストに成功した.
{"id":null,"userName":"name","password":"487e5550715b44c3ab1e2a90cacc5d25","createTime":"2020-06-21 23:10:44"}


質問があります.伝言をお願いします.個人ブログアドレス