using System; using System.Collections.Generic; using System.Linq; using System.Text; using Consul; using Microsoft.Extensions.Options; using Yi.Framework.Common.IOCOptions; namespace Yi.Framework.Core.ConsulExtend { /// /// 平均 /// public class AverageDispatcher : AbstractConsulDispatcher { #region Identity private static int _iTotalCount = 0; private static int iTotalCount { get { return _iTotalCount; } set { _iTotalCount = value >= Int32.MaxValue ? 0 : value; } } public AverageDispatcher(IOptionsMonitor consulClientOption) : base(consulClientOption) { } #endregion /// /// 平均 /// /// protected override int GetIndex() { return new Random(iTotalCount++).Next(0, base._CurrentAgentServiceDictionary.Length); } } }