نسخه های این سند ممکن است برای استفاده شخصی شما و برای توزیع به دیگران ساخته شود ، به شرط آنکه شما هیچ هزینه ای را برای چنین نسخه هایی هزینه نکنید و به شرط آنکه هر نسخه شامل این اعلامیه حق چاپ باشد ، چه در چاپ و چه به صورت الکترونیکی توزیع شود.
1. پیشگفتار
پروژه بهار برای Apache Kafka مفاهیم اصلی بهار را برای توسعه راه حل های پیام رسانی مبتنی بر کافکا اعمال می کند. ما یک "الگوی" را به عنوان یک انتزاع سطح بالا برای ارسال پیام ارائه می دهیم. ما همچنین از Pojos مبتنی بر پیام پشتیبانی می کنیم.
2. جدید چیست؟
2. 1چه چیزی در 3. 0 از 2. 9 است
این بخش تغییرات ایجاد شده از نسخه 2. 9 به نسخه 3. 0 را در بر می گیرد. برای تغییر در نسخه قبلی ، به تاریخ تغییر مراجعه کنید.
2. 1. 1. نسخه مشتری کافکا
این نسخه به کلین های 3. 3. 1 کافکا نیاز دارد.
2. 1. 2. دقیقاً یک بار معناشناسی
Eosmode. v1 (AKA Alpha) دیگر پشتیبانی نمی شود.
| هنگام استفاده از معاملات ، حداقل نسخه کارگزار 2. 5 است. |
برای اطلاعات بیشتر دقیقاً یک بار معناشناسی و KIP-447 را ببینید.
2. 1. 3. مشاهده
اکنون امکان مشاهده تایمرها و ردیابی با استفاده از میکرومتر پشتیبانی می شود. برای اطلاعات بیشتر به مشاهده میکرومتر مراجعه کنید.
2. 1. 4. تصاویر بومی
پشتیبانی از ایجاد تصاویر بومی ارائه شده است. برای اطلاعات بیشتر به تصاویر بومی مراجعه کنید.
2. 1. 5. کافکا تک آهنگ جهانی تعبیه شده
کافکا تعبیه شده (تعبیه شده) اکنون می تواند به عنوان یک نمونه جهانی واحد برای کل برنامه آزمایش آغاز شود. برای کسب اطلاعات بیشتر به استفاده از همان کارگزار (های) مشابه برای کلاس های تست چندگانه مراجعه کنید.
2. 1. 6. مباحث قابل آزمایش تغییر می کند
این ویژگی دیگر تجربی محسوب نمی شود (تا آنجا که به API آن مربوط می شود) ، خود این ویژگی از 2. 7 پشتیبانی شده است ، اما با احتمال بیشتر از حد طبیعی برای شکستن تغییرات API.
راه اندازی مجدد لوبیای زیرساخت های غیر مسدود کننده در این نسخه تغییر کرده است تا از برخی مشکلات زمان بندی که در برخی از برنامه ها در مورد اولیه سازی برنامه رخ داده است ، جلوگیری شود.
اکنون می توانید همزمانی متفاوتی را برای ظروف آزمایش مجدد تعیین کنید. به طور پیش فرض ، همزمانی همان ظرف اصلی است.
retryabletopic اکنون می تواند به عنوان متا آنوتاسیون در حاشیه نویسی های سفارشی ، از جمله پشتیبانی از خواص aliasfor استفاده شود.
برای اطلاعات بیشتر به پیکربندی مراجعه کنید.
فاکتور تکثیر پیش فرض برای مباحث امتحان اکنو ن-1 است (از پیش فرض کارگزار استفاده کنید). اگر کارگزار شما در آن نسخه 2. 4 زودتر است ، اکنون باید صریحاً این ملک را تنظیم کنید.
اکنون می توانید چندین شنونده retryabletopic را در همان موضوع در همان زمینه برنامه پیکربندی کنید. پیش از این ، این امکان پذیر نبود. برای اطلاعات بیشتر به چندین شنونده ، همان موضوع (ها) مراجعه کنید.
تغییرات API در حال شکستن در retrytopicconfigurationsupport وجود دارد. به طور خاص ، اگر شما روشهای تعریف لوبیا را برای مقصد topicresolver ، kafkaconsumerbackoffmanager و/یا retrytopicconfigurer نادیده بگیرید. این روشها اکنون به یک پارامتر ObjectProvider نیاز دارند.
2. 1. 7. ظروف شنونده تغییر می کند
رویدادهای مربوط به تأیید اعتبار و خرابی مجوز مصرف کننده اکنون توسط کانتینر منتشر شده است. برای اطلاعات بیشتر به رویدادهای برنامه مراجعه کنید.
اکنون می توانید نام نخ مورد استفاده توسط موضوعات مصرف کننده را سفارشی کنید. برای اطلاعات بیشتر به نامگذاری موضوع کانتینر مراجعه کنید.
مجدداً راه اندازی مجدد ویژگی های کانتینر اضافه شده است. برای اطلاعات بیشتر به خصوصیات کانتینر شنونده مراجعه کنید.
2. 1. 8. تغییرات kafkatemplate
آتی که توسط این کلاس بازگردانده می شود ، اکنون به جای LeadableFuture S ، FullableFuture S هستند. با استفاده از kafkatemplate مراجعه کنید.
2. 1. 9. تغییرات در حال پاسخگویی
آتی که توسط این کلاس بازگردانده می شود ، اکنون به جای LeadableFuture S ، FullableFuture S هستند. با استفاده از پاسخ kearingkafkatemplate و درخواست/پاسخ با پیام s مراجعه کنید.
2. 1. 10. kafkalistener تغییر می کند
اکنون می توانید از یک هدر همبستگی سفارشی استفاده کنید که در هر پیام پاسخ تکرار می شود. برای کسب اطلاعات بیشتر به یادداشت در پایان استفاده از پاسخ kafkatemplate مراجعه کنید.
3. معرفی
این بخش اول مستندات مرجع ، نمای کلی از بهار برای Apache Kafka و مفاهیم اساسی و برخی از قطعه های کد است که می تواند به شما کمک کند تا در اسرع وقت از خواب برخیزید.
3. 1تور سریع
پیش نیازها: شما باید Apache Kafka را نصب و اجرا کنید. سپس باید بهار را برای شیشه Apache Kafka (Spring-Kafka) و تمام وابستگی های آن در مسیر کلاس خود قرار دهید. ساده ترین راه برای انجام این کار ، اعلام وابستگی در ابزار ساخت شماست.
اگر از Boot Spring استفاده نمی کنید ، شیشه Spring-Kafka را به عنوان وابستگی در پروژه خود اعلام کنید.
مگس
org. springframework. kafka بهار کافکا 3. 0. 5
درجه
کامپایل 'org. springframework. kafka: Spring-kafka: 3. 0. 5'
| هنگام استفاده از Spring Boot ، (و شما از Start. Spring. io برای ایجاد پروژه خود استفاده نکرده اید) ، نسخه را حذف کرده و بوت به طور خودکار نسخه صحیح را که با نسخه بوت شما سازگار است ، به ارمغان می آورد: |
مگس
org. springframework. kafka بهار کافکا
درجه
کامپایل 'org. springframework. kafka: بهار-کافکا'
با این حال ، سریعترین راه برای شروع استفاده از start. spring. io (یا جادوگران موجود در لباس بهار و ایده IntelliJ) و ایجاد یک پروژه است ، و انتخاب "Spring for Apache Kafka" به عنوان یک وابستگی است.
3. 1. 1. سازگاری
این تور سریع با نسخه های زیر کار می کند:
- مشتریان Apache Kafka 3. 3. x
- چارچوب بهار 6. 0. x
- حداقل نسخه جاوا: 17
3. 1. 2. شروع شدن
ساده ترین راه برای شروع استفاده از start. spring. io (یا جادوگران موجود در لباس بهار و ایده IntelliJ) و ایجاد یک پروژه است ، و انتخاب "Spring for Apache Kafka" به عنوان یک وابستگی است. برای کسب اطلاعات بیشتر در مورد پیکربندی خودکار نظر آن از لوبیای زیرساخت ، به اسناد بوت بهار مراجعه کنید.
در اینجا یک برنامه حداقل مصرف کننده وجود دارد.
برنامه مصرف کننده بوت بهار
مثال 1. برنامه جاوا
برنامه کلاس عمومی springbootapplicationموضوع Newtopic عمومی Bean ()kafkalistener (id = "myID" ، مباحث = "موضوع 1") عمومی باطل (رشته در)>
کلاتلین
برنامه کلاس springbootapplication<@Bean fun topic() = NewTopic("topic1", 10, 1) @KafkaListener(id = "myId", topics = ["topic1"]) fun listen(value: String?) >سرگرم کننده اصلی (استدلال ها: آرایه) = RunApplication (*args)
مثال 2. برنامه ها
Spring. kafka. consumer. Auto-Offset-reset = زودترین
لوبیای Newtopic باعث ایجاد موضوع در کارگزار می شود. اگر موضوع از قبل وجود داشته باشد ، لازم نیست.
برنامه تولید کننده بوت بهار
مثال 3. برنامه جاوا
برنامه کلاس عمومی springbootapplicationموضوع Newtopic عمومی Bean ()Bean Public ApplicationRuer Ruer (الگوی kafkatemplate);>>
کلاتلین
برنامه کلاس springbootapplication<@Bean fun topic() = NewTopic("topic1", 10, 1) @Bean fun ruer(template: KafkaTemplate) = ApplicationRuer شیء همراه<@JvmStatic fun main(args: Array) = runApplication(*args)>>
با پیکربندی جاوا (بدون بوت بهار)
| Spring for Apache Kafka به گونه ای طراحی شده است که در یک زمینه کاربرد بهار استفاده شود. به عنوان مثال ، اگر ظرف شنونده خود را در خارج از یک زمینه بهار ایجاد کنید ، همه کارکردها کار نخواهند کرد مگر اینکه تمام رابط های آگاه که ظرف را پیاده سازی می کند ، برآورده کنید. |
در اینجا نمونه ای از برنامه ای که از بوت بهار استفاده نمی کند ، آورده شده است. هم مصرف کننده و هم تولید کننده دارد.
مثال 4. بدون بوت جاوا
فرستنده کلاس عمومیالگوی نهایی kafkatemplate نهایی ؛فرستنده عمومی (الگوی kafkatemplate)Public void Send (رشته TOSEND ، کلید int)>شنونده کلاس عمومی<@KafkaListener(id = "listen1", topics = "topic1") public void listen1(String in) >configuration enablekafka پیکربندی کلاس عمومی<@Bean ConcurrentKafkaListenerContainerFactorykafkaListenerContainerFactory(ConsumerFactory consumerFactory) (); factory.setConsumerFactory(consumerFactory); retu factory;>Bean ConsumerFective ConsumerFactory ()(consumerProps());>نقشه خصوصی ConsumerProps ()(); props.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092"); props.put(ConsumerConfig.GROUP_ID_CONFIG, "group"); props.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, IntegerDeserializer.class); props.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class); props.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, "earliest"); // . retu props;>فرستنده فرستنده عمومی Bean (الگوی Kafkatemplate)شنونده شنونده عمومی Bean ()Bean Public تولید کننده تولید کننده ()(senderProps());>نقشه های خصوصی SenderProps ()(); props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092"); props.put(ProducerConfig.LINGER_MS_CONFIG, 10); props.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, IntegerSerializer.class); props.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class); //. retu props;>Bean عمومی Kafkatemplate kafkatemplate (تولید کننده تولیدی)>
کلاتلین
فرستنده کلاس (الگوی VAL خصوصی: kafkatemplate)>شنونده کلاس<@KafkaListener(id = "listen1", topics = ["topic1"]) fun listen1(`in`: String) >Configuration EenableKafka پیکربندی<@Bean fun kafkaListenerContainerFactory(consumerFactory: ConsumerFactory) = ConcurrentKafkaListenerContainerFactory().also @Bean fun consumerFactory() = DefaultKafkaConsumerFactory(consumerProps) val consumerProps = mapOf( ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG to "localhost:9092", ConsumerConfig.GROUP_ID_CONFIG to "group", ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG to IntegerDeserializer::class.java, ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG to StringDeserializer::class.java, ConsumerConfig.AUTO_OFFSET_RESET_CONFIG to "earliest" ) @Bean fun sender(template: KafkaTemplate) = Sender(template) @Bean fun listener() = Listener() @Bean fun producerFactory() = DefaultKafkaProducerFactory(senderProps) val senderProps = mapOf( ProducerConfig.BOOTSTRAP_SERVERS_CONFIG to "localhost:9092", ProducerConfig.LINGER_MS_CONFIG to 10, ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG to IntegerSerializer::class.java, ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG to StringSerializer::class.java ) @Bean fun kafkaTemplate(producerFactory: ProducerFactory) = KafkaTemplate(producerFactory)>
همانطور که مشاهده می کنید ، هنگام استفاده از بوت بهار ، باید چندین لوبیای زیرساخت را تعریف کنید.
فارکس به زبان ساده...
ما را در سایت فارکس به زبان ساده دنبال می کنید
برچسب :
نویسنده : طاهره ایرانی
بازدید : <-PostHit->
تاريخ : شنبه
21 مرداد
1402 ساعت: 14:34