@scala_ru

Страница 156 из 1499
Daniel
12.10.2016
10:23:37
это хорошо если в разрезе сессий не нужно лимитировать

Alexandr
12.10.2016
10:26:21
max_conns
Так это и есть то топорное решение) Там нормальные разрезы не задать

И очередь не организовать

Mikhail
12.10.2016
10:27:14
это не топорное решение, это стандартная практика)

Google
Mikhail
12.10.2016
10:27:19
оно ставится в очередь

ограничиваются не входящие подключения к nginx, а исходящие к апстрим и входящие ждут свободного слота к апстриму

это хорошо если в разрезе сессий не нужно лимитировать
Павел пока что еще не описал, что именно он все таки хочет лимитировать и какая стратегия обработки сверх лимита)

Alexandr
12.10.2016
10:29:22
И как ограничить количество висящих входящих, чтобы оно, например, не перевалило за 10000?

Mikhail
12.10.2016
10:29:56
отдельный лимит на входящие в nginx

есть ограничения применяемые к входящим, а есть апстримы - у них свои настройки. и на один исходящий адрес можно завести разные апстримы и по разному сконфигурировать, а затем по условию выбирать нужный апстрим. входящие тоже конечно можно по разному сконфигурировать - но вроде без создания альясов, за счет блоков с условиями - это вполне нормально и часто гораздо проще, чем пытаться где-то в бекэнде настраивать

Alexandr
12.10.2016
10:40:57
Ну, у nginx'a нет такого способа, чтобы я мог сказать, например, "если количество одновременных соединений с одного ip (именно одновременных, а не per second) превышает некоторое число, ставь их в очередь, и если очередь превысит некоторую длину, обрубай все, что приходит сверх"

Mikhail
12.10.2016
10:42:48
никто не говорит, что он подходит под все случаи) всегда можно придумать кейс который не уложится в возможности настройки - но главный вопрос - будет ли он взят из реального мира? )))

можно просто ограничить кол-во конкурентов с одного айпи - а вот зачем их ставить в очередь - хм.

можно сделать ограничение по айпи в сотню и отдельно общий лимит - это может быть уже приемлимо (к апстриму они будут все равно в очередь выстраиваться)

Pavel
12.10.2016
10:49:46
я пока простое решение хочу: рубить вообще всем, если в данную секунду пришло больше, чем N запросов. На уровне nginx не получится, потому что нужна другая бизнесовая логика - что-то типа старого кэша с пердупреждением, что это старьё

Viacheslav
12.10.2016
10:51:51
глянь вот, возможно подойдёт https://github.com/vladimir-bukhtoyarov/bucket4j

Alexandr
12.10.2016
10:53:19
можно просто ограничить кол-во конкурентов с одного айпи - а вот зачем их ставить в очередь - хм.
Потому что иногда бывает гораздо лучше, если клиент подождет 5 секунд, но получит ответ на запрос, чем сразу отвалится с ошибкой "Too many requests"

Google
Pavel
12.10.2016
10:55:59
спасибо за ссылки? Да, похоже вариант выше для моего случая идиоматичен - там просто фильтр вешается

Mikhail
12.10.2016
11:06:36
Alexandr
12.10.2016
11:08:24
Так это и есть "выстроить в очередь"

Mikhail
12.10.2016
11:08:28
Так это и есть "выстроить в очередь"
только немного будет отличаться тем, что макс-конн для входящих будет вешаться на все запросы от конкретного айпи. и соответственно остальные акшены - тоже будут в этот лимит попадать и сьедать) но все опять таки надо смотреть на реальных не только кейсах, но и действительных потоках данных - много вещей могут быть неактуальны)

Pavel
12.10.2016
11:11:32
да, я неверно выразился, не совсем "рубить"

folex
12.10.2016
17:56:50
Меня регулярно поражают в скале какие-то дебильные недоделки в самом сердце языка. Например нетипизированное ==, или вот щас столкнулся: trait SomeName { def someMethod(a: String) } class SomeClass extends SomeName { def someMethod(a: String) = a + 1 } Что выдаст (new SomeClass).someMethod("abc"), как думаете?

Alexandr
12.10.2016
17:58:56
Разве можно делать абстрактные методы без указания типов?

folex
12.10.2016
17:59:08
правильный ответ

оказывается можно

и они будут : Unit

Aleksei
12.10.2016
17:59:26
ахахахаха =)

скала паззлерс

folex
12.10.2016
18:00:16
больше похоже на недоделку чем какую-то хитрую особенность

Nikolay
12.10.2016
18:03:20
можно флагами компилятора это выровнить?

чтобы был warning хотя бы

folex
12.10.2016
18:05:13
в каком смысле необходимо?

всмысле стоит придерживаться такого правила?

ну то есть компилятор не ругается

Google
folex
12.10.2016
18:05:43
@le_xs

Alexey
12.10.2016
18:07:22
ну то есть компилятор не ругается
С его точки зрения проблем нет. Да, это может быть улучшено. Ровно так же может быть улучшен "code style" пишущего def shit(arg: Type)

folex
12.10.2016
18:07:56
это всё понятно

