應用場景
老王上線了一個電商平台,最近需要開發一個功能,使用戶能夠直接點擊物流編號查詢到物流信息。通過對比,選擇了一個快遞聚合查詢平台作為接入方,但是由於使用的是免費賬號,快遞聚合平台只允許最多2個並發,否則查詢失敗。我們要如何幫助老王去解決這個問題呢?
聰明的程序員小張想了一下,很快就整理出來解決問題的思路:
- 首先用 Httpclient 實現與物流聚合平台的對接
- 創建一個物流查詢 Service 類,基於線程接口
- 創建一個 Sping 固定大小線程池
- Controller 接口通過線程池訪問物流接口,異步返回
POM.xml
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.suoron.springmvc</groupId> <artifactId>myShop-threads</artifactId> <version>1.0.0-SNAPSHOT</version> <packaging>war</packaging> <dependencies> <!-- Apache Http Begin --> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.5</version> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>fluent-hc</artifactId> <version>4.5.5</version> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpmime</artifactId> <version>4.5.5</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.47</version> </dependency> <!-- Apache Http End --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>4.2.5.RELEASE</version> </dependency> <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker