当前位置: 首页 > news >正文

【PHP】Hyperf:接入 Nacos

【PHP】Hyperf:接入 Nacos

  • 一、安装 Java
  • 二、安装 Nacos
    • 1. 安装
    • 2. 开机自启
    • 2. 登录控制台
  • 三、hyperf 接入 Nacos
    • 1. 配置 Nacos
    • 2. 配置 hyperf

一、安装 Java

  • 在 Nacos 下载界面可以看到对 java 版本的要求,因此需要下载 Java17
    在这里插入图片描述

  • 手动安装,因为资源是 Github 上的,所以如果下载的慢,开梯子或者直接去 Github 上下完再复制到目录里去

    # 创建安装目录
    mkdir -p /usr/local/java
    cd /usr/local/java# 下载 OpenJDK 17(请确认最新版本链接)
    wget https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.9%2B9/OpenJDK17U-jdk_x64_linux_hotspot_17.0.9_9.tar.gz# 解压
    tar -zxvf OpenJDK17U-jdk_x64_linux_hotspot_17.0.9_9.tar.gz
    mv jdk-17.0.9+9 jdk17# 配置环境变量
    echo 'export JAVA_HOME=/usr/local/java/jdk17' >> /etc/profile
    echo 'export PATH=$JAVA_HOME/bin:$PATH' >> /etc/profile
    echo 'export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar' >> /etc/profile# 使环境变量生效
    source /etc/profile# 验证安装
    java -version
    
  • 安装成功
    在这里插入图片描述

二、安装 Nacos

