手把手教你在本地搭建 Nacos 服务注册和配置管理中心

简介: Hello 大家好,我是阿粉,现如今微服务早就成为每个互联网公司必备的架构,在微服务中服务的注册发现和统一配置中心是不可或缺的重要角色。现有的服务注册中心主要有 ZooKeeper、Eureka、Consul ,Etcd、Nacos,而统一配置中心主要有 Apollo,Spring Cloud Config,Disconf,Nacos 可以看到服务注册中心和统一配置管理有很多,而且每一种都是网上比较流行的,使用人数也偏多,但是我们可以发现只有 Nacos 是集两者于一身的。这篇文章主要给大家介绍一下 Naocs 的基本信息以及安装步骤,后面的文章再带大家更深入的了解一下Nacos。

Hello 大家好,我是阿粉,现如今微服务早就成为每个互联网公司必备的架构,在微服务中服务的注册发现和统一配置中心是不可或缺的重要角色。现有的服务注册中心主要有 ZooKeeperEurekaConsulEtcdNacos,而统一配置中心主要有 ApolloSpring Cloud ConfigDisconfNacos 可以看到服务注册中心和统一配置管理有很多,而且每一种都是网上比较流行的,使用人数也偏多,但是我们可以发现只有 Nacos 是集两者于一身的。这篇文章主要给大家介绍一下 Naocs 的基本信息以及安装步骤,后面的文章再带大家更深入的了解一下Nacos

Nacos 是什么

打开网站 Nacos 的首页,我们可以看到下面的内容,写到 Nacos 是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。

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

67.jpg

Nacos 本地搭建

Nacos 的安装可以通过安装包或者源码来时候,这里我们为了以后方便调试,所以选择采用源码来安装。

  1. 第一步在 GitHub 上面下载源码,这里可以使用 HTTP 协议也可以使用 SSH,阿粉这里为了简单就直接采用 HTTP 协议来下载了:git clone https://github.com/alibaba/nacos.git
  2. 下载完成过后,我们使用 IDEA 的 File》Open 打开项目,如下图

68.jpg

刚打开后我们会看到有很多个模块,从模块的命名我们大概可以猜到有些模块是干嘛的,比如有 auth 权限模块,config 配置模块等这篇文章我们主要看安装和使用,后面慢慢深入了解具体的细节。

696.jpg

拉取下来过后,我们需要创建数据库,我们找到console 模块下的数据库脚本和配置文件,如下图,在 MySQL 数据库中创建一个名为nacos 的数据库,然后执行schema.sql 脚本,创建相应的表结构,同时在 application.properties 文件中找到对应配置数据源的地方,配置好账号密码。这里对于 MySQL 的数据库的搭建和创建不在这篇文章的讨论范围里面就不提了。

69.jpg

配置好数据库过后,在控制台执行 mvn 命令mvn -Prelease-nacos -Dmaven.test.skip=true -Drat.skip=true clean install -U,编译一下,然后执行 console 模块下面的Nacos.java 中的 main 方法,启动后我们会看到下图,显示的是集群模式启动,因为我们是本地单机启动,所以可以增加一个 JVM 参数-Dnacos.standalone=true  来设置单机模式。按照下图设置好过后,重新启动即可。70.jpg71.jpg

成功过后,我们可以访问地址http://127.0.0.1:8848/nacos,我们可以看到如下页面,包含配置管理、服务管理、以及权限,命名空间和集群的管理。阿粉这里搭建的是最新的版本,旧版本是没有权限管理的。我们可以看到整个页面非常的简洁,其中配置管理服务管理基本上覆盖了我们常用的所有功能。

72.jpg

核心角色

