@proGO

Страница 1434 из 1674
The
10.05.2018
11:53:55
тут есть немного простеньких примеров, за чем-то большим нужно гуглить, сходу не вспомню

Daniel
10.05.2018
11:54:24
потому что iPhone если я не ошибаюсь был дороже, и ничем не лучше
вот еще телефоносрача нам тут не хватало. завязываем. желающие могут сами сравнить количество проданных экземпляров.

Dmitri
10.05.2018
11:56:01
пример реализации микросервиса
А чо там в примере писать? Смотри, тебе надо abc, bcd, cde обрабатывать разными "плагинами". И у тебя УЖЕ есть сервер с https, вероятно, nginx. Ты делаешь 3 приложения abc, bcd, cde, каждое слушает свой порт. Нжынксом настраиваешь locatoin'ы с прокси эндпоинтов на нужные порты

Google
Dmitri
10.05.2018
11:56:26
Это и будет "микросервисная архитектура")))

Pawel
10.05.2018
11:56:51
на самом деле - go довольно проходной инструмент, на мой взгляд, и основная его ценность в том, что он задал для индустрии новую планку. как первый айфон, сам по себе был телефоном довольно скучным, но заставил остальных участников рынка шевелиться.
ценность Го в том, что он скрывает event loop от программиста. В то время как большинство хайповых технологий его навязывают (async/await, tEA, redux, промисы, callbacks, frp, ). Людям надоело писать конечные автоматы, хочется простого синхронного кода

Anton
10.05.2018
11:57:16
у меня была идея использовать nginx, написать модуль - чтобы по своему протоколу общался и потом возвращал результат. Так вот никак не подберусь к nginx

Daniel
10.05.2018
11:58:19
зачем модуль? в nginx все есть уже ровно для задачи фронта к микросервисам

Anton
10.05.2018
11:59:45
зачем модуль? в nginx все есть уже ровно для задачи фронта к микросервисам
Получить через nginx запрос в json -> завернуть в свой протокол - передать локально по сокету сервису, подождать результат - развернуть протокол в json ответ и отдать клиенту

Roman
10.05.2018
12:00:13
а где не странно?
а еще хочу я произвольные fd добавлять во внутренний поллер, который в internal

Dmitri
10.05.2018
12:00:59
ну вот json-завернуть и json-развернуть это уже не совсем задача фронта, имхо... оно тебе фронт по производительности в гумно просадит...

ну и, собственно, изобретать свой протокол - тоже "так себе" задача, которую еще, пожалуй, обосновать стоит...

Google
Dmitri
10.05.2018
12:02:19
у тебя есть json, xml - искаропки, protobuf - с полпинка...

Roman
10.05.2018
12:02:31
Roman
10.05.2018
12:02:52
зачем?!
пакетики отправлять/получать быстро без лишних контекст-свитчей.

сейчас для udp надо по сисколлу на пакет

Dmitri
10.05.2018
12:03:27
пакетики отправлять/получать быстро без лишних контекст-свитчей.
ну вот это не на Go, вероятно, делать надо, если реально прирост производительности нужен...

Dmitri
10.05.2018
12:03:45
оно у тебя один хрен в ядро упрется же...

Roman
10.05.2018
12:04:01
оно у тебя один хрен в ядро упрется же...
с чего вдруг такой тезис и без профайлинга? )

Anton
10.05.2018
12:04:37
ну и, собственно, изобретать свой протокол - тоже "так себе" задача, которую еще, пожалуй, обосновать стоит...
уже реализовал, один класс. передаешь буффер и пишеш любые структурированные данные, и потом их читаешь. разные типы данных. без приготоввлений типа protobuf - просто пишеш и читаешь потом. Ограничение на пакеты 128кб, чтобы не садить производительность

Dmitri
10.05.2018
12:05:08
ну почему же?
ну, какбэ, последние наработки этих ваших фейсбучеков и прочих гугелей в области скорости сетевого стека идут, в основном, в сторону "пустить, насколько возможно, сетевой стек мимо ядра..."

Daniel
10.05.2018
12:05:13
сейчас для udp надо по сисколлу на пакет
ну вот разве что. и понятно, что сделать эту фишку кросплатформенной не получится, и, соответственно, можно просто написать себе либу на С и обертку к ней

Vadim
10.05.2018
12:05:37
В конечном итоге все делает либа на сях
Тоже думаю, что в итоге придётся пользоваться библиотекой на сях. А как там по скорости?

