├── README.md ├── consumers ├── build.gradle └── src │ └── main │ └── java │ └── com │ └── example │ └── kafka │ ├── ConsumerCommit.java │ ├── ConsumerMTopicRebalance.java │ ├── ConsumerPartitionAssign.java │ ├── ConsumerPartitionAssignSeek.java │ ├── ConsumerWakeup.java │ ├── ConsumerWakeupV2.java │ └── SimpleConsumer.java ├── practice ├── build.gradle └── src │ └── main │ ├── java │ └── com │ │ └── practice │ │ └── kafka │ │ ├── consumer │ │ ├── BaseConsumer.java │ │ ├── FileToDBConsumer.java │ │ ├── JDBCTester.java │ │ ├── OrderDBHandler.java │ │ ├── OrderDTO.java │ │ ├── OrderDeserializer.java │ │ ├── OrderSerdeConsumer.java │ │ └── OrderSerdeConsumerV2.java │ │ ├── event │ │ ├── EventHandler.java │ │ ├── FileEventHandler.java │ │ ├── FileEventSource.java │ │ └── MessageEvent.java │ │ ├── model │ │ └── OrderModel.java │ │ └── producer │ │ ├── FileAppendProducer.java │ │ ├── FileProducer.java │ │ ├── FileUtilAppend.java │ │ ├── OrderSerdeProducer.java │ │ └── OrderSerializer.java │ └── resources │ ├── pizza_append.txt │ └── pizza_sample.txt └── producers ├── build.gradle └── src └── main └── java └── com └── example └── kafka ├── CustomCallback.java ├── CustomPartitioner.java ├── PizzaMessage.java ├── PizzaProducer.java ├── PizzaProducerCustomPartitioner.java ├── ProducerASyncCustomCB.java ├── ProducerASyncWithKey.java ├── SimpleProducer.java ├── SimpleProducerASync.java └── SimpleProducerSync.java /README.md: -------------------------------------------------------------------------------- 1 | # KafkaProj-01 2 | ### 인프런의 카프카 완벽 가이드 - 코어편의 자바 실습 코드 입니다. 3 | -------------------------------------------------------------------------------- /consumers/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'java' 3 | } 4 | 5 | group 'com.example' 6 | version '1.0-SNAPSHOT' 7 | 8 | repositories { 9 | mavenCentral() 10 | } 11 | 12 | dependencies { 13 | // https://mvnrepository.com/artifact/org.apache.kafka/kafka-clients 14 | implementation 'org.apache.kafka:kafka-clients:3.1.0' 15 | // https://mvnrepository.com/artifact/org.slf4j/slf4j-api 16 | implementation 'org.slf4j:slf4j-api:1.7.36' 17 | // https://mvnrepository.com/artifact/org.slf4j/slf4j-simple 18 | implementation 'org.slf4j:slf4j-simple:1.7.36' 19 | 20 | } 21 | 22 | test { 23 | useJUnitPlatform() 24 | } -------------------------------------------------------------------------------- /consumers/src/main/java/com/example/kafka/ConsumerCommit.java: -------------------------------------------------------------------------------- 1 | package com.example.kafka; 2 | 3 | import org.apache.kafka.clients.consumer.*; 4 | import org.apache.kafka.common.TopicPartition; 5 | import org.apache.kafka.common.errors.WakeupException; 6 | import org.apache.kafka.common.serialization.StringDeserializer; 7 | import org.slf4j.Logger; 8 | import org.slf4j.LoggerFactory; 9 | 10 | import java.time.Duration; 11 | import java.util.List; 12 | import java.util.Map; 13 | import java.util.Properties; 14 | 15 | public class ConsumerCommit { 16 | 17 | public static final Logger logger = LoggerFactory.getLogger(ConsumerCommit.class.getName()); 18 | 19 | public static void main(String[] args) { 20 | 21 | String topicName = "pizza-topic"; 22 | 23 | Properties props = new Properties(); 24 | props.setProperty(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, "192.168.56.101:9092"); 25 | props.setProperty(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class.getName()); 26 | props.setProperty(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class.getName()); 27 | props.setProperty(ConsumerConfig.GROUP_ID_CONFIG, "group_03"); 28 | //props.setProperty(ConsumerConfig.AUTO_COMMIT_INTERVAL_MS_CONFIG, "6000"); 29 | props.setProperty(ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG, "false"); 30 | props.setProperty(ConsumerConfig.PARTITION_ASSIGNMENT_STRATEGY_CONFIG, CooperativeStickyAssignor.class.getName()); 31 | 32 | KafkaConsumer kafkaConsumer = new KafkaConsumer(props); 33 | kafkaConsumer.subscribe(List.of(topicName)); 34 | 35 | //main thread 36 | Thread mainThread = Thread.currentThread(); 37 | 38 | //main thread 종료시 별도의 thread로 KafkaConsumer wakeup()메소드를 호출하게 함. 39 | Runtime.getRuntime().addShutdownHook(new Thread() { 40 | public void run() { 41 | logger.info(" main program starts to exit by calling wakeup"); 42 | kafkaConsumer.wakeup(); 43 | 44 | try { 45 | mainThread.join(); 46 | } catch(InterruptedException e) { e.printStackTrace();} 47 | } 48 | }); 49 | 50 | //kafkaConsumer.close(); 51 | //pollAutoCommit(kafkaConsumer); 52 | //pollCommitSync(kafkaConsumer); 53 | pollCommitAsync(kafkaConsumer); 54 | 55 | 56 | 57 | } 58 | 59 | private static void pollCommitAsync(KafkaConsumer kafkaConsumer) { 60 | int loopCnt = 0; 61 | 62 | try { 63 | while (true) { 64 | ConsumerRecords consumerRecords = kafkaConsumer.poll(Duration.ofMillis(1000)); 65 | logger.info(" ######## loopCnt: {} consumerRecords count:{}", loopCnt++, consumerRecords.count()); 66 | for (ConsumerRecord record : consumerRecords) { 67 | logger.info("record key:{}, partition:{}, record offset:{} record value:{}", 68 | record.key(), record.partition(), record.offset(), record.value()); 69 | } 70 | kafkaConsumer.commitAsync(new OffsetCommitCallback() { 71 | @Override 72 | public void onComplete(Map offsets, Exception exception) { 73 | if(exception != null) { 74 | logger.error("offsets {} is not completed, error:{}", offsets, exception.getMessage()); 75 | } 76 | } 77 | }); 78 | 79 | } 80 | }catch(WakeupException e) { 81 | logger.error("wakeup exception has been called"); 82 | }catch(Exception e) { 83 | logger.error(e.getMessage()); 84 | }finally { 85 | logger.info("##### commit sync before closing"); 86 | kafkaConsumer.commitSync(); 87 | logger.info("finally consumer is closing"); 88 | kafkaConsumer.close(); 89 | } 90 | 91 | } 92 | 93 | private static void pollCommitSync(KafkaConsumer kafkaConsumer) { 94 | int loopCnt = 0; 95 | 96 | try { 97 | while (true) { 98 | ConsumerRecords consumerRecords = kafkaConsumer.poll(Duration.ofMillis(1000)); 99 | logger.info(" ######## loopCnt: {} consumerRecords count:{}", loopCnt++, consumerRecords.count()); 100 | for (ConsumerRecord record : consumerRecords) { 101 | logger.info("record key:{}, partition:{}, record offset:{} record value:{}", 102 | record.key(), record.partition(), record.offset(), record.value()); 103 | } 104 | try { 105 | if(consumerRecords.count() > 0 ) { 106 | kafkaConsumer.commitSync(); 107 | logger.info("commit sync has been called"); 108 | } 109 | } catch(CommitFailedException e) { 110 | logger.error(e.getMessage()); 111 | } 112 | 113 | } 114 | }catch(WakeupException e) { 115 | logger.error("wakeup exception has been called"); 116 | }catch(Exception e) { 117 | logger.error(e.getMessage()); 118 | }finally { 119 | logger.info("finally consumer is closing"); 120 | kafkaConsumer.close(); 121 | } 122 | 123 | } 124 | 125 | 126 | public static void pollAutoCommit(KafkaConsumer kafkaConsumer) { 127 | int loopCnt = 0; 128 | 129 | try { 130 | while (true) { 131 | ConsumerRecords consumerRecords = kafkaConsumer.poll(Duration.ofMillis(1000)); 132 | logger.info(" ######## loopCnt: {} consumerRecords count:{}", loopCnt++, consumerRecords.count()); 133 | for (ConsumerRecord record : consumerRecords) { 134 | logger.info("record key:{}, partition:{}, record offset:{} record value:{}", 135 | record.key(), record.partition(), record.offset(), record.value()); 136 | } 137 | try { 138 | logger.info("main thread is sleeping {} ms during while loop", 10000); 139 | Thread.sleep(10000); 140 | }catch(InterruptedException e) { 141 | e.printStackTrace(); 142 | } 143 | } 144 | }catch(WakeupException e) { logger.error("wakeup exception has been called"); 145 | }finally { 146 | logger.info("finally consumer is closing"); 147 | kafkaConsumer.close(); 148 | } 149 | 150 | } 151 | } 152 | -------------------------------------------------------------------------------- /consumers/src/main/java/com/example/kafka/ConsumerMTopicRebalance.java: -------------------------------------------------------------------------------- 1 | package com.example.kafka; 2 | 3 | import org.apache.kafka.clients.consumer.*; 4 | import org.apache.kafka.common.errors.WakeupException; 5 | import org.apache.kafka.common.serialization.StringDeserializer; 6 | import org.slf4j.Logger; 7 | import org.slf4j.LoggerFactory; 8 | 9 | import java.time.Duration; 10 | import java.util.List; 11 | import java.util.Properties; 12 | 13 | public class ConsumerMTopicRebalance { 14 | 15 | public static final Logger logger = LoggerFactory.getLogger(ConsumerMTopicRebalance.class.getName()); 16 | 17 | public static void main(String[] args) { 18 | 19 | //String topicName = "pizza-topic"; 20 | 21 | Properties props = new Properties(); 22 | props.setProperty(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, "192.168.56.101:9092"); 23 | props.setProperty(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class.getName()); 24 | props.setProperty(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class.getName()); 25 | props.setProperty(ConsumerConfig.GROUP_ID_CONFIG, "group-assign"); 26 | // props.setProperty(ConsumerConfig.GROUP_ID_CONFIG, "group-01-static"); 27 | // props.setProperty(ConsumerConfig.GROUP_INSTANCE_ID_CONFIG, "3"); 28 | props.setProperty(ConsumerConfig.PARTITION_ASSIGNMENT_STRATEGY_CONFIG, CooperativeStickyAssignor.class.getName()); 29 | 30 | KafkaConsumer kafkaConsumer = new KafkaConsumer(props); 31 | kafkaConsumer.subscribe(List.of("topic-p3-t1", "topic-p3-t2")); 32 | 33 | //main thread 34 | Thread mainThread = Thread.currentThread(); 35 | 36 | //main thread 종료시 별도의 thread로 KafkaConsumer wakeup()메소드를 호출하게 함. 37 | Runtime.getRuntime().addShutdownHook(new Thread() { 38 | public void run() { 39 | logger.info(" main program starts to exit by calling wakeup"); 40 | kafkaConsumer.wakeup(); 41 | 42 | try { 43 | mainThread.join(); 44 | } catch(InterruptedException e) { e.printStackTrace();} 45 | } 46 | }); 47 | 48 | try { 49 | while (true) { 50 | ConsumerRecords consumerRecords = kafkaConsumer.poll(Duration.ofMillis(1000)); 51 | 52 | for (ConsumerRecord record : consumerRecords) { 53 | logger.info("topic:{}, record key:{}, partition:{}, record offset:{} record value:{}", 54 | record.topic(), record.key(), record.partition(), record.offset(), record.value()); 55 | } 56 | } 57 | }catch(WakeupException e) { 58 | logger.error("wakeup exception has been called"); 59 | }finally { 60 | logger.info("finally consumer is closing"); 61 | kafkaConsumer.close(); 62 | } 63 | 64 | //kafkaConsumer.close(); 65 | 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /consumers/src/main/java/com/example/kafka/ConsumerPartitionAssign.java: -------------------------------------------------------------------------------- 1 | package com.example.kafka; 2 | 3 | import org.apache.kafka.clients.consumer.*; 4 | import org.apache.kafka.common.TopicPartition; 5 | import org.apache.kafka.common.errors.WakeupException; 6 | import org.apache.kafka.common.serialization.StringDeserializer; 7 | import org.slf4j.Logger; 8 | import org.slf4j.LoggerFactory; 9 | 10 | import java.time.Duration; 11 | import java.util.Arrays; 12 | import java.util.Map; 13 | import java.util.Properties; 14 | 15 | public class ConsumerPartitionAssign { 16 | 17 | public static final Logger logger = LoggerFactory.getLogger(ConsumerPartitionAssign.class.getName()); 18 | 19 | public static void main(String[] args) { 20 | 21 | String topicName = "pizza-topic"; 22 | 23 | Properties props = new Properties(); 24 | props.setProperty(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, "192.168.56.101:9092"); 25 | props.setProperty(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class.getName()); 26 | props.setProperty(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class.getName()); 27 | props.setProperty(ConsumerConfig.GROUP_ID_CONFIG, "group_pizza_assign_seek"); 28 | //props.setProperty(ConsumerConfig.AUTO_COMMIT_INTERVAL_MS_CONFIG, "6000"); 29 | props.setProperty(ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG, "false"); 30 | 31 | 32 | KafkaConsumer kafkaConsumer = new KafkaConsumer(props); 33 | TopicPartition topicPartition = new TopicPartition(topicName, 0); 34 | //kafkaConsumer.subscribe(List.of(topicName)); 35 | kafkaConsumer.assign(Arrays.asList(topicPartition)); 36 | 37 | //main thread 38 | Thread mainThread = Thread.currentThread(); 39 | 40 | //main thread 종료시 별도의 thread로 KafkaConsumer wakeup()메소드를 호출하게 함. 41 | Runtime.getRuntime().addShutdownHook(new Thread() { 42 | public void run() { 43 | logger.info(" main program starts to exit by calling wakeup"); 44 | kafkaConsumer.wakeup(); 45 | 46 | try { 47 | mainThread.join(); 48 | } catch(InterruptedException e) { e.printStackTrace();} 49 | } 50 | }); 51 | 52 | //kafkaConsumer.close(); 53 | //pollAutoCommit(kafkaConsumer); 54 | pollCommitSync(kafkaConsumer); 55 | //pollCommitAsync(kafkaConsumer); 56 | 57 | 58 | 59 | } 60 | 61 | private static void pollCommitAsync(KafkaConsumer kafkaConsumer) { 62 | int loopCnt = 0; 63 | 64 | try { 65 | while (true) { 66 | ConsumerRecords consumerRecords = kafkaConsumer.poll(Duration.ofMillis(1000)); 67 | logger.info(" ######## loopCnt: {} consumerRecords count:{}", loopCnt++, consumerRecords.count()); 68 | for (ConsumerRecord record : consumerRecords) { 69 | logger.info("record key:{}, partition:{}, record offset:{} record value:{}", 70 | record.key(), record.partition(), record.offset(), record.value()); 71 | } 72 | kafkaConsumer.commitAsync(new OffsetCommitCallback() { 73 | @Override 74 | public void onComplete(Map offsets, Exception exception) { 75 | if(exception != null) { 76 | logger.error("offsets {} is not completed, error:{}", offsets, exception.getMessage()); 77 | } 78 | } 79 | }); 80 | 81 | } 82 | }catch(WakeupException e) { 83 | logger.error("wakeup exception has been called"); 84 | }catch(Exception e) { 85 | logger.error(e.getMessage()); 86 | }finally { 87 | logger.info("##### commit sync before closing"); 88 | kafkaConsumer.commitSync(); 89 | logger.info("finally consumer is closing"); 90 | kafkaConsumer.close(); 91 | } 92 | 93 | } 94 | 95 | private static void pollCommitSync(KafkaConsumer kafkaConsumer) { 96 | int loopCnt = 0; 97 | 98 | try { 99 | while (true) { 100 | ConsumerRecords consumerRecords = kafkaConsumer.poll(Duration.ofMillis(1000)); 101 | logger.info(" ######## loopCnt: {} consumerRecords count:{}", loopCnt++, consumerRecords.count()); 102 | for (ConsumerRecord record : consumerRecords) { 103 | logger.info("record key:{}, partition:{}, record offset:{} record value:{}", 104 | record.key(), record.partition(), record.offset(), record.value()); 105 | } 106 | try { 107 | if(consumerRecords.count() > 0 ) { 108 | kafkaConsumer.commitSync(); 109 | logger.info("commit sync has been called"); 110 | } 111 | } catch(CommitFailedException e) { 112 | logger.error(e.getMessage()); 113 | } 114 | 115 | } 116 | }catch(WakeupException e) { 117 | logger.error("wakeup exception has been called"); 118 | }catch(Exception e) { 119 | logger.error(e.getMessage()); 120 | }finally { 121 | logger.info("finally consumer is closing"); 122 | kafkaConsumer.close(); 123 | } 124 | 125 | } 126 | 127 | 128 | public static void pollAutoCommit(KafkaConsumer kafkaConsumer) { 129 | int loopCnt = 0; 130 | 131 | try { 132 | while (true) { 133 | ConsumerRecords consumerRecords = kafkaConsumer.poll(Duration.ofMillis(1000)); 134 | logger.info(" ######## loopCnt: {} consumerRecords count:{}", loopCnt++, consumerRecords.count()); 135 | for (ConsumerRecord record : consumerRecords) { 136 | logger.info("record key:{}, partition:{}, record offset:{} record value:{}", 137 | record.key(), record.partition(), record.offset(), record.value()); 138 | } 139 | try { 140 | logger.info("main thread is sleeping {} ms during while loop", 10000); 141 | Thread.sleep(10000); 142 | }catch(InterruptedException e) { 143 | e.printStackTrace(); 144 | } 145 | } 146 | }catch(WakeupException e) { logger.error("wakeup exception has been called"); 147 | }finally { 148 | logger.info("finally consumer is closing"); 149 | kafkaConsumer.close(); 150 | } 151 | 152 | } 153 | } 154 | -------------------------------------------------------------------------------- /consumers/src/main/java/com/example/kafka/ConsumerPartitionAssignSeek.java: -------------------------------------------------------------------------------- 1 | package com.example.kafka; 2 | 3 | import org.apache.kafka.clients.consumer.*; 4 | import org.apache.kafka.common.TopicPartition; 5 | import org.apache.kafka.common.errors.WakeupException; 6 | import org.apache.kafka.common.serialization.StringDeserializer; 7 | import org.slf4j.Logger; 8 | import org.slf4j.LoggerFactory; 9 | 10 | import java.time.Duration; 11 | import java.util.Arrays; 12 | import java.util.Map; 13 | import java.util.Properties; 14 | 15 | public class ConsumerPartitionAssignSeek { 16 | 17 | public static final Logger logger = LoggerFactory.getLogger(ConsumerPartitionAssignSeek.class.getName()); 18 | 19 | public static void main(String[] args) { 20 | 21 | String topicName = "pizza-topic"; 22 | 23 | Properties props = new Properties(); 24 | props.setProperty(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, "192.168.56.101:9092"); 25 | props.setProperty(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class.getName()); 26 | props.setProperty(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class.getName()); 27 | //props.setProperty(ConsumerConfig.GROUP_ID_CONFIG, "group_pizza_assign_seek_v001"); 28 | //props.setProperty(ConsumerConfig.AUTO_COMMIT_INTERVAL_MS_CONFIG, "6000"); 29 | props.setProperty(ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG, "false"); 30 | 31 | 32 | KafkaConsumer kafkaConsumer = new KafkaConsumer(props); 33 | TopicPartition topicPartition = new TopicPartition(topicName, 0); 34 | //kafkaConsumer.subscribe(List.of(topicName)); 35 | kafkaConsumer.assign(Arrays.asList(topicPartition)); 36 | kafkaConsumer.seek(topicPartition, 5L); 37 | 38 | //main thread 39 | Thread mainThread = Thread.currentThread(); 40 | 41 | //main thread 종료시 별도의 thread로 KafkaConsumer wakeup()메소드를 호출하게 함. 42 | Runtime.getRuntime().addShutdownHook(new Thread() { 43 | public void run() { 44 | logger.info(" main program starts to exit by calling wakeup"); 45 | kafkaConsumer.wakeup(); 46 | 47 | try { 48 | mainThread.join(); 49 | } catch(InterruptedException e) { e.printStackTrace();} 50 | } 51 | }); 52 | 53 | //kafkaConsumer.close(); 54 | //pollAutoCommit(kafkaConsumer); 55 | //pollCommitSync(kafkaConsumer); 56 | //pollCommitAsync(kafkaConsumer); 57 | pollNoCommit(kafkaConsumer); 58 | 59 | } 60 | 61 | private static void pollNoCommit(KafkaConsumer kafkaConsumer) { 62 | int loopCnt = 0; 63 | 64 | try { 65 | while (true) { 66 | ConsumerRecords consumerRecords = kafkaConsumer.poll(Duration.ofMillis(1000)); 67 | logger.info(" ######## loopCnt: {} consumerRecords count:{}", loopCnt++, consumerRecords.count()); 68 | for (ConsumerRecord record : consumerRecords) { 69 | logger.info("record key:{}, partition:{}, record offset:{} record value:{}", 70 | record.key(), record.partition(), record.offset(), record.value()); 71 | } 72 | 73 | 74 | } 75 | }catch(WakeupException e) { 76 | logger.error("wakeup exception has been called"); 77 | }catch(Exception e) { 78 | logger.error(e.getMessage()); 79 | }finally { 80 | logger.info("finally consumer is closing"); 81 | kafkaConsumer.close(); 82 | } 83 | 84 | } 85 | 86 | private static void pollCommitAsync(KafkaConsumer kafkaConsumer) { 87 | int loopCnt = 0; 88 | 89 | try { 90 | while (true) { 91 | ConsumerRecords consumerRecords = kafkaConsumer.poll(Duration.ofMillis(1000)); 92 | logger.info(" ######## loopCnt: {} consumerRecords count:{}", loopCnt++, consumerRecords.count()); 93 | for (ConsumerRecord record : consumerRecords) { 94 | logger.info("record key:{}, partition:{}, record offset:{} record value:{}", 95 | record.key(), record.partition(), record.offset(), record.value()); 96 | } 97 | kafkaConsumer.commitAsync(new OffsetCommitCallback() { 98 | @Override 99 | public void onComplete(Map offsets, Exception exception) { 100 | if(exception != null) { 101 | logger.error("offsets {} is not completed, error:{}", offsets, exception.getMessage()); 102 | } 103 | } 104 | }); 105 | 106 | } 107 | }catch(WakeupException e) { 108 | logger.error("wakeup exception has been called"); 109 | }catch(Exception e) { 110 | logger.error(e.getMessage()); 111 | }finally { 112 | logger.info("##### commit sync before closing"); 113 | kafkaConsumer.commitSync(); 114 | logger.info("finally consumer is closing"); 115 | kafkaConsumer.close(); 116 | } 117 | 118 | } 119 | 120 | private static void pollCommitSync(KafkaConsumer kafkaConsumer) { 121 | int loopCnt = 0; 122 | 123 | try { 124 | while (true) { 125 | ConsumerRecords consumerRecords = kafkaConsumer.poll(Duration.ofMillis(1000)); 126 | logger.info(" ######## loopCnt: {} consumerRecords count:{}", loopCnt++, consumerRecords.count()); 127 | for (ConsumerRecord record : consumerRecords) { 128 | logger.info("record key:{}, partition:{}, record offset:{} record value:{}", 129 | record.key(), record.partition(), record.offset(), record.value()); 130 | } 131 | try { 132 | if(consumerRecords.count() > 0 ) { 133 | kafkaConsumer.commitSync(); 134 | logger.info("commit sync has been called"); 135 | } 136 | } catch(CommitFailedException e) { 137 | logger.error(e.getMessage()); 138 | } 139 | 140 | } 141 | }catch(WakeupException e) { 142 | logger.error("wakeup exception has been called"); 143 | }catch(Exception e) { 144 | logger.error(e.getMessage()); 145 | }finally { 146 | logger.info("finally consumer is closing"); 147 | kafkaConsumer.close(); 148 | } 149 | 150 | } 151 | 152 | 153 | public static void pollAutoCommit(KafkaConsumer kafkaConsumer) { 154 | int loopCnt = 0; 155 | 156 | try { 157 | while (true) { 158 | ConsumerRecords consumerRecords = kafkaConsumer.poll(Duration.ofMillis(1000)); 159 | logger.info(" ######## loopCnt: {} consumerRecords count:{}", loopCnt++, consumerRecords.count()); 160 | for (ConsumerRecord record : consumerRecords) { 161 | logger.info("record key:{}, partition:{}, record offset:{} record value:{}", 162 | record.key(), record.partition(), record.offset(), record.value()); 163 | } 164 | try { 165 | logger.info("main thread is sleeping {} ms during while loop", 10000); 166 | Thread.sleep(10000); 167 | }catch(InterruptedException e) { 168 | e.printStackTrace(); 169 | } 170 | } 171 | }catch(WakeupException e) { logger.error("wakeup exception has been called"); 172 | }finally { 173 | logger.info("finally consumer is closing"); 174 | kafkaConsumer.close(); 175 | } 176 | 177 | } 178 | } 179 | -------------------------------------------------------------------------------- /consumers/src/main/java/com/example/kafka/ConsumerWakeup.java: -------------------------------------------------------------------------------- 1 | package com.example.kafka; 2 | 3 | import org.apache.kafka.clients.consumer.*; 4 | import org.apache.kafka.common.errors.WakeupException; 5 | import org.apache.kafka.common.serialization.StringDeserializer; 6 | import org.slf4j.Logger; 7 | import org.slf4j.LoggerFactory; 8 | 9 | import java.time.Duration; 10 | import java.util.List; 11 | import java.util.Properties; 12 | 13 | public class ConsumerWakeup { 14 | 15 | public static final Logger logger = LoggerFactory.getLogger(ConsumerWakeup.class.getName()); 16 | 17 | public static void main(String[] args) { 18 | 19 | String topicName = "pizza-topic"; 20 | 21 | Properties props = new Properties(); 22 | props.setProperty(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, "192.168.56.101:9092"); 23 | props.setProperty(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class.getName()); 24 | props.setProperty(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class.getName()); 25 | props.setProperty(ConsumerConfig.GROUP_ID_CONFIG, "group-01"); 26 | // props.setProperty(ConsumerConfig.GROUP_ID_CONFIG, "group-01-static"); 27 | // props.setProperty(ConsumerConfig.GROUP_INSTANCE_ID_CONFIG, "3"); 28 | 29 | KafkaConsumer kafkaConsumer = new KafkaConsumer(props); 30 | kafkaConsumer.subscribe(List.of(topicName)); 31 | 32 | //main thread 33 | Thread mainThread = Thread.currentThread(); 34 | 35 | //main thread 종료시 별도의 thread로 KafkaConsumer wakeup()메소드를 호출하게 함. 36 | Runtime.getRuntime().addShutdownHook(new Thread() { 37 | public void run() { 38 | logger.info(" main program starts to exit by calling wakeup"); 39 | kafkaConsumer.wakeup(); 40 | 41 | try { 42 | mainThread.join(); 43 | } catch(InterruptedException e) { e.printStackTrace();} 44 | } 45 | }); 46 | 47 | try { 48 | while (true) { 49 | ConsumerRecords consumerRecords = kafkaConsumer.poll(Duration.ofMillis(1000)); 50 | 51 | for (ConsumerRecord record : consumerRecords) { 52 | logger.info("record key:{}, partition:{}, record offset:{} record value:{}", 53 | record.key(), record.partition(), record.offset(), record.value()); 54 | } 55 | } 56 | }catch(WakeupException e) { 57 | logger.error("wakeup exception has been called"); 58 | }finally { 59 | logger.info("finally consumer is closing"); 60 | kafkaConsumer.close(); 61 | } 62 | 63 | //kafkaConsumer.close(); 64 | 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /consumers/src/main/java/com/example/kafka/ConsumerWakeupV2.java: -------------------------------------------------------------------------------- 1 | package com.example.kafka; 2 | 3 | import org.apache.kafka.clients.consumer.ConsumerConfig; 4 | import org.apache.kafka.clients.consumer.ConsumerRecord; 5 | import org.apache.kafka.clients.consumer.ConsumerRecords; 6 | import org.apache.kafka.clients.consumer.KafkaConsumer; 7 | import org.apache.kafka.common.errors.WakeupException; 8 | import org.apache.kafka.common.serialization.StringDeserializer; 9 | import org.slf4j.Logger; 10 | import org.slf4j.LoggerFactory; 11 | 12 | import java.time.Duration; 13 | import java.util.List; 14 | import java.util.Properties; 15 | 16 | public class ConsumerWakeupV2 { 17 | 18 | public static final Logger logger = LoggerFactory.getLogger(ConsumerWakeupV2.class.getName()); 19 | 20 | public static void main(String[] args) { 21 | 22 | String topicName = "pizza-topic"; 23 | 24 | Properties props = new Properties(); 25 | props.setProperty(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, "192.168.56.101:9092"); 26 | props.setProperty(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class.getName()); 27 | props.setProperty(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class.getName()); 28 | props.setProperty(ConsumerConfig.GROUP_ID_CONFIG, "group_02"); 29 | props.setProperty(ConsumerConfig.MAX_POLL_INTERVAL_MS_CONFIG, "60000"); 30 | 31 | KafkaConsumer kafkaConsumer = new KafkaConsumer(props); 32 | kafkaConsumer.subscribe(List.of(topicName)); 33 | 34 | //main thread 35 | Thread mainThread = Thread.currentThread(); 36 | 37 | //main thread 종료시 별도의 thread로 KafkaConsumer wakeup()메소드를 호출하게 함. 38 | Runtime.getRuntime().addShutdownHook(new Thread() { 39 | public void run() { 40 | logger.info(" main program starts to exit by calling wakeup"); 41 | kafkaConsumer.wakeup(); 42 | 43 | try { 44 | mainThread.join(); 45 | } catch(InterruptedException e) { e.printStackTrace();} 46 | } 47 | }); 48 | 49 | int loopCnt = 0; 50 | 51 | try { 52 | while (true) { 53 | ConsumerRecords consumerRecords = kafkaConsumer.poll(Duration.ofMillis(1000)); 54 | logger.info(" ######## loopCnt: {} consumerRecords count:{}", loopCnt++, consumerRecords.count()); 55 | for (ConsumerRecord record : consumerRecords) { 56 | logger.info("record key:{}, partition:{}, record offset:{} record value:{}", 57 | record.key(), record.partition(), record.offset(), record.value()); 58 | } 59 | try { 60 | logger.info("main thread is sleeping {} ms during while loop", loopCnt*10000); 61 | Thread.sleep(loopCnt*10000); 62 | }catch(InterruptedException e) { 63 | e.printStackTrace(); 64 | } 65 | } 66 | }catch(WakeupException e) { 67 | logger.error("wakeup exception has been called"); 68 | }finally { 69 | logger.info("finally consumer is closing"); 70 | kafkaConsumer.close(); 71 | } 72 | 73 | //kafkaConsumer.close(); 74 | 75 | } 76 | } 77 | -------------------------------------------------------------------------------- /consumers/src/main/java/com/example/kafka/SimpleConsumer.java: -------------------------------------------------------------------------------- 1 | package com.example.kafka; 2 | 3 | import org.apache.kafka.clients.consumer.ConsumerConfig; 4 | import org.apache.kafka.clients.consumer.ConsumerRecord; 5 | import org.apache.kafka.clients.consumer.ConsumerRecords; 6 | import org.apache.kafka.clients.consumer.KafkaConsumer; 7 | import org.apache.kafka.common.serialization.StringDeserializer; 8 | import org.slf4j.Logger; 9 | import org.slf4j.LoggerFactory; 10 | 11 | import java.time.Duration; 12 | import java.util.List; 13 | import java.util.Properties; 14 | 15 | public class SimpleConsumer { 16 | 17 | public static final Logger logger = LoggerFactory.getLogger(SimpleConsumer.class.getName()); 18 | 19 | public static void main(String[] args) { 20 | 21 | String topicName = "simple-topic"; 22 | 23 | Properties props = new Properties(); 24 | props.setProperty(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, "192.168.56.101:9092"); 25 | props.setProperty(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class.getName()); 26 | props.setProperty(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class.getName()); 27 | props.setProperty(ConsumerConfig.GROUP_ID_CONFIG, "group-01"); 28 | 29 | 30 | KafkaConsumer kafkaConsumer = new KafkaConsumer(props); 31 | kafkaConsumer.subscribe(List.of(topicName)); 32 | 33 | 34 | while (true) { 35 | ConsumerRecords consumerRecords = kafkaConsumer.poll(Duration.ofMillis(1000)); 36 | for (ConsumerRecord record : consumerRecords) { 37 | logger.info("record key:{}, record value:{}, partition:{}", 38 | record.key(), record.value(), record.partition()); 39 | } 40 | } 41 | 42 | //kafkaConsumer.close(); 43 | 44 | } 45 | } 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /practice/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'java' 3 | } 4 | 5 | group 'org.example' 6 | version 'unspecified' 7 | 8 | repositories { 9 | mavenCentral() 10 | } 11 | 12 | dependencies { 13 | // https://mvnrepository.com/artifact/org.apache.kafka/kafka-clients 14 | implementation 'org.apache.kafka:kafka-clients:3.1.0' 15 | // https://mvnrepository.com/artifact/org.slf4j/slf4j-api 16 | implementation 'org.slf4j:slf4j-api:1.7.36' 17 | // https://mvnrepository.com/artifact/org.slf4j/slf4j-simple 18 | implementation 'org.slf4j:slf4j-simple:1.7.36' 19 | 20 | // https://mvnrepository.com/artifact/com.github.javafaker/javafaker 21 | implementation 'com.github.javafaker:javafaker:1.0.2' 22 | 23 | // https://mvnrepository.com/artifact/org.postgresql/postgresql 24 | implementation 'org.postgresql:postgresql:42.4.0' 25 | 26 | // https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind 27 | implementation 'com.fasterxml.jackson.core:jackson-databind:2.13.3' 28 | 29 | // https://mvnrepository.com/artifact/com.fasterxml.jackson.datatype/jackson-datatype-jsr310 30 | implementation 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.13.3' 31 | 32 | 33 | 34 | } 35 | 36 | test { 37 | useJUnitPlatform() 38 | } -------------------------------------------------------------------------------- /practice/src/main/java/com/practice/kafka/consumer/BaseConsumer.java: -------------------------------------------------------------------------------- 1 | package com.practice.kafka.consumer; 2 | 3 | import org.apache.kafka.clients.consumer.*; 4 | import org.apache.kafka.common.errors.WakeupException; 5 | import org.apache.kafka.common.serialization.StringDeserializer; 6 | import org.slf4j.Logger; 7 | import org.slf4j.LoggerFactory; 8 | 9 | import java.io.Serializable; 10 | import java.time.Duration; 11 | import java.util.List; 12 | import java.util.Properties; 13 | 14 | public class BaseConsumer { 15 | public static final Logger logger = LoggerFactory.getLogger(BaseConsumer.class.getName()); 16 | 17 | private KafkaConsumer kafkaConsumer; 18 | private List topics; 19 | 20 | public BaseConsumer(Properties consumerProps, List topics) { 21 | this.kafkaConsumer = new KafkaConsumer(consumerProps); 22 | this.topics = topics; 23 | } 24 | 25 | public void initConsumer() { 26 | this.kafkaConsumer.subscribe(this.topics); 27 | shutdownHookToRuntime(this.kafkaConsumer); 28 | } 29 | 30 | private void shutdownHookToRuntime(KafkaConsumer kafkaConsumer) { 31 | //main thread 32 | Thread mainThread = Thread.currentThread(); 33 | 34 | //main thread 종료시 별도의 thread로 KafkaConsumer wakeup()메소드를 호출하게 함. 35 | Runtime.getRuntime().addShutdownHook(new Thread() { 36 | public void run() { 37 | logger.info(" main program starts to exit by calling wakeup"); 38 | kafkaConsumer.wakeup(); 39 | 40 | try { 41 | mainThread.join(); 42 | } catch(InterruptedException e) { e.printStackTrace();} 43 | } 44 | }); 45 | 46 | } 47 | 48 | private void processRecord(ConsumerRecord record) { 49 | logger.info("record key:{}, partition:{}, record offset:{} record value:{}", 50 | record.key(), record.partition(), record.offset(), record.value()); 51 | } 52 | 53 | private void processRecords(ConsumerRecords records) { 54 | records.forEach(record -> processRecord(record)); 55 | } 56 | 57 | 58 | public void pollConsumes(long durationMillis, String commitMode) { 59 | try { 60 | while (true) { 61 | if (commitMode.equals("sync")) { 62 | pollCommitSync(durationMillis); 63 | } else { 64 | pollCommitAsync(durationMillis); 65 | } 66 | } 67 | }catch(WakeupException e) { 68 | logger.error("wakeup exception has been called"); 69 | }catch(Exception e) { 70 | logger.error(e.getMessage()); 71 | }finally { 72 | logger.info("##### commit sync before closing"); 73 | kafkaConsumer.commitSync(); 74 | logger.info("finally consumer is closing"); 75 | closeConsumer(); 76 | } 77 | } 78 | 79 | private void pollCommitAsync(long durationMillis) throws WakeupException, Exception { 80 | ConsumerRecords consumerRecords = this.kafkaConsumer.poll(Duration.ofMillis(durationMillis)); 81 | processRecords(consumerRecords); 82 | this.kafkaConsumer.commitAsync( (offsets, exception) -> { 83 | if(exception != null) { 84 | logger.error("offsets {} is not completed, error:{}", offsets, exception.getMessage()); 85 | } 86 | 87 | }); 88 | 89 | } 90 | private void pollCommitSync(long durationMillis) throws WakeupException, Exception { 91 | ConsumerRecords consumerRecords = this.kafkaConsumer.poll(Duration.ofMillis(durationMillis)); 92 | processRecords(consumerRecords); 93 | try { 94 | if(consumerRecords.count() > 0 ) { 95 | this.kafkaConsumer.commitSync(); 96 | logger.info("commit sync has been called"); 97 | } 98 | } catch(CommitFailedException e) { 99 | logger.error(e.getMessage()); 100 | } 101 | } 102 | public void closeConsumer() { 103 | this.kafkaConsumer.close(); 104 | } 105 | 106 | public static void main(String[] args) { 107 | String topicName = "file-topic"; 108 | 109 | Properties props = new Properties(); 110 | props.setProperty(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, "192.168.56.101:9092"); 111 | props.setProperty(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class.getName()); 112 | props.setProperty(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class.getName()); 113 | props.setProperty(ConsumerConfig.GROUP_ID_CONFIG, "file-group"); 114 | props.setProperty(ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG, "false"); 115 | 116 | BaseConsumer baseConsumer = new BaseConsumer(props, List.of(topicName)); 117 | baseConsumer.initConsumer(); 118 | String commitMode = "async"; 119 | 120 | baseConsumer.pollConsumes(100, commitMode); 121 | baseConsumer.closeConsumer(); 122 | 123 | } 124 | 125 | 126 | } -------------------------------------------------------------------------------- /practice/src/main/java/com/practice/kafka/consumer/FileToDBConsumer.java: -------------------------------------------------------------------------------- 1 | package com.practice.kafka.consumer; 2 | 3 | import org.apache.kafka.clients.consumer.*; 4 | import org.apache.kafka.common.errors.WakeupException; 5 | import org.apache.kafka.common.serialization.StringDeserializer; 6 | import org.slf4j.Logger; 7 | import org.slf4j.LoggerFactory; 8 | 9 | import java.io.Serializable; 10 | import java.time.Duration; 11 | import java.time.LocalDateTime; 12 | import java.time.format.DateTimeFormatter; 13 | import java.util.ArrayList; 14 | import java.util.List; 15 | import java.util.Properties; 16 | 17 | public class FileToDBConsumer { 18 | public static final Logger logger = LoggerFactory.getLogger(FileToDBConsumer.class.getName()); 19 | protected KafkaConsumer kafkaConsumer; 20 | protected List topics; 21 | 22 | private OrderDBHandler orderDBHandler; 23 | public FileToDBConsumer(Properties consumerProps, List topics, 24 | OrderDBHandler orderDBHandler) { 25 | this.kafkaConsumer = new KafkaConsumer(consumerProps); 26 | this.topics = topics; 27 | this.orderDBHandler = orderDBHandler; 28 | } 29 | public void initConsumer() { 30 | this.kafkaConsumer.subscribe(this.topics); 31 | shutdownHookToRuntime(this.kafkaConsumer); 32 | } 33 | 34 | private void shutdownHookToRuntime(KafkaConsumer kafkaConsumer) { 35 | //main thread 36 | Thread mainThread = Thread.currentThread(); 37 | 38 | //main thread 종료시 별도의 thread로 KafkaConsumer wakeup()메소드를 호출하게 함. 39 | Runtime.getRuntime().addShutdownHook(new Thread() { 40 | public void run() { 41 | logger.info(" main program starts to exit by calling wakeup"); 42 | kafkaConsumer.wakeup(); 43 | 44 | try { 45 | mainThread.join(); 46 | } catch(InterruptedException e) { e.printStackTrace();} 47 | } 48 | }); 49 | 50 | } 51 | 52 | private void processRecord(ConsumerRecord record) throws Exception { 53 | OrderDTO orderDTO = makeOrderDTO(record); 54 | orderDBHandler.insertOrder(orderDTO); 55 | } 56 | 57 | private OrderDTO makeOrderDTO(ConsumerRecord record) throws Exception { 58 | String messageValue = (String)record.value(); 59 | logger.info("###### messageValue:" + messageValue); 60 | String[] tokens = messageValue.split(","); 61 | DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); 62 | OrderDTO orderDTO = new OrderDTO(tokens[0], tokens[1], tokens[2], tokens[3], 63 | tokens[4], tokens[5], LocalDateTime.parse(tokens[6].trim(), formatter)); 64 | 65 | return orderDTO; 66 | } 67 | 68 | 69 | private void processRecords(ConsumerRecords records) throws Exception{ 70 | List orders = makeOrders(records); 71 | orderDBHandler.insertOrders(orders); 72 | } 73 | 74 | private List makeOrders(ConsumerRecords records) throws Exception { 75 | List orders = new ArrayList<>(); 76 | //records.forEach(record -> orders.add(makeOrderDTO(record))); 77 | for(ConsumerRecord record : records) { 78 | OrderDTO orderDTO = makeOrderDTO(record); 79 | orders.add(orderDTO); 80 | } 81 | return orders; 82 | } 83 | 84 | 85 | public void pollConsumes(long durationMillis, String commitMode) { 86 | if (commitMode.equals("sync")) { 87 | pollCommitSync(durationMillis); 88 | } else { 89 | pollCommitAsync(durationMillis); 90 | } 91 | } 92 | private void pollCommitAsync(long durationMillis) { 93 | try { 94 | while (true) { 95 | ConsumerRecords consumerRecords = this.kafkaConsumer.poll(Duration.ofMillis(durationMillis)); 96 | logger.info("consumerRecords count:" + consumerRecords.count()); 97 | if(consumerRecords.count() > 0) { 98 | try { 99 | processRecords(consumerRecords); 100 | } catch(Exception e) { 101 | logger.error(e.getMessage()); 102 | } 103 | } 104 | // if(consumerRecords.count() > 0) { 105 | // for (ConsumerRecord consumerRecord : consumerRecords) { 106 | // processRecord(consumerRecord); 107 | // } 108 | // } 109 | //commitAsync의 OffsetCommitCallback을 lambda 형식으로 변경 110 | this.kafkaConsumer.commitAsync((offsets, exception) -> { 111 | if (exception != null) { 112 | logger.error("offsets {} is not completed, error:{}", offsets, exception.getMessage()); 113 | } 114 | }); 115 | } 116 | }catch(WakeupException e) { 117 | logger.error("wakeup exception has been called"); 118 | }catch(Exception e) { 119 | logger.error(e.getMessage()); 120 | }finally { 121 | logger.info("##### commit sync before closing"); 122 | kafkaConsumer.commitSync(); 123 | logger.info("finally consumer is closing"); 124 | close(); 125 | } 126 | } 127 | 128 | protected void pollCommitSync(long durationMillis) { 129 | try { 130 | while (true) { 131 | ConsumerRecords consumerRecords = this.kafkaConsumer.poll(Duration.ofMillis(durationMillis)); 132 | processRecords(consumerRecords); 133 | try { 134 | if (consumerRecords.count() > 0) { 135 | this.kafkaConsumer.commitSync(); 136 | logger.info("commit sync has been called"); 137 | } 138 | } catch (CommitFailedException e) { 139 | logger.error(e.getMessage()); 140 | } 141 | } 142 | }catch(WakeupException e) { 143 | logger.error("wakeup exception has been called"); 144 | }catch(Exception e) { 145 | logger.error(e.getMessage()); 146 | }finally { 147 | logger.info("##### commit sync before closing"); 148 | kafkaConsumer.commitSync(); 149 | logger.info("finally consumer is closing"); 150 | close(); 151 | } 152 | } 153 | protected void close() { 154 | this.kafkaConsumer.close(); 155 | this.orderDBHandler.close(); 156 | } 157 | 158 | public static void main(String[] args) { 159 | String topicName = "file-topic"; 160 | 161 | Properties props = new Properties(); 162 | props.setProperty(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, "192.168.56.101:9092"); 163 | props.setProperty(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class.getName()); 164 | props.setProperty(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class.getName()); 165 | props.setProperty(ConsumerConfig.GROUP_ID_CONFIG, "file-group"); 166 | props.setProperty(ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG, "false"); 167 | 168 | String url = "jdbc:postgresql://192.168.56.101:5432/postgres"; 169 | String user = "postgres"; 170 | String password = "postgres"; 171 | OrderDBHandler orderDBHandler = new OrderDBHandler(url, user, password); 172 | 173 | FileToDBConsumer fileToDBConsumer = new 174 | FileToDBConsumer(props, List.of(topicName), orderDBHandler); 175 | fileToDBConsumer.initConsumer(); 176 | String commitMode = "async"; 177 | 178 | fileToDBConsumer.pollConsumes(1000, commitMode); 179 | 180 | } 181 | 182 | } -------------------------------------------------------------------------------- /practice/src/main/java/com/practice/kafka/consumer/JDBCTester.java: -------------------------------------------------------------------------------- 1 | package com.practice.kafka.consumer; 2 | 3 | import java.sql.*; 4 | 5 | public class JDBCTester { 6 | public static void main(String[] args) { 7 | 8 | Connection conn = null; 9 | Statement st = null; 10 | ResultSet rs = null; 11 | 12 | 13 | String url = "jdbc:postgresql://192.168.56.101:5432/postgres"; 14 | String user = "postgres"; 15 | String password = "postgres"; 16 | try { 17 | conn = DriverManager.getConnection(url, user, password); 18 | st = conn.createStatement(); 19 | rs = st.executeQuery("SELECT 'postgresql is connected' "); 20 | 21 | if (rs.next()) 22 | System.out.println(rs.getString(1)); 23 | } catch (SQLException e) { 24 | e.printStackTrace(); 25 | } finally { 26 | try { 27 | rs.close(); 28 | st.close(); 29 | conn.close(); 30 | } catch (SQLException e) { 31 | e.printStackTrace(); 32 | } 33 | } 34 | } 35 | } -------------------------------------------------------------------------------- /practice/src/main/java/com/practice/kafka/consumer/OrderDBHandler.java: -------------------------------------------------------------------------------- 1 | package com.practice.kafka.consumer; 2 | 3 | import org.slf4j.Logger; 4 | import org.slf4j.LoggerFactory; 5 | 6 | import java.sql.*; 7 | import java.time.LocalDateTime; 8 | import java.util.List; 9 | 10 | public class OrderDBHandler { 11 | public static final Logger logger = LoggerFactory.getLogger(OrderDBHandler.class.getName()); 12 | private Connection connection = null; 13 | private PreparedStatement insertPrepared = null; 14 | private static final String INSERT_ORDER_SQL = "INSERT INTO public.orders " + 15 | "(ord_id, shop_id, menu_name, user_name, phone_number, address, order_time) "+ 16 | "values (?, ?, ?, ?, ?, ?, ?)"; 17 | 18 | public OrderDBHandler(String url, String user, String password) { 19 | try { 20 | this.connection = DriverManager.getConnection(url, user, password); 21 | this.insertPrepared = this.connection.prepareStatement(INSERT_ORDER_SQL); 22 | } catch(SQLException e) { 23 | logger.error(e.getMessage()); 24 | } 25 | 26 | } 27 | 28 | public void insertOrder(OrderDTO orderDTO) { 29 | try { 30 | PreparedStatement pstmt = this.connection.prepareStatement(INSERT_ORDER_SQL); 31 | pstmt.setString(1, orderDTO.orderId); 32 | pstmt.setString(2, orderDTO.shopId); 33 | pstmt.setString(3, orderDTO.menuName); 34 | pstmt.setString(4, orderDTO.userName); 35 | pstmt.setString(5, orderDTO.phoneNumber); 36 | pstmt.setString(6, orderDTO.address); 37 | pstmt.setTimestamp(7, Timestamp.valueOf(orderDTO.orderTime)); 38 | 39 | pstmt.executeUpdate(); 40 | } catch(SQLException e) { 41 | logger.error(e.getMessage()); 42 | } 43 | 44 | } 45 | 46 | public void insertOrders(List orders) { 47 | try { 48 | PreparedStatement pstmt = this.connection.prepareStatement(INSERT_ORDER_SQL); 49 | for(OrderDTO orderDTO : orders) { 50 | pstmt.setString(1, orderDTO.orderId); 51 | pstmt.setString(2, orderDTO.shopId); 52 | pstmt.setString(3, orderDTO.menuName); 53 | pstmt.setString(4, orderDTO.userName); 54 | pstmt.setString(5, orderDTO.phoneNumber); 55 | pstmt.setString(6, orderDTO.address); 56 | pstmt.setTimestamp(7, Timestamp.valueOf(orderDTO.orderTime)); 57 | 58 | pstmt.addBatch(); 59 | } 60 | pstmt.executeUpdate(); 61 | 62 | } catch(SQLException e) { 63 | logger.info(e.getMessage()); 64 | } 65 | 66 | } 67 | 68 | public void close() 69 | { 70 | try { 71 | logger.info("###### OrderDBHandler is closing"); 72 | this.insertPrepared.close(); 73 | this.connection.close(); 74 | }catch(SQLException e) { 75 | logger.error(e.getMessage()); 76 | } 77 | } 78 | 79 | public static void main(String[] args) { 80 | String url = "jdbc:postgresql://192.168.56.101:5432/postgres"; 81 | String user = "postgres"; 82 | String password = "postgres"; 83 | OrderDBHandler orderDBHandler = new OrderDBHandler(url, user, password); 84 | 85 | LocalDateTime now = LocalDateTime.now(); 86 | OrderDTO orderDTO = new OrderDTO("ord001", "test_shop", "test_menu", 87 | "test_user", "test_phone", "test_address", 88 | now); 89 | 90 | orderDBHandler.insertOrder(orderDTO); 91 | orderDBHandler.close(); 92 | } 93 | 94 | 95 | } -------------------------------------------------------------------------------- /practice/src/main/java/com/practice/kafka/consumer/OrderDTO.java: -------------------------------------------------------------------------------- 1 | package com.practice.kafka.consumer; 2 | 3 | import java.time.LocalDateTime; 4 | 5 | public class OrderDTO { 6 | public String orderId; 7 | public String shopId; 8 | public String menuName; 9 | public String userName; 10 | public String phoneNumber; 11 | public String address; 12 | public LocalDateTime orderTime; 13 | 14 | public OrderDTO(String orderId, String shopId, String menuName, String userName, 15 | String phoneNumber, String address, LocalDateTime orderTime) { 16 | this.orderId = orderId; 17 | this.shopId = shopId; 18 | this.menuName = menuName; 19 | this.userName = userName; 20 | this.phoneNumber = phoneNumber; 21 | this.address = address; 22 | this.orderTime = orderTime; 23 | } 24 | } -------------------------------------------------------------------------------- /practice/src/main/java/com/practice/kafka/consumer/OrderDeserializer.java: -------------------------------------------------------------------------------- 1 | package com.practice.kafka.consumer; 2 | 3 | import com.fasterxml.jackson.databind.ObjectMapper; 4 | import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; 5 | import com.practice.kafka.model.OrderModel; 6 | import org.apache.kafka.common.serialization.Deserializer; 7 | import org.slf4j.Logger; 8 | import org.slf4j.LoggerFactory; 9 | 10 | import java.io.IOException; 11 | 12 | public class OrderDeserializer implements Deserializer { 13 | public static final Logger logger = LoggerFactory.getLogger(OrderDeserializer.class.getName()); 14 | ObjectMapper objectMapper = new ObjectMapper().registerModule(new JavaTimeModule()); 15 | 16 | @Override 17 | public OrderModel deserialize(String topic, byte[] data) { 18 | OrderModel orderModel = null; 19 | 20 | try { 21 | orderModel = objectMapper.readValue(data, OrderModel.class); 22 | } catch (IOException e) { 23 | logger.error("Object mapper deserialization error" + e.getMessage()); 24 | } 25 | 26 | return orderModel; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /practice/src/main/java/com/practice/kafka/consumer/OrderSerdeConsumer.java: -------------------------------------------------------------------------------- 1 | package com.practice.kafka.consumer; 2 | 3 | import com.practice.kafka.model.OrderModel; 4 | import org.apache.kafka.clients.consumer.*; 5 | import org.apache.kafka.common.errors.WakeupException; 6 | import org.apache.kafka.common.serialization.StringDeserializer; 7 | import org.slf4j.Logger; 8 | import org.slf4j.LoggerFactory; 9 | 10 | import java.io.Serializable; 11 | import java.time.Duration; 12 | import java.util.List; 13 | import java.util.Properties; 14 | 15 | public class OrderSerdeConsumer { 16 | public static final Logger logger = LoggerFactory.getLogger(OrderSerdeConsumer.class.getName()); 17 | 18 | private KafkaConsumer kafkaConsumer; 19 | private List topics; 20 | 21 | public OrderSerdeConsumer(Properties consumerProps, List topics) { 22 | this.kafkaConsumer = new KafkaConsumer(consumerProps); 23 | this.topics = topics; 24 | } 25 | 26 | public void initConsumer() { 27 | this.kafkaConsumer.subscribe(this.topics); 28 | shutdownHookToRuntime(this.kafkaConsumer); 29 | } 30 | 31 | private void shutdownHookToRuntime(KafkaConsumer kafkaConsumer) { 32 | //main thread 33 | Thread mainThread = Thread.currentThread(); 34 | 35 | //main thread 종료시 별도의 thread로 KafkaConsumer wakeup()메소드를 호출하게 함. 36 | Runtime.getRuntime().addShutdownHook(new Thread() { 37 | public void run() { 38 | logger.info(" main program starts to exit by calling wakeup"); 39 | kafkaConsumer.wakeup(); 40 | 41 | try { 42 | mainThread.join(); 43 | } catch(InterruptedException e) { e.printStackTrace();} 44 | } 45 | }); 46 | 47 | } 48 | 49 | private void processRecord(ConsumerRecord record) { 50 | logger.info("record key:{}, partition:{}, record offset:{} record value:{}", 51 | record.key(), record.partition(), record.offset(), record.value()); 52 | } 53 | 54 | private void processRecords(ConsumerRecords records) { 55 | records.forEach(record -> processRecord(record)); 56 | } 57 | 58 | 59 | public void pollConsumes(long durationMillis, String commitMode) { 60 | try { 61 | while (true) { 62 | if (commitMode.equals("sync")) { 63 | pollCommitSync(durationMillis); 64 | } else { 65 | pollCommitAsync(durationMillis); 66 | } 67 | } 68 | }catch(WakeupException e) { 69 | logger.error("wakeup exception has been called"); 70 | }catch(Exception e) { 71 | logger.error(e.getMessage()); 72 | }finally { 73 | logger.info("##### commit sync before closing"); 74 | kafkaConsumer.commitSync(); 75 | logger.info("finally consumer is closing"); 76 | closeConsumer(); 77 | } 78 | } 79 | 80 | private void pollCommitAsync(long durationMillis) throws WakeupException, Exception { 81 | ConsumerRecords consumerRecords = this.kafkaConsumer.poll(Duration.ofMillis(durationMillis)); 82 | processRecords(consumerRecords); 83 | this.kafkaConsumer.commitAsync( (offsets, exception) -> { 84 | if(exception != null) { 85 | logger.error("offsets {} is not completed, error:{}", offsets, exception.getMessage()); 86 | } 87 | 88 | }); 89 | 90 | } 91 | private void pollCommitSync(long durationMillis) throws WakeupException, Exception { 92 | ConsumerRecords consumerRecords = this.kafkaConsumer.poll(Duration.ofMillis(durationMillis)); 93 | processRecords(consumerRecords); 94 | try { 95 | if(consumerRecords.count() > 0 ) { 96 | this.kafkaConsumer.commitSync(); 97 | logger.info("commit sync has been called"); 98 | } 99 | } catch(CommitFailedException e) { 100 | logger.error(e.getMessage()); 101 | } 102 | } 103 | public void closeConsumer() { 104 | this.kafkaConsumer.close(); 105 | } 106 | 107 | public static void main(String[] args) { 108 | String topicName = "order-serde-topic"; 109 | 110 | Properties props = new Properties(); 111 | props.setProperty(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, "192.168.56.101:9092"); 112 | props.setProperty(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class.getName()); 113 | props.setProperty(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, OrderDeserializer.class.getName()); 114 | props.setProperty(ConsumerConfig.GROUP_ID_CONFIG, "order-serde-group"); 115 | props.setProperty(ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG, "false"); 116 | 117 | OrderSerdeConsumer baseConsumer = new OrderSerdeConsumer(props, List.of(topicName)); 118 | baseConsumer.initConsumer(); 119 | String commitMode = "async"; 120 | 121 | baseConsumer.pollConsumes(100, commitMode); 122 | baseConsumer.closeConsumer(); 123 | 124 | } 125 | 126 | 127 | } -------------------------------------------------------------------------------- /practice/src/main/java/com/practice/kafka/consumer/OrderSerdeConsumerV2.java: -------------------------------------------------------------------------------- 1 | package com.practice.kafka.consumer; 2 | 3 | import com.practice.kafka.model.OrderModel; 4 | import org.apache.kafka.clients.consumer.*; 5 | import org.apache.kafka.common.errors.WakeupException; 6 | import org.apache.kafka.common.serialization.StringDeserializer; 7 | import org.slf4j.Logger; 8 | import org.slf4j.LoggerFactory; 9 | 10 | import java.time.Duration; 11 | import java.util.List; 12 | import java.util.Properties; 13 | 14 | public class OrderSerdeConsumerV2 { 15 | public static final Logger logger = LoggerFactory.getLogger(OrderSerdeConsumerV2.class.getName()); 16 | 17 | private KafkaConsumer kafkaConsumer; 18 | private List topics; 19 | 20 | public OrderSerdeConsumerV2(Properties consumerProps, List topics) { 21 | this.kafkaConsumer = new KafkaConsumer(consumerProps); 22 | this.topics = topics; 23 | } 24 | 25 | public void initConsumer() { 26 | this.kafkaConsumer.subscribe(this.topics); 27 | shutdownHookToRuntime(this.kafkaConsumer); 28 | } 29 | 30 | private void shutdownHookToRuntime(KafkaConsumer kafkaConsumer) { 31 | //main thread 32 | Thread mainThread = Thread.currentThread(); 33 | 34 | //main thread 종료시 별도의 thread로 KafkaConsumer wakeup()메소드를 호출하게 함. 35 | Runtime.getRuntime().addShutdownHook(new Thread() { 36 | public void run() { 37 | logger.info(" main program starts to exit by calling wakeup"); 38 | kafkaConsumer.wakeup(); 39 | 40 | try { 41 | mainThread.join(); 42 | } catch(InterruptedException e) { e.printStackTrace();} 43 | } 44 | }); 45 | 46 | } 47 | 48 | private void processRecord(ConsumerRecord record) { 49 | logger.info("record key:{}, partition:{}, record offset:{} record value:{}", 50 | record.key(), record.partition(), record.offset(), record.value()); 51 | } 52 | 53 | private void processRecords(ConsumerRecords records) { 54 | records.forEach(record -> processRecord(record)); 55 | } 56 | 57 | 58 | public void pollConsumes(long durationMillis, String commitMode) { 59 | try { 60 | while (true) { 61 | if (commitMode.equals("sync")) { 62 | pollCommitSync(durationMillis); 63 | } else { 64 | pollCommitAsync(durationMillis); 65 | } 66 | } 67 | }catch(WakeupException e) { 68 | logger.error("wakeup exception has been called"); 69 | }catch(Exception e) { 70 | logger.error(e.getMessage()); 71 | }finally { 72 | logger.info("##### commit sync before closing"); 73 | kafkaConsumer.commitSync(); 74 | logger.info("finally consumer is closing"); 75 | closeConsumer(); 76 | } 77 | } 78 | 79 | private void pollCommitAsync(long durationMillis) throws WakeupException, Exception { 80 | ConsumerRecords consumerRecords = this.kafkaConsumer.poll(Duration.ofMillis(durationMillis)); 81 | processRecords(consumerRecords); 82 | this.kafkaConsumer.commitAsync( (offsets, exception) -> { 83 | if(exception != null) { 84 | logger.error("offsets {} is not completed, error:{}", offsets, exception.getMessage()); 85 | } 86 | 87 | }); 88 | 89 | } 90 | private void pollCommitSync(long durationMillis) throws WakeupException, Exception { 91 | ConsumerRecords consumerRecords = this.kafkaConsumer.poll(Duration.ofMillis(durationMillis)); 92 | processRecords(consumerRecords); 93 | try { 94 | if(consumerRecords.count() > 0 ) { 95 | this.kafkaConsumer.commitSync(); 96 | logger.info("commit sync has been called"); 97 | } 98 | } catch(CommitFailedException e) { 99 | logger.error(e.getMessage()); 100 | } 101 | } 102 | public void closeConsumer() { 103 | this.kafkaConsumer.close(); 104 | } 105 | 106 | public static void main(String[] args) { 107 | String topicName = "order-serde-topic"; 108 | 109 | Properties props = new Properties(); 110 | props.setProperty(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, "192.168.56.101:9092"); 111 | props.setProperty(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class.getName()); 112 | props.setProperty(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, OrderDeserializer.class.getName()); 113 | props.setProperty(ConsumerConfig.GROUP_ID_CONFIG, "order-serde-group"); 114 | props.setProperty(ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG, "false"); 115 | 116 | OrderSerdeConsumerV2 orderSerdeConsumerV2 = new OrderSerdeConsumerV2(props, List.of(topicName)); 117 | orderSerdeConsumerV2.initConsumer(); 118 | String commitMode = "async"; 119 | 120 | orderSerdeConsumerV2.pollConsumes(100, commitMode); 121 | orderSerdeConsumerV2.closeConsumer(); 122 | 123 | } 124 | 125 | 126 | } 127 | -------------------------------------------------------------------------------- /practice/src/main/java/com/practice/kafka/event/EventHandler.java: -------------------------------------------------------------------------------- 1 | package com.practice.kafka.event; 2 | 3 | import java.util.concurrent.ExecutionException; 4 | 5 | public interface EventHandler { 6 | void onMessage(MessageEvent messageEvent) throws InterruptedException, ExecutionException; 7 | } 8 | -------------------------------------------------------------------------------- /practice/src/main/java/com/practice/kafka/event/FileEventHandler.java: -------------------------------------------------------------------------------- 1 | package com.practice.kafka.event; 2 | 3 | import org.apache.kafka.clients.producer.KafkaProducer; 4 | import org.apache.kafka.clients.producer.ProducerConfig; 5 | import org.apache.kafka.clients.producer.ProducerRecord; 6 | import org.apache.kafka.clients.producer.RecordMetadata; 7 | import org.apache.kafka.common.serialization.StringSerializer; 8 | import org.slf4j.Logger; 9 | import org.slf4j.LoggerFactory; 10 | 11 | import java.util.Properties; 12 | import java.util.concurrent.ExecutionException; 13 | 14 | //모니터링하는 file에 내용이 추가되었을 때 메시지를 producer를 이용하여 전송하는 클래스 15 | //생성인자로 KafkaProcuer, 토픽명, SYNC 전송 여부를 전달 받음 16 | //EventHandler interface를 구현. onMessage() 구현. 17 | public class FileEventHandler implements EventHandler { 18 | public static final Logger logger = LoggerFactory.getLogger(FileEventHandler.class.getName()); 19 | private KafkaProducer kafkaProducer; 20 | private String topicName; 21 | private boolean sync; 22 | 23 | //KafkaProducer, 토픽명, SYNC 전송여부는 생성시 입력됨. 24 | public FileEventHandler(KafkaProducer kafkaProducer, String topicName, boolean sync) { 25 | this.kafkaProducer = kafkaProducer; 26 | this.topicName = topicName; 27 | this.sync = sync; 28 | } 29 | 30 | //파일에 내용이 Append되었을 때 호출됨. 추가된 라인 별로 MessageEvent를 생성하고 이를 Producer에서 전송. 31 | @Override 32 | public void onMessage(MessageEvent messageEvent) throws InterruptedException, ExecutionException { 33 | ProducerRecord producerRecord = new ProducerRecord<>(this.topicName, messageEvent.key, messageEvent.value); 34 | if(this.sync) { 35 | RecordMetadata recordMetadata = this.kafkaProducer.send(producerRecord).get(); 36 | logger.info("\n ###### record metadata received ##### \n" + 37 | "partition:" + recordMetadata.partition() +"\n" + 38 | "offset:" + recordMetadata.offset() + "\n" + 39 | "timestamp:" + recordMetadata.timestamp()); 40 | } else { 41 | this.kafkaProducer.send(producerRecord, (metadata, exception) -> { 42 | if (exception == null) { 43 | logger.info("\n ###### record metadata received ##### \n" + 44 | "partition:" + metadata.partition() + "\n" + 45 | "offset:" + metadata.offset() + "\n" + 46 | "timestamp:" + metadata.timestamp()); 47 | } else { 48 | logger.error("exception error from broker " + exception.getMessage()); 49 | } 50 | }); 51 | } 52 | 53 | } 54 | 55 | //FileEventHandler가 제대로 생성되었는지 확인을 위해 직접 수행. 56 | public static void main(String[] args) throws Exception { 57 | String topicName = "file-topic"; 58 | 59 | Properties props = new Properties(); 60 | props.setProperty(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "192.168.56.101:9092"); 61 | props.setProperty(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName()); 62 | props.setProperty(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName()); 63 | 64 | KafkaProducer kafkaProducer = new KafkaProducer(props); 65 | boolean sync = true; 66 | 67 | FileEventHandler fileEventHandler = new FileEventHandler(kafkaProducer, topicName, sync); 68 | MessageEvent messageEvent = new MessageEvent("key00001", "this is test message"); 69 | fileEventHandler.onMessage(messageEvent); 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /practice/src/main/java/com/practice/kafka/event/FileEventSource.java: -------------------------------------------------------------------------------- 1 | package com.practice.kafka.event; 2 | 3 | import org.slf4j.Logger; 4 | import org.slf4j.LoggerFactory; 5 | 6 | import java.io.File; 7 | import java.io.IOException; 8 | import java.io.RandomAccessFile; 9 | import java.util.concurrent.ExecutionException; 10 | 11 | // 파일에 내용이 추가되었는지 Thread로 모니터링하면서 내용 추가된 경우 EventHandler를 호출하여 Producer로 해당 메시지 전송 12 | // Thread로 수행되므로 Runnable Interface 구현. 13 | public class FileEventSource implements Runnable { 14 | public static final Logger logger = LoggerFactory.getLogger(FileEventSource.class.getName()); 15 | 16 | //주기적으로 file을 모니터할 기간. ms 단위. 17 | private long updateInterval; 18 | 19 | //모니터할 File 객체 20 | private File file; 21 | 22 | //file에 변경사항이 발생했을 때 Producer를 이용하여 메시지를 전송하는 EventHandler 23 | private EventHandler eventHandler; 24 | private boolean sync; 25 | 26 | private long filePointer = 0; 27 | public boolean keepRunning = true; 28 | 29 | public FileEventSource(long updateInterval, File file, EventHandler eventHandler) { 30 | this.updateInterval = updateInterval; 31 | this.file = file; 32 | this.eventHandler = eventHandler; 33 | } 34 | 35 | //무한 반복 수행하되, updateInterval 동안 sleep하면서 파일에 내용이 추가되었는지 모니터링 후 메시지 전송. 36 | @Override 37 | public void run() { 38 | try { 39 | //this.keepRunning은 Main Thread가 종료시 false로 변경 되도록 Main 프로그램 수정. 40 | while(this.keepRunning) { 41 | //생성자에 입력된 updateInterval ms 동안 sleep 42 | Thread.sleep(this.updateInterval); 43 | //file의 크기를 계산. 44 | long len = this.file.length(); 45 | //만약 최종 filePointer가 현재 file의 length보다 작다면 file이 초기화 되었음. 46 | if (len < this.filePointer) { 47 | logger.info("log file was reset as filePointer is longer than file length"); 48 | //최종 filePointer를 file의 length로 설정. 49 | filePointer = len; 50 | // 만약 file의 length가 최종 filePointer보다 크다면 file이 append 되었음. 51 | } else if (len > this.filePointer){ 52 | //최종 filePointer에서 맨 마지막 파일까지 한 라인씩 읽고 이를 Producer에서 메시지로 전송. 53 | readAppendAndSend(); 54 | // 만약 file의 length와 filePointer가 같다면 file에 변화가 없음. 55 | } else { 56 | continue; 57 | } 58 | } 59 | } catch(InterruptedException e) { 60 | logger.error(e.getMessage()); 61 | } catch(ExecutionException e) { 62 | logger.error(e.getMessage()); 63 | } catch(Exception e) { 64 | logger.error(e.getMessage()); 65 | } 66 | 67 | } 68 | 69 | //최종 filePointer에서 맨 마지막 파일까지 한 라인씩 읽고 sendMessage()를 이용하여 메시지로 전송 70 | public void readAppendAndSend() throws IOException, ExecutionException, InterruptedException { 71 | RandomAccessFile raf = new RandomAccessFile(this.file, "r"); 72 | raf.seek(this.filePointer); 73 | String line = null; 74 | 75 | while((line = raf.readLine()) != null) { 76 | 77 | sendMessage(line); 78 | } 79 | //file이 변경되었으므로 file의 filePointer를 현재 file의 마지막으로 재 설정함. 80 | this.filePointer = raf.getFilePointer(); 81 | } 82 | 83 | //한 라인을 parsing하여 key와 value로 MessageEvent를 만들고 이를 EventHandler를 이용하여 Producer 전송. 84 | private void sendMessage(String line) throws ExecutionException, InterruptedException { 85 | String[] tokens = line.split(","); 86 | String key = tokens[0]; 87 | StringBuffer value = new StringBuffer(); 88 | 89 | for(int i=1; i kafkaProducer = new KafkaProducer(props); 30 | boolean sync = false; 31 | 32 | File file = new File("C:\\Users\\q\\IdeaProjects\\my-app\\KafkaProj-01\\practice\\src\\main\\resources\\pizza_append.txt"); 33 | EventHandler eventHandler = new FileEventHandler(kafkaProducer, topicName, sync); 34 | FileEventSource fileEventSource = new FileEventSource(100, file, eventHandler); 35 | Thread fileEventSourceThread = new Thread(fileEventSource); 36 | fileEventSourceThread.start(); 37 | 38 | try { 39 | fileEventSourceThread.join(); 40 | }catch(InterruptedException e) { 41 | logger.error(e.getMessage()); 42 | }finally { 43 | kafkaProducer.close(); 44 | } 45 | 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /practice/src/main/java/com/practice/kafka/producer/FileProducer.java: -------------------------------------------------------------------------------- 1 | package com.practice.kafka.producer; 2 | 3 | import org.apache.kafka.clients.producer.KafkaProducer; 4 | import org.apache.kafka.clients.producer.ProducerConfig; 5 | import org.apache.kafka.clients.producer.ProducerRecord; 6 | import org.apache.kafka.common.serialization.StringSerializer; 7 | import org.slf4j.Logger; 8 | import org.slf4j.LoggerFactory; 9 | 10 | import java.io.BufferedReader; 11 | import java.io.FileReader; 12 | import java.io.IOException; 13 | import java.util.Properties; 14 | 15 | public class FileProducer { 16 | public static final Logger logger = LoggerFactory.getLogger(FileProducer.class.getName()); 17 | public static void main(String[] args) { 18 | 19 | String topicName = "file-topic"; 20 | 21 | //KafkaProducer configuration setting 22 | // null, "hello world" 23 | 24 | Properties props = new Properties(); 25 | //bootstrap.servers, key.serializer.class, value.serializer.class 26 | //props.setProperty("bootstrap.servers", "192.168.56.101:9092"); 27 | props.setProperty(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "192.168.56.101:9092"); 28 | props.setProperty(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName()); 29 | props.setProperty(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName()); 30 | 31 | //KafkaProducer object creation 32 | KafkaProducer kafkaProducer = new KafkaProducer(props); 33 | String filePath = "C:\\Users\\q\\IdeaProjects\\my-app\\KafkaProj-01\\practice\\src\\main\\resources\\pizza_sample.txt"; 34 | 35 | //KafkaProducer객체 생성->ProducerRecords생성 -> send() 비동기 방식 전송 36 | sendFileMessages(kafkaProducer, topicName, filePath); 37 | kafkaProducer.close(); 38 | 39 | } 40 | 41 | private static void sendFileMessages(KafkaProducer kafkaProducer, String topicName, String filePath) { 42 | String line = ""; 43 | final String delimiter = ","; 44 | 45 | try { 46 | FileReader fileReader = new FileReader(filePath); 47 | BufferedReader bufferedReader = new BufferedReader(fileReader); 48 | 49 | while( (line = bufferedReader.readLine()) != null) { 50 | String[] tokens = line.split(delimiter); 51 | String key = tokens[0]; 52 | StringBuffer value = new StringBuffer(); 53 | 54 | for(int i=1; i kafkaProducer, String topicName, String key, String value) { 73 | ProducerRecord producerRecord = new ProducerRecord<>(topicName, key,value); 74 | logger.info("key:{}, value:{}", key, value); 75 | //kafkaProducer message send 76 | kafkaProducer.send(producerRecord, (metadata, exception) -> { 77 | if (exception == null) { 78 | logger.info("\n ###### record metadata received ##### \n" + 79 | "partition:" + metadata.partition() + "\n" + 80 | "offset:" + metadata.offset() + "\n" + 81 | "timestamp:" + metadata.timestamp()); 82 | } else { 83 | logger.error("exception error from broker " + exception.getMessage()); 84 | } 85 | }); 86 | 87 | } 88 | 89 | } -------------------------------------------------------------------------------- /practice/src/main/java/com/practice/kafka/producer/FileUtilAppend.java: -------------------------------------------------------------------------------- 1 | package com.practice.kafka.producer; 2 | 3 | import com.github.javafaker.Faker; 4 | 5 | import java.io.*; 6 | import java.time.LocalDateTime; 7 | import java.time.format.DateTimeFormatter; 8 | import java.util.HashMap; 9 | import java.util.List; 10 | import java.util.Locale; 11 | import java.util.Random; 12 | 13 | public class FileUtilAppend { 14 | // 피자 메뉴를 설정. getRandomValueFromList()에서 임의의 피자명을 출력하는 데 사용. 15 | private static final List pizzaNames = List.of("Potato Pizza", "Cheese Pizza", 16 | "Cheese Garlic Pizza", "Super Supreme", "Peperoni"); 17 | // private static final List pizzaNames = List.of("고구마 피자", "치즈 피자", 18 | // "치즈 갈릭 피자", "슈퍼 슈프림", "페페로니 피자"); 19 | 20 | // 피자 가게명을 설정. getRandomValueFromList()에서 임의의 피자 가게명을 출력하는데 사용. 21 | private static final List pizzaShop = List.of("A001", "B001", "C001", 22 | "D001", "E001", "F001", "G001", "H001", "I001", "J001", "K001", "L001", "M001", "N001", 23 | "O001", "P001", "Q001"); 24 | 25 | private static int orderSeq = 5000; 26 | public FileUtilAppend() {} 27 | 28 | //인자로 피자명 또는 피자가게 List와 Random 객체를 입력 받아서 random한 피자명 또는 피자 가게 명을 반환. 29 | private String getRandomValueFromList(List list, Random random) { 30 | int size = list.size(); 31 | int index = random.nextInt(size); 32 | 33 | return list.get(index); 34 | } 35 | 36 | //random한 피자 메시지를 생성하고, 피자가게 명을 key로 나머지 정보를 value로 하여 Hashmap을 생성하여 반환. 37 | public HashMap produce_msg(Faker faker, Random random, int id) { 38 | 39 | String shopId = getRandomValueFromList(pizzaShop, random); 40 | String pizzaName = getRandomValueFromList(pizzaNames, random); 41 | 42 | String ordId = "ord"+id; 43 | String customerName = faker.name().fullName(); 44 | String phoneNumber = faker.phoneNumber().phoneNumber(); 45 | String address = faker.address().streetAddress(); 46 | LocalDateTime now = LocalDateTime.now(); 47 | String message = String.format("%s, %s, %s, %s, %s, %s, %s" 48 | , ordId, shopId, pizzaName, customerName, phoneNumber, address 49 | , now.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss", Locale.KOREAN))); 50 | //System.out.println(message); 51 | HashMap messageMap = new HashMap<>(); 52 | messageMap.put("key", shopId); 53 | messageMap.put("message", message); 54 | 55 | return messageMap; 56 | } 57 | 58 | public void writeMessage(String filePath, Faker faker, Random random) { 59 | try { 60 | File file = new File(filePath); 61 | if(!file.exists()) { 62 | file.createNewFile(); 63 | } 64 | 65 | FileWriter fileWriter = new FileWriter(file, true); 66 | BufferedWriter bufferedWriter = new BufferedWriter(fileWriter); 67 | PrintWriter printWriter = new PrintWriter(bufferedWriter); 68 | 69 | for(int i=0; i < 50; i++) { 70 | HashMap message = produce_msg(faker, random, orderSeq++); 71 | printWriter.println(message.get("key")+"," + message.get("message")); 72 | } 73 | printWriter.close(); 74 | 75 | } catch(IOException e) { 76 | e.printStackTrace(); 77 | } 78 | } 79 | 80 | public static void main(String[] args) { 81 | FileUtilAppend fileUtilAppend = new FileUtilAppend(); 82 | // seed값을 고정하여 Random 객체와 Faker 객체를 생성. 83 | long seed = 2022; 84 | Random random = new Random(seed); 85 | Faker faker = Faker.instance(random); 86 | //여러분의 절대경로 위치로 변경해 주세요. 87 | String filePath = "C:\\Users\\q\\IdeaProjects\\my-app\\KafkaProj-01\\practice\\src\\main\\resources\\pizza_append.txt"; 88 | // 100회 반복 수행. 89 | for(int i=0; i<1000; i++) { 90 | //50 라인의 주문 문자열을 출력 91 | fileUtilAppend.writeMessage(filePath, faker, random); 92 | System.out.println("###### iteration:"+i+" file write is done"); 93 | try { 94 | //주어진 기간동안 sleep 95 | Thread.sleep(500); 96 | }catch(InterruptedException e) { 97 | e.printStackTrace(); 98 | } 99 | } 100 | } 101 | } -------------------------------------------------------------------------------- /practice/src/main/java/com/practice/kafka/producer/OrderSerdeProducer.java: -------------------------------------------------------------------------------- 1 | package com.practice.kafka.producer; 2 | 3 | import com.practice.kafka.model.OrderModel; 4 | import org.apache.kafka.clients.producer.KafkaProducer; 5 | import org.apache.kafka.clients.producer.ProducerConfig; 6 | import org.apache.kafka.clients.producer.ProducerRecord; 7 | import org.apache.kafka.common.serialization.StringSerializer; 8 | import org.slf4j.Logger; 9 | import org.slf4j.LoggerFactory; 10 | 11 | import java.io.BufferedReader; 12 | import java.io.FileReader; 13 | import java.io.IOException; 14 | import java.time.LocalDateTime; 15 | import java.time.format.DateTimeFormatter; 16 | import java.util.Properties; 17 | 18 | public class OrderSerdeProducer { 19 | public static final Logger logger = LoggerFactory.getLogger(OrderSerdeProducer.class.getName()); 20 | public static void main(String[] args) { 21 | 22 | String topicName = "order-serde-topic"; 23 | 24 | //KafkaProducer configuration setting 25 | // null, "hello world" 26 | 27 | Properties props = new Properties(); 28 | 29 | props.setProperty(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "192.168.56.101:9092"); 30 | props.setProperty(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName()); 31 | props.setProperty(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, OrderSerializer.class.getName()); 32 | 33 | //KafkaProducer object creation 34 | KafkaProducer kafkaProducer = new KafkaProducer(props); 35 | String filePath = "C:\\Users\\q\\IdeaProjects\\my-app\\KafkaProj-01\\practice\\src\\main\\resources\\pizza_sample.txt"; 36 | 37 | //KafkaProducer객체 생성->ProducerRecords생성 -> send() 비동기 방식 전송 38 | sendFileMessages(kafkaProducer, topicName, filePath); 39 | kafkaProducer.close(); 40 | 41 | } 42 | 43 | private static void sendFileMessages(KafkaProducer kafkaProducer, String topicName, String filePath) { 44 | String line = ""; 45 | final String delimiter = ","; 46 | 47 | try { 48 | FileReader fileReader = new FileReader(filePath); 49 | BufferedReader bufferedReader = new BufferedReader(fileReader); 50 | DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); 51 | while( (line = bufferedReader.readLine()) != null) { 52 | String[] tokens = line.split(delimiter); 53 | String key = tokens[0]; 54 | StringBuffer value = new StringBuffer(); 55 | 56 | OrderModel orderModel = new OrderModel(tokens[1], tokens[2], tokens[3], 57 | tokens[4], tokens[5], tokens[6], LocalDateTime.parse(tokens[7].trim(), formatter)); 58 | 59 | sendMessage(kafkaProducer, topicName, key, orderModel); 60 | 61 | } 62 | 63 | }catch(IOException e) { 64 | logger.info(e.getMessage()); 65 | } 66 | } 67 | 68 | private static void sendMessage(KafkaProducer kafkaProducer, String topicName, String key, OrderModel value) { 69 | ProducerRecord producerRecord = new ProducerRecord(topicName, key, value); 70 | logger.info("key:{}, value:{}", key, value); 71 | //kafkaProducer message send 72 | kafkaProducer.send(producerRecord, (metadata, exception) -> { 73 | if (exception == null) { 74 | logger.info("\n ###### record metadata received ##### \n" + 75 | "partition:" + metadata.partition() + "\n" + 76 | "offset:" + metadata.offset() + "\n" + 77 | "timestamp:" + metadata.timestamp()); 78 | } else { 79 | logger.error("exception error from broker " + exception.getMessage()); 80 | } 81 | }); 82 | 83 | } 84 | 85 | } 86 | -------------------------------------------------------------------------------- /practice/src/main/java/com/practice/kafka/producer/OrderSerializer.java: -------------------------------------------------------------------------------- 1 | package com.practice.kafka.producer; 2 | 3 | import com.fasterxml.jackson.core.JsonProcessingException; 4 | import com.fasterxml.jackson.databind.ObjectMapper; 5 | import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; 6 | import com.practice.kafka.model.OrderModel; 7 | import org.apache.kafka.common.serialization.Serializer; 8 | import org.slf4j.Logger; 9 | import org.slf4j.LoggerFactory; 10 | 11 | public class OrderSerializer implements Serializer { 12 | 13 | public static final Logger logger = LoggerFactory.getLogger(OrderSerializer.class.getName()); 14 | ObjectMapper objectMapper = new ObjectMapper().registerModule(new JavaTimeModule()); 15 | @Override 16 | public byte[] serialize(String topic, OrderModel order) { 17 | byte[] serializedOrder = null; 18 | 19 | try { 20 | serializedOrder = objectMapper.writeValueAsBytes(order); 21 | } catch (JsonProcessingException e) { 22 | logger.error("Json processing exception:" + e.getMessage()); 23 | } 24 | return serializedOrder; 25 | 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /practice/src/main/resources/pizza_sample.txt: -------------------------------------------------------------------------------- 1 | P001,ord0, P001, Cheese Pizza, Erick Koelpin, (235) 592-3785 x9190, 6373 Gulgowski Path, 2022-07-14 12:09:33 2 | E001,ord1, E001, Cheese Garlic Pizza, Deandra Jast, (515) 810-8846, 93316 Mike Stream, 2022-07-14 12:09:33 3 | D001,ord2, D001, Peperoni, Whitney Gusikowski DDS, 614.954.1047, 78797 Jacqualine Islands, 2022-07-14 12:09:33 4 | Q001,ord3, Q001, Cheese Garlic Pizza, Mr. Zachariah Yost, 1-599-682-3575 x32995, 52264 Tory Lake, 2022-07-14 12:09:33 5 | B001,ord4, B001, Peperoni, Dean Kuvalis, 031-678-3531, 45755 Skiles Inlet, 2022-07-14 12:09:33 6 | J001,ord5, J001, Cheese Garlic Pizza, Cheree Stark Sr., (392) 522-4468 x783, 9376 Benton Ville, 2022-07-14 12:09:33 7 | P001,ord6, P001, Cheese Pizza, Alline Jacobs, 1-420-465-3970, 9605 Randy Shore, 2022-07-14 12:09:33 8 | J001,ord7, J001, Peperoni, Selma Torp, 1-746-325-1486 x001, 6716 Ellis Greens, 2022-07-14 12:09:33 9 | D001,ord8, D001, Potato Pizza, Dr. Curtis Hettinger, 838.586.0286, 608 Moore Port, 2022-07-14 12:09:33 10 | E001,ord9, E001, Cheese Pizza, Mr. Eduardo Koss, 647.179.5716 x393, 685 Wilkinson Junctions, 2022-07-14 12:09:33 11 | K001,ord10, K001, Super Supreme, Denver Denesik, 262-878-6458, 9894 Runolfsdottir Curve, 2022-07-14 12:09:33 12 | J001,ord11, J001, Cheese Pizza, Annalee Collier MD, 1-997-266-0258, 43554 Ethyl Skyway, 2022-07-14 12:09:33 13 | H001,ord12, H001, Cheese Pizza, Ms. Yuonne Crooks, 1-048-291-6254, 31863 Heidenreich Cliff, 2022-07-14 12:09:33 14 | J001,ord13, J001, Super Supreme, Shawn Wisozk, (529) 616-1745 x05480, 700 Tobias Ferry, 2022-07-14 12:09:33 15 | F001,ord14, F001, Peperoni, Marquetta Cronin, 079.083.7850 x1419, 6444 Skiles Field, 2022-07-14 12:09:33 16 | O001,ord15, O001, Potato Pizza, Cassie Cassin, (376) 481-6463, 8668 Herzog Tunnel, 2022-07-14 12:09:33 17 | G001,ord16, G001, Cheese Garlic Pizza, Eufemia VonRueden DDS, 936-861-7698 x3032, 44189 Idella Centers, 2022-07-14 12:09:33 18 | Q001,ord17, Q001, Cheese Pizza, Reba Gusikowski, 1-158-091-1285 x93307, 4861 Lucius Harbors, 2022-07-14 12:09:33 19 | J001,ord18, J001, Cheese Pizza, Hellen Hand, (156) 890-1835 x1201, 29093 Daniel Cliff, 2022-07-14 12:09:33 20 | P001,ord19, P001, Peperoni, Myles Stoltenberg, (823) 926-7006 x695, 075 Yong Tunnel, 2022-07-14 12:09:33 21 | E001,ord20, E001, Peperoni, Lamar Hauck, 812-208-4001 x36410, 2553 Spencer Neck, 2022-07-14 12:09:33 22 | J001,ord21, J001, Potato Pizza, Mr. Carroll Murazik, 315-784-3933 x9871, 43698 Jarrod Brooks, 2022-07-14 12:09:33 23 | P001,ord22, P001, Potato Pizza, Oscar Cartwright, 1-961-864-9880, 71298 Hessel Falls, 2022-07-14 12:09:33 24 | E001,ord23, E001, Potato Pizza, Angelic Russel, 298.801.6056 x121, 49872 Eddy Shores, 2022-07-14 12:09:33 25 | A001,ord24, A001, Super Supreme, Lorrine Lind, 1-657-591-0240, 5421 Roman Green, 2022-07-14 12:09:33 26 | F001,ord25, F001, Cheese Garlic Pizza, Lavern D'Amore, 871.613.4964, 41001 Ruben Shores, 2022-07-14 12:09:33 27 | G001,ord26, G001, Cheese Garlic Pizza, Roland Tromp, 1-990-869-9448 x552, 14670 Susie Mall, 2022-07-14 12:09:33 28 | F001,ord27, F001, Peperoni, Stephan Hackett, 760-928-4828, 6330 Predovic Shoals, 2022-07-14 12:09:33 29 | B001,ord28, B001, Cheese Pizza, Dr. Virgilio Volkman, (371) 658-4035 x259, 556 Sol Summit, 2022-07-14 12:09:33 30 | J001,ord29, J001, Cheese Garlic Pizza, Miss Marlo Gutkowski, 1-236-956-4369, 7612 Jerrell Crossroad, 2022-07-14 12:09:33 31 | K001,ord30, K001, Potato Pizza, Orval Jones, 743.537.1148 x669, 980 Durgan Rue, 2022-07-14 12:09:33 32 | M001,ord31, M001, Cheese Garlic Pizza, Simon Volkman, (175) 736-6452 x461, 51515 Irwin Pine, 2022-07-14 12:09:33 33 | G001,ord32, G001, Peperoni, Tarsha Anderson, 646.435.1901, 5075 Smith Stravenue, 2022-07-14 12:09:33 34 | O001,ord33, O001, Cheese Pizza, Ralph Stoltenberg, (607) 380-9754, 40477 Carmela Trace, 2022-07-14 12:09:33 35 | I001,ord34, I001, Cheese Garlic Pizza, Jazmine Heaney, 572-629-5152 x294, 97094 Lubowitz Circle, 2022-07-14 12:09:33 36 | O001,ord35, O001, Cheese Garlic Pizza, Hung Nienow, 1-958-702-8217, 36643 Hudson Forest, 2022-07-14 12:09:33 37 | J001,ord36, J001, Peperoni, Mr. Chase Stokes, 557-856-1358 x675, 526 Durgan Lock, 2022-07-14 12:09:33 38 | C001,ord37, C001, Peperoni, Mrs. Virgen Powlowski, (080) 341-2539 x0332, 94856 Gertha Roads, 2022-07-14 12:09:33 39 | I001,ord38, I001, Peperoni, Dirk Bahringer, 412.793.1146, 006 Rayford Coves, 2022-07-14 12:09:33 40 | G001,ord39, G001, Super Supreme, Dr. Aida Bartell, 1-109-384-9222, 71512 Gottlieb Station, 2022-07-14 12:09:33 41 | C001,ord40, C001, Peperoni, Concetta Carter, 065.907.4122 x6862, 52240 Julianne Crescent, 2022-07-14 12:09:33 42 | L001,ord41, L001, Cheese Pizza, Mrs. Sol Treutel, 1-825-884-1986 x19338, 85088 Bradtke Passage, 2022-07-14 12:09:33 43 | E001,ord42, E001, Cheese Pizza, Hosea Douglas, 1-587-717-9892 x6620, 63436 Olson Cape, 2022-07-14 12:09:33 44 | L001,ord43, L001, Peperoni, Ms. Brittani Wiegand, 190.064.1362 x6459, 0932 Wilfredo Neck, 2022-07-14 12:09:33 45 | Q001,ord44, Q001, Peperoni, Miss Wanetta Daniel, (515) 346-9473 x218, 5426 Tenesha Ridges, 2022-07-14 12:09:33 46 | G001,ord45, G001, Potato Pizza, Cami Harber DDS, (898) 046-6842, 77910 Sherill Crossing, 2022-07-14 12:09:33 47 | P001,ord46, P001, Potato Pizza, Morris Jerde, 206-415-9590, 89317 Leanora Circles, 2022-07-14 12:09:33 48 | C001,ord47, C001, Cheese Garlic Pizza, Virgilio Nikolaus, (438) 853-9658 x330, 70777 Gerhold Oval, 2022-07-14 12:09:33 49 | O001,ord48, O001, Peperoni, Harriet Adams, 597.714.8650 x0560, 1366 Padberg Island, 2022-07-14 12:09:33 50 | G001,ord49, G001, Super Supreme, Alexander Bogisich Jr., 902-951-1404 x98051, 1424 Jc Centers, 2022-07-14 12:09:33 51 | G001,ord50, G001, Cheese Garlic Pizza, Waylon Willms, 1-799-915-5105 x024, 49233 Zieme Turnpike, 2022-07-14 12:09:33 52 | F001,ord51, F001, Potato Pizza, Vivienne Runolfsson, (599) 349-0559, 562 Dibbert Branch, 2022-07-14 12:09:33 53 | O001,ord52, O001, Super Supreme, Bibi Gaylord, 1-510-111-6704, 462 Trena Spring, 2022-07-14 12:09:33 54 | P001,ord53, P001, Potato Pizza, Shaun Kub, 895.638.2434 x58562, 9378 Quigley Crest, 2022-07-14 12:09:33 55 | P001,ord54, P001, Super Supreme, Dr. Lela Kub, 1-286-071-1390, 16015 Mandy Flat, 2022-07-14 12:09:33 56 | J001,ord55, J001, Super Supreme, Anamaria Stoltenberg, 155-977-0960, 2358 Skiles Lane, 2022-07-14 12:09:33 57 | G001,ord56, G001, Cheese Pizza, Necole Prohaska, 1-853-512-7863, 2466 Lehner Mews, 2022-07-14 12:09:33 58 | H001,ord57, H001, Peperoni, Nathanial Hahn, 212.785.5501 x23070, 0261 Douglas Parks, 2022-07-14 12:09:33 59 | K001,ord58, K001, Peperoni, Sherley Douglas, (939) 824-1551 x9261, 44705 Jacobson Radial, 2022-07-14 12:09:33 60 | D001,ord59, D001, Cheese Garlic Pizza, Roseanna Franecki, (044) 307-7731 x93064, 377 Towne Light, 2022-07-14 12:09:33 61 | P001,ord60, P001, Super Supreme, Otha O'Conner, 860-745-2503, 354 Ira Terrace, 2022-07-14 12:09:33 62 | F001,ord61, F001, Super Supreme, Dr. Keneth Ankunding, 661-979-5379, 1340 Crooks Pass, 2022-07-14 12:09:33 63 | I001,ord62, I001, Super Supreme, Sylvester VonRueden, 801-298-5377, 1164 Cronin Fields, 2022-07-14 12:09:33 64 | G001,ord63, G001, Super Supreme, Mr. Clyde Hills, 952-422-1160, 55225 Crist Groves, 2022-07-14 12:09:33 65 | H001,ord64, H001, Cheese Garlic Pizza, Wallace Cremin, (710) 961-2766 x667, 9543 Franklyn Mountains, 2022-07-14 12:09:33 66 | D001,ord65, D001, Peperoni, Gilbert Willms, 1-637-846-6645 x82665, 666 Fadel Meadow, 2022-07-14 12:09:33 67 | H001,ord66, H001, Super Supreme, Lemuel Raynor, 688.608.1567, 3240 Kovacek Fields, 2022-07-14 12:09:33 68 | M001,ord67, M001, Peperoni, Miss Terrence Jenkins, 510.449.4321, 146 Rodriguez Mountain, 2022-07-14 12:09:33 69 | I001,ord68, I001, Potato Pizza, Adelaida Nolan, 993.499.4433, 05805 Roxann Lights, 2022-07-14 12:09:33 70 | N001,ord69, N001, Potato Pizza, Duncan Cruickshank, 1-974-088-4703 x7234, 74854 Joaquina Ridges, 2022-07-14 12:09:33 71 | H001,ord70, H001, Potato Pizza, Dessie Fritsch, 1-831-624-9641 x515, 823 Reilly Knolls, 2022-07-14 12:09:33 72 | N001,ord71, N001, Peperoni, Bernetta Daugherty, 1-792-597-9307 x5573, 3676 Upton Causeway, 2022-07-14 12:09:33 73 | P001,ord72, P001, Peperoni, Elisha Adams, (445) 680-9350, 76264 Hane Fort, 2022-07-14 12:09:33 74 | A001,ord73, A001, Super Supreme, Mrs. Roberto Gutkowski, 265.545.5433 x618, 34220 Blanda Lake, 2022-07-14 12:09:33 75 | L001,ord74, L001, Cheese Garlic Pizza, Omer Kuhic, 1-784-318-7902 x20851, 031 Josh Island, 2022-07-14 12:09:33 76 | N001,ord75, N001, Peperoni, Greta Gleason, 711.439.1950, 9536 Muller Crossing, 2022-07-14 12:09:33 77 | C001,ord76, C001, Super Supreme, Mrs. Elmer Metz, 678.638.1797 x67941, 90943 Kevin Road, 2022-07-14 12:09:33 78 | N001,ord77, N001, Cheese Pizza, Maire Kunze, 1-763-206-9315 x47230, 0595 Tanner Meadows, 2022-07-14 12:09:33 79 | D001,ord78, D001, Peperoni, Pamila Watsica, 1-640-318-0094, 10285 Tarsha Shoals, 2022-07-14 12:09:33 80 | A001,ord79, A001, Super Supreme, Briana Purdy III, 947-084-2077 x6199, 83188 Kiley Rapids, 2022-07-14 12:09:33 81 | E001,ord80, E001, Potato Pizza, Daryl Gerhold, 1-203-818-2944, 67909 Krajcik Road, 2022-07-14 12:09:33 82 | L001,ord81, L001, Super Supreme, Ms. Bernardo Rutherford, 1-245-964-1462 x858, 793 Mia Mission, 2022-07-14 12:09:33 83 | D001,ord82, D001, Potato Pizza, Whitney Kemmer, 564.736.4479, 11805 Vikki Pines, 2022-07-14 12:09:33 84 | G001,ord83, G001, Peperoni, Tamie Rolfson, 866.252.3955 x542, 112 Beahan Skyway, 2022-07-14 12:09:33 85 | M001,ord84, M001, Super Supreme, Dion Marquardt, 819-503-5400 x9892, 89692 Ellis Terrace, 2022-07-14 12:09:33 86 | Q001,ord85, Q001, Super Supreme, Normand Corwin, (375) 050-7772 x8476, 60309 Jacobson Forges, 2022-07-14 12:09:33 87 | N001,ord86, N001, Potato Pizza, Riley Mann III, 334.374.4256, 9140 Kemmer Road, 2022-07-14 12:09:33 88 | D001,ord87, D001, Peperoni, Latina Gleichner, 555.316.0968, 0857 Rath Hills, 2022-07-14 12:09:33 89 | C001,ord88, C001, Cheese Garlic Pizza, Hayden VonRueden, (228) 510-0217 x1219, 20910 Micah Light, 2022-07-14 12:09:33 90 | M001,ord89, M001, Cheese Pizza, Grady Gleason, 101.528.4316, 197 Belkis Inlet, 2022-07-14 12:09:33 91 | B001,ord90, B001, Cheese Pizza, Bernie Schoen, 688.291.5390, 815 Mueller Wells, 2022-07-14 12:09:33 92 | H001,ord91, H001, Peperoni, Blaine Hackett Jr., 626-676-7912 x45637, 76793 Conroy Inlet, 2022-07-14 12:09:33 93 | D001,ord92, D001, Cheese Garlic Pizza, Jolyn Hessel, (474) 772-2445, 63455 Marlen Viaduct, 2022-07-14 12:09:33 94 | K001,ord93, K001, Potato Pizza, Leighann Von, (044) 851-4084, 001 Gretta Lodge, 2022-07-14 12:09:33 95 | P001,ord94, P001, Cheese Garlic Pizza, Connie Leuschke MD, 882.819.6000, 901 Stokes Drives, 2022-07-14 12:09:33 96 | N001,ord95, N001, Potato Pizza, Nga Purdy, 825.395.0679, 7967 Kiehn Port, 2022-07-14 12:09:33 97 | O001,ord96, O001, Cheese Garlic Pizza, Marta Christiansen, 697-986-5975 x1369, 164 Lemuel Cliff, 2022-07-14 12:09:33 98 | J001,ord97, J001, Cheese Pizza, Chieko Ledner, 1-400-274-8191, 38303 Janelle Common, 2022-07-14 12:09:33 99 | N001,ord98, N001, Peperoni, Perry Bosco, 698.147.7165 x69651, 18035 Rau Forest, 2022-07-14 12:09:33 100 | I001,ord99, I001, Cheese Garlic Pizza, Concetta Smitham, (801) 426-7642, 6320 Kunde Fields, 2022-07-14 12:09:33 101 | B001,ord100, B001, Peperoni, Ms. Cornell Schmeler, 740-915-6896 x6513, 48830 Hayley Fords, 2022-07-14 12:09:33 102 | L001,ord101, L001, Super Supreme, Miss Marcelene Robel, (482) 588-6999, 683 Alda Fords, 2022-07-14 12:09:33 103 | K001,ord102, K001, Super Supreme, Ralph Turner III, (234) 648-1654 x9433, 85202 Gislason Spurs, 2022-07-14 12:09:33 104 | M001,ord103, M001, Cheese Pizza, Sherlene Lubowitz, 815-407-7506 x554, 98295 Laurence Spurs, 2022-07-14 12:09:33 105 | I001,ord104, I001, Cheese Garlic Pizza, Kendall Feeney, 914-703-5093 x00951, 543 Greenfelder Light, 2022-07-14 12:09:33 106 | K001,ord105, K001, Super Supreme, Lorette Hegmann, 656.623.3010 x16524, 93649 Ferdinand Points, 2022-07-14 12:09:33 107 | Q001,ord106, Q001, Cheese Garlic Pizza, Cleveland Kris, 388.059.8844, 77700 Dietrich Centers, 2022-07-14 12:09:33 108 | B001,ord107, B001, Cheese Garlic Pizza, Lewis Kunze, 404-349-7230, 449 McKenzie Bypass, 2022-07-14 12:09:33 109 | A001,ord108, A001, Super Supreme, Sammy Cremin DVM, (220) 473-6959, 7857 Vito Cape, 2022-07-14 12:09:33 110 | E001,ord109, E001, Cheese Pizza, Maisha VonRueden, 1-456-732-7467, 981 Hayden Valley, 2022-07-14 12:09:33 111 | P001,ord110, P001, Cheese Garlic Pizza, Russel Weissnat, 586.392.4228, 0389 Kris Shore, 2022-07-14 12:09:33 112 | Q001,ord111, Q001, Cheese Pizza, Pablo Ferry, 958-539-9733, 6621 Cole Summit, 2022-07-14 12:09:33 113 | P001,ord112, P001, Cheese Garlic Pizza, Giovanni Mann, (999) 952-1490 x2855, 613 Alvin Junction, 2022-07-14 12:09:33 114 | L001,ord113, L001, Cheese Pizza, Peter Ferry IV, (464) 916-5530 x59018, 303 Lesch Motorway, 2022-07-14 12:09:33 115 | F001,ord114, F001, Cheese Garlic Pizza, Mr. Lakesha Hilll, (583) 991-4433 x3507, 848 Beverly Fall, 2022-07-14 12:09:33 116 | N001,ord115, N001, Cheese Garlic Pizza, Teodoro Bashirian, 444.265.0337 x413, 17472 Batz Orchard, 2022-07-14 12:09:33 117 | P001,ord116, P001, Potato Pizza, Franklin Harber, (256) 341-1936, 7474 Felton Freeway, 2022-07-14 12:09:33 118 | K001,ord117, K001, Cheese Garlic Pizza, Timothy Dooley DVM, 1-811-275-4599, 4265 Dare Station, 2022-07-14 12:09:33 119 | D001,ord118, D001, Potato Pizza, Micha Conn III, 069.746.8469 x14067, 7327 Otis Cliff, 2022-07-14 12:09:33 120 | A001,ord119, A001, Cheese Pizza, Rosita Senger Sr., 787-432-1299, 4181 Pura Fort, 2022-07-14 12:09:33 121 | E001,ord120, E001, Potato Pizza, Miles Dickens, 000-235-3380, 38995 Lamont Ports, 2022-07-14 12:09:33 122 | J001,ord121, J001, Super Supreme, Susanna Beer, 328.703.8095 x87034, 551 Kihn Island, 2022-07-14 12:09:33 123 | B001,ord122, B001, Potato Pizza, Kala Hermiston, (493) 958-2295 x008, 57826 Cyrstal Centers, 2022-07-14 12:09:33 124 | L001,ord123, L001, Cheese Garlic Pizza, Mrs. Kelvin Wiegand, 320.677.4148, 7276 Gertha Roads, 2022-07-14 12:09:33 125 | D001,ord124, D001, Cheese Garlic Pizza, Elwanda Larson, (036) 889-2486 x11904, 30409 Willis River, 2022-07-14 12:09:33 126 | A001,ord125, A001, Peperoni, Marcene Lesch, (672) 844-8644, 403 Wisozk Row, 2022-07-14 12:09:33 127 | L001,ord126, L001, Potato Pizza, Hanna Predovic II, 536.022.5791, 1573 Mary Causeway, 2022-07-14 12:09:33 128 | O001,ord127, O001, Super Supreme, Dr. Ngoc Beier, 700-338-7324, 455 Jonah Lights, 2022-07-14 12:09:33 129 | P001,ord128, P001, Cheese Pizza, Orlando Waters, (207) 658-3424 x3119, 62642 King Stream, 2022-07-14 12:09:33 130 | O001,ord129, O001, Super Supreme, Miss Archie Russel, 1-495-653-1516, 772 Yost Parkways, 2022-07-14 12:09:33 131 | L001,ord130, L001, Super Supreme, Dean Fisher, (284) 022-6696 x9172, 13578 Williamson Lodge, 2022-07-14 12:09:33 132 | Q001,ord131, Q001, Cheese Garlic Pizza, Keven Krajcik Sr., 127-029-8478, 43017 Wiegand Village, 2022-07-14 12:09:33 133 | M001,ord132, M001, Super Supreme, Zackary Windler, 431-352-7557 x742, 9243 Esteban Cliffs, 2022-07-14 12:09:33 134 | L001,ord133, L001, Super Supreme, Miss Leonel Goyette, 381.088.1741, 658 Wehner Spring, 2022-07-14 12:09:33 135 | I001,ord134, I001, Cheese Pizza, Mr. Timothy Hessel, (301) 403-9928 x4141, 3595 Eddie Mill, 2022-07-14 12:09:33 136 | C001,ord135, C001, Super Supreme, Coy Jacobson DDS, 824-617-0764, 716 Cecelia Ridge, 2022-07-14 12:09:33 137 | Q001,ord136, Q001, Potato Pizza, Adriana Bauch, 447.984.6844, 757 Dion Pass, 2022-07-14 12:09:33 138 | A001,ord137, A001, Cheese Garlic Pizza, Mr. Sonja Reinger, 140.128.9481, 0182 Noah Mount, 2022-07-14 12:09:33 139 | M001,ord138, M001, Cheese Garlic Pizza, Jaime Schroeder, 1-319-364-4939 x65021, 7610 Hamill Spurs, 2022-07-14 12:09:33 140 | O001,ord139, O001, Peperoni, Ms. Gil Rodriguez, 1-857-803-9399, 9962 Jay Groves, 2022-07-14 12:09:33 141 | N001,ord140, N001, Peperoni, Dr. Alphonse Gorczany, (842) 169-3628 x825, 1915 Marybeth Springs, 2022-07-14 12:09:33 142 | L001,ord141, L001, Potato Pizza, Janetta Luettgen, (556) 927-7161 x419, 3420 Tom Curve, 2022-07-14 12:09:33 143 | K001,ord142, K001, Super Supreme, Donnell Upton, 850-342-0448, 2663 Marcelo Square, 2022-07-14 12:09:33 144 | N001,ord143, N001, Cheese Garlic Pizza, Solange Lehner, 167.041.6830, 12374 Serina Ridges, 2022-07-14 12:09:33 145 | Q001,ord144, Q001, Cheese Pizza, Stanton Schmeler DVM, 1-871-992-3545 x634, 63663 Newton Summit, 2022-07-14 12:09:33 146 | D001,ord145, D001, Potato Pizza, Geraldo Halvorson, 242-143-0865 x5112, 2329 Serina Keys, 2022-07-14 12:09:33 147 | A001,ord146, A001, Peperoni, Chung Hane III, 981-292-1061, 04361 Vita Route, 2022-07-14 12:09:33 148 | E001,ord147, E001, Peperoni, Emmie Orn, 1-142-301-1564, 771 Fritsch Loaf, 2022-07-14 12:09:33 149 | N001,ord148, N001, Cheese Garlic Pizza, Mrs. Bernie Mann, 736-371-5123, 77900 Dianna Forges, 2022-07-14 12:09:33 150 | H001,ord149, H001, Super Supreme, Hassan Donnelly, 1-251-814-1355 x879, 69348 Octavio Creek, 2022-07-14 12:09:33 151 | O001,ord150, O001, Cheese Garlic Pizza, Noel Jones, 016.721.4849 x75280, 8672 DuBuque Drive, 2022-07-14 12:09:33 152 | G001,ord151, G001, Cheese Garlic Pizza, Weston Jacobs, 1-669-560-8627 x2006, 5577 Elisha Harbors, 2022-07-14 12:09:33 153 | K001,ord152, K001, Cheese Pizza, Sharlene Schneider, 1-469-884-2661, 6689 Emmerich Manors, 2022-07-14 12:09:33 154 | C001,ord153, C001, Super Supreme, Maida Bauch, 240.161.8020, 41971 Lockman Knolls, 2022-07-14 12:09:33 155 | E001,ord154, E001, Peperoni, Isidro Herman, 1-037-391-0867, 9393 Rosario Creek, 2022-07-14 12:09:33 156 | K001,ord155, K001, Potato Pizza, Karisa Hayes, 1-262-427-0712 x769, 24113 Nigel Field, 2022-07-14 12:09:33 157 | D001,ord156, D001, Super Supreme, Latrice Carroll, 422-206-3900 x972, 9345 Kirlin Roads, 2022-07-14 12:09:33 158 | F001,ord157, F001, Cheese Garlic Pizza, Clint Veum, 501-109-4307, 235 Heathcote View, 2022-07-14 12:09:33 159 | F001,ord158, F001, Cheese Pizza, David Shanahan IV, 264.497.0266, 06931 Maisie Mount, 2022-07-14 12:09:33 160 | Q001,ord159, Q001, Cheese Garlic Pizza, Audria Bednar PhD, 1-404-628-9473 x9725, 5675 Jonathon Underpass, 2022-07-14 12:09:33 161 | N001,ord160, N001, Super Supreme, Mrs. Pennie Bahringer, (692) 509-8002 x1933, 795 Rempel Fork, 2022-07-14 12:09:33 162 | L001,ord161, L001, Cheese Garlic Pizza, Miss Nannette Ernser, 1-340-491-0550 x3683, 9251 McKenzie Squares, 2022-07-14 12:09:33 163 | L001,ord162, L001, Peperoni, Scot Mann II, 249-916-1629, 22943 Bauch Island, 2022-07-14 12:09:33 164 | C001,ord163, C001, Super Supreme, Brendan Marvin, (277) 162-2680, 421 Carol Forges, 2022-07-14 12:09:33 165 | P001,ord164, P001, Cheese Pizza, Riley Bradtke, 403.515.1015 x0946, 52256 Kuhn Lodge, 2022-07-14 12:09:33 166 | K001,ord165, K001, Peperoni, Mrs. Billy Huel, (453) 871-5708, 7451 Katina Expressway, 2022-07-14 12:09:33 167 | O001,ord166, O001, Peperoni, Waneta Schultz, (561) 399-4580, 6762 Schumm Inlet, 2022-07-14 12:09:33 168 | K001,ord167, K001, Cheese Garlic Pizza, Kenyatta Ondricka, 986.049.7819, 261 Willetta Manor, 2022-07-14 12:09:33 169 | M001,ord168, M001, Super Supreme, Catherin Borer, 931-919-0119 x12734, 80217 Wyman Brook, 2022-07-14 12:09:33 170 | K001,ord169, K001, Cheese Garlic Pizza, Illa Wiegand, 943.603.4564, 117 Denesik Shores, 2022-07-14 12:09:33 171 | C001,ord170, C001, Cheese Garlic Pizza, Tomiko Pollich DVM, 082.850.2497 x008, 80575 Dulcie Locks, 2022-07-14 12:09:33 172 | M001,ord171, M001, Super Supreme, Alfredo Kozey, (283) 240-4179, 37261 Neva Ferry, 2022-07-14 12:09:33 173 | N001,ord172, N001, Peperoni, Chadwick Sawayn Sr., 1-363-004-5745 x171, 454 Kreiger Trail, 2022-07-14 12:09:33 174 | J001,ord173, J001, Cheese Pizza, Ronald Brakus, 020-575-3382, 86901 Georgianna Ports, 2022-07-14 12:09:33 175 | H001,ord174, H001, Cheese Garlic Pizza, Ramon Stroman, 1-772-257-0920 x81528, 442 Felica Via, 2022-07-14 12:09:33 176 | Q001,ord175, Q001, Cheese Garlic Pizza, Janean Graham MD, 059.322.2550, 5998 Marge Ways, 2022-07-14 12:09:33 177 | E001,ord176, E001, Peperoni, Rodolfo Feeney, (301) 208-4665 x2566, 82064 Stokes Ferry, 2022-07-14 12:09:33 178 | J001,ord177, J001, Potato Pizza, Alden Klein DVM, 040.598.3341, 33856 Dora Mission, 2022-07-14 12:09:33 179 | B001,ord178, B001, Cheese Garlic Pizza, Alejandrina Schimmel, 208.656.7138, 2331 Lang Skyway, 2022-07-14 12:09:33 180 | P001,ord179, P001, Super Supreme, Donn Wehner, 646-049-0324, 8164 Helene Place, 2022-07-14 12:09:33 181 | C001,ord180, C001, Potato Pizza, Malik Considine, 326-824-2882 x2658, 164 Myles Grove, 2022-07-14 12:09:33 182 | G001,ord181, G001, Super Supreme, Dr. Eddy Weber, 182-505-5218, 327 Markus Lodge, 2022-07-14 12:09:33 183 | A001,ord182, A001, Peperoni, Ira Yundt, (288) 374-7730 x342, 683 Toy Rapids, 2022-07-14 12:09:33 184 | D001,ord183, D001, Cheese Pizza, Edgardo Fritsch III, 1-916-809-6949 x411, 9706 Carmela Crest, 2022-07-14 12:09:33 185 | G001,ord184, G001, Cheese Pizza, Raul Abshire, 554.591.8610, 4543 Yost Village, 2022-07-14 12:09:33 186 | N001,ord185, N001, Peperoni, Arnold Cremin, 1-179-263-4575, 2612 Yost Circle, 2022-07-14 12:09:33 187 | O001,ord186, O001, Cheese Garlic Pizza, Kellye Hudson, 564.921.8492 x0776, 45526 Schamberger Islands, 2022-07-14 12:09:33 188 | N001,ord187, N001, Cheese Pizza, Ross West, (287) 959-1881, 824 Kunze Meadow, 2022-07-14 12:09:33 189 | P001,ord188, P001, Super Supreme, Danny Pollich, 1-279-756-4929 x6716, 50909 Devin Point, 2022-07-14 12:09:33 190 | A001,ord189, A001, Cheese Garlic Pizza, Mrs. Homer Fahey, 794.930.2990, 898 Carrol Glen, 2022-07-14 12:09:33 191 | A001,ord190, A001, Super Supreme, Marco Anderson, (511) 183-6603, 515 Kristofer Tunnel, 2022-07-14 12:09:33 192 | E001,ord191, E001, Peperoni, Marvin O'Kon, 600.726.7849 x889, 061 Johnson Walk, 2022-07-14 12:09:33 193 | N001,ord192, N001, Cheese Pizza, Dorine Bailey V, (187) 008-2437 x94347, 82683 McLaughlin Shore, 2022-07-14 12:09:33 194 | F001,ord193, F001, Super Supreme, Gordon Conn, (402) 571-0063, 63459 Newton Burg, 2022-07-14 12:09:33 195 | H001,ord194, H001, Cheese Garlic Pizza, Dr. Cyrus Volkman, 1-255-315-7543 x4886, 6905 Donnelly Point, 2022-07-14 12:09:33 196 | O001,ord195, O001, Peperoni, Micheline Blick, (908) 526-8363, 2168 Oberbrunner Viaduct, 2022-07-14 12:09:33 197 | M001,ord196, M001, Cheese Garlic Pizza, Mr. Elroy Mohr, 810-933-0946, 852 Alayna Ports, 2022-07-14 12:09:33 198 | I001,ord197, I001, Peperoni, Levi Purdy PhD, (869) 779-8118 x95945, 9653 Joesph Ridge, 2022-07-14 12:09:33 199 | P001,ord198, P001, Peperoni, Jon Bosco, (047) 776-1785, 2894 Chin Creek, 2022-07-14 12:09:33 200 | H001,ord199, H001, Potato Pizza, Elenore Lueilwitz, 1-551-389-2933, 452 Joey Lodge, 2022-07-14 12:09:33 201 | L001,ord200, L001, Cheese Pizza, Mrs. Katina Daniel, 631.062.8642 x21641, 65298 Delbert Hollow, 2022-07-14 12:09:33 202 | I001,ord201, I001, Cheese Garlic Pizza, Dixie Williamson, 359.544.4590 x8053, 1122 Jon Run, 2022-07-14 12:09:33 203 | K001,ord202, K001, Cheese Garlic Pizza, Janina Reilly, 249-989-8995 x9843, 59845 Altenwerth Radial, 2022-07-14 12:09:33 204 | L001,ord203, L001, Super Supreme, Nellie Brown, (829) 395-0860, 31237 Maryland Keys, 2022-07-14 12:09:33 205 | O001,ord204, O001, Potato Pizza, Albertine Hirthe, 1-191-395-4556, 6621 Ira Turnpike, 2022-07-14 12:09:33 206 | N001,ord205, N001, Cheese Pizza, Laverna Frami, 699-044-3228, 2755 Anastacia Expressway, 2022-07-14 12:09:33 207 | H001,ord206, H001, Cheese Garlic Pizza, Malcolm Schamberger Jr., 1-249-371-3797 x3926, 0251 Edward Spur, 2022-07-14 12:09:33 208 | L001,ord207, L001, Cheese Pizza, Moshe Hettinger, 1-824-549-5191 x3372, 78904 Kemmer Extensions, 2022-07-14 12:09:33 209 | H001,ord208, H001, Peperoni, Mrs. Hilde Flatley, 047-216-5985 x88375, 22096 Feil Flat, 2022-07-14 12:09:33 210 | A001,ord209, A001, Cheese Garlic Pizza, Gillian Glover, 275.996.7112 x504, 971 Weissnat Forest, 2022-07-14 12:09:33 211 | P001,ord210, P001, Peperoni, Mr. Christoper Carter, (988) 375-3034, 978 Martha Turnpike, 2022-07-14 12:09:33 212 | G001,ord211, G001, Cheese Pizza, Norene Ferry, 786-015-2964 x422, 28936 Quigley Mountain, 2022-07-14 12:09:33 213 | O001,ord212, O001, Potato Pizza, Branden Kutch, 1-603-881-9491, 5198 Feest Trail, 2022-07-14 12:09:33 214 | J001,ord213, J001, Peperoni, Isidro Conn, 1-867-601-7689, 0546 Jimmy Fork, 2022-07-14 12:09:33 215 | G001,ord214, G001, Super Supreme, Darnell Gutkowski Sr., 1-301-159-5115 x43131, 598 Andres Falls, 2022-07-14 12:09:33 216 | D001,ord215, D001, Cheese Pizza, Ocie Schuppe I, (831) 842-6101 x939, 925 Venita Fords, 2022-07-14 12:09:33 217 | K001,ord216, K001, Super Supreme, Brenton Mante, 1-773-164-7411, 5905 Gibson View, 2022-07-14 12:09:33 218 | H001,ord217, H001, Cheese Garlic Pizza, Porter Aufderhar I, 533-644-6180 x93107, 61035 Corwin Terrace, 2022-07-14 12:09:33 219 | A001,ord218, A001, Cheese Pizza, Stevie Gottlieb V, 603-526-8848 x381, 70963 Goodwin Pike, 2022-07-14 12:09:33 220 | I001,ord219, I001, Peperoni, Mrs. Eladia O'Connell, (316) 865-0681 x30297, 28339 Emery Park, 2022-07-14 12:09:33 221 | J001,ord220, J001, Cheese Garlic Pizza, Miss Gita Kessler, 385.573.2861 x25645, 743 Wuckert Orchard, 2022-07-14 12:09:33 222 | E001,ord221, E001, Cheese Pizza, Cody Nicolas, 985.354.6656 x87819, 39415 Divina Trail, 2022-07-14 12:09:33 223 | N001,ord222, N001, Potato Pizza, Gladys Becker, 203-762-6461, 0261 Cremin Brooks, 2022-07-14 12:09:33 224 | E001,ord223, E001, Peperoni, Dr. Tonita Ward, (527) 224-5965, 98028 Jones Isle, 2022-07-14 12:09:33 225 | C001,ord224, C001, Cheese Pizza, Nevada Kerluke, 658.964.9555 x780, 88386 Shields Cape, 2022-07-14 12:09:33 226 | A001,ord225, A001, Cheese Pizza, Monica Ledner, 1-705-132-7182 x842, 7789 Melvin Court, 2022-07-14 12:09:33 227 | H001,ord226, H001, Super Supreme, Curtis O'Kon II, (321) 987-0125 x28296, 1471 Gregoria Shoal, 2022-07-14 12:09:33 228 | L001,ord227, L001, Peperoni, Kraig Effertz, 745.691.4401, 4396 Lesch Alley, 2022-07-14 12:09:33 229 | L001,ord228, L001, Cheese Garlic Pizza, Ronnie Kuhic, 899.019.9444 x268, 046 Brakus Springs, 2022-07-14 12:09:33 230 | Q001,ord229, Q001, Cheese Pizza, Norberto Grant, (704) 607-9507 x261, 559 Michal Corners, 2022-07-14 12:09:33 231 | D001,ord230, D001, Potato Pizza, Detra Schuppe, 504-309-2863, 471 Koss Forest, 2022-07-14 12:09:33 232 | G001,ord231, G001, Cheese Pizza, Dawna Metz Sr., 1-469-487-4427, 339 Howe Ferry, 2022-07-14 12:09:33 233 | F001,ord232, F001, Potato Pizza, Anastasia Lowe, 411.136.9454, 0728 Birgit Mountain, 2022-07-14 12:09:33 234 | E001,ord233, E001, Cheese Pizza, Melody Schumm, (351) 387-1585, 09183 West Meadows, 2022-07-14 12:09:33 235 | H001,ord234, H001, Peperoni, September Rath, (708) 542-6268 x01387, 188 Kautzer Curve, 2022-07-14 12:09:33 236 | A001,ord235, A001, Peperoni, Pasquale Davis, 1-059-333-4296 x0256, 832 Stephani Meadows, 2022-07-14 12:09:33 237 | D001,ord236, D001, Peperoni, Cristobal Mante IV, (529) 828-2432 x6802, 71086 Myron Port, 2022-07-14 12:09:33 238 | A001,ord237, A001, Cheese Garlic Pizza, Rickie Welch, 959.953.0171 x763, 36550 Danica Stream, 2022-07-14 12:09:33 239 | F001,ord238, F001, Peperoni, Dr. Deandrea Rau, 800-614-8983 x5032, 01553 Daysi Summit, 2022-07-14 12:09:33 240 | J001,ord239, J001, Cheese Garlic Pizza, Jerrod Kuhic, 1-441-095-3660, 757 Alonso Plain, 2022-07-14 12:09:33 241 | E001,ord240, E001, Cheese Pizza, Alyson Kshlerin, 1-438-651-7659 x4538, 760 Agustin Green, 2022-07-14 12:09:33 242 | J001,ord241, J001, Cheese Pizza, Anamaria Schroeder, 009.308.1040, 8548 Morissette Plains, 2022-07-14 12:09:33 243 | H001,ord242, H001, Super Supreme, Carroll Armstrong, 522.151.6107 x762, 712 Kelly Canyon, 2022-07-14 12:09:33 244 | F001,ord243, F001, Peperoni, Rosemarie Marks, 514-428-5552, 2194 Ted Walks, 2022-07-14 12:09:33 245 | A001,ord244, A001, Cheese Garlic Pizza, Josue Kassulke, 029-690-7474, 444 Tara Skyway, 2022-07-14 12:09:33 246 | D001,ord245, D001, Cheese Garlic Pizza, Chaya Denesik, (837) 382-8897 x90178, 5040 Damion Cape, 2022-07-14 12:09:33 247 | M001,ord246, M001, Potato Pizza, Mr. Magda Monahan, 1-675-663-1570 x29373, 1773 Jill Expressway, 2022-07-14 12:09:33 248 | C001,ord247, C001, Peperoni, Barrie Towne, (680) 359-9719, 5355 Waelchi Manors, 2022-07-14 12:09:33 249 | F001,ord248, F001, Super Supreme, Dalia Mayer, 1-972-936-2118, 473 Hudson Divide, 2022-07-14 12:09:33 250 | K001,ord249, K001, Super Supreme, Brady Cummerata, 351.940.1765, 621 Spencer Place, 2022-07-14 12:09:33 251 | F001,ord250, F001, Potato Pizza, Clark Kozey, (616) 966-1689 x55333, 819 Skiles Via, 2022-07-14 12:09:33 252 | D001,ord251, D001, Super Supreme, Laverne Leffler, 1-363-605-2274, 5836 VonRueden Stream, 2022-07-14 12:09:33 253 | D001,ord252, D001, Cheese Pizza, Elene Schroeder, (699) 947-0379 x569, 25312 Bergnaum Haven, 2022-07-14 12:09:33 254 | L001,ord253, L001, Cheese Pizza, Emile Bernier, 846.448.2897, 780 Rempel Mission, 2022-07-14 12:09:33 255 | B001,ord254, B001, Peperoni, Collene Streich, 1-262-851-2634, 5122 Aleen Ridge, 2022-07-14 12:09:33 256 | M001,ord255, M001, Super Supreme, Jody Hand Jr., 310-719-3741 x29453, 467 Hoppe Track, 2022-07-14 12:09:33 257 | L001,ord256, L001, Cheese Pizza, Reena Gerhold, (748) 994-9107, 1373 Wuckert Glen, 2022-07-14 12:09:33 258 | G001,ord257, G001, Cheese Pizza, Burton Kuhic, (931) 741-8328 x8971, 26138 Cummings Ways, 2022-07-14 12:09:33 259 | C001,ord258, C001, Peperoni, Leigha Schiller, 863.043.8172 x4801, 6885 Halvorson Cove, 2022-07-14 12:09:33 260 | L001,ord259, L001, Cheese Garlic Pizza, Darin Champlin, 1-964-985-2078, 189 Carletta Landing, 2022-07-14 12:09:33 261 | A001,ord260, A001, Cheese Garlic Pizza, Marcos Weimann DDS, 439.448.3452, 81596 Pacocha Highway, 2022-07-14 12:09:33 262 | Q001,ord261, Q001, Super Supreme, Verdell Dare, 377.544.4808 x8843, 9706 Marks Spurs, 2022-07-14 12:09:33 263 | L001,ord262, L001, Cheese Pizza, Lillie Funk, 495-070-2978, 139 Schroeder Summit, 2022-07-14 12:09:33 264 | J001,ord263, J001, Peperoni, Carol Volkman, 162-689-6671, 64298 Hayes Plain, 2022-07-14 12:09:33 265 | B001,ord264, B001, Cheese Garlic Pizza, Johnny Durgan, 1-999-473-0974 x7107, 6900 Nancie Turnpike, 2022-07-14 12:09:33 266 | F001,ord265, F001, Potato Pizza, Bradford Lynch, 328-548-2073 x128, 966 Koss Drive, 2022-07-14 12:09:33 267 | F001,ord266, F001, Super Supreme, Tod Herman, (692) 305-0941 x9263, 071 Teressa Fall, 2022-07-14 12:09:33 268 | H001,ord267, H001, Cheese Garlic Pizza, Noble Becker, 674.433.7338 x4838, 50273 Magdalen Trail, 2022-07-14 12:09:33 269 | D001,ord268, D001, Potato Pizza, Soraya Lubowitz III, 1-758-888-5293 x663, 43005 Kohler Forges, 2022-07-14 12:09:33 270 | N001,ord269, N001, Super Supreme, Wayne Rowe, 852.411.8721 x811, 3321 Teisha Locks, 2022-07-14 12:09:33 271 | C001,ord270, C001, Cheese Garlic Pizza, Perla Waelchi, 189.310.5820, 4944 Von Centers, 2022-07-14 12:09:33 272 | N001,ord271, N001, Peperoni, Vesta Feeney PhD, (324) 019-4129, 68353 Doyle Club, 2022-07-14 12:09:33 273 | D001,ord272, D001, Super Supreme, Jestine Crona, (065) 470-9941 x0792, 7981 Felix Wells, 2022-07-14 12:09:33 274 | C001,ord273, C001, Cheese Garlic Pizza, Lauri Labadie, 1-433-161-0056 x70529, 36393 Colin Fields, 2022-07-14 12:09:33 275 | A001,ord274, A001, Super Supreme, Tammi Sipes III, 802-477-2114 x6717, 59676 Sporer Fall, 2022-07-14 12:09:33 276 | P001,ord275, P001, Super Supreme, Nanci Lebsack Jr., 669-019-1740 x564, 766 Ruecker Manor, 2022-07-14 12:09:33 277 | A001,ord276, A001, Super Supreme, Berry Hahn, 1-148-033-3211 x634, 2927 Beau Coves, 2022-07-14 12:09:33 278 | F001,ord277, F001, Peperoni, Dana Wintheiser, (815) 288-5001 x70785, 426 Kihn Well, 2022-07-14 12:09:33 279 | H001,ord278, H001, Potato Pizza, Hai Waters, 486.507.9540 x000, 24592 Blaine Skyway, 2022-07-14 12:09:33 280 | I001,ord279, I001, Super Supreme, Miss Joline Wisozk, (430) 301-2716 x40165, 865 Torp Key, 2022-07-14 12:09:33 281 | H001,ord280, H001, Peperoni, Jamel Labadie, 118-122-7728 x3455, 80907 Johnson Hill, 2022-07-14 12:09:33 282 | H001,ord281, H001, Super Supreme, Denita Okuneva, (976) 559-5227 x69364, 119 Pamala Views, 2022-07-14 12:09:33 283 | A001,ord282, A001, Potato Pizza, Ian Parisian DDS, (128) 240-9196 x8198, 1079 Rolfson Villages, 2022-07-14 12:09:33 284 | J001,ord283, J001, Peperoni, Edward Jerde, (367) 012-1493, 87960 Art Well, 2022-07-14 12:09:33 285 | D001,ord284, D001, Cheese Pizza, Dirk Predovic, 1-636-151-8783, 848 Schmitt Parkways, 2022-07-14 12:09:33 286 | P001,ord285, P001, Peperoni, Mr. Vallie Wolf, 900.880.5906 x094, 85932 Brianne Land, 2022-07-14 12:09:33 287 | H001,ord286, H001, Cheese Pizza, Carmelia Lemke, 1-158-777-0723 x10204, 6246 Schaden Fall, 2022-07-14 12:09:33 288 | B001,ord287, B001, Cheese Garlic Pizza, Temple Bogan, 537.579.4214, 8839 Hermann Lodge, 2022-07-14 12:09:33 289 | L001,ord288, L001, Cheese Garlic Pizza, Emmaline Powlowski, 1-621-218-8718 x564, 74373 Tom Road, 2022-07-14 12:09:33 290 | H001,ord289, H001, Super Supreme, Hans Terry, 507-447-2013, 5651 Fadel Drive, 2022-07-14 12:09:33 291 | H001,ord290, H001, Peperoni, Shawanna Bernier, 1-002-745-9694 x7451, 74770 Gwyneth Branch, 2022-07-14 12:09:33 292 | K001,ord291, K001, Potato Pizza, Mrs. Janise Price, (611) 855-4402, 5339 Kerluke Lock, 2022-07-14 12:09:33 293 | G001,ord292, G001, Super Supreme, Miki Cole, 1-946-448-3685 x034, 95192 Arletta Plain, 2022-07-14 12:09:33 294 | A001,ord293, A001, Peperoni, Ryan Cartwright I, 236.471.4279 x315, 57116 Anderson Plains, 2022-07-14 12:09:33 295 | Q001,ord294, Q001, Super Supreme, Nilsa Okuneva, 862-338-2537, 70114 Don Plains, 2022-07-14 12:09:33 296 | K001,ord295, K001, Cheese Pizza, Lien Buckridge MD, (365) 701-0629, 207 Klein Streets, 2022-07-14 12:09:33 297 | F001,ord296, F001, Potato Pizza, Camie Gislason, 1-040-685-3977, 027 Prosacco Brook, 2022-07-14 12:09:33 298 | P001,ord297, P001, Potato Pizza, Jesus Welch, (670) 855-5504 x619, 37657 Haley Causeway, 2022-07-14 12:09:33 299 | C001,ord298, C001, Potato Pizza, Garry Mraz, 638.673.3893 x2159, 416 Gleason Stravenue, 2022-07-14 12:09:33 300 | E001,ord299, E001, Potato Pizza, Lou Ritchie, 798-146-0772 x902, 447 Lashawna Coves, 2022-07-14 12:09:33 301 | B001,ord300, B001, Cheese Garlic Pizza, Frida White, 176.488.8840 x470, 879 Rebecca Extensions, 2022-07-14 12:09:33 302 | C001,ord301, C001, Peperoni, Laverne Bernier, 198.129.8410 x24987, 2965 Janey Burg, 2022-07-14 12:09:33 303 | D001,ord302, D001, Potato Pizza, Dr. Kenda Wuckert, (690) 949-7918 x425, 90759 Kuvalis Haven, 2022-07-14 12:09:33 304 | N001,ord303, N001, Potato Pizza, Arnulfo Erdman, (678) 514-2992 x3575, 61061 Jeffery Mountains, 2022-07-14 12:09:33 305 | N001,ord304, N001, Cheese Pizza, Georgina Reynolds, (625) 876-8761, 78397 Winnie View, 2022-07-14 12:09:33 306 | C001,ord305, C001, Peperoni, Dewitt Cassin Sr., 995-675-3540 x96550, 258 Bergstrom Squares, 2022-07-14 12:09:33 307 | M001,ord306, M001, Cheese Garlic Pizza, Grady Spinka, 416.849.8941, 0885 Halvorson Way, 2022-07-14 12:09:33 308 | I001,ord307, I001, Super Supreme, Kelvin Gulgowski, (304) 638-4191, 6180 Antwan Hills, 2022-07-14 12:09:33 309 | B001,ord308, B001, Super Supreme, Salina Weissnat, 600.894.2414 x885, 5460 Daren Loop, 2022-07-14 12:09:33 310 | Q001,ord309, Q001, Cheese Pizza, Oren Monahan, 537.924.5389 x7356, 9113 Huey Lake, 2022-07-14 12:09:33 311 | E001,ord310, E001, Cheese Garlic Pizza, Mariano Bednar Sr., 998-816-9550 x39563, 18292 Marvel Valley, 2022-07-14 12:09:33 312 | K001,ord311, K001, Potato Pizza, Lajuana Grant PhD, 287.005.4618 x40787, 287 Dusty Divide, 2022-07-14 12:09:33 313 | J001,ord312, J001, Cheese Pizza, Steven McLaughlin, 1-676-857-4564 x2522, 86420 Bartell Centers, 2022-07-14 12:09:33 314 | K001,ord313, K001, Super Supreme, Erin Flatley V, 1-632-198-8404, 270 Honey Cape, 2022-07-14 12:09:33 315 | K001,ord314, K001, Super Supreme, Ms. Irma Schinner, 1-069-424-1919 x0195, 78931 Murray Overpass, 2022-07-14 12:09:33 316 | M001,ord315, M001, Cheese Pizza, Ji Ernser, 1-977-823-9279 x71409, 7542 Lindsey Via, 2022-07-14 12:09:33 317 | I001,ord316, I001, Super Supreme, Laine Senger II, 924.366.4098, 57782 Murazik Branch, 2022-07-14 12:09:33 318 | B001,ord317, B001, Cheese Garlic Pizza, Cleveland Williamson, 558-859-5951 x487, 1121 Crist Springs, 2022-07-14 12:09:33 319 | E001,ord318, E001, Potato Pizza, Cristina Boyer, 545-886-3773 x798, 85445 Luann Trail, 2022-07-14 12:09:33 320 | N001,ord319, N001, Cheese Pizza, Jeffry Reichert, 235-288-5431, 6893 Bashirian Loaf, 2022-07-14 12:09:33 321 | G001,ord320, G001, Cheese Garlic Pizza, Ms. Damien Crist, 962-942-7682, 369 Mitchell Oval, 2022-07-14 12:09:33 322 | A001,ord321, A001, Cheese Garlic Pizza, Fidel Hand MD, 673-762-4427, 152 Adolph Stream, 2022-07-14 12:09:33 323 | D001,ord322, D001, Cheese Garlic Pizza, Ms. Amie Leffler, 371.517.1363, 02471 Marcelle Islands, 2022-07-14 12:09:33 324 | Q001,ord323, Q001, Peperoni, Mrs. Jessenia Russel, 814-500-9498 x35797, 870 Rufus Flat, 2022-07-14 12:09:33 325 | K001,ord324, K001, Potato Pizza, Maureen Runte MD, 406-413-0499 x6952, 635 McCullough Road, 2022-07-14 12:09:33 326 | P001,ord325, P001, Cheese Pizza, Katherina Luettgen MD, (115) 076-8142 x252, 062 Shandi Creek, 2022-07-14 12:09:33 327 | F001,ord326, F001, Super Supreme, Leora Waters, 1-724-725-6516 x93923, 996 Timmy Dam, 2022-07-14 12:09:33 328 | G001,ord327, G001, Peperoni, Karl Ruecker, 278.173.3140 x394, 671 Mauro Shores, 2022-07-14 12:09:33 329 | B001,ord328, B001, Cheese Pizza, Ms. Ahmed Heidenreich, 495.980.4986 x51327, 330 Bashirian Place, 2022-07-14 12:09:33 330 | L001,ord329, L001, Super Supreme, Dr. Milissa Sipes, 1-738-628-7731 x106, 43893 Runolfsdottir Alley, 2022-07-14 12:09:33 331 | G001,ord330, G001, Potato Pizza, Luther Cremin, 1-396-853-2995, 41412 Vicente Hills, 2022-07-14 12:09:33 332 | N001,ord331, N001, Potato Pizza, Ms. Jerica Davis, (478) 775-3569, 4606 Spencer Dale, 2022-07-14 12:09:33 333 | F001,ord332, F001, Potato Pizza, Son Watsica, 635-483-1637 x24975, 382 Derick Roads, 2022-07-14 12:09:33 334 | O001,ord333, O001, Potato Pizza, Brant Greenholt, 653.669.1404 x6136, 0657 Marvin Mall, 2022-07-14 12:09:33 335 | A001,ord334, A001, Peperoni, Brianne Streich, 1-012-479-6845, 1189 King Vista, 2022-07-14 12:09:33 336 | Q001,ord335, Q001, Potato Pizza, Robt Lebsack, 605.227.6772, 22142 Sporer Port, 2022-07-14 12:09:33 337 | F001,ord336, F001, Cheese Garlic Pizza, Yael Considine, 1-636-647-0363, 445 Leannon Mews, 2022-07-14 12:09:33 338 | P001,ord337, P001, Peperoni, Robert Schaefer, (271) 722-1400 x8125, 75572 Marcus Inlet, 2022-07-14 12:09:33 339 | N001,ord338, N001, Potato Pizza, Earline Armstrong, (858) 712-7062 x4473, 220 Turcotte Roads, 2022-07-14 12:09:33 340 | M001,ord339, M001, Super Supreme, Eleanor McKenzie, 454.028.3250 x64839, 5116 Jonas Extension, 2022-07-14 12:09:33 341 | I001,ord340, I001, Cheese Garlic Pizza, Johnson Wiegand, 381-467-6185 x121, 4657 Weissnat Radial, 2022-07-14 12:09:33 342 | K001,ord341, K001, Potato Pizza, Joesph Romaguera, 451.752.9866 x083, 9733 Beer Port, 2022-07-14 12:09:33 343 | D001,ord342, D001, Super Supreme, Ambrose Armstrong, 222-390-0967 x87849, 43855 Watsica Valley, 2022-07-14 12:09:33 344 | J001,ord343, J001, Super Supreme, Alexander Luettgen, (870) 960-6143 x7883, 923 Nader Trail, 2022-07-14 12:09:33 345 | Q001,ord344, Q001, Potato Pizza, Agustin Stehr, 485.904.9372, 09305 Bradford Manor, 2022-07-14 12:09:33 346 | H001,ord345, H001, Super Supreme, Dallas Bailey, 886-225-9665, 52927 Sharan Shoal, 2022-07-14 12:09:33 347 | H001,ord346, H001, Super Supreme, Rosario Cole Sr., (027) 202-8424 x19853, 078 Haley Green, 2022-07-14 12:09:33 348 | Q001,ord347, Q001, Cheese Pizza, Lucinda Maggio, 558.630.0092, 7605 Kuhlman Locks, 2022-07-14 12:09:33 349 | I001,ord348, I001, Cheese Pizza, Dr. Jamila Moen, 527.964.6760, 1628 Vernita Orchard, 2022-07-14 12:09:33 350 | Q001,ord349, Q001, Cheese Garlic Pizza, Jonelle Schowalter, 1-135-575-9442, 2106 Littel Junction, 2022-07-14 12:09:33 351 | G001,ord350, G001, Cheese Pizza, Sol Kautzer, (059) 736-5619, 4089 Javier Island, 2022-07-14 12:09:33 352 | I001,ord351, I001, Cheese Pizza, Casey Kiehn, 874.779.7008 x31448, 66623 Franecki Circles, 2022-07-14 12:09:33 353 | F001,ord352, F001, Cheese Pizza, Lonnie Koepp Jr., 1-065-638-9390, 7022 Wunsch Gardens, 2022-07-14 12:09:33 354 | L001,ord353, L001, Super Supreme, Benedict Mayer, 800-421-4664 x802, 13447 Madaline Mall, 2022-07-14 12:09:33 355 | P001,ord354, P001, Peperoni, Ramiro Considine, (681) 739-4063, 9378 Prohaska Center, 2022-07-14 12:09:33 356 | P001,ord355, P001, Cheese Pizza, Dr. Mathew Watsica, 503.444.6810 x003, 06088 Ashly Lodge, 2022-07-14 12:09:33 357 | O001,ord356, O001, Super Supreme, Rhonda Schumm, 446.704.8934 x564, 915 Dann Rapid, 2022-07-14 12:09:33 358 | F001,ord357, F001, Peperoni, Clay Schmeler, 1-920-414-9331 x07291, 709 Bud Isle, 2022-07-14 12:09:33 359 | H001,ord358, H001, Super Supreme, Ms. Jay Hagenes, 383-387-9644 x4402, 8030 Berneice Ville, 2022-07-14 12:09:33 360 | F001,ord359, F001, Cheese Garlic Pizza, Mrs. Donette Hoppe, 873-578-3461 x658, 1681 Huels Skyway, 2022-07-14 12:09:33 361 | B001,ord360, B001, Potato Pizza, Ronnie Berge, 844.856.2786 x5371, 848 Will Street, 2022-07-14 12:09:33 362 | J001,ord361, J001, Cheese Garlic Pizza, Carletta Senger, 1-883-560-8250 x38730, 5229 Hane Estates, 2022-07-14 12:09:33 363 | A001,ord362, A001, Cheese Pizza, Jamee Schimmel, 979-506-1226, 7291 Kilback Ways, 2022-07-14 12:09:33 364 | H001,ord363, H001, Potato Pizza, Chieko Gerlach, (312) 701-1853 x8639, 2558 Reilly Stravenue, 2022-07-14 12:09:33 365 | B001,ord364, B001, Cheese Pizza, Kenny Wolff, (475) 469-2844, 86147 Genaro Road, 2022-07-14 12:09:33 366 | E001,ord365, E001, Cheese Pizza, Shaun O'Connell, 121-099-0546 x9278, 380 Santo Via, 2022-07-14 12:09:33 367 | H001,ord366, H001, Potato Pizza, Mrs. Sherly Renner, 1-868-013-4487 x079, 4248 Mosciski Pines, 2022-07-14 12:09:33 368 | K001,ord367, K001, Cheese Garlic Pizza, Russ Rosenbaum, 878.483.9366 x280, 3203 Koelpin Falls, 2022-07-14 12:09:33 369 | O001,ord368, O001, Potato Pizza, Karri D'Amore, 1-182-710-0694, 80139 Bergnaum Shore, 2022-07-14 12:09:33 370 | N001,ord369, N001, Peperoni, Dr. Andreas Ortiz, (371) 182-5212 x685, 285 Rolfson Passage, 2022-07-14 12:09:33 371 | E001,ord370, E001, Potato Pizza, Arron Schmitt, 1-182-569-7983, 0956 Hoeger Valley, 2022-07-14 12:09:33 372 | K001,ord371, K001, Peperoni, Lupe Fahey PhD, 810.524.4516 x4059, 485 Connelly Lakes, 2022-07-14 12:09:33 373 | G001,ord372, G001, Peperoni, Brittney Stanton, 1-638-385-1748, 388 Ledner Crossroad, 2022-07-14 12:09:33 374 | H001,ord373, H001, Potato Pizza, Miss Luigi Considine, (711) 866-8223 x03380, 665 Marylouise Ramp, 2022-07-14 12:09:33 375 | O001,ord374, O001, Cheese Garlic Pizza, Luana Pagac, 1-363-403-5166 x4623, 7053 Young Springs, 2022-07-14 12:09:33 376 | G001,ord375, G001, Cheese Pizza, Mark Harris, 268.216.4934 x23441, 326 Clay Cove, 2022-07-14 12:09:33 377 | D001,ord376, D001, Peperoni, Miss Margie Abernathy, (491) 577-7946 x2176, 26442 Mitchell Extension, 2022-07-14 12:09:33 378 | K001,ord377, K001, Peperoni, Brady Hackett, 500-253-2737 x1597, 40032 Alexis Centers, 2022-07-14 12:09:33 379 | Q001,ord378, Q001, Super Supreme, Ms. Aubrey Swaniawski, 614.928.6244 x731, 63471 Fritsch Ford, 2022-07-14 12:09:33 380 | C001,ord379, C001, Potato Pizza, Kallie Zieme IV, 1-089-319-1226, 1565 Johns Heights, 2022-07-14 12:09:33 381 | E001,ord380, E001, Cheese Garlic Pizza, Mr. Savannah Abbott, (830) 426-2963 x32837, 1665 Beer Orchard, 2022-07-14 12:09:33 382 | E001,ord381, E001, Cheese Garlic Pizza, Eugenio Kessler, 1-468-321-0275 x20955, 207 Merrill Cove, 2022-07-14 12:09:33 383 | A001,ord382, A001, Cheese Pizza, Werner Leffler, (176) 555-8079, 701 Alix Row, 2022-07-14 12:09:33 384 | C001,ord383, C001, Super Supreme, Isabelle Morar, 028-882-7393, 1837 Bednar Tunnel, 2022-07-14 12:09:33 385 | L001,ord384, L001, Potato Pizza, Reinaldo Runolfsdottir PhD, 655.816.6868, 40574 Keeling Brooks, 2022-07-14 12:09:33 386 | M001,ord385, M001, Potato Pizza, Roman Weimann MD, 868-481-2970, 8325 Casper Garden, 2022-07-14 12:09:33 387 | D001,ord386, D001, Peperoni, Mrs. Nicolle Kozey, 962.672.7699 x481, 202 Ryan Lock, 2022-07-14 12:09:33 388 | H001,ord387, H001, Super Supreme, Oscar Larson, 981-729-9263 x6018, 0231 Dino Skyway, 2022-07-14 12:09:33 389 | D001,ord388, D001, Cheese Pizza, Keila Wilderman, 824-943-3559 x62153, 731 Nienow Heights, 2022-07-14 12:09:33 390 | B001,ord389, B001, Cheese Garlic Pizza, Harriette Brekke, 1-956-223-0389 x1891, 17147 Takisha Mews, 2022-07-14 12:09:33 391 | L001,ord390, L001, Peperoni, Derick Paucek, (682) 453-5805 x1317, 762 Vickie Lights, 2022-07-14 12:09:33 392 | Q001,ord391, Q001, Super Supreme, Kristopher Spencer PhD, (934) 052-9596 x35896, 4096 Alfred Mall, 2022-07-14 12:09:33 393 | L001,ord392, L001, Super Supreme, Jerome Johnson, 328-392-3354, 75445 Mann Greens, 2022-07-14 12:09:33 394 | K001,ord393, K001, Potato Pizza, Terrilyn Grady, 923.930.4690 x652, 6600 Melodi Trafficway, 2022-07-14 12:09:33 395 | G001,ord394, G001, Peperoni, Edgar Mueller, 1-530-508-5990, 6472 Shawna Points, 2022-07-14 12:09:33 396 | M001,ord395, M001, Peperoni, Mathew Dach, 665-330-4992, 551 Keturah River, 2022-07-14 12:09:33 397 | C001,ord396, C001, Cheese Pizza, Olin Jerde, (133) 770-3903 x81195, 63458 Bobbie Stravenue, 2022-07-14 12:09:33 398 | I001,ord397, I001, Peperoni, Miss Andreas DuBuque, 1-566-290-7243 x4058, 643 Shayne Squares, 2022-07-14 12:09:33 399 | M001,ord398, M001, Peperoni, Dr. Refugio Halvorson, 583.570.0103 x2506, 717 D'Amore Ways, 2022-07-14 12:09:33 400 | M001,ord399, M001, Potato Pizza, Miss Elia Johnson, 931-534-1765, 18694 Aura Extensions, 2022-07-14 12:09:33 401 | L001,ord400, L001, Super Supreme, Marie Ernser III, (343) 853-2542 x00757, 4631 McGlynn Manor, 2022-07-14 12:09:33 402 | O001,ord401, O001, Cheese Garlic Pizza, Cornelia Crist, 808-206-8893 x8906, 0620 Abbott Estates, 2022-07-14 12:09:33 403 | O001,ord402, O001, Cheese Garlic Pizza, Mrs. Berenice Williamson, 1-816-686-9665 x5523, 532 Nestor Causeway, 2022-07-14 12:09:33 404 | A001,ord403, A001, Cheese Garlic Pizza, Ms. Jordon Champlin, 732.545.1383, 007 Diego Trace, 2022-07-14 12:09:33 405 | A001,ord404, A001, Cheese Pizza, Marget Nikolaus, 419.614.1592 x6924, 3245 Wes Locks, 2022-07-14 12:09:33 406 | I001,ord405, I001, Super Supreme, Elton Zemlak, 1-945-478-0418, 47085 Kirlin Centers, 2022-07-14 12:09:33 407 | G001,ord406, G001, Cheese Garlic Pizza, Verona Rippin, (607) 394-9264, 0656 Stoltenberg Ridge, 2022-07-14 12:09:33 408 | N001,ord407, N001, Cheese Pizza, Brittni Kihn, 046-498-3139 x5336, 04614 Graham Extension, 2022-07-14 12:09:33 409 | H001,ord408, H001, Peperoni, Mrs. Omer Watsica, (882) 339-6124 x0628, 38541 Kozey Falls, 2022-07-14 12:09:33 410 | E001,ord409, E001, Cheese Pizza, Linn Mann Sr., 1-880-071-9044, 1470 Ferdinand Land, 2022-07-14 12:09:33 411 | P001,ord410, P001, Cheese Pizza, Mr. Deonna Olson, 706.489.9310, 50820 Myles Drive, 2022-07-14 12:09:33 412 | M001,ord411, M001, Potato Pizza, Melvina Harris DVM, 1-267-902-9203 x038, 356 Svetlana Shore, 2022-07-14 12:09:33 413 | L001,ord412, L001, Cheese Pizza, Zachary McCullough, 434-345-9029, 3076 Sally Green, 2022-07-14 12:09:33 414 | C001,ord413, C001, Peperoni, Raguel Waters, 1-920-390-1418 x8309, 78913 Hong Camp, 2022-07-14 12:09:33 415 | M001,ord414, M001, Cheese Garlic Pizza, Charise Padberg, 1-015-907-0319, 0725 Helena Way, 2022-07-14 12:09:33 416 | K001,ord415, K001, Cheese Garlic Pizza, Maurice Lueilwitz, 233-511-9231 x7104, 6965 Roxann Keys, 2022-07-14 12:09:33 417 | I001,ord416, I001, Super Supreme, Dr. Mary Armstrong, 957-766-1398 x029, 68577 Setsuko Route, 2022-07-14 12:09:33 418 | J001,ord417, J001, Potato Pizza, Ja Kris, 770-305-4793, 09589 Rice Walk, 2022-07-14 12:09:33 419 | O001,ord418, O001, Cheese Garlic Pizza, Tandra Mueller, 751-739-4365 x37791, 731 Kovacek Squares, 2022-07-14 12:09:33 420 | A001,ord419, A001, Cheese Pizza, Sterling Oberbrunner, 534-737-2947, 0864 Corkery Shoals, 2022-07-14 12:09:33 421 | G001,ord420, G001, Cheese Garlic Pizza, Errol Homenick, 1-702-680-8181 x134, 8818 Patrica Neck, 2022-07-14 12:09:33 422 | E001,ord421, E001, Peperoni, Jed Keeling, 1-410-856-6293, 595 Dickens Curve, 2022-07-14 12:09:33 423 | P001,ord422, P001, Super Supreme, Miss Jermaine Donnelly, 1-242-643-1182, 2585 Larkin Meadows, 2022-07-14 12:09:33 424 | F001,ord423, F001, Super Supreme, Eugenia Hodkiewicz, 011-374-6708 x8021, 1090 Stroman Expressway, 2022-07-14 12:09:33 425 | A001,ord424, A001, Super Supreme, Thurman Gottlieb, 1-857-932-9399, 75132 Rice Unions, 2022-07-14 12:09:33 426 | N001,ord425, N001, Super Supreme, Lance Durgan, 500-540-9100 x380, 5827 Gaylord Passage, 2022-07-14 12:09:33 427 | J001,ord426, J001, Peperoni, Scarlett Rutherford, 988.656.7584, 5183 Van Circles, 2022-07-14 12:09:33 428 | H001,ord427, H001, Cheese Garlic Pizza, Ms. Ellsworth Stehr, 151.594.6843, 1564 Johnson Corner, 2022-07-14 12:09:33 429 | L001,ord428, L001, Potato Pizza, Alden Rippin, 539-515-3048, 4868 Sixta Park, 2022-07-14 12:09:33 430 | N001,ord429, N001, Cheese Pizza, Clinton Flatley, 234-849-8720, 2147 Lindgren Fords, 2022-07-14 12:09:33 431 | P001,ord430, P001, Potato Pizza, Otha D'Amore, (412) 949-8902 x1925, 079 Kieth Lakes, 2022-07-14 12:09:33 432 | A001,ord431, A001, Cheese Garlic Pizza, Mindy Dooley, 780-651-8655 x3515, 12125 Vicki Shoal, 2022-07-14 12:09:33 433 | K001,ord432, K001, Peperoni, Paul Grant, 817.287.8608 x8441, 6600 Robt Plains, 2022-07-14 12:09:33 434 | N001,ord433, N001, Cheese Garlic Pizza, Deshawn Kemmer, 587.421.6623, 3796 Koss Common, 2022-07-14 12:09:33 435 | I001,ord434, I001, Cheese Pizza, Camellia Hackett V, 527.947.5436 x7542, 37499 Rich Ways, 2022-07-14 12:09:33 436 | B001,ord435, B001, Potato Pizza, Mathilda Davis, (564) 644-0596 x882, 7813 Bernetta Fort, 2022-07-14 12:09:33 437 | K001,ord436, K001, Potato Pizza, Erin Maggio, 311-394-2882, 2371 Lynwood Heights, 2022-07-14 12:09:33 438 | L001,ord437, L001, Potato Pizza, Mr. Shella Stamm, 599-909-4763, 04576 Shane Road, 2022-07-14 12:09:33 439 | I001,ord438, I001, Potato Pizza, Anthony Reichert II, 1-048-205-5407 x71715, 858 Sid Turnpike, 2022-07-14 12:09:33 440 | E001,ord439, E001, Potato Pizza, Hunter Nitzsche, 347-961-2887, 9105 Maria Cape, 2022-07-14 12:09:33 441 | B001,ord440, B001, Super Supreme, Ms. Lupe Emmerich, 125.122.1262 x605, 288 Haag Motorway, 2022-07-14 12:09:33 442 | E001,ord441, E001, Cheese Pizza, Ms. Ivory Quitzon, 1-778-315-7699, 63768 Gleichner Parkways, 2022-07-14 12:09:33 443 | J001,ord442, J001, Super Supreme, Jodi Leuschke, 008-546-2987 x035, 684 Greenholt Isle, 2022-07-14 12:09:33 444 | A001,ord443, A001, Cheese Pizza, Hector Reinger, 742.043.8523 x816, 62565 Schultz Heights, 2022-07-14 12:09:33 445 | H001,ord444, H001, Potato Pizza, Jeannine Bednar, 638-115-2214 x971, 8586 Thompson Key, 2022-07-14 12:09:33 446 | B001,ord445, B001, Peperoni, Fatima Kemmer, 780-079-9987 x5929, 34168 Sauer Lake, 2022-07-14 12:09:33 447 | C001,ord446, C001, Cheese Pizza, Walker Rice, 766.742.0416 x74198, 2917 Osinski Point, 2022-07-14 12:09:33 448 | P001,ord447, P001, Super Supreme, Neville Streich, (016) 053-6256 x265, 62548 Brendan Locks, 2022-07-14 12:09:33 449 | M001,ord448, M001, Peperoni, Patrick Moore, 1-179-887-9403 x85474, 7225 Will Via, 2022-07-14 12:09:33 450 | K001,ord449, K001, Cheese Pizza, Miles Kling III, 1-542-502-8916 x0899, 1620 Mann Terrace, 2022-07-14 12:09:33 451 | L001,ord450, L001, Potato Pizza, Efrain Kling, 733-260-3129, 786 Deidra Ridges, 2022-07-14 12:09:33 452 | D001,ord451, D001, Super Supreme, Jeffrey Langosh PhD, 1-911-089-2862 x10915, 76793 Kuhic Stravenue, 2022-07-14 12:09:33 453 | D001,ord452, D001, Super Supreme, Jeannie Dickinson, 298-246-9973, 189 McClure Coves, 2022-07-14 12:09:33 454 | K001,ord453, K001, Potato Pizza, Norbert Sanford, 368.162.2435 x3251, 165 Homenick Ridge, 2022-07-14 12:09:33 455 | C001,ord454, C001, Potato Pizza, Mr. Nadine Leffler, 1-878-811-5538 x787, 2345 Rice Highway, 2022-07-14 12:09:33 456 | O001,ord455, O001, Super Supreme, Mr. Adrian Waelchi, 1-991-891-2046 x9010, 355 Gisele Meadow, 2022-07-14 12:09:33 457 | K001,ord456, K001, Super Supreme, Lashawna McClure, (850) 257-3432 x231, 2911 Stephan Key, 2022-07-14 12:09:33 458 | J001,ord457, J001, Peperoni, Buena Lind, 1-107-869-4298 x79016, 2749 Jae Brook, 2022-07-14 12:09:33 459 | G001,ord458, G001, Potato Pizza, Porter Hilll, 1-225-659-9580 x100, 5367 Morar Falls, 2022-07-14 12:09:33 460 | F001,ord459, F001, Super Supreme, Noble Hoppe, 437.560.0156, 319 Gleichner Ford, 2022-07-14 12:09:33 461 | N001,ord460, N001, Super Supreme, Sterling Lakin, (295) 361-2367 x772, 16916 Herman Ways, 2022-07-14 12:09:33 462 | E001,ord461, E001, Potato Pizza, Lynne Marquardt, (005) 779-2453 x720, 8754 Altenwerth Union, 2022-07-14 12:09:33 463 | N001,ord462, N001, Cheese Pizza, Miss Kate Schneider, 1-573-964-2993, 98528 Britta Ridge, 2022-07-14 12:09:33 464 | O001,ord463, O001, Cheese Pizza, Warren Buckridge, 1-583-129-0035 x103, 06056 Nitzsche Junctions, 2022-07-14 12:09:33 465 | D001,ord464, D001, Cheese Pizza, Gustavo Bergnaum, 113.860.8533, 477 Dicki Groves, 2022-07-14 12:09:33 466 | H001,ord465, H001, Super Supreme, Dr. Dominic Wintheiser, 759-161-0201 x6378, 816 Fredric Crescent, 2022-07-14 12:09:33 467 | L001,ord466, L001, Cheese Garlic Pizza, Mr. Cruz Johns, 1-545-947-2112 x469, 075 Alvaro Neck, 2022-07-14 12:09:33 468 | G001,ord467, G001, Cheese Garlic Pizza, Miss Erasmo Douglas, 1-312-081-0528, 706 Dennis Centers, 2022-07-14 12:09:33 469 | E001,ord468, E001, Peperoni, Damien Stark, 284-525-8203 x02539, 371 Leanora Centers, 2022-07-14 12:09:33 470 | H001,ord469, H001, Peperoni, Roxanna Roberts, 694-123-9675 x06657, 661 Wolff Fall, 2022-07-14 12:09:33 471 | D001,ord470, D001, Cheese Garlic Pizza, Taren Weissnat Jr., (019) 482-0262 x85141, 65093 Padberg Key, 2022-07-14 12:09:33 472 | D001,ord471, D001, Peperoni, Micheal Rau PhD, (148) 576-6605 x98597, 7381 Fredrick Highway, 2022-07-14 12:09:33 473 | I001,ord472, I001, Cheese Garlic Pizza, Rudy Macejkovic, 1-996-953-7387, 51388 Ciera Brook, 2022-07-14 12:09:33 474 | B001,ord473, B001, Cheese Garlic Pizza, Ms. Henrietta Hahn, 601.164.6326 x54868, 15053 Davis Ford, 2022-07-14 12:09:33 475 | N001,ord474, N001, Cheese Garlic Pizza, Trinidad Nolan, (536) 342-1593, 67221 Jimmy Parks, 2022-07-14 12:09:33 476 | O001,ord475, O001, Cheese Garlic Pizza, Lanette Gulgowski, 857-055-4395 x336, 4122 Legros Row, 2022-07-14 12:09:33 477 | M001,ord476, M001, Potato Pizza, Miss Kirby Grant, 750.771.6819 x676, 390 Hipolito Brooks, 2022-07-14 12:09:33 478 | H001,ord477, H001, Cheese Garlic Pizza, Yun Morar, 576-447-7024, 47351 Jacobi Club, 2022-07-14 12:09:33 479 | M001,ord478, M001, Cheese Pizza, Ms. Kimberlie Lynch, 266-205-2111 x65669, 80963 Andreas Turnpike, 2022-07-14 12:09:33 480 | G001,ord479, G001, Cheese Garlic Pizza, Roscoe Strosin, (450) 408-9840 x28056, 4407 Mosciski Forges, 2022-07-14 12:09:33 481 | B001,ord480, B001, Cheese Garlic Pizza, Lacy Volkman, 856.154.2040 x98423, 8488 Ward Vista, 2022-07-14 12:09:33 482 | L001,ord481, L001, Cheese Garlic Pizza, Verna Graham, 555.604.0209 x1965, 7078 Johnna Vista, 2022-07-14 12:09:33 483 | P001,ord482, P001, Potato Pizza, Elias Lebsack, 1-267-440-9826 x1784, 55160 Mindi Glen, 2022-07-14 12:09:33 484 | E001,ord483, E001, Cheese Pizza, Arlyne Mueller, 153.079.2962, 19455 Beatty Port, 2022-07-14 12:09:33 485 | C001,ord484, C001, Peperoni, Barry Pacocha, (543) 865-8635, 64330 Laree Brook, 2022-07-14 12:09:33 486 | P001,ord485, P001, Potato Pizza, Jasper McCullough, 455-729-7269 x9375, 575 Anderson Wells, 2022-07-14 12:09:33 487 | D001,ord486, D001, Peperoni, Anette Hills, 552.059.2328 x8554, 6110 Berge Circle, 2022-07-14 12:09:33 488 | D001,ord487, D001, Cheese Pizza, Dominique Yost, 841-344-5605 x439, 1148 Hansen Road, 2022-07-14 12:09:33 489 | C001,ord488, C001, Cheese Pizza, Timothy Crist, 350.911.2547 x22644, 48420 Isidro Oval, 2022-07-14 12:09:33 490 | M001,ord489, M001, Potato Pizza, Jennette Thiel IV, 878.230.1149 x93438, 008 Juliet Center, 2022-07-14 12:09:33 491 | L001,ord490, L001, Cheese Garlic Pizza, Nathanial DuBuque, 234.417.1320 x380, 7697 Auer Field, 2022-07-14 12:09:33 492 | K001,ord491, K001, Potato Pizza, Elwood Brakus, (494) 890-1982 x5066, 053 Dominick Causeway, 2022-07-14 12:09:33 493 | I001,ord492, I001, Potato Pizza, Jarrod Weimann Jr., 550.029.3000 x09934, 03577 Alejandro Underpass, 2022-07-14 12:09:33 494 | P001,ord493, P001, Cheese Pizza, Mr. Candyce Skiles, 1-282-764-1232, 522 Muller Crossroad, 2022-07-14 12:09:33 495 | A001,ord494, A001, Super Supreme, Terica Kiehn III, 316-849-5249, 59920 Sporer Circle, 2022-07-14 12:09:33 496 | L001,ord495, L001, Cheese Garlic Pizza, Reyes Leannon V, (857) 234-0785, 08049 Bahringer Square, 2022-07-14 12:09:33 497 | L001,ord496, L001, Cheese Garlic Pizza, Cedric Kozey, (133) 152-5790, 36308 Kilback Ridges, 2022-07-14 12:09:33 498 | N001,ord497, N001, Super Supreme, Ariel Kshlerin, 1-103-402-0353 x7338, 390 Gary Roads, 2022-07-14 12:09:33 499 | O001,ord498, O001, Cheese Garlic Pizza, Randolph Nitzsche, 996-510-5503, 541 Reichel Grove, 2022-07-14 12:09:33 500 | K001,ord499, K001, Super Supreme, Bethann Schulist, 995.205.4478, 68772 Mills Lakes, 2022-07-14 12:09:33 501 | C001,ord500, C001, Peperoni, Florentina King, (948) 943-3217, 1201 Dan Mills, 2022-07-14 12:09:33 502 | E001,ord501, E001, Potato Pizza, Kermit Senger, 246.211.5804, 6486 Kassulke Coves, 2022-07-14 12:09:33 503 | I001,ord502, I001, Potato Pizza, Darryl Larkin Sr., (156) 466-2452 x949, 651 Chauncey Island, 2022-07-14 12:09:33 504 | F001,ord503, F001, Potato Pizza, Mrs. Vanda Durgan, 1-464-521-4086, 30169 Cole Course, 2022-07-14 12:09:33 505 | D001,ord504, D001, Cheese Pizza, Dr. Megan Wiza, (456) 427-1588 x260, 4496 Shawanna Row, 2022-07-14 12:09:33 506 | D001,ord505, D001, Super Supreme, Lance Anderson, 069-562-0437 x99422, 4561 McDermott Fields, 2022-07-14 12:09:33 507 | K001,ord506, K001, Cheese Garlic Pizza, Elissa Williamson, 1-052-420-7669, 3338 Shaunte Rapid, 2022-07-14 12:09:33 508 | L001,ord507, L001, Peperoni, Yon Hartmann I, 1-565-014-0536 x868, 780 Yost Loop, 2022-07-14 12:09:33 509 | E001,ord508, E001, Potato Pizza, Yuko Schultz, 156-293-3453 x44760, 32427 Tyrone Fall, 2022-07-14 12:09:33 510 | E001,ord509, E001, Potato Pizza, Ms. Toney Pacocha, 661.004.1610 x7429, 0307 Kirk Island, 2022-07-14 12:09:33 511 | Q001,ord510, Q001, Peperoni, Stefan Terry MD, 746.636.5333 x2611, 85776 Hamill Station, 2022-07-14 12:09:33 512 | H001,ord511, H001, Potato Pizza, Miss Charlie Jacobi, 190-746-7621 x560, 8174 Hauck Squares, 2022-07-14 12:09:33 513 | A001,ord512, A001, Cheese Garlic Pizza, Mr. Seth Nikolaus, 369.658.5400 x25531, 8583 Irina Ranch, 2022-07-14 12:09:33 514 | D001,ord513, D001, Super Supreme, Kenda Sauer, (893) 206-1045 x9830, 22148 Jewel Spur, 2022-07-14 12:09:33 515 | O001,ord514, O001, Super Supreme, Fredric Spinka, (365) 665-5577, 1367 Pouros Estate, 2022-07-14 12:09:33 516 | J001,ord515, J001, Super Supreme, Mitch Hintz, (905) 965-8711 x720, 147 Keitha Key, 2022-07-14 12:09:33 517 | A001,ord516, A001, Peperoni, Mr. Margret Wyman, 1-205-549-9496 x93479, 5214 Augustus Squares, 2022-07-14 12:09:33 518 | C001,ord517, C001, Potato Pizza, Lakeshia Moen PhD, (087) 952-1489 x7211, 8692 Iris Landing, 2022-07-14 12:09:33 519 | A001,ord518, A001, Cheese Garlic Pizza, Freddy Satterfield, (832) 198-8193 x10195, 288 Ruecker Views, 2022-07-14 12:09:33 520 | C001,ord519, C001, Peperoni, Dr. Irwin Bogan, 1-068-533-6293 x7546, 0231 Korey Passage, 2022-07-14 12:09:33 521 | M001,ord520, M001, Potato Pizza, Mr. Burl Gutkowski, 795-707-0978, 05111 Ariel Bypass, 2022-07-14 12:09:33 522 | J001,ord521, J001, Cheese Garlic Pizza, Justin Watsica Sr., 733-399-5953, 077 Feeney Mount, 2022-07-14 12:09:33 523 | L001,ord522, L001, Cheese Garlic Pizza, Carlos Howell, 850.362.3611 x1583, 3220 Youlanda Shores, 2022-07-14 12:09:33 524 | L001,ord523, L001, Super Supreme, Nicholas Metz, 199.172.7449 x766, 795 Marco Trail, 2022-07-14 12:09:33 525 | A001,ord524, A001, Cheese Pizza, Kristin Lang, 1-760-346-7235 x184, 029 Swift Roads, 2022-07-14 12:09:33 526 | F001,ord525, F001, Potato Pizza, Halina Koepp, (044) 907-1487, 924 Zieme Club, 2022-07-14 12:09:33 527 | F001,ord526, F001, Potato Pizza, Alexander Swaniawski, 438-725-5659 x364, 057 Hermiston Mill, 2022-07-14 12:09:33 528 | P001,ord527, P001, Super Supreme, Hattie Kuphal, 1-779-295-6104, 99092 Bobbie Spurs, 2022-07-14 12:09:33 529 | I001,ord528, I001, Peperoni, Felipe Dietrich, 043.004.9376, 7502 Ankunding Oval, 2022-07-14 12:09:33 530 | C001,ord529, C001, Peperoni, Phil Hegmann, 223.489.4273 x227, 953 Nienow Mill, 2022-07-14 12:09:33 531 | M001,ord530, M001, Cheese Pizza, Ms. Daniel Boyle, 816-113-0202, 7230 Hahn Underpass, 2022-07-14 12:09:33 532 | H001,ord531, H001, Peperoni, Chas Kirlin, 1-415-237-7695, 8760 Herschel Green, 2022-07-14 12:09:33 533 | J001,ord532, J001, Super Supreme, Alba Huel, 1-835-802-1429, 6129 Lindgren Turnpike, 2022-07-14 12:09:33 534 | G001,ord533, G001, Peperoni, Loyd Schmidt Jr., 1-247-786-3190, 008 Dooley Courts, 2022-07-14 12:09:33 535 | F001,ord534, F001, Super Supreme, Seth Torp, 167-452-1270 x257, 01031 Hayes Island, 2022-07-14 12:09:33 536 | B001,ord535, B001, Peperoni, Summer Cruickshank, 101.235.4997 x10199, 18804 Colby Road, 2022-07-14 12:09:33 537 | K001,ord536, K001, Cheese Garlic Pizza, Danyell Botsford, 1-631-071-9963, 38729 Jamel Mission, 2022-07-14 12:09:33 538 | A001,ord537, A001, Peperoni, Mr. Isaias Ritchie, (164) 010-5294, 7116 Reuben Parkway, 2022-07-14 12:09:33 539 | L001,ord538, L001, Potato Pizza, Amalia Feil, 1-932-642-5391 x344, 0333 Moore Port, 2022-07-14 12:09:33 540 | M001,ord539, M001, Peperoni, Forrest Crona, 314.145.4225, 40021 Ruben Village, 2022-07-14 12:09:33 541 | N001,ord540, N001, Super Supreme, Jeanine Klein, 1-505-830-6328 x49505, 118 Feeney Spring, 2022-07-14 12:09:33 542 | N001,ord541, N001, Super Supreme, Ricardo Flatley IV, 976-948-4109, 1870 Librada Island, 2022-07-14 12:09:33 543 | G001,ord542, G001, Cheese Garlic Pizza, Darryl Krajcik DDS, (491) 467-1984 x0280, 87485 Abbott Mountains, 2022-07-14 12:09:33 544 | L001,ord543, L001, Peperoni, Natividad Grimes, (002) 178-9221 x71242, 3683 Stamm Inlet, 2022-07-14 12:09:33 545 | I001,ord544, I001, Peperoni, Lottie Parker Sr., 505-842-2978, 3543 Keeling Street, 2022-07-14 12:09:33 546 | B001,ord545, B001, Potato Pizza, Aubrey Gislason, (333) 038-5585, 624 Trinidad Trail, 2022-07-14 12:09:33 547 | B001,ord546, B001, Peperoni, Kasi Hoeger, (613) 254-5368 x734, 65337 Auer Rue, 2022-07-14 12:09:33 548 | N001,ord547, N001, Potato Pizza, Isiah Farrell, (818) 397-4707 x80691, 54488 Clarence Branch, 2022-07-14 12:09:33 549 | L001,ord548, L001, Cheese Garlic Pizza, Artie Cummerata, 329-131-2884 x70022, 28469 James Extensions, 2022-07-14 12:09:33 550 | D001,ord549, D001, Super Supreme, Antione Satterfield, 455.121.5250, 561 Langosh Motorway, 2022-07-14 12:09:33 551 | O001,ord550, O001, Super Supreme, Lorenzo Jakubowski Sr., 467-117-5501, 6598 Rippin River, 2022-07-14 12:09:33 552 | F001,ord551, F001, Cheese Garlic Pizza, Suzan Jerde, 1-936-091-8911, 428 Pollich Rue, 2022-07-14 12:09:33 553 | E001,ord552, E001, Super Supreme, Michel Sawayn, 1-236-746-2949 x602, 830 Stark Station, 2022-07-14 12:09:33 554 | P001,ord553, P001, Super Supreme, Darron Leffler, 803.536.9736 x666, 4503 Hodkiewicz Cliffs, 2022-07-14 12:09:33 555 | G001,ord554, G001, Potato Pizza, Blake Rutherford, 217-292-2377 x44611, 726 Yasmine Mountain, 2022-07-14 12:09:33 556 | L001,ord555, L001, Cheese Pizza, Billie Raynor, 446.231.6906, 933 Richard Key, 2022-07-14 12:09:33 557 | I001,ord556, I001, Peperoni, Eduardo Abernathy, 1-453-567-8569 x088, 1245 Eliseo Prairie, 2022-07-14 12:09:33 558 | F001,ord557, F001, Super Supreme, Ali Rolfson, 1-041-073-8808 x4005, 8022 Ankunding Lodge, 2022-07-14 12:09:33 559 | L001,ord558, L001, Cheese Pizza, Hobert Emard, 279-486-2051 x1992, 9536 Kory Stravenue, 2022-07-14 12:09:33 560 | B001,ord559, B001, Super Supreme, Mr. Geraldo Padberg, 068-541-1941 x55200, 949 Pete Pike, 2022-07-14 12:09:33 561 | F001,ord560, F001, Super Supreme, Murray Wilkinson, 1-578-039-2117 x80570, 1016 Weimann Parkway, 2022-07-14 12:09:33 562 | L001,ord561, L001, Peperoni, Mitch Spinka DDS, 055.532.8777, 13852 Zieme Crossroad, 2022-07-14 12:09:33 563 | N001,ord562, N001, Peperoni, Dennis Christiansen, (671) 106-7397 x47304, 8390 Marisol Motorway, 2022-07-14 12:09:33 564 | E001,ord563, E001, Potato Pizza, Denyse Stracke, 856-927-9916, 3198 Greenholt Branch, 2022-07-14 12:09:33 565 | O001,ord564, O001, Potato Pizza, Guillermina Ratke, 1-052-529-5716, 965 Irvin Orchard, 2022-07-14 12:09:33 566 | H001,ord565, H001, Cheese Garlic Pizza, Jodee Runte MD, 264.358.4250, 537 Sanford Greens, 2022-07-14 12:09:33 567 | N001,ord566, N001, Potato Pizza, Wilburn Ondricka, 1-851-705-6977, 0835 Jona Common, 2022-07-14 12:09:33 568 | J001,ord567, J001, Peperoni, Lenny Donnelly, 1-237-199-0806 x3463, 416 Sandy Shoals, 2022-07-14 12:09:33 569 | L001,ord568, L001, Super Supreme, Miss Gerald Zboncak, (204) 176-3925 x217, 91215 Kreiger Manors, 2022-07-14 12:09:33 570 | I001,ord569, I001, Potato Pizza, Contessa Schneider, 1-011-250-8629, 92461 Ruben Dam, 2022-07-14 12:09:33 571 | O001,ord570, O001, Super Supreme, Hildegard Hilll, (465) 212-3638, 801 Elroy Street, 2022-07-14 12:09:33 572 | O001,ord571, O001, Super Supreme, Mr. Myung Boyle, 938.869.2917 x05046, 8617 Lucas Flats, 2022-07-14 12:09:33 573 | O001,ord572, O001, Cheese Garlic Pizza, Lean Considine PhD, 039-383-7861 x3811, 9242 Jc Trail, 2022-07-14 12:09:33 574 | E001,ord573, E001, Cheese Pizza, Tabatha Kutch, 1-525-442-6174 x632, 8172 Kreiger Estate, 2022-07-14 12:09:33 575 | G001,ord574, G001, Cheese Garlic Pizza, Anton Dicki, (284) 938-4863, 1866 Conrad Shoal, 2022-07-14 12:09:33 576 | L001,ord575, L001, Potato Pizza, Weston Marvin, 1-884-337-5999 x98766, 26008 Sauer Junctions, 2022-07-14 12:09:33 577 | F001,ord576, F001, Potato Pizza, Carmon Bosco, 920.417.5982 x016, 3055 Jack Circles, 2022-07-14 12:09:33 578 | I001,ord577, I001, Cheese Pizza, Ivory Denesik, 1-831-017-0706 x626, 828 Wunsch Lodge, 2022-07-14 12:09:33 579 | A001,ord578, A001, Peperoni, Chuck Hoppe, 1-593-673-3028, 80445 Patrice Knoll, 2022-07-14 12:09:33 580 | A001,ord579, A001, Peperoni, Maryrose Bins, 1-282-684-5627, 094 Aldo Cape, 2022-07-14 12:09:33 581 | N001,ord580, N001, Cheese Pizza, Laurene Murphy, (110) 455-2599, 911 Mellissa Summit, 2022-07-14 12:09:33 582 | Q001,ord581, Q001, Super Supreme, Wally Lakin III, 322-278-3866, 4116 Eugenio Trail, 2022-07-14 12:09:33 583 | L001,ord582, L001, Cheese Garlic Pizza, Magdalena Dooley, 533-264-1053, 836 Olson Streets, 2022-07-14 12:09:33 584 | N001,ord583, N001, Super Supreme, Bryon Kertzmann, 654.409.9859 x88676, 06994 Antione Mountains, 2022-07-14 12:09:33 585 | H001,ord584, H001, Peperoni, Stacy Hoppe, 1-425-951-9585 x39636, 526 Johnnie Points, 2022-07-14 12:09:33 586 | P001,ord585, P001, Super Supreme, Mrs. Fredric Beer, 435-996-9851, 03497 Weber Corner, 2022-07-14 12:09:33 587 | O001,ord586, O001, Super Supreme, Heather Emmerich, (662) 898-0677 x5031, 9348 Harvey Springs, 2022-07-14 12:09:33 588 | E001,ord587, E001, Cheese Pizza, Nohemi Murazik, 1-221-987-7558, 1991 Iola Villages, 2022-07-14 12:09:33 589 | H001,ord588, H001, Cheese Pizza, Darrell Lakin, 055.183.7985, 60705 Mayer Run, 2022-07-14 12:09:33 590 | B001,ord589, B001, Peperoni, Lee Orn, 079-159-9903 x408, 742 Ortiz Spring, 2022-07-14 12:09:33 591 | A001,ord590, A001, Cheese Pizza, Grazyna Cormier, 657-504-5421, 5793 Chang Rue, 2022-07-14 12:09:33 592 | J001,ord591, J001, Cheese Pizza, Mrs. Tashina Green, 994.836.9697, 5013 Hyman Course, 2022-07-14 12:09:33 593 | G001,ord592, G001, Super Supreme, Jenine Bauch, 902-706-4991, 422 Reilly Glen, 2022-07-14 12:09:33 594 | A001,ord593, A001, Potato Pizza, Kina Orn V, 1-574-993-3308 x977, 87106 Schroeder Corner, 2022-07-14 12:09:33 595 | B001,ord594, B001, Cheese Garlic Pizza, Gussie Towne, 1-971-545-2132, 4504 Elva Village, 2022-07-14 12:09:33 596 | Q001,ord595, Q001, Peperoni, Dr. Henrietta Thompson, 1-695-975-6119 x724, 339 Adams Turnpike, 2022-07-14 12:09:33 597 | G001,ord596, G001, Cheese Garlic Pizza, Mee Considine, 479.820.2345 x5704, 052 Kautzer Fields, 2022-07-14 12:09:33 598 | O001,ord597, O001, Potato Pizza, Miss Shemeka Lang, 280.570.7395 x7706, 297 Bryant Rest, 2022-07-14 12:09:33 599 | B001,ord598, B001, Potato Pizza, Vernice Kilback, 100-364-6110, 6741 O'Connell Village, 2022-07-14 12:09:33 600 | I001,ord599, I001, Potato Pizza, Rogelio Fadel, 1-379-313-8966, 5490 Anton Harbors, 2022-07-14 12:09:33 601 | C001,ord600, C001, Potato Pizza, Mr. Deeanna Klocko, 1-745-697-9356, 86660 Teddy Crossing, 2022-07-14 12:09:33 602 | P001,ord601, P001, Potato Pizza, Ms. Latonya Jenkins, 867.293.3843, 4670 Luanna Glen, 2022-07-14 12:09:33 603 | C001,ord602, C001, Potato Pizza, Dr. Hector Leffler, 905-790-6268, 2975 Nikolaus Springs, 2022-07-14 12:09:33 604 | C001,ord603, C001, Peperoni, Franklyn Grant, 834.456.6383, 5822 Lianne Grove, 2022-07-14 12:09:33 605 | J001,ord604, J001, Super Supreme, Caitlin Larson V, 650-810-6082 x762, 091 Royce Island, 2022-07-14 12:09:33 606 | C001,ord605, C001, Peperoni, Cherelle Franecki, 1-271-202-2719 x75714, 7293 Jarrod Lodge, 2022-07-14 12:09:33 607 | G001,ord606, G001, Peperoni, Chong Ondricka, (939) 315-5463 x78874, 9578 Mohr Knolls, 2022-07-14 12:09:33 608 | M001,ord607, M001, Cheese Pizza, Lottie Bartoletti, 364-448-5204 x6695, 41456 Consuelo Pines, 2022-07-14 12:09:33 609 | Q001,ord608, Q001, Cheese Garlic Pizza, Rodrick Murazik, (347) 257-7891, 998 Laurinda Isle, 2022-07-14 12:09:33 610 | Q001,ord609, Q001, Potato Pizza, Edgar Skiles MD, 680.736.2808 x845, 201 Johnson Road, 2022-07-14 12:09:33 611 | N001,ord610, N001, Cheese Garlic Pizza, Audie Zemlak, 382-133-8080, 72771 Frances Cove, 2022-07-14 12:09:33 612 | J001,ord611, J001, Cheese Garlic Pizza, Apolonia Ward, 982-569-8416 x43660, 745 O'Conner Unions, 2022-07-14 12:09:33 613 | A001,ord612, A001, Cheese Garlic Pizza, Ruthanne Keeling I, 1-384-599-0690 x277, 0605 Runte Vista, 2022-07-14 12:09:33 614 | D001,ord613, D001, Potato Pizza, Illa Goyette, 063.887.8911, 869 Yoko Place, 2022-07-14 12:09:33 615 | L001,ord614, L001, Cheese Garlic Pizza, Xavier Schaefer DDS, 1-879-147-3660 x2232, 8538 Evelin Track, 2022-07-14 12:09:33 616 | P001,ord615, P001, Cheese Pizza, Verlie Fisher Sr., 1-479-651-6700, 953 Claire Circles, 2022-07-14 12:09:33 617 | H001,ord616, H001, Potato Pizza, James Nader III, 174.509.2075 x223, 64674 Hauck Underpass, 2022-07-14 12:09:33 618 | E001,ord617, E001, Potato Pizza, Cecil Mayer, 528.380.1193, 2451 Hahn Wall, 2022-07-14 12:09:33 619 | H001,ord618, H001, Potato Pizza, Roscoe Oberbrunner, 245-461-4263, 277 Wehner Unions, 2022-07-14 12:09:33 620 | P001,ord619, P001, Potato Pizza, Kelly Wilkinson, 639-124-7567 x5562, 521 Jakubowski Cliff, 2022-07-14 12:09:33 621 | G001,ord620, G001, Cheese Garlic Pizza, Mr. Brandy Gutmann, 017.172.8233 x16527, 92093 Toy Plaza, 2022-07-14 12:09:33 622 | K001,ord621, K001, Cheese Pizza, Ludivina Ondricka, 1-319-298-3205 x81914, 497 Schuster Burgs, 2022-07-14 12:09:33 623 | Q001,ord622, Q001, Potato Pizza, Lourie Collier IV, 286-107-9347 x5748, 3439 Terri Expressway, 2022-07-14 12:09:33 624 | F001,ord623, F001, Potato Pizza, Ruben Goodwin, 1-251-398-7884 x4472, 053 Larson Points, 2022-07-14 12:09:33 625 | O001,ord624, O001, Cheese Pizza, Kayleen Stamm, 1-969-446-4494, 516 Dibbert Overpass, 2022-07-14 12:09:33 626 | B001,ord625, B001, Super Supreme, Rex Hegmann, (722) 632-1807 x704, 7592 Zachary Forest, 2022-07-14 12:09:33 627 | I001,ord626, I001, Potato Pizza, Pasquale Gutkowski, 1-417-734-1842 x394, 190 Xiomara Isle, 2022-07-14 12:09:33 628 | I001,ord627, I001, Peperoni, Steve Reichert, 486.877.9777, 6541 Purdy Union, 2022-07-14 12:09:33 629 | A001,ord628, A001, Peperoni, Johnie Weimann, 1-789-609-6611 x237, 324 Schroeder Corners, 2022-07-14 12:09:33 630 | J001,ord629, J001, Peperoni, Johna Kub, (570) 454-4956, 922 Clay Unions, 2022-07-14 12:09:33 631 | C001,ord630, C001, Super Supreme, Lamar Connelly MD, 626.853.0728 x4396, 3117 Jerold Forks, 2022-07-14 12:09:33 632 | B001,ord631, B001, Cheese Pizza, Jerry Pfeffer, 1-467-032-0057, 13232 Zboncak Ridges, 2022-07-14 12:09:33 633 | C001,ord632, C001, Peperoni, Alishia Daniel, (719) 339-9247, 847 Elliott Rest, 2022-07-14 12:09:33 634 | D001,ord633, D001, Cheese Garlic Pizza, Krystle Kemmer, 1-319-825-5374 x283, 630 Fahey Bridge, 2022-07-14 12:09:33 635 | O001,ord634, O001, Peperoni, Sasha VonRueden V, 061-382-4983 x8231, 130 Bosco Roads, 2022-07-14 12:09:33 636 | A001,ord635, A001, Peperoni, Shizuko Heidenreich, 1-333-272-4970, 816 Daugherty Manors, 2022-07-14 12:09:33 637 | K001,ord636, K001, Cheese Pizza, Mel Boyle, 1-750-802-2622, 237 Orn Walk, 2022-07-14 12:09:33 638 | L001,ord637, L001, Cheese Garlic Pizza, Miss Bernardo Gulgowski, 1-403-258-4262, 21439 Harris Pines, 2022-07-14 12:09:33 639 | F001,ord638, F001, Potato Pizza, Jeffrey Krajcik, 1-689-978-3151 x0508, 93143 Annamaria Plaza, 2022-07-14 12:09:33 640 | A001,ord639, A001, Potato Pizza, Shelton Koch, 019-915-9840, 231 Tianna Tunnel, 2022-07-14 12:09:33 641 | L001,ord640, L001, Cheese Pizza, Shanta Deckow, 1-515-081-8450, 8253 Nienow Throughway, 2022-07-14 12:09:33 642 | K001,ord641, K001, Cheese Garlic Pizza, Dr. Tressa Reichert, 922.230.9132 x222, 450 Thiel Terrace, 2022-07-14 12:09:33 643 | D001,ord642, D001, Cheese Pizza, Kristeen Rohan, (446) 756-8030, 6702 Isreal Ranch, 2022-07-14 12:09:33 644 | J001,ord643, J001, Potato Pizza, Dr. Garnett Kassulke, 445.560.1300 x791, 95832 Kautzer Ramp, 2022-07-14 12:09:33 645 | F001,ord644, F001, Super Supreme, Rupert Becker, (343) 804-3805 x9597, 205 Hudson Hill, 2022-07-14 12:09:33 646 | L001,ord645, L001, Cheese Garlic Pizza, Rufus Shanahan, 1-684-873-7424 x836, 276 Torp Dam, 2022-07-14 12:09:33 647 | L001,ord646, L001, Cheese Garlic Pizza, Merlene Kessler, (435) 765-5273, 61246 Zenaida Parkways, 2022-07-14 12:09:33 648 | C001,ord647, C001, Peperoni, Vasiliki Schultz, 447-172-8147 x886, 642 Gottlieb Dale, 2022-07-14 12:09:33 649 | H001,ord648, H001, Super Supreme, Margret Larkin PhD, 197-915-6780 x113, 568 Meagan Manors, 2022-07-14 12:09:33 650 | K001,ord649, K001, Super Supreme, Leilani Prohaska, 643.855.8412, 5348 Cristobal Spur, 2022-07-14 12:09:33 651 | K001,ord650, K001, Potato Pizza, Giuseppe Gleason, 865-179-3964, 736 Betsey Cliffs, 2022-07-14 12:09:33 652 | N001,ord651, N001, Potato Pizza, Alphonso Kulas, 1-889-700-0266 x76314, 539 Arnoldo Keys, 2022-07-14 12:09:33 653 | M001,ord652, M001, Super Supreme, Rosanna Littel, 802-250-5006 x1083, 250 Greenholt Hollow, 2022-07-14 12:09:33 654 | Q001,ord653, Q001, Cheese Pizza, Ralph White, 1-735-998-8069 x41294, 8877 Paula Via, 2022-07-14 12:09:33 655 | Q001,ord654, Q001, Peperoni, Damion Kuhic, (662) 106-7453 x62893, 067 Hilpert Mills, 2022-07-14 12:09:33 656 | J001,ord655, J001, Cheese Garlic Pizza, Janis Balistreri, 1-096-070-0738, 933 Emil Brooks, 2022-07-14 12:09:33 657 | F001,ord656, F001, Cheese Garlic Pizza, Ellen Osinski, 263-819-9653, 29341 Leia Isle, 2022-07-14 12:09:33 658 | E001,ord657, E001, Cheese Garlic Pizza, Mr. Ta Farrell, 000-947-6305 x737, 24907 Zachery Route, 2022-07-14 12:09:33 659 | G001,ord658, G001, Potato Pizza, Dion Ward, 1-594-122-6348, 1696 Bettye Village, 2022-07-14 12:09:33 660 | C001,ord659, C001, Super Supreme, Reginald Sawayn, 766.437.1457 x6480, 2760 Adolph Square, 2022-07-14 12:09:33 661 | N001,ord660, N001, Super Supreme, Angel Reilly, (040) 232-4183 x182, 575 Ernest Forges, 2022-07-14 12:09:33 662 | C001,ord661, C001, Cheese Garlic Pizza, Miss Lenard Littel, 095.018.3430 x038, 702 Jake Rest, 2022-07-14 12:09:33 663 | A001,ord662, A001, Cheese Pizza, Loida Grimes DVM, (005) 361-8390 x0731, 80407 Boyer Green, 2022-07-14 12:09:33 664 | L001,ord663, L001, Potato Pizza, Avril Yundt, (555) 096-9390, 32008 Ronny Centers, 2022-07-14 12:09:33 665 | F001,ord664, F001, Cheese Pizza, Jared Kilback MD, 676.415.0799 x5472, 3346 Torri Corners, 2022-07-14 12:09:33 666 | D001,ord665, D001, Peperoni, Miss Mario Mante, 105.728.1031 x05515, 04841 Hudson Trail, 2022-07-14 12:09:33 667 | O001,ord666, O001, Cheese Garlic Pizza, Elinor Treutel, 391.172.2795 x08582, 79400 Thad Island, 2022-07-14 12:09:33 668 | Q001,ord667, Q001, Potato Pizza, Richard Sanford III, 1-408-805-6848, 181 Mohr Curve, 2022-07-14 12:09:33 669 | G001,ord668, G001, Super Supreme, Chase Hintz, 1-893-814-8235 x15163, 086 Satterfield Overpass, 2022-07-14 12:09:33 670 | C001,ord669, C001, Cheese Pizza, Dr. Dori Bayer, 949-433-4692 x15288, 018 Lakeesha Hollow, 2022-07-14 12:09:33 671 | E001,ord670, E001, Cheese Pizza, Joaquin Ernser, (216) 086-7805 x03945, 447 Garrett Ridges, 2022-07-14 12:09:33 672 | D001,ord671, D001, Potato Pizza, Wonda Medhurst, 345-659-2768, 74800 Schroeder Dale, 2022-07-14 12:09:33 673 | Q001,ord672, Q001, Potato Pizza, Silvana Ferry, 200-613-2905, 4893 Wilbur Green, 2022-07-14 12:09:33 674 | Q001,ord673, Q001, Potato Pizza, Mrs. Rubi Kohler, (203) 408-9044 x47034, 63177 Renay Plain, 2022-07-14 12:09:33 675 | P001,ord674, P001, Peperoni, Mikel Jacobson, 137.163.1569 x88821, 94280 Vandervort Parkway, 2022-07-14 12:09:33 676 | C001,ord675, C001, Cheese Pizza, Kirsten Rempel, 371.141.7009, 71773 Ned Point, 2022-07-14 12:09:33 677 | E001,ord676, E001, Cheese Garlic Pizza, Carolyne Bruen IV, 283.976.6326 x64278, 9537 Robbie Village, 2022-07-14 12:09:33 678 | E001,ord677, E001, Cheese Pizza, Dana Beahan, (874) 542-2552 x44136, 4766 O'Hara Lock, 2022-07-14 12:09:33 679 | C001,ord678, C001, Potato Pizza, Arnold Macejkovic, (707) 512-6992, 7905 Candice Vista, 2022-07-14 12:09:33 680 | E001,ord679, E001, Cheese Garlic Pizza, Xuan Wisozk, (589) 640-8757 x17725, 3224 Vasiliki Centers, 2022-07-14 12:09:33 681 | M001,ord680, M001, Super Supreme, Irwin Sawayn I, 1-366-333-0684, 62290 Flossie Village, 2022-07-14 12:09:33 682 | K001,ord681, K001, Potato Pizza, Chet Rodriguez, 915-469-7394 x569, 707 Kuvalis Skyway, 2022-07-14 12:09:33 683 | N001,ord682, N001, Cheese Pizza, Dagmar Runte, 398.317.0239, 7318 Jamie Fords, 2022-07-14 12:09:33 684 | N001,ord683, N001, Cheese Garlic Pizza, Lane Weber, 468-596-6032 x822, 0492 Molly Village, 2022-07-14 12:09:33 685 | M001,ord684, M001, Potato Pizza, Alec Harber, 966.652.5849, 66649 Hagenes Knolls, 2022-07-14 12:09:33 686 | J001,ord685, J001, Potato Pizza, Mose Windler IV, 1-906-283-3979 x400, 3784 Shon Station, 2022-07-14 12:09:33 687 | J001,ord686, J001, Peperoni, Danyelle Collier, (684) 231-8704, 5610 Adams Cove, 2022-07-14 12:09:33 688 | H001,ord687, H001, Super Supreme, Ms. Willie Deckow, 159-106-2059 x0865, 117 Bruno Stravenue, 2022-07-14 12:09:33 689 | K001,ord688, K001, Peperoni, Ethelene Rodriguez, 738.749.6313, 9749 Bruen Forges, 2022-07-14 12:09:33 690 | L001,ord689, L001, Potato Pizza, Boyd Boyer, 388-758-8962 x2798, 13579 Marvin Parks, 2022-07-14 12:09:33 691 | K001,ord690, K001, Cheese Garlic Pizza, Tyesha Cummings, (474) 188-4795 x13395, 814 Kutch Turnpike, 2022-07-14 12:09:33 692 | H001,ord691, H001, Super Supreme, Melinda Hand, 060-927-8572 x6839, 20549 Anderson Shoal, 2022-07-14 12:09:33 693 | M001,ord692, M001, Peperoni, Harley Mraz, (937) 907-9543, 851 Sherilyn Locks, 2022-07-14 12:09:33 694 | K001,ord693, K001, Cheese Pizza, Alise Bednar, 1-663-289-4334 x511, 400 Senger Gardens, 2022-07-14 12:09:33 695 | Q001,ord694, Q001, Cheese Pizza, Selene Keebler, (698) 309-1189, 8809 Freeman Creek, 2022-07-14 12:09:33 696 | O001,ord695, O001, Cheese Garlic Pizza, Lucio Ondricka, 126-176-6718, 689 Hegmann Road, 2022-07-14 12:09:33 697 | M001,ord696, M001, Potato Pizza, Teodoro Kuhic, 321-531-6688, 665 Deckow Harbor, 2022-07-14 12:09:33 698 | D001,ord697, D001, Super Supreme, Dr. Odell VonRueden, (714) 286-4557, 376 Dach Mill, 2022-07-14 12:09:33 699 | N001,ord698, N001, Potato Pizza, Nathanial Gulgowski I, 924.537.9203, 48900 Cartwright Tunnel, 2022-07-14 12:09:33 700 | F001,ord699, F001, Cheese Pizza, Dr. Myrtle O'Keefe, 760.586.7774, 5469 DuBuque Road, 2022-07-14 12:09:33 701 | J001,ord700, J001, Potato Pizza, Fernando Dibbert, 218-828-9952 x5244, 1379 Young Prairie, 2022-07-14 12:09:33 702 | K001,ord701, K001, Cheese Garlic Pizza, Sammy Barrows, 394.044.9810 x39734, 048 Hoppe Cliff, 2022-07-14 12:09:33 703 | N001,ord702, N001, Peperoni, Lashawnda Kuphal, (640) 010-0316 x84946, 8230 Thersa Walk, 2022-07-14 12:09:33 704 | G001,ord703, G001, Cheese Garlic Pizza, Haywood Kris, 1-552-780-2377 x4999, 21058 Balistreri Union, 2022-07-14 12:09:33 705 | P001,ord704, P001, Cheese Pizza, Scarlett White, 827.185.1351 x380, 20995 Faustino Center, 2022-07-14 12:09:33 706 | H001,ord705, H001, Cheese Pizza, Ivonne Nader, 1-063-032-7718, 651 Roselia View, 2022-07-14 12:09:33 707 | M001,ord706, M001, Cheese Garlic Pizza, Jerome Conroy, 161-952-5451, 0607 Green Canyon, 2022-07-14 12:09:33 708 | C001,ord707, C001, Cheese Garlic Pizza, Miss Jeff Kihn, 909-214-5915, 44925 Minh Extension, 2022-07-14 12:09:33 709 | K001,ord708, K001, Cheese Pizza, Jessia Purdy, 216-765-0393 x8416, 449 Ledner Courts, 2022-07-14 12:09:33 710 | C001,ord709, C001, Cheese Pizza, Kieth Howell DDS, 635.381.6262 x824, 22025 Rowena Crossroad, 2022-07-14 12:09:33 711 | J001,ord710, J001, Cheese Garlic Pizza, Harry Wintheiser, 678-514-5079 x7076, 314 Conn Mountains, 2022-07-14 12:09:33 712 | F001,ord711, F001, Cheese Garlic Pizza, Gale Satterfield, 235.675.6720, 72847 Murazik Walks, 2022-07-14 12:09:33 713 | P001,ord712, P001, Super Supreme, Gordon Emmerich, 426.412.3566, 308 Fahey Knoll, 2022-07-14 12:09:33 714 | N001,ord713, N001, Cheese Pizza, Monroe Jakubowski, 425-378-9000, 35828 Dirk Grove, 2022-07-14 12:09:33 715 | G001,ord714, G001, Cheese Garlic Pizza, Sau Dickinson DVM, 851.622.9878 x3505, 25592 Nicolas Prairie, 2022-07-14 12:09:33 716 | A001,ord715, A001, Potato Pizza, Robin Kunze, 148.574.5369, 817 Rolfson Creek, 2022-07-14 12:09:33 717 | C001,ord716, C001, Peperoni, Gracie Zulauf, (797) 402-1150 x176, 9820 McCullough Shores, 2022-07-14 12:09:33 718 | A001,ord717, A001, Cheese Garlic Pizza, Dr. Janina Christiansen, 184.958.6504 x76831, 498 Shela Meadows, 2022-07-14 12:09:33 719 | K001,ord718, K001, Super Supreme, Jaime Bailey, 553.373.4926 x751, 1181 Bethel Union, 2022-07-14 12:09:33 720 | P001,ord719, P001, Peperoni, Cole Greenfelder, 1-118-581-8268, 025 Jude Falls, 2022-07-14 12:09:33 721 | E001,ord720, E001, Peperoni, Madalene Stamm, (332) 725-9980 x88912, 440 Gabriel Row, 2022-07-14 12:09:33 722 | O001,ord721, O001, Cheese Pizza, Donny Corwin, 1-781-477-9398, 44758 Michale Rue, 2022-07-14 12:09:33 723 | K001,ord722, K001, Potato Pizza, Mckenzie Stiedemann, 882-833-0709 x325, 28033 Crist Walk, 2022-07-14 12:09:33 724 | K001,ord723, K001, Cheese Garlic Pizza, Ronnie Dickens, 1-389-856-5500 x981, 542 Macejkovic Harbor, 2022-07-14 12:09:33 725 | A001,ord724, A001, Cheese Pizza, Tamie Batz DDS, (252) 239-5441 x2136, 144 Mandy Lake, 2022-07-14 12:09:33 726 | C001,ord725, C001, Potato Pizza, Inocencia Haley, 813-750-4219 x54014, 43283 Marlyn Ridges, 2022-07-14 12:09:33 727 | P001,ord726, P001, Cheese Garlic Pizza, Carmine Prosacco I, 534.887.4757, 55404 Tami Bypass, 2022-07-14 12:09:33 728 | N001,ord727, N001, Super Supreme, Tamera Rath, 886.611.8871 x709, 8353 Marketta Centers, 2022-07-14 12:09:33 729 | Q001,ord728, Q001, Cheese Pizza, Alfonzo Schroeder, 1-065-981-1604 x07002, 98076 Ingeborg Loaf, 2022-07-14 12:09:33 730 | J001,ord729, J001, Peperoni, Camila Franecki, 244.990.2367 x15620, 567 Mana Mountains, 2022-07-14 12:09:33 731 | L001,ord730, L001, Peperoni, Sabrina Vandervort I, 619.813.0262, 518 Gutkowski Street, 2022-07-14 12:09:33 732 | I001,ord731, I001, Cheese Garlic Pizza, Frances Hahn PhD, 1-544-836-8165 x8907, 89504 Wintheiser Inlet, 2022-07-14 12:09:33 733 | B001,ord732, B001, Potato Pizza, Francie Beer I, (834) 617-5588 x972, 894 Juliette Turnpike, 2022-07-14 12:09:33 734 | C001,ord733, C001, Cheese Pizza, Daryl Ward Sr., 185.077.7238 x81352, 06334 Miller Shore, 2022-07-14 12:09:33 735 | N001,ord734, N001, Cheese Garlic Pizza, Miss Jenine Botsford, 678.082.0473 x036, 255 Magaret Mews, 2022-07-14 12:09:33 736 | N001,ord735, N001, Cheese Garlic Pizza, Amira Berge, (874) 424-0611, 949 Tommie Fields, 2022-07-14 12:09:33 737 | B001,ord736, B001, Cheese Pizza, Shona Hartmann, 143.108.4193 x40823, 90605 Ingeborg Dam, 2022-07-14 12:09:33 738 | O001,ord737, O001, Cheese Garlic Pizza, Carson Stamm, 068.741.8312 x495, 85550 Dillon Passage, 2022-07-14 12:09:33 739 | G001,ord738, G001, Peperoni, Ismael Sanford, 589-402-9689 x9325, 62944 Wuckert Route, 2022-07-14 12:09:33 740 | N001,ord739, N001, Cheese Pizza, Ms. Travis Carroll, 540.474.0536 x79611, 1536 Dicki Mountain, 2022-07-14 12:09:33 741 | F001,ord740, F001, Peperoni, Mrs. Elliot Bosco, (995) 321-5267, 2917 Renner Land, 2022-07-14 12:09:33 742 | C001,ord741, C001, Cheese Garlic Pizza, Graig Boyle, (729) 599-0699, 037 Basilia Manor, 2022-07-14 12:09:33 743 | B001,ord742, B001, Potato Pizza, Hilton MacGyver II, 941-245-8713 x33695, 5222 Waters Lodge, 2022-07-14 12:09:33 744 | A001,ord743, A001, Super Supreme, Sharee Lehner, 697-791-4826 x11723, 0886 Mackenzie Mission, 2022-07-14 12:09:33 745 | L001,ord744, L001, Potato Pizza, Angelyn Grady, (790) 873-6420, 93487 Bernier Walk, 2022-07-14 12:09:33 746 | O001,ord745, O001, Cheese Garlic Pizza, Dr. Trevor Lehner, 1-695-473-4886 x0966, 186 Hayden Unions, 2022-07-14 12:09:33 747 | F001,ord746, F001, Peperoni, Arletta Dibbert, (034) 596-9447 x27987, 75594 Ezekiel Overpass, 2022-07-14 12:09:33 748 | F001,ord747, F001, Potato Pizza, Josef Leffler, (843) 974-4547 x629, 813 Hudson Prairie, 2022-07-14 12:09:33 749 | G001,ord748, G001, Super Supreme, Kendal Reichel, 1-368-519-3398, 7173 Russell Lane, 2022-07-14 12:09:33 750 | J001,ord749, J001, Potato Pizza, Corie Hane IV, (052) 430-1098 x65977, 02253 Lindsey Forge, 2022-07-14 12:09:33 751 | F001,ord750, F001, Super Supreme, Shirlene Bruen DDS, 890.641.5519 x88136, 172 Tromp Common, 2022-07-14 12:09:33 752 | P001,ord751, P001, Cheese Garlic Pizza, Francisco Wolff, (962) 595-3727 x1092, 5930 Fermina Path, 2022-07-14 12:09:33 753 | F001,ord752, F001, Peperoni, Hans Ward, (989) 634-1276 x6538, 05683 Milford Village, 2022-07-14 12:09:33 754 | D001,ord753, D001, Super Supreme, Mary Bosco, 640-602-6047 x13740, 80558 Royce Club, 2022-07-14 12:09:33 755 | P001,ord754, P001, Cheese Pizza, Luanne Ritchie, (873) 203-7298 x04213, 731 Johns Courts, 2022-07-14 12:09:33 756 | J001,ord755, J001, Cheese Pizza, Shannon Purdy II, 1-621-114-3459, 0836 Rempel Rapid, 2022-07-14 12:09:33 757 | P001,ord756, P001, Super Supreme, Eugene Walter, (978) 502-7663, 36987 Kulas Islands, 2022-07-14 12:09:33 758 | Q001,ord757, Q001, Peperoni, Hong Herzog, 608.466.2802, 354 Deangelo Mountains, 2022-07-14 12:09:33 759 | B001,ord758, B001, Peperoni, Martin Bernhard, (105) 850-7748 x2666, 58370 Wunsch Squares, 2022-07-14 12:09:33 760 | D001,ord759, D001, Cheese Garlic Pizza, Stanley McLaughlin, 876-401-3809, 16206 Kilback Land, 2022-07-14 12:09:33 761 | J001,ord760, J001, Peperoni, Kaley McClure, 1-787-797-8451 x834, 9353 Kuvalis Crest, 2022-07-14 12:09:33 762 | B001,ord761, B001, Super Supreme, Mr. Joye Spencer, 678-764-3343 x6416, 97460 Anthony Way, 2022-07-14 12:09:33 763 | I001,ord762, I001, Peperoni, Cedric Hudson, 491.104.3751, 143 Myles Court, 2022-07-14 12:09:33 764 | O001,ord763, O001, Potato Pizza, Israel Olson Jr., (202) 374-5164 x210, 46682 Kilback Fords, 2022-07-14 12:09:33 765 | H001,ord764, H001, Potato Pizza, Wes Gutkowski, (900) 422-9715, 4173 Zieme Expressway, 2022-07-14 12:09:33 766 | C001,ord765, C001, Cheese Garlic Pizza, Armand Raynor, 835.442.4335, 5373 Sung Vista, 2022-07-14 12:09:33 767 | E001,ord766, E001, Cheese Pizza, Dario Raynor, (026) 311-0394, 1715 Bernhard Junction, 2022-07-14 12:09:33 768 | P001,ord767, P001, Peperoni, Mr. Freeman Lakin, 1-529-401-7804 x1793, 270 Hayes Shores, 2022-07-14 12:09:33 769 | P001,ord768, P001, Potato Pizza, Delbert Turcotte, 520.191.1172, 849 Mariah Falls, 2022-07-14 12:09:33 770 | B001,ord769, B001, Peperoni, Mr. Lee Jacobson, 777-885-5462 x441, 0549 Marquardt Square, 2022-07-14 12:09:33 771 | J001,ord770, J001, Cheese Garlic Pizza, Harry Moore, 1-737-829-3028, 1390 Haywood Avenue, 2022-07-14 12:09:33 772 | D001,ord771, D001, Cheese Garlic Pizza, Kathryne Gislason, 991.532.4540, 716 Howe Groves, 2022-07-14 12:09:33 773 | O001,ord772, O001, Super Supreme, Keva Durgan, (603) 256-0773, 0027 Kenia Heights, 2022-07-14 12:09:33 774 | M001,ord773, M001, Cheese Pizza, Alejandro Hettinger, (123) 735-8602 x200, 5220 Howe Ways, 2022-07-14 12:09:33 775 | A001,ord774, A001, Cheese Garlic Pizza, Hilda Kuphal, 1-017-465-9750, 61265 Marvin Street, 2022-07-14 12:09:33 776 | J001,ord775, J001, Super Supreme, Kurt Ullrich, 995.423.2168, 2034 Eufemia Way, 2022-07-14 12:09:33 777 | J001,ord776, J001, Cheese Pizza, Leonard Mayert, 975-900-3958 x855, 78772 Elidia Spring, 2022-07-14 12:09:33 778 | N001,ord777, N001, Peperoni, Alphonso Gutmann, (284) 223-3912 x291, 6316 Magaly Meadows, 2022-07-14 12:09:33 779 | G001,ord778, G001, Cheese Pizza, Miss Florentino Lind, 591.767.0576, 267 Rolfson Throughway, 2022-07-14 12:09:33 780 | Q001,ord779, Q001, Super Supreme, Carlena Little, 1-246-726-3013 x59487, 33292 Fahey Alley, 2022-07-14 12:09:33 781 | D001,ord780, D001, Cheese Pizza, Rocco Nienow, (792) 569-1458 x9194, 90331 Allyn Park, 2022-07-14 12:09:33 782 | C001,ord781, C001, Super Supreme, Tim Gislason, 174-288-8098 x29497, 1210 Saturnina Burg, 2022-07-14 12:09:33 783 | I001,ord782, I001, Cheese Garlic Pizza, Mr. Janeth Torphy, 278.840.5259 x5900, 80364 Labadie Islands, 2022-07-14 12:09:33 784 | N001,ord783, N001, Super Supreme, Gregoria Hodkiewicz, (909) 085-6451, 77939 Hammes Way, 2022-07-14 12:09:33 785 | P001,ord784, P001, Super Supreme, Becki Berge, 567.742.3656 x0758, 035 Hyatt Pike, 2022-07-14 12:09:33 786 | H001,ord785, H001, Potato Pizza, Rodolfo Nienow, 169-515-6019 x268, 9275 Karey Roads, 2022-07-14 12:09:33 787 | H001,ord786, H001, Cheese Pizza, Dr. Marlyn Cassin, 692.801.3319 x025, 49116 Prohaska Islands, 2022-07-14 12:09:33 788 | B001,ord787, B001, Super Supreme, Harriet Wisozk, 1-581-193-8137 x927, 13718 Nader Squares, 2022-07-14 12:09:33 789 | I001,ord788, I001, Cheese Pizza, Mrs. Julienne Bergstrom, (292) 181-7518 x71285, 696 Chet Common, 2022-07-14 12:09:33 790 | Q001,ord789, Q001, Potato Pizza, Rich Langworth, (925) 966-3632 x335, 793 McDermott Dam, 2022-07-14 12:09:33 791 | M001,ord790, M001, Cheese Garlic Pizza, Lilliana Herman, 806.259.2364 x164, 723 Carrol Locks, 2022-07-14 12:09:33 792 | P001,ord791, P001, Super Supreme, Erin Kiehn DDS, 161.981.5347 x922, 9966 Lekisha Lock, 2022-07-14 12:09:33 793 | K001,ord792, K001, Cheese Garlic Pizza, Kallie Borer, (833) 354-3095 x48114, 1541 Morar Stream, 2022-07-14 12:09:33 794 | C001,ord793, C001, Potato Pizza, Caroll Mante, 304.625.5324 x92471, 22420 Schimmel Drive, 2022-07-14 12:09:33 795 | M001,ord794, M001, Potato Pizza, Adam Casper DVM, (064) 657-0601 x439, 7789 Mozell Mountain, 2022-07-14 12:09:33 796 | O001,ord795, O001, Potato Pizza, Willie Howell, 816.586.0340 x9346, 9339 Odilia Ways, 2022-07-14 12:09:33 797 | M001,ord796, M001, Super Supreme, Lourdes Kub, 777.558.7183 x004, 61443 Horacio Radial, 2022-07-14 12:09:33 798 | B001,ord797, B001, Cheese Garlic Pizza, Sharee Marquardt I, 1-504-325-5654, 41099 Daugherty Ferry, 2022-07-14 12:09:33 799 | K001,ord798, K001, Potato Pizza, Lenny Bauch, 1-243-625-7994 x624, 8647 Bahringer Hollow, 2022-07-14 12:09:33 800 | K001,ord799, K001, Potato Pizza, Bernie Ortiz, 848.384.3466 x8417, 76504 Renaldo Parkways, 2022-07-14 12:09:33 801 | D001,ord800, D001, Super Supreme, Keven Hegmann, 1-880-118-3729 x970, 10723 Greenholt Row, 2022-07-14 12:09:33 802 | P001,ord801, P001, Cheese Pizza, Wilmer Hartmann, (626) 816-0141, 7870 Echo Well, 2022-07-14 12:09:33 803 | I001,ord802, I001, Potato Pizza, Demarcus Nader, 372.177.0181 x4623, 0011 Zboncak Neck, 2022-07-14 12:09:33 804 | I001,ord803, I001, Potato Pizza, Gilda Bogisich Jr., 1-423-993-7719 x65547, 24163 Noah Summit, 2022-07-14 12:09:33 805 | L001,ord804, L001, Peperoni, Emerita Heathcote II, (322) 053-4168 x154, 568 Brakus Roads, 2022-07-14 12:09:33 806 | O001,ord805, O001, Cheese Pizza, Martine King, (532) 863-4150 x98640, 2439 Rice Ways, 2022-07-14 12:09:33 807 | G001,ord806, G001, Super Supreme, Hayden Skiles, 326.273.6877 x516, 5345 Christopher Light, 2022-07-14 12:09:33 808 | C001,ord807, C001, Cheese Garlic Pizza, Wava Windler, 393.792.9440, 9939 Heaney Vista, 2022-07-14 12:09:33 809 | C001,ord808, C001, Potato Pizza, Will Wuckert, 1-835-217-7469, 483 Khalilah Heights, 2022-07-14 12:09:33 810 | Q001,ord809, Q001, Peperoni, Ms. See Smitham, 497.087.7980, 0036 Adams Cliffs, 2022-07-14 12:09:33 811 | I001,ord810, I001, Potato Pizza, Dr. Dean Schimmel, 078.392.3804 x912, 94040 McDermott Alley, 2022-07-14 12:09:33 812 | P001,ord811, P001, Peperoni, Waldo Leffler, (116) 064-8918 x2215, 225 West Street, 2022-07-14 12:09:33 813 | I001,ord812, I001, Peperoni, Hollis Marvin V, 1-369-825-4638, 9090 Tobias Ford, 2022-07-14 12:09:33 814 | O001,ord813, O001, Cheese Pizza, Juan Lubowitz, (891) 590-0802, 17071 Logan Coves, 2022-07-14 12:09:33 815 | C001,ord814, C001, Potato Pizza, Yadira Feest, 1-133-769-2215, 97594 Jast Mission, 2022-07-14 12:09:33 816 | E001,ord815, E001, Super Supreme, Hank Koelpin, 088.239.6193 x6810, 28921 Bauch Streets, 2022-07-14 12:09:33 817 | K001,ord816, K001, Cheese Pizza, Ressie Fritsch, 271.912.0561, 2093 Effertz Parks, 2022-07-14 12:09:33 818 | G001,ord817, G001, Peperoni, Ezra Mraz, (052) 155-0143 x947, 139 Boyer Falls, 2022-07-14 12:09:33 819 | M001,ord818, M001, Cheese Pizza, Jean Kuhlman, 1-895-438-5515 x4071, 20714 Kessler Skyway, 2022-07-14 12:09:33 820 | O001,ord819, O001, Potato Pizza, Stacy Fadel, (406) 606-2207, 6410 Heriberto Ville, 2022-07-14 12:09:33 821 | Q001,ord820, Q001, Super Supreme, Katie Lebsack, 377-643-1811, 57200 Phylicia Mall, 2022-07-14 12:09:33 822 | J001,ord821, J001, Cheese Garlic Pizza, Mr. Danita Armstrong, (362) 891-9109 x57495, 94820 Devora Circle, 2022-07-14 12:09:33 823 | A001,ord822, A001, Peperoni, Dannie Kuhlman, 967.995.6679, 47658 Ledner Circles, 2022-07-14 12:09:33 824 | C001,ord823, C001, Cheese Pizza, Mr. Jana Powlowski, 626.015.3925 x176, 3023 Johns Station, 2022-07-14 12:09:33 825 | E001,ord824, E001, Peperoni, Louis Ryan, 1-528-295-1299, 472 Macejkovic Rapid, 2022-07-14 12:09:33 826 | J001,ord825, J001, Super Supreme, Lilli Deckow, 187-201-0931, 6703 Newton Heights, 2022-07-14 12:09:33 827 | H001,ord826, H001, Cheese Pizza, Agripina Spinka, 808-961-0048, 73447 Mistie Centers, 2022-07-14 12:09:33 828 | N001,ord827, N001, Super Supreme, Bette Rodriguez, 279-995-3730 x22558, 779 Dibbert Track, 2022-07-14 12:09:33 829 | H001,ord828, H001, Cheese Garlic Pizza, Dale Monahan, 989.020.6750 x697, 4494 Hudson Hill, 2022-07-14 12:09:33 830 | O001,ord829, O001, Super Supreme, Yu Ward, 112-442-7859, 792 Rath Shoal, 2022-07-14 12:09:33 831 | D001,ord830, D001, Cheese Garlic Pizza, Miss Darron Hahn, 1-630-975-5856 x665, 641 Dusty Roads, 2022-07-14 12:09:33 832 | N001,ord831, N001, Cheese Garlic Pizza, Nicolette Conroy, 241-424-7861 x917, 84719 Jacobson Roads, 2022-07-14 12:09:33 833 | Q001,ord832, Q001, Cheese Garlic Pizza, Lizzette Wolf, (720) 043-1374, 4803 Tomas Wells, 2022-07-14 12:09:33 834 | A001,ord833, A001, Peperoni, Mrs. Virgil Reynolds, 1-881-375-5835, 00787 Wiza Hollow, 2022-07-14 12:09:33 835 | M001,ord834, M001, Super Supreme, Geraldo Hahn, 788-612-5511 x2962, 05417 Marlin Summit, 2022-07-14 12:09:33 836 | J001,ord835, J001, Cheese Garlic Pizza, Ms. Coy Gibson, (930) 092-3800 x217, 259 Francisco Locks, 2022-07-14 12:09:33 837 | F001,ord836, F001, Cheese Pizza, Renetta Harvey, 091-511-7915 x8158, 05487 Holly Prairie, 2022-07-14 12:09:33 838 | M001,ord837, M001, Peperoni, Lindy Baumbach, 878-018-8869 x7712, 245 Gottlieb Knolls, 2022-07-14 12:09:33 839 | G001,ord838, G001, Cheese Garlic Pizza, Erinn Hamill, 128-561-7596, 6017 Rippin Fork, 2022-07-14 12:09:33 840 | N001,ord839, N001, Peperoni, Renato Haley, (638) 684-5343 x629, 406 Bashirian Pines, 2022-07-14 12:09:33 841 | J001,ord840, J001, Cheese Garlic Pizza, Mr. Lilian Hermann, 030.514.8346, 9704 Wolf Bridge, 2022-07-14 12:09:33 842 | A001,ord841, A001, Peperoni, Sherrill Krajcik, 861-624-5116 x921, 2439 Emile Key, 2022-07-14 12:09:33 843 | L001,ord842, L001, Peperoni, Nathanael Bechtelar, 1-828-214-9132 x7838, 71528 Ingeborg Ramp, 2022-07-14 12:09:33 844 | A001,ord843, A001, Cheese Garlic Pizza, Ludie Auer, 670.711.7554 x230, 2009 Rolfson Mission, 2022-07-14 12:09:33 845 | I001,ord844, I001, Super Supreme, Ulysses Welch, 615.296.5775 x9456, 57819 Penni Motorway, 2022-07-14 12:09:33 846 | N001,ord845, N001, Cheese Garlic Pizza, Cyril Pfeffer, 1-557-647-8034 x1780, 66364 Solomon Overpass, 2022-07-14 12:09:33 847 | H001,ord846, H001, Potato Pizza, Bertram Leuschke, 497-886-3974 x00771, 88478 Murray Pass, 2022-07-14 12:09:33 848 | O001,ord847, O001, Cheese Garlic Pizza, Kraig McLaughlin, 608.779.8089 x33075, 1541 Kris Squares, 2022-07-14 12:09:33 849 | Q001,ord848, Q001, Super Supreme, Arthur Gleason II, 461-526-9710 x794, 67185 Misti Rue, 2022-07-14 12:09:33 850 | A001,ord849, A001, Super Supreme, Adelle Stanton I, 144-453-0488 x64209, 5075 Ira Cove, 2022-07-14 12:09:33 851 | O001,ord850, O001, Peperoni, Shelton Aufderhar PhD, 185.216.9449, 091 Laverna Parkways, 2022-07-14 12:09:33 852 | P001,ord851, P001, Potato Pizza, Sonya Gorczany, (985) 791-3639, 77462 Lowe Circles, 2022-07-14 12:09:33 853 | D001,ord852, D001, Cheese Garlic Pizza, Sam Kozey, 234.616.1708 x40638, 354 Schmeler Keys, 2022-07-14 12:09:33 854 | P001,ord853, P001, Cheese Garlic Pizza, Brenna Wiegand, 1-239-699-1996, 536 Darrin Motorway, 2022-07-14 12:09:33 855 | K001,ord854, K001, Cheese Garlic Pizza, Lolita Bradtke DDS, (645) 608-7979, 1710 Watsica Streets, 2022-07-14 12:09:33 856 | M001,ord855, M001, Potato Pizza, Loren Rodriguez V, 1-667-134-2914 x67011, 53471 Denver Lodge, 2022-07-14 12:09:33 857 | B001,ord856, B001, Cheese Garlic Pizza, Elmo Berge, 266-440-8592, 004 McGlynn Overpass, 2022-07-14 12:09:33 858 | Q001,ord857, Q001, Super Supreme, Kelvin Effertz, 202-084-8213 x605, 26667 Maudie Roads, 2022-07-14 12:09:33 859 | M001,ord858, M001, Cheese Garlic Pizza, Stephany Blanda, (791) 743-0890 x672, 60033 Jerry Route, 2022-07-14 12:09:33 860 | G001,ord859, G001, Peperoni, Shaniqua Dicki, 1-789-317-8461 x11947, 6342 Many Ports, 2022-07-14 12:09:33 861 | A001,ord860, A001, Potato Pizza, Dinorah Spencer, 1-843-405-4882 x685, 253 Kami Overpass, 2022-07-14 12:09:33 862 | E001,ord861, E001, Peperoni, Len Spinka V, 905-778-7845, 930 Mitchell Passage, 2022-07-14 12:09:33 863 | K001,ord862, K001, Cheese Pizza, Stacy Jakubowski, (357) 020-5990, 892 Cythia Summit, 2022-07-14 12:09:33 864 | D001,ord863, D001, Potato Pizza, Reiko Shields, (647) 788-9670 x8110, 035 Hand Center, 2022-07-14 12:09:33 865 | L001,ord864, L001, Potato Pizza, Miss Al Block, (018) 337-6031 x51555, 825 Boyle Roads, 2022-07-14 12:09:33 866 | K001,ord865, K001, Potato Pizza, Vincenzo Erdman, (861) 639-7316, 134 O'Kon Court, 2022-07-14 12:09:33 867 | N001,ord866, N001, Peperoni, Carolyne Raynor II, 1-466-250-4203 x5619, 5962 Keebler Manors, 2022-07-14 12:09:33 868 | F001,ord867, F001, Cheese Pizza, Julieta Raynor II, 1-203-425-9760, 3648 Wanetta Green, 2022-07-14 12:09:33 869 | K001,ord868, K001, Peperoni, Gail Brakus, 1-588-978-7739 x82112, 4364 Lucas Ridge, 2022-07-14 12:09:33 870 | L001,ord869, L001, Peperoni, Thuy Marvin, 1-670-173-5434, 4510 Kristle Field, 2022-07-14 12:09:33 871 | L001,ord870, L001, Super Supreme, Hae Haag, 1-592-507-3556, 915 Patti Village, 2022-07-14 12:09:33 872 | P001,ord871, P001, Cheese Pizza, Leisa Jacobi, (111) 469-6754, 09240 Nolan Key, 2022-07-14 12:09:33 873 | I001,ord872, I001, Peperoni, Mrs. Annamaria Gusikowski, 287-569-1733 x777, 43747 Dach Lakes, 2022-07-14 12:09:33 874 | P001,ord873, P001, Potato Pizza, Dotty Dach, (507) 645-4392 x428, 63248 Marketta Union, 2022-07-14 12:09:33 875 | A001,ord874, A001, Peperoni, Junior Collier V, (809) 020-4800 x5467, 4358 Stehr Mall, 2022-07-14 12:09:33 876 | H001,ord875, H001, Cheese Garlic Pizza, Arnold McClure, (164) 788-9650 x6730, 18616 Charlette Shore, 2022-07-14 12:09:33 877 | Q001,ord876, Q001, Peperoni, Tony Keeling, 801-548-9035 x28473, 1413 Koepp Pass, 2022-07-14 12:09:33 878 | I001,ord877, I001, Super Supreme, Haywood Luettgen, (408) 942-5981, 0579 Donald Forest, 2022-07-14 12:09:33 879 | C001,ord878, C001, Peperoni, Thi Durgan DVM, 113-370-3066 x83200, 88042 Mikel Locks, 2022-07-14 12:09:33 880 | F001,ord879, F001, Potato Pizza, Agustina Schinner, 148.075.9321 x141, 46062 Omar Crescent, 2022-07-14 12:09:33 881 | G001,ord880, G001, Cheese Garlic Pizza, Ignacio Wiegand, 1-973-750-7186 x6557, 126 Norman Center, 2022-07-14 12:09:33 882 | Q001,ord881, Q001, Cheese Pizza, Jody Kassulke, (276) 314-5807 x745, 7802 Kerrie Summit, 2022-07-14 12:09:33 883 | K001,ord882, K001, Cheese Pizza, Dr. Georgette Quigley, (642) 570-5890 x184, 97020 Bud Square, 2022-07-14 12:09:33 884 | E001,ord883, E001, Cheese Pizza, Nita Schmeler, 842.577.6592, 49732 Jerde Turnpike, 2022-07-14 12:09:33 885 | J001,ord884, J001, Cheese Pizza, Sherly Larson, 1-393-177-1737, 6062 Spencer Turnpike, 2022-07-14 12:09:33 886 | Q001,ord885, Q001, Cheese Pizza, Mrs. Bea Sporer, 512.083.4106, 931 Lashunda Ferry, 2022-07-14 12:09:33 887 | M001,ord886, M001, Super Supreme, Ezra Yost, 012.543.9876 x72270, 520 Feeney Shoal, 2022-07-14 12:09:33 888 | E001,ord887, E001, Super Supreme, Lindsey Rippin II, 1-605-226-8895, 74749 Raymond Shoals, 2022-07-14 12:09:33 889 | Q001,ord888, Q001, Cheese Pizza, Miyoko Klocko, 1-477-396-1258, 860 Landon Crest, 2022-07-14 12:09:33 890 | H001,ord889, H001, Super Supreme, Anneliese Homenick, (599) 210-6204 x940, 359 Pablo Crossroad, 2022-07-14 12:09:33 891 | H001,ord890, H001, Super Supreme, Senaida Cartwright, (558) 998-9353 x931, 164 Nery Harbors, 2022-07-14 12:09:33 892 | J001,ord891, J001, Cheese Pizza, Jeanice Deckow II, (804) 171-2239 x320, 4739 Ignacia Shoal, 2022-07-14 12:09:33 893 | A001,ord892, A001, Cheese Garlic Pizza, Murray Hessel, (846) 623-6221 x8513, 46918 Caryl Parkway, 2022-07-14 12:09:33 894 | F001,ord893, F001, Cheese Garlic Pizza, Calvin O'Connell III, (203) 548-1177 x729, 60148 Jamey Rapids, 2022-07-14 12:09:33 895 | M001,ord894, M001, Cheese Garlic Pizza, Clarence Robel, 592-020-4979, 07714 Wilmer Route, 2022-07-14 12:09:33 896 | D001,ord895, D001, Peperoni, Mrs. Alfonso Batz, 043.293.8167 x157, 318 Boyle Freeway, 2022-07-14 12:09:33 897 | O001,ord896, O001, Super Supreme, Nathanial Walker, (599) 303-2979 x537, 6570 Russell Cliffs, 2022-07-14 12:09:33 898 | H001,ord897, H001, Peperoni, Alfonso Ziemann, 1-714-029-9776 x2833, 40821 Moriah Valleys, 2022-07-14 12:09:33 899 | J001,ord898, J001, Super Supreme, Natisha Walker, (026) 208-8609 x28033, 361 Pouros Causeway, 2022-07-14 12:09:33 900 | G001,ord899, G001, Cheese Pizza, Paige Grady, 762.315.0399 x154, 1467 Corkery Corner, 2022-07-14 12:09:33 901 | C001,ord900, C001, Potato Pizza, Nedra Ferry, (232) 071-4989 x74382, 946 Marilynn Station, 2022-07-14 12:09:33 902 | D001,ord901, D001, Potato Pizza, Mr. Janett Hills, 1-729-111-5956 x20348, 2307 Donnelly Ford, 2022-07-14 12:09:33 903 | N001,ord902, N001, Peperoni, Malik O'Keefe, 556.579.9712 x824, 37024 Lubowitz Ville, 2022-07-14 12:09:33 904 | E001,ord903, E001, Cheese Pizza, Tricia Sporer, 1-965-061-4018 x197, 137 Walter Inlet, 2022-07-14 12:09:33 905 | P001,ord904, P001, Super Supreme, Nicole Doyle Sr., (672) 941-0473, 9428 Wilburn Crescent, 2022-07-14 12:09:33 906 | J001,ord905, J001, Cheese Garlic Pizza, Dominic Stamm III, 864.614.2195, 8177 Jolynn Lane, 2022-07-14 12:09:33 907 | A001,ord906, A001, Cheese Garlic Pizza, Guadalupe Dibbert DDS, 462-780-0830 x857, 3761 Tod Isle, 2022-07-14 12:09:33 908 | H001,ord907, H001, Peperoni, Dr. Corey Durgan, (983) 185-4305 x612, 3685 Dean Passage, 2022-07-14 12:09:33 909 | I001,ord908, I001, Potato Pizza, Daron Adams, (261) 796-9969, 1743 Murphy Shoals, 2022-07-14 12:09:33 910 | G001,ord909, G001, Cheese Pizza, Pamula Monahan, 938-725-2436, 498 Farrell Parkway, 2022-07-14 12:09:33 911 | J001,ord910, J001, Potato Pizza, Gretta Sawayn, (308) 964-6545 x822, 57628 Wallace Light, 2022-07-14 12:09:33 912 | P001,ord911, P001, Super Supreme, Ammie Dietrich, (285) 859-2365 x339, 8118 Jamey River, 2022-07-14 12:09:33 913 | E001,ord912, E001, Cheese Pizza, Fransisca Gleason, 167.598.6032, 701 Alene Route, 2022-07-14 12:09:33 914 | B001,ord913, B001, Potato Pizza, Stacie Rolfson, 1-264-533-2011 x2965, 2068 Garrett Camp, 2022-07-14 12:09:33 915 | D001,ord914, D001, Potato Pizza, Mohammed Halvorson, (761) 888-7101 x0590, 3868 Gary Roads, 2022-07-14 12:09:33 916 | I001,ord915, I001, Cheese Pizza, Regina Mayer, 914-652-3562 x67330, 07824 Rolfson Ways, 2022-07-14 12:09:33 917 | E001,ord916, E001, Peperoni, Miss Jarred Connelly, 130.494.1863, 52765 Wiegand Mountains, 2022-07-14 12:09:33 918 | Q001,ord917, Q001, Super Supreme, Catina Ebert, 438.315.7974, 5248 Jackie Stream, 2022-07-14 12:09:33 919 | B001,ord918, B001, Cheese Garlic Pizza, Ivelisse Nolan, 190-661-6382, 73395 Orlando Skyway, 2022-07-14 12:09:33 920 | O001,ord919, O001, Cheese Garlic Pizza, Doyle Thompson, 973.944.5573, 123 Eddy Ferry, 2022-07-14 12:09:33 921 | C001,ord920, C001, Potato Pizza, Kathi Ledner, 1-777-822-2788 x486, 512 Carol Mountains, 2022-07-14 12:09:33 922 | N001,ord921, N001, Peperoni, Rosie Bailey, 509-134-8100 x30101, 91071 Terrence Ridges, 2022-07-14 12:09:33 923 | P001,ord922, P001, Potato Pizza, Miss Arturo Fisher, (586) 257-7158 x46540, 555 Nikolaus Drive, 2022-07-14 12:09:33 924 | A001,ord923, A001, Peperoni, Miss Chrystal Langosh, 491.058.0084 x53050, 788 Elmer Burgs, 2022-07-14 12:09:33 925 | P001,ord924, P001, Super Supreme, Delbert Deckow, (317) 330-8026 x143, 73999 Adolfo Ridges, 2022-07-14 12:09:33 926 | M001,ord925, M001, Potato Pizza, Marcene Gleichner, (339) 693-3973, 884 Haag Courts, 2022-07-14 12:09:33 927 | B001,ord926, B001, Super Supreme, Robbi Torp, (968) 295-6027 x31341, 68321 Valentin Expressway, 2022-07-14 12:09:33 928 | O001,ord927, O001, Cheese Garlic Pizza, Brant Watsica, 365-309-1916, 4610 Sipes Wall, 2022-07-14 12:09:33 929 | D001,ord928, D001, Peperoni, Jena Rau II, 449-415-5595 x6699, 5242 Roosevelt Groves, 2022-07-14 12:09:33 930 | F001,ord929, F001, Super Supreme, Luciano Pfeffer DVM, 092.832.8908 x908, 02270 McLaughlin Manor, 2022-07-14 12:09:33 931 | F001,ord930, F001, Cheese Pizza, Walter Ryan DDS, 188.100.0986, 5590 Sigrid Ridges, 2022-07-14 12:09:33 932 | M001,ord931, M001, Peperoni, Thaddeus Johnston, (351) 757-1808, 907 Reuben Lodge, 2022-07-14 12:09:33 933 | F001,ord932, F001, Cheese Pizza, Oliva Nicolas, 701-395-4631, 178 Ryan Walk, 2022-07-14 12:09:33 934 | E001,ord933, E001, Cheese Pizza, Efrain Walsh Jr., 236.398.7256 x14478, 5899 Dorthey Canyon, 2022-07-14 12:09:33 935 | N001,ord934, N001, Cheese Garlic Pizza, Miss Miss Rolfson, 734.915.3321, 57235 Bogan Plain, 2022-07-14 12:09:33 936 | I001,ord935, I001, Cheese Garlic Pizza, Maude Casper, 1-092-571-5321 x2429, 3892 Fadel Ranch, 2022-07-14 12:09:33 937 | M001,ord936, M001, Super Supreme, Logan O'Connell, 1-178-946-9499, 30788 Reichel Stream, 2022-07-14 12:09:33 938 | B001,ord937, B001, Potato Pizza, Cesar Runolfsson, 690.566.5903 x88930, 422 Jospeh Hill, 2022-07-14 12:09:33 939 | P001,ord938, P001, Super Supreme, Felecia Friesen, 1-372-211-1472 x876, 83906 Major Park, 2022-07-14 12:09:33 940 | K001,ord939, K001, Cheese Garlic Pizza, Guadalupe Upton, (955) 557-4050 x75761, 734 Dakota Underpass, 2022-07-14 12:09:33 941 | C001,ord940, C001, Peperoni, Jody Berge, 301-231-3127, 3090 Kreiger Fields, 2022-07-14 12:09:33 942 | O001,ord941, O001, Peperoni, Kathey McLaughlin, 1-451-700-6710 x2689, 610 Makeda Ford, 2022-07-14 12:09:33 943 | Q001,ord942, Q001, Peperoni, Jame Lakin, 342-834-9913, 1312 Hane Gardens, 2022-07-14 12:09:33 944 | D001,ord943, D001, Cheese Garlic Pizza, Benita Ortiz, (150) 185-6219 x7264, 24511 Lindgren Street, 2022-07-14 12:09:33 945 | Q001,ord944, Q001, Potato Pizza, Dr. Iliana Jones, 1-607-946-1926 x84088, 8903 Tresa Mountain, 2022-07-14 12:09:33 946 | L001,ord945, L001, Potato Pizza, Karine Runte, (860) 991-8450 x786, 277 Carmel Mews, 2022-07-14 12:09:33 947 | D001,ord946, D001, Peperoni, Rico Heathcote, 292-888-2510, 17431 Brekke Walk, 2022-07-14 12:09:33 948 | P001,ord947, P001, Potato Pizza, Lesley Steuber, (009) 377-1224, 38160 Maricela Plaza, 2022-07-14 12:09:33 949 | I001,ord948, I001, Super Supreme, Ike Wisozk, 451.013.8873, 9357 Daniel Estates, 2022-07-14 12:09:33 950 | M001,ord949, M001, Cheese Pizza, Calandra Price, 115.356.1530 x810, 5469 Mraz Club, 2022-07-14 12:09:33 951 | E001,ord950, E001, Cheese Garlic Pizza, Newton Cassin V, 805.366.1317 x80730, 45773 Anthony Motorway, 2022-07-14 12:09:33 952 | I001,ord951, I001, Cheese Garlic Pizza, Bob Roob, 793.102.5459, 34689 Hoeger Landing, 2022-07-14 12:09:33 953 | K001,ord952, K001, Peperoni, Berneice Hermann, (439) 984-6305 x6705, 9538 Bill Locks, 2022-07-14 12:09:33 954 | A001,ord953, A001, Potato Pizza, Kristopher Nader DDS, 378.871.8778, 441 Bailey Ford, 2022-07-14 12:09:33 955 | C001,ord954, C001, Cheese Pizza, Mr. Dara DuBuque, 922.905.2666 x374, 6476 Paul Ferry, 2022-07-14 12:09:33 956 | K001,ord955, K001, Peperoni, Julius Rowe DVM, 878.450.2533 x24886, 84593 Lang Crescent, 2022-07-14 12:09:33 957 | D001,ord956, D001, Potato Pizza, Dagmar Renner, (969) 573-0208 x9168, 11895 Tamatha Row, 2022-07-14 12:09:33 958 | O001,ord957, O001, Super Supreme, Maynard Conroy, 1-571-890-9083, 3761 Pat Way, 2022-07-14 12:09:33 959 | E001,ord958, E001, Cheese Pizza, Eilene Hansen, 639.849.7203 x280, 9816 Wintheiser Freeway, 2022-07-14 12:09:33 960 | F001,ord959, F001, Cheese Garlic Pizza, Eloy Brekke Sr., 1-605-602-1632, 97459 Green Drive, 2022-07-14 12:09:33 961 | I001,ord960, I001, Super Supreme, Shizuko Dickens, 651-753-8431 x044, 905 Gislason Station, 2022-07-14 12:09:33 962 | C001,ord961, C001, Cheese Pizza, Jerrell Corkery DVM, 500.743.5964, 918 Quigley Way, 2022-07-14 12:09:33 963 | L001,ord962, L001, Cheese Garlic Pizza, Ozie Konopelski, 1-178-277-3314 x82995, 5785 John Viaduct, 2022-07-14 12:09:33 964 | O001,ord963, O001, Potato Pizza, Maximina Reichel, 1-497-500-8895, 5780 Bednar Trail, 2022-07-14 12:09:33 965 | M001,ord964, M001, Peperoni, Sonny Murazik, (461) 959-3187 x53789, 062 Bins Club, 2022-07-14 12:09:33 966 | Q001,ord965, Q001, Cheese Pizza, Estell McClure, 645-772-1712 x13414, 04664 Bev Springs, 2022-07-14 12:09:33 967 | N001,ord966, N001, Cheese Garlic Pizza, Yadira Predovic I, 1-817-486-6114 x769, 854 Jose Locks, 2022-07-14 12:09:33 968 | B001,ord967, B001, Cheese Pizza, Julie Kertzmann, (282) 735-3868 x00483, 3193 Kreiger Lakes, 2022-07-14 12:09:33 969 | B001,ord968, B001, Potato Pizza, Vince Zieme, 935.326.2356, 81015 Gusikowski Avenue, 2022-07-14 12:09:33 970 | M001,ord969, M001, Potato Pizza, Miles Gorczany, (976) 185-4609 x7044, 5181 Stephane Inlet, 2022-07-14 12:09:33 971 | O001,ord970, O001, Cheese Garlic Pizza, Mayra Gutkowski, 094.053.4875 x95986, 857 Leroy Flats, 2022-07-14 12:09:33 972 | H001,ord971, H001, Super Supreme, Michiko Bergstrom, 433-802-9833 x66329, 96601 Hammes Walks, 2022-07-14 12:09:33 973 | N001,ord972, N001, Super Supreme, Miss Cherise Waters, 1-575-214-0310, 97986 Cammy Cliffs, 2022-07-14 12:09:33 974 | P001,ord973, P001, Potato Pizza, Thad Dare, 1-864-846-0815 x2584, 6883 Betty Square, 2022-07-14 12:09:33 975 | Q001,ord974, Q001, Super Supreme, Valorie Champlin DDS, 1-842-639-1640 x80129, 43329 Jonas Park, 2022-07-14 12:09:33 976 | Q001,ord975, Q001, Super Supreme, Ms. Marvis Farrell, 985.602.4514, 6578 Hills Pike, 2022-07-14 12:09:33 977 | J001,ord976, J001, Peperoni, Miss Kristopher Labadie, 115-303-7038, 36111 Kathaleen Lake, 2022-07-14 12:09:33 978 | J001,ord977, J001, Cheese Garlic Pizza, Mrs. Nelson Bode, 652.978.6784 x2169, 98966 Legros Shoals, 2022-07-14 12:09:33 979 | M001,ord978, M001, Cheese Garlic Pizza, Hermelinda Wolff, 656-954-3233 x96222, 921 Chelsie Unions, 2022-07-14 12:09:33 980 | A001,ord979, A001, Cheese Pizza, Herman Wilkinson, 887.026.2876, 6019 Layne Mount, 2022-07-14 12:09:33 981 | L001,ord980, L001, Potato Pizza, Logan Kemmer, 153-203-2397 x97759, 48591 Kovacek Gateway, 2022-07-14 12:09:33 982 | M001,ord981, M001, Super Supreme, Guillermina Hudson I, 733-375-7411, 225 Cordie Village, 2022-07-14 12:09:33 983 | G001,ord982, G001, Potato Pizza, Joni Hand, (375) 484-6139 x454, 762 Troy Forest, 2022-07-14 12:09:33 984 | G001,ord983, G001, Cheese Pizza, Marchelle Strosin II, (255) 633-1057, 89217 Donnelly Mountain, 2022-07-14 12:09:33 985 | Q001,ord984, Q001, Potato Pizza, Monet Mayert PhD, (954) 198-8886 x791, 87790 Aufderhar Fork, 2022-07-14 12:09:33 986 | L001,ord985, L001, Super Supreme, Randal Lesch, 722.875.4939, 7548 Douglass Squares, 2022-07-14 12:09:33 987 | F001,ord986, F001, Cheese Pizza, Latisha Braun, (673) 850-6249, 0704 Shanahan Shoal, 2022-07-14 12:09:33 988 | B001,ord987, B001, Cheese Pizza, Antwan Schumm, (313) 568-6209, 10392 Exie Lodge, 2022-07-14 12:09:33 989 | E001,ord988, E001, Peperoni, Rubin Langosh, 882.935.2676 x040, 970 Ciera Junctions, 2022-07-14 12:09:33 990 | M001,ord989, M001, Cheese Garlic Pizza, Jame Kunde, (440) 724-4994 x6686, 2983 Schroeder Square, 2022-07-14 12:09:33 991 | C001,ord990, C001, Peperoni, Dorothea Doyle V, 925-849-6469, 92451 Brown Ford, 2022-07-14 12:09:33 992 | J001,ord991, J001, Potato Pizza, Dagny Witting, 913-899-8197 x606, 2130 Hirthe Creek, 2022-07-14 12:09:33 993 | G001,ord992, G001, Cheese Garlic Pizza, Bambi Blick, 1-289-097-1179 x83936, 947 Mueller Glens, 2022-07-14 12:09:33 994 | M001,ord993, M001, Super Supreme, Bradly Gerlach, (321) 969-9597 x0456, 097 Joesph Stream, 2022-07-14 12:09:33 995 | O001,ord994, O001, Super Supreme, Cole Schiller Jr., 126.107.3253 x83844, 27909 Milton Trace, 2022-07-14 12:09:33 996 | H001,ord995, H001, Cheese Garlic Pizza, Heriberto Rowe V, 663-906-4966, 579 Hansen Centers, 2022-07-14 12:09:33 997 | M001,ord996, M001, Peperoni, Conchita Welch, 535-826-5915 x58046, 888 Sherilyn Circle, 2022-07-14 12:09:33 998 | B001,ord997, B001, Potato Pizza, Marica Goodwin, 938.080.3111, 795 Renner Avenue, 2022-07-14 12:09:33 999 | Q001,ord998, Q001, Peperoni, Elsa MacGyver, 193-105-8102, 51998 Ledner Village, 2022-07-14 12:09:33 1000 | L001,ord999, L001, Super Supreme, Grady Sawayn, 070-780-2916, 10564 Zelda Street, 2022-07-14 12:09:33 1001 | -------------------------------------------------------------------------------- /producers/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'java' 3 | } 4 | 5 | group 'com.example' 6 | version '1.0-SNAPSHOT' 7 | 8 | repositories { 9 | mavenCentral() 10 | } 11 | 12 | dependencies { 13 | // https://mvnrepository.com/artifact/org.apache.kafka/kafka-clients 14 | implementation 'org.apache.kafka:kafka-clients:3.1.0' 15 | // https://mvnrepository.com/artifact/org.slf4j/slf4j-api 16 | implementation 'org.slf4j:slf4j-api:1.7.36' 17 | // https://mvnrepository.com/artifact/org.slf4j/slf4j-simple 18 | implementation 'org.slf4j:slf4j-simple:1.7.36' 19 | // https://mvnrepository.com/artifact/com.github.javafaker/javafaker 20 | implementation 'com.github.javafaker:javafaker:1.0.2' 21 | 22 | 23 | } 24 | 25 | test { 26 | useJUnitPlatform() 27 | } -------------------------------------------------------------------------------- /producers/src/main/java/com/example/kafka/CustomCallback.java: -------------------------------------------------------------------------------- 1 | package com.example.kafka; 2 | 3 | import org.apache.kafka.clients.producer.Callback; 4 | import org.apache.kafka.clients.producer.RecordMetadata; 5 | import org.slf4j.Logger; 6 | import org.slf4j.LoggerFactory; 7 | 8 | 9 | public class CustomCallback implements Callback { 10 | public static final Logger logger = LoggerFactory.getLogger(CustomCallback.class.getName()); 11 | private int seq; 12 | 13 | public CustomCallback(int seq) { 14 | this.seq = seq; 15 | } 16 | 17 | @Override 18 | public void onCompletion(RecordMetadata metadata, Exception exception) { 19 | if (exception == null) { 20 | logger.info("seq:{} partition:{} offset:{}", this.seq, metadata.partition(), metadata.offset()); 21 | } else { 22 | logger.error("exception error from broker " + exception.getMessage()); 23 | } 24 | }; 25 | } 26 | -------------------------------------------------------------------------------- /producers/src/main/java/com/example/kafka/CustomPartitioner.java: -------------------------------------------------------------------------------- 1 | package com.example.kafka; 2 | 3 | import org.apache.kafka.clients.producer.Partitioner; 4 | import org.apache.kafka.clients.producer.internals.StickyPartitionCache; 5 | import org.apache.kafka.common.Cluster; 6 | import org.apache.kafka.common.InvalidRecordException; 7 | import org.apache.kafka.common.PartitionInfo; 8 | import org.apache.kafka.common.utils.Utils; 9 | import org.slf4j.Logger; 10 | import org.slf4j.LoggerFactory; 11 | 12 | 13 | import java.util.List; 14 | import java.util.Map; 15 | 16 | public class CustomPartitioner implements Partitioner { 17 | public static final Logger logger = LoggerFactory.getLogger(CustomPartitioner.class.getName()); 18 | private final StickyPartitionCache stickyPartitionCache = new StickyPartitionCache(); 19 | private String specialKeyName; 20 | 21 | @Override 22 | public void configure(Map configs) { 23 | specialKeyName = configs.get("custom.specialKey").toString(); 24 | } 25 | 26 | @Override 27 | public int partition(String topic, Object key, byte[] keyBytes, Object value, byte[] valueBytes, Cluster cluster) { 28 | List partitionInfoList = cluster.partitionsForTopic(topic); 29 | int numPartitions = partitionInfoList.size(); 30 | int numSpecialPartitions = (int)(numPartitions * 0.5); 31 | int partitionIndex = 0; 32 | 33 | if (keyBytes == null) { 34 | //return stickyPartitionCache.partition(topic, cluster); 35 | throw new InvalidRecordException("key should not be null"); 36 | } 37 | 38 | if (((String)key).equals(specialKeyName)) { 39 | partitionIndex = Utils.toPositive(Utils.murmur2(valueBytes)) % numSpecialPartitions; 40 | } 41 | else { 42 | partitionIndex = Utils.toPositive(Utils.murmur2(keyBytes)) % (numPartitions - numSpecialPartitions) + numSpecialPartitions; 43 | } 44 | logger.info("key:{} is sent to partition:{}", key.toString(), partitionIndex); 45 | 46 | return partitionIndex; 47 | } 48 | 49 | @Override 50 | public void close() { 51 | 52 | } 53 | 54 | 55 | } 56 | -------------------------------------------------------------------------------- /producers/src/main/java/com/example/kafka/PizzaMessage.java: -------------------------------------------------------------------------------- 1 | package com.example.kafka; 2 | 3 | import com.github.javafaker.Faker; 4 | import java.time.LocalDateTime; 5 | import java.time.format.DateTimeFormatter; 6 | import java.util.HashMap; 7 | import java.util.List; 8 | import java.util.Locale; 9 | import java.util.Random; 10 | 11 | public class PizzaMessage { 12 | // 피자 메뉴를 설정. getRandomValueFromList()에서 임의의 피자명을 출력하는 데 사용. 13 | private static final List pizzaNames = List.of("Potato Pizza", "Cheese Pizza", 14 | "Cheese Garlic Pizza", "Super Supreme", "Peperoni"); 15 | // private static final List pizzaNames = List.of("고구마 피자", "치즈 피자", 16 | // "치즈 갈릭 피자", "슈퍼 슈프림", "페페로니 피자"); 17 | 18 | // 피자 가게명을 설정. getRandomValueFromList()에서 임의의 피자 가게명을 출력하는데 사용. 19 | private static final List pizzaShop = List.of("A001", "B001", "C001", 20 | "D001", "E001", "F001", "G001", "H001", "I001", "J001", "K001", "L001", "M001", "N001", 21 | "O001", "P001", "Q001"); 22 | 23 | public PizzaMessage() {} 24 | 25 | //인자로 피자명 또는 피자가게 List와 Random 객체를 입력 받아서 random한 피자명 또는 피자 가게 명을 반환. 26 | private String getRandomValueFromList(List list, Random random) { 27 | int size = list.size(); 28 | int index = random.nextInt(size); 29 | 30 | return list.get(index); 31 | } 32 | 33 | //random한 피자 메시지를 생성하고, 피자가게 명을 key로 나머지 정보를 value로 하여 Hashmap을 생성하여 반환. 34 | public HashMap produce_msg(Faker faker, Random random, int id) { 35 | 36 | String shopId = getRandomValueFromList(pizzaShop, random); 37 | String pizzaName = getRandomValueFromList(pizzaNames, random); 38 | 39 | String ordId = "ord"+id; 40 | String customerName = faker.name().fullName(); 41 | String phoneNumber = faker.phoneNumber().phoneNumber(); 42 | String address = faker.address().streetAddress(); 43 | LocalDateTime now = LocalDateTime.now(); 44 | String message = String.format("order_id:%s, shop:%s, pizza_name:%s, customer_name:%s, phone_number:%s, address:%s, time:%s" 45 | , ordId, shopId, pizzaName, customerName, phoneNumber, address 46 | , now.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss", Locale.KOREAN))); 47 | //System.out.println(message); 48 | HashMap messageMap = new HashMap<>(); 49 | messageMap.put("key", shopId); 50 | messageMap.put("message", message); 51 | 52 | return messageMap; 53 | } 54 | 55 | public static void main(String[] args) { 56 | PizzaMessage pizzaMessage = new PizzaMessage(); 57 | // seed값을 고정하여 Random 객체와 Faker 객체를 생성. 58 | long seed = 2022; 59 | Random random = new Random(seed); 60 | Faker faker = Faker.instance(random); 61 | 62 | for(int i=0; i < 60; i++) { 63 | HashMap message = pizzaMessage.produce_msg(faker, random, i); 64 | System.out.println("key:"+ message.get("key") + " message:" + message.get("message")); 65 | } 66 | 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /producers/src/main/java/com/example/kafka/PizzaProducer.java: -------------------------------------------------------------------------------- 1 | package com.example.kafka; 2 | 3 | import com.github.javafaker.Faker; 4 | import org.apache.kafka.clients.producer.*; 5 | import org.apache.kafka.common.serialization.StringSerializer; 6 | import org.slf4j.Logger; 7 | import org.slf4j.LoggerFactory; 8 | 9 | import java.util.HashMap; 10 | import java.util.Properties; 11 | import java.util.Random; 12 | import java.util.concurrent.ExecutionException; 13 | 14 | public class PizzaProducer { 15 | public static final Logger logger = LoggerFactory.getLogger(PizzaProducer.class.getName()); 16 | 17 | 18 | public static void sendPizzaMessage(KafkaProducer kafkaProducer, 19 | String topicName, int iterCount, 20 | int interIntervalMillis, int intervalMillis, 21 | int intervalCount, boolean sync) { 22 | 23 | PizzaMessage pizzaMessage = new PizzaMessage(); 24 | int iterSeq = 0; 25 | long seed = 2022; 26 | Random random = new Random(seed); 27 | Faker faker = Faker.instance(random); 28 | 29 | long startTime = System.currentTimeMillis(); 30 | 31 | while( iterSeq++ != iterCount ) { 32 | HashMap pMessage = pizzaMessage.produce_msg(faker, random, iterSeq); 33 | ProducerRecord producerRecord = new ProducerRecord<>(topicName, 34 | pMessage.get("key"), pMessage.get("message")); 35 | sendMessage(kafkaProducer, producerRecord, pMessage, sync); 36 | 37 | if((intervalCount > 0) && (iterSeq % intervalCount == 0)) { 38 | try { 39 | logger.info("####### IntervalCount:" + intervalCount + 40 | " intervalMillis:" + intervalMillis + " #########"); 41 | Thread.sleep(intervalMillis); 42 | } catch (InterruptedException e) { 43 | logger.error(e.getMessage()); 44 | } 45 | } 46 | 47 | if(interIntervalMillis > 0) { 48 | try { 49 | logger.info("interIntervalMillis:" + interIntervalMillis); 50 | Thread.sleep(interIntervalMillis); 51 | } catch (InterruptedException e) { 52 | logger.error(e.getMessage()); 53 | } 54 | } 55 | 56 | } 57 | long endTime = System.currentTimeMillis(); 58 | long timeElapsed = endTime - startTime; 59 | 60 | logger.info("{} millisecond elapsed for {} iterations", timeElapsed, iterCount); 61 | 62 | } 63 | 64 | public static void sendMessage(KafkaProducer kafkaProducer, 65 | ProducerRecord producerRecord, 66 | HashMap pMessage, boolean sync) { 67 | if(!sync) { 68 | kafkaProducer.send(producerRecord, (metadata, exception) -> { 69 | if (exception == null) { 70 | logger.info("async message:" + pMessage.get("key") + " partition:" + metadata.partition() + 71 | " offset:" + metadata.offset()); 72 | } else { 73 | logger.error("exception error from broker " + exception.getMessage()); 74 | } 75 | }); 76 | } else { 77 | try { 78 | RecordMetadata metadata = kafkaProducer.send(producerRecord).get(); 79 | logger.info("sync message:" + pMessage.get("key") + " partition:" + metadata.partition() + 80 | " offset:" + metadata.offset()); 81 | } catch (ExecutionException e) { 82 | logger.error(e.getMessage()); 83 | } catch (InterruptedException e) { 84 | logger.error(e.getMessage()); 85 | } 86 | } 87 | 88 | } 89 | 90 | public static void main(String[] args) { 91 | 92 | String topicName = "pizza-topic"; 93 | 94 | //KafkaProducer configuration setting 95 | // null, "hello world" 96 | 97 | Properties props = new Properties(); 98 | props.setProperty(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "192.168.56.101:9092"); 99 | props.setProperty(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName()); 100 | props.setProperty(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName()); 101 | //props.setProperty(ProducerConfig.DELIVERY_TIMEOUT_MS_CONFIG, "50000"); 102 | //props.setProperty(ProducerConfig.ACKS_CONFIG, "0"); 103 | 104 | 105 | //KafkaProducer object creation 106 | KafkaProducer kafkaProducer = new KafkaProducer(props); 107 | 108 | sendPizzaMessage(kafkaProducer, topicName, 109 | -1, 1000, 0, 0, false); 110 | 111 | kafkaProducer.close(); 112 | 113 | } 114 | } -------------------------------------------------------------------------------- /producers/src/main/java/com/example/kafka/PizzaProducerCustomPartitioner.java: -------------------------------------------------------------------------------- 1 | package com.example.kafka; 2 | 3 | import com.github.javafaker.Faker; 4 | import org.apache.kafka.clients.producer.KafkaProducer; 5 | import org.apache.kafka.clients.producer.ProducerConfig; 6 | import org.apache.kafka.clients.producer.ProducerRecord; 7 | import org.apache.kafka.clients.producer.RecordMetadata; 8 | import org.apache.kafka.clients.producer.internals.DefaultPartitioner; 9 | import org.apache.kafka.common.serialization.StringSerializer; 10 | import org.slf4j.Logger; 11 | import org.slf4j.LoggerFactory; 12 | 13 | import java.util.HashMap; 14 | import java.util.Properties; 15 | import java.util.Random; 16 | import java.util.concurrent.ExecutionException; 17 | 18 | public class PizzaProducerCustomPartitioner { 19 | public static final Logger logger = LoggerFactory.getLogger(PizzaProducerCustomPartitioner.class.getName()); 20 | 21 | 22 | public static void sendPizzaMessage(KafkaProducer kafkaProducer, 23 | String topicName, int iterCount, 24 | int interIntervalMillis, int intervalMillis, 25 | int intervalCount, boolean sync) { 26 | 27 | PizzaMessage pizzaMessage = new PizzaMessage(); 28 | int iterSeq = 0; 29 | long seed = 2022; 30 | Random random = new Random(seed); 31 | Faker faker = Faker.instance(random); 32 | 33 | long startTime = System.currentTimeMillis(); 34 | 35 | while( iterSeq++ != iterCount ) { 36 | HashMap pMessage = pizzaMessage.produce_msg(faker, random, iterSeq); 37 | ProducerRecord producerRecord = new ProducerRecord<>(topicName, 38 | pMessage.get("key"), pMessage.get("message")); 39 | sendMessage(kafkaProducer, producerRecord, pMessage, sync); 40 | 41 | if((intervalCount > 0) && (iterSeq % intervalCount == 0)) { 42 | try { 43 | logger.info("####### IntervalCount:" + intervalCount + 44 | " intervalMillis:" + intervalMillis + " #########"); 45 | Thread.sleep(intervalMillis); 46 | } catch (InterruptedException e) { 47 | logger.error(e.getMessage()); 48 | } 49 | } 50 | 51 | if(interIntervalMillis > 0) { 52 | try { 53 | logger.info("interIntervalMillis:" + interIntervalMillis); 54 | Thread.sleep(interIntervalMillis); 55 | } catch (InterruptedException e) { 56 | logger.error(e.getMessage()); 57 | } 58 | } 59 | 60 | } 61 | long endTime = System.currentTimeMillis(); 62 | long timeElapsed = endTime - startTime; 63 | 64 | logger.info("{} millisecond elapsed for {} iterations", timeElapsed, iterCount); 65 | 66 | } 67 | 68 | public static void sendMessage(KafkaProducer kafkaProducer, 69 | ProducerRecord producerRecord, 70 | HashMap pMessage, boolean sync) { 71 | if(!sync) { 72 | kafkaProducer.send(producerRecord, (metadata, exception) -> { 73 | if (exception == null) { 74 | logger.info("async message:" + pMessage.get("key") + " partition:" + metadata.partition() + 75 | " offset:" + metadata.offset()); 76 | } else { 77 | logger.error("exception error from broker " + exception.getMessage()); 78 | } 79 | }); 80 | } else { 81 | try { 82 | RecordMetadata metadata = kafkaProducer.send(producerRecord).get(); 83 | logger.info("sync message:" + pMessage.get("key") + " partition:" + metadata.partition() + 84 | " offset:" + metadata.offset()); 85 | } catch (ExecutionException e) { 86 | logger.error(e.getMessage()); 87 | } catch (InterruptedException e) { 88 | logger.error(e.getMessage()); 89 | } 90 | } 91 | 92 | } 93 | 94 | public static void main(String[] args) { 95 | 96 | String topicName = "pizza-topic-partitioner"; 97 | 98 | //KafkaProducer configuration setting 99 | // null, "hello world" 100 | 101 | Properties props = new Properties(); 102 | props.setProperty(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "192.168.56.101:9092"); 103 | props.setProperty(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName()); 104 | props.setProperty(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName()); 105 | props.setProperty("specialKey", "P001"); 106 | // partitioner.class에 CustomPartitioner 클래스를 등록함 107 | //props.setProperty("partitioner.class", "com.example.kafka.CustomPartitioner"); 108 | props.setProperty(ProducerConfig.PARTITIONER_CLASS_CONFIG, "com.example.kafka.CustomPartitioner"); 109 | 110 | //KafkaProducer object creation 111 | KafkaProducer kafkaProducer = new KafkaProducer(props); 112 | 113 | sendPizzaMessage(kafkaProducer, topicName, 114 | -1, 100, 0, 0, false); 115 | 116 | kafkaProducer.close(); 117 | 118 | } 119 | } -------------------------------------------------------------------------------- /producers/src/main/java/com/example/kafka/ProducerASyncCustomCB.java: -------------------------------------------------------------------------------- 1 | package com.example.kafka; 2 | 3 | import org.apache.kafka.clients.producer.KafkaProducer; 4 | import org.apache.kafka.clients.producer.ProducerConfig; 5 | import org.apache.kafka.clients.producer.ProducerRecord; 6 | import org.apache.kafka.common.serialization.IntegerSerializer; 7 | import org.apache.kafka.common.serialization.StringSerializer; 8 | import org.slf4j.Logger; 9 | import org.slf4j.LoggerFactory; 10 | 11 | import java.util.Properties; 12 | 13 | public class ProducerASyncCustomCB { 14 | public static final Logger logger = LoggerFactory.getLogger(ProducerASyncCustomCB.class.getName()); 15 | public static void main(String[] args) { 16 | 17 | String topicName = "multipart-topic"; 18 | 19 | //KafkaProducer configuration setting 20 | // null, "hello world" 21 | 22 | Properties props = new Properties(); 23 | //bootstrap.servers, key.serializer.class, value.serializer.class 24 | //props.setProperty("bootstrap.servers", "192.168.56.101:9092"); 25 | props.setProperty(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "192.168.56.101:9092"); 26 | props.setProperty(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, IntegerSerializer.class.getName()); 27 | props.setProperty(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName()); 28 | 29 | //KafkaProducer object creation 30 | KafkaProducer kafkaProducer = new KafkaProducer(props); 31 | 32 | for(int seq=0; seq < 20; seq++) { 33 | //ProducerRecord object creation 34 | ProducerRecord producerRecord = new ProducerRecord<>(topicName, seq,"hello world " + seq); 35 | CustomCallback callback = new CustomCallback(seq); 36 | //logger.info("seq:" + seq); 37 | //kafkaProducer message send 38 | kafkaProducer.send(producerRecord, callback); 39 | } 40 | 41 | try { 42 | Thread.sleep(3000); 43 | } catch (InterruptedException e) { 44 | e.printStackTrace(); 45 | } 46 | 47 | kafkaProducer.close(); 48 | 49 | } 50 | } -------------------------------------------------------------------------------- /producers/src/main/java/com/example/kafka/ProducerASyncWithKey.java: -------------------------------------------------------------------------------- 1 | package com.example.kafka; 2 | 3 | import org.apache.kafka.clients.producer.KafkaProducer; 4 | import org.apache.kafka.clients.producer.ProducerConfig; 5 | import org.apache.kafka.clients.producer.ProducerRecord; 6 | import org.apache.kafka.common.serialization.StringSerializer; 7 | import org.slf4j.Logger; 8 | import org.slf4j.LoggerFactory; 9 | 10 | import java.util.Properties; 11 | 12 | public class ProducerASyncWithKey { 13 | public static final Logger logger = LoggerFactory.getLogger(ProducerASyncWithKey.class.getName()); 14 | public static void main(String[] args) { 15 | 16 | String topicName = "multipart-topic"; 17 | 18 | //KafkaProducer configuration setting 19 | // null, "hello world" 20 | 21 | Properties props = new Properties(); 22 | //bootstrap.servers, key.serializer.class, value.serializer.class 23 | //props.setProperty("bootstrap.servers", "192.168.56.101:9092"); 24 | props.setProperty(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "192.168.56.101:9092"); 25 | props.setProperty(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName()); 26 | props.setProperty(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName()); 27 | 28 | //KafkaProducer object creation 29 | KafkaProducer kafkaProducer = new KafkaProducer(props); 30 | 31 | for(int seq=0; seq < 20; seq++) { 32 | //ProducerRecord object creation 33 | ProducerRecord producerRecord = new ProducerRecord<>(topicName, String.valueOf(seq),"hello world " + seq); 34 | logger.info("seq:" + seq); 35 | //kafkaProducer message send 36 | kafkaProducer.send(producerRecord, (metadata, exception) -> { 37 | if (exception == null) { 38 | logger.info("\n ###### record metadata received ##### \n" + 39 | "partition:" + metadata.partition() + "\n" + 40 | "offset:" + metadata.offset() + "\n" + 41 | "timestamp:" + metadata.timestamp()); 42 | } else { 43 | logger.error("exception error from broker " + exception.getMessage()); 44 | } 45 | }); 46 | } 47 | 48 | try { 49 | Thread.sleep(3000); 50 | } catch (InterruptedException e) { 51 | e.printStackTrace(); 52 | } 53 | 54 | kafkaProducer.close(); 55 | 56 | } 57 | } -------------------------------------------------------------------------------- /producers/src/main/java/com/example/kafka/SimpleProducer.java: -------------------------------------------------------------------------------- 1 | package com.example.kafka; 2 | 3 | import org.apache.kafka.clients.producer.KafkaProducer; 4 | import org.apache.kafka.clients.producer.ProducerConfig; 5 | import org.apache.kafka.clients.producer.ProducerRecord; 6 | import org.apache.kafka.common.serialization.StringSerializer; 7 | 8 | import java.util.Properties; 9 | 10 | public class SimpleProducer { 11 | public static void main(String[] args) { 12 | 13 | String topicName = "simple-topic"; 14 | 15 | //KafkaProducer configuration setting 16 | // null, "hello world" 17 | 18 | Properties props = new Properties(); 19 | //bootstrap.servers, key.serializer.class, value.serializer.class 20 | //props.setProperty("bootstrap.servers", "192.168.56.101:9092"); 21 | props.setProperty(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "192.168.56.101:9092"); 22 | props.setProperty(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName()); 23 | props.setProperty(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName()); 24 | 25 | //KafkaProducer object creation 26 | KafkaProducer kafkaProducer = new KafkaProducer(props); 27 | 28 | //ProducerRecord object creation 29 | ProducerRecord producerRecord = new ProducerRecord<>(topicName,"hello world 2"); 30 | 31 | //KafkaProducer message send 32 | kafkaProducer.send(producerRecord); 33 | 34 | 35 | kafkaProducer.flush(); 36 | kafkaProducer.close(); 37 | } 38 | 39 | } 40 | -------------------------------------------------------------------------------- /producers/src/main/java/com/example/kafka/SimpleProducerASync.java: -------------------------------------------------------------------------------- 1 | package com.example.kafka; 2 | 3 | import org.apache.kafka.clients.producer.*; 4 | import org.apache.kafka.common.serialization.StringSerializer; 5 | import org.slf4j.Logger; 6 | import org.slf4j.LoggerFactory; 7 | 8 | import java.util.Properties; 9 | 10 | public class SimpleProducerASync { 11 | public static final Logger logger = LoggerFactory.getLogger(SimpleProducerASync.class.getName()); 12 | public static void main(String[] args) { 13 | 14 | String topicName = "simple-topic"; 15 | 16 | //KafkaProducer configuration setting 17 | // null, "hello world" 18 | 19 | Properties props = new Properties(); 20 | //bootstrap.servers, key.serializer.class, value.serializer.class 21 | //props.setProperty("bootstrap.servers", "192.168.56.101:9092"); 22 | props.setProperty(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "192.168.56.101:9092"); 23 | props.setProperty(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName()); 24 | props.setProperty(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName()); 25 | 26 | //KafkaProducer object creation 27 | KafkaProducer kafkaProducer = new KafkaProducer(props); 28 | 29 | //ProducerRecord object creation 30 | ProducerRecord producerRecord = new ProducerRecord<>(topicName, "hello world 2"); 31 | 32 | //kafkaProducer message send 33 | kafkaProducer.send(producerRecord, (metadata, exception)-> { 34 | if (exception == null) { 35 | logger.info("\n ###### record metadata received ##### \n" + 36 | "partition:" + metadata.partition() + "\n" + 37 | "offset:" + metadata.offset() + "\n" + 38 | "timestamp:" + metadata.timestamp()); 39 | } else { 40 | logger.error("exception error from broker " + exception.getMessage()); 41 | } 42 | }); 43 | 44 | try { 45 | Thread.sleep(3000); 46 | } catch (InterruptedException e) { 47 | e.printStackTrace(); 48 | } 49 | 50 | kafkaProducer.close(); 51 | 52 | } 53 | } -------------------------------------------------------------------------------- /producers/src/main/java/com/example/kafka/SimpleProducerSync.java: -------------------------------------------------------------------------------- 1 | package com.example.kafka; 2 | 3 | import org.apache.kafka.clients.producer.*; 4 | import org.apache.kafka.common.serialization.StringSerializer; 5 | import org.slf4j.Logger; 6 | import org.slf4j.LoggerFactory; 7 | 8 | import java.util.Properties; 9 | import java.util.concurrent.ExecutionException; 10 | 11 | public class SimpleProducerSync { 12 | public static final Logger logger = LoggerFactory.getLogger(SimpleProducerSync.class.getName()); 13 | public static void main(String[] args) { 14 | 15 | String topicName = "simple-topic"; 16 | 17 | //KafkaProducer configuration setting 18 | // null, "hello world" 19 | 20 | Properties props = new Properties(); 21 | //bootstrap.servers, key.serializer.class, value.serializer.class 22 | //props.setProperty("bootstrap.servers", "192.168.56.101:9092"); 23 | props.setProperty(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "192.168.56.101:9092"); 24 | props.setProperty(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName()); 25 | props.setProperty(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName()); 26 | 27 | //KafkaProducer object creation 28 | KafkaProducer kafkaProducer = new KafkaProducer(props); 29 | 30 | //ProducerRecord object creation 31 | ProducerRecord producerRecord = new ProducerRecord<>(topicName, "hello world 2"); 32 | 33 | //kafkaProducer message send 34 | try { 35 | RecordMetadata recordMetadata = kafkaProducer.send(producerRecord).get(); 36 | logger.info("\n ###### record metadata received ##### \n" + 37 | "partition:" + recordMetadata.partition() +"\n" + 38 | "offset:" + recordMetadata.offset() + "\n" + 39 | "timestamp:" + recordMetadata.timestamp()); 40 | } catch (ExecutionException e) { 41 | e.printStackTrace(); 42 | } catch (InterruptedException e) { 43 | e.printStackTrace(); 44 | } finally { 45 | kafkaProducer.close(); 46 | } 47 | 48 | } 49 | } --------------------------------------------------------------------------------