Class TopicService
java.lang.Object
pl.allegro.tech.hermes.management.domain.topic.TopicService
-
Constructor Summary
ConstructorsConstructorDescriptionTopicService(MultiDCAwareService multiDCAwareService, pl.allegro.tech.hermes.domain.topic.TopicRepository topicRepository, GroupService groupService, TopicProperties topicProperties, SchemaService schemaService, TopicMetricsRepository metricRepository, TopicBlacklistService topicBlacklistService, TopicValidator topicValidator, TopicContentTypeMigrationService topicContentTypeMigrationService, Clock clock, Auditor auditor, MultiDatacenterRepositoryCommandExecutor multiDcExecutor, RepositoryManager repositoryManager, TopicOwnerCache topicOwnerCache, SubscriptionRemover subscriptionRemover) -
Method Summary
Modifier and TypeMethodDescriptionvoidcreateTopicWithSchema(pl.allegro.tech.hermes.api.TopicWithSchema topicWithSchema, RequestUser createdBy, CreatorRights isAllowedToManage) fetchSingleMessageFromPrimary(String brokersClusterName, pl.allegro.tech.hermes.api.TopicName topicName, Integer partition, Long offset) List<pl.allegro.tech.hermes.api.Topic>pl.allegro.tech.hermes.api.TopicStatsgetStats()pl.allegro.tech.hermes.api.TopicgetTopicDetails(pl.allegro.tech.hermes.api.TopicName topicName) pl.allegro.tech.hermes.api.TopicMetricsgetTopicMetrics(pl.allegro.tech.hermes.api.TopicName topicName) pl.allegro.tech.hermes.api.TopicWithSchemagetTopicWithSchema(pl.allegro.tech.hermes.api.TopicName topicName) listFilteredTopicNames(String groupName, pl.allegro.tech.hermes.api.Query<pl.allegro.tech.hermes.api.Topic> query) listFilteredTopicNames(pl.allegro.tech.hermes.api.Query<pl.allegro.tech.hermes.api.Topic> query) List<pl.allegro.tech.hermes.api.Topic>listForOwnerId(pl.allegro.tech.hermes.api.OwnerId ownerId) listQualifiedTopicNames(String groupName) List<pl.allegro.tech.hermes.api.Topic>listTopics(String groupName) listTrackedTopicNames(String groupName) Optional<byte[]>preview(pl.allegro.tech.hermes.api.TopicName topicName, int idx) List<pl.allegro.tech.hermes.api.MessageTextPreview>previewText(pl.allegro.tech.hermes.api.TopicName topicName) List<pl.allegro.tech.hermes.api.Topic>queryTopic(pl.allegro.tech.hermes.api.Query<pl.allegro.tech.hermes.api.Topic> query) List<pl.allegro.tech.hermes.api.TopicNameWithMetrics>queryTopicsMetrics(pl.allegro.tech.hermes.api.Query<pl.allegro.tech.hermes.api.TopicNameWithMetrics> query) voidremoveTopicWithSchema(pl.allegro.tech.hermes.api.Topic topic, RequestUser removedBy) voidscheduleTouchTopic(pl.allegro.tech.hermes.api.TopicName topicName, RequestUser touchedBy) Topic is touched so other Hermes instances are notified to read latest topic schema from schema-registry.voidtouchTopic(pl.allegro.tech.hermes.api.TopicName topicName, RequestUser touchedBy) voidupdateTopic(pl.allegro.tech.hermes.api.TopicName topicName, pl.allegro.tech.hermes.api.PatchData patch, RequestUser modifiedBy) voidupdateTopicWithSchema(pl.allegro.tech.hermes.api.TopicName topicName, pl.allegro.tech.hermes.api.PatchData patch, RequestUser modifiedBy)
-
Constructor Details
-
TopicService
@Autowired public TopicService(MultiDCAwareService multiDCAwareService, pl.allegro.tech.hermes.domain.topic.TopicRepository topicRepository, GroupService groupService, TopicProperties topicProperties, SchemaService schemaService, TopicMetricsRepository metricRepository, TopicBlacklistService topicBlacklistService, TopicValidator topicValidator, TopicContentTypeMigrationService topicContentTypeMigrationService, Clock clock, Auditor auditor, MultiDatacenterRepositoryCommandExecutor multiDcExecutor, RepositoryManager repositoryManager, TopicOwnerCache topicOwnerCache, SubscriptionRemover subscriptionRemover)
-
-
Method Details
-
createTopicWithSchema
public void createTopicWithSchema(pl.allegro.tech.hermes.api.TopicWithSchema topicWithSchema, RequestUser createdBy, CreatorRights isAllowedToManage) -
removeTopicWithSchema
-
updateTopicWithSchema
public void updateTopicWithSchema(pl.allegro.tech.hermes.api.TopicName topicName, pl.allegro.tech.hermes.api.PatchData patch, RequestUser modifiedBy) -
updateTopic
public void updateTopic(pl.allegro.tech.hermes.api.TopicName topicName, pl.allegro.tech.hermes.api.PatchData patch, RequestUser modifiedBy) -
touchTopic
-
scheduleTouchTopic
public void scheduleTouchTopic(pl.allegro.tech.hermes.api.TopicName topicName, RequestUser touchedBy) Topic is touched so other Hermes instances are notified to read latest topic schema from schema-registry. However, schema-registry can be distributed so when schema is written there then it can not be available on all nodes immediately. This is the reason why we delay touch of topic here, to wait until schema is distributed on schema-registry nodes. -
listQualifiedTopicNames
-
listQualifiedTopicNames
-
listTopics
-
getTopicDetails
public pl.allegro.tech.hermes.api.Topic getTopicDetails(pl.allegro.tech.hermes.api.TopicName topicName) -
getTopicWithSchema
public pl.allegro.tech.hermes.api.TopicWithSchema getTopicWithSchema(pl.allegro.tech.hermes.api.TopicName topicName) -
getTopicMetrics
public pl.allegro.tech.hermes.api.TopicMetrics getTopicMetrics(pl.allegro.tech.hermes.api.TopicName topicName) -
fetchSingleMessageFromPrimary
-
listTrackedTopicNames
-
listTrackedTopicNames
-
listFilteredTopicNames
-
listFilteredTopicNames
-
queryTopic
public List<pl.allegro.tech.hermes.api.Topic> queryTopic(pl.allegro.tech.hermes.api.Query<pl.allegro.tech.hermes.api.Topic> query) -
getAllTopics
-
preview
-
previewText
public List<pl.allegro.tech.hermes.api.MessageTextPreview> previewText(pl.allegro.tech.hermes.api.TopicName topicName) -
queryTopicsMetrics
public List<pl.allegro.tech.hermes.api.TopicNameWithMetrics> queryTopicsMetrics(pl.allegro.tech.hermes.api.Query<pl.allegro.tech.hermes.api.TopicNameWithMetrics> query) -
getStats
public pl.allegro.tech.hermes.api.TopicStats getStats() -
listForOwnerId
public List<pl.allegro.tech.hermes.api.Topic> listForOwnerId(pl.allegro.tech.hermes.api.OwnerId ownerId)
-