作者回复: 使用Flower框架,请求会变成一个消息,不需要占用给专门的线程。
作者回复: 是的,数据库连接的瓶颈属于外部资源瓶颈,程序自身是无法解决的。
但是,使用异步的数据库连接组件,可以避免获得数据库连接,以及提交数据库请求后的阻塞等待,避免线程阻塞。
作者回复: 还是有些区别,编程模型和实现机制都不太一样。
作者回复: 在Flower里其实没有调用者这个角色的,每个Service完成自己的处理后,将结果发给下个Service处理,最后一个Service负责处理最终的结果,比如要输出http响应,那么最后一个Service可以通过Flower框架内置的web对象执行web.print(String)将String返回给客户端。
作者回复: 传统的同步阻塞调用到第三个方法服务器重启了,后续也样断了。。。
你想说的应该是事务完整性,前面两个Service已经更新了部分数据,第三个服务失败了怎么办?Flower的解决方案有两种,一种是将所有事务操作聚合到一个Service统一完成,这个通过流程编排就可以做到;一种是Service记录事务日志,根据日志完整性实现事务完整性,这个稍稍复杂一点。