前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Nacos入门指南02 - 环境搭建

Nacos入门指南02 - 环境搭建

原创
作者头像
dys
修改2020-11-02 10:45:32
1.5K0
修改2020-11-02 10:45:32
举报
文章被收录于专栏:性能与架构

你好,欢迎阅读,本文是系列文章中的第2篇。

Part1 - Nacos 是什么?

Part2 - Nacos 环境搭建

Part3 - Nacos 服务发现实践

Part4 - Nacos 分布式配置实践

本文的目的是把 Nacos 跑起来,并体验一下 Nacos 的 OpenAPI。

1. 环境搭建

有2种方式:

(1)手动编译、启动

(2)使用 Docker 容器

1.1 手动编译启动

需要2个步骤:

  • 编译 Nacos
  • 启动

步骤1 - 编译 Nacos

有2种方式,可以下载源码后自己编译,也可以直接下载官方编译后的。

方式1 - 源码编译

从 GitHub 上下载 Nacos 项目源码,项目地址:

代码语言:txt
复制
git clone https://github.com/alibaba/nacos.git

下载好项目源码后,进入目录,进行编译:

代码语言:txt
复制
mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U

第一次编译的时间会很长,需要下载大量的依赖包。

完成后,成果位置:

代码语言:txt
复制
distribution/target/nacos-server-$version/nacos

小提示:如果在 GitHub 下载速度慢的话,建议到国内的码云下载。

码云同步了 GitHub 中知名项目,所以从这下载会很快。操作如下图。

方式2 - 下载官方编译的包

官方也提供了编译好的压缩包,可以在 GitHub 中直接下载。

在 Nacos 项目首页的右侧,有一个 Releases 部分,点进去。

这就是编译后的压缩包,下载即可。

可惜的是码云中只同步了源码,并没有同步发布页面中的内容,直接在 GitHub 中下载会很慢。

步骤2 - 启动

在 nacos 编译后的目录下执行:

代码语言:txt
复制
sh bin/startup.sh -m standalone

-m standalone 表示使用单机方式启动,这是最简单的方式,适合我们练习使用。

启动后的效果如下:

Nacos 会在后台启动,最后提示了日志的输出位置。

如果是 Windows 系统,执行 startup.cmd 即可。

1.2 Docker 容器

Nacos 官方提供了 Docker 镜像,可以直接使用:

代码语言:txt
复制
# 下载 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 :

  • 注册实例
  • 心跳
  • 查询服务实例列表
  • 注销实例

2.1 注册实例

发送请求:

代码语言:txt
复制
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 实例心跳

发送请求:

代码语言:txt
复制
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 查询服务实例列表

发送请求:

代码语言:txt
复制
curl -X GET 'http://127.0.0.1:8848/nacos/v1/ns/instance/list?serviceName=service-a'

返回:

代码语言:txt
复制
{
    "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 注销实例

发送请求:

代码语言:txt
复制
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 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 环境搭建
    • 1.1 手动编译启动
      • 步骤1 - 编译 Nacos
      • 步骤2 - 启动
    • 1.2 Docker 容器
    • 2. 体验 Nacos API
      • 2.1 注册实例
        • 2.2 实例心跳
          • 2.3 查询服务实例列表
            • 2.4 注销实例
            相关产品与服务
            对象存储
            对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档