강의

멘토링

커뮤니티

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á

423 học viên

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

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

Bạn sẽ nhận được điều này sau khi học.

  • 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,694

Học viên

178

Đá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

    Tôi rất cảm động khi bạn đề cập đến những nhược điểm của việc sử dụng ORM. Tôi đã từng thử đăng nhập trong khi điều chỉnh một truy vấn và bị sốc... haha. Lần này tôi cũng thấy vui khi xem nó. Tôi không quen với cờ vây nên tiến độ hơi chậm hơn phần đầu tiên, nhưng thật vui khi nghĩ rằng tôi có thể sử dụng nó như thế này! Công ty của tôi chỉ có hai người, trong đó có tôi (tôi là nhân viên full-stack, và một người là CEO, cũng là người đảm nhiệm tất cả các công việc devops. 😅) Vì tôi điều hành một dịch vụ nhỏ... nên tôi có một rất nhiều nghi ngờ về kỹ năng của mình và tôi bối rối vì lý do này hay lý do khác. Tôi bắt đầu tham gia khóa học và tôi vẫn hào hứng như khi mới bắt đầu học. Những ngày này tôi lo lắng rất nhiều về tương lai, nhưng tôi nghĩ tốt nhất là nên đầu óc tỉnh táo và học tập hơn là lo lắng. Nếu tôi hoàn thành nó, tôi sẽ đi xem bài giảng khác :)

    • july
      Giảng viên

      Chắc hẳn không dễ để hai người phát triển được nó. Tôi đang cổ vũ cho bạn!! Tôi muốn mở rộng tầm nhìn của bạn bằng cách cung cấp cho bạn nhiều khái niệm khác nhau mà không dễ gặp phải. Vì vậy tôi đã chuẩn bị rất nhiều cho bài giảng này và tôi rất tự hào vì nó hữu ích. Tôi nghĩ việc luôn nghi ngờ về khả năng của mình là một điều tốt. Tôi nghĩ việc tiếp cận mọi việc với thái độ thấp kém hơn là kiêu ngạo là đúng. Tôi cũng như vậy haha. Nếu bạn có thắc mắc hoặc thắc mắc nào ngoài nội dung bài giảng, vui lòng đặt câu hỏi. Tôi là một người nhân đạo hơn tôi nghĩ, haha. Tôi nghĩ thật tốt khi cùng nhau bàn bạc mọi chuyện và cùng nhau tìm ra giải pháp.!! Cảm ơn các bạn đã nghe bài giảng!!

  • kimdh86274님의 프로필 이미지
    kimdh86274

    Đánh giá 5

    Đánh giá trung bình 4.6

    5

    100% đã tham gia

    Thật vui khi có thể nhìn thấy máy chủ nơi go lang được viết.

    • koosco님의 프로필 이미지
      koosco

      Đánh giá 11

      Đánh giá trung bình 5.0

      5

      100% đã tham gia

      Cảm ơn bạn vì bài giảng tuyệt vời.

      • dkskhy327884님의 프로필 이미지
        dkskhy327884

        Đánh giá 3

        Đánh giá trung bình 5.0

        5

        77% đã tham gia

        Mình đã xem cả phần 1 và 2. Tôi có thể hiểu được cấu hình của máy chủ trò chuyện ở một mức độ nào đó và tôi nghĩ đây là một bài giảng hay đề cập đến các chủ đề mà ít người gặp phải.

        • july
          Giảng viên

          Tôi không biết phải làm gì... Tôi sẽ đền đáp bạn bằng những bài giảng hay trong tương lai. Cảm ơn!!

      • hojikas1237295님의 프로필 이미지
        hojikas1237295

        Đánh giá 4

        Đánh giá trung bình 5.0

        5

        61% đã tham gia

        Tôi rất thích bài giảng này như là phần tiếp theo của Phần 1 và thấy nó hữu ích.

        • july
          Giảng viên

          Phần 2 đề cập đến kiến ​​trúc nhiều hơn một chút, nhưng tôi không chắc liệu bạn có thấy nó hữu ích hay không. Cảm ơn bạn đã đánh giá tốt!!

      Ưu đãi có thời hạn

      836.245 ₫

      17%

      1.015.440 ₫

      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!