Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2 3      [все]
 Микросервисы: на каждый сервис своя БД  [new]
Imperous
Member

Откуда: Оттуда )
Сообщений: 1153
И снова привет!

Изучение микросервисов продолжается, и тема эта покрыта миллионами вопросов.

Кто имел опыт проектов с использованием МС и таки там была реализация "на каждый сервис своя БД" ? (БЕЗ ИСПОЛЬЗОВАНИЯ ПРОКСИРУЮЩИХ МЕХАНИЗМОВ СОЕДИНЯЮЩИХ БД)

Интересует такой вот момент - когда используем одну БД, то данные в ней согласованы, например сохранение вот таких цепочек:
Цепочка 1
Клиент -> Заказ -> Изделия -> Позиции заказа -> Детали позиций заказ -> и т.д. до конца.

Цепочка 2
Клиент -> Заказ -> Услуги -> Доставка -> Водители и Транспорт -> и т.д. до конца.

Итого:
1) мы можем одним запросом из базы выбрать всю информацию по клиенту. (легкость сохранности, целостности и получения всей инфы)
2) если мы грохаем клиента, то каскадно удаляется вся информация. (нет "мусора")

Я так понимаю, что должен быть механизм, который:
1) находит несвязанные данные
2) убирает мусор

Но как же на самом деле решается вопрос целостности информации в распределенных БД, которые закреплены за своим микросервисом?
26 апр 19, 11:39    [21872402]     Ответить | Цитировать Сообщить модератору
 Re: Микросервисы: на каждый сервис своя БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38439
Imperous,
А где было требование на МС своя бд?
26 апр 19, 11:54    [21872422]     Ответить | Цитировать Сообщить модератору
 Re: Микросервисы: на каждый сервис своя БД  [new]
Imperous
Member

Откуда: Оттуда )
Сообщений: 1153
Petro123
Imperous,
А где было требование на МС своя бд?

Требования как такого не видел, но читая разные доки с примерами, все как один пишут что реализация была именно такая - на каждый сервис своя БД.
И в этом что-то есть, некоторая независимость.
Не будем сейчас брать в учет микросервисы, которые нужны для балансировки нагрузки, и выполняющие одинаковые функции.
26 апр 19, 12:00    [21872435]     Ответить | Цитировать Сообщить модератору
 Re: Микросервисы: на каждый сервис своя БД  [new]
Imperous
Member

Откуда: Оттуда )
Сообщений: 1153
Вот тут например пишут:
автор
Децентрализация данных

Еще один из важнейших элементов в парадигме микросервисов.
Каждому микросервису по своей базе данных!
26 апр 19, 12:02    [21872442]     Ответить | Цитировать Сообщить модератору
 Re: Микросервисы: на каждый сервис своя БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38439
Imperous,
Слушай, ты журналист для интервью или программист?
Тут программисты в ветке.
Ты плодишь темы без всякого смысла и ЗАДАЧИ.
Прошлую тему про МС чем ты подытожил?
Дай ссылку.
А твой код позже попросим.
26 апр 19, 12:03    [21872448]     Ответить | Цитировать Сообщить модератору
 Re: Микросервисы: на каждый сервис своя БД  [new]
забыл ник
Member

Откуда:
Сообщений: 2676
Imperous
И снова привет!

Изучение микросервисов продолжается, и тема эта покрыта миллионами вопросов.

Привет! Похвально, но пока у тебя очень слабое понятие о МС. Самое главное что тебе надо понять, что разбиение на микросервисы должно делаться не просто для того чтобы разбить, а чтбы оно решало бизнес-проблему или давало некие другие преимущества. Если данные сильно зависимы - это должен быть один микросевис, и храниться они должны в одной базе, вот и все.
Есть два варианта, когда такое разбиение все же имеет смысл -
1) Данные не умещаются на одном сервере\базе и нужно их масштабировать\оптимизировать. В этом случае, как и при всех распределенных решениях мы немного теряем в consistency, т.е она не будет гарантированной.
2) Когда допустима задержка времени и моментальная консистентность данных не критична, сойдет и eventual.

В таком случае можно разбить на МС, но общение между ними строго асинхронное через immutable message. То есть, если удалили клиента - формируется сообщение ClientDeleted(id) и пуляется в брокер сообщений или условную кафку. Второй МС слушает эту очередь и реагирует на сообщением зачисткой мусора. Как именно зачистка реализована - зависит от тебя
26 апр 19, 12:07    [21872461]     Ответить | Цитировать Сообщить модератору
 Re: Микросервисы: на каждый сервис своя БД  [new]
Imperous
Member

