ApolloCfgOptions.cs 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. namespace Apq.Cfg.Apollo;
  2. /// <summary>
  3. /// Apollo 配置选项
  4. /// </summary>
  5. public sealed class ApolloCfgOptions
  6. {
  7. /// <summary>
  8. /// Apollo 应用 ID
  9. /// </summary>
  10. public string AppId { get; set; } = "";
  11. /// <summary>
  12. /// Apollo Meta Server 地址,默认 "http://localhost:8080"
  13. /// </summary>
  14. public string MetaServer { get; set; } = "http://localhost:8080";
  15. /// <summary>
  16. /// 集群名称,默认 "default"
  17. /// </summary>
  18. public string Cluster { get; set; } = "default";
  19. /// <summary>
  20. /// 命名空间列表,默认 ["application"]
  21. /// </summary>
  22. public string[] Namespaces { get; set; } = ["application"];
  23. /// <summary>
  24. /// 访问密钥(可选,用于访问控制)
  25. /// </summary>
  26. public string? Secret { get; set; }
  27. /// <summary>
  28. /// 是否启用热重载,默认 true
  29. /// </summary>
  30. public bool EnableHotReload { get; set; } = true;
  31. /// <summary>
  32. /// 连接超时时间,默认 10 秒
  33. /// </summary>
  34. public TimeSpan ConnectTimeout { get; set; } = TimeSpan.FromSeconds(10);
  35. /// <summary>
  36. /// 长轮询超时时间,默认 90 秒
  37. /// </summary>
  38. public TimeSpan LongPollingTimeout { get; set; } = TimeSpan.FromSeconds(90);
  39. /// <summary>
  40. /// 配置数据格式,默认 Properties
  41. /// </summary>
  42. public ApolloDataFormat DataFormat { get; set; } = ApolloDataFormat.Properties;
  43. }
  44. /// <summary>
  45. /// Apollo 数据格式
  46. /// </summary>
  47. public enum ApolloDataFormat
  48. {
  49. /// <summary>
  50. /// Properties 格式(key=value)
  51. /// </summary>
  52. Properties,
  53. /// <summary>
  54. /// JSON 格式
  55. /// </summary>
  56. Json,
  57. /// <summary>
  58. /// YAML 格式
  59. /// </summary>
  60. Yaml
  61. }