summaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
author崔一鸣 <[email protected]>2019-05-21 16:54:19 +0800
committer崔一鸣 <[email protected]>2019-05-21 17:08:44 +0800
commit4636f27eec7ea502735a599242c7cbc216da613d (patch)
treef4ea8d179c5cdba65e9b83396e33af5204955abf /README.md
parenta3d83e74f31dd56e98b847aab28bb0eb462172fa (diff)
修改目录结构, 添加文档HEADmaster
Diffstat (limited to 'README.md')
-rw-r--r--README.md38
1 files changed, 38 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..bdc7924
--- /dev/null
+++ b/README.md
@@ -0,0 +1,38 @@
+* 简介
+ * lua_sapp框架可以看成是lua和sapp平台的一个Adapter。可以使sapp的业务层插件使用lua语言编写。这样做有以下优点:
+ * lua是高级语言,语法简单,有自动垃圾回收,对程序员要求低
+ * 业务层逻辑由异步回调变成同步阻塞(利用lua的协程提供了一组同步api供业务层调用)
+ * 平台内部的数据结构(如stream_info)对业务层透明
+ * 增加了程序的健壮性,每个业务层插件运行在自己的lua虚拟机内,各个插件之间相互隔离。
+ * 平台层次结构如下图所示
+ * ![平台结构图](./picture/platform.png)
+
+
+* 设计思路
+ * 基本思路
+ * 在设计上,lua_sapp由多个adapter组成,如http_adapter, ssl_adapter,dns_adapter等。
+ * 每个adapter都是一个业务层插件,从对应的解析层获取流量(如http_adapter从http解析层获取流量),然后调用注册了这个adapter的lua脚本。
+ * lua脚本在./plug/lua下,通过配置文件中entry_type注册对应的adapter
+ * 一个典型的插件组织如下:
+ * ![插件组织](./picture/plugin.png)
+
+
+ * 线程/协程模型
+ * 每个流(如http stream)对应一个协程
+ * m个线程,n个业务层插件,对应 m * n个lua虚拟机
+* 安装配置
+ * 一键脚本
+
+ ```bash
+ git clone [email protected]:cuiyiming/lua_sapp.git
+ cd lua_sapp && mkdir build && cd build
+ cmake -DCMAKE_BUILD_TYPE=Debug ../ && make
+ sh ../adapter/http_adapter/script/deploy.sh
+ ```
+* 测试环境
+ * 目前192.168.11.137:/home/mesasoft/sapp_run1下面有一套配好的测试环境,直接运行sapp即可看到效果
+ * 日志路径: ./log/lua_sapp
+* TODO
+ * 目前只写了http协议的adapter, 其他如ssl, dns协议的adapter还未编写
+ * 目前处于原型阶段,所以大量使用了C++的STL库,需要改成C语言
+ * 代码缺少注释,但是可读性还不错,基本可以自解释 \ No newline at end of file