Esempio n. 1
0
        public void Handle(GossipMessage.GossipReceived message)
        {
            if (_state != GossipState.Working)
            {
                return;
            }

            var oldCluster = _cluster;

            _cluster = MergeClusters(_cluster,
                                     message.ClusterInfo,
                                     message.Server,
                                     x => x.InstanceId == NodeInfo.InstanceId ? GetUpdatedMe(x) : x);

            message.Envelope.ReplyWith(new GossipMessage.SendGossip(_cluster, NodeInfo.InternalHttp));

            if (_cluster.HasChangedSince(oldCluster))
            {
                LogClusterChange(oldCluster, _cluster, string.Format("gossip received from [{0}]", message.Server));
            }
            _bus.Publish(new GossipMessage.GossipUpdated(_cluster));
        }
Esempio n. 2
0
        public void Handle(GossipMessage.GossipReceived message)
        {
            if (_state != GossipState.Working)
            {
                return;
            }

            var oldCluster = _cluster;

            _cluster = MergeClusters(_cluster,
                                     message.ClusterInfo,
                                     message.Server,
                                     x => x.InstanceId == NodeInfo.InstanceId ? GetUpdatedMe(x) : x,
                                     _timeProvider.UtcNow, NodeInfo, CurrentLeader, AllowedTimeDifference, DeadMemberRemovalPeriod);

            message.Envelope.ReplyWith(new GossipMessage.SendGossip(_cluster, NodeInfo.InternalHttp));

            if (_cluster.HasChangedSince(oldCluster))
            {
                LogClusterChange(oldCluster, _cluster, $"gossip received from [{message.Server}]");
            }
            _bus.Publish(new GossipMessage.GossipUpdated(_cluster));
        }