1. 程式人生 > >搭建一套ASP.NET Core+Nacos+Spring Cloud Gateway專案

搭建一套ASP.NET Core+Nacos+Spring Cloud Gateway專案

### 前言     伴隨著隨著微服務概念的不斷盛行,與之對應的各種解決方案也層出不窮。這畢竟是一個資訊大爆發的時代,各種程式語言大行其道,各有各的優勢。但是有一點未曾改變,那就是他們服務的方式,工作的時候各司其職,但是需要提供服務的時候必須要高度統一,這也是微服務的概念之一。日常的工作學習中,我個人更喜歡通用的解決方案,特別是能將不同程式語言亦或者不同程式設計框架整合到一起的那種,這種解決方案拉近了程式語言之間的距離,讓開發者能更清楚的意識到程式語言只是工具,解決問題才是王道。好了口遁到此結束,接下來我就搭建一套.Net體系結合Java體系的專案架構。 ### 概念介紹 接下來我們用到的技術棧名詞主要涉及到ASP.NET Core、Nacos、Spring Cloud Gateway,接下來我們分別介紹所使用的的三種框架。 #### Nacos Nacos是阿里巴巴開源的致力於服務發現、配置和管理微服務的框架。提供了一組簡單易用的特性集,幫助您快速實現動態服務發現、服務配置、服務元資料及流量管理。一般用到的最多的就是當做配置中心和註冊中心。
  • 中文官網地址:https://nacos.io/zh-cn/
  • 官方GayHub GitHub地址:https://github.com/alibaba/nacos
  • 下載地址:https://github.com/alibaba/nacos/releases下載執行Nacos之前別忘了安裝JDK,如何安裝JDK請自行百度這裡就不再詳細介紹了。下載Nacos方式有兩種。第一種是直接下載打包好的檔案直接執行。第二種是下載原始碼自己編譯,還需要安裝maven,相對於第一個稍微複雜一些,我選擇的是第一種方式。
#### ASP.NET Core ASP.NET Core是微軟開源跨平臺的Web開發框架,這個作為.Net開發者相信大家已經非常熟悉了,目前最新的正式版本是3.1.5,也是我們本次搭建框架的重頭戲,作為業務的真正執行者
  • 中文官網文件地址:https://docs.microsoft.com/en-us/aspnet/core/?view=aspnetcore-3.1
  • 官方GayHub GitHub地址:https://github.com/dotnet/aspnetcore
  • 安裝Visual Studio 2019可以直接使用框架進行程式設計
#### Spring Cloud Gateway Spring Cloud Gateway為Spring生態系統上的一個API閘道器元件,主要提供一種簡單而有效的方式路由對映到指定的API,併為他們提供安全性、監控和限流等等。最主要的是可以輕鬆整合已有的Spring各種全家桶,比如咱們這次使用的Nacos,搭建使用起來非常方便。
  • 官網文件地址:https://spring.io/projects/spring-cloud-gateway/a>
  • 官方GayHub GitHub地址:https://github.com/spring-cloud/spring-cloud-gateway/
  • 我使用的是 IntelliJ IDEA 2019.2,能直接選擇模板生成Spring Cloud Gateway專案非常方便
### 開始搭建 上面大致介紹了相關概念,相信大家也有了大致的瞭解。口說無憑,直接開幹。 #### 執行Nacos 執行啟動Nacos,在瀏覽器輸入輸入http://localhost:8848/nacos/#會展示出如下介面。 ![](https://img2020.cnblogs.com/blog/2042116/202007/2042116-20200703151819842-150070585.png)本次我們主要是用Nacos作為註冊中心,所以我們只需要關注服務管理模組即可。 #### 搭建ASP.NET Core專案     ASP.NET Core專案是我們業務介面的真正提供者,這裡我搭建兩個專案用於模擬訂單系統和商品系統。用Visual Studio新建兩個Web空專案,分別是OrderApi和ProductApi。OrderApi呼叫ProductApi屬於內部之間呼叫,不走Gateway。由於我們使用Nacos作為註冊中心,所以我們在需要對接到Nacos上。Nacos有一套Open API的介面對接方式(官方文件)[https://nacos.io/zh-cn/docs/open-api.html]有詳細的介紹。自己寫終究還是比較麻煩的,好在隨著NET Core的日漸成熟,已經有大佬為我們實現了一套sdk基本上滿足我們的使用非常的方便,GitHub地址為[https://github.com/catcherwong/nacos-sdk-csharp](https://github.com/catcherwong/nacos-sdk-csharp)別忘了給大佬個Star