Setting up a cluster is important when developing enterprise software and deploying them in production environments. Distributing deployment artifacts & related metadata to all nodes in a homogeneous cluster is a typical requirement for a clustered deployment of any middleware platform. In such a cluster, all nodes should contain the deployed artifacts as well as the related metadata.
The Deployment Synchronizer (DepSync) is the mechanism used in the WSO2 platform for distributing these artifacts and metadata across all nodes in the cluster. It provides the ability to synchronize data between the worker nodes of a product cluster. When used with the WSO2 Application Server, or the WSO2 ESB, you can synchronize your deployable artifacts like web services, and web applications etc. across the cluster nodes. In addition, with the latest WSO2 Carbon 4 release, WSO2 provides the ability to synchronize service metadata which includes service policies, transports, and service-type specific data. Now you only have to deploy and configure services in one node - called the manager. Then, DepSync will replicate those to other nodes - workers.
In this presentation, we present how this is done in the WSO2 Cloud-enabled middleware platform. Typical deployment artifacts will include webapps, JAXWS/JAXRS apps, data services, proxy services, and BPEL processes . The WSO2 platform also natively supports multi-tenancy. Tenants & tenant artifacts are loaded on demand. We will demonstrate how DepSync works efficiently with multi-tenancy.
Kasun Gajasinghe did the demonstration section of this webinar presentation while Pradeep Fernando provided technical aspects of Deployment Synchronizer
Microservices architecture (MSA) is a trending topic and many organizations today are leaning towards MSA given its potential advantages. In this session, we will explore some core concepts in MSA and also focus on aspects that are important when building an MSA solution. We will also introduce WSO2 Microservices Server (MSS), which provides the necessary framework and tooling for building an MSA solution; we’ll explain how WSO2 MSS provides the necessary core features for building an MSA as well as compare this product with other leading Java microservices frameworks available.
Building Services with WSO2 Microservices framework for Java and WSO2 ASKasun Gajasinghe
In this WSO2Con tutorial session, we go through how to create microservices with the WSO2 MSF4J library, and how to create web services with WSO2 Application Server.
Introduction to WSO2 Microservices Framework for Java (MSF4J) 2.0Afkham Azeez
WSO2 Microservices Framework for Java (MSF4J) is a lightweight high performance framework for developing & running microservices.
WSO2 MSF4J is one of the highest performing lightweight Java microservices frameworks. The following graphs show the throughput, memory consumption & latency characteristics of MSF4J against other microservices frameworks.
This slide deck introduces WSO2 Microservices Framework for Java 2.0. We will look at the key differentiators as well as the key features in WSO2 MSF4J.
Adjusting carbon topology to match high availability scenario requirements Afkham Azeez
High availability is a core enterprise requirement in any modern deployment. This ensures that systems can continue to function correctly even when there are failures. Ideally such systems should continue to function correctly and provide services while there are several failures.
Another important aspect is that system deployment architectures should ensure there are no single points of failure. Redundancy is the most widely used technique in designing such fault tolerant systems. This includes data redundancy, information redundancy, time redundancy etc. However, redundancy always comes at a cost and hence there is a cost vs. availability trade-off. Certain availability techniques may also result in performance overheads.
In this webinar, Afkham Azeez, Director of Architecture, will take a look at how these techniques are employed in the WSO2 platform to achieve high availability and fault tolerance, while taking the cost and performance factors into consideration. We will also look at some key aspects which will enable enterprise architects to make deployment topology decisions based on availability requirements at an optimum cost.
WSO2 Microservices Framework for Java - Product OverviewWSO2
WSO2 MSF4J is a lightweight, fast runtime and an annotation-based programming model, to create microservices in Java with container-based deployment in mind.
WSO2Con EU 2016: Creating Microservices with WSO2 Microservices Framework fo...WSO2
Microservices architecture (MSA) is a trending topic and many organizations today are leaning towards it given its potential advantages. There are a number of frameworks available for microservices development. In this session, Sameera will introduce the Java framework for microservices development, WSO2 Microservices Framework for Java (WSO2 MSF4J). WSO2 MSF4J provides the necessary framework and tooling for building an MSA solution. He will introduce some core features of WSO2 MSF4J including the programming model, tooling & analytics.
Microservices architecture (MSA) is a trending topic and many organizations today are leaning towards MSA given its potential advantages. In this session, we will explore some core concepts in MSA and also focus on aspects that are important when building an MSA solution. We will also introduce WSO2 Microservices Server (MSS), which provides the necessary framework and tooling for building an MSA solution; we’ll explain how WSO2 MSS provides the necessary core features for building an MSA as well as compare this product with other leading Java microservices frameworks available.
Building Services with WSO2 Microservices framework for Java and WSO2 ASKasun Gajasinghe
In this WSO2Con tutorial session, we go through how to create microservices with the WSO2 MSF4J library, and how to create web services with WSO2 Application Server.
Introduction to WSO2 Microservices Framework for Java (MSF4J) 2.0Afkham Azeez
WSO2 Microservices Framework for Java (MSF4J) is a lightweight high performance framework for developing & running microservices.
WSO2 MSF4J is one of the highest performing lightweight Java microservices frameworks. The following graphs show the throughput, memory consumption & latency characteristics of MSF4J against other microservices frameworks.
This slide deck introduces WSO2 Microservices Framework for Java 2.0. We will look at the key differentiators as well as the key features in WSO2 MSF4J.
Adjusting carbon topology to match high availability scenario requirements Afkham Azeez
High availability is a core enterprise requirement in any modern deployment. This ensures that systems can continue to function correctly even when there are failures. Ideally such systems should continue to function correctly and provide services while there are several failures.
Another important aspect is that system deployment architectures should ensure there are no single points of failure. Redundancy is the most widely used technique in designing such fault tolerant systems. This includes data redundancy, information redundancy, time redundancy etc. However, redundancy always comes at a cost and hence there is a cost vs. availability trade-off. Certain availability techniques may also result in performance overheads.
In this webinar, Afkham Azeez, Director of Architecture, will take a look at how these techniques are employed in the WSO2 platform to achieve high availability and fault tolerance, while taking the cost and performance factors into consideration. We will also look at some key aspects which will enable enterprise architects to make deployment topology decisions based on availability requirements at an optimum cost.
WSO2 Microservices Framework for Java - Product OverviewWSO2
WSO2 MSF4J is a lightweight, fast runtime and an annotation-based programming model, to create microservices in Java with container-based deployment in mind.
WSO2Con EU 2016: Creating Microservices with WSO2 Microservices Framework fo...WSO2
Microservices architecture (MSA) is a trending topic and many organizations today are leaning towards it given its potential advantages. There are a number of frameworks available for microservices development. In this session, Sameera will introduce the Java framework for microservices development, WSO2 Microservices Framework for Java (WSO2 MSF4J). WSO2 MSF4J provides the necessary framework and tooling for building an MSA solution. He will introduce some core features of WSO2 MSF4J including the programming model, tooling & analytics.
Serviços reativos foram definidos pelo Manifesto Reativo. Eles são desenvolvidos para serem mais flexíveis, fracamente acoplados, escaláveis e também qualificados a partir dos quatro princípios: responsivo, resiliente, elástico e direcionados a mensagens. A plataforma Java e Java EE oferecem uma ótima estrutura e bibliotecas para implementarem serviços reativos e transformá-los em uma arquitetura de micro-serviços resiliente.
Play 2 Presentation which I did for xp-conference 2015, Bangalore. The approach taken to learn the framework was TDD approach i.e. write test cases to learn the features of the Play framework
Deploying Elastic Java EE Microservices in the Cloud with DockerPayara
JavaOne 2015 tutorial describing how to build and deploy a micro services to Amazon Elastic Beanstalk with Docker and Payara Micro. All code is on GitHub
Reactive services were defined by the Reactive Manifesto. They are built to be more flexible, loosely-coupled and scalable and also they are qualified based on the four principles: responsive, resilient, elastic and message driven. Java and the Java EE platform offers a pretty good structure and libraries to implement reactive services and transform it in a microservices architecture designed.
Java Day 2021, WeAreDevelopers, 2021-09-01, online: Moritz Kammerer (@Moritz Kammerer, Expert Software Engineer at QAware).
== Please download slides in case they are blurred! ===
In this talk, we took a look at how Microservices can be developed with Micronaut. Have a look if it has kept its promises.
How Class Data Sharing Can Speed up Your Jakarta EE Application StartupRudy De Busscher
Java Byte code is OS independent, which means that your application's startup takes more time than a native image. Using the Class Data Sharing functionality introduced in more recent versions of the JVM, you can prepare your application so that it will load very fast.
In this presentation, I'll go into more detail what Class Data Sharing is and the differences between the OpenJDK and OpenJ9 versions. With some Jakarta EE demo applications, you will see gains that you can achieve and reduce memory footprint a lot in Docker containers by sharing memory.
Check out the talk to the slides:
http://bit.ly/1ReY8uJ
Talk Abstract:
Using Swarm, you can select “just enough app server” to support each of your microservices.
In this session, we’ll outline how WildFly Swarm works and get you started writing your first microservices using Java EE technologies you’re already familiar with.
You’ll learn how to setup your build system (Maven, Gradle, or your IDE of choice) to run and test WildFly Swarm-based services and produce runnable jars. We will walk from the simple case of wrapping a normal WAR application to the more advanced case of configuring the container using your own main(…) method.
"It’s open source. It’s highly opinionated.
Build greenfield microservices and decompose your Java EE monolith like a boss."
Lightbend (formerly Typesafe) has come up with their own framework, Lagom, for architecting microservices based systems. With Lagom, Lightbend wants to take up the competition with the Spring Cloud stack.
Lagom is built upon Akka and Play and focuses on reactive and message-driven APIs, distributed persistence with Event Sourcing and CQRS and high developer productivity. On the 10th of March a first MVP version has been released with a Java API, the Scala API is being worked on.
This workshop acts as an introduction to Lagom during which we will have a look at developing and deploying Lagom microservices.
As a warm-up, you could check out the newest blogpost on the JWorks Tech Blog: https://ordina-jworks.github.io/microservices/2016/04/22/Lagom-First-Impressions-and-Initial-Comparison-to-Spring-Cloud.html.
Github repo with presentation: https://github.com/yannickdeturck/lagom-shop
Blogpost Lagom: First Impressions and Initial Comparison to Spring Cloud: https://ordina-jworks.github.io/microservices/2016/04/22/Lagom-First-Impressions-and-Initial-Comparison-to-Spring-Cloud.html
Podcast Lightbend Podcast Ep. 09: Andreas Evers test drives Lagom in comparison with Spring Cloud: https://www.lightbend.com/blog/lightbend-podcast-ep-09-andreas-evers-test-drives-lagom-in-comparison-with-spring-cloud
Stanco delle solite sessioni introduttive o generiche su blazor? Bene, questa è la serata che fa per te.
In questa sessione ho raccolto una serie di argomenti, problematiche e tips derivanti da due anni di utilizzo di Blazor (praticamente dal suo lancio). Casi reali affrontanti e risolti.
E come nel (ormai) classico format online di XE, ci sarà ampio spazio per le domande ed il confronto.
Building microservices with vert.x 3.0Agraj Mangal
Building Microservices is considered fad these days & with Vert.x 3.0 toolkit, it has never been simpler to build a Microservice in your favorite language
[WSO2Con EU 2017] Writing Microservices Using MSF4JWSO2
Microservice architecture (MSA) is fast becoming a popular pattern in today's agile enterprises. Its iterative architectural approach and development methodologies are attracting the interest of architects and developers who need to ensure continuous, agile delivery and flexible deployment of complex, service-oriented applications. In this session, we take a look at how Microservices Framework for Java can be used to develop and deploy MSA solutions.
Serviços reativos foram definidos pelo Manifesto Reativo. Eles são desenvolvidos para serem mais flexíveis, fracamente acoplados, escaláveis e também qualificados a partir dos quatro princípios: responsivo, resiliente, elástico e direcionados a mensagens. A plataforma Java e Java EE oferecem uma ótima estrutura e bibliotecas para implementarem serviços reativos e transformá-los em uma arquitetura de micro-serviços resiliente.
Play 2 Presentation which I did for xp-conference 2015, Bangalore. The approach taken to learn the framework was TDD approach i.e. write test cases to learn the features of the Play framework
Deploying Elastic Java EE Microservices in the Cloud with DockerPayara
JavaOne 2015 tutorial describing how to build and deploy a micro services to Amazon Elastic Beanstalk with Docker and Payara Micro. All code is on GitHub
Reactive services were defined by the Reactive Manifesto. They are built to be more flexible, loosely-coupled and scalable and also they are qualified based on the four principles: responsive, resilient, elastic and message driven. Java and the Java EE platform offers a pretty good structure and libraries to implement reactive services and transform it in a microservices architecture designed.
Java Day 2021, WeAreDevelopers, 2021-09-01, online: Moritz Kammerer (@Moritz Kammerer, Expert Software Engineer at QAware).
== Please download slides in case they are blurred! ===
In this talk, we took a look at how Microservices can be developed with Micronaut. Have a look if it has kept its promises.
How Class Data Sharing Can Speed up Your Jakarta EE Application StartupRudy De Busscher
Java Byte code is OS independent, which means that your application's startup takes more time than a native image. Using the Class Data Sharing functionality introduced in more recent versions of the JVM, you can prepare your application so that it will load very fast.
In this presentation, I'll go into more detail what Class Data Sharing is and the differences between the OpenJDK and OpenJ9 versions. With some Jakarta EE demo applications, you will see gains that you can achieve and reduce memory footprint a lot in Docker containers by sharing memory.
Check out the talk to the slides:
http://bit.ly/1ReY8uJ
Talk Abstract:
Using Swarm, you can select “just enough app server” to support each of your microservices.
In this session, we’ll outline how WildFly Swarm works and get you started writing your first microservices using Java EE technologies you’re already familiar with.
You’ll learn how to setup your build system (Maven, Gradle, or your IDE of choice) to run and test WildFly Swarm-based services and produce runnable jars. We will walk from the simple case of wrapping a normal WAR application to the more advanced case of configuring the container using your own main(…) method.
"It’s open source. It’s highly opinionated.
Build greenfield microservices and decompose your Java EE monolith like a boss."
Lightbend (formerly Typesafe) has come up with their own framework, Lagom, for architecting microservices based systems. With Lagom, Lightbend wants to take up the competition with the Spring Cloud stack.
Lagom is built upon Akka and Play and focuses on reactive and message-driven APIs, distributed persistence with Event Sourcing and CQRS and high developer productivity. On the 10th of March a first MVP version has been released with a Java API, the Scala API is being worked on.
This workshop acts as an introduction to Lagom during which we will have a look at developing and deploying Lagom microservices.
As a warm-up, you could check out the newest blogpost on the JWorks Tech Blog: https://ordina-jworks.github.io/microservices/2016/04/22/Lagom-First-Impressions-and-Initial-Comparison-to-Spring-Cloud.html.
Github repo with presentation: https://github.com/yannickdeturck/lagom-shop
Blogpost Lagom: First Impressions and Initial Comparison to Spring Cloud: https://ordina-jworks.github.io/microservices/2016/04/22/Lagom-First-Impressions-and-Initial-Comparison-to-Spring-Cloud.html
Podcast Lightbend Podcast Ep. 09: Andreas Evers test drives Lagom in comparison with Spring Cloud: https://www.lightbend.com/blog/lightbend-podcast-ep-09-andreas-evers-test-drives-lagom-in-comparison-with-spring-cloud
Stanco delle solite sessioni introduttive o generiche su blazor? Bene, questa è la serata che fa per te.
In questa sessione ho raccolto una serie di argomenti, problematiche e tips derivanti da due anni di utilizzo di Blazor (praticamente dal suo lancio). Casi reali affrontanti e risolti.
E come nel (ormai) classico format online di XE, ci sarà ampio spazio per le domande ed il confronto.
Building microservices with vert.x 3.0Agraj Mangal
Building Microservices is considered fad these days & with Vert.x 3.0 toolkit, it has never been simpler to build a Microservice in your favorite language
[WSO2Con EU 2017] Writing Microservices Using MSF4JWSO2
Microservice architecture (MSA) is fast becoming a popular pattern in today's agile enterprises. Its iterative architectural approach and development methodologies are attracting the interest of architects and developers who need to ensure continuous, agile delivery and flexible deployment of complex, service-oriented applications. In this session, we take a look at how Microservices Framework for Java can be used to develop and deploy MSA solutions.
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...Amazon Web Services
Some of the best businesses today are deploying their code dozens of times a day. How? By making heavy use of automation, smart tools, and repeatable patterns to get process out of the way and keep the workflow moving. Come to this session to learn how you can do this too, using services such as AWS OpsWorks, AWS CloudFormation, Amazon Simple Workflow Service, and other tools. We'll discuss a number of different deployment patterns, and what aspects you need to focus on when working toward deployment automation yourself.
A presentation on how applying Cloud Architecture Patterns using Docker Swarm as orchestrator is possible to create reliable, resilient and scalable FIWARE platforms.
AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...Amazon Web Services
In this series of 15-minute technical flash talks you will learn directly from Amazon CloudFront engineers and their best practices on debugging caching issues, measuring performance using Real User Monitoring (RUM), and stopping malicious viewers using CloudFront and AWS WAF.
In this talk, Damien describes the infrastructure Nuxeo has built around Docker containers, which is mainly based on CoreOS and Docker, and how it provides a way to generically run applications not only on a single host, but across a whole cluster of hosts. The resulting architecture can be used to implement a PaaS approach for any application.
Building Services with WSO2 Microservices framework for Java and WSO2 ASKasun Gajasinghe
In this WSO2Con tutorial session, we go through how to create microservices with the WSO2 MSF4J library, and how to create web services with WSO2 Application Server.
This presentation provides a comparison of types of caches highlighting the use of distributed caching. This is followed by an introduction to JCache API. Code samples are at [2].
This is the presentation I did at Java Colombo JUG. [2]
[1] https://github.com/kasunbg/jcache-samples
[2] http://www.meetup.com/java-colombo/events/223811796/
Scheduler Activations - Effective Kernel Support for the User-Level Managemen...Kasun Gajasinghe
Presentation slides presented by Kasun Gajasinghe and Nisansa de Silva at Dept. of Computer Science & Engineering, University of Moratuwa. Slides are for the paper titled “Scheduler Activations - Effective Kernel Support for the User-Level Management of Parallelism” by Thomas E. Anderson et.al.
[WSO2] Deployment Synchronizer for Deployment Artifact Synchronization Between the WSO2 Cluster Nodes
1. DepSync for Deployment Artifact
Synchronization Between the Cluster
Nodes
Pradeep Fernando Kasun Gajasinghe
Senior Software Engineer Software Engineer
pradeep@wso2.com kasung@wso2.com
2. Agenda
• The need for deployment synchronization
• Brief introduction to WSO2 product clusters
• Demo - Complete Application server cluster with DepSync +
fronted by WSO2 ELB
3. Why Deployment Synchronization?
• Artifact distribution and deployment should be transparent to
the end-users
• Manual artifact copying is acceptable for some extent in
standalone product clusters.
• Will that work in an elastically scaling cloud environment ??
4. Typical WSO2 Product Cluster
• Manager and Worker nodes.
• Manager is for administration purposes - artifact upload,
applying security,etc
• Worker nodes responsible for serving requests.
• The setup is only valid for products that support artifact
deployment:
• Application Server
• Enterprise Service Bus
• etc
6. Why Management & Worker Node Separation
Crash Course
• Proper separation of concerns - management nodes
specialize in management of the setup while worker
nodes specialize in serving requests to deployment
artifacts
• Only management nodes are authorized to add new
artifacts into the system or make configuration changes
• Worker nodes can only deploy artifacts & read
configuration
• Lower memory foot in the worker nodes because the
management console related OSGi bundles are not loaded
• Improved security - management nodes can be behind the
internal firewall & be exposed to clients running within
the organization only, while worker nodes can be exposed
to external clients.
7. Deployment Synchronization
• Distributing deployment artifacts & related metadata to
all nodes in a homogeneous cluster is a typical
requirement for a clustered deployment of any
middleware platform
• Provides a consistent, and reliable cluster
• Automated synchronization without need of any user
interaction
• Artifact Metadata contains service policies, and other
important service configuration details
8. Deployment Synchronizer
• WSO2 products provides this through Deployment
Synchronizer (DepSync) mechanism
• A new feature addition to WSO2 products
• Synchronization done using a central repository, usually,
a SVN server
• We call it SVN-based Deployment Synchronizer
• Extensible - may be a Git based one in the future.
10. What it synchronizes?
• Web Applications
• JAXWS / JAXRS Applications
• Proxy Services
• Data Services
• BPEL
• Basically all the deployable artifacts in axis2 repo of
Carbon products (ex. repository/deployment/server)
• Service Metadata – (details on policies, transports etc.)
12. Multicast vs. WKA
Multicast
• Cluster is going to be set up in a network where
multicasting is allowed
Well-Known Address
• Cloud based deployment
• Members are distributed across datacenters & regions
• Multicasting blocked
13. DepSync and Multi-Tenancy
• DepSync synchronizes the artifacts among the product
cluster in a tenant aware manner.
• Ghost deployment is supported in the depsync aware
manner in order reduce the initial deployment and
request serving latencies.
16. Process
1. Set up the Environment for Deployment Synchronizer
2. Configure Load Balancer
3. Configure Management Node - Application Server
4. Configure Worker Node - Application Server
17. PART 1
Set up the Environment for
Deployment Synchronizer
18. Set up the Environment for Deployment
Synchronizer
• We will setup the SVN-based DepSync
• For this, you need the following
o svnkit osgi bundle
o TortoiseSVN / Silk SVN (Windows), Subversion
command line package(Unix) -optional
19. Set up the Environment for Deployment
Synchronizer
• Download svnkit bundle from here - http://goo.gl/CVR2F
• If you will be using a remote svn location for depsync, you may
skip the creation of local svn repository.
• To create a local svn repository,
o if you have svn command line client, enter following
command.
svnadmin create C:demosvnrepo
o if you are using TortoiseSVN, then first create a folder at
any place you like. Say - C://demo/svnrepo . Now go in to
that folder, right-click -> TortoiseSVN -> "Create Repsitory
here"
o Now, the SVN URL for this location is -
file:///C:/demo/svnrepo
20. Set up the Environment for Deployment
Synchronizer
• We will use this svn url when configuring the manager
and worker nodes. So, remember the location where you
created this. DepSync config will also be configured there.
23. Configure Load Balancer -
Loadbalancer.conf
• Download and extract wso2elb-2.0.0.zip
o Let the extracted directory be WSO2_LB_HOME
• Open loadbalancer.conf file in the
WSO2_LB_HOME/repository/conf
24. Configure Load Balancer
• Configuring the WSO2 Elastic Load Balancer is now
complete
• To start the server
o Go to the WSO2_LB_HOME/bin folder using command
line
o Enter the command `wso2server.bat`
o Notice the logs printed by TribesClusteringAgent
26. Configure Management Node
• Download and extract wso2as-5.0.0.zip
o Rename extracted directory to wso2as-5.0.0-manager
o Let the extracted directory be WSO2_AS_MGR_HOME
27. Configure Management Node -
axis2.xml
• Enable clustering at axis2 level.
<clustering
class="org.apache.axis2.clustering.tribes.TribesClusteringAgent"
enable="true">
• Change the membershipScheme of clustering to wka (well-
known address)
<parameter name="membershipScheme">wka</parameter>
• Set the cluster domain. This must be the same which we
defined in loadbalancer.conf
<parameter name="domain">wso2.as.domain</parameter>
28. Configure Management Node -
axis2.xml
• Set localMemberHost
<parameter
name="localMemberHost">mgt.appserver.wso2.com</parameter>
• Set localMemberPort
<parameter name="localMemberPort">4250</parameter>
• Add a new property named "subDomain"and set it to
'mgt' inside the parameter "properties"
<parameter name="properties">
<property name="backendServerURL"
value="https://${hostName}:${httpsPort}/services/"/>
<property name="mgtConsoleURL" value="https://${hostName}:${httpsPort}/"/>
<property name="subDomain" value="mgt"/>
</parameter>
29. • Add load balancer as a well-known member.
o Use the IP/hostname and port defined in LB's
axis2.xml
<members>
<member>
<hostName>127.0.0.1</hostName>
<port>4000</port>
</member>
</members>
30. Configure Management Node –
catalina-server.xml
• Since the mgt node is fronted by an LB, we need to
configure
proxy ports associated with HTTP and HTTPS connecters.
o Defaults for http and https are 8280 and 8243
respectively.
<Connector protocol="org.apache.coyote.http11.Http11NioProtocol"
port="9763"
proxyPort="8280“
---
<Connector protocol="org.apache.coyote.http11.Http11NioProtocol"
port="9443“
proxyPort="8243“
---
31. Configure Management Node –
carbon.xml
• Set port offset to avoid port conflicts with other nodes
(LB).
<Offset>1</Offset>
• Update mgtHostName and HostName elements in
carbon.xml as shown below
<HostName>appserver.wso2.com</HostName><MgtHostName>mgt.appserver
.wso2.com</MgtHostName>
• Copy svnkit bundle to repository/components/dropins
32. Configure Management Node -
Deployment Synchronizer
• The deployment synchronizer config is in carbon.xml.
• Uncomment the DeploymentSynchronizer xml segment.
• Set AutoCommit to true.
• Set the SVNUrl
• No need to set username/password if you didn't set it for local
svn repo
<DeploymentSynchronizer>
<Enabled>true</Enabled>
<AutoCommit>true</AutoCommit>
<AutoCheckout>true</AutoCheckout>
<RepositoryType>svn</RepositoryType>
<SvnUrl>file:///C:/webinar-setup/demo/final/svnrepo</SvnUrl>
<SvnUser>username</SvnUser>
<SvnPassword>password</SvnPassword>
<SvnUrlAppendTenantId>true</SvnUrlAppendTenantId>
</DeploymentSynchronizer>
33. Configure Management Node
• Configuring the WSO2 Application Server is now complete
• To start the server
o Go to the WSO2_AS_MGR_HOME/bin folder using
command line
o Enter the command `wso2server.bat`
o Notice the logs printed by TribesClusteringAgent
and corresponding cluster joining logs in load
balancer.
• You can now login to management console via
https://mgt.appserver.wso2.com:8243/carbon/
• Notice that requests we sent to services (including WSDL)
will be directed to worker nodes.
36. Configure Worker Node
• We can use a copy of a management node, and convert it
to a worker node easily since it will have most of the
settings
• So, instead of using a fresh appserver copy, make a copy of
the management node we just created
• Rename the new folder as wso2as-5.0.0-worker
• Let this directory be WSO2_AS_WORKER_HOME
37. Configure Worker Node -
axis2.xml
• In addition to the settings we already have, do the
following.
• Set the localMemberPort to 4251
<parameter name="localMemberPort">4251</parameter>
• This node belongs to the "worker"subDomain, so, change
the property "subDomain" to worker (instead of mgt)
<parameter name="properties">
<property name="backendServerURL"
value="https://${hostName}:${httpsPort}/services/"/>
<property name="mgtConsoleURL"
value="https://${hostName}:${httpsPort}/"/>
<property name="subDomain" value="worker"/>
</parameter>
38. Configure Worker Node –
carbon.xml
• First set a new port offset
<Offset>2</Offset>
• Comment out/remove the mgtHostName configuration
• Set the AutoCommit property inside Deployment Synchronizer
to false. This MUST be done because the worker nodes of a
cluster should NOT commit (write) artifacts
<DeploymentSynchronizer>
<Enabled>true</Enabled>
<AutoCommit>false</AutoCommit>
<AutoCheckout>true</AutoCheckout>
<RepositoryType>svn</RepositoryType>
<SvnUrl>file:///C:/webinar-setup/demo/final/svnrepo</SvnUrl>
<SvnUser>username</SvnUser>
<SvnPassword>password</SvnPassword>
<SvnUrlAppendTenantId>true</SvnUrlAppendTenantId>
</DeploymentSynchronizer>
39. Configure Worker Node –
carbon.xml
•
• Now, it's time to start the server.
o NOTE: The workerNode system property must be set
when starting the worker nodes every time.
wso2server.bat -DworkerNode=true
40. Testing the cluster
There are many ways to test our cluster deployment. Let's
follow a simpler path.
• Log in to the management console of Application Server
management node
• Deploy a new Axis2 Web service (Go to Manage --> Axis2
Services --> Add --> AAR service)
• Once the service is deployed in the management node go
to the services list and click on Tryit
• Invoke the service