package com.ctriposs.baiji.rpc.samples.movie; import com.ctriposs.baiji.rpc.common.BaijiContract; import com.ctriposs.baiji.rpc.server.BaijiHttpRequestRouter; import com.ctriposs.baiji.rpc.server.HttpRequestRouter; import com.ctriposs.baiji.rpc.server.ServiceConfig; import com.ctriposs.baiji.rpc.server.netty.BlockingHttpServerBuilder; import com.ctriposs.baiji.rpc.server.registry.EtcdServiceRegistry; import com.ctriposs.baiji.rpc.server.registry.ServiceInfo; import com.ctriposs.baiji.rpc.server.registry.ServiceRegistry; import io.netty.channel.ChannelOption; public final class StartServer { public static void main(String[] args) throws Exception { ServiceConfig config = new ServiceConfig(); config.setOutputExceptionStackTrace(true); HttpRequestRouter router = new BaijiHttpRequestRouter(config, MovieServiceImpl.class); BlockingHttpServerBuilder builder = new BlockingHttpServerBuilder(8112); builder.requestRouter(router) .withWorkerCount(10) .serverSocketOption(ChannelOption.SO_BACKLOG, 100) .clientSocketOption(ChannelOption.TCP_NODELAY, true) .build().startWithoutWaitingForShutdown(); ServiceRegistry registry = new EtcdServiceRegistry("http://localhost:4001/"); BaijiContract contract = MovieService.class.getAnnotation(BaijiContract.class); ServiceInfo service = new ServiceInfo.Builder().serviceName(contract.serviceName()) .serviceNamespace(contract.serviceNamespace()) .subEnv("dev") .port(8112).build(); registry.addService(service); registry.run(); } }