All Projects → Yurunsoft → Imi

Yurunsoft / Imi

Licence: other
imi 是基于 Swoole 的 PHP 协程开发框架,它支持 Http、Http2、WebSocket、TCP、UDP、MQTT 等主流协议的服务开发,特别适合互联网微服务、即时通讯聊天im、物联网等场景!。QQ群:17916227

Programming Languages

golang
3204 projects

Projects that are alternatives of or similar to Imi

Ycsocket
基于swoole的socket框架,支持协程版MySQL、Redis连接池,已用于大型RPG游戏服务端
Stars: ✭ 77 (-88.68%)
Mutual labels:  coroutine, mysql, redis, swoole
Bcmall
以教学为目的的电商系统。包含ToB复杂业务、互联网高并发业务、缓存应用;DDD、微服务指导。模型驱动、数据驱动。了解大型服务进化路线,编码技巧、学习Linux,性能调优。Docker/k8s助力、监控、日志收集、中间件学习。前端技术、后端实践等。主要技术:SpringBoot+JPA+Mybatis-plus+Antd+Vue3。
Stars: ✭ 188 (-72.35%)
Mutual labels:  mysql, redis, jwt
Javacollection
Java开源项目之「自学编程之路」:学习指南+面试指南+资源分享+技术文章
Stars: ✭ 2,957 (+334.85%)
Mutual labels:  mysql, redis, mvc
Shirojwt
API SpringBoot + Shiro + Java-Jwt + Redis(Jedis)
Stars: ✭ 503 (-26.03%)
Mutual labels:  mysql, redis, jwt
X Admin
致力于快速开发中小型后台管理系统项目模板(更新中......)
Stars: ✭ 123 (-81.91%)
Mutual labels:  mysql, redis, jwt
Charroom
PHP + Swoole 聊天室
Stars: ✭ 125 (-81.62%)
Mutual labels:  mysql, redis, swoole
Swpdo
Swoole Coroutine SQL component like PDO | 0成本迁移PDO到Swoole高性能协程客户端
Stars: ✭ 64 (-90.59%)
Mutual labels:  coroutine, mysql, swoole
Socket Io
基于Hyperf微服务协程框架开发的sokcet-io分布式系统
Stars: ✭ 38 (-94.41%)
Mutual labels:  mysql, redis, swoole
Cool Admin Midway
cool-admin(midway版)一个很酷的后台权限管理框架,模块化、插件化、CRUD极速开发,永久开源免费,基于midway.js 2.0、typeorm、mysql、jwt、element-ui等构建
Stars: ✭ 204 (-70%)
Mutual labels:  mysql, redis, jwt
Xboot
基于Spring Boot 2.x的一站式前后端分离快速开发平台XBoot 微信小程序+Uniapp 前端:Vue+iView Admin 后端:Spring Boot 2.x/Spring Security/JWT/JPA+Mybatis-Plus/Redis/Elasticsearch/Activiti 分布式限流/同步锁/验证码/SnowFlake雪花算法ID 动态权限 数据权限 工作流 代码生成 定时任务 社交账号 短信登录 单点登录 OAuth2开放平台 客服机器人 数据大屏 暗黑模式
Stars: ✭ 3,432 (+404.71%)
Mutual labels:  mysql, redis, jwt
Reading
整理阅读过的干货文章, 帖子
Stars: ✭ 318 (-53.24%)
Mutual labels:  mysql, redis, swoole
Butterfly
🔥 蝴蝶--【简单】【稳定】【好用】的 Python web 框架🦋 除 Python 2.7,无其他依赖; 🦋 butterfly 是一个 RPC 风格 web 框架,同时也是微服务框架,自带消息队列通信机制实现分布式
Stars: ✭ 82 (-87.94%)
Mutual labels:  mysql, redis, mvc
Yii2 Async
Provides translucent api & queues for moving large tasks out of request context with SQL, Redis or AMQP.
Stars: ✭ 64 (-90.59%)
Mutual labels:  mysql, redis, amqp
Zhttp
基于swoole的异步轻量级web框架,内部封装协程异步非阻塞全套mysql、redis、mongo、memcached连接池,可以轻松start、reload、stop,加入数据库的查询模块,框架已经封装好近乎同步写法,底层异步调用
Stars: ✭ 131 (-80.74%)
Mutual labels:  mysql, redis, swoole
Duckygo
一个同时支持Session以及JWT的高性能高可用 Golang Restful API 脚手架 !
Stars: ✭ 57 (-91.62%)
Mutual labels:  mysql, redis, jwt
Zapi
基于swoole的异步轻量级api框架,内部封装全套mysql、redis、mongo、memcached异步客户端,可以轻松start、reload、stop,加入数据库的查询模块,框架已经封装好近乎同步写法,底层异步调用。现已支持异步mysql、异步redis、异步http请求.
Stars: ✭ 245 (-63.97%)
Mutual labels:  mysql, redis, swoole
Bestnote
👊 持续更新,Java Android 近几年最全面的技术点以及面试题 供自己学习使用
Stars: ✭ 841 (+23.68%)
Mutual labels:  mysql, redis, mvc
Ssm redis template
An template based on Maven, using Spring + Spring MVC + mybatis + spring-data-redis frames. It can be used to construct a new Java Web Appliaction quickly
Stars: ✭ 13 (-98.09%)
Mutual labels:  mysql, redis, mvc
Hyperf
🚀 A coroutine framework that focuses on hyperspeed and flexibility. Building microservice or middleware with ease.
Stars: ✭ 4,206 (+518.53%)
Mutual labels:  coroutine, swoole, amqp
Dokit
基于 Spring Boot2、 Jpa、 Spring Security、JWT、redis、Vue的前后端分离的后台管理系统开发平台, 用户管理、菜单管理、角色管理、字典管理、权限控制的方式为RBAC,操作日志、异常日志、接口限流、项目支持数据权限管理,支持一键生成前后端代码(支持在线预览及打包下载),支持前端菜单动态路由 可一键部署服务器应用,数据库。系统中活跃用户状态监控,监视当前系统CPU、内存、磁盘、堆栈等相关信息,基于Element UI在线表单设计及生成Vue代码。
Stars: ✭ 348 (-48.82%)
Mutual labels:  mysql, redis, jwt

