打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
GOLANG使用THRIFT的鉴权和多路复用

GOLANG使用THRIFT的鉴权和多路复用

www.111cn.net 编辑:kp12345 来源:转载
本文章来为各位介绍一篇关于GOLANG使用THRIFT的鉴权和多路复用,希望此文章能够帮助到各位朋友。

最近梳理公司的服务时,决定把基础组件抽离出来服务化。因为公司里有多种语言开发的服务,决定使用thrift来解决跨语言通讯。

启动一个server

thrift对golang的支持已经很好了,官方包里提供了一个server基类和一个简单服务simple_server.go.自己可以实现server来做鉴权和其它统计操作.
server定义了一个TServer接口和一些方法,源码如下:

type TServer interface {
    ProcessorFactory() TProcessorFactory          //服务
    ServerTransport() TServerTransport            //连接
    InputTransportFactory() TTransportFactory     //输入
    OutputTransportFactory() TTransportFactory    //输出
    InputProtocolFactory() TProtocolFactory       //协议
    OutputProtocolFactory() TProtocolFactory      //协议

    // 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方法进行监听,接受请求,调度处理.下面是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)
                }
            }()
        }
    }
}
只要自己实现相关接口方法,在方法中就可以进行相关鉴权/统计等处理了。

关于多路复用idl写法的问题

golang的多路复用是要把service写在一个idl文件里的,而java就不需要。这个在刚开始的时候耽误了点时间。

没有了123 下一篇
上一页:没有了      下一页:linux中搭建高可用及负载均衡的REDIS
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
Golang开发支持平滑升级(优雅重启)的HTTP服务(转)
Golang获取机器码(MachineCode、PhysicalId)
用Golang实现 echo服务器/客户端
golang基础学习-AES加密
dgraph 使用简介
使用 Casbin 在 Golang 项目中授权
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服