Ruby on rails 如何检查Rails应用程序';美洲豹的螺纹安全
我希望使用Puma Web服务器将我的Rails应用程序部署到Heroku。然而,我并不确定是否所有的宝石都是线程安全的。阅读所有Gems的源代码对我们来说是不可行的Ruby on rails 如何检查Rails应用程序';美洲豹的螺纹安全,ruby-on-rails,ruby,multithreading,heroku,puma,Ruby On Rails,Ruby,Multithreading,Heroku,Puma,我希望使用Puma Web服务器将我的Rails应用程序部署到Heroku。然而,我并不确定是否所有的宝石都是线程安全的。阅读所有Gems的源代码对我们来说是不可行的 有没有办法自动检查所有gem的线程安全性?或者,如果执行/检测到线程不安全代码,Puma是否会投诉/显示特定的错误日志?通常无法检测到线程安全。如果有某种方法可以自动检测它,那么您的编译器/解释器可能会警告您。 不能被自动系统检测到,它们甚至很难复制 根据您的口译员: CRubyhas,因此对其使用Puma是毫无意义的 如果您使
有没有办法自动检查所有gem的线程安全性?或者,如果执行/检测到线程不安全代码,Puma是否会投诉/显示特定的错误日志?通常无法检测到线程安全。如果有某种方法可以自动检测它,那么您的编译器/解释器可能会警告您。 不能被自动系统检测到,它们甚至很难复制 根据您的口译员:
has,因此对其使用CRuby
是毫无意义的李>Puma
- 如果您使用的是
或JRuby
,那么您可能会从Rubinius
中获益,而且您使用的gems很可能已经记录了它们的方法/类线程安全性。在这种情况下,您只需检查代码Puma
MRI Ruby
RunningPuma
和MRI Ruby
RunningUnicorn
搜索最新的基准测试。如果你能展示一些东西,我会同意,但在此之前,我认为这只是一个猜测。当然,你说的所有事情在理论上都是正确的,但在实践中,特别是在谈到并行执行时,情况变得非常不同。Unicorn作为一种琐碎的DoS,容易受到慢客户端攻击,这是一个问题,而且可能仍然存在。这就是为什么Heroku现在建议使用Puma而不是Unicorn作为Ruby web服务器的原因。@art solopov它可以在某些情况下提供部分帮助,但专用攻击可以绕过nginx的缓冲区大小,并挂起Unicorn。我已经阅读了技术背景,但现在找不到链接。ruby中的FWIW线程安全性充其量是不确定的。这是何塞创造长生不老药的原因之一。在任何ruby代码中,我都不会指望线程安全。你最好的选择是使用rubinius或jruby