Яка різниця між крупнозернистим і дрібнозернистим?
Я шукав ці терміни в Google, але не зміг знайти, що вони означають.
Яка різниця між крупнозернистим і дрібнозернистим?
Я шукав ці терміни в Google, але не зміг знайти, що вони означають.
Відповіді:
Гранулярність - це ступінь розбиття системи на невеликі частини, як сама система, так і її опис чи спостереження. Це ступінь поділу більшої сутності. Наприклад, двір, розбитий на дюйми, має більш дрібну зернистість, ніж двір, розбитий на ноги.
Грубозернисті системи складаються з меншої кількості більш великих компонентів, ніж дрібнозернисті системи; грубозернистий опис системи стосується великих підкомпонентів, тоді як тонкозернистий опис стосується більш дрібних компонентів, з яких складаються більш великі.
Простіше кажучи
Краще мати більш крупнозернисті сервісні операції, які складаються з дрібнозернистих операцій
Грубозернисті: Деякі об'єкти містять багато пов'язаних даних, тому послуги мають ширший спектр функціональності. Приклад: Один об’єкт "Рахунок" містить ім'я клієнта, адресу, залишок рахунку, дату відкриття, дату останньої зміни тощо. Таким чином: Збільшення складності дизайну, менша кількість комірок для різних операцій
Дрібнозернистий: більше об'єктів, у яких є менше даних, тому служби мають більш вузьку сферу функціональності. Приклад: Об'єкт рахунку містить баланс, об’єкт Клієнта містить ім'я та адресу, об’єкт AccountOpenings містить дату відкриття тощо. Таким чином: Зменшення складності проекту, більша кількість комірок для різних операцій обслуговування. Це відносини, визначені між цими об'єктами.
Ще один спосіб зрозуміти - це думати з точки зору зв'язку між процесами та потоками. Процеси спілкуються за допомогою грубозернистих механізмів зв'язку, таких як розетки, оброблячі сигналів, спільна пам'ять, семафори та файли. З іншого боку, нитки мають доступ до спільного простору пам’яті, що належить до процесу, що дозволяє їм застосовувати більш тонкі зернові механізми зв'язку.
Джерело: Паралельність Java на практиці
У терміні набору даних, як текстовий файл, з крупнозернистим значенням, ми можемо перетворити цілий набір даних, але не окремий елемент набору даних. Хоча дрібнозернистий означає, що ми можемо перетворити окремий елемент на набір даних.
У контексті послуг:
http://en.wikipedia.org/wiki/Service_Granularity_Principle
За визначенням, операція з крупнозернистим обслуговуванням має ширший обсяг, ніж дрібнозерниста послуга, хоча терміни відносні. Перший зазвичай вимагає підвищеної складності дизайну, але може зменшити кількість дзвінків, необхідних для виконання завдання.
Дрібнозернистий сервісний інтерфейс приблизно такий же, як чат-інтерфейс.
Грубозернисті та дрібнозернисті роздумують над оптимізацією ряду послуг. Але різниця в рівні. Мені подобається пояснювати на прикладі, ви зрозумієте легко.
Дрібнозернистий : Наприклад, у мене є 100 таких сервісів, як findbyId, findbyCategry, findbyName ...... тощо. Замість цього багато служб, чому ми не можемо надати пошук (id, категорія, назва .... тощо). Таким чином ми можемо скоротити послуги. Це лише приклад, але мета полягає в тому, як оптимізувати кількість послуг.
Грубозернистий : Наприклад, у мене є 100 клієнтів, кожен клієнт має свій набір із 100 послуг. Тож я маю надати 100 * 100 послуг загалом. Це дуже важко. Замість того, що я роблю, я визначаю всі загальні сервіси, які стосуються більшості клієнтів як один сервісний набір і залишаються окремо. Наприклад, у 100 службах поширені 50 послуг. Тож я маю керувати лише 100 * 50 + 50.
Грубозерниста зернистість не завжди означає більші компоненти, якщо ви перейдете в прямому значенні слова груба, це означає різку чи невідповідну. Наприклад, в управлінні проектами програмного забезпечення, якщо ви розділите невелику систему на кілька компонентів, які однакові за розміром, але відрізняються за складністю та особливостями, це може призвести до грубозернистості. Зворотним чином, для тонкозернистого розбиття ви поділили компоненти на основі їх згуртованості функціональних можливостей, які надає кожен компонент.
грубозернистий і дрібнозернистий. Обидва ці режими визначають розподіл ядер між декількома завданнями Spark. Як випливає з назви, тонкозернистий режим відповідає за обмін ядер на більш деталізованому рівні. Іскровий режим дрібнозернистого режиму був припинений і незабаром буде видалений.
Корпоративні послуги надають більш широкі функціональні можливості порівняно з дрібнозернистими послугами. Залежно від домену бізнесу, для обслуговування однієї бізнес-одиниці може бути створена одна послуга, або можуть бути створені спеціалізовані декілька дрібнозернистих послуг, якщо субодиниці значною мірою не залежать одна від одної. Грубозернистий сервіс може бути складнішим, може бути менш пристосованим до зміни через його розмір, тоді як дрібнозерниста послуга може ввести додаткову складність управління кількома послугами.
У термінах тегів POS (частина мови),