{"id":12710,"date":"2019-08-03T06:00:59","date_gmt":"2019-08-03T04:00:59","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/alfresco-clustering-solr6\/"},"modified":"2019-08-03T06:00:59","modified_gmt":"2019-08-03T04:00:59","slug":"alfresco-clustering-solr6","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/alfresco-clustering-solr6\/","title":{"rendered":"Alfresco Clustering &#8211; Solr6"},"content":{"rendered":"<p>In previous blogs, I talked about some <a href=\"https:\/\/www.dbi-services.com\/blog\/alfresco-clustering-basis-architectures\/\" target=\"_blank\" rel=\"noopener noreferrer\">basis and presented some possible architectures for Alfresco<\/a>, I talked about the <a href=\"https:\/\/www.dbi-services.com\/blog\/alfresco-clustering-repository\/\" target=\"_blank\" rel=\"noopener noreferrer\">Clustering setup for the Alfresco Repository<\/a>, the <a href=\"https:\/\/www.dbi-services.com\/blog\/alfresco-clustering-share\/\" target=\"_blank\" rel=\"noopener noreferrer\">Alfresco Share<\/a> and for <a href=\"https:\/\/www.dbi-services.com\/blog\/alfresco-clustering-activemq\/\" target=\"_blank\" rel=\"noopener noreferrer\">ActiveMQ<\/a>. I also setup an <a href=\"https:\/\/www.dbi-services.com\/blog\/alfresco-clustering-apache-httpd-as-load-balancer\/\" target=\"_blank\" rel=\"noopener noreferrer\">Apache HTTPD as a Load Balancer<\/a>. In this one, I will talk about the last layer that I wanted to present, which is Solr and more particularly Solr6 (Alfresco Search Services) Sharding. I planned on writing a blog related to Solr Sharding Concepts &amp; Methods to explain what it brings concretely but unfortunately, it&#8217;s not ready yet. I will try to post it in the next few weeks, if I find the time.<\/p>\n<p>&nbsp;<\/p>\n<h3>I. Solr configuration modes<\/h3>\n<p>So, Solr supports\/provides three configuration modes:<\/p>\n<ul>\n<li>Master-Slave<\/li>\n<li>SolrCloud<\/li>\n<li>Standalone<\/li>\n<\/ul>\n<p><em><br \/>\nMaster-Slave<\/em>: It&#8217;s a first specific configuration mode which is pretty old. In this one, the Master node is the only to index the content and all the Slave nodes will replicate the Master&#8217;s index. This is a first step to provide a Clustering solution with Solr, and Alfresco supports it, but this solution has some important drawbacks. For example, and contrary to an ActiveMQ Master-Slave solution, Solr cannot change the Master. Therefore, if you lose your Master, there is no indexing happening anymore and you need to manually change the configuration file on each of the remaining nodes to specify a new Master and target all the remaining Slaves nodes to use the new Master. This isn&#8217;t what I will be talking about in this blog.<\/p>\n<p><em>SolrCloud<\/em>: It&#8217;s another specific configuration mode which is a little bit more recent, introduced in Solr4 I believe. SolrCloud is a true Clustering solution using a ZooKeeper Server. It adds an additional layer on top of a Standalone Solr which is slowing it down a little bit, especially on infrastructures with a huge demand on indexing. But at some points, when you start having dozens of Solr nodes, you need a central place to organize and configure them and that&#8217;s what SolrCloud is very good at. This solution provides Fault Tolerance as well as High Availability. I&#8217;m not sure if SolrCloud could be used by Alfresco because sure SolrCloud also has Shards and its behaviour is pretty similar to a Standalone Solr but it&#8217;s not entirely working in the same way. Maybe it&#8217;s possible, however I have never seen it so far. Might be the subject of some testing later&#8230; In any cases, using a SolrCloud for Alfresco might not be that useful because it&#8217;s really easier to setup a Master-Master Solr mixed with Solr Sharding for pretty much the same benefits. So, I won&#8217;t talk about SolrCloud here either.<\/p>\n<p>You guessed it, in this blog, I will only talk about Standalone Solr nodes and only using Shards. Alfresco supports Solr Shards only since the version 5.1. Before that, it wasn&#8217;t possible to use this feature, even if Solr4 provided it already. When using the two default cores (the famous &#8220;alfresco&#8221; &amp; &#8220;archive&#8221; cores), with all Alfresco versions (all supporting Solr&#8230; So since Alfresco 4), it is possible to have a High Available Solr installation by setting up two Solr Standalone nodes and putting a Load Balancer in front of it but in this case, there is no communication between the Solr nodes so, it&#8217;s only a HA solution, nothing more.<\/p>\n<p>&nbsp;<\/p>\n<p>In the architectures that I presented in the first blog of this series, if you remember the schema N\u00b05 (you probably don&#8217;t but no worry, I didn&#8217;t either), I put a link between the two Solr nodes and I mentioned the following related to this architecture:<br \/>\n<em>&#8220;N\u00b05: [&#8230;]. Between the two Solr nodes, I put a Clustering link, that\u2019s in case you are using Solr Sharding. If you are using the default cores (alfresco and archive), then there is no communication between distinct Solr nodes. If you are using Solr Sharding and if you want a HA architecture, then you will have the same Shards on both Solr nodes and in this case, there will be communications between the Solr nodes, it\u2019s not really a Clustering so to speak, that\u2019s how Solr Sharding is working but I still used the same representation.&#8221;<\/em><\/p>\n<p>&nbsp;<\/p>\n<h3>II. Solr Shards creation<\/h3>\n<p>As mentioned earlier in this blog, there are real Cluster solutions with Solr but in the case of Alfresco, because of the features that Alfresco adds like the Shard Registration, there is no real need to set up complex things like that. Having just a simple Master-Master installation of Solr6 with Sharding is already a very good and strong solution to provide Fault Tolerance, High Availability, Automatic Failover, Performance improvements, aso&#8230; So how can that be setup?<\/p>\n<p>First, you will need to install at least two Solr Standalone nodes. You can use exactly the same setup for all nodes and it&#8217;s also exactly the same setup to use the default cores or Solr Sharding so just do what you are always doing. For the Tracking, you will need to use the Load Balancer URL so it can target all Repository nodes, if there are several.<\/p>\n<p>If you created the default cores, you can remove them easily:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1; highlight: [1,5,16,20,24,35]\">[alfresco@solr_n1 ~]$ curl -v \"http:\/\/localhost:8983\/solr\/admin\/cores?action=removeCore&amp;storeRef=workspace:\/\/SpacesStore&amp;coreName=alfresco\"\n*   Trying 127.0.0.1...\n* TCP_NODELAY set\n* Connected to localhost (127.0.0.1) port 8983 (#0)\n&gt; GET \/solr\/admin\/cores?action=removeCore&amp;storeRef=workspace:\/\/SpacesStore&amp;coreName=alfresco HTTP\/1.1\n&gt; Host: localhost:8983\n&gt; User-Agent: curl\/7.58.0\n&gt; Accept: *\/*\n&gt;\n&lt; HTTP\/1.1 200 OK\n&lt; Content-Type: application\/xml; charset=UTF-8\n&lt; Content-Length: 150\n&lt;\n&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n&lt;response&gt;\n&lt;lst name=\"responseHeader\"&gt;&lt;int name=\"status\"&gt;0&lt;\/int&gt;&lt;int name=\"QTime\"&gt;524&lt;\/int&gt;&lt;\/lst&gt;\n&lt;\/response&gt;\n* Connection #0 to host localhost left intact\n[alfresco@solr_n1 ~]$\n[alfresco@solr_n1 ~]$ curl -v \"http:\/\/localhost:8983\/solr\/admin\/cores?action=removeCore&amp;storeRef=archive:\/\/SpacesStore&amp;coreName=archive\"\n*   Trying 127.0.0.1...\n* TCP_NODELAY set\n* Connected to localhost (127.0.0.1) port 8983 (#0)\n&gt; GET \/solr\/admin\/cores?action=removeCore&amp;storeRef=archive:\/\/SpacesStore&amp;coreName=archive HTTP\/1.1\n&gt; Host: localhost:8983\n&gt; User-Agent: curl\/7.58.0\n&gt; Accept: *\/*\n&gt;\n&lt; HTTP\/1.1 200 OK\n&lt; Content-Type: application\/xml; charset=UTF-8\n&lt; Content-Length: 150\n&lt;\n&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n&lt;response&gt;\n&lt;lst name=\"responseHeader\"&gt;&lt;int name=\"status\"&gt;0&lt;\/int&gt;&lt;int name=\"QTime\"&gt;485&lt;\/int&gt;&lt;\/lst&gt;\n&lt;\/response&gt;\n* Connection #0 to host localhost left intact\n[alfresco@solr_n1 ~]$<\/pre>\n<p>&nbsp;<\/p>\n<p>A status of &#8220;0&#8221; means that it&#8217;s successful.<\/p>\n<p>Once that&#8217;s done, you can then simply create the Shards. In this example, I will:<\/p>\n<ul>\n<li>use the DB_ID_RANGE method<\/li>\n<li>use two Solr nodes<\/li>\n<li>for workspace:\/\/SpacesStore: create 2 Shards out of a maximum of 10 with a range of 20M on maximum 10 Solr Servers<\/li>\n<li>for archive:\/\/SpacesStore: create 1 Shard out of a maximum of 4 with a range of 50M on maximum 10 Solr Servers<\/li>\n<\/ul>\n<p>Since I will use only two Solr nodes and since I want a High Availability on each of the Shards, I will need to have them all on both nodes. With a simple loop, it&#8217;s pretty easy to create all the Shards:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1; highlight: [2,3,4,5,20,31,35,41,52,56,59,60,61,75,86,90]\">[alfresco@solr_n1 ~]$ solr_host=localhost\n[alfresco@solr_n1 ~]$ solr_node_id=1\n[alfresco@solr_n1 ~]$ range=20000000\n[alfresco@solr_n1 ~]$ total_shards=10\n[alfresco@solr_n1 ~]$ total_nodes=10\n[alfresco@solr_n1 ~]$ for shard_id in `seq 0 1`; do\n&gt;   begin_range=$((${shard_id} * ${range}))\n&gt;   end_range=$(((${shard_id} + 1) * ${range}))\n&gt;   curl -v \"http:\/\/${solr_host}:8983\/solr\/admin\/cores?action=newCore&amp;storeRef=workspace:\/\/SpacesStore&amp;numShards=${total_shards}&amp;numNodes=${total_nodes}&amp;nodeInstance=${solr_node_id}&amp;template=rerank&amp;coreName=alfresco&amp;shardIds=${shard_id}&amp;property.shard.method=DB_ID_RANGE&amp;property.shard.range=${begin_range}-${end_range}&amp;property.shard.instance=${shard_id}\"\n&gt;   echo \"\"\n&gt;   echo \"  --&gt;  Range N\u00b0${shard_id} created with: ${begin_range}-${end_range}\"\n&gt;   echo \"\"\n&gt;   sleep 2\n&gt; done\n\n*   Trying 127.0.0.1...\n* TCP_NODELAY set\n* Connected to localhost (127.0.0.1) port 8983 (#0)\n&gt; GET \/solr\/admin\/cores?action=newCore&amp;storeRef=workspace:\/\/SpacesStore&amp;numShards=10&amp;numNodes=10&amp;nodeInstance=1&amp;template=rerank&amp;coreName=alfresco&amp;shardIds=0&amp;property.shard.method=DB_ID_RANGE&amp;property.shard.range=0-20000000&amp;property.shard.instance=0 HTTP\/1.1\n&gt; Host: localhost:8983\n&gt; User-Agent: curl\/7.58.0\n&gt; Accept: *\/*\n&gt;\n&lt; HTTP\/1.1 200 OK\n&lt; Content-Type: application\/xml; charset=UTF-8\n&lt; Content-Length: 182\n&lt;\n&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n&lt;response&gt;\n&lt;lst name=\"responseHeader\"&gt;&lt;int name=\"status\"&gt;0&lt;\/int&gt;&lt;int name=\"QTime\"&gt;254&lt;\/int&gt;&lt;\/lst&gt;&lt;str name=\"core\"&gt;alfresco-0&lt;\/str&gt;\n&lt;\/response&gt;\n* Connection #0 to host localhost left intact\n\n  --&gt;  Range N\u00b00 created with: 0-20000000\n\n\n*   Trying 127.0.0.1...\n* TCP_NODELAY set\n* Connected to localhost (127.0.0.1) port 8983 (#0)\n&gt; GET \/solr\/admin\/cores?action=newCore&amp;storeRef=workspace:\/\/SpacesStore&amp;numShards=10&amp;numNodes=10&amp;nodeInstance=1&amp;template=rerank&amp;coreName=alfresco&amp;shardIds=1&amp;property.shard.method=DB_ID_RANGE&amp;property.shard.range=20000000-40000000&amp;property.shard.instance=1 HTTP\/1.1\n&gt; Host: localhost:8983\n&gt; User-Agent: curl\/7.58.0\n&gt; Accept: *\/*\n&gt;\n&lt; HTTP\/1.1 200 OK\n&lt; Content-Type: application\/xml; charset=UTF-8\n&lt; Content-Length: 182\n&lt;\n&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n&lt;response&gt;\n&lt;lst name=\"responseHeader\"&gt;&lt;int name=\"status\"&gt;0&lt;\/int&gt;&lt;int name=\"QTime\"&gt;228&lt;\/int&gt;&lt;\/lst&gt;&lt;str name=\"core\"&gt;alfresco-1&lt;\/str&gt;\n&lt;\/response&gt;\n* Connection #0 to host localhost left intact\n\n  --&gt;  Range N\u00b01 created with: 20000000-40000000\n\n[alfresco@solr_n1 ~]$\n[alfresco@solr_n1 ~]$ range=50000000\n[alfresco@solr_n1 ~]$ total_shards=4\n[alfresco@solr_n1 ~]$ for shard_id in `seq 0 0`; do\n&gt;   begin_range=$((${shard_id} * ${range}))\n&gt;   end_range=$(((${shard_id} + 1) * ${range}))\n&gt;   curl -v \"http:\/\/${solr_host}:8983\/solr\/admin\/cores?action=newCore&amp;storeRef=archive:\/\/SpacesStore&amp;numShards=${total_shards}&amp;numNodes=${total_nodes}&amp;nodeInstance=${solr_node_id}&amp;template=rerank&amp;coreName=archive&amp;shardIds=${shard_id}&amp;property.shard.method=DB_ID_RANGE&amp;property.shard.range=${begin_range}-${end_range}&amp;property.shard.instance=${shard_id}\"\n&gt;   echo \"\"\n&gt;   echo \"  --&gt;  Range N\u00b0${shard_id} created with: ${begin_range}-${end_range}\"\n&gt;   echo \"\"\n&gt;   sleep 2\n&gt; done\n\n*   Trying 127.0.0.1...\n* TCP_NODELAY set\n* Connected to localhost (127.0.0.1) port 8983 (#0)\n&gt; GET \/solr\/admin\/cores?action=newCore&amp;storeRef=archive:\/\/SpacesStore&amp;numShards=4&amp;numNodes=10&amp;nodeInstance=1&amp;template=rerank&amp;coreName=archive&amp;shardIds=0&amp;property.shard.method=DB_ID_RANGE&amp;property.shard.range=0-50000000&amp;property.shard.instance=0 HTTP\/1.1\n&gt; Host: localhost:8983\n&gt; User-Agent: curl\/7.58.0\n&gt; Accept: *\/*\n&gt;\n&lt; HTTP\/1.1 200 OK\n&lt; Content-Type: application\/xml; charset=UTF-8\n&lt; Content-Length: 181\n&lt;\n&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n&lt;response&gt;\n&lt;lst name=\"responseHeader\"&gt;&lt;int name=\"status\"&gt;0&lt;\/int&gt;&lt;int name=\"QTime\"&gt;231&lt;\/int&gt;&lt;\/lst&gt;&lt;str name=\"core\"&gt;archive-0&lt;\/str&gt;\n&lt;\/response&gt;\n* Connection #0 to host localhost left intact\n\n--&gt;  Range N\u00b00 created with: 0-50000000\n\n[alfresco@solr_n1 ~]$<\/pre>\n<p>&nbsp;<\/p>\n<p>On the Solr node2, to create the same Shards (another Instance of each Shard) and therefore provide the expected setup, just re-execute the same commands but replacing <em>solr_node_id=1<\/em> with <em>solr_node_id=2<\/em>. That&#8217;s all there is to do on Solr side, just creating the Shards is sufficient. On the Alfresco side, configure the Shards registration to use the Dynamic mode:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">[alfresco@alf_n1 ~]$ cat $CATALINA_HOME\/shared\/classes\/alfresco-global.properties\n...\n# Solr Sharding\nsolr.useDynamicShardRegistration=true\nsearch.solrShardRegistry.purgeOnInit=true\nsearch.solrShardRegistry.shardInstanceTimeoutInSeconds=60\nsearch.solrShardRegistry.maxAllowedReplicaTxCountDifference=500\n...\n[alfresco@alf_n1 ~]$<\/pre>\n<p>&nbsp;<\/p>\n<p>After a quick restart, all the Shard&#8217;s Instances will register themselves to Alfresco and you should see that each Shard has its two Shard&#8217;s Instances. Thanks to the constant Tracking, Alfresco knows which Shard&#8217;s Instances are healthy (up-to-date) and which ones aren&#8217;t (either lagging behind or completely silent). When performing searches, Alfresco will make a request to any of the healthy Shard&#8217;s Instances. Solr will be aware of the healthy Shard&#8217;s Instances as well and it will start the distribution of the search request to all the Shards for the parallel query. This is the communication between the Solr nodes that I mentioned earlier: it&#8217;s not really Clustering but rather query distribution between all the healthy Shard&#8217;s Instances.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>Other posts of this series on Alfresco HA\/Clustering:<\/p>\n<ul>\n<li><a href=\"https:\/\/www.dbi-services.com\/blog\/alfresco-clustering-basis-architectures\/\" target=\"_blank\" rel=\"noopener noreferrer\">Basis &amp; Architectures<\/a><\/li>\n<li><a href=\"https:\/\/www.dbi-services.com\/blog\/alfresco-clustering-activemq\/\" target=\"_blank\" rel=\"noopener noreferrer\">ActiveMQ<\/a><\/li>\n<li><a href=\"https:\/\/www.dbi-services.com\/blog\/alfresco-clustering-apache-httpd-as-load-balancer\/\" target=\"_blank\" rel=\"noopener noreferrer\">Apache HTTPD as Load Balancer<\/a><\/li>\n<li><a href=\"https:\/\/www.dbi-services.com\/blog\/alfresco-clustering-share\/\" target=\"_blank\" rel=\"noopener noreferrer\">Share<\/a><\/li>\n<li>Solr6<\/li>\n<li><a href=\"https:\/\/www.dbi-services.com\/blog\/alfresco-clustering-repository\/\" target=\"_blank\" rel=\"noopener noreferrer\">Repository<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>In previous blogs, I talked about some basis and presented some possible architectures for Alfresco, I talked about the Clustering setup for the Alfresco Repository, the Alfresco Share and for ActiveMQ. I also setup an Apache HTTPD as a Load Balancer. In this one, I will talk about the last layer that I wanted to [&hellip;]<\/p>\n","protected":false},"author":20,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[197,525],"tags":[3169,704,38,84,917,1269,1654],"type_dbi":[],"class_list":["post-12710","post","type-post","status-publish","format-standard","hentry","category-application-integration-middleware","category-enterprise-content-management","tag-alfresco","tag-architecture","tag-cluster","tag-high-availability","tag-sharding","tag-solr","tag-solrcloud"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.5) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Alfresco Clustering - Solr6 - dbi Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbi-services.com\/blog\/alfresco-clustering-solr6\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Alfresco Clustering - Solr6\" \/>\n<meta property=\"og:description\" content=\"In previous blogs, I talked about some basis and presented some possible architectures for Alfresco, I talked about the Clustering setup for the Alfresco Repository, the Alfresco Share and for ActiveMQ. I also setup an Apache HTTPD as a Load Balancer. In this one, I will talk about the last layer that I wanted to [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/alfresco-clustering-solr6\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2019-08-03T04:00:59+00:00\" \/>\n<meta name=\"author\" content=\"Morgan Patou\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@MorganPatou\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Morgan Patou\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/alfresco-clustering-solr6\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/alfresco-clustering-solr6\\\/\"},\"author\":{\"name\":\"Morgan Patou\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/c4d05b25843a9bc2ab20415dae6bd2d8\"},\"headline\":\"Alfresco Clustering &#8211; Solr6\",\"datePublished\":\"2019-08-03T04:00:59+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/alfresco-clustering-solr6\\\/\"},\"wordCount\":1204,\"commentCount\":0,\"keywords\":[\"Alfresco\",\"architecture\",\"Cluster\",\"High availability\",\"Sharding\",\"Solr\",\"SolrCloud\"],\"articleSection\":[\"Application integration &amp; Middleware\",\"Enterprise content management\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/alfresco-clustering-solr6\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/alfresco-clustering-solr6\\\/\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/alfresco-clustering-solr6\\\/\",\"name\":\"Alfresco Clustering - Solr6 - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\"},\"datePublished\":\"2019-08-03T04:00:59+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/c4d05b25843a9bc2ab20415dae6bd2d8\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/alfresco-clustering-solr6\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/alfresco-clustering-solr6\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/alfresco-clustering-solr6\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Alfresco Clustering &#8211; Solr6\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/c4d05b25843a9bc2ab20415dae6bd2d8\",\"name\":\"Morgan Patou\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5d7f5bec8b597db68a09107a6f5309e3870d6296ef94fb10ead4b09454ca67e5?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5d7f5bec8b597db68a09107a6f5309e3870d6296ef94fb10ead4b09454ca67e5?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5d7f5bec8b597db68a09107a6f5309e3870d6296ef94fb10ead4b09454ca67e5?s=96&d=mm&r=g\",\"caption\":\"Morgan Patou\"},\"description\":\"Morgan Patou has over 12 years of experience in Enterprise Content Management (ECM) systems, with a strong focus in recent years on platforms such as Alfresco, Documentum, and M-Files. He specializes in the architecture, setup, customization, and maintenance of ECM infrastructures in complex &amp; critical environments. Morgan is well-versed in both engineering and operations aspects, including high availability design, system integration, and lifecycle management. He also has a solid foundation in open-source and proprietary technologies - ranging from Apache, OpenLDAP or Kerberos to enterprise-grade systems like WebLogic. Morgan Patou holds an Engineering Degree in Computer Science from ENSISA (\u00c9cole Nationale Sup\u00e9rieure d'Ing\u00e9nieurs Sud Alsace) in Mulhouse, France. He is Alfresco Content Services Certified Administrator (ACSCA), Alfresco Content Services Certified Engineer (ACSCE) as well as OpenText Documentum Certified Administrator. His industry experience spans the Public Sector, IT Services, Financial Services\\\/Banking, and the Pharmaceutical industry.\",\"sameAs\":[\"https:\\\/\\\/blog.dbi-services.com\\\/author\\\/morgan-patou\\\/\",\"https:\\\/\\\/x.com\\\/MorganPatou\"],\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/author\\\/morgan-patou\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Alfresco Clustering - Solr6 - dbi Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dbi-services.com\/blog\/alfresco-clustering-solr6\/","og_locale":"en_US","og_type":"article","og_title":"Alfresco Clustering - Solr6","og_description":"In previous blogs, I talked about some basis and presented some possible architectures for Alfresco, I talked about the Clustering setup for the Alfresco Repository, the Alfresco Share and for ActiveMQ. I also setup an Apache HTTPD as a Load Balancer. In this one, I will talk about the last layer that I wanted to [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/alfresco-clustering-solr6\/","og_site_name":"dbi Blog","article_published_time":"2019-08-03T04:00:59+00:00","author":"Morgan Patou","twitter_card":"summary_large_image","twitter_creator":"@MorganPatou","twitter_misc":{"Written by":"Morgan Patou","Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/alfresco-clustering-solr6\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/alfresco-clustering-solr6\/"},"author":{"name":"Morgan Patou","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/c4d05b25843a9bc2ab20415dae6bd2d8"},"headline":"Alfresco Clustering &#8211; Solr6","datePublished":"2019-08-03T04:00:59+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/alfresco-clustering-solr6\/"},"wordCount":1204,"commentCount":0,"keywords":["Alfresco","architecture","Cluster","High availability","Sharding","Solr","SolrCloud"],"articleSection":["Application integration &amp; Middleware","Enterprise content management"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/alfresco-clustering-solr6\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/alfresco-clustering-solr6\/","url":"https:\/\/www.dbi-services.com\/blog\/alfresco-clustering-solr6\/","name":"Alfresco Clustering - Solr6 - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"datePublished":"2019-08-03T04:00:59+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/c4d05b25843a9bc2ab20415dae6bd2d8"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/alfresco-clustering-solr6\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/alfresco-clustering-solr6\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/alfresco-clustering-solr6\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Alfresco Clustering &#8211; Solr6"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/c4d05b25843a9bc2ab20415dae6bd2d8","name":"Morgan Patou","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/5d7f5bec8b597db68a09107a6f5309e3870d6296ef94fb10ead4b09454ca67e5?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/5d7f5bec8b597db68a09107a6f5309e3870d6296ef94fb10ead4b09454ca67e5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5d7f5bec8b597db68a09107a6f5309e3870d6296ef94fb10ead4b09454ca67e5?s=96&d=mm&r=g","caption":"Morgan Patou"},"description":"Morgan Patou has over 12 years of experience in Enterprise Content Management (ECM) systems, with a strong focus in recent years on platforms such as Alfresco, Documentum, and M-Files. He specializes in the architecture, setup, customization, and maintenance of ECM infrastructures in complex &amp; critical environments. Morgan is well-versed in both engineering and operations aspects, including high availability design, system integration, and lifecycle management. He also has a solid foundation in open-source and proprietary technologies - ranging from Apache, OpenLDAP or Kerberos to enterprise-grade systems like WebLogic. Morgan Patou holds an Engineering Degree in Computer Science from ENSISA (\u00c9cole Nationale Sup\u00e9rieure d'Ing\u00e9nieurs Sud Alsace) in Mulhouse, France. He is Alfresco Content Services Certified Administrator (ACSCA), Alfresco Content Services Certified Engineer (ACSCE) as well as OpenText Documentum Certified Administrator. His industry experience spans the Public Sector, IT Services, Financial Services\/Banking, and the Pharmaceutical industry.","sameAs":["https:\/\/blog.dbi-services.com\/author\/morgan-patou\/","https:\/\/x.com\/MorganPatou"],"url":"https:\/\/www.dbi-services.com\/blog\/author\/morgan-patou\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/12710","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/20"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=12710"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/12710\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=12710"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=12710"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=12710"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=12710"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}