مدیریت فرآیندهای سازمانی BPMSتست و صحه‌گذاری شده On-Premises

راهنمای جامع معماری کلاسترینگ و بهینه‌سازی Async Executor در Flowable Enterprise

راهنمای تخصصی پیاده‌سازی موتور فرآیندساز و مدیریت موارد Flowable Enterprise (BPMN / CMMN) در مقیاس سازمانی، تنظیمات Thread Pool هسته Async Executor، جلوگیری از Deadlock در پایگاه داده PostgreSQL و Oracle، معماری چندمستاجری (Multi-Tenancy) و لایسنسینگ دائمی آفلاین.

دپارتمان تخصصی معماری فرآیندهای سازمانی و BPMS پلتفرم Licentraتیم مهندسی و تضمین پایداری
تاریخ انتشار: ۱۰ اسفند ۱۴۰۴
زمان مطالعه: ۴ دقیقه
حجم مطلب: ۸۱۶ کلمه
اندازه متن:

آیا این راهنمای فنی برای شما مفید و کاربردی بود؟

بازخورد شما مستقیماً به تیم مهندسی نرم‌افزار سازمانی Licentra جهت غنابخشی مستندات منتقل می‌گردد.

راهنمای جامع معماری کلاسترینگ و بهینه‌سازی Async Executor در Flowable Enterprise
خلاصه اجرایی و نکات کلیدی این راهنما

این مقاله به عنوان مستند فنی رسمی و راهنمای عملیاتی، نیازمندی‌ها، ساختار دیتابیس، سناریوهای مانیتورینگ و فرآیندهای راه‌اندازی و پایداری را در محیط‌های واقعی مورد تحلیل قرار می‌دهد:

محیط استقرار: شبکه‌های ایزوله On-Premises و دیتاسنترهای Air-Gapped
مخاطبان هدف: مدیران سیستم، کارشناسان دواپس و مهندسان شبکه
لایسنسینگ: دائمی و بدون نیاز به اتصال یا اعتبارسنجی اینترنتی
پشتیبانی: اعتبارسنجی‌شده در لابراتوار فارم‌های عملیاتی Licentra

موتورهای مدیریت فرآیندهای کسب‌وکار (BPMS) و مدیریت موارد (Case Management - CMMN) مانند Flowable Enterprise به عنوان مغز متفکر اتوماسیون فرآیندهای سازمانی در بانک‌ها، شرکت‌های فین‌تک و سازمان‌های بزرگ عمل می‌کنند. در محیط‌های پرترافیک که روزانه ده‌ها هزار فرآیند، تایمرهای زمان‌بندی‌شده، و وظایف سرویس ناهمگام (Async Service Tasks) اجرا می‌شوند، گلوگاه اصلی سیستم عملکرد هسته پردازش پس‌زمینه یعنی Async Job Executor و بن‌بست‌های تراکنشی پایگاه داده است.

در صورت عدم پیکربندی دقیق پارامترهای کلاسترینگ، رقابت نودهای مختلف بر سر برداشتن جاب‌ها (Lock Acquisition Competition) موجب قفل شدن ردیف‌های جدول ACT_RU_JOB، تاخیر در اجرای وظایف خودکار و کندی پرتال کاربری می‌گردد. در این مقاله جامع، معماری کلاسترینگ چندنودی Flowable، تیونینگ پارامترهای Thread Pool در Spring Boot، پیکربندی پایگاه داده و استقرار لایسنس دائمی آفلاین تشریح می‌شود.

کنسول مدیریت فرآیندها و جاب‌های پس‌زمینه در Flowable Enterprise
📷 کنسول مدیریت فرآیندها و جاب‌های پس‌زمینه در Flowable Enterprise

۱. توپولوژی کلاسترینگ و تفکیک نودهای پردازشی (App Nodes vs Worker Nodes) #

در بارهای کاری بالا، پیشنهاد استاندارد معماری تفکیک سرورهای پاسخ‌دهی به کاربران (Web Application Nodes) از سرورهای پردازش فرآیندهای سنگین پس‌زمینه (Dedicated Worker Nodes) است:

text
                  ┌─────────────────────────────────────────┐
                  │       Reverse Proxy / Load Balancer     │
                  │             192.168.60.100              │
                  └───────────────────┬─────────────────────┘
                                      │
            ┌─────────────────────────┴─────────────────────────┐
            │                                                   │
            ▼                                                   ▼
