{"id":5358,"date":"2012-07-19T20:44:21","date_gmt":"2012-07-20T01:44:21","guid":{"rendered":"http:\/\/jianmingli.com\/wp\/?p=5358"},"modified":"2012-08-25T22:57:43","modified_gmt":"2012-08-26T03:57:43","slug":"1z0-102-introduction-to-clustering","status":"publish","type":"post","link":"https:\/\/jianmingli.com\/wp\/?p=5358","title":{"rendered":"Introduction to WebLogic 11g Clustering"},"content":{"rendered":"<div class='toc wptoc'>\n<h2>Contents<\/h2>\n<ol class='toc-odd level-1'>\n\t<li>\n\t\t<a href=\"#Desribe_a_WebLogic_Server_cluster\">Desribe a WebLogic Server cluster<\/a>\n\t\t<ol class='toc-even level-2'>\n\t\t\t<li>\n\t\t\t\t<a href=\"#What_is_a_Cluster\">What is a Cluster<\/a>\n\t\t\t<\/li>\n\t\t\t<li>\n\t\t\t\t<a href=\"#Benefits_of_Clustering\">Benefits of Clustering<\/a>\n\t\t\t<\/li>\n\t\t\t<li>\n\t\t\t\t<a href=\"#What_can_be_Clustered\">What can be Clustered<\/a>\n\t\t\t<\/li>\n\t\t\t<li>\n\t\t\t\t<a href=\"#Proxy_Server\">Proxy Server<\/a>\n\t\t\t<\/li>\n\t\t<\/ol>\n\t<li>\n\t\t<a href=\"#Compare_basic_to_multi-tier_cluster_architectures\">Compare basic to multi-tier cluster architectures<\/a>\n\t\t<ol class='toc-even level-2'>\n\t\t\t<li>\n\t\t\t\t<a href=\"#Basic_Cluster_Architecture\">Basic Cluster Architecture<\/a>\n\t\t\t<\/li>\n\t\t\t<li>\n\t\t\t\t<a href=\"#Basic_Cluster_Proxy_Architecture\">Basic Cluster Proxy Architecture<\/a>\n\t\t\t<\/li>\n\t\t\t<li>\n\t\t\t\t<a href=\"#Multitier_Cluster_Architecture\">Multitier Cluster Architecture<\/a>\n\t\t\t<\/li>\n\t\t\t<li>\n\t\t\t\t<a href=\"#Multitier_Cluster_Proxy_Architecture\">Multitier Cluster Proxy Architecture<\/a>\n\t\t\t<\/li>\n\t\t\t<li>\n\t\t\t\t<a href=\"#Proxy_Plug-ins\">Proxy Plug-ins<\/a>\n\t\t\t<\/li>\n\t\t\t<li>\n\t\t\t\t<a href=\"#HttpClusterServlet\">HttpClusterServlet<\/a>\n\t\t\t<\/li>\n\t\t<\/ol>\n\t<li>\n\t\t<a href=\"#Describe_cluster_communication_heartbeats_peer-to-peer\">Describe cluster communication (heartbeats, peer-to-peer)<\/a>\n\t<\/li>\n<\/ol>\n<\/ol>\n<\/div>\n<div class='wptoc-end'>&nbsp;<\/div>\n<p><< <a href=\"?p=5307\">Previous<\/a><\/p>\n<span id=\"Desribe_a_WebLogic_Server_cluster\"><h2>Desribe a WebLogic Server cluster<\/h2><\/span>\n<span id=\"What_is_a_Cluster\"><h3>What is a Cluster<\/h3><\/span>\n<p>* A cluster is a logical group of managed servers within a domain<br \/>\n&#8211; managed servers can reside on different machine<br \/>\n&#8211; a cluster can not span across more than one domain<br \/>\n* Provide failover and high availability for:<br \/>\n&#8211; whole servers<br \/>\n&#8211; web apps and services: relies on HTTP session state replication<br \/>\n&#8211; EJB apps: relies on replica-aware stubs, enabled in <em>weblogic-ejb-jar.xml<\/em><br \/>\n&#8211; JDBC resources<br \/>\n&#8211; JMS<br \/>\n* Is transparent to clients<\/p>\n<span id=\"Benefits_of_Clustering\"><h3>Benefits of Clustering<\/h3><\/span>\n<p>* Scalability: add more server instances to support higher load<br \/>\n* Load balancing: distribute work across members<br \/>\n* Application failover<br \/>\n* Availability<br \/>\n* Migration: for pinned services and components (e.g. JTA)<\/p>\n<span id=\"What_can_be_Clustered\"><h3>What can be Clustered<\/h3><\/span>\n<p>* Servlets<br \/>\n* JSP<br \/>\n* EJB<br \/>\n* RMI objects<br \/>\n* JMS destinations<br \/>\n* JDBC connections<\/p>\n<span id=\"Proxy_Server\"><h3>Proxy Server<\/h3><\/span>\n<p>* Software based:<br \/>\n&#8211; WebLogic servlet, i.e. <em>HTTPClusterServlet<\/em><br \/>\n&#8211; Web server plug in, e.g. <em>mod_wl_ohs<\/em><br \/>\n&#8211; third party application<br \/>\n* Hardware based, e.g. F5 Big IP<\/p>\n<span id=\"Compare_basic_to_multi-tier_cluster_architectures\"><h2>Compare basic to multi-tier cluster architectures<\/h2><\/span>\n<span id=\"Basic_Cluster_Architecture\"><h3>Basic Cluster Architecture<\/h3><\/span>\n<span id=\"\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2012\/07\/wls11gadmin_cluster_basic_arch.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2012\/07\/wls11gadmin_cluster_basic_arch-300x154.jpg\" alt=\"\" title=\"wls11gadmin_cluster_basic_arch\" width=\"300\" height=\"154\" class=\"aligncenter size-medium wp-image-5363\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2012\/07\/wls11gadmin_cluster_basic_arch-300x154.jpg 300w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2012\/07\/wls11gadmin_cluster_basic_arch.jpg 679w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/h6><\/span>\n<p>* Advantages:<br \/>\n&#8211; easy admin<br \/>\n&#8211; flexible load balancing<br \/>\n&#8211; robust security<br \/>\n* Disadvantages:<br \/>\n&#8211; EJB method calls not load balanced<\/p>\n<span id=\"Basic_Cluster_Proxy_Architecture\"><h3>Basic Cluster Proxy Architecture<\/h3><\/span>\n<p>* Static content is hosted on HTTP servers<\/p>\n<span id=\"_1\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2012\/07\/wls11gadmin_cluster_basic_proxy_arch.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2012\/07\/wls11gadmin_cluster_basic_proxy_arch-300x155.jpg\" alt=\"\" title=\"wls11gadmin_cluster_basic_proxy_arch\" width=\"300\" height=\"155\" class=\"aligncenter size-medium wp-image-5365\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2012\/07\/wls11gadmin_cluster_basic_proxy_arch-300x155.jpg 300w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2012\/07\/wls11gadmin_cluster_basic_proxy_arch.jpg 666w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/h6><\/span>\n<span id=\"Multitier_Cluster_Architecture\"><h3>Multitier Cluster Architecture<\/h3><\/span>\n<span id=\"_2\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2012\/07\/wls11gadmin_cluster_multitier_arch.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2012\/07\/wls11gadmin_cluster_multitier_arch-300x155.jpg\" alt=\"\" title=\"wls11gadmin_cluster_multitier_arch\" width=\"300\" height=\"155\" class=\"aligncenter size-medium wp-image-5364\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2012\/07\/wls11gadmin_cluster_multitier_arch-300x155.jpg 300w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2012\/07\/wls11gadmin_cluster_multitier_arch.jpg 672w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/h6><\/span>\n<p>* Advantages:<br \/>\n&#8211; improved load balancing (more options: presentation tier, business tier)<br \/>\n&#8211; fewer points of failure<br \/>\n&#8211; EJB method calls are now load balanced<br \/>\n&#8211; improved security options (different security policy for presentation tier and business tier)<br \/>\n* Disadvantages:<br \/>\n&#8211; no collocation optimization (network traffic between presentation tier and business tier)<br \/>\n&#8211; higher cost<br \/>\n&#8211; more configuration complexity<\/p>\n<span id=\"Multitier_Cluster_Proxy_Architecture\"><h3>Multitier Cluster Proxy Architecture<\/h3><\/span>\n<p>* Static content is hosted on HTTP servers<\/p>\n<span id=\"_3\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2012\/07\/wls11gadmin_cluster_multitier_proxy_arch.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2012\/07\/wls11gadmin_cluster_multitier_proxy_arch-300x150.jpg\" alt=\"\" title=\"wls11gadmin_cluster_multitier_proxy_arch\" width=\"300\" height=\"150\" class=\"aligncenter size-medium wp-image-5366\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2012\/07\/wls11gadmin_cluster_multitier_proxy_arch-300x150.jpg 300w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2012\/07\/wls11gadmin_cluster_multitier_proxy_arch.jpg 684w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/h6><\/span>\n<span id=\"Proxy_Plug-ins\"><h3>Proxy Plug-ins<\/h3><\/span>\n<p>* Delegates dynamic content requests to WLS servers<br \/>\n* Uses round robin<br \/>\n* Based on cookie or URL rewrite<br \/>\n* OHS uses <em>mod_wl_ohs<\/em> as default proxy plug-in<\/p>\n<span id=\"_4\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2012\/07\/wls11gadmin_cluster_proxy_plugin.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2012\/07\/wls11gadmin_cluster_proxy_plugin-300x69.jpg\" alt=\"\" title=\"wls11gadmin_cluster_proxy_plugin\" width=\"300\" height=\"69\" class=\"aligncenter size-medium wp-image-5368\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2012\/07\/wls11gadmin_cluster_proxy_plugin-300x69.jpg 300w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2012\/07\/wls11gadmin_cluster_proxy_plugin.jpg 638w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/h6><\/span>\n<span id=\"HttpClusterServlet\"><h3>HttpClusterServlet<\/h3><\/span>\n<span id=\"_5\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2012\/07\/wls11gadmin_cluster_HttpClusterServlet.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2012\/07\/wls11gadmin_cluster_HttpClusterServlet-300x175.jpg\" alt=\"\" title=\"wls11gadmin_cluster_HttpClusterServlet\" width=\"300\" height=\"175\" class=\"aligncenter size-medium wp-image-5369\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2012\/07\/wls11gadmin_cluster_HttpClusterServlet-300x175.jpg 300w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2012\/07\/wls11gadmin_cluster_HttpClusterServlet.jpg 701w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/h6><\/span>\n<span id=\"Describe_cluster_communication_heartbeats_peer-to-peer\"><h2>Describe cluster communication (heartbeats, peer-to-peer)<\/h2><\/span>\n<p>* Peer to peer: uses IP sockets<br \/>\n&#8211; access pinned objects<br \/>\n&#8211; access clustered objects that reside on a remote server instance<br \/>\n&#8211; replicate HTTP session states and stateful session EJB states between primary and secondary server<br \/>\n* One to many: uses Unicast (preferred) or Multicast (deprecated)<br \/>\n&#8211; cluster wide JNDI updates<\/p>\n<span id=\"_6\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2012\/07\/wls11gadmin_cluster_jndi_update.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2012\/07\/wls11gadmin_cluster_jndi_update-300x148.jpg\" alt=\"\" title=\"wls11gadmin_cluster_jndi_update\" width=\"300\" height=\"148\" class=\"aligncenter size-medium wp-image-5371\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2012\/07\/wls11gadmin_cluster_jndi_update-300x148.jpg 300w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2012\/07\/wls11gadmin_cluster_jndi_update.jpg 654w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/h6><\/span>\n<p>&#8211; cluster heartbeats<\/p>\n<p><a href=\"?p=5375\">Next <\/a>>><\/p>\n<p>[mv_include id=&#8217;3268&#8242;]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>> [mv_include id=&#8217;3268&#8242;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[107,104],"tags":[588,180,157,167],"class_list":["post-5358","post","type-post","status-publish","format-standard","hentry","category-certification","category-weblogic11g","tag-11g","tag-1z0-102","tag-cluster","tag-wls"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p8cRUO-1oq","_links":{"self":[{"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=\/wp\/v2\/posts\/5358","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5358"}],"version-history":[{"count":8,"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=\/wp\/v2\/posts\/5358\/revisions"}],"predecessor-version":[{"id":5708,"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=\/wp\/v2\/posts\/5358\/revisions\/5708"}],"wp:attachment":[{"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5358"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5358"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5358"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}