public void start() {
        if (jvmShutdownHook != null) {
            Runtime.getRuntime().addShutdownHook(jvmShutdownHook);
        }

        serverGroup = new ServerGroup(
                "Salamander", eventLoopConfig.acceptorCount(), eventLoopConfig.eventLoopCount(), eventLoopGroupMetrics);
        serverGroup.initializeTransport();
        List<ChannelFuture> allBindFutures = new ArrayList<>(addressesToInitializers.size());

        // Setup each of the channel initializers on requested ports.
        for (Map.Entry<NamedSocketAddress, ? extends ChannelInitializer<?>> entry :
                addressesToInitializers.entrySet()) {
            NamedSocketAddress requestedNamedAddr = entry.getKey();
            ChannelFuture nettyServerFuture = setupServerBootstrap(requestedNamedAddr, entry.getValue());
            Channel chan = nettyServerFuture.channel();
            addressesToChannels.put(requestedNamedAddr.withNewSocket(chan.localAddress()), chan);
            allBindFutures.add(nettyServerFuture);
        }

        // All channels should share a single ByteBufAllocator instance.
        // Add metrics to monitor that allocator's memory usage.
        if (!allBindFutures.isEmpty()) {
            ByteBufAllocator alloc = allBindFutures.get(0).channel().alloc();
            if (alloc instanceof ByteBufAllocatorMetricProvider) {
                ByteBufAllocatorMetric metrics = ((ByteBufAllocatorMetricProvider) alloc).metric();
                PolledMeter.using(registry)
                        .withId(registry.createId("zuul.nettybuffermem.live", "type", "heap"))
                        .monitorValue(metrics, ByteBufAllocatorMetric::usedHeapMemory);
                PolledMeter.using(registry)
                        .withId(registry.createId("zuul.nettybuffermem.live", "type", "direct"))
                        .monitorValue(metrics, ByteBufAllocatorMetric::usedDirectMemory);
            }
        }
    }
Use {@link #Server(Registry, ServerStatusManager, Map, ClientConnectionsShutdown, EventLoopGroupMetrics,
EventLoopConfig)}
instead.
zuul-core/src/main/java/com/netflix/zuul/netty/server/Server.java