kullanarak sanal ortamlarda Bilgisayar Ofis Grid - Bölüm 2
Giriş
Günün her veri iş kayıtları işleme milyonlarca işleri toplu birçok çalıştırmak bir şirket ve ben her etrafında ettik makineleri oturup birlikte tüm düşünerek son birkaç saat hiçbir şey yapmadan her gün. sistemleri bizim işleme gücü misiniz artırmak için bu makineleri kullanabilir iyi eğer biz olmak değil mi? makaleler dizi bu ben ofis bir istihdam yararları de potansiyel bakmak kulüpler gidiyor ızgara ortamları kullanarak sanal.
In Part 1 Ben ızgara bir ofis oluşturmak verdi bir bakış için bir isteyeyim neden sistem nedenlerle potansiyel tartışılan bazı ve teknolojilerin yanı sıra kullanarak ben olacaktır.
İş Denetimi
gittiğini Eğer bunları yönetmek için bir yol ihtiyacımız olacak o zaman işler çalışıyor olması. İşinizi kontrol sistemi (iş sunucuda) gerçekten iyi hatta bir ofis ızgara çalıştığınız önce düşünülmüş olması gerekir. Bu yüzden öncelikle ne iş kontrol sistemi için görevleri şunlardır:
- işçilerin talebi üzerine işler dağıtın
- işçiler ne işleri yazmak için söyle
- Parça işleri
- işleri bir kez çalıştırmak sadece emin olun
- ya da, işçilere iş veri sağlamak en azından nerede olsun onlara
Sistem aynı zamanda iş bir tablo çözüm değer gördüğü işleri çeşitli çalıştırmak için uzatılabilir, genişletilebilir olmak artık tek bir vaka için çalışan bir çözüm ihtiyacı var. Örneğin, iş öncelikleri kazanç olabilir, birden fazla iş türünü sonunda sizi bile 'genel işçi uzaklaşmaya olmasına rağmen (iş her türü için optimize edilmiş çeşitli işçi makineleri çalıştırmak olabilir, (yani birkaç kod üsleri) bulunabilir 'fikir). Gelişmekte olan sistemler, kısa vadeli bir vizyon uzun süreli hayal kırıklığı ve artan geliştirme zamanı yol açabilir her zaman geleceği hakkında düşünmeye çalışacağım.
Iş Server
Bu sabit bir kaynak bulucu olan sizin Izgarada sadece sistem olmalı, bir IP adresi, ana bilgisayar adı, URL (iç DNS kullanarak), vb Bunun nedeni olduğunu olmak, bizim işleri kontrol etmek için bir yere ihtiyacımız olacak işçiler nerede iş aramak için bilmeniz gereken, işçilerin iş kontrol sistemi (değil iş kontrol sistemi işçi bulmak) bulmalıyız.
Iş sunucu kendisini gerçekten karmaşık bir görev (temel bir sistem olsa da) yok, bu işler dışında, el işleri listesini saklamak için sonuçlar almak ve daha sonra daha sonra geri alma için bunları saklamak gerekir. Bu parçaların (örneğin 'iş dışarı el') çok temel olabilir tanımlanır nasıl. biz ekleme, düzenleme, silme, işleri askıya bir yönetim arayüzü dahil sistem uzatabilirsiniz Daha sonra ancak bu egzersiz dışındadır.
hiçbir sebep işinizi sunucusu ana işlem sunucu içinde çalışan bir sanal makine olamayacağı sonra hiç yoktur o kadar çok fazla kaynak tahliye vermemektedir. potansiyel olarak sizi haftalar işlem süresi değerinde bir çift (tek başına ana işleme sunucu ile kıyaslandığında) maliyet, size işleme bütün bir hafta sonu kaybetmek gidiyoruz bir Cuma akşamı aşağı giderse iş sunucusu Ancak, gerek yüksek kullanılabilirlik yok . Eğer yüksek kullanılabilirlik için bir yük dengeli bir çevrede üzerinde iş sunucusu koyarak düşünebilirsiniz.
Temel Kurulum
bizim işimiz sunucu için temel kurulum) HP P, olacak ySql m, nux olan Li oluşur sunucuları Limp ne I'm çağıran biri benim (. thea işçiler üzerinde çalışan kod aslında iş kontrol sistemi veritabanları ile etkileşerek çalıştırabilirsiniz ne işler yoluna girecek. Daha sonra da hizmet web oluşturabildik bir biz, kendilerini iş çıkışı zor işler değil yapmak fazlasına sahip işçiler el aslında için ama şimdi kullanmaya devam edeceğiz biz KISS ilkesi (Aptal tutun Basit!).
Böylece, üç oluşturmanızı sağlar mySQL işleri ile uğraşmak tabloları. Bu `işler olacak`, `jobRecords` ve `jobResults`.
Burada ben kullanıyorum SQL Buddy büyük küçük alternatif bir phpMyAdmin sadece: çünkü görmek diğerleri için (CentOS onun kurmak daha kolay üzerinde 10 Great alternatifler phpMyAdmin için )
Bu tablo, 5 basit alanlar oluşur
- id: Benzersiz iş belirlemek
- Adı: tanımlayıcıları diğer misiniz olmak bir müşteri referans numarası herhangi bir ya da
- Durum: Sen, örneğin de olduğunu biliyorum nerede iş gerek
- 0: başladı
- 1: elime aldım
- 2: Tamamlandı
- started_by: iş yapmaya başladı kim? Bu tamamen gerekli değildir ama olması güzel. Ben senin ağ üzerindeki IP adresi ile işçilerin izleme öneririm
- started_at: iş ne zaman başladı başlatmak işçi? biz bir kez daha iş almak ve başka bir işçi tarafından işleme başlamak gerek biliyorum zaman X miktarı içinde tamamlamamış işleri izleme By. Işçiler işleme durduramaz / nedenlerle herhangi bir sayı, elektrik kesintisi, kilitlenme, şebeke kaybı, vb çevrimdışı
Bu tabloda iş çok işçi (tabi bu eğilimi gereken iş aldı görmek için, bir karşı ne kadar sürdüğünü görmek için, bir bitiş süresi sütununda izleme istatistikleri sağlamak için birkaç ilave alanlar ile uzatılabilir nasıl Çok kolay 1), iş önceliği listesinde gidip gör. Daha karmaşık iş senaryolarının yılında işçi, (ve bu nedenle sadece uygun işçiler kullanın) erişmek gerekir ne kadar hafıza ve hatta işçi tipi gerekli olacağını belirtmek mümkün olacaktır.
Sağlayan bir kaç örnek işler ekleyin:
Bir sonraki tablo yine oldukça anlamak için basit, bu bizim iş kayıtlarıdır. Bir sütuna göre ana işleri tabloya bağlı `jobs_id. Biz dört sütun çok basit bir örnek yapmanıza olanak sağlar, çok sizin işçilere sağlamanız gerekmektedir verilere bağlıdır Bu tablonun makyaj:
- id: Kayıt kimliği
- Adı: Kişinin adı
- Adres: Kişinin adres
- jobs_id: iş kimliği ile bu bağlantılı rekoru
Üçüncü ve son tablo bir sonuç tablosu oluşur, bu var çok aynı kayıtlar tablonun bir parçası olabilir bazı sütunların yanında bizim kayıtlar tablo olarak, ve makyaj:
- job_record_id: iş tabloya Link sonuç
- Sonuç: Sonuç veri
... Ve iş denetimi için gerekli hepsi bu! (Bir çok temel düzeyde de olsa) Benim durumumda sürecine benim veri bulunduğu başka bir tabloya işaret etti, ama bu gibi kolayca, simülasyon kod çalıştırmak için parametreleri bir dosya olabilirdim, bunun adı.
Bir iş seçme
Daha önce belirtildiği gibi, işçiler bu yüzden gerçekten yapmanız gereken işlem ihtiyaçları ve bilgi almak için bir iş bulmak, şu an bizim için iş yönetim yapacağız. Bunu nasıl yaparsın? Iyi bizim işimiz seçim kriterleri almak ve iş aramak, SQL Ben şu yaptı:
- tam olarak değil, bizim görevliden işaretli değildir ve (en kolay IP adresi olacak tanımlayıcı bir ile yerine __ME__) onları sıfırlama herhangi bir iş atın:
UPDATE `işler` SET `durumu` = 0 WHERE `durumu` = 1 VE `started_by` = __ME__; - bir işi seçin ve bunu işçi onunla ilgili olduğunu kontrol sistemi söylemek bizim görevimiz seçim kriterleri kullanarak:
UPDATE `işler` SET `durumu` = 1, `started_by` = __ME__, `started_at` = NOW () WHERE `durumu` = 0 OR (`Durum` = 1 VE `started_at`> DATE_SUB (NOW (), SIKLIĞI X SAAT)) ORDER BY `ARTAN` id;
biz tüm işleri bir işçi çökmesini veya AWOL gitme durumunda çalıştırmak emin zaman X miktarda sonuç vermedi değil iş kapma By.
- Sonraki kendileri kayıtlarını takip işleri ayrıntıları yakala:
SELECT * FROM `işler` WHERE `started_by` = __ME__ LIMIT 1; SELECT * FROM `job_records` WHERE `= __JOBID__` id;
iş tamamlandığında biz eklemek bizim sonucu kayıt ve tam olarak iş işaretleyin. işlerini askıya gibi / script bazı sağlamlık için izin istediği zaman tekrar hatırlayın. O görev çok iş kayıtların sayısı ve akıllıca bir hareket olacaktır iş denetim sistemine geri kaydedilen sonuç sayısını kontrol, iş denetim sisteminin güncellenmesi ile yarı yolda askıya ki olabilir.
Buna ek olarak, olmak ederken gerçekten bu işleri nasıl gösteriyor seçilmelidir gereken SQL sorgusu çerçevesi ve bir yönetilen soyutlayarak tabanlı sistem, bir dosya, servis internette kullanarak iş kontrolü böylece eğer karar geçiş XML veya herhangi bir başka sistemlerin sayısı o yukarıdaki kod etkilemez.
Iş Yapılandırma
dikkate sonraki yönü iş boyutuna ve yapılandırma. iş yapılandırma ile oynayarak biz hızı, işlem çoğaltma ve güvenilirlik arasında mükemmel bir denge olabilir. Birkaç OFA senaryoları ele alalım:
- Işleri koşuyor 1 gün her: Bu) zaman anlamına gelir 2/3rds için güç sizin 10 (hatırlayın iş süreci her gün 15 işçi ihtiyacı%. Bu açıkça bir bilge yapılandırma değil, işinizden boyutu çok büyük yoldur! (Bunu bir sonuç artı yeniden işleme zaman iade etmediği almak için zaman) ilk işçi AWOL gitmeli işlenmiş bir iş bulmak için zaman çift en az alacaktı. İdeal olarak bir sen ve üzerinde tutmak size işleri geçiyor sahip şekilde atıl dönemi uzun sonunda her birinde en az birinin tam iş temizlenir kolay olur iki olur çekmek gün eksik gitmek ilk gerektiğini süreci iş de kötü bir durumda.
- Işleri çalıştırmak dakika take 1: Bu iş her demektir çalıştırmak 15 dakika sürer sizin işçiler. Iken bu başlangıçta ideal gelebilir, sen vs bu senaryo sistem diğer alanlarına zorlar ve kendi sorunlarını tanıttı öğle yemeği, kahve molaları, toplantılar sırasında, ek iş işleme kazanç. Örneğin, ilk olarak kurulum / işlem süresi oranı bu nedenle sistem verimi kaybetmeden, sağ aşağı gitmeye devam ediyor. Şebeke sürekli günlük iş yaptıkları gün dong vardır sinir bozucu personel çeşitli işçilere iş bilgi akışı olacak. Siz de çok ve düzenli bir çalışma küçük parçalar halinde çok saçmak için olduğu gibi iş işleme sunucu üzerinde daha fazla baskı olacak. Son olarak, bu durum karşısında iş sunucu işleme blissfully iş sunucusu sorunlar yaşıyor olduğunu farkında devamı olabilecek daha büyük işler ise tamamlanmamış iş büyük bir geri günlüğü oluşturmak için gidiyoruz aşağı giderse.
Gerçekte çok mevcut kaynakları, iş gerçekleştirme süresi şartları, ağ yeteneği ve benzeri iş türleri bağlıdır, sizin ızgara kurulum için kimse ideal yapılandırma olacaktır. Ancak bazı kurallar olacaktır:
- Boyutu işler böylece her işçi 15 saat (en uzun olasılıkla boş zaman dilimi) bir döneminde en az 3-4 işler aracılığıyla alabilirsiniz
- Bu kurulum süresini oldukça önemsiz işlem süresi (zihin yukarıdaki noktası yatak) göre olur böylece iş büyüklüğü ile oynayın.
- bir işi siz o kendi gitti AWOL kabul ve başka bir işçi ile işleme başlamak tamamlamak için beklemek (belki daha az) çift olarak süreyi tamamlamak değilse. Bu onu (muhtemelen artık sonraki iş başarısız olursa) tamamlamak için üç kez bir işin normal uzunluğa kadar beklemek zorunda kalabilirsiniz demektir. Eğer zaman bu azaltmak isteyebilirsiniz ama esas düzenli bir görevleri işlem olması dikkat çoğaltmıyorsanız başlayabilir sen kadar çok azaltmak onu.
- Işleri mümkün olduğunca dış şartları bağımsız olmalıdır. Iş sunucu, örneğin, sadece başlangıç ve bitiş her iş de başvurulması gerekir.
- ağınızda doyurmak etmeyin, bu iki olumsuz etkileri olacak, sizin gündüz personel ağı ve sinir bozucu sorunlar bağlantıları yalnızca sizin ızgara ölçek olarak daha kötüye gidecek bir sorun dışarı zamanlama ile deneyimli kullanıyor olabilirsiniz bulacaksınız.
- Sağlamak işler işçiler üzerinde çalıştırabilirsiniz. işleri çok bellek olursan yoğun veya disk alanı yoğun işler ve iptal başlayacak farkedeceğiniz tek şey neden gerçek nedeni ile işlenen iş sayısı bir damladır.
İş ve Gönderme Sonuçları
bir işin sonuçlarını sunarken bu sonuçlar geçerli işçi bir süre atıl olmuştur, özellikle de başka bir işçi tarafından teslim edilmediğini kontrol etmek önemlidir.
Zaman sonuç sonuç sayısını iş içinde kayıt sayısını maçlar emin sunulur.
ve daha önce de belirtildiği gibi, iş alımı ve sonuçları boyun hata toleransı inşa vurguladı üzerinde olamaz. Işçiler çoğu kez uygunsuz 'de askıya gitmek ve bunun için yiyecek ve içecek gereken (ve en büyük bir olasılıktır). De bir kez daha çok daha kolay başa çıkmak için işinizi kontrol sistemine gelecek değişiklikleri karşılamak yardımcı olacaktır sonuçları teslim uzak soyutlama.
Özet
Bu section biz bir işi kontrol sunucusu yapması gereken ne ve nasıl kurmak çok basit bir sistem almak için baktık. Biz kontrol sistemi bir işi almak için nasıl ve ne kadar iyi işler yapılandırmak için tartışılan en bizim ofis grid sistemi. , Iş denetimi geri sunucu sonuçları sunuşu ile ilgili bir paragraf ya da iki bitirmek için sunuldu.
- Bir iş kontrolü sunucu işlerini yönetir ve tüm iş birimleri tamamlanmış olmasını sağlar
- İşiniz / sonuçlar sunulması biz çok sorun olmadan kontrol sunucusunun teknoloji değişimi seçebilirsiniz soyutlayarak By
- Yapılandırmak için işleri onlar, sizin ağ altyapısı üzerinde çok fazla baskı koymadan ve düzenli bir şekilde işleme görevleri çoğaltmadan hızlı ve verimli çalışmasını sağlamak için.
- Sağlamak sizin rutinleri haline hata toleransı ve hata checking inşa ettiğini, işçilerin askıya alabilir ve devam ettirmek ve en zamanların uygunsuz. Sonuçlar zaten başka bir işçi tarafından sunulmuş olup olmadığını kontrol etmeyi unutmayın.
Bir dahaki sefere
De part 3 biz makine işleme edeceğiz oluşturmak bizim sanal ve işçilerin gün haline atıl-to makineleri set up bizim pencereler.



















































Heya! Iyi bir kavram, ama bu gerçekten çok işe yarayabilir?