teamones/etcd-discovery 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

teamones/etcd-discovery

Composer 安装命令:

composer require teamones/etcd-discovery

包简介

Teamones框架Etcd服务注册和发现组件

README 文档

README

Php Version Workerman Version imi License

PHP版本,基于Workerman的ETCD服务注册和发现

  • 支持http服务
  • 支持 text 协议的 rpc 服务(测试)
  • 自带熔断器
  • 支持 K8S service ip 自动获取,非K8S环境自动获取本地ip

架构

image

安装

composer require teamones/etcd-discovery

配合 webman 框架使用说明

etcd 配置文件

.env 增加

# 当前服务注册到etcd名称
belong_system='project'

# etcd服务地址
etcd_host=10.168.30.25:2379 

# webman 服务端口
host_port=8080

/config/etcd.php配置

<?php
return [
    'discovery' => [
        'etcd_host' => env("etcd_host", ''),
        'server_name' => env("belong_system", ''),
        'server_uuid' => \Webpatser\Uuid\Uuid::generate()->string,
        'server_port' => env("host_port", 8080),
        'discovery_name' => ['im', 'saas', 'log', 'media'], // 要发现的服务名
        'log' => runtime_path() . '/logs/etcd.log', 
        'cache' => runtime_path() . '/logs'
    ]
];

etcd-go 服务进程 随着 start.php 启动

在start.php 增加以下代码

// Worker::$onMasterReload = function () 上面增加

// 拉起etcd服务
if (class_exists('teamones\process\EtcdGoServer')) {
    \teamones\process\EtcdGoServer::exec();

    // Workerman 关闭杀死 etcd服务
    worker::$onMasterStop = function () {
        \teamones\process\EtcdGoServer::kill();
    };
}

注册 etcd process worker 进程

在 /config/process.php中增加

// etcd 对象
    'etcd' => [
        'handler' => teamones\process\Etcd::class,
        'count' => 1
    ],

基于 http 协议 curl 服务调用

默认使用http协议

<?php

use teamones\Request;

$data = Request::connection()
            ->setHeader([
                'X-Userinfo' => request()->getXUserInfo(), // 一般需要传递用户信息
            ])
            ->setServerHost('im') // 请求服务名
            ->setRoute('options/get_business_mode') // 路由地址
            ->setMethod('POST') // 请求方式
            ->request();

teamones/etcd-discovery 适用场景与选型建议

teamones/etcd-discovery 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 7.67k 次下载、GitHub Stars 达 10, 最近一次更新时间为 2021 年 02 月 24 日, 在 PHP 生态内属于活跃度较高的组件。

我们在过去多个企业项目中使用过 teamones/etcd-discovery 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 teamones/etcd-discovery 我们能提供哪些服务?
定制开发 / 二次开发

基于 teamones/etcd-discovery 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 7.67k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 10
  • 点击次数: 23
  • 依赖项目数: 1
  • 推荐数: 0

GitHub 信息

  • Stars: 10
  • Watchers: 1
  • Forks: 2
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2021-02-24