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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

初识KV,SSE

發(fā)布時間:2024/3/7 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 初识KV,SSE 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

最近在接口文檔上發(fā)現(xiàn)了kv獲取配置和see輔助參數(shù)提交的接口,但是不知道在什么地方會用到她,同時為什么要有這些?接下來,我這邊把我的認(rèn)知和網(wǎng)上的理解給簡單解釋下

一、KV(key value),可以存任何端需要的配置類東西

由于 Nacos 的服務(wù)模塊存儲,更多的都是根據(jù)單個或者多個唯? key 去執(zhí)行點查的操作,因此Key-Value 類型的存儲接口最適合不過。而 Key-Value 的存儲接口定義好之后,其實就是這個KVStore 的具體實現(xiàn)了。可以直接將 KVStore 的實現(xiàn)對接 Redis,也可以直接對接 DB ,或者直接根據(jù) Nacos 內(nèi)核模塊的?致性協(xié)議,在此基礎(chǔ)之上,實現(xiàn)?個內(nèi)存或者持久化的分布式強(弱)?致性 KV。通過功能邊界將 Nacos 進程進?步分離為計算邏輯層和存儲邏輯層,計算層和存儲層之間的交互僅通過?層薄薄的數(shù)據(jù)操作膠水代碼,這樣就在單個 Nacos 進程里面實現(xiàn)了計算和存儲二者邏輯的徹底分離。

主要用于配置的讀取修改等,方便統(tǒng)一化操作,可用于bs或cs代碼里面的枚舉為文件名,xml文件格式為 id value的格式。

(1)下面是采用kv命令處理數(shù)據(jù):

新增或者修改數(shù)據(jù):consul kv put key value查詢命令:consul kv get key查詢指定路徑下所有的key:consul kv get -recurse path刪除數(shù)據(jù)命令如下:consul kv delete key

(2)那么接口如何操作呢,下面是http api的一些寫法:

使用之前需要注意一點,啟動consul agent的時候,需要加上-client 0.0.0.0參數(shù),這個的意思就是允許任何ip的機器連接consul,如果不加這個參數(shù),consul默認(rèn)只有本機可以訪問。

<1 查詢數(shù)據(jù):

使用http get,url如下,ip為運行consul agent的機器ip,port默認(rèn)為8500,可以在啟動consul agent的時候通過-http-port選項指定為其他端口,key注意如果有path的話需要帶上,url如下:

http://ip:port/v1/kv/key

例如:

注意:value是經(jīng)過base64編碼的,程序里使用http api的話需要對結(jié)果中的value進行解碼。

<2 新增或修改數(shù)據(jù):

使用http put,url如下,body中攜帶value:

http://ip:port/v1/kv/key

例如:

如果需要設(shè)置flags,加在query參數(shù)中,例如:

?使用http delete,url如下:

http://ip:port/v1/kv/key

例如:

?其他相關(guān)kv可參考:

https://blog.csdn.net/Fanbin168/article/details/52504839

https://blog.csdn.net/weixin_45932150/article/details/122163152

?二、sse(server -sent event) ,通俗解釋起來就是一種基于HTTP的,以流的形式由服務(wù)端持續(xù)向客戶端發(fā)送數(shù)據(jù)的技術(shù)

由于HTTP是無狀態(tài)的傳輸協(xié)議,每次請求需由客戶端向服務(wù)端建立連接,HTTPS還需要交換秘鑰,所以一次請求,建立連接的過程占了很大比例
在http1.1中(1.0也有但未寫入標(biāo)準(zhǔn)),雖然增加了keep-alive來保持和服務(wù)器的長連接,省去了很多建立連接的過程,但通信過程仍然是應(yīng)答式1:1的方式,也就是想要獲得數(shù)據(jù),就必須先發(fā)送一個request才能得到一個response,所以在實時監(jiān)控、推送、視頻直播等實時性較高或者帶寬利用較苛刻的場景,仍然不是很合適
SSE技術(shù)由于能保持連接,并持續(xù)接收服務(wù)端的數(shù)據(jù),所以彌補了這一缺點,與其他類似技術(shù)方案相比,短輪詢、Coment、WebSocket,在大多數(shù)時候,SSE仍然是最好的選擇

web API接口EventSource

EventSource 接口用于接收服務(wù)器發(fā)送的事件。它通過HTTP連接到一個服務(wù)器,以text/event-stream 格式接收事件, 不關(guān)閉連接。

例如:

(1)服務(wù)端代碼:

<?php # 指定數(shù)據(jù)類型,指定允許域訪問 header("Content-Type: test/event-stream; charset=utf-8"); header("Access-Control-Allow-Origin:http://127.0.0.1"); echo "data: 現(xiàn)在北京時間是:".date('H:i:s')."\r\n\r\n"; ?>

(2)前端代碼

let source;function init(arg) {source = new EventSource('http://127.0.0.1/sse/data.php');source.onopen = () => {console.log("連接已建立", this.readyState);}source.onmessage = (event) => {console.log("從服務(wù)器拉取的時間:", event.data);}source.onerror = () => {console.log('');} } init();

其他相關(guān)參考:

https://www.cnblogs.com/goloving/p/9196066.html

https://blog.csdn.net/weixin_30321709/article/details/101747736

https://www.jianshu.com/p/ed94c8005f2c

總結(jié)

以上是生活随笔為你收集整理的初识KV,SSE的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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