imi - 基于 Swoole 的 PHP 协程开发框架

imi

Latest Version GitHub Workflow Status (branch) Php Version Swoole Version imi Doc imi License star

介绍

imi 是基于 PHP Swoole 的高性能协程应用开发框架,它支持 HttpApi、WebSocket、TCP、UDP、MQTT 服务的开发。

在 Swoole 的加持下,相比 php-fpm 请求响应能力,I/O密集型场景处理能力,有着本质上的提升。

imi 框架拥有丰富的功能组件,可以广泛应用于互联网、移动通信、企业软件、云计算、网络游戏、物联网(IOT)、车联网、智能家居等领域。可以使企业 IT 研发团队的效率大大提升,更加专注于开发创新产品。

目前 imi v2 版本已经开始开发了(2020-09),如果有任何问题或建议,欢迎联系我们!

imi 框架交流群:17916227 点击加群

官方视频教程(完全免费)

imi 框架入门教程(11集全)https://www.bilibili.com/video/av78158909

imi 框架进阶教程(五子棋服务端开发,每周连载中)https://space.bilibili.com/768718/channel/detail?cid=136926

核心组件

  • HttpApi、WebSocket、TCP、UDP、MQTT 服务器
  • MySQL 连接池 (主从+负载均衡)
  • Redis 连接池 (主从+负载均衡)
  • 超好用的 ORM (Db、Redis、Tree)
  • 毫秒级热更新
  • AOP
  • Bean 容器
  • 缓存 (Cache)
  • 配置读写 (Config)
  • 枚举 (Enum)
  • 事件 (Event)
  • 门面 (Facade)
  • 验证器 (Validate)
  • 锁 (Lock)
  • 日志 (Log)
  • 异步任务 (Task)

扩展组件

开始使用

创建 Http Server 项目:composer create-project imiphp/project-http

创建 WebSocket Server 项目:composer create-project imiphp/project-websocket

创建 TCP Server 项目:composer create-project imiphp/project-tcp

