THẢO LUẬN

thg 2 10, 2023 4:08 SA

@BangThong

  • ID generator ngẫu nhiên: use case mình apply NaoID tạo mã đơn hàng, hệ thống mình từng tham gia số lượng đơn cũng ko quá lớn đề làm NaoID có thể trùng.
  • snowflake đây là bộ công cụ "đẻ" id tuần tự số lượng lớn, các hệ thống mình tham gia cũng chưa quá lớn như nhứng con số mình vẽ vời, use case mình mình dùng cho trường hợp này cho request_id, mình cần đảm bảo request_id đó là duy nhất để thuận tiện trace lại.
  • case này mình chưa làm qua nhưng các hệ thống sử dụng dynamoDB hoặc datawarehouse ETL data từ nhiều nguồn nên lượng dữ liệu khá lớn nên snowflake/sonyflake cũng là giải pháp sinh ID tốt
+2
thg 2 10, 2023 3:58 SA

♥️♥️♥️

0
thg 2 10, 2023 3:56 SA

@tunganh252 do mình hiểu sai nên nghĩ là hàm trên sẽ update lại giá trị cho signal count, cảm ơn chủ thớt nha

+2
thg 2 10, 2023 3:44 SA

@sackaboy

  • Bạn trình bày khá rõ về thuật toán và mình đã hiểu rồi. Mình dang muốn nói về perfomance khi insert ? không biết bạn đã compare perfomance khi insert một lượng lớn record giữa uuid và auto increment id chưa ? perfomance ở đây là cpu có bị chiếm dụng nhiều không (task manager/ cpu monitor)?
  • Về mặt lý thuyết insert :
    • nếu id là uuid/snowflake_id và primary key , my sql sẽ phải tốn cpu/time để make sure rằng new uuid hay inserted uuid không bị duplicated trong quá trình insert.
    • ngược lại, đối với auto increment id mysql sẽ tốn ít cpu/time hơn.
  • Việc snowflake sẽ make sure không bi trùng là chính xác. Nhưng khi ban đua cái id đó xuống db dưới dang primary key/unique thì mysql sẽ phải tiến hành validate lần nữa. Từ đó, mình mới thắc mắc cách bạn design database hay design field id này dưới database như thế nào ?
+1
thg 2 10, 2023 3:42 SA

Mình chưa rõ hết ý bạn qua câu hỏi trên, theo mình hiểu thì có thể bạn đang nhắc tới Derived Signals.
Hàm doubleCount của bạn là một ví dụ của việc sử dụng Derived Signals để xử lý dữ liệu và cập nhật giao diện tương ứng ấy.

Bạn có thể đặt log hoặc truyền giá trị doubleCount() lên UI thì sẽ trả 2 (nếu count = 1) nhưng lúc này giá trị signal count() vẫn không thay đổi (vẫn là 1)
Nếu còn thắc mắc bạn có thể chia sẻ cụ thể hơn nhé, thanks ^^

+1
thg 2 10, 2023 3:29 SA

viết viết đã hay, em đã upvote 👍 thankiu anh

0
thg 2 10, 2023 3:18 SA

sao chỗ đồ thị g2 của đồ thị euler không đi qua cạnh bc vây?

0
Avatar
đã bình luận câu trả lời trong câu hỏi
thg 2 10, 2023 3:09 SA

mình mới dùng chưa upload được gì,dùng flyctl deploy lần nào cũng hiện cái dòng was need creedit infomation gì đó,nên chưa upload được gì và upload quá giới hạn này,mà mình dùng free mà

0

@mkhanh7 1 thời trốn học đi net cỏ huy hoàng kk =)) Mình mới ra phần 2 làm thêm chế độ 8K ! Phần 3 mình sẽ thêm chế độ beat-up 4K, 8K ✌️

0
thg 2 10, 2023 2:31 SA

Hóng những bài viết tiếp theo từ anh 😚

+1
thg 2 10, 2023 2:21 SA

mình có biết thêm 1 cách để update value signal
vd: const doubleCount = () => count() * 2 cơ chế này mình chưa hiểu lắm, bạn có thể giải thích thêm được ko?

+2
Avatar
đã bình luận câu trả lời trong câu hỏi
thg 2 10, 2023 2:20 SA

@Hungpv-ashen vâng mình nghĩ các của mình không tối ưu và đang dùng cách của bạn bên trên ạ :

Promise.race([promise1, promise2, promiseN])

0

này em phải xem Redis Container nó mở port nào nữa, mặc định Redis sử dụng port 6379 nên em chỉ định containerPort là 1111 nó sẽ không chạy

0
thg 2 10, 2023 1:51 SA

Hay

0

Nhớ theo dõi nhé! Phần 3 mình sẽ ra chế độ beatup 😁

+1

Hay đấy bạn. Ngày trước mình cũng một thời pro beatup 😃)

0
thg 2 9, 2023 8:17 CH

Đồng ý với bạn, dùng qua Nest mình thấy khá đau đầu vì import ở file module, nhiều libs dev viết kém nên imports, providers phải add tay vào tứ tung, còn cái document thì viết kiểu như không muốn viết. Dù đội dev của Nest có cố gắng tạo ra CLI để bù cho việc import tay vào module cha nhưng mà thực sự nhìn cái đống code generate ra rồi dùng libs bên thứ 3 vào import muốn nhảy lầu 🤣

0
thg 2 9, 2023 8:12 CH

Mình không thích NestJS vì xử lý import và dùng decorator quá lung tung, chính NestJS mình mới thấy nửa mùa khi cố gắng dùng Typescript nhưng thực sự không thể biết được chính xác DI đã được tiêm vào object ở file module hay chưa, phải debug bằng runtime rồi đọc lỗi sau đó mới vào tận module để import, điều này chưa bao giờ thấy xuất hiện ở những ngôn ngữ type mạnh như C# hoặc Java. Nói chung dùng cho những dự án đông người thì khá ổn, còn về dự án muốn tối ưu cực mạnh thì nên dùng đúng 1 thread OOP mà làm, còn Decorators chỉ nên được sử dụng cho những tác vụ validate properties trong class hoặc log hệ thống để làm thống kê.

0

Anh cho em hỏi phần bài lab của Cluster-IP thì em đang làm khác đi 1 chút:

  1. Config của ReplicaSet em định nghĩa containerPort = 1111 image.png
  2. Config của Service port của service = 6379 (Mục đích của em là để connect được pod helllo-redis của anh) và targetPort = 1111 (Mục đích là connect với port của các container nằm trong ReplicaSet ở bên trên) image.png Nhưng khi em kiểm tra log của pod (hello-redis) thì nó throw errorr. Em đang không biết mình đang hiểu sai chổ nào, mong anh giải đáp ạ.
0
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí