我使用Spring的Transaction来创建事务。我用Transaction属性标记事务方法。我的服务器每秒收到20-25个请求,每个请求都在一个新线程上处理,使用并行的任务。当我一次只运行两三次调用时,每件事都很好,,但是,当我同时运行5-10次调用时,我得到了Spring的一个异常。Hibernate transactionStackTrace:
at Spring.Data.NHibernate.HibernateTransa
一种解决方案是使微服务-A转到5-10个其他微服务以获取必要的数据(这相当于DB view with join)。另一种解决方案是让微服务-A监听来自5-10个其他服务的事件,并将相关内容填充到本地存储中(这相当于物化视图)。无论哪种方式,微服务-A与5-10个其他服务耦合,并且如果在微服务-A中需要新的信息,则它所依赖的一些服务可能需要在微服务-A之前被释放。请注意,微服务-A本身依赖于其他服务。许多文章提倡第二种解决方案-即类似于事件采购、编排等的解决方案。
如果有任何分享的经验、建议和见解,我将非常