강의

멘토링

로드맵

Programming

/

Back-end

Xây dựng stateful service cho Daeyongrang Chat TPS

Chúng tôi sẽ cho bạn biết mọi thứ về các dịch vụ có trạng thái như Chijijik và Afreeca TV, cách xây dựng máy chủ và đảm bảo phân phối không bị gián đoạn.

(4.4) 16 đánh giá

411 học viên

  • July
카프카
대용량트래픽
tps
웹소켓
Go
Kafka
Node.js
MySQL
websockets

Đánh giá từ những học viên đầu tiên

Dịch cái này sang tiếng Việt

  • Mẫu xuất bản/đăng ký với Kafka

  • Quản lý dữ liệu với MySQL

  • Trò chuyện Daeyongrang Xử lý TPS thông qua giao tiếp WSS

  • Quản lý máy chủ thông qua truyền phát sự kiện

Xây dựng dịch vụ có trạng thái bằng Kafka và MySQL tại Naver (Chijijik) 😘


Trong bài giảng này, bạn sẽ tìm hiểu cách quản lý và phát triển các dịch vụ có trạng thái cho TPS trò chuyện được sử dụng trên các nền tảng phát trực tuyến ( Chijijik , AfreecaTV , Discord , Twitch ) .


Khóa học này sử dụng hai ngôn ngữ.

Trước tiên, chúng ta hãy tìm hiểu cách triển khai mọi thứ bằng Golang.

Đối với những người sẽ tham gia khóa học trong tương lai, các bài giảng được cấu trúc bằng nhiều ngôn ngữ khác nhau, chẳng hạn như cách sử dụng Kafka trong Node.JS, ngôn ngữ quen thuộc hơn một chút .


Ngoài ra, các bài giảng còn đề cập đến nhiều chủ đề mà bạn có thể chưa từng trải nghiệm trước đây, chẳng hạn như các mẫu xuất bản/đăng ký thông qua Kafka và quản lý dữ liệu thông qua MySQL .


Sau khi tham gia khóa học này, bạn sẽ có được hiểu biết sâu sắc về Kafka và MySQL , đồng thời tìm hiểu cách triển khai không thời gian chết cho các dịch vụ có trạng thái .

Sự khác biệt giữa Stateful và Stateless là gì? 🫣

Bạn đã bao giờ nghĩ về cấu trúc cơ bản của một máy chủ, chứ không chỉ là kiến trúc MVC đơn giản hay kiến trúc Service-Repository chưa?


Trên thực tế, tùy thuộc vào loại máy chủ, người ta sẽ quyết định có nên thực hiện Triển khai không thời gian chết hay cho phép một lượng thử lại nhất định hay không.

Máy chủ bạn phát triển sẽ bắt đầu được phát triển bằng cách áp dụng một trong hai khái niệm này.

Hãy nghĩ về nó như một máy chủ HTTP thông thường.

Bởi vì nó không duy trì trạng thái, nên rất dễ mở rộng và nếu bạn đang phát triển một máy chủ nói chung,

Về cơ bản, nó được cấu hình như một máy chủ không trạng thái.


Bạn có thể coi đây là dạng máy chủ đại diện nhất.

Đây là loại máy chủ không dễ truy cập.


Trong cấu trúc của máy chủ này, quá trình phát triển được thực hiện bằng giao thức ws.

Vì nó duy trì trạng thái nên rất bất lợi cho việc mở rộng, nhưng vì nó duy trì kết nối nên nó giúp tiết kiệm tài nguyên.


Đây là loại máy chủ mà chúng ta sẽ chủ yếu đề cập trong bài giảng này.

Trong bài giảng này, chúng ta sẽ đề cập đến cả trường hợp có trạng thái và không có trạng thái. 💁

Tôi có thể đảm bảo với bạn rằng bài giảng này không phải là thứ bạn có thể dễ dàng tìm thấy.


Thông qua hai loại phát triển máy chủ, bạn có thể học cách xử lý TPS trò chuyện dung lượng lớn bằng MySQL và Socket , cũng như cách vận hành Triển khai không thời gian chết bằng Kafka .

Triển khai không thời gian chết là gì? 🙋‍♂

Trong phần giới thiệu ở trên, tôi đã sử dụng thuật ngữ đó thường xuyên.

Bản dịch trực tiếp sẽ là: phân phối không bị gián đoạn .


Bạn đã bao giờ gặp phải tình huống nền tảng phát trực tuyến đột nhiên không khả dụng hoặc ngừng hoạt động chưa?

Theo quan điểm của người dùng, Triển khai không thời gian chết có nghĩa là việc triển khai được thực hiện mà không ảnh hưởng đến trang web, do đó người dùng không biết việc triển khai có đang diễn ra hay không.