Откуда: Оттуда )
Сообщений: 1153
забыл ник
Imperous
И снова привет!

Изучение микросервисов продолжается, и тема эта покрыта миллионами вопросов.

Привет! Похвально, но пока у тебя очень слабое понятие о МС. Самое главное что тебе надо понять, что разбиение на микросервисы должно делаться не просто для того чтобы разбить, а чтбы оно решало бизнес-проблему или давало некие другие преимущества. Если данные сильно зависимы - это должен быть один микросевис, и храниться они должны в одной базе, вот и все.
Есть два варианта, когда такое разбиение все же имеет смысл -
1) Данные не умещаются на одном сервере\базе и нужно их масштабировать\оптимизировать. В этом случае, как и при всех распределенных решениях мы немного теряем в consistency, т.е она не будет гарантированной.
2) Когда допустима задержка времени и моментальная консистентность данных не критична, сойдет и eventual.

В таком случае можно разбить на МС, но общение между ними строго асинхронное через immutable message. То есть, если удалили клиента - формируется сообщение ClientDeleted(id) и пуляется в брокер сообщений или условную кафку. Второй МС слушает эту очередь и реагирует на сообщением зачисткой мусора. Как именно зачистка реализована - зависит от тебя


Спасибо! Именно это я и спрашивал.
26 апр 19, 12:11    [21872474]     Ответить | Цитировать Сообщить модератору
 Re: Микросервисы: на каждый сервис своя БД  [new]
Герой дня
Member

Откуда: obmanula.ru
Сообщений: 30525
если приходится иметь разные бд на микросервисах - то вопрос согласования ложиться на плечи фреймворка

можно согласовывать БД через стрим-потоки вроде https://debezium.io/ , через сообщения RabbitMQ, которые обрабатывают сервисы и так далее (CQRS и тп)
26 апр 19, 12:11    [21872475]     Ответить | Цитировать Сообщить модератору
 Re: Микросервисы: на каждый сервис своя БД  [new]
mayton
Member

Откуда: loopback
Сообщений: 40406
Petro123
Imperous,
Слушай, ты журналист для интервью или программист?
Тут программисты в ветке.
Ты плодишь темы без всякого смысла и ЗАДАЧИ.
Прошлую тему про МС чем ты подытожил?
Дай ссылку.
А твой код позже попросим.

Он похож на бывшего кодера Sybase-технологий который сейчас хочет свичнутся на Java. Я так думаю.
26 апр 19, 12:20    [21872493]     Ответить | Цитировать Сообщить модератору
 Re: Микросервисы: на каждый сервис своя БД  [new]
Imperous
Member

Откуда: Оттуда )
Сообщений: 1153
Герой дня
если приходится иметь разные бд на микросервисах - то вопрос согласования ложиться на плечи фреймворка

можно согласовывать БД через стрим-потоки вроде https://debezium.io/ , через сообщения RabbitMQ, которые обрабатывают сервисы и так далее (CQRS и тп)


Кстати про очереди типа RabbitMQ.
Например есть 3 сервиса.
В RabbitMQ попадает сообщение, что клиента с таким id больше нет.
2 сервиса-подписчика получают это сообщение и грохают у себя в базах инфу по клиенту.
А вот сервис№3 был на тот момент в дауне, и сразу не отреагировал. Получается при старте сервиса№3 нужно прочитать из очереди все сообщения с того момента как сервис был "положен" и поочередно выполнить соответствующие инструкции.

Так оно работает?
26 апр 19, 12:31    [21872510]     Ответить | Цитировать Сообщить модератору
 Re: Микросервисы: на каждый сервис своя БД  [new]
mayton
Member

Откуда: loopback
Сообщений: 40406
Imperous
А вот сервис№3 был на тот момент в дауне, и сразу не отреагировал. Получается при старте сервиса№3 нужно прочитать из очереди все сообщения с того момента как сервис был "положен" и поочередно выполнить соответствующие инструкции.

Так оно работает?

90% это будет зависеть от того как вы сконфигурируете этот RabbitMQ. Я с ним не знаком.
Но в других мессенджинговых системах есть длительная подписка (кажется Durable Suscribtion)
и если вы всё правильно сделали то сообщение для вашего упавшего сервиса будет ждать своего
прочтения очень долго. Ну... сколько вам нужно.

Ситуацию с сообщением которое вы УЖЕ прочитали и упали надо рассмотреть отдельно.

Опять-же я становлюсь занудой рекламируя доклад Алименкова по JMS но он всё-таки прошёлся и по этому
кейсу поэтому ищите в youtube.
26 апр 19, 12:42    [21872523]     Ответить | Цитировать Сообщить модератору
 Re: Микросервисы: на каждый сервис своя БД  [new]
