https://github.com/elarity/ti-rpc
基于swoole封装的一个简易的JSON协议的RPC框架,思路是借鉴的,代码是自己写的。小修小改的,目前服务于前公司(注意是前公司)生产环境,每日支撑大约8000万次调用。
https://github.com/elarity/ti-rpc
json rpc swoole tcp
Last synced: about 1 month ago
JSON representation
基于swoole封装的一个简易的JSON协议的RPC框架,思路是借鉴的,代码是自己写的。小修小改的,目前服务于前公司(注意是前公司)生产环境,每日支撑大约8000万次调用。
- Host: GitHub
- URL: https://github.com/elarity/ti-rpc
- Owner: elarity
- License: mit
- Created: 2016-10-20T06:43:38.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2019-07-23T09:54:54.000Z (almost 6 years ago)
- Last Synced: 2025-03-27T09:13:22.385Z (about 2 months ago)
- Topics: json, rpc, swoole, tcp
- Language: PHP
- Homepage:
- Size: 1.27 MB
- Stars: 144
- Watchers: 5
- Forks: 24
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Ti RPC
## swoole版本说明
这个东西做出来的时候时间比较早,当时swoole 2.0也才刚发版没多久。所以,这个玩意在swoole 1.x系列和swoole 2.x系列里是没什么问题的。但是swoole 4可能发生的一些变动可能会导致这个玩意报一些错。我建议是:swoole 4情况下,不优先考虑这个;如果一定要考虑,自己修一下吧。因为swoole后面是重协程的,而咱这个玩意主要思路还是多进程方式。至于会不会改进做一个协程版本的:会做。但是没有经历至少几十万用户验证前,我应该不会轻易扔出来的。现有的这个版本虽然在协程时代显得LOW,但是贵在经历过百万级的用户体量考验。## 简要概述:
封装的比较简单,代码风格略粗暴,没有过多的组件以及厚重的包装,我不太喜欢过于复杂的东西。整体思路是借鉴蓝天的,代码则自己实现(你也可以认为是抄袭),自己做了些许改动。由于第一个版本我实现的比较烂,所以没有放出来,这个版本代码略干净能看一些,又在我们公司生产环境经过长期的验证,每日支撑将近8000万次的调用,所以我就放出来了。我不会刻意去推广这个,也会长期改进维护,只希望能帮到一些人。
## TODO LIST:
1.加入更好的异常机制代替丑陋的if else2.加入包头定长拆包协议(已实现)
## VIM配置
set shiftwidth=2
set softtabstop=2
set tabstop=2
set rnu
set fileencodings=utf-8,gb2312,gb18030,gbk,ucs-bom,cp936,latin1
set enc=utf8
set fencs=utf8,gbk,gb2312,gb18030
## 功能简介:
1.同时提供tcp和http两种方式。2.提供四种不同调用方式:
SW : 单个请求,等待结果
SN : 单个请求,不等待结果
MW : 多个请求,等待结果
MN : 多个请求,不等待结果3.客户端可以通过长链接连接RPC服务,避免TCP握挥手带来的性能损耗
4.TCP提供根据数据长度拆包和包头定长两种拆包方式,默认启用包头定长
5.其余特性参考 http://wiki.swoole.com
## 部署安装
1. git clone https://github.com/elarity/ti-rpc.git
2. 到ti-rpc根目录下执行php index.php查看使用方式已经加入对composer的支持,根目录下有个composer.json,请不要随意修改其中内容如果你明白你在做什么操作。如果你需要从github找到一个php库并使用,比如这个[curl类](https://github.com/php-curl-class/php-curl-class),那么你需要在ti rpc的根目录下执行如下命令:
```php
composer require php-curl-class/php-curl-class
```
这个时候,ti rpc将会采用composer自动加载器而不是自定义的自动加载,从而可以方便粗暴快捷简单地使用任何一个php composer库## 使用方式
##### php index.php [command] [option]
- start,以非daemon形式开始服务,也就是debug模式
- start -d,以daemon模式开启服务,一般用于正式部署
- stop,停止服务
- reload,热加载业务代码
- status,查看服务状态
## 内容添加
1. 添加curl和RNCryptor加解密库## 联系方式:
wechat:sbyuanmaomao