Tín d?ng: Vect? c?ng ngh? ???c t?o b?i pikisuperstar - www.freepik.com

Là nhà phát tri?n, chúng t?i th??ng r?i vào tình hu?ng ph?i xay d?ng m?t th? gì ?ó, nh?ng chúng t?i kh?ng có ?? th?i gian ?? phát tri?n theo cách mà chúng t?i mu?n. Và kh?ng ph?i lúc nào chúng ta c?ng có th? ??y lùi các m?c th?i gian, b?i vì “ th?i gian ??a ra th? tr??ng ” ??i khi ?óng m?t vai trò quan tr?ng trong s? thành c?ng c?a s?n ph?m. V?y, chúng ta làm gì? Chúng t?i c?t gi?m các góc, ch?p nh?n r?i ro có tính toán, lo?i b? nh?ng gì thu?n túy nh?t trong b?n (các ph??ng pháp hay nh?t, ph?m vi ki?m tra ??n v? và bla bla bla). T?i ?oán nó c?ng s? r?t gi?ng v?i h?u h?t các b?n.

Cau chuy?n h?m nay là v? cách chúng t?i ?? xay d?ng m?t cao Scale , fault-tolerant , phan ph?i h? th?ng Leaderboard / ch?m ?i?m, trong kho?ng th?i gian m?t tu?n trong m?t nhóm ba ng??i.

Ch? y?u s? có nh?ng n?i dung h?c t?p trong blog này

  1. K? thu?t : Làm th? nào ?? b?n th?c s? xay d?ng m?t h? th?ng nh? v?y, các ch? ?? nh? thi?t k? h? th?ng phan tán, kh? n?ng m? r?ng, kh? n?ng ph?c h?i, tính kh? d?ng s? ???c ?? c?p.
  2. Làm vi?c v?i th?i gian : Cách b?n phan ph?i trong th?i gian ng?n, b?n ph?i ?ánh ??i nh?ng gì, cách ??a ra quy?t ??nh nhanh h?n.
  3. Vòng ??i phát tri?n : B?n c?ng có th? xem tr??c vòng ??i phát tri?n s?n ph?m, nh?ng th? gì liên quan ??n vi?c xay d?ng ph?n m?m t?t.

Ch??ng 1: Các yêu c?u

M?i chuy?n b?t ??u khi nhóm s?n ph?m c?a chúng t?i cho bi?t ?ay là mùa gi?i World Cup T20 và chúng t?i mu?n xay d?ng m?t h? th?ng cau h?i dành cho ng??i dùng ?? d? ?oán ng?n h?n.

Tr??ng h?p s? d?ng là khi b?t ??u ng??i dùng h?n s? ???c yêu c?u d? ?oán m?t tình hu?ng mà h? s? có 20/30 giay. Và vào cu?i ng??i ki?m duy?t quá m?c s? ?? trình, ?i?u gì ?? th?c s? x?y ra trong s? t?t c? các tình hu?ng ???c d? ?oán. Và vi?c ch?m ?i?m s? d?a trên ai tr? l?i ?úng và th?i gian tr? l?i là bao nhiêu.

Vì v?y, ngay sau khi nh?n ???c yêu c?u, chúng t?i ?? n? l?c ??c tính và ?i?u ?ó r? ràng là kh?ng phù h?p v?i ngan sách c?a chúng t?i, vì v?y chúng t?i c?t gi?m các tính n?ng mà chúng t?i có th? b? qua trên v0. ?i?u này r?t quan tr?ng vì trong th?i h?n eo h?p, b?n có th? mu?n cung c?p ít tính n?ng h?n là ??a ra các tính n?ng n?a v?i.

?ay s? là blog ch? y?u t?p trung vào ph?n ph? tr?, xin l?i, t?i s? kh?ng th? gi?i thích cách t?o ra nh?ng giao di?n ng??i dùng ??p ?? ?ó.

Ch??ng 2: Thi?t k?

Ti?p theo r? ràng là thi?t k? H? th?ng, th??ng ???c g?i là Thi?t k? c?p cao. ?ay là ph?n th? thách nh?t c?ng nh? là ph?n vui nh?t ??i v?i t?i. Chúng t?i ?? kh?ng th?c hi?n thi?t k? c?p ?? th?p r?ng r?i và th?c hi?n nhanh t?t c? các l?nh g?i m? hình hóa trong khi tri?n khai.

B??c 1: ??c tính quy m?

Tr??c khi b?t ??u b?t c? ?i?u gì, chúng t?i ?? ??c tính s? b? v? lo?i l?u l??ng truy c?p nào s? ??n v?i chúng t?i. V?i quy m? h? th?ng c?a chúng t?i, chúng t?i ??c tính có th? kho?ng 50 nghìn ng??i s? tham gia vào cu?c thi. Vì v?y, chúng t?i ?? ??t m?c tiêu xay d?ng cho 100 nghìn ng??i dùng. Nh?ng h?u h?t m?i ng??i có th? s? tr? l?i trong 10 giay ??u tiên trong c?a s? 30 giay. ?i?u này ??i khái cho chúng t?i qps m?c tiêu là 20k.

