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

歡迎訪問 生活随笔!

生活随笔

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

asp.net

.NetCore框架Surging系列(一)介绍

發布時間:2023/12/20 asp.net 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 .NetCore框架Surging系列(一)介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

.NetCore框架Surging系列(一)介紹
.NetCore框架Surging系列(二)HTTP
.NetCore框架Surging系列(三)HTTP本地路由發現過程

這里寫自定義目錄標題

  • Surging
    • 一 簡介
    • 二 安裝使用
    • 三 工程結構介紹
    • 四 擴展工程
    • 五 總結

Surging

surging 是一個分布式微服務引擎,提供高性能RPC遠程服務調用,服務引擎支持http、TCP、WS、Mqtt協議,采用Zookeeper、Consul作為surging服務的注冊中心,集成了哈希一致性,隨機,輪詢、壓力最小優先作為負載均衡的算法,底層協議集成采用的組件是dotnetty、websocket-sharp、Kestrel。支持通過docker hub 部署服務引擎,也可以通過nuget 引用組件的方式自定義服務引擎

一 簡介

surging 是一個分布式微服務引擎,提供高性能RPC遠程服務調用,服務引擎支持http、TCP、WS、Mqtt協議,采用Zookeeper、Consul作為surging服務的注冊中心,集成了哈希一致性,隨機,輪詢、壓力最小優先作為負載均衡的算法,底層協議集成采用的組件是dotnetty、websocket-sharp、Kestrel。支持通過docker hub 部署服務引擎,也可以通過nuget 引用組件的方式自定義服務引擎。

二 安裝使用

這個寫的較好:https://www.cnblogs.com/YorkSun/p/10438717.html
作者博客(很久沒有更新了):https://www.cnblogs.com/fanliang11/tag/surging/

三 工程結構介紹

