首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Nacos 的基本使用

Nacos 的基本使用

作者头像
小小杰啊
发布2022-12-21 21:21:10
发布2022-12-21 21:21:10
5460
举报
文章被收录于专栏:Dimples开发记Dimples开发记

# 一、Nacos 的基本介绍

在使用Spring Cloud Alibaba 这套 Java 微服务解决方案时,Nacos 是免不了需要使用的

Nacos可以实现分布式服务注册与发现/分布式配置中心框架。

官网的介绍: https://nacos.io/zh-cn/docs/what-is-nacos.html

# 二、Nacos 的环境搭建

Nacos在linux/windows/Mac版本上都可以安装

具体安装教程地址:https://nacos.io/zh-cn/docs/quick-start.html

# 使用 Docker 安装 Nacos

# 1、下载镜像
代码语言:javascript
复制
docker pull nacos/nacos-server
# 2、运行 Nacos 容器
代码语言:javascript
复制
docker run --name nacos-quick -e MODE=standalone -p 8849:8848 -d nacos/nacos-server

tips: 进行完上述操作后,一个运行在 8849 端口的 nacos 就启动成功了

打开浏览器,输入 http://localhost:8849/nacos 即可开始访问,默认的账号和密码都为 nacos

根据 Nacos 官网的介绍,能够采用 HTTP 请求的方式来将自己的服务注册到 Nacos 当中,其具体的的介绍如下:

# 服务注册
代码语言:javascript
复制
curl -X POST 'http://127.0.0.1:8848/nacos/v1/ns/instance?serviceName=nacos.naming.serviceName&ip=20.18.7.10&port=8080'
# 服务发现
代码语言:javascript
复制
curl -X GET 'http://127.0.0.1:8848/nacos/v1/ns/instance/list?serviceName=nacos.naming.serviceName'
# 发布配置
代码语言:javascript
复制
curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test&content=HelloWorld"
# 获取配置
代码语言:javascript
复制
curl -X GET "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test"

# 三、Nacos 整合 Spring Cloud

# 1、创建父工程

打开 IDEA,新建 Maven 工程,并将生成的 src 目录进行删除(因为使用改工程作为父工程),在 pom.xml 当中贴入如下坐标:

代码语言:javascript
复制
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.0.RELEASE</version>
</parent>
<dependencies>
    <!--  springboot 整合web组件-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        <version>0.2.2.RELEASE</version>
    </dependency>
</dependencies>

# 2、创建服务提供者

在父工程当中新增一个 Module,新增如下类:

代码语言:javascript
复制
package top.dimples.controller;

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

/**
 * @author Dimples_Yj
 * @package top.dimples.controller
 * @create 2021-07-27
 */
@RestController
public class MemberController {

    @Value("${server.port}")
    private String port;

    /**
     * 测试服务
     *
     * @param id
     * @return
     */
    @GetMapping("/user")
    public String getUser(Long id) {
        return "Dimples.top" + port;
    }
}

application.yml 配置文件如下:

代码语言:javascript
复制
spring:
  application:
    name: dimples-member
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8849
server:
  port: 8080

编写 Spring Boot 的启动类后,启动当前的微服务,打开 Nacos 的管理端页面,可以发现我们编写的服务已经注册到 Nacos 当中

# 3、创建消费者

在父工程之下新增一个 Module,编写如下代码:

代码语言:javascript
复制
package top.dimples.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.discovery.DiscoveryClient;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
import top.dimples.loadbalancer.RatationLoadBalancer;

import java.util.List;

/**
 * @author Dimples_Yj
 * @package top.dimples.controller
 * @create 2021-07-27
 */
@RestController
public class OrderController {

    @Autowired
    private DiscoveryClient discoveryClient;

    @Autowired
    private RestTemplate restTemplate;

    @Autowired
    private RatationLoadBalancer ratationLoadBalancer;

    @RequestMapping("/orderToMember")
    public String orderToMember() {
        // 1、从注册中心尚获取集群列表地址
        List<ServiceInstance> instances = discoveryClient.getInstances("dimples-member");

        // 2、列表中获取一个 实现本地 RPC 调用
        String resp = restTemplate.getForObject(instances.get(0).getUri() + "/user", String.class);

        return "返回的结果:" + resp;
    }

}

application.yml 配置文件如下:

代码语言:javascript
复制
spring:
  application:
    name: dimples-order
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8849
server:
  port: 8090

编写 Spring Boot 启动类,并启动,随后打开浏览器访问 http://localhost:8090/orderToMember 可以看到 dimples-order 服务调用 dimples-member 成功。

至此,Nacos 的基础使用入门完毕!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-07-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • # 一、Nacos 的基本介绍
  • # 二、Nacos 的环境搭建
    • # 使用 Docker 安装 Nacos
      • # 1、下载镜像
      • # 2、运行 Nacos 容器
      • # 服务注册
      • # 服务发现
      • # 发布配置
      • # 获取配置
  • # 三、Nacos 整合 Spring Cloud
    • # 1、创建父工程
    • # 2、创建服务提供者
    • # 3、创建消费者
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档