Quy t?c chung c?a t?i là ??i v?i m?t h? th?ng m?i lu?n thi?t k? h? th?ng cho s? l??ng ng??i dùng d? ki?n ??g?p ??i. Vì v?y, trong tr??ng h?p b?n có nhi?u ng??i dùng h?n, h? th?ng c?a b?n kh?ng b? l?i khi m? r?ng quy m?. Và ng??i dùng th??ng t?ng lên theo th?i gian nên b?n kh?ng c?n ph?i thay ??i h? th?ng liên t?c. Nh?ng ?i?u ?ó kh?ng có ngh?a là b?n ??t g?p ??i c? s? h? t?ng thay cho nh?ng gì th?c s? c?n thi?t. T?i ch? y?u s? autoscaling cho phép trong h? th?ng c?a t?i vì v?y b?t c? khi nào có nh?ng ??t bi?n giao th?ng, h? th?ng s? m? r?ng quy m? c?a chính nó.

(Chúng t?i c?ng ?? th?c hi?n các ??c tính khác ?? l?u tr? trên b? nh? cache, nh?ng ?? b? qua chúng ?? gi? cho bài vi?t ng?n g?n)

B??c 2: Xác ??nh các API quy m? cao

Sau ??c tính quy m?, chúng t?i nhanh chóng xác ??nh ?au là API quy m? cao và n?i x? ly có th? cao ?? chúng t?i có th? th?c hi?n m?t cách ch?n l?c thi?t k? có th? m? r?ng cho nh?ng API ?ó. Ph?n còn l?i c?a các API quy m? th?p mà chúng t?i kh?ng quan tam ho?c kh?ng dành nhi?u th?i gian.

Vì v?y, ?ay là các API quy m? cao mà chúng t?i ?? xác ??nh

  1. Nh?n ?i?m và x?p h?ng c?a ng??i dùng
  2. Nh?n b?ng x?p h?ng
  3. Tính toán b?ng x?p h?ng (ch? y?u là x? ly d? li?u kh?ng ph?i API)
  4. ??ng cau tr? l?i c?a ng??i dùng

B??c 3: Can nh?c thi?t k?

Ngay l?p t?c sau khi nhìn th?y yêu c?u, hai ?i?u ?? th? hi?n r?t r? ràng ??i v?i t?i.

  1. Chúng t?i s? c?n x? ly kh?ng ??ng b?phan tán ?? tính ?i?m và b?ng thành tích vì nh?ng ly do r? ràng nh?t. N?u b?n ?ang có k? ho?ch ch?y tính toán ?i?m s? ??ng b? trên m?t nút duy nh?t cho 1 tri?u ng??i dùng ho?c h?n th? n?a, chúc b?n may m?n ??. Y t??ng r?t ??n gi?n, chúng t?i chia m?t nhi?m v? l?n thành các nhi?m v? nh? h?n và ch?y chúng trên các nút khác nhau và ?? chúng th?c hi?n vi?c này theo t?c ?? c?a riêng mình. Và chúng t?i c?ng mu?n quá trình này có th? ch?u ???c l?i .
  2. B? nh? cache s? là ng??i b?n c?a chúng ta ?? ??c th? h?ng c?a ng??i dùng và b?ng x?p h?ng. Vì hai ly do ch? y?u, t?c ??kh? n?ng m? r?ng quy m? d? dàng . B? nh? cache nhanh h?n nhi?u so v?i DB cho các thao tác ??c ??n gi?n và nói chung, vi?c m? r?ng c?m Redis / Memcached / Hazelcast d? dàng h?n so v?i Postgres .

B??c 4: Thi?t k? h? th?ng

Trong khi ??a ra các quy?t ??nh v? thi?t k? l?n này, t?i ch?n ?i theo nh?ng c?ng ngh? mà t?i bi?t và kh?ng mu?n m?o hi?m tìm ki?m nh?ng gì có th? là c?ng ngh? t?t nh?t cho tr??ng h?p s? d?ng này. Ví d?, t?i ?? quen v?i Redis , vì v?y ??i v?i b? nh? cache, ?ó là l?a ch?n hi?n nhiên. Ngoài ra, b?t c? khi nào t?i nghe th?y b?ng x?p h?ng, nó s? t? ??ng chuy?n sang các b? ???c s?p x?p c?a Redis trong tam trí t?i. Và ??i v?i x? ly kh?ng ??ng b?, Kafka v?n là l?a ch?n s? m?t c?a t?i. N?u có th?i gian thích h?p, t?i có th? s? khám phá thêm m?t chút, nh?ng l?n này t?i s? kh?ng ?i lang thang vào nh?ng vùng ??t hoang d? ?? tìm ki?m c?ng ngh? t?t nh?t vì t?i kh?ng có TH?I GIAN !!!!

M?t. ??ng API cau tr? l?i c?a ng??i dùng

Vì v?y, API này s? cho phép ng??i dùng c?a chúng t?i g?i cau tr? l?i cho bài ki?m tra. Thách th?c chính ? ?ay là ?i?u này s? t?o ra r?t nhi?u ho?t ??ng ghi ??ng th?i , ?i?u này s? làm t?ng t?i trên c? s? d? li?u c?a chúng t?i r?t nhi?u. Vì v?y, chúng t?i ph?i làm hai ?i?u

  1. Gi?m t?i trên DB
  2. T?o ra m?t s? lo?i áp l?c ng??c ho?c ?? các nhà khai thác DB làm vi?c theo t?c ?? c?a riêng h?, ?? DB kh?ng b? quá t?i

Gi?i pháp goto c?a t?i ?? gi?m t?i ghi là th?c hi?n theo l? . Vì v?y, n?u t?i ph?i th?c hi?n 10 ho?t ??ng ghi, t?i s? g?p chúng l?i ?? nh?n m?t truy v?n duy nh?t và sau ?ó ch?y 1 ho?t ??ng ghi DB.

