강의

멘토링

로드맵

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á

  • ssez님의 프로필 이미지
    ssez

    Đánh giá 7

    Đánh giá trung bình 5.0

    5

    29% đã tham gia

    ORM 사용 시 단점에 대해 언급해주실 때 뜨끔했습니다. 안 그래도 최근 쿼리 튜닝할 때 로깅해봤다가 뜨헉했던 경험이.. ㅎㅎ 이번에도 재밌게 보고 있습니다. go가 익숙치 않아서 1탄에 비해 진도가 좀 더디지만, 이렇게 쓰는구나~ 하며 또 다른 재미가 있네요! 저희 회사는 저를 포함해 2명만 일하고 있고 (저는 풀스택, 한분은 대표님이신데, devops까지 다하세요. 😅) 아무래도 작은 서비스를 운영하다보니... 제 실력에 대해 의심도 많이 가고, 이래저래 심란해서 수강하기 시작했는데 다시 처음 공부할때처럼 설레이네요. 요즘 미래에 대해 고민도 많았는데 역시 고민하기보단 머리를 비우고 공부하는 게 최고인 것 같습니다. 완강하면 또 다른 강의 보러가겠습니다 :)

    • July
      Giảng viên

      2인 개발이라는 정말 쉽지않으시겠어요. 응원합니다!! 아무래도 쉽게 접하지 못하는 다양한 개념들을 제공해 드리면서 견해를 넓혀드리고 싶었습니다. 그래서 이런 강의를 많이 준비를 하였는데 도움이 되신거 같아서 매우 뿌듯하네요. 항상 실력에 대한 의심이 가는것은 좋은 모습인거 같습니다. 자만하기보다는 낮은 자세로 임하는게 저는 맞다고 생각을해요 저 또한 그렇고요 ㅎㅎ 강의 내용외에도 고민이 있으신 부분이나 질문이 있으시다면 편하게 질문주세요. 저 생각보다 되게 인간적인 사람이라서 ㅎㅎ 이런저런 대화하면서 서로 해결해나가는 것도 좋다고 생각합니다.!! 강의 들어주셔서 감사합니다!!

  • DAN님의 프로필 이미지
    DAN

    Đánh giá 5

    Đánh giá trung bình 4.6

    5

    100% đã tham gia

    go lang을 작성된 서버를 볼 수 있어서 좋았습니다

    • rnxogud123님의 프로필 이미지
      rnxogud123

      Đánh giá 11

      Đánh giá trung bình 5.0

      5

      100% đã tham gia

      좋은 강의 감사합니다.

      • dksk hy님의 프로필 이미지
        dksk hy

        Đánh giá 3

        Đánh giá trung bình 5.0

        5

        77% đã tham gia

        1편과 2편 모두 보았습니다. 채팅서버에 대한 구성을 어느정도 이해 할 수 있었고, 일반적으로 접할 수 없는 주제로 구성된 좋은 강의라고 생각합니다.

        • July
          Giảng viên

          몸둘바를 모르겠다는.... 앞으로 좋은 강의로 보답하겠습니다. 감사합니다!!

      • kas kim님의 프로필 이미지
        kas kim

        Đánh giá 4

        Đánh giá trung bình 5.0

        5

        61% đã tham gia

        이번 강의도 1탄에 이어서 유익하게 잘 보았습니다.

        • July
          Giảng viên

          2탄은 좀 더 아키텍처인 부분을 다루었는데 유익하셨는지 모르겠네요. 좋은 평 감사합니다!!

      1.015.267 ₫

      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!