Imperous
Member

Откуда: Оттуда )
Сообщений: 1153
Petro123
Imperous,
Слушай, ты журналист для интервью или программист?
Тут программисты в ветке.
Ты плодишь темы без всякого смысла и ЗАДАЧИ.
Прошлую тему про МС чем ты подытожил?
Дай ссылку.
А твой код позже попросим.

1) В Java я новичок.
2) Именно поэтому я тут задаю вопросы, а не бабкам на привозе.
3) Я задаю вопросы которыми в данный момент задался. Изучаю материал, я всегда стараюсь разобраться в интересующей меня теме. Кроме форума я читаю достаточно количество статей, и на русском и на английском, и да, мне не всегда ясно что к чему. Это направление для меня ново. Некоторые слова я вообще впервые вижу. К сожалению могу заметил, что многие статьи в первую очередь ориентированны на тех кто уже знаком с материалом, и новичку сложно понять что происходит. Не так что вот смотрите, есть "1 + 1 = 2", в стиле "Хо-па с 11 цифры после запятой в числе Пи идет последовательность 8979323846", и ты такой "а при чем здесь вообще Пи?".
Не видишь смысла, не хочешь узнавать новое, пожалуйста не открывай темы в которых увидишь автором меня.
4) Какую именно прошлую? В которой дали ссылки на материал? Или в которой развели абстрактный флуд?
5) На свой гитхаб? Но ты там совершенно не увидишь микросервисов.
26 апр 19, 12:44    [21872526]     Ответить | Цитировать Сообщить модератору
 Re: Микросервисы: на каждый сервис своя БД  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5066
Imperous,

зависит от настроек:
1. настроить ttl сообщений и отправить автомато по истечению срока в dead queue. А очередь мертвых сообщений уже как придумаете, так и обрабатывайте

2. Можете настроить ttl сообщений так, что они там будут довольно долго ждать своего срока




Но это rabbit, таже kafka ведет себя как лог сообщений, где вы по умолчанию реализуете проверку на повторное чтение\доставку сообщений.
26 апр 19, 12:45    [21872530]     Ответить | Цитировать Сообщить модератору
 Re: Микросервисы: на каждый сервис своя БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38439
Imperous
Спасибо! Именно это я и спрашивал.

эти требования и к обычным сервисам относятся.
mayton
Он похож на бывшего кодера Sybase-технологий который сейчас хочет свичнутся на Java. Я так думаю.

рядом надо иметь ком и писать, писать, писать.
Ну и темы свои закрывать чем то.
26 апр 19, 12:56    [21872546]     Ответить | Цитировать Сообщить модератору
 Re: Микросервисы: на каждый сервис своя БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38439
Imperous
Кстати про очереди типа RabbitMQ.
если изучаете микросервисы, то исключите лишнее - асинхронность и очереди.
26 апр 19, 13:03    [21872559]     Ответить | Цитировать Сообщить модератору
 Re: Микросервисы: на каждый сервис своя БД  [new]
Kachalov
Member

Откуда: Москва
Сообщений: 5626
Imperous
Но как же на самом деле решается вопрос целостности информации в распределенных БД, которые закреплены за своим микросервисом?

- как любят говорить про микросервисы - это просто!))) Вот только когда начинаешь задавать вопросы про транзакции, юные оптимисты начинают "елозить по теме" и ссылаться на "согласованность". Короче тут и начинается гемор для разработчика. Вот, на мой взгляд, хорошо написанная статья, где автор затронул и интересующую Вас тему: Microservices. Как правильно делать и когда применять?
26 апр 19, 13:06    [21872565]     Ответить | Цитировать Сообщить модератору
 Re: Микросервисы: на каждый сервис своя БД  [new]
забыл ник
Member

Откуда:
Сообщений: 2676
Petro123
Imperous
Кстати про очереди типа RabbitMQ.
если изучаете микросервисы, то исключите лишнее - асинхронность и очереди.

Асинхронность и очереди критически важны для интеграции МС, так что это далеко не лишнее, не основное, но не лишнее
26 апр 19, 13:10    [21872575]     Ответить | Цитировать Сообщить модератору
 Re: Микросервисы: на каждый сервис своя БД  [new]
забыл ник
Member

Откуда:
Сообщений: 2676
Kachalov
Вот только когда начинаешь задавать вопросы про транзакции

