基于spring boot支持thrift序列化的http的微服务框架
- 支持thrift序列化的http协议
- 兼容spring cloud ribbon 配置
- 支持基于ribbon负载均衡的retryRetryLoadBalancerInterceptor
1.springboot启动时加上支持EnableTHttpInject
注解
@EnableTHttpInject
2.启用EnableTHttpInject
之后,就可以这样使用http的thriftclient
@THttpInject(backupServers = {"localhost:9090"}, path = "/sample", serviceName = "dolphin-server")
Sample.Client tHttpClient;
3.example
@EnableTHttpInject
@SpringBootApplication
@EnableDiscoveryClient
@EnableCircuitBreaker
public class ClientApplication implements CommandLineRunner {
@THttpInject(backupServers = {"localhost:9090"}, path = "/sample", serviceName = "dolphin-server")
Sample.Client tHttpClient;
public static void main(String[] args) throws TException {
SpringApplication app = new SpringApplication(ClientApplication.class);
app.run(args);
}
@Override
public void run(String... args) throws Exception {
System.out.println(tHttpClient.hello("test"));
}
}
加上THttpService
注解,并实现对应的Iface接口
框架会自动根据THttpService
的value值为name注册对应的servlet
@THttpService("/sample")
public class SampleController implements Sample.Iface {
@HystrixCommand(fallbackMethod = "helloFallback")
@Override
public String hello(String para) throws TException {
throw new NullPointerException("");
// return "hello+"+para;
}
@Override
public boolean ping() throws TException {
return true;
}
public String helloFallback(String para) {
return "hello_fallback server";
}
}
注入的client实际上是个代理类,真正的处理类已经通过threadlocal解决thrift client多线程的问题
- 支持spring xml配置