{"id":19326049,"url":"https://github.com/jelastic-jps/glassfish","last_synced_at":"2025-04-22T20:32:21.337Z","repository":{"id":53577885,"uuid":"57923478","full_name":"jelastic-jps/glassfish","owner":"jelastic-jps","description":"GlassFish Cluster with Automatic Scaling","archived":false,"fork":false,"pushed_at":"2021-03-23T12:31:20.000Z","size":259,"stargazers_count":5,"open_issues_count":0,"forks_count":12,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-02T04:01:39.518Z","etag":null,"topics":["auto-scaling","cluster","cluster-configuration","clustering","das","docker","docker-cluster","glassfish","glassfish-cluster","glassfish-server","haproxy","load-balancer","loadbalancing","scalability","worker-nodes"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jelastic-jps.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-05-02T21:47:04.000Z","updated_at":"2021-06-29T01:27:11.000Z","dependencies_parsed_at":"2022-08-28T21:21:41.483Z","dependency_job_id":null,"html_url":"https://github.com/jelastic-jps/glassfish","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jelastic-jps%2Fglassfish","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jelastic-jps%2Fglassfish/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jelastic-jps%2Fglassfish/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jelastic-jps%2Fglassfish/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jelastic-jps","download_url":"https://codeload.github.com/jelastic-jps/glassfish/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250318904,"owners_count":21411009,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["auto-scaling","cluster","cluster-configuration","clustering","das","docker","docker-cluster","glassfish","glassfish-cluster","glassfish-server","haproxy","load-balancer","loadbalancing","scalability","worker-nodes"],"created_at":"2024-11-10T02:12:18.235Z","updated_at":"2025-04-22T20:32:21.010Z","avatar_url":"https://github.com/jelastic-jps.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GlassFish with Automatic Clustering and Scaling\n\n\nJava EE often looks like a black box when it comes to deployment, clustering and scaling. You can get rid of this complexity using pre-configured clusters in domain mode with automatically scaled instances and standard flows for zero code change deployment. The default topology and scaling triggers can be easily adjusted.\n\n[Follow the link](https://jelastic.com/blog/glassfish-payara-auto-clustering-cloud-hosting/) to get more details on how clustering works and high availability is configured, as well as how to test this implementation.\n\n\n## GlassFish Cluster Topology\n\n\nDue to the native GlassFish clustering architecture, its topology includes three node groups:\n- **_Load Balancer(LB)_** - intended to process all incoming requests, sent to the cluster, and distribute them between worker nodes\n- **_Worker Node(W)_** - application server to handle the required app and web services\n- **_Domain Administration Server (DAS)_** - management instance which performs centralized control of the cluster nodes and configure communication between them via SSH \n\n\u003cp align=\"left\"\u003e \n\u003cimg src=\"glassfish-cluster/img/auto-clustering-readme.svg\" width=\"300\"\u003e\n\u003c/p\u003e\n\nCurrent implementation of Jelastic scalable GlassFish cluster is built on top of Docker containers. This ensures additional reliability through operating each node as an isolated instance and enables simple [container update](https://docs.jelastic.com/docker-update) procedure. \n\nUpon deploying this solution, you’ll get the already configured and ready-to-work GlassFish cluster inside the Cloud, that consists of DAS node, 2 GF application servers (workers), NGINX load balancer and is secured by [Jelastic SSL](https://docs.jelastic.com/jelastic-ssl). \n\nFor the detailed guidance on this JPS package installation and management, refer to the [GlassFish Cluster with Automatic Load Balancing](https://jelastic.com/blog/how-to-configure-glassfish-cluster-with-automatic-load-balancing/) page.\n\n\n## Automatic Scaling and Clustering Configuration \n\n\nGlassFish cluster package automatically adjusts a number of Worker nodes based on current cluster load (up to 10 instances per layer) according to the following conditions:\n- +1 node if RAM usage \u003e 70% for at least 1 minute\n- -1 node if RAM usage \u003c 40% for at least 10 minute\n\n\nThe appropriate modifications are automatically applied to _DAS_ and _Load Balancer_ configs, and multiple application server instances are automatically interconnected that implements the commonly used clustering configuration.\n\n\nIn case you’d like to change the conditions of automatic nodes’ scaling, refer to the appropriate triggers parameters within the [Automatic Horizontal Scaling](https://docs.jelastic.com/automatic-horizontal-scaling) settings section.\n\n\n## Cloud Hosting Deployment\n\n\n### Public Cloud\n\n\nTo instantly host your own scalable GF cluster, click the **GET IT HOSTED** button below. Within the opened frame, specify your email address, choose one of the [Jelastic Public Cloud providers](https://jelastic.cloud/) and press **Install**.\n\n\n[![Deploy](https://github.com/jelastic-jps/git-push-deploy/raw/master/images/deploy-to-jelastic.png)](https://jelastic.com/install-application/?manifest=https://raw.githubusercontent.com/jelastic-jps/glassfish/master/manifest.jps\u0026keys=app.jelastic.eapps.com;app.jelastic.saveincloud.net;app.mircloud.host;app.j.layershift.co.uk;app.milesweb.cloud;app.paas.massivegrid.com)\n\n\n### Private Cloud\n\nIf working within Jelastic Private Cloud, copy link of the [**_manifest.jps_**](https://raw.githubusercontent.com/jelastic-jps/glassfish/master/manifest.jps) file above and [import](https://docs.jelastic.com/environment-import) it to the required Jelastic installation. \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjelastic-jps%2Fglassfish","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjelastic-jps%2Fglassfish","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjelastic-jps%2Fglassfish/lists"}