┌───────────────────────┐                           ┌───────────────────────┐
│ Web Node 1 (Task/UI)  │                           │ Web Node 2 (Task/UI)  │
│  Async Executor: OFF  │                           │  Async Executor: OFF  │
│     192.168.60.101    │                           │     192.168.60.102    │
└───────────┬───────────┘                           └───────────┬───────────┘
            │                                                   │
            ├─────────────────────────┬─────────────────────────┤
            │                         │                         │
            ▼                         ▼                         ▼
┌───────────────────────┐ ┌───────────────────────┐ ┌───────────────────────┐
│ Dedicated Worker 1    │ │ Dedicated Worker 2    │ │ PostgreSQL Cluster    │
│  Async Executor: ON   │ │  Async Executor: ON   │ │  (Read Committed)     │
│     192.168.60.103    │ │     192.168.60.104    │ │     192.168.60.110    │
└───────────────────────┘ └───────────────────────┘ └───────────────────────┘

مزایای تفکیک نقش‌ها:

۱. حفظ سرعت پاسخ‌دهی پرتال کاربران: با خاموش کردن flowable.async-executor-activate در سرورهای Web Node، تمام توان CPU و RAM این ماشین‌ها صرف پاسخ‌دهی فوری به لاگین کاربران، بارگذاری فرم‌ها و تایید وظایف کارتابلی می‌شود.

۲. مقیاس‌پذیری افقی جاب‌های پس‌زمینه: در زمان‌های اوج بار (مانند فرآیندهای صدور صورتحساب پایان ماه)، کافی است سرورهای اختصاصی Worker اضافه شوند تا فرآیندهای ناهمگام را در صف‌ها پردازش کنند.

۲. پارامترهای طلایی پیکربندی Async Job Executor #

در فایل application.properties یا application.yml سرورهای Worker، مقادیر پیش‌فرض هسته Async Executor باید متناسب با منابع سرور بازنویسی شوند:

properties
# فعال‌سازی موتور پردازش ناهمگام در سرورهای پردازشی
flowable.async-executor-activate=true

# تنظیمات اندازه استخر پردازشی (Thread Pool)
flowable.async-executor.core-pool-size=16
flowable.async-executor.max-pool-size=64
flowable.async-executor.queue-size=2048

# بهینه‌سازی دوره قفل‌گذاری و برداشت دسته‌ای جاب‌ها
flowable.async-executor.max-async-jobs-due-per-acquisition=512
flowable.async-executor.default-async-job-acquire-wait-time-in-millis=2000
flowable.async-executor.default-timer-job-acquire-wait-time-in-millis=5000

# زمان معتبر بودن قفل هر جاب برای جلوگیری از اجرای تکراری
flowable.async-executor.async-job-lock-time-in-millis=300000

# فعال‌سازی مکانیسم صفوف مدرن به جای قفل سنتی دیتابیس
flowable.async-executor.use-lock-time=true

این تنظیمات سبب می‌شود نودهای Worker به جای تک‌تک خواندن رکوردها، جاب‌ها را به صورت دسته‌ای (Batch of 512) از جدول بخوانند که این کار فشار خواندن روی پایگاه داده را تا ۹۰٪ کاهش می‌دهد.

۳. تیونینگ پایگاه داده PostgreSQL برای رفع Deadlock #

بزرگ‌ترین عامل خطای Deadlock در دیتابیس Flowable، رکوردهای در حال قفل در جدول‌های ACT_RU_EXECUTION و ACT_RU_VARIABLE است. دستورات زیر بر روی دیتابیس PostgreSQL اعمال گردد:

sql
-- بهینه‌سازی پارامترهای اتصال و حافظه در postgresql.conf
ALTER SYSTEM SET max_connections = '500';
ALTER SYSTEM SET shared_buffers = '8GB';
ALTER SYSTEM SET effective_cache_size = '24GB';
ALTER SYSTEM SET maintenance_work_mem = '2GB';
ALTER SYSTEM SET checkpoint_completion_target = '0.9';
ALTER SYSTEM SET wal_buffers = '16MB';
ALTER SYSTEM SET default_statistics_target = '100';
ALTER SYSTEM SET random_page_cost = '1.1'; -- بهینه‌سازی برای درایوهای NVMe SSD

-- ایجاد ایندکس‌های اختصاصی بر روی جداول پرتردد Flowable
CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_act_ru_job_lock 
ON act_ru_job (lock_exp_time_, lock_owner_) 
WHERE lock_exp_time_ IS NOT NULL;

CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_act_ru_var_proc_inst 
ON act_ru_variable (proc_inst_id_, execution_id_);

۴. استقرار فرآیندها و مدیریت نگارش‌ها (Version Management) #