Например какие? Имхо, основная печаль в том что люди не умеют грамотно определять рамки микросервиса\класса\модуля\подставить свое, т.е грамотно декомпозировать задачу. Потому что транзакция над двумя микросервисами в реальности не имеет особого смысла, иначе просто их нужно объелинить
Статья неплохая
26 апр 19, 13:13    [21872583]     Ответить | Цитировать Сообщить модератору
 Re: Микросервисы: на каждый сервис своя БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38439
Kachalov,
+1
Невозможно новичку с нуля в Java прийти и написать микросервисы.
Это архитектура. Второй уровень)
Завтра он пополнит армию кричащих про них на каждом углу.
Автору надо написать хотя бы 2 ПРОСТО сервиса.
Как раньше были в Java классы, бины и просто классы POJO.
Нужно было как то обозначить простой класс? )
26 апр 19, 13:14    [21872585]     Ответить | Цитировать Сообщить модератору
 Re: Микросервисы: на каждый сервис своя БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38439
забыл ник
Асинхронность и очереди критически важны для интеграции МС

по ссылке треугольник.
В треугольнике все 3 угла важны)). С этим согласен.
26 апр 19, 13:15    [21872587]     Ответить | Цитировать Сообщить модератору
 Re: Микросервисы: на каждый сервис своя БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38439
Imperous
3) Я задаю вопросы которыми в данный момент задался. Изучаю материал, я всегда стараюсь разобраться в интересующей меня теме.

Теперь сравни своё текст для журналиста задающего вопросы.
Он тоже приходит и хочет разобраться.
Но он журналист.
А у тебя Цель должна быть другая - стать программистом.
А вот для этого надо не микросервисы изучать. Увы.
26 апр 19, 13:24    [21872595]     Ответить | Цитировать Сообщить модератору
 Re: Микросервисы: на каждый сервис своя БД  [new]
Андрей Панфилов
Member

Откуда: Москва > Melbourne
Сообщений: 3204
Kachalov
автор затронул и интересующую Вас тему: Microservices. Как правильно делать и когда применять?
Чет какой-то зашквар:
автор
Все это называется конечной согласованностью (eventual consistency). Происходит это не атомарно, а за счет технологии гарантированной доставки Message Bus. При этом взаимодействие сервисов с шиной — транзакционное, и шина обеспечивает доставку всех сообщений. Поэтому мы можем быть уверены, что в конце концов до наших сервисов все долетит (если, конечно, не решим почистить сообщения брокера через консоль администрирования).
т.е. распределенные транзакции-таки есть
26 апр 19, 13:39    [21872626]     Ответить | Цитировать Сообщить модератору
 Re: Микросервисы: на каждый сервис своя БД  [new]
забыл ник
Member

Откуда:
Сообщений: 2676
Андрей Панфилов
т.е. распределенные транзакции-таки есть

С уровнем изоляции READ_UNCOMMITED :)
26 апр 19, 13:41    [21872627]     Ответить | Цитировать Сообщить модератору
 Re: Микросервисы: на каждый сервис своя БД  [new]
Герой дня
Member

Откуда: obmanula.ru
Сообщений: 30525
mayton
Imperous
А вот сервис№3 был на тот момент в дауне, и сразу не отреагировал. Получается при старте сервиса№3 нужно прочитать из очереди все сообщения с того момента как сервис был "положен" и поочередно выполнить соответствующие инструкции.

Так оно работает?

90% это будет зависеть от того как вы сконфигурируете этот RabbitMQ. Я с ним не знаком.
Но в других мессенджинговых системах есть длительная подписка (кажется Durable Suscribtion)
и если вы всё правильно сделали то сообщение для вашего упавшего сервиса будет ждать своего
прочтения очень долго. Ну... сколько вам нужно.

Ситуацию с сообщением которое вы УЖЕ прочитали и упали надо рассмотреть отдельно.

Опять-же я становлюсь занудой рекламируя доклад Алименкова по JMS но он всё-таки прошёлся и по этому
кейсу поэтому ищите в youtube.


необработанные сообщения возвращаются в очередь при соответствующей настройке
26 апр 19, 13:42    [21872629]     Ответить | Цитировать Сообщить модератору
 Re: Микросервисы: на каждый сервис своя БД  [new]
Kachalov
Member

Откуда: Москва
Сообщений: 5626
забыл ник
Kachalov
Вот только когда начинаешь задавать вопросы про транзакции

Например какие?

- любые) Либо мы работаем в транзакционном контексте (что просто только в рамках одного сервиса), либо без него. Растянуть транзакцию на несколько сервисов технически сложно. Если затянуть в сервис все что должно удовлетворять принципу ACID, то неожиданно может получиться монолит) Короче, либо транзакции, либо миросервисы (и микротранзакции, т е транзакция в пределах одного сервиса).
26 апр 19, 13:42    [21872631]     Ответить | Цитировать Сообщить модератору
 Re: Микросервисы: на каждый сервис своя БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38439
