2025-04-09 14:33:20 +08:00
|
|
|
|
using System;
|
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
using System.Linq;
|
|
|
|
|
|
using System.Text;
|
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
|
|
|
|
|
|
|
namespace JiShe.CollectBus.Kafka.AdminClient
|
|
|
|
|
|
{
|
|
|
|
|
|
public interface IAdminClientService
|
|
|
|
|
|
{
|
2025-04-14 16:41:41 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 创建Kafka主题
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="topic">主题名称</param>
|
|
|
|
|
|
/// <param name="numPartitions">主题分区数量</param>
|
|
|
|
|
|
/// <param name="replicationFactor">副本数量,不能高于Brokers数量</param>
|
|
|
|
|
|
/// <returns></returns>
|
2025-04-12 15:11:18 +08:00
|
|
|
|
Task CreateTopicAsync(string topic, int numPartitions, short replicationFactor);
|
2025-04-14 16:41:41 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 删除Kafka主题
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="topic"></param>
|
|
|
|
|
|
/// <returns></returns>
|
2025-04-12 15:11:18 +08:00
|
|
|
|
Task DeleteTopicAsync(string topic);
|
2025-04-14 16:41:41 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 获取Kafka主题列表
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <returns></returns>
|
2025-04-12 15:11:18 +08:00
|
|
|
|
Task<List<string>> ListTopicsAsync();
|
2025-04-14 16:41:41 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 判断Kafka主题是否存在
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="topic"></param>
|
|
|
|
|
|
/// <returns></returns>
|
2025-04-12 15:11:18 +08:00
|
|
|
|
Task<bool> TopicExistsAsync(string topic);
|
2025-04-14 19:10:27 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 检测分区是否存在
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="topic"></param>
|
|
|
|
|
|
/// <param name="partitions"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
Dictionary<int, bool> CheckPartitionsExists(string topic, int[] partitions);
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 检测分区是否存在
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="topic"></param>
|
|
|
|
|
|
/// <param name="targetPartition"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
bool CheckPartitionsExist(string topic, int targetPartition);
|
2025-04-09 14:33:20 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|