در محیط‌های سازمانی، به‌روزرسانی مدل‌های BPMN نباید موجب اختلال در فرآیندهای در حال اجرای کاربران گردد:

  • Migration of In-Flight Instances: از ابزار ProcessInstanceMigrationBuilder جهت مهاجرت فرآیندهای فعال از نگارش قدیم به نگارش جدید بدون نیاز به ریست یا کنسل کردن پرونده‌ها استفاده کنید.
  • Tenant Isolation: با فعال‌سازی فیلد tenantId در زمان استقرار فرآیندها (deployment.tenantId("TEHRAN-HQ"))، محیط شرکت‌ها یا هلدینگ‌های تابعه در یک دیتابیس متمرکز اما کاملاً ایزوله تفکیک می‌گردد.

۵. لایسنسینگ دائمی آفلاین و تثبیت پلتفرم توسط Licentra #

نسخه‌های انترپرایز Flowable شامل ابزارهای ویژه‌ای چون Flowable Work، Flowable Design، Flowable Inspect و موتور قدرتمند تصمیم‌گیری DMN است. در شبکه‌های سازمانی بسته و فاقد اینترنت:

  • لایسنس کامل Enterprise Suite: فعال‌سازی بدون محدودیت تعداد کاربر همزمان، بدون سقف تعداد فرآیندهای فعال ماهانه.
  • عملکرد مستقل از کالبک‌های License Server: کدهای فعال‌سازی به طور مستقیم در کلاس‌های بارگذاری Spring Boot تزریق شده و نیازی به استعلام لایسنس آنلاین ندارند.
  • پایداری کامل در استقرارهای کانتینری (Docker / Kubernetes): بدون حساسیت به تغییر داینامیک نام پادها و آی‌پی‌های داخلی کانتینرها.
yaml
# نمونه کانفیگ تزریق لایسنس آفلاین در متغیرهای محیطی کانتینر
environment:
  - FLOWABLE_LICENSE_LOCATION=file:/opt/flowable/conf/flowable-license.lic
  - SPRING_DATASOURCE_URL=jdbc:postgresql://db-cluster.corp.local:5432/flowable_db

این معماری، سرعت بالا در چرخش پرونده‌های اداری، پایداری بدون وقفه در مقیاس‌های کلان و امنیت داده‌ها را در بالاترین سطح استانداردهای مهندسی فراهم می‌سازد.

دپارتمان تخصصی معماری فرآیندهای سازمانی و BPMS پلتفرم Licentra

دپارتمان مهندسی و تضمین پایداری سامانه‌های On-Premises
درخواست مشاوره فنی

تمامی راهنماها و بسته‌های ارائه‌شده توسط مهندسان Licentra در فارم‌های عملیاتی و شبکه‌های ایزوله سازمانی تست و صحه‌گذاری شده‌اند تا پایداری کامل بدون نیاز به اینترنت یا سرویس‌های ابری خارجی تضمین گردد.

مقالات و راهنماهای مرتبط

راهنماهای پیشنهادی بر اساس موضوع، پلتفرم و برچسب‌های مشترک

مشاهده همه مقالات
راهنمای جامع معماری، استقرار کلاستر و عیب‌یابی Flowable Enterprise BPMN & CMMN Engine
فرم‌ساز و اتوماسیون فرآیند

راهنمای جامع معماری، استقرار کلاستر و عیب‌یابی Flowable Enterprise BPMN & CMMN Engine

راهنمای فنی و عملیاتی راه‌اندازی بومی موتور پیشرفته گردش‌کار و مدیریت پرونده‌های پویا Flowable Enterprise؛ پیکربندی Spring Boot، کلاستر پایگاه داده PostgreSQL، تفکیک موتورهای BPMN و CMMN، مانیتورینگ کارتابل Flowable Work و لایسنس دائمی.

۲۲ بهمن ۱۴۰۴مطالعه کامل
راهنمای جامع معماری کلاسترینگ Web Farm، جداسازی Scheduler و تیونینگ دیتابیس در Bizagi Enterprise
مدیریت فرآیندهای سازمانی BPMS

راهنمای جامع معماری کلاسترینگ Web Farm، جداسازی Scheduler و تیونینگ دیتابیس در Bizagi Enterprise

راهنمای مهندسی راه‌اندازی کلاستر چندسروری بیزاجی (Bizagi Enterprise Web Farm)، جداسازی سرویس زمان‌بند رویدادها (Bizagi Scheduler Isolation)، کلاسترینگ AlwaysOn دیتابیس SQL Server، یکپارچه‌سازی با سامانه گذرگاه خدمات سازمانی (Enterprise Service Bus) در شبکه ایزوله و لایسنس دائمی کاربران.

۱۰ اسفند ۱۴۰۴مطالعه کامل