Network Security Internet Technology Development Database Servers Mobile Phone Android Software Apple Software Computer Software News IT Information

In addition to Weibo, there is also WeChat

Please pay attention

WeChat public account

Shulou

What does the senior architect of C++ and Linux background server development learn?

2025-01-15 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Internet Technology >

Share

Shulou(Shulou.com)06/01 Report--

This article mainly explains the "C++ and Linux background server development senior architect learning knowledge", the article explains the content is simple and clear, easy to learn and understand, now please follow the editor's ideas slowly in depth, together to study and learn "C++ and Linux background server development senior architect learning knowledge" bar!

(introduction to proficiency in Linux)

1. Linux development environment 1. Understand the construction of Linux environment, understand LinuxC programming 2. Understand Linux installation, command use, shell programming 3.shell script to detect which ip address machines in the LAN are down

2. Linux C programming 1.Linux C programming Statistics of file words include: file operation, file pointer 2.Linux C programming address book includes: structure

Third, Linux environment programming 1. The counting schemes under concurrency include mutex, spin lock and atomic operation 2. The implementation thread pool includes: thread queue, task queue, the relationship between the condition variable 3.CPU and the process, including: process operation, process bonding with CPU, process communication 4. Database operations include: database encapsulation, sql statement encapsulation, network connection encapsulation.

4. 1.DNS requestor for network programming includes: UDP communication, DNS protocol, protocol parsing 2. The implementation of http requestor TCP client includes: TCP programming, HTTP request protocol 3. Million-level concurrent server TCP server includes: tcp, network io,Linux system summary: after mastering the above knowledge points, your Linux has been relatively mature, reaching the level of a Linux development engineer.

After mastering the above knowledge points, you can learn about the following knowledge points: (Linux background development article)

First, the algorithm in the design of a long journey, starting with a small step. If you do not accumulate steps, you will not be able to reach thousands of miles. Can not only look up at the stars but also keep their feet on the ground. Sorting and searching include: insert sort, quick sort, Hill sort, bucket sort, cardinality sort, merge sort 2. Common algorithms include: Bloom filter, string matching KMP algorithm, backtracking algorithm, greedy algorithm, recommendation algorithm, depth and breadth first 3. Common data structures include: balanced binary tree, red-black tree, B-tree, KMP algorithm, stack / queue 4. Common design patterns include: single-column pattern, chain of responsibility pattern, filter pattern, publish and subscribe pattern, agent pattern, factory pattern.

Second, if you want to do a good job in background component programming, you must sharpen its tools first. Background components are the starting stone for development. Persistent MySQL includes: MySQL installation configuration and remote connection, data operations derived from SQL statements, stored procedures and transactions, SQL functions, operations, temporary tables, anti-data loss backup and recovery, MySQL database building table building index 2. Message queue ZeroMQ includes: ZMQ compilation, installation and development environment construction, publisher-subscriber pattern implementation, request-response pattern implementation, Router-Dealer pattern implementation, message queue-performance analysis 3. Cache Redis includes: Redis compilation and installation configuration, client global unique ID save mechanism, Redis message queuing mechanism publish and subscribe, Redis transaction practice, Redis security performance, data backup and recovery, Redis distributed lock detail 4. Reverse proxy Nginx includes: Nginx development introduction, reverse proxy load balancing configuration detailed explanation, custom protocol upstream development, sub-domain name mapping, server background attack prevention, nginx dual virtual host 5. Restful Http includes: Http third-party interface implementation, asynchronous Http request, ngrok and Restlet, long connection and short link 6. Coordination service ZooKeeper includes: ZK compilation and installation and C API development environment, cluster management and service registration, node creation and monitoring, distributed lock implementation, ZK pseudo-cluster deployment and service management 7.NoSQL MongoDB includes: MongDB installation and development introduction, MongoDB backup and recovery, MongoDB document operation, full-text search and regular expression, MongoDB database building collection

Third, excellent engineers of code engineering have excellent ability of code organization and code iteration. 1. Architecture engineering includes: engineering parameter configuration and compilation cmake, code specification and naming rules, file naming and variable naming rules, script configuration tool autoconf, code engineering organization architecture Makefile 2. The management code includes: distributed version control system git, remote warehouse, label management, github and code cloud, creation warehouse, import, checkout, svn environment construction and principle, branch management conflict resolution, product code version management SVN.

Fourth, the network service network IO is the blood vessel of network communication, and data is the blood. The flow of blood cannot leave the blood vessels. 1. Source code implementation includes: server IO core-epoll programming practice, client multi-network connection mechanism poll, file IO management select 2. The framework includes: high-performance time loop libev, cross-platform asynchronous I libuv, cross-platform C++ library Boost.Asio, event notification library libevent 3. Theories include: blocking BIO, asynchronous IO AIO, non-blocking IO NIO.

Open source framework if you want to see the scenery of thousands of miles, please climb another tall building. Stand on the shoulder of the giant and see the view out of the window.

1.TCP protocol stack includes: DPDK-based high-performance user-state protocol stack f-stack, Netmap-based single-threaded protocol stack NtyTcp, compact tcp protocol stack LWIP

two。 Concurrency includes: Boost.Compute, C++ GPU computing library of OpenCL, Intel TBB, Intel thread building block, OpenCL, open standard of heterogeneous systems for parallel programming, C++ React, reactive programming library of Clover 11.

