我觉得Nacos用起来还不错

在使用SpringCloud做分布式微服务架构时,注册中心是必不可少的一个组件。目前可以用的主要有:Eureka、Consul、Zookeeper。今天,我们就来说一下Alibaba的Nacos怎么样?

下载与安装

  • 下载地址https://github.com/alibaba/nacos/releases

  • 安装:

    • Windows 下载解压后(.zip),直接点击bin/start.bat就可以了。
    • Linux下载解压后(.tar.gz),同样,也是运行 bin/start.sh 脚本。
  • 打开控制台:

    Nacos提供了一个可视化的操作平台,安装好之后,在浏览器中输入http://localhost:8848就可以访问了,默认的用户名和密码都是nacos(我使用的1.2.0版本。默认将密码验证给关了,这个选项后边会说)

Nacos简介

Nacos是由阿里巴巴开源的一个好东西,直接贴上它的官网,就不再这么累赘了,毕竟是国人开发的,是有中文文档的,上边写的很全面。https://nacos.io/zh-cn/docs/quick-start.html

Nacos作为注册中心

​ 它和Eureka不一样,并不需要创建新的web项目,而是和Zookeeper和Consul一样,只需要下载安装启动后,将我们的微服务注册进去就可以了。

​ 创建两个微服务,一个客户端(调用者)和一个服务端(提供者),

  • 引入依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
  • 在它们的配置文件中引入如下代码:
spring:
cloud:
nacos:
discovery:
# Nacos的地址
server-addr: localhost:8848
  • 主启动类上添加(不管是哪种注册中心,这个一定要有):
@EnableDiscoveryClient
  • 当然,在客户端还是要添加ribbon的负载均衡的,但是不用额外添加依赖,nacos已经添加了
@Configuration
public class AppConfig { @Bean
@LoadBalanced
public RestTemplate restTemplate(){
return new RestTemplate();
}
}
  • 好了,打开Nacos的控制台,然后就可以看到这两个微服务了。

Nacos作为分布式配置中心

之前我们是使用SpringCloudConfig从github等仓库上拉取的配置文件,但是用了Nacos后,我们就可以从Nacos中直接配置了,是不是很方便啊。新建了一个项目,nacos-config-server-8002

pom.xml引入下边依赖

<!--分布式配置中心-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

application.yml中加入如下配置内容

spring:
profiles:
active: dev

添加一个bootstrap.yml

server:
port: 8002
spring:
application:
name: nacos-config-server-8002
cloud:
nacos:
discovery:
server-addr: localhost:8848
config:
server-addr: localhost:8848
# 配置文件类型,有yaml和properties ,注意一定是yaml,不是yml
file-extension: yaml
  1. application.yml中的配置是什么意思?
  1. 为什么要引入bootstrap.yml?

​ 简单来说,这个配置是和application.yml是一样的,不这它要比appliation.yml先加载

Controller中的接口

@RestController
@RefreshScope //这是一个SpingCloud的原生注解,可以实现配置的动态刷新
public class InfoController {
/*
这个中的 : 的意思就是说,如果配置文件中没有,就直接使用后边的那个字符串,我写的是nothing
在本地项目中,我们并没有配置configInfo,
所以如果这时候调用http://localhost:8002/info
返回就是nothing
*/
@Value("${configInfo}")
private String configInfo; /**
* 用做配置中心的演示
*
* @return
*/
@GetMapping("info")
public String getConfig() {
return configInfo;
}
}

Nacos中的几个空间概念:

  • NameSpaces(命名空间)

    相当于我们一个项目中的包名,Nacos中可以新建多个命名空间。微服务注册的时候,可以通过配置spring.cloud.nacos.discovery.namespace,当然,配置文件也可以配置namespace来指定对应的名称空间,如果不配置就是使用默认的public 空间。

    假如,你是好几个项目共用一个Nacos集群,就可以通过namespce来区分项目。

    在Nacos的控制台的最下边有一个命名空间,你可以新建一个试,建完再次点击服务列表和配置列表上边会出现你的命令空间选择(如下图,我新建了一个space1的空间,public是默认的)

  • Group(分组)

    相当于Java中的类名,同样,一个包下可以有多个类。不过这个只是相对于配置文件来说,对于服务注册没有这么一说。它有一个默认的分组就是DEFAULT_GROUP,在新建配置文件时就会有(如下图)

  • DataID

    这个就相当于类中的方法,同样,一个类中就会有多个方法名。

​ 我们的配置文件就是在上图中去添加的,下边是我截取了Nacos官方文档中对于DataID的说明:

新建一个配置文件试试

​ 在配置列表中新建一个配置文件,如果你有多个命名空间,注意选择你的项目中连接的那个

只要点了右下角的发布,就会自动配置了,再次访问http://localhost:8002/info,就会看到已经更改了,这个是实时更改的。

这些都是很简单的操作,只要你自己做一次,就一定会使用了

Nacos的配置文件持久化

Nacos使用的是嵌入式数据库Derby,有关嵌入式数据库,可以参考在Spring中使用嵌入式数据库-H2,虽然数据库不同,但是原理操作方法一致。但是,我们想换成我们的mysql用来存储nacos的数据,可否?

  • 导入数据到你本地的Mysql库

    在Nacos安装包下的conf目录下有个nacos-mysql.sql文件,放到你的Mysql工具中执行一遍(它这个sql语句中建库,先建个库名叫nacos_config)

  • 修改conf下的application.properties文件

### 98行左右,这个设置为true就是开启nacos启动的登录验证,默认用户名和密码就是nacos
nacos.core.auth.enabled=true ### 在最后添加如下:
spring.datasource.platform=mysql db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123

​ 以上这些内容全都来自于Nacos官网

这样,再次启动后Nacos后,你之前的配置文件就全都不见了,因为你配置了Mysql库。这样,你每次修改后,就会进Mysql库,这个库很简单的,你大概看一下就能明白了。

微信关注”小鱼与Java“,回复”SpingCloud“获取更多SpringCloud学习资料

Nacos作为微服务注册中心,爱不释手的感觉的更多相关文章

  1. 如何优化Spring Cloud微服务注册中心架构?

    作者: 石杉的架构笔记 1.再回顾:什么是服务注册中心? 先回顾一下什么叫做服务注册中心? 顾名思义,假设你有一个分布式系统,里面包含了多个服务,部署在不同的机器上,然后这些不同机器上的服务之间要互相 ...

  2. 并发系列5-大白话聊聊Java并发面试问题之微服务注册中心的读写锁优化【石杉的架构笔记】

  3. Eureka 微服务注册中心搭建

    本机IP为  192.168.1.102 1.   新建Maven项目   eureka 2.   pom.xml <project xmlns="http://maven.apach ...

  4. Nacos笔记01——使用Nacos作为SpringCloud项目的服务注册中心

    前言 刚学SpringCloud时使用eureka作为服务注册中心,随着网飞公司eureka2.x不再更新,以及最近在公司实习接触到的SpringCloud项目是使用Nacos来做服务注册中心的,所以 ...

  5. lms框架服务注册中心

    服务注册中心原理 在分布式系统里的注册中心.原理是将部署服务的机器地址记录到注册中心,服务消费者在有需求的时候,只需要查询注册中心,输入提供的服务名,就可以得到地址,从而发起调用. 在微服务架构下,主 ...

  6. 用Nacos做微服务架构里的服务注册与发现中心

    转自:https://www.jianshu.com/p/61608ff86344 Nacos 另一个非常重要的特性就是服务注册与发现,说到服务的注册与发现相信大家应该都不陌生,在微服务盛行的今天,服 ...

  7. 学习一下 SpringCloud (二)-- 服务注册中心 Eureka、Zookeeper、Consul、Nacos

    (1) 相关博文地址: 学习一下 SpringCloud (一)-- 从单体架构到微服务架构.代码拆分(maven 聚合): https://www.cnblogs.com/l-y-h/p/14105 ...

  8. silky微服务框架服务注册中心介绍

    目录 服务注册中心简介 服务元数据 主机名称(hostName) 服务列表(services) 终结点 时间戳 使用Zookeeper作为服务注册中心 使用Nacos作为服务注册中心 使用Consul ...

  9. 微服务配置内容《网上copy》=========》如何创建一个高可用的服务注册中心

    前言:首先要知道什么是一个高可用的服务注册中心,基于spring boot建成的服务注册中心是一个单节点的服务注册中心,这样一旦发生了故障,那么整个服务就会瘫痪,所以我们需要一个高可用的服务注册中心, ...

随机推荐

  1. openpyxl操作excel表格

    1.openpyxl 只支持打开.xlsx格式,其他excel类库基本也是 2.不能这里的工作面板直接右键新建表格,必须到文件夹下面去新建,可以把在别的目录新建的表格直接复制到当前目录下 3.从表格中 ...

  2. TCP\IP协议簇-分层模型

    OSI 模型   数据单元 层 功能 主机层 Data(数据) 7. 应用层 网络进程到应用程序. 6. 表示层 数据表示形式,加密和解密,把机器相关的数据转换成独立于机器的数据. 5. 会话层 主机 ...

  3. python保留2位小数

    1 代码: ​ 2 运行结果: ​ 3 其中字符串形式的:print('%.2f' % (x/y))方式最好

  4. 大家都在关注AI,但这些事你可能并不知道!

    我们正处在第四次工业革命,其特点是机器人和自驾车技术的进步,智能家电的泛滥等等.所有这些最前沿的是人工智能(AI),也是自动化计算机系统的发展,可以匹配甚至超过人类的智力. 你的自动驾驶可能会编程杀死 ...

  5. Proto3:编码

    本文介绍protocol buffer消息二进制传输格式.在应用程序中使用protocol buffer时,你并不需要了解这些,但它对你了解protocol buffer格式如何影响你的编码消息的大小 ...

  6. 探索Kinect的更多可能——亲历第十九届机器人世界杯RoboCup

    作者:微软亚洲研究院资深项目经理 吴国斌 2015年7月19日,第十九届RoboCup机器人世界杯足球赛,在中国合肥隆重开幕.来自全球七十六个国家和地区的一百余支代表队参加了决赛,他们优秀的作品给观众 ...

  7. 用Express 4和 MongoDB打造Todo List

    本篇文章主要參考自DreamersLab - 用Express和MongoDB寫一個todo list.原文的教學內容是使用Express 3.x版,在這邊做簡單Express 4.12.1的todo ...

  8. android-interview

    如何减小安装包的大小 主要是减小资源的大小 不常使用的资源,使用时再从网络下载. 绘制代替图片资源 OOM (Out Of Memory) https://www.zhihu.com/question ...

  9. PAT B1080 MOOC期终成绩(C++)

    PAT甲级目录 | PAT乙级目录 题目描述 B1080 MOOC期终成绩 解题思路 可利用 map 将字符串型的学号转换为整型的序号,方便查找.输入全部成绩后,遍历每个学生同时计算最终成绩,然后将成 ...

  10. DIY电压基准测万用表

    | 分类 日志  | 手里有三个常用的手持表,UT61E四位半,优利德明星产品:福禄克F117C,换挡快,单手操作还带LoZ:UT210E小钳表能够通过修改EEPROM更改电表配置,已经刷了6000字 ...