开发者社区 > 云原生 > 正文

nacos客户端2.x默认使用grpc访问nacos服务端,能否改回用http访问nacos服务端?

请教一下大家,nacos客户端2.x版本默认使用grpc访问nacos服务端,能不能改回用http访问nacos服务端?

我把nacos服务部署到了k8s上,公司规定只能用ingress暴露服务域名给集群外访问,只能通过http,没法通过grpc

展开
收起
-Feng、冯冯 2023-10-26 14:22:24 362 0
2 条回答
写回答
取消 提交回答
  • 在Nacos 2.x版本中,默认使用的是gRPC协议来访问Nacos服务端。如果你想改为使用HTTP协议,你需要做一些配置修改。

    以下是一个基本的步骤:

    1. 修改配置文件:你可以在你的配置文件中修改spring.cloud.nacos.discovery.enabled属性的值为false。这样,Nacos客户端就不会自动发现服务了。

    2. 手动注册服务:然后,你需要手动向Nacos服务端注册你的服务。你可以使用以下的代码:

      NacosDiscoveryClient discoveryClient = new NacosDiscoveryClient(nacosProperties);
      DiscoveryClient discovery = new DiscoveryClient(discoveryClient);
      ServiceInstance instance = new ServiceInstance("service-a", "127.0.0.1", 8080);
      discovery.registerService(instance);
      

      这里,nacosProperties是你的Nacos客户端的配置对象,service-a是你的服务名称,127.0.0.1是你的服务IP,8080是你的服务端口。

    3. 使用服务:最后,你可以在你的代码中使用这个服务。例如,你可以使用以下的代码:

      DiscoveryClient discovery = new DiscoveryClient(discoveryClient);
      ServiceInstance serviceInstance = discovery.getLocalServiceInstance();
      String url = serviceInstance.getHost() + ":" + serviceInstance.getPort();
      

      这里,url是你的服务的URL。

    2023-10-27 10:22:48
    赞同 展开评论 打赏
  • 建议找到源码对应版本搜一下看看源码吧。
    此回答整理自钉群“Nacos社区群4”

    2023-10-26 14:35:18
    赞同 展开评论 打赏

阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。

相关电子书

更多
workshop专场-微服务专场-开发者动手实践营-微服务-使用Nacos进行服务的动态发现和流量调度 立即下载
Nacos 启航,发布第一个版本, 云原生时代助力用户微服务平台建设 立即下载
CDN助力企业网站进入HTTPS时代 立即下载