Closed inhere closed 5 years ago
先收集意见,下周估计开始规划
有这么几个想法:(可能意义不大)
2.数据库ORM方面希望能够增加对json 类型的支持;
3.能够更好的处理生命周期逻辑(其实现在也已经很好了,可能是文档没吃透)
4.注解的类提示上可以再友好点(原谅技术太渣很多东西只能靠提示来弥补)
@yanwuguangjun 我在这再回复下 :)
希望能够支持mongodb协程客户端,类似mysql。还有就是我们公司在使用过程中发现,水平较为初级的开发者认为文档较为难懂,不是很详细,个人认为文档如果能更易懂详细的话,更利于框架的推广吧
希望重点优化mysql数据库还有redis在协程下的使用体验。这是我最希望有的改进
希望能够支持mongodb协程客户端,类似mysql。还有就是我们公司在使用过程中发现,水平较为初级的开发者认为文档较为难懂,不是很详细,个人认为文档如果能更易懂详细的话,更利于框架的推广吧
希望增加对log的优化 mongo的支持 还有队列呀 队列 注解的文档 如果可以的话 能完善下 就更好啦~~~
可以考虑 对 graphql 的支持
说说我们现在的项目使用的技术: 数据库:mongodb、mysql 缓存:redis 搜索引擎:elasticsearch 队列:beanstalk、kafka、rabbitmq
需要满足基本使用这些,基本都是很常用的都能满足就可以很好使用了,考虑第三方composer包怎么使用,demo文档更详细一点,希望demo能有点业务逻辑代码,比如,mysql查询数据、redis获取数据、操作业务,API接口栗子,单元测试,代码调试监控进程状态,如果有日志管理就更好了,可以基于swoft开发项目壮大社区,这样更容易理解,毕竟新手很多,了解理解协程、异步、进程、线程这些网络IO这些复杂度就上升了,希望体验度要和传统的fpm框架无差异,这样社区才能壮大,来自本人理解,不对的地方,请谅解哈。
swoft-cli生成项目,建议可以替换swoft关键词,可以由开发者自定义关键词。并非不尊重版权云云,是希望swoft更加开放。
如我们开发商业产品,如产品源码大量出现swoft关键词对商业产品有不好影响。 这点beego之类框架做得很好都做得不错
swoft-cli生成项目,建议可以替换swoft关键词,可以由开发者自定义关键词。并非不尊重版权云云,是希望swoft更加开放。
如我们开发商业产品,如产品源码大量出现swoft关键词对商业产品有不好影响。 这点beego之类框架做得很好都做得不错
没明白,你是说 swoft-cli
这个名字吗? 还是说框架的代码里有Swoft关键字?
swoft-cli
只是个包名,工具名。就像 vue-cli
一样@inhere
实际上依赖文件内swoft关键词没啥。
如下启动脚本关键词对于开发商业软件还是介意的。 当然也可以自己麻烦下去改, 不过还是希望swoft-cli创建项目的时候本身就集成了修改的功能
// Start HTTP Server php bin/swoft start
// Start Daemonize HTTP Server php bin/swoft start -d
// Restart HTTP server php bin/swoft restart
// Reload HTTP server php bin/swoft reload
// Stop HTTP server php bin/swoft stop
bin/swoft
这个吗? 只是个入口文件 你可以随便命名的
最近使用swoft1.0 , ab压力测试了一下,性能和其他swoole框架比较起来, 相差较大; 希望在2.0 能对性能方面有提高
最近使用swoft1.0 , ab压力测试了一下,性能和其他swoole框架比较起来, 相差较大; 希望在2.0 能对性能方面有提高
能具体说明下对比的框架是哪个么?
最近使用swoft1.0 , ab压力测试了一下,性能和其他swoole框架比较起来, 相差较大; 希望在2.0 能对性能方面有提高
能具体说明下对比的框架是哪个么?
使用vm虚拟机测试:配置1核1G swoole=4.2.10 worker_num=1 测试命令:ab -n 10000 -c 1000 url easyswoole 3.0.9: Benchmarking 192.168.22.134 (be patient) Completed 1000 requests Completed 2000 requests Completed 3000 requests Completed 4000 requests Completed 5000 requests Completed 6000 requests Completed 7000 requests Completed 8000 requests Completed 9000 requests Completed 10000 requests Finished 10000 requests
Server Software: EasySwoole Server Hostname: 192.168.22.134 Server Port: 9501
Document Path: /test Document Length: 21 bytes
Concurrency Level: 1000 Time taken for tests: 4.516 seconds Complete requests: 10000 Failed requests: 0 Total transferred: 1690000 bytes HTML transferred: 210000 bytes Requests per second: 2214.50 [#/sec] (mean) Time per request: 451.570 [ms] (mean) Time per request: 0.452 [ms] (mean, across all concurrent requests) Transfer rate: 365.48 [Kbytes/sec] received
Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.8 0 8 Processing: 241 426 55.8 439 513 Waiting: 156 415 64.0 431 510 Total: 241 426 55.9 440 513 swoft1.0.8:(关闭日志,命令行输出) Benchmarking 192.168.22.134 (be patient) Completed 1000 requests Completed 2000 requests Completed 3000 requests Completed 4000 requests Completed 5000 requests Completed 6000 requests Completed 7000 requests Completed 8000 requests Completed 9000 requests Completed 10000 requests Finished 10000 requests
Server Software: swoole-http-server Server Hostname: 192.168.22.134 Server Port: 9988
Document Path: /hi/index Document Length: 5 bytes
Concurrency Level: 1000 Time taken for tests: 6.734 seconds Complete requests: 10000 Failed requests: 0 Total transferred: 2240000 bytes HTML transferred: 50000 bytes Requests per second: 1484.95 [#/sec] (mean) Time per request: 673.426 [ms] (mean) Time per request: 0.673 [ms] (mean, across all concurrent requests) Transfer rate: 324.83 [Kbytes/sec] received
Connection Times (ms) min mean[+/-sd] median max Connect: 0 1 1.0 0 8 Processing: 51 657 152.3 680 850 Waiting: 51 518 137.8 530 831 Total: 52 658 152.4 681 851 WARNING: The median and mean for the initial connection time are not within a normal deviation These results are probably not that reliable.
Percentage of the requests served within a certain time (ms) 50% 681 66% 733 75% 750 80% 761 90% 792 95% 835 98% 846 99% 847 100% 851 (longest request)
mixphp: Benchmarking 192.168.22.134 (be patient) Completed 1000 requests Completed 2000 requests Completed 3000 requests Completed 4000 requests Completed 5000 requests Completed 6000 requests Completed 7000 requests Completed 8000 requests Completed 9000 requests Completed 10000 requests Finished 10000 requests
Server Software: swoole-http-server Server Hostname: 192.168.22.134 Server Port: 9966
Document Path: / Document Length: 29 bytes
Concurrency Level: 1000 Time taken for tests: 3.355 seconds Complete requests: 10000 Failed requests: 0 Total transferred: 1990000 bytes HTML transferred: 290000 bytes Requests per second: 2980.58 [#/sec] (mean) Time per request: 335.505 [ms] (mean) Time per request: 0.336 [ms] (mean, across all concurrent requests) Transfer rate: 579.23 [Kbytes/sec] received
Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.6 0 6 Processing: 89 317 55.7 319 421 Waiting: 89 275 55.0 278 416 Total: 89 317 55.8 319 421
Percentage of the requests served within a certain time (ms) 50% 319 66% 337 75% 351 80% 357 90% 368 95% 394 98% 406 99% 412 100% 421 (longest request)
我本机测试了下, mac15款 I5+8G内存, 开了一堆程序。
swoole原生测试8000Requests per secon
easyswoole 测试大概是5000 swoft 测试4000多
以上测试都是hello测试 AB测试
@tw2066 @mlsjla 2.0 会优化的,流程会理清晰后再做开发
也简单ab压测了下easyswoole,swoft。关闭日志,debug,开启1个worker,仅输出hello world。 easyswoole:swoft 大概 1650:1200,有些差距。 但是喜欢swoft。所以,还是非常期待swoft 2.0的。 加油!!!
MongoDB连接池支持,github上开源的基本上很少~
之前开发1.0组件的时候,有遇到过循环调用,导致coredump,排查起来非常困难,希望2.0可以把这一点在底层屏蔽掉,再就是swoole底层错误,和框架错误的日志风格不统一,后期采集比较困难,跑多进程任务的时候,框架内部出错,提示的日志信息无法定位错误点
@tw2066 @mlsjla 2.0 会优化的,流程会理清晰后再做开发
其实应该是 简介化 性能优先 对比mixPHP 性能差的更多 使用swoole的 一般都是对新技术比较喜欢 切数据安全要求不高的项目 性能更有说服力。。。学swoft和学spring一样就没必要 有哪样的项目 也不会选择PHP 和 swoft框架 ,大部分公司负责人 都不敢把核心项目方在swoole上跑
@AmdRyZen 所以我们朝着这个方向努力啊,出一个能支撑大项目的框架
@inhere 支持支持,期待2.0发布
配置部分:
配置部分:
- 一些组件默认env覆盖config配置项,不是很直观,可以将这个操作改成只从config文件里读取,config里通过env获取覆盖?
嗯 这个部分会去掉,应用里面默认都从 config 取配置
对新技术比较喜欢 切数据安全要求不高的项目 性能更有说服力。。。学swoft和学spring一样就没必要 有哪样的项目 也不会选择PHP 和 swoft框架 ,大部分公司负责人 都不敢把核心项目方在swoole上跑
既然基于swoole性能方面就不需要太担心。框架稳定和易用这个是最最重要的,swoft应该着重在这方面下功夫。
希望swoft 2.0提供类似于php artisan vendor:publish 这种命令,便于发布vendor扩展包下的配置文件,比如我要使用devtool这个包时,可以通过发布配置文件到config目录,然后可以自定义配置文件,生成符合项目需求的配置文件。比如 这种头文件信息,可以通过自定义配置文件配置。
希望swoft2.0连接池,能够支持多个负载服务地址,指定获取某个地址的连接功能。 需求其实主要是针对rpc这块,目前有些应用场景,对应多个rpc-server,希望能够定向分配一个server(比如用户登录成功后固定分配某一个server)。 目前1.0是按照连接池配置、服务写死的,有了这个功能,我想可以做到rpc-server动态上下线。
希望swoft 2.0提供类似于php artisan vendor:publish 这种命令,便于发布vendor扩展包下的配置文件,比如我要使用devtool这个包时,可以通过发布配置文件到config目录,然后可以自定义配置文件,生成符合项目需求的配置文件。比如 这种头文件信息,可以通过自定义配置文件配置。
目前这部分可以通过修改头配置文件实现,可以看一下:https://doc.swoft.org/master/zh-CN/devtool/gen-commands.html
用ci用久了,发现这个有点难学,希望文档再详细一点,加油😊
比较关心 2.0
是否是一个不兼容更新,如果是,那么是否会提供详细的升级说明
我觉得http server 部分舍弃view部分,只提供api接口功能就够了
我觉得http server 部分舍弃view部分,只提供api接口功能就够了
嗯 view 一直是可选的
比较关心
2.0
是否是一个不兼容更新,如果是,那么是否会提供详细的升级说明
这个到时要考虑下
希望文档能丰富一些
希望能更加安全和注意细节 97404667 邮箱97404667@qq.com 签名由 网易邮箱大师 定制 在2019年01月23日 17:21,拾年磨一剑 写道: 希望文档能丰富一些 — You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or mute the thread.
我能提个过分的需求么 强烈建议支持 https://github.com/alibaba/fescar 解决数据一致性一直很头痛。。。要撸巨多修复代码,能支持fescar或者GTS这种分布式事务框架就好了。微服务话才能轻松进行
swoft中间件希望能够像laravel的中间件一样可以实现传参,现在的中间件实用性不高
swoft中间件希望能够像laravel的中间件一样可以实现传参,现在的中间件实用性不高
传参 指的是提前new出中间件对象,设置一些东西吗?
微核心,把所有的功能都组件化.
线程池管理类 跟 线程池基类为什么要混在一块.
对于event log pipe pool proxy Validator 甚至APP都可以组件化.
极其讨厌 注解 方式写代码. 为什么不能像 symfony提供两种方式?
极其讨厌 注解 方式写代码. 为什么不能像 symfony提供两种方式?
工作量太大 😄 不喜欢注解可以用 easyswoole imi mixphp 等基于swoole的框架
连接池可以抽离出来 连接池包 数据库连接池包 redis连接池包 .... 按需在composer中引入 默认框架可以引入部分 然后其他人有需要在不用这框架也可以引入使用
关于项目初始化提供的大量例子,我觉得全部移至文档或一个demo repo,保持初始化最简单
关于项目初始化提供的大量例子,我觉得全部移至文档或一个demo repo,保持初始化最简单
2.0 的初始化项目结构会保持最精简的 同时会提供一些含有其他demo的初始化repo
是否考虑socket增加心跳机制和分组
这个配置是 swoole 就提供了的啊
swoft 2.0 开发意见收集
鉴于1.0的规划过于庞大,一些组件其实很少人使用,开发团队感觉维护困难。
决定开发2.0:
这里做一些意见收集
去除的功能:
auto reload
极大的增加了框架启动逻辑复杂度defer
(getResult) 很少人使用需改进的功能:
swoft-cli
它来监控项目变动,发送重启信号新增的功能: