精华内容
下载资源
问答
  • Nacos Discovery Example

    2020-09-08 17:44:38
    Nacos Discovery Example 跟着链接中的内容,就可以成功 https://github.com/alibaba/spring-cloud-alibaba/blob/master/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/readme-zh.md
    展开全文
  • Nacos Discovery 实现

    2021-02-03 16:04:43
    Nacos Discovery(服务注册) 简介Spring Cloud 应用如何接入 ...Spring Cloud 应用如何接入 Nacos Discovery 1.首先,修改 pom.xml 文件,引入 Nacos Discovery Starter。 <dependency> <groupId>com

    简介

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

    Spring Cloud 应用如何接入 Nacos Discovery

    1.首先,修改 pom.xml 文件,引入 Nacos Discovery Starter。

    <dependency>
         <groupId>com.alibaba.cloud</groupId>
         <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
     </dependency>
    

    2.在应用的 /src/main/resources/application.properties 配置文件中配置 Nacos Server 地址和名称。

     spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
     spring.application.name=service-provider
    

    3.使用 @EnableDiscoveryClient 注解开启服务注册与发现功能。

     @SpringBootApplication
     @EnableDiscoveryClient
     public class ProviderApplication {
    
     	public static void main(String[] args) {
     		SpringApplication.run(ProviderApplication.class, args);
     	}
    
     	@RestController
     	class EchoController {
     		@GetMapping(value = "/echo/{string}")
     		public String echo(@PathVariable String string) {
     				return string;
     		}
     	}
     }
    

    启动 Nacos Discover

    下载Nacos Server

    选择版本下载完之后,启动nacos。

    1. Linux/Unix/Mac 操作系统,执行命令 sh startup.sh -m standalone
    2. Windows 操作系统,执行命令 cmd startup.cmd

    验证

    1. 浏览器输入 http://127.0.0.1:8848/nacos
    2. 登录名和密码都是 nacos
    3. 登录进去之后在 服务管理-服务列表 里就能看到自己相应的服务了。
    展开全文
  • nacos discovery client

    2019-09-11 08:16:40
    在看nacos discovery 没有太理解DiscoveryClient是如何启动,转头去查了一通资料,记录下Spring cloud commons的资料。 Spring cloud commons 主要由context及common abstractions(一些关键annotation),和nacos ...

    在看nacos discovery 没有太理解DiscoveryClient是如何启动,转头去查了一通资料,记录下Spring cloud commons的资料。

    Spring cloud commons 主要由context及common abstractions(一些关键annotation),和nacos discovery有关的如下

    1. @EnableDiscoveryClient,implementations of DiscoveryClient will auto-register,而nacos 有public class NacosDiscoveryClient implements DiscoveryClient
    2. EnableAutoConfiguration,在/META-INF/spring.factories 文件内定义
    3. ServiceRegistry:public class NacosServiceRegistry implements ServiceRegistry
    4. org.springframework.cloud.bootstrap.BootstrapConfiguration,同样在/META-INF/spring.factories 文件内定义

    在这里插入图片描述

    展开全文
  • Nacos Discovery教程

    千次阅读 2020-08-05 15:09:15
    Spring Cloud Alibaba Nacos Discovery 该项目通过自动配置以及其他 Spring 编程模型的习惯用法为 Spring Boot 应用程序在服务注册与发现方面提供和 Nacos 的无缝集成。 通过一些简单的注解,您可以快速来注册一个...

    Spring Cloud Alibaba Nacos Discovery

    该项目通过自动配置以及其他 Spring 编程模型的习惯用法为 Spring Boot 应用程序在服务注册与发现方面提供和 Nacos 的无缝集成。 通过一些简单的注解,您可以快速来注册一个服务,并使用经过双十一考验的 Nacos 组件来作为大规模分布式系统的服务注册中心。

    服务注册发现: Nacos Discovery Starter

    服务发现是微服务架构体系中最关键的组件之一。如果尝试着用手动的方式来给每一个客户端来配置所有服务提供者的服务列表是一件非常困难的事,而且也不利于 服务的动态扩缩容。Nacos Discovery Starter 可以帮助您将服务自动注册到 Nacos 服务端并且能够动态感知和刷新某个服务实例的服务列表。除此之外,Nacos Discovery Starter 也将服务实例自身的一些元数据信息-例如 host,port,健康检查URL,主页等-注册到 Nacos 。Nacos 的获取和启动方式可以参考 Nacos 官网

    如何引入 Nacos Discovery Starter

    如果要在您的项目中使用 Nacos 来实现服务发现,使用 group ID 为 com.alibaba.cloud 和 artifact ID 为 spring-cloud-starter-alibaba-nacos-discovery 的 starter。

    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    </dependency>

    启动一个 Provider 应用

    以下步骤向您展示了如何将一个服务注册到 Nacos。

    1. pom.xml的配置。一个完整的 pom.xml 配置如下所示:

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>open.source.test</groupId>
        <artifactId>nacos-discovery-test</artifactId>
        <version>1.0-SNAPSHOT</version>
        <name>nacos-discovery-test</name>
    
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>${spring.boot.version}</version>
            <relativePath/>
        </parent>
    
        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
            <java.version>1.8</java.version>
        </properties>
    
        <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-dependencies</artifactId>
                    <version>${spring.cloud.version}</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
                <dependency>
                    <groupId>com.alibaba.cloud</groupId>
                    <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                    <version>${spring.cloud.alibaba.version}</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
            </dependencies>
        </dependencyManagement>
    
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-actuator</artifactId>
            </dependency>
    
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            </dependency>
        </dependencies>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
    </project>
    1. application.properties 配置。一些关于 Nacos 基本的配置也必须在 application.properties(也可以是application.yaml)配置,如下所示: application.properties

    server.port=8081
    spring.application.name=nacos-producer
    spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
    management.endpoints.web.exposure.include=*

    Note

    如果不想使用 Nacos 作为您的服务注册与发现,可以将 spring.cloud.nacos.discovery.enabled 设置为 false
    1. 启动 Provider 示例。如下所示:

    @SpringBootApplication
    @EnableDiscoveryClient
    public class NacosProviderDemoApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(NacosProducerDemoApplication.class, args);
        }
    
        @RestController
        public class EchoController {
            @GetMapping(value = "/echo/{string}")
            public String echo(@PathVariable String string) {
                return "Hello Nacos Discovery " + string;
            }
        }
    }

    这个时候你就可以在 Nacos的控制台上看到注册上来的服务信息了。

    Note

    再启动 Provider 应用之前 请先将 Nacos 服务启动。具体启动方式可参考 Nacos 官网

    服务的 EndPoint

    spring-cloud-starter-alibaba-nacos-discovery 在实现的时候提供了一个EndPoint,EndPoint的访问地址为 http://ip:port/actuator/nacos-discovery。 EndPoint 的信息主要提供了两类:

    1、subscribe: 显示了当前有哪些服务订阅者
    2、NacosDiscoveryProperties: 显示了当前服务实例关于 Nacos 的基础配置

    一个服务实例访问 EndPoint 的信息如下所示:

    {
      "subscribe": [
        {
          "jsonFromServer": "",
          "name": "nacos-provider",
          "clusters": "",
          "cacheMillis": 10000,
          "hosts": [
            {
              "instanceId": "30.5.124.156#8081#DEFAULT#nacos-provider",
              "ip": "30.5.124.156",
              "port": 8081,
              "weight": 1.0,
              "healthy": true,
              "enabled": true,
              "cluster": {
                "serviceName": null,
                "name": null,
                "healthChecker": {
                  "type": "TCP"
                },
                "defaultPort": 80,
                "defaultCheckPort": 80,
                "useIPPort4Check": true,
                "metadata": {
    
                }
              },
              "service": null,
              "metadata": {
    
              }
            }
          ],
          "lastRefTime": 1541755293119,
          "checksum": "e5a699c9201f5328241c178e804657e11541755293119",
          "allIPs": false,
          "key": "nacos-producer",
          "valid": true
        }
      ],
      "NacosDiscoveryProperties": {
        "serverAddr": "127.0.0.1:8848",
        "endpoint": "",
        "namespace": "",
        "logName": "",
        "service": "nacos-provider",
        "weight": 1.0,
        "clusterName": "DEFAULT",
        "metadata": {
    
        },
        "registerEnabled": true,
        "ip": "30.5.124.201",
        "networkInterface": "",
        "port": 8082,
        "secure": false,
        "accessKey": "",
        "secretKey": ""
      }
    }

    启动一个 Consumer 应用

    Consumer 的应用可能还没像启动一个 Provider 应用那么简单。因为在 Consumer 端需要去调用 Provider 端提供的REST 服务。例子中我们使用最原始的一种方式, 即显示的使用 LoadBalanceClient 和 RestTemolate 结合的方式来访问。 pom.xml 和 application.properties 的配置可以参考 1.2 小结。启动一个 Consumer应用的示例代码如下所示:

    Note

    通过带有负载均衡的RestTemplate 和 FeignClient 也是可以访问的。
    @SpringBootApplication
    @EnableDiscoveryClient
    public class NacosConsumerApp {
    
        @RestController
        public class NacosController{
    
            @Autowired
            private LoadBalancerClient loadBalancerClient;
            @Autowired
            private RestTemplate restTemplate;
    
            @Value("${spring.application.name}")
            private String appName;
    
            @GetMapping("/echo/app-name")
            public String echoAppName(){
                //使用 LoadBalanceClient 和 RestTemolate 结合的方式来访问
                ServiceInstance serviceInstance = loadBalancerClient.choose("nacos-provider");
                String url = String.format("http://%s:%s/echo/%s",serviceInstance.getHost(),serviceInstance.getPort(),appName);
                System.out.println("request url:"+url);
                return restTemplate.getForObject(url,String.class);
            }
    
        }
    
        //实例化 RestTemplate 实例
        @Bean
        public RestTemplate restTemplate(){
    
            return new RestTemplate();
        }
    
        public static void main(String[] args) {
    
            SpringApplication.run(NacosConsumerApp.class,args);
        }
    }

    这个例子中我们注入了一个 LoadBalancerClient 的实例,并且手动的实例化一个 RestTemplate,同时将 spring.application.name 的配置值 注入到应用中来, 目的是调用 Provider 提供的服务时,希望将当前配置的应用名给显示出来。

    Note

    在启动 Consumer 应用之前请先将 Nacos 服务启动好。具体启动方式可参考 Nacos 官网

    启动后,访问 Consumer 提供出来的 http://ip:port/echo/app-name 接口。我这里测试启动的 port是 8082。访问结果如下所示:

    访问地址:http://127.0.0.1:8082/echo/app-name
    访问结果:Hello Nacos Discovery nacos-consumer

    关于 Nacos Starter 更多的配置项信息

    更多关于 spring-cloud-starter-alibaba-nacos-discovery 的 starter 配置项如下所示:

    配置项Key默认值说明

    服务端地址

    spring.cloud.nacos.discovery.server-addr

    Nacos Server 启动监听的ip地址和端口

    服务名

    spring.cloud.nacos.discovery.service

    ${spring.application.name}

    给当前的服务命名

    服务分组

    spring.cloud.nacos.discovery.group

    DEFAULT_GROUP

    设置服务所处的分组

    权重

    spring.cloud.nacos.discovery.weight

    1

    取值范围 1 到 100,数值越大,权重越大

    网卡名

    spring.cloud.nacos.discovery.network-interface

    当IP未配置时,注册的IP为此网卡所对应的IP地址,如果此项也未配置,则默认取第一块网卡的地址

    注册的IP地址

    spring.cloud.nacos.discovery.ip

    优先级最高

    注册的端口

    spring.cloud.nacos.discovery.port

    -1

    默认情况下不用配置,会自动探测

    命名空间

    spring.cloud.nacos.discovery.namespace

    常用场景之一是不同环境的注册的区分隔离,例如开发测试环境和生产环境的资源(如配置、服务)隔离等。

    AccessKey

    spring.cloud.nacos.discovery.access-key

    当要上阿里云时,阿里云上面的一个云账号名

    SecretKey

    spring.cloud.nacos.discovery.secret-key

    当要上阿里云时,阿里云上面的一个云账号密码

    Metadata

    spring.cloud.nacos.discovery.metadata

    使用Map格式配置,用户可以根据自己的需要自定义一些和服务相关的元数据信息

    日志文件名

    spring.cloud.nacos.discovery.log-name

     

    集群

    spring.cloud.nacos.discovery.cluster-name

    DEFAULT

    配置成Nacos集群名称

    接入点

    spring.cloud.nacos.discovery.enpoint

    UTF-8

    地域的某个服务的入口域名,通过此域名可以动态地拿到服务端地址

    是否集成Ribbon

    ribbon.nacos.enabled

    true

    一般都设置成true即可

    是否开启Nacos Watch

    spring.cloud.nacos.discovery.watch.enabled

    true

    可以设置成false来关闭 watch

    展开全文
  • The following shows the other configurations of the starter of Nacos Discovery: Configuration Key Default Value Description Server address ...
  • Nacos Discovery 数据与Config data 不一样,目前不支持保存到数据库中,而是保存在内存或者通过raft 模式保存到本地文件中,Raft是nacos cluster默认模式,但如果将Discovery data 保存到etcd、zookeeper或者...
  • spring-cloud-alibaba-nacos-discoverynacos spring cloud实现的开源项目,在Spring cloud Alibaba下面,基于Spring commons及Spring Netflix (主要是ribbon部分)实现,主要类记录如下: NacosDiscoveryClient...
  • spring-cloud集成nacos Discovery

    万次阅读 2019-08-06 19:24:38
    nacos搭建参考https://blog.csdn.net/john1337/article/details/98626255这篇文章,本文就不再...1.引入nacos discovery依赖(不能跟eureka的服务发现的依赖spring-cloud-starter-eureka不能同时存在) <depend...
  • 前言 注释掉的配置项,一般不需要设置,默认即可,特殊情况下可自定义 ... discovery: # 是否开启Nacos注册 enabled: true # Nacos服务注册地址 server-addr: localhost:8848 # Nacos 认证用户 usernam
  • Nacos Discovery 对外暴露的 Endpoint1.给项目添加依赖2.修改配置文件3.查询效果 Nacos Discovery 内部提供了一个 Endpoint, 对应的 endpoint id 为 nacos-discovery。我们通过该 Endpoint,能获取到: 当前服务有...
  • Spring Cloud Alibaba Nacos Discovery 该项目通过自动配置以及其他 Spring 编程模型的习惯用法为 Spring Boot 应用程序在服务注册与发现方面提供和 Nacos 的无缝集成。 通过一些简单的注解,您可以快速来注册一个...
  • Nacos Discovery–服务治理 什么是服务治理? 服务治理是彻服务架种中最核心是基本的模块,用于实现各个微般务的自动化注册与发现 服务注册:在服务治理框架中,都会构建一个注册中心,每个服务单元向注册中心登记...
  • 注意:有2个groupId,一个...-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-alibaba-nacos-discovery --> <dependency> <groupId>org.springframework.clou
  • SpringCloud所能使用的服务注册中心有很多种,而Eureka、Consul的使用份额占一大部分,随着Eureka2.x版本的开源流产,Nacos Discovery脱颖而出,主要用于...由Nacos DiscoveryNacos Server的心跳来自动检测Service...
  • Nacos Discovery–服务治理 服务治理是微服务架构中最核心最基本的模块。用于实现各个微服务的自动化注册与发现。 服务注册:在服务治理框架中,都会构建一个注册中心,每个服务单元向注册中心登记自己提供服 务的...
  • Nacos Discovery 简介 使用 Spring Cloud Alibaba Nacos Discovery,可基于 Spring Cloud 的编程模型快速接入 Nacos 服务注册功能。 服务发现是微服务架构体系中最关键的组件之一。如果尝试着用手动的方式来给每一...
  • Nacos安装与测试

    2021-03-28 13:23:56
    目录Nacos 下载并启动 Nacos ServerSpring Cloud 应用如何接入 Nacos Discovery Nacos 下载并启动 Nacos Server 官方下载地址:https://github.com/alibaba/nacos/releases/tag/1.1.3 启动 Nacos Server 1 首先需要...
  • 1. 概述 Spring Cloud Alibaba提供的Spring Cloud Alibaba Nacos Discovery组件,基于 Spring Cloud 的编程模型,接入 Nacos 作为注册中心,实现服务的注册与发现。...Nacos Discovery 可以帮助您将...
  • 前言 作者:毕来生 微信:878799579 ... 个人比较看好Spring Cloud Alibaba家族。此系列以Nacos为主题,从Spring、Spring boot、Spring Cloud多个方面逐步进行演示,源码解读。...网络上除了官网外缺少Nacos...
  • nacos discovery、config 配置

    千次阅读 2020-09-19 23:31:16
    boot-starter org.springframework.cloud spring-cloud-starter-alibaba-nacos-discovery 0.2.2.RELEASE org.springframework.cloud spring-cloud-starter-alibaba-nacos-config 0.2.2.RELEASE org.springframework....
  • 利用discovery做灰度,发现只能做到实例灰度,不能做到配置灰度,因此只能自己扩展做nacos的灰度配置 考虑的方案是不同实例读取不同namespace下的config,但是服务实例还是必须同一个namespace下,即配置隔离,实例...
  • nacos-discovery源码分析

    千次阅读 2019-04-24 17:25:45
    首先还是Spring.factories中的AutoConfiguration类 org.springframework.boot.autoconfigure.... org.springframework.cloud.alibaba.nacos.NacosDiscoveryAutoConfiguration,\ org.springfram...
  • Nacos系列第一篇】-Nacos之Spring Discovery 前言 ​ 个人比较看好Spring Cloud Alibaba家族。此系列以Nacos为主题,从Spring、Spring boot、Spring Cloud多个方面逐步进行演示,源码解读。目前来看官方文档还有待...
  • springCloud-Alibaba——nacos的服务中心(nacos-discovery)使用与微服务集成

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 17,600
精华内容 7,040
关键字:

discoverynacos