3. The database includes: C client library hiredis of Redis database, fast storage RocksDB of embedded key value of Facebook, and object relational mapping hiberlite of C++ for Sqlite3.

4. Internationalization includes: Unicode and globalization supported C, C++ and Java libraries IBM ICU, code conversion libraries between different character encodings libiconv, GNU gettext

5. Compression includes: very compact data stream compression library Zlib, fast compression and decompression Snappy, very fast compression algorithm LZ4, single C source file, compression / expansion compression library Miniz

6. Logs include: the design is very modular and scalable Boost.Log, flexible to add logs to files, system log Log4cpp, add logs to your C++ application templog, C++ log library, only contains a single header file easyloggingpp

7. Multimedia libraries include: open source audio library-cross-platform audio API OpenAL, network real-time streaming media communication WebRTC, audio and music digital signal processing library Maximilian, C++ easy-to-use and efficient audio synthesis Tonic

8. Serialization includes: fast data exchange format and RPC system Cap'n Proto, protocol buffering, Google data exchange format ProtoBuf, efficient cross-language IPC/RPC Thrift, memory efficient serialization library FlatBuffers

9.XML libraries include Gnome's xml C parser and toolkit LibXml2, single fast C++CML parser TinyXML2, simple and fast XML parser PugiXML, C++ xml parser LibXml++ 10. Scripts include: small fast scripting engine Lua, Google's fast JavaScript engine V8, embedded scripting language ChaiScript,

The 11.Json library includes the C language library Jansson for encoding, decoding and processing Jason data, the JSON parsing and printing library ibjson in C language, the lightweight JSON library libjson, and the Jason parsing generator Frozen of Cdeband +.

twelve。 The math library includes the high-quality C++ linear algebra library Armadillo, the mathematical graphics template library GMTL, the Calgary Centro + library GMP for high-precision computing, and the advanced C++ template header file library Eigen.

13. Security includes GnuTLS, a secure communication library for SSL,TLS and DTLS protocols, Openssl, a full-featured open source encryption library, and Cryto++, a free C++ library for encryption schemes.

14.Web application framework includes: secure, fast open source Web server Lighttpd, web framework QDjango based on Qt library, high performance HTTP and reverse proxy web server Nginx

15. The network library includes C asynchronous network development library Dyad.c, multi-protocol file transfer library Curl, high-speed modular asynchronous communication library ZeroMQ, and C++ object-oriented network toolkit ACE.

16. Asynchronous events include: event notification library libevent, cross-platform asynchronous Imax O libuv, fully functional, high-performance time loop libev, network and underlying cross-platform C++ library Boost.Asio.

17. The cooperation process includes: the pure c version of the cooperation framework ntyco, the implementation protocol library of Craft 11, and the underlying IO library libco of golang style libgo and Wechat, which supports 800 million users online at the same time.

Sixth, performance testing without thinking is labor lost, and thinking without learning is perilous. Understand the principle of knowledge from technical feedback. 1. Debug libraries include: Boost test library Boost.Test, memory debugging performance analysis tool Valgrind, Google C++ test framework GoogleTest, memory allocation tracking library MemTrack 2. The test library includes: unit test framework minUnit, test case writing libtap, lightweight C++ unit test framework UnitTest++, automated test case gtest and luatest 3. Performance tools include: high performance code build system tundra, Http stress test tool WRK, website stress test tool webbench, high performance build system FASTBuild

Linux system God closes a door and opens a window. Linux is another window in the programmer's world.

1. System command tools include: interprocess communication facility status ipcs, Linux system runtime uptime, CPU average load and disk activity iostat, monitoring, collecting and reporting system activity sar, monitoring multiprocessor usage mpstat, monitoring process memory usage pmap, system administrator tuning and benchmark measurement tool nmon, keeping a close eye on Linux system glances, viewing system calls strace

two。 Basic command tools include: system process status ps, virtual memory statistics tool vmstat, console traffic monitoring tool vnstat, process monitoring tool atop,htop, memory usage status free

3. Network parameter tools include: Linux network statistical monitoring tool netstat, display and modification of network interface controller ethtool, network packet analysis blade tcpdump, standard protocol telnet for remote login service, access to real-time network statistics iptraf, display of network interface bandwidth usage on hosts iftop

4. Disk parameter tools include: disk unmount umount, read, convert and output data dd, file system df, disk mount mount

5. Log monitoring tools include: real-time network log analyzer GoAccess, log monitoring MultiTail under multiple windows, log analysis system LogWatch/Swatch

6. Parameter monitoring tools include: monitoring the overall performance of apache network server apachetop, ftp server basic information ftptop, IO monitoring iotop, power consumption and power management powertop, monitoring mysql thread and performance mytop, system operation parameter analysis htop/top/atop

Thank you for your reading, the above is the content of "what do the senior architects of C++ and Linux background server development learn?" after the study of this article, I believe you have a deeper understanding of what the senior architects of C++ and Linux background server development have learned, and the specific use still needs to be verified in practice. Here is, the editor will push for you more related knowledge points of the article, welcome to follow!

Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.

Views: 0

*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.

Share To

Internet Technology

Wechat

© 2024 shulou.com SLNews company. All rights reserved.

12
Report