开发者社区 > 云原生 > 微服务 > 正文

使用ECS实例访问MSE微服务引擎Nacos,只有java可以吗,golang的client可以吗?

使用ECS实例访问MSE微服务引擎Nacos,只有java才可以吗,golang的client可以吗?看了下golang的client没有发现相关功能。
https://help.aliyun.com/zh/mse/user-guide/access-authentication-by-the-nacos-client-1?spm=a2c4g.11186623.0.0.5a9d2085pfBxz2#3a1f4af1cdmk3

展开
收起
三分钟热度的鱼 2023-09-04 19:23:11 153 0
12 条回答
写回答
取消 提交回答
  • 使用ECS实例访问MSE微服务引擎中的Nacos是可以的,不仅限于Java客户端,Golang客户端也可以。
    Nacos提供了多语言的客户端SDK,包括:

    • Java
    • Go
    • C++
    • .NET
    • Python
    • PHP
      这些SDK都可以用来从外部应用访问Nacos服务。
      对于Golang,可以使用go-nacos-sdk。它支持服务发现、配置管理等功能。
      使用示例:
    import (
      "github.com/nacos-group/nacos-sdk-go/clients"
      "github.com/nacos-group/nacos-sdk-go/common/constant" 
      "github.com/nacos-group/nacos-sdk-go/vo"
    )
    
    clientConfig := constant.ClientConfig{
      // 设置Nacos地址
      ServerConfigs: []constant.ServerConfig{
        {
          IpAddr: "你的Nacos ip",
          Port: "你的Nacos 端口",
        }
      } 
    }
    
    // 创建客户端
    client, err := clients.CreateConfigClient(map[string]interface{}{
      "clientConfig": clientConfig,
    })
    
    // 获取配置
    content, err := client.GetConfig(vo.ConfigParam{
      DataId: "dataId",
      Group:  "group"})
    

    所以Go语言可以很好地支持访问Nacos。但是 你还需要选择正确的版本 根据自己的需要选择合适的客户端SDK。 image.png

    2023-10-25 17:33:41
    赞同 展开评论 打赏
  • 从文档中可以看到用ECS实例访问MSE微服务引擎的Nacos服务,用.png
    支持多种编程语言的客户端,包括Java、Golang、Node.js、Python等

    2023-10-24 22:22:31
    赞同 展开评论 打赏
  • MSE Nacos 原生SDK支持Java、Golang、Node.js、Python、服务网格来进行连接。

    同时针对Go有一些不推荐的版本,如下所示:
    image.png

    ——参考来自官方文档

    2023-10-23 01:52:07
    赞同 展开评论 打赏
  • image.png
    从文档中可以看到用ECS实例访问MSE微服务引擎的Nacos服务,不仅限于Java客户端,而且支持多种编程语言的客户端,包括Golang,Node.js,Python。

    Nacos是一个开源的服务发现和配置管理平台,提供了RESTful API供不同编程语言的客户端进行访问。

    2023-10-18 16:56:40
    赞同 展开评论 打赏
  • 从官方文档中可以了解到,目前MSE微服务引擎的Nacos客户端支持Java、Python和Go等语言。但是,对于Go语言,目前还不支持通过Nacos客户端直接访问MSE微服务引擎。如果您需要使用Go语言访问MSE微服务引擎,可以考虑使用其他的方式,例如通过HTTP API等方式。
    image.png

    2023-10-18 15:08:35
    赞同 展开评论 打赏
  • MSE 微服务引擎 Nacos,不仅可以使用 Java,还可以使用 Go 语言(Golang)dd04a14a9ef0c87e83f27ad6f26ffe8.png

    2023-10-17 23:00:22
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    MSE 微服务引擎 Nacos,不仅可以使用 Java,还可以使用 Go 语言(Golang)。在 Nacos 中,提供了 Java 和 Go 语言的客户端库,方便用户进行调用。
    具体来说,Nacos Java 客户端库提供了丰富的功能,包括服务发现、配置管理等,可以方便地实现 ECS 实例对 MSE 微服务引擎 Nacos 的访问。而对于 Go 语言,Nacos 也提供了相应的客户端库,虽然功能相对较少,但仍然可以满足基本的访问需求。

    2023-10-17 21:22:55
    赞同 展开评论 打赏
  • 天下风云出我辈,一入江湖岁月催,皇图霸业谈笑中,不胜人生一场醉。

    官方指引链接(需为1.18版本以上)。
    打开下载好的安装文件双击进行安装,安装成功后,使用键盘上的快捷键Win+R打开运行窗口,在运行窗口中输入cmd单击确定即可打开命令窗口,输入命令go version,成功输出当前安装的版本,表明安装成功。
    新建一个工程目录文件,例如wasm-demo-go。

    在所建目录下执行以下命令,进行Go工程初始化。

    go mod init wasm-demo-go
    设置下载依赖包的代理。

    go env -w GOPROXY=https://proxy.golang.com.cn,direct
    下载构建插件的依赖。

    go get github.com/tetratelabs/proxy-wasm-go-sdk
    go get github.com/alibaba/higress/plugins/wasm-go@main
    go get github.com/tidwall/gjson
    步骤二:编写main.go文件
    示例如下所示,可以实现:

    在插件配置mockEnable: true时直接返回hello world应答。

    未做插件配置或者设置mockEnable: false时给原始请求添加hello: world请求头。

    更多信息,请参见示例。

    说明
    在网关控制台中的插件配置为YAML格式,下发给插件时将自动转换为JSON格式,因此示例中的parseConfig可以直接从JSON中解析配置。

    package main

    import (
    "github.com/alibaba/higress/plugins/wasm-go/pkg/wrapper"
    "github.com/tetratelabs/proxy-wasm-go-sdk/proxywasm"
    "github.com/tetratelabs/proxy-wasm-go-sdk/proxywasm/types"
    "github.com/tidwall/gjson"
    )

    func main() {
    wrapper.SetCtx(
    // 插件名称
    "my-plugin",
    // 为解析插件配置,设置自定义函数
    wrapper.ParseConfigBy(parseConfig),
    // 为处理请求头,设置自定义函数
    wrapper.ProcessRequestHeadersBy(onHttpRequestHeaders),
    )
    }

    // 自定义插件配置
    type MyConfig struct {
    mockEnable bool
    }

    // 在控制台插件配置中填写的YAML配置会自动转换为JSON,此处直接从JSON这个参数里解析配置即可
    func parseConfig(json gjson.Result, config *MyConfig, log wrapper.Log) error {
    // 解析出配置,更新到config中
    config.mockEnable = json.Get("mockEnable").Bool()
    return nil
    }

    func onHttpRequestHeaders(ctx wrapper.HttpContext, config MyConfig, log wrapper.Log) types.Action {
    proxywasm.AddHttpRequestHeader("hello", "world")
    if config.mockEnable {
    proxywasm.SendHttpResponse(200, nil, []byte("hello world"), -1)
    }
    return types.ActionContinue
    步骤三:编译生成WASM文件
    执行以下命令编译生成WASM文件。

    go mod tidy
    tinygo build -o main.wasm -scheduler=none -target=wasi -gc=custom -tags='custommalloc nottinygc_finalizer' ./main.go
    编译成功会在当前目录下创建文件main.wasm。该文件在下文本地调试的示例中也会被用到。

    在使用云原生网关插件市场的自定义插件功能时,直接上传该文件即可。

    2023-10-17 17:05:49
    赞同 展开评论 打赏
  • 使用 ECS 实例访问 MSE 微服务引擎的 Nacos,不仅限于 Java,您也可以使用 Golang 的客户端来与 Nacos 进行交互。

    Nacos 提供了多种客户端 SDK,包括 Java、Golang、Python、Node.js 等。您可以选择适合您项目的客户端 SDK,以便从 Golang 代码中访问和管理 Nacos 注册中心和配置中心。

    对于 Golang 的客户端,您可以使用 Nacos 官方提供的 Go SDK(https://github.com/nacos-group/nacos-sdk-go)或第三方开源库(如 go-nacos:https://github.com/Me1onRind/go-nacos)来与 Nacos 进行交互。

    这些 Golang 客户端库提供了一系列 API 和工具,允许您在 Golang 项目中实现服务注册、发现、配置管理和动态配置等功能。您可以使用这些库来获取服务实例信息、监听配置变化、发布/拉取配置等操作。

    确保根据您的需求和项目要求选择适合的客户端 SDK,并按照相应文档进行配置和使用。

    2023-10-15 15:39:12
    赞同 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    MSE微服务引擎Nacos的客户端支持多种编程语言,包括Java、Python、Go等。对于Go语言,可以使用golang-nacos-sdk这个第三方库来访问Nacos。这个库提供了Go语言的Nacos客户端,并且支持多种Nacos的功能,包括配置管理、服务注册与发现等。因此,使用ECS实例访问MSE微服务引擎Nacos,不仅限于Java语言,也可以使用Go语言。

    2023-10-15 15:02:30
    赞同 展开评论 打赏
  • 根据阿里云MSE微服务引擎Nacos官方文档,目前只提供了Java客户端来访问Nacos。如果您需要使用Golang客户端,可以参考开源社区的相关实现或者自行编写Golang客户端来访问Nacos。

    2023-10-13 14:51:20
    赞同 展开评论 打赏
  • MSE微服务引擎Nacos并不只支持Java,它还支持多种编程语言,包括Go。实际上,Nacos官方提供了多种语言的客户端库,包括Java、Go、Python、JavaScript等。

    对于Go语言客户端访问Nacos,您可以参考以下步骤:

    1. 首先需要在您的Go项目中导入nacos的客户端库。可以在Go的包管理工具(如go mod)中添加对nacos的依赖,或者手动下载并导入到您的项目中。
    2. 初始化Nacos的客户端。这通常涉及到设置Nacos服务器的地址和端口,以及(可选的)用户名和密码。例如:
    cfg := &config.Config{
        ServerAddr: "localhost:8848",
        Namespace:  "public",
        Username:   "",
        Password:   "",
    }
    client := NewClient(cfg)
    
    1. 使用客户端连接Nacos服务器并获取服务。例如:
    // 获取指定服务列表
    services, err := client.GetAllService(context.Background())
    if err != nil {
        fmt.Printf("Get All Services failed, %v", err)
        return
    }
    for _, service := range services {
        fmt.Printf("Service [%s][%s]\n", service.Name, service.Version)
    }
    
    1. 您也可以使用客户端订阅服务。例如:
    // 监听指定服务的变更事件
    eventChan, err := client.SubscribeService(context.Background(), "yourServiceName", 10)
    if err != nil {
        fmt.Printf("Subscribe failed, %v", err)
        return
    }
    defer client.Unsubscribe(context.Background(), "yourServiceName", eventChan)
    for event := range eventChan; event != nil {
        fmt.Printf("Received event, %v", event)
    }
    

    请注意,上述代码片段中的"yourServiceName"需要替换为您希望订阅的实际服务名称。同时,您需要根据实际情况设置Nacos服务器的地址、端口、用户名和密码。

    2023-10-11 16:32:55
    赞同 展开评论 打赏
滑动查看更多

为微服务建设降本增效,为微服务落地保驾护航。

相关产品

  • 微服务引擎
  • 相关电子书

    更多
    Golang 微服务在腾讯游戏用户运营领域的探索及实践 立即下载
    如何通过 Serverless 提高 Java 微服务治理效 立即下载
    Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载