服务的注册发现(Nacos Discovery)
Nacos 是阿里巴巴开源的一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
如何使用Nacos Discovery Starter 完成 Spring Cloud 应用的服务注册与发现
容易遇到的问题
1.出现的异常情况及其解决办法
通过feign项目之间调用时,第一次调用抛异常java.lang.NoClassDefFoundError: com/google/common/reflect/TypeToken,之后再调用抛异常java.lang.NoClassDefFoundError: Could not initialize class com.netflix.client.config.CommonClientConfigKey
或者:java.lang.ClassNotFoundException: com.netflix.config.CachedDynamicIntPropert
解决:
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>18.0</version>
</dependency>
<dependency>
<groupId>com.netflix.archaius</groupId>
<artifactId>archaius-core</artifactId>
<version>0.7.6</version>
</dependency>
2.standalone 模式
Linux/Unix/Mac 操作系统,执行命令 sh startup.sh -m standalone
Nacos更多配置信息
spring.cloud.nacos.discovery.server-addr #Nacos Server 启动监听的ip地址和端口
spring.cloud.nacos.discovery.service #给当前的服务命名
spring.cloud.nacos.discovery.weight #取值范围 1 到 100,数值越大,权重越大
spring.cloud.nacos.discovery.network-interface #当IP未配置时,注册的IP为此网卡所对应的IP地址,如果此项也未配置,则默认取第一块网卡的地址
spring.cloud.nacos.discovery.ip #优先级最高
spring.cloud.nacos.discovery.port #默认情况下不用配置,会自动探测
spring.cloud.nacos.discovery.namespace #常用场景之一是不同环境的注册的区分隔离,例如开发测试环境和生产环境的资源(如配置、服务)隔离等。
spring.cloud.nacos.discovery.access-key #当要上阿里云时,阿里云上面的一个云账号名
spring.cloud.nacos.discovery.secret-key #当要上阿里云时,阿里云上面的一个云账号密码
spring.cloud.nacos.discovery.metadata #使用Map格式配置,用户可以根据自己的需要自定义一些和服务相关的元数据信息
spring.cloud.nacos.discovery.log-name 日志文件名
spring.cloud.nacos.discovery.enpoint #地域的某个服务的入口域名,通过此域名可以动态地拿到服务端地址
ribbon.nacos.enabled #是否集成Ribbon 一般都设置成true即可