Git Product home page Git Product logo

akka-typed-distributed-state-blog-java's Introduction

Akka Cluster

How To Distribute Application State with Akka Cluster

Building, testing, containerizing, deploying, and monitoring distributed microservices is difficult, but using Lightbend technologies can make it a lot faster and easier to be successful. In this four part blog series, we walk you through a working Proof of Concept (PoC) built using Lightbend’s open source distributed toolkit, Akka. This PoC delivers a resilient, highly performant, elastic, distributed, and consistent state solution that provides an automatic in memory cache with a persistent backing. Here is the breakdown:

  • Part 1 - Getting Started: we walk through building, testing, and running the PoC locally, with instrumentation and monitoring wired in from the very beginning using Lightbend Telemetry.
  • Part 2 - Docker and Local Deploy: here we cover containerizing our PoC, and then deploying locally in Docker. Then, we’ll load test and monitor our PoC as we did in the first installment.
  • Part 3 - Kubernetes and Monitoring: in this part,we introduce Lightbend Console for Kubernetes (K8s), and then deploy our PoC in Minikube (desktop version of K8s) using YAML files provided in this repository. Again, we’ll load test with Gatling, but this time we’ll monitor our PoC in Lightbend Console.
  • Part 4 - Source Code: In our final installment, we do a deep dive into our Scala source code.

Update Feb 15, 2022

How to Generate Protobuf interfaces and stubs

mvn clean akka-grpc:generate

Running a cluster locally with Cassandra

Start the ElasticSearch Sandbox

Elasticsearch developer sandbox

Start Cassandra in Docker

docker-compose -f docker-compose-cassandra.yml up

Start a cluster node

mvn compile exec:exec -Dapp.configfile="cluster-application.conf"

Start a endpoint node

mvn exec:exec -Dapp.configfile="endpoint-application.conf"

Running a cluster locally with Yugabyte

Start the ElasticSearch Sandbox

Elasticsearch developer sandbox

Start Yugabyte in Docker

docker-compose -f docker-compose-yugabyte.yml up

First time, create the tables

docker exec -i yb-tserver-n1 /home/yugabyte/bin/ysqlsh -h yb-tserver-n1 -t < https://raw.githubusercontent.com/akka/akka-persistence-r2dbc/main/ddl-scripts/create_tables_yugabyte.sql

Start a cluster node

mvn compile exec:exec -Dapp.configfile="cluster-application-yugabyte.conf"

Start a endpoint node

mvn exec:exec -Dapp.configfile="endpoint-application.conf"

akka-typed-distributed-state-blog-java's People

Contributors

michael-read avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.