From 4a6b14749e08fc0590220c4ba975dd3d04f919ae Mon Sep 17 00:00:00 2001 From: Manoj Kumawat Date: Sat, 23 Feb 2019 16:48:45 +0530 Subject: [PATCH] Update README.md --- README.md | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index c7bdc72..d0729f6 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -##Fabric - A real-time stream processing framework
+## Fabric - A real-time stream processing framework
-###What? +### What? A scalable, practical and safe real-time computation framework designed for easy operability and extension.
Fabric is proven to work very well for:
@@ -10,7 +10,7 @@ Fabric is proven to work very well for:
- Real-time pattern matching
- Basic Streaming analytics
-###Why? +### Why? * Highly scalable and guaranteed availability using battle-tested clustering capabilities provided by Apache Mesos and Marathon * Framework level guarantees against message loss, support for replay, multiple sources and complex tuple trees. * Event batching is supported at the core level. @@ -37,14 +37,14 @@ Fabric is proven to work very well for:
**Streaming Processor**: A Streaming Processor is a processor that is triggered whenever and event set is sent to the processor.
**Scheduled Processor**: A Scheduled Processor is a processor which is triggered whenever a fixed period of time elapses in a periodic fashion.
-###Walkthrough
+### Walkthrough
Let’s write a word count computation that processes a list of sentences and outputs words frequency counts.
We need three components for this computation:
1. A source that generates random sentences - RandomSentenceSource
2. A processor that splits the sentences by space into its constituent words - SplitterProcessor
3. A processor that outputs the word frequency counts at regular intervals - WordCountProcessor
-####RandomSentenceSource.java +#### RandomSentenceSource.java ``` // Add this annotation for registering the source with the metadata server @Source( @@ -105,7 +105,7 @@ public class RandomSentenceSource implements PipelineSource { } ``` -####SplitterProcessor.java +#### SplitterProcessor.java ``` @Processor( namespace = "global", @@ -158,7 +158,7 @@ public class SplitterProcessor extends StreamingProcessor { } ``` -####WordCountProcessor.java +#### WordCountProcessor.java ``` @Processor( namespace = "global", @@ -314,11 +314,11 @@ The json specification for this computation will look like this
} ``` -###Benchmarks -####Performance Test Configuration +### Benchmarks +#### Performance Test Configuration No of messages: 1 million
Payload size: 258 bytes
-####Topology +#### Topology Kafka Source -> Event Counter (Prints number of total events consumed every one second to the console)
No of partitions: 1
Topic Name: end-to-end-latency-perf
@@ -327,9 +327,9 @@ Kafka source buffer size: 3 MB
Docker CPU (number of cpu shares): 1.0
Docker Memory: 2 GB
JVM Heap Size: 2 GB
-####Kafka Broker configuration +#### Kafka Broker configuration 2 cores Intel(R) Xeon(R) CPU E5-2666 v3 @ 2.90GHz 8 GB RAM
-####Mesos Host configuration +#### Mesos Host configuration 8 cores Intel(R) Xeon(R) CPU E5-2666 v3 @ 2.90GHz 32 GB RAM
End to end latency to process all messages in seconds (ceiling) averaged over multiple runs is presented below

@@ -345,7 +345,7 @@ Throughput with best configuration T ~ 166666 events / second
NOTE: Using Disruptor with YieldWaitingStrategy instead of LBQ for channel communication actually reduced the throughput
-###Using Processor Maven Archetype +### Using Processor Maven Archetype To create a processor project, please run following command -