Bài toán đặt ra
Khi bạn có một service cần xử lý request và bạn có 2 cách A và B để thực hiện luồng handle request đó. Bạn cần phân chia 40 % request sẽ được xử lý theo các A và 60 % request sẽ được xử lý theo cách B. Khi đó, service được thiết kế như thế nào?
Solution
Solution 1
Golang cung cấp hàm random và xử lý bài toán trên như sau:
1. Dùng hàm random, generate một số x random với nằm trong khoảng [0,100)
2. Nêú x < 40, request handle theo hướng A
3. Nếu x > 40, request handle theo hướng B
simple code:
package main import ( "fmt" "math/rand") func main() { max := 100
count1 := 0
count2 := 0
for i := 0; i < 1000; i ++ { x := rand.Intn(max) fmt.Println(x) if x < 40 { count1 +=1 } else { count2 += 1 } } fmt.Println(count1, count2) }
Đã test thực tế, tỉ lệ % khá chính xác.
Không có nhận xét nào:
Đăng nhận xét