Back-pressure g?n nh? hét lên hàng ??i tin nh?n .

Vì v?y, k?t h?p c? hai, gi?i pháp chúng t?i ??a ra là…

??ng lo l?ng, h?y cho phép t?i gi?i thích nh?ng gì ?ang x?y ra

  1. Ng??i nh?n ph?n h?i s? nh?n ???c ph?n h?i c?a ng??i dùng và m? tr?ng thái HTTP 202 ???c tr? v?. ?i?u này gi?ng nh? nói r?ng t?i ?? nh?n ???c yêu c?u c?a b?n và t?i s? x? ly nó, nh?ng b?n h?y ti?p t?c và làm nh?ng gì b?n ?ang làm. ?ay là b??c ??u tiên trong x? ly kh?ng ??ng b?, chúng t?i kh?ng ch?n ng??i g?i.
  2. B? nh?n ph?n h?i ??t ph?n h?i c?a ng??i dùng trong hàng ??i tin nh?n, hàng ??i này l?i ???c phan vùng cho các m?c ?ích kh? n?ng m? r?ng / tính s?n sàng / d? phòng . B?n có th? hi?u phan vùng khá d? dàng n?u b?n ?? bi?t Kafka. Trong tr??ng h?p kh?ng, ch? c?n coi ?ó là m?t cách ?? phan ph?i tin nh?n trong hàng ??i c?a b?n thành nhi?u hàng ??i c? l?p nh? h?n, v? m?t k? thu?t có th? n?m trên các nút khác nhau. N?u b?n bi?t DB sharding thì ?ó là ?i?u t??ng t? nh?ng ch? y?u là ??i v?i hàng ??i tin nh?n. Vui lòng ??c thêm v? Kafka t?i ?ay .
  3. Bay gi?, nh?ng ph?n h?i th? này ???c nh?n b?i ng??i qu?n ly. Và sau ?ó nó t?o ra hàng lo?t 10 tin nh?n và ??y chúng sang giai ?o?n x? ly ti?p theo.
  4. Ng??i vi?t DB ch?n các l? và th?c hi?n các truy v?n chèn vào DB. áp su?t ng??c ch? y?u ???c gi?i thi?u b?i ng??i vi?t DB, nó ch?n th?ng ?i?p theo t?c ?? riêng c?a nó vì ng??i tiêu dùng th?ng báo là d?a trên kéo . Và do ?ó chúng t?i ng?n ch?n quá t?i DB. Và vì nó ho?t ??ng theo l? thay vì ch?y 100 truy v?n DB, chúng t?i ch? ch?y 10 truy v?n DB.

?i?u này gi?i quy?t ???c 30% v?n ?? c?a chúng ta, h?y chuy?n sang v?n ?? ti?p theo.

NS. Tính ?i?m và b?ng thành tích

Bay gi? con voi trong phòng, v?n ?? chính, tính toán b?ng x?p h?ng. N?u b?n th?y h? th?ng này, nó kh?ng gi?ng nh? m?t h? th?ng cau ?? truy?n th?ng, n?i chúng ta bi?t tr??c cau tr? l?i chính xác. Vì v?y, chúng t?i kh?ng th? th?c s? tính toán ?i?m s? và b?ng thành tích ngay sau khi ai ?ó tr? l?i. Chúng t?i ph?i tính ?i?m và x?p h?ng c?a t?t c? ng??i dùng khi ng??i ki?m duy?t ?? g?i cau tr? l?i chính xác. Vì v?y, m?t kh?i l??ng l?n c?ng vi?c cùng m?t lúc. R? ràng là c? các nút và máy ch? DB c?a chúng t?i ??u kh?ng th? x? ly ?i?u ?ó ?úng cách trong ??ng b? hóath?i trang. V?y, chúng ta làm gì? Chúng t?i quay l?i Hàng ??i Tin nh?n b?n bè c?a chúng t?i ?? x? ly kh?ng ??ng b? m?t l?n n?a. Th?t tuy?t ?? chúng t?i có th? tính ?i?m m?t cách kh?ng ??ng b?, nh?ng còn b?ng thành tích thì sao? ?i?u ?ó c?n ph?i có s?n m?i lúc ph?i kh?ng? Và nh?ng gì v? th? h?ng? Cho ??n khi và tr? khi ?i?m s? cho t?t c? ng??i dùng ?? ???c tính toán, b?n kh?ng th? th?c s? x?p h?ng, ph?i kh?ng? Và vi?c tính toán th? h?ng c? th? có th? là m?t v?n ?? khó kh?n.

Bay gi?, ai s? c?u chúng ta kh?i ?i?u này? Lo l?ng kh?ng b?n c?a t?i, h?y nh? t?i ?? ?? c?p ng?n g?n ??n Redis khi nói v? b? nh? cache? H? có m?t th? tuy?t ??p ???c g?i là b? s?p x?p (th?t là m?t s? sáng t?o tuy?t v?i, c?m ?n Redis Labs ??). Trong m?t t?p h?p ?? ???c s?p x?p, b?n có th? thêm các phím có s? ?i?m và Redis s? s?p x?p nó t??ng ?ng trong O (log (N)) . ?i?u ?ó s? gi?i quy?t v?n ?? x?p h?ng c?a chúng t?i ??. Nó c?ng cho phép chúng t?i ch?y các truy v?n ph?m vi, ch?ng h?n nh? cho t?i top 5 ho?c giúp t?i x?p h?ng cho m?t khóa c? th? và t?t c? ?i?u này x?y ra trong O (log (N)). ?ó chính xác là nh?ng gì chúng ta c?n ? ?ay.

