Java programmers how to quickly become a good architect, architect Ali recommendation of this document

How to become an architect?

  Wanted to be an architect, first must be your first point of technology good enough, enough depth and breadth of knowledge, experience problems can quickly find the most appropriate way to solve the mind. Secondly, the architect will be from overall project leadership, dealing with people is essential, therefore communicate with people these soft skills are also essential, of course, this varies, some people are born more will be dealing with people, but in any case, the basic technology is good enough conditions, of course, want to be a good architect, practical development experience is essential, not the architect of many years of experience does not work, but at least, we want to be an architect, you must first master the theoretical knowledge is not it? ? So what else to talk about practice, I summed up a JAVA Advanced learning architect map:

  Of course, there are many techniques and skills are also required, such as: Architect To document output, you will need to draw related figures, common example: a flow chart / use case diagram / timing diagram / lane diagram / state diagram / collaboration diagrams, etc. (recall that these courses in college is not the teachers talked about? but we did not care about nothing, at least I like this, ha ha ~). another example java reflection mechanism and its associated API, high performance NIO --- Netty frame and so on. If we need big data relevant to know flink / blink / spark / hadoop / hbase, not necessarily all want to be, but at least my mind there must be a concept, this technology is doing, so that others say when can understand. as for why did not draw in the above figure, because I only prepared to write the follow-up article content map, and the rest left to their own children's shoes to learn it. of course, because of space constraints blog, each technique can not be a hundred percent all the knowledge points are mentioned, but to ensure that all are talking about dry, allowing reading of children's shoes to gain something!

What architects should be concerned about?

  The problem, in other words, making what we should be concerned when design architecture, we believe that the two types, functional requirements and non-functional requirements from large terms, the breakdown for the following six areas:

1. Function

  I remember my teacher once said, the function is 0 and the other is 1, then fast hardware architect, if not function, then fast hardware design is useless, and only under the premise to meet the functional and other design to be useful.

2. Performance

  For modern systems, the shorter the response time is more likely to retain customers, after all, who would stand to open a page to wait 10 seconds or even minutes of it? At least when I visit any Web site, more than five seconds to load a page directly off. commonly used performance indicators QPS (queries per second rate) / TPS (transactions per second rate). of course, the need to advance environmental performance (environmental and production-like environment) test after the completion of system development, common performance testing tools apachebench (referred to as ab) / http_load / jmeter etc. .QPS also follow the principle of 28, the day 80% of the traffic is concentrated in 20% of the time, we could then estimate the QPS website, planning the server configuration, If the performance is not up to, the need to optimize, optimization methods commonly plus machine (brute), the front end of the optimization (the CDN / static and dynamic separation / decrease number of requests /), optimization backend code cache (e.g. redis), JVM optimized.

3. Availability

  Usability is a modern distributed system, when there is one or more of its subsystems node goes down when still be able to continue to provide normal services. Commonly used means of a cluster and automatic failover, almost all distributed systems technology use support high availability, such as caching official redis redis-cluster cluster, MongoDB cluster fragmentation, messaging middleware (ActiveMQ / RabbitMQ / kafka / RocketMQ) cluster, MySQL cluster database and so on, if all of the above are aware of children's shoes, to sum up, they will find that the core idea is the same, to provide data redundancy through clustering, and through automatic discovery and failover mechanism to ensure high availability components.

4. stretchability

  Scalability refers to when the system capacity is insufficient or excess, whether it can facilitate the conduct of expansion / contraction processing capacity, many large companies are doing well in this regard, better strategy is containerized, use docker + k8s deployment management , can easily be expansion or contraction processing capacity, better rational use of resources.

5. Scalability

  Scalability refers to the time when there are changes or new requirements occur, whether the function can be achieved without changing code or change very little code. Scalability is a test of skill of an architect, the author seems like design a good scalability of the system, in addition to prior consideration, the use of design patterns is quite a good program where appropriate scenarios, so the architects, the design model is very important! for example, there is an upload service, using the FTP protocol upload, we apach ftpClient package based on a set of interfaces, in addition there is a demand at this time, is required to use the SFTP protocol, we use another set of interfaces jsch package, that if there are follow-up to the new agreement? each additional we need to add a protocol to adapt the code, this time using the adapter model is not can be a good solution to the problem? this is also consistent with the idea of ​​design patterns, programming to an interface, a new agreement in the future, we just need a new by an implementation class, without alteration of the original code it is not in the code changes at a minimum meet the demand?

6. Security

  A site, if it is under a great amount of user access, the network is vulnerable to hackers, common means of attack include:

6.1 XSS attack

  Sterilization is a common means of defense (not trust a user input, and the input checksum strict filtering, such as using "& lt" instead of "<", etc.).

6.2 SQL injection attacks

  Before we use JDBC when using the Statement cause SQL injection attacks, so there is a precompiled PreparedStatement way back to prevent SQL injection attacks, and higher efficiency PreparedStatement case of a large number of queries.

6.3 CSRF attacks

  Cross-site request forgery, the attacker theft victim cookie, sending malicious requests on behalf of the victims, a common defense mechanisms are: submit form validation code (user experience relatively unfriendly), URL with token validation, HTTP referer verification.

6.4 DDOS attack

  Distributed denial of service attacks, DOS attacks advanced version, the defense is very difficult, and the program is relatively complex, the industry is more powerful Ali, 11 double many times have withstood a big promotion, after all, Ali Wealth brother (Wu Han Qing, Ali, the youngest P8, as the existence of God) security group and its leadership.

welfare

Xiao Bian sorted out a core knowledge of advanced Java architect of the Road, but also interview the interviewer will ask knowledge, the chapter also includes a lot of knowledge, including basic knowledge, a collection of Java, JVM, and more thread concurrency, spring principle, micro-services, Netty and RPC, Kafka, diary, design patterns, Java algorithms, databases, Zookeeper, distributed caching, data structures, etc.

Document finishing small series have been packed since the details too much, small series only show the directory contents of the document for everyone to see, the programmer need the whole document (Yuan) little attention Xiao Bian + partners can forward replies back "Documents" Oh free access

JVM

  1. Thread
  2. JVM memory area
  3. JVM runtime memory
  4. And garbage collection algorithm
  5. JAVA four kinds of reference types
  6. GC generational collection algorithm VS partition collection algorithm
  7. GC garbage collector
  8. JAVA IO / NIO
  9. JVM class loading mechanism

 

 

Due to space constraints small series, details of too many friends, so only the part of the knowledge point shots out of the rough introduction, each small node which has more detailed content! Need program ape (Yuan) can help forward + concern private letter (document) Gets oh

JAVA collection

  1. The interface and implementation inheritance
  2. List
  3. ArrayList (array)
  4. Vector (array implementation, thread synchronization)
  5. LinkList (list)
  6. Set
  7. HashSet(Hash表)
  8. TreeSet (binary)

 

 

JAVA multithreading

  1. JAVA concurrent knowledge base
  2. JAVA thread implementation / creation mode
  3. 4 kinds of thread pool
  4. Thread Life Cycle (state)
  5. 4 ways to terminate the thread
  6. the difference between sleep and wait
  7. start and run difference
  8. JAVA background thread
  9. JAVA lock
  10. Basic programming method
  11. Synchronization lock and deadlock
  12. Principle thread pool
  13. JAVA blocking queue principle
  14. CyclicBarrier, CountDownLatch, Semaphore usage
  15. The role of the volatile keyword (variable visibility, prohibit reordering)
  16. How to share data between two threads

 

 

JAVA foundation

  1. JAVA abnormal handling and classification
  2. JAVA reflection
  3. JAVA comment
  4. JAVA inner class
  5. JAVA Generics
  6. JAVA Serialization (Java objects to create reusable)
  7. JAVA Copy

 

 

Spring Principle

  1. Spring Features
  2. Spring core components
  3. Spring Common Module
  4. The main package Spring
  5. Spring Common Annotations
  6. Spring combined with third party
  7. Spring IOC principle
  8. Spring APO principle
  9. Spring MVC principle
  10. Spring Boot principle
  11. JPA principle
  12. Mybatis Cache
  13. Tomcat architecture

 

 

Due to space constraints small series, details of too many friends, so only the part of the knowledge point shots out of the rough introduction, each small node which has more detailed content! Need program ape (Yuan) can help forward + concern private letter (document) Gets oh

