概述
Kitex 字节跳动内部的 Golang 微服务 RPC 框架,具有 高性能 、强可扩展的特点,通过将Kitex应用接入 Nacos引擎,可以获得更灵活、可靠的服务管理能力,提升系统的稳定性和可扩展性。通过使用Nacos引擎,用户可以轻松实现服务的注册、发现和动态配置管理,实现服务高效通信。同时,Nacos还提供配置管理功能,配置修改后可以动态生效,灵活适应不同的业务需求。
前提条件
已创建注册配置中心Nacos实例
步骤一:代码接入
Provider端:
import (
"github.com/kitex-contrib/registry-nacos/registry"
// ...
)
func main() {
// 省略部分初始化代码
// **初始化Nacos注册中心,默认从环境变量读取配置**
r, err := registry.NewDefaultNacosRegistry()
if err != nil {
panic(err)
}
Init()
svr := note.NewServer(new(NoteServiceImpl),
server.WithServerBasicInfo(&rpcinfo.EndpointBasicInfo{ServiceName: constants.NoteServiceName}), // server name
// ...
// **接入nacos注册中心**
server.WithRegistry(r),
)
err = svr.Run()
if err != nil {
klog.Fatal(err)
}
}
Consumer端:
import (
"github.com/kitex-contrib/registry-nacos/resolver"
)
func initUserRpc() {
// **初始化Nacos客户端,默认从环境变量初始化**
r, err := resolver.NewDefaultNacosResolver()
if err != nil {
panic(err)
}
c, err := userservice.NewClient(
constants.UserServiceName,
// ...
// **注入Nacos客户端,用于服务发现**
client.WithResolver(r),
)
if err != nil {
panic(err)
}
userClient = c
}
应用部署
在目标云服务器实例中设置如下Nacos环境变量,您的应用程序就能注册到对应的Nacos实例中。
Key | 说明 | 是否必须 | 默认值 |
---|---|---|---|
serverAddr | Nacos的地址(E Nacos的地址) | 必须 | 127.0.0.1 |
Port | Nacos的端口 | 必填 | 47588 |
NamespaceId | 命名空间ID | 可选 | (空字符串,即Public命名空间) |
结果验证
应用部署后,可以登录MSE注册配置中心控制台。单击目标Nacos实例,在左侧导航栏选择服务管理 > 服务列表。在服务列表页面确认应用是否注册成功。
相关文档
Kitex作为Golang微服务RPC框架,具有高性能、强可扩展的特点。更多Kitex框架的详细信息,请参见Kitex官方文档。