Spring Framework/โ˜๏ธ Spring Cloud

[Spring Cloud] ๋ฐ์ดํ„ฐ ๋™๊ธฐํ™”๋ฅผ ์œ„ํ•œ Apache Kafka ํ™œ์šฉ

soogoori 2024. 1. 3. 11:26

 

Apache Kafka 

 

 

 

๋ฐ์ดํ„ฐ ๋™๊ธฐํ™” Orders โž” Catalogs

 

  • Order Service์— ์š”์ฒญ๋œ ์ฃผ๋ฌธ ์ˆ˜๋Ÿ‰ ์ •๋ณด๋ฅผ Catalog Service์— ๋ฐ˜์˜
  • Order Service์—์„œ Kafka Topic์œผ๋กœ ๋ฉ”์‹œ์ง€ ์ „์†ก โž” Producer
  • Catalog Service์—์„œ Kafka Topic์— ์ „์†ก๋œ ๋ฉ”์‹œ์ง€ ์ทจ๋“ โž” Consumer

 

 

Order-Service์™€ Catalog-Service์— Kafka ๊ธฐ๋Šฅ ๊ตฌํ˜„ ์ถ”๊ฐ€ 

 

  • ZooKeeperServer์™€ KafkaServer ๊ธฐ๋™ + Eureka Server (discovery-service) ์‹คํ–‰ 

 

  • config-service, apigateway-service, order-service, catalog-service ์‹คํ–‰

์ˆ˜๋Ÿ‰ ๋ฐ์ดํ„ฐ ์—…๋ฐ์ดํŠธ ์™„๋ฃŒ 

 

 

Multiple Order Service์—์„œ์˜ ๋ฐ์ดํ„ฐ ๋™๊ธฐํ™” ๋ฌธ์ œ  ๐Ÿ‘‰ Kafka Connect๋กœ ํ•ด๊ฒฐ

๋งŒ์•ฝ Order-Service๊ฐ€ 2๊ฐœ ๊ธฐ๋™๋˜์—ˆ๋‹ค๋ฉด user์˜ ์š”์ฒญ์„ ๋ถ„์‚ฐ ์ฒ˜๋ฆฌํ•˜๊ฒŒ ๋œ๋‹ค.

๊ทธ๋Ÿฌ๋ฉด orders ๋ฐ์ดํ„ฐ๋„ ๋ถ„์‚ฐ ์ €์žฅ๋˜์–ด ๋™๊ธฐํ™” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. 

์ด ๋ฌธ์ œ๋ฅผ Kafka Connect๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋‹จ์ผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ๋งŒ๋“ค์–ด์„œ ํ•ด๊ฒฐํ•˜๋ฉด ๋œ๋‹ค. 

 

order-service๋ฅผ ๊ฐ๊ฐ ์‹คํ–‰ํ–ˆ์„ ๋•Œ ๋…๋ฆฝ์ ์ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ฐ–๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ฃผ๋ฌธํ•œ ๋‚ด์—ญ์ด ๋ถ„์‚ฐ๋˜์–ด ์ €์žฅ๋˜์—ˆ๋‹ค. 

 

๐Ÿ’ก ํ•ด๊ฒฐ๋ฐฉ๋ฒ• ์ •๋ฆฌ 

๐Ÿ‘‰ order-service์— ์š”์ฒญ๋œ ์ฃผ๋ฌธ ์ •๋ณด๋ฅผ DB๊ฐ€ ์•„๋‹ˆ๋ผ Kafka Topic์œผ๋กœ ์ „์†กํ•œ๋‹ค. โž” Kafka Source Connect๊ฐ€ ์ „์†ก
๐Ÿ‘‰ Kafka Topic์— ์„ค์ •๋œ Kafka Sink Connect๋ฅผ ์‚ฌ์šฉํ•ด ๋‹จ์ผ DB์— ์ €์žฅํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๋™๊ธฐํ™”ํ•œ๋‹ค. 

๐Ÿ”น order-service์—์„œ ๋‹จ์ผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๊ฐ€์ง€๊ณ  ์žˆ๋˜ ๋‚ด์šฉ ์ œ๊ฑฐ โž” order-service์— ์ „๋‹ฌ๋˜์—ˆ๋˜ ๋ฉ”์‹œ์ง€ ๊ฐ’์„ Message Queuing Server์— ์ „๋‹ฌ โž” Sink Connect์— ์˜ํ•ด ๋‹จ์ผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์žˆ๋Š” ๊ฐ’์„ RDB์— ๋ชฐ์•„ ๋„ฃ๊ธฐ

 

 

H2 DB โž” MariaDB๋กœ ๋ณ€๊ฒฝ 

 

 

kafka connect

 

 

๋‹จ์ผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ๋˜์–ด ์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.