Considerations for designing high availability and high load website Systems

Source: Internet
Author: User

In fact, to design a high-availability and high-load system, there are still some rules to follow, and its means are almost Up-scale (Sacle Up hardware expansion) or Scale Out, the two solutions will significantly improve the performance of the website in a certain stage, but soon the problem remains. This article attempts to provide a feasible "Limited" solution by referring to relevant online materials.

Early Stage

1. Vertically split business applications and divide different business boundaries. What programmers often say is that the "multi-layer system" only vertically solves the division of different programming layers. Compared with the business, it does not do anything. Nowadays, SOA is widely used. In addition to recognizing the interconnection and scalability brought about by services, It also differentiates the changes of different services and has independent implementation and storage mechanisms. Each service uses different databases or data tables to mitigate the "Lock" and I/O bottlenecks caused by frequent single databases.

2. Separate dynamic content from static Resources in the website system and provide static information using a separate and more efficient server (such as Apache + Linux. In most cases, most of the traffic comes from images, videos, etc. In addition to improving the page response and real-world speed, multiple servers provide page display at the same time, at the same time, the traffic is divided into multiple servers. In addition, we should avoid using dynamic resolution (ASPNET_ISAPI.dll/HttpModule/HttpHandler) to process static data filtering and path rewriting.

3. Use caching mechanisms, including using methods such as ASP. NET Cache, PageCache, and creating static pages. A well-designed cache mechanism can greatly improve system performance and response speed.

4. Use a 64-bit database system. SQL Server 2005 can use more memory (up to 64 GB) on 64-bit systems, and has better performance under multiple CPUs. With a larger memory, we can even set some commonly used and rarely changed tables (such as classification directory tables) as memory tables to improve response speed.

5. Disable some security settings of the operating system, such as Windows 2003 Anti-DDOS settings, and avoid unexpected access bottlenecks.

Runtime

6. Establish a multi-database system. Use one or more database servers for data updates, and then use the database replication and subscription functions to synchronize to multiple other database servers dedicated for display, this effectively reduces the waiting time for database access due to updates. Of course, this system does not apply to all businesses.

7. Partition large data tables. Currently, most mainstream databases support data Table Partitioning. We can partition data in different periods and store data in multiple partition tables. We can also partition data vertically, place infrequently used fields in other partition tables. Partition tables do not affect our development mode and do not need to adjust the Code. However, the benefits of reducing the data table size from TB to GB cannot be ignored.

8. Use Server Load balancer to improve performance. Including DNS load balancing, proxy server load balancing, address translation gateway load balancing, Server Load balancer within the Protocol, NAT load balancing, reverse proxy load balancing, etc, server Load balancer is the most common means of expansion, and its effect is also very obvious.

9. Use dedicated storage systems such as SAN to improve I/O performance. SAN uses fiber channels to connect multiple storage devices, which can improve the performance of data transmission over a network cable between multiple server hard disks. In addition, the SAN can dynamically adjust the storage capacity, which is more conducive to system backup and recovery.

10. power backup. In addition to the UPS power supply, it is best to have independent power generation equipment in the independent data center. Of course, for small and medium-sized websites, this is too luxurious.

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.