Minor changes to docs + added new akka logo
|
Before Width: | Height: | Size: 5.8 KiB After Width: | Height: | Size: 7.3 KiB |
|
Before Width: | Height: | Size: 6.6 KiB After Width: | Height: | Size: 7.3 KiB |
|
Before Width: | Height: | Size: 39 KiB |
|
Before Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 47 KiB |
|
Before Width: | Height: | Size: 39 KiB |
|
Before Width: | Height: | Size: 44 KiB |
|
|
@ -22,72 +22,11 @@ Actors as services
|
|||
The simplest way you can use Akka is to use the actors as services in your Web application. All that’s needed to do that is to put the Akka charts as well as its dependency jars into ‘WEB-INF/lib’. You also need to put the ‘akka.conf’ config file in the ‘$AKKA_HOME/config’ directory.
|
||||
Now you can create your Actors as regular services referenced from your Web application. You should also be able to use the Remoting service, e.g. be able to make certain Actors remote on other hosts. Please note that remoting service does not speak HTTP over port 80, but a custom protocol over the port is specified in ‘akka.conf’.
|
||||
|
||||
.. image:: ../images/akka-as-library-1.png
|
||||
|
||||
|
||||
|
||||
Actors as services with Software Transactional Memory (STM)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
As in the above, but with the addition of using the STM module to allow transactional memory across many Actors (no persistence, just in-memory).
|
||||
|
||||
.. image:: ../images/akka-as-library-2.png
|
||||
|
||||
|
||||
Actors as services with Persistence module as cache
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
As in the above, but with the addition of using the Persistence module to allow transactional persistent cache. This use case scenario you would still use a regular relational database (RDBMS) but use Akka’s transactional persistent storage as a performant scalable cache alongside the RDBMS.
|
||||
|
||||
.. image:: ../images/akka-as-library-3.png
|
||||
|
||||
|
||||
Actors as services with Persistence module as primary storage/Service of Record (SoR)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
As in the above, but with the addition of using the Persistence module as the primary storage/SoR. In this use case you wouldn’t use a RDBMS at all but rely on one of the Akka backends (Cassandra, Terracotta, Redis, MongoDB etc.) as transactional persistent storage. This is great if have either high performance, scalability or high-availability requirements where a RDBMS would be either single point of failure or single point of bottleneck or just be too slow.
|
||||
If the storage API (Maps, Vectors or Refs) is too constrained for some use cases we can bypass it and use the storage directly. However, please note that then we will lose the transactional semantics.
|
||||
|
||||
.. image:: ../images/akka-as-library-4.png
|
||||
|
||||
|
||||
Actors as REST/Comet (push) services
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
You can also expose your library Actors directly as REST (`JAX <https://jersey.dev.java.net/>`_`-RS <https://jersey.dev.java.net/>`_) or Comet (`Atmosphere <https://atmosphere.dev.java.net/>`_) services by deploying the ‘AkkaServlet’ in your servlet container. In order for this to work in each define a so-called “boot” class which bootstraps the Actor configuration, wiring and startup. This is done in the ‘akka.conf’ file.
|
||||
|
||||
.. image:: ../images/akka-as-library-5.png
|
||||
|
||||
|
||||
Using Akka as a stand alone microkernel
|
||||
Using Akka as a stand alone microkernel
|
||||
---------------------------------------
|
||||
|
||||
Akka can also be run as a stand-alone microkernel. It implements a full enterprise stack:
|
||||
|
||||
|
||||
Web/REST/Comet layer
|
||||
^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Akka currently embeds the `Grizzly/GlassFish <https://grizzly.dev.java.net/>`_ servlet container (but will soon be pluggable with Jetty as well) which allows to build REST-based using `JAX <https://jersey.dev.java.net/>`_`-RS <https://jersey.dev.java.net/>`_ and Comet-based services using `Atmosphere <https://atmosphere.dev.java.net/>`_ as well as regular Web applications using JAX-RS’s `implicit views <http://blogs.sun.com/sandoz/entry/mvcj>`_ (see also `James Strachan’s article <http://macstrac.blogspot.com/2009/01/jax-rs-as-one-web-framework-to-rule.html>`_).
|
||||
|
||||
|
||||
Service layer
|
||||
^^^^^^^^^^^^^
|
||||
|
||||
The service layer is implemented using fault tolerant, asynchronous, throttled message passing; like `SEDA-in-a-box <http://www.eecs.harvard.edu/~mdw/proj/seda/>`_ using Actors.
|
||||
|
||||
Persistence layer
|
||||
^^^^^^^^^^^^^^^^^
|
||||
|
||||
Implemented using pluggable storage engines for both partitioned distributed massively scalable storage (like Cassandra) as well as single node storage (like MongoDB). A different storage and gives also provides different consistency/availability trade-offs implementing either Eventually Consistency (BASE) or Atomicity (ACID).
|
||||
|
||||
Monitoring and Management layer
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Providing both JMX management and monitoring as well as w3c logging.
|
||||
|
||||
.. image:: ../images/akka-as-kernel.png
|
||||
|
||||
Use BivySack for packaging your application
|
||||
-------------------------------------------
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ What is Akka?
|
|||
|
||||
**Simpler Scalability, Fault-Tolerance, Concurrency & Remoting through Actors**
|
||||
|
||||
We believe that writing correct concurrent, fault-tolerant and scalable applications is too hard. Most of the time it's because we are using the wrong tools and the wrong level of abstraction. Akka is here to change that. Using the Actor Model together with ``Software Transactional Memory`` we raise the abstraction level and provide a better platform to build correct concurrent and scalable applications. For fault-tolerance we adopt the ``Let it crash`` / ``Embrace failure`` model which have been used with great success in the telecom industry to build applications that self-heals, systems that never stop. Actors also provides the abstraction for transparent distribution and the basis for truly scalable and fault-tolerant applications. Akka is Open Source and available under the ``Apache 2 License``.
|
||||
We believe that writing correct concurrent, fault-tolerant and scalable applications is too hard. Most of the time it's because we are using the wrong tools and the wrong level of abstraction. Akka is here to change that. Using the Actor Model together with Software Transactional Memory we raise the abstraction level and provide a better platform to build correct concurrent and scalable applications. For fault-tolerance we adopt the Let it crash/Embrace failure model which have been used with great success in the telecom industry to build applications that self-heals, systems that never stop. Actors also provides the abstraction for transparent distribution and the basis for truly scalable and fault-tolerant applications. Akka is Open Source and available under the Apache 2 License.
|
||||
|
||||
|
||||
Download from `<http://akka.io/downloads/>`_
|
||||
|
|
@ -20,7 +20,7 @@ Akka implements a unique hybrid of:
|
|||
- Asynchronous, non-blocking and highly performant event-driven programming model.
|
||||
- Very lightweight event-driven processes (create ~6.5 million actors on 4GB RAM).
|
||||
|
||||
- :ref:`fault-tolerance-java` through supervisor hierarchies with `let-it-crash <http://letitcrash.com>`_ semantics. Excellent for writing highly fault-tolerant systems that never stop, systems that self-heal.
|
||||
- :ref:`fault-tolerance-java` through supervisor hierarchies with "let-it-crash" semantics. Excellent for writing highly fault-tolerant systems that never stop, systems that self-heal.
|
||||
- :ref:`stm-java` (STM). (Distributed transactions coming soon).
|
||||
- :ref:`transactors-java`: combine actors and STM into transactional actors. Allows you to compose atomic message flows with automatic retry and rollback.
|
||||
- :ref:`remote-actors-java`: highly performant distributed actors with remote supervision and error management.
|
||||
|
|
|
|||
|
|
@ -53,16 +53,15 @@ And that's all in the ApacheV2-licensed open source project. On top of that we
|
|||
have a commercial product called Cloudy Akka which provides the following
|
||||
features:
|
||||
|
||||
#. Dynamically clustered ActorRegistry with both automatic and manual migration
|
||||
of actors
|
||||
|
||||
#. Cluster membership and cluster event subscriptions
|
||||
|
||||
#. Durable actor mailboxes of different sizes and shapes - file-backed,
|
||||
Redis-backed, ZooKeeper-backed, Beanstalkd-backed and with AMQP and JMS-based
|
||||
in the works
|
||||
|
||||
#. Monitoring influenced by Dapper for cross-machine message tracing and
|
||||
JMX-exposed statistics
|
||||
#. Management through Dashboard, JMX and REST
|
||||
#. Monitoring through Dashboard, JMX and SNMP
|
||||
#. Dapper-style tracing of messages across components and remote nodes
|
||||
#. A configurable alert system
|
||||
#. Real-time statistics
|
||||
#. Very low overhead monitoring agents (should always be on in production)
|
||||
#. Consolidation of statistics and logging information to a single node
|
||||
#. Data analysis through Hadoop
|
||||
#. Storage of statistics data for later processing
|
||||
#. Provisioning and rolling upgrades through a dashboard
|
||||
|
||||
Read more `here <http://scalablesolutions.se/products.html>`_.
|
||||
|
|
|
|||