1. 安装

  • 可以在这里下载 Github: Releases · alibaba/nacos

  • 或者

    # 创建安装目录
    mkdir -p /usr/local/nacos
    cd /usr/local/nacos# 下载 Nacos 3.0.2(请确认最新下载链接,此处为示例)
    wget https://github.com/alibaba/nacos/nacos-server/releases/download/3.0.2/nacos-server-3.0.2.tar.gz# 解压
    tar -zxvf nacos-server-3.0.2.tar.gz
    mv nacos-server-3.0.2/* .
    rm -rf nacos-server-3.0.2.tar.gz nacos-server-3.0.2# 建立软链接,方便升级
    ln -s nacos nacos
    

2. 开机自启

  • 创建服务

    sudo vim /etc/systemd/system/nacos.service
    
  • 文件内容

    [Unit]
    Description=Nacos
    After=network.target[Service]
    Type=forking
    ExecStart=/usr/local/nacos/bin/startup.sh -m standalone
    ExecStop=/usr/local/nacos/bin/shutdown.sh
    User=root
    Group=root
    Restart=always[Install]
    WantedBy=multi-user.target
    
  • 启动服务

    sudo systemctl daemon-reexec
    sudo systemctl enable nacos
    sudo systemctl start nacos
    

2. 登录控制台

  • 查看端口

    cat /usr/local/nacos/conf/application.properties | grep port=
    

    在这里插入图片描述

  • 可以看到控制台端口是 8080,核心服务端口 8848,向外暴露两个端口

    firewall-cmd --add-port=8848/tcp --permanent
    firewall-cmd --add-port=8080/tcp --permanent
    firewall-cmd --reload
    

    核心服务地址:http://ip:8848(用于服务注册 / 配置管理的 API 调用)
    控制台访问地址:http://ip:8080/nacos/(Web 界面)

三、hyperf 接入 Nacos

1. 配置 Nacos

  • 在控制台点击新建配置
    在这里插入图片描述
  • 随便配置一下,记住 命名空间、dataId、group,配置 hyperf 的时候要用
    在这里插入图片描述

2. 配置 hyperf

  • 首先要有两个扩展

    composer require hyperf/config-center
    composer require hyperf/config-nacos
    
  • 配置 config/autoload/nacos.php

    use function Hyperf\Support\env;return [// nacos server url like https://nacos.hyperf.io, Priority is higher than host:port// 'url' => '',// The nacos host info'host' => env('NACOS_HOST', '127.0.0.1'),'port' => env('NACOS_PORT', 8848),// The nacos account info// 账号密码 (Nacos 3.x 必须有)'username' => env('NACOS_USERNAME', 'nacos'),'password' => env('NACOS_PASSWORD', 'nacos'),// http 客户端配置'guzzle' => ['config' => null]
    ];
    
  • 配置 config/autoload/config_center.php

    use Hyperf\ConfigCenter\Mode;use function Hyperf\Support\env;return ['enable' => (bool) env('CONFIG_CENTER_ENABLE', true),'driver' => env('CONFIG_CENTER_DRIVER', 'nacos'),'mode' => env('CONFIG_CENTER_MODE', Mode::PROCESS),'drivers' => ['nacos' => ['driver' => Hyperf\ConfigNacos\NacosDriver::class,'merge_mode' => Hyperf\ConfigNacos\Constants::CONFIG_MERGE_OVERWRITE,'interval' => 3,'default_key' => 'nacos_config','listener_config' => [// dataId, group, tenant, type, content'nacos_config' => ['tenant' => env('NACOS_NAMESPACE', ''), // corresponding with service.namespaceId'data_id' => env('NACOS_DATA_ID', 'hyperf-config'),'group' => env('NACOS_GROUP', 'DEFAULT_GROUP'),],// 'nacos_config.data' => [//     'data_id' => 'hyperf-service-config-yml',//     'group' => 'DEFAULT_GROUP',//     'type' => 'yml',// ],],],],
    ];
    
  • 启动 hyperf,没有报错就是启动成功

    php /home/root/hyperf/hyperf-skeleton/bin/hyperf.php start
    

    在这里插入图片描述

  • 验证一下
    在这里插入图片描述

http://www.lryc.cn/news/623690.html

相关文章:

  • Python | 解决 matplotlib 中文乱码
  • 基于MATLAB多智能体强化学习的出租车资源配置优化系统设计与实现
  • [论文阅读] 人工智能 + 职业教育 | 从技能操作者到技术反思者:生成式AI驱动职业教育学习范式转型
  • 豆包 Java的23种设计模式
  • 微调 AnomalyCLIP——基于对象无关提示学习与全局 - 局部优化的零样本异常检测框架性能验证
  • 迅速掌握Git通用指令
  • 7 索引的监控
  • 编程算法实例-整数分解质因数
  • Mac(五)自定义鼠标滚轮方向 LinearMouse
  • 又一家茑屋书店即将歇业,精品书店的未来在哪里?
  • Bee1.17.25更新Bug,完善功能.不支持NOSQL,分库分表Sharding(2.X版有)
  • Spark03-RDD02-常用的Action算子
  • YOLO12 改进、魔改|频域自注意力求解器FSAS,通过频域高效计算自注意力,在降低时间与空间复杂度的同时保留关键特征信息,提升遮挡、小目标检测
  • PostgreSQL——用户管理
  • 【IDEA】设置Debug调试时调试器不进入特定类(Spring框架、Mybatis框架)
  • Day3--滑动窗口与双指针--2461. 长度为 K 子数组中的最大和,1423. 可获得的最大点数,1052. 爱生气的书店老板
  • 【算法】模拟专题
  • JavaScript性能优化实战(三):DOM操作性能优化
  • openEuler等Linux系统中如何复制移动硬盘的数据
  • 【Luogu】每日一题——Day20. P4366 [Code+#4] 最短路 (图论)
  • 计算机网络 Session 劫持 原理和防御措施
  • 【Luogu】每日一题——Day21. P3556 [POI 2013] MOR-Tales of seafaring (图论)
  • 裸机框架:按键模组
  • 深度学习之优化器
  • 概率论基础教程第4章 随机变量(一)
  • 《Cocos游戏开发入门一本通》第四章
  • 李宏毅NLP-11-语音合成
  • 神经网络中的梯度概念
  • 显式编程(Explicit Programming)
  • c++--文件头注释/doxygen