当前位置: 首页 > 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.xdnf.cn/news/1316035.html

相关文章:

  • Centos中内存CPU硬盘的查询
  • vscode无法检测到typescript环境解决办法
  • OpenCV 图像处理核心技术:边界填充、算术运算与滤波处理实战
  • 大模型应用发展与Agent前沿技术趋势(中)
  • JVM常用工具:jstat、jmap、jstack
  • 【Linux】IO多路复用
  • 17-线程
  • Python自学10-常用数据结构之字符串
  • Python异常、模块与包(五分钟小白从入门)
  • 文件快速复制工具,传输速度提升10倍
  • riscv中断处理软硬件流程总结
  • 【C语言强化训练16天】--从基础到进阶的蜕变之旅:Day6
  • Vue3 中的 ref、模板引用和 defineExpose 详解
  • 安卓14系统应用收不到开机广播
  • 【Java后端】Spring Boot 集成 MyBatis-Plus 全攻略
  • 大模型算法岗面试准备经验分享
  • (机器学习)监督学习 vs 非监督学习
  • 智能制造——解读37页 案例分享灯塔工厂解决方案【附全文阅读】
  • 电子电气架构 --- 自动驾驶汽车的下一步发展是什么?
  • LeetCode 分类刷题:2962. 统计最大元素出现至少 K 次的子数组
  • 零墨云A4mini打印机设置电脑通过局域网络进行打印
  • 详解flink java基础(一)
  • Flink作业执行的第一步:DataFlow graph的构建
  • nodejs 错误处理
  • Gradle快速入门学习
  • 数据结构初阶(19)外排序·文件归并排序的实现
  • 机器学习案例——对好评和差评进行预测
  • error #include<cuda_runtime_api.h>解决方案
  • Java基础 8.17
  • 2023年全国研究生数学建模竞赛华为杯F题强对流降水临近预报求解全过程文档及程序