Các ph?n t? ???c thêm vào b?ng b?m ánh x? các ??i t??ng Redis thành ?i?m s?. ??ng th?i, các ph?n t? ???c thêm vào ?i?m ánh x? danh sách b? qua cho các ??i t??ng Redis (vì v?y các ??i t??ng ???c s?p x?p theo ?i?m trong “ch? ?? xem” này) - B? n?i b? ???c s?p x?p

Bammmmmm v?n ?? b?ng thành tích c?ng ???c gi?i quy?t.

???c r?i, ???c r?i, kh?ng d? ?au, t?i r?t vui vì t?i có th? nhanh chóng ??a ra ???c gi?i pháp kh? thi. Bay gi? chúng ta h?y quay tr? l?i b?ng v? c?a chúng ta.

Tr?ng h?i ?áng s? ph?i kh?ng? Cho phép t?i gi?i thích

  1. Ngay sau khi ng??i ki?m duy?t g?i cau tr? l?i ?úng, m?t th?ng báo kích ho?t tính ?i?m s? ???c ??y lên, t?c là b?t ??u toàn b? quy trình x? ly .
  2. Batcher nh?n ???c th?ng báo kích ho?t và t?o ra m?t c?p ??i t??ng bù ??p và gi?i h?n DB tùy thu?c vào s? l??ng ng??i tr? l?i ?úng. Ví d?: n?u 10 ng??i tr? l?i ?úng và kích th??c l? là 5 thì nó s? t?o ra hai ??i t??ng (l?). L? 1 {bù: 0, gi?i h?n: 5}, l? 2 {bù: 5, gi?i h?n 5}. T?i sao chúng ta làm vi?c này? Vì v?y, chúng t?i có th? ch?y x? ly hàng lo?t ho?c ch?y các quer DB ???c phan trang và chúng t?i kh?ng k?t thúc vi?c g?i DB mà kh?ng có b?t k? gi?i h?n nào. Vì v?y, n?u t?i ph?i l?y 1 tri?u b?n ghi t? DB, và t?i làm ?i?u ?ó trong m?t l?n, nó s? d?n ??n r?t nhi?u v?n ?? ? nhi?u n?i. Vì v?y, chúng t?i chia nh? ?i?u ?ó thành các ph?n nh? h?n và ch?y các truy v?n nh? h?n nh?ng nhi?u truy v?n, ?i?u này s? tr? v? m?t s? l??ng hàng nh? h?n.
  3. B? x? ly hàng lo?t c?a ng??i dùng bay gi? s? nh?n ???c các th?ng báo hàng lo?t này và s? ch?y các truy v?n DB t??ng ?ng. B? x? ly nh?n ???c th?ng báo {offset: 0, limit: 5}, s? nh?n ???c 5 id ng??i dùng ??u tiên t? DB (c?ng s? th?c hi?n m?t ho?t ??ng hàng lo?t khác nh?ng ?i?u ?ó h?i khó gi?i thích ? ?ay, vì v?y h?y b? qua). Và sau ?ay là lúc chúng ta nói l?i t?m bi?t v?i x? ly hàng lo?t trong g và chuy?n sang x? ly lu?ng . B?i vì b? x? ly hàng lo?t bay gi? s? ??t 5 id ng??i dùng vào hàng ??i mà b? x? ly ti?p theo s? x? ly.
  4. Bay gi? máy tính ?i?m Ng??i dùng nh?n id ng??i dùng cá nhan, ch?y logic tính ?i?m ?? tính ?i?m ng??i dùng cá nhan. Sau ?ó, th?c hi?n 1 b?n c?p nh?t DB ?? s?a ??i ?i?m s? c?a ng??i dùng. Sau ?ó, nó c?p nh?t ?i?m cho ng??i dùng c? th? ?ó trong t?p h?p ?? s?p x?p và Redis ch? ??nh ho?c c?p nh?t th? h?ng trong n?i b?. Và khi giai ?o?n này hoàn t?t quá trình x? ly, chúng t?i s? có ?i?m c?a t?t c? ng??i dùng trong DB c?a chúng t?i và th? h?ng + ?i?m c?a t?t c? ng??i dùng trong Redis c?a chúng t?i. Và vì chúng t?i có th? h?ng c?a t?t c? m?i ng??i trong t?p h?p ?? s?p x?p, chúng t?i có th? ch? c?n ch?y m?t truy v?n ph?m vi trên ?ó ?? có ???c b?ng x?p h?ng v?i t?c ?? c?c nhanh .

H?u h?t v?n ?? c?a chúng t?i hi?n ?? ???c gi?i quy?t vì ?? có ???c ?i?m s? và x?p h?ng c?a ng??i dùng, chúng t?i ch? có th? th?c hi?n m?t truy v?n Redis và kh?ng ti?p c?n DB. Và ?i?u này làm cho th?i gian ph?n h?i c?a chúng t?i c?ng nhanh chóng .

?i?u này k?t thúc giai ?o?n thi?t k? chính. Ngoài ra còn có DB, thi?t k? API và nh?ng th? khác mà t?i ?ang b? qua ? ?ay.

Ch??ng 4: Th?c hi?n

