目的:
判断jestclient连接ES集群时,是HTTP短连接,还是HTTP长连接。
为什么要判断:
因为如果是短连接,我们需要连接池控制连接数,防止大量请求,重复创建连接导致系统崩溃;如果是长连接,我们需要注意如果长连接断开,该组件是否具备自动重连机制,防止生产因为长连接断开而导致不可补救的错误。
验证步骤:
第一步,验证是否为长连接:
通过jestclient
向ES
集群里重复连续插入300000
条数据,观察循环中,该进程的连接端口号是否一直在变化;如果端口号一直变化,说明是短连接,否则是长连接。
下面请看测试代码:
/**
* 〈一句话功能简述〉操作ES的Jest客户端<br>
* 〈功能详细描述〉
*
* @author wangzha
* @see [相关类/方法](可选)
* @since [产品/模块版本] (可选)
*/
@Service
public class JestService<T> implements InitializingBean {
public static Logger logger = LoggerFactory.getLogger(JestService.class);
/**
* jest客户端,单例
*/
public JestClient client = null;
@Value("${es.cluster}")
private String cluster;
/**
* es 读取超时时间
*/
private static final String ES_READ_TIMEOUT = "es.read.timeout";
/**
* es 连接超时时间
*/
private