forked from booksbyus/zguide
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.bookmarks
338 lines (338 loc) · 16.8 KB
/
.bookmarks
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
Transport-Bridging Transport Bridging
The-Secret-Life-of-WiFi The Secret Life of WiFi
Step-Draw-a-Rough-Architecture Step 2: Draw a Rough Architecture
Learning-Curve Learning Curve
Architecture-of-the-MQ-Community Architecture of the 0MQ Community
Fixing-the-World Fixing the World
Git-Branches-Considered-Harmful Git Branches Considered Harmful
Example-Zyre-Application Example Zyre Application
The-Process The Process
State-Machines State Machines
Ping-Pong-Heartbeats Ping-Pong Heartbeats
Plugging-Sockets-into-the-Topology Plugging Sockets into the Topology
The-Mystic The Mystic
Simplicity-vs-Complexity Simplicity vs. Complexity
Handling-Errors-and-ETERM Handling Errors and ETERM
Exploring-ROUTER-Sockets Exploring ROUTER Sockets
Chapter-Basics Chapter 1 - Basics
Psychology-of-Software-Architecture Psychology of Software Architecture
Technical-Requirements Technical Requirements
Chapter-Advanced-Architecture-using-MQ Chapter 7 - Advanced Architecture using 0MQ
Architecture-of-a-Single-Cluster Architecture of a Single Cluster
Messaging-Patterns Messaging Patterns
-MQ-s-Built-In-Proxy-Function 0MQ's Built-In Proxy Function
Why-use-the-GPLv-for-Public-Specifications Why use the GPLv3 for Public Specifications?
Abstraction-Level Abstraction Level
Goals Goals
Getting-the-Message-Out Getting the Message Out
The-Importance-of-Contracts The Importance of Contracts
Cooperative-Discovery-using-UDP-Broadcasts Cooperative Discovery using UDP Broadcasts
High-level-Messaging-Patterns High-level Messaging Patterns
Evolution-of-Public-Contracts Evolution of Public Contracts
The-ROUTER-to-ROUTER-Combination The ROUTER to ROUTER Combination
A-Self-Healing-P-P-Network-in-Seconds A Self-Healing P2P Network in 30 Seconds
Spinning-Off-a-Library-Project Spinning Off a Library Project
Delivery-Notifications Delivery Notifications
-MQ-s-Built-in-Proxy-Function 0MQ's Built-in Proxy Function
Sending-and-Receiving-Messages Sending and Receiving Messages
Point-to-Point-Messaging Point-to-Point Messaging
The-Flash-Mob The Flash Mob
Multithreading-with-ZeroMQ Multithreading with ZeroMQ
The-REQ-to-REP-Combination The REQ to REP Combination
Design-for-The-Real-World Design for The Real World
UDP-Beacon-Framing UDP Beacon Framing
I-O-Threads I/O Threads
ZeroMQ-is-Not-a-Neutral-Carrier ZeroMQ is Not a Neutral Carrier
Chapter-Advanced-Pub-Sub-Patterns Chapter 5 - Advanced Pub-Sub Patterns
Chapter-The-MQ-Community Chapter 6 - The 0MQ Community
Trash-Oriented-Design Trash-Oriented Design
Upgrading-from-ZeroMQ-v-to-ZeroMQ-v Upgrading from ZeroMQ v2.2 to ZeroMQ v3.2
Unprotocols Unprotocols
Model-Three-Complex-and-Nasty Model Three: Complex and Nasty
The-Simple-Reply-Envelope The Simple Reply Envelope
Handwritten-Binary-Serialization Handwritten Binary Serialization
Up-front-Coordination Up-front Coordination
Getting-the-Examples Getting the Examples
Scalability Scalability
On-Up-front-Testing On Up-front Testing
Tales-from-Out-There Tales from Out There
A-Plausible-Minimal-Implementation A Plausible Minimal Implementation
basics Chapter 1 - Basics
Missing-Message-Problem-Solver Missing Message Problem Solver
Recap-of-Request-Reply-Sockets Recap of Request-Reply Sockets
Simplicity-Versus-Complexity Simplicity Versus Complexity
The-DEALER-to-ROUTER-Combination The DEALER to ROUTER Combination
Licensing-and-Ownership Licensing and Ownership
Chapter-Sockets-and-Patterns Chapter 2 - Sockets and Patterns
Getting-the-Context-Right Getting the Context Right
Getting-an-Out-of-Band-Snapshot Getting an Out-of-Band Snapshot
Tracing-Activity Tracing Activity
Prototyping-the-State-Flow Prototyping the State Flow
ZeroMQ-s-Built-In-Proxy-Function ZeroMQ's Built-In Proxy Function
How-to-Make-Really-Large-Architectures How to Make Really Large Architectures
Complexity-Oriented-Design Complexity-Oriented Design
Preliminaries Preliminaries
Reliable-Pub-Sub-Clone-Pattern Reliable Pub-Sub (Clone Pattern)
Step-Write-a-Minimal-End-to-End-Solution Step 4: Write a Minimal End-to-End Solution
The-Open-Door The Open Door
Multi-part-Messages Multi-part Messages
Service-Oriented-Reliable-Queuing-Majordomo-Pattern Service-Oriented Reliable Queuing (Majordomo Pattern)
The-Zyre-Tester The Zyre Tester
On-Assertions On Assertions
Chapter-A-Framework-for-Distributed-Computing Chapter 8 - A Framework for Distributed Computing
The-Mindful-General The Mindful General
Shared-Queue-DEALER-and-ROUTER-sockets Shared Queue (DEALER and ROUTER sockets)
Simplicity-Oriented-Design Simplicity Oriented Design
How-to-Write-Unprotocols How to Write Unprotocols
Acknowledgements Acknowledgements
Compatible-Changes Compatible Changes
-MQ-in-a-Hundred-Words 0MQ in a Hundred Words
A-Real-Life-Example A Real-Life Example
Worked-Example-Inter-Broker-Routing Worked Example: Inter-Broker Routing
Detailed-Requirements Detailed Requirements
Version-Reporting Version Reporting
Building-a-Multithreaded-Stack-and-API Building a Multithreaded Stack and API
The-Canary-Watcher The Canary Watcher
reliable-request-reply Chapter 4 - Reliable Request-Reply Patterns
Client-side-Reliability-Lazy-Pirate-Pattern Client-side Reliability (Lazy Pirate Pattern)
Public-API Public API
Identities-and-Addresses Identities and Addresses
Language Language
Heartbeating-for-Paranoid-Pirate Heartbeating for Paranoid Pirate
Patterns-for-Success Patterns for Success
The-Rolling-Stone The Rolling Stone
Detecting-Disappearances Detecting Disappearances
Cost-of-Failure Cost of Failure
Preventing-Split-Brain-Syndrome Preventing Split-Brain Syndrome
Surprise-and-Expectations Surprise and Expectations
Idempotent-Services Idempotent Services
Conclusion Conclusion
Contracts-are-Hard Contracts are Hard
Burnout Burnout
How-MQ-Lost-Its-Road-Map How 0MQ Lost Its Road Map
Adding-the-Binary-Star-Pattern-for-Reliability Adding the Binary Star Pattern for Reliability
Programming-with-ZeroMQ Programming with ZeroMQ
Writing-the-Unprotocol Writing the Unprotocol
The-MQ-Process-C The 0MQ Process: C4
High-availability-Pair-Binary-Star-Pattern High-availability Pair (Binary Star Pattern)
The-Provocateur The Provocateur
How-the-Guide-Happened How the Guide Happened
Ask-and-Ye-Shall-Receive Ask and Ye Shall Receive
A-Minor-Note-on-Strings A Minor Note on Strings
The-Naming-Ceremony The Naming Ceremony
A-High-Level-API-for-MQ A High-Level API for 0MQ
Tom-van-Leeuwen-s-Story Tom van Leeuwen's Story
Contracts-Are-Hard Contracts Are Hard
Designing-the-API Designing the API
Stranger-Meet-Stranger Stranger, Meet Stranger
Rob-Gagnon-s-Story Rob Gagnon's Story
The-Social-Engineer The Social Engineer
Getting-an-Official-Port-Number Getting an Official Port Number
Handling-Multiple-Sockets Handling Multiple Sockets
Protocols-Without-The-Goats Protocols Without The Goats
Chapter-Advanced-Architecture-using-ZeroMQ Chapter 7 - Advanced Architecture using ZeroMQ
Postface Postface
Pub-Sub-Tracing-Espresso-Pattern Pub-Sub Tracing (Espresso Pattern)
Starting-Assumptions Starting Assumptions
Part-Learning-to-Work-with-MQ Part 1 - Learning to Work with 0MQ
Preemptive-Discovery-over-Raw-Sockets Preemptive Discovery over Raw Sockets
High-Availability-Pair-Binary-Star-Pattern High-Availability Pair (Binary Star Pattern)
Binary-Star-Reactor Binary Star Reactor
Binary-Logging-Protocol Binary Logging Protocol
Initial-Design-Cut-the-Protocol Initial Design Cut: the Protocol
Hand-written-Binary-Serialization Hand-written Binary Serialization
Robustness-in-Conflict Robustness in Conflict
Centralized-vs-Decentralized Centralized vs. Decentralized
Economics-of-Participation Economics of Participation
Heartbeating Heartbeating
Putting-it-All-Together Putting it All Together
A-High-Level-API-for-ZeroMQ A High-Level API for ZeroMQ
Binary-Star-Implementation Binary Star Implementation
Stranger-meet-Stranger Stranger, meet Stranger
Message-Oriented-Pattern-for-Elastic-Design Message-Oriented Pattern for Elastic Design
What-is-Reliability What is "Reliability"?
advanced-request-reply Chapter 3 - Advanced Request-Reply Patterns
ROUTER-Broker-and-DEALER-Workers ROUTER Broker and DEALER Workers
Prototyping-the-Local-and-Cloud-Flows Prototyping the Local and Cloud Flows
Group-Messaging Group Messaging
Getting-an-Out-of-band-Snapshot Getting an Out-of-band Snapshot
Building-and-Trying-FileMQ Building and Trying FileMQ
Transferring-Files Transferring Files
advanced-pub-sub Chapter 5 - Advanced Pub-Sub Patterns
Why-Mesh-isn-t-Here-Yet Why Mesh isn't Here Yet
Handling-Interrupt-Signals Handling Interrupt Signals
Development-Process Development Process
Removing-Friction Removing Friction
Configuration Configuration
Discovery Discovery
Node-Coordination Node Coordination
Incompatible-Changes Incompatible Changes
Scaling-to-Multiple-Clusters Scaling to Multiple Clusters
Chapter-Reliable-Request-Reply-Patterns Chapter 4 - Reliable Request-Reply Patterns
The-Load-balancing-Pattern The Load-balancing Pattern
Making-a-Detour Making a Detour
moving-pieces Chapter 8 - A Framework for Distributed Computing
The-Earth-and-Sky The Earth and Sky
Model-One-Simple-Retry-and-Failover Model One: Simple Retry and Failover
Patch-Requirements Patch Requirements
The-Clustered-Hashmap-Protocol The Clustered Hashmap Protocol
Recovery-and-Late-Joiners Recovery and Late Joiners
Making-a-Clean-Exit Making a Clean Exit
Project-Administration Project Administration
Code-Generation Code Generation
Michael-Jakl-s-Story Michael Jakl's Story
The-Cheap-or-Nasty-Pattern The Cheap or Nasty Pattern
Audience Audience
Republishing-Updates-from-Clients Republishing Updates from Clients
Invalid-Combinations Invalid Combinations
Zero-Copy Zero-Copy
Content-Distribution Content Distribution
Slow-Subscriber-Detection-Suicidal-Snail-Pattern Slow Subscriber Detection (Suicidal Snail Pattern)
The-Use-Case The Use Case
The-Contract The Contract
Multithreading-with-MQ Multithreading with 0MQ
-MQ-Framing 0MQ Framing
Unicast-Transports Unicast Transports
Why-Unprotocols Why Unprotocols?
Pros-and-Cons-of-Publish-Subscribe Pros and Cons of Publish-Subscribe
On-Up-Front-Testing On Up-Front Testing
Crazy-Beautiful-and-Easy Crazy, Beautiful, and Easy
What-s-the-Current-Status What's the Current Status?
Using-Sockets-to-Carry-Data Using Sockets to Carry Data
Serialization-Languages Serialization Languages
Why-We-Needed-MQ Why We Needed 0MQ
the-community Chapter 6 - The ZeroMQ Community
Chapter-The-ZeroMQ-Community Chapter 6 - The ZeroMQ Community
Cooperative-Discovery-Using-UDP-Broadcasts Cooperative Discovery Using UDP Broadcasts
Multiple-Nodes-on-One-Device Multiple Nodes on One Device
Authentication-Using-SASL Authentication Using SASL
Request-Reply-Combinations Request-Reply Combinations
Signaling-between-Threads-PAIR-sockets Signaling between Threads (PAIR sockets)
sockets-and-patterns Chapter 2 - Sockets and Patterns
Eat-Me Eat Me
The-Load-Balancing-Pattern The Load Balancing Pattern
Reliable-Publish-Subscribe-Clone-Pattern Reliable Publish-Subscribe (Clone Pattern)
Error-Handling Error Handling
Large-scale-File-Publishing-FileMQ Large-scale File Publishing - FileMQ
The-Benevolent-Tyrant The Benevolent Tyrant
Upgrading-from-MQ-v-to-MQ-v Upgrading from 0MQ v2.2 to 0MQ v3.2
Change-Latency Change Latency
The-Zen-of-Zero The Zen of Zero
The-Laughing-Clown The Laughing Clown
More-about-UDP More about UDP
Conclusions Conclusions
The-Socket-API The Socket API
Service-Discovery Service Discovery
postface Postface
Dealing-with-Blocked-Peers Dealing with Blocked Peers
-MQ-is-Not-a-Neutral-Carrier 0MQ is Not a Neutral Carrier
Part-Software-Engineering-using-MQ Part 2 - Software Engineering using 0MQ
Visibility Visibility
Programming-with-MQ Programming with 0MQ
ZeroMQ-in-a-Hundred-Words ZeroMQ in a Hundred Words
Vadim-Shalts-s-Story Vadim Shalts's Story
Audience-for-This-Book Audience for This Book
Why-We-Needed-ZeroMQ Why We Needed ZeroMQ
Point-to-point-Messaging Point-to-point Messaging
Disconnected-Reliability-Titanic-Pattern Disconnected Reliability (Titanic Pattern)
Client-Side-Reliability-Lazy-Pirate-Pattern Client-Side Reliability (Lazy Pirate Pattern)
Pub-Sub-Message-Envelopes Pub-Sub Message Envelopes
One-Way-Heartbeats One-Way Heartbeats
Shrugging-It-Off Shrugging It Off
Why-make-FileMQ Why make FileMQ?
Step-Solve-One-Problem-and-Repeat Step 5: Solve One Problem and Repeat
More-About-UDP More About UDP
How-It-Began How It Began
Plugging-Sockets-Into-the-Topology Plugging Sockets Into the Topology
Using-a-Reactor Using a Reactor
Spinning-off-a-Library-Project Spinning off a Library Project
Asynchronous-Majordomo-Pattern Asynchronous Majordomo Pattern
Protocol-Assertions Protocol Assertions
The-Lazy-Perfectionist The Lazy Perfectionist
Multipart-Messages Multipart Messages
High-speed-Subscribers-Black-Box-Pattern High-speed Subscribers (Black Box Pattern)
Upfront-Coordination Upfront Coordination
Initial-Design-Cut-the-API Initial Design Cut: the API
Chapter-Advanced-Request-Reply-Patterns Chapter 3 - Advanced Request-Reply Patterns
The-DEALER-to-REP-Combination The DEALER to REP Combination
Distributed-Logging-and-Monitoring Distributed Logging and Monitoring
Serializing-Your-Data Serializing Your Data
The-Request-Reply-Mechanisms The Request-Reply Mechanisms
Testing-and-Simulation Testing and Simulation
Warning-Unstable-Paradigms Warning: Unstable Paradigms!
Designing-Reliability Designing Reliability
What-s-This-Good-For What's This Good For?
The-CZMQ-High-Level-API The CZMQ High-Level API
The-Historian The Historian
Test-Results Test Results
Federation-Versus-Peering Federation Versus Peering
The-Constant-Gardener The Constant Gardener
Chapter-Advanced-Publish-Subscribe-Patterns Chapter 5 - Advanced Publish-Subscribe Patterns
Preface Preface
Pros-and-Cons-of-Pub-Sub Pros and Cons of Pub-Sub
Brokerless-Reliability-Freelance-Pattern Brokerless Reliability (Freelance Pattern)
Using-ABNF Using ABNF
Test-Use-Case-The-Track-Tool Test Use Case: The Track Tool
High-Level-Messaging-Patterns High-Level Messaging Patterns
Design-Notes Design Notes
Step-Decide-on-the-Contracts Step 3: Decide on the Contracts
Pub-sub-Tracing-Espresso-Pattern Pub-sub Tracing (Espresso Pattern)
ROUTER-Error-Handling ROUTER Error Handling
Establishing-the-Details Establishing the Details
Test-Use-Case-The-track-tool Test Use-Case - The 'track' tool
How-This-Book-Happened How This Book Happened
The-Pirate-Gang The Pirate Gang
How-MQ-Lost-its-Road-map How 0MQ Lost its Road-map
Infinite-Property Infinite Property
Care-and-Feeding Care and Feeding
Divide-and-Conquer Divide and Conquer
Features-of-a-Higher-Level-API Features of a Higher-Level API
The-ZeroMQ-Process-C The ZeroMQ Process: C4
Why-Mesh-Isn-t-Here-Yet Why Mesh Isn't Here Yet
Representing-State-as-Key-Value-Pairs Representing State as Key-Value Pairs
Some-Physics Some Physics
Working-with-Messages Working with Messages
Symbolic-Links Symbolic Links
High-Water-Marks High-Water Marks
Creating-Stable-Releases Creating Stable Releases
The-Dynamic-Discovery-Problem The Dynamic Discovery Problem
A-Load-Balancing-Message-Broker A Load Balancing Message Broker
File-Stability File Stability
Federation-vs-Peering Federation vs. Peering
Large-Scale-File-Publishing-FileMQ Large-Scale File Publishing: FileMQ
Robust-Reliable-Queuing-Paranoid-Pirate-Pattern Robust Reliable Queuing (Paranoid Pirate Pattern)
ROUTER-Broker-and-REQ-Workers ROUTER Broker and REQ Workers
Licensing Licensing
How-ZeroMQ-Lost-Its-Road-Map How ZeroMQ Lost Its Road Map
Guarantees-of-Isolation Guarantees of Isolation
Suggested-Shim-Macros Suggested Shim Macros
Network-Discovery Network Discovery
The-Asynchronous-Client-Server-Pattern The Asynchronous Client/Server Pattern
Centralized-Versus-Decentralized Centralized Versus Decentralized
Detecting-Memory-Leaks Detecting Memory Leaks
The-REQ-to-ROUTER-Combination The REQ to ROUTER Combination
Ephemeral-Values Ephemeral Values
Serialization-Libraries Serialization Libraries
Basic-Reliable-Queuing-Simple-Pirate-Pattern Basic Reliable Queuing (Simple Pirate Pattern)
True-Peer-Connectivity-Harmony-Pattern True Peer Connectivity (Harmony Pattern)
The-Tale-of-Two-Bridges The Tale of Two Bridges
The-Hangman The Hangman
Socket-Scalability Socket Scalability
Working-with-Subtrees Working with Subtrees
ZeroMQ-Framing ZeroMQ Framing
Serializing-your-Data Serializing your Data
Model-Two-Brutal-Shotgun-Massacre Model Two: Brutal Shotgun Massacre
Contracts-and-Protocols Contracts and Protocols
Architecture-of-the-ZeroMQ-Community Architecture of the ZeroMQ Community
Internal-Architecture Internal Architecture
Step-Internalize-the-Semantics Step 1: Internalize the Semantics
Signaling-Between-Threads-PAIR-Sockets Signaling Between Threads (PAIR Sockets)
Designing-for-Innovation Designing for Innovation
Last-Value-Caching Last Value Caching
Upgrading-from-MQ-to-MQ Upgrading from 0MQ/2.2 to 0MQ/3.2
Authentication-using-SASL Authentication using SASL
advanced-architecture Chapter 7 - Advanced Architecture using ZeroMQ
The-DEALER-to-DEALER-Combination The DEALER to DEALER Combination
High-Speed-Subscribers-Black-Box-Pattern High-Speed Subscribers (Black Box Pattern)
The-Extended-Reply-Envelope The Extended Reply Envelope
Intermediaries-and-Proxies Intermediaries and Proxies