All Projects → fucongcong → Groupco

fucongcong / Groupco

PHP的服务化框架。适用于Api、Http Server、Rpc Server;帮助原生PHP项目转向微服务化。出色的性能与支持高并发的协程相结合

Projects that are alternatives of or similar to Groupco

Zhttp
基于swoole的异步轻量级web框架,内部封装协程异步非阻塞全套mysql、redis、mongo、memcached连接池,可以轻松start、reload、stop,加入数据库的查询模块,框架已经封装好近乎同步写法,底层异步调用
Stars: ✭ 131 (-72.3%)
Mutual labels:  async, mysql, redis, swoole
Zapi
基于swoole的异步轻量级api框架,内部封装全套mysql、redis、mongo、memcached异步客户端,可以轻松start、reload、stop,加入数据库的查询模块,框架已经封装好近乎同步写法,底层异步调用。现已支持异步mysql、异步redis、异步http请求.
Stars: ✭ 245 (-48.2%)
Mutual labels:  async, mysql, redis, swoole
Smproxy
Swoole MySQL Proxy 一个基于 MySQL 协议,Swoole 开发的MySQL数据库连接池。 A MySQL database connection pool based on MySQL protocol and Swoole.
Stars: ✭ 1,665 (+252.01%)
Mutual labels:  pool, coroutines, mysql, swoole
Ycsocket
基于swoole的socket框架,支持协程版MySQL、Redis连接池,已用于大型RPG游戏服务端
Stars: ✭ 77 (-83.72%)
Mutual labels:  pool, mysql, redis, swoole
Charroom
PHP + Swoole 聊天室
Stars: ✭ 125 (-73.57%)
Mutual labels:  mysql, redis, swoole
Imi
imi 是基于 Swoole 的 PHP 协程开发框架,它支持 Http、Http2、WebSocket、TCP、UDP、MQTT 等主流协议的服务开发,特别适合互联网微服务、即时通讯聊天im、物联网等场景!。QQ群:17916227
Stars: ✭ 680 (+43.76%)
Mutual labels:  mysql, redis, swoole
Socket Io
基于Hyperf微服务协程框架开发的sokcet-io分布式系统
Stars: ✭ 38 (-91.97%)
Mutual labels:  mysql, redis, swoole
Recoil
Asynchronous coroutines for PHP 7.
Stars: ✭ 765 (+61.73%)
Mutual labels:  async, coroutines, generator
May
rust stackful coroutine library
Stars: ✭ 909 (+92.18%)
Mutual labels:  async, coroutines, generator
Mobc
A generic connection pool for Rust with async/await support
Stars: ✭ 141 (-70.19%)
Mutual labels:  pool, async, redis
Reading
整理阅读过的干货文章, 帖子
Stars: ✭ 318 (-32.77%)
Mutual labels:  mysql, redis, swoole
Swoft Im
基于swoft-cloud的微服务架构,最小化拆分粒度,PHP7、多进程、协程、异步任务、mysql连接池、redi连接池、rpc连接池、服务治理、服务注册与发现、Aop切面、全注解
Stars: ✭ 189 (-60.04%)
Mutual labels:  pool, coroutines, swoole
Swoole Src
🚀 Coroutine-based concurrency library for PHP
Stars: ✭ 17,175 (+3531.08%)
Mutual labels:  async, coroutines, swoole
Mall Cloud Alibaba
mall-cloud-alibaba 是一套基于开源商城 mall 改造的 spring cloud alibaba 体系微服务商城系统。采用了spring cloud alibaba 、 Spring Cloud Greenwich、Spring Boot 2、MyBatis、Docker、Elasticsearch等核心技术。前台商城系统包含首页门户、商品推荐、商品搜索、商品展示、购物车、订单流程、会员中心、客户服务、帮助中心等模块。 后台管理系统包含商品管理、订单管理、会员管理、促销管理、运营管理、内容管理、统计报表、财务管理、权限管理、设置等模块。
Stars: ✭ 370 (-21.78%)
Mutual labels:  mysql, redis
Full Stack Notes
全栈工程师手册
Stars: ✭ 366 (-22.62%)
Mutual labels:  mysql, redis
Learning Resource
列出一些优秀的程序员学习资源
Stars: ✭ 378 (-20.08%)
Mutual labels:  mysql, redis
Sqlx
🧰 The Rust SQL Toolkit. An async, pure Rust SQL crate featuring compile-time checked queries without a DSL. Supports PostgreSQL, MySQL, SQLite, and MSSQL.
Stars: ✭ 5,039 (+965.33%)
Mutual labels:  async, mysql
Phper
一个PHPer的升级之路
Stars: ✭ 362 (-23.47%)
Mutual labels:  mysql, redis
Workflow
C++ Parallel Computing and Asynchronous Networking Engine
Stars: ✭ 6,680 (+1312.26%)
Mutual labels:  mysql, redis
Notebook
🍎 笔记本
Stars: ✭ 381 (-19.45%)
Mutual labels:  mysql, redis

