hello world .net core 微服務框架 Viper

杜燕明發表於2020-11-02

1、Viper是什麼?

  Viper 是.NET平臺下的Anno微服務框架的一個示例專案。入門簡單安全穩定高可用全平臺可監控。底層通訊可以隨意切換thrift grpc 自帶服務發現、呼叫鏈追蹤、Cron 排程、限流、事件匯流排、CQRS 、DDD、類似MVC的開發體驗,外掛化開發  

 github: https://github.com/duyanming/Viper

文件地址: https://duyanming.github.io/

體驗地址: http://140.143.207.244/

如果對Viper不瞭解可以看:

  1、 net core 微服務 快速開發框架 Viper 初體驗

  2、打不死的小強 .net core 微服務 快速開發框架 Viper 限流

       3、net core 微服務框架 Viper 呼叫鏈路追蹤

2、Viper微服務編寫一個Hello World

  Anno微服務引擎使用非常簡單,Anno只專於與服務治理,對業務程式碼深度解耦。下面我們來寫一個Hello World 服務,以此作為引子 讓我們瞭解Anno服務的建立有多簡單。

2.1、新建一個.Net Core 的控制檯程式

  讓我們新建一個.Net Core 的控制檯程式作為服務外掛的宿主程式,當然你也可以新建一個Window服務程式、Winform程式作為外掛宿主程式。 這裡以.Net Core控制檯程式為例。

2.2、 新增Anno依賴

  

新增依賴需要兩個,一個是 Anno.EngineData ,一個是Anno.Rpc.ServerAnno.Rpc.ServerAnno服務的核心程式包, Anno.EngineData 是一個可選程式包,在這裡主要是因為業務外掛(例如 Anno.Plugs.ViperService)是一個和通訊解耦的模組, 為了方便服務之間也可以呼叫 Anno.EngineData 裡面宣告瞭服務之間呼叫的介面約束。Thrift、Grpc 外掛裡面做實現, 以此來解耦通訊元件和業務外掛。

新增Anno Nuget依賴

Install-Package Anno.EngineData -Version 1.0.2.6
Install-Package Anno.Rpc.Server -Version 1.0.2.6

增加一個Anno配置檔案

   Anno配置檔案的名稱為Anno.config,我們直接複製一個過來修改就可以了。主要還是修改下服務的名稱。 修改完城後我們就可以啟動服務了。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <!--0,0 第一位是 工作站,第二位資料中心
  (所有的 AnnoService 的 兩位數不能重複例如不能存在【1,2】【1,2】)
  可以存在【1,2】【2,1】
  -->
  <IdWorker>0,1</IdWorker>
  <!--App名稱-->
  <AppName>HelloWorld</AppName>
  <!--監聽埠-->
  <Port>7012</Port>
  <!--權重-->
  <Weight>1</Weight>
  <!--功能 非Anno.Plugs  加入方式-->
  <FuncName></FuncName>
  <!--忽略的功能 Trace,Logic-->
  <IgnoreFuncName></IgnoreFuncName>
  <!--超時時間毫秒-->
  <TimeOut>20000</TimeOut>
  <!--註冊到的目標-->
  <Ts Ip="127.0.0.1" Port="7010"/>
  <IocDll>
    <!-- IOC 倉儲-->
    <Assembly>Anno.Repository</Assembly>
  </IocDll>
  <appSettings>
   <!-- 沒有用到Redis可以留空預設-->
    <add key="redisConn" value=""/>
    <add key="redisPrefix" value="HW:"/>
    <add key="redisExpiryDate" value="20"/>
    <add key="redisSwitch" value="false"/>
  </appSettings>
</configuration>

 到此為止一個HelloWorld服務已經編寫完成且成功啟動。每個一秒會向註冊中心註冊。另外我們沒有看到提示服務功能Tag這是因為我們還沒有編寫功能外掛。 下一小節我們來編寫一個功能外掛。

  喜歡Viper的小夥伴們可以在體驗地址 通過 “叢集總覽” 找到兩個服務 “HelloWorld-SoEasy”、“HelloWorld”,然後進入 API詳情,模擬呼叫API提前體驗一下閘道器如何呼叫服務,服務之間如何相互呼叫。後面也會帶著大家編寫一到兩個簡單的功能外掛,以此加深對Viper的瞭解。

 

 github: https://github.com/duyanming/Viper

文件地址: https://duyanming.github.io/

體驗地址: http://140.143.207.244/

 關於Viper的更多內容,隨後更新。敬請關注。開源不易,感謝Star。

相關文章