本文的目的是把 Nacos 跑起来,并体验一下 Nacos 的 OpenAPI。
1. 环境搭建
有2种方式:
(1)手动编译、启动
(2)使用 Docker 容器
1.1 手动编译启动
步骤1 – 编译 Nacos
有2种方式,可以下载源码后自己编译,也可以直接下载官方编译后的。
方式1 – 源码编译
从 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 中知名项目,所以从这下载会很快。操作如下图。
方式2 – 下载官方编译的包
官方也提供了编译好的压缩包,可以在 GitHub 中直接下载。
在 Nacos 项目首页的右侧,有一个 Releases 部分,点进去。
这就是编译后的压缩包,下载即可。
可惜的是码云中只同步了源码,并没有同步发布页面中的内容,直接在 GitHub 中下载会很慢。
步骤2 – 启动
在 nacos 编译后的目录下执行:
sh bin/startup.sh -m standalone
-m standalone 表示使用单机方式启动,这是最简单的方式,适合我们练习使用。
启动后的效果如下:
Nacos 会在后台启动,最后提示了日志的输出位置。
如果是 Windows 系统,执行 startup.cmd 即可。
1.2 Docker 容器
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个容器:
- prometheus,用于采集 nacos 数据,进行监控
- grafana,用于图形化显示监控数据
- nacos-standalone,nacos server
nacos 容器的本机挂载端口为 8848,访问其控制台
http://localhost:8848/nacos
默认的用户名与密码都为 nacos。
2. 体验 Nacos API
下面体验4个主要 API :
1)注册实例
2)心跳
3)查询服务实例列表
4)注销实例
2.1 注册实例
发送请求:
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 注册中心不管是否真的存在,只要能注册上来,并且一直有心跳就认为此实例是存活的,没心跳就删掉。
2.2 实例心跳
发送请求:
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编码张展即可。
2.3 查询服务实例列表
发送请求:
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":""
}
2.4 注销实例
发送请求:
curl -X DELETE 'http://127.0.0.1:8848/nacos/v1/ns/instance?serviceName=service-a&ip=192.168.31.1&port=8080'
指定服务名、实例IP与端口。
查看控制台的服务列表:
已经空了。
【上一篇】Nacos入门指南01 – Nacos是什么?
【下一篇】Nacos入门指南03 – 服务发现实践
【原文】https://cloud.tencent.com/developer/inventory/2660/article/1737028
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/146205.html