来由
分布式下的远程调用之前需要使用restTemplate来进行,如下:
String result = restTemplate.getForObject("http://localhost:8090/stock/deInventory", String.class);
问题:如果用户地址发生变化,怎么办?
-
服务发现机制就是通过一个中间件去记录服务提供者的ip地址,服务名以及心跳等数据(比如用mysql去存储这些信息),然后服务消费者会去这个中间平台去查询相关信息,然后再去访问对应的地址,这就是服务注册和服务发现。
-
当用户地址发生了变化也没有影响,因为服务提供方修改了用户地址,在中间件中会被更新,当服务消费方去访问中间件时就能及时获取最新的用户地址,就不会出现用户地址发生变化导致服务找不到
由此诞生了Nacos! ! !
什么是 Nacos
注册中心+配置中心+服务管理平台
Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。
Nacos 的关键特性包括:
- 服务发现和服务健康监测
- 动态配置服务
- 动态 DNS 服务
- 服务及其元数据管理
主流的注册中心之间的区别
一致性协议(CAP):C 一致性、A 可用性、P 分区容错性
由于Eureka是Netflix中的框架,现在已经不再更新了,所以对容器化部署没有提供支持。Nacos是目前提供最全面的。
Nacos Server部署
步骤一:确定版本
首先去看下我们的SpringCloud Alibaba版本对应的Nacos版本
https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E
我这边选用的是最新的版本,所以Nacos需要下载2.0.3的版本
步骤二:开始下载
下载地址:https://github.com/alibaba/nacos/releases
这里可以快速找到你需要的版本,然后往下拉就可以看到需要下载的包了
nacos-server-2.0.3.tar.gz为linux版本
nacos-server-2.0.3.tar.gznacos-server-2.0.3.zip为windows版本
分系统部署
Windows系统
解压后找到bin目录下的startup.cmd文件后编辑,默认是cluster集群模式,我改为了standalone单机模式
最后点击startup.cmd启动就可以了。
看到这一行就是启动成功了!!!
Linux系统
步骤一:把下载好的包上传到linux服务器,并进行解压
tar -zxvf nacos-server-2.0.3.tar.gz
步骤二:进入解压文件的bin目录下nacos/bin
步骤三:启动Nacos
sh startup.sh -m standalone
启动
输入http://localhost:8848/nacos打开Nacos,默认账号密码都是nacos