一、Nacos安装以及编译
1、下载源码
解压进入目录中进行maven编译
mvn clean install -DskipTests -Drat.skip=true -f pom.xml 复制代码
注意:编译的时候可能需要你自己指定jdk版本,可以修改maven配置文件conf/settings.xml
<profile> <id>jdk-1.8</id> <activation> <activeByDefault>true</activeByDefault> <jdk>1.8</jdk> </activation> <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion> </properties> </profile> 复制代码
2、源码单机启动
- 将jdk版本都设置为jdk8
- 设置参数
-Dnacos.standalone=true 复制代码
3、单机启动服务
- 下载nacos服务
github.com/alibaba/nac…
- 解压进入bin目录
- 执行命令
startup.cmd -m standalone 复制代码
5、修改startup.cmd
将MODE模式改为standalone,这样下次直接双击startup.cmd就可以了
二、Nacos服务领域模型
service->cluster-> instanc【之所以他会这样设置就是为了大的互联网公司,多集群垮机房提供了解决方案。但我们小公司一般都不需要这样。】
Namespace:实现环境隔离,默认值public
Group:不同的service可以组成一个Group,默认值Default-Group
Service:服务名称 Cluster:对指定的微服务虚拟划分,默认值Default
Instance:某个服务的具体实例
Nacos服务注册中心于发现的领域模型的最佳实践。
NameSpace: 是我们生产,开发和测试环境的隔离。测试访问测试,生产访问生产。
Group:比如说有一类服务。他们都是为了交易而服务的。比方说我们的订单,比方说我们的支付。这个在服务注册中心的场景中并不常用。
Service:下一个层级就是service,同一个group有多个service,再服务下面就是集群的概念:
Cluster:比方我们可以有北京的集群也可以有上海的集群。那这个集群的概念意义是什么? 我们可以设想这样的一个场景,比方阿里只在杭州部署一个淘宝的集群,那我们北方的人民去访问,是不是就会相对较慢,一般都会再南方和北方都设置两个集群。当北方人民访问的时候一般我们都访问北京这个集群的服务,其他的服务都会在北京的集群里面互相调用,而不会垮cluster进行访问,这样在同一个数据中心访问都是比较快的。这就是他的意义。
Instance: 这个就是实例,并且是多实例的,这样防止单点问题,从而实现高可用,当北京集群坏了,他会可以访问上海的集群。当一个实例挂掉,另一个实例会替代,当一个集群挂掉,另一个集群会替代上。这样就保证了高可用。很多公司宣传5个9或者4个9的可用,那么全年停机的时长不会超过固定的时长。