创建 UDP Server 项目:composer create-project imiphp/project-udp

创建 MQTT Server 项目:composer create-project imiphp/project-mqtt

完全开发手册

运行环境

  • Linux 系统 (Swoole 不支持在 Windows 上运行)
  • PHP >= 7.1
  • Composer
  • Swoole >= 4.3.0
  • Redis、PDO 扩展

Docker

推荐使用 Swoole 官方 Docker:https://github.com/swoole/docker-swoole

成功案例

不论您使用 imi 开发的是个人项目还是公司项目,不管是开源还是商业,都可以向我们提交案例。

案例可能会被采纳并展示在 imi 官网、Swoole 官网等处,这对项目的推广和发展有着促进作用。

提交格式:

  • 项目名称
  • 项目介绍
  • 项目地址(官网/下载地址/Github等至少一项)
  • 联系方式(电话/邮箱/QQ/微信等至少一项)
  • 项目截图(可选)
  • 感言

案例展示

  • [虎扑 - 上亿数据迁移服务]

虎扑


项目介绍: 随着数据规模的越来越大,mysql已经不能适用大数据多维度的查询,需要用ES等一类的搜索引擎,进行多维度的分词查询,MYSQL现阶段使用按天分表存储,不能满足跨天的长时间查询。

如何以最快的速度完成数据迁移,将数据库中的数据迁移到ES中,是需要评估的一个重要技术点。

在高IO密集的场景下,单次请求需要80毫秒,imi运用Swoole协程,不断在用户态和内核态之间进行切换,充分利用计算机CPU,从而能快速完成海量数据迁移。

根据普罗米修斯的监控统计,在 两台 2C 4G的机器上,imi以每秒钟同步1000~1500条的同步速度,完成了上亿级别的数据迁移。

博文地址:https://blog.csdn.net/qq_32783703/article/details/113576741

教书先生API

项目介绍: 教书先生API是免费提供API数据接口调用服务平台 - 我们致力于为用户提供稳定、快速的免费API数据接口服务。

感言:

之前的话服务器配置是8H8G 30M这样的一个配置,每天日300万+的一个请求量,有一次是某个接口因一个错误时不时会导致服务器直接宕机,一个偶然的搜索看到了群主(宇润)大佬的一个imi项目,于是熬夜给程序内部请求核心代码换上了imi,正好手里面有一台1H2G 5M的服务器,拿来测试了一下,配合Redis 200万-300万+一点问题都没有的,最后还是要感谢宇润大佬的开源项目。


版权信息

imi 遵循 木兰宽松许可证(Mulan PSL v2) 开源协议发布,并提供免费使用。

鸣谢

感谢以下开源项目 (按字母顺序排列) 为 imi 提供强力支持!

贡献者

贡献者

你想出现在贡献者列表中吗?

你可以做的事(包括但不限于以下):

最新代码以 dev 分支为准,提交 PR 也请合并至 dev 分支!

提交 Pull Request 到本仓库,你就有机会成为 imi 的作者之一!

关于测试用例

环境要求

Redis、MySQL

首次运行测试

  • 创建 db_imi_test 数据库,将 tests/db/db.sql 导入到数据库

  • 配置系统环境变量,如果默认值跟你的一样就无需配置了

名称 描述 默认值
SERVER_HOST 测试用的服务,监听的主机名 127.0.0.1
MYSQL_SERVER_HOST MySQL 主机名 127.0.0.1
MYSQL_SERVER_PORT MySQL 端口 3306
MYSQL_SERVER_USERNAME MySQL 用户名 root
MYSQL_SERVER_PASSWORD MySQL 密码 root
REDIS_SERVER_HOST Redis 主机名 127.0.0.1
REDIS_SERVER_PORT Redis 端口 6379
REDIS_SERVER_PASSWORD Redis 密码
REDIS_CACHE_DB Redis 缓存用的 db,该 db 会被清空数据,请慎重设置 1

配置命令:export NAME=VALUE

  • 首次运行测试脚本:composer install-test

  • 首次之后再运行测试的命令:composer test

捐赠

捐赠

开源不求盈利,多少都是心意,生活不易,随缘随缘……

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].