当前位置: 首页 > 后端技术 > PHP

iim-etcd正式发布,社区贡献开发——imi框架微服务配置中心开发进度20220820

时间:2023-03-29 18:33:36 PHP

进度说明(20220820)本次发布的imi-etcd由社区贡献,作者@青玄Chris,现在已经正式成为imi开发团队的一员!imi-etcd实现了配置中心的功能,因为imi-config-center对接口进行了抽象,所以在使用上和imi-nacos非常相似。雨润在imi四周年直播活动中介绍了接下来的发展规划。其中,明确指出imi开发团队要大力发展微服务生态,为PHP微服务贡献力量。第一步是访问imi的配置中心。目前已经实现了imi-config-center配置中心组件的抽象。实现并发布了v2.1.0-beta版本:imi-nacosimi-etcd已经编写完成并通过自动化集成测试,部分测试用例是imi开发团队对imi相关开发的基本需求。使用imi-etcd安装composerrequireimiphp/imi-etcd:~2.1.0使用说明配置@app.beans:['ConfigCenter'=>[//'mode'=>\Imi\ConfigCenter\Enum\Mode::WORKER,//工作进程模式'mode'=>\Imi\ConfigCenter\Enum\Mode::PROCESS,//进程模式'configs'=>['etcd'=>['driver'=>\Imi\etcd\Config\EtcdConfigDriver::class,//客户端终端连接配置'client'=>['scheme'=>env('IMI_ETCD_SCHEME','http'),//httporhttps'host'=>env('IMI_ETCD_HOST','127.0.0.1'),//主机名'port'=>env('IMI_ETCD_PORT',2379),//端口号'timeout'=>env('IMI_ETCD_TIMEOUT',6000),//网络请求timeout,unit:millisecond'ssl'=>env('IMI_ETCD_SSL',false),//是否使用ssl(https)request'version'=>env('IMI_ETCD_VERSION','v3'),/***v3v3alphav3betav2*etcdv3.2和以前的版本只使用[CLIENT-URL]/v3alpha/**etcdv3。3使用[CLIENT-URL]/v3beta/*继续使用[CLIENT-URL]/v3alpha/*。*etcdv3.4使用[CLIENT-URL]/v3/*保留[CLIENT-URL]/v3beta/*使用。*[CLIENT-URL]/v3alpha/*已弃用。*etcdv3.5和最新版本仅使用[CLIENT-URL]/v3/*。*[CLIENT-URL]/v3beta/*已弃用。*/'pretty'=>env('IMI_ETCD_PRETTY',true),'sslCert'=>'','sslKey'=>'']],],],]获取配置\Imi\Config::get('等等');//写入imi-etcd-key1对应的配置/**@var\Imi\ConfigCenter\ConfigCenter$configCenter*/$configCenter=App::getBean('ConfigCenter');$name='imi-etcd-key1';$value=json_encode(['imi'=>'niubi']);$options=[];$configCenter->getDriver('etcd')->push($name,$value);$configCenter->getDriver('etcd')->push($name,$value,$options);配置中心的好处我们通常会把一些配置放在专门的配置文件中,这些配置文件通常会随着代码一起分发部署。当需要修改配置时,需要重新走一遍发布流程,非常繁琐和不方便。这个时候配置中心的作用就体现出来了。我们从配置中心获取配置,而不是硬编码到项目中,可以在不中断服务的情况下灵活实现配置发布。imi配置中心组件用于监控工作进程模式。每个进程监控自己,适合Swoole环境。进程模式由专门的进程监控并通知其他进程。适用于Swoole、Workerman环境。配置中心的压力更小。php-fpm模式比较特殊,就是文件缓存逻辑。如果在一定时间后请求配置中心获取数据,实时性会受到一定影响。监听方式的客户端轮询客户端周期性地请求配置中心,对配置中心的服务器端压力很大,但是最常见。服务端推送(长轮询)如果配置中心支持服务端推送(长轮询),推荐使用这种方式,配置中心服务端压力较小。近期,开发计划将继续维护和迭代imi的核心功能,开发更多imi配置中心(Apollo、Zookeeper、Consul)的具体实现。如果你对开源和imi项目感兴趣,不妨一起开发。你只需要开发一个被认可的imi组件或者一个基于imi的开源项目,就可以成为imi开发团队的一员。imi介绍imi是一个支持长连接微服务的分布式PHP开发框架。可以运行在PHP-FPM、Swoole、Workerman、RoadRunner等多种容器环境中。imi拥有丰富的功能组件,v2.1版本内置了两种分布式长连接服务解决方案。imi框架目前稳定运行于:文旅电商平台、物联网收费云平台、停车云平台、支付微服务、短信微服务、钱包微服务、卡牌游戏服务器、数据迁移服务(虎扑)等项目。imi第一个版本于2018年6月21日发布,项目地址Github:https://github.com/imiphp/imiGitee:https://gitee.com/yurunsoft/IMI官网:https://www.imiphp.com/Document:https://doc.imiphp.com/v2.1/获得InfoQ推荐:https://mp.weixin.qq.com/s/oB...码云GVP项目:https://gitee.com/yurunsoft/IMI开发团队成员于润(张润玉),1994年植树节出生,无锡人。Swoole开发团队成员,php-src内核贡献者,TDengine贡献者,2021年中国开源代码榜单前100。开源项目包括但不限于:imi、PaySDK、YurunHttp、Guzzle-Swoole、YurunOAuthLogin、ChineseUtil等.Github:https://github.com/YurunsoftNHZEX,主要贡献:代码优化,bug修复,测试优化,PHP8.1兼容Github:https://github.com/NHZEX陈锋,1993年出生,狮子座,宣城人.imi框架开发团队成员,开源作者。开源项目包括但不限于:fcup、mjs、大学字体图标库、fcphp、fcblog等主要贡献:imi的早期用户,imi1.0和2.0官网页面的作者Github:https://github.com/lovefcEno,99生于成都,全栈程序员(主后端),医学生(本科护理专业),二战硕士在读。PHP、NodeJs等常用编程语言,imi框架开发团队成员。热衷于用代码创造世界,只爱PHP的护士小哥,大学期间主导开发了20多个以PHP为后台为主的WEB项目,有丰富的码农经验,也善于接受国内和国外的软件毕业设计。主要贡献:文档编写,bug修复Github:https://github.com/Gumo666清轩Chris,1996年,广东人,n年半PHP实习生,喜欢唱歌\跳舞\RAP\PHP,imi框架开发组成员喜欢用爱心参与开源发电,imi框架开发团队成员,EasySwoole社区贡献者主要贡献:imi-etcd作者Github:https://github.com/ChrisLeeAr...