【webman插件】Nacos插件答疑帖

chaz6chez

这里收集来自webman-nacos插件的疑问及需求;

插件地址:https://www.workerman.net/plugin/50

帖子入口可从插件页面及文档中找到

1966 6 5
6个回答

brookeov

请问一下 nacos 服务注册后 enabled 为true 状态为健康 为什么注册后 不是上线状态

截图

  • chaz6chez 2023-05-16

    是否正常的进行心跳了?正常情况注册后就是在线状态,通过实力列表是可以获取到实例信息的

  • brookeov 2023-05-16

    是正常心跳 状态也是健康的 但是注册后是下线状态 需要手动去点

  • chaz6chez 2023-05-17

    请问是怎么使用注册的呢?使用默认配置的方案,还是自行基于接口调用实现的?

  • brookeov 2023-05-18

    配置文件注册的 不是调用的接口 心跳正常 但是就是不能自动上线

  • chaz6chez 2023-05-19

    你提个issue,我抽空排查一下吧

    1. nacos版本
    2. php版本
    3. composer包版本
    4. 样例或描述
OhMangoCat

不知道怎么实战使用,又想试试,害,都怪自己太菜了

  • 暂无评论
OhMangoCat

大佬能不能出个业务开发的实战呀,给你投币三连!

  • chaz6chez 2023-05-19

    https://www.workerman.net/a/1339
    之前写的分享,可以先看看,有问题的直接提问就好~

  • OhMangoCat 2023-05-19

    大佬,不太理解服务之间如何调用,是直接用guzzlp吗

  • chaz6chez 2023-05-19

    取决于你的服务是什么通讯方式,假设你的服务就是普通的REST-API的话,那就用guzzle呗;当然你的服务在注册到nacos的时候可以在元数据里增加一些使用者关注的内容,比如通讯协议、基础服务接口等等;当调用者拿到元数据就可以知道是用http还是rpc还是grpc还是其他什么方式来调用服务了

  • OhMangoCat 2023-05-19

    通过instance->list获取到实例后,就还得手动拼接接口地址咯是吧大佬

  • chaz6chez 2023-05-19

    通过实例列表获取实例,然后客户端根据一些权重算法等机制做负载就好了,选择一个,拼接器地址,根据约定的请求方式建立连接并发起请求即可

lziyanl

大佬,配置是远程获取吗?没有同步到本地项目?
另外$client->config->get()拿到的配置还要另外处理? yaml配置没有生成对应的数组?

  • chaz6chez 2023-07-19

    可以详细看一下项目文档,配置文件时自动获取在本地的,配置中有写

  • lziyanl 2023-07-19

    我在Nacos中心配置,本地config.yaml里面是空的

  • lziyanl 2023-07-19

    我姿式肯定不对

  • lziyanl 2023-07-19

    本地生成的config.yaml是空的,但是可以拿到nacos中心的配置,但拿到的是字符串配置,难道需要再自已转数组?

  • chaz6chez 2023-07-20

    本地需要一个和nacos同名的配置文件,config Listener做的事是去比较配置文件的变化,如果两个文件不同,则会将nacos的文件内容获取到本地覆盖

  • chaz6chez 2023-07-20

    你可以看一下src/Process下的configListener相关的文件逻辑,注释都很清晰的

  • lziyanl 2023-07-20

    好的,多谢

lziyanl

截图
插件不能禁用吗? enable设置为false,仍会调用

  • chaz6chez 2023-08-07

    暂时没有使用enable参数,enable是留给webman官方的配置参数,如有需要,可以提一个pr

  • lziyanl 2023-08-07

    哦,设置enable=false, 取不到默认的配置,报上述错误

  • chaz6chez 2023-08-07

    目前来说都是以显式调用来进行的处理和判断,一般情况建议使用serviceClass或者外包一层业务class来处理,而并非直接在业务代码段使用NacosClientClass,如果需要可以在NacosClient外包一层class,比如一个serviceClass,然后使用enable判断是否真正执行NacosClient的业务,当然,也可以提一个pr,在NacosClient初始化的部分进行处理,或者你提一个issue,我会将issue关联project,然后会排期进行处理;目前手上的东西比较多,比较忙,可能不能及时处理。

  • lziyanl 2023-08-07

    好的

superkingm

[2023-08-10 15:14:16] default.ERROR: Nacos instance heartbeat failed: [0] caused: errCode: 400, errMsg: Current service DEFAULT_GROUP@@webman is persistent service, can't register ephemeral instance. ;. {"name":"main","trace":[]} []
跑原始代码,报错是这样的,nacos2.2.3 php7.4.3

年代过于久远,无法发表回答
🔝