Roman
10.05.2018
12:06:44
ну, какбэ, последние наработки этих ваших фейсбучеков и прочих гугелей в области скорости сетевого стека идут, в основном, в сторону "пустить, насколько возможно, сетевой стек мимо ядра..."
я умею в kernel bypass и даже его делал на go :) но давайте смотреть правде в глаза: сисколл стоит 42ns без включенного аудита, ~73ns - со включенным. если у нас dns-сервер, то это больно.

Dmitri
10.05.2018
12:07:13
с чего вдруг такой тезис и без профайлинга? )
ну, тут, какбэ, два забавных наблюдения: 1. оно не будет быстрее, чем ему позволит его нижележащая платформа 2. оно не будет быстрее, чем ему позволит сборщик мусора например Как правило, заради производительности, в первую очередь, отказываются именно от GC...

уже реализовал, один класс. передаешь буффер и пишеш любые структурированные данные, и потом их читаешь. разные типы данных. без приготоввлений типа protobuf - просто пишеш и читаешь потом. Ограничение на пакеты 128кб, чтобы не садить производительность
ну а чем тебя, в таком случае, nginx не устраивает. Вот он какой набор байт примет, такой набор байт и отдаст нижележащему сервису... А вот сериализовать/десериализовать - оно на сервисе, например, может

Roman
10.05.2018
12:08:27
ну вот разве что. и понятно, что сделать эту фишку кросплатформенной не получится, и, соответственно, можно просто написать себе либу на С и обертку к ней
на самом деле вполне получится. надо лишь интерфейс, который оперирует массивом из []byte, а вот эти read/write/send - это лишь частный случай, где массив из одного элемента )

Google
Daniel
10.05.2018
12:10:33
я умею в kernel bypass и даже его делал на go :) но давайте смотреть правде в глаза: сисколл стоит 42ns без включенного аудита, ~73ns - со включенным. если у нас dns-сервер, то это больно.
а давай подробнее! сколько у тебя одновременно запросов в работе, что тебе эти наносекунды уперлись? я бы понял, если бы ты о потреблении проца говорил

Meow
10.05.2018
12:10:40
Тоже думаю, что в итоге придётся пользоваться библиотекой на сях. А как там по скорости?
Возьмем тот же TensorFlow от гугла. Сама либа написана на C++, хотя используется чаще всего на Python. В том же пайтоне или go задается только логика вычислений, а сами вычисления производит уже сама либа на проце или видеокарте. По этому выбор языка здесь не критичен, он не должен быть обязательно быстрым.

Dmitri
10.05.2018
12:11:01
и такой вариант подойдет. не подскажешь конфиг какой нужно в nginx чтобы он отдавал и ждал данные по порту?
смотри, получится у тебя примерно так: Приложуха abc висит на локалхосте на порту 5555 bcd - там же на 5556 cde - ну, там список продолжи. В конфиге нджинкса пишешь: location /abc { proxy_pass localhost:5555; } И так повторяешь для каждого эндпоинта с нужными портами.

Roman
10.05.2018
12:15:11
ну, т.е. на го сильно быстро, один хрен, не получится? Вы про это?
получится. просто речь о том, что придется кучу всего делать самому. это печаль =(

Daniel
10.05.2018
12:15:38
ну можно же один раз сделать и заопенсорсить!

Daniel
10.05.2018
12:19:08
3 миллиона сисколов по 73ns занимают примерно 0.22 секунды.

Meow
10.05.2018
12:20:30
Чего там, лучше уж тогда напечатать ASIC под свои нужды ?

Pawel
10.05.2018
12:21:58
хоть я и одепт концепции неявного event loop, но async/await все-таки куда более мощная концепция и куда более эффективная с точки зрения потребления ресурсов.
async/await уродует код, прервращая каждую функцию в конечный автомат. Это 100%-ный костыль. Про эффективность вы лукаваите. Конечные автоматы дают пенальти на каждый вызов каждой асинхронной функции. Это помимо того, что их фиг заинлайнишь. И живут они в куче, а не в стеке.

Николай
10.05.2018
12:23:54
Господа, такой вопрос. Как лучше сделать вывод изображений на клиент? По средствам обработки запроса в golang? Или пробрасывать к файлу по nginx?

Yerbol
10.05.2018
12:24:55
асинк авейт удобные штуки

не гоните

Roman
10.05.2018
12:25:14
3 миллиона сисколов по 73ns занимают примерно 0.22 секунды.
Да, только надо ещё что-то полезное поделать

Daniel
10.05.2018
12:25:51
Господа, такой вопрос. Как лучше сделать вывод изображений на клиент? По средствам обработки запроса в golang? Или пробрасывать к файлу по nginx?
зависит от размера и количества. мелкие - строго пофиг. крупные имеет смысл отдавать через nginx

Daniel
10.05.2018
12:27:17
а, да, https - строго пофиг, потому что все равно будет чтение блоками и передача в шифратор

Daniel
10.05.2018
12:31:27
для читателя - да

Google
Daniel
10.05.2018
12:32:01
впрочем, async/await тоже недорогой

но дороже

Meow
10.05.2018
12:34:20
Можно и так

Vadim
10.05.2018
12:35:31
Похоже, самый оптимальный вариант. Кстати, всегда интересовал вопрос, как вы справляетесь с json объектами?)