Vi?c hoàn thành thi?t k? ?? gi?i quy?t ???c 70% v?n ?? c?a chúng t?i và chúng t?i bi?t mình có th? gi?i quy?t v?n ?? này, vì v?y chúng t?i s? nhanh chóng b?t tay vào phát tri?n.

Trong m?t th? gi?i ly t??ng, t?i s? ?i và t?o m?t d?ch v? m?i, th? m?t ng?n ng? m?i ch?ng h?n nh? Go , ?? x? ly song song t?t h?n và nhanh h?n và nh?ng th? khác. Nh?ng v?i dòng th?i gian, ?ó kh?ng ph?i là ?i?u ?úng ??n ?? làm. Chúng t?i g?n bó v?i d?ch v? NodeJS c?t l?i c?a mình và ??t m?i th? ? ?ó. Nh?ng ng??i theo ch? ngh?a thu?n túy microservice có th? m?t nó sau khi nhìn th?y tuyên b? này, nh?ng trong cu?c ch?y ?ua v?i th?i gian, hi?u tr??ng c?a b?n ??i khi ph?i lùi l?i gh? sau. Trong s? r?t nhi?u s? can b?ng , ?ay là m?t trong nh?ng cu?c g?i l?n mà chúng t?i ?? th?c hi?n.

Ngoài ra, chúng t?i c?ng ph?i c?t gi?m các bài ki?m tra ??n v? và tích h?p , c?m giác t?i l?i v?n ?ang ám ?nh chúng t?i. Nh?ng chúng t?i ?ang l?p ??y các th? nghi?m d?n d?n sau khi phát hành.

T?i ?oán sau khi nhìn th?y thi?t k? chi ti?t ???c ??ng ? trên, b?n s? có th? tri?n khai thi?t k? c?a riêng mình, do ?ó t?i s? kh?ng tìm hi?u sau v? m? l?n này ??

Ch??ng 5: Tri?n khai và Giám sát

Sau m?t s? s?a l?i và ??ng xu?t QA, chúng t?i ?? s?n sàng. C?ng vi?c hoàn thành ?úng kh?ng? Kh?ng, b?n c?a t?i, chúng t?i v?n ph?i thi?t l?p giám sát ch?t ch? cho ph?n này. Vì nó ???c phát tri?n trong m?t th?i gian r?t ng?n nên ít nh?t t?i c?ng h?i thi?u t? tin. Theo m?c ??nh, chúng t?i ?? b?t tính n?ng theo d?i trên d?ch v? này qua LightStep . Vì v?y, ngoài d?u v?t, t?i ?? thi?t l?p giám sát riêng v? l?u l??ng truy c?p, t? l? l?i, b?ng ?i?u khi?n ?? tr?, c?nh báo cho t?t c? các API. Và sau khi phát tr?c ti?p T?i và các ??ng ??i c?a mình, chúng t?i ?? nh?n ???c m?t cu?c g?i và chúng t?i ?? theo d?i h? th?ng ra vào trong ít nh?t m?t gi?, t? vi?c s? d?ng RAM và CPU cho ??n Nh?t ky l?i . Vì v?y, lu?n lu?n cung c?p tr?ng s? b?ng nhau cho kh? n?ng quan sátvà giám sát n?a. Có nh?ng v?n ?? nh? trong h? th?ng s?n xu?t và chúng t?i ch? có th? phát hi?n s?m vì theo d?i.

Ch??ng 6: H?i t??ng

H? th?ng ho?t ??ng, nh?ng sau m?t th?i gian ngh? ng?i, ?i?u quan tr?ng là ph?i ti?n hành ki?m tra l?i và xác ??nh nh?ng ?i?u chúng ta ?? b? l? và kh?c ph?c chúng. T?i ch?c ch?n r?ng chúng t?i ?? b? l? r?t nhi?u th? và c?t b? r?t nhi?u góc và có m?t ph?m vi c?i ti?n r?t l?n. Ví d?, ?ay là m?t vài…

Nh?ng ?i?u chúng t?i có th? làm t?t h?n

  1. Chúng t?i ?? s? d?ng Postgres DB hi?n có cho vi?c này vì trình ?i?u khi?n, ORM và c? s? h? t?ng h? tr? ?? có ? ?ó. Nh?ng t?i có th? s? khám phá m?t chút v? các gi?i pháp c? s? d? li?u.
  2. NodeJS th?t tuy?t v?i, nh?ng t?i c?m th?y Go s? là m?t gi?i pháp phù h?p h?n cho vi?c này. Chúng t?i có th? ?? khám phá ?i?u này.
  3. T?i ?? th? vi?t m?t truy v?n ?? tính ?i?m ch? trong DB và th?t b?i th?m h?i. T?i có th? vi?t ?i?u ?ó và c?ng có th? x? ly hàng lo?t ?? tính ?i?m, gi?m các ho?t ??ng DB h?n n?a.
  4. Chúng t?i kh?ng th? ch?y các bài ki?m tra hi?u su?t và t?i m? r?ng, ?ay là ?i?u b?t bu?c.
  5. Chúng t?i có th? ?? vi?t hai giai ?o?n khác nhau cho c?p nh?t ?i?m DB và c?p nh?t b? ???c s?p x?p c?a Redis, ?ó s? là m?t tri?n khai g?n gàng h?n.

Ghi chú chia tay