Phương pháp này có thể được triển khai rất dễ dàng trong các dịch vụ không trạng thái.

Tuy nhiên, trong một dịch vụ có trạng thái duy trì trạng thái của máy chủ, đây là một nhiệm vụ rất khó khăn và tốn nhiều tài nguyên.


Trong bài giảng này, chúng ta sẽ tìm hiểu cách triển khai không có thời gian chết bằng cách sử dụng Kafka cho các dịch vụ có trạng thái .

Tại sao lại là Kafka 😯

Kafka là một công cụ phát trực tuyến dựa trên sự kiện thường được sử dụng trong các mẫu xuất bản/đăng ký.


Trên thực tế, đây là dịch vụ được LinkedIn phát triển và giới thiệu, và nhiều công ty đang giới thiệu Kafka để xử lý dữ liệu mà không làm mất tin nhắn về các sự kiện.

  • Điều quan trọng nhất mà sinh viên cần ghi nhớ nhiều công ty lớn sử dụng Kafka làm điều kiện tiên quyết, vì vậy điều này sẽ rất hữu ích.


Trong bài giảng này, chúng tôi sẽ hướng dẫn bạn cách thiết lập và xây dựng môi trường Kafka trên môi trường cục bộ của bạn cũng như cách sử dụng nó.

Học những điều này nhé. 🤔

1⃣ Mô hình hóa Pub/Sub với Kafka

Khóa học này bao gồm mọi thứ , từ thiết lập cấu hình Kafka đến khởi động Broker và Zookeeper. Thông qua khóa học này, bạn sẽ học cách phát triển dịch vụ sử dụng Kafka, cùng với các biện pháp phòng ngừa cần thực hiện.

2⃣ Quản lý dữ liệu dịch vụ thông qua thiết kế lược đồ MySQL

Bạn sẽ học cách quản lý dữ liệu cho giao tiếp socket và phòng chat bằng MySQL, một hệ thống dễ sử dụng để xây dựng dịch vụ. Bạn cũng sẽ học cách viết các truy vấn như ORDER BY và Paging , cũng như cách xây dựng máy chủ.

3⃣ Giao tiếp giữa các máy chủ đạt được bằng cách xây dựng bốn máy chủ

Thay vì chỉ xây dựng một máy chủ duy nhất, bạn có thể gián tiếp trải nghiệm Load Balancer thông qua nhiều tác vụ máy chủ, chẳng hạn như cấu hình nhiều máy chủ khác nhau và xây dựng máy chủ Controller để quản lý các máy chủ đó, và bạn có thể trải nghiệm các phương thức giao tiếp giữa các máy chủ bằng cách sử dụng Mô hình hóa Pub/Sub của Kafka .

Tôi sẽ cố gắng thực hiện điều gì đó tương tự như thế này. 🤔

Cách chạy Kafka trong môi trường cục bộ

Quản lý phòng chat và dữ liệu chat bằng MySQL

Xử lý dữ liệu DB thông qua giao tiếp websockets

Sử dụng Kafka và Quản lý Máy chủ bằng Node.js và Go

Những điều cần lưu ý trước khi tham gia khóa học

Môi trường thực hành

  • Hệ điều hành và Phiên bản (OS): Hỗ trợ tất cả các hệ điều hành, bao gồm Windows, macOS và Linux.


  • Thông số kỹ thuật của PC: PC có thông số kỹ thuật cơ bản có khả năng truy cập Internet

Đừng quên xem video miễn phí này! Video có thông tin về các dịch vụ bạn sẽ học và triển khai trong khóa học này.

Phần này rất quan trọng! 😯

Bài giảng này là phần tiếp theo của bài giảng trước và đề cập đến việc xây dựng dịch vụ bổ sung, quản lý dữ liệu và phân phối.

Vì vậy, bài giảng sẽ tiếp tục dựa trên bài giảng trước.

Mặc dù lời giải thích về mã nguồn được đề cập trong bài giảng trước khá đơn giản, nhưng những người nghe lần đầu có thể sẽ rất bối rối.


Vì vậy, nếu bạn không có bất kỳ kiến thức nào về giao tiếp WSS hoặc máy chủ trò chuyện, tôi nghĩ bạn sẽ không gặp nhiều khó khăn khi tham gia khóa học nếu bạn học khóa học này trước.

Mục tiêu của bài giảng này không phải là phát triển FE mà là về giao thức ws. Chúng tôi tập trung vào kiến trúc triển khai không thời gian chết và phát triển máy chủ .


Bởi vì tôi không phải là một nhà phát triển chuyên về FE, mà là một nhà phát triển chuyên về BE. Vì vậy, tôi lo ngại rằng kiến thức không chính xác có thể được truyền sang bộ phận phát triển FE, do đó, bộ phận phát triển FE chỉ xử lý API cho một máy chủ duy nhất.