Meow
10.05.2018
12:37:50
А что с ними справляться? Если есть четкая структура - легко.

Admin
ERROR: S client not available

Vadim
10.05.2018
12:38:41
Очень любят такую херню большие крипто биржи. У меня случались проблемы, когда они просто брали и добавляли какую-нибудь маленькую переменную и у меня уже бот переставал работать.

Крипта разная бывает) что тебя интересует?

Ещё массивы с разными типами вызывают проблемы.

Я через интерфейсы решал эту проблему

Meow
10.05.2018
12:56:06
Ещё массивы с разными типами вызывают проблемы.
А как ты решал это проблему в других языках?

Проверкой конкретного поля?

Vadim
10.05.2018
12:57:49
А как ты решал это проблему в других языках?
Ну, если язык динамический, то проблемы нет. А на строго типизированных раньше с такой проблемой не встречался, так как писал в совершенно другой сфере.

Проверкой конкретного поля?
Да, просто провожу итерацию проверяю на тип.

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

Pawel
10.05.2018
13:27:28
А гошный вариант корутин словно бесплатен
дешевле, но это к слову. гошный вариант - это просто писать код, а не думать о том, какой кусок "сделать аиснхронным". соответственно его и писать и читать легко

а вообще кто-то видел более или мене серьёзный бэкенд на async-await-ах? я - нет. Уверен,что это в принципе невозможно. Вот фронт - это можно, там и так адок.

Roman
10.05.2018
13:45:36
дешевле, но это к слову. гошный вариант - это просто писать код, а не думать о том, какой кусок "сделать аиснхронным". соответственно его и писать и читать легко
да, только надо обкладываться примитивами синхронизации, потому что есть риск что нас прервут или же перекинут на другой поток

Google
Kirill
10.05.2018
14:00:43
раз тут подняли тему производительности го насколько го будет эффективен в задаче где нужно 2 набора данных взаимодействую между собой, каждая еденица данных из первого набора взаимодействует с каждой из 2ого набора апи веб сервис

сейчас это сделано на си шарпе и работает фигово, проблема с памятью, работой гц

Kirill
10.05.2018
14:01:39
ну там логика ифы и арифметика

в одном наборе данных сотни, в другом тысячи обьектов

The
10.05.2018
14:03:04
а нагрузки какие?

и как часто меняются сами наборы?

Kirill
10.05.2018
14:03:39
100 запросов в секунду, но железо у нас не резиновое тысячи лежат в кеше, сотни каждый запрос новые приходят

Dmitri
10.05.2018
14:06:25
Подскажите, можно ли в fmt.Sprintf заигнорить % ? Хочу сформатировать строку с процентами типа 0.5%, естественно передать %s% не работает. Долепить знак процента уже вне темплейта?

The
10.05.2018
14:06:41
кмк, тут нету никаких проблем, да и саму задачу на сколько я понял можно написать на Go за неделю, попивая вискарь.

Kirill
10.05.2018
14:08:38
кмк, тут нету никаких проблем, да и саму задачу на сколько я понял можно написать на Go за неделю, попивая вискарь.
да примерно так и есть, просто хотел уточнить не будет ли проблем с производительностью для такого типа задачи благодарю

Dmitri
10.05.2018
14:08:56
ещё один % вот так %%
благодарствую

Pawel
10.05.2018
14:31:38
да, только надо обкладываться примитивами синхронизации, потому что есть риск что нас прервут или же перекинут на другой поток
это цена утилизации многоядерности. Сам по себе async-await от этого не избавляет, для синхронизации shared state в промисах/фьючерсах/тасках дополнительно требуются ещё более жуткие вещи, например, фреймворк акторов

ну или теже мьютексы.

Daniel
10.05.2018
14:43:53
@pragus , а про 3М udp ответов в секунду что скажешь?

Страница 1434 из 1674