Chúng t?i ?? làm nh?ng gì t?t nh?t có th? trong th?i gian ng?n ?ó. Ngay c? vi?c th?c hi?n c?ng ch?ch h??ng m?t chút so v?i thi?t k? ban ??u. Nh?ng kh?ng sao c?, ?ánh ??i thì liên t?c có. M?c dù chúng t?i ?? hoàn thành ch?c n?ng c?t l?i trong kho?ng m?t tu?n, nh?ng v?n có nh?ng b?n vá l?i nh? mà chúng t?i ph?i th?c hi?n.

T?i hy v?ng b?n có th? h?c m?t ho?c hai ?i?u v? thi?t k? h? th?ng và phát tri?n ph?n m?m ngày h?m nay ??

Tín d?ng

H?y g?i l?i chào ??n nh?ng ng??i ??ng ??i tuy?t v?i c?a t?i, Akash Raj và Aashirwad Kashyap , t?t c? chúng t?i ?? cùng nhau làm vi?c ?? xay d?ng ?i?u này ch? trong kho?ng m?t tu?n.

C?m ?n vì ?? ??c!

T?i là Aritra Das, t?i là m?t Nhà phát tri?n và t?i th?c s? thích xay d?ng các H? th?ng phan tán ph?c t?p. Vui lòng liên h? v?i t?i trên Linkedin ho?c Twitter ?? bi?t b?t k? ?i?u gì liên quan ??n c?ng ngh?.

Chúc b?n h?c vui v?…

Suggested posts

6 l?i th? chính c?a các nhà phát tri?n ??n t? ??ng ?u

6 l?i th? chính c?a các nhà phát tri?n ??n t? ??ng ?u

Hi?u ly do t?i sao các c?ng ty n??c ngoài ?ang tìm cách thuê các nhà phát tri?n t? Nga, Ukraine và Belarus Trong h?n 6 n?m, t?i ?? qu?n ly Phát tri?n ph?n m?m Rocketech v?i m?t ??i tác, có tr? s? chính t?i Singapore và m?t nhóm ???c phan ph?i ??y ??. Chúng t?i ?ang phát tri?n các s?n ph?m CNTT và phát tri?n hai ??nh d?ng d?ch v?: outstaff và Dedicated Team.

Sách Python gi?m giá ngày 25 tháng 11

?u ??i ??u ngày Th? Sáu ?en t? Giá sách Th?c d?ng

Sách Python gi?m giá ngày 25 tháng 11

Vi?t m? t?t h?n, tr?c quan và ?áng tin c?y h?n v?i Python. T? các d? án ph?n c?ng th?c hành ??n khoa h?c d? li?u, Giá sách Th?c d?ng ?? giúp b?n gi?m giá 40% cho t?t c? các ??u sách Python trong s? ki?n Black Friday Early Bird c?a chúng t?i! Mua các sách ?i?n t? sau ?? nh?n kho?n ti?t ki?m c?a b?n: L?u y: M? khuy?n m?i turkeysale2021 có giá tr? ??n h?t ngày 29 tháng 11 n?m 2021, ??i v?i sách ?i?n t? trên trang web The Pragmatic Bookshelf.

Related posts

Theo d?i các b??c ?i c?a bé - B?n ?ang th?c hi?n hành ??ng ???c truy?n c?m h?ng nào h?m nay?

Theo d?i các b??c ?i c?a bé - B?n ?ang th?c hi?n hành ??ng ???c truy?n c?m h?ng nào h?m nay?

Theo d?i các b??c ?i c?a bé M?t c?m t? ?? b? m?c k?t trong v?c th?m mê ho?c trong tam trí t?i: “N?u b?n kh?ng gi? ???c ?i?m làm sao b?n bi?t mình ?ang chi?n th?ng?” Sau khi t?i nghe ?i?u này, y th?c, ti?m th?c và v? th?c c?a t?i ?ang nh?y múa và ti?c tùng nh? th? th? gi?i v?a ???c ti?t l? v?i t?i. N?u t?i KH?NG gi? nguyên ?i?m, làm th? quái nào t?i bi?t r?ng t?i ?ang ti?n b? ít nh?t? Cau tr? l?i là T?I KH?NG.

IOTA, Cu?c cách m?ng ti?n ?i?n t?

?i?u gì x?y ra vào ngày th? tr??ng ch?ng ki?n ??nh?ng gì IOTA ?ang làm? ??i khi các th?ng báo liên quan ??n quan h? ??i tác và tin t?c trong kh?ng gian ti?n ?i?n t? chung là ?áng chú y do nh?ng ng??i sáng l?p d? án th?i ph?ng các m?i quan h? ??i tác th??ng kh?ng th?c s? t?n t?i. Thatsaid, kh?ng ph?i t?t c? các ??ng ??u theo cách này.

Nó th?t s? ?áng giá th? sao?

Tr??ng trung h?c Mission San Jose t? lau ?? ???c bi?t ??n v?i ch?t l??ng h?c t?p xu?t s?c và s? l??ng khóa h?c nghiêm ng?t. Nó kh?ng th? ph? nh?n.

Th? nguyên th? n?m là gì, và nó ??n t? ?au?

Th? nguyên th? n?m là gì, và nó ??n t? ?au?

?á m?t kh?i vu?ng trên sàn. C?ng.

MORE COOL STUFF

Hu?n luy?n viên bóng r? c?a Duke Blue Devils, Mike Krzyzewski, ?? k?t h?n ch?a?

Hu?n luy?n viên bóng r? c?a Duke Blue Devils, Mike Krzyzewski, ?? k?t h?n ch?a?

