使用shell注册服务到nacos

想将前端项目注册到nacos中,用来做标签路由,但是又不想再机器上再引入其它组件的情况下可以使用shell调用nacos的接口直接注册,并启动一个死循环保持住心跳即可。

nacos官网 Open-Api

#!/bin/sh
SERVICE_ADDR=127.0.0.1:8848
IP=${POD_IP}
PORT=80
SERVICE_NAME=portal
NAMESPACE_ID=1xxbce4-xxx-xxx-a374-xxxxxxxx
BRANCH=feat1.1

METADATA=$(cat <<EOF
{"preserved.register.source":"shell","branch":"$BRANCH"}
EOF
)
echo $(urlencode $METADATA)
urlencode(){
	echo $1 | tr -d '\n' | od -An -tx1 | tr ' ' '%' | tr -d [:cntrl:]
}
#registe params
registerData="serviceName="$SERVICE_NAME
registerData=$registerData"&healthy=false"
registerData=$registerData"&ip="$IP
registerData=$registerData"&port="$PORT
registerData=$registerData"&weight=1.0"
registerData=$registerData"&namespaceId="$NAMESPACE_ID
registerData=$registerData"&metadata="$(urlencode $METADATA)
#beat params
beatParam="serviceName="$SERVICE_NAME
beatParam=$beatParam"&ip="$IP
beatParam=$beatParam"&port="$PORT
beatParam=$beatParam"&namespaceId="$NAMESPACE_ID
beatData=$(cat <<EOF
{"cluster":"DEFAULT","ip":"$IP","port":$PORT,"metadata":$METADATA,"scheduled":true,"serviceName":"$SERVICE_NAME","weight":1}
EOF
)
beat=$(urlencode $beatData)
echo $beat
beatParam=$beatParam"&beat=$beat"

#register
curl -X POST "http://$SERVICE_ADDR/nacos/v1/ns/instance?$registerData"
#keep beat
while true
do
    curl -X PUT "http://$SERVICE_ADDR/nacos/v1/ns/instance/beat?$beatParam"
    echo ''
    sleep 3
done

启动服务返回结果如下

ok{"clientBeatInterval":5000,"code":10200,"lightBeatEnabled":true}
{"clientBeatInterval":5000,"code":10200,"lightBeatEnabled":true}
{"clientBeatInterval":5000,"code":10200,"lightBeatEnabled":true}
{"clientBeatInterval":5000,"code":10200,"lightBeatEnabled":true}
{"clientBeatInterval":5000,"code":10200,"lightBeatEnabled":true}
{"clientBeatInterval":5000,"code":10200,"lightBeatEnabled":true}
{"clientBeatInterval":5000,"code":10200,"lightBeatEnabled":true}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Linux上安装Seata 1.4.2并将其注册Nacos,您可以按照以下步骤操作: 1. 首先,确保您的Linux系统已经安装了Java开发工具包(JDK)。您可以在终端中运行`java -version`命令来检查是否已经安装。如果没有安装,请根据您的系统版本安装适当的JDK。 2. 下载Seata 1.4.2的发布版本。您可以在Seata的GitHub仓库(https://github.com/seata/seata/releases)中找到可用的版本。使用wget命令或通过浏览器下载到您的Linux系统上。 3. 解压下载的Seata发布包。在终端中,使用以下命令将该文件解压到您选择的目录: ```shell tar -zxvf seata-server-1.4.2.tar.gz ``` 4. 进入解压后的Seata目录: ```shell cd seata-server-1.4.2 ``` 5. 在Seata目录下,编辑`conf/registry.conf`文件,配置Nacos注册中心的地址和端口。找到以下配置项: ```properties registry { type = "nacos" nacos { serverAddr = "localhost:8848" namespace = "" } } ``` 将`serverAddr`配置为您Nacos的地址和端口。如果Nacos使用了命名空间,请在`namespace`中填入相应的值。 6. 配置Seata事务日志存储方式。在`conf/registry.conf`文件中,找到以下配置项: ```properties config { ... type = "file" ... } ``` 您可以将`type`配置为其他支持的存储方式,例如MySQL等。根据您的需求进行相应的配置。 7. 配置其他必要的参数。根据您的需求,您可以在`conf/nacos-config.txt`文件中设置Seata的其他参数,如事务日志表名、数据源等。 8. 启动Seata服务器。在终端中,使用以下命令启动Seata服务器: ```shell sh bin/seata-server.sh -p 8091 -m file ``` `-p`指定Seata服务器的端口号,`-m`指定事务日志存储方式。 9. 确认Seata是否成功注册Nacos。打开浏览器,访问Nacos的管理界面(默认地址为http://localhost:8848/nacos)。在左侧导航栏中,选择“服务管理”,您应该能够看到Seata已经成功注册Nacos。 现在,您已经成功地在Linux上安装了Seata 1.4.2并将其注册Nacos。您可以根据自己的需求进行进一步的配置和使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值