Beispiel #1
0
        public void SendResponseToLearnerNode(CDN.GRPC.protobuf.PaxosRequest request)
        {
            var LstNodes  = zKService.GetClusterNodes(BOD.NodeDetails.ClusterName);
            var MinimumId = LstNodes.Min(p => p.Key);
            var node      = LstNodes.Where(p => p.Key == MinimumId).Select(p => p.Value).FirstOrDefault();

            Console.WriteLine("Send  paxos response to learner " + node + "  " + DateTime.Now.ToString());
            var client = new GRPC.NodeVoting.GRPCClien_NodeVoting(node, BOD.SystemPorts.nearestnode);

            client.Client.SendPaxosAccptanceToLearner(NodeResponse(request));
            client.Stop_Channel();
        }
Beispiel #2
0
        public CDN.GRPC.protobuf.PaxosResponse NodeResponse(CDN.GRPC.protobuf.PaxosRequest request)
        {
            var distance = new Vote.GeoDistance().calcuateIpDistance(request.ClientIp);

            var response = new CDN.GRPC.protobuf.PaxosResponse()
            {
                Distance = distance,
                FileURL  = $"http://{BOD.NodeDetails.Ip}:{BOD.NodeDetails.Port}" + request.FileURL,//kts
                PID      = request.PID,
            };

            return(response);
        }