I've never used distributed caches/DHTs like memcached, jboss cache, ehcache, etc. I'm wondering which, if any, is appropriate for my use.
First, I'm not doing web applications (as most of these project seem to be geared towards web apps). I write servers (Order Management Systems actually) for financial trading firms. The servers themselves are not too complicated. They need to receive information (market data, orders, executions, etc.) rout them to their destination while possibly transforming some of these messages.
I am looking at these products to solve the following problems:
Safe repository of the state of the server. I'd rather build the logic of my application as a bunch of transformers (similar to Apache Camel) and store the state in a 'safe' place
This repository should be distributed: in case one of these data stores crashes, one or two more should be up and I should be able to switch to them seamlessly
This repository should be fast. Single digits milliseconds count here, in other words, systems which consume/process this data are automated systems, not humans clicking on links. This system needs to have high-throughput and low latency. By sending my data outside the process, I am necessarily slowing performance, but I am trying to balance absolute raw speed and absolute protection of data.
This repository should be safe. Similar to the point about several on-line backups, this system needs to write data to disk (potentially more than one disk).
I'd really like to stop writing my own 'transaction servers.' Am I correct to be looking into projects such as jboss cache, ehcache, etc.?
Thanks
Ehcache is an open-source implementation of the JSR-107, which is reported to be the most used Java-based cache (URL-2, 2020).
In distributed mode, the Object Caching Service for Java can share objects and communicate with other caches running either locally on the same machine or remotely across the network. Object updates and invalidations are propagated between communicating caches.
is a pluggable cache for Hibernate, tuned for high concurrent load on large multi-cpu servers, provides LRU, LFU and FIFO cache eviction policies, and is production tested. Ehcache is used by LinkedIn to cache member profiles.
Hazelcast is an open source, transactional, distributed caching solution for Java. Good fit for financial applications. It is released under Apache license. Hazelcast is actually a little more than a distributed cache; it is distributed implementation of queue, topic, map, multimap, lock, executor service for Java.
Low latency in Java. Java, because of its virtual machine and garbage collection is very often perceived slow. Fortunately, with the right optimisations, we can make it extremely fast. Let’s focus on the key elements influencing low latency: Garbage Collection.
A standard web application will target a latency of 200ms to 800ms. #3. A gaming application or a more complex web application will target a latency of 500ms to 1000ms. Q5. How will you go about improving the latency for a more complex web site? A5. 15 key considerations to write low latency applications in Java. Q6.
Client-Server cache as the name suggests it follows a client-server architecture and then distributed cache as the name suggests when we have multiple applications retrieve data from a server cache. Why Microservices required cache in any application?
Hazelcast is an open source, transactional, distributed caching solution for Java. Good fit for financial applications. It is released under Apache license.
Hazelcast is actually a little more than a distributed cache; it is distributed implementation of queue, topic, map, multimap, lock, executor service for Java.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With