上面我们已经搭建好了 Nacos 平台,现在给大家介绍一下,Nacos 的几个核心角色。

  1. 命名空间Namespace :用于进行租户粒度的配置隔离,不同的命名空间下,可以存在相同的 GroupData ID 的配置。Namespace 的常用场景之一是不同环境的配置的区分隔离,例如开发测试环境和生产环境的资源(如配置、服务)隔离等。
  2. 分组group:每个命名空间下还可以进行分组,相同集群的服务可以设置在同一个分组里面,如果没有手动指定默认分组为DEFAULT_GROUP
  3. 配置集 Data ID:用于唯一区分不同配置文件,可以根据配置的信息不同,分别设置,比如可以单独配置 Redis 的配置文件,以及 MySQL 的配置文件,可以尽量细分复用,这样在有调整的时候只需要改一处即可。
  4. 更详细的名词解释可以参考官网https://nacos.io/zh-cn/docs/concepts.html

使用

上面介绍了 Nacos 的本地搭建,搭建好了过后我们就可以使用了,因为 Nacos 不仅支持服务发现也支持统一配置管理,这篇文章我们先创建两个命名空间 test1test2,然后分别添加两个配置文件com.example.propertiescom.example2.properties,创建的步骤比较简单。首先点击命名空间菜单,然后在右上角新增命名空间,接着输入相关信息就好了,这里新版本的 Nacos 支持手动填入命名空间的 ID,旧版本是不支持的,会随机生成一个字符串,这里建议手动填入具有含义的ID。

73.jpgimage.gif

创建完命名空间过后,就可以在此命名空间下创建相应的配置文件了,这篇文章主要给大家介绍一下 Nacos 的本地部署过程以及简单的系统使用,后面的文章结合代码来实现一下服务的注册发现和配置的动态更新,敬请期待。


最后说两句(求关注)

最近大家应该发现微信公众号信息流改版了吧,再也不是按照时间顺序展示了。这就对阿粉这样的坚持的原创小号主,可以说非常打击,阅读量直线下降,正反馈持续减弱。

所以看完文章,哥哥姐姐们给阿粉来个在看吧,让阿粉拥有更加大的动力,写出更好的文章,拒绝白嫖,来点正反馈呗~。

如果想在第一时间收到阿粉的文章,不被公号的信息流影响,那么可以给Java极客技术设为一个星标

最后感谢各位的阅读,才疏学浅,难免存在纰漏,如果你发现错误的地方,留言告诉阿粉,阿粉这么宠你们,肯定会改的~

相关文章
|
16天前
|
Java Nacos 数据格式
Spring Cloud Nacos 详解:服务注册与发现及配置管理平台
Spring Cloud Nacos 详解:服务注册与发现及配置管理平台
49 3
|
2天前
|
开发框架 .NET Nacos
使用 Nacos 在 C# (.NET Core) 应用程序中实现高效配置管理和服务发现
使用 Nacos 在 C# (.NET Core) 应用程序中实现高效配置管理和服务发现
9 0
|
2天前
|
JavaScript Java Go
Nacos vs. Eureka:微服务注册中心的对比
Nacos vs. Eureka:微服务注册中心的对比
7 0
|
4天前
|
Java Nacos 微服务
Spring Cloud微服务在Windows本地开发时禁用Nacos注册中心注册
Spring Cloud微服务在Windows本地开发时禁用Nacos注册中心注册
|
5天前
|
SpringCloudAlibaba 负载均衡 Java
SpringCloudAlibaba之nacos的服务注册与发现
如图所示:按照图示搭建一个nacos作为服务注册中心的简单应用.
9 0
|
5天前
|
SpringCloudAlibaba 安全 Java
SpringCloudalibaba之Nacos的配置管理
如图所示,nacos-config-example被192.168.56.1获取过。
10 0
|
5天前
|
Nacos 数据安全/隐私保护
springCloud之nacos服务注册与发现、配置中心
springCloud之nacos服务注册与发现、配置中心
12 0
|
2月前
|
监控 Nacos Docker
【开发问题记录】Nacos修改服务实例权重时报错
【开发问题记录】Nacos修改服务实例权重时报错
53 1
|
3天前
|
缓存 监控 Java
深入解析Nacos配置中心的动态配置更新技术
深入解析Nacos配置中心的动态配置更新技术
|
3天前
|
关系型数据库 MySQL Nacos
使用 Docker 部署 Nacos 并配置 MySQL 数据源
使用 Docker 部署 Nacos 并配置 MySQL 数据源
11 0