且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

SpringCloud07_Nacos的概述、安装、搭建提供者、消费者工程案列、配置中心、Namespace、Group、Data ID、高可用的集群配置(一)

更新时间:2022-02-10 01:36:03

写在最前面:

(1). nacos官网

(2). nacos github中文

(3). nacos下载


# nacos作为注册中心
server:
  port: 9001
spring:
  application:
    name: nacos-payment-provider
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848 #配置Nacos地址
management:
  endpoints:
    web:
      exposure:
        include: '*'
# nacas作为消费者 
server:
  port: 83
spring:
  application:
    name: nacos-order-consumer
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848
service-url:
  nacos-user-service: http://nacos-payment-provider
# nacos作为配置中心
server:
  port: 3377
spring:
  application:
    name: nacos-config-client
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848 #服务注册中心地址
      config:
        server-addr: localhost:8848 #配置中心地址
        file-extension: yaml #指定yaml格式的配置
        group: DEV_GROUP # 分类配置之分组配置
        namespace: 3f95a639-712b-4108-a03e-7bc3e95c3d46 #哪一个namespace下
#${spring.application.name}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
#nacos-config-client-dev.yaml
    <!--nacos作为注册中心-->
    <dependency>
         <groupId>com.alibaba.cloud</groupId>
         <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
     </dependency>
     <!--nacos作为配置中心-->
     <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
     </dependency>


①. Nacos简介(了解)


  • ①. 为什么叫Nacos
    (前四个字母分别为Naming和Configuration的前两个字母,最后的s为Service)


  • ②. 是什么


一个更易于构建云原生应用的动态服务发现,配置管理和服务管理中心


Nacos:Dynamic Naming and Configuration Service


Nacos就是注册中心+配置中心的组合(等价于Nacos = Eureka+Config+Bus)


③. 能干嘛


替代Eureka做服务注册中心


替代Config做服务配置中心


④.  Nacos下载版本

官网中文档


②. 安装并运行Nacos(了解)


  • ①. 本地Java8+Maven环境已经OK
  • ②. 先从官网下载Nacos
  • ③. 解压安装包,直接运行bin目录下的startup.cmd
  • ④. 命令运行成功后直接访问http://localhost:8848/nacos
    默认账号密码都是nacos
  • ⑤. 结果页面


SpringCloud07_Nacos的概述、安装、搭建提供者、消费者工程案列、配置中心、Namespace、Group、Data ID、高可用的集群配置(一)


③. 基于Nacos的服务提供者


  • ①. 新建Module: cloudalibaba-provider-payment9001


  • ②.pom


    <dependencies>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <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>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
  </dependencies>


③. YML


server:
  port: 9001

spring:
  application:
    name: nacos-payment-provider
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848 #配置Nacos地址

management:
  endpoints:
    web:
      exposure:
        include: '*'


④. 主启动


    @EnableDiscoveryClient
    @SpringBootApplication
    public class PaymentMain9001 {
        public static void main(String[] args) {
            SpringApplication.run(PaymentMain9001.class,args);
        }
    }


⑤. 业务类


package com.atguigu.springcloud.alibaba.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;


@RestController
public class PaymentController{
    @Value("${server.port}")
    private String serverPort;

    @GetMapping(value = "/payment/nacos/{id}")
    public String getPayment(@PathVariable("id") Integer id){
        return "nacos registry, serverPort: "+ serverPort+"\t id"+id;
    }
}


  • ⑥. 测试
  1. http://lcoalhost:9001/payment/nacos/1
  2. nacos服务注册中心+服务提供者9001都ok了
  3. nacos控制台


SpringCloud07_Nacos的概述、安装、搭建提供者、消费者工程案列、配置中心、Namespace、Group、Data ID、高可用的集群配置(一)


⑦. 为了下一章节演示nacos的负载均衡,参照9001新建9002


SpringCloud07_Nacos的概述、安装、搭建提供者、消费者工程案列、配置中心、Namespace、Group、Data ID、高可用的集群配置(一)