gRPC vs Rest API dùng khi nào? Ở đâu? Xem đồng nghiệp giải thích

Поделиться
HTML-код
  • Опубликовано: 23 ноя 2024

Комментарии • 35

  • @benalpha2297
    @benalpha2297 6 месяцев назад +9

    Có lời khuyên là khi nào mà hệ thống có lượng traffic cao và đặc biệt là phát sinh bottleneck ở việc encode/decode request data giữa các services thì lúc đó hẳn tính đến việc xài GRPC hay không? Chứ bình thường thì xài REST vẫn tiện và ngon chán.
    Nên là cần phải có hệ thống monitoring, tracing đủ tốt để phát hiện ra chỗ nào cần tối ưu. Thấy có nhiều ông lên mạng đọc blog thấy tụi Big Tech như Google, Uber xài GRPC nghe nói nhanh thì cũng phải apply vào hệ thống cho bằng được trong khi chỗ làm chậm hệ thống có khi nằm ở Database hoặc code viết chưa tối ưu, rốt cuộc là chả cải thiện hệ thống lên bao nhiêu mà bắt cả team học thêm cái tech mới cùng với đống convention, best practice,... Chưa kể team DevOps/System cũng phải setup, tìm hiểu, cài thêm plugin để có thể monitor cái tech mới đó.

    • @thaihungnguyen3893
      @thaihungnguyen3893 6 месяцев назад +1

      đúng rồi tuỳ bài toán mà sử dụng các kiến trúc, như chỗ mình làm các anh thiết kiến trúc hệ thống nửa nạc nửa mỡ rất microservices nhưng ko phải microservices, thế nhưng rất ngon và ổn định, kiến trúc đơn giản dễ hiểu phục vụ traffic rất lớn. Đồng ý rằng nhanh hay chậm phụ thuộc rất nhiều ở database là chính và đoạn code nữa.

    • @hienluongvi3533
      @hienluongvi3533 6 месяцев назад +5

      ko ai bắt buộc phải dùng gRPC thì nó mới nhanh hay xịn cả
      gRPC phổ biến trong kiến trúc micro-service
      mà micro-service được triển khai để độc lập hóa giữa các module (cũng như là chia team ra quản lý luôn),
      mình thấy micro-service là scale về mặt nhân sự hơn là thay vì performance ( cũng có nhưng mà ko đáng kể ).
      và đồng ý là dùng kiến trúc monolithic + cân bằng tải + cache là đã nhanh lắm rồi, điển hình như StackOverflow

  • @aken2802
    @aken2802 6 месяцев назад +3

    Mình cũng đang triển khai cả 2 thằng này nếu có đủ nguồn lực và thời gian thì triển khai đúng kiến trúc như anh trình bày thì quá ngon rồi nhưng 1 vài trường hợp thời gian triển khai trên gRPC nó mất nhiều thời gian vì phải triển khai trển cả 2 đầu ( còn rest thì ko cần ) nên trường hợp nếu như ko yêu cầu tốc độ hoặc lượng data gọi qua lại ko quá lớn thì triển khai rest trong local server vẫn xài được bù lại tiết kiệm thời gian code cũng như chi phí nguồn lực coder

  • @tahitivn
    @tahitivn 6 месяцев назад +1

    Đúng cái mình mới tìm hiểu gRPC khi join dự án mới, thanks bác

  • @nghiepdev
    @nghiepdev 3 месяца назад

    Có lễ nên so sánh Restful vs GraphQL đúng bài hơn trong vai trò Client (web, app,...) Server. Còn gRPC thì thiên về kiên trúc micro-service, mặc dù cũng có gRPC Web Client nhưng không đáng kể.

  • @tcdtist
    @tcdtist 6 месяцев назад +1

    cảm ơn "anh đồng nghiệp lão làng" đã giải thích 🫡

  • @minhtrihoang6192
    @minhtrihoang6192 6 месяцев назад +1

    Sếp làm tiếp vụ solid đi ạ, em hóng quá trời

  • @congdatt
    @congdatt 6 месяцев назад +2

    Hóng Tips Go mà lâu quá chưa thấy anh ra vids

    • @anonystick
      @anonystick  6 месяцев назад +1

      Chuẩn bị xong elastic và mysql thì sẽ tiến hành khởi động cấu trúc dự an GO như đã nói hen.

  • @tonydeveloperdndndn
    @tonydeveloperdndndn 6 месяцев назад +2

    Video ngắn gọn dễ hiểu quá ạ. Thanks anh.
    Cơ mà bàn về gRPC, em thấy hiện nay, mặc dù nó đã phát triển, cơ mà hầu hết dự án rất ít khi apply, mặc dù em thấy là làm về banking, finance các kiểu.
    Cơ mà việc giao tiếp giữa các server với nhau vẫn dùng Client Rest như bình thường. Trong khi đó, dùng gRPC lại cho thấy việc lợi về hiệu năng.
    Cho em hỏi, anh có ý kiến gì về vấn đề này không ạ. Em cảm ơn.

    • @anonystick
      @anonystick  6 месяцев назад

      gRPC an toàn, tốc độ, quan trọng không lộ network

  • @vinvin1869
    @vinvin1869 6 месяцев назад +5

    Em chào anh ạ, em là sinh viên năm 2. Em có thắc mắc là khi các dev fe và be làm xong 1 sản phẩm, thì quá trình bàn giao sản phẩm cho khách hàng sẽ diễn ra như thế nào ạ. Anh có thể làm 1 clip chia sẻ về vấn đề này không ạ. (Em còn khá non nên nếu có hỏi hơi ngu, mong anh và mọi người thông cảm, đừng ném gạch ống em ạ😂😂)

    • @anonystick
      @anonystick  6 месяцев назад +1

      Riêng cái này nếu làm công ty thì có quy chuẩn. Còn cá nhân nhận dự án thì anh có thể chia sẻ cho em được

    • @vinvin1869
      @vinvin1869 6 месяцев назад +1

      @@anonystick thế thì tuyệt quá anh ❤️

  • @LongHuỳnh-h1j
    @LongHuỳnh-h1j 3 месяца назад +1

    Bác đi dạy thì phải thường xuyên cập nhật mấy cái mình dạy chớ nhỉ, mình thấy Postman hỗ trợ gRPC rồi mà nhỉ.

    • @anonystick
      @anonystick  3 месяца назад

      Sao cậu biết tôi không cập nhật???

    • @LongHuỳnh-h1j
      @LongHuỳnh-h1j 3 месяца назад +1

      @@anonystick thì bác nói trong video vụ debug grpc khó hơn rest đó, mình search thấy có bài ghi postman support grpc, publish từ 2022 rồi mà

    • @anonystick
      @anonystick  3 месяца назад

      @@LongHuỳnh-h1j Cậu thử nó xem thử? Xem nó thế nào? Xem video 105

  • @loc7500
    @loc7500 6 месяцев назад +2

    cho em hỏi tóm lại bài này là: Mình vẫn xây dung Restful để giao tiếp với phía client. Nếu client A gọi đến Http A thì vẫn là Resful. Trong Restful A mình sẽ sử dụng GRPC để gọi qua các server khác để thực thi logic gì đó. xong r trả về client A phải không anh?

    • @cau-beo-review
      @cau-beo-review 6 месяцев назад +2

      bạn hiểu đúng rồi, giao tiếp với phía Client ( các web app dùng React, Angular, Vue ) thì vẫn sử dụng HTTP protocol (restAPI hoặc graphql) và giao tiếp qua lại thông qua định dạng JSON.

    • @JavaOnly_
      @JavaOnly_ 6 месяцев назад +3

      Ý video này là với client sử dụng dữ liệu thì nên để định dạng json cho dễ mở rộng và maintain, còn phía server lấy dữ liệu ở các server khác thì có thể sử dụng rpc để tăng hiệu năng và giảm độ trễ. Mong có thể giúp ích cho b

  • @jan9102
    @jan9102 6 месяцев назад +1

    mong anh làm thêm nh về Go

    • @anonystick
      @anonystick  6 месяцев назад

      Chuẩn bị xong elastic và mysql thì sẽ tiến hành khởi động cấu trúc dự an GO như đã nói hen.

  • @quyhuynh8628
    @quyhuynh8628 6 месяцев назад +1

    Vậy là gRPC được sử dụng chủ yếu trong kiến trúc micro-service đúng ko ạ ? Em có thấy ngoài gRPC còn có tRPC nữa ạ, mong anh giải thích cho e luôn với

    • @cau-beo-review
      @cau-beo-review 6 месяцев назад +1

      tRPC là 1 framework để triển khai HTTP API, ko phải 1 protocol nên ko so sánh nó với gRPC được.
      bản chất bên dưới tRPC vẫn sử dụng HTTP protocol thôi.

  • @huyvogia1889
    @huyvogia1889 6 месяцев назад

    go uptrend hay sao nhiều người tìm hiểu go quá nhỉ 🤔

    • @benalpha2297
      @benalpha2297 6 месяцев назад

      Go hiện tại nó đi vào mainstream luôn rồi chứ trend gì nữa bạn? 😄
      Ở VN phần lớn là cty outsource nên job Go nó ít hơn mấy ngôn ngữ khác. Nhưng mấy công ty Product như VNG, Tiki, ZaloPay, Shopee, Viettel,... qua code Go khá nhiều. Lướt tuyển dụng thì thấy cũng kha khá công ty nước ngoài tuyển remote Go. Lương thì thường cao hơn các ngôn ngữ khác nhưng đa số toàn tuyển Senior 😄

  • @hungvx-dev
    @hungvx-dev 6 месяцев назад +2

    Đọc grpc nghe phèn quá a

    • @anonystick
      @anonystick  6 месяцев назад +5

      Dạ. Em yếu tiếng Anh á Anh.. xl ạ

    • @JavaOnly_
      @JavaOnly_ 6 месяцев назад +1

      T vs sếp cũng toàn đọc grpc. Hiểu nhau nói gì là được r bro

    • @atnguyenlequoc306
      @atnguyenlequoc306 6 месяцев назад +2

      project áp dụng grpc 3 năm mà e cũng đọc y vậy :))

    • @loc7500
      @loc7500 6 месяцев назад +2

      k đọc grpc chứ đoc sao. mấy thằng đặt tên có chữ dev hay thượng đẳng lắm k biết trình độ tới đâu?

    • @sonhai4539
      @sonhai4539 6 месяцев назад +3

      Lại thêm 1 thanh niên hay đi bắt bẻ TA ngta :)))