目录
Nacos简介
- 为什么叫Nacos?
前四个字母分别为Naming和Configuration的前两个字母,最后的s为Service。
- Nacos是什么呢?
一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
Nacos:Dynamic Naming and Configuration Serviece
Nacos就是注册中心+配置中心的组合。等价于Nacos=Eureka+Config+Bus
- Nacos能干嘛呢?
替代Eureka做服务注册中心,替代Config做服务配置中心。
- 各注册中心的对比(简单版本,概括版)
Nacos安装
1.需要本地java8和Maven环境已经安装好
2.去官网下载安装包并解压,打开bin运行startup.cmd就好了(即压即用)
3.测试直接访问http://localhost:8848/nacos就可以了(用户名和密码默认都是nacos)
4.结果页面
Nacos作为服务注册中心演示
Nacos之服务注册实例
前提准备步骤(构建服务模块,该模块仅有一个简单的接口,功能是获取该模块port端口号):
如何使用?
1.将jar包依赖引入
2.在主启动类开启服务注册
3.修改yml文件
接下来创建两个服务且服务名是一样的服务并注册进Nacos里,测试!
Nacos之负载均衡实例
Nacos天生就支持了负载均衡!jar包里面就已经包含了ribbon负载均衡。
前提工作:先创建好消费者服务
yml文件如下:
获取RestTemplate去服务间调用,注意一定要加@LoadBalanced注解表示使用ribbon进行负载均衡。不加的话也可以通过服务注册中心找到该服务名,但服务名底下有两个服务他不知道该走哪一个所以会报错(找不到服务名error),故而要加上
controller类
测试!!!!访问同一个接口就可以轮询负载均衡到两个服务了
服务注册中心对比
Nacos同时支持AP、CP两种微服务模型,可以变换
Nacos的分类配置
Namespace+Group+Data ID三者关系是如何。
Nacos作为服务配置中心的演示
以前我们用config是在github上修改我们的配置文件然后通过config同步到项目中的,现在我们是通过将配置文件放在Nacos上,Nacos再同步到github的。
前提条件:
先创建一个工程,并修改pom文件和yml文件将Nacos的服务配置中心导入项目。
Nacos需要有两个配置文件分别是application.yml和bootstrap.yml。
全局配置文件放在bootstrap文件,自己的项目配置文件放在application里面
bootstarp配置文件:
application配置文件:
业务类需要开启动态刷新标签
Nacos的匹配规则(读取文件的规则)
Nacos自带动态刷新!!!
Nacos集群和持久化配置(重要)
集群部署的架构图
阳哥理解
Nacos的持久化
Nacos是自带一个内嵌的数据库,如果集群情况下那么三个机器有三个内置数据库,数据不一致。
所以要使用集中式存储的方式来支持集群化部署,故而我们要配置Mysql数据库。
如何将Nacos连接mysql数据库:
1.安装mysql
2.初始化数据库,运行nacos-mysql.sql(路径:nacos-server-1.1.4\nacos\conf)。
3.修改conf/application.properties文件,添加支持mysql数据源配置(目前只支持mysql),添加mysql数据源的url、用户名和密码。
Nacos集群的配置实例:
步骤图:
下载Linux版本Nacos
此处是模拟三个服务器,将Nacos开三个服务分别是3333、4444、5555三个端口
集群配置步骤如下:
如何声明集群呢?(配置luster.conf文件)
编辑startup.sh,使它能够接受不同的启动端口,启动三个Nacos服务且运行在三个端口里。
修改startup.sh
启动三个Nacos服务
修改nginx的配置,由它作为负载均衡服务器
修改nginx的配置文件
nginx.conf
至此就配置完成了,启动测试
启动三个Nacos和mysql以及Nginx
这样就访问http://192.168.111.144:1111/nacos就可以通过访问nginx端口后通过nginx的映射规则,随机访问三个Nacos的任意其中一个Nacos,然后修改里面的配置文件就会保存到mysql中了。就达到了Nacos集群的效果。