Kachalov
Либо мы работаем в транзакционном контексте (что просто только в рамках одного сервиса), либо без него. Растянуть транзакцию на несколько сервисов технически сложно.
+1
26 апр 19, 13:47    [21872640]     Ответить | Цитировать Сообщить модератору
 Re: Микросервисы: на каждый сервис своя БД  [new]
mayton
Member

Откуда: loopback
Сообщений: 40406
Транзакции и оптимизация скорости обычно не уживаются вместе.
26 апр 19, 13:49    [21872642]     Ответить | Цитировать Сообщить модератору
 Re: Микросервисы: на каждый сервис своя БД  [new]
Андрей Панфилов
Member

Откуда: Москва > Melbourne
Сообщений: 3204
забыл ник
С уровнем изоляции READ_UNCOMMITED :)
Да пофиг какой уровень, все равно распределенная же, и чет автор забыл (или не знал?) рассказать про то каким образом правильно обрабатывать приходящие сообщения - там же порядок важен как никак...
26 апр 19, 13:50    [21872646]     Ответить | Цитировать Сообщить модератору
 Re: Микросервисы: на каждый сервис своя БД  [new]
Kachalov
Member

Откуда: Москва
Сообщений: 5626
Андрей Панфилов
т.е. распределенные транзакции-таки есть

- нет, нет единого транзакционного контекста. Это последовательность отдельных транзакций, в которых T1 порождает T2, но если T1 откатится, то T2 про это ничего не знает. В общем, тут нужен аналог двухфазного комита, что при реализации "ручками" реальный геморой.
26 апр 19, 13:53    [21872651]     Ответить | Цитировать Сообщить модератору
 Re: Микросервисы: на каждый сервис своя БД  [new]
забыл ник
Member

Откуда:
Сообщений: 2676
Андрей Панфилов
забыл ник
С уровнем изоляции READ_UNCOMMITED :)
Да пофиг какой уровень, все равно распределенная же, и чет автор забыл (или не знал?) рассказать про то каким образом правильно обрабатывать приходящие сообщения - там же порядок важен как никак...

Не пофиг, тут ACID и не пахнет.
26 апр 19, 13:59    [21872665]     Ответить | Цитировать Сообщить модератору
 Re: Микросервисы: на каждый сервис своя БД  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5066
забыл ник
Андрей Панфилов
пропущено...
Да пофиг какой уровень, все равно распределенная же, и чет автор забыл (или не знал?) рассказать про то каким образом правильно обрабатывать приходящие сообщения - там же порядок важен как никак...

Не пофиг, тут ACID и не пахнет.


если вспомнить, что у rabbitmq из коробки нет 100% гарантий доставки сообщения, то становится и вовсе печально.
26 апр 19, 14:02    [21872669]     Ответить | Цитировать Сообщить модератору
 Re: Микросервисы: на каждый сервис своя БД  [new]
Imperous
Member

Откуда: Оттуда )
Сообщений: 1153
Petro123
Imperous
3) Я задаю вопросы которыми в данный момент задался. Изучаю материал, я всегда стараюсь разобраться в интересующей меня теме.

Теперь сравни своё текст для журналиста задающего вопросы.
Он тоже приходит и хочет разобраться.
Но он журналист.
А у тебя Цель должна быть другая - стать программистом.
А вот для этого надо не микросервисы изучать. Увы.

и что же надо изучать?
26 апр 19, 14:06    [21872676]     Ответить | Цитировать Сообщить модератору
 Re: Микросервисы: на каждый сервис своя БД  [new]
Imperous
Member

Откуда: Оттуда )
Сообщений: 1153
Озверин
забыл ник
пропущено...

Не пофиг, тут ACID и не пахнет.


если вспомнить, что у rabbitmq из коробки нет 100% гарантий доставки сообщения, то становится и вовсе печально.

На сколько знаю, у Kaffka с этим нет проблем.
26 апр 19, 14:09    [21872681]     Ответить | Цитировать Сообщить модератору
 Re: Микросервисы: на каждый сервис своя БД  [new]
17-77
Member

Откуда:
Сообщений: 1355
Imperous,
микросервисы - они не микро, вот видео
26 апр 19, 14:34    [21872712]     Ответить | Цитировать Сообщить модератору
 Re: Микросервисы: на каждый сервис своя БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38439
Imperous
и что же надо изучать?

