springboot cloud nacos 集成 grpc 解决方案

简介

Nacos 是阿里巴巴推出来的一个新开源项目,这是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。

Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。

Nacos 的官网 https://nacos.io/en-us/
Nacos 的源码 https://github.com/alibaba/nacos

更多demo请关注

springboot demo实战项目
java 脑洞
java 面试宝典
开源工具

集成 grpc

用Nacos做注册中心,集成grpc的时候会出现无法找到服务的异常,通过跟踪grpc源码

                    for (ServiceInstance serviceInstance : serviceInstanceList) {
                        Map<String, String> metadata = serviceInstance.getMetadata();
                        if (metadata.get("gRPC.port") != null) {
                            Integer port = Integer.valueOf(metadata.get("gRPC.port"));
                            logger.info("Found gRPC server {} {}:{}", name, serviceInstance.getHost(), port);
                            Attributes.Builder builder = Attributes.newBuilder();
                            EquivalentAddressGroup addressGroup = new EquivalentAddressGroup(
                                new InetSocketAddress(serviceInstance.getHost(), port), builder.build());
                            equivalentAddressGroups.add(addressGroup);
                        } else {
                            logger.error("Can not found gRPC server {}", name);
                        }
                    }

发现问题产生在grpc没法在metadata中获取到grpc.port属性,所以解决方案如下,在grpc Server端的Nacos配置中添加metadata属性

spring:
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
        metadata:
          gRPC:
            port: ${grpc.server.port}

#公众号
五分钟了解前沿技术,大数据,微服务,区域链,提供java前沿技术干货,独立游戏制作技术分享

五分钟技术

如果这篇文章对你有帮助请给个star
image.png

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值