Service Broker چیست ؟
SQL Server Service Broker یا به اختصار SSSB یکی از قابلیتهای SQL Server است که از نسخه 2005 به مجموعه قابلیتهای SQL Server اضافه شده است.
هدف این قابلیت پیادهسازی مکانیزم Deferred Processing یا پردازش با تاخیر میباشد. این مکانیزم توسط ویژگی به نام Asynchronous Message Queuing پشتیبانی میشود.
Service Broker امکان جدیدی جهت نگهداری و تبادل Message (پیام) به صورت Secure (امن)، Reliable (مطمئن) و Scalable (مقیاسپذیر) معرفی کرده است.
کلیه این امکانات جدید باعث میشود که شما بتوانید برنامههای Distributed (توزیع شده) را به راحتی در SQL Server ایجاد نمایید.
Service Broker معماری جدیدی را برای ایجاد برنامههای Asynchronous (ناهمگام) با Scalability (مقیاسپذیری) بالا را فراهم میکند.
اولین قدم جهت استفاده از Service Broker آشنایی با معماری و ویژگیهای آن میباشد برای کسب اطلاعات بیشتر در این خصوص پادکست صوتی مربوط به آن را دانلود کنید.
مباحثی که در این پادکست صوتی بررسی شده است عبارتند از
1- بررسی آشنایی با معماری Service Broker
2- بررسی چند سناریو از کاربردهای Service Broker
3- بررسی سناریو ارسال SMS توسط SQL Server با استفاده از Service Broker
4- بررسی مفهوم Message
5- بررسی مفهوم Contract
6- بررسی مفهوم Queue
7- بررسی مفهوم Service
8- بررسی مفهوم Activation
9- بررسی Internal Activation در Service Broker
10- بررسی External Activation در Service Broker
11- و….
توجه: Service Broker به همراه سناریو ارسال SMS در SQL Server بصورت کامل در دوره SQL Server ویژه برنامه نویسان آموزش داده خواهد شد.
منبع: آموزش برنامه نویسی نیک آموز
23 دیدگاه
مهدی ربانی ذبیحی
مثل همیشه بسیار عالی بود
فرشید علی اکبری
سلام
مرجان آب بر
ممنون از شما بسیار مفید بود.
mhdi2012
ممنون جناب مهندس
امین ثریا
از جناب طاهری درخواست میکنم هر چ زودتر نحوه کاربردی استفاده از service broken رو آموزش بدن. متشکرم
امین ثریا
من دنبالش رفتم ، مطابق فرمایشاتون باید چند تا چیز روبا کوئری تو sql پیکر بندی کرد تا صف و پیام و قرارداد ایجاد بشه . حتی نحوه فرستان به وسیله درخواست کننده و پاسخ دهنده به وسیله activator internalهم توضیح داده بودن اما….
اصلا چیزی ب نام نحوه استفاده ازش رو قرار نداده بودن یعنی من چطور وقتی تو صف پیام قرار دادم چند تا SP دیگه خودشون به صورت داینامیک باقی کارها رو انجام بدن ؟
همین باعث شد به جای این روش سراغ برنامه نویسی ناهمزمان معماری mvc یعنی async, await برم و با اون کارام رو انجام بدم. باور بفرمایید انقدر سطح و درکش برام دشوار بود ک برای اولین بار از sql ناامید شدم . نمیدونم الان این روش چقدر خوبه اما اگه جناب مسعود طاهری آموزشی کاربردی ازش ارائه ندن ، فک نکنم دیگه سراغش برم.
مسعود طاهری
سلام
امین ثریا
ممنون ک پاسخ من رو دادید، بیصبرانه منتظر این آموزش میمونم.
مهدی شبانی
مفید بود حتما دوره SQL Server ویژه برنامه نویسان رو تهیه میکنم اما یه خورده قیمت بالاست
ایمان قنوعی
سلام. بنظر بنده یکی از شیرینی های کار با بانک اطلاعاتی SQL Server همین قابلیته . من با استفاده از این قابلیت حدود 1 سال و نیم پیش یه برنامه واسه یه شرکتی نوشتم . که در صورت تغییر در اطلاعات به واحدهای خاصی تو همون شرکت پیام بروزرسانی اطلاعات صادر میشد و سیستم ها خودشون رو خودکار بروز می کردند . با توجه به این که مدرک تحصیلی من کارشناسی عمران بود و این که بنده تجربی کار کرده ام تو زمینه برنامه نویسی ، طبیعتا درک درستی از مباحث ندارم ولی تونستم با چند روز کارکردن و با استفاده از یک مثال کاربردی توی پروژه خودم راه اندازیش کنم . اون زمان با Sql2005 این قابلیت اضافه شده بود و فکر کنم از مباحث Query Notification بود .
مسعود بی مر
با سلام
مسعود طاهری
میلاد فیروزی
یک سوال
Service Broker تا چه اندازه می تواند به Live بودن نزدیک شود؟
ما یک Transaction خیلی بزرگ داریم که توش قیمت یک آیتم که تغییر می کنه یا یک آیتم که ناموجود می شه می ره توی XML چند جدول مرتبط با این آیتم تغییرات رو اعمال می کنه ، حالا این Transaction گاهی اوقات خیلی غول میشه
مثلا یک آیتم داریم که هدیه ی 300 آیتم دیگه شده ، حالا این Transaction باید بیاد اول این آیتم رو از لیست هدیه های اون 300 آیتم حذف کنه و توی XML اونا تغییر ایجاد کنه بعد خود این آیتم رو ناموجود کنه ، گاها این اتفاق باعث LOCK خیلی زیاد میشه ،
با توجه به این که فرایند ناموجود شدن و تغییر قیمت باید LIVE اتفاق بیوفته می تونیم سمت Service Broker بریم با قبول 3 الی 4 ثانیه تاخیر؟؟؟؟
مسعود طاهری
سلام
مسعود بی مر
همون مثال ارسال اس ام اسی که در وویس فرمودین، در صورتی که بخوایم با وارد شدن یک پیام جدید اپلیکیشن ارسال اس ام اس فراخوانی شود چه باید کرد
مسعود طاهری
سلام
مسعود بی مر
با سلام
مسعود طاهری
سلام حداکثر اندازه Message در Queue می تواند 2GB باشد. البته توجه داشته باشید که درج داده در چنین حجمی می تواند باعث بوجود آمدن مشکل Queue Fragmentation شود برای Rebuild و… می توانید در اینترنت سرچ کنید
نسرین اکبری
ممنون بابت آموزش خوب و مفیدتون.
حسین شالی
با عرض ادب و خسته نباشید
اقای طاهری پادکست های گروه شما واقعا عادی و خیلی مفید هستند
اگه ممکنه نمونه های ساده و عملی هم ارائه بدید خیلی عالی تر میشه
با تشکر
محمد
سپاس بیکران،عشقت پایدار
وحید
متاسفانه لینک دانلود خراب هست و کار نمیکنه
آرزو محمدزاده
درود بر شما
لطفا مجدد این مورد را بررسی نمایید