「连载」边缘计算(三十四)03-16:边缘部分源码(源码分析篇)

(接上篇)

proxy.MsgProcess()函数定义具体如下所示。

KubeEdge/edgemesh/pkg/proxy/proxy.go

// MsgProcess process from metaManager and start a proxy server

func MsgProcess(msg model.Message) {

svcs := filterResourceType(msg)

...

for _, svc := range svcs {

svcName := svc.Namespace + "." + svc.Name

if !IsL4Proxy(&svc) {

// when server protocol update to http

delServer(svcName)

continue

}

port := make([]int32, 0)

targetPort := make([]int32, 0)

for _, p := range svc.Spec.Ports {

// this version will support TCP only

if p.Protocol == "TCP" {

port = append(port, p.Port)

// this version will not support string type

targetPort = append(targetPort, p.TargetPort.IntVal)

}

}

if len(port) == 0 || len(targetPort) == 0 {

continue

}

switch msg.GetOperation() {

case "insert":

addServer(svcName, port)

case "delete":

delServer(svcName)

case "update":

updateServer(svcName, port)

default:

klog.Infof("[L4 proxy] Unknown operation")

}

st := addrByService.getAddrTable(svcName)

if st != nil {

st.targetPort = targetPort

}

}

}

MsgProcess()函数处理的是metamanager模块发送过来的service信息。首先根据service的命名规范、支持的协议对收到的service信息进行过滤;然后根据信息操作类型(insert、delete、update)对信息进行具体操作,这些操作都是在节点的缓存中进行的;最后对相应service的targetPort进行设置。

到此,EdgeCoreedgemesh模块的剖析就结束了。

  • 12
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值