powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Масштабирование микросервисов.
25 сообщений из 86, страница 1 из 4
Масштабирование микросервисов.
    #39642110
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Начал читать про микросервисы. Как я понял микросервис это нечто автономное, общающееся с внешним миром по сети. Например через jms.

Соответственно микросервисы не должны общаться через базу. Но что если мы понимаем, что нам больше не хватает одной машины для сервиса A, нужно 2 машины. Сервис А использует БД.

Могут ли в таком случае 2 инстанса сервера А исаользовать одну и ту же БД? если не могут, то почему именно и как решить эту проблему(репликация? consistency не будет?)?
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642113
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90,
Почему у тебя теория одна?
В прошлой СВОЕЙ теме книжку прочитал?
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642123
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90Начал читать про микросервисы. Как я понял Микросервис это попытка разменять сложность разработки многомодульного приложения на сложность развёртывания многосервисного облака.
Т.е. микросервис ~= модуль, превращённый в автономное приложение.
Точно также, как у вас может быть несколько экземпляров модуля в памяти монолитного приложения, точно также у вас может быть несколько экземпляров микросервиса.
Сколько экземпляров работают с базой - определяется логикой системы и здравым смыслом.
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642125
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90Соответственно микросервисы не должны общаться через базу.
Почему?
Чем Вам база не угодила?
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642129
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. Sidorovredwhite90Начал читать про микросервисы. Как я понял Микросервис это попытка разменять сложность разработки многомодульного приложения на сложность развёртывания многосервисного облака.
Т.е. микросервис ~= модуль, превращённый в автономное приложение.
Точно также, как у вас может быть несколько экземпляров модуля в памяти монолитного приложения, точно также у вас может быть несколько экземпляров микросервиса.
Сколько экземпляров работают с базой - определяется логикой системы и здравым смыслом.

То есть микросервисы одного типа могут работать с одной базой, а микросервисы разного типа не могут?
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642135
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsevredwhite90Соответственно микросервисы не должны общаться через базу.
Почему?
Чем Вам база не угодила?
Ну вот например

https://habr.com/post/249183/ Если коротко, то архитектурный стиль микросервисов — это подход, при котором единое приложение строится как набор небольших сервисов, каждый из которых работает в собственном процессе и коммуницирует с остальными используя легковесные механизмы, как правило HTTP . Эти сервисы построены вокруг бизнес-потребностей и развертываются независимо с использованием полностью автоматизированной среды. Существует абсолютный минимум централизованного управления этими сервисами. Сами по себе эти сервисы могут быть написаны на разных языках и использовать разные технологии хранения данных.


https://habr.com/company/mailru/blog/320962/#2 Микросервисная архитектура — это подход к созданию приложения, подразумевающий отказ от единой, монолитной структуры. То есть вместо того чтобы исполнять все ограниченные контексты приложения на сервере с помощью внутрипроцессных взаимодействий, мы используем несколько небольших приложений, каждое из которых соответствует какому-то ограниченному контексту. Причём эти приложения работают на разных серверах и взаимодействуют друг с другом по сети, например посредством HTTP.

Иными словами, мы инкапсулируем определённые контексты приложения в микросервисы, по одному на каждый, а сами микросервисы крутим на разных серверах.
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642137
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123redwhite90,
Почему у тебя теория одна?
В прошлой СВОЕЙ теме книжку прочитал?

Чтобы что-то начать делать нужна какая-то теоретическая основа и понимание нафига оно надо.
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642140
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот ещё по теме:

https://habr.com/company/mailru/blog/320962/#2 При микросервисной архитектуре, когда каждый бизнес-компонент представляет собой микросервис, все компоненты обладают собственными базами данных, которые недоступны другим микросервисам. Данные компонента доступны (для чтения и записи) только через соответствующий интерфейс компонентов. Благодаря этому степень устойчивости данных варьируется в зависимости от компонента (Мартин Фаулер, Чед Фаулер).

Вот и возникает у меня вопрос:
Допустим я понял, что мы упёрлись в производительность Stock service и приходит понимание, что надо масштабироваться. Поднимаем рядом ещё одну машинку и получается, что 2 инстанса Stock service используют одну и ту же базу. Это нормально?
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642144
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90легковесные механизмы, как правило HTTPHTTP настолько "легковесный" протокол, что если мы гоняем данных через JMS или, например, базу, то латентность получается порядка миллисекунд, а как только мы начинаем делать тоже самое через http так латентность сразу начинает исчисляться десятками, если не сотнями, миллисекунд, что в принципе и понятно: постоянные хендшейки, сериализация, отсутствие состояния дешево стоить не могут. Микросервисы - это про то, как жаваскрипт в браузере взаимодействует с модулями системы, а не про то как модули системы взаимодействуют между собой.
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642145
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90То есть микросервисы одного типа могут работать с одной базой, а микросервисы разного типа не могут?Если вы пишите обычный монолит, то работает его модуль с базой или нет - определяется исключительно задумками разработчика.
Это первое.

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

Хотите сделать какое-то определение?
Дайте описание, адекватное предметной области и предложите короткий термин, который заменит это описание.
Использовать сильно многозначное слово "тип" - как-то не очень хорошо.
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642150
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90Допустим я понял, что мы упёрлись в производительность Stock service и приходит понимание, что надо масштабироваться.
Поднимаем рядом ещё одну машинку и получается, что 2 инстанса Stock service используют одну и ту же базу.
Это нормально?Вы именно "поняли" или, всё-таки, спрофилировали ваше приложение и обнаружили дефицитный ресурс, который нельзя смасштабировать на имеющемся железе?
Это первое.