Group-Co

Build Status Code Climate

V2.0的几个重要改动

  • 不在支持php5.6以下版本。php>=7.0
  • 基础服务之间的依赖与通信松耦合(写业务时要考虑到事务的处理)
  • 数据传输通过protobuf编码,所以基础服务层编码规范要严格定义数据类型
  • 将基础服务拆分了,单独分离了接口(API interface)与ServiceImpl。

V1.X版本

框架结构

框架其实分为两大板块, 协程客户端(BFF —— Backend For Frontend)与提供基础服务的服务端。

客户端(BFF)

  • 利用协程特性以同步方式来编写异步代码,增强可读性。
  • 将swoole的异步特性与传统框架的MVC相结合。
  • 和nodejs类似,BFF端应该是胶水层(类似传统MVC的控制层),API提供者

服务端

  • 利用swoole的多进程模式创建,当前版本仅支持RPC调用。

服务化

  • 目前实现了以Zookeeper、Redis、Mysql为注册中心的服务化治理.
  • 支持了Apollo的配置中心化
  • 服务发现,客户端缓存、心跳检测、服务监听

如何使用协程客户端,与传统框架的区别?

  • 框架基本使用与传统框架基本一致,路由,控制器,调用基础服务
  • 在异步调用的地方需要以yield关键词来触发协程切换

为什么服务端不采用swoole的4.X版本协程?

  • 业务码迁移方便。不使用协程,在原项目或者新项目微服务化时,可以无脑迁移,完全不用担心协程化导致的连接释放、全局变量问题等等诸多限制。
  • 多进程模式可以将单连接请求速度优化,利用task机制
  • 稳定性、已得到线上验证

生产环境使用

  • GroupCo框架目前已经全线用于我们团队,日均处理请求百万次。响应时间平均在0.1ms-10ms左右(视业务而定)
  • 大型项目,服务发现不建议使用redis/mysql。也可以自己集成etcd/consul等其他服务发现工具(框架后面会更新支持)

特性

  • 全异步协程调度,支持高并发
  • 服务发现,客户端缓存、心跳检测、服务监听
  • 统一配置中心
  • 异步TCP,HTTP客户端
  • 异步日志
  • 异步文件读写
  • 异步Mysql
  • 异步Mysql事务处理
  • 异步Redis
  • 支持Tcp、Mysql、Redis、WebSocket连接池
  • SOA服务化调用,内部封装完整的RPC通信,服务端采用异步Task处理后合并数据并返回。
  • 异步TCP客户端支持并行、串行调用
  • Twig、Doctrine支持视图、服务数据层
  • 单元测试覆盖

文档总览

案例Demo与最佳实践

BUG反馈

如果你在使用过程中遇到安全或者框架层面使用bug,请提issue。

架构模型

与Go的协程的区别

基于Swoole的异步与php的Generator实现的异步协程,而go语言是内置协程。

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].