Key foundation (must be solid)
The Java language
-
Java Core Technology
- Basic grammar
- object-oriented
- Commonly used API
- Exception handling
- A collection of
- IO
- multithreading
- Network programming
- The generic
- reflection
- annotations
-
Understanding the Java Virtual Machine
-
Class loading mechanism
- Parents entrust
-
Bytecode execution mechanism
-
JVM memory Model
- The heap area
- The virtual machine stack
- Methods area
-
Garbage collection
-
JVM performance monitoring and fault locating
-
The JVM tuning
-
-
Multithreading, Locking, and Concurrency 1: “The Art of Java Concurrent Programming”, 2: “Java Concurrent Programming Practice”
-
Fundamentals of Concurrent Programming
-
The thread pool
-
The lock
- Optimistic lock, pessimistic lock
- Mutex and shared locks
- Reentry lock, deviation lock
- Lightweight locks, CAS, and spin locks
-
Concurrent container
-
Atomic classes
-
JUC concurrency tool class
-
-
Network programming
-
Learning path
- Socket API + multi-threading + network model /IO model + IO reuse
- Netty
-
emphasis
- Interprocess communication: semaphore, pipe, shared memory, socket, etc
- Multithreaded programming: mutex, condition variables, read/write locks, thread pools, etc
- Five IO models: synchronous, asynchronous, blocking, non-blocking, and signal-driven
- There are two high-performance IO modes: Reactor and Proactor
- IO reuse mechanism: epoll, SELECT, poll
-
-
Java source code
/ SQL database
-
“SQL Must Know must Be”, “High-performance MySQL”
-
The SQL statement
-
Write a SQL
- League table
- The aggregation
-
-
SQL statement optimization
-
Transaction, isolation level
-
The index
-
The lock
Data structures and algorithms
-
Comic Algorithm, Algorithm
-
The data structure
- string
- An array of
- The list
- The stack
- The queue
- Binary tree
- The heap
- The hash
-
algorithm
- Ten sorting
- Search, dichotomy
- greedy
- Divide and conquer
- Dynamic programming
- back
Design patterns
- Relearning Java Design Patterns
- The singleton
- The factory
- The agent
- strategy
- Template method
- The observer
- The adapter
- Chain of responsibility
- The builders
- .
Computer network
-
Computer Networking: a Top-down approach
-
HTTP, TCP, IP, ICMP, UDP, DNS and ARP
-
IP address, MAC address, OSI layer 7 model (or TCP/IP Layer 5 model)
-
HTTPS security: digital signature, digital certificate, and TLS
-
Common network attacks include ARP Flood, DDoS, TCP SYN Flood, and XSS
-
TCP (most important)
-
TCP protocol
- Three handshakes and four waves
- State transition
- The TCP status is TIME_WAIT
- Congestion control
- Fast retransmission and slow start
-
The problem
- How to Achieve reliable transmission with TCP (voiceover: How to achieve reliable Transmission based on UDP)
- Why establishing a TCP connection is not a two-time handshake (voiceover: A three-time handshake is fully necessary)
- What problem does the existence of TIME_WAIT solve? Why is the wait time 2 MSL
-
The core
- Reliable transmission + efficient transmission (flow control and window management)
-
-
HTTP, HTTPS
- What happens from URL input to page presentation
-
Learning methods
-
Learn to grasp a thread
- How is a packet sent
-
Ask the question why
-
The operating system
-
Modern Operating Systems
-
Process management
-
Concurrency, synchronization, mutex, lock
-
Memory management
-
The file system
-
Focus on
-
Theoretical knowledge of the four modules of OS
- Process and thread management
- Memory management
- IO and file system
- Equipment management
-
Understand some implementation principles of the Linux kernel
- Memory management
- Process management
- Virtual file system
-
Most closely related to programming
- memory
- process
- IO
-
-
cognitive
- What constitutes an operating system
- Process status, switchover, and scheduling
- Interprocess communication (shared memory, pipes, messages)
- The difference between processes and threads
- How threads are implemented (one-to-one, many-to-first)
- Mutual exclusion and synchronization (semaphore, tube, lock)
- Deadlock detection and avoidance
- Concurrent classical problems: readers, writers, philosophers dining problems
- Why do you need virtual memory and how does the MMU do address translation
- Why is memory segmented and paginated
- Page replacement algorithm
- How is the file system organized
- How abstract is a virtual file system (VFS)
- .
Application framework
The back-end
-
The JSP, Servlet
-
The family of the Spring
-
Spring
- IOC
- AOP
-
Spring MVC
-
MyBatis
-
SSM
- The war package
- Tomcat run
-
Spring Boot
-
The jar package
-
Embedded Tomcat
- Microservice Architecture
-
-
knowledge
-
Automatically configured, out of the box
-
Integration of the Web
-
Database integration (transaction issues)
-
Integration of permissions
- Shiro
- SpringSecurity
-
Various middleware
-
The cache
-
MQ
-
RPC framework
- Dubbo
-
The NIO framework
- Netty
-
-
-
-
Spring Cloud
-
Netflix
-
Eureka
- Service governance components, including a registry on the server side and a service discovery mechanism on the client side.
-
Ribbon
- A load-balanced service invocation component with multiple load-balancing invocation policies.
-
Hystrix
- The service fault-tolerant component, which implements the circuit breaker mode, provides fault tolerance for service-dependent errors and delays.
-
Feign
- Declarative service invocation components based on the Ribbon and Hystrix.
-
Zuul
- API gateway services, filtering, security, monitoring, traffic limiting, routing.
-
-
Alibaba
-
Nacos
- Alibaba open source product, a dynamic service discovery, configuration management and service management platform that makes it easier to build cloud native applications.
-
Sentinel
- The lightweight flow control product for distributed service architecture takes the flow as the entry point and protects the stability of services from multiple dimensions such as flow control, circuit breaker degradation and system load protection.
-
RocketMQ
- An open source distributed messaging system, based on high availability distributed cluster technology, provides low latency, high reliability message publishing and subscription services.
-
Dubbo
- Apache Dubbo is a high-performance Java RPC framework for service communication.
-
Seata
- Alibaba open source product, an easy to use high-performance microservice distributed transaction solution.
-
-
Config
- Distributed configuration center. A configuration management tool that allows you to use Git to store configuration content, store external application configurations, refresh client configuration information, and encrypt and decrypt configuration content.
-
Bus
- Event, message bus, used to propagate state changes in clusters (for example, configuration change events), can be syndicated with Spring Cloud Config for hot deployment.
-
Consul
- Service Registration and Configuration Manager.
-
Security
- Security toolkit for load-balancing OAuth2 clients and login authentication in Zuul agents.
-
Sleuth
- Distributed request link tracing for SpringCloud applications, with support for tracing using Zipkin, HTrace, and log-based (such as ELK) tracing.
-
Stream
- A lightweight event-driven microservice framework for sending and receiving messages using a simple declarative model, mainly Implemented in Apache Kafka and RabbitMQ.
-
Task
- A microservice framework for quickly building short, limited data processing tasks for adding functional and non-functional features to applications.
-
Zookeeper
- Service registry.
-
Gateway (alternative to Zuul)
- Spring Cloud Gateway is an official Gateway developed by Spring based on Spring 5.0, Spring Boot 2.0 and Project Reactor. Spring Cloud Gateway aims to provide a simple and effective unified API routing management approach for microservices architectures. As a Gateway in Spring Cloud ecosystem, Spring Cloud Gateway aims to replace Netflix Zuul. It not only provides a unified routing mode, but also provides basic Gateway functions based on Filter chain, such as: Safety, monitoring/burying, and current limiting, etc.
-
OpenFeign (alternative to Feign)
- Spring Cloud supports Spring MVC annotations such as @requesMapping on top of Feign. OpenFeign’s @FeignClient can parse the interface under SpringMVC’s @RequestMapping annotation and use dynamic proxy to generate implementation classes that perform load balancing and invoke other services.
-
-
Experience in project
- conclusion
-
-
The middleware
-
The cache
-
Redis
- Five data types
- The transaction
- alerts
- The pipe
- persistence
- The cluster
-
-
The message
- RabbitMQ
- RocketMQ
- Kafka
-
search
- ElasticSearch
-
The front end
-
Basic package
-
3 big
- HTML
- CSS
- JavaScript
-
Based on library
- jQuery
- Ajax
-
-
Template framework
- JSP
- Thymeleaf
- FreeMaker
-
Componentization framework
- Node
- VUE
- React
- Angular
The development tools
Integrated development environment
- Eclipse
- IDEA
- VSCode
Linux system
- Common Linux Commands
- Basic Shell scripts
Code management tool
-
Git
- Git command and use
-
SVN
Project management/build tools
- Maven
- Gradle
Application of operational
The Web server
- Nginx
Application server
- Tomcat
Container technology
- Docker
- Kubernetes(K8S)
- Manage o&M containers
Continuous integration, continuous release
- Jenkins
Code quality inspection
- Sonar
Collect and analyze logs
- ELK