组件Nacos,MAC怎样启动Nacos,目录Nacos组件简介 怎样改变Linux的java版本 ...

打印 上一主题 下一主题

主题 871|帖子 871|积分 2613



目录

Nacos组件简介 
怎样改变Linux的java版本(Nacos要看一下对应的java版本是否精确)
Eureka和Nacos区别
使用Nacos怎样完成服务发现和服务注册

Nacos的健康检查
Nacos环境隔离
Nacos的设置中央
Error creating bean with name 'distroFilterRegistration' defined in class path resource [com/alibaba/nacos/naming/web/NamingConfig.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate 
Nacos和Eureka区别


Nacos组件简介 

   2018年Eureka2.0宣布闭源(但是1.x仍旧为活跃项目),同年的7月份,阿里Nacos宣布开源,并且快速称为国内最受关注的开源产品
  

  Nacos选择进行三个内部产品合并同一开源(Configserver非持久注册中央,VIPServer持久化注册中央,Diamond设置中央)
  

   bin里面放起停脚本,conf设置文件,target放Nacos运行须要的jar包。
  cmd是windows,sh是Linux系统

  点击startup.cmd
  Nacos的启动模式默认是集群模式,穷屌丝没有集群,以是修改文件修改成单机模式。
  

  
   起首我们须要进入目录
  cd  Nacos整个文件夹拖动过来
  然后cd bin
  然后sh startup.sh,下面两句就成啦
  

  输入这个,如果成了,你会看到以下图片http://127.0.0.1:8848/nacos
  

  常见问题
   1.集群模式启动
  2.端口启动冲突
  ps aux | grep 8848      查看端标语的历程,然后进行不同历程的删除
  把压缩包放到这个linux里面,然后解压
  

  unzip nacos.zip        --解压压缩包
  
  bash startup.sh -m standalone          Ubuntun系统启动方式,在bin目录下(使用了单机模式)
  怎样改变Linux的java版本(Nacos要看一下对应的java版本是否精确)

  1. sudo update-alternatives --config java
复制代码

选择你想要的数字即可
Eureka和Nacos区别

   Eureka须要本身搭建一个服务,Nacos不须要本身搭建服务,组件已经准备好了,只须要我们启动即可(类似于tomcat)
  使用Nacos怎样完成服务发现和服务注册

   1.引入spring-cloud-alibaba的依赖
  2.引入Nacos相关的依赖
  3.修改设置
  4.远程调用
  5.测试
  启动Linux系统的
  1. bash startup.sh -m standalone
复制代码

  当我们的应用针对9092下线了之后,发现只有9090,9091收到order的申请

  

  服务虽然下线了,但是他照旧运行的状态,只不外你放到注册中央,他会不给他发送请求。
  

针对分配权重,但是现实上分配不见效的问题,如果不支持,如果spring Cloud Alibaba,此类框架仅识别流量值为0,和非0,并不按照Nacos实例中的流量值进行负载均衡 
   

  只须要在yml文件spring cloud  下面引入下列代码即可。
  1. loadbalancer:
  2.       nacos:
  3.         enabled: true
复制代码
此时我发了十个请求左右,9092只收到了1个,别的是比力多




Nacos的同集群优先访问。
   一个公司有多个机房,如果北京和上海,都有机房的话

  

  

  我们订单服务设置的是在北京,我们希望它尽可能的去访问北京
  

  我们可以发现在这块,下面的两个上海哥,没有一点请求,我们京爷一人单吃十条数据。

  

   在这里我们对9090的北京✌️进行了下线,服务就去找我们的两个上海爷了。

  这个负载均衡,我们设置集群之前的权重已经做了,以是不消管。
  1. loadbalancer:
  2.       nacos:
  3.         enabled: true
复制代码
  Nacos负载均衡:
  1.服务上线/下线
  2.服务设置权重
  3.同集群优先访问             ——要开启Nacos的负载均衡
  Nacos的健康检查

   Nacos作为注册中央,须要感知服务的健康状态,才气为服务调用方提供精良的服务
  Nacos中提供了两种健康检查机制
  1.客户端自动上报机制
  客户端通过心跳上报方式,告知服务端(nacos注册中央)健康状态,默认心跳间隔5s
  nacos会在超过15s未收到心跳后,将实例设置为不健康状态,超过30s将实例给删除
  服务器端反向探测机制
  nacos自动探知客户端健康状态,默认间隔时间为20s
  健康检查失败后,实例会被标志为不健康,不会被立刻删除
  

  Nacos服务实例类型
  1.暂时实例:如果实例宕机超过肯定时间,会从服务列表剔除,默认类型
  2.非暂时实例,如果实例宕机,不会从服务列表删除,也可以叫永久实例
  Nacos对暂时实例,采取的是客户端自动上报机制,对非暂时实例,采取服务器端反向探测机制。

  我们可以看当,Nacos当前是所有的都是暂时实例
  

  此时我们对yml,文件进行修改,想把他定位非暂时实例,再次运行,但是却发现,报错,大要信息就是,Nacos会保存暂时实例,暂时实例不可以修改成非暂时实例
  

  如果你之前已经去nacos里面,把data目录里的,protocol目录删除,那你不会爆这个错误,如果报错,那么去吧这个目录删除了。
  我们点开发现,暂时实例变成了false。

  服务节点,默认为暂时实例,暂时实例,采用客户端自动上报,非暂时实例采用的是服务器反向探测。
  Nacos环境隔离

   1.开发环境
  2.测试环境
  3.预发布环境
  4.发布环境
  通常环境下,设置,数据库都是一样的,区别就是:预发布环境不对外,发布环境对外,外面的用户可以访问到。
  订单服务                 商品服务
  开发环境的服务,只能访问开发环境的服务,在这里面,增长一个namespace
  他的后面的谁人数字来自于这块的下令空间的ID

  

  这个点dev 列表下就放这两个服务。

  Nacos的设置中央

   当前项目的设置都在代码中,会存在以下问题
  1.设置文件修改的时间,服务须要重新部署,微服务架构中,一个服务可能有成百个实例,挨个部署比力贫困,并且容易出错。
  2.多人开发时,设置文件可能须要经常修改,使用同一个设置文件容易冲突
  设置中央就是对这些设置项进行同一管理,通过设置中央,可以集中查看,修改,和删除设置,无需再逐个修改设置文件,进步效率的同时,也低落了出错的风险。
  1.添加设置
  2.引入依赖
  3.修改设置文件
  注意,服务管理的命名空间不即是设置文件的命名空间。我们须要单独设置设置文件的命名空间。

  

  这个里面的id要求和应用名保持一致。
  



   
当我们想切换的时间,就在这个bootstrap.yml里面加上namespace:上面有复制
  


   看下面,我们可以看到很多的listener,还监听了这些文件,如果这三个文件全部设置,那么优先级是哪个最先呢?,第一个起首拼接出来的是name,其次是active(dev),最后是properties
  

   
我们可以观察到,这个优先级是最高的,上一个是次高,我们发现,可能越精细,他就越优先?
  

Error creating bean with name 'distroFilterRegistration' defined in class path resource [com/alibaba/nacos/naming/web/NamingConfig.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate 

   在这里我想把订单服务和商品服务放到Linux服务器上,由于我之前设置order-service为非暂时实例,然后我给他注释掉了,此时我再次申请,它变成了暂时服务,然后此时就会报错,因为你的protocol/,它记载着这个实例,此时你须要把这个实例删除,然后再重启服务,(那么我们怎样删除实例呢,我们在nacos删除会报错,然后就算把里面的实例下线之后,也会报错),以是我们从本质出发,删除Linux系统里面的protocol/即可。

  Nacos和Eureka区别

   1.Nacos除了服务发现和注册以外,还提供了设置中央,流量管理和DNS服务等功能
  2.CAP理论
   Eureka依照AP原则,Nacos可以切换AP和CP,Nacos根据识别CP或者AP的模式,如果注册Nacos的Client的节点是暂时节点,那么Nacos对这个Client节点的效果就是AP,反之就是CP,AP和CP可以混合存在
  3.服务发现
  Eureka:基于拉模式,Eureka Client会定期从Server拉取服务信息,有缓存,默认每30s拉取一次。
  Nacos:基于推送模式,服务列表有变革,及时推送给订阅者,服务端和客户端保持心跳连接。(当移除了一个节点,就会及时推送)

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

八卦阵

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表