قطب های رویداد لاجورد برای آپاچی کافکا چیست

ساخت وبلاگ

این مقاله توضیح می دهد که چگونه می توانید از قطب های رویداد Azure برای پخش داده ها از برنامه های Apache Kafka بدون تنظیم یک خوشه Kafka به تنهایی استفاده کنید.

بررسی اجمالی

Azure Event Hubs یک نقطه پایانی Apache Kafka را در یک مرکز رویداد فراهم می کند ، که کاربران را قادر می سازد با استفاده از پروتکل Kafka به Hub Event متصل شوند. شما اغلب می توانید بدون هیچ گونه تغییر کد از یک نقطه پایانی Kafka Hub Hub از برنامه های خود استفاده کنید. شما فقط پیکربندی را اصلاح می کنید ، یعنی رشته اتصال را در تنظیمات به روز کنید تا به جای اینکه به یک خوشه کافکا اشاره کنید ، به نقطه پایانی کافکا در معرض مرکز رویداد خود باشد. سپس ، می توانید شروع به پخش رویدادها از برنامه های خود که از پروتکل Kafka به مراکز رویداد استفاده می کنند ، که معادل موضوعات Kafka است.

قطب های رویداد برای اکوسیستم Kafka از Apache Kafka نسخه 1. 0 و بعد پشتیبانی می کنند.

نقشه برداری مفهومی Apache Kafka و Azure Event Hubs

از نظر مفهومی ، کافکا و مراکز رویداد بسیار مشابه هستند. آنها هر دو پرونده تقسیم شده برای داده های جریان ساخته شده است ، به موجب آن مشتری کنترل می کند که بخشی از گزارش باقی مانده که می خواهد آن را بخواند. جدول زیر مفاهیم بین کافکا و مراکز رویداد را ترسیم می کند.

 

مفهوم کافکا مفهوم هاب رویداد
خوشه نام
موضوع یک مرکز رویداد
تقسیم بندی تقسیم بندی
گروه مصرف کننده گروه مصرف کننده
انحراف انحراف

تفاوت های کلیدی بین قطب های رویداد Apache kafka و Azure

در حالی که Apache Kafka نرم افزاری است که شما به طور معمول نیاز به نصب و بهره برداری دارید ، Event Hubs یک سرویس کاملاً مدیریت شده و ابر است. هیچ سرور ، دیسک یا شبکه ای برای مدیریت و نظارت وجود ندارد و هیچ واسطه ای برای در نظر گرفتن یا پیکربندی آنها وجود ندارد. شما یک فضای نام ایجاد می کنید ، که یک نقطه پایانی با نام دامنه کاملاً واجد شرایط است ، و سپس در آن فضای نام ، مراکز رویداد (مباحث) ایجاد می کنید.

برای کسب اطلاعات بیشتر در مورد مراکز رویداد و فضای نام ، به ویژگی های Hubs Event مراجعه کنید. به عنوان یک سرویس ابری ، Event Hubs از یک آدرس IP مجازی پایدار به عنوان نقطه پایانی استفاده می کند ، بنابراین مشتریان نیازی به اطلاع از کارگزاران یا ماشین های موجود در یک خوشه ندارند. حتی اگر Hubs Event همان پروتکل را پیاده سازی کند ، این تفاوت به این معنی است که تمام ترافیک کافکا برای همه پارتیشن ها به طور قابل پیش بینی از طریق این نقطه پایانی به جای نیاز به دسترسی به فایروال برای همه کارگزاران یک خوشه هدایت می شود.

مقیاس در مراکز رویداد توسط چند واحد توان (TU) یا واحدهای پردازش که خریداری می کنید کنترل می شود. اگر ویژگی خودکار تورم را برای یک فضای نام استاندارد ردیف فعال کنید ، مراکز رویداد هنگام رسیدن به حد توان ، به طور خودکار TUS را افزایش می دهند. این کار ویژگی همچنین با پشتیبانی پروتکل Apache Kafka کار می کند. برای یک فضای نام برتر ردیف ، می توانید تعداد واحدهای پردازش اختصاص یافته به فضای نام را افزایش دهید.

آیا Apache Kafka راه حل مناسب برای بار کاری شماست؟

با استفاده از برنامه های کاربردی با استفاده از Apache Kafka ، همچنین می توان فهمید که قطب های رویداد Azure بخشی از ناوگان خدمات است که شامل اتوبوس خدمات لاجورد و شبکه Azure Event نیز می شود.