不常用:暫時沒有用上,不代表不重要

  • Surging.Core.Abp(不常用)
  • Surging.Core.ApiGateWay(不常用)
  • Surging.Core.AutoMapper(不常用)
    對象映射
  • Surging.Core.Caching(重要)
    1 ) 緩存地址管理->配置地址,尋址
    2 ) 哈希算法->ConsistentHashNode
    3 ) 健康檢查->DefaultHealthCheckService
    4 ) 緩存客戶端->ICacheClient
    5 ) 緩存管理器->AppConfig負責緩存的配置和注冊緩存實例,實例管理器CacheContainer提供緩存提供器(ICacheProvider)的實例。
    6 ) MemoryCache實現
    7 ) RedisCache實現
  • Surging.Core.Codec.MessagePack(重要)
    Rpc傳輸消息處理,傳輸消息、接收消息的編碼、解碼
  • Surging.Core.Codec.ProtoBuffer(不常用)
    傳輸消息編碼協議,同上
  • Surging.Core.Common(視情況)
    公共方法,擴展字符串、枚舉處理等,不過在擴展的時候沒有修改這里面的內容,是單獨建一個項目,作用等同
  • Surging.Core.Consul(重要)
    服務集群中HTTP路由管理、Rpc命令、緩存
  • 1 ) Consul配置管理。默認配置ConfigInfo,從服務Consul配置(surgingSettings.json)中讀取ConsulOption。
    2 ) Consul地址管理,路由添加、路由尋址、Consul健康檢查
    3 ) Consul中Key/Value管理。由定時服務管理ClientWatchManager進行定時刷新
    Key分類兩類 ,所有接口繼承IServiceKey都會被記錄。其中Key會記錄相關模塊信息。
    i. lock_services類
    serviceRoutes
    ii. services類

  • serviceCaches 緩存相關信息
  • serviceCommands被作用于RPC配置,負載分流策略、故障轉移次數、開啟熔斷保護等請求策略??蛻舳舜碚{用等配置在服務端surgingSettings.json中配置,例如超時時間,服務在啟動的時候,會從配置中讀取然后寫到各個command的Value中。接口可以更改Command屬性,并在Value中記錄相關策略信息。例如
    {
    “ServiceId”: “Surging.IModuleServices.Common.IUserService.GetUser_user”,//路由ID
    “FailoverCluster”: 3, //錯誤重試次數
    “CircuitBreakerForceOpen”: false, //是否開啟熔斷
    “Strategy”: “Injection”, //熔斷后響應策略 故障轉移、返回指定內容、回退
    “ExecutionTimeoutInMilliseconds”: 20000, //超時時間
    “RequestCacheEnabled”: true,
    …省略
    “MaxConcurrentRequests”: 20
    }
  • serviceRoutes 所有接口路由信息,用Http、Proxy(代理不常用)、Rpc(http請求路由不再本地,用路由尋址后發起RPC)調用
    {
    “AddressDescriptors”:[
    {
    //接口地址信息 -> IP 主機地址
    //HttpPort -> Http端口
    //Port -> Rpc端口
    “Value”:"{“Ip”:“127.0.0.1”,“Port”:98,“WanIp”:“127.0.0.1”,“WsPort”:96,“MqttPort”:97,“HttpPort”:280}"
    }
    ],
    “ServiceDescriptor”:{
    “Id”:“Surging.IModuleServices.Common.IUserService.GetUser_user”, //路由轉為ID 命名空間+類名+方法名
    “Token”:“428c32e9df8744c6b7a8d6b90327737b”,
    “RoutePath”:“api/v1/user/”, //路由地址
    “Metadatas”:{
    }
    }
    }
  • Consul 健康檢查 后續補上完整流程
  • Surging.Core.CPlatform(核心)
    幾乎是所有模塊的基礎,集群地址、緩存、配置、事件、日志、路由、序列化、RPC傳輸等依賴注入的方法接口基礎類
  • Surging.Core.DNS(不常用)
  • Surging.Core.DotNetty(重要)
    Rpc服務器監聽、傳輸通道的消息適配、消息發送、客戶端創建工廠
  • Surging.Core.DotNettyWSServer(沒使用)
  • Surging.Core.EventBusKafka(沒使用)
  • Surging.Core.EventBusRabbitMQ(重要)
    消息隊列使用的這個組件,可以參考微軟項目eShopOnContainers,消息處理、斷線重連、重試隊列、死信隊列等處理
    1 ) 配置管理。默認配置、配置提供、配置改寫(從服務中讀取配置AppConfig改寫默認配置)
    2 ) 默認連接方式。DefaultRabbitMQPersisterConnection
    3 ) 初始化。EventBusRabbitMQModule
    4 ) 消息發送和消息接收管理。EventBusRabbitMQ,包含所有實現連接管理(連接、連接異常處理、斷線重連等)、發送機制(發送時會注冊exchange,模式為direct,該模式要求隊列Queue注冊時信道Route名稱需要完全一致),接收機制(訂閱消息,重試機制和死信隊列機制。如果接收消息并處理相關業務失敗次數大于配置次數加入…)
    5 ) 消息隊列屬性。QueueConsumerAttribute,消費者訂閱的隊列。
  • Surging.Core.Grpc(沒使用)
  • Surging.Core.Kestrel.Log4net(日志)
  • Surging.Core.Kestrel.Nlog(日志)
  • Surging.Core.KestrelHttpServer(核心)
    HTTP服務監聽、處理、轉發、過濾、異常攔截,這個模塊有內存泄漏,很隱蔽,后面可以詳細說明一下:如何發現、如何分析、如何定位、如何修改
  • Surging.Core.Log4net(日志 使用)
  • Surging.Core.NLog(日志 未使用,個人覺得Nlog更好,團隊談論使用Log4net:大多數人熟悉)
  • Surging.Core.Protocol.Http
  • Surging.Core.Protocol.Mqtt
  • Surging.Core.Protocol.Udp
  • Surging.Core.Protocol.WS
  • Surging.Core.ProxyGenerator
  • Surging.Core.Redis(重要)
    緩存的實現模塊,處理連接池、虛擬節點、節點選擇算法、緩存添加刪除(只適配了字符串,其他類型需要按需擴展,是StackExchange.Redis的二次封裝)
  • Surging.Core.ServiceHosting(修改很少)
  • Surging.Core.ServiceHosting.Extensions
  • Surging.Core.Stage(重要)
    http請求的過濾器實現模塊
  • Surging.Core.Swagger(API展示)
  • Surging.Core.System(重要)
    依賴注入的實現等,很重要但很少修改和擴展
  • Surging.Core.Zookeeper(暫時未用)
  • 四 擴展工程

    團隊可以根據需要擴展Surging,以下是我們擴展的內容

  • 事務處理
  • 冪等性操作
  • 服務接口基類
    a ) 初始化當前登錄用戶信息等
  • Quartz.net作業任務
  • 倉儲
  • 集成微軟模型驗證
  • 數據過濾:不安全字段(SQL注入等)、敏感詞過濾(dang、zf等)
  • 公共方法
    1、 枚舉字段、屬性用int替換,在上層使用時強轉
    2、 枚舉值參數注入
  • 五 總結

    整體上Surging是一款非常優秀、功能齊全、性能好。但是內容非常多,同同類功能多個實現,初次接觸上手難度大,如果已經接觸過微服務結構,發現可能有的模塊實現有不太適合有的業務場景,后面會分模塊剖析Surging內部實現,以便大家進化架構時可以更快擴展內容和擴展點。

    總結

    以上是生活随笔為你收集整理的.NetCore框架Surging系列(一)介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    主站蜘蛛池模板: 在线成人av| 国产成人综合亚洲 | 成年人网站黄色 | 五月婷婷av | 一区二区三区国产av | www国产精品视频 | 日韩成人高清在线 | 人妖和人妖互交性xxxx视频 | 国产精品一区在线播放 | 成人va在线观看 | 国产精品久久久久久免费免熟 | 综合色区 | 肥熟女一区二区三肥熟女 | 男女曰逼视频 | 国产精品久久久久久亚洲调教 | 国产午夜精品一区二区三区视频 | 男人影院在线 | 日本中文字幕高清 | 自拍偷拍 国产 | 成年人午夜免费视频 | 午夜免费福利 | 怡红院久久 | 水牛影视av一区二区免费 | 日本亲近相奷中文字幕 | 色呦呦在线播放 | 亚洲成人日韩在线 | 亚洲17p| 亚洲午夜免费视频 | 玖玖精品 | 天天综合天天综合 | 中文字幕人妻丝袜二区 | 天天摸日日摸狠狠添 | 成人福利视频在线观看 | 少妇被中出 | 亚洲精品国产免费 | 亚洲精品a | 九九色在线 | 国产人人射| 国语对白91 | 欧美体内she精高潮 日韩一区免费 | 国产一级一片免费播放放a 丁香六月色 | 国产日韩欧美中文字幕 | 在线h片 | 国产无套精品一区二区三区 | 亚洲欧洲自拍偷拍 | 人人干干| 男男全肉变态重口高h | 成人毛片一区二区三区 | 成人免费视频国产免费网站 | 天堂中文在线资 | 日韩成人中文字幕 | 性视频在线播放 | 青青草原综合久久大伊人精品 | 天天插夜夜爽 | 日本欧美一区二区 | 亚洲爱爱爱 | 91九色国产 | 精品久久久无码中文字幕边打电话 | 亚洲一区福利视频 | 亚洲av无码片一区二区三区 | 中文一区二区在线 | 午夜精品成人毛片非洲 | 中文字幕免费视频观看 | 亚洲色图二区 | 99资源网| www成人在线 | 超碰人人人人人人人 | 激情亚洲网 | 九七超碰在线 | 美女自拍视频 | 久久99精品久久久久久 | 黄色三级在线观看 | 超碰caopor | 色哥网| 欧美 日韩 国产 成人 | 一本免费视频 | 欧美日韩精品区 | 成年人午夜视频 | 欧美性大交 | 九色首页| 日本xxxx在线观看 | 精品亚洲一区二区三区四区五区高 | 亚洲大尺度在线观看 | 亚洲图片激情小说 | 免费高清视频在线观看 | 超碰在线资源 | 天堂影视av| 欧美日韩精品一区二区三区四区 | 欧美在线免费 | 91视频一区二区三区 | 成人h片在线观看 | 日韩一区二区三区免费 | 成人h视频在线观看 | 熟妇人妻久久中文字幕 | 懂色av一区二区三区四区 | 国产三级三级三级三级三级 | 黄色专区 | 午夜h | 手机在线看片你懂的 |