开发响应式微服务:从阻塞代码处理到事件驱动架构
1. 处理阻塞代码
在某些服务中,如使用 JPA 访问关系型数据库的评论服务,不支持非阻塞编程模型。为避免阻塞代码耗尽微服务中的可用线程并影响并发非阻塞处理,可使用 Scheduler 在专用线程池的线程上运行阻塞代码。具体设置步骤如下:
1. 配置调度器 bean 及其线程池 :在 ReviewServiceApplication 主类中进行配置。
@Autowired
public ReviewServiceApplication(
@Value("${app.threadPoolSize:10}") Integer threadPoolSize,
@Value("${app.taskQueueSize:100}") Integer taskQueueSize
) {
this.threadPoolSize = threadPoolSize;
this.taskQueueSize = taskQueueSize;
}
@Bean
public Scheduler jdbcScheduler() {
return Schedulers.newBoundedElastic(threadPoolSize,
taskQueueSize, "jdbc-pool");
}
可通过以下属性配置线程池:
- app.threadPoolSize :指定线程池中的最大线程数,默认为 10。
超级会员免费看
订阅专栏 解锁全文

45

被折叠的 条评论
为什么被折叠?



