Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Clustering Liferay

The prezi for my "Clustering Liferay" talk.
by

Milen Dyankov

on 26 November 2016

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Clustering Liferay

Clustering
Liferay

WEB PROXY
Encryption / SSL acceleration
Serve/cache static content
Compression
Logging and eavesdropping
Access control
LOAD BALANCER
SESSION REPLICATION
CACHE
INDEX
DATABASE
FILE STORAGE
Sticky Session !
Balancing algorithms (roundrobin, leastconn, ...)
Rule based balancing
The connection to the database is simply a JBDC connection or a JNDI resource.
Whether there exists a clustered database or not is abstracted from Liferay's point of view.
Any level of redundancy you have behind the JDBC connection is up to you and your DBA.
Shared storage:
NAS (NFS, SMB, AFS, ...)
SAN (Fibre Channel, iSCSI, ...)
Database storage!
(can work but performance may suffer)
Amazon S3 cloud storage
dl.store.impl=com.liferay.portlet.documentlibrary.store.S3Store
dl.store.impl=com.liferay.portlet.documentlibrary.store.AdvancedFileSystemStore
dl.store.impl=com.liferay.portlet.documentlibrary.store.CMISStore
dl.store.impl=com.liferay.portlet.documentlibrary.store.DBStore
dl.store.impl=com.liferay.portlet.documentlibrary.store.JCRStore
3rd party CMIS compatile storage!
(functionality limited to what CMIS provides )
Java Content Repository storage!
(can work but performance may suffer)
Do you really need it
Replicated sessions involve copying of session data over to all the servers in the cluster.
More servers - more additional overhead!
Documentum storage

(included in the Documentum Connector EE app which you can download and install from Liferay Marketplace.)
Central Cache / DATA grid
Not available in Liferay OOTB
Possible solutions:
"Unlimited" cache sizes
Slower
Impacted by network
performance
Everything in shared
Need to maintain
3rd party solutions
Coherence guaranteed
Fault tolerance
Cache replication
Fast
Can have both local
and replicated cache
Not influenced by
network performance
No 3rd party software
to maintain
Fast
Each JVM maintains
own copy of the data
Somewhat complex
configuration
Can have both local
and replicated cache
Not influenced by
network performance
No 3rd party software
to maintain
Fast
but can overflow to disk
Limited cache size
Coherence
Can have both local
and replicated cache
Not influenced by
network performance
No 3rd party software
to maintain
resolved via algorithms
but can overflow to disk
Limited cache size
Coherence
resolved via algorithms
but can overflow to disk
Limited cache size
Coherence
resolved via algorithms
Each JVM maintains
own copy of the data
Somewhat complex
configuration
Each JVM maintains
own copy of the data
Somewhat complex
configuration
Liferay uses Ehcache’s OOTB replication mechanisms (Multicast for discovery and RMI for replication)
cluster.link.enabled=true
If Ehcache Cluster plugin is installed this activates Cluster Link based cache replication
ehcache.cluster.link.replication.enabled=true
Will bind replication to the network interface used to
access the HOST provided.
cluster.link.autodetect.address=HOST(:PORT)
Provide configuration for the JGroups protocols.
cluster.link.channel.properties.control=
cluster.link.channel.properties.transport.0=
<?xml version="1.0" encoding="UTF-8"?>
<config>
<TCP
bind_port="7800"/>

<!-- Add Peer Discovery Protocol HERE -->

<MERGE2
max_interval="30000" min_interval="10000"/>
<FD_SOCK/>
<FD
timeout="10000" max_tries="5"/>
<VERIFY_SUSPECT
timeout="1500"/>
<pbcast.NAKACK
use_mcast_xmit="false"
retransmit_timeout="300,600,1200,2400,4800"
discard_delivered_msgs="true"/>
<UNICAST2
timeout="300,600,1200,2400,3600"/>
<pbcast.STABLE
stability_delay="1000"
desired_avg_gossip="50000"
max_bytes="400000"/>
<VIEW_SYNC
avg_send_interval="60000"/>
<pbcast.GMS
print_local_addr="true" join_timeout="60000" view_bundling="true"/>
<FC
max_credits="20000000"
min_threshold="0.10"/>
<FRAG2 frag_size="60000"/>
<pbcast.STATE_TRANSFER/>
<pbcast.FLUSH timeout="0"/>
</config>
Enable index replication on top of ClusterLink
cluster.link.enabled=true
lucene.replicate.write=true
OR
Index replication
Shared index
Pluggable Enterprise Search
OR
To be available in Liferay 7
milen.dyankov@liferay.com
http://www.liferay.com
@liferay
@milendyankov
<JDBC_PING
connection_url="DATABASE_CONNECTION_STRING"
connection_username="USER"
connection_password="PASS"
connection_driver="DATABASE_DRIVER"/>



<TCPPING timeout="3000"
initial_hosts="${jgroups.tcpping.initial_hosts:localhost[7800],localhost[7801]}"
port_range="1"
num_initial_members="3"/>



<S3_PING
secret_access_key="SECRETKEY"
access_key="ACCESSKEY"
location="BUCKETNAME"/>



<RACKSPACE_PING
apiKey="apiKey"
container="container"
region="region”
userName="userName"/>
Full transcript