discovery

package
v1.0.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 12, 2026 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Overview

Package discovery 提供基于 discovery.json 的服务发现:按服务名解析 gRPC/HTTP 后端地址。

两层解析(服务自己的文件优先):

  1. 服务自己的 <cfgDir>/discovery.json(k8s 中随 ConfigMap 挂载)——高优先级;
  2. gobase 内置默认 discovery.default.json(go:embed)——兜底。默认地址中的 {namespace} 占位符在 Init 时替换为实际命名空间(POD_NAMESPACE 环境变量,或 WithNamespace 选项,兜底 default)。

两级都未配置的服务返回 ("", false),由调用方决定如何处理(如直接报错)。

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetAddress

func GetAddress(svcName string) (string, bool)

GetAddress 优先返回服务自己 discovery.json 中的地址,未命中回退 gobase 内置默认。 两级都未配置返回 ("", false)。Init 前调用恒返回 ("", false)。

func Init

func Init(cfgDir string, opts ...Option) error

Init 加载 gobase 内置默认(替换命名空间占位符)+ 服务自己的 cfgDir/discovery.json(可选,覆盖默认)。 文件缺失不报错(本地空 map,全部走默认);文件存在但 JSON 损坏则返回错误,启动即暴露问题。

Types

type Option

type Option func(*options)

Option 定义 Init 的可选参数。

func WithNamespace

func WithNamespace(ns string) Option

WithNamespace 指定默认地址使用的 k8s 命名空间(默认取 POD_NAMESPACE 环境变量,再兜底 default)。

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL