
Giao tiếp P2P sử dụng WebRTC mà không ai nói cho bạn biết
July
Bạn có thể học về giao tiếp giữa webcam và peer được triển khai bằng cách sử dụng WebRTC.
Nhập môn
Go, webrtc, p2p
Chúng tôi sẽ hướng dẫn bạn mọi thứ về cách xây dựng server cho dịch vụ stateful và cách thực hiện triển khai không downtime.
437 học viên
Độ khó Cơ bản
Thời gian Không giới hạn


Đánh giá từ những học viên đầu tiên
5.0
ssez
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 :)
5.0
DAN
Thật vui khi có thể nhìn thấy máy chủ nơi go lang được viết.
5.0
rnxogud123
Cảm ơn bạn vì bài giảng tuyệt vời.
Mô hình phát hành/đăng ký thông qua Kafka
Quản lý dữ liệu thông qua MySQL
Xử lý TPS chat dung lượng lớn thông qua giao tiếp WSS
Quản lý máy chủ thông qua luồng sự kiện
Trong khóa học này, bạn có thể học về cách quản lý và phát triển dịch vụ Stateful cho TPS chat được sử dụng trên nền tảng streaming.
Khóa học này sử dụng hai ngôn ngữ.
Phương pháp triển khai toàn bộ bằng cách ưu tiên sử dụng Golang và
Sau đó, để phục vụ cho những người học, khóa học được cấu trúc bằng nhiều ngôn ngữ khác nhau như cách sử dụng Kafka trong Node.JS mà bạn có thể quen thuộc hơn.
Ngoài ra, khóa học được cấu trúc với nhiều chủ đề đa dạng và chưa từng trải nghiệm trước đây như mô hình phát hành/đăng ký thông qua Kafka, quản lý dữ liệu thông qua MySQL.
Sau khi hoàn thành khóa học, các bạn sẽ có thể học được sự hiểu biết sâu sắc về Kafka, MySQL và Zero-downtime Deployment cho dịch vụ Stateful.
Các bạn!! Có bao giờ các bạn suy nghĩ về hình thức cơ bản của server chưa, không chỉ đơn thuần là cấu trúc server như MVC, Service-Repository?
Trong thực tế, tùy theo hình thái của server mà sẽ quyết định có thực hiện Zero-downtime Deployment hay cho phép retry ở mức độ nào.

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

Bạn có thể nghĩ đến một HTTP server thông thường.
Vì không duy trì trạng thái nên rất thuận lợi cho việc mở rộng, và nếu các bạn phát triển server một cách thông thường thì
Về cơ bản, server được cấu trúc dưới dạng Stateless.
Bạn có thể coi đây là dạng máy chủ điển hình nhất.
Đây là dạng server không dễ gì tiếp cận được.
Trong cấu trúc máy chủ như vậy, quá trình phát triển được tiến hành bằng cách sử dụng giao thức ws
Vì duy trì trạng thái nên rất bất lợi cho việc mở rộng, nhưng do duy trì kết nối nên giúp tiết kiệm tài nguyên.
Đây là các dạng server sẽ được đề cập chủ yếu trong khóa học này.

Tôi có thể đảm bảo rằng đây là một khóa học mà bạn không dễ gì tiếp cận được.
Thông qua việc phát triển hai dạng server, các bạn có thể học được cách xử lý TPS chat với lượng truy cập lớn sử dụng MySQL và Socket và Zero-downtime Deployment sử dụng Kafka có thể hoạt động như thế nào.
Trong phần giới thiệu trước đó, tôi đã sử dụng thuật ngữ này khá thường xuyên.
Dịch theo nghĩa đen thì có nghĩa là triển khai không gián đoạn.
Các bạn đã từng trải qua trường hợp trang web đột nhiên bị treo hoặc bị gián đoạn trên các nền tảng streaming chưa??
Việc triển khai diễn ra mà không ảnh hưởng đến trang web, khiến người dùng không biết liệu có đang triển khai hay không được gọi là Zero-downtime Deployment.
Phương thức này có thể được triển khai rất dễ dàng trong các dịch vụ Stateless.
Tuy nhiên, đối với các dịch vụ Stateful duy trì trạng thái của máy chủ, đây là một công việc rất khó khăn và tốn nhiều tài nguyên.
Trong khóa học này, chúng ta sẽ tìm hiểu về dịch vụ Stateful và cách sử dụng Kafka để triển khai Zero-downtime Deployment.
Kafka là một công cụ Stream dựa trên sự kiện, được sử dụng rất thường xuyên trong việc áp dụng mô hình publish/subscribe.
Trên thực tế, đây là dịch vụ được phát triển và áp dụng bởi LinkedIn, và nhiều công ty khác nhau đã triển khai Kafka để xử lý dữ liệu mà không bị mất mát thông điệp sự kiện.
Phần quan trọng nhất mà các học viên cần chú ý là các công ty lớn như Naver, Kakao, Rakuten, Coupang, Baemin, nhiều tập đoàn lớn đều sử dụng Kafka như một công cụ bắt buộc, vì vậy khóa học này sẽ rất hữu ích cho bạn.
Trong khóa học 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 local của bạn, cũng như cách sử dụng thực tế.
Nội dung về Kafka được xây dựng dựa trên cuốn Kafka: The Definitive Guide của Gwen Shapira, nhà phát triển thực tế tại LinkedIn.
Cấu hình config của kafka và vận hành Broker, zookeeper đều được đề cập. Thông qua đó, các bạn có thể học được phương pháp phát triển dịch vụ sử dụng Kafka thực tế và các điểm cần lưu ý.

