pulsar创建topic

因为之前写了一个游标回滚的博客,牵扯到分区topic与非分区topic的区别,楼主总结了一些经验,有不对的地方欢迎指出
** 1. 分区topic的创建**
private static PulsarAdmin admin = null;
public void createTopic(){
topicName = “persistent://zhiwang3/whds9/admin3”;
numPartitions = 2;
try {
System.out.println( "开始创建topic : " + topicName );
admin.topics().createPartitionedTopic(topicName,numPartitions);
System.out.println( "topic创建成功 : " + topicName );
} catch (PulsarAdminException e) {
System.out.println( "topic已存在 : " + topicName );
}
// 设置权限
try {
String role1 = “*.role”;
Set actions1 = Sets.newHashSet(AuthAction.produce, AuthAction.consume);
admin.topics().grantPermission( topicName , role1, actions1);
System.out.println( “设置用户权限成功” );
} catch (PulsarAdminException e) {
}
}
现在的api只提供了分区topic的创建,但是功能支持还是非分区topic支持的更多。静等pulsar更加完善。
** 2. 分区topic的创建**
在创建producer和consumer的时候系统会默认创建topic,此时创建的就是非分区topic,例如系统中原先并没有topic persistent://zhiwang3/whds7/3,此时直接调用创建producer,就会创建非分区topicpersistent://zhiwang3/whds7/3。
private static Producer<byte[]> producer = null;
private static PulsarClient client = null;
public void createProcduce(){
try {
System.out.println(“begin create produce”);
// 构造Pulsar Client
this.client = PulsarClient.builder()
.serviceUrl(judgeValue(“serviceURL”))
.enableTcpNoDelay(true)
.build();
// 构造生产者
this.producer = client.newProducer(Schema.BYTES)
.producerName(judgeValue(“producerName”))
.topic(“persistent://zhiwang3/whds7/3”)
.create();
System.out.println(“create produce success”);
} catch (PulsarClientException e) {
e.printStackTrace();
}
}

还一种办法是,调用admin创建分区topic,admin.topics().createPartitionedTopic(topicName,numPartitions);
此时分区topic是persistent://zhiwang3/whds9/admin3。但是直接调用此topic来进行生产,会发现非分区topic多了两个。numPartitions=2;persistent://zhiwang3/whds9/admin3-partition-0和persistent://zhiwang3/whds9/admin3-partition-1。我们可以直接使用这两个非分区topic进行生产和消费。但是删除的时候还是要按照分区topic来进行删除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值