目前的工作场景是:
在一个项目中需要调用外部接口,此接口一次只能处理8个请求,多于8个请求过来,nginx会为了保护接口直接踢回请求(返回500null错误),而在本项目中使用了消息队列机制,所以有可能会一次从消息队列中消费多条数据,这时候就会有个别请求还没有调用外部接口直接返回了500错误。
这时候就需要考虑对项目中调用接口的方法进行核心线程控制,这就涉及到hystrix的核心线程数概念。
编写代码模拟外部接口
这是一个service方法:
@HystrixCommand(commandKey = "testCoreSizeCommand",groupKey = "testGroup",fallbackMethod = "TimeOutFallBack",
threadPoolProperties = {
@HystrixProperty(name = "coreSize",value = "2"),
@HystrixProperty(name = "allowMaximumSizeToDivergeFromCoreSize",value="true"),
@HystrixProperty(name = "maximumSize",value="2"),
@HystrixProperty(name = "maxQueueSize",value&