其他分享
首页 > 其他分享> > 微服务:nacos

微服务:nacos

作者:互联网

使用Nacos代替eureka,步骤与eureka类似

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-alibaba-dependencies</artifactId>
    <version>2.2.6.RELEASE</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
 spring:
     cloud:
            nacos:
              server-addr: localhost:8848

Nacos服务分级存储模型

启动:

startup.cmd -m standalone

服务-集群-实例。

在服务调用时,尽可能访问本地集群,跨集群调用延迟很高。本地集群不可访问时,再去访问其他集群。

如何配置集群:

cloud:
    nacos:
        server-addr: localhost:8848
            discovery:
                cluster-name: Bocai

如希望负载均衡的策略为优先调用本地集群的实例,则需要修改策略

userservice: # 给某个微服务配置负载均衡规则,这里是userservice服务
  ribbon:
    NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule # 负载均衡规则

NacosRule特点:

A cross-cluster call occurs,name = userservice # 一次跨集群的访问发生了

环境隔离

namespace——命名空间

一个命名空间中的服务可以互相调用,但是不同的namespace中的不能调用。

java.lang.IllegalStateException: No instances available for userservice
//找不到userservice可用的实例
cloud:
    nacos:
        server-addr: localhost:8848
            discovery:
            	namespace: c043e4a4-9940-470a-a313-a438392f8d7a # 命名空间

eureka与nacos

ephemeral: false #非临时实例

Nacos统一配置管理

在Nacos-配置管理中新建一个配置

一般明明规范为:xx(哪一个服务)-xx(哪一个环境).yaml,如:userService-dev.yaml

将核心配置填写在配置内容中,一般为一些可能会发生变化的配置,在开发环境中怎么样,项目上线了怎么样。

一般流程:

现在需要先读取nacos配置文件在读取本地文件,但是nacos的地址写在本地文件中,因此引入优先级更高的bootstrap.yml配置文件

spring:
  application:
    name: userservice # 服务名称
  profiles:
    active: dev #开发环境,这里是dev
  cloud:
    nacos:
      server-addr: localhost:8848 # Nacos地址
      config:
        file-extension: yaml # 文件后缀名

标签:服务,nacos,实例,集群,userservice,cloud
来源: https://www.cnblogs.com/Boerk/p/15953331.html