RandomLoadBalancer.cs 715 B

1234567891011121314151617181920212223242526
  1. using Grpc.Extension.Abstract;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. namespace Grpc.Extension.Client.LoadBalancer
  7. {
  8. /// <summary>
  9. /// 随机负载
  10. /// </summary>
  11. public class RandomLoadBalancer : ILoadBalancer
  12. {
  13. /// <summary>
  14. /// 随机获取Endpoint
  15. /// </summary>
  16. /// <param name="serviceName"></param>
  17. /// <param name="endpoints"></param>
  18. /// <returns></returns>
  19. public string SelectEndpoint(string serviceName, List<string> endpoints)
  20. {
  21. endpoints = endpoints.OrderBy(q => Guid.NewGuid()).ToList();
  22. return endpoints.FirstOrDefault();
  23. }
  24. }
  25. }