Skip to content

Instantly share code, notes, and snippets.

@bstick12
Created February 12, 2015 21:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bstick12/2a21ffd30b14ec68716f to your computer and use it in GitHub Desktop.
Save bstick12/2a21ffd30b14ec68716f to your computer and use it in GitHub Desktop.
Multi HTTPs request using RibbonClient
package feign.ribbon;
import java.util.List;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import org.junit.Test;
import com.google.common.collect.Lists;
import com.netflix.client.ClientFactory;
import com.netflix.client.config.IClientConfig;
import com.netflix.client.config.IClientConfigKey;
import feign.Feign;
import feign.Param;
import feign.RequestLine;
import feign.ribbon.RibbonClient;
public class RibbonClientTest {
interface GitHub {
@RequestLine("GET /users/{user}")
String users(@Param("user") String user);
}
@Test
public void testRibbonFailure() throws InterruptedException, ExecutionException {
IClientConfig namedConfig = ClientFactory.getNamedConfig("github");
namedConfig.set(IClientConfigKey.Keys.ListOfServers, "api.github.com:443");
final GitHub github =
Feign.builder().client(new RibbonClient())
.target(GitHub.class, "https://github");
ExecutorService newFixedThreadPool = Executors.newFixedThreadPool(4);
List<Future<?>> futures = Lists.newArrayList();
for (int i = 0; i < 100; i++) {
futures.add(newFixedThreadPool.submit(new Runnable() {
@Override
public void run() {
System.out.println(github.users("bstick12"));
}
}));
}
for (Future<?> future : futures) {
future.get();
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment