对不起,率先脱单了,能学会的找对象神器--Nacos

3,071

这是我参与更文挑战的第 12 天,活动详情查看:更文挑战

作者:JavaGieGie

微信公众号:Java开发零到壹

前言

上次教大家用EasyCode怎么实现1小时解决一周的需求,不知道小伙伴们有没有机会尝试一波呢。今天先不哈牛皮了,给大家介绍一款集配置中心与注册中心于一体的神器---Nacos。本文可以说是单身老铁的福音,学完之后你可以骄傲的和旁边的小妹妹同事说,嗨,你知道Nacos是什么嘛,不出意外很快就能脱单,抱得美人归😁。

20190723874757_VyaTxZ.jpg

正文

Nacos是什么

Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置,帮助您更敏捷和容易地构建、交付和管理微服务平台。

Nacos有哪些功能

Nacos可以动态将application.yml中的文件动态配置,无需重启服务,也可以配合dubbo,类似Zookeeper的功能。主要有以下几个功能,有兴趣的小伙伴可以在文末访问Nacos官网查看:

  • 服务发现及监测:支持基于 DNS 和基于 RPC 的服务发现;
  • 动态配置服务:修改完配置文件,无需重新部署应用和服务;
  • DNS 服务:更容易地实现中间层负载均衡、更灵活的路由策略、流量控制以及数据中心内网的简单DNS解析服务。

几款注册中心比较:

image.png

动态配置流程讲解

  1. 下载Nacos

演示环境:Win10、Jdk8

点击下载,即可下载2.0.2版本的Nacos,下载完成后解压到本地目录,需要进行以下两个步骤进行配置:

  • 本地新建数据库nacos,将conf / nacos-mysql.sql导入到新建的数据库中;
  • 修改conf / application.properties中数据库文件
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=root
  1. 启动Nacos服务

打开Nacos安装目录中bin目录,Windows用户直接双击startup.cmd启动服务

Linux/Unix/Mac

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

sh startup.sh -m standalone

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

bash startup.sh -m standalone

Windows

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

startup.cmd -m standalone
  1. 打开Nacos网址

浏览器输入地址**http://127.0.0.1:8848/nacos/index.html**便可打开服务图形化页面,默认用户名密码(nacos/nacos),

如图所示,界面非常清爽舒服,在左侧栏【配置管理】是用于添加配置文件。点击新建配置

image.png

点击新建配置,输入几个配置项,点击【发布】即可完成配置:

  • Data ID:配置文件名称,可以配置dev、prod等来区分环境。
  • Group:不修改则使用默认组名称。
  • 配置格式:根据实际需求选择。

image.png

3. 新建SpringBoot项目

新建过程忽略,大家应该都能够熟练掌握,花Gie新建一个项目【nacos-】已经完成,我们需要配置如下几个参数:

  • 启动类:添加@NacosPropertySource(dataId = "application-dev.yml", autoRefreshed = true) ,application-dev.yml为刚刚配置的Data Id;
  • application.properties:添加nacos.config.server-addr=127.0.0.1:8848,即刚刚启动的Nacos服务地址;
  • pom文件:
<properties>
    <nacos-config-spring-boot.version>0.2.1</nacos-config-spring-boot.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-actuator</artifactId>
    </dependency>

    <dependency>
        <groupId>com.alibaba.boot</groupId>
        <artifactId>nacos-config-spring-boot-starter</artifactId>
        <version>${nacos-config-spring-boot.version}</version>
    </dependency>

    <dependency>
        <groupId>com.alibaba.boot</groupId>
        <artifactId>nacos-config-spring-boot-actuator</artifactId>
        <version>${nacos-config-spring-boot.version}</version>
    </dependency>
</dependencies>
  • 测试类
@RestController
@ResponseBody
public class NacosController {

    @NacosValue(value = "${name}", autoRefreshed = true)
    private String name;

    @RequestMapping(value = "/get", method = RequestMethod.GET)
    @ResponseBody
    public String get() {
        return name;
    }
}

启动项目,测试配置中心

启动SpringBoot项目,浏览器输入http://127.0.0.1:8080/get,就会显示Nacos刚刚配置的花Gie,此时修改Nacos中配置文件内容,无需重启项目,再次访问该地址,会发现内容已经更新。

image.png

总结

今天简单分享了Nacos的配置管理用法,下一章将对配置中心进行讲解分享。既然选择了这条路,我们不能一直沉浸在旧的技术止步不前,毕竟互联网行业技术更新迭代非常快,我们要注重基础的同时也要适当使用一些好用的新技术(虽然也不新了,但我是最近才用到....害羞的的低下头),这样即使面试被问起来心里也有点底气。

耐心看到最后的小伙伴,肯定都是热爱学习的好同志,也是对花Gie分享的技术非常赞同(不要脸+1),看了下时间还有二十分钟就到零晨了,又是充实的一天(差点一口气没上来),睡了睡了,狗命要紧。

点关注,防走丢

以上就是本期全部内容,如有纰漏之处,请留言指教,非常感谢。我是花Gie,有问题大家随时留言讨论 ,我们下期见🦮。

文章持续更新,可以微信搜一搜 Java开发零到壹 第一时间阅读,并且可以获取面试资料学习视频等,有兴趣的小伙伴欢迎关注,一起学习,一起哈🐮🥃。

原创不易,你怎忍心白嫖,如果你觉得这篇文章对你有点用的话,感谢老铁为本文点个赞、评论或转发一下,因为这将是我输出更多优质文章的动力,感谢!

官方Demo : github.com/nacos-group…

官方手册 : nacos.io/zh-cn/docs/…