Комп под рукой?
Смотрим в книгу и делаем пример на компе.
Только так.
Я например, сайт демку делал (в профиле).
Ты делай всё что угодно, только нельзя написать микросервис не делая никогда простой сервис.
26 апр 19, 14:39    [21872719]     Ответить | Цитировать Сообщить модератору
 Re: Микросервисы: на каждый сервис своя БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38439
Imperous,
пример. Среднего размера обычный сервис - ОтделКадров.
Юз кейс - приём человека на работу.
Бери и делай.
26 апр 19, 14:43    [21872724]     Ответить | Цитировать Сообщить модератору
 Re: Микросервисы: на каждый сервис своя БД  [new]
Imperous
Member

Откуда: Оттуда )
Сообщений: 1153
Petro123
Imperous,
пример. Среднего размера обычный сервис - ОтделКадров.
Юз кейс - приём человека на работу.
Бери и делай.

Подожди, у меня совершенно нет проблем с написанием сервисов-одиночек. И с чего решил что есть тут проблемы?

Меня интересует именно многосервисная среда, ее организация и взаимодействие со всеми членами архитектуры.
26 апр 19, 15:43    [21872785]     Ответить | Цитировать Сообщить модератору
 Re: Микросервисы: на каждый сервис своя БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38439
Imperous
Подожди, у меня совершенно нет проблем с написанием сервисов-одиночек. И с чего решил что есть тут проблемы?

По нескольким признакам:
- не видно твоего портфолио
- не видно твоего кода уже в нескольких топиках
Без кода нужно идти в ветку "Разработка ИС". Там тоже про них рассуждают.
26 апр 19, 15:52    [21872797]     Ответить | Цитировать Сообщить модератору
 Re: Микросервисы: на каждый сервис своя БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38439
mayton
Он похож на бывшего кодера Sybase-технологий который сейчас хочет свичнутся на Java. Я так думаю.

Imperous
1) В Java я новичок.

Автор, дык есть проблемы с взаимодействием пяти сервисов(обычных) и целостностью Модели или нет?
Если нет, то поделись решением.
26 апр 19, 15:55    [21872798]     Ответить | Цитировать Сообщить модератору
 Re: Микросервисы: на каждый сервис своя БД  [new]
Imperous
Member

Откуда: Оттуда )
Сообщений: 1153
Petro123
Imperous
Подожди, у меня совершенно нет проблем с написанием сервисов-одиночек. И с чего решил что есть тут проблемы?

По нескольким признакам:
- не видно твоего портфолио
- не видно твоего кода уже в нескольких топиках
Без кода нужно идти в ветку "Разработка ИС". Там тоже про них рассуждают.


автор
- не видно твоего портфолио

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

очень интересно что ты там хотел бы увидеть?

Заметь, я когда спрашиваю и у меня есть идеи решения, я всегда их пишу, или писал то что делал.
26 апр 19, 16:07    [21872810]     Ответить | Цитировать Сообщить модератору
 Re: Микросервисы: на каждый сервис своя БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38439
Imperous,
опять бла бла бла
Я тебе скзазал свое имхо.
Продолжай разговоры без кода и примеров.
26 апр 19, 16:23    [21872828]     Ответить | Цитировать Сообщить модератору
 Re: Микросервисы: на каждый сервис своя БД  [new]
mayton
Member

Откуда: loopback
Сообщений: 40406
У него нет практики IMHO. Вот и спрашивает.
26 апр 19, 16:24    [21872830]     Ответить | Цитировать Сообщить модератору
 Re: Микросервисы: на каждый сервис своя БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38439
Imperous
кстати твоего тоже не вижу, но и не интересуюсь им
если я задаю вопрос, то передо мной комп и я его сразу делаю.
Иначе в ПТ или по пятницам.
26 апр 19, 16:25    [21872832]     Ответить | Цитировать Сообщить модератору
 Re: Микросервисы: на каждый сервис своя БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38439
mayton
У него нет практики IMHO. Вот и спрашивает.
смотря что спрашивать.
От сервиса до микросервиса один шаг.
Пусть рассказывает про сервис - доведем его до МИКРО.
Это же очевидно.
26 апр 19, 16:26    [21872836]     Ответить | Цитировать Сообщить модератору
 Re: Микросервисы: на каждый сервис своя БД  [new]
Imperous
Member

Откуда: Оттуда )
Сообщений: 1153
Petro123
mayton
Он похож на бывшего кодера Sybase-технологий который сейчас хочет свичнутся на Java. Я так думаю.

Imperous
1) В Java я новичок.

Автор, дык есть проблемы с взаимодействием пяти сервисов(обычных) и целостностью Модели или нет?
Если нет, то поделись решением.


