|
57 | 57 | import reactor.core.Disposable; |
58 | 58 | import reactor.core.Disposables; |
59 | 59 | import reactor.core.Exceptions; |
| 60 | +import reactor.core.publisher.DirectProcessor; |
60 | 61 | import reactor.core.publisher.Flux; |
| 62 | +import reactor.core.publisher.FluxSink; |
61 | 63 | import reactor.core.publisher.Mono; |
62 | 64 | import reactor.core.publisher.SignalType; |
63 | 65 | import reactor.core.publisher.Sinks; |
@@ -555,9 +557,9 @@ private static class CompositeServiceDiscovery implements ServiceDiscovery { |
555 | 557 | private final Map<String, ServiceDiscoveryContext> discoveryContexts = |
556 | 558 | new ConcurrentHashMap<>(); |
557 | 559 |
|
558 | | - // Sink |
559 | | - private final Sinks.Many<ServiceDiscoveryEvent> sink = |
560 | | - Sinks.many().multicast().directBestEffort(); |
| 560 | + // Subject |
| 561 | + private final DirectProcessor<ServiceDiscoveryEvent> subject = DirectProcessor.create(); |
| 562 | + private final FluxSink<ServiceDiscoveryEvent> sink = subject.sink(); |
561 | 563 |
|
562 | 564 | private final Disposable.Composite disposables = Disposables.composite(); |
563 | 565 | private Scheduler scheduler; |
@@ -614,7 +616,7 @@ private Mono<Void> startListen() { |
614 | 616 | public Flux<ServiceDiscoveryEvent> listen() { |
615 | 617 | return Flux.fromStream(microservices.serviceRegistry.listServiceEndpoints().stream()) |
616 | 618 | .map(ServiceDiscoveryEvent::newEndpointAdded) |
617 | | - .concatWith(sink.asFlux().onBackpressureBuffer()) |
| 619 | + .concatWith(subject) |
618 | 620 | .subscribeOn(scheduler) |
619 | 621 | .publishOn(scheduler); |
620 | 622 | } |
@@ -650,7 +652,7 @@ private Mono<? extends Void> start0(String id, ServiceDiscovery discovery) { |
650 | 652 | .subscribeOn(scheduler) |
651 | 653 | .publishOn(scheduler) |
652 | 654 | .doOnNext(event -> onDiscoveryEvent(microservices, event)) |
653 | | - .doOnNext(event -> sink.emitNext(event, RetryEmitFailureHandler.INSTANCE)) |
| 655 | + .doOnNext(sink::next) |
654 | 656 | .subscribe()); |
655 | 657 |
|
656 | 658 | return Mono.deferContextual(context -> discovery.start()) |
|
0 commit comments