Do đó, bài giảng này sẽ không đề cập đến việc quản lý trạng thái React cho các triển khai không có thời gian chết bổ sung . Phần này được đề cập liên tục trong bài giảng, vì vậy vui lòng tham khảo thêm.

Khuyến nghị cho
những người này

Khóa học này dành cho ai?

  • Bất kỳ ai quan tâm đến mẫu xuất bản/đăng ký

  • Bất kỳ ai tò mò về việc xây dựng nền tảng phát trực tuyến

  • Bất cứ ai tò mò về quản lý dữ liệu trò chuyện

  • Những người muốn thử sự phát triển mới và thú vị hơn là phương pháp phát triển tiêu chuẩn

  • Bất cứ ai muốn học MySQL và Kafka từ các học viên

Cần biết trước khi bắt đầu?

  • Golang [Đây là ngôn ngữ mặc định cho khóa học. Không sao nếu bạn không biết. ]

  • Node.Js [Đây là ngôn ngữ dành cho sinh viên. Không sao nếu bạn không biết.]

Xin chào
Đây là

3,586

Học viên

169

Đánh giá

88

Trả lời

4.5

Xếp hạng

15

Các khóa học

자기 소개

비전공자 출신으로 판교에서 플랫폼 서버 개발을 담당하여 진행하고 있습니다.

서버 최적화와 다양한 쿼리 튜닝을 좋아합니다.

 

경력

[前] 샌드박스 블록체인 개발자

[前] 넥슨 자회사 백엔드 개발자

[前] 판교 대기업 플랫폼 서버 개발자

[] 판교 모회사 서버 개발자

Chương trình giảng dạy

Tất cả

31 bài giảng ∙ (3giờ 46phút)

Tài liệu khóa học:

Tài liệu bài giảng
Ngày đăng: 
Cập nhật lần cuối: 

Đánh giá

Tất cả

16 đánh giá

4.4

16 đánh giá

  • ssez13님의 프로필 이미지
    ssez13

    Đánh giá 7

    Đánh giá trung bình 5.0

    5

    29% đã tham gia

    When you mentioned the disadvantages of using ORM, I felt a little stung. I had a bad experience logging while tuning a query recently.. haha I'm enjoying this episode as well. I'm not familiar with Go, so the progress is a bit slower than the first episode, but it's fun to see how it's used! There are only two people working at my company, including me (I'm a full-stack, and one of them is the CEO, and he does all the devops. 😅) Since we're running a small service, I started taking the course because I had a lot of doubts about my skills and was upset for various reasons, but I'm excited again like when I first started studying. I've been thinking a lot about the future lately, but I think it's best to empty your head and study rather than worrying. If I can do it, I'll go watch another lecture :)

    • july
      Giảng viên

      2-person development must be really hard. I'm rooting for you!! I wanted to broaden your perspective by providing various concepts that are not easily accessible. That's why I prepared a lot of lectures like this, and I'm very happy that it was helpful. I think it's a good thing to always have doubts about your skills. I think it's right to approach it with a humble attitude rather than being proud. I'm like that too. ㅎㅎ If you have any concerns or questions outside of the lecture content, feel free to ask. I'm a more humane person than you think. ㅎㅎ I think it's good to talk about various things and solve them together.!! Thank you for listening to the lecture!!

  • kimdh86274님의 프로필 이미지
    kimdh86274

    Đánh giá 5

    Đánh giá trung bình 4.6

    5

    100% đã tham gia

    It was nice to be able to see a server written in go lang

    • koosco님의 프로필 이미지
      koosco

      Đánh giá 11

      Đánh giá trung bình 5.0

      5

      100% đã tham gia

      Thank you for the great lecture.

      • dkskhy327884님의 프로필 이미지
        dkskhy327884

        Đánh giá 3

        Đánh giá trung bình 5.0

        5

        77% đã tham gia

        I watched both parts 1 and 2. I was able to understand the chat server configuration to some extent, and I think it is a good lecture that covers topics that are not commonly covered.

        • july
          Giảng viên

          I don't know what to do with myself... I will repay you with better lectures in the future. Thank you!!

      • hojikas1237295님의 프로필 이미지
        hojikas1237295

        Đánh giá 4

        Đánh giá trung bình 5.0

        5

        61% đã tham gia

        I found this lecture to be very informative and helpful, following the first one.

        • july
          Giảng viên

          Part 2 covered more of the architectural aspects, so I'm not sure if you found it helpful. Thank you for the good review!!

      1.014.669 ₫

      Khóa học khác của July

      Hãy khám phá các khóa học khác của giảng viên!

      Khóa học tương tự

      Khám phá các khóa học khác trong cùng lĩnh vực!