当前位置: 首页 > 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.dtcms.com/a/336456.html

相关文章:

  • 今日Java高频难点面试题推荐(2025年8月17日)
  • Python数据类型转换详解:从基础到实践
  • 【Kubernetes系列】Kubernetes中的resources
  • Matlab数字信号处理——ECG心电信号处理心率计算
  • FreeRTOS 中的守护任务(Daemon Task)
  • 第七十七章:多模态推理与生成——开启AI“从无到有”的时代!
  • 【C++知识杂记2】free和delete区别
  • c++--文件头注释/doxygen
  • Linux应用软件编程---多任务(线程)(线程创建、消亡、回收、属性、与进程的区别、线程间通信、函数指针)
  • 工作八年记
  • 官方正版在线安装office 365安装工具
  • 数组的三种主要声明方式
  • 大模型对齐算法(二): TDPO(Token-level Direct Preference Optimization)
  • Android中使用Compose实现各种样式Dialog
  • tcp会无限次重传吗
  • Eclipse Tomcat Configuration
  • Portkey-AI gateway 的一次“假压缩头”翻车的完整排障记:由 httpx 解压异常引发的根因分析
  • 学习日志36 python
  • 力扣经典算法篇-52-零钱兑换(动态规划)
  • Java语法进阶之常用类
  • 【C2000】德州仪器C2000产品整体介绍
  • http工作流程
  • LangChain 多任务应用开发
  • matlab tlc的文件、字符串操作
  • Python @staticmethod 装饰器与 staticmethod() 函数
  • Tomcat Session Replication Cluster:实现高可用性和可扩展性的关键
  • 机试备考笔记 14/31
  • Ugit使用记录
  • Next.js跟React关系(Next.js是基于React库的全栈框架)(文件系统路由、服务端渲染SSR、静态生成SSG、增量静态再生ISR、API路由)
  • 提升 LLM 推理效率的秘密武器:LM Cache 架构与实践