微服务中的逻辑复杂处理时间长的情况,在高并发量下,导致服务线程消耗尽,不能再创建线程处理请求。对这种情况的优化,除了在程序上不断调优(数据库调优,算法调优,缓存等等),可以考虑在架构上做些调整,先返回结果给客户端,让用户可以继续使用客户端的其他操作,再把服务端的复杂逻辑处理模块做异步化处理。这种异步化处理的方式适合于客户端对处理结果不敏感不要求实时的情况,比如群发邮件、群发消息等。

下面介绍三种异步化架构:

1.      服务端接收到请求后,创建新的线程处理业务逻辑,服务端先回应答给客户端。


2. 服务端接收到请求后,服务端先回应答给客户端,再继续处理业务逻辑。


3.      服务端接收到请求后,服务端把信息保存在消息队列或者数据库,回应答给客户端,服务端业务处理进程再从消息队列或者数据库上读取信息处理业务逻辑




Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