thắc mắc Thiết kế hệ thống nhiều transaction

  • Người tạo chủ đề Người tạo chủ đề TracyNguyen_2910
  • Ngày bắt đầu Ngày bắt đầu

TracyNguyen_2910

Junior Member
Hi mọi người . Em đi phỏng vấn gặp câu hỏi thiết kế hệ thống như sau:

Thiết kế hệ thống "high volume transaction".

- Có 6 server trong đó tối đa 3 server có thể được sử dụng cho cơ sở dữ liệu quan hệ. Mỗi server cơ sở dữ liệu có thể mở 500 connection.

  • Hệ thống có thể handle nhất 6000 concurrent requests (5 read/ 1 write)
  • Data phải consistency
  • Provide real-time feedback cho user

Bác nào có thể gợi ý hoặc cho em xin link hay doc để học về cách thiết kế những hệ thống như vậy ạ

Note: cho em hỏi thêm với những số liệu như trên thì tính toán như nào để đưa ra được thiết kế ạ

Em cám ơn
 
Sửa lần cuối:
3 server thì là replication rồi. bao gồm 1 master - 1 slave - 1 vote.

Còn lại 3 server. 1 vào application , 1 vào redis cache or mongo, 1 vào mq
 
Hi mọi người . Em đi phỏng vấn gặp câu hỏi thiết kế hệ thống như sau:

Thiết kế hệ thống "high volume transaction".

- Có 6 server trong đó tối đa 3 server có thể được sử dụng cho cơ sở dữ liệu quan hệ. Mỗi server cơ sở dữ liệu có thể mở 500 connection.

  • Hệ thống có thể handle nhất 6000 concurrent requests (5 read/ 1 write)
  • Data phải consistency
  • Provide real-time feedback cho user

Bác nào có thể gợi ý hoặc cho em xin link hay doc để học về cách thiết kế những hệ thống như vậy ạ
Em cám ơn

Nhìn số liệu thì có vẻ đây là một bài toán thực tế từ hệ thống của người phỏng vấn.

3 con SQL thì 1 master 2 replica.
1 con để cache có thể dùng redis, memcache, searchengine gì đó, đại loại là nosql.
2 con còn lại.. tôi cũng ko biết nên để vào làm việc gì vì 6k CCU thì trên kia là đủ rồi.
 
Nghĩa là mở được tối đa 500 connection thì cứ mở cả 500 connection hả bro?
Tuỳ hardware specifications. Default nó là 100, nếu cần thì cứ tăng lên thôi sợ gì đâu. Đề bài nó cho 500 là limit của hardware bên nó thôi.

Còn pool size lại là đề tài khác. Pool size = 500 thì đúng là vô lý ko ai cần.
 
tớ có đề thôi, 2 bài lận, bài một cũng chua đấy
1636111927270.png


1636111949919.png

1636111992198.png

Tưởng nó bỏ rồi chứ =)).
 
Luôn tiện transaction cho e hỏi câu này với:

Có một hệ thống xử lý giao dịch nông sản, một giao dịch thành công khi ông A bán đi n sản phẩm từ kho của mình, thì n sản phẩm này sẽ được chuyển sang kho của ông B. Thì câu hỏi là nếu giả sử request này được call tới 2 lần ở server thì phải làm thế nào để ngăn không cho xảy ra thêm giao dịch.

Sorry câu cú em hơi lủng củng vì e cũng nhớ mai mại lại từ người phỏng vấn em. Các bác có gặp qua câu này rồi thì xin giải ngố giúp ạ
 
Luôn tiện transaction cho e hỏi câu này với:

Có một hệ thống xử lý giao dịch nông sản, một giao dịch thành công khi ông A bán đi n sản phẩm từ kho của mình, thì n sản phẩm này sẽ được chuyển sang kho của ông B. Thì câu hỏi là nếu giả sử request này được call tới 2 lần ở server thì phải làm thế nào để ngăn không cho xảy ra thêm giao dịch.

Sorry câu cú em hơi lủng củng vì e cũng nhớ mai mại lại từ người phỏng vấn em. Các bác có gặp qua câu này rồi thì xin giải ngố giúp ạ
Tôi sẽ làm như này, request chia 2 lần gọi,

1 init sẽ tạo bản ghi, status là begin_transaction, có unique id

2 place order, phải truyền cả cái unique id mới valid. Status chuyển từ begin sang ordering. Đặt lệnh đc phụ thuộc vào status


ĐPCM
 
Tôi sẽ làm như này, request chia 2 lần gọi,

1 init sẽ tạo bản ghi, status là begin_transaction, có unique id

2 place order, phải truyền cả cái unique id mới valid. Status chuyển từ begin sang ordering. Đặt lệnh đc phụ thuộc vào status


ĐPCM

Request 1 bác đã khởi tạo luôn transaction ở db nhưng chưa commit hả bác?
 

Thống kê chủ đề

Ngày tạo
TracyNguyen_2910,
Người trả lời cuối
vuduc219,
Trả lời
20
Lượt xem
3.821
Quay lại
Lên đầu trang