你好,欢迎阅读,本文是系列文章中的第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与端口。
查看控制台的服务列表:
已经空了。
本文分享自微信公众号 - 性能与架构(yogoup),作者:杜亦舒
原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。
原始发表时间:2020-11-02
本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。
我来说两句