
Аркадий
16.08.2018
19:59:26
Господа, кто может поделиться знаниями насчет микросервисной архитектуры и как в рамках нее организовать авторизацию и аутентификацию пользователя?!

Kirill
16.08.2018
19:59:54

Аркадий
16.08.2018
20:00:46

Kirill
16.08.2018
20:01:09

Google

Kirill
16.08.2018
20:02:46
как понять Blackbox?
Сервис с простым апи, который имеет доступ к пользовательским данным. Остальные сервисы доступа не имеют
Вся авторизация и проверка сессий на стороне этого сервиса

Аркадий
16.08.2018
20:04:21

Kirill
16.08.2018
20:04:26
А как сервис работает - другие сервисы не знают и знать не должны

Аркадий
16.08.2018
20:05:20

Kirill
16.08.2018
20:06:50

Peter
16.08.2018
20:07:15
аутефикацию можно вынести на api gateway если она по JWT токену, так-то в токен можно права доступа добавить

Kirill
16.08.2018
20:07:18

Аркадий
16.08.2018
20:09:23

Kirill
16.08.2018
20:10:35

Аркадий
16.08.2018
20:11:31

Kirill
16.08.2018
20:11:41
Да не за что

Google

Peter
16.08.2018
20:12:04

Аркадий
16.08.2018
20:12:12

Kirill
16.08.2018
20:13:10

Аркадий
16.08.2018
20:14:02

Peter
16.08.2018
20:15:02

Kirill
16.08.2018
20:15:57
Он нужен только на гейтвее
не в этом суть
любой мастер ключ — это то, что нужно хитро защищать. зачем, если можно сделать проще, и при этом не менее надёжно?

Peter
16.08.2018
20:17:47
jwt эта та же информаци из сессии только она хранится на стороне клиента, на один сервис меньше получается

Kirill
16.08.2018
20:18:23
если у тебя не было api gateway, то вообще по барабану, всё равно +1 сервис

Peter
16.08.2018
20:24:05
У нас на проекте нет гейтвея и мы страдаем. Сейчас пришли к тому чтобы вынести отдельно сервис который формирует объект с правами и находится во внутренней сети, в каждом сервисе которому требуются проверка прав доступа придется это реализовывать

Roman
16.08.2018
20:48:57
Народ. А как в go грохнуть запушенный процесс?
cmd := exec.Command("/usr/local/bin/gedit", "/home/pi/test.txt")
err := cmd.Run()
if err != nil {
panic(err)
}
err = cmd.Process.Kill()
if err != nil {
panic(err)
}
Пробовал так, но процесс запустился но не убился. Никаких ошибок нет. Видимо какой-то другой механизм

Aleksandr
16.08.2018
21:19:16

Roman
16.08.2018
21:21:48

Lesha
17.08.2018
01:44:55

Alexey
17.08.2018
02:33:25

Aleksandr
17.08.2018
02:36:32

Alexey
17.08.2018
02:40:15
Ток проверки ошибок не забыть :)

Aleksandr
17.08.2018
02:41:00
Народ. А как в go грохнуть запушенный процесс?
cmd := exec.Command("/usr/local/bin/gedit", "/home/pi/test.txt")
err := cmd.Run()
if err != nil {
panic(err)
}
err = cmd.Process.Kill()
if err != nil {
panic(err)
}
Пробовал так, но процесс запустился но не убился. Никаких ошибок нет. Видимо какой-то другой механизм

Google

Alexey
17.08.2018
02:42:55
Там gedit спрашивает о сохранении файла, видимо, перед закрытием
kill -9 надо
Как он там называется...
https://ru.m.wikipedia.org/wiki/Сигнал_(Unix)
там табличка классификаций

Dmitri
17.08.2018
05:09:26

Аркадий
17.08.2018
05:36:23

Dmitriy
17.08.2018
05:37:19

Аркадий
17.08.2018
05:39:46
кто он спалит и почему?
Например. Я иду на сервис авторизации, получаю токен и сессию. Потом с этим иду на второй сервис, который не имеет доступа к данным пользователя и вынужден идти проверять данные, которые я прислал, на сервис авторизации. Так? Тогда вот этот самый последний поход сервиса 2, к сервису авторизации как осуществляется?

Dmitriy
17.08.2018
05:51:20

Sergey
17.08.2018
05:52:45

Аркадий
17.08.2018
05:52:51

Dmitriy
17.08.2018
05:54:39

Sergey
17.08.2018
05:56:11
Btw, вы не путаете авторизацию с аутентификацией?
Просто ходить на внешний ресурс за авторизацией это странно

