@Override public void removeOffset( TopicName topicName, String subscriptionName, KafkaTopicName topic, int partition) throws Exception { String offsetPath = KafkaZookeeperPaths.partitionOffsetPath( kafkaNamesMapper.toConsumerGroupId(Subscription.getId(topicName, subscriptionName)), topic, partition); curatorFramework.delete().forPath(offsetPath); }
@Override public void commitOffset(Subscription subscription, PartitionOffset partitionOffset) throws Exception { long firstToRead = partitionOffset.getOffset() + 1; byte[] data = String.valueOf(firstToRead).getBytes(Charset.forName("UTF-8")); String offsetPath = KafkaZookeeperPaths.partitionOffsetPath( kafkaNamesMapper.toConsumerGroupId(subscription), partitionOffset.getTopic(), partitionOffset.getPartition()); try { curatorFramework.setData().forPath(offsetPath, data); } catch (KeeperException.NoNodeException ex) { curatorFramework.create().creatingParentsIfNeeded().forPath(offsetPath, data); } }