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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

迎元旦,庆surging 1.0发布

發(fā)布時(shí)間:2023/12/4 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 迎元旦,庆surging 1.0发布 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一位攝影程序員的獨(dú)白

?????? 每個(gè)人都有愛好,都有釋放壓力的活動(dòng),而我也不例外,我除了每天上班,周末就會(huì)約一群好友去拍妹子,成家后,就改為拍蟲子,一拍就到了30歲,到了30歲就感覺到了中年的壓力,這時(shí)候停下手中的攝影,開始研究技術(shù),我開始翻閱各種技術(shù)博客,各種開源作品,靜下心去研究技術(shù)時(shí),發(fā)現(xiàn).NET的技術(shù)非常薄弱,各種解決方案都非常欠缺,尤其是微服務(wù),在.NET領(lǐng)域基本上一片空白,這時(shí)候碰巧.NET CORE 的出現(xiàn),研發(fā)surging想法也開始萌芽,也到處跟同事說,我要研發(fā)一套微服務(wù)框架,真正意義上的微服務(wù)框架,讓大家都去關(guān)注業(yè)務(wù),而無需去關(guān)注webapi,rest,http,tcp,rabbitmq,緩存等與業(yè)務(wù)無關(guān)的技術(shù),這些都由框架和中間件去實(shí)現(xiàn),而同事,朋友投過來的都是鄙夷,驚訝,意思是就憑你,是啊!就憑我,在不斷學(xué)習(xí)下,2017年我開始邁出了研發(fā)的第一步,2017年6月16日開始在github 進(jìn)行開源。而半個(gè)月后被邀請(qǐng)到TCC開源小組孵化surging.

??????? 轉(zhuǎn)眼間已經(jīng)到2018年年尾,還有一個(gè)星期就跨入2019年,在新年到來的日子,surging 也準(zhǔn)備發(fā)布1.0穩(wěn)定版本,在這1年半的日子里,耗費(fèi)了多少個(gè)日日夜夜我已經(jīng)記不清,每天下班回來我都要理清下surging ,還有哪些欠缺,需要彌補(bǔ),需要完善,耗費(fèi)了心血和時(shí)間在surging上,但是這一切都是值得的,因?yàn)橛行┕疽呀?jīng)采用surging? ,在微服務(wù)上已經(jīng)給了非常好的解決方案,并且有一家物聯(lián)網(wǎng)公司已經(jīng)使用surging 的ws,mqtt協(xié)議,據(jù)了解客戶端設(shè)備就有好幾萬臺(tái)。那下面我們來看看1.0版本有那些功能。

?


組件介紹

一、通信組件

1. Dotnetty:

針對(duì)于底層的http,mqtt,TCP協(xié)議采用了dotnetty進(jìn)行實(shí)現(xiàn) ,并且可以配置使用Libuv,而dotnetty 是微軟的Azure團(tuán)隊(duì),使用C#實(shí)現(xiàn)的Netty的版本,性能非常強(qiáng)大。

2.websocket-sharp:

針對(duì)于底層的websocket采用了websocket-sharp進(jìn)行實(shí)現(xiàn),因?yàn)楣俜轿粗С?net core,所以把它轉(zhuǎn)化支持.NET CORE,并且源碼放到surging ,并且同時(shí)和suring 一起發(fā)布

2.Kestrel:

針對(duì)于底層的Http協(xié)議采用了Kestrel進(jìn)行實(shí)現(xiàn),并且swagger也依賴于Kestrel,后期會(huì)擴(kuò)展身份驗(yàn)證,數(shù)據(jù)加密,服務(wù)聚合等功能以代替網(wǎng)關(guān),并且還會(huì)完善基于Kestrel的文件服務(wù)

二、編解碼組件

1.Newtonsoft.Json

針對(duì)于json 的編解碼采用了Newtonsoft.Json進(jìn)行實(shí)現(xiàn) ,并且默認(rèn)使用Newtonsoft.Json進(jìn)行編解碼

2.MessagePack-CSharp

針對(duì)于messagepack 的編解碼采用MessagePack-CSharp進(jìn)行實(shí)現(xiàn),MessagePack-CSharp是用于C#實(shí)現(xiàn)的MessagePack序列化組件,比官方的MsgPack-Cli快10倍,與其他所有C#序列化程序相比,具有最好的性能

3.protobuf-net

針對(duì)于二進(jìn)制的protobuf格式的編解碼采用的是protobuf-net進(jìn)行實(shí)現(xiàn)

三、日志組件

1.Nlog

Nlog組件

2.log4net

log4net組件進(jìn)行實(shí)現(xiàn),并且可以寫入到Console,file,database

四、注冊(cè)中心

1. consul

針對(duì)于MqttServiceRoute、ServiceCache、ServiceCommand、ServiceRoute采用了consul的Key/Value 進(jìn)行存儲(chǔ),并且更新是采用了心跳進(jìn)行更新

2. zookeeper

針對(duì)于MqttServiceRoute、ServiceCache、ServiceCommand、ServiceRoute采用了zookeeper指定path進(jìn)行node 儲(chǔ)存,并且更新是采用了watcher進(jìn)行更新

五、隊(duì)列

1. rabbitmq

