|
|
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Arm79Это может и не быть http, а tcpВот жеж беда, оказывается все строители кластеров дебилы и используют multicast для общения, который по определению UDP. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2018, 05:24 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Андрей ПанфиловArm79Это может и не быть http, а tcpВот жеж беда, оказывается все строители кластеров дебилы и используют multicast для общения, который по определению UDP. Наверное дебилы не они, а те, кто применяет неподходящие инструменты для определенных задач. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2018, 11:31 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Вообще мой вопрос связан с местом хранения состояния. База это не средство коммуникации, а средство хранения состояния. Может в таком случае два однородных сервера использовать одну и ту же БД ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2018, 18:19 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
redwhite90Может в таком случае два однородных сервера использовать одну и ту же БД ?нет ни в коем случае , это будет крах всего проекта. это как же несколько приложений и вдруг будут писать в одну таблицу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2018, 18:31 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
redwhite90База это не средство коммуникации, а средство хранения состояния вот ты в ту книгу загляни, и увидишь что там написано всё наоборот. Теоретик. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2018, 18:32 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Вот жеж развели тут В каноническом понимании микросервисов, один микросервис = bounded context из терминологии DDD Почитать можно тут - https://martinfowler.com/bliki/BoundedContext.html Один Bounded context = одно хранилище состояния. Если кто-то другой пишет в те же таблицы - значит хреновые у вас микросервисы. Причем ничего не мешает двум микросервисам использовать другую схему в той же базе и т.д. Ну и отвечая на непонятный вопрос ТС - да, если микросервис должен масштабироваться и работать на нескольких нодах - то никто не мешает ему писать в одну и ту же базу, почему нет? Смысл всей этой свистопляски в том, чтобы можно было задеплоить микросервис не ожидая каких-либо других приложений\сервисов. А в случае с разделяемой базой такое случится наверняка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2018, 12:00 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
забыл никВот жеж развели тут В каноническом понимании микросервисов, один микросервис = bounded context из терминологии DDD Почитать можно тут - https://martinfowler.com/bliki/BoundedContext.html Один Bounded context = одно хранилище состояния. Если кто-то другой пишет в те же таблицы - значит хреновые у вас микросервисы. Причем ничего не мешает двум микросервисам использовать другую схему в той же базе и т.д. Ну и отвечая на непонятный вопрос ТС - да, если микросервис должен масштабироваться и работать на нескольких нодах - то никто не мешает ему писать в одну и ту же базу, почему нет? Смысл всей этой свистопляски в том, чтобы можно было задеплоить микросервис не ожидая каких-либо других приложений\сервисов. А в случае с разделяемой базой такое случится наверняка Ну хоть один человек ответил на мой вопрос. вадянет ни в коем случае , это будет крах всего проекта. это как же несколько приложений и вдруг будут писать в одну таблицу? А что будет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2018, 12:14 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
redwhite90Ну хоть один человек ответил на мой вопрос. Вопрос глупый. Из той книги EIP: - Общая БД это один из методов высшего уровня интеграции. ИХ МНОГО. А микросервисы это просто архитектурный стиль, как например REST. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2018, 12:41 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
redwhite90А что будет?а вот на этот вопрос сам ответ дай ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2018, 12:41 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
вадяredwhite90А что будет?а вот на этот вопрос сам ответ дайон не дает ответов. Он пол года спрашивает по архитектуре. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2018, 12:49 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
redwhite90Ну хоть один человек ответил на мой вопрос.Только ответ неправильный - считать таблицу "единицей состояния" ... Ну, "это мы дадим в конце". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2018, 12:52 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Petro123он не дает ответов. Он пол года спрашивает по архитектуре.а я и не жду... я надеялся что чел поймет чёрный юмор ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2018, 13:15 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorovredwhite90Ну хоть один человек ответил на мой вопрос.Только ответ неправильный - считать таблицу "единицей состояния" ... Ну, "это мы дадим в конце". Откуда в Вас злости то столько? перед кем Вы пытаетесь самоутвердиться? я ж пришёл с посылом, что я этого не знаю, но хочу узнать. Пока что Ваши ответы слабо коррелируют с тем, что я спрашивал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2018, 13:17 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
redwhite90Откуда в Вас злости то столько?"Добро пожаловать в реальный мир, Фёдор Сумкин"перед кем Вы пытаетесь самоутвердиться?Я, что, сильно похож на прыщавого юнца, который хочет понравится девушке?я ж пришёл с посылом, что я этого не знаю, но хочу узнать. Пока что Ваши ответы слабо коррелируют с тем, что я спрашивалВы уж определитесь: или "я не знаю" или "слабо коррелируют с вопросом". P.S. Лично я, начиная что-то изучать, беру любую информацию, которую удастся найти: в процессе изучения придёт понимание, что коррелирует, а что - не очень. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2018, 13:27 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
redwhite90что я этого не знаю, но хочу узнать.начните писать код. Тогда будет баланс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2018, 13:51 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Андрей ПанфиловМикросервисы - это про то, как жаваскрипт в браузере взаимодействует с модулями системы, а не про то как модули системы взаимодействуют между собой. Из чего следует такое определение? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2018, 14:00 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
забыл ник Ну и отвечая на непонятный вопрос ТС - да, если микросервис должен масштабироваться и работать на нескольких нодах - то никто не мешает ему писать в одну и ту же базу, почему нет? Смысл всей этой свистопляски в том, чтобы можно было задеплоить микросервис не ожидая каких-либо других приложений\сервисов. А в случае с разделяемой базой такое случится наверняка Вот что пишут(лучше пройти по ссылке, чтобы прочитать - тут совсем некрасиво отформатировалось): https://stackoverflow.com/a/30742466/2674303 Multiple applications accessing the same database tables can be (and usually is) a concurrency nightmare. Just adding a version column to tables does not help because each application may use different concurrency management mechanisms. Common problems encountered when sharing a database across applications (assuming read-write access for all and in no particular order): Concurrency mismatch: Imagine one application using optimistic locking throughout, another using pessimistic locking and a third using no locking at all (since all are maintained by different teams). Even if there is a central architecture group handing out good application architecture advice to everyone, developers can do whatever they like and end up causing concurrency hell. Deadlocks: Imagine one application using SERIALIZABLE isolation level for all transactions and performing long-running operations on the database, causing queues, deadlocks and timeouts. Even if other applications do not corrupt data, they may end up seeing too many errors due to deadlocks and timeouts, reducing their usefulness. Data validity: It is common for developers to use in-memory caches for storing fixed or slow-changing data to save repeated database roundtrips. In a JPA application backed by Hibernate, developers could use a second-level cache. However, if another application updates the database, the cache would be holding stale (and therefore inaccurate) data. Data integrity: Different applications may use different parts of the data. If all are allowed to update the common data independently, how is referential integrity maintained? What about business rules? Will they have to be duplicated across the applications? Team communication overhead: Each team has to keep the other teams informed about changes they need to make to the schema so that they do not step on to each others' toes. This may even reduce agility if other teams do not agree with changes required by a team or if priorities cannot be aligned. Schema errors: What happens if someone deletes, renames, moves or archives tables or columns required by an application? Access control: If the underlying data is sensitive and requires authentication and authorization, access control checks will have to be duplicated across the applications. Ownership: Who owns the common tables becomes a challenge as each team may have its own stakeholders, roadmap, constraints and priorities. Portability: If the underlying database (vendor and type) has to be changed some day, all applications will need to be changed. Auditing and versioning: If common data needs to be audited and/or versioned (multiple versions of data rows), the code will either have to be duplicated across applications or built into the database (which may not be easy within the database, for example, knowing which application user changed a record). If done within the database, portability is affected again because the syntax may vary from one database vendor to another. Database-specific optimizations: Some scenarios (for example, reporting) may require native queries or other optimizations that may not be possible or too hard to perform using an ORM technology like JPA. If multiple applications require access to optimized queries, such functionality will either have to be built into the database (stored procedures) or duplicated across the applications (in possibly different ways). Archival and partitioning: Different applications may have different archival and partitioning requirements. Who makes sure that everyone's needs are met equally? Standardization: If different teams are allowed to manage the common database objects on their own, how are things such as data dictionary, naming conventions, etc. managed? A table that is used by different teams may have differently (and mostly annoyingly) named columns, constraints, etc. A better approach is to expose the common database tables using a service. The service can keep things consistent and controlled at all times. A common team handling changes to the service can ensure that unexpected changes are minimized and also communicated to all affected parties in a timely manner. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2018, 16:39 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
redwhite90, Не надо сюда копипастить. И да, пишут что могут быть проблемы для неумелых рук. Так же как и использование одной переменной класса из разных мест и потоков. Ничего нового. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2018, 17:04 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
redwhite90Вот что пишут(лучше пройти по ссылке, чтобы прочитать - тут совсем некрасиво отформатировалось): https://stackoverflow.com/a/30742466/2674303 Multiple applications accessing the same database tables can be (and usually is) a concurrency nightmare.Там пишут, что на обычные проблемы конкурентного обращения, в случае микросервисов, могут накладываться проблемы разных версий. Лично я согласен, что мигрировать запись одной структуры на запись другой структуры в самом приложении - очень сложно. Соответственно, лучше сделать так, чтобы хвост не вилял собакой: менять структуру базы отдельным от разработки микросервисов процессом, централизованно обновляя и саму базу и (микро)сервисы, которые с этой базой работают. P.S. Царский университет, юрфак, девушка (на отлично) сдаёт экзамен. Профессор, считающий, что женщинам в юриспуриденции не место, хочет "срезать" экзаменуемую, смутив её. - Предположим, что я попытался вас изнасиловать. Как бы вы квалифицировали это деяние? - Как попытку с негодными средствами! Не надо делать очевидно неподъёмные вещи. Сделайте менее продвинутым, но посильным способом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2018, 01:27 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Мужик годно объясняет. Всё с нуля, по делу и , главное, понятно изъясняет мысли. [youtube= ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2018, 17:54 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
redwhite90Мужик годно объясняет. Всё с нуля, по делу и , главное, понятно изъясняет мысли.И в каком месте это отвечает на ваш вопрос? Первые пять минут презентации уделены не то что неочевидному, а даже спорному утверждению, что если мы возьмем нормально работающее приложение, разрежем его на куски, которые между собой будут общаться теперь не через память, а через HTTP, то у нас, "внезапно", приложение начнет лучше масштабироваться (примерно как здесь: https://blog.risingstack.com/why-you-should-start-using-microservices/ ). А остальные 40 минут посвящены тому, как героически решать проблемы, возникшие после такого вот неочевидного подхода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2018, 04:23 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Андрей Панфиловredwhite90Мужик годно объясняет. Всё с нуля, по делу и , главное, понятно изъясняет мысли.И в каком месте это отвечает на ваш вопрос? Первые пять минут презентации уделены не то что неочевидному, а даже спорному утверждению, что если мы возьмем нормально работающее приложение, разрежем его на куски, которые между собой будут общаться теперь не через память, а через HTTP, то у нас, "внезапно", приложение начнет лучше масштабироваться (примерно как здесь: https://blog.risingstack.com/why-you-should-start-using-microservices/ ). А остальные 40 минут посвящены тому, как героически решать проблемы, возникшие после такого вот неочевидного подхода. В целом по теме микросервисов я имел ввиду. Почему спорное? нормальное такое утверждение. Докладчик в отличии от большинства местных отвечателей пытается донести информацию, а не тупо засрать всё) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2018, 11:11 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
redwhite90Докладчик в отличии от большинства местных отвечателей пытается донести информацию, а не тупо засрать всё) Знаешь, как шутят о микросервисах? То что все о них говорят, но никто их не видел. На этом форуме пара мемберов за 4 года. Так что продолжай брать инервью у программистов и жаловаться что тут срут для журналистов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2018, 11:57 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Petro123redwhite90Докладчик в отличии от большинства местных отвечателей пытается донести информацию, а не тупо засрать всё) Знаешь, как шутят о микросервисах? То что все о них говорят, но никто их не видел. На этом форуме пара мемберов за 4 года. Так что продолжай брать инервью у программистов и жаловаться что тут срут для журналистов. Ну я видел в живую на живом проекте. Не знаю, вошел ли в "пара мемберов", может меня уже подсчитали. то что я видел - было круто. Остановил микросервис на проде, залил новую версию, запустил - юзеры даже не заметили. Но никто в такую теорию, можно ли работать с базой, нельзя работать с базой.... не углублялся. Нужно - работаем, не нужно - не работаем. Обмен данными был по HTTP через прокси-балансир. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2018, 12:41 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
redwhite90Почему спорное? нормальное такое утверждение. Докладчик в отличии от большинства местных отвечателей пытается донести информацию, а не тупо засрать всё)Ну вообще с целом какбы принято, что если мы какие-то утверждения называем очевидными, то они либо являются общеизвестными фактами, либо не составляет никакой сложности их доказать - мне так кажется что с обоими способами доказательства, что микросервисы - это всегда хорошо, у вас возникнут проблемы. Вот посмотрите на самый первый слайд из вашей презентации по микросервисам (приложил внизу), как вот в этой архитектуре удалить клиента вместе со всеми его счетами и историей (или к примеру объеденить два счета вместе)? В той "архитектуре", которая нарисована - никак, потому что транзакций там никаких нет, а чтобы это реализовать и при этом придерживаться выбранной "архитектуры" нужно создать еще два микросвервиса: один будет записывать команды на удаление, а второй будет обрабатывать эти команды. Как по мне, так это попахивает каким-то лютым пи......ом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2018, 12:44 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39642300&tid=2122042]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
168ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
| others: | 13ms |
| total: | 281ms |

| 0 / 0 |

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