分佈式架構之微服務通信

一、什麼是微服務通信?

A 服務調用 B 服務,B 服務調 C 服務,C 服務調 D 服務。換言之,這就是微服務之間的通信 (也可以叫微服務之間的調用)。

二、微服務的通信方式有哪些?

三、實現這些通信方式的框架有哪些?

1.RPC

2.HTTP

3.Message

上述涉及的 RPC、HTTP、Message 相關的框架以及中間件等,YC-Framework 大部分均已支持 (以現主流爲主)。

四、微服務的交互模式有哪些?微服務的分解和組合模式有哪些?微服務的容錯模式有哪些?

1. 微服務的交互模式

2. 微服務的分解和組合模式

3. 微服務的容錯模式

上述三個部分內容的詳細解答均可在我寫的這篇文章(得到答案):
我在 M2 公司做架構之架構 2.0

五、YC-Framework 主要採用的微服務通信是基於什麼?

YC-Framework 使用 Nacos 作爲服務註冊與發現,通過 Open Feign 實現微服務之間的調用。

1. 具體該如何使用呢?

(1) 引入依賴

<dependency>
    <groupId>com.yc.framework</groupId>
    <artifactId>yc-common-nacos</artifactId>
</dependency>
<dependency>
    <groupId>com.yc.framework</groupId>
    <artifactId>yc-common-openfeign</artifactId>
</dependency>

(2) 生產者服務模塊啓動類添加註解

@EnableFeignClients(basePackages ="com.ycframework.xxxxxx")

(3) 在 yc-api 模塊下新建對應的 API 類 (這裏以新建博客園 API 爲例)

@FeignClient(contextId = "cnBlogsApi",name = ApplicationConst.PLUGINS)
public interface CnBlogsApi {
    @PostMapping("/cnblogs/getToken")
    RespBody getToken();
    @PostMapping("/cnblogs/getPersonalBlogInfo")
    RespBody getPersonalBlogInfo(@RequestParam("username") String username);
    @PostMapping("/cnblogs/getPersonalBlogPostList")
    RespBody getPersonalBlogPostList(@RequestParam("userName") String userName, @RequestParam("pageIndex") Integer pageIndex);
    @PostMapping("/cnblogs/getEssenceAreaPostList")
    RespBody getEssenceAreaPostList(@RequestParam("pageIndex") String pageIndex, @RequestParam("pageSize") String pageSize);
    @PostMapping("/cnblogs/getSiteHomePostList")
    RespBody getSiteHomePostList(@RequestParam("pageIndex") String pageIndex, @RequestParam("pageSize") String pageSize);
}

(4) 消費者服務模塊引入 yc-api 依賴即可

<dependency>
    <groupId>com.yc.framework</groupId>
    <artifactId>yc-api</artifactId>
</dependency>

(5) 調用

@Autowired
private CnBlogsApi cnBlogsApi;

2. 案例有哪些?

在 YC-Framework 中,微服務通信的案例有如下:

以上案例代碼均可在 YC-Framework 中找到!!!

開源不易,如果對你有幫助,不妨給個 star(Github 與 Gitee),鼓勵一下!!!

YC-Framework 官網:
https://framework.youcongtech.com/

YC-Framework Github 源代碼:
https://github.com/developers-youcong/yc-framework

YC-Framework Gitee 源代碼:
https://gitee.com/developers-youcong/yc-framework

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/eW1vKAopjrrRlyJd7pfKkQ