Аркадий
17.08.2018
05:58:01

Sergey
17.08.2018
05:59:03
Почему?
Ну только если это не ваша распределённая сеть, ну а внутри неё можно использовать что угодно, данные сливаются только самим себе

Аркадий
17.08.2018
05:59:29

Dmitriy
17.08.2018
06:00:07

Google

Sergey
17.08.2018
06:00:30

Dmitriy
17.08.2018
06:01:02

Sergey
17.08.2018
06:02:20

Аркадий
17.08.2018
06:02:37

Dmitriy
17.08.2018
06:04:20
У тебя на открытые методы api должна же передаваться и получаться только открытая инфа

Евгений
17.08.2018
06:07:46
Тут можно посмотреть как устроен OAuth2.
Как ничего не сливая, аутентифицировать и авторизовать пользователя.

Аркадий
17.08.2018
06:08:20
да, судя по всему мне нужно получше понять, как работает jwt

Admin
ERROR: S client not available

Аркадий
17.08.2018
06:08:25

Dmitriy
17.08.2018
06:09:37

Pawel
17.08.2018
06:37:36

Daniel
17.08.2018
06:38:23
100 раз в секунду, примерно
Оно плавает слегка

Pawel
17.08.2018
06:39:33
Забыл как в спецификаторах формата для семейства функции fmt указать чтобы числа от 1 до 9 печатались с лидирующим нулём. Подскажите плиз

Daniel
17.08.2018
06:40:02
С одним?

Pawel
17.08.2018
06:40:06
да

Daniel
17.08.2018
06:40:12
Нзна
%5.5d - это про другое

Dmitry
17.08.2018
06:42:09
fmt.Sprintf("%02d", value)

Google

Pawel
17.08.2018
06:42:33
точняк, сапсибо

Andrey
17.08.2018
07:49:33
Извините заранее если вопрос уже обсуждался. Допустим я сделал несколько функций и пускаю их только рефлексом. Го разве не выкинет эти функции так как они нигде не используются?

Alexander
17.08.2018
15:45:06
Ребята, я тут AMQP сервер запилил, и очень был бы рад замечаниям, предложениям, конечно же лайкам и особенно критике, можно в личку. Это мой первый большой проект на Go, забрасывать не хочу и буду продолжать над ним работать
https://github.com/valinurovam/garagemq

hamper ?
17.08.2018
15:55:28
А кто-нибудь делал метрики для prometheus в приложении? Все пишут полный список метрик со всеми параметрами а потом их используют? Или есть какие-то более удобные решения?

Kirill
17.08.2018
15:59:36

hamper ?
17.08.2018
16:02:27
Да, вроде тут поинтереснее чем то, что я находил...

Kirill
17.08.2018
16:02:48
:)

Dmitry
17.08.2018
16:15:37

Alexander
17.08.2018
16:18:10
Это аналог rabbitmq?
Да, постарался поддержать некоторые его отклонения от официального протокола и конфирмы

Alexander
17.08.2018
16:48:40

Aleksandr
17.08.2018
16:49:47
цель какая была? написать на го? профиты какие?

Alexander
17.08.2018
16:51:15
Доки, экземплы, бенчи
По докам не совсем представляю что писать, запустил сервер и используешь как rabbit с любым AMQP-клиентом, то же самое с примерами...
Бенчи да, но могу приложить только бенчи которые тулзой от реббита

Alexander
17.08.2018
16:53:23

Alexander
17.08.2018
16:53:30
цель какая была? написать на го? профиты какие?
Первоначальная цель - обучение го на хорошей задаче, сейчас же хочу довести все это до production ready
Профиты пока только в полученных знаниях
Но бенчи показывают что сервер на го быстрее, чем rabbit. Но тут же не только в быстроте дело, но и в надёжности

Alexander
17.08.2018
16:54:35
Простите, но не верю. Это про скорость
Или вы ampq не реализовали, либо кролик работает в режиме когда он сообщения персистит иди там гарантирует доставку, а ваше решение - как повезёт

Alexander
17.08.2018
16:56:01
Ну, тестил на локальной машине. Да и мои тесты да, так себе, очень синтетические
Условия одинаковые, режим сообщений в памяти) AMQP реализован. На счёт как повезёт - поэтому и вбрасываю в сообщество, может кто-то потестит, что-то подскажет. Доку наполню инфой как запускать и т д, хотя там достаточно make run

Илья
17.08.2018
17:25:32
и подумайте про конфигурацию
хотя бы в каком-то виде