日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

拥抱.NET Core,跨平台的轻量级RPC:Rabbit.Rpc

發布時間:2023/12/4 asp.net 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 拥抱.NET Core,跨平台的轻量级RPC:Rabbit.Rpc 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

不久前發布了一篇博文“.NET輕量級RPC框架:Rabbit.Rpc”,當初只實現了非常簡單的功能,也羅列了之后的計劃,經過幾天的不斷努力又為Rabbit.Rpc增加了一大波新特性,今天主要介紹下項目近況。

特性一覽

  • Apache License 2.0協議開源

  • 支持客戶端負載均衡(提供了輪詢、隨機算法的實現)

  • 支持ZooKeeper和文件共享形式的服務協調

  • 運行時客戶端代理生成(基于Roslyn)

  • 預生成客戶端代理

  • 客戶端代理預生成(基于Roslyn)

  • 抽象的編解碼器(提供了JSON、ProtoBuffer協議的實現)

  • 抽象的傳輸通道(提供了DotNetty與Cowboy.Sockets的移植實現)

  • 異常信息傳遞(服務端運行時的本地異常可以傳遞至客戶端)

  • NET Core項目架構

  • 跨平臺

  • 項目概況

    開源地址:https://github.com/RabbitTeam/Rpc

    Rabbit.Rpc(支持跨平臺)

    Rpc核心類庫,有如下功能:

  • 服務Id生成

  • 傳輸消息模型

  • 類型轉換

  • 服務路由抽象

  • 序列化器抽象(默認提供JSON序列化器)

  • 傳輸抽象

  • 編解碼器抽象(默認提供JSON的編解碼器實現)

  • 客戶端運行時(地址解析器、地址選擇器,遠程調用服務)

  • 服務端運行時(服務條目管理、服務執行器、服務發現抽象、RpcServiceAttribute標記服務發現實現)

  • Rabbit.Rpc.ProxyGenerator(支持跨平臺)

    服務代理生成器,提供的功能:

  • 服務代理實現生成

  • 服務代理實例創建

  • extensions(相關擴展)

    Rabbit.Rpc.Codec.ProtoBuffer(支持跨平臺)

    ProtoBuffer協議的編解碼器實現。

    Rabbit.Rpc.Coordinate.Zookeeper(支持跨平臺)

    基于ZooKeeper的服務路由管理。

    Rabbit.Transport.DotNetty(暫不支持跨平臺)

    基于DotNetty的傳輸實現。

    ps:官方以有將DotNetty支持NET Core的計劃,大伙可以再等等,待官方支持后,會盡快進行適配。

    Rabbit.Transport.Simple(支持跨平臺)

    由于DotNetty不支持跨平臺運行,為了讓rpc能在其它平臺上跑通,故移植了“Cowboy.Sockets”實現了一個簡單的傳輸實現。

    tools

    Rabbit.Rpc.Tests

    單元測試項目。

    Rabbit.Rpc.ClientGenerator(支持跨平臺)

    預生產服務代理的工具,提供了如下功能:

  • 生成服務代理實現代碼文件

  • 生成服務代理實現程序集文件

  • 性能測試

    測試環境

    OS

    CPU

    內存

    硬盤

    網絡環境

    虛擬機

    Windows 10 x64

    I7 3610QM

    16GB

    SSD

    127.0.0.1

    Ubuntu 16.04 x64

    I7 3610QM

    4GB

    SSD

    127.0.0.1

    Windows10+NETCoreApp1.0+JSON協議+Simple傳輸

    概述

    平均用時:2601.6毫秒

    平均每次用時:0.26毫秒

    通過率:100%

    Windows10+NETCoreApp1.0+ProtoBuffer協議+Simple傳輸

    概述

    平均用時:2625.4毫秒

    平均每次用時:0.25毫秒

    通過率:100%

    Ubuntu16.04-x64+NETCoreApp1.0+JSON協議+Simple傳輸

    概述

    平均用時:3108.4毫秒

    平均每次用時:0.31毫秒

    通過率:100%

    Ubuntu16.04-x64+NETCoreApp1.0+ProtoBuffer協議+Simple傳輸

    概述

    平均用時:3580.4毫秒

    平均每次用時:0.35毫秒

    通過率:100%

    ps:linux性能與windows上的性能有一些差距,不知道是不是虛擬機的原因,但有個有趣的現象,protobuffer在linux上的性能居然比json低,應該是protobuffer庫的實現不夠優秀。

    測試代碼

    https://github.com/RabbitTeam/Rpc/tree/master/src/examples/performances

    下一步?

    等待DotNetty組件支持NETCore,并進行適配。

    繼續寫Rabbit.Rpc相關的文章。

    下一篇應該是,如何在Ubuntu上運行Rabbit.Rpc

    交流方式

    QQ群:384413261(RabbitHub)

    Email:majian159@live.com

    相關文章:

    • ASP.NET Core 1.0 入門——了解一個空項目

    • ASP.NET Core 1.0 部署 HTTPS (.NET Framework 4.5.1)

    • .NET Core 1.0、ASP.NET Core 1.0和EF Core 1.0簡介

    • 云服務器下ASP.NET Core 1.0環境搭建(包含mono與coreclr)

    • 使用VS Code開發ASP.NET Core 應用程序

    • dotnet run是如何啟動asp.net core站點的

    • ASP.NET Core提供模塊化Middleware組件

    • “dotnet restore"和"dotnet run"都做了些什么?

    • 探秘 dotnet run 如何運行 .NET Core 應用程序

    • .NET Portability Analyzer 已開源

    • ASP.NET Core的配置(1):讀取配置信息

    • ASP.NET Core的配置(2):配置模型詳解

    • .NET Core 1.0 RC2 歷險之旅

    • 使用VS Code開發 調試.NET Core 應用程序

    • 讓我們Core在一起:ASP.NET Core & .NET Core

    • .NET Core VS Code 環境配置

    • 官方博客明確了 .NET Core RC2/RTM 時間表

    • .NET Core全新的配置管理[共9篇]

    • 利用記事本創建一個ASP.NET Core RC2 MVC應用

    • 微軟.NET 正式劈腿成功,橫跨所有平臺

    • .NET Core 1.0 CentOS7 嘗試

    • 解讀發布:.NET Core RC2 and .NET Core SDK Preview 1

    • [.NET Core].NET Core R2安裝及示例教程

    • ASP.NET Core 開發-中間件(Middleware)

    • 結合Jexus + Kestrel 部署 asp.net core 生產環境

    • 通過Jexus 部署 dotnetcore版本MusicStore 示例程序

    • ASP.NET Core 中文文檔 第一章 入門

    • 用 Visual Studio Code 在 macOS 上創建首個 ASP.NET Core 應用程序

    • 用 Visual Studio 和 ASP.NET Core MVC 創建首個 Web API

    • 用 Visual Studio 發布一個 Azure 云 Web 應用程序

    • ASP.NET Core MVC 與 Visual Studio 入門

    • 第二章指南(4.2)添加 Controller

    • DotNet Core 介紹

    • asp.net core 中間件詳解及項目實戰

    • 教你實踐ASP.NET Core Authorization(免看文檔教程)

    • asp.net core 使用 Redis 和 Protobuf 進行 Session 緩存

    • asp.net core 中間件詳解及項目實戰

    • 第二章 指南(4.3)添加 View

    • dotnet core開發體驗之開始MVC

    • dotnet core 開發體驗之Routing

    • 聊聊ASP.NET Core默認提供的這個跨平臺的服務器——KestrelServer

    • 簡析.NET Core 以及與 .NET Framework的關系

    • .NET Core 使用Dapper 操作MySQL

    • 使用 CommandLineApplication 類創建專業的控制臺程序

    • 簡析 .NET Core 構成體系

    • .NET Core也可以使用MongoDB了

    • .NET Core & ASP.NET Core 1.0在Redhat峰會上正式發布

    • .NET Core:面向未來的開源跨平臺開發技術

    • 微軟說它深愛著Linux,現在它用行動證明了

    • 移植.NET Core計劃,整合各平臺變得更簡單了!

    • ASP.NET Core 介紹

    • 通過幾個Hello World感受.NET Core全新的開發體驗

    • ASP.NET Core 運行原理剖析1:初始化WebApp模版并運行

    • .NET Core系列 : 1、.NET Core 環境搭建和命令行CLI入門

    • Asp.Net Core 發布和部署( MacOS + Linux + Nginx )

    • Asp.Net Core 發布和部署(Linux + Jexus )

    • 學習ASP.NET Core,你必須了解無處不在的“依賴注入”

    • .NET Core應用類型(Portable apps & Self-contained apps)

    • .NET Core 1.0發布:微軟開源跨平臺大布局序幕

    • ASP.NET Core 運行原理剖析2:Startup 和 Middleware(中間件)

    • 在Windows Server 2012 R2 Standard 部署 ASP.NET Core程序

    • ASP.NET Core 開發-Entity Framework (EF) Core 1.0 Database First

    原文地址:http://www.cnblogs.com/ants/p/5652132.html


    .NET社區新聞,深度好文,微信中搜索dotNET跨平臺或掃描二維碼關注

    贊賞

    人贊賞

    總結

    以上是生活随笔為你收集整理的拥抱.NET Core,跨平台的轻量级RPC:Rabbit.Rpc的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。