@@ -496,34 +496,19 @@ private void AddPartitionTopicInfo(ZKGroupTopicDirs topicDirs, string partition,
496496 }
497497 var leader = leaderOpt . Value ;
498498 var znode = topicDirs . ConsumerOffsetDir + "/" + partition ;
499- var offsetString = this . zkClient . ReadData < string > ( znode , true ) ;
499+
500+ var offsetCommitedString = this . zkClient . ReadData < string > ( znode , true ) ;
500501
501502 //if first time starting a consumer, set the initial offset based on the config
502- long offset = 0 ;
503- long offsetCommited = 0 ;
504- if ( offsetString == null )
505- {
506- switch ( config . AutoOffsetReset )
507- {
508- case OffsetRequest . SmallestTime :
509- offset = this . EarliestOrLatestOffset ( topic , leader , partitionId , OffsetRequest . EarliestTime ) ;
510- break ;
511- case OffsetRequest . LargestTime :
512- offset = this . EarliestOrLatestOffset ( topic , leader , partitionId , OffsetRequest . LatestTime ) ;
513- break ;
514- default :
515- throw new ConfigurationErrorsException ( "Wrong value in autoOffsetReset in ConsumerConfig" ) ;
516- }
517- offsetCommited = Math . Max ( offset - 1 , 0 ) ;
518- }
519- else
503+ long offset = - 1 ;
504+ long offsetCommited = - 1 ;
505+ if ( offsetCommitedString != null )
520506 {
521- offsetCommited = long . Parse ( offsetString ) ;
522- long latestOffset = this . EarliestOrLatestOffset ( topic , leader , partitionId , OffsetRequest . LatestTime ) ;
523- offset = Math . Min ( offsetCommited + 1 , latestOffset ) ;
524- Logger . InfoFormat ( "Final offset {0} for topic {1} partition {2} OffsetCommited {3} latestOffset {4}"
525- , offset , topic , partition , offsetCommited , latestOffset ) ;
507+ offsetCommited = long . Parse ( offsetCommitedString ) ;
508+ offset = offsetCommited + 1 ;
526509 }
510+ Logger . InfoFormat ( "Final offset {0} for topic {1} partition {2} OffsetCommited {3}"
511+ , offset , topic , partition , offsetCommited ) ;
527512
528513 var queue = this . queues [ new Tuple < string , string > ( topic , consumerThreadId ) ] ;
529514 var partTopicInfo = new PartitionTopicInfo (
@@ -540,32 +525,6 @@ private void AddPartitionTopicInfo(ZKGroupTopicDirs topicDirs, string partition,
540525 Logger . InfoFormat ( "{0} selected new offset {1}" , partTopicInfo , offset ) ;
541526 }
542527
543- private long EarliestOrLatestOffset ( string topic , int brokerId , int partitionId , long earliestIoLatest )
544- {
545- Consumer consumer = null ;
546- long producedOffset = - 1 ;
547- try
548- {
549- var cluster = new Cluster ( this . zkClient ) ;
550- var broker = cluster . GetBroker ( brokerId ) ;
551- if ( broker == null )
552- {
553- throw new IllegalStateException ( string . Format ( "Broker {0} is unavailable. Cannot issue GetOffsetsBefore request" , brokerId ) ) ;
554- }
555- consumer = new Consumer ( this . config , broker . Host , broker . Port ) ;
556- var requestInfos = new Dictionary < string , List < PartitionOffsetRequestInfo > > ( ) ;
557- requestInfos [ topic ] = new List < PartitionOffsetRequestInfo > ( ) { new PartitionOffsetRequestInfo ( partitionId , earliestIoLatest , 1 ) } ;
558- var offsets = consumer . GetOffsetsBefore ( new OffsetRequest ( requestInfos ) ) ;
559-
560- producedOffset = offsets . ResponseMap [ topic ] . First ( ) . Offsets [ 0 ] ;
561- }
562- catch ( Exception ex )
563- {
564- Logger . ErrorFormat ( "error in EarliestOrLatestOffset() : {0}" , ex . FormatException ( ) ) ;
565- }
566- return producedOffset ;
567- }
568-
569528 private void ReleasePartitionOwnership ( IDictionary < string , IList < string > > topicThreadIdsMap )
570529 {
571530
0 commit comments