เพื่อนๆ เคยปวดหัวกับ Request เยอะๆ จนทำให้ระบบล่มกันมั้ย? หากเคยเป็นแบบนี้แอดขอแนะนำให้รู้จัก Kafka 👏
.
📚 Kafka เป็น Distributed message queue สร้างขึ้นโดย LinkedIn เป็น Open Source ซึ่งเป็น ลองนึกภาพตามง่ายๆ หากระบบของเรามีผู้เข้าใช้งาน 1,000,000 คนภายในไม่กี่นาทีมันก็จะทำให้เกิดปัญหาตามมามากมาย ไม่ว่าจะเป็น Data lost บ้าง ระบบล่มบ้าง ทำให้แตกกันไปข้างนึงเลยจ้ะพี่จ๋า555
.
✨ Kafka ก็จะมาช่วยแก้ปัญหาตรงนี้ ด้วยการจัดการ queue ให้เข้ามาทีละ request และเมื่อพร้อมก็ค่อยเรียกใช้งานแบบ asynchronous การใช้งานจริงๆ มันจะทำเรื่องนี้ได้ไวมากๆ เลยนะ ทีนี้จะกี่ request ก็ไม่มีดราม่า...เพราะเรามี Kafka นั่นเอง!!
.
📍 การทำงานของ Kafka มีดังนี้
.
✏️1) Producer - จะทำการส่ง Message ไปหา Kafka Server ในรูปแบบของ Array โดยทีละ record
.
✏️2) Consumer - จะทำการรับ Message จาก Kafka Server ที่ Producer ส่งมาและนำไปประมวลผลต่อ
.
✏️3) Kafka Server หรือ Broker เป็นตัวกลางในการ Exchange message โดยจะมี Zookeeper เป็นผู้ควบคุม
.
✏️4) Cluster เป็นกลุ่มของคอมพิวเตอร์ที่ทำงานร่วมกัน หรือ Multiple Broker ในเมื่อ Producer มีหลายอัน ก็ต้องมีหลายๆ Broker ด้วยนะ เวลารับ-ส่ง Message จะได้ไม่ติดขัด
.
✏️5) Topic เป็นที่เก็บชื่อ หรือ Key ทำให้ Kafka Server รู้ว่า Message ด้านในคืออะไร
.
✏️6) Partitions เนื่องจากเวลารับส่งข้อมูล อาจจะมีข้อมูลที่ใหญ่มาก Partitions ก็จะทำการแบ่งข้อมูลเป็นส่วนๆ เพื่อให้ Server รับไหว
.
✏️7) Offset เป็น Sequence id ของ Partitions เมื่อรับ-ส่งข้อมูลจะได้รู้ว่าข้อมูลไหนมาถึงก่อน
.
✏️8) Consumer Groups ก็คือกลุ่มของ Consumer นั่นแหละซึ่งจะช่วยกันทำงานรับข้อมูลจากหลายๆ Producer มาประมวลผลต่อก่อนจะส่งให้ Data Center
.
💥 เพื่อนๆ คนไหนอยากลองใช้งาน Kafka สามารถกดลิงค์นี้ไปลองใช้งานได้เลย >> https://docs.confluent.io/clients-confluent-kafka-python/current/overview.html
.
borntoDev - 🦖 สร้างการเรียนรู้ที่ดีสำหรับสายไอทีในทุกวัน
python kafka 在 BorntoDev Facebook 八卦
👨💻 เนื่องจากในปัจจุบันงานด้าน Data Engineer เป็นงานที่เติบโตเร็วที่สุดในปี 2020 อีกทั้งยังมีค่าตอบแทนที่สูงมากๆ จึงทำให้ผู้คนสนใจที่จะทำงานด้านนี้มากยิ่งขึ้น!!
.
ไหนใครอยากทำงานด้านนี้บ้าง ขอเสียงหน่อยยย 🖐
.
📚 สำหรับเพื่อนๆ คนไหนที่กำลังอยากจะทำงานด้าน Data Engineer วันนี้แอดจะมานำเสนอ 3 โปรเจคเจ๋งๆ สำหรับเพื่อนๆ ที่อยากฝึกสกิลในการเป็น Data Engineer เพื่อให้เพื่อนๆ ได้ศึกษาและลองทำตามกัน!
.
📍 Scrape Stock And Twitter Data Using Python, Kafka and Spark
ในปัจจุบันผู้คนเริ่มหันมาสนใจในหุ้นมากขึ้น ซึ่งเป็นช่วงเวลาที่ดีมากในการพัฒนาโปรเจคเกี่ยวกับหุ้น ซึ่งโปรเจคนี้จะเป็นการรวบรวมข้อมูลจากสื่อต่างๆ เพื่อคาดการณ์ว่าผู้คนรู้สึกอย่างไรบ้างเกี่ยวกับหุ้นบางตัวแบบเรียลไทม์ ซึ่งจะเป็นประโยชน์การตัดสินใจเลือกซื้อหุ้นที่ต้องการได้
.
ใครสนใจโปรเจคนี้กดลิงค์นี้ไปทำกันเลย >> https://github.com/shafiab/HashtagCashtag
.
📍 Scrape Real-Estate Properties With Python And Create A Dashboard
โปรเจคที่จะช่วยให้เพิ่มประสิทธิภาพในการเลือกบ้าน/อสังหาริมทรัพย์สำหรับผู้ที่สนใจ ซึ่งมีเทคโนโลยีและเครื่องมือที่ใช้ในการพัฒนาโปรเจคเช่น Beautiful Soup, Python ฯลฯ ซึ่งเป็นโปรเจคที่ดีมากในการเรียนรู้การ Scrap Data
.
เพื่อนๆ คนไหนสนใจโปรเจคนี้ก็กดลิงค์ไปทำตามกันเลย >> https://www.sspaeti.com/blog/data-engineering-project-in-twenty-minutes/
.
📍 Scraping Inflation Data And Developing A Model With Data From CommonCrawl
เป็นอีกโปรเจคนึงที่น่าสนใจเลยทีเดียว ซึ่งจะใช้การติดตามการเปลี่ยนแปลงราคาของร้านค้าและบริการออนไลน์เพื่อนำข้อมูลมาวัดอัตราเงินเฟ้อ
.
ไปทำตามกันโลด >> https://github.com/uhussain/WebCrawlerForOnlineInflation
.
แอดหวังว่า 3 โปรเจคนี้จะเป็นประโยชน์กับเพื่อนๆ ไม่มากก็น้อยน้าา ❤️
.
borntoDev - 🦖 สร้างการเรียนรู้ที่ดีสำหรับสายไอทีในทุกวัน
python kafka 在 矽谷牛的耕田筆記 Facebook 八卦
今天這篇文章探討的是 Uber 內部的架構以及系統設計。
Uber 最初是使用 Python 作為開發語言,並且基於 monolithic 的架構來開發前後端。 2014 之後,Uber 將架構給轉移到 service-oriented 的架構。
Uber 的業務(Taxi,Eats)基本上是一種 Demand <---> Supply 邏輯的業務,以叫車服務就是如何將叫車的使用者與開車的司機給媒合。基於業務可以分類出系統需要兩個服務,分別是
Deman 服務以及 Supply 服務。
這兩個服務會串接系統內的 DISCO(Dispatch Optimization), 該服務基於 Map&Location 等資料來進行處理,但是這兩種資料搭配經緯度要處理實在麻煩,因此該服務使用 Google S2 函式庫來處理。
文章中介紹非常多 DISCO 如何處理地點相關的資料,如何有效率地幫司機跟使用者給媒合,有興趣的可以
點選原文閱讀。
除了媒合系統外,文章中還介紹了如何處理 Payment fraud 這類型的問題,全文非常長,有興趣的可以細讀
而這邊列出文章提到的各種專案
1. PostgreSQL -> MySQL (文章中有另外一篇連結探討為什麼轉移)
2. RDBMS/HDFS
3. KAFKA
https://medium.com/nerd-for-tech/uber-architecture-and-system-design-e8ac26690dfc
python kafka 在 Kafka with Python - YouTube 的八卦
... <看更多>