Vi?c Mike Krzyzewski gi?i ngh? bóng r? Duke vào cu?i mùa gi?i hi?n t?i s? giúp anh có nhi?u th?i gian h?n cho v? và gia ?ình.

Nicholas Braun cao nh? th? nào t? 'K? v?'?

Nicholas Braun cao nh? th? nào t? 'K? v?'?

Các fan c?a 'Succession' kh?ng th? kh?ng chú y ??n chi?u cao b?t th??ng c?a Greg hay Nicholas Braun. Anh ?y có th?c s? v??t lên trên các thành viên c?a mình kh?ng?

Các món ?n ph? trong L? t? ?n c?a 'Ng??i ph? n? tiên phong' Ree Drummond cho Mùa l? n?m 2021

Các món ?n ph? trong L? t? ?n c?a 'Ng??i ph? n? tiên phong' Ree Drummond cho Mùa l? n?m 2021

Ng??i Ph? n? Tiên phong Ree Drummond ? ?ay ?? giúp b?n s?n sàng cho L? T? ?n. D??i ?ay là m?t s? món ?n ph? ngon nh?t c?a c? ?y.

'90 Day Fiancé': C?p nh?t v? tình tr?ng m?i quan h? c?a Mike Youngquist khi ng??i v? xa cách Natalie tán t?nh trong 'The Single Life'

Natalie tham gia '90 Day: The Single Life', nh?ng Mike Youngquist ?ang làm gì? ?ay là nh?ng gì chúng ta bi?t v? tình tr?ng m?i quan h? hi?n t?i c?a Mike.

Th? trò ch?i ? ch? nh? c?a chúng t?i

Th? trò ch?i ? ch? nh? c?a chúng t?i

???c c?p nh?t hàng tu?n, ? ch? nh? c?a chúng t?i k?t h?p các bài ??c c?a HowStuffWorks yêu thích c?a chúng t?i v?i các manh m?i th?ng minh!

Lo?i nào ho?t ??ng t?t nh?t: V? gi?t, B?t gi?t hay Ch?t l?ng?

Lo?i nào ho?t ??ng t?t nh?t: V? gi?t, B?t gi?t hay Ch?t l?ng?

Vi?c gi?t gi? là ?? t? mà kh?ng c?n ph?i lo l?ng v? vi?c l?a ch?n lo?i b?t gi?t phù h?p. Vì v?y, cái nào là t?t nh?t? Hay nó th?m chí còn quan tr?ng?

Cau chuy?n có th?t v? nh?ng ng??i da xanh ? Kentucky

Cau chuy?n có th?t v? nh?ng ng??i da xanh ? Kentucky

Gia ?ình Fugates và Combs ? vùng n?ng th?n Kentucky ?? thua cu?c x? s? di truy?n, c? hai ??u có chung m?t tính tr?ng l?n hi?m g?p khi?n da c?a h? có màu xanh khi k?t h?n. Nguyên nhan c?a ?i?u này là gì? Và ?i?u gì ?? x?y ra v?i các gia ?ình?

Li?u Condor California có th? gi?i c?u các loài?

Li?u Condor California có th? gi?i c?u các loài?

Hai chú gà con tr?ng kh?ng cha ?ang ???c nu?i d??ng trong m?t ch??ng trình c?u loài chó s?n California kh?i nguy c? tuy?t ch?ng. Làm th? nào mà nh?ng ca sinh 'trinh ti?t' nh? v?y l?i có th? x?y ra?

Xem ph?n gi?i thi?u bí m?t này v? Edsel, ch? còn 60 n?m n?a là quá mu?n

Xem ph?n gi?i thi?u bí m?t này v? Edsel, ch? còn 60 n?m n?a là quá mu?n

T?i m?t th?i ?i?m, ng??i k? chuy?n trong b? phim qu?ng cáo tr??c khi phát hành bí m?t dài 30 phút này cho Edsel nói "Edsel: chi?c xe ?? làm nên l?ch s? ? t? cho Ford Motor Company!" ?ó là m?t tuyên b? r?t có c? s?. Edsel hoàn toàn làm nên l?ch s? ? t?.

Phim ho?t hình Ng??i d?i và Harley Quinn ?ang có sê-ri truy?n tranh riêng

Phim ho?t hình Ng??i d?i và Harley Quinn ?ang có sê-ri truy?n tranh riêng

Hình ?nh: DC Comics Warner Bros. b? phim ho?t hình m?i nh?t c?a DC, Batman và Harley Quinn, l?y b?i c?nh là m?t th? gi?i mà Harley ?? quay l?ng l?i v?i Joker, ch? ?? ???c ??a vào th? gi?i c?a áo choàng và trang ph?c m?t l?n n?a ?? giúp Batman c?u th? gi?i kh?i Poison Ivy.

?ng là m?t khách hàng Starbucks nh? nhàng khó ch?u, ?ng Grinch

?ng là m?t khách hàng Starbucks nh? nhàng khó ch?u, ?ng Grinch

N?u anh ?y kh?ng ghét Giáng sinh ??n m?c, anh ?y có th? s? b?t nhan viên Starbucks vi?t tên anh ?y là “Merry Christmas” trên c?c. ?o?n gi?i thi?u ??u tiên ?? ra m?t cho The Grinch, b? phim ho?t hình Seuss-lite m?i nh?t thay th? các bài h?c cu?c s?ng y ngh?a b?ng các tài li?u tham kh?o v? v?n hóa ??i chúng và Tighty Whities.

