yii2集成nacos配置中心

yii2集成nacos配置中心

nacos配置:

命名空间:

配置中心:

  • 下载php-nacos客户端依赖:

composer require alibaba/nacos

代码调整:

获取nacos 配置接口:【console 定时任务 一分钟执行一次,或者 监听 listener 方法(每29.6S获取一次配置信息)】

public function actionNacos()
    {
//        $LARAVEL_NACOS_HOST = 'http://localhost:8848';//单节点
        $LARAVEL_NACOS_HOST = 'http://localhost';//集群
        $LARAVEL_ENV = 'dev';
        $LARAVEL_NACOS_DATAID = 'CONTEST_SERVICE';
        $LARAVEL_NACOS_GROUPID = 'DEFAULT_GROUP';
        $LARAVEL_NACOS_NAMESPACEID = '63246c14-5a96-466e-8cf9-335d73d25ebc';
        //拉取nacos的配置文件
        try{
            \alibaba\nacos\NacosConfig::setSnapshotPath(dirname(dirname(__DIR__)) . "/common/config/nacos/config");
            $init = \alibaba\nacos\Nacos::init(
                $LARAVEL_NACOS_HOST,
                $LARAVEL_ENV,
                $LARAVEL_NACOS_DATAID,
                $LARAVEL_NACOS_GROUPID,
                $LARAVEL_NACOS_NAMESPACEID
            )->runOnce();
        }catch (\Exception $e){
            echo 'error';
//            var_dump($e->getMessage());
        }

    }

index.php 配置文件修改:【params-local 配置获取 同下】

<?php

require __DIR__ . '/../../env.php';
require __DIR__ . '/../../vendor/autoload.php';
require __DIR__ . '/../../vendor/yiisoft/yii2/Yii.php';
require __DIR__ . '/../../common/config/bootstrap.php';
require __DIR__ . '/../config/bootstrap.php';

$LARAVEL_ENV = 'dev';
$LARAVEL_NACOS_DATAID = 'CONTEST_SERVICE';
$LARAVEL_NACOS_GROUPID = 'DEFAULT_GROUP';
$LARAVEL_NACOS_NAMESPACEID = '63246c14-5a96-466e-8cf9-335d73d25ebc';
\alibaba\nacos\NacosConfig::setSnapshotPath(dirname(dirname(__DIR__)).
    "/common/config/nacos/config");
$filename = \alibaba\nacos\failover\LocalConfigInfoProcessor::getSnapshotFile(
    $LARAVEL_ENV,
    $LARAVEL_NACOS_DATAID,
    $LARAVEL_NACOS_GROUPID,
    $LARAVEL_NACOS_NAMESPACEID
);
$commonMainLocal = '';
if (file_exists($filename)) {
//    \Dotenv\Dotenv::createImmutable(dirname($filename),$LARAVEL_NACOS_DATAID)->load();//动态加载 .env文件 yii不需要
    $commonMainLocal = json_decode(file_get_contents($filename),true);
}

if (!empty($commonMainLocal)){
    $config = yii\helpers\ArrayHelper::merge(
        require __DIR__ . '/../../common/config/main.php',
        $commonMainLocal,
        require __DIR__ . '/../config/main.php',
        require __DIR__ . '/../config/main-local.php'
    );
}else{
    $config = yii\helpers\ArrayHelper::merge(
        require __DIR__ . '/../../common/config/main.php',
        require __DIR__ . '/../../common/config/main-local.php',
        require __DIR__ . '/../config/main.php',
        require __DIR__ . '/../config/main-local.php'
    );
}


(new yii\web\Application($config))->run();

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小猪@笨笨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值