stf java_使用 stf 框架的个人总结

背景

最近有时间浏览网站看 stf 是开源的,自己也想试着搭建一下。历经各种曲折,记录下这一个过程作为备忘,也给其他初次使用 stf 的新手们提供一个参考。

手边只有一个 win7 机器,只好自己从建虚拟机开始。这里推荐使用 centos7,centos7 上自带安装了 java,而且有些东西不需要自己再安装。

参照

分别参考了站内和站外两个,很感谢他们在这个过程中为我解答的问题,推荐一下。

①超级链接

②超级链接

过程

环境准备:

1.安装 vaware 的最新版本 vmware 14pro

2.下载 centos7 的镜像,使用镜像安装 centos7 虚拟机,开始使用的是 NAT 模式,实现了宿主机和虚拟机可以相互通信,但搭建好后别人访问不了,在其他同学帮助下才知道需要使用桥接方式其他机器才能访问。

依赖安装:

3.参照超级链接和超级链接基本就能完成,这里就不重复了。

JDK 安装,java 环境

Android SDK 安装

node 环境安装,很建议先安装 cnpm:npm install -g cnpm --registry=https://registry.npm.taobao.org

rethinkdb 安装

bower 安安装:cnpm install bower

GraphicsMagick

yasm

libsodium

zeromq

protobuf

pkg-config

下载源码

1.在本地创建源码路径

2.使用 git clone 命令将源码下载到本地,源码下载过程可能很慢,我直接下载的 zip 包。

检测 stf 依赖是否完整

1.源码目录下修改 stf 文件的权限,添加文件可执行权限:chmod -R +x bin,也可以使用 chmod -R +x stf 命令只对 stf 文件添加可执行权限。

2.执行./stf doctor,检测环境是否完整,如果不完整按照错误提示修改。

3.在源码路径下执行 cnpm install,会在源码路径下生成 node_modules 目录,并安装 package.json 中的依赖包。中间安装 bower 可能会有错误提示,因为这个安装需要 root 权限,可单独安装,单独安装则执行 bower install --allow-root。在其他同学帮助下,在 package.json 中修改 bower 的安装权限不会报错,也是添加 --allow-root。

3.启动 rethinkdb

4.连接手机的主机 adb 服务打开,我用的 1.0.40,使用到的命令是 adb nodaemon server -a,默认使用到是 5037 端口,也可以使用-P 指定为其他端口,这边如果修改端口的话,启动 stf 服务的命令端口也要修改。

5.启动 stf 服务:./stf local --public-ip xxx.xxx.xxx.xxx --port 7100 --adb-host xxx.xxx.xxx.xxx --adb-port 5037 --allow-remote &

6.本地访问 stf 服务

7.远程访问 stf 服务

启动 stf 服务各个选项说明:

local,允许本地使用 127.0.0.1:7100 访问 stf 服务;--public-ip xxx.xxx.xxx.xxx,部署 stf 服务的主机 ip;--port 7100:stf 服务的端口号;--adb-host xxx.xxx.xxx.xxx,连接着手机的主机 ip; --adb-port 5037,连接手机的主机上 adb 服务的端口; --allow-remote:允许远程访问 stf 服务;&:linux 后台执行服务。

在启动服务过程中 stf 会打印很多的日志,比如连接数据库,数据库各种设置,triproxy,processor,reaper,provider,auth-mock,app,api,storage-temp,websocket 和手机的交互等,这些日志在以后读源码以及修改源码的过程中都很有帮助。

stf 文档

stf 的开发者在 README.md,doc\DEPLOYMENT.md 和 doc\API.md 中提供了很多使用过程中可能遇到的问题以及部署建议,还有安全性问题,对在使用过程中遇到的问题很有帮助。

另外作者还提供了 docker 安装方式,这需要安装 docker 工具 pull 下所有依赖,安装过程简单很多。修改源码使用 docker 容器,需要注意 docker 拉下的代码应该是修改后的。stf 是使用 nodejs 开发的,如果有些 nodejs 基础入门上手更快些,因为我开始不懂 nodejs,反反复复弄了好几天才明白些。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你还在为写文件而发愁吗? 你还在不断的重复前人走过的路么? 你还在为不断变更的写文件的需求而苦恼么? 你还在为你的写文件效率不高而奔波于贴吧之间么? 随着C、C++的发展,使用的人越来越多,不管是linux还是windows或者是其他的平台。在使用过程中我们发现这门语言对于写文件的操作是在不方便,原始的标准库中只给定了基本的写文件操作,对于多数应用中需要将结构体或者类中的成员写入到文件中,没有一个好的办法,除了用fpintf外。但这种老土而效率低下的方式,严重降低了开发者的产出,同时还会出现不必要的错误,后期代码的维护也是更是头痛的事。这里向大家推荐一个通用的结构体写文件的库----STF (struct to file),这个库的主要功能就是将接头体转换到文件中。这个过程不需要自己写代码对文件的操作。只需要调用函数接口,剩下的就是配置写文件的格式即可和编译stf运行库。所有的工作就只需要三步。输出数据可以是结构体中的任意字段,任意顺序,甚至可以对部分字段进行算术运算。同时可以将同一个结构体同时输出到多个文件中,更可以将不同类的共有基类输出到同一个文件中。在性能方面stf考虑到了现在大型服务器并发的性。将写磁盘的速度达到最大化。只要磁盘硬件能更上,完全不用担心写文件的性能更不上的问题。stf库同时也提供了丰富的日志统计,对收到的数据量,每个文件的数据量做了全方位的统计。更强大的该库对内存的使用十分低,如果出现有内存过高,可以通过详细的日志信息让你掌握,内存到底用到哪里去了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值