Spring Cloud Alibaba-Nacos安装编译和服务领域模型

113 阅读2分钟

一、Nacos安装以及编译

1、下载源码

解压进入目录中进行maven编译

mvn clean install -DskipTests -Drat.skip=true -f pom.xml

image.png

注意:编译的时候可能需要你自己指定jdk版本,可以修改maven配置文件conf/settings.xml

image.png

<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、单机启动服务

5、修改startup.cmd

将MODE模式改为standalone,这样下次直接双击startup.cmd就可以了

image.png

二、Nacos服务领域模型

image.png

service->cluster-> instanc【之所以他会这样设置就是为了大的互联网公司,多集群垮机房提供了解决方案。但我们小公司一般都不需要这样。】

Namespace:实现环境隔离,默认值public

Group:不同的service可以组成一个Group,默认值Default-Group

Service:服务名称 Cluster:对指定的微服务虚拟划分,默认值Default

Instance:某个服务的具体实例

Nacos服务注册中心于发现的领域模型的最佳实践。

image.png

NameSpace: 是我们生产,开发和测试环境的隔离。测试访问测试,生产访问生产。

Group:比如说有一类服务。他们都是为了交易而服务的。比方说我们的订单,比方说我们的支付。这个在服务注册中心的场景中并不常用。

Service:下一个层级就是service,同一个group有多个service,再服务下面就是集群的概念:

Cluster:比方我们可以有北京的集群也可以有上海的集群。那这个集群的概念意义是什么? 我们可以设想这样的一个场景,比方阿里只在杭州部署一个淘宝的集群,那我们北方的人民去访问,是不是就会相对较慢,一般都会再南方和北方都设置两个集群。当北方人民访问的时候一般我们都访问北京这个集群的服务,其他的服务都会在北京的集群里面互相调用,而不会垮cluster进行访问,这样在同一个数据中心访问都是比较快的。这就是他的意义。

Instance: 这个就是实例,并且是多实例的,这样防止单点问题,从而实现高可用,当北京集群坏了,他会可以访问上海的集群。当一个实例挂掉,另一个实例会替代,当一个集群挂掉,另一个集群会替代上。这样就保证了高可用。很多公司宣传5个9或者4个9的可用,那么全年停机的时长不会超过固定的时长。

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第12天,点击查看活动详情