Тебя смутило "В Java я новичок"?
Это ведь не говорит о том что я не умею писать на java, или что у меня нет другого связанного с IT-миром опыта. Да, что-то знаю, что-то нет, горы лет опыта в коммерческом программировании на Java нет.
Не нужно ничего придумывать и фантазировать.

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

И если мне не нравится то что ты ТАК УВЕРЕННО пишешь о своих знаниях - то это мое личное дело, ответить тебе или нет.

А знаешь, скажи, ты в Java давно?
Ты очень похож на людей, которые не связаны с Java, связаны с другими языками программирования, агрессивные люди с завышенной самооценкой, которые не привыкли помогать дельными советами или ссылками на полезные статьи, такие люди обычно пишут - "учи матчать, читай мануалы", такие абстрактные выражения, которые ни капли не помогают человеку который задал вопрос сейчас, по конкретной проблеме. К сожалению, таких людей много на этом форуме. Но признаюсь, меня порадовало что таки в ветке Java, таких людей меньшинство. И конечно же, ты сейчас откроешь (или уже открывал) историю моих тем и сообщений, и почитаешь о чем же я столько лет спрашивал людей, задавал им "глупые" вопросы, всячески мешал жить.

И пусть простят нас остальные обитатели (и гости) форума, которым вместо полезной информации приходится/придется читать этот ненужный текст.

Искренне благодарен людям, которые рассказали по теме моего вопроса. Есть решения (стандартные), я бы даже сказал паттерны, которые применимы к определенным ситуациям, как в данной теме.
26 апр 19, 16:28    [21872840]     Ответить | Цитировать Сообщить модератору
 Re: Микросервисы: на каждый сервис своя БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38439
Imperous,
а зачем ты так много пишешь?
Занимайся делом и не отвлекайся.
26 апр 19, 16:34    [21872844]     Ответить | Цитировать Сообщить модератору
 Re: Микросервисы: на каждый сервис своя БД  [new]
Imperous
Member

Откуда: Оттуда )
Сообщений: 1153
Petro123
Imperous,
опять бла бла бла
Я тебе скзазал свое имхо.
Продолжай разговоры без кода и примеров.

Вот именно, пусто бла-бла.
Покажи пример, свой!!! ( а не тупо первая ссылка на гитхаб), покажи какой код должен быть по конкретно этому вопросу.
26 апр 19, 16:36    [21872845]     Ответить | Цитировать Сообщить модератору
 Re: Микросервисы: на каждый сервис своя БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38439
где без флуда ответ на это?
Petro123
Автор, дык есть проблемы с взаимодействием пяти сервисов(обычных) и целостностью Модели или нет?
Если нет, то поделись решением.
26 апр 19, 16:36    [21872846]     Ответить | Цитировать Сообщить модератору
 Re: Микросервисы: на каждый сервис своя БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38439
Imperous
Покажи пример, свой!!!

ты с вопросом пришёл или я?
ТС не выпендривается стойко отвечает на все наводящие вопросы.
Иначе не быть ему профи (с)
26 апр 19, 16:38    [21872847]     Ответить | Цитировать Сообщить модератору
 Re: Микросервисы: на каждый сервис своя БД  [new]
Kachalov
Member

Откуда: Москва
Сообщений: 5626
Imperous
Есть решения (стандартные), я бы даже сказал паттерны, которые применимы к определенным ситуациям, как в данной теме.

- насколько я понимаю, все выкручиваются по разному (какие то логи событий заводят и прочую хрень), но наиболее разумным кажется решение ограничивать сервис совокупностью связанных данных. Если есть данные связность которых необходимо жестко поддерживать, то они обслуживаются одним сервисом, в рамках которого и существует транзакция. Т е не мельчить излишне сервисы, чтобы не получать дополнительных проблем.
26 апр 19, 16:42    [21872851]     Ответить | Цитировать Сообщить модератору
 Re: Микросервисы: на каждый сервис своя БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38439
Imperous
Но как же на самом деле решается вопрос целостности информации в распределенных БД, которые закреплены за своим микросервисом?

вот почему ты как ТС, тему "целостности информации в распределенных БД" заболтал темой про свои микросервисы?
Потому что не работал сразу с двумя БД? Тогда причём тут микросервисы?
Иди учись работать с двумя сервисами независимыми.
26 апр 19, 17:03    [21872874]     Ответить | Цитировать Сообщить модератору
 Re: Микросервисы: на каждый сервис своя БД  [new]
Imperous
Member

