内容1.1:什么是nacos分级存储1.3:nacos为什么要引入这样的服务分类1.3.1:服务跨集群调用问题2.1.1:修改文件yml,添加如下内容:2.1.2:在Nacos控制台可以看到集群变化:1、服务分层存储模型服务分层存储模型的概念听起来很高级,下面我们来仔细分析一下!!!1.1:什么是nacos分层存储服务:之前有service的概念,之前有user-service用户服务,order-service订单服务,这些都叫服务。问题来了:一个服务可以包含多个实例,但是随着业务规模的增长,我们会考虑更多的问题。比如你把所有的实例都部署在一个机房,就好像把鸡蛋放在一个篮子里,有一天篮子打翻了,鸡蛋就完蛋了,从小到大,把多个实例放在一个机房里,在万一机房着火、停电等因素导致机房罢工,那么所有的实例都停止了,服务就会挂掉!解决问题:为了解决这个问题,我们将多个实例部署到多个机房,比如有钱的阿里,京东,在北京,上海等安排几个机房,机房在一个地方挂了,我还有几个机房正常运行。而我们的nacos分层存储模型引入了这样一个机房或区域的概念,部署了多个实例,比如8081、8082、8083等,针对下面的演示1.2:什么是集群,什么是集群呢!如下图,在上海部署了两个实例,在杭州部署了两个实例,nacos调用同一个机房??的多个实例:cluster,在杭州叫杭州用户-服务,在北京叫集群北京用户服务集群。那么在nacos的层次模型中,第一层是服务,第二层是集群,第三层是例子1.3:nacos为什么要引入这样的服务分类那么问题来了,nacos为什么要引入这样的服务分类?为什么要加上集群的概念呢?我直接服务找实例不好吗?比如杭州有一个机房,有用户服务集群和订单服务集群。上海和北京的机房也有这个配置。现在order-service需要访问user-service,所以现在有两种访问方式:第一种访问本地局域网,另一种访问上海或者北京机房的user-service。然后必须选择本地集群,因为在局域网中访问!速度快延迟低,跨集群访问,比如访问上海的集群,肯定会有很高的延迟。因此,在聚类方法中,上海实例被归为上海聚类,北京实例被归为北京聚类。杭州机房的order-service优先访问本机房的user-service。.Nacos引入这种分层概念是为了防止跨集群访问,或者说是为了避免1.3.1:服务跨集群调用问题。微服务相互访问时,尽量访问同一个集群实例,因为本地访问速度更快。仅在集群不可用时访问其他集群。2、服务集群的属性如图所示。在这里,我打开三个实例来查看服务中实例的详细信息。可以发现集群默认为DEFAULT,下面给出三个实例,分别设置为(北京集群)和SH(上海集群)2.1实例配置集群2.1.1:修改文件yml,添加如下内容:第一个修改application.yml文件的集群配置:在BJ集群中设置实例#端口号server:port:8888spring:application:name:service-provider#服务名称cloud:nacos:discovery:server-addr:127.0.0.1:8848#nacos服务地址cluster-name:BJ#配置集群名称,即机房所在位置,例如:BJ,北京二号修改application-8081.yml文件的集群配置:设置JS集群中的实例#server.port=8070#spring.application.name=service-provider#spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848#portnumberserver:port:8170spring:application:name:service-provider#服务名称cloud:nacos:discovery:server-addr:127.0.0.1:8848#nacos服务地址cluster-name:JS#配置集群名称,即机房位置,例如:JS,江苏三一修改了application-8082.yml文件的集群配置:设置JS集群中的实例server:port:8270spring:application:name:service-provider#服务名称cloud:nacos:discovery:server-addr:127.0.0.1:8848#nacos服务地址cluster-name:JS#Configure集群名称,即机房位置,例如:江苏JS注:要激活这两个yml文件,修改启动项-Dspring.profiles.active=80812.1.2:可以在Nacos控制台看到集群变化:查看详情:
