Java Architect Learning Program

1. Linux learning -> "Uncle Bird's Private Kitchen", Linux server practice
2. Network protocol: TCP/IP protocol Http protocol: Familiar with the tcp protocol, the entire process of creating a three-way handshake for connection and a four-way handshake for disconnection. If you don't understand it, you can't optimize high-concurrency network applications; familiar with the http protocol, especially the http header, I found that many people who have worked for more than five years have Can't figure out the life cycle of session and cookie and the relationship between them
 3.  System cluster, load balancing, reverse proxy, dynamic and static separation, website static
 4.  Distributed storage system nfs, fastdfs, tfs, Hadoop understand their advantages Disadvantages, applicable scenarios
 5.  Distributed caching technology memcached, redis, necessary to improve system performance, in a word, put the content on the hard disk into memory to speed up, by the way, mention the algorithm consistency hash 6.  Tools nginx must have super skills Easy-to-use, high-performance, basically a server that will not hang  up, has many functions, and solves various problems Query log analysis, master-slave replication configuration, at least half a mysql dba. Other nosql databases like mongodb 8.  Also queue middleware. For example, for message push, you can first write the message to the database, push it to the queue server, and the push server goes to the queue for processing. In this way, the message can be placed in the database and queue and then directly fed back to the user. The push process is performed by the push server and the queue. The server is completed, the benefit is asynchronous processing, the pressure on the server is relieved, and the system is decoupled. 9.   The architect must propose a design solution that can solve the problem with the lowest cost according to the business characteristics and system performance requirements. It’s not big, and the amount of data is small. You give people a cluster, distributed storage, and high-end servers. This is the most nonsense. The role of the architect is to meet the business needs first, and the second lowest hardware network. costs and technical maintenance costs.  10.   The architect should also foresee the solution of the system architecture to the next stage in advance according to the business development stage, and take the upgrade and expansion of the architecture into consideration when designing the current architecture, so as to make it easy to upgrade; otherwise, when the system bottleneck comes, out If there is a problem, then go for a solution, or the existing architecture cannot be expanded and simply throw it away and redo it, or there are a lot of troublesome expansion problems, which will cause losses to the enterprise. 11. JVM virtual machine principle, tuning, understanding JVM allows you to write code with better performance; pool technology, what object pool, connection pool, thread pool...:; java reflection technology, a necessary technology for writing frameworks , but there are serious performance problems, the alternative is java bytecode technology; nio, nothing to say, it is worth noting the characteristics of "direct memory", usage scenarios; java multi-threaded synchronization and asynchronous; java implementation principles of various collection objects , understanding these can help you choose the appropriate data structure when solving problems, and solve problems efficiently, such as the implementation principle of hashmap, many people with more than five years of experience are not clear, and why there are performance problems when expanding? If you don’t understand these principles, you will not be able to write efficient code, and you will think that you are doing the right thing; in short, the more basic things are, the more important they are. Many people think that they will use them to write code, but they only know how to call It's just an api, and it's far from being usable.
 Proficient in using various data structures and algorithms, arrays, hashes, linked lists, sorting trees.... In a word, it is either time for space or space for time. There is a lot to say here, and you need to have some application experience. Used to solve various performance or business problems;

Author: zhuqz
Link: https://www.zhihu.com/question/29031276/answer/54631312
Source: Zhihu
Copyright belongs to the author. For commercial reprints, please contact the author for authorization, and for non-commercial reprints, please indicate the source.
z Reprinted from: https://www.zhihu.com/question/29031276

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=326087865&siteId=291194637