Azure üzerinde ölçeklenebilir sipariş işlemeScalable order processing on Azure

Bu örnek senaryo, yüksek düzeyde ölçeklenebilir ve dayanıklı bir mimari için çevrimiçi sipariş işleme gereken kuruluşlar için uygundur.This example scenario is relevant to organizations that need a highly scalable and resilient architecture for online order processing. Olası uygulamalar, e-ticaret içerir ve satış noktası, sipariş tamamlama ve envanter ayırma ve izleme perakende.Potential applications include e-commerce and retail point-of-sale, order fulfillment, and inventory reservation and tracking.

Bu senaryo, bir olay kaynağını belirleme yaklaşım, işlevsel bir programlama modeli aracılığıyla uygulanan kullanarak alır mikro Hizmetler.This scenario takes an event sourcing approach, using a functional programming model implemented via microservices. Her mikro hizmet stream işlemci olarak kabul edilir ve tüm iş mantığı, mikro hizmetler uygulanır.Each microservice is treated as a stream processor, and all business logic is implemented via microservices. Bu yaklaşım, yüksek kullanılabilirlik ve dayanıklılığı, coğrafi çoğaltma ve hızlı performans sağlar.This approach enables high availability and resiliency, geo-replication, and fast performance.

Cosmos DB ve HDInsight gibi yönetilen Azure hizmetlerini kullanarak, Global olarak dağıtılmış bulut ölçeğinde veri depolama ve alma Microsoft'un uzmanlığı yararlanarak maliyetleri azaltmaya yardımcı olabilir.Using managed Azure services such as Cosmos DB and HDInsight can help reduce costs by leveraging Microsoft's expertise in globally distributed cloud-scale data storage and retrieval. Bu senaryo, özellikle bir e-ticaret veya perakende senaryo yöneliktir; Veri Hizmetleri için diğer gereksinimleriniz varsa, kullanılabilir listesini gözden geçirmeniz gereken tam olarak yönetilen akıllı veritabanı hizmetleri azure'da.This scenario specifically addresses an e-commerce or retail scenario; if you have other needs for data services, you should review the list of available fully managed intelligent database services in Azure.

İlgili kullanım durumlarınıRelevant use cases

Diğer ilgili kullanım durumlarını içerir:Other relevant use cases include:

  • E-ticaret veya perakende satış noktası arka uç sistemler.E-commerce or retail point-of-sale back-end systems.
  • Envanter yönetim sistemleri.Inventory management systems.
  • Siparişi yerine getirme sistemler.Order fulfillment systems.
  • Bir sipariş işleme ardışık düzenine ilgili diğer tümleştirme senaryoları.Other integration scenarios relevant to an order processing pipeline.

MimariArchitecture

Ölçeklenebilir sipariş işleme işlem hattı için örnek mimarisi

Bu mimari, bir sipariş işleme ardışık düzeni'nin temel bileşenlerinden ayrıntıları.This architecture details key components of an order processing pipeline. Veriler senaryosuyla şu şekilde akar:The data flows through the scenario as follows:

  1. Olay iletileri sistemi aracılığıyla müşterilere yönelik uygulamaları (zaman uyumlu olarak üzerinden HTTP) ve çeşitli arka uç sistemine (zaman uyumsuz olarak ile Apache Kafka) girin.Event messages enter the system via customer-facing applications (synchronously over HTTP) and various back-end systems (asynchronously via Apache Kafka). Bu iletiler bir komut işleme işlem hattı geçirilir.These messages are passed into a command processing pipeline.
  2. Her olay iletisi alınır ve komut işlemci mikro hizmet tarafından tanımlı komutları kümesi birine eşlenmiş.Each event message is ingested and mapped to one of a defined set of commands by a command processor microservice. Komut işleyicisi herhangi bir olay akışı anlık görüntü veritabanından komutunu yürütme için ilgili geçerli durumunu alır.The command processor retrieves any current state relevant to executing the command from an event stream snapshot database. Komut yürütülür ve komut çıktısındaki yeni bir olay olarak yayılır.The command is then executed, and the output of the command is emitted as a new event.
  3. Komut çıktısı yayılan her olay, Cosmos DB kullanarak bir olay akışı veritabanına kararlıdır.Each event emitted as the output of a command is committed to an event stream database using Cosmos DB.
  4. Her veritabanı ekleme veya güncelleştirme olay akışı veritabanına teslim için Cosmos DB değişiklik akışı tarafından bir olay tetiklenir.For each database insert or update committed to the event stream database, an event is raised by the Cosmos DB Change Feed. Aşağı Akış sistemlerine bu sistem için uygun olan herhangi bir olay konuları için abone olabilirsiniz.Downstream systems can subscribe to any event topics that are relevant to that system.
  5. Cosmos DB değişiklik akışı tüm olayları durumu değişiklikleri nedeniyle gerçekleşen olaylar tarafından hesaplar bir anlık görüntü olay akışı mikro de gönderilir.All events from the Cosmos DB Change Feed are also sent to a snapshot event stream microservice, which calculates any state changes caused by events that have occurred. Yeni durum Cosmos DB'de depolanan olay akışı anlık görüntü veritabanı taahhüt eder.The new state is then committed to the event stream snapshot database stored in Cosmos DB. Anlık görüntü veritabanı küresel olarak dağıtılan, düşük gecikme süreli veri kaynağı için tüm veri öğelerinin geçerli durumu sağlar.The snapshot database provides a globally distributed, low latency data source for the current state of all data elements. Olay akışı veritabanına bir kaydın tamamına sağlam test etme, sorun giderme ve olağanüstü durum kurtarma senaryolarına olanak sağlayan mimari geçen tüm olay iletileri sağlar.The event stream database provides a complete record of all event messages that have passed through the architecture, which enables robust testing, troubleshooting, and disaster recovery scenarios.

