装うリモート呼び出しと呼び出しリボン

A:装います

作成FeignClientクライアント

@FeignClient(名前= "製品")// www.1b23.com
パブリックインターフェースIProductClient {

    @GetMapping( "/ MSG")
    ストリングproductMessage()。

    @PostMapping( "/製品/ listForOrder")
    一覧<ProductInfo> productInfoList(@RequestBody一覧<文字列> productIdList);

    @PostMapping( "/製品/ decreaseStock")
    空decreaseStock(一覧<Ca​​rtDto> cartDtoList);
}

  • @FeignClient(name = "product")このインタフェースは、名前は、アプリケーション名を表し、装うはクライアントを表しています。

  • @PostMapping("/product/listForOrder")そして、通常の通話文言コントローラ層は、インターフェース呼び出しが書き込まれ、ここでのインタフェースが参照http://product//product/listForOrderRestTemplate同じURL、およびコール。

  1. 使用FeignClientクライアント。

  • プラスクラスのスタートはFeignClientと呼ばれます@EnableFeignClients

  • 他のクラスの注入ではIProductClientインターフェース、直接呼び出さ。

@Autowired
    プライベートIProductClient productClient。

    @GetMapping( "/ getProductMsg")
    パブリック文字列getProductMsg(){
        ストリング応答= productClient.productMessage()。
        log.info( "応答= {}"、応答);
        応答を返します。
    }

時々が見つからないことを注意が報告されますIProductClient。このBeanを、あなたはスキャンパッケージ、呼び出す際にしばしば遭遇する問題を追加する必要があります。

@EnableFeignClients(basePackages = "com.springcloud.product.client")

2:リボン

あなたは装うコールより複雑な手順を参照してください、とパラメータを渡すと、多くの問題の後にすることができますzuul

リボンを見てください 

 クラスが実装するインターフェースの内部のみバランスリボンを導入し、その後、メソッド呼び出しがあってもよいです

/ **
 * www.1b23.com
 * /
@サービス
@Transactional //開いているもの
パブリッククラスUsersServiceImpl実装UsersService {
	
	@Autowired
	プライベートLoadBalancerClient loadBalancerClient; //リボンロードバランサ

    ......

   / ** Saveユーザ
	 * @Param PD
	 * @throws例外
	 * /
	公共ボイドsaveUser(InboundのPageDate PDは){例外をスロー
		usersMapper.saveUser(PD)。
		pd.put( "tokenKey"、Tools.creatTokenKey( "useraddの"));
		LoadBalancerUtil.responseByPost(this.loadBalancerClient、 "FH-DBsyncを"、 "ユーザ追加/"、PD); //テーブル同期要求データベースmicroService
	}

}

「FH-DBsyncを」が格納パラメータを使用マップは、ある「PD」に「追加/ユーザ」マイクロサービスへのフルパスをRequestMapping、eurakeの内部に登録されたサービス名


おすすめ

転載: blog.51cto.com/14622073/2475478