liuxiaolong
2021-06-02 eb139e1dbd3b962a36dba95024d823f7c76ab81d
use MsgQueryTopicReply_BHNodeAddress
2个文件已修改
41 ■■■■■ 已修改文件
hbusc.go 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
micronode.go 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hbusc.go
@@ -218,9 +218,20 @@
//获取topic对应的key
//如果传了serverId不为空,则获取指定机器上的topic-key
//如果server为空,则获取所有节点上topic-key
func (h *BHBus) GetNetNodeByTopic(serverId string,srcProc *ProcInfo, topic string) ([]bhome_msg.BHAddress,error) {
    return nil, nil
func (h *BHBus) GetNetNodeByTopic(serverId string,srcProc *ProcInfo, topic string) ([]*bhome_msg.MsgQueryTopicReply_BHNodeAddress,error) {
    dest := bhome_msg.BHAddress{}
    reqTopic := bhome_msg.MsgQueryTopic{
        Topic: []byte(topic),
    }
    rep := bhome_msg.MsgQueryTopicReply{}
    if bhsgo.QueryTopicAddress(&dest, &reqTopic, &rep, h.conf.sendTimeOut) {
        return rep.NodeAddress, nil
    }
    if rep.Errmsg != nil {
        h.printLog("QueryTopicAddress errCode:", rep.Errmsg.ErrCode, "errMsg:", string(rep.Errmsg.ErrString))
        return nil, errors.New(string(rep.Errmsg.ErrString))
    }
    return nil, errors.New("bhsgo.QueryTopicAddress ret false")
}
func (h *BHBus) Request(serverId string, req *bhome_msg.MsgRequestTopic, milliSecs int) (*Reply, error) {
@@ -243,10 +254,12 @@
    }
}
func (h *BHBus) RequestOnly(req *bhome_msg.MsgRequestTopic, destArr []bhome_msg.BHAddress) ([]byte, error) {
func (h *BHBus) RequestOnly(req *bhome_msg.MsgRequestTopic, destArr []*bhome_msg.MsgQueryTopicReply_BHNodeAddress) ([]byte, error) {
    dest := bhome_msg.BHAddress{}
    if destArr != nil && len(destArr) > 0 {
        dest = destArr[0]
        if destArr[0].Addr != nil {
            dest = *(destArr[0].Addr)
        }
    }
    pid := ""
    r := bhome_msg.MsgRequestTopicReply{}
micronode.go
@@ -135,12 +135,12 @@
    return ms.handle.Request(serverId, msgR, milliSecs)
}
func (ms *MicroNode) RequestOnly(req *bhome_msg.MsgRequestTopic, dest []bhome_msg.BHAddress) ([]byte, error) {
func (ms *MicroNode) RequestOnly(req *bhome_msg.MsgRequestTopic, dest []*bhome_msg.MsgQueryTopicReply_BHNodeAddress) ([]byte, error) {
    return ms.handle.RequestOnly(req, dest)
}
//获取本机中某一个主题的 key  (结果只有一个元素)
func (ms *MicroNode) GetLocalNetNodeByTopic(topicName string) []bhome_msg.BHAddress {
func (ms *MicroNode) GetLocalNetNodeByTopic(topicName string) []*bhome_msg.MsgQueryTopicReply_BHNodeAddress {
    netNodes, err := ms.handle.GetNetNodeByTopic(ms.serverId, ms.procInfo, topicName)
    if err != nil {
        ms.printLog("topic:",topicName, " netNodes:", netNodes, "err:", err)
@@ -150,13 +150,13 @@
}
//获取集群中所有节点某个主题的key信息,   (结果可能有多个)
func (ms *MicroNode) GetAllNetNodesByTopic(topicName string) []bhome_msg.BHAddress {
    netNodes, err := ms.handle.GetNetNodeByTopic("", ms.procInfo, topicName)
    if err != nil {
        return nil
    }
    return netNodes
}
//func (ms *MicroNode) GetAllNetNodesByTopic(topicName string) []bhome_msg.BHAddress {
//    netNodes, err := ms.handle.GetNetNodeByTopic("", ms.procInfo, topicName)
//    if err != nil {
//        return nil
//    }
//    return netNodes
//}
func (ms *MicroNode) GetRegisteredClient() ([]*bhome_msg.MsgQueryProcReply_Info,error) {
    return ms.handle.RequestCenter()