BileşenlerComponents

  • Cosmos DB çözümlerinizin aktarım hızını ve depolamayı elastik ve bağımsız olarak dilediğiniz sayıda coğrafi bölgede arasında ölçeklendirme imkan sağlayan Microsoft'un Global olarak dağıtılmış, çok modelli veritabanıdır.Cosmos DB is Microsoft's globally distributed, multi-model database that enables your solutions to elastically and independently scale throughput and storage across any number of geographic regions. Aktarım hızı, gecikme süresi, kullanılabilirlik sunar ve kapsamlı hizmet düzeyi sözleşmeleri (SLA'lar) ile tutarlılığını garanti eder.It offers throughput, latency, availability, and consistency guarantees with comprehensive service level agreements (SLAs). Bu senaryoda, olay akış depolama ve anlık görüntü depolama alanı için Cosmos DB kullanır ve yararlanır [Cosmos DB değişiklik akışı] docs-cosmos-db-change-feed veri tutarlılığı ve hata kurtarma sağlamak için özellikleri.This scenario uses Cosmos DB for event stream storage and snapshot storage, and leverages Cosmos DB's Change Feed features to provide data consistency and fault recovery.
  • HDInsight üzerinde Apache Kafka gerçek zamanlı akış verisi işlem hatları ve uygulamaları oluşturmaya yönelik bir açık kaynak dağıtılan akış platformu olan Apache Kafka'nın yönetilen hizmeti uygulamasıdır.Apache Kafka on HDInsight is a managed service implementation of Apache Kafka, an open-source distributed streaming platform for building real-time streaming data pipelines and applications. Kafka ayrıca yayımlama ve adlandırılmış veri akışları yayımlayıp abone için bir ileti kuyruğuna benzer aracı işlevselliği sağlar.Kafka also provides message broker functionality similar to a message queue, for publishing and subscribing to named data streams. Bu senaryo, sipariş işleme işlem hattı aşağı akış olayları yanı sıra gelen işlemek için Kafka kullanır.This scenario uses Kafka to process incoming as well as downstream events in the order processing pipeline.

Dikkat edilmesi gerekenlerConsiderations

Birçok teknoloji seçenekleri, gerçek zamanlı ileti alımı, veri depolama, stream işleme, analitik veri ve analiz, depolama ve raporlama için kullanılabilir.Many technology options are available for real-time message ingestion, data storage, stream processing, storage of analytical data, and analytics and reporting. Bu seçenekler, özellikleri ve temel seçim ölçütlerine genel bakış için bkz: büyük veri mimarilerinin: Gerçek zamanlı işleme içinde Azure veri Mimarisi Kılavuzu.For an overview of these options, their capabilities, and key selection criteria, see Big data architectures: Real-time processing in the Azure Data Architecture Guide.

Mikro hizmetler dayanıklı, yüksek oranda ölçeklenebilen, bağımsız bir şekilde dağıtılabilen ve hızla geliştirilebilen bulut uygulamaları oluşturmak için popüler bir mimari stil haline geldi.Microservices have become a popular architectural style for building cloud applications that are resilient, highly scalable, independently deployable, and able to evolve quickly. Mikro hizmetler tasarlama ve uygulamaları oluşturmak için farklı bir yaklaşım gerektirir.Microservices require a different approach to designing and building applications. Docker, Kubernetes, Azure Service Fabric ve Nomad gibi araçlar, mikro hizmet tabanlı mimari geliştirme sağlar.Tools such as Docker, Kubernetes, Azure Service Fabric, and Nomad enable the development of microservices-based architectures. Oluşturma ve bir mikro hizmet tabanlı mimari çalıştırma ile ilgili yönergeler için bkz: azure'da mikro hizmetler tasarlama Azure mimari Merkezi'ne.For guidance on building and running a microservices-based architecture, see Designing microservices on Azure in the Azure Architecture Center.

KullanılabilirlikAvailability

Bu senaryonun olay kaynağını yaklaşım gevşek bağlanmış ve devredebileceği dağıtılmış sistem bileşenleri sağlar.This scenario's event sourcing approach allows system components to be loosely coupled and deployed independently of one another. Cosmos DB sunar [yüksek kullanılabilirlik] docs-cosmos-db-regional-failover ve tutarlılık, kullanılabilirlik ve performans ile tüm ilişkili ödünler yönetme yardımcı olan garantili .Cosmos DB offers high availability and helps organization manage the tradeoffs associated with consistency, availability, and performance, all with corresponding guarantees. HDInsight üzerinde Apache Kafka için de tasarlanmıştır yüksek kullanılabilirlik.Apache Kafka on HDInsight is also designed for high availability.

Azure İzleyici, çeşitli Azure Hizmetleri genelinde izleme için birleştirilmiş bir kullanıcı arabirimi sağlar.Azure Monitor provides unified user interfaces for monitoring across various Azure services. Daha fazla bilgi için Microsoft Azure'da izleme.For more information, see Monitoring in Microsoft Azure. Event Hubs ve Stream Analytics hem de Azure İzleyici ile tümleştirilmiştir.Event Hubs and Stream Analytics are both integrated with Azure Monitor.

Diğer kullanılabilirlik konular için bkz kullanılabilirlik denetim listesi.For other availability considerations, see the availability checklist.

ÖlçeklenebilirlikScalability

HDInsight üzerinde Kafka sağlayan depolama ve ölçeklenebilirlik Yapılandırması Kafka kümeleri için.Kafka on HDInsight allows configuration of storage and scalability for Kafka clusters. Cosmos DB, hızlı, öngörülebilir bir performans sunar ve sorunsuz bir şekilde ölçeklenen uygulamanız büyüdükçe.Cosmos DB provides fast, predictable performance and scales seamlessly as your application grows. Mikro hizmet tabanlı mimariye bu senaryonun ayrıca kaynağını olay sisteminizi ölçeklendirin ve işlevselliği genişletmek kolaylaştırır.The event sourcing microservices-based architecture of this scenario also makes it easier to scale your system and expand its functionality.

Diğer ölçeklenebilirliği hakkında hususlar için bakın [ölçeklenebilirlik denetim listesi] scalability Azure Mimari Merkezi kullanılabilir.For other scalability considerations, see the scalability checklist available in the Azure Architecture Center.

GüvenlikSecurity

Cosmos DB güvenlik modeli kullanıcılarının kimliğini doğrulayan ve kendi veri ve kaynaklara erişim sağlar.The Cosmos DB security model authenticates users and provides access to its data and resources. Daha fazla bilgi için Cosmos DB veritabanı güvenliği.For more information, see Cosmos DB database security.

Güvenli çözümler tasarlamaya genel yönergeler için bkz: Azure güvenlik belgeleri.For general guidance on designing secure solutions, see the Azure Security Documentation.

DayanıklılıkResiliency

Olay mimarisi ve bu örnek senaryoda ilişkili teknolojileri kaynağını belirleme olun bu senaryo yüksek oranda dayanıklı hatalar oluştuğunda.The event sourcing architecture and associated technologies in this example scenario make this scenario highly resilient when failures occur. Dayanıklı çözümler tasarlamaya genel yönergeler için bkz: Azure için dayanıklı uygulamalar tasarlama.For general guidance on designing resilient solutions, see Designing resilient applications for Azure.

FiyatlandırmaPricing

Bu senaryo çalıştırmanın maliyeti incelemek için tüm hizmetlerin maliyet hesaplayıcı önceden yapılandırılmış.To examine the cost of running this scenario, all of the services are pre-configured in the cost calculator. Fiyatlandırma, belirli bir senaryo için nasıl değiştirirsiniz görmek için uygun değişkenleri beklenen veri hacminiz eşleşecek şekilde değiştirin.To see how pricing would change for your particular scenario, change the appropriate variables to match your expected data volume. Bu senaryo için fiyatlandırma örneği yalnızca Cosmos DB ve Cosmos DB değişiklik akışı başlatılan olayları işlemek için Kafka kümesi içerir.For this scenario, the example pricing includes only Cosmos DB and a Kafka cluster for processing events raised from the Cosmos DB Change Feed. Olay işlemciler ve sistemleri ve diğer aşağı akış sistemlerine kaynaklanan için mikro hizmetler dahil edilmez ve maliyetlerine son derece miktarı ve uygulamak için seçilen teknolojilerin yanı sıra, bu hizmetler ölçek bağlıdır.Event processors and microservices for originating systems and other downstream systems are not included, and their cost is highly dependent on the quantity and scale of these services as well as the technologies chosen for implementing them.

Azure Cosmos DB para istek birimi (RU) birimidir.The currency of Azure Cosmos DB is the request unit (RU). İstek birimleri ile okuma/yazma kapasiteler veya sağlama CPU, bellek ve IOPS ayırmak gerekmez.With request units, you don't need to reserve read/write capacities or provision CPU, memory, and IOPS. Azure Cosmos DB, farklı işlem var çeşitli API'ler destekler, basit arasında değişen okur ve karmaşık graf sorgularını yazar.Azure Cosmos DB supports various APIs that have different operations, ranging from simple reads and writes to complex graph queries. Tüm istekleri eşit olduğundan, istekleri normalleştirilmiş isteğe hizmet vermek için gerekli olan hesaplamayı miktarına göre istek birimi miktarı atanır.Because not all requests are equal, requests are assigned a normalized quantity of request units based on the amount of computation required to serve the request. İstek birimi, çözüm için gerekli veri öğesi boyutuna bağlıdır ve veritabanı sayısını okuma ve yazma işlemlerini saniye başına.The number of request units required by your solution is dependent on data element size and the number of database read and write operations per second. Daha fazla bilgi için istek birimi olarak Azure Cosmos DB'de.For more information, see Request units in Azure Cosmos DB. Bunlar, Cosmos DB iki Azure bölgelerinde çalıştırılan fiyatları dayalı tahmin.These estimated prices are based on Cosmos DB running in two Azure regions.

Etkinlik beklediğiniz miktarı üzerinden üç örnek maliyet profil sağladık:We have provided three sample cost profiles based on amount of activity you expect:

  • Küçük: koreluje s 5 RU'ları için ayrılmış bir 1 TB veri deposunda Cosmos DB ve küçük (D3 v2) ile Kafka kümesi Bu fiyatlandırma örneği.Small: this pricing example correlates to 5 RUs reserved with a 1 TB data store in Cosmos DB and a small (D3 v2) Kafka cluster.
  • Orta: koreluje s 50 RU'ları için ayrılmış bir 10 TB veri deposunda Cosmos DB ve orta ölçekli (D4 v2) ile Kafka kümesi Bu fiyatlandırma örneği.Medium: this pricing example correlates to 50 RUs reserved with a 10 TB data store in Cosmos DB and a midsized (D4 v2) Kafka cluster.
  • Büyük: koreluje s 500 RU'ları için ayrılmış bir 30 TB veri deposunda Cosmos DB ve bir büyük (D5 v2) ile Kafka kümesi Bu fiyatlandırma örneği.Large: this pricing example correlates to 500 RUs reserved with a 30 TB data store in Cosmos DB and a large (D5 v2) Kafka cluster.

Bu örnek senaryo, daha kapsamlı bir sürümü tarafından oluşturulan Bu mimarinin temel Jet.com , uçtan uca sipariş işleme işlem hattı için.This example scenario is based on a more extensive version of this architecture built by Jet.com for its end-to-end order processing pipeline. Daha fazla bilgi için [jet.com teknik müşteri profili] source-document ve Build 2018'e jet.com'ın sunuyu.For more information, see the jet.com technical customer profile and jet.com's presentation at Build 2018.

İlgili diğer kaynaklar şunlardır:Other related resources include: