سلام! من تأمین کننده بهار برای کرکره هستم و امروز می خواهم در مورد نحوه مدیریت ارتباطات میکروسرویس در بهار برای محصولات کرکره خود گپ بزنم. این یک موضوع فنی است ، اما من تمام تلاش خود را می کنم تا آن را به روشی تجزیه کنم که درک آن آسان است.


اول از همه ، بیایید در مورد اینکه چرا ارتباطات میکروسرویس برای بهار ما برای تجارت کرکره بسیار مهم است صحبت کنیم. در دنیای تولید کرکره ، ما یک دسته از مؤلفه ها و فرآیندهای مختلف داریم. به عنوان مثال ، ماقاب جانبی کرکره غلتکی 90 درجه،تاج انتقال کرکره غلتکی، وچرخ میل لنگ شاتر غلتکیبشر هر یک از این قسمت ها ممکن است توسط یک میکروسرویس متفاوت در سیستم مبتنی بر بهار ما اداره شود.
وقتی این میکروسرویسها نمی توانند به خوبی ارتباط برقرار کنند ، مثل این است که یک دسته از افراد در یک کارخانه با یکدیگر صحبت نکنند. شما در نهایت با تأخیرها ، اشتباهات و سردردهای زیادی روبرو می شوید. بنابراین ، ما باید اطمینان حاصل کنیم که این میکروسرویس ها می توانند اطلاعات را به راحتی به اشتراک بگذارند.
یکی از راه های اصلی مدیریت ارتباطات میکروسرویس در بهار از طریق API های استراحت است. استراحت (انتقال دولت نمایندگی) یک روش واقعاً محبوب برای ایجاد خدمات وب است. در بهار ما برای سیستم شاتر ، می توانیم برای هر میکروسرویس نقاط پایانی استراحت ایجاد کنیم. به عنوان مثال ، اگر ما یک میکروسرویس داشته باشیم که موجودی [قاب کرکره غلتکی 90 درجه] را مدیریت کند ، می تواند یک API REST را در معرض دید قرار دهد که سایر خدمات میکروسرویس می توانند برای بررسی سطح سهام استفاده کنند.
در اینجا یک مثال ساده از چگونگی ایجاد یک API آرامش بخش در بهار آورده شده است. ما از Boot Spring استفاده خواهیم کرد که یک چارچوب عالی برای ساخت سریع برنامه های مبتنی بر بهار است.
وارد کردن org.springframework.boot.springapplication ؛ وارد کردن org.springframework.boot.autoconfigure.springbootapplication ؛ وارد کردن org.springframework.web.bind.annotation.getmapping ؛ وارد کردن org.springframework.web.bind.annotation.restcontroller ؛ SpringBootApplicationRestController کلاس عمومی ShutterInventoryService {اصلی خالی استاتیک اصلی (رشته [] args) {SpringApplication.run (ShutterInventoryService.class ، args) ؛ } getMapping ("/موجودی/غلتک-side-frame-90") int int getRollershuttersIseFrame90Inventory () {// در اینجا ما واقعاً از پایگاه داده می خواهیم تا تعداد موجودی را برگردانیم. }}
در این کد ، ما یک API آرام آرام ایجاد کرده ایم که تعداد موجودی [قاب جانبی شاتر غلتکی 90 درجه] را برمی گرداند. سایر خدمات میکروسرویس می توانند با استفاده از HTTP GET درخواست هایی برای دریافت اطلاعات مورد نیاز خود با این API تماس بگیرند.
جنبه مهم دیگر ارتباطات میکروسرویس ارتباطات مبتنی بر پیام است. بهار پشتیبانی بسیار خوبی برای سیستم های مبتنی بر پیام از طریق فناوری هایی مانند Spring Cloud Stream ارائه می دهد. با ارتباط مبتنی بر پیام ، میکروسرویس می تواند پیام های ناهمزمان را ارسال و دریافت کند.
بیایید بگوییم که ما یک میکروسرویس داریم که سفارشات [چرخ میل لنگ شاتر غلتکی] را پردازش می کند. هنگامی که یک سفارش قرار می گیرد ، این میکروسرویس می تواند پیام را به یک کارگزار پیام (مانند Kafka یا RabbitMQ) ارسال کند. سایر خدمات ریزگردها ، مانند میکروسرویس مدیریت موجودی ، می توانند این پیام ها را گوش داده و موجودی را بر این اساس به روز کنند.
در اینجا مثالی از نحوه استفاده از جریان ابر بهار برای ارسال و دریافت پیام آورده شده است:
وارد کردن org.springframework.cloud.stream.annotation.enableBinding ؛ وارد کردن org.springframework.cloud.stream.annotation.input ؛ وارد کردن org.springframework.cloud.stream.annotation.output ؛ وارد کردن org.springframework.cloud.stream.annotation.streamlistener ؛ وارد کردن org.springframework.messaging.messagechannel ؛ وارد کردن org.springframework.messaging.support.messageBuilder ؛ وارد کردن org.springframework.stereotype.service ؛ وارد کردن java.util.logging.logger ؛ interface ShutterOrderChannels {string input = "شاتر - سفارش - ورودی" ؛ string output = "شاتر - سفارش - خروجی" ؛ input (input) org.springframework.messaging.subscribbablechannel ورودی () ؛ Output (خروجی) خروجی MessageChannel () ؛ } ENableBinding (ShutterorDerchannels.class) Service کلاس عمومی ShutterOrdRservice {logger نهایی استاتیک خصوصی = logger.getLogger (ShutterOrdERservice.Class.GetName ()) ؛ کانال های خصوصی کرکره نهایی خصوصی ؛ Public ShutterOrderService (کانال های ShutterorDerchannels) {this.Channels = کانال ها ؛ } public void SendOrdorMessage (سفارش رشته) {کانال ها. OUTPUT (). ارسال (messagebuilder.withpayload (سفارش) .build ()) ؛ }TreamListener (ShutterorDerchannels.input) HandleorderMessage Public Void (ترتیب رشته) {logger.info ("سفارش دریافت شده:" + سفارش) ؛ // در اینجا ما می توانیم با سفارش کاری انجام دهیم ، مانند موجودی به روزرسانی}
در این کد ، ما خدمتی ایجاد کرده ایم که می تواند پیام های مربوط به سفارشات شاتر را ارسال و دریافت کند. به این ترتیب ، میکروسرویسهای مختلف می توانند به روشی ناهمزمان و جدا شده با یکدیگر ارتباط برقرار کنند.
وقتی نوبت به مدیریت ارتباطات میکروسرویس در یک سناریوی واقعی جهانی می رسد ، ما نیز باید در مورد کشف خدمات فکر کنیم. در یک چشمه بزرگ برای سیستم کرکره ، ده ها یا حتی صدها سرویس دهنده وجود دارد. این کار برای هر میکروسرویس عملی نیست که از مکان دقیق (آدرس IP و درگاه) هر میکروسرویس دیگری که برای برقراری ارتباط با آن نیاز دارد ، شناخت.
Spring Cloud Netflix Eureka ابزاری عالی برای کشف خدمات است. خدمات میکروسرویس می توانند خود را در سرور Eureka ثبت کنند و سایر خدمات میکروسرویس می توانند محل خدمات مورد نیاز خود را از طریق سرور Eureka جستجو کنند.
در اینجا چگونه می توانیم یک سرور Eureka را در Boot Spring تنظیم کنیم:
وارد کردن org.springframework.boot.springapplication ؛ وارد کردن org.springframework.boot.autoconfigure.springbootapplication ؛ وارد کردن org.springframework.cloud.netflix.eureka.server.enableeurekaserver ؛ SpringBootApplicationEnableeureKaserver کلاس عمومی ShuttereureKaserver {عمومی خالی استاتیک اصلی (رشته [] استدلال می کند) {SpringApplication.run (ShuttereureKaserver.Class ، args) ؛ }}
و در اینجا چگونه یک میکروسرویس می تواند خود را در سرور Eureka ثبت کند:
وارد کردن org.springframework.boot.springapplication ؛ وارد کردن org.springframework.boot.autoconfigure.springbootapplication ؛ وارد کردن org.springframework.cloud.netflix.eureka.enableeurekaclient ؛ springbootapplicationenableeurekaclient کلاس عمومی class shuttermicroservice {اصلی اعتبار استاتیک اصلی (رشته [] args) {SpringApplication.run (Shuttermicroservice.class ، args) ؛ }}
با استفاده از Eureka ، میکروسرویسهای ما به راحتی می توانند بدون نیاز به سخت کردن مکان های سرویس ، با یکدیگر پیدا و ارتباط برقرار کنند.
در پایان ، مدیریت ارتباطات میکروسرویس در بهار برای محصولات شاتر ما برای عملکرد صاف تجارت ما بسیار مهم است. چه از طریق API های استراحت ، ارتباطات مبتنی بر پیام ، یا کشف خدمات ، ما ابزارهای زیادی در اختیار داریم.
اگر در بازار بهار با کیفیت بالا برای محصولات شاتر هستید و علاقه مند به نحوه مدیریت میکروسرویس های خود برای اطمینان از کیفیت و کارآیی برتر هستید ، دوست دارم با شما گپ بزنم. ما می توانیم در مورد نیازهای خاص شما و اینکه چگونه محصولات ما می توانند در تجارت شما قرار بگیرند بحث کنیم. دریغ نکنید که برای بحث تهیه تهیه کنید.
منابع
- مستندات بوت بهار
- مستندات ابری بهار
- طراحی API استراحت بهترین روشها
- پیام - ارتباط مبتنی بر سیستم های توزیع شده



