当前位置: 首页 > news >正文

milvus各组件的结构体分析

milvus各组件的结构体分析

各组件启动,需要构建各组件的结构体,一共8个。

runComponent(ctx, localMsg, wg, components.NewRootCoord, metrics.RegisterRootCoord)
runComponent(ctx, localMsg, wg, components.NewProxy, metrics.RegisterProxy)
runComponent(ctx, localMsg, wg, components.NewQueryCoord, metrics.RegisterQueryCoord)
runComponent(ctx, localMsg, wg, components.NewQueryNode, metrics.RegisterQueryNode)
runComponent(ctx, localMsg, wg, components.NewDataCoord, metrics.RegisterDataCoord)
runComponent(ctx, localMsg, wg, components.NewDataNode, metrics.RegisterDataNode)
runComponent(ctx, localMsg, wg, components.NewIndexCoord, func(registry *prometheus.Registry)
runComponent(ctx, localMsg, wg, components.NewIndexNode, metrics.RegisterIndexNode)

真正的组件功能API都在Server端。

type RootCoord struct {// 传递上下文ctx context.Context// 实现 RoodCoord grpc serversvr *grpcrootcoord.Server
}
type Proxy struct {// 实现 Proxy grpc serversvr *grpcproxy.Server
}
type QueryCoord struct {// 传递上下文ctx context.Context// 实现 QueryCoord grpc serversvr *grpcquerycoord.Server
}
type QueryNode struct {// 传递上下文ctx context.Context// 实现 QueryNode grpc serversvr *grpcquerynode.Server
}
type DataCoord struct {// 传递上下文ctx context.Context// 实现 DataCoord grpc serversvr *grpcdatacoord.Server
}
type DataNode struct {// 传递上下文ctx context.Context// 实现 DataNode grpc serversvr *grpcdatanode.Server
}

由于IndexCoord和DataCoord合并了,这里结构体为空。

type IndexCoord struct{}
type IndexNode struct {// 实现 IndexNode grpc serversvr *grpcindexnode.Server
}

只有Proxy和IndexNode没有ctx。为什么这2个没有ctx??

最原始的ctx为:

ctx, cancel := context.WithCancel(context.Background())

Server里的ctx为:

ctx1, cancel := context.WithCancel(ctx)

服务端路径:

internal\distributed\rootcoord\service.go
internal\distributed\proxy\service.go
internal\distributed\querycoord\service.go
internal\distributed\querynode\service.go
internal\distributed\datacoord\service.go
internal\distributed\datanode\service.go
internal\distributed\indexnode\service.go

在这里插入图片描述

每个服务端都有自己的API。

http://www.lryc.cn/news/336716.html

相关文章:

  • vue2和vue3 全选
  • Java中的Set、List、Map的区别及主要实现类方法
  • gitignore:常用说明
  • HarmonyOS NEXT应用开发—在Native侧实现进度通知功能
  • 水利自动化控制系统平台介绍
  • flask后端+网页前端:基于 socket.io 的双向通信和服务器部署
  • 【Docker】解决 docker build 提示 `Wrong architecture ‘amd64‘`
  • 机器学习_XGBoost模型_用C++推理示例Demo
  • C语言 | Leetcode C语言题解之第21题合并两个有序链表
  • 2024考研调剂须知
  • PCIE协议版--M.2接口规范V1.0中文版1——电气规格篇
  • 【JVM】JVM堆占用情况分析(频繁创建的对象、内存泄露等问题)、jmap+jhat、jvisualvm工具使用
  • 【蓝桥杯每日一题】4.11 更小的数(不用区间DP)
  • 【线段树】2276. 统计区间中的整数数目
  • ChatGPT 写作利器:探索ChatGPT在论文写作中的应用
  • 从 SQLite 3.4.2 迁移到 3.5.0(二十)
  • 集群开发学习(一)(安装GO和MySQL,K8S基础概念)
  • [Kubernetes[K8S]集群:Slaver从节点初始化和Join]:添加到主节点集群内
  • redis复习笔记08(小滴课堂)
  • 在线课程平台LearnDash评测 – 最佳 WordPress LMS插件
  • OpenDDS-3.27构建与用法
  • 计算机网络——MAC地址和IP地址
  • Unity构建详解(7)——AssetBundle格式解析
  • 前端对接fastGPT流式数据+打字机效果
  • 避免使用第三方工具完成电脑环境检测
  • vue 中 mixin 的应用场景,原理和合并规则
  • 点击按钮(文字)调起elementUI大图预览
  • 全面学习SpringCloud框架指南
  • 5G智慧水利数字孪生可视化平台,推进水利行业数字化转型
  • 新手入门:大语言模型训练指南