To be honest, as a programmer, my technical ability has also been experienced during the rapid growth of the company’s business, and I have accumulated some experience in the design and optimization of high-traffic and high-concurrency website architecture, especially for the "spike" scenario . Because I am sure that at that time, we must have done enough extreme optimizations to the system to handle the flood of traffic requests at that time.
I remember that in the early days, the PV of Taobao's product detail system was almost 100 million, but by 2016 it had almost risen to 5 billion. Especially during the time period from 2012 to 2014, the "seckill" activity was particularly popular. The user's enthusiasm for participation was higher than the wave, and the traffic the system had to face also increased exponentially.
And every spike activity is a test for the technical team. Thinking about it now, at that time, our entire team was fearless, iterated and innovated step by step, and then the process of solving problems one by one was also a very challenging and fulfilling thing.
I remember that one year, in order to cope with the "Double Eleven", our entire product listing team made a lot of optimizations to the system. We think it is the best system in the entire company, and its performance is already the "top of the industry".
In fact, the overall structure of the spike can be summarized as "stable, accurate, and fast" keywords.
Therefore, from a technical point of view, "stable, accurate, and fast" corresponds to the requirements of high availability, consistency and high performance in our architecture. Our column will also focus on these aspects, as follows.
High performance . Spike involves a large number of concurrent reads and concurrent writes, so it is very important to support high concurrent access. This column will focus on four aspects: the dynamic and static separation scheme of the design data, the discovery and isolation of hotspots, the requested peak cutting and hierarchical filtering, and the ultimate optimization of the server.
Consistency . The way in which inventory reduction is achieved in the spike is also critical. It is conceivable that a limited number of goods are requested many times at the same time to reduce inventory at the same time. Inventory reduction is divided into "photographed inventory reduction", "payment reduction inventory" and withholding, etc., in the large concurrent update The accuracy of the data must be ensured in the process, and the difficulty can be imagined. Therefore, I will use an article to specifically explain how to design a spike reduction plan.
Highly available . Although I have introduced a lot of extreme optimization ideas, it is inevitable that there will be some situations that we cannot consider in reality. Therefore, to ensure the high availability and correctness of the system, we also need to design a PlanB to cover it in the worst case. Time can still deal with it calmly. At the end of the column, I will take you to think about which links can be used to design the bottom line plan. Finally, I am very lucky to meet you at geek time. I hope this class will give you a thorough understanding of the design of a large concurrency, high performance, and high availability spike system, and be able to think more accurately when thinking about solving similar problems. And judgment.
Basics
1. Highly concurrent system: what is its general design method
2. Architecture layering: why do we have to do this?
3. System design goal (-): How to improve system performance?
4. System design goal "2): How does the system achieve high availability?
5. System design goal (3): How to make the system easy to expand?
6. _The first phase of the interview site: When asked about the principle of component implementation, is the interview officer making things difficult for you?
Database articles
7. Pooling technology: How to reduce the performance loss of frequently warehoused database connections?
8. Teaching database optimization plan "1): When query requests increase, how to separate master from slave?
9. Database optimization plan "2): How to implement database and table splitting when writing data increases?
10. Number issuer: How to ensure the global uniqueness of ID after sub-database and sub-table?
11. HoSQL: How can the teaching database and HoSQL complement each other in a high concurrency scenario ?
Cache articles
Message Queue
Distributed Service
Maintenance
Actual combat
-What are the key points of the spike system architecture design?
2. Five architectural principles that should be paid attention to when designing a spike system
3. How can we do a good job of separating dynamics and statics? What options are there?
Fourth, twenty-eight principles: deal with the system's "hot data" in a targeted manner
5. What should Liu Lixiao do?
6. What are the factors of Jingzhixiang performance and how to improve the performance of the system?
Seven, the core logic of the "reduction inventory" design of the spike system
8. How to design the bottom plan?
Those who need this high-concurrency top spike can directly add the assistant VX below to receive it for free!