3.1 why SOLR?
In this section, we hope to provide some key information to help you determine whether SOLR is the right choice for your company's technical solutions. Let's start with SOLR's attraction to software architects.
3.1 SOLR in the eyes of software architects
When evaluating a new technology, software architects must consider a series of factors, including system stability, scalability, and fault tolerance. SOLR scored well in these three aspects.
Speaking of stability, SOLR is a mature technology jointly maintained by active open-source communities and experienced code contributors. New users of SOLR and Lucene are usually surprised by the release method of the project. Maybe they used to wait for the official release version of a project. They have never heard of this method of pull from the branch. Whether your company accepts this method or not, we do not suggest you do this. What we want to say is, the test depth and width of the Automatic Test Module in Lucene and SOLR projects are trustworthy. To put it simply, if you get a nightly build from the branch and all the automated tests can pass, you can be assured that all the core functions are OK.
In section 1.2.6, we have come into contact with SOLR's method for implementing scalability expansion. In section 1.2.7, we also discussed the issue of fault tolerance. As an architect, you may be most curious about the limitations of SOLR's scalability and fault tolerance functions. First, you need to know that in solr4, The sharding and copy backup functions have been rewritten, which greatly improves the robustness and ease of management. The new expansion method is called solrcloud. At the underlying implementation level, solrcloud uses Apache zookeeper to manage configuration synchronization on the SOLR cluster and monitor the running status of the cluster. Here are some highlights of SOLR's new solrcloud functions:
· Centralized Configuration
· Distributed indexing to avoid spof)
· Automatic Fault Tolerance and automatic generation of new primary parts
· Any node can trigger distributed full queries covering all parts of the entire cluster, and has integrated automatic fault tolerance and load balancing.
However, this does not mean that the scalability of SOLR has no room for improvement. Solrcloud needs to be improved in two aspects. First, not all functions work in distributed mode. For example, the joins connection function. Second, once an index is created, the number of parts of the index cannot be dynamically adjusted. To change the number of parts, you can only re-create an index for all documents. We will discuss in detail all aspects of solrcloud in chapter 16th, but we want to ensure that software architects are aware that SOLR scalability has gone a long way over the past few years, in addition, it will continue to improve in the future.
3.2 SOLR in the eyes of System Administrators
As a system administrator, when considering the use of a new technology such as SOLR, the highest priority is whether the new technology can work well with existing systems. SOLR can easily answer yes to this question. SOLR is fully developed based on Java and can be run on any operating system with j2se 6.x/ 7.x JVM virtual machine. SOLR also comes with the open-source Java Servlet Engine jetty provided by Oracle. On the other hand, SOLR is a standard Java Web application that can be conveniently deployed on Java Web application servers such as JBoss or Oracle.
All SOLR operations can be completed through HTTP requests, and SOLR is designed to work collaboratively with HTTP reverse proxies such as squid or varnish. SOLR also supports JMX, so you can mount SOLR to your favorite monitoring program (such as Nagios) for monitoring.
Finally, SOLR provides a good management console that can be used to check configurations, View statistics, initiate test queries, and monitor solrcloud health. Figure 1.4 shows a screenshot of the solr4 console. We will learn how to use the console in Chapter 2.
3.2.1 SOLR in CEO's eyes
Although CEOS and other people are unlikely to read this book, we still need to write some key points, so that when the CEO calls you to talk in the hall, you can hide these points. First, management people like to hear that their investment in technology today will produce benefits for a long time in the future. Specifically, SOLR allows you to emphasize that many companies still rely on SOLR 1.4 to run their products. This is the old version released in 2009. This shows that SOLR has successful commercial use cases, and it has been continuously improving.
In addition, CEOs like controllable and predictable technologies. As you will see in the following sections, SOLR is very useful. You can build a simple SOLR service in a few minutes. Another question is, if the SOLR employee changes jobs or runs away, will our company's business be affected? Will the entire service fail? SOLR technology is indeed complicated, but its open-source community is very active, which means you can get help in a timely manner as long as you seek help. In addition, you can directly see the source code. Sometimes you may find that there is a problem with writing in a place, you can fix it by yourself. In addition, many commercial service providers can help you plan, implement and maintain your SOLR system. Many service providers also provide SOLR-related training courses.
Next, CFO may be more concerned about the investment cost of SOLR. Investment in using SOLR actually does not cost much. We don't need to know the size of your operating environment, so we can confidently say that you can build a simple SOLR service in just a few minutes, and you will soon be able to build a document index. A server built on the cloud can process millions of file requests in sub-seconds (in less than one second.