SpringCloudAlibaba-Nacos注册中心

开发环境

开发工具:IDEA 2021.3.2

JDK版本:JDK1.8

Maven版本:Maven3.8

SpringCloud版本:Hoxton.SR12

SpringCloudAlibaba版本:2.2.7.RELEASE

SpringBoot版本:2.3.12.RELEASE

Nacos版本:2.0.3

Nacos

Nacos 是 Dynamic Naming and Configuration Service的首字母简称,一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。

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

Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。

搭建Nacos

Nacos文档 里面有两种nacos-server下载方式:下载编译后压缩包源码

下载编译后的压缩包(慢,不推荐)

①访问nacos官网,点击最新稳定版本跳转到下载页面

 ②点击左上角Releases选择版本,展开Assets,下载zip压缩包

下载源码(推荐)

①根据Nacos文档,首先克隆源码(github太慢,使用gitee Nacos镜像)

# -b 后面带的是nacos版本
git clone -b 2.0.3 https://gitee.com/mirrors/Nacos.git

②克隆完之后,执行以下命令构建项目

cd nacos/

mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U  

③构建完项目之后,进入distribution\target目录下

 ④在该bin目录下打开cmd,执行 startup.cmd -m standalone 命令启动nacos-server

⑤浏览访问http://localhost:8848/nacos/index.html,登录客户端默认账号密码都是nacos 

搭建Spring Cloud项目

搭建父工程

①创建maven项目,命名为spring-cloud-alibaba-2022

②删除src目录

③导入依赖,进行依赖统一管理

    <dependencyManagement>
        <dependencies>
            <!--SpringCloud Alibaba 依赖-->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>2.2.7.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!--SpringCloud 依赖-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Hoxton.SR12</version>
            </dependency>
            <!--SpringBoot 依赖-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>2.3.12.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

搭建服务提供者

①创建maven子模块,命名为cloud-provider8001

②导入依赖

    <dependencies>
        <!--nacos-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <!--spring boot依赖-->
        <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>
    </dependencies>

③创建application.yml配置文件

server:
  port: 8001

spring:
  application:
    name: cloud-provider-nacos
  cloud:
    nacos:
      discovery:
        #注册中心地址,127.0.0.1不能写成localhost,不然会报错
        server-addr: 127.0.0.1:8848

management:
  endpoints:
    web:
      exposure:
        include: "*"

④创建启动类,添加@EnableDiscoveryClient注解

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

⑤创建controller

@RestController
@RequestMapping("provider")
public class ProviderController {
    @Value("${server.port}")
    private String port;

    @GetMapping("getUUID")
    public String getUUID() {
        return port + "\t:\t" + UUID.randomUUID();
    }
}

搭建服务消费者

①创建maven子模块,命名为cloud-consumer80

②导入依赖

    <dependencies>
        <!--nacos-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <!--spring boot依赖-->
        <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>
    </dependencies>

③创建application.yml配置文件

server:
  port: 80

spring:
  application:
    name: cloud-consumer-nacos
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848

management:
  endpoints:
    web:
      exposure:
        include: "*"

④创建启动类,添加@EnableDiscoveryClient注解

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

⑤创建配置类,把RestTemplate注入到容器当中

@Configuration
public class ApplicationContextConfig {

    @Bean
    @LoadBalanced   //nacos-discovery依赖自带ribbon,可以实现负载均衡
    public RestTemplate getRestTemplate() {
        return new RestTemplate();
    }
}

⑥创建controller

@RestController
@RequestMapping("consumer")
public class ConsumerController {
    // RestTemplate 方式
    // cloud-provider-nacos是服务提供者在注册中心的昵称
    private static final String URL = "http://cloud-provider-nacos/provider";
    @Autowired
    private RestTemplate restTemplate;

    @GetMapping("getUUID")
    public String getUUID() {
        String result = null;
        result = restTemplate.getForObject(URL + "/getUUID", String.class);
        return result;
    }
}

测试

启动nacos注册中心,登录客户端

启动cloud-provider8001服务提供者,cloud-consumer80服务消费者

刷新nacos客户端

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值