در حالی که برخی از ارائه دهندگان توزیع تجاری Apache Kafka ممکن است نشان دهند که Apache Kafka یک فروشگاه یک مرحله ای برای تمام نیازهای بستر پیام رسانی شما است ، واقعیت این است که Apache Kafka ، به عنوان مثال ، الگوی صف رقیب-Consumer را اجرا نمی کند. از انتشار اشتراک در سطحی پشتیبانی می کند که به مشترکین اجازه می دهد تا به پیام های دریافتی بر اساس قوانین ارزیابی شده سرور به غیر از جبران های ساده دسترسی پیدا کنند ، و هیچ امکاناتی برای ردیابی چرخه حیات شغلی که توسط یک پیام یا پیام های معیوب خطاب آغاز شده است ، نداردبه یک صف چپ ، که همه آنها برای بسیاری از سناریوهای پیام رسانی سازمانی بنیادی هستند.

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

اگر به ویژگی های خاصی از Apache Kafka نیاز دارید که از طریق Hubs Event برای رابط Apache Kafka در دسترس نیست یا اگر الگوی اجرای شما از سهمیه های Hubs Event فراتر رود ، می توانید یک خوشه بومی Apache Kafka را در Azure Hdinsight اجرا کنید.

امنیت و احراز هویت

هر بار که رویدادهایی را از مراکز رویداد برای کافکا منتشر یا مصرف می کنید ، مشتری شما در تلاش است تا به منابع Hubs Event Hubs دسترسی پیدا کند. شما می خواهید اطمینان حاصل کنید که با استفاده از یک نهاد مجاز به منابع دسترسی پیدا می کنید. هنگام استفاده از پروتکل Apache Kafka با مشتری های خود ، می توانید با استفاده از مکانیسم های SASL پیکربندی خود را برای تأیید اعتبار و رمزگذاری تنظیم کنید. هنگام استفاده از مراکز رویداد برای Kafka نیاز به رمزگذاری TLS دارد (زیرا تمام داده های موجود در Transit با Hubs Event TLS رمزگذاری شده است) ، می توان گزینه SASL_SSL را در پرونده پیکربندی خود مشخص کرد.

Azure Event Hubs گزینه های مختلفی را برای اجازه دسترسی به منابع امن شما فراهم می کند.

  • OAUTH 2. 0
  • امضای دسترسی مشترک (SAS)

OAUTH 2. 0

Hubs Event با Azure Active Directory (Azure AD) ادغام می شود ، که یک سرور مجوز متمرکز OAUTH 2. 0 را فراهم می کند. با Azure AD ، می توانید از کنترل دسترسی مبتنی بر نقش لاجورد (Azure RBAC) برای اعطای مجوزهای ریز دانه به هویت مشتری خود استفاده کنید. شما می توانید با مشخص کردن SASL_SSL برای پروتکل و Oauthbearer برای مکانیسم از این ویژگی با مشتری های Kafka خود استفاده کنید. برای جزئیات بیشتر در مورد نقش ها و سطح Azure برای دسترسی به Scoping ، به دسترسی به Azure AD اجازه دهید.

bootstrap. servers = namespacename. servicebus. windows. net: 9093 Security. Protocol = sasl_ssl sasl. mekanism = oauthbearer sasl. jaas. config = org. apache. kafka. common. securance. oauuthearererlebearerlebearerlebearerlebineerlouthearlebearerlouthearlegearlesasl. login. callback. handler. class = customAuthenticatecallBackandler 

خصوصیات پیکربندی فوق برای زبان برنامه نویسی جاوا است. برای نمونه هایی که نحوه استفاده از OAuth را با Hubs Event برای Kafka با استفاده از زبانهای مختلف برنامه نویسی نشان می دهد ، نمونه هایی را در GitHub مشاهده کنید.

امضای دسترسی مشترک (SAS)

Hubs Event همچنین امضاهای دسترسی مشترک (SAS) را برای دسترسی به مراکز رویداد برای منابع کافکا فراهم می کند. اجازه دسترسی با استفاده از مکانیسم مبتنی بر توکن OAUTH 2. 0 امنیت و سهولت استفاده از SAS را فراهم می کند. نقش های داخلی همچنین می تواند نیاز به مجوز مبتنی بر ACL را که باید توسط کاربر حفظ و مدیریت شود ، از بین ببرد. شما می توانید با مشخص کردن SASL_SSL برای پروتکل و ساده برای مکانیسم ، از این ویژگی با مشتری های Kafka خود استفاده کنید.

bootstrap. servers = namespacename. servicebus. windows. net: 9093 Security. Protocol = SASL_SSL SASL. MECLENISM = SASL. JAAS. CONFIG = org. apache. kafka. security. plain. plain. plainloginloginmodule مورد نیاز "= "" ؛ 

رشته اتصال را برای فضای نام Hubs Event خود جایگزین کنید. برای راهنمایی در مورد دریافت رشته اتصال ، به رشته اتصال Hubs Event Hubs مراجعه کنید. در اینجا یک پیکربندی مثال وجود دارد: sasl. jaas. config = org. apache. kafka. common. securance. plain. plainloginmodule مورد نیاز نام کاربری = "$ coectionString" رمز عبور = "endpoint =" endpoint. servicebus. windows. windows. net/ ؛= rootmanageSharedAccessKey ؛ shareDaccessKey = xxxxxxxxxxxxxxxx "؛

هنگام استفاده از تأیید اعتبار SAS با مشتری های Kafka ، هنگام بازسازی کلید SAS ، اتصالات ایجاد شده قطع نمی شوند.

در هنگام استفاده از مراکز رویداد برای نقطه پایانی Apache Kafka ، نشانه های امضا شده دسترسی مشترک پشتیبانی نمی شوند.

نمونه ها

برای آموزش با دستورالعمل های گام به گام برای ایجاد یک مرکز رویداد و دسترسی به آن با استفاده از SAS یا OAUTH ، به QuickStart: Data Streaming با قطب های رویداد با استفاده از پروتکل Kafka مراجعه کنید.

سایر ویژگی های Hubs Event Azure

ویژگی های رویداد برای ویژگی Apache Kafka یکی از سه پروتکل است که به طور همزمان در مراکز رویداد Azure موجود است و تکمیل HTTP و AMQP است. شما می توانید با هر یک از این پروتکل ها بنویسید و با سایر موارد بخوانید ، به طوری که تولیدکنندگان فعلی Apache Kafka شما می توانند از طریق Apache Kafka انتشار خود را ادامه دهند ، اما خواننده شما می تواند از یکپارچه سازی بومی با رابط AMQP Hubs Event ، مانند Azure Stream Analytics بهره مند شود. توابع لاجورد. در مقابل ، شما می توانید به راحتی مراکز رویداد Azure را در شبکه های مسیریابی AMQP به عنوان یک نقطه پایانی هدف ادغام کنید ، و در عین حال داده ها را از طریق ادغام Apache Kafka بخوانید.

علاوه بر این ، ویژگی های HUBS Event مانند Capture ، که می تواند بایگانی طولانی مدت بسیار کارآمد از طریق ذخیره سازی لاجورد و ذخیره دریاچه داده لاجورد را فراهم کند ، و بازیابی فاجعه GEO نیز با قطب های رویداد برای ویژگی کافکا کار می کند.

قدرت

قطب های رویداد Azure برای Apache Kafka از تولید کنندگان Idempotent و مصرف کنندگان Idempotent پشتیبانی می کند.

یکی از اصول اصلی مراکز رویداد لاجورد ، مفهوم حداقل یک بار تحویل است. این رویکرد تضمین می کند که همیشه وقایع تحویل داده می شوند. همچنین این بدان معناست که می توان رویدادها را بیش از یک بار ، حتی به طور مکرر ، توسط مصرف کنندگان مانند یک عملکرد دریافت کرد. به همین دلیل ، مهم است که مصرف کننده از الگوی مصرف کننده idempotent پشتیبانی کند.

تفاوت های ویژگی با Apache Kafka

هدف از مراکز رویداد برای Apache Kafka ، دسترسی به قابلیت های Hubs Azure Event به برنامه هایی است که در APACH KAFKA API قفل شده اند و در غیر این صورت باید توسط یک خوشه Apache Kafka پشتیبانی شوند.

همانطور که در بالا توضیح داده شد ، ناوگان پیام رسانی لاجورد پوشش غنی و قوی را برای بسیاری از سناریوهای پیام رسانی فراهم می کند ، و اگرچه ویژگی های زیر در حال حاضر از طریق پشتیبانی Hubs Event از Apache Kafka API پشتیبانی نمی شود ، ما اشاره می کنیم که در کجا و چگونه توانایی مورد نظرموجود است.

معاملات

Azure Service Bus دارای پشتیبانی معامله قوی است که در هنگام ارسال پیام های برون مرزی ناشی از پردازش پیام به چند واحد هدف تحت حمایت از قوام یک معامله ، امکان دریافت و تسویه پیام ها و جلسات را فراهم می کند. مجموعه ویژگی ها نه تنها یک بار پردازش هر پیام را در یک دنباله دقیقاً امکان پذیر می کند ، بلکه از خطر مصرف کننده دیگر نیز جلوگیری می کند که سهواً همان پیام های مشابه را که در مورد Apache Kafka وجود دارد ، پردازش می کند. اتوبوس سرویس خدمات پیشنهادی برای بارهای کار پیام تراکنش است.

تراکم

ویژگی فشرده سازی سمت مشتری Apache Kafka دسته ای از پیام های متعدد را به یک پیام واحد در سمت تولید کننده فشرده می کند و دسته ای را در سمت مصرف کننده فشرده می کند. کارگزار Apache Kafka با این دسته به عنوان یک پیام خاص رفتار می کند.

این ویژگی اساساً مغایرت با مدل چند پروتکل Event Hubs Azure دارد ، که به پیام ها ، حتی آنهایی که در دسته ها ارسال می شوند ، امکان بازیابی جداگانه از کارگزار و از طریق هر پروتکل را فراهم می کند.

بار بارگذاری هر رویداد هابز یک جریان بایت است و محتوای آن را می توان با الگوریتم انتخاب شما فشرده کرد. قالب رمزگذاری Apache Avro از فشرده سازی به صورت بومی پشتیبانی می کند.

جریانهای کافکا

Kafka Streams یک کتابخانه مشتری برای تجزیه و تحلیل جریان است که بخشی از پروژه منبع باز Apache Kafka است ، اما جدا از کارگزار جریان رویداد Apache Kafka است.

شایع ترین دلیل مشتریان Hubs Azure Hubs درخواست پشتیبانی از جریان کافکا را به این دلیل است که آنها علاقه مند به محصول "KSQLDB" از همبستگی هستند."KSQLDB" یک پروژه منبع مشترک اختصاصی است که به گونه ای مجوز داده شده است که هیچ فروشنده ای ارائه نمی دهد "به عنوان یک سرویس به عنوان یک سرویس ، پلتفرم به عنوان یک سرویس ، زیرساخت ها به عنوان یک سرویس یا سایر خدمات آنلاین مشابه که با آنها رقابت می کنندمحصولات یا خدمات تلاقی "مجاز به استفاده یا ارائه پشتیبانی" KSQLDB "است. به طور عملی ، اگر از KSQLDB استفاده می کنید ، باید خودتان کافکا را کار کنید یا باید از پیشنهادات ابر Confluent استفاده کنید. شرایط صدور مجوز همچنین ممکن است بر مشتریان لاجورد که خدمات را برای هدفی که از این مجوز مستثنی هستند ، تأثیر بگذارد.

مستقل و بدون KSQLDB ، جریان های کافکا نسبت به بسیاری از چارچوب ها و خدمات جایگزین ، قابلیت های کمتری دارند ، که بیشتر آنها دارای رابط های SQL در جریان داخلی هستند و همه اینها امروزه با قطب های رویداد لاجورد ادغام می شوند:

  • تجزیه و تحلیل جریان لاجورد
  • Azure Synapse Analytics (از طریق ضبط مراکز رویداد)
  • Databricks Azure
  • آپاچی سامزا
  • طوفان آپاچی
  • Apache Spark
  • آپاچی
  • Akka Streams

خدمات و چارچوب های ذکر شده به طور کلی می توانند جریان های رویداد و داده های مرجع را مستقیماً از مجموعه متنوعی از منابع از طریق آداپتورها بدست آورند. جریان های Kafka فقط می توانند داده هایی را از Apache Kafka به دست آورند و بنابراین پروژه های تحلیلی شما در Apache Kafka قفل شده اند. برای استفاده از داده های منابع دیگر ، شما باید ابتدا داده ها را به Apache Kafka با چارچوب Kafka Coect وارد کنید.

اگر باید از چارچوب جریان Kafka در Azure استفاده کنید ، Apache Kafka در HDInsight این گزینه را برای شما فراهم می کند. Apache Kafka در HDInsight کنترل کامل بر کلیه جنبه های پیکربندی Apache Kafka را فراهم می کند ، در حالی که کاملاً با جنبه های مختلف پلت فرم Azure یکپارچه شده است ، از قرار دادن دامنه گسل/بروزرسانی گرفته تا جداسازی شبکه تا نظارت بر ادغام.

مراحل بعدی

در این مقاله مقدمه ای برای مراکز رویداد برای کافکا ارائه شده است. برای کسب اطلاعات بیشتر ، به راهنمای توسعه دهنده Apache Kafka برای مراکز رویداد Azure مراجعه کنید.

برای آموزش با دستورالعمل های گام به گام برای ایجاد یک مرکز رویداد و دسترسی به آن با استفاده از SAS یا OAUTH ، به QuickStart: Data Streaming با قطب های رویداد با استفاده از پروتکل Kafka مراجعه کنید.

مدرسه فارکس معامله گر ایرانی...
ما را در سایت مدرسه فارکس معامله گر ایرانی دنبال می کنید

برچسب : نویسنده : صالح پور مهروز بازدید : 58 تاريخ : يکشنبه 1 مرداد 1402 ساعت: 23:05