Откуда: Оттуда )
Сообщений: 1153
Petro123, знаешь, а ведь в этой теме ты ни разу не ответил по существу топика.
26 апр 19, 17:51    [21872920]     Ответить | Цитировать Сообщить модератору
 Re: Микросервисы: на каждый сервис своя БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38439
Imperous
Petro123, знаешь, а ведь в этой теме ты ни разу не ответил по существу топика.

тебе даже красный цвет не помог.
Факты на лицо - ты в архитектуре даже не джуниор.
Зачем тебе вопросы по ней?
Цель какая?
26 апр 19, 17:58    [21872922]     Ответить | Цитировать Сообщить модератору
 Re: Микросервисы: на каждый сервис своя БД  [new]
mayton
Member

Откуда: loopback
Сообщений: 40406
Imperous
1) мы можем одним запросом из базы выбрать всю информацию по клиенту. (легкость сохранности, целостности и получения всей инфы)
2) если мы грохаем клиента, то каскадно удаляется вся информация. (нет "мусора")

Я так понимаю, что должен быть механизм, который:
1) находит несвязанные данные
2) убирает мусор

Но как же на самом деле решается вопрос целостности информации в распределенных БД, которые закреплены за своим микросервисом?

В общем случае не существует никакой связи между сервисом и БД.
Более того. Информация о внутреннем устройстве сервиса может быть неизвестной
или засекреченной (какой-то банковский сервис).

Для тебя как для разработчика данного микросервиса существуют такие шаблоны как
- CQRS (это больше относится к дизайну приложения в целом но этот шаблон
отказыватся от согласованности в пользу производительности. Грубо говоря команда
и запрос вообще работают с РАЗНЫМИ БД. Это постулировано в презентациях по СиКюРэС.
Например для команд могу юзать EventStore системы а для отчотов какие-то RDBMS)
- OLTP/DWH БД. Обращения опер-дня идут в одну базу. А аналитика или исторические
данные - из другой. Между ними есть некая задержка во времени. И само приложение
(в данном случае микросервис) должно понимать куда смотреть. Как вариант просто
брать текущую дату и роутить запросы в разные направления)
- Мастер и реплика. Основная и резервная.

Твой вопрос касаемо нарушения согласованности между БД. Почитай про теорему Эрика Брювера.
В частности например AP (Availability+Partition tolerance). Это нарушение присутствует в интернете
везде. В частности серверы DNS никода не достигают 100% consistency но им это не надо. Протокол
использования DNS позволяет нам читать и видеть устаревшие записи и не испытывать особых проблем.

По твоему алгоритму уборки мусора мне нечего сказать. Я не понимаю как ты посчитал какие-то данные
мусором. Это мне кажется задача совершенно другая и не имеющая отношения к основной работе
микросервиса. Может удаление исторических данных. Может удаление childs without parents.
26 апр 19, 19:08    [21872968]     Ответить | Цитировать Сообщить модератору
 Re: Микросервисы: на каждый сервис своя БД  [new]
mayton
Member

Откуда: loopback
Сообщений: 40406
В общем случае не существует никакой связи между сервисом и БД.

Неверно выразился. Нет взаимного соответствия между сервисом и БД.
Может быть сервис вообще без БД. И может быть сервис с множеством БД.
И могут 2 сервиса ходить в одну БД.
26 апр 19, 19:30    [21872981]     Ответить | Цитировать Сообщить модератору
 Re: Микросервисы: на каждый сервис своя БД  [new]
Андрей Панфилов
Member

Откуда: Москва > Melbourne
Сообщений: 3204
Kachalov
- нет, нет единого транзакционного контекста. Это последовательность отдельных транзакций, в которых T1 порождает T2, но если T1 откатится, то T2 про это ничего не знает.
Чет похоже на то как индусы пишут - у них отправка сообщений по http из открытой транзакции вообще никаких вопросов не вызывает.
27 апр 19, 02:02    [21873183]     Ответить | Цитировать Сообщить модератору
 Re: Микросервисы: на каждый сервис своя БД  [new]
ViPRos
Member

Откуда:
Сообщений: 9510
Андрей Панфилов,

все эти микросервисы "индусы" и продвигают
это надо ж "микро" сервис
27 апр 19, 10:36    [21873261]     Ответить | Цитировать Сообщить модератору
 Re: Микросервисы: на каждый сервис своя БД  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 986
mayton
Опять-же я становлюсь занудой рекламируя доклад Алименкова по JMS но он всё-таки прошёлся и по этому
кейсу поэтому ищите в youtube.

Общался с Алименковый в живую на JEEConf. Это было круто!
27 апр 19, 21:53    [21873514]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2 3      [все]
Все форумы / Java Ответить