在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/ GO問答
墻頭草 回答

socket也就是套接字,負(fù)責(zé)的是數(shù)據(jù)的傳輸,數(shù)據(jù)的格式和數(shù)據(jù)是否加密是根據(jù)具體協(xié)議來的。
比如http協(xié)議就不需要加密,但是https協(xié)議就需要加密了,如果你自己開發(fā)了一套基于TCP/IP的加密協(xié)議,那么就根據(jù)你自己的協(xié)議規(guī)則加密解密。

清夢(mèng) 回答

遞歸


f(arr, 3, [])

function f(arr,k,temp){
    if(k<=0){
        let sum = 0
        let r =[]
        for(let i = 0; i < temp.length; i++){
            sum += temp[i]
            r.push(temp[i])
        }
        if (sum  === hz) {
            result.push(r)
        }
        return
    }
    for (let i = 0; i < arr.length; i++) {
        temp.push(arr[i])
        f(arr, k-1, temp)
        temp.splice(temp.length-1, 1)
    }
}

golang的人好少,只能夠邀請(qǐng)你們幾位,感謝各位!

雅痞 回答

一般主要靠?jī)牲c(diǎn)保證數(shù)據(jù)一致性:
1.事務(wù)控制,如這里操作1執(zhí)行完以后不提交事務(wù),執(zhí)行操作2等操作2返回正常請(qǐng)求了,然后提交操作1的事務(wù)
2.補(bǔ)償機(jī)制,如這里的業(yè)務(wù),可以通過保存請(qǐng)求信息和狀態(tài),然后后續(xù)通過定時(shí)任務(wù)等操作來掃描是否有總庫(kù)和本地庫(kù)會(huì)員不一致的情況,有的話,進(jìn)行業(yè)務(wù)處理

毀憶 回答

不知道你了解 C 里面的內(nèi)存對(duì)齊不?這里是同樣的道理

因?yàn)槟愕慕Y(jié)構(gòu)了出現(xiàn)了 float64,導(dǎo)致整個(gè)結(jié)構(gòu)里的成員都要以 64 位對(duì)齊(也就是 8 字節(jié))

對(duì)于 A,X Y 和 Z 各占 8 字節(jié),也就是 24 字節(jié)
對(duì)于 B,Y 占 8 字節(jié),而 X 和 Z 能在一個(gè) 8 字節(jié)的空間中放下,所以它們共用 8 字節(jié)

結(jié)論就顯而易見了吧

你可以使用 這個(gè)網(wǎng)站 來查看一個(gè)結(jié)構(gòu)體內(nèi)存布局

巷尾 回答

反射主要是用來做框架的,一般不會(huì)去使用的。

懷中人 回答

我覺得return挺好啊,是正常的處理邏輯,我個(gè)人覺得寫代碼,簡(jiǎn)單的最不容易出錯(cuò),這也是我之前去參加gopher的時(shí)候,有一個(gè)分享者說的,我覺得挺正確的。

還有其他方式,比如sync.WaitGroup 和 channel,網(wǎng)上例子挺多的。

抱緊我 回答
背景
目前項(xiàng)目中會(huì)使用了Iaas中的vm,所有操作都是通過ssh連上去的。pm表示要不要寫個(gè)agent在里面用,現(xiàn)在每次操作都ssh一下都很惡心。

談?wù)勎艺J(rèn)為使用ssh的好處:
代碼集中在一處,不需要分發(fā)
不需要維護(hù)agent這么一個(gè)進(jìn)程的生命周期,以及檢測(cè)它的心跳
缺點(diǎn):

不支持異步
我想問的問題
ssh的開銷大嗎?在我看來似乎和寫一個(gè)基于web server 的agent差不多
大家一般是如何選型的?為什么這么選?

這個(gè)東西以前做過類似的,也有過反思,甚至設(shè)計(jì)的原型和你說的一模一樣。

