Size: a a a

2020 April 29

J

Jefferson in Go-go!
Валидность сессии проверяю так:
func AuthCheck() gin.HandlerFunc {
 return func(ctx *gin.Context) {
   session := sessions.Default(ctx)
   user := session.Get("user")
   if user == nil {
     ctx.Redirect(302, "/login/")
     ctx.Abort()
     return
   }
 }
}
источник

J

Jefferson in Go-go!
Использую github.com/gin-gonic/contrib/sessions
источник

DP

Daniel Podolsky in Go-go!
Константин Митюрин
Всем привет! Такой вопрос, решили на Го написать быстрый обработчик метрик в веба с использованием fasthttp. Суть простая - максимально быстро принять http коннект, взять данные, слить в канал и освободить коннект. Далее на фоне уже из канала в горутине забирать данные и отправлять пачками в базу. Прототип написали, и вроде, как все работает. Но проблема в другом, мало того, что скоростью тут и не пахнет, так еще и после обратки http запроса, каждый из них на уровне OS - уходит в time_wait. Естественно, через некоторое время большинство новых коннектов получают на своей свотроне - Connection reset by peer ибо в системе закончились сокеты, конечно, сколько-то там попадает, когда часть time_waitов умирает. Может у кого есть мысли, как реализоваться максимально конкуретный прием на fasthttp?
SO_REUSEADDR  проставляете?
источник

КМ

Константин Митюрин... in Go-go!
нет
источник

DP

Daniel Podolsky in Go-go!
а надо бы, это поможет с time_wait
источник

КМ

Константин Митюрин... in Go-go!
спасибо, попробую
источник

DP

Daniel Podolsky in Go-go!
про тормоза на приеме - надо смотреть на код.
источник

КМ

Константин Митюрин... in Go-go!
однако, не помогает
источник

КМ

Константин Митюрин... in Go-go!
закинул 10к запросов:

  9841 TIME_WAIT
     3 ESTABLISHED
     1 Foreign
     1 established)
    12 LISTEN
источник

КМ

Константин Митюрин... in Go-go!
+10к

     4 ESTABLISHED
     1 Foreign
     1 established)
 19841 TIME_WAIT
    12 LISTEN
источник

КМ

Константин Митюрин... in Go-go!
еще +10к

     3 ESTABLISHED
 29841 TIME_WAIT
     1 Foreign
     1 established)
    12 LISTEN
источник

MM

Mansur Mansurov in Go-go!
Привет всем, кто нибудь уже переходил на новое API Protobuf?
источник

VM

Vladislav Milenin in Go-go!
Mansur Mansurov
Привет всем, кто нибудь уже переходил на новое API Protobuf?
Что там?
источник

VM

Vladislav Milenin in Go-go!
Грпс поддерживает?
источник

RS

Roman Sharkov in Go-go!
Константин Митюрин
Всем привет! Такой вопрос, решили на Го написать быстрый обработчик метрик в веба с использованием fasthttp. Суть простая - максимально быстро принять http коннект, взять данные, слить в канал и освободить коннект. Далее на фоне уже из канала в горутине забирать данные и отправлять пачками в базу. Прототип написали, и вроде, как все работает. Но проблема в другом, мало того, что скоростью тут и не пахнет, так еще и после обратки http запроса, каждый из них на уровне OS - уходит в time_wait. Естественно, через некоторое время большинство новых коннектов получают на своей свотроне - Connection reset by peer ибо в системе закончились сокеты, конечно, сколько-то там попадает, когда часть time_waitов умирает. Может у кого есть мысли, как реализоваться максимально конкуретный прием на fasthttp?
а вы пытались выяснить почему именно там скоростью не пахнет?
источник

DP

Daniel Podolsky in Go-go!
Константин Митюрин
+10к

     4 ESTABLISHED
     1 Foreign
     1 established)
 19841 TIME_WAIT
    12 LISTEN
ну дальше уже надо смотреть в подробностях
источник

DP

Daniel Podolsky in Go-go!
Mansur Mansurov
Привет всем, кто нибудь уже переходил на новое API Protobuf?
это какое?
источник

MM

Mansur Mansurov in Go-go!
Daniel Podolsky
это какое?
источник

MM

Mansur Mansurov in Go-go!
Пытаюсь сгенерить proto-файл новым плагином, который они указывают в доках. Но что-то ругается.
источник

MM

Mansur Mansurov in Go-go!
Vladislav Milenin
Грпс поддерживает?
Это я и хочу понять :)
источник