針對(duì)于消息隊(duì)列rabbitmq 實(shí)現(xiàn)了消息的重試,失敗回滾,消息的延遲處理,目前只實(shí)現(xiàn)了direct

2. kafka

實(shí)現(xiàn)了針對(duì)于topic 進(jìn)行發(fā)布訂閱。

六、緩存

1.MemoryCache

由surging 的Caching組件提供的內(nèi)存緩存,使用該類型可以方便的在程序內(nèi)部緩存數(shù)據(jù)并對(duì)于數(shù)據(jù)的有效性進(jìn)行方便的管理

2.Redis

key-value

七:動(dòng)態(tài)代理

1.ProxyGenerator

針對(duì)動(dòng)態(tài)代理是通過Roslyn構(gòu)建腳本來生成編譯AOP動(dòng)態(tài)代理,以提供通過接口創(chuàng)建代理方式訪問。

負(fù)載均衡

一、容錯(cuò)策略

?

1. 隨機(jī)(Random):

通過生成隨機(jī)數(shù)隨機(jī)選擇服務(wù)地址,調(diào)用量越大分布越均勻

2. 輪詢(Polling)

通過輪詢地址選擇服務(wù)地址,存在比較慢的機(jī)器容易在這臺(tái)機(jī)器的請(qǐng)求阻塞較多,默認(rèn)使用此負(fù)載算法

3.哈希一致性(HashAlgorithm)

通過第一個(gè)參數(shù)生成的哈希值進(jìn)行哈希一致性選取服務(wù)地址,對(duì)于第一個(gè)相同參數(shù)的值的請(qǐng)求會(huì)定位到同一個(gè)服務(wù)提供者上

4.壓力最小優(yōu)先(FairPolling)

通過輪詢優(yōu)先選擇壓力最小的服務(wù)地址,針對(duì)于壓力比較小的服務(wù)器會(huì)分配更多的請(qǐng)求。

?

服務(wù)容錯(cuò)和熔斷

一、容錯(cuò)策略

1.故障轉(zhuǎn)移策略(Failover):

通過設(shè)置故障轉(zhuǎn)移群集數(shù)(FailoverCluster),從而服務(wù)故障自動(dòng)轉(zhuǎn)移到健康的服務(wù)提供者

2.腳本注入策略(Injection):

通過設(shè)置腳本注入(Injection),服務(wù)發(fā)生錯(cuò)誤時(shí)會(huì)返回所定義運(yùn)行的腳本結(jié)果

3.回退策略(FallBack)

通過設(shè)置回退的實(shí)例名(FallbackName),服務(wù)發(fā)生錯(cuò)誤時(shí)通過FallBackName去調(diào)用依賴注入的接口IFallbackInvoker

二、熔斷

1.錯(cuò)誤率熔斷

通過設(shè)置錯(cuò)誤率(BreakeErrorThresholdPercentage),當(dāng)失敗調(diào)用數(shù)/遠(yuǎn)程調(diào)用數(shù)大于錯(cuò)誤率,會(huì)啟用熔斷

2.超時(shí)熔斷

通過設(shè)置執(zhí)行超時(shí)時(shí)間(ExecutionTimeoutInMilliseconds),當(dāng)服務(wù)調(diào)用超過執(zhí)行時(shí)間會(huì)啟用熔斷

3.并發(fā)熔斷

通過設(shè)置信號(hào)量最大并發(fā)度(MaxConcurrentRequests),在多線程環(huán)境下超過設(shè)置的信號(hào)量,會(huì)啟用熔斷

4.錯(cuò)誤數(shù)熔斷

通過設(shè)置調(diào)用失敗的錯(cuò)誤數(shù)(BreakerRequestVolumeThreshold),在10秒鐘范圍內(nèi)超過設(shè)置的調(diào)用失敗錯(cuò)誤數(shù),會(huì)啟用熔斷

眾籌活動(dòng)

針對(duì)surging,體系比較龐大,組件涵蓋比較多,需要4名人員一起完善surging中英文文檔,然后經(jīng)過大家商量進(jìn)行眾籌,然后得到了大家熱烈響應(yīng),決定完成后,和參加者一起去云南旅游,不夠我自己補(bǔ)上費(fèi)用,經(jīng)過4天的募捐已經(jīng)達(dá)到6478元,最近也邀請(qǐng)同事,朋友參加,已經(jīng)有2名非常優(yōu)秀的人員參加英文文檔編寫,他們的英文非常好,可以和老外遠(yuǎn)程會(huì)議,并且公司藏龍臥虎的人非常多,最近有小組成員去了芝加哥出差,對(duì)于我這個(gè)英語二把刀的人來說,完全是個(gè)互補(bǔ)。并且每個(gè)月1號(hào)會(huì)把貢獻(xiàn)者名單更新到github

總結(jié)

surging 還有很長(zhǎng)的路要走,我會(huì)花很多時(shí)間在surging 維護(hù)和完善上,也請(qǐng)大家關(guān)注元旦1.0版本的發(fā)布,QQ群還有神秘大禮哦!

原文地址:https://www.cnblogs.com/fanliang11/p/10165757.html


.NET社區(qū)新聞,深度好文,歡迎訪問公眾號(hào)文章匯總 http://www.csharpkit.com


總結(jié)

以上是生活随笔為你收集整理的迎元旦,庆surging 1.0发布的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。