周末 Westar 的 #Rust# meetup 上有一个议题介绍当前 Rust 的各种 Web 框架。现在 Rust 上的 Web 框架还处于百花齐放的阶段。个人虽然现在也算是半个 Rust 粉,也用 Rust 写过一些东西,但整体感觉 Rust 还是不太适合 Web 开发,除非是为了技术栈的统一,给一个非 Web 项目对外提供 HTTP 接口。
有人会问,既然 Rust 的目标是解决并发安全的问题,并且 Web 也属于高并发要求的应用,那为什么 Rust 在这个领域没发挥出来呢?实际上 Web 的并发安全难题主要是通过状态的外部存储来解决的。大多数 Web 程序本身都是无状态的,接收请求后,通过缓存或者数据库立读写数据,然后返回出去,至于状态会不会冲突,这个由数据库来解决。如果需要维护状态,也仅仅是连接池之类的,或者很少的一些静态变量。再或者像 PHP 这样的,连接池都不需要,可以理解成整个应用的生命周期都和 request 一致,执行完成后销毁掉资源,也不存在内存泄露啥的。但在 Rust 里,这些生命周期的问题需要在编译阶段解决,新手写 Rust Web,Hello world 几分钟就搞定了,觉得很简单,但让输出个全局计数器,就蒙了。
有人还要问,那如果 Web 服务需要长期运行,用 Rust 能不能一定程度避免内存泄露问题呢?这个当然有帮助。但一个互联网服务,不每天上几次线,能叫持续交付吗?大多数难以排查的内存泄露问题,还没暴露出来就被重启解决了。据说有的公司还安排了定时任务,夜深人静的时候重启服务,避免周末不上线的时候服务出问题。毕竟重启服务没多大成本,说不定重启一段时间该产品就下线了呢[允悲]。
有人会问,既然 Rust 的目标是解决并发安全的问题,并且 Web 也属于高并发要求的应用,那为什么 Rust 在这个领域没发挥出来呢?实际上 Web 的并发安全难题主要是通过状态的外部存储来解决的。大多数 Web 程序本身都是无状态的,接收请求后,通过缓存或者数据库立读写数据,然后返回出去,至于状态会不会冲突,这个由数据库来解决。如果需要维护状态,也仅仅是连接池之类的,或者很少的一些静态变量。再或者像 PHP 这样的,连接池都不需要,可以理解成整个应用的生命周期都和 request 一致,执行完成后销毁掉资源,也不存在内存泄露啥的。但在 Rust 里,这些生命周期的问题需要在编译阶段解决,新手写 Rust Web,Hello world 几分钟就搞定了,觉得很简单,但让输出个全局计数器,就蒙了。
有人还要问,那如果 Web 服务需要长期运行,用 Rust 能不能一定程度避免内存泄露问题呢?这个当然有帮助。但一个互联网服务,不每天上几次线,能叫持续交付吗?大多数难以排查的内存泄露问题,还没暴露出来就被重启解决了。据说有的公司还安排了定时任务,夜深人静的时候重启服务,避免周末不上线的时候服务出问题。毕竟重启服务没多大成本,说不定重启一段时间该产品就下线了呢[允悲]。
#高以翔[超话]##遇见王沥川官博发声#
电视剧《遇见王沥川》官博就#高以翔#事件发声!称坚持维权是因为坚信这件事情是对的!
并表示“我们有责任,让善良得到回报,让好人不吃亏。如果好人没有好报,那我们每个人都难辞其咎。如果好人不再能发声,我们的世界会一片漆黑 ”
现在再回过头来看这部剧,真的好伤感,这么温柔的暖男就这么走了,一切都已是物是人非,谢小秋再无王沥川,世再无高以翔 http:/
电视剧《遇见王沥川》官博就#高以翔#事件发声!称坚持维权是因为坚信这件事情是对的!
并表示“我们有责任,让善良得到回报,让好人不吃亏。如果好人没有好报,那我们每个人都难辞其咎。如果好人不再能发声,我们的世界会一片漆黑 ”
现在再回过头来看这部剧,真的好伤感,这么温柔的暖男就这么走了,一切都已是物是人非,谢小秋再无王沥川,世再无高以翔 http:/
看过电视《神探狄仁杰》,我的评分:★★★★★ 老好看了!!!这个剧里的武则天与狄仁杰就是武则天与狄仁杰本人了!全剧亮点很多比如案情充实不故弄玄虚,所以每个案子演10集也不会觉得拖沓~还有演技在线,像不画眼线黑化什么的我虎敬晖将军示范给你看~最亮的是两点,一是破案不是靠巧合不… https://?dt_platform=com.douban.activity.weibo
✋热门推荐