A Java architect, first and foremost, is an advanced Java siege lion, familiar with various frameworks and aware of how they are implemented. JVM virtual machine principles, tuning, understanding the JVM allows you to write better performance code; Pooling technology, object pooling, connection pooling, thread pooling…
Java Architects need to master the following skills:
1. Familiar with various frameworks and know how they work.
2, JVM virtual machine principle, tuning, understand JVM can let you write better performance code;
3, pooling technology, what object pool, connection pool, thread pool… Java reflection technology, a necessary technology to write the framework, encountered serious performance problems, alternative Java bytecode technology;
4, NIO, nothing to say, it is worth noting the “direct memory” characteristics, use scenarios; Java multithreading synchronous asynchronous; Java various collection object implementation principle, understand these can let you choose the appropriate data structure when solving the problem, efficiently solve the problem, such as the implementation principle of hashMap, many people with more than five years of experience are not clear, and why the expansion of performance problems? If you don’t understand these principles, you can’t write efficient code, and you think you’re doing it right;
In short, the more basic things are the more important, many people think they can write code with them, but in fact they only know how to call API, far from being able to use them.
5. Familiar with various data structures and algorithms, such as arrays, hashes, linked lists, sorting trees… In a word, time for space or space for time, which can be extended to say a lot of, a certain amount of application experience is required to solve a variety of performance or business problems.
6, skilled use of Linux operating system, necessary, nothing to say.
7. Familiar with TCP protocol and the whole process of creating three-way handshake and disconnecting four-way handshake. If you do not know, you cannot optimize high-concurrency network applications; Familiar with HTTP protocol, especially HTTP headers, I found that many people who worked for more than five years could not understand the life cycle of session and cookie and their correlation.
8, system cluster, load balancing, reverse proxy, static separation, website static. Distributed storage systems NFS, FASTDFS, TFS, and Hadoop learn about their advantages and disadvantages and application scenarios. Memcached distributed cache technology,redis, is essential for improving system performance. In short, put the contents of the hard disk into memory to speed up, by the way, algorithmic consistency hash.
9, tools nginx necessary skills super easy to use, high performance, basic will not hang up the server, a lot of features, to solve a variety of problems.
10, database design ability, mysql necessary, basic database tools, free to use, optimization of its basic parameters, slow query log analysis, master and slave replication configuration, at least to become half of the mysql DBA. Other NoSQL databases include mongodb.
11. Queue middleware. If the message delivery, the message could be written to the database, push put a queue on the server, by the push server to queue for processing, so that you can put in the database and queue the message directly to the user feedback, after push process is completed by push and queue server, benefits asynchronous processing, alleviate the pressure of the server, the decoupled system.
The above is purely common technology, there are a lot of their own slowly to explore it; Because there is so much to know, being a qualified architect requires a strong self-learning ability. No one is going to teach you everything by hand.
To become an architect, you need to know more than a bunch of techniques. These are the foundation and tools for solving problems. How can you propose solutions if you don’t know them? This is essential to being an architect.
Architects for business characteristics, the performance of the system requirements, will solve the problem, only qualified design scheme of low cost, the somebody else a few hundred people the user’s system, traffic is not big, small amount of data and you give somebody else on clusters, distributed storage, high-end servers, to architecture and architecture, and it’s bullshit, the role of the architect is to meet the needs of the business, With low hardware network costs and technical maintenance costs.
According to the business development stage, the architect should foresee the solution to the system architecture of the next stage in advance, 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, problems go out again, or the existing architecture can not be extended directly throw away redo, or expand a lot of trouble, which will cause losses to the enterprise.
Seven system atlas:
Need a more detailed map to see the end of the welfare package
A popular framework source code
Two, distributed
3. Micro-service architecture
Fourth, performance optimization
Five, multi-threaded concurrent programming
Six, engineering
7. Actual practice of e-commerce projects
Reader benefits:
Explain welfare resources for fans: special explain free tutorial teach you how to learn, source code, distributed, micro services, performance optimization, multi-threaded concurrency, from 0 to 1, take you to appreciate the essence of the bottom.
How to get:
Check out the blogger’s home page