例如,我為什么要用基于web server的agent呢,我干嘛不用tcp長(zhǎng)連接到服務(wù)端,這樣執(zhí)行的結(jié)果可以流式傳輸?shù)秸{(diào)用方,他那邊顯示起來比較平滑,不用每個(gè)命令執(zhí)行完等結(jié)果。
但是我這樣搞的話,中控端流量和日志存儲(chǔ)就成了問題了啊。
如果我的業(yè)務(wù)都在云上,如果不同機(jī)房網(wǎng)絡(luò)不互通的話,我又要蛋疼地搞點(diǎn)兼容的事情……
例如,agent的生命周期,為什么我要檢測(cè)她的心跳呢?機(jī)器上萬臺(tái)的話,任何可能的事情都會(huì)發(fā)生啊,修復(fù)起來太蛋疼了。但是我不處理的話……所以后面我會(huì)考慮用ssh來修復(fù)agent啊。

我假設(shè)你所有的機(jī)器都是linux,發(fā)行版為同一種。

SSH:

  1. 依賴于ssh的速度,一旦網(wǎng)絡(luò)抖動(dòng),ssh操作便會(huì)失敗。(低概率/風(fēng)險(xiǎn))
  2. 依賴于key,如果你安全策略不夠嚴(yán)謹(jǐn),或者管理比不嚴(yán)格的話,那么必然會(huì)造成root key的泛濫。(安全風(fēng)險(xiǎn)高)
  3. 開源技術(shù)很成熟,你很容易就能用幾行python包裝出一個(gè)比較完善的腳本,或者寫出一個(gè)ansible的配置。(用起來簡(jiǎn)單)

AGENT:

  1. 依賴于中控端。如果你不打算搞個(gè)中控端,那和ssh沒本質(zhì)區(qū)別。
  2. 其實(shí)和SSH一樣,依賴于網(wǎng)絡(luò),一旦抖動(dòng)也會(huì)出問題。
  3. ?;?。如果你的公司稍微大點(diǎn)的話,會(huì)有各種亂七八糟的原因能讓你的agent不起作用,甚至被kill。雖然處理起來沒啥問題,但是這個(gè)活總得有人來干。(低風(fēng)險(xiǎn))
  4. 維護(hù)。(成本中等)
  5. agent其實(shí)可以不用中間代碼,因?yàn)橐环矫婀ぷ髁勘容^大,一方面教育成本和學(xué)習(xí)成本也比較高。只是向agent下發(fā)shell腳本、python腳本等也可以完成相同的功能,沒問題的。

大公司有各種審計(jì)、安全方面的需求,會(huì)把這種事情統(tǒng)一到某個(gè)地方,搞個(gè)中控端,所有的批量操作必須通過中控端。模式也不一樣,有些用agent,有些用ssh,只有中控端才是必須要有的。

再說的直白點(diǎn),
你是個(gè)小公司,小于30臺(tái)機(jī)器或者小于50臺(tái)機(jī)器的話,不建議考慮agent模式。
沒那個(gè)需求,投入的成本大而收效低。
基于各種第三方框架包裝一個(gè)就好了嘛,嫌麻煩就ansible用起。

墨小羽 回答

跨域了,需要設(shè)置Access-Control-Allow-Origin為你的域名,或者直接為*

尕筱澄 回答

為避免種族歧視之嫌,我們只討論站點(diǎn)吧。

題主在站點(diǎn)上的設(shè)計(jì)是有問題的,拿北京-鄭州-廣州舉例(火車從北京到廣州是不可能經(jīng)過上海的),客人選了北京-廣州的班次,但買的是北京-鄭州段,那么:

  • 首先看北京-鄭州段有沒有庫(kù)存,有的話就減1;
  • 如果沒有該段庫(kù)存,那么找最短的包含該段的庫(kù)存,例如北京-漢口,這樣會(huì)北京-漢口的庫(kù)存減1,同時(shí)鄭州-漢口的庫(kù)存加1。
鹿惑 回答

你需要把你的static文件加入到route中
比如

g := gin.Default()
g.Static("/static", "static/js")
g.Run(":8002")

如果你的文件目錄是這樣的

clipboard.png

此時(shí) 在模板文件中,你使用js的路徑應(yīng)該是/static/js/aaa.js
在訪問模板時(shí)候,js 就會(huì)load

兔囡囡 回答

大神,指教啊,誨人不倦啊,。。。。。

乖乖噠 回答

你想用短鏈接是為了解決什么問題?

焚音 回答

使用filepath.Glob+ 帶緩沖的channel:

package main

import (
    "fmt"
    "path/filepath"
    "sync"
)

func main() {
    ls, err := filepath.Glob("*") // 獲取頂層文件/文件夾
    CheckErr(err)

    wg := new(sync.WaitGroup)
    ch := make(chan string, 5)

    go DeleteFile(ch, wg)

    for _, v := range ls {
        wg.Add(1)

        ch <- v
    }

    close(ch)

    wg.Wait()
}

func DeleteFile(ch chan string, wg *sync.WaitGroup) {
    for v := range ch {
        fmt.Println("to remove : ", v)
        wg.Done()
    }
}

func CheckErr(err error) {
    if err != nil {
        panic(err)
    }
}
朕略傻 回答

正則版的來了:

"李某平".replace(/^(.+).(.)$/, "$1*$2");
"慕容某霜".replace(/^(.+).(.)$/, "$1*$2");