No. article first appeared in public preserved egg blackboard
At that time I will own article submission to InfoQ, then editor Kwok-mail inviting me to share, so with this memorable speech. Welcome friends to go watch the geek time App.
Theme: How effective use of resources to promote large flow withstood 618
Probably reads as follows:
Performance Testing
Performance Optimization
Optimization may include upgraded hardware configuration such as the use of Tomcat Supported NIO version instead of the low, horizontal expansion cluster, the cluster removal of short board.
Software optimizations include code review and optimization of SQL and low performance of the code.
Extension point
First, the basics of language development
Data structure differences between the various collections, including the applicable scene, CRUD complexity, thread safety, orderly, rapid failure characteristics.
Among four concurrent design patterns, including the Future mode, Master-Slave mode, pause mode protection, immutable patterns, consumer production mode.
IO among the zero-copy technique, serialization and deserialization.
Memory management memory model, garbage collection policy.
Use connection pooling to reduce the cost of management.
Second, the program design
SOLID principles, in particular the principle of single responsibility, the principle of opening and closing, Richter substitution principle, the principle of the interface isolation, dependency inversion principle.
Design patterns, a common singleton pattern, plant pattern, strategy pattern, chain of responsibility pattern.
Interface design, such as a combination of reference patterns to reduce excessive overloading.
Avoid over-design, not too early to focus on security, configurability, scalability, maintainability, inheritable.
Third, database
Good understanding of indexes and locks.
Fourth, the middleware
Make good use of the cache, but pay attention to the consistency of source data caching and synchronization.
The good news engine use, but be careful idempotency, ordering, data redundancy, replication problems.
Fifth, stratified
Good understanding of domain-driven design, bounded by business context, eliminate hidden data dependent, dependent on a well-defined direction.
Sixth, high availability
Service degradation, limiting the service, depending on the fuse, queues, and timeout retry mechanism, data consistency.
Source: www.liangsonghua.me
Author: Jingdong Senior Engineer - Liang Songhua, in-depth understanding of the stability of security, agile development, JAVA advanced, micro-service architecture