Второе.
Вы уже сделали оценку дополнительной нагрузки и можете обоснованно предположить, что СУБД не станет новым узким местом?
Или, опять-таки, "понимаете, что всё будет тип-топ"?

Ну и самое главное ...
Цель разработки приложения - решить поставленную задачу.
Если решение задачи требует использовать цать клиентов, работающих с базой вместо одного, то какие могут быть проблемы?
Вам деньги платят авторы материалов разной степени (бес)полезности или, всё-таки, (не)довольные клиенты?
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642154
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90Petro123redwhite90,
Почему у тебя теория одна?
В прошлой СВОЕЙ теме книжку прочитал?

Чтобы что-то начать делать нужна какая-то теоретическая основа и понимание нафига оно надо.
Я так и поверил что ты начал микросервисы писать.
Akka уже написал?
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642157
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90Petro123redwhite90,
Почему у тебя теория одна?
В прошлой СВОЕЙ теме книжку прочитал?

Чтобы что-то начать делать нужна какая-то теоретическая основа и понимание нафига оно надо.ну и вопрос был про книжку что тебе дали в прошлом топике.
А ты как журналист, не читая полетел народ спрашивать.
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642165
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. Sidorovredwhite90Допустим я понял, что мы упёрлись в производительность Stock service и приходит понимание, что надо масштабироваться.
Поднимаем рядом ещё одну машинку и получается, что 2 инстанса Stock service используют одну и ту же базу.
Это нормально?Вы именно "поняли" или, всё-таки, спрофилировали ваше приложение и обнаружили дефицитный ресурс, который нельзя смасштабировать на имеющемся железе?
Это первое.

Второе.
Вы уже сделали оценку дополнительной нагрузки и можете обоснованно предположить, что СУБД не станет новым узким местом?
Или, опять-таки, "понимаете, что всё будет тип-топ"?

Ну и самое главное ...
Цель разработки приложения - решить поставленную задачу.
Если решение задачи требует использовать цать клиентов, работающих с базой вместо одного, то какие могут быть проблемы?
Вам деньги платят авторы материалов разной степени (бес)полезности или, всё-таки, (не)довольные клиенты?

Я пока на пути понимания концепции. Понятно, что в реальной ситуации иногда приходится отходить от канонов по той или иной причине. Я хочу понять противоречит это концепции или нет.

"Чтобы работало" часто можно написать по разному. Так что не считаю это достоверным показателем.
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642178
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90Я хочу понять противоречит это концепции или нет.Концепция у микросервисов ровно одна - превращение модулей (групп модулей, подсистем) монолитного приложения в отдельные автономные приложения. Всё.
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642183
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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.

Что на это скажете?
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642185
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90Что на это скажете?А что вы хотите услышать???
Моё личное мнение об абстрактных микросервисах в вакууме или высосанное из пальца обсуждение двух предложений и сказанных в одном неизвестном и процитированных в другом непонятном контексте?
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642191
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Микросервисы могут использовать общую БД. И кто сказал, что это одна машина? Это может быть и распределенный кластер.

Во всех перечисленных ссылках говорится об ОБЩЕНИИ модулей между собой. Это может и не быть http, а tcp. На одной машине - пайпы или shared memory
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642192
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79или shared memoryОсобенно гармонично эта нативная возможность смотрится в Java-приложениях.

P.S. Да, я в курсе, что общение IP-сокеты на localhost по эффективности сравнимы с общение через общую память.
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642197
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovArm79или shared memoryОсобенно гармонично эта нативная возможность смотрится в Java-приложениях.

P.S. Да, я в курсе, что общение IP-сокеты на localhost по эффективности сравнимы с общение через общую память.
Во-первых, вы ушли от темя сабжа
Во-вторых, вы хотите меня уверить, что Java не умеет работать с Share Memory? Первая же ссылка на Хабре
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642207
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79Первая же ссылка ..."В Linux объекты Shared Memory реализованы посредством специальной файловой системы, монтируемой к /dev/shm".
А Windows объекты разделяемой памяти реализованы не так.

Мы и дальше будем страдать фигнёй, обсуждая использование завязанных на систему особенностей в кросплатформенной среде?
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642217
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...В Oracle JDK есть класс sun.nio.ch.FileChannelImpl с приватными методами map0 и unmap0...Такой механизм будет работать как в Linux, так и под Windows...
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642220
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79В Oracle JDK есть класс sun.nio.ch.FileChannelImpl с приватными методамиОсобо упёртым замечу, что наличие приватных методов никак не влияет на интерфейс Java SE API.
Особо непонятливым поясню, что даже открытый интерфейс не позволит работать с файлом /dev/shmem под виндой так, как хрюниксах.
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642226
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Особо упертым - мне в общем плевать. Я лишь иллюстрировал мысль, что канал общения между микросервисами неважен. Будем считать, что товарищ Basil прав, а дурачок Андрей Пангин с его примерами на гитхаб - неправ.
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642262
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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 еще какой-то треш написан, но уже как-то не имеет смысла писать в чем там вранье.
...
Рейтинг: 0 / 0
25 сообщений из 86, страница 1 из 4
Форумы / Java [игнор отключен] [закрыт для гостей] / Масштабирование микросервисов.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]