|
|
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Начал читать про микросервисы. Как я понял микросервис это нечто автономное, общающееся с внешним миром по сети. Например через jms. Соответственно микросервисы не должны общаться через базу. Но что если мы понимаем, что нам больше не хватает одной машины для сервиса A, нужно 2 машины. Сервис А использует БД. Могут ли в таком случае 2 инстанса сервера А исаользовать одну и ту же БД? если не могут, то почему именно и как решить эту проблему(репликация? consistency не будет?)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 16:24 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
redwhite90, Почему у тебя теория одна? В прошлой СВОЕЙ теме книжку прочитал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 16:32 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
redwhite90Начал читать про микросервисы. Как я понял Микросервис это попытка разменять сложность разработки многомодульного приложения на сложность развёртывания многосервисного облака. Т.е. микросервис ~= модуль, превращённый в автономное приложение. Точно также, как у вас может быть несколько экземпляров модуля в памяти монолитного приложения, точно также у вас может быть несколько экземпляров микросервиса. Сколько экземпляров работают с базой - определяется логикой системы и здравым смыслом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 16:49 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
redwhite90Соответственно микросервисы не должны общаться через базу. Почему? Чем Вам база не угодила? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 16:52 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorovredwhite90Начал читать про микросервисы. Как я понял Микросервис это попытка разменять сложность разработки многомодульного приложения на сложность развёртывания многосервисного облака. Т.е. микросервис ~= модуль, превращённый в автономное приложение. Точно также, как у вас может быть несколько экземпляров модуля в памяти монолитного приложения, точно также у вас может быть несколько экземпляров микросервиса. Сколько экземпляров работают с базой - определяется логикой системы и здравым смыслом. То есть микросервисы одного типа могут работать с одной базой, а микросервисы разного типа не могут? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 16:54 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Leonid Kudryavtsevredwhite90Соответственно микросервисы не должны общаться через базу. Почему? Чем Вам база не угодила? Ну вот например https://habr.com/post/249183/ Если коротко, то архитектурный стиль микросервисов — это подход, при котором единое приложение строится как набор небольших сервисов, каждый из которых работает в собственном процессе и коммуницирует с остальными используя легковесные механизмы, как правило HTTP . Эти сервисы построены вокруг бизнес-потребностей и развертываются независимо с использованием полностью автоматизированной среды. Существует абсолютный минимум централизованного управления этими сервисами. Сами по себе эти сервисы могут быть написаны на разных языках и использовать разные технологии хранения данных. https://habr.com/company/mailru/blog/320962/#2 Микросервисная архитектура — это подход к созданию приложения, подразумевающий отказ от единой, монолитной структуры. То есть вместо того чтобы исполнять все ограниченные контексты приложения на сервере с помощью внутрипроцессных взаимодействий, мы используем несколько небольших приложений, каждое из которых соответствует какому-то ограниченному контексту. Причём эти приложения работают на разных серверах и взаимодействуют друг с другом по сети, например посредством HTTP. Иными словами, мы инкапсулируем определённые контексты приложения в микросервисы, по одному на каждый, а сами микросервисы крутим на разных серверах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 17:00 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Petro123redwhite90, Почему у тебя теория одна? В прошлой СВОЕЙ теме книжку прочитал? Чтобы что-то начать делать нужна какая-то теоретическая основа и понимание нафига оно надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 17:02 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Вот ещё по теме: https://habr.com/company/mailru/blog/320962/#2 При микросервисной архитектуре, когда каждый бизнес-компонент представляет собой микросервис, все компоненты обладают собственными базами данных, которые недоступны другим микросервисам. Данные компонента доступны (для чтения и записи) только через соответствующий интерфейс компонентов. Благодаря этому степень устойчивости данных варьируется в зависимости от компонента (Мартин Фаулер, Чед Фаулер). Вот и возникает у меня вопрос: Допустим я понял, что мы упёрлись в производительность Stock service и приходит понимание, что надо масштабироваться. Поднимаем рядом ещё одну машинку и получается, что 2 инстанса Stock service используют одну и ту же базу. Это нормально? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 17:07 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
redwhite90легковесные механизмы, как правило HTTPHTTP настолько "легковесный" протокол, что если мы гоняем данных через JMS или, например, базу, то латентность получается порядка миллисекунд, а как только мы начинаем делать тоже самое через http так латентность сразу начинает исчисляться десятками, если не сотнями, миллисекунд, что в принципе и понятно: постоянные хендшейки, сериализация, отсутствие состояния дешево стоить не могут. Микросервисы - это про то, как жаваскрипт в браузере взаимодействует с модулями системы, а не про то как модули системы взаимодействуют между собой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 17:22 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
redwhite90То есть микросервисы одного типа могут работать с одной базой, а микросервисы разного типа не могут?Если вы пишите обычный монолит, то работает его модуль с базой или нет - определяется исключительно задумками разработчика. Это первое. Второе. Когда вы пишите обычный монолит, то, вероятно, никто не использует словосочетание "тип модуля"? Тогда почему вы считаете, что после превращения модуля (группы модулей) в приложение у этого приложения, внезапно, появляется какой-то "тип"? Хотите сделать какое-то определение? Дайте описание, адекватное предметной области и предложите короткий термин, который заменит это описание. Использовать сильно многозначное слово "тип" - как-то не очень хорошо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 17:26 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
redwhite90Допустим я понял, что мы упёрлись в производительность Stock service и приходит понимание, что надо масштабироваться. Поднимаем рядом ещё одну машинку и получается, что 2 инстанса Stock service используют одну и ту же базу. Это нормально?Вы именно "поняли" или, всё-таки, спрофилировали ваше приложение и обнаружили дефицитный ресурс, который нельзя смасштабировать на имеющемся железе? Это первое. Второе. Вы уже сделали оценку дополнительной нагрузки и можете обоснованно предположить, что СУБД не станет новым узким местом? Или, опять-таки, "понимаете, что всё будет тип-топ"? Ну и самое главное ... Цель разработки приложения - решить поставленную задачу. Если решение задачи требует использовать цать клиентов, работающих с базой вместо одного, то какие могут быть проблемы? Вам деньги платят авторы материалов разной степени (бес)полезности или, всё-таки, (не)довольные клиенты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 17:33 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
redwhite90Petro123redwhite90, Почему у тебя теория одна? В прошлой СВОЕЙ теме книжку прочитал? Чтобы что-то начать делать нужна какая-то теоретическая основа и понимание нафига оно надо. Я так и поверил что ты начал микросервисы писать. Akka уже написал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 17:35 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
redwhite90Petro123redwhite90, Почему у тебя теория одна? В прошлой СВОЕЙ теме книжку прочитал? Чтобы что-то начать делать нужна какая-то теоретическая основа и понимание нафига оно надо.ну и вопрос был про книжку что тебе дали в прошлом топике. А ты как журналист, не читая полетел народ спрашивать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 17:39 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorovredwhite90Допустим я понял, что мы упёрлись в производительность Stock service и приходит понимание, что надо масштабироваться. Поднимаем рядом ещё одну машинку и получается, что 2 инстанса Stock service используют одну и ту же базу. Это нормально?Вы именно "поняли" или, всё-таки, спрофилировали ваше приложение и обнаружили дефицитный ресурс, который нельзя смасштабировать на имеющемся железе? Это первое. Второе. Вы уже сделали оценку дополнительной нагрузки и можете обоснованно предположить, что СУБД не станет новым узким местом? Или, опять-таки, "понимаете, что всё будет тип-топ"? Ну и самое главное ... Цель разработки приложения - решить поставленную задачу. Если решение задачи требует использовать цать клиентов, работающих с базой вместо одного, то какие могут быть проблемы? Вам деньги платят авторы материалов разной степени (бес)полезности или, всё-таки, (не)довольные клиенты? Я пока на пути понимания концепции. Понятно, что в реальной ситуации иногда приходится отходить от канонов по той или иной причине. Я хочу понять противоречит это концепции или нет. "Чтобы работало" часто можно написать по разному. Так что не считаю это достоверным показателем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 18:14 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
redwhite90Я хочу понять противоречит это концепции или нет.Концепция у микросервисов ровно одна - превращение модулей (групп модулей, подсистем) монолитного приложения в отдельные автономные приложения. Всё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 19:07 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorovredwhite90Я хочу понять противоречит это концепции или нет.Концепция у микросервисов ровно одна - превращение модулей (групп модулей, подсистем) монолитного приложения в отдельные автономные приложения. Всё. Ну то есть одну базу 2 разных микросервиса могут использовать вне зависимости занимаются они одним(являются братьями близнецами друг друга) и тем же или нет? https://martinfowler.com/articles/microservices.html At a first approximation, we can observe that services map to runtime processes, but that is only a first approximation. A service may consist of multiple processes that will always be developed and deployed together, such as an application process and a database that's only used by that service. Что на это скажете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 19:15 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
redwhite90Что на это скажете?А что вы хотите услышать??? Моё личное мнение об абстрактных микросервисах в вакууме или высосанное из пальца обсуждение двух предложений и сказанных в одном неизвестном и процитированных в другом непонятном контексте? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 19:52 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Микросервисы могут использовать общую БД. И кто сказал, что это одна машина? Это может быть и распределенный кластер. Во всех перечисленных ссылках говорится об ОБЩЕНИИ модулей между собой. Это может и не быть http, а tcp. На одной машине - пайпы или shared memory ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 20:12 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Arm79или shared memoryОсобенно гармонично эта нативная возможность смотрится в Java-приложениях. P.S. Да, я в курсе, что общение IP-сокеты на localhost по эффективности сравнимы с общение через общую память. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 20:15 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovArm79или shared memoryОсобенно гармонично эта нативная возможность смотрится в Java-приложениях. P.S. Да, я в курсе, что общение IP-сокеты на localhost по эффективности сравнимы с общение через общую память. Во-первых, вы ушли от темя сабжа Во-вторых, вы хотите меня уверить, что Java не умеет работать с Share Memory? Первая же ссылка на Хабре ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 21:10 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Arm79Первая же ссылка ..."В Linux объекты Shared Memory реализованы посредством специальной файловой системы, монтируемой к /dev/shm". А Windows объекты разделяемой памяти реализованы не так. Мы и дальше будем страдать фигнёй, обсуждая использование завязанных на систему особенностей в кросплатформенной среде? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 21:51 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
...В Oracle JDK есть класс sun.nio.ch.FileChannelImpl с приватными методами map0 и unmap0...Такой механизм будет работать как в Linux, так и под Windows... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 22:06 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Arm79В Oracle JDK есть класс sun.nio.ch.FileChannelImpl с приватными методамиОсобо упёртым замечу, что наличие приватных методов никак не влияет на интерфейс Java SE API. Особо непонятливым поясню, что даже открытый интерфейс не позволит работать с файлом /dev/shmem под виндой так, как хрюниксах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 22:17 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Особо упертым - мне в общем плевать. Я лишь иллюстрировал мысль, что канал общения между микросервисами неважен. Будем считать, что товарищ Basil прав, а дурачок Андрей Пангин с его примерами на гитхаб - неправ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 22:31 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Arm79Будем считать, что товарищ Basil прав, а дурачок Андрей Пангин с его примерами на гитхаб - неправ.ну какбы так и есть...apanginСамый главный недостаток этого метода заключается в том, что нельзя отображать файлы размером более 2 GB, что и описано в Javadoc к методу map: The size of the region to be mapped; must be non-negative and no greater than Integer.MAX_VALUE.На английском написано примерно так: файл может быть любого размера, однако в ByteBuffer можно отобразить любую его часть размером не более 2Gb, для выбора отображаемой части нужно использовать параметры position и size. Каким образом из этого предложения возникло утверждение что размер файла не может быть больше 2Gb мне как-то непонятно... Там про shared memory еще какой-то треш написан, но уже как-то не имеет смысла писать в чем там вранье. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2018, 05:20 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39642154&tid=2122042]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
155ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 238ms |
| total: | 489ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...