پیکربندی
محیط
| متغیر | الزامی | توضیح |
|---|---|---|
ARTEMIS_STUDIO_DB_URL | بله | jdbc:postgresql://host:5432/artemis_studio |
ARTEMIS_STUDIO_DB_USER / _DB_PASSWORD | بله | — |
ARTEMIS_STUDIO_SECRET_KEY | بله | اعتبارنامههای ذخیرهشدهٔ بروکر را رمزنگاری میکند. Base64 از دقیقاً ۳۲ بایت، وگرنه برنامه بالا نمیآید: openssl rand -base64 32 |
ARTEMIS_STUDIO_CONFIG_ENCRYPT_KEY | خیر | مقادیر {cipher} ذخیرهشده در studio_config_property را رمزگشایی میکند. کلیدی متفاوت از ARTEMIS_STUDIO_SECRET_KEY — آن را دوباره استفاده نکنید |
JAVA_OPTS | خیر | پیشفرض -XX:MaxRAMPercentage=75 |
ARTEMIS_STUDIO_SECRET_KEY در جا قابل چرخش نیست: همان کلیدی است که هر اعتبارنامهٔ ذخیرهشدهٔ بروکر با آن رمز شده است. گمکردنش یعنی وارد کردن دوبارهٔ اعتبارنامهٔ همهٔ اتصالها.
دو صفحه
پیکربندی عمداً به دو نیم تقسیم شده و ملاک تقسیم این است که چه کسی و چه زمانی یک مقدار را تغییر میدهد.
صفحهٔ اپراتور — studio_setting — چیزی را نگه میدارد که اپراتور حین اجرای Studio تنظیم میکند: آهنگ poll، پنجرههای نگهداری، سقف عملیات انبوه، و سقف هزینهٔ کنسول SQL. تغییرات بیدرنگ اثر میکنند، ممیزی میشوند و نیازی به restart ندارند. هر زمانبندیِ قابل تنظیم از طریق settings یک trigger بازخوان است، نه یک annotation ثابت؛ به همین دلیل تغییر آهنگ فوری است.
صفحهٔ استقرار — ویژگیهای bootstrap اسپرینگ کلاود — چیزی را نگه میدارد که به خودِ استقرار تعلق دارد: datasource، کلیدها، و issuer مربوط به OIDC. مقادیر اینجا میتوانند بهصورت {cipher} ذخیره و با ARTEMIS_STUDIO_CONFIG_ENCRYPT_KEY رمزگشایی شوند. هیچ config server ای در کار نیست.
برای چراییِ آن ADR-0047 و برای اینکه یک زمانبندی چگونه تغییر تنظیمات را برمیدارد ADR-0048 را ببینید (انگلیسی).
پایگاهداده
PostgreSQL، با شمایی که در اختیار Liquibase است و در زمان راهاندازی مهاجرت میشود. Studio در بوت، نگاشت را در برابر شمای مهاجرتشده اعتبارسنجی میکند و DDL تولید نمیکند؛ پس شمایی که drift کرده با صدای بلند شکست میخورد، نه در سکوت.
Postgres مالک پیکربندی، کاربران و مسیر ممیزی است. جدولهای برآمده از بروکر — queue_snapshot و metric_sample — یک کش دورانداختنی هستند: از دست دادنشان تاریخچه را میگیرد، هرگز حقیقت را نه.
اتصالهای بروکر
از طریق رابط کاربری ثبت میشوند، نه از طریق محیط. هر اتصال یک endpoint مدیریتی seed و اعتبارنامهها را رمزنگاریشده ذخیره میکند. انتقال اصلی Jolokia روی HTTP است؛ کلاینت Core آرتمیس کانال دومی است برای اعلانها و ورودی/خروجی وفادارانهٔ پیام، و قابلیتهایی که به آن نیاز دارند بر پایهٔ در دسترس بودنش گیت میشوند — بهشکل قابلمشاهده، همراه با broker.xml ای که آن را فعال میکند.
ADR-0002 را ببینید (انگلیسی).