Database Reference
In-Depth Information
The Go language is still very much under development, and its compiler
is not as good as many C compilers (or even necessarily as good as Java's
compilers at this point). That said, it has been shown to perform well on
real-world benchmarks for web server development and already has clients
for several of the packages discussed in this topic, particularly Kafka and
Cassandra. This makes it a potential candidate for the development of edge
collection servers if not for the processing or delivery components of the
real-time application.
A Real-Time Architecture Checklist
The remainder of the first half of this topic discusses the frameworks and
software packages used to build real-time streaming systems. Every piece of
software has been used in some real-world application or another and they
should not be considered to be in competition with one another. Each has
its purpose and, many times, attempting to compare them in some general
way is missing the point. Rather than comparing various software packages,
this section offers a simple opinion about which packages, frameworks, or
languages work best in a given setting.
Collection
In many cases, there will not be a choice. The edge server will be a
pre-existing system, and the goal will be to retrofit or integrate that server
with a real-time framework.
In the happy event that the edge server is being custom built to collect data
fromtheoutsideworld,aJava-based serverisprobablythebestchoice.Java
is in no way a “sexy” language. In fact, in many cases it can be an unpleasant
language touse.Butithasbeen around fornearly 20years, itsshortcomings
are well understood, and people have been trying to squeeze performance
out of its frameworks for a long time. For the same amount of tuning effort
in a real-world application, Java will almost always be faster.
Other compiled JVM languages, such as Scala or Clojure, yield performance
similar to Java itself, particularly, if none of the advanced features of the
language, such as Scala's collection library, are used. That said, the goals of
a dedicated edge server are to be as simple as possible and to deliver the
data to the data-flow framework quickly and safely. The same cannot be
said of the various complicated Java frameworks. These more complicated
Search WWH ::




Custom Search