Reagan Suy ngh? B? phim v? ngày t?n th? h?t nhan n?m 1983 này ?? xác th?c chính sách h?t nhan c?a ?ng

Reagan Suy ngh? B? phim v? ngày t?n th? h?t nhan n?m 1983 này ?? xác th?c chính sách h?t nhan c?a ?ng

B?n ?? t?ng xem b? phim truy?n hình ABC n?m 1983 The Day After ch?a? Nó ?m ??m nh? ??a ng?c, ?? nói r?ng ít nh?t. ?ó là m?t s? ki?n truy?n th?ng, v?i v? s? ng??i M? ch?t trong phim sau cu?c chi?n h?t nhan ?n mi?ng tr? mi?ng v?i Liên X?.

Cardi B và Con gái Kulture c?a Offset khoe bím tóc m?i tuy?t ??p trên Instagram

Cardi B và Con gái Kulture c?a Offset khoe bím tóc m?i tuy?t ??p trên Instagram

Cardi B và con gái 3 tu?i c?a Offset, Kulture, ?? khoe ki?u tóc t?t m?i trên Instagram.

Selena Gomez dành cho Cara Delevingne m?t n? h?n trên má vì Kiss Cam t?i Knicks Game

Selena Gomez dành cho Cara Delevingne m?t n? h?n trên má vì Kiss Cam t?i Knicks Game

"C? ?y r?t vui v? và c? ?y c?c k? m?o hi?m", Selena Gomez tr??c ?ay ?? nói v? ng??i b?n than Cara Delevingne

Madonna u?ng Gin t? chai trong phòng t?p th? d?c c?a c? ?y: 'Bu?i t?p h?m nay'

Madonna u?ng Gin t? chai trong phòng t?p th? d?c c?a c? ?y: 'Bu?i t?p h?m nay'

N? ca s? quy?t ??nh thay ??i thói quen t?p th? d?c vào th? N?m

Jamie Dornan nói r?ng anh ?y ?? ?ánh m?t vai siêu nhan vào tay Henry Cavill và ?? ti?p c?n Marvel ?? ???c ?óng vai siêu anh hùng

Jamie Dornan nói r?ng anh ?y ?? ?ánh m?t vai siêu nhan vào tay Henry Cavill và ?? ti?p c?n Marvel ?? ???c ?óng vai siêu anh hùng

Jamie Dornan ti?t l? anh ?? th? vai Siêu nhan nh?ng thua Henry Cavill; và anh ?y ?? nói chuy?n v?i Marvel v? vi?c tham gia MCU.

Languages

野花在线观看免费观看大全-野花视频在线观看免费观看8
国足最新出线概率0.08% 北京冬奥火炬宣传片获金花环奖 速度与激情9 得知母亲出事男子在地铁痛哭 国足战澳大利亚大名单:4归化在列 周冠宇成为中国首位F1车手 安娜贝尔 尚气与十环传奇 胡锡进谈中美元首会晤 红色通缉令 尚气与十环传奇 印度首都准备封城 房价上涨城市创七年新低 拐点来了? 24岁救人牺牲消防员获批为烈士 扫黑风暴 我要我们在一起 意大利错失直接晋级世界杯资格 中美元首会谈重点内容 中国共产党第三个历史决议全文发布 灵媒 意大利错失直接晋级世界杯资格 俄方回应卫星碎片危及国际空间站 中美元首是否达成新共识?中方回应 男子写80页PPT拯救爱情却离婚 动保组织向上饶信州区申请信息公开 许家印为恒大注入超70亿续命资金 动保组织向上饶信州区申请信息公开 千与千寻 意大利错失直接晋级世界杯资格 两个女人 浦发银行回应近3亿存款莫名被质押 罗永浩吐槽苹果文案没文化 大连现超级传播者26人在同一传播链 扫黑风暴 安娜贝尔 中美元首会谈重点内容 长津湖 图兰朵 24岁救人牺牲消防员获批为烈士 房价上涨城市创七年新低 拐点来了? 五个扑水的少年 大连一密接者擅自点外卖聚餐被调查 男子写80页PPT拯救爱情却离婚 #耿直真香哥黑化卖惨# 动保组织向上饶信州区申请信息公开 扫黑风暴 失控玩家 扫黑风暴 许家印为恒大注入超70亿续命资金 外交部回应拜登重申不支持台独 加拿大一枝黄花到底是什么? 中国医生 男子体检血中抽出2升油浆 红色通缉令 大连现超级传播者26人在同一传播链 国际人士热议中共十九届六中全会 俄方回应卫星碎片危及国际空间站 怒火·重案 得知母亲出事男子在地铁痛哭 嘉南传 中美元首是否达成新共识?中方回应 浦发银行回应近3亿存款莫名被质押 斗破苍穹 蜘蛛侠:英雄归来 扫黑风暴 林丹世界排名被正式移除 男子体检血中抽出2升油浆 大连现超级传播者26人在同一传播链 扫黑风暴 林丹世界排名被正式移除 国足战澳大利亚大名单:4归化在列
交口县| 根河市| 昆明市| 垫江县| 古丈县| 塘沽区| 那坡县| 都安| 潢川县| 杂多县| 大渡口区| 凤台县| 南皮县| 齐河县| 宁明县| 延吉市| 岳池县| 南木林县| 扎兰屯市| 泗阳县| 阳谷县| 滦平县| 白山市| 禄丰县|