As part of Red Hat’s AMQ offerings, Red Hat offers a Kafka-based event streaming solution both for traditional deployment and microservices-based deployment branded as Red Hat AMQ Streams. The Red Hat OpenShift AMQ Streams deployment option is based on Strimzi, an open source tool that makes Kafka deployment as a container on a Kubernetes platform easy because most of the deployment prerequisites are automated with the OpenShift Operator Framework.
In this article, we look at how to deploy Apache Kafka on Red Hat OpenShift 4, using reasonable sample microservice applications to showcase the endless possibility of innovation brought by OpenShift and Kafka.
Continue reading “Event-based microservices with Red Hat AMQ Streams”
The rise of microservices-oriented architecture brought us new development paradigms and mantras about independent development and decoupling. In such a scenario, we have to deal with a situation where we aim for independence, but we still need to react to state changes in different enterprise domains.
I’ll use a simple and typical example in order to show what we’re talking about. Imagine the development of two independent microservices:
User. We designed them to expose a REST interface and to each use a separate database, as shown in Figure 1:
Figure 1: Order and User microservices.
Continue reading “Decoupling microservices with Apache Camel and Debezium”
In this article, we demonstrate Red Hat OpenShift’s horizontal autoscaling feature with Red Hat Fuse applications. The result is a Spring Boot-based application that uses the Apache Camel component
twitter-search that searches Twitter for tweets based on specific keywords. If traffic or the number of tweets increases, and this application cannot serve all requests, then the application autoscales itself by increasing the number of pods. The ability to serve all requests is monitored by tracking this application’s CPU utilization on a particular pod. Also, as soon as traffic or CPU utilization is back to normal, the number of pods is reduced to the minimum configured value.
There are two types of scaling: horizontal and vertical. Horizontal scaling is where the number of application instances or containers is increased. Vertical scaling is where system resources like CPU and memory are increased at the running application’s or container’s runtime. Horizontal scaling can be used for stateless applications, whereas vertical scaling is more suitable for stateful applications.
Continue reading “Autoscaling Red Hat Fuse applications with OpenShift”
Red Hat Fuse is a leading integration platform, which is capable of solving any given problem with simple enterprise integration patterns (EIP). Over time, Red Hat Fuse has evolved to cater to a wide range of infrastructure needs.
For more information on each of these, check out the Red Hat Fuse documentation. The Fuse on Red Hat OpenShift flavor uses a Fuse image that has runtime components packaged inside a Linux container image. This article will discuss how to reduce the size of the Fuse image. The same principle can be used for other images.
Continue reading “How to reduce Red Hat Fuse image size”
In the following video, I demonstrate how to deploy Red Hat AMQ Streams (based on upstream Apache Kafka) on OpenShift 4.
I will also demonstrate how to use AMQ Streams in a basic way using Red Hat Fuse. There is a Camel route exposing a REST endpoint at
/goodbye, which—when hit—sends a “Goodbye World” message to the topic. There is also a timer sending “Hello World” messages periodically to the topic. A separate Camel route consumes from the topic and logs the messages for our visibility.
Continue reading “Deploy Red Hat AMQ Streams and Fuse on OpenShift Container Platform 4”
In a previous article, I mentioned the growing set of supported IDEs/editors for the Apache Camel language. I’m happy to announce that this set has grown again. It is now possible to use CodeMirror with Apache Camel. CodeMirror is a lightweight, embeddable editor for web browsers.
Continue reading “Apache Camel Language support in CodeMirror”
In this article, we show how to set up Red Hat AMQ 7.4 on Red Hat OpenShift. Also, we show how to connect the external Message Queuing Telemetry Transport (MQTT) secure client to the AMQ 7.4 platform. MQTT is a Java-based client that uses the Eclipse Paho library and can publish and consume messages from Red Hat AMQ 7.4 Broker on OpenShift using secure transport. These commands and code have been verified with OpenShift 3.11.
Continue reading “4 steps to set up the MQTT secure client for Red Hat AMQ 7.4 on OpenShift”
A growing set of editors and IDEs provides specific tooling for development of applications based on Apache Camel. Historically, there was only Eclipse Fuse Tooling, which was based on the Eclipse Desktop IDE. Then, an IntelliJ plugin was created. Both of these tools are tightly coupled to the specific IDE APIs. Consequently, they have the drawback of not easily sharing the development effort.
Supported editors and IDEs
Thanks to Language Server Protocol, with a core server and several configurations or small client development, Apache Camel Language can now be enjoyed on a growing set of environments:
Continue reading “A look at development environments with specific tooling for Apache Camel Language”
Quarkus is a Kubernetes-native Java stack tailored for GraalVM and OpenJDK HotSpot, crafted from the best of breed Java libraries and standards, according to the project website. Starting with the 0.17.0 release, Quarkus supports using the Advanced Message Queuing Protocol (AMQP), which is an open standard for passing business messages between applications or organizations.
Red Hat AMQ Online is a Red Hat OpenShift-based mechanism for delivering messaging as a managed service. Previously, we have seen how to use AMQ Online to provision messaging. In this article, we will combine AMQ Online and Quarkus to show how you can create a modern messaging setup on OpenShift using two new technologies from the messaging space.
The guide assumes you have an installation of AMQ Online on OpenShift. Read the installation guide for more information. AMQ Online is based on the EnMasse open source project.
Continue reading “Cloud-native messaging on Red Hat OpenShift with Quarkus and AMQ Online”
Change Data Capture (CDC) is a pattern that enables database changes to be monitored and propagated to downstream systems. It is an effective way of enabling reliable microservices integration and solving typical challenges, such as gradually extracting microservices from existing monoliths.
With the release of Red Hat AMQ Streams 1.2, Red Hat Integration now includes a developer preview of CDC features based on upstream project Debezium.
This article explains how to make use of Red Hat Integration to create a complete CDC pipeline. The idea is to enable applications to respond almost immediately whenever there is a data change. We capture the changes as they occur using Debezium and stream it using Red Hat AMQ Streams. We then filter and transform the data using Red Hat Fuse and send it to Elasticsearch, where the data can be further analyzed or used by downstream systems.
Continue reading “CDC pipeline with Red Hat AMQ Streams and Red Hat Fuse”