но вот ты 10й час на работе, и забыл написать : String

Alexey
12.10.2016
18:08:06
Что бы ты сказал увидев такой trait?

folex
12.10.2016
18:08:09
в итоге сиди и отлавливай

я ж не говорю что так надо писать

Alexey
12.10.2016
18:09:03
но вот ты 10й час на работе, и забыл написать : String
На 10м часу можно и посложнее проблем накодить))

folex
12.10.2016
18:09:21
Не зря ж типизация и вот это всё. Хочется помощи от , и она есть, и ты к ней привыкаешь

а потом делаешь (образно) что-то вроде new {} == (new SomeClass).someMethod({} + {}), и получаешь букет непонятностей

Alexey
12.10.2016
18:10:43
Я начинал одновременно на javaScript/Scala. Я конечно не против помощи компилятора, но JS отучил))))

folex
12.10.2016
18:11:02
я бы был рад, если бы человечество отучилось от JS

folex
12.10.2016
18:11:10
и сожгло бы его ссаными тряпками

(очень не люблю жс)

folex
12.10.2016
18:14:38
в жс всё с ног на голову :)

Alexey
12.10.2016
18:17:50
(очень не люблю жс)
Я ОЧЕНЬ не люблю JS. И еще больше не люблю современные тенденции и библиотеки, которые писали *извините мой французский* какие еб..ый д..лы левой ногой во время пмс Я не хотел никого обидеть, если вдруг тут есть авторы) Но то что я видел ужасно

Wystan
12.10.2016
18:18:06
что ты видел?

Alexey
12.10.2016
18:18:21
Помощь компилятора эт плохо?)
Это хорошо. Но не должно заменять голову (:

Ivan
12.10.2016
18:18:45
что ты видел?
переусложненные монстры насколько я понимаю

Google
Wystan
12.10.2016
18:19:00
http://dobrochan.com/src/jpg/1610/Cug1rtMWcAE4ND1.jpg_large.jpg

Alexey
12.10.2016
18:19:32
что ты видел?
Начнем с популярного. npm, bower

Nick
12.10.2016
18:20:33
Это хорошо. Но не должно заменять голову (:
Я просто пытаюсь вспомнить где компилятор не помогает)))

Alexey
12.10.2016
18:20:40
http://dobrochan.com/src/jpg/1610/Cug1rtMWcAE4ND1.jpg_large.jpg
backbone, кстати, я еще нормально перенес.

folex
12.10.2016
18:20:56
folex
12.10.2016
18:21:16
вот еще за всякий бойлерплейт волноваться

Admin
ERROR: S client not available

Alexey
12.10.2016
18:21:22
folex
12.10.2016
18:21:55
хаскель никак не помогает в вопросе проверки скальным компилятором такого рода проблем, так что не оч понял

Nick
12.10.2016
18:21:58
folex
12.10.2016
18:22:06
а менять язык из-за такой мелочи -- это как-то слишком

в общем

люблю тишину в ТГ после вброса нового стикерпака :)

Mikhail
12.10.2016
18:23:47
val i = 5 val s = i.asInstanceOf[String] println("s: "+s) // Exception in thread "main" java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String //WTF, compiler????? Where are you, mother fucker?

?

Wystan
12.10.2016
18:24:24
вставляй пальца в розетку @ жалуйся на управдом

Nick
12.10.2016
18:24:26
Alexey
12.10.2016
18:24:40
а менять язык из-за такой мелочи -- это как-то слишком
» Мелочи Я вот тоже не против набора неприятных мелочей когда инструмент удобный

Google
Mikhail
12.10.2016
18:24:59
к тому, что компайлер много где не помогает)

folex
12.10.2016
18:25:19
-_-

Alexey
12.10.2016
18:25:19
Хде
def someMethod(a: String)

Nick
12.10.2016
18:25:31
к тому, что компайлер много где не помогает)
А с чего он в этом случае должен тебе помочь

def someMethod(a: String)
Них не понял

Alexey
12.10.2016
18:26:34
Них не понял
Не читал, но осуждаю?

folex
12.10.2016
18:26:38
@le_xs кому-то может быть

Mikhail
12.10.2016
18:26:49
я и не говорю, что должен) просто факт) хотя я был бы не против, если бы он сказал мне в этом случае, что я мудак и там это будет)

Mikhail
12.10.2016
18:28:28
она и с кастом хороша)

Alexey
12.10.2016
18:28:31
А, еще, я не говорил еще? Я только потроллить захожу сюда, когда кодить уже лень, а заняться более нечем. Причиной этому 95% флуда в этом чате

Nikolay
12.10.2016
18:28:57
в идее часто такие проблемы отмечаются как warning-и, для == там unrelated types предупреждение. можно выкрутить флаги компилятора чтобы warning-и на все ставил, и -Xfatal-warnings чтобы на warning-ах компиляция падала

folex
12.10.2016
18:29:41
@le_xs такой себе троллинг

больше похоже на странные сообщения

Nikolay
12.10.2016
18:29:53
не знаю насчет ситуации с публичными методами без явного указания типов, но часто очень помогает

Страница 156 из 1499