Micro Services

  1. Registration discovery service
  2. API Gateway
  3. Configuration Center
  4. Event Scheduler (kafka)
  5. Service Tracking (starter-sleuth)
  6. Services fuse (Hystrix)
  7. Hystrix breaker mechanism
  8. API Management

 

 

Netty 与RPC

  1. Netty principle
  2. Netty high performance
  3. Netty RPC achieve
  4. Key Technology
  5. Core processes
  6. Message codec
  7. Communication process
  8. RMI implementation

 

The internet

  1. Layer 7 network architecture
  2. TCP / IP principles
  3. TCP three-way handshake / four wave
  4. HTTP principle
  5. CDN principle
  6. Distribution Service System
  7. Load balancing system
  8. Management System

 

 

Journal

  1. Slf4j
  2. Laog4j
  3. LogBack
  4. Logback advantage
  5. ELK

 

Zookeeper

  1. Zookeeper concept
  2. Zookeeper role
  3. Zookeeper Works (Atomic Broadcast)
  4. Znode There are four forms of directory node

 

 

Kafka

  1. Kafka concept
  2. Kafka data storage design
  3. partition data file (offset, MessageSize, data)
  4. Data file section segment (sequential read and write, the command segment, a binary search)
  5. Index data file (index segment, sparse storage)
  6. Producer Design
  7. Load Balancing (partition will be evenly distributed to the different broker)
  8. Batch Transmission
  9. Compression (GZIP or Snappy)
  10. Consumers Design

 

 

RabbitMQ

  1. RabbitMQ concept
  2. RabbitMQ architecture
  3. Exchange Type

 

 

Load Balancing

  1. Four seven load balancing load balancing vs
  2. Load balancing algorithm / strategy
  3. LVS
  4. Keepalive
  5. Nginx reverse proxy load balancing
  6. HAProxy

 

 

database

  1. Storage Engine
  2. index
  3. Three database paradigm
  4. It is a transaction database
  5. Stored Procedure (SQL statement to set a specific function)
  6. Trigger (for a program to automatically execute)
  7. Database concurrency strategy
  8. Database lock
  9. Redis-based Distributed Lock
  10. Sub-district table
  11. Two-phase commit protocol
  12. Three-phase commit protocol
  13. Flexible Affairs
  14. CAP

 

JAVA algorithm

  1. Binary search
  2. Bubble sort algorithm
  3. Insertion Sort Algorithm
  4. Fast Sorting Algorithm
  5. Hill sorting algorithm
  6. Merge sort algorithm
  7. Bucket sort algorithm
  8. Radix sort algorithm
  9. Pruning algorithm
  10. Backtracking
  11. Shortest path algorithm
  12. The maximum array algorithm
  13. Longest common subsequence algorithm
  14. Minimum spanning tree algorithm

 

Hadoop

  1. Hadoop concept
  2. HDFS
  3. Client
  4. NameNode
  5. Secondary NameNode
  6. DataNode
  7. MapReduce
  8. JobTracker
  9. TaskTracker
  10. Task
  11. Reduce Task execution
  12. Lifecycle Hadoop MapReduce jobs
  13. Job submission and initialization
  14. Task scheduling and monitoring.
  15. Task operating environment ready
  16. Task Execution
  17. The job is completed

 

 

Spark

  1. Spark concept
  2. Core Architecture
  3. Core components
  4. SPARK programming model
  5. SPARK calculation model
  6. SPARK running processes
  7. SPARK RDD process
  8. SPARK eet

 

 

cloud computing

  1. SaaS
  2. Close
  3. IaaS
  4. Docker
  5. Openstack
  6. Namespaces
  7. Process (CLONE_NEWPID achieve process isolation)
  8. Libnetwork isolated from the network
  9. Resource isolation and CGroups
  10. Mirror and UnionFS
  11. Storage drive

 

 

Due to space limitations Xiao Bian, Detailed information pdf document is too full, too many details of it, so only the part of the knowledge point shots out of the rough introduction, each small node which has more detailed content! Need program ape (Yuan) can help forward + concern private letter (document) Gets oh

How to Get Free architecture learning materials?

Obtaining:

Watch + After forwarding, private letters Keywords [documentation] to access our FREE!

 

 

 

Published 106 original articles · won praise 68 · views 50000 +

Guess you like

Origin blog.csdn.net/kxkxyzyz/article/details/104991374