All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.weicoder.kafka.KafkaProducers Maven / Gradle / Ivy

package com.weicoder.kafka;

import java.util.concurrent.Future;

import org.apache.kafka.clients.producer.Callback;
import org.apache.kafka.clients.producer.Producer;
import org.apache.kafka.clients.producer.RecordMetadata;

import com.weicoder.kafka.factory.KafkaFactory;

/**
 * 生产者
 * @author WD
 */
public final class KafkaProducers {
	// 生产者
	private final static Producers PRODUCER = KafkaFactory.getProducer();

	/**
	 * 获得生产者
	 * @return 生产者
	 */
	public static Producer getProducer() {
		return PRODUCER.getProducer();
	}

	/**
	 * 刷新缓存
	 */
	public static void flush() {
		PRODUCER.flush();
	}

	/**
	 * 发送数据
	 * @param topic 节点
	 * @param value 值
	 * @return 信息
	 */
	public static Future send(String topic, Object value) {
		return PRODUCER.send(topic, value);
	}

	/**
	 * 发送数据
	 * @param topic 节点
	 * @param key 键
	 * @param value 值
	 * @param callback 回调
	 * @return 信息
	 */
	public static Future send(String topic, Object key, Object value, Callback callback) {
		return PRODUCER.send(topic, key, value, callback);
	}

	/**
	 * 发送数据
	 * @param topic 节点
	 * @param value 值
	 * @return 信息
	 */
	public static Future send(String topic, Object value, Callback callback) {
		return PRODUCER.send(topic, value, callback);
	}

	/**
	 * 发送数据
	 * @param topic 节点
	 * @param key 键
	 * @param value 值
	 * @return 信息
	 */
	public static Future send(String topic, Object key, Object value) {
		return PRODUCER.send(topic, key, value);
	}

	/**
	 * 刷新缓存
	 * @param name kafka名称
	 */
	public static void flush(String name) {
		KafkaFactory.getProducer(name).flush();
	}

	/**
	 * 按kafka名称选择服务器 发送数据
	 * @param name kafka名称
	 * @param topic 节点
	 * @param value 值
	 * @return 信息
	 */
	public static Future sendN(String name, String topic, Object value) {
		return KafkaFactory.getProducer(name).send(topic, value);
	}

	/**
	 * 按kafka名称选择服务器 发送数据
	 * @param name kafka名称
	 * @param topic 节点
	 * @param key 键
	 * @param value 值
	 * @return 信息
	 */
	public static Future sendN(String name, String topic, Object key, Object value) {
		return KafkaFactory.getProducer(name).send(topic, key, value);
	}

	private KafkaProducers() {
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy