Anton
Alexander
4+ результата
Anton
С этим я согласен
Anton
с этим потихоньку тоже боремся
Alexander
Ну тут в целом либо мучаться с длиной, либо рефакторить и думать как по красоте
Игорь
Alexander
Игорь
покажи код еще раз и опиши задачу
делаю так:
https://github.com/angelbarrera92/basic-auth-reverse-proxy
задача такая: Есть приложение, у которого есть web интерфейс, его хочу закрыть авторизациеq с проксированием, на выходе получается следующие% все отлично работает, но создаются много файлов, а так как веб приложение отрисовывает графики, оно постоянно обновляет и забивает limit в виде 10000 примерно за 5 минут и отваливается с ошибкой too many open files. Проверяю количество файлов lsof -p process, если вы попробуете по обновлять страничку, куда вас от проксировало, то увидите, что открываются новые файлы и ничего не закрывается
Игорь
Что пробовал: выставлял timeout на proxy - ничего не изменилось, пробовал прописывать body.close такая же история...
Alexander
а не можешь сценарий использования описать?
Игорь
а не можешь сценарий использования описать?
есть веб оболочка сервиса, где много графических иллюстраций, но по умолчанию в этом веб-сервисе нет аунтефикации/авторизации, я решил сделать эту авторизацию на самописном приложении, с использованием прокси, то есть. Сейчас, чтобы попасть на веб страничку этого сервиса необходимо, зайти на мою проксю, проавторизироваться там и тогда можно пользоваться веб ресурсом.
Проблема: после авторизации, если сидеть на сайте и например обновлять или javascript, что то обновляет на страничке, создаются новые файлики соединений, не удаляя предведущие, после этого достигается лимит на сервере открытых файлов.
Тимофей
а в го, за императивную парадигму сильно хейтят?
Alexander
есть веб оболочка сервиса, где много графических иллюстраций, но по умолчанию в этом веб-сервисе нет аунтефикации/авторизации, я решил сделать эту авторизацию на самописном приложении, с использованием прокси, то есть. Сейчас, чтобы попасть на веб страничку этого сервиса необходимо, зайти на мою проксю, проавторизироваться там и тогда можно пользоваться веб ресурсом.
Проблема: после авторизации, если сидеть на сайте и например обновлять или javascript, что то обновляет на страничке, создаются новые файлики соединений, не удаляя предведущие, после этого достигается лимит на сервере открытых файлов.
смари, вот тут видно, что используется дефолтный хттп транспорт: https://pkg.go.dev/net/http/httputil#ReverseProxy
Тимофей
я просто думал некоторые сессионые переменные в структуре хранить но "[signal SIGSEGV: segmentation violation code=0x1 addr=0x10 pc=0x628eb8]", и я хз как это фиксить, думаю теперь просто переменные хранить
Alexander
тебе надо таймауты и время закрытия idle connection'ов выставить, тут подсказка нужна или знакомо?
Alexander
и скорее всего все будет работать. плюс если на транспорт указатель сохранишь, то там есть метод CloseIdleConnections()
Игорь
Игорь
спасибо за подсказку
Alexander
Karisha
🔥 𝗚𝗼𝗹𝗮𝗻𝗴 𝗱𝗲𝘃𝗲𝗹𝗼𝗽𝗲𝗿 🔥
⠀
#вакансия #go #golang #React
⠀
📝Компания существует на рынке более 4х лет и сейчас уверенно развивается.
⠀
✅Головной офис компании находится в Таллине, Эстония. Проект связан с торговлей криптовалютами на различных биржах, автоматизация, боты, торговые интерфейсы. Компания официально работает с крупнейшими представителями индустрии. Проект не хайп, не МЛМ, не сетевой маркетинг, не проводили ICO. Цель проекта - приносить ценность целевой аудитории, поэтому людей ищут для работы "в долгую".
⠀
Сейчас ребята в поиске удаленного Go-разработчика. Вашей первой задачей станет отладка и запуск нового торгового бота в стеке Golang/Websockets/gRPC/Tarantool.
⠀
🔥Обязательные требования:🔥
⠀
- Опыт разработки на Golang более 3 лет
- Опыт разработки микросервисов
- Опыт работы с Docker/Kubernetes
- Опыт работы с gRPC/Websocket
- Понимание основных концепций языка
- Базовые знания Linux
- Опыт написания Unit тестов
- Умение доводить задачи до конца, ответственность и самостоятельность при принятии решений
- Умение профилировать код, выявлять и исключать рейсы с дедлоками.
⠀
Будет плюсом:
⠀
- Опыт трейдинга, или хотя бы представление. Термины, применяемые методики, алгоритмы, индикаторы, сигналы
- Опыт работы с NoSQL БД Tarantool
Портфолио с кодом на Golang
⠀
Мы предлагаем:
⠀
Достойную зарплатную вилку
Оплачиваемый отпуск и больничный
Карьерный рост
Работу в процветающей и перспективной компании
Maks
лол только щас допер что в голанг можно конструктор скрыть вообще
Maks
у структуры
Alexander
Мм?
Maks
и оставить для создания новой структуры только метод New() с параметрами например.
Alexander
В смысле ты хочешь приватной саму структуру сделать?
Maks
да
Maks
я так и сделал
Maks
Я не думаю что это антипаттерн
Alexander
Тоже были такие мысли, но потом как в клиентском коде функции куда это передаешь писать?
Alexander
Только если интерфейс к этому делу прикрутить
Maks
а я понял
Maks
верно
Alexander
Антипаттерн
Alexander
Не советуют в целом
Maks
соглы
whois
Друзья, такой вопрос.
Допустим у меня есть труктура:
T1 {
T2{
X int
}
}
Как мне ее инициализировать литералом.
obj := T1{
T2{
X: 1,
},
}
не работает
Alexander
T2:{
Alexander
Скорее всего
Alexander
Вообще не понимаю зачем пихать структуры не объявленные выше
whois
Maxim
Maks
Maks
Не понял что не так
Maks
ааа, в том что он их не объявляет
Maks
я понял
whois
Круто, типо того
🅞leksiy
whois
e2
Почему сервак на может стопаться при отконнекте от рдп?
e2
точнее от ссш
Alexander
В смысле?
Dmitry
Всем привет. Скажите, никто не сталкивался с проблемой генерации подпись для imgproxy? Их код из сэмплов для go невадидный, при этом в том же JS подпись генерируясь без проблем…
Dmitry
Я что-то уже упоролся в поисках
🅞leksiy
А у них в чате написать, не? https://gitter.im/imgproxy/imgproxy
Александр
есть быстрый HTTP Server фреймворк FASTAPI https://pkg.go.dev/github.com/lxzan/fastapi@v1.0.0
вроде как асинхронный, но вот в чем прикол, каккая от него польза, если у нас драйвера к DB не асинхронные?
Maks
Блин хз, использовать жвт или нет
Maks
Из недостатков - смена пароля не обнуляет действие старого жвт токена в классическом подходе жвт
Emil
А что альтернатива?
Я вот сейчас пытаюсь пристроить опенайди с оаутхом, но и там токены...
Uładzislaŭ
Всем привет. Как вытащить данные из такой конструкции? Принтом выводятся значения:
fmt.Println("Value:", param)
...
Value: [2740 1762]
Maks
наверное по индексу или перебором по значению
Maks
Maxim
Maks
Uładzislaŭ
for выводит?
ide подсказывает:
Cannot range over 'param' (type interface{})
Maxim
for _, val := range test {
fmt.Println(val)
}
Maks
видимо это связано с тем, что у тебя там разного типа данные могут придти якобы
Maxim
Но все равно к типу приводить val
Uładzislaŭ
Emil
Очень ли плохо хранить тесты ко всем ошибкам в файле логера?
Лучше хранить ошибки в своем пакете?
Maks
Emil
Мне просто показалось красиво, что все для логера в его пакете, но тогда от него зависит вообще все...
Maks
У тебя логгер просто пишет лог, ты ему говоришь куда, какой уровень, какой текст
Emil
тексты я сделал шаблонами, вот и думаю, где хранить шаблоны лучше, где их будут вызывать или в одном месте
Maks
Ну я представляю это примерно так. У тебя есть компонент который может вбросить определенную ошибку. Например курл компонент говорит что сервер не отвечает или ответ не 200. Значит в нем ты хранишь эти шаблоны. То есть без этого компонента эти шаблоны не нужны.
Emil
Резонно
Спасибо)
Maks
По поводу jwt и сессий вот че нашел