你好,欢迎阅读,本文是系列文章中的第2篇。
Part1 - Nacos 是什么?
Part2 - Nacos 环境搭建
Part3 - Nacos 服务发现实践
Part4 - Nacos 分布式配置实践
本文的目的是把 Nacos 跑起来,并体验一下 Nacos 的 OpenAPI。
有2种方式:
(1)手动编译、启动
(2)使用 Docker 容器
需要2个步骤:
有2种方式,可以下载源码后自己编译,也可以直接下载官方编译后的。
从 GitHub 上下载 Nacos 项目源码,项目地址:
git clone https://github.com/alibaba/nacos.git
下载好项目源码后,进入目录,进行编译:
mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U
第一次编译的时间会很长,需要下载大量的依赖包。
完成后,成果位置:
distribution/target/nacos-server-$version/nacos
小提示:如果在 GitHub 下载速度慢的话,建议到国内的码云下载。
码云同步了 GitHub 中知名项目,所以从这下载会很快。操作如下图。
官方也提供了编译好的压缩包,可以在 GitHub 中直接下载。
在 Nacos 项目首页的右侧,有一个 Releases 部分,点进去。
这就是编译后的压缩包,下载即可。
可惜的是码云中只同步了源码,并没有同步发布页面中的内容,直接在 GitHub 中下载会很慢。
在 nacos 编译后的目录下执行:
sh bin/startup.sh -m standalone
-m standalone
表示使用单机方式启动,这是最简单的方式,适合我们练习使用。
启动后的效果如下:
Nacos 会在后台启动,最后提示了日志的输出位置。
如果是 Windows 系统,执行 startup.cmd 即可。
Nacos 官方提供了 Docker 镜像,可以直接使用:
# 下载 nacos docker 项目
git clone https://github.com/nacos-group/nacos-docker.git
# 单机模式启动
cd nacos-docker
docker-compose -f example/standalone-derby.yaml up
会启动3个容器:
nacos 容器的本机挂载端口为 8848,访问其控制台
http://localhost:8848/nacos
默认的用户名与密码都为 nacos。
下面体验4个主要 API :
发送请求:
curl -X POST 'http://127.0.0.1:8848/nacos/v1/ns/instance?serviceName=service-a&ip=192.168.1.1&port=8080'
查看控制台中的服务列表:
已经注册成功了,但 service-a 这个服务实例是不存在的,怎么能注册成功呢?
Nacos 注册中心不管是否真的存在,只要能注册上来,并且一直有心跳就认为此实例是存活的,没心跳就删掉。
发送请求:
curl -X PUT 'http://127.0.0.1:8848/nacos/v1/ns/instance/beat?serviceName=service-a&beat=%7B%22ip%22:%22192.168.31.1%22,%22port%22:8080%7D'
此接口有2个参数,serviceName 和 beat,其中 beat 的值有点乱,这是因为其值是 JSON 字符串,需要进行 URL 编码,例如:
搜一个在线URL编码张展即可。
发送请求:
curl -X GET 'http://127.0.0.1:8848/nacos/v1/ns/instance/list?serviceName=service-a'
返回:
{
"metadata":{
},
"dom":"service-a",
"cacheMillis":3000,
"useSpecifiedURL":false,
"hosts":[
{
"valid":true,
"marked":false,
"metadata":null,
"instanceId":"192.168.31.1#8080#DEFAULT#DEFAULT_GROUP@@service-a",
"port":8080,
"healthy":true,
"ip":"192.168.31.1",
"clusterName":"DEFAULT",
"weight":0,
"ephemeral":true,
"serviceName":"service-a",
"enabled":true
}
],
"name":"DEFAULT_GROUP@@service-a",
"checksum":"2be56e35d79c2cf9982e0b5e19b2bd29",
"lastRefTime":1604222416258,
"env":"",
"clusters":""
}
发送请求:
curl -X DELETE 'http://127.0.0.1:8848/nacos/v1/ns/instance?serviceName=service-a&ip=192.168.31.1&port=8080'
指定服务名、实例IP与端口。
查看控制台的服务列表:
已经空了。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。