You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							43 lines
						
					
					
						
							1.2 KiB
						
					
					
				
			
		
		
		
			
			
			
		
		
	
	
							43 lines
						
					
					
						
							1.2 KiB
						
					
					
				
								package pub_balancer
							 | 
						|
								
							 | 
						|
								/*
							 | 
						|
								Sequence of operations to ensure ordering
							 | 
						|
								
							 | 
						|
								Assuming Publisher P10 is publishing to Topic Partition TP10, and Subscriber S10 is subscribing to Topic TP10.
							 | 
						|
								After splitting Topic TP10 into Topic Partition TP11 and Topic Partition TP21,
							 | 
						|
								Publisher P11 is publishing to Topic Partition TP11, and Publisher P21 is publishing to Topic Partition TP21.
							 | 
						|
								Subscriber S12 is subscribing to Topic Partition TP11, and Subscriber S21 is subscribing to Topic Partition TP21.
							 | 
						|
								
							 | 
						|
								(The last digit is ephoch generation number, which is increasing when the topic partitioning is changed.)
							 | 
						|
								
							 | 
						|
								The diagram is as follows:
							 | 
						|
								P10 -> TP10 -> S10
							 | 
						|
								   ||
							 | 
						|
								   \/
							 | 
						|
								P11 -> TP11 -> S11
							 | 
						|
								P21 -> TP21 -> S21
							 | 
						|
								
							 | 
						|
								The following is the sequence of events:
							 | 
						|
								1. Create Topic Partition TP11 and TP21
							 | 
						|
								2. Close Publisher(s) P10
							 | 
						|
								3. Close Subscriber(s) S10
							 | 
						|
								4. Close Topic Partition TP10
							 | 
						|
								5. Start Publisher P11, P21
							 | 
						|
								6. Start Subscriber S11, S21
							 | 
						|
								
							 | 
						|
								The dependency is as follows:
							 | 
						|
								          2  => 3  => 4
							 | 
						|
								          |     |
							 | 
						|
								          v     v
							 | 
						|
								    1 => (5  |  6)
							 | 
						|
								
							 | 
						|
								And also:
							 | 
						|
								2 => 5
							 | 
						|
								3 => 6
							 | 
						|
								
							 | 
						|
								For brokers:
							 | 
						|
								1. Close all publishers for a topic partition
							 | 
						|
								2. Close all subscribers for a topic partition
							 | 
						|
								3. Close the topic partition
							 | 
						|
								
							 | 
						|
								*/
							 |