Nacos服务发现
在分布式系统中我们会将多个微服务上线在不同的服务器中,我们应该如何去发现不同网络位置的服务呢(IP+端口),Nacos是spring cloud 阿里巴巴的中提供服务注册和发现的中间件,官网如下:
https://nacos.io/zh-cn/docs/quick-start.html
他作为多个微服务的管理中央系统,每一个微服务都需要在这个管理中心去注册(提供网络中的位置和对应的服务名),微服务就可以通过服务名在管理中央获取到对应的网络位置进而利用RPC的多种实现(如openfeign和duboo)远程服务调用,也即Java对象在网络环境的序列化操作。
- 下载
Nacos是基于Java开发因此运行需要jdk1.8+
你可以通过源码和发行包两种方式来获取 Nacos。
(1)从 Github 上下载源码方式
git clone https://github.com/alibaba/nacos.git
cd nacos/
mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U
ls -al distribution/target/
// change the $version to your actual path
cd distribution/target/nacos-server-$version/nacos/bin
(2)下载编译后压缩包方式
官网下载比较慢,我把最新版的nacos-server提供如下:
链接:https://pan.baidu.com/s/19hCqOEDdhRE6rIWtv0YlBA
提取码:66kx
需要在centos7中安装unzip的插件
yum install -y unzip zip
然后
unzip nacos-server-$version.zip 或者 tar -xvf nacos-server-$version.tar.gz
cd nacos/bin
可以用-d 指定解压位置
- 启动
Linux/Unix/Mac启动命令(standalone代表着单机模式运行,非集群模式):
sh startup.sh -m standalone
如果您使用的是ubuntu系统,或者运行脚本报错提示[[符号找不到,可尝试如下运行:
bash startup.sh -m standalone
Windows启动命令:
cmd startup.cmd
或者双击startup.cmd运行文件。
- 登录管理页面
http://IP:8848/nacos/index.html
默认账号密码为nacos
nacos页面 - 关闭服务器
Linux/Unix/Mac
sh shutdown.sh
Windows
cmd shutdown.cmd
或者双击shutdown.cmd运行文件。
- 在Java中配置
在commo的pom.xml中引入依赖(公共依赖)
在每一个微服务application.yml配置Nacos Server地址
Nacos Server
在每一个微服务的启动类添加注解@EnableDiscoveryClient中开启服务发现
开启服务发现
Nacos配置中心
一个微服务可能运行在多个服务器上,而服务(程序)运行都是需要依赖配置文件,若对一个微服务进行的配置修改就需要对多台服务器进行登录修改,若是硬编码的方式还需要进行打包,那么有一个配置中心将配置文件抽离进行管理的话便可以实现配置信息和实际业务代码的解耦并且在分布式惯用服务集群上更加有优势。
在commo的pom.xml中引入依赖(公共依赖)
在每一个微服务新建一个bootstrap.properties(加载顺序优先于application.properties)配置Nacos Config元数据
image.png
在controller添加注解@RefreshScope动态刷新配置,实时更新,@value(“${配置项的名字}”)获取配置的值;定义要配置的参数,并写测试方法,
导入
详细可见:
https://nacos.io/zh-cn/docs/quick-start.html
网友评论