Skip to content

Artemis Studio چیست

کنسولی که همراه Apache ActiveMQ Artemis می‌آید هر بار یک بروکر را مدیریت می‌کند و اصلاً نمی‌داند کلاستری در کار است. تا وقتی پرسش شما از مرز یک نود عبور نکند مشکلی نیست — اما پرسش‌های واقعاً مهم همیشه عبور می‌کنند: کدام نود live است، عمق کجاست، و آن پیام کجا رفت.

Artemis Studio چیز دیگری است: یک نمونه، روی چندین کلاستر، با کلاستر به‌عنوان واحد همه‌چیز.

روی بروکرهای موجود شما کار می‌کند. جز فعال‌کردن endpointهای مدیریتی که تقریباً حتماً همین حالا هم دارید نیازی به بازنویسی broker.xml نیست، و هیچ‌چیز در اینجا بروکری را بالا نمی‌آورد.

چه می‌کند

توپولوژیجفت‌های live/backup، وضعیت replication و گروه‌بندی بر اساس NodeID مشترک، روی یک بوم. نقش HA در هر چرخه از هر نود poll می‌شود — هرگز از پیکربندی استنتاج نمی‌شود. دو نود live در یک جفت، یک هشدار بحرانی split-brain است.
منابع در همهٔ نودهاصف‌ها، آدرس‌ها، مصرف‌کننده‌ها، نشست‌ها، اتصال‌ها و تولیدکننده‌ها در سراسر نودها، در یک جدول مجازی‌سازی‌شده، منتسب به هر نود، با به‌روزرسانی روی SSE.
عملیات پیاممرور، ارسال، انتقال، retry، انقضا، حذف و purge — همراه با dry run که تعداد متأثرشده را بدون انجام کار برمی‌گرداند، سقف انبوهِ اعمال‌شده در سمت سرور، و گزارش نتیجه به تفکیک نود.
کنسول SQLیک گویش SQL محدود و فقط‌خواندنی روی پیام‌های یک کلاستر، شامل بدنهٔ پیام، با یک ایندکس اختیاریِ محدود به دورهٔ نگهداری و یک tail زنده.
ردیابی request-replyتناظر درخواست‌ها با پاسخ‌هایشان در سراسر آدرس‌ها و نودها، همراه با آمار تأخیر و timeout در برابر انتظاراتی که اعلام می‌کنید.
سنجه‌ها و هشدارهاسری‌های عمق، توان عملیاتی و مصرف‌کننده در Postgres پارتیشن‌بندی‌شده، همراه با نمودار و قواعدی که بر پایهٔ همان اندازه‌گیری‌ها فعال می‌شوند.
حاکمیتاحراز هویت روی همهٔ endpointها، مدل پویای نقش/مجوز در دامنه‌های global ← environment ← cluster، توکن‌های API، OIDC/SSO اختیاری، و یک رویداد ممیزی برای هر فراخوانی تغییردهنده.
سرور MCPهمان قابلیت‌ها در اختیار یک دستیار، زیر همان مجوزها و همان مسیر ممیزی.

چهار قاعده‌ای که بر آن‌ها ساخته شده

این‌ها آرمان نیستند؛ محدودیت‌هایی هستند که کد به آن‌ها پایبند است.

ذاتاً مهربان با بروکر. خواندن‌ها دسته‌ای‌اند — یک POST جولوکیا برای هر نود، هرگز یکی برای هر صف — و بر اساس سرعت واقعی تغییرِ هر چیز لایه‌بندی شده‌اند، پشت یک محدودکنندهٔ نرخ به‌ازای هر نود. Studio هرگز نباید دلیل از پا درآمدن یک بروکر باشد.

امن به‌صورت پیش‌فرض. هر عملیات مخرب ?dryRun=true می‌پذیرد و تعداد متأثرشده را بدون انجام کار برمی‌گرداند. purge و delete نیازمند تایپ‌کردن نام خودِ منبع در کادر تأیید هستند. رویداد ممیزی در همان تراکنشِ فرمان و پیش از فراخوانی بروکر نوشته و سپس با نتیجه به‌روزرسانی می‌شود — پس یک crash در میانهٔ کار، رد پایی از تلاش انجام‌شده باقی می‌گذارد.

هرگز برای وضعیت HA به پیکربندی اعتماد نکن. اینکه چه کسی live است، پرسشی است که در هر poll از خود نودهای زنده پرسیده می‌شود.

گیت‌کردن صادقانهٔ قابلیت‌ها. وقتی قابلیتی در دسترس نیست چون اتصال از آن پشتیبانی نمی‌کند، رابط کاربری همین را می‌گوید و دقیقاً همان قطعهٔ broker.xml را که آن را فعال می‌کند نشان می‌دهد. هیچ‌چیز بی‌صدا غایب نمی‌شود؛ و قابلیتی که هنوز احراز نشده، کنترل را فعال نگه می‌دارد و عدم‌قطعیت را اعلام می‌کند — نبودِ شواهد، شاهدِ نبودن نیست.

عمداً چه نیست

  • نصب‌کننده یا پیکربند بروکر نیست. بروکرهایی را که خودتان اجرا می‌کنید مدیریت می‌کند.
  • کلاینت صف پیام نیست. کنسول SQL فقط SELECT است و tail زنده یک poll است نه یک consume؛ هیچ‌کدام نمی‌توانند چیزی را تغییر دهند.
  • JMX نیست. انتقال اصلی Jolokia روی HTTP است و کلاینت Core آرتمیس کانال دوم، برای اعلان‌ها و ورودی/خروجی وفادارانهٔ پیام.

تصاویر

توپولوژی کلاسترصف‌ها در همهٔ نودها
توپولوژی live/backup با replication و محور NodeID مشترکهمهٔ صف‌ها در همهٔ نودها در یک جدول مجازی‌سازی‌شده
سنجه‌ها و نمودارهاحاکمیت
نمودارهای عمق، توان عملیاتی و مصرف‌کننده از Postgres پارتیشن‌بندی‌شدهکاربران، دسترسی‌های دامنه‌دار، محیط‌ها، توکن‌های API و نگاشت claimهای OIDC

ادامه

Apache-2.0. Apache ActiveMQ and Apache ActiveMQ Artemis are trademarks of the Apache Software Foundation. Artemis Studio is an independent project, not produced by, endorsed by, or affiliated with the ASF.