Bạn sẽ học cách quản lý dữ liệu về giao tiếp socket và dữ liệu về phòng chat bằng cách sử dụng MySQL thuận tiện cho việc xây dựng dịch vụ, đồng thời có thể tìm hiểu cách xây dựng server thông qua việc tự viết các truy vấn như ORDER BY, Paging, v.v.

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


Cách chạy Kafka trong môi trường Local

Quản lý phòng chat và dữ liệu chat thông qua MySQL

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

Sử dụng Kafka và quản lý server với Node.js, Go
Hệ điều hành và phiên bản (OS): Có thể sử dụng tất cả các hệ điều hành như Windows, macOS, Linux, v.v.
Cấu hình PC: PC có cấu hình cơ bản có thể kết nối internet
Nhất định phải xem video được công khai miễn phí!! Video này chứa thông tin về những gì bạn có thể học được trong khóa học này và dịch vụ mà bạn sẽ thực sự triển khai.
Khóa học này là phần tiếp theo của khóa học phần 1 trước đó, đề cập đến việc xây dựng dịch vụ bổ sung, quản lý dữ liệu và triển khai.
Vì vậy, khóa học này sẽ tiếp tục dựa trên khóa học trước đó.
Mặc dù sẽ có giải thích đơn giản về mã nguồn đã được đề cập trong bài giảng trước, 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 chưa có kiến thức về giao thức wss hoặc chat server, thì nên học khóa học này trước để không gặp nhiều khó khăn khi theo dõi bài giảng.
Mục tiêu của khóa học này là tập trung vàokiến trúc Zero-downtime Deployment và phát triển server, chứ không phải phát triển FE hay giao thức ws.
Bởi vì tôi không phải là nhà phát triển chuyên về FE mà là nhà phát triển chuyên về BE. Vì vậy, do lo ngại có thể truyền đạt kiến thức sai lệch về phát triển FE nên phát triển FE chỉ thực hiện xử lý API cho một server duy nhất.
Do đó, việc quản lý React State để triển khai Zero-downtime Deploymentsẽ không được thực hiện trong khóa học. Phần này cũng được đề cập liên tục trong khóa học, rất mong bạn lưu ý.
Khóa học này dành cho ai?
Những người quan tâm đến mô hình Publish/Subscribe
Những ai tò mò về việc xây dựng nền tảng streaming
Những người tò mò về quản lý dữ liệu trò chuyện
Những người muốn thử sức với phương pháp phát triển mới mẻ và thú vị, không phải theo lối mòn thông thường
Những người muốn học MySQL, Kafka từ người có kinh nghiệm thực tế
Cần biết trước khi bắt đầu?
Golang [ Đây là ngôn ngữ cơ bản của khóa học. Không biết cũng không sao. ]
Node.Js [ Đây là ngôn ngữ dành cho học viên. Không biết cũng không sao.]
3,865
Học viên
195
Đánh giá
88
Trả lời
4.4
Xếp hạng
15
Các khóa học
Giới thiệu bản thân
Xuất thân là người học trái ngành, hiện tôi đang đảm nhiệm vị trí phát triển máy chủ nền tảng tại Pangyo.
Tôi yêu thích việc tối ưu hóa máy chủ và tinh chỉnh các truy vấn (query tuning) khác nhau, đồng thời luôn nỗ lực để hướng dẫn các bạn những tính năng đơn giản một cách nhanh chóng và dễ hiểu nhất.
Kinh nghiệm làm việc
[Cựu] Nhà phát triển Blockchain tại Sandbox
[Cựu] Nhà phát triển Backend tại công ty con của Nexon
[Cựu] Nhà phát triển máy chủ nền tảng tại tập đoàn lớn ở Pangyo
[Hiện tại] Nhà phát triển máy chủ tại công ty mẹ ở Pangyo
Tất cả
31 bài giảng ∙ (3giờ 46phút)
Tài liệu khóa học:
Tất cả
16 đánh giá
4.4
16 đánh giá
Đánh giá 3
∙
Đánh giá trung bình 5.0
5
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.
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!!
Đánh giá 5
∙
Đánh giá trung bình 4.6
Đánh giá 11
∙
Đánh giá trung bình 5.0
Đánh giá 8
∙
Đánh giá trung bình 5.0
5
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 :)
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!!
Đánh giá 4
∙
Đánh giá trung bình 5.0
5
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.
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!!
Hãy khám phá các khóa học khác của giảng viên!
Khám phá các khóa học khác trong cùng lĩnh vực!