官术网_书友最值得收藏!

A RabbitMQ scenario

CC is a new taxi agency with huge potential. Today, the company has just two taxi drivers and two developers, but they want to expand a lot in the upcoming year. CC has already built a website in Ruby and started out with a backend, also written in Ruby, that stores CC trips in a database. CC also has some scripts, written in Python, that generate route reports.

So far, CC's system runs as follows:

  • The company's website and blog runs on Ruby.
  • The Rich Internet Application that stores route data, such as the starting point and the endpoint of the trip, is written in Ruby.
  • There's a back-office that sends route updates to drivers and is written in Ruby.
  • Multiple ad hoc Python scripts are used to extract and message data to generate route reports.
  • Taxi applications are written in Python.

The old architecture is illustrated as follows:

Fig 1.12: C C software landscape

Why is CC looking at adding RabbitMQ to an already busy environment? The main reason is because of a new feature CC wants to offer to their customers – they want to build a taxi application that handles reservations on the go. CC also wants to be able to scale painlessly. The plan is to build an app where users can book a car via a smartphone, receive booking confirmation, and view the car approaching the starting point of the trip.

Since CC already has some services in different languages, and since CC wants to be able to scale easily, they decided to use a ready-made message-oriented middleware such as RabbitMQ for asynchronous communication between the app, the client, and the backend.

As CC's knowledge and usage of RabbitMQ increases, they will discover new opportunities to leverage it in the environment. For now, let's follow CC as it gets started with its very first step into working with RabbitMQ.

主站蜘蛛池模板: 崇信县| 霍城县| 安龙县| 满洲里市| 舞阳县| 梧州市| 三明市| 武平县| 兴国县| 屯门区| 万安县| 清苑县| 山阳县| 阳东县| 即墨市| 长白| 贵阳市| 辽阳市| 青海省| 冀州市| 资兴市| 宣武区| 瑞昌市| 扎囊县| 巴林右旗| 永川市| 仙居县| 万州区| 泸水县| 巴彦淖尔市| 贺兰县| 漾濞| 义乌市| 宜州市| 鱼台县| 舞钢市| 安乡县| 高要市| 桃源县| 会理县| 青海省|