一个服务,内部有很多异步任务,如何确保异步任务的正确执行。
如果采用线程池,那么为了确保不同类型的任务不会相互抢资源,就会创建很多线程池,每个类型的任务一个线程池,相同类型的任务用一个线程池自己内部竞争。
如果采用 mq ,那么每种类型任务需要一个 topic ,然后视情况看各模块消费后是串行处理还是并行处理。
如果采用 mq ,并且后续是并行处理,那么就是 mq 和线程池的结合。
按照这个思路考虑下去,要给服务越来越大后,最终,是不是会尝试大量的线程池配置或者大量的 topic ,写各种消费者去消费。
请假一下各位大佬,实际项目上,如何解决此类问题呢?谢谢