logo资料库

RabbitMQ Essentials.pdf

第1页 / 共182页
第2页 / 共182页
第3页 / 共182页
第4页 / 共182页
第5页 / 共182页
第6页 / 共182页
第7页 / 共182页
第8页 / 共182页
资料共182页,剩余部分请下载后查看
Cover
Copyright
Credits
Foreword
About the Author
About the Reviewers
www.PacktPub.com
Table of Contents
Preface
Chapter 1: A Rabbit Springs to Life
What is messaging?
A loosely coupled architecture
Meet AMQP
The RabbitMQ broker
A case for RabbitMQ
Getting RabbitMQ ready
Installing the broker
Installing the management plugin
Configuring users
Summary
Chapter 2: Creating an Application Inbox
Connecting to RabbitMQ
Working with channels
Building the inbox
Sending user messages
AMQP message structure
Fetching user messages
Seeing it run
Adding topic messages
Summary
Chapter 3: Switching to Server-push
Moving beyond polling
Consuming queues
Creating a consumer subscription wrapper
Babysitting subscriptions
Tying into the WebSocket endpoint
Running the application
Publishing to all queues
Binding to the fanout
Publishing to all
Running the application
Summary
Chapter 4: Handling Application Logs
Publishing and consuming logs
Load testing AMQP
Running a load test
Prefetching messages
Messaging serendipity
Summary
Chapter 5: Tweaking Message Delivery
Handling dead letters
Refactoring queues
Undertaking messages
Making delivery mandatory
Implementing the back-office sender
Summary
Chapter 6: Smart Message Routing
Service-oriented messaging
Replying to queues
Routing service requests
Exposing the authentication service
Calling the authentication service
Summary
Chapter 7: Taking RabbitMQ to Production
Tackling the broker SPOF
Mirroring queues
Connecting to the cluster
Federating brokers
Monitoring the broker
Summary
Chapter 8: Testing and Tracing Applications
Testing RabbitMQ applications
Unit testing RabbitMQ applications
Integration testing RabbitMQ applications
Tracing RabbitMQ
Drinking at the Firehose
Summary
Appendix: Message Schemas
User message
Authentication messages
Login
Request
Response
Logout
Request
Response
Generic error message
Index
www.it-ebooks.info
RabbitMQ Essentials Hop straight into developing your own messaging applications by learning how to utilize RabbitMQ David Dossot BIRMINGHAM - MUMBAI
RabbitMQ Essentials Copyright © 2014 Packt Publishing All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews. Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book. Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information. First published: April 2014 Production Reference: 1180414 Published by Packt Publishing Ltd. Livery Place 35 Livery Street Birmingham B3 2PB, UK. ISBN 978-1-78398-320-9 www.packtpub.com www.it-ebooks.info
Credits Project Coordinator Puja Shukla Proofreader Ameesha Green Indexer Monica Ajmera Mehta Graphics Sheetal Aute Ronak Dhruv Abhinash Sahu Production Coordinator Alwin Roy Cover Work Alwin Roy Cover Image Sheetal Aute Author David Dossot Reviewers Ken Pratt Ken Taylor Ignacio Colomina Torregrosa Héctor Veiga Commissioning Editor Ashwin Nair Acquisition Editor Richard Harvey Content Development Editor Govindan K Technical Editors Shruti Rawool Nachiket Vartak Copy Editors Aditya Nair Kirti Pai www.it-ebooks.info
www.it-ebooks.info
Foreword What gets me most excited about RabbitMQ is that people keep finding new and better ways to use it. Messaging has truly come of age and stands beside databases and web applications as a technology that every professional developer needs to know. In 2006, when RabbitMQ was born, messaging was mostly used by companies that had way too many IT systems and desperately needed some way to connect them. Jargon words such as "pubsub" and "queue" were strictly for messaging geeks and highly paid integration consultants. But the world was already changing and we were about to find out why. Today's software and web applications are increasing in scale rapidly. There are more users, apps, devices, places, and ways to connect; this creates a burning need to build more scalable applications. At the same time, these new applications have to integrate with existing systems and services written using any language or API you care to think of. There is only one way to deliver scalability in this kind of environment: use messaging. The best way to do that is via a product such as RabbitMQ. We started RabbitMQ because there was no messaging tool that was really powerful and dependable, yet easy to get started with. We decided to make one. We hope you like it. The fun part is designing the tool so that you, the developer, feel like RabbitMQ is actually helping you to build better apps, instead of getting in the way. Your use of the tool should grow with your system. www.it-ebooks.info
The hard part is balancing simplicity and power. With RabbitMQ, we think we got this about right. Developers have little tolerance for complexity and nonsense. But beware! There is such a thing as "fake simplicity"; if a tool makes promises that seem too good to be true, then something is almost certainly broken. A truly simple system makes its capabilities obvious when they are needed. RabbitMQ will never lie to you or conceal its true behavior and we think this is essential in a good tool. In this book, David Dossot has shown how messaging can help anyone architect and design solid scalable apps and how RabbitMQ can deliver on this promise. In 2014, everyone can grok the basics of messaging. Read this book to get started. Alexis Richardson Former CEO, Rabbit Technologies Inc. www.it-ebooks.info
About the Author David Dossot has worked as a software engineer and an architect for more than 18 years. He has been using RabbitMQ since 2009 in a variety of different contexts. He is the main contributor to the AMQP transport for Mule. His focus is on building distributed and scalable server-side applications for the JVM and the Erlang VM. He is a member of IEEE, the Computer Society, and AOPA, and holds a diploma in Production Systems Engineering from ESSTIN. He is a co-author for the first and second editions of Mule in Action (Manning Publications Co.). He is a Mule champion and a DZone Most Valuable Blogger. He commits on multiple open source projects and likes to help people on Stack Overflow. He's also a judge for the annual Jolt Awards software competition. I would like to thank my wife for giving the thumbs up to this book project, while just recovering from the previous book. It was a stretch goal, but with her support and the patience and love of the rest of my family, it became possible. I'm also grateful to the rainy winters we get in the Pacific Northwest as I didn't feel bad staying inside writing! I would like to extend a special thanks to our early reviewers— without them, the book wouldn't be as great as it is now. I want to use this opportunity to give kudos to a bunch of first class software engineers and architects who have inspired me and from whom I've learned so much throughout my career: Romuald van der Raaij, André Weber, Philip Thomas, Pierre-Antoine Grégoire, Carl Schmidt, Tim Meighen, Josh Devins, Dominic Farr, Erik Garrett, and Ken Pratt. www.it-ebooks.info
分享到:
收藏