久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

GOLANG使用THRIFT的鑒權(quán)和多路復(fù)用

 quasiceo 2016-11-19

GOLANG使用THRIFT的鑒權(quán)和多路復(fù)用

www. 編輯:kp12345 來(lái)源:轉(zhuǎn)載
本文章來(lái)為各位介紹一篇關(guān)于GOLANG使用THRIFT的鑒權(quán)和多路復(fù)用,,希望此文章能夠幫助到各位朋友。

最近梳理公司的服務(wù)時(shí),,決定把基礎(chǔ)組件抽離出來(lái)服務(wù)化,。因?yàn)楣纠镉卸喾N語(yǔ)言開發(fā)的服務(wù),決定使用thrift來(lái)解決跨語(yǔ)言通訊,。

啟動(dòng)一個(gè)server

thrift對(duì)golang的支持已經(jīng)很好了,,官方包里提供了一個(gè)server基類和一個(gè)簡(jiǎn)單服務(wù)simple_server.go.自己可以實(shí)現(xiàn)server來(lái)做鑒權(quán)和其它統(tǒng)計(jì)操作.
server定義了一個(gè)TServer接口和一些方法,源碼如下:

type TServer interface {
    ProcessorFactory() TProcessorFactory          //服務(wù)
    ServerTransport() TServerTransport            //連接
    InputTransportFactory() TTransportFactory     //輸入
    OutputTransportFactory() TTransportFactory    //輸出
    InputProtocolFactory() TProtocolFactory       //協(xié)議
    OutputProtocolFactory() TProtocolFactory      //協(xié)議

    // Starts the server
    Serve() error
    // Stops the server. This is optional on a per-implementation basis. Not
    // all servers are required to be cleanly stoppable.
    Stop() error
}
Server方法進(jìn)行監(jiān)聽,接受請(qǐng)求,調(diào)度處理.下面是simple_server.go的Server方法.

func (p *TSimpleServer) Serve() error {
    err := p.Listen()
    if err != nil {
        return err
    }
    p.AcceptLoop()
    return nil
}
func (p *TSimpleServer) AcceptLoop() error {
    for {
        client, err := p.serverTransport.Accept()
        if err != nil {
            select {
            case <-p.quit:
                return nil
            default:
            }
            return err
        }
        if client != nil {
            go func() {
                if err := p.processRequests(client); err != nil {
                    log.Println("error processing request:", err)
                }
            }()
        }
    }
}
只要自己實(shí)現(xiàn)相關(guān)接口方法,在方法中就可以進(jìn)行相關(guān)鑒權(quán)/統(tǒng)計(jì)等處理了。

關(guān)于多路復(fù)用idl寫法的問(wèn)題

golang的多路復(fù)用是要把service寫在一個(gè)idl文件里的,,而java就不需要,。這個(gè)在剛開始的時(shí)候耽誤了點(diǎn)時(shí)間。

沒(méi)有了123 下一篇
上一頁(yè):沒(méi)有了      下一頁(yè):linux中搭建高可用及負(fù)載均衡的REDIS

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多