nacos入门

2021/7/28 6:05:56

本文主要是介绍nacos入门,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

nacos入门

  • nacos介绍
    • 什么是nacos
    • 启动nacos服务
      • 服务启动
      • 访问
    • 动态配置服务
    • 服务发现及管理
    • 动态DNS服务
    • 修改为mysql存储配置

nacos介绍

nacos官网,nacos是阿里那套微服务中的一个组件,可以单独使用可以,配合其他的组件一起使用。我们用的最多还是nacos的动态配置,这个对与其他可替代的微服务组件来说,这个比价简单,使用也非常的方便。

什么是nacos

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

启动nacos服务

本地电脑运行可以直接去官网下载,直接下载解压运行就可以了,也可以自己去找最新版本。

服务启动

Linux/Unix/Mac
启动命令(standalone代表着单机模式运行,非集群模式):

sh startup.sh -m standalone

如果您使用的是ubuntu系统,或者运行脚本报错提示[[符号找不到,可尝试如下运行:

bash startup.sh -m standalone

Windows
启动命令(standalone代表着单机模式运行,非集群模式):

startup.cmd -m standalone

访问

启动服务之后直接访问 http://127.0.0.1:8848/nacos ,初始账户密码是nacos/nacos.
添加配置信息
在这里插入图片描述

添加对环境和服务配置信息,里面的data ID 可以根据服务信息生成也可以,在服务中指定。这里直接填写服务名就好了,其他的默认就可以了,直接“发布”就可以了。
在这里插入图片描述
可以查看配置文件历史记录,还提供回滚功能。
在这里插入图片描述

在这里插入图片描述

动态配置服务

动态配置服务让您能够以中心化、外部化和动态化的方式管理所有环境的配置。动态配置消除了配置变更时重新部署应用和服务的需要。配置中心化管理让实现无状态服务更简单,也让按需弹性扩展服务更容易。

添加依赖,不能使用最新版本的spingboot,nacos基于的版本比较低,建议使用比较低版本的springBoot。

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.10.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>nacos_client</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>nacos_client</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>1.8</java.version>
        <project-version>2.2.1.RELEASE</project-version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>
    </dependencies>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>${project-version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

配置修改,直接添加bootstrap.properties文件因为springBoot的加载顺序,如果配置中初始化服务的配置就需要使用bootstrap文件。

spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.cloud.nacos.config.group=DEFAULT_GROUP
#DataId
spring.cloud.nacos.config.name=nacos_client001

spring.application.name=nacosClient

使用@RefreshScope注解,具体项目不建议将此注解直接使用在普通bean,建议做一个配置bean进行动态刷新,这样会更加安全高效。

package com.example.nacos_client.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RefreshScope
public class TestController {

    @Value("${testName}")
    private String testName;


    @RequestMapping("/test")
    public String testPara(){

        return testName;
    }
}

服务发现及管理

动态服务发现对以服务为中心的(例如微服务和云原生)应用架构方式非常关键。Nacos支持DNS-Based和RPC-Based(Dubbo、gRPC)模式的服务发现。Nacos也提供实时健康检查,以防止将请求发往不健康的主机或服务实例。借助Nacos,您可以更容易地为您的服务实现断路器。可以参考官网直接使用,功能和eureka类似。

动态DNS服务

通过支持权重路由,动态DNS服务能让您轻松实现中间层负载均衡、更灵活的路由策略、流量控制以及简单数据中心内网的简单DNS解析服务。动态DNS服务还能让您更容易地实现以DNS协议为基础的服务发现,以消除耦合到厂商私有服务发现API上的风险。

修改为mysql存储配置

修改conf/application.properties

server.contextPath=/nacos
server.servlet.contextPath=/nacos
server.port=8841


spring.datasource.platform=mysql

db.num=1
db.url.0=jdbc:mysql://localhost:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=840416


这篇关于nacos入门的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程