From 7b5b311b7c704083febe1c38b9789ed97b693a2b Mon Sep 17 00:00:00 2001 From: YiRanCN Date: Wed, 3 Jul 2024 09:51:51 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20YiRanCN/?= =?UTF-8?q?yirancn.github.io@f8924ee994a8fc03a16d6cd34f9ce4b0dc5a3d8e=20?= =?UTF-8?q?=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 404.html | 4 ++-- about/index.html | 4 ++-- assets/js/{009da349.214eefd6.js => 009da349.a9881680.js} | 2 +- assets/js/{013f59b8.7d48438c.js => 013f59b8.8d1e76c5.js} | 2 +- assets/js/{01c8f07b.1f68a217.js => 01c8f07b.a6a72472.js} | 2 +- assets/js/{01d46eee.b216857f.js => 01d46eee.78e5d8c2.js} | 2 +- assets/js/{03101150.6c735f0f.js => 03101150.4299d01e.js} | 2 +- assets/js/{037fbca4.e454ad88.js => 037fbca4.e7347376.js} | 2 +- assets/js/{03cd0d32.b67912a9.js => 03cd0d32.06660db6.js} | 2 +- assets/js/{04cddcee.215f67b3.js => 04cddcee.16794d28.js} | 2 +- assets/js/{04e0d125.53edd610.js => 04e0d125.19647afe.js} | 2 +- assets/js/{04e22f3f.84875dff.js => 04e22f3f.a0e39142.js} | 2 +- assets/js/{06a5f76a.173adf7a.js => 06a5f76a.d7395418.js} | 2 +- assets/js/{086f0ef7.06740d57.js => 086f0ef7.71fc63d0.js} | 2 +- assets/js/{0a1f7513.1a8d8709.js => 0a1f7513.bfcb5015.js} | 2 +- assets/js/{0ad179ee.bec8593d.js => 0ad179ee.896ee1d9.js} | 2 +- assets/js/{0b36e747.48951afd.js => 0b36e747.141a564a.js} | 2 +- assets/js/{0b7620c8.c07dc691.js => 0b7620c8.f73f20aa.js} | 2 +- assets/js/{0dc7fd42.a4c05598.js => 0dc7fd42.04ec3dc5.js} | 2 +- assets/js/{0dfb2733.1473ab62.js => 0dfb2733.b8f854cb.js} | 2 +- assets/js/{0e133684.244cfd6d.js => 0e133684.aa505b43.js} | 2 +- assets/js/{0eefe494.18ba6973.js => 0eefe494.4c031b20.js} | 2 +- assets/js/{0f04c4bf.08303893.js => 0f04c4bf.078cb5b4.js} | 2 +- assets/js/{12d1694e.5d56002f.js => 12d1694e.169552a5.js} | 2 +- assets/js/{1387c807.1a2cdcb5.js => 1387c807.c71101bd.js} | 2 +- assets/js/{15ae2b3f.bd6c06d8.js => 15ae2b3f.fa2d1957.js} | 2 +- assets/js/{1830dc74.d556ae5c.js => 1830dc74.c0f37f30.js} | 2 +- assets/js/{18536aaa.3e9101c2.js => 18536aaa.72efd3c2.js} | 2 +- assets/js/{1aa9ac35.afb0f9ba.js => 1aa9ac35.635e5190.js} | 2 +- assets/js/{1ad4833d.397fbce0.js => 1ad4833d.21bccc7d.js} | 2 +- assets/js/{1b135b54.f0d7ce3c.js => 1b135b54.5e747482.js} | 2 +- assets/js/{1b25ada3.d8a21729.js => 1b25ada3.e67ac2c2.js} | 2 +- assets/js/{1c123384.13b547c0.js => 1c123384.6fcf45db.js} | 2 +- assets/js/{1c2262cb.86e99cde.js => 1c2262cb.b08dddb7.js} | 2 +- assets/js/{1c40b03d.54e3bf01.js => 1c40b03d.9f44da13.js} | 2 +- assets/js/{1d6606cd.0ad9f51e.js => 1d6606cd.349f8550.js} | 2 +- assets/js/{1df90d44.67807d71.js => 1df90d44.0612e746.js} | 2 +- assets/js/{1e8406f2.3569aba0.js => 1e8406f2.e00fc99a.js} | 2 +- assets/js/{1ea907ab.d54ea7c8.js => 1ea907ab.4d9c1c7e.js} | 2 +- assets/js/{1fa31a57.7bd0a209.js => 1fa31a57.a927347a.js} | 2 +- assets/js/{2015f8aa.547bde0e.js => 2015f8aa.3d200b54.js} | 2 +- assets/js/{2064198b.ac7cf158.js => 2064198b.0fa14954.js} | 2 +- assets/js/{20ecba9b.be50a049.js => 20ecba9b.08be5d8a.js} | 2 +- assets/js/{228940c7.9894dd93.js => 228940c7.6bc04ae3.js} | 2 +- assets/js/{22d8222a.60fecca2.js => 22d8222a.ca2d177b.js} | 2 +- assets/js/{249c18b0.daf6c1e9.js => 249c18b0.cbdb44df.js} | 2 +- assets/js/{25692582.6b7c8ff2.js => 25692582.ba1a7e12.js} | 2 +- assets/js/{26299e01.774c72bc.js => 26299e01.78d70061.js} | 2 +- assets/js/{26739764.a8f7d37f.js => 26739764.f52d7217.js} | 2 +- assets/js/{281494d0.df284659.js => 281494d0.778bf9a1.js} | 2 +- assets/js/{28f5562e.0c48756e.js => 28f5562e.e0a044d9.js} | 2 +- assets/js/{29ac29a0.5746f86d.js => 29ac29a0.6f0cb8ce.js} | 2 +- assets/js/{2a0a68ae.7dd79c0b.js => 2a0a68ae.0cbc192d.js} | 2 +- assets/js/{2a4fe0d4.2d0804a8.js => 2a4fe0d4.f01aeb6e.js} | 2 +- assets/js/{2a714a8e.e6fe5c76.js => 2a714a8e.efc328b7.js} | 2 +- assets/js/{2b486500.28b5a011.js => 2b486500.75cd73c8.js} | 2 +- assets/js/{2b5f2f35.b603469a.js => 2b5f2f35.176f01bf.js} | 2 +- assets/js/{2bc909a9.5b63bb79.js => 2bc909a9.3b82b900.js} | 2 +- assets/js/{2c29bcc5.9cacb31e.js => 2c29bcc5.d65d4e1b.js} | 2 +- assets/js/{2d2ef872.0e5d2435.js => 2d2ef872.d9932977.js} | 2 +- assets/js/{2dda2596.f4bd4794.js => 2dda2596.e92fe0f2.js} | 2 +- assets/js/{2e250d6d.6e626755.js => 2e250d6d.2865959b.js} | 2 +- assets/js/{2e955f05.50b622f6.js => 2e955f05.8bddec1d.js} | 2 +- assets/js/{2fa90042.650aa37e.js => 2fa90042.b2f6f7c3.js} | 2 +- assets/js/{319ed101.ee06c352.js => 319ed101.cec8ab22.js} | 2 +- assets/js/{32dcf95e.f73cd1af.js => 32dcf95e.97c92707.js} | 2 +- assets/js/{32ef234c.04f8cc18.js => 32ef234c.63168f39.js} | 2 +- assets/js/{3474579f.eedc05a4.js => 3474579f.5b350339.js} | 2 +- assets/js/{34be6e6a.58c2a41e.js => 34be6e6a.3e7c90ac.js} | 2 +- assets/js/{350be966.1b3e6221.js => 350be966.a9a61c84.js} | 2 +- assets/js/{35b5dc5a.cc9b5176.js => 35b5dc5a.7829f5c5.js} | 2 +- assets/js/{35d73bf2.be489659.js => 35d73bf2.ec4e916a.js} | 2 +- assets/js/{36351059.d238766b.js => 36351059.20dee2ae.js} | 2 +- assets/js/{3790afcd.93c5acb9.js => 3790afcd.c27c4cb8.js} | 2 +- assets/js/{3815e5ff.bd41bde2.js => 3815e5ff.c26dce9c.js} | 2 +- assets/js/{397e604e.46cbf351.js => 397e604e.3db42bde.js} | 2 +- assets/js/{398dd9ed.7a094a8d.js => 398dd9ed.db4897c0.js} | 2 +- assets/js/{399850d1.439fd7ad.js => 399850d1.9ee49c22.js} | 2 +- assets/js/{39e40f36.cd8f95a9.js => 39e40f36.006c70ba.js} | 2 +- assets/js/{3b2c25df.96f88b59.js => 3b2c25df.5882c2aa.js} | 2 +- assets/js/{3b47b6b5.82b21006.js => 3b47b6b5.a099bb48.js} | 2 +- assets/js/{3bd11cc0.867f1a45.js => 3bd11cc0.e9f9f3c4.js} | 2 +- assets/js/{3c356cd2.94cf967e.js => 3c356cd2.bb5d4b18.js} | 2 +- assets/js/{3c4f1597.359fabbd.js => 3c4f1597.7da9beb2.js} | 2 +- assets/js/{3e116dbc.7e483a79.js => 3e116dbc.7fcb0d09.js} | 2 +- assets/js/{3eef7308.97c971e4.js => 3eef7308.a32bcc05.js} | 2 +- assets/js/{3f06bf29.f4f78dbc.js => 3f06bf29.8df782b0.js} | 2 +- assets/js/{42c9ab86.fb4d466e.js => 42c9ab86.67242235.js} | 2 +- assets/js/{42fe7d73.e61b9001.js => 42fe7d73.68f0873a.js} | 2 +- assets/js/{44c08670.e97ee001.js => 44c08670.29705e97.js} | 2 +- assets/js/{455d41bc.eff58370.js => 455d41bc.492f72cc.js} | 2 +- assets/js/{461e82b5.427796e5.js => 461e82b5.30e79dc5.js} | 2 +- assets/js/{46c2ebc5.407f7609.js => 46c2ebc5.3deeab56.js} | 2 +- assets/js/{47d775f0.36ef99b3.js => 47d775f0.8d8f1c71.js} | 2 +- assets/js/{489cc4f4.56438c24.js => 489cc4f4.548c8178.js} | 2 +- assets/js/{4a7a0e3b.b50196cc.js => 4a7a0e3b.2b4626d6.js} | 2 +- assets/js/{4af85ab8.49c16c42.js => 4af85ab8.944cf0a1.js} | 2 +- assets/js/{4b0ccf38.9ef8f6e9.js => 4b0ccf38.5cd1f43d.js} | 2 +- assets/js/{4d36f4bb.1c89bc29.js => 4d36f4bb.11513ed3.js} | 2 +- assets/js/{4d86c8f8.b112c4d2.js => 4d86c8f8.8b1f146e.js} | 2 +- assets/js/{4ed715ca.38633ace.js => 4ed715ca.4d8052db.js} | 2 +- assets/js/{4f086afd.72650a3f.js => 4f086afd.9e2fb63c.js} | 2 +- assets/js/{4f6149ca.fb80bb24.js => 4f6149ca.6da63705.js} | 2 +- assets/js/{4fb554a1.2ca029ea.js => 4fb554a1.45adcf24.js} | 2 +- assets/js/{50eef34b.231af15e.js => 50eef34b.99f6638b.js} | 2 +- assets/js/{52135254.782697c6.js => 52135254.b376a4de.js} | 2 +- assets/js/{5535d7af.a62da13a.js => 5535d7af.a725cde6.js} | 2 +- assets/js/{576ec208.2ad686f2.js => 576ec208.7c9697ee.js} | 2 +- assets/js/{582dea03.bff6b099.js => 582dea03.8d0c3fff.js} | 2 +- assets/js/{588433b1.366631af.js => 588433b1.86081721.js} | 2 +- assets/js/{5886a939.1b7a773f.js => 5886a939.643a03e9.js} | 2 +- assets/js/{5ae76acd.c7a970d3.js => 5ae76acd.50942ceb.js} | 2 +- assets/js/{5b270517.e4eb019e.js => 5b270517.e33ff50f.js} | 2 +- assets/js/{5b89160d.ca3041cc.js => 5b89160d.705cd254.js} | 2 +- assets/js/{5ca6a2d2.f1a3fbd5.js => 5ca6a2d2.2e6a9a6c.js} | 2 +- assets/js/{5d0c646c.46b0bfa5.js => 5d0c646c.ef82c2a2.js} | 2 +- assets/js/{5d4ec3d4.fbc1fa68.js => 5d4ec3d4.25f0fa19.js} | 2 +- assets/js/{5e266219.5ae846d6.js => 5e266219.214696cf.js} | 2 +- assets/js/{5f2eed60.4965f123.js => 5f2eed60.4f1bcaa2.js} | 2 +- assets/js/{5f897b5c.76b666ac.js => 5f897b5c.1809de10.js} | 2 +- assets/js/{61127ee0.8d7ef7d6.js => 61127ee0.4d6c2b6c.js} | 2 +- assets/js/{62465e63.2e9e0896.js => 62465e63.d6d29435.js} | 2 +- assets/js/{62781bcd.96f71929.js => 62781bcd.b25aa34a.js} | 2 +- assets/js/{6360ef06.ac828409.js => 6360ef06.861b4d47.js} | 2 +- assets/js/{64c9ca80.c9db806a.js => 64c9ca80.c39c9465.js} | 2 +- assets/js/{65c56656.8225f00e.js => 65c56656.e6f0696a.js} | 2 +- assets/js/{67e91227.1af35cd9.js => 67e91227.f3d66ef3.js} | 2 +- assets/js/{68202b49.a71e5b4f.js => 68202b49.64d11bdb.js} | 2 +- assets/js/{68699a4c.ba00d9ee.js => 68699a4c.7610f53d.js} | 2 +- assets/js/{6b91e1af.6ff87f1d.js => 6b91e1af.502ff697.js} | 2 +- assets/js/{6bfc7002.29c1b97a.js => 6bfc7002.885c7667.js} | 2 +- assets/js/{6c0bce26.2fe608bb.js => 6c0bce26.d115ccbc.js} | 2 +- assets/js/{6c9e9146.3f988669.js => 6c9e9146.c5e4e932.js} | 2 +- assets/js/{6cce85b2.a94972e8.js => 6cce85b2.474c3b81.js} | 2 +- assets/js/{6de29db3.df7732ec.js => 6de29db3.50405f2f.js} | 2 +- assets/js/{72b2f356.a35af79a.js => 72b2f356.a49e096d.js} | 2 +- assets/js/{73162314.ccda7320.js => 73162314.5c49cc87.js} | 2 +- assets/js/{74adc76f.fcbcb610.js => 74adc76f.f1f48d11.js} | 2 +- assets/js/{75219fff.9970b0e0.js => 75219fff.b99b318c.js} | 2 +- assets/js/{795941ce.ac4c5e96.js => 795941ce.fe823bff.js} | 2 +- assets/js/{7a58d7fa.9e3ddda1.js => 7a58d7fa.74cd9703.js} | 2 +- assets/js/{7c0c45cc.643a00a0.js => 7c0c45cc.519f0122.js} | 2 +- assets/js/{7c66c59a.4c8280f8.js => 7c66c59a.f3c3d8d5.js} | 2 +- assets/js/{7f32d532.b835f723.js => 7f32d532.8f07cf33.js} | 2 +- assets/js/{80403a0b.16116f75.js => 80403a0b.037e6f78.js} | 2 +- assets/js/{817aa27b.b523675b.js => 817aa27b.7871b478.js} | 2 +- assets/js/{826108d9.045ca77a.js => 826108d9.3d2a574d.js} | 2 +- assets/js/{8303fa10.a92d1772.js => 8303fa10.d5c53bd3.js} | 2 +- assets/js/{8497e197.17aca05f.js => 8497e197.259bf307.js} | 2 +- assets/js/{84ea7d53.7dd21578.js => 84ea7d53.c3cd7483.js} | 2 +- assets/js/{89a98191.64ebcfef.js => 89a98191.48b42cfe.js} | 2 +- assets/js/{8a1a07c4.8782edfd.js => 8a1a07c4.26cb9082.js} | 2 +- assets/js/{8ac6cabb.48b06724.js => 8ac6cabb.caaf6c92.js} | 2 +- assets/js/{8b59d635.04d7277d.js => 8b59d635.00f2a92e.js} | 2 +- assets/js/{8b70c8d9.f748a378.js => 8b70c8d9.b7375323.js} | 2 +- assets/js/{8cc20a8d.54f2cca8.js => 8cc20a8d.25e38ce2.js} | 2 +- assets/js/{8d7693a3.914c5c91.js => 8d7693a3.7aed3b76.js} | 2 +- assets/js/{8dc1e402.fa5cf5a8.js => 8dc1e402.02e6634b.js} | 2 +- assets/js/{8f9566ba.e191767a.js => 8f9566ba.d7dfe29e.js} | 2 +- assets/js/{8fdf64da.bbdc61a6.js => 8fdf64da.7f7d11bd.js} | 2 +- assets/js/{9062da7c.24a339cc.js => 9062da7c.0d6a871e.js} | 2 +- assets/js/{90f76576.b3dae0e2.js => 90f76576.c482fe87.js} | 2 +- assets/js/{916bb7d8.64a906f4.js => 916bb7d8.9a833032.js} | 2 +- assets/js/{917fe9d9.617ecd0b.js => 917fe9d9.5c92e351.js} | 2 +- assets/js/{935f2afb.283bb44c.js => 935f2afb.212b0314.js} | 2 +- assets/js/{94529d15.4ca1b589.js => 94529d15.0133ad38.js} | 2 +- assets/js/{947d4688.a4ae18ab.js => 947d4688.3fbfa52a.js} | 2 +- assets/js/{955edfb7.0b86b94f.js => 955edfb7.dc907cae.js} | 2 +- assets/js/{96162fed.8df9de03.js => 96162fed.8e6916cc.js} | 2 +- assets/js/{9703c56f.1584be30.js => 9703c56f.2e1faa5b.js} | 2 +- assets/js/{97b42080.33630eb4.js => 97b42080.eccf773e.js} | 2 +- assets/js/{9801fcb7.c44cd820.js => 9801fcb7.6252203f.js} | 2 +- assets/js/{9a914db6.567aee39.js => 9a914db6.7e565bfe.js} | 2 +- assets/js/{9ad28e53.452a51b6.js => 9ad28e53.4e3a6ebc.js} | 2 +- assets/js/{9c88f308.5e96b36b.js => 9c88f308.24effc97.js} | 2 +- assets/js/{9d0163be.17682dd7.js => 9d0163be.7e969d5d.js} | 2 +- assets/js/{9f5c6157.b232f354.js => 9f5c6157.05e31138.js} | 2 +- assets/js/{a3633e48.e628211d.js => a3633e48.394bbaed.js} | 2 +- assets/js/{a47a01cb.2d2c2f02.js => a47a01cb.2a8830b4.js} | 2 +- assets/js/{a4c44b85.ab722ef8.js => a4c44b85.1ced885d.js} | 2 +- assets/js/{a53f992a.e6759ef2.js => a53f992a.33532fe0.js} | 2 +- assets/js/{a5cbff69.fbbaab27.js => a5cbff69.36836426.js} | 2 +- assets/js/{a633caa1.59c9e998.js => a633caa1.c9ec87bb.js} | 2 +- assets/js/{a6c94d4c.5b5b9d87.js => a6c94d4c.31bbb729.js} | 2 +- assets/js/{a7f1c1ae.665a16ab.js => a7f1c1ae.b3423448.js} | 2 +- assets/js/{aae926f6.c4a0ded7.js => aae926f6.0107ebee.js} | 2 +- assets/js/{ac6e53b7.015f41fe.js => ac6e53b7.06984711.js} | 2 +- assets/js/{aef8cf14.3bd4dc09.js => aef8cf14.1b3d1d15.js} | 2 +- assets/js/{afde6f8f.5c99c68b.js => afde6f8f.6a078c10.js} | 2 +- assets/js/{b14b689b.a1fcb599.js => b14b689b.c59f402d.js} | 2 +- assets/js/{b153ec3c.f0c06148.js => b153ec3c.0b98d037.js} | 2 +- assets/js/{b2645d4e.c35e97d2.js => b2645d4e.29470d76.js} | 2 +- assets/js/{b34206f0.0b4f30bb.js => b34206f0.75c8fee8.js} | 2 +- assets/js/{b38419a7.5b9dd0e4.js => b38419a7.81960b8c.js} | 2 +- assets/js/{b39354b4.5e1e0b8d.js => b39354b4.2ae3c876.js} | 2 +- assets/js/{b4a7dd16.edf90dda.js => b4a7dd16.64a2b0ba.js} | 2 +- assets/js/{b6694e92.85a07f44.js => b6694e92.f6d5bb77.js} | 2 +- assets/js/{b8eb6aba.cb8c54e1.js => b8eb6aba.45bec3e0.js} | 2 +- assets/js/{bb29b3f8.76d98e17.js => bb29b3f8.75f19d8f.js} | 2 +- assets/js/{bc4e745a.4a72e410.js => bc4e745a.4a32cf30.js} | 2 +- assets/js/{be2a55e4.95989fc7.js => be2a55e4.e57f52df.js} | 2 +- assets/js/{c06ef779.872f6b30.js => c06ef779.82be93a6.js} | 2 +- assets/js/{c348e262.943cda73.js => c348e262.c40a1436.js} | 2 +- assets/js/{c3633f34.f4690953.js => c3633f34.612fd3ee.js} | 2 +- assets/js/{c38cd4f0.d921778b.js => c38cd4f0.d9124b31.js} | 2 +- assets/js/{c50996a1.630fa230.js => c50996a1.7a64c4d0.js} | 2 +- assets/js/{c624ce3c.5e1c80bc.js => c624ce3c.20559fe0.js} | 2 +- assets/js/{c7df6888.5113cef7.js => c7df6888.5ddc01d8.js} | 2 +- assets/js/{c7fe4f6d.886d50c2.js => c7fe4f6d.f207a55e.js} | 2 +- assets/js/{c86c7bbe.6ba3aa7f.js => c86c7bbe.d172dc30.js} | 2 +- assets/js/{c9298fde.82505b6a.js => c9298fde.daf650ab.js} | 2 +- assets/js/{c99ad496.827aeec7.js => c99ad496.3ab7edc8.js} | 2 +- assets/js/{c9e57e8c.6db6e867.js => c9e57e8c.6e03f511.js} | 2 +- assets/js/{cadc4043.f0c74ab6.js => cadc4043.0be5bea5.js} | 2 +- assets/js/{cd56b708.3d56d553.js => cd56b708.44db628c.js} | 2 +- assets/js/{ce0c2574.d21e388d.js => ce0c2574.56fc44a0.js} | 2 +- assets/js/{d1731c9c.abda2881.js => d1731c9c.a0ed16fc.js} | 2 +- assets/js/{d188aee2.3a620c16.js => d188aee2.8c4dadda.js} | 2 +- assets/js/{d29ac9c5.ce76ad4b.js => d29ac9c5.d6afbdd9.js} | 2 +- assets/js/{d3208707.84fb3cd4.js => d3208707.99faf58d.js} | 2 +- assets/js/{d4bb2cb0.c4f0b7e5.js => d4bb2cb0.a328ce51.js} | 2 +- assets/js/{d864a059.c67fbeaa.js => d864a059.0e4d76fd.js} | 2 +- assets/js/{d8990390.e2d957e4.js => d8990390.42cdaa2e.js} | 2 +- assets/js/{d8a12065.a01b8948.js => d8a12065.47e023f0.js} | 2 +- assets/js/{d924bf19.5114fada.js => d924bf19.f8d99d31.js} | 2 +- assets/js/{d92575b7.833057b1.js => d92575b7.51959833.js} | 2 +- assets/js/{da59034b.56274eb9.js => da59034b.e20cf0fd.js} | 2 +- assets/js/{dae804dd.5879bbb9.js => dae804dd.957054be.js} | 2 +- assets/js/{dd0f37bd.8a0d5eef.js => dd0f37bd.587d9288.js} | 2 +- assets/js/{de78196c.6e123313.js => de78196c.8c3a9266.js} | 2 +- assets/js/{e0041558.14594a4f.js => e0041558.fee4e886.js} | 2 +- assets/js/{e17376a0.f9c6e8c4.js => e17376a0.e4af7b37.js} | 2 +- assets/js/{e2835ef4.325a8b22.js => e2835ef4.627acfe3.js} | 2 +- assets/js/{e36fd319.bee5008f.js => e36fd319.274743c4.js} | 2 +- assets/js/{e3905ad3.38bd1942.js => e3905ad3.bfb0030c.js} | 2 +- assets/js/{e49c089a.aca343db.js => e49c089a.cb5a3491.js} | 2 +- assets/js/{e4e6cea9.edb078a9.js => e4e6cea9.d0fab417.js} | 2 +- assets/js/{e7da4cec.cd6a8ac9.js => e7da4cec.8a6e4f8e.js} | 2 +- assets/js/{e907057a.d053804a.js => e907057a.1b69b4d6.js} | 2 +- assets/js/{e92b6e83.770b6a05.js => e92b6e83.c95b7a26.js} | 2 +- assets/js/{e983cebe.0e5178b9.js => e983cebe.0557611e.js} | 2 +- assets/js/{eb3908da.2438faa5.js => eb3908da.56b46bc2.js} | 2 +- assets/js/{eb846286.c2ba564b.js => eb846286.093871f7.js} | 2 +- assets/js/{ecff2ea2.dff7464e.js => ecff2ea2.4aa923f3.js} | 2 +- assets/js/{ed011da4.679d7751.js => ed011da4.fce7f23d.js} | 2 +- assets/js/{ed01863f.948180e2.js => ed01863f.7d6940fc.js} | 2 +- assets/js/{ed9ae553.8ffe15e1.js => ed9ae553.c539936a.js} | 2 +- assets/js/{ee028c53.cea852e6.js => ee028c53.920c03c3.js} | 2 +- assets/js/{ee6139c1.5896c960.js => ee6139c1.649eec1c.js} | 2 +- assets/js/{eef634fe.53980a4b.js => eef634fe.911e7e74.js} | 2 +- assets/js/{f12f9261.841f6379.js => f12f9261.25961184.js} | 2 +- assets/js/{f1999a3d.9b5dd8e0.js => f1999a3d.01ab1538.js} | 2 +- assets/js/{f1ef9b9d.ab3450f7.js => f1ef9b9d.7358ee86.js} | 2 +- assets/js/{f1f3474f.57a881f5.js => f1f3474f.166af15d.js} | 2 +- assets/js/{f3a30e95.8134eb85.js => f3a30e95.3f34e3b3.js} | 2 +- assets/js/{f5515f41.768d4f24.js => f5515f41.b8097466.js} | 2 +- assets/js/{f6ece308.a482f197.js => f6ece308.76a8675c.js} | 2 +- assets/js/{f702ddaf.255ba422.js => f702ddaf.dc81f34f.js} | 2 +- assets/js/{f7453080.07fb8db9.js => f7453080.cb71f9be.js} | 2 +- assets/js/{f7ec4137.45dd7613.js => f7ec4137.8c01c8d1.js} | 2 +- assets/js/{f90dc98f.5df4dc0d.js => f90dc98f.57930f25.js} | 2 +- assets/js/{f9b897e3.cee8415a.js => f9b897e3.76ac1e9c.js} | 2 +- assets/js/{fa157919.24bd13ba.js => fa157919.9ae63740.js} | 2 +- assets/js/{fb9c91a0.5698a5a7.js => fb9c91a0.f5d29b35.js} | 2 +- assets/js/{fbc1a65b.5348b48d.js => fbc1a65b.24b4ac24.js} | 2 +- assets/js/{ff928e4a.0389e650.js => ff928e4a.c57b728a.js} | 2 +- assets/js/{ffb15ddc.4a21d931.js => ffb15ddc.554efaa0.js} | 2 +- ...{runtime~main.040c76f4.js => runtime~main.f0445b5d.js} | 2 +- blog/about-site/index.html | 4 ++-- blog/archive/index.html | 4 ++-- blog/index.html | 4 ++-- blog/mdx-blog-post/index.html | 4 ++-- blog/tags/docusaurus/index.html | 4 ++-- blog/tags/github-page/index.html | 4 ++-- blog/tags/index.html | 4 ++-- .../index.html" | 4 ++-- docs/iotcloud/alarmlinkage/index.html | 6 +++--- docs/iotcloud/connect/http/index.html | 6 +++--- docs/iotcloud/connect/index.html | 6 +++--- docs/iotcloud/connect/mqtt/index.html | 6 +++--- docs/iotcloud/connect/tcp/index.html | 6 +++--- docs/iotcloud/devicemanager/device-group/index.html | 6 +++--- docs/iotcloud/devicemanager/device-info/index.html | 6 +++--- docs/iotcloud/devicemanager/device-type/index.html | 6 +++--- docs/iotcloud/devicemanager/index.html | 6 +++--- docs/iotcloud/index.html | 6 +++--- docs/iotcloud/usercenter/customer/index.html | 6 +++--- docs/iotcloud/usercenter/index.html | 6 +++--- docs/iotcloud/usercenter/system-user/index.html | 6 +++--- docs/iotcloud/usercenter/user-log/index.html | 6 +++--- docs/iotcloud/usercenter/user-settings/index.html | 6 +++--- docs/study/ai/index.html | 6 +++--- .../back/API\347\275\221\345\205\263/APISIX/index.html" | 6 +++--- "docs/study/back/API\347\275\221\345\205\263/index.html" | 6 +++--- docs/study/back/IEDA/Maven/index.html | 6 +++--- docs/study/back/IEDA/encoding/index.html | 6 +++--- docs/study/back/IEDA/fileandcodetemplates/index.html | 6 +++--- docs/study/back/IEDA/save-action/index.html | 6 +++--- .../index.html" | 6 +++--- docs/study/back/WSL/index.html | 6 +++--- docs/study/back/Zookeeper/index.html | 6 +++--- docs/study/back/index.html | 6 +++--- docs/study/back/maven/mvnw/index.html | 6 +++--- .../index.html" | 6 +++--- .../index.html" | 6 +++--- .../back/maven/\346\236\204\345\273\272Docker/index.html" | 6 +++--- docs/study/back/mq/Kafka/index.html | 6 +++--- docs/study/back/mq/MQTT broker/index.html | 6 +++--- .../index.html" | 6 +++--- docs/study/back/mq/RocketMQ/index.html | 6 +++--- docs/study/back/spring/@Configuration/index.html | 6 +++--- docs/study/back/spring/@Resource@Autowired/index.html | 6 +++--- docs/study/back/spring/SpringAOP/index.html | 6 +++--- docs/study/back/spring/SpringBoot/index.html | 6 +++--- docs/study/back/spring/SpringFramework/index.html | 6 +++--- docs/study/back/spring/SpringSecurity/index.html | 6 +++--- .../index.html" | 6 +++--- .../index.html" | 6 +++--- docs/study/back/springcloud/nacos/index.html | 6 +++--- .../\345\276\256\346\234\215\345\212\241/index.html" | 6 +++--- .../Oauth2/index.html" | 6 +++--- .../\350\256\244\350\257\201/index.html" | 6 +++--- .../index.html" | 6 +++--- .../JPA-MyBatis/index.html" | 6 +++--- .../index.html" | 6 +++--- .../MyBatis/index.html" | 6 +++--- .../log4jdbc/index.html" | 6 +++--- .../index.html" | 6 +++--- .../\351\253\230\345\271\266\345\217\221API/index.html" | 6 +++--- docs/study/competitive/CMP-DMP-AEP-BAP/index.html | 6 +++--- docs/study/competitive/TP-LINK/index.html | 6 +++--- docs/study/competitive/ThingsCloud/index.html | 6 +++--- docs/study/competitive/index.html | 6 +++--- .../index.html" | 6 +++--- .../index.html" | 6 +++--- docs/study/db/NewSQL/TiDB/index.html | 6 +++--- docs/study/db/NoSQL/Cassandra/index.html | 6 +++--- docs/study/db/NoSQL/Etcd/index.html | 6 +++--- docs/study/db/NoSQL/Hadoop/index.html | 6 +++--- docs/study/db/NoSQL/Hbase/index.html | 6 +++--- docs/study/db/NoSQL/Ignite/index.html | 6 +++--- docs/study/db/NoSQL/MongoDB/index.html | 6 +++--- docs/study/db/NoSQL/Redis/index.html | 6 +++--- docs/study/db/OLAP/ClickHouse/index.html | 6 +++--- docs/study/db/OLAP/Kylin/index.html | 6 +++--- docs/study/db/OLAP/StarRocks/index.html | 6 +++--- .../index.html" | 6 +++--- docs/study/db/SQL/MariaDB/index.html | 6 +++--- .../db/SQL/MySQL-\347\254\224\350\256\260/index.html" | 6 +++--- docs/study/db/SQL/MySQL/index.html | 6 +++--- docs/study/db/SQL/OpenGauss/index.html | 6 +++--- docs/study/db/SQL/PostgreSQL/index.html | 6 +++--- .../index.html" | 6 +++--- "docs/study/db/SQL/\350\276\276\346\242\246/index.html" | 6 +++--- docs/study/db/index.html | 6 +++--- .../Elasticsearch/index.html" | 6 +++--- .../index.html" | 6 +++--- .../Apache IoTDB/index.html" | 6 +++--- .../Druid/index.html" | 6 +++--- .../InfluxDB/index.html" | 6 +++--- .../KairosDB/index.html" | 6 +++--- .../OpenTSDB/index.html" | 6 +++--- .../TDengine/index.html" | 6 +++--- .../TimescaleDB/index.html" | 6 +++--- "docs/study/db/\347\273\274\345\220\210/index.html" | 6 +++--- .../index.html" | 6 +++--- .../Linux\345\217\221\350\241\214\347\211\210/index.html" | 6 +++--- .../index.html" | 6 +++--- .../index.html" | 6 +++--- .../index.html" | 6 +++--- .../index.html" | 6 +++--- docs/study/devops/SHELL/index.html | 6 +++--- docs/study/devops/ansible/index.html | 6 +++--- docs/study/devops/centos-gninx-app/index.html | 6 +++--- docs/study/devops/centos-jdk17-app/index.html | 6 +++--- docs/study/devops/index.html | 6 +++--- .../index.html" | 6 +++--- docs/study/devops/ssh/index.html | 6 +++--- .../index.html" | 6 +++--- docs/study/docker/Docker-compose/index.html | 6 +++--- docs/study/docker/Docker-swarm/index.html | 6 +++--- .../index.html" | 6 +++--- .../index.html" | 6 +++--- docs/study/docker/docker-kafka/index.html | 6 +++--- docs/study/docker/docker-linux/index.html | 6 +++--- docs/study/docker/docker-mysql/index.html | 6 +++--- docs/study/docker/index.html | 6 +++--- docs/study/encryption/ASN.1/index.html | 6 +++--- docs/study/encryption/HSM/index.html | 6 +++--- docs/study/encryption/PKI/index.html | 8 ++++---- docs/study/encryption/SSL_TLS/index.html | 6 +++--- docs/study/encryption/index.html | 6 +++--- .../index.html" | 6 +++--- .../index.html" | 6 +++--- .../index.html" | 6 +++--- .../index.html" | 6 +++--- .../index.html" | 6 +++--- .../index.html" | 6 +++--- .../index.html" | 6 +++--- .../index.html" | 6 +++--- .../index.html" | 6 +++--- .../index.html" | 6 +++--- .../index.html" | 6 +++--- .../index.html" | 6 +++--- .../index.html" | 6 +++--- .../index.html" | 6 +++--- docs/study/fe/WebGL/index.html | 6 +++--- docs/study/fe/index.html | 6 +++--- docs/study/fe/mqtt.js/index.html | 6 +++--- .../index.html" | 6 +++--- .../index.html" | 6 +++--- .../index.html" | 6 +++--- docs/study/hard/index.html | 6 +++--- .../index.html" | 6 +++--- .../index.html" | 6 +++--- .../index.html" | 6 +++--- .../index.html" | 6 +++--- docs/study/index.html | 6 +++--- docs/study/net/IPV6/index.html | 6 +++--- .../net/MacOS\347\274\226\350\257\221OpenVPN/index.html" | 6 +++--- docs/study/net/OpenVPN/index.html | 6 +++--- docs/study/net/SNMP/index.html | 6 +++--- docs/study/net/TCP/index.html | 6 +++--- docs/study/net/UDP/index.html | 6 +++--- docs/study/net/VLAN-VXLAN/index.html | 6 +++--- docs/study/net/ip/index.html | 6 +++--- docs/study/net/iptables/index.html | 6 +++--- docs/study/net/netns/index.html | 6 +++--- docs/study/net/p2p/index.html | 6 +++--- .../pfctl\351\230\262\347\201\253\345\242\231/index.html" | 6 +++--- docs/study/net/tc/index.html | 6 +++--- docs/study/net/tuntap/index.html | 6 +++--- docs/study/net/vpn/index.html | 6 +++--- "docs/study/net/\344\273\243\347\220\206/index.html" | 6 +++--- .../index.html" | 6 +++--- .../index.html" | 6 +++--- .../index.html" | 6 +++--- .../index.html" | 6 +++--- .../index.html" | 6 +++--- .../\345\255\227\350\212\202\345\272\217/index.html" | 6 +++--- .../index.html" | 6 +++--- docs/study/program/ABIAPI/index.html | 6 +++--- .../index.html" | 6 +++--- .../C/MFC-WinForm-WPF-DotNet\347\255\211/index.html" | 6 +++--- docs/study/program/C/cmake/index.html | 6 +++--- docs/study/program/C/extern-c/index.html | 6 +++--- docs/study/program/C/index.html | 6 +++--- docs/study/program/C/make/index.html | 6 +++--- docs/study/program/C/pragma/index.html | 6 +++--- .../C/size_t-ptrdiff_t-intptr_t-uintptr_t/index.html | 6 +++--- .../index.html" | 6 +++--- .../index.html" | 6 +++--- .../index.html" | 6 +++--- docs/study/program/CPP/CGI/index.html | 6 +++--- .../index.html" | 6 +++--- docs/study/program/CPP/index.html | 6 +++--- docs/study/program/CSharp/index.html | 6 +++--- docs/study/program/Dart/Flutter/index.html | 6 +++--- .../index.html" | 6 +++--- docs/study/program/ETL/dataX/index.html | 6 +++--- docs/study/program/ETL/flume/index.html | 6 +++--- docs/study/program/ETL/kettle/index.html | 6 +++--- docs/study/program/ETL/sqoop/index.html | 6 +++--- docs/study/program/Erlang/index.html | 6 +++--- .../index.html" | 6 +++--- docs/study/program/GIT/GitHubDesktop/index.html | 6 +++--- "docs/study/program/GIT/PR\345\222\214MR/index.html" | 6 +++--- .../index.html" | 6 +++--- docs/study/program/Golang/index.html | 6 +++--- .../index.html" | 6 +++--- .../index.html" | 6 +++--- docs/study/program/JAVA/GC/index.html | 6 +++--- docs/study/program/JAVA/GraalVM/index.html | 6 +++--- docs/study/program/JAVA/Guice/index.html | 6 +++--- docs/study/program/JAVA/JDK17-bin/index.html | 6 +++--- docs/study/program/JAVA/JDK17/index.html | 6 +++--- docs/study/program/JAVA/JDK21/index.html | 6 +++--- docs/study/program/JAVA/JDK8/index.html | 6 +++--- docs/study/program/JAVA/JNI/index.html | 6 +++--- docs/study/program/JAVA/Maven/index.html | 6 +++--- docs/study/program/JAVA/OepnJ9/index.html | 6 +++--- docs/study/program/JAVA/RxJava/index.html | 6 +++--- docs/study/program/JAVA/Vert.x/index.html | 6 +++--- docs/study/program/JAVA/index.html | 6 +++--- .../index.html" | 6 +++--- "docs/study/program/JAVA/\351\224\201/index.html" | 6 +++--- docs/study/program/JS/npm/index.html | 6 +++--- docs/study/program/JS/npx/index.html | 6 +++--- docs/study/program/JS/nrm/index.html | 6 +++--- docs/study/program/Kotlin/index.html | 6 +++--- docs/study/program/Lua/index.html | 6 +++--- docs/study/program/Rust/index.html | 6 +++--- docs/study/program/index.html | 6 +++--- .../index.html" | 6 +++--- .../\347\274\226\350\257\221\345\231\250/index.html" | 6 +++--- .../index.html" | 6 +++--- .../index.html" | 6 +++--- docs/study/system/IO/index.html | 6 +++--- .../study/system/Open\346\254\247\346\213\211/index.html" | 6 +++--- docs/study/system/index.html | 6 +++--- docs/study/system/openWRT/index.html | 6 +++--- .../index.html" | 6 +++--- docs/study/system/yum-dnf/index.html | 6 +++--- .../index.html" | 6 +++--- .../index.html" | 6 +++--- .../index.html" | 6 +++--- .../index.html" | 6 +++--- docs/study/think/IT_CT_OT/index.html | 6 +++--- docs/study/think/index.html | 6 +++--- .../index.html" | 6 +++--- .../index.html" | 6 +++--- .../index.html" | 6 +++--- .../index.html" | 6 +++--- .../CAP\347\220\206\350\256\272/index.html" | 6 +++--- "docs/study/think/\346\236\266\346\236\204/index.html" | 6 +++--- .../index.html" | 6 +++--- .../index.html" | 6 +++--- .../index.html" | 6 +++--- .../index.html" | 6 +++--- .../index.html" | 6 +++--- .../Actor Model/index.html" | 6 +++--- .../Proactor/index.html" | 6 +++--- .../index.html" | 6 +++--- "docs/study/think/\347\274\223\345\255\230/index.html" | 6 +++--- .../index.html" | 6 +++--- .../index.html" | 6 +++--- .../index.html" | 6 +++--- "docs/study/think/\351\231\220\346\265\201/index.html" | 6 +++--- .../index.html" | 6 +++--- docs/xuanxing/back/index.html | 6 +++--- docs/xuanxing/devops/index.html | 6 +++--- docs/xuanxing/fe/index.html | 6 +++--- "docs/xuanxing/fe/\345\256\230\347\275\221/index.html" | 6 +++--- .../index.html" | 6 +++--- .../fe/\347\247\273\345\212\250\347\253\257/index.html" | 6 +++--- .../index.html" | 6 +++--- docs/xuanxing/index.html | 6 +++--- docs/xuanxing/thingsboard/index.html | 6 +++--- .../index.html" | 6 +++--- .../index.html" | 6 +++--- index.html | 4 ++-- markdown-page/index.html | 4 ++-- 542 files changed, 1083 insertions(+), 1083 deletions(-) rename assets/js/{009da349.214eefd6.js => 009da349.a9881680.js} (98%) rename assets/js/{013f59b8.7d48438c.js => 013f59b8.8d1e76c5.js} (99%) rename assets/js/{01c8f07b.1f68a217.js => 01c8f07b.a6a72472.js} (98%) rename assets/js/{01d46eee.b216857f.js => 01d46eee.78e5d8c2.js} (96%) rename assets/js/{03101150.6c735f0f.js => 03101150.4299d01e.js} (99%) rename assets/js/{037fbca4.e454ad88.js => 037fbca4.e7347376.js} (98%) rename assets/js/{03cd0d32.b67912a9.js => 03cd0d32.06660db6.js} (98%) rename assets/js/{04cddcee.215f67b3.js => 04cddcee.16794d28.js} (99%) rename assets/js/{04e0d125.53edd610.js => 04e0d125.19647afe.js} (98%) rename assets/js/{04e22f3f.84875dff.js => 04e22f3f.a0e39142.js} (98%) rename assets/js/{06a5f76a.173adf7a.js => 06a5f76a.d7395418.js} (98%) rename assets/js/{086f0ef7.06740d57.js => 086f0ef7.71fc63d0.js} (99%) rename assets/js/{0a1f7513.1a8d8709.js => 0a1f7513.bfcb5015.js} (99%) rename assets/js/{0ad179ee.bec8593d.js => 0ad179ee.896ee1d9.js} (98%) rename assets/js/{0b36e747.48951afd.js => 0b36e747.141a564a.js} (98%) rename assets/js/{0b7620c8.c07dc691.js => 0b7620c8.f73f20aa.js} (98%) rename assets/js/{0dc7fd42.a4c05598.js => 0dc7fd42.04ec3dc5.js} (98%) rename assets/js/{0dfb2733.1473ab62.js => 0dfb2733.b8f854cb.js} (98%) rename assets/js/{0e133684.244cfd6d.js => 0e133684.aa505b43.js} (98%) rename assets/js/{0eefe494.18ba6973.js => 0eefe494.4c031b20.js} (98%) rename assets/js/{0f04c4bf.08303893.js => 0f04c4bf.078cb5b4.js} (98%) rename assets/js/{12d1694e.5d56002f.js => 12d1694e.169552a5.js} (99%) rename assets/js/{1387c807.1a2cdcb5.js => 1387c807.c71101bd.js} (99%) rename assets/js/{15ae2b3f.bd6c06d8.js => 15ae2b3f.fa2d1957.js} (99%) rename assets/js/{1830dc74.d556ae5c.js => 1830dc74.c0f37f30.js} (98%) rename assets/js/{18536aaa.3e9101c2.js => 18536aaa.72efd3c2.js} (99%) rename assets/js/{1aa9ac35.afb0f9ba.js => 1aa9ac35.635e5190.js} (99%) rename assets/js/{1ad4833d.397fbce0.js => 1ad4833d.21bccc7d.js} (98%) rename assets/js/{1b135b54.f0d7ce3c.js => 1b135b54.5e747482.js} (99%) rename assets/js/{1b25ada3.d8a21729.js => 1b25ada3.e67ac2c2.js} (99%) rename assets/js/{1c123384.13b547c0.js => 1c123384.6fcf45db.js} (98%) rename assets/js/{1c2262cb.86e99cde.js => 1c2262cb.b08dddb7.js} (98%) rename assets/js/{1c40b03d.54e3bf01.js => 1c40b03d.9f44da13.js} (97%) rename assets/js/{1d6606cd.0ad9f51e.js => 1d6606cd.349f8550.js} (99%) rename assets/js/{1df90d44.67807d71.js => 1df90d44.0612e746.js} (98%) rename assets/js/{1e8406f2.3569aba0.js => 1e8406f2.e00fc99a.js} (99%) rename assets/js/{1ea907ab.d54ea7c8.js => 1ea907ab.4d9c1c7e.js} (98%) rename assets/js/{1fa31a57.7bd0a209.js => 1fa31a57.a927347a.js} (98%) rename assets/js/{2015f8aa.547bde0e.js => 2015f8aa.3d200b54.js} (98%) rename assets/js/{2064198b.ac7cf158.js => 2064198b.0fa14954.js} (99%) rename assets/js/{20ecba9b.be50a049.js => 20ecba9b.08be5d8a.js} (99%) rename assets/js/{228940c7.9894dd93.js => 228940c7.6bc04ae3.js} (98%) rename assets/js/{22d8222a.60fecca2.js => 22d8222a.ca2d177b.js} (98%) rename assets/js/{249c18b0.daf6c1e9.js => 249c18b0.cbdb44df.js} (98%) rename assets/js/{25692582.6b7c8ff2.js => 25692582.ba1a7e12.js} (98%) rename assets/js/{26299e01.774c72bc.js => 26299e01.78d70061.js} (99%) rename assets/js/{26739764.a8f7d37f.js => 26739764.f52d7217.js} (98%) rename assets/js/{281494d0.df284659.js => 281494d0.778bf9a1.js} (99%) rename assets/js/{28f5562e.0c48756e.js => 28f5562e.e0a044d9.js} (99%) rename assets/js/{29ac29a0.5746f86d.js => 29ac29a0.6f0cb8ce.js} (98%) rename assets/js/{2a0a68ae.7dd79c0b.js => 2a0a68ae.0cbc192d.js} (98%) rename assets/js/{2a4fe0d4.2d0804a8.js => 2a4fe0d4.f01aeb6e.js} (98%) rename assets/js/{2a714a8e.e6fe5c76.js => 2a714a8e.efc328b7.js} (98%) rename assets/js/{2b486500.28b5a011.js => 2b486500.75cd73c8.js} (99%) rename assets/js/{2b5f2f35.b603469a.js => 2b5f2f35.176f01bf.js} (99%) rename assets/js/{2bc909a9.5b63bb79.js => 2bc909a9.3b82b900.js} (97%) rename assets/js/{2c29bcc5.9cacb31e.js => 2c29bcc5.d65d4e1b.js} (98%) rename assets/js/{2d2ef872.0e5d2435.js => 2d2ef872.d9932977.js} (99%) rename assets/js/{2dda2596.f4bd4794.js => 2dda2596.e92fe0f2.js} (97%) rename assets/js/{2e250d6d.6e626755.js => 2e250d6d.2865959b.js} (98%) rename assets/js/{2e955f05.50b622f6.js => 2e955f05.8bddec1d.js} (98%) rename assets/js/{2fa90042.650aa37e.js => 2fa90042.b2f6f7c3.js} (98%) rename assets/js/{319ed101.ee06c352.js => 319ed101.cec8ab22.js} (98%) rename assets/js/{32dcf95e.f73cd1af.js => 32dcf95e.97c92707.js} (99%) rename assets/js/{32ef234c.04f8cc18.js => 32ef234c.63168f39.js} (98%) rename assets/js/{3474579f.eedc05a4.js => 3474579f.5b350339.js} (99%) rename assets/js/{34be6e6a.58c2a41e.js => 34be6e6a.3e7c90ac.js} (99%) rename assets/js/{350be966.1b3e6221.js => 350be966.a9a61c84.js} (98%) rename assets/js/{35b5dc5a.cc9b5176.js => 35b5dc5a.7829f5c5.js} (98%) rename assets/js/{35d73bf2.be489659.js => 35d73bf2.ec4e916a.js} (98%) rename assets/js/{36351059.d238766b.js => 36351059.20dee2ae.js} (98%) rename assets/js/{3790afcd.93c5acb9.js => 3790afcd.c27c4cb8.js} (98%) rename assets/js/{3815e5ff.bd41bde2.js => 3815e5ff.c26dce9c.js} (99%) rename assets/js/{397e604e.46cbf351.js => 397e604e.3db42bde.js} (98%) rename assets/js/{398dd9ed.7a094a8d.js => 398dd9ed.db4897c0.js} (99%) rename assets/js/{399850d1.439fd7ad.js => 399850d1.9ee49c22.js} (99%) rename assets/js/{39e40f36.cd8f95a9.js => 39e40f36.006c70ba.js} (98%) rename assets/js/{3b2c25df.96f88b59.js => 3b2c25df.5882c2aa.js} (99%) rename assets/js/{3b47b6b5.82b21006.js => 3b47b6b5.a099bb48.js} (98%) rename assets/js/{3bd11cc0.867f1a45.js => 3bd11cc0.e9f9f3c4.js} (98%) rename assets/js/{3c356cd2.94cf967e.js => 3c356cd2.bb5d4b18.js} (99%) rename assets/js/{3c4f1597.359fabbd.js => 3c4f1597.7da9beb2.js} (98%) rename assets/js/{3e116dbc.7e483a79.js => 3e116dbc.7fcb0d09.js} (98%) rename assets/js/{3eef7308.97c971e4.js => 3eef7308.a32bcc05.js} (98%) rename assets/js/{3f06bf29.f4f78dbc.js => 3f06bf29.8df782b0.js} (99%) rename assets/js/{42c9ab86.fb4d466e.js => 42c9ab86.67242235.js} (98%) rename assets/js/{42fe7d73.e61b9001.js => 42fe7d73.68f0873a.js} (98%) rename assets/js/{44c08670.e97ee001.js => 44c08670.29705e97.js} (99%) rename assets/js/{455d41bc.eff58370.js => 455d41bc.492f72cc.js} (98%) rename assets/js/{461e82b5.427796e5.js => 461e82b5.30e79dc5.js} (99%) rename assets/js/{46c2ebc5.407f7609.js => 46c2ebc5.3deeab56.js} (99%) rename assets/js/{47d775f0.36ef99b3.js => 47d775f0.8d8f1c71.js} (99%) rename assets/js/{489cc4f4.56438c24.js => 489cc4f4.548c8178.js} (98%) rename assets/js/{4a7a0e3b.b50196cc.js => 4a7a0e3b.2b4626d6.js} (98%) rename assets/js/{4af85ab8.49c16c42.js => 4af85ab8.944cf0a1.js} (98%) rename assets/js/{4b0ccf38.9ef8f6e9.js => 4b0ccf38.5cd1f43d.js} (99%) rename assets/js/{4d36f4bb.1c89bc29.js => 4d36f4bb.11513ed3.js} (98%) rename assets/js/{4d86c8f8.b112c4d2.js => 4d86c8f8.8b1f146e.js} (98%) rename assets/js/{4ed715ca.38633ace.js => 4ed715ca.4d8052db.js} (98%) rename assets/js/{4f086afd.72650a3f.js => 4f086afd.9e2fb63c.js} (99%) rename assets/js/{4f6149ca.fb80bb24.js => 4f6149ca.6da63705.js} (98%) rename assets/js/{4fb554a1.2ca029ea.js => 4fb554a1.45adcf24.js} (99%) rename assets/js/{50eef34b.231af15e.js => 50eef34b.99f6638b.js} (99%) rename assets/js/{52135254.782697c6.js => 52135254.b376a4de.js} (98%) rename assets/js/{5535d7af.a62da13a.js => 5535d7af.a725cde6.js} (98%) rename assets/js/{576ec208.2ad686f2.js => 576ec208.7c9697ee.js} (98%) rename assets/js/{582dea03.bff6b099.js => 582dea03.8d0c3fff.js} (98%) rename assets/js/{588433b1.366631af.js => 588433b1.86081721.js} (99%) rename assets/js/{5886a939.1b7a773f.js => 5886a939.643a03e9.js} (98%) rename assets/js/{5ae76acd.c7a970d3.js => 5ae76acd.50942ceb.js} (99%) rename assets/js/{5b270517.e4eb019e.js => 5b270517.e33ff50f.js} (98%) rename assets/js/{5b89160d.ca3041cc.js => 5b89160d.705cd254.js} (98%) rename assets/js/{5ca6a2d2.f1a3fbd5.js => 5ca6a2d2.2e6a9a6c.js} (99%) rename assets/js/{5d0c646c.46b0bfa5.js => 5d0c646c.ef82c2a2.js} (98%) rename assets/js/{5d4ec3d4.fbc1fa68.js => 5d4ec3d4.25f0fa19.js} (98%) rename assets/js/{5e266219.5ae846d6.js => 5e266219.214696cf.js} (98%) rename assets/js/{5f2eed60.4965f123.js => 5f2eed60.4f1bcaa2.js} (98%) rename assets/js/{5f897b5c.76b666ac.js => 5f897b5c.1809de10.js} (98%) rename assets/js/{61127ee0.8d7ef7d6.js => 61127ee0.4d6c2b6c.js} (99%) rename assets/js/{62465e63.2e9e0896.js => 62465e63.d6d29435.js} (98%) rename assets/js/{62781bcd.96f71929.js => 62781bcd.b25aa34a.js} (99%) rename assets/js/{6360ef06.ac828409.js => 6360ef06.861b4d47.js} (99%) rename assets/js/{64c9ca80.c9db806a.js => 64c9ca80.c39c9465.js} (98%) rename assets/js/{65c56656.8225f00e.js => 65c56656.e6f0696a.js} (99%) rename assets/js/{67e91227.1af35cd9.js => 67e91227.f3d66ef3.js} (98%) rename assets/js/{68202b49.a71e5b4f.js => 68202b49.64d11bdb.js} (98%) rename assets/js/{68699a4c.ba00d9ee.js => 68699a4c.7610f53d.js} (98%) rename assets/js/{6b91e1af.6ff87f1d.js => 6b91e1af.502ff697.js} (98%) rename assets/js/{6bfc7002.29c1b97a.js => 6bfc7002.885c7667.js} (98%) rename assets/js/{6c0bce26.2fe608bb.js => 6c0bce26.d115ccbc.js} (98%) rename assets/js/{6c9e9146.3f988669.js => 6c9e9146.c5e4e932.js} (98%) rename assets/js/{6cce85b2.a94972e8.js => 6cce85b2.474c3b81.js} (98%) rename assets/js/{6de29db3.df7732ec.js => 6de29db3.50405f2f.js} (98%) rename assets/js/{72b2f356.a35af79a.js => 72b2f356.a49e096d.js} (98%) rename assets/js/{73162314.ccda7320.js => 73162314.5c49cc87.js} (99%) rename assets/js/{74adc76f.fcbcb610.js => 74adc76f.f1f48d11.js} (98%) rename assets/js/{75219fff.9970b0e0.js => 75219fff.b99b318c.js} (98%) rename assets/js/{795941ce.ac4c5e96.js => 795941ce.fe823bff.js} (98%) rename assets/js/{7a58d7fa.9e3ddda1.js => 7a58d7fa.74cd9703.js} (99%) rename assets/js/{7c0c45cc.643a00a0.js => 7c0c45cc.519f0122.js} (99%) rename assets/js/{7c66c59a.4c8280f8.js => 7c66c59a.f3c3d8d5.js} (99%) rename assets/js/{7f32d532.b835f723.js => 7f32d532.8f07cf33.js} (98%) rename assets/js/{80403a0b.16116f75.js => 80403a0b.037e6f78.js} (99%) rename assets/js/{817aa27b.b523675b.js => 817aa27b.7871b478.js} (99%) rename assets/js/{826108d9.045ca77a.js => 826108d9.3d2a574d.js} (98%) rename assets/js/{8303fa10.a92d1772.js => 8303fa10.d5c53bd3.js} (98%) rename assets/js/{8497e197.17aca05f.js => 8497e197.259bf307.js} (99%) rename assets/js/{84ea7d53.7dd21578.js => 84ea7d53.c3cd7483.js} (99%) rename assets/js/{89a98191.64ebcfef.js => 89a98191.48b42cfe.js} (99%) rename assets/js/{8a1a07c4.8782edfd.js => 8a1a07c4.26cb9082.js} (98%) rename assets/js/{8ac6cabb.48b06724.js => 8ac6cabb.caaf6c92.js} (99%) rename assets/js/{8b59d635.04d7277d.js => 8b59d635.00f2a92e.js} (99%) rename assets/js/{8b70c8d9.f748a378.js => 8b70c8d9.b7375323.js} (98%) rename assets/js/{8cc20a8d.54f2cca8.js => 8cc20a8d.25e38ce2.js} (98%) rename assets/js/{8d7693a3.914c5c91.js => 8d7693a3.7aed3b76.js} (99%) rename assets/js/{8dc1e402.fa5cf5a8.js => 8dc1e402.02e6634b.js} (99%) rename assets/js/{8f9566ba.e191767a.js => 8f9566ba.d7dfe29e.js} (99%) rename assets/js/{8fdf64da.bbdc61a6.js => 8fdf64da.7f7d11bd.js} (98%) rename assets/js/{9062da7c.24a339cc.js => 9062da7c.0d6a871e.js} (98%) rename assets/js/{90f76576.b3dae0e2.js => 90f76576.c482fe87.js} (98%) rename assets/js/{916bb7d8.64a906f4.js => 916bb7d8.9a833032.js} (98%) rename assets/js/{917fe9d9.617ecd0b.js => 917fe9d9.5c92e351.js} (98%) rename assets/js/{935f2afb.283bb44c.js => 935f2afb.212b0314.js} (63%) rename assets/js/{94529d15.4ca1b589.js => 94529d15.0133ad38.js} (98%) rename assets/js/{947d4688.a4ae18ab.js => 947d4688.3fbfa52a.js} (98%) rename assets/js/{955edfb7.0b86b94f.js => 955edfb7.dc907cae.js} (99%) rename assets/js/{96162fed.8df9de03.js => 96162fed.8e6916cc.js} (98%) rename assets/js/{9703c56f.1584be30.js => 9703c56f.2e1faa5b.js} (99%) rename assets/js/{97b42080.33630eb4.js => 97b42080.eccf773e.js} (99%) rename assets/js/{9801fcb7.c44cd820.js => 9801fcb7.6252203f.js} (99%) rename assets/js/{9a914db6.567aee39.js => 9a914db6.7e565bfe.js} (98%) rename assets/js/{9ad28e53.452a51b6.js => 9ad28e53.4e3a6ebc.js} (98%) rename assets/js/{9c88f308.5e96b36b.js => 9c88f308.24effc97.js} (98%) rename assets/js/{9d0163be.17682dd7.js => 9d0163be.7e969d5d.js} (98%) rename assets/js/{9f5c6157.b232f354.js => 9f5c6157.05e31138.js} (98%) rename assets/js/{a3633e48.e628211d.js => a3633e48.394bbaed.js} (98%) rename assets/js/{a47a01cb.2d2c2f02.js => a47a01cb.2a8830b4.js} (98%) rename assets/js/{a4c44b85.ab722ef8.js => a4c44b85.1ced885d.js} (99%) rename assets/js/{a53f992a.e6759ef2.js => a53f992a.33532fe0.js} (98%) rename assets/js/{a5cbff69.fbbaab27.js => a5cbff69.36836426.js} (98%) rename assets/js/{a633caa1.59c9e998.js => a633caa1.c9ec87bb.js} (98%) rename assets/js/{a6c94d4c.5b5b9d87.js => a6c94d4c.31bbb729.js} (98%) rename assets/js/{a7f1c1ae.665a16ab.js => a7f1c1ae.b3423448.js} (99%) rename assets/js/{aae926f6.c4a0ded7.js => aae926f6.0107ebee.js} (99%) rename assets/js/{ac6e53b7.015f41fe.js => ac6e53b7.06984711.js} (98%) rename assets/js/{aef8cf14.3bd4dc09.js => aef8cf14.1b3d1d15.js} (98%) rename assets/js/{afde6f8f.5c99c68b.js => afde6f8f.6a078c10.js} (99%) rename assets/js/{b14b689b.a1fcb599.js => b14b689b.c59f402d.js} (99%) rename assets/js/{b153ec3c.f0c06148.js => b153ec3c.0b98d037.js} (99%) rename assets/js/{b2645d4e.c35e97d2.js => b2645d4e.29470d76.js} (98%) rename assets/js/{b34206f0.0b4f30bb.js => b34206f0.75c8fee8.js} (99%) rename assets/js/{b38419a7.5b9dd0e4.js => b38419a7.81960b8c.js} (99%) rename assets/js/{b39354b4.5e1e0b8d.js => b39354b4.2ae3c876.js} (98%) rename assets/js/{b4a7dd16.edf90dda.js => b4a7dd16.64a2b0ba.js} (98%) rename assets/js/{b6694e92.85a07f44.js => b6694e92.f6d5bb77.js} (98%) rename assets/js/{b8eb6aba.cb8c54e1.js => b8eb6aba.45bec3e0.js} (98%) rename assets/js/{bb29b3f8.76d98e17.js => bb29b3f8.75f19d8f.js} (98%) rename assets/js/{bc4e745a.4a72e410.js => bc4e745a.4a32cf30.js} (98%) rename assets/js/{be2a55e4.95989fc7.js => be2a55e4.e57f52df.js} (98%) rename assets/js/{c06ef779.872f6b30.js => c06ef779.82be93a6.js} (99%) rename assets/js/{c348e262.943cda73.js => c348e262.c40a1436.js} (98%) rename assets/js/{c3633f34.f4690953.js => c3633f34.612fd3ee.js} (99%) rename assets/js/{c38cd4f0.d921778b.js => c38cd4f0.d9124b31.js} (99%) rename assets/js/{c50996a1.630fa230.js => c50996a1.7a64c4d0.js} (98%) rename assets/js/{c624ce3c.5e1c80bc.js => c624ce3c.20559fe0.js} (98%) rename assets/js/{c7df6888.5113cef7.js => c7df6888.5ddc01d8.js} (98%) rename assets/js/{c7fe4f6d.886d50c2.js => c7fe4f6d.f207a55e.js} (98%) rename assets/js/{c86c7bbe.6ba3aa7f.js => c86c7bbe.d172dc30.js} (99%) rename assets/js/{c9298fde.82505b6a.js => c9298fde.daf650ab.js} (98%) rename assets/js/{c99ad496.827aeec7.js => c99ad496.3ab7edc8.js} (99%) rename assets/js/{c9e57e8c.6db6e867.js => c9e57e8c.6e03f511.js} (99%) rename assets/js/{cadc4043.f0c74ab6.js => cadc4043.0be5bea5.js} (99%) rename assets/js/{cd56b708.3d56d553.js => cd56b708.44db628c.js} (98%) rename assets/js/{ce0c2574.d21e388d.js => ce0c2574.56fc44a0.js} (98%) rename assets/js/{d1731c9c.abda2881.js => d1731c9c.a0ed16fc.js} (98%) rename assets/js/{d188aee2.3a620c16.js => d188aee2.8c4dadda.js} (99%) rename assets/js/{d29ac9c5.ce76ad4b.js => d29ac9c5.d6afbdd9.js} (98%) rename assets/js/{d3208707.84fb3cd4.js => d3208707.99faf58d.js} (99%) rename assets/js/{d4bb2cb0.c4f0b7e5.js => d4bb2cb0.a328ce51.js} (99%) rename assets/js/{d864a059.c67fbeaa.js => d864a059.0e4d76fd.js} (98%) rename assets/js/{d8990390.e2d957e4.js => d8990390.42cdaa2e.js} (99%) rename assets/js/{d8a12065.a01b8948.js => d8a12065.47e023f0.js} (98%) rename assets/js/{d924bf19.5114fada.js => d924bf19.f8d99d31.js} (99%) rename assets/js/{d92575b7.833057b1.js => d92575b7.51959833.js} (98%) rename assets/js/{da59034b.56274eb9.js => da59034b.e20cf0fd.js} (98%) rename assets/js/{dae804dd.5879bbb9.js => dae804dd.957054be.js} (98%) rename assets/js/{dd0f37bd.8a0d5eef.js => dd0f37bd.587d9288.js} (98%) rename assets/js/{de78196c.6e123313.js => de78196c.8c3a9266.js} (98%) rename assets/js/{e0041558.14594a4f.js => e0041558.fee4e886.js} (98%) rename assets/js/{e17376a0.f9c6e8c4.js => e17376a0.e4af7b37.js} (98%) rename assets/js/{e2835ef4.325a8b22.js => e2835ef4.627acfe3.js} (99%) rename assets/js/{e36fd319.bee5008f.js => e36fd319.274743c4.js} (98%) rename assets/js/{e3905ad3.38bd1942.js => e3905ad3.bfb0030c.js} (98%) rename assets/js/{e49c089a.aca343db.js => e49c089a.cb5a3491.js} (98%) rename assets/js/{e4e6cea9.edb078a9.js => e4e6cea9.d0fab417.js} (98%) rename assets/js/{e7da4cec.cd6a8ac9.js => e7da4cec.8a6e4f8e.js} (98%) rename assets/js/{e907057a.d053804a.js => e907057a.1b69b4d6.js} (98%) rename assets/js/{e92b6e83.770b6a05.js => e92b6e83.c95b7a26.js} (99%) rename assets/js/{e983cebe.0e5178b9.js => e983cebe.0557611e.js} (99%) rename assets/js/{eb3908da.2438faa5.js => eb3908da.56b46bc2.js} (99%) rename assets/js/{eb846286.c2ba564b.js => eb846286.093871f7.js} (98%) rename assets/js/{ecff2ea2.dff7464e.js => ecff2ea2.4aa923f3.js} (98%) rename assets/js/{ed011da4.679d7751.js => ed011da4.fce7f23d.js} (99%) rename assets/js/{ed01863f.948180e2.js => ed01863f.7d6940fc.js} (99%) rename assets/js/{ed9ae553.8ffe15e1.js => ed9ae553.c539936a.js} (99%) rename assets/js/{ee028c53.cea852e6.js => ee028c53.920c03c3.js} (98%) rename assets/js/{ee6139c1.5896c960.js => ee6139c1.649eec1c.js} (98%) rename assets/js/{eef634fe.53980a4b.js => eef634fe.911e7e74.js} (99%) rename assets/js/{f12f9261.841f6379.js => f12f9261.25961184.js} (99%) rename assets/js/{f1999a3d.9b5dd8e0.js => f1999a3d.01ab1538.js} (99%) rename assets/js/{f1ef9b9d.ab3450f7.js => f1ef9b9d.7358ee86.js} (98%) rename assets/js/{f1f3474f.57a881f5.js => f1f3474f.166af15d.js} (99%) rename assets/js/{f3a30e95.8134eb85.js => f3a30e95.3f34e3b3.js} (99%) rename assets/js/{f5515f41.768d4f24.js => f5515f41.b8097466.js} (98%) rename assets/js/{f6ece308.a482f197.js => f6ece308.76a8675c.js} (98%) rename assets/js/{f702ddaf.255ba422.js => f702ddaf.dc81f34f.js} (99%) rename assets/js/{f7453080.07fb8db9.js => f7453080.cb71f9be.js} (99%) rename assets/js/{f7ec4137.45dd7613.js => f7ec4137.8c01c8d1.js} (98%) rename assets/js/{f90dc98f.5df4dc0d.js => f90dc98f.57930f25.js} (99%) rename assets/js/{f9b897e3.cee8415a.js => f9b897e3.76ac1e9c.js} (98%) rename assets/js/{fa157919.24bd13ba.js => fa157919.9ae63740.js} (99%) rename assets/js/{fb9c91a0.5698a5a7.js => fb9c91a0.f5d29b35.js} (71%) rename assets/js/{fbc1a65b.5348b48d.js => fbc1a65b.24b4ac24.js} (98%) rename assets/js/{ff928e4a.0389e650.js => ff928e4a.c57b728a.js} (98%) rename assets/js/{ffb15ddc.4a21d931.js => ffb15ddc.554efaa0.js} (98%) rename assets/js/{runtime~main.040c76f4.js => runtime~main.f0445b5d.js} (58%) diff --git a/404.html b/404.html index ff987a617..814a6fb11 100644 --- a/404.html +++ b/404.html @@ -11,13 +11,13 @@ - +
跳到主要内容

找不到页面

我们找不到您要找的页面。

请联系原始链接来源网站的所有者,并告知他们链接已损坏。

- + \ No newline at end of file diff --git a/about/index.html b/about/index.html index 964981b51..c45f802b9 100644 --- a/about/index.html +++ b/about/index.html @@ -11,13 +11,13 @@ - +
跳到主要内容

关于

您好,我是一名专注于云平台开发的工程师。我拥有多年的云平台开发经验,熟练掌握云平台相关技术和业务。

在我的职业生涯中,我曾参与过多个云平台的开发项目,包括公有云、私有部署、定制项目等。我擅长使用 Vue、Java 来构建可靠、高效的云平台解决方案。

此外,我还具备良好的团队协作和沟通能力,能够与其他团队成员配合完成复杂的项目开发任务。同时,我也善于学习和钻研新技术,不断提升自己的技能和水平。

总之,我是一名充满热情和创造力的云平台开发者,致力于为客户提供高质量、高效的解决方案。

YiRanCN,这是我的 GitHub 主页,欢迎大家 follow 和 star。

微信号:jiot_cloud 邮箱:jiotcloud@163.com

img

采用最主流、最前沿的的编程语言和技术框架:

  • JDK17/Spring6/SpringBoot3
  • hivemq/mqtt
  • Netty4
  • ts/Vue3/arco.design
  • flutter/dart
  • 其他
- + \ No newline at end of file diff --git a/assets/js/009da349.214eefd6.js b/assets/js/009da349.a9881680.js similarity index 98% rename from assets/js/009da349.214eefd6.js rename to assets/js/009da349.a9881680.js index 7800ddaf3..0dc9d58ec 100644 --- a/assets/js/009da349.214eefd6.js +++ b/assets/js/009da349.a9881680.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5093],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),u=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(c.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),s=u(r),d=a,f=s["".concat(c,".").concat(d)]||s[d]||y[d]||o;return r?n.createElement(f,i(i({ref:t},p),{},{components:r})):n.createElement(f,i({ref:t},p))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=d;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[s]="string"==typeof e?e:a,i[1]=l;for(var u=2;u{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>y,frontMatter:()=>o,metadata:()=>l,toc:()=>u});var n=r(8168),a=(r(6540),r(5680));const o={sidebar_position:1},i="\u6982\u8ff0",l={unversionedId:"study/back/index",id:"study/back/index",title:"\u6982\u8ff0",description:"\u540e\u7aef\u662f\u76f8\u5f53\u4e8e\u524d\u7aef\u6765\u8bf4\u7684\uff0c\u7528\u6237\u770b\u4e0d\u5230\u7684\u5185\u5bb9\u7edf\u4e00\u6210\u4e3a\u540e\u7aef\uff0c\u540e\u7aef\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\uff1a",source:"@site/docs/study/back/index.md",sourceDirName:"study/back",slug:"/study/back/",permalink:"/docs/study/back/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"\u4f4e\u4ee3\u7801\u53ef\u89c6\u5316\u5e73\u53f0",permalink:"/docs/study/fe/\u4f4e\u4ee3\u7801\u53ef\u89c6\u5316\u5e73\u53f0"},next:{title:"Zookeeper",permalink:"/docs/study/back/Zookeeper"}},c={},u=[{value:"\u53c2\u8003\u8d44\u6599",id:"\u53c2\u8003\u8d44\u6599",level:3}],p={toc:u},s="wrapper";function y(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,a.yg)("p",null,"\u540e\u7aef\u662f\u76f8\u5f53\u4e8e\u524d\u7aef\u6765\u8bf4\u7684\uff0c\u7528\u6237\u770b\u4e0d\u5230\u7684\u5185\u5bb9\u7edf\u4e00\u6210\u4e3a\u540e\u7aef\uff0c\u540e\u7aef\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"API \u63a5\u53e3"),(0,a.yg)("li",{parentName:"ul"},"\u6570\u636e\u5e93"),(0,a.yg)("li",{parentName:"ul"},"\u534f\u8bae\u4ea4\u4e92\u670d\u52a1\u7aef"),(0,a.yg)("li",{parentName:"ul"},"websocket \u670d\u52a1\u7aef"),(0,a.yg)("li",{parentName:"ul"},"\u77ed\u4fe1\u3001\u90ae\u4ef6\u670d\u52a1"),(0,a.yg)("li",{parentName:"ul"},"\u96c6\u7fa4\u670d\u52a1\u3001\u5206\u5e03\u5f0f\u670d\u52a1")),(0,a.yg)("h3",{id:"\u53c2\u8003\u8d44\u6599"},"\u53c2\u8003\u8d44\u6599"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/535122950"},"\u5f20\u5f66\u98de-\u4e0a\u624b\u62a5\u544a\uff5c\u4eca\u5929\u804a\u804a\u817e\u8baf\u76ee\u524d\u5728\u7528\u7684\u5fae\u670d\u52a1\u67b6\u6784\uff01"))))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5093],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),u=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(c.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),s=u(r),d=a,f=s["".concat(c,".").concat(d)]||s[d]||y[d]||o;return r?n.createElement(f,i(i({ref:t},p),{},{components:r})):n.createElement(f,i({ref:t},p))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=d;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[s]="string"==typeof e?e:a,i[1]=l;for(var u=2;u{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>y,frontMatter:()=>o,metadata:()=>l,toc:()=>u});var n=r(8168),a=(r(6540),r(5680));const o={sidebar_position:1},i="\u6982\u8ff0",l={unversionedId:"study/back/index",id:"study/back/index",title:"\u6982\u8ff0",description:"\u540e\u7aef\u662f\u76f8\u5f53\u4e8e\u524d\u7aef\u6765\u8bf4\u7684\uff0c\u7528\u6237\u770b\u4e0d\u5230\u7684\u5185\u5bb9\u7edf\u4e00\u6210\u4e3a\u540e\u7aef\uff0c\u540e\u7aef\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\uff1a",source:"@site/docs/study/back/index.md",sourceDirName:"study/back",slug:"/study/back/",permalink:"/docs/study/back/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"\u4f4e\u4ee3\u7801\u53ef\u89c6\u5316\u5e73\u53f0",permalink:"/docs/study/fe/\u4f4e\u4ee3\u7801\u53ef\u89c6\u5316\u5e73\u53f0"},next:{title:"Zookeeper",permalink:"/docs/study/back/Zookeeper"}},c={},u=[{value:"\u53c2\u8003\u8d44\u6599",id:"\u53c2\u8003\u8d44\u6599",level:3}],p={toc:u},s="wrapper";function y(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,a.yg)("p",null,"\u540e\u7aef\u662f\u76f8\u5f53\u4e8e\u524d\u7aef\u6765\u8bf4\u7684\uff0c\u7528\u6237\u770b\u4e0d\u5230\u7684\u5185\u5bb9\u7edf\u4e00\u6210\u4e3a\u540e\u7aef\uff0c\u540e\u7aef\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"API \u63a5\u53e3"),(0,a.yg)("li",{parentName:"ul"},"\u6570\u636e\u5e93"),(0,a.yg)("li",{parentName:"ul"},"\u534f\u8bae\u4ea4\u4e92\u670d\u52a1\u7aef"),(0,a.yg)("li",{parentName:"ul"},"websocket \u670d\u52a1\u7aef"),(0,a.yg)("li",{parentName:"ul"},"\u77ed\u4fe1\u3001\u90ae\u4ef6\u670d\u52a1"),(0,a.yg)("li",{parentName:"ul"},"\u96c6\u7fa4\u670d\u52a1\u3001\u5206\u5e03\u5f0f\u670d\u52a1")),(0,a.yg)("h3",{id:"\u53c2\u8003\u8d44\u6599"},"\u53c2\u8003\u8d44\u6599"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/535122950"},"\u5f20\u5f66\u98de-\u4e0a\u624b\u62a5\u544a\uff5c\u4eca\u5929\u804a\u804a\u817e\u8baf\u76ee\u524d\u5728\u7528\u7684\u5fae\u670d\u52a1\u67b6\u6784\uff01"))))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/013f59b8.7d48438c.js b/assets/js/013f59b8.8d1e76c5.js similarity index 99% rename from assets/js/013f59b8.7d48438c.js rename to assets/js/013f59b8.8d1e76c5.js index f92c4dcfb..5fd8414a8 100644 --- a/assets/js/013f59b8.7d48438c.js +++ b/assets/js/013f59b8.8d1e76c5.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3325],{5680:(e,t,n)=>{n.d(t,{xA:()=>p,yg:()=>f});var r=n(6540);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var i=r.createContext({}),u=function(e){var t=r.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},p=function(e){var t=u(e.components);return r.createElement(i.Provider,{value:t},e.children)},d="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,c=e.originalType,i=e.parentName,p=a(e,["components","mdxType","originalType","parentName"]),d=u(n),y=o,f=d["".concat(i,".").concat(y)]||d[y]||s[y]||c;return n?r.createElement(f,l(l({ref:t},p),{},{components:n})):r.createElement(f,l({ref:t},p))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var c=n.length,l=new Array(c);l[0]=y;var a={};for(var i in t)hasOwnProperty.call(t,i)&&(a[i]=t[i]);a.originalType=e,a[d]="string"==typeof e?e:o,l[1]=a;for(var u=2;u{n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>s,frontMatter:()=>c,metadata:()=>a,toc:()=>u});var r=n(8168),o=(n(6540),n(5680));const c={sidebar_position:3},l="TCP \u8bbe\u5907\u63a5\u5165",a={unversionedId:"iotcloud/connect/tcp",id:"iotcloud/connect/tcp",title:"TCP \u8bbe\u5907\u63a5\u5165",description:"TCP \u63a5\u5165\u5e94\u8be5\u5c5e\u4e8e\u6700\u4e3a\u4f20\u7edf\u7684\u63a5\u5165\u65b9\u5f0f\uff0c\u534f\u8bae\u53ef\u4ee5\u91c7\u7528\u79c1\u6709\u534f\u8bae\u6216\u901a\u7528\u7684 Modbus \u7b49\u3002",source:"@site/docs/iotcloud/connect/tcp.md",sourceDirName:"iotcloud/connect",slug:"/iotcloud/connect/tcp",permalink:"/docs/iotcloud/connect/tcp",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"iotCloudSidebar",previous:{title:"MQTT \u8bbe\u5907\u63a5\u5165",permalink:"/docs/iotcloud/connect/mqtt"},next:{title:"HTTP \u8bbe\u5907\u63a5\u5165",permalink:"/docs/iotcloud/connect/http"}},i={},u=[{value:"TCP \u6ce8\u518c\u5305",id:"tcp-\u6ce8\u518c\u5305",level:4},{value:"ModbusRTU \u4e91\u7aef\u8f6e\u8be2\u6a21\u5f0f",id:"modbusrtu-\u4e91\u7aef\u8f6e\u8be2\u6a21\u5f0f",level:4},{value:"\u4e8c\u7ea7\u5236\u79c1\u6709\u534f\u8bae \u4e91\u7aef\u8f6e\u8be2\u6a21\u5f0f",id:"\u4e8c\u7ea7\u5236\u79c1\u6709\u534f\u8bae-\u4e91\u7aef\u8f6e\u8be2\u6a21\u5f0f",level:4},{value:"\u6587\u672c\u79c1\u6709\u534f\u8bae \u4e91\u7aef\u8f6e\u8be2\u6a21\u5f0f",id:"\u6587\u672c\u79c1\u6709\u534f\u8bae-\u4e91\u7aef\u8f6e\u8be2\u6a21\u5f0f",level:4}],p={toc:u},d="wrapper";function s(e){let{components:t,...n}=e;return(0,o.yg)(d,(0,r.A)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"tcp-\u8bbe\u5907\u63a5\u5165"},"TCP \u8bbe\u5907\u63a5\u5165"),(0,o.yg)("p",null,"TCP \u63a5\u5165\u5e94\u8be5\u5c5e\u4e8e\u6700\u4e3a\u4f20\u7edf\u7684\u63a5\u5165\u65b9\u5f0f\uff0c\u534f\u8bae\u53ef\u4ee5\u91c7\u7528\u79c1\u6709\u534f\u8bae\u6216\u901a\u7528\u7684 Modbus \u7b49\u3002"),(0,o.yg)("p",null,"\u672c\u5e73\u53f0\u5b9e\u73b0\u4e86 ModbusRTU \u534f\u8bae\uff0c\u4ee5\u53ca\u652f\u6301\u79c1\u6709\u534f\u8bae\u7684 TCP \u4e8c\u8fdb\u5236\u3001TCP \u6587\u672c\u534f\u8bae\u3002"),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"\u7279\u522b\u8bf4\u660e"),"\uff0cTCP \u8bbe\u5907\u63a5\u5165\uff0c\u4e91\u7aef\u4f5c\u4e3a TCP \u7684\u670d\u52a1\u7aef\uff0c\u66b4\u6f0f\u7684 15000 \u7aef\u53e3\u53f7\uff0c\u8bbe\u5907\u7aef\u4f5c\u4e3a TCP \u7684\u5ba2\u6237\u7aef\u3002"),(0,o.yg)("p",null,"\u76ee\u524d\uff0c\u8be5\u5e73\u53f0\u5b9e\u73b0\u4ee5\u4e0b\u4e09\u79cd\u6a21\u5f0f\uff1a"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"ModbusRTU \u4e91\u7aef\u8f6e\u8be2\u6a21\u5f0f"),(0,o.yg)("li",{parentName:"ul"},"\u4e8c\u7ea7\u5236\u79c1\u6709\u534f\u8bae \u4e91\u7aef\u8f6e\u8be2\u6a21\u5f0f"),(0,o.yg)("li",{parentName:"ul"},"\u6587\u672c\u79c1\u6709\u534f\u8bae \u4e91\u7aef\u8f6e\u8be2\u6a21\u5f0f")),(0,o.yg)("h4",{id:"tcp-\u6ce8\u518c\u5305"},"TCP \u6ce8\u518c\u5305"),(0,o.yg)("p",null,"\u4e09\u79cd\u6a21\u5f0f\u7684\u8bbe\u5907\u7aef\u6ce8\u518c\u5230\u4e91\u7aef\u7684\u65b9\u5f0f\u662f\u4e00\u6837\u7684\u3002"),(0,o.yg)("p",null,"\u8bbe\u5907\u7aef\u53d1\u8d77\u5230\u4e91\u7aef\u7684 TCP \u7684\u8fde\u63a5\u6210\u529f\u540e\uff0c\u5e94\u8be5\u7acb\u5373\u53d1\u9001\u6ce8\u518c\u5305\uff0c\u6ce8\u518c\u5305\u7684\u683c\u5f0f\u4e3a ",(0,o.yg)("strong",{parentName:"p"},"${device.code}&${device.pwd}"),"\u3002"),(0,o.yg)("p",null,"\u4e91\u7aef\u9a8c\u8bc1\u6210\u529f\u540e\uff0c\u540e\u7eed\u8bbe\u5907\u7aef\u53d1\u9001\u7684\u6d88\u606f\u624d\u4f1a\u88ab\u6b63\u5e38\u7684\u89e3\u6790\uff0c\u5426\u5219\u4e91\u7aef\u4f1a\u79bb\u5f00\u65ad\u6389 TCP \u8fde\u63a5\u3002"),(0,o.yg)("h4",{id:"modbusrtu-\u4e91\u7aef\u8f6e\u8be2\u6a21\u5f0f"},"ModbusRTU \u4e91\u7aef\u8f6e\u8be2\u6a21\u5f0f"),(0,o.yg)("p",null,"\u9009\u62e9\u4e86\u6b64\u79cd\u534f\u8bae\u683c\u5f0f\u7684\u8bbe\u5907\uff0c\u5e94\u8be5\u914d\u7f6e ",(0,o.yg)("strong",{parentName:"p"},"Modbus \u914d\u7f6e")," \uff0c\u8ba9\u5c5e\u6027\u548c\u5bc4\u5b58\u5668\u5efa\u7acb\u5173\u7cfb\uff0c\u4ee5\u4fdd\u8bc1\u4e91\u7aef\u53ef\u4ee5\u6839\u636e\u5173\u7cfb\u53bb\u8f6e\u8be2\u8bbe\u5907\u7684\u6570\u636e\u3002"),(0,o.yg)("h4",{id:"\u4e8c\u7ea7\u5236\u79c1\u6709\u534f\u8bae-\u4e91\u7aef\u8f6e\u8be2\u6a21\u5f0f"},"\u4e8c\u7ea7\u5236\u79c1\u6709\u534f\u8bae \u4e91\u7aef\u8f6e\u8be2\u6a21\u5f0f"),(0,o.yg)("h4",{id:"\u6587\u672c\u79c1\u6709\u534f\u8bae-\u4e91\u7aef\u8f6e\u8be2\u6a21\u5f0f"},"\u6587\u672c\u79c1\u6709\u534f\u8bae \u4e91\u7aef\u8f6e\u8be2\u6a21\u5f0f"))}s.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3325],{5680:(e,t,n)=>{n.d(t,{xA:()=>p,yg:()=>f});var r=n(6540);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var i=r.createContext({}),u=function(e){var t=r.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},p=function(e){var t=u(e.components);return r.createElement(i.Provider,{value:t},e.children)},d="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,c=e.originalType,i=e.parentName,p=a(e,["components","mdxType","originalType","parentName"]),d=u(n),y=o,f=d["".concat(i,".").concat(y)]||d[y]||s[y]||c;return n?r.createElement(f,l(l({ref:t},p),{},{components:n})):r.createElement(f,l({ref:t},p))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var c=n.length,l=new Array(c);l[0]=y;var a={};for(var i in t)hasOwnProperty.call(t,i)&&(a[i]=t[i]);a.originalType=e,a[d]="string"==typeof e?e:o,l[1]=a;for(var u=2;u{n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>s,frontMatter:()=>c,metadata:()=>a,toc:()=>u});var r=n(8168),o=(n(6540),n(5680));const c={sidebar_position:3},l="TCP \u8bbe\u5907\u63a5\u5165",a={unversionedId:"iotcloud/connect/tcp",id:"iotcloud/connect/tcp",title:"TCP \u8bbe\u5907\u63a5\u5165",description:"TCP \u63a5\u5165\u5e94\u8be5\u5c5e\u4e8e\u6700\u4e3a\u4f20\u7edf\u7684\u63a5\u5165\u65b9\u5f0f\uff0c\u534f\u8bae\u53ef\u4ee5\u91c7\u7528\u79c1\u6709\u534f\u8bae\u6216\u901a\u7528\u7684 Modbus \u7b49\u3002",source:"@site/docs/iotcloud/connect/tcp.md",sourceDirName:"iotcloud/connect",slug:"/iotcloud/connect/tcp",permalink:"/docs/iotcloud/connect/tcp",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"iotCloudSidebar",previous:{title:"MQTT \u8bbe\u5907\u63a5\u5165",permalink:"/docs/iotcloud/connect/mqtt"},next:{title:"HTTP \u8bbe\u5907\u63a5\u5165",permalink:"/docs/iotcloud/connect/http"}},i={},u=[{value:"TCP \u6ce8\u518c\u5305",id:"tcp-\u6ce8\u518c\u5305",level:4},{value:"ModbusRTU \u4e91\u7aef\u8f6e\u8be2\u6a21\u5f0f",id:"modbusrtu-\u4e91\u7aef\u8f6e\u8be2\u6a21\u5f0f",level:4},{value:"\u4e8c\u7ea7\u5236\u79c1\u6709\u534f\u8bae \u4e91\u7aef\u8f6e\u8be2\u6a21\u5f0f",id:"\u4e8c\u7ea7\u5236\u79c1\u6709\u534f\u8bae-\u4e91\u7aef\u8f6e\u8be2\u6a21\u5f0f",level:4},{value:"\u6587\u672c\u79c1\u6709\u534f\u8bae \u4e91\u7aef\u8f6e\u8be2\u6a21\u5f0f",id:"\u6587\u672c\u79c1\u6709\u534f\u8bae-\u4e91\u7aef\u8f6e\u8be2\u6a21\u5f0f",level:4}],p={toc:u},d="wrapper";function s(e){let{components:t,...n}=e;return(0,o.yg)(d,(0,r.A)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"tcp-\u8bbe\u5907\u63a5\u5165"},"TCP \u8bbe\u5907\u63a5\u5165"),(0,o.yg)("p",null,"TCP \u63a5\u5165\u5e94\u8be5\u5c5e\u4e8e\u6700\u4e3a\u4f20\u7edf\u7684\u63a5\u5165\u65b9\u5f0f\uff0c\u534f\u8bae\u53ef\u4ee5\u91c7\u7528\u79c1\u6709\u534f\u8bae\u6216\u901a\u7528\u7684 Modbus \u7b49\u3002"),(0,o.yg)("p",null,"\u672c\u5e73\u53f0\u5b9e\u73b0\u4e86 ModbusRTU \u534f\u8bae\uff0c\u4ee5\u53ca\u652f\u6301\u79c1\u6709\u534f\u8bae\u7684 TCP \u4e8c\u8fdb\u5236\u3001TCP \u6587\u672c\u534f\u8bae\u3002"),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"\u7279\u522b\u8bf4\u660e"),"\uff0cTCP \u8bbe\u5907\u63a5\u5165\uff0c\u4e91\u7aef\u4f5c\u4e3a TCP \u7684\u670d\u52a1\u7aef\uff0c\u66b4\u6f0f\u7684 15000 \u7aef\u53e3\u53f7\uff0c\u8bbe\u5907\u7aef\u4f5c\u4e3a TCP \u7684\u5ba2\u6237\u7aef\u3002"),(0,o.yg)("p",null,"\u76ee\u524d\uff0c\u8be5\u5e73\u53f0\u5b9e\u73b0\u4ee5\u4e0b\u4e09\u79cd\u6a21\u5f0f\uff1a"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"ModbusRTU \u4e91\u7aef\u8f6e\u8be2\u6a21\u5f0f"),(0,o.yg)("li",{parentName:"ul"},"\u4e8c\u7ea7\u5236\u79c1\u6709\u534f\u8bae \u4e91\u7aef\u8f6e\u8be2\u6a21\u5f0f"),(0,o.yg)("li",{parentName:"ul"},"\u6587\u672c\u79c1\u6709\u534f\u8bae \u4e91\u7aef\u8f6e\u8be2\u6a21\u5f0f")),(0,o.yg)("h4",{id:"tcp-\u6ce8\u518c\u5305"},"TCP \u6ce8\u518c\u5305"),(0,o.yg)("p",null,"\u4e09\u79cd\u6a21\u5f0f\u7684\u8bbe\u5907\u7aef\u6ce8\u518c\u5230\u4e91\u7aef\u7684\u65b9\u5f0f\u662f\u4e00\u6837\u7684\u3002"),(0,o.yg)("p",null,"\u8bbe\u5907\u7aef\u53d1\u8d77\u5230\u4e91\u7aef\u7684 TCP \u7684\u8fde\u63a5\u6210\u529f\u540e\uff0c\u5e94\u8be5\u7acb\u5373\u53d1\u9001\u6ce8\u518c\u5305\uff0c\u6ce8\u518c\u5305\u7684\u683c\u5f0f\u4e3a ",(0,o.yg)("strong",{parentName:"p"},"${device.code}&${device.pwd}"),"\u3002"),(0,o.yg)("p",null,"\u4e91\u7aef\u9a8c\u8bc1\u6210\u529f\u540e\uff0c\u540e\u7eed\u8bbe\u5907\u7aef\u53d1\u9001\u7684\u6d88\u606f\u624d\u4f1a\u88ab\u6b63\u5e38\u7684\u89e3\u6790\uff0c\u5426\u5219\u4e91\u7aef\u4f1a\u79bb\u5f00\u65ad\u6389 TCP \u8fde\u63a5\u3002"),(0,o.yg)("h4",{id:"modbusrtu-\u4e91\u7aef\u8f6e\u8be2\u6a21\u5f0f"},"ModbusRTU \u4e91\u7aef\u8f6e\u8be2\u6a21\u5f0f"),(0,o.yg)("p",null,"\u9009\u62e9\u4e86\u6b64\u79cd\u534f\u8bae\u683c\u5f0f\u7684\u8bbe\u5907\uff0c\u5e94\u8be5\u914d\u7f6e ",(0,o.yg)("strong",{parentName:"p"},"Modbus \u914d\u7f6e")," \uff0c\u8ba9\u5c5e\u6027\u548c\u5bc4\u5b58\u5668\u5efa\u7acb\u5173\u7cfb\uff0c\u4ee5\u4fdd\u8bc1\u4e91\u7aef\u53ef\u4ee5\u6839\u636e\u5173\u7cfb\u53bb\u8f6e\u8be2\u8bbe\u5907\u7684\u6570\u636e\u3002"),(0,o.yg)("h4",{id:"\u4e8c\u7ea7\u5236\u79c1\u6709\u534f\u8bae-\u4e91\u7aef\u8f6e\u8be2\u6a21\u5f0f"},"\u4e8c\u7ea7\u5236\u79c1\u6709\u534f\u8bae \u4e91\u7aef\u8f6e\u8be2\u6a21\u5f0f"),(0,o.yg)("h4",{id:"\u6587\u672c\u79c1\u6709\u534f\u8bae-\u4e91\u7aef\u8f6e\u8be2\u6a21\u5f0f"},"\u6587\u672c\u79c1\u6709\u534f\u8bae \u4e91\u7aef\u8f6e\u8be2\u6a21\u5f0f"))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/01c8f07b.1f68a217.js b/assets/js/01c8f07b.a6a72472.js similarity index 98% rename from assets/js/01c8f07b.1f68a217.js rename to assets/js/01c8f07b.a6a72472.js index 1619bb64b..2a280e67b 100644 --- a/assets/js/01c8f07b.1f68a217.js +++ b/assets/js/01c8f07b.a6a72472.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1570],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,c=e.originalType,l=e.parentName,u=a(e,["components","mdxType","originalType","parentName"]),s=p(r),f=o,y=s["".concat(l,".").concat(f)]||s[f]||d[f]||c;return r?n.createElement(y,i(i({ref:t},u),{},{components:r})):n.createElement(y,i({ref:t},u))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var c=r.length,i=new Array(c);i[0]=f;var a={};for(var l in t)hasOwnProperty.call(t,l)&&(a[l]=t[l]);a.originalType=e,a[s]="string"==typeof e?e:o,i[1]=a;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>c,metadata:()=>a,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const c={sidebar_position:1},i="\u6982\u8ff0",a={unversionedId:"iotcloud/connect/index",id:"iotcloud/connect/index",title:"\u6982\u8ff0",description:"\u8bbe\u5907\u63a5\u5165\u4e91\u5e73\u53f0\uff0c\u6700\u6838\u5fc3\u7684\u70b9\u662f\u63a5\u5165\u534f\u8bae\uff0c\u672c\u5e73\u53f0\u76ee\u524d\u652f\u6301\u6700\u6d41\u884c\u7684 MQTT\uff0c\u4f20\u7edf\u7684 TCP\uff0c\u4ee5\u53ca\u5904\u7406\u5f02\u6784\u7cfb\u7edf\u6216\u7b80\u5355\u4f7f\u7528\u7684 HTTP \u534f\u8bae\u3002",source:"@site/docs/iotcloud/connect/index.md",sourceDirName:"iotcloud/connect",slug:"/iotcloud/connect/",permalink:"/docs/iotcloud/connect/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"iotCloudSidebar",previous:{title:"\u6982\u8ff0",permalink:"/docs/iotcloud/"},next:{title:"MQTT \u8bbe\u5907\u63a5\u5165",permalink:"/docs/iotcloud/connect/mqtt"}},l={},p=[],u={toc:p},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,o.yg)("p",null,"\u8bbe\u5907\u63a5\u5165\u4e91\u5e73\u53f0\uff0c\u6700\u6838\u5fc3\u7684\u70b9\u662f\u63a5\u5165\u534f\u8bae\uff0c\u672c\u5e73\u53f0\u76ee\u524d\u652f\u6301\u6700\u6d41\u884c\u7684 MQTT\uff0c\u4f20\u7edf\u7684 TCP\uff0c\u4ee5\u53ca\u5904\u7406\u5f02\u6784\u7cfb\u7edf\u6216\u7b80\u5355\u4f7f\u7528\u7684 HTTP \u534f\u8bae\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1570],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,c=e.originalType,l=e.parentName,u=a(e,["components","mdxType","originalType","parentName"]),s=p(r),f=o,y=s["".concat(l,".").concat(f)]||s[f]||d[f]||c;return r?n.createElement(y,i(i({ref:t},u),{},{components:r})):n.createElement(y,i({ref:t},u))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var c=r.length,i=new Array(c);i[0]=f;var a={};for(var l in t)hasOwnProperty.call(t,l)&&(a[l]=t[l]);a.originalType=e,a[s]="string"==typeof e?e:o,i[1]=a;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>c,metadata:()=>a,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const c={sidebar_position:1},i="\u6982\u8ff0",a={unversionedId:"iotcloud/connect/index",id:"iotcloud/connect/index",title:"\u6982\u8ff0",description:"\u8bbe\u5907\u63a5\u5165\u4e91\u5e73\u53f0\uff0c\u6700\u6838\u5fc3\u7684\u70b9\u662f\u63a5\u5165\u534f\u8bae\uff0c\u672c\u5e73\u53f0\u76ee\u524d\u652f\u6301\u6700\u6d41\u884c\u7684 MQTT\uff0c\u4f20\u7edf\u7684 TCP\uff0c\u4ee5\u53ca\u5904\u7406\u5f02\u6784\u7cfb\u7edf\u6216\u7b80\u5355\u4f7f\u7528\u7684 HTTP \u534f\u8bae\u3002",source:"@site/docs/iotcloud/connect/index.md",sourceDirName:"iotcloud/connect",slug:"/iotcloud/connect/",permalink:"/docs/iotcloud/connect/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"iotCloudSidebar",previous:{title:"\u6982\u8ff0",permalink:"/docs/iotcloud/"},next:{title:"MQTT \u8bbe\u5907\u63a5\u5165",permalink:"/docs/iotcloud/connect/mqtt"}},l={},p=[],u={toc:p},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,o.yg)("p",null,"\u8bbe\u5907\u63a5\u5165\u4e91\u5e73\u53f0\uff0c\u6700\u6838\u5fc3\u7684\u70b9\u662f\u63a5\u5165\u534f\u8bae\uff0c\u672c\u5e73\u53f0\u76ee\u524d\u652f\u6301\u6700\u6d41\u884c\u7684 MQTT\uff0c\u4f20\u7edf\u7684 TCP\uff0c\u4ee5\u53ca\u5904\u7406\u5f02\u6784\u7cfb\u7edf\u6216\u7b80\u5355\u4f7f\u7528\u7684 HTTP \u534f\u8bae\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/01d46eee.b216857f.js b/assets/js/01d46eee.78e5d8c2.js similarity index 96% rename from assets/js/01d46eee.b216857f.js rename to assets/js/01d46eee.78e5d8c2.js index 1bff9e0c0..c9ee2e6e0 100644 --- a/assets/js/01d46eee.b216857f.js +++ b/assets/js/01d46eee.78e5d8c2.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[159],{5680:(e,t,r)=>{r.d(t,{xA:()=>l,yg:()=>f});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var u=n.createContext({}),s=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},l=function(e){var t=s(e.components);return n.createElement(u.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,u=e.parentName,l=i(e,["components","mdxType","originalType","parentName"]),p=s(r),y=a,f=p["".concat(u,".").concat(y)]||p[y]||d[y]||o;return r?n.createElement(f,c(c({ref:t},l),{},{components:r})):n.createElement(f,c({ref:t},l))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,c=new Array(o);c[0]=y;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[p]="string"==typeof e?e:a,c[1]=i;for(var s=2;s{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>c,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>s});var n=r(8168),a=(r(6540),r(5680));const o={},c=void 0,i={unversionedId:"study/back/maven/\u5e38\u7528\u53c2\u6570",id:"study/back/maven/\u5e38\u7528\u53c2\u6570",title:"\u5e38\u7528\u53c2\u6570",description:"\u8df3\u8fc7\u6d4b\u8bd5",source:"@site/docs/study/back/maven/\u5e38\u7528\u53c2\u6570.md",sourceDirName:"study/back/maven",slug:"/study/back/maven/\u5e38\u7528\u53c2\u6570",permalink:"/docs/study/back/maven/\u5e38\u7528\u53c2\u6570",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"mvnw",permalink:"/docs/study/back/maven/mvnw"},next:{title:"\u6784\u5efaDocker",permalink:"/docs/study/back/maven/\u6784\u5efaDocker"}},u={},s=[{value:"\u8df3\u8fc7\u6d4b\u8bd5",id:"\u8df3\u8fc7\u6d4b\u8bd5",level:3}],l={toc:s},p="wrapper";function d(e){let{components:t,...r}=e;return(0,a.yg)(p,(0,n.A)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u8df3\u8fc7\u6d4b\u8bd5"},"\u8df3\u8fc7\u6d4b\u8bd5"),(0,a.yg)("p",null,"-DskipTests=true"))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[159],{5680:(e,t,r)=>{r.d(t,{xA:()=>l,yg:()=>f});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var u=n.createContext({}),s=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},l=function(e){var t=s(e.components);return n.createElement(u.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,u=e.parentName,l=i(e,["components","mdxType","originalType","parentName"]),p=s(r),y=a,f=p["".concat(u,".").concat(y)]||p[y]||d[y]||o;return r?n.createElement(f,c(c({ref:t},l),{},{components:r})):n.createElement(f,c({ref:t},l))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,c=new Array(o);c[0]=y;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[p]="string"==typeof e?e:a,c[1]=i;for(var s=2;s{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>c,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>s});var n=r(8168),a=(r(6540),r(5680));const o={},c=void 0,i={unversionedId:"study/back/maven/\u5e38\u7528\u53c2\u6570",id:"study/back/maven/\u5e38\u7528\u53c2\u6570",title:"\u5e38\u7528\u53c2\u6570",description:"\u8df3\u8fc7\u6d4b\u8bd5",source:"@site/docs/study/back/maven/\u5e38\u7528\u53c2\u6570.md",sourceDirName:"study/back/maven",slug:"/study/back/maven/\u5e38\u7528\u53c2\u6570",permalink:"/docs/study/back/maven/\u5e38\u7528\u53c2\u6570",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"mvnw",permalink:"/docs/study/back/maven/mvnw"},next:{title:"\u6784\u5efaDocker",permalink:"/docs/study/back/maven/\u6784\u5efaDocker"}},u={},s=[{value:"\u8df3\u8fc7\u6d4b\u8bd5",id:"\u8df3\u8fc7\u6d4b\u8bd5",level:3}],l={toc:s},p="wrapper";function d(e){let{components:t,...r}=e;return(0,a.yg)(p,(0,n.A)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u8df3\u8fc7\u6d4b\u8bd5"},"\u8df3\u8fc7\u6d4b\u8bd5"),(0,a.yg)("p",null,"-DskipTests=true"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/03101150.6c735f0f.js b/assets/js/03101150.4299d01e.js similarity index 99% rename from assets/js/03101150.6c735f0f.js rename to assets/js/03101150.4299d01e.js index adac3a687..cbceb8dd4 100644 --- a/assets/js/03101150.6c735f0f.js +++ b/assets/js/03101150.4299d01e.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3310],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>m});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),i=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},s=function(e){var t=i(e.components);return n.createElement(p.Provider,{value:t},e.children)},u="mdxType",f={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),u=i(r),d=o,m=u["".concat(p,".").concat(d)]||u[d]||f[d]||a;return r?n.createElement(m,l(l({ref:t},s),{},{components:r})):n.createElement(m,l({ref:t},s))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=d;var c={};for(var p in t)hasOwnProperty.call(t,p)&&(c[p]=t[p]);c.originalType=e,c[u]="string"==typeof e?e:o,l[1]=c;for(var i=2;i{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>f,frontMatter:()=>a,metadata:()=>c,toc:()=>i});var n=r(8168),o=(r(6540),r(5680));const a={},l=void 0,c={unversionedId:"study/program/ETL/kettle",id:"study/program/ETL/kettle",title:"kettle",description:"ETL\uff08Extract-Transform-Load\u7684\u7f29\u5199\uff0c\u5373\u6570\u636e\u62bd\u53d6\u3001\u8f6c\u6362\u3001\u88c5\u8f7d\u7684\u8fc7\u7a0b\uff09\uff0c\u5bf9\u4e8e\u4f01\u4e1a\u6216\u884c\u4e1a\u5e94\u7528\u6765\u8bf4\uff0c\u6211\u4eec\u7ecf\u5e38\u4f1a\u9047\u5230\u5404\u79cd\u6570\u636e\u7684\u5904\u7406\uff0c\u8f6c\u6362\uff0c\u8fc1\u79fb\uff0c\u6240\u4ee5\u4e86\u89e3\u5e76\u638c\u63e1\u4e00\u79cdetl\u5de5\u5177\u7684\u4f7f\u7528\uff0c\u5fc5\u4e0d\u53ef\u5c11\u3002kettle\u662f\u7eafjava\u7f16\u5199\uff0c\u652f\u6301\u56fe\u5f62\u5316\u7684GUI\u8bbe\u8ba1\u754c\u9762\uff0c\u7136\u540e\u53ef\u4ee5\u4ee5\u5de5\u4f5c\u6d41\u7684\u5f62\u5f0f\u6d41\u8f6c\uff0c\u5728\u505a\u4e00\u4e9b\u7b80\u5355\u6216\u590d\u6742\u7684\u6570\u636e\u62bd\u53d6\u3001\u8d28\u91cf\u68c0\u6d4b\u3001\u6570\u636e\u6e05\u6d17\u3001\u6570\u636e\u8f6c\u6362\u3001\u6570\u636e\u8fc7\u6ee4\u7b49\u65b9\u9762\u6709\u7740\u6bd4\u8f83\u7a33\u5b9a\u7684\u8868\u73b0\uff0c\u5176\u4e2d\u6700\u4e3b\u8981\u7684\u6211\u4eec\u901a\u8fc7\u719f\u7ec3\u7684\u5e94\u7528\u5b83\uff0c\u51cf\u5c11\u4e86\u975e\u5e38\u591a\u7684\u7814\u53d1\u5de5\u4f5c\u91cf\uff0c\u63d0\u9ad8\u4e86\u6211\u4eec\u7684\u5de5\u4f5c\u6548\u7387\u3002",source:"@site/docs/study/program/ETL/kettle.md",sourceDirName:"study/program/ETL",slug:"/study/program/ETL/kettle",permalink:"/docs/study/program/ETL/kettle",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"flume",permalink:"/docs/study/program/ETL/flume"},next:{title:"sqoop",permalink:"/docs/study/program/ETL/sqoop"}},p={},i=[],s={toc:i},u="wrapper";function f(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"ETL\uff08Extract-Transform-Load\u7684\u7f29\u5199\uff0c\u5373\u6570\u636e\u62bd\u53d6\u3001\u8f6c\u6362\u3001\u88c5\u8f7d\u7684\u8fc7\u7a0b\uff09\uff0c\u5bf9\u4e8e\u4f01\u4e1a\u6216\u884c\u4e1a\u5e94\u7528\u6765\u8bf4\uff0c\u6211\u4eec\u7ecf\u5e38\u4f1a\u9047\u5230\u5404\u79cd\u6570\u636e\u7684\u5904\u7406\uff0c\u8f6c\u6362\uff0c\u8fc1\u79fb\uff0c\u6240\u4ee5\u4e86\u89e3\u5e76\u638c\u63e1\u4e00\u79cdetl\u5de5\u5177\u7684\u4f7f\u7528\uff0c\u5fc5\u4e0d\u53ef\u5c11\u3002kettle\u662f\u7eafjava\u7f16\u5199\uff0c\u652f\u6301\u56fe\u5f62\u5316\u7684GUI\u8bbe\u8ba1\u754c\u9762\uff0c\u7136\u540e\u53ef\u4ee5\u4ee5\u5de5\u4f5c\u6d41\u7684\u5f62\u5f0f\u6d41\u8f6c\uff0c\u5728\u505a\u4e00\u4e9b\u7b80\u5355\u6216\u590d\u6742\u7684\u6570\u636e\u62bd\u53d6\u3001\u8d28\u91cf\u68c0\u6d4b\u3001\u6570\u636e\u6e05\u6d17\u3001\u6570\u636e\u8f6c\u6362\u3001\u6570\u636e\u8fc7\u6ee4\u7b49\u65b9\u9762\u6709\u7740\u6bd4\u8f83\u7a33\u5b9a\u7684\u8868\u73b0\uff0c\u5176\u4e2d\u6700\u4e3b\u8981\u7684\u6211\u4eec\u901a\u8fc7\u719f\u7ec3\u7684\u5e94\u7528\u5b83\uff0c\u51cf\u5c11\u4e86\u975e\u5e38\u591a\u7684\u7814\u53d1\u5de5\u4f5c\u91cf\uff0c\u63d0\u9ad8\u4e86\u6211\u4eec\u7684\u5de5\u4f5c\u6548\u7387\u3002"),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"Kettle\u6982\u5ff5")),(0,o.yg)("p",null,"Kettle\u662f\u4e00\u6b3e\u56fd\u5916\u5f00\u6e90\u7684ETL\u5de5\u5177\uff0c\u7eafjava\u7f16\u5199\uff0c\u53ef\u4ee5\u5728Window\u3001Linux\u3001Unix\u4e0a\u8fd0\u884c\uff0c\u7eff\u8272\u65e0\u9700\u5b89\u88c5\uff0c\u6570\u636e\u62bd\u53d6\u9ad8\u6548\u7a33\u5b9a\u3002\nKettle \u4e2d\u6587\u540d\u79f0\u53eb\u6c34\u58f6\uff0c\u8be5\u9879\u76ee\u7684\u4e3b\u7a0b\u5e8f\u5458MATT \u5e0c\u671b\u628a\u5404\u79cd\u6570\u636e\u653e\u5230\u4e00\u4e2a\u58f6\u91cc\uff0c\u7136\u540e\u4ee5\u4e00\u79cd\u6307\u5b9a\u7684\u683c\u5f0f\u6d41\u51fa\u3002\nKettle\u8fd9\u4e2aETL\u5de5\u5177\u96c6\uff0c\u5b83\u5141\u8bb8\u4f60\u7ba1\u7406\u6765\u81ea\u4e0d\u540c\u6570\u636e\u5e93\u7684\u6570\u636e\uff0c\u901a\u8fc7\u63d0\u4f9b\u4e00\u4e2a\u56fe\u5f62\u5316\u7684\u7528\u6237\u73af\u5883\u6765\u63cf\u8ff0\u4f60\u60f3\u505a\u4ec0\u4e48\uff0c\u800c\u4e0d\u662f\u4f60\u60f3\u600e\u4e48\u505a\u3002\nKettle\u4e2d\u6709\u4e24\u79cd\u811a\u672c\u6587\u4ef6\uff0ctransformation\u548cjob\uff0ctransformation\u5b8c\u6210\u9488\u5bf9\u6570\u636e\u7684\u57fa\u7840\u8f6c\u6362\uff0cjob\u5219\u5b8c\u6210\u6574\u4e2a\u5de5\u4f5c\u6d41\u7684\u63a7\u5236\u3002"))}f.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3310],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>m});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),i=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},s=function(e){var t=i(e.components);return n.createElement(p.Provider,{value:t},e.children)},u="mdxType",f={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),u=i(r),d=o,m=u["".concat(p,".").concat(d)]||u[d]||f[d]||a;return r?n.createElement(m,l(l({ref:t},s),{},{components:r})):n.createElement(m,l({ref:t},s))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=d;var c={};for(var p in t)hasOwnProperty.call(t,p)&&(c[p]=t[p]);c.originalType=e,c[u]="string"==typeof e?e:o,l[1]=c;for(var i=2;i{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>f,frontMatter:()=>a,metadata:()=>c,toc:()=>i});var n=r(8168),o=(r(6540),r(5680));const a={},l=void 0,c={unversionedId:"study/program/ETL/kettle",id:"study/program/ETL/kettle",title:"kettle",description:"ETL\uff08Extract-Transform-Load\u7684\u7f29\u5199\uff0c\u5373\u6570\u636e\u62bd\u53d6\u3001\u8f6c\u6362\u3001\u88c5\u8f7d\u7684\u8fc7\u7a0b\uff09\uff0c\u5bf9\u4e8e\u4f01\u4e1a\u6216\u884c\u4e1a\u5e94\u7528\u6765\u8bf4\uff0c\u6211\u4eec\u7ecf\u5e38\u4f1a\u9047\u5230\u5404\u79cd\u6570\u636e\u7684\u5904\u7406\uff0c\u8f6c\u6362\uff0c\u8fc1\u79fb\uff0c\u6240\u4ee5\u4e86\u89e3\u5e76\u638c\u63e1\u4e00\u79cdetl\u5de5\u5177\u7684\u4f7f\u7528\uff0c\u5fc5\u4e0d\u53ef\u5c11\u3002kettle\u662f\u7eafjava\u7f16\u5199\uff0c\u652f\u6301\u56fe\u5f62\u5316\u7684GUI\u8bbe\u8ba1\u754c\u9762\uff0c\u7136\u540e\u53ef\u4ee5\u4ee5\u5de5\u4f5c\u6d41\u7684\u5f62\u5f0f\u6d41\u8f6c\uff0c\u5728\u505a\u4e00\u4e9b\u7b80\u5355\u6216\u590d\u6742\u7684\u6570\u636e\u62bd\u53d6\u3001\u8d28\u91cf\u68c0\u6d4b\u3001\u6570\u636e\u6e05\u6d17\u3001\u6570\u636e\u8f6c\u6362\u3001\u6570\u636e\u8fc7\u6ee4\u7b49\u65b9\u9762\u6709\u7740\u6bd4\u8f83\u7a33\u5b9a\u7684\u8868\u73b0\uff0c\u5176\u4e2d\u6700\u4e3b\u8981\u7684\u6211\u4eec\u901a\u8fc7\u719f\u7ec3\u7684\u5e94\u7528\u5b83\uff0c\u51cf\u5c11\u4e86\u975e\u5e38\u591a\u7684\u7814\u53d1\u5de5\u4f5c\u91cf\uff0c\u63d0\u9ad8\u4e86\u6211\u4eec\u7684\u5de5\u4f5c\u6548\u7387\u3002",source:"@site/docs/study/program/ETL/kettle.md",sourceDirName:"study/program/ETL",slug:"/study/program/ETL/kettle",permalink:"/docs/study/program/ETL/kettle",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"flume",permalink:"/docs/study/program/ETL/flume"},next:{title:"sqoop",permalink:"/docs/study/program/ETL/sqoop"}},p={},i=[],s={toc:i},u="wrapper";function f(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"ETL\uff08Extract-Transform-Load\u7684\u7f29\u5199\uff0c\u5373\u6570\u636e\u62bd\u53d6\u3001\u8f6c\u6362\u3001\u88c5\u8f7d\u7684\u8fc7\u7a0b\uff09\uff0c\u5bf9\u4e8e\u4f01\u4e1a\u6216\u884c\u4e1a\u5e94\u7528\u6765\u8bf4\uff0c\u6211\u4eec\u7ecf\u5e38\u4f1a\u9047\u5230\u5404\u79cd\u6570\u636e\u7684\u5904\u7406\uff0c\u8f6c\u6362\uff0c\u8fc1\u79fb\uff0c\u6240\u4ee5\u4e86\u89e3\u5e76\u638c\u63e1\u4e00\u79cdetl\u5de5\u5177\u7684\u4f7f\u7528\uff0c\u5fc5\u4e0d\u53ef\u5c11\u3002kettle\u662f\u7eafjava\u7f16\u5199\uff0c\u652f\u6301\u56fe\u5f62\u5316\u7684GUI\u8bbe\u8ba1\u754c\u9762\uff0c\u7136\u540e\u53ef\u4ee5\u4ee5\u5de5\u4f5c\u6d41\u7684\u5f62\u5f0f\u6d41\u8f6c\uff0c\u5728\u505a\u4e00\u4e9b\u7b80\u5355\u6216\u590d\u6742\u7684\u6570\u636e\u62bd\u53d6\u3001\u8d28\u91cf\u68c0\u6d4b\u3001\u6570\u636e\u6e05\u6d17\u3001\u6570\u636e\u8f6c\u6362\u3001\u6570\u636e\u8fc7\u6ee4\u7b49\u65b9\u9762\u6709\u7740\u6bd4\u8f83\u7a33\u5b9a\u7684\u8868\u73b0\uff0c\u5176\u4e2d\u6700\u4e3b\u8981\u7684\u6211\u4eec\u901a\u8fc7\u719f\u7ec3\u7684\u5e94\u7528\u5b83\uff0c\u51cf\u5c11\u4e86\u975e\u5e38\u591a\u7684\u7814\u53d1\u5de5\u4f5c\u91cf\uff0c\u63d0\u9ad8\u4e86\u6211\u4eec\u7684\u5de5\u4f5c\u6548\u7387\u3002"),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"Kettle\u6982\u5ff5")),(0,o.yg)("p",null,"Kettle\u662f\u4e00\u6b3e\u56fd\u5916\u5f00\u6e90\u7684ETL\u5de5\u5177\uff0c\u7eafjava\u7f16\u5199\uff0c\u53ef\u4ee5\u5728Window\u3001Linux\u3001Unix\u4e0a\u8fd0\u884c\uff0c\u7eff\u8272\u65e0\u9700\u5b89\u88c5\uff0c\u6570\u636e\u62bd\u53d6\u9ad8\u6548\u7a33\u5b9a\u3002\nKettle \u4e2d\u6587\u540d\u79f0\u53eb\u6c34\u58f6\uff0c\u8be5\u9879\u76ee\u7684\u4e3b\u7a0b\u5e8f\u5458MATT \u5e0c\u671b\u628a\u5404\u79cd\u6570\u636e\u653e\u5230\u4e00\u4e2a\u58f6\u91cc\uff0c\u7136\u540e\u4ee5\u4e00\u79cd\u6307\u5b9a\u7684\u683c\u5f0f\u6d41\u51fa\u3002\nKettle\u8fd9\u4e2aETL\u5de5\u5177\u96c6\uff0c\u5b83\u5141\u8bb8\u4f60\u7ba1\u7406\u6765\u81ea\u4e0d\u540c\u6570\u636e\u5e93\u7684\u6570\u636e\uff0c\u901a\u8fc7\u63d0\u4f9b\u4e00\u4e2a\u56fe\u5f62\u5316\u7684\u7528\u6237\u73af\u5883\u6765\u63cf\u8ff0\u4f60\u60f3\u505a\u4ec0\u4e48\uff0c\u800c\u4e0d\u662f\u4f60\u60f3\u600e\u4e48\u505a\u3002\nKettle\u4e2d\u6709\u4e24\u79cd\u811a\u672c\u6587\u4ef6\uff0ctransformation\u548cjob\uff0ctransformation\u5b8c\u6210\u9488\u5bf9\u6570\u636e\u7684\u57fa\u7840\u8f6c\u6362\uff0cjob\u5219\u5b8c\u6210\u6574\u4e2a\u5de5\u4f5c\u6d41\u7684\u63a7\u5236\u3002"))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/037fbca4.e454ad88.js b/assets/js/037fbca4.e7347376.js similarity index 98% rename from assets/js/037fbca4.e454ad88.js rename to assets/js/037fbca4.e7347376.js index 2fa5e988e..03ac22f0c 100644 --- a/assets/js/037fbca4.e454ad88.js +++ b/assets/js/037fbca4.e7347376.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9229],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>d});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),i=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},p=function(e){var t=i(e.components);return n.createElement(c.Provider,{value:t},e.children)},s="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,p=u(e,["components","mdxType","originalType","parentName"]),s=i(r),f=o,d=s["".concat(c,".").concat(f)]||s[f]||m[f]||a;return r?n.createElement(d,l(l({ref:t},p),{},{components:r})):n.createElement(d,l({ref:t},p))}));function d(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=f;var u={};for(var c in t)hasOwnProperty.call(t,c)&&(u[c]=t[c]);u.originalType=e,u[s]="string"==typeof e?e:o,l[1]=u;for(var i=2;i{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>m,frontMatter:()=>a,metadata:()=>u,toc:()=>i});var n=r(8168),o=(r(6540),r(5680));const a={},l=void 0,u={unversionedId:"study/program/ETL/flume",id:"study/program/ETL/flume",title:"flume",description:"Flume\u7684\u5b9a\u4e49",source:"@site/docs/study/program/ETL/flume.md",sourceDirName:"study/program/ETL",slug:"/study/program/ETL/flume",permalink:"/docs/study/program/ETL/flume",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"dataX",permalink:"/docs/study/program/ETL/dataX"},next:{title:"kettle",permalink:"/docs/study/program/ETL/kettle"}},c={},i=[{value:"Flume\u7684\u5b9a\u4e49",id:"flume\u7684\u5b9a\u4e49",level:3}],p={toc:i},s="wrapper";function m(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"flume\u7684\u5b9a\u4e49"},"Flume\u7684\u5b9a\u4e49"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"Flume\u662f\u4e00\u4e2a\u5206\u5e03\u5f0f\u7684\u3001\u9ad8\u53ef\u9760\u7684\u3001\u9ad8\u53ef\u7528\u7684\u5c06\u5927\u6279\u91cf\u7684\u4e0d\u540c\u6570\u636e\u6e90\u7684\u65e5\u5fd7\u6570\u636e\u6536\u96c6\u3001\u805a\u5408\u3001\u79fb\u52a8\u5230\u6570\u636e\u4e2d\u5fc3\uff08HDFS\uff09\u8fdb\u884c\u5b58\u50a8\u7684\u7cfb\u7edf\u3002\u5373\u662f\u65e5\u5fd7\u91c7\u96c6\u548c\u6c47\u603b\u7684\u5de5\u5177"),(0,o.yg)("li",{parentName:"ul"},"Logstash\u3001FileBeat\u662fES\u6808\u7684\u65e5\u5fd7\u6570\u636e\u62bd\u53d6\u5de5\u5177\uff0c\u4ed6\u4eec\u548cFlume\u5f88\u7c7b\u4f3c\uff0c\u524d\u8005\u662f\u8f7b\u91cf\u7ea7\u3001\u540e\u8005\u662f\u91cd\u91cf\u7ea7\uff0c\u82e5\u9879\u76ee\u7ec4\u4f7f\u7528\u7684\u662fES\u6808\u6280\u672f\uff0c\u90a3\u5b8c\u5168\u53ef\u4ee5\u4f7f\u7528Logstash\u53d6\u4ee3Flume\u3002")))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9229],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>d});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),i=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},p=function(e){var t=i(e.components);return n.createElement(c.Provider,{value:t},e.children)},s="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,p=u(e,["components","mdxType","originalType","parentName"]),s=i(r),f=o,d=s["".concat(c,".").concat(f)]||s[f]||m[f]||a;return r?n.createElement(d,l(l({ref:t},p),{},{components:r})):n.createElement(d,l({ref:t},p))}));function d(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=f;var u={};for(var c in t)hasOwnProperty.call(t,c)&&(u[c]=t[c]);u.originalType=e,u[s]="string"==typeof e?e:o,l[1]=u;for(var i=2;i{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>m,frontMatter:()=>a,metadata:()=>u,toc:()=>i});var n=r(8168),o=(r(6540),r(5680));const a={},l=void 0,u={unversionedId:"study/program/ETL/flume",id:"study/program/ETL/flume",title:"flume",description:"Flume\u7684\u5b9a\u4e49",source:"@site/docs/study/program/ETL/flume.md",sourceDirName:"study/program/ETL",slug:"/study/program/ETL/flume",permalink:"/docs/study/program/ETL/flume",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"dataX",permalink:"/docs/study/program/ETL/dataX"},next:{title:"kettle",permalink:"/docs/study/program/ETL/kettle"}},c={},i=[{value:"Flume\u7684\u5b9a\u4e49",id:"flume\u7684\u5b9a\u4e49",level:3}],p={toc:i},s="wrapper";function m(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"flume\u7684\u5b9a\u4e49"},"Flume\u7684\u5b9a\u4e49"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"Flume\u662f\u4e00\u4e2a\u5206\u5e03\u5f0f\u7684\u3001\u9ad8\u53ef\u9760\u7684\u3001\u9ad8\u53ef\u7528\u7684\u5c06\u5927\u6279\u91cf\u7684\u4e0d\u540c\u6570\u636e\u6e90\u7684\u65e5\u5fd7\u6570\u636e\u6536\u96c6\u3001\u805a\u5408\u3001\u79fb\u52a8\u5230\u6570\u636e\u4e2d\u5fc3\uff08HDFS\uff09\u8fdb\u884c\u5b58\u50a8\u7684\u7cfb\u7edf\u3002\u5373\u662f\u65e5\u5fd7\u91c7\u96c6\u548c\u6c47\u603b\u7684\u5de5\u5177"),(0,o.yg)("li",{parentName:"ul"},"Logstash\u3001FileBeat\u662fES\u6808\u7684\u65e5\u5fd7\u6570\u636e\u62bd\u53d6\u5de5\u5177\uff0c\u4ed6\u4eec\u548cFlume\u5f88\u7c7b\u4f3c\uff0c\u524d\u8005\u662f\u8f7b\u91cf\u7ea7\u3001\u540e\u8005\u662f\u91cd\u91cf\u7ea7\uff0c\u82e5\u9879\u76ee\u7ec4\u4f7f\u7528\u7684\u662fES\u6808\u6280\u672f\uff0c\u90a3\u5b8c\u5168\u53ef\u4ee5\u4f7f\u7528Logstash\u53d6\u4ee3Flume\u3002")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/03cd0d32.b67912a9.js b/assets/js/03cd0d32.06660db6.js similarity index 98% rename from assets/js/03cd0d32.b67912a9.js rename to assets/js/03cd0d32.06660db6.js index a3c4c562e..f665b9267 100644 --- a/assets/js/03cd0d32.b67912a9.js +++ b/assets/js/03cd0d32.06660db6.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7486],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),p=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(c.Provider,{value:t},e.children)},d="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),d=p(r),y=a,f=d["".concat(c,".").concat(y)]||d[y]||s[y]||o;return r?n.createElement(f,l(l({ref:t},u),{},{components:r})):n.createElement(f,l({ref:t},u))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=y;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[d]="string"==typeof e?e:a,l[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>s,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var n=r(8168),a=(r(6540),r(5680));const o={},l=void 0,i={unversionedId:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Apache IoTDB",id:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Apache IoTDB",title:"Apache IoTDB",description:"\u5b98\u65b9\u6587\u6863",source:"@site/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Apache IoTDB.md",sourceDirName:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93",slug:"/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Apache IoTDB",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Apache IoTDB",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"TDengine",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TDengine"},next:{title:"Druid",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Druid"}},c={},p=[{value:"\u5b98\u65b9\u6587\u6863",id:"\u5b98\u65b9\u6587\u6863",level:3},{value:"\u57fa\u672c\u4fe1\u606f",id:"\u57fa\u672c\u4fe1\u606f",level:3},{value:"\u5b9e\u9645\u4f7f\u7528",id:"\u5b9e\u9645\u4f7f\u7528",level:3},{value:"\u6e90\u7801\u7f16\u8bd1",id:"\u6e90\u7801\u7f16\u8bd1",level:3}],u={toc:p},d="wrapper";function s(e){let{components:t,...r}=e;return(0,a.yg)(d,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u5b98\u65b9\u6587\u6863"},"\u5b98\u65b9\u6587\u6863"),(0,a.yg)("p",null,(0,a.yg)("a",{parentName:"p",href:"https://iotdb.apache.org/zh/"},"\u5b98\u7f51")),(0,a.yg)("h3",{id:"\u57fa\u672c\u4fe1\u606f"},"\u57fa\u672c\u4fe1\u606f"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"\u7f16\u7a0b\u8bed\u8a00\uff1aJava"),(0,a.yg)("li",{parentName:"ol"},"\u5f00\u6e90\u5730\u5740\uff1a",(0,a.yg)("a",{parentName:"li",href:"https://github.com/apache/iotdb"},"https://github.com/apache/iotdb")),(0,a.yg)("li",{parentName:"ol"},"\u96c6\u7fa4\u6a21\u5f0f\uff1a\u652f\u6301"),(0,a.yg)("li",{parentName:"ol"},"\u5f00\u53d1\u4eba\u5458\uff1a\u6700\u65e9\u59cb\u4e8e\u6e05\u534e\u5927\u5b66\u8f6f\u4ef6\u5b66\u9662\uff0c\u540e\u8d21\u732e\u7ed9\u4e86apache"),(0,a.yg)("li",{parentName:"ol"},"\u5b9a\u4f4d\uff1aIoTDB \u662f\u9488\u5bf9\u65f6\u95f4\u5e8f\u5217\u6570\u636e\u6536\u96c6\u3001\u5b58\u50a8\u4e0e\u5206\u6790\u4e00\u4f53\u5316\u7684\u6570\u636e\u7ba1\u7406\u5f15\u64ce\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u76ee\u6807\u9700\u6c42\uff1a\u9ad8\u901f\u5199\u5165\u3001\u590d\u6742\u5206\u6790\u67e5\u8be2")),(0,a.yg)("h3",{id:"\u5b9e\u9645\u4f7f\u7528"},"\u5b9e\u9645\u4f7f\u7528"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"\u636e\u5b98\u7f51\u8bf4\u660e\uff0cIoTDB\u662f\u4e13\u95e8\u4e3a\u201c\u7269\u8054\u7f51\uff08IoT\uff09\u6216\u8005\u5de5\u4e1a\u7269\u8054\u7f51\uff08Industrial IoT\uff0c\u7f29\u5199 IIoT\uff09\u573a\u666f\u5f00\u53d1\u201d")),(0,a.yg)("h3",{id:"\u6e90\u7801\u7f16\u8bd1"},"\u6e90\u7801\u7f16\u8bd1"))}s.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7486],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),p=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(c.Provider,{value:t},e.children)},d="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),d=p(r),y=a,f=d["".concat(c,".").concat(y)]||d[y]||s[y]||o;return r?n.createElement(f,l(l({ref:t},u),{},{components:r})):n.createElement(f,l({ref:t},u))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=y;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[d]="string"==typeof e?e:a,l[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>s,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var n=r(8168),a=(r(6540),r(5680));const o={},l=void 0,i={unversionedId:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Apache IoTDB",id:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Apache IoTDB",title:"Apache IoTDB",description:"\u5b98\u65b9\u6587\u6863",source:"@site/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Apache IoTDB.md",sourceDirName:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93",slug:"/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Apache IoTDB",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Apache IoTDB",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"TDengine",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TDengine"},next:{title:"Druid",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Druid"}},c={},p=[{value:"\u5b98\u65b9\u6587\u6863",id:"\u5b98\u65b9\u6587\u6863",level:3},{value:"\u57fa\u672c\u4fe1\u606f",id:"\u57fa\u672c\u4fe1\u606f",level:3},{value:"\u5b9e\u9645\u4f7f\u7528",id:"\u5b9e\u9645\u4f7f\u7528",level:3},{value:"\u6e90\u7801\u7f16\u8bd1",id:"\u6e90\u7801\u7f16\u8bd1",level:3}],u={toc:p},d="wrapper";function s(e){let{components:t,...r}=e;return(0,a.yg)(d,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u5b98\u65b9\u6587\u6863"},"\u5b98\u65b9\u6587\u6863"),(0,a.yg)("p",null,(0,a.yg)("a",{parentName:"p",href:"https://iotdb.apache.org/zh/"},"\u5b98\u7f51")),(0,a.yg)("h3",{id:"\u57fa\u672c\u4fe1\u606f"},"\u57fa\u672c\u4fe1\u606f"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"\u7f16\u7a0b\u8bed\u8a00\uff1aJava"),(0,a.yg)("li",{parentName:"ol"},"\u5f00\u6e90\u5730\u5740\uff1a",(0,a.yg)("a",{parentName:"li",href:"https://github.com/apache/iotdb"},"https://github.com/apache/iotdb")),(0,a.yg)("li",{parentName:"ol"},"\u96c6\u7fa4\u6a21\u5f0f\uff1a\u652f\u6301"),(0,a.yg)("li",{parentName:"ol"},"\u5f00\u53d1\u4eba\u5458\uff1a\u6700\u65e9\u59cb\u4e8e\u6e05\u534e\u5927\u5b66\u8f6f\u4ef6\u5b66\u9662\uff0c\u540e\u8d21\u732e\u7ed9\u4e86apache"),(0,a.yg)("li",{parentName:"ol"},"\u5b9a\u4f4d\uff1aIoTDB \u662f\u9488\u5bf9\u65f6\u95f4\u5e8f\u5217\u6570\u636e\u6536\u96c6\u3001\u5b58\u50a8\u4e0e\u5206\u6790\u4e00\u4f53\u5316\u7684\u6570\u636e\u7ba1\u7406\u5f15\u64ce\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u76ee\u6807\u9700\u6c42\uff1a\u9ad8\u901f\u5199\u5165\u3001\u590d\u6742\u5206\u6790\u67e5\u8be2")),(0,a.yg)("h3",{id:"\u5b9e\u9645\u4f7f\u7528"},"\u5b9e\u9645\u4f7f\u7528"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"\u636e\u5b98\u7f51\u8bf4\u660e\uff0cIoTDB\u662f\u4e13\u95e8\u4e3a\u201c\u7269\u8054\u7f51\uff08IoT\uff09\u6216\u8005\u5de5\u4e1a\u7269\u8054\u7f51\uff08Industrial IoT\uff0c\u7f29\u5199 IIoT\uff09\u573a\u666f\u5f00\u53d1\u201d")),(0,a.yg)("h3",{id:"\u6e90\u7801\u7f16\u8bd1"},"\u6e90\u7801\u7f16\u8bd1"))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/04cddcee.215f67b3.js b/assets/js/04cddcee.16794d28.js similarity index 99% rename from assets/js/04cddcee.215f67b3.js rename to assets/js/04cddcee.16794d28.js index f35dd686d..6f1a703ed 100644 --- a/assets/js/04cddcee.215f67b3.js +++ b/assets/js/04cddcee.16794d28.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4003],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>d});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),c=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=c(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,l=e.originalType,p=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),s=c(r),m=a,d=s["".concat(p,".").concat(m)]||s[m]||y[m]||l;return r?n.createElement(d,o(o({ref:t},u),{},{components:r})):n.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=r.length,o=new Array(l);o[0]=m;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:a,o[1]=i;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>y,frontMatter:()=>l,metadata:()=>i,toc:()=>c});var n=r(8168),a=(r(6540),r(5680));const l={},o=void 0,i={unversionedId:"study/program/C/C\u8bed\u8a00\u6807\u51c6\u5e93",id:"study/program/C/C\u8bed\u8a00\u6807\u51c6\u5e93",title:"C\u8bed\u8a00\u6807\u51c6\u5e93",description:"C \u8bed\u8a00\u6807\u51c6\u5e93",source:"@site/docs/study/program/C/C\u8bed\u8a00\u6807\u51c6\u5e93.md",sourceDirName:"study/program/C",slug:"/study/program/C/C\u8bed\u8a00\u6807\u51c6\u5e93",permalink:"/docs/study/program/C/C\u8bed\u8a00\u6807\u51c6\u5e93",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"C C++ \u7f16\u7a0b\u8bed\u8a00",permalink:"/docs/study/program/C/"},next:{title:"MFC-WinForm-WPF-DotNet\u7b49",permalink:"/docs/study/program/C/MFC-WinForm-WPF-DotNet\u7b49"}},p={},c=[{value:"C \u8bed\u8a00\u6807\u51c6\u5e93",id:"c-\u8bed\u8a00\u6807\u51c6\u5e93",level:3},{value:"C \u8bed\u8a00\u6709\u591a\u5c11\u4e2a\u6807\u51c6\u5934\u6587\u4ef6\u5462\u5462\uff1f",id:"c-\u8bed\u8a00\u6709\u591a\u5c11\u4e2a\u6807\u51c6\u5934\u6587\u4ef6\u5462\u5462",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],u={toc:c},s="wrapper";function y(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"c-\u8bed\u8a00\u6807\u51c6\u5e93"},"C \u8bed\u8a00\u6807\u51c6\u5e93"),(0,a.yg)("p",null,"C \u8bed\u8a00\u6807\u51c6\u5e93\u662f\u4e00\u7ec4\u9884\u5b9a\u4e49\u51fd\u6570\u3001\u5b8f\u548c\u6587\u4ef6\u7684\u96c6\u5408\uff0c\u8fd9\u4e9b\u51fd\u6570\u548c\u6587\u4ef6\u63d0\u4f9b\u4e86\u4e00\u4e9b\u57fa\u672c\u7684\u529f\u80fd\u548c\u64cd\u4f5c\uff0c\u53ef\u4f9b C \u8bed\u8a00\u7a0b\u5e8f\u4f7f\u7528\u3002C \u8bed\u8a00\u6807\u51c6\u5e93\u7531 C \u8bed\u8a00\u7684\u5236\u5b9a\u8005\u5b9a\u4e49\uff0c\u5e76\u5305\u542b\u5728 C \u8bed\u8a00\u7684\u7f16\u8bd1\u5668\u4e2d\u3002"),(0,a.yg)("p",null,"C \u8bed\u8a00\u6ca1\u6709\u5b98\u65b9\u7f51\u7ad9\uff0cISO \u7684\u5b98\u65b9\u7f51\u7ad9\u548c ANSI \u7684\u7f51\u7ad9\uff0c\u63d0\u4f9b\u4e86 C \u8bed\u8a00\u6807\u51c6\u7684\u76f8\u5173\u4fe1\u606f\u3002"),(0,a.yg)("p",null,"\u4e0d\u540c\u7f16\u8bd1\u5668\u5bf9 C \u8bed\u8a00\u6807\u51c6\u7684\u652f\u6301\u7a0b\u5ea6\u662f\u4e0d\u540c\uff0c\u5728\u8fdb\u884c\u5f00\u53d1\u7684\u65f6\u5019\uff0c\u4e0d\u4ec5\u8981\u9009\u62e9\u9002\u5f53\u7684\u7f16\u8bd1\u5668\uff0c\u53ef\u80fd\u8fd8\u9700\u8981\u624b\u52a8\u6307\u5b9a C \u8bed\u8a00\u6807\u51c6\u3002"),(0,a.yg)("h3",{id:"c-\u8bed\u8a00\u6709\u591a\u5c11\u4e2a\u6807\u51c6\u5934\u6587\u4ef6\u5462\u5462"},"C \u8bed\u8a00\u6709\u591a\u5c11\u4e2a\u6807\u51c6\u5934\u6587\u4ef6\u5462\u5462\uff1f"),(0,a.yg)("p",null,"\u4e0d\u786e\u5b9a\uff1a\u8fd9\u548c\u7f16\u8bd1\u5668\u3001\u7f16\u8bd1\u5668\u7684\u7248\u672c\u548c\u914d\u7f6e\u6709\u5173\u3002"),(0,a.yg)("p",null,"\u5e38\u7528\u7684 C \u8bed\u8a00\u6807\u51c6\u5e93\u6709\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"stdio.h\uff1a\u63d0\u4f9b\u8f93\u5165\u8f93\u51fa\u51fd\u6570\uff0c\u5982 printf()\u548c scanf()\u7b49\u3002"),(0,a.yg)("li",{parentName:"ul"},"stdlib.h\uff1a\u63d0\u4f9b\u901a\u7528\u5de5\u5177\u51fd\u6570\uff0c\u5982 malloc()\u548c free()\u7b49\u3002"),(0,a.yg)("li",{parentName:"ul"},"string.h\uff1a\u63d0\u4f9b\u5b57\u7b26\u4e32\u5904\u7406\u51fd\u6570\uff0c\u5982 strcpy()\u548c strcat()\u7b49\u3002"),(0,a.yg)("li",{parentName:"ul"},"math.h\uff1a\u63d0\u4f9b\u6570\u5b66\u51fd\u6570\uff0c\u5982 sin()\u548c cos()\u7b49\u3002"),(0,a.yg)("li",{parentName:"ul"},"time.h\uff1a\u63d0\u4f9b\u65f6\u95f4\u5904\u7406\u51fd\u6570\uff0c\u5982 time()\u548c clock()\u7b49\u3002"),(0,a.yg)("li",{parentName:"ul"},"ctype.h\uff1a\u63d0\u4f9b\u5b57\u7b26\u5904\u7406\u51fd\u6570\uff0c\u5982 isalpha()\u548c isdigit()\u7b49\u3002"),(0,a.yg)("li",{parentName:"ul"},"assert.h\uff1a\u63d0\u4f9b\u65ad\u8a00\u5b8f\uff0c\u7528\u4e8e\u8c03\u8bd5\u7a0b\u5e8f\u3002"),(0,a.yg)("li",{parentName:"ul"},"stdarg.h\uff1a\u63d0\u4f9b\u53ef\u53d8\u53c2\u6570\u5217\u8868\u7684\u51fd\u6570\uff0c\u5982 printf()\u548c scanf()\u7b49\u3002"),(0,a.yg)("li",{parentName:"ul"},"errno.h\uff1a\u63d0\u4f9b\u9519\u8bef\u7801\u5b8f\uff0c\u7528\u4e8e\u6807\u8bc6\u9519\u8bef\u7c7b\u578b\u3002"),(0,a.yg)("li",{parentName:"ul"},"setjmp.h\uff1a\u63d0\u4f9b\u975e\u5c40\u90e8\u8df3\u8f6c\u51fd\u6570\uff0c\u5982 setjmp()\u548c longjmp()\u7b49\u3002"),(0,a.yg)("li",{parentName:"ul"},"signal.h\uff1a\u63d0\u4f9b\u4fe1\u53f7\u5904\u7406\u51fd\u6570\uff0c\u5982 signal()\u548c raise()\u7b49\u3002"),(0,a.yg)("li",{parentName:"ul"},"locale.h\uff1a\u63d0\u4f9b\u672c\u5730\u5316\u5904\u7406\u51fd\u6570\uff0c\u5982 setlocale()\u548c localeconv()\u7b49\u3002"),(0,a.yg)("li",{parentName:"ul"},"float.h\uff1a\u63d0\u4f9b\u6d6e\u70b9\u6570\u5904\u7406\u5b8f\uff0c\u5982 FLT_DIG \u548c DBL_MAX \u7b49\u3002"),(0,a.yg)("li",{parentName:"ul"},"limits.h\uff1a\u63d0\u4f9b\u6574\u6570\u5904\u7406\u5b8f\uff0c\u5982 INT_MAX \u548c LONG_MAX \u7b49\u3002"),(0,a.yg)("li",{parentName:"ul"},"stddef.h\uff1a\u63d0\u4f9b\u57fa\u672c\u7c7b\u578b\u5b9a\u4e49\uff0c\u5982 size_t \u548c ptrdiff_t \u7b49\u3002")),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://blog.csdn.net/weixin_43764974/article/details/130892554"},"CSDN-C \u8bed\u8a00\u6807\u51c6\u5e93\u3001Windows \u4e0e Linux \u5e73\u53f0\u4e0b\u5e38\u7528\u7684 C \u8bed\u8a00\u6807\u51c6\u5e93"))))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4003],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>d});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),c=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=c(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,l=e.originalType,p=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),s=c(r),m=a,d=s["".concat(p,".").concat(m)]||s[m]||y[m]||l;return r?n.createElement(d,o(o({ref:t},u),{},{components:r})):n.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=r.length,o=new Array(l);o[0]=m;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:a,o[1]=i;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>y,frontMatter:()=>l,metadata:()=>i,toc:()=>c});var n=r(8168),a=(r(6540),r(5680));const l={},o=void 0,i={unversionedId:"study/program/C/C\u8bed\u8a00\u6807\u51c6\u5e93",id:"study/program/C/C\u8bed\u8a00\u6807\u51c6\u5e93",title:"C\u8bed\u8a00\u6807\u51c6\u5e93",description:"C \u8bed\u8a00\u6807\u51c6\u5e93",source:"@site/docs/study/program/C/C\u8bed\u8a00\u6807\u51c6\u5e93.md",sourceDirName:"study/program/C",slug:"/study/program/C/C\u8bed\u8a00\u6807\u51c6\u5e93",permalink:"/docs/study/program/C/C\u8bed\u8a00\u6807\u51c6\u5e93",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"C C++ \u7f16\u7a0b\u8bed\u8a00",permalink:"/docs/study/program/C/"},next:{title:"MFC-WinForm-WPF-DotNet\u7b49",permalink:"/docs/study/program/C/MFC-WinForm-WPF-DotNet\u7b49"}},p={},c=[{value:"C \u8bed\u8a00\u6807\u51c6\u5e93",id:"c-\u8bed\u8a00\u6807\u51c6\u5e93",level:3},{value:"C \u8bed\u8a00\u6709\u591a\u5c11\u4e2a\u6807\u51c6\u5934\u6587\u4ef6\u5462\u5462\uff1f",id:"c-\u8bed\u8a00\u6709\u591a\u5c11\u4e2a\u6807\u51c6\u5934\u6587\u4ef6\u5462\u5462",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],u={toc:c},s="wrapper";function y(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"c-\u8bed\u8a00\u6807\u51c6\u5e93"},"C \u8bed\u8a00\u6807\u51c6\u5e93"),(0,a.yg)("p",null,"C \u8bed\u8a00\u6807\u51c6\u5e93\u662f\u4e00\u7ec4\u9884\u5b9a\u4e49\u51fd\u6570\u3001\u5b8f\u548c\u6587\u4ef6\u7684\u96c6\u5408\uff0c\u8fd9\u4e9b\u51fd\u6570\u548c\u6587\u4ef6\u63d0\u4f9b\u4e86\u4e00\u4e9b\u57fa\u672c\u7684\u529f\u80fd\u548c\u64cd\u4f5c\uff0c\u53ef\u4f9b C \u8bed\u8a00\u7a0b\u5e8f\u4f7f\u7528\u3002C \u8bed\u8a00\u6807\u51c6\u5e93\u7531 C \u8bed\u8a00\u7684\u5236\u5b9a\u8005\u5b9a\u4e49\uff0c\u5e76\u5305\u542b\u5728 C \u8bed\u8a00\u7684\u7f16\u8bd1\u5668\u4e2d\u3002"),(0,a.yg)("p",null,"C \u8bed\u8a00\u6ca1\u6709\u5b98\u65b9\u7f51\u7ad9\uff0cISO \u7684\u5b98\u65b9\u7f51\u7ad9\u548c ANSI \u7684\u7f51\u7ad9\uff0c\u63d0\u4f9b\u4e86 C \u8bed\u8a00\u6807\u51c6\u7684\u76f8\u5173\u4fe1\u606f\u3002"),(0,a.yg)("p",null,"\u4e0d\u540c\u7f16\u8bd1\u5668\u5bf9 C \u8bed\u8a00\u6807\u51c6\u7684\u652f\u6301\u7a0b\u5ea6\u662f\u4e0d\u540c\uff0c\u5728\u8fdb\u884c\u5f00\u53d1\u7684\u65f6\u5019\uff0c\u4e0d\u4ec5\u8981\u9009\u62e9\u9002\u5f53\u7684\u7f16\u8bd1\u5668\uff0c\u53ef\u80fd\u8fd8\u9700\u8981\u624b\u52a8\u6307\u5b9a C \u8bed\u8a00\u6807\u51c6\u3002"),(0,a.yg)("h3",{id:"c-\u8bed\u8a00\u6709\u591a\u5c11\u4e2a\u6807\u51c6\u5934\u6587\u4ef6\u5462\u5462"},"C \u8bed\u8a00\u6709\u591a\u5c11\u4e2a\u6807\u51c6\u5934\u6587\u4ef6\u5462\u5462\uff1f"),(0,a.yg)("p",null,"\u4e0d\u786e\u5b9a\uff1a\u8fd9\u548c\u7f16\u8bd1\u5668\u3001\u7f16\u8bd1\u5668\u7684\u7248\u672c\u548c\u914d\u7f6e\u6709\u5173\u3002"),(0,a.yg)("p",null,"\u5e38\u7528\u7684 C \u8bed\u8a00\u6807\u51c6\u5e93\u6709\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"stdio.h\uff1a\u63d0\u4f9b\u8f93\u5165\u8f93\u51fa\u51fd\u6570\uff0c\u5982 printf()\u548c scanf()\u7b49\u3002"),(0,a.yg)("li",{parentName:"ul"},"stdlib.h\uff1a\u63d0\u4f9b\u901a\u7528\u5de5\u5177\u51fd\u6570\uff0c\u5982 malloc()\u548c free()\u7b49\u3002"),(0,a.yg)("li",{parentName:"ul"},"string.h\uff1a\u63d0\u4f9b\u5b57\u7b26\u4e32\u5904\u7406\u51fd\u6570\uff0c\u5982 strcpy()\u548c strcat()\u7b49\u3002"),(0,a.yg)("li",{parentName:"ul"},"math.h\uff1a\u63d0\u4f9b\u6570\u5b66\u51fd\u6570\uff0c\u5982 sin()\u548c cos()\u7b49\u3002"),(0,a.yg)("li",{parentName:"ul"},"time.h\uff1a\u63d0\u4f9b\u65f6\u95f4\u5904\u7406\u51fd\u6570\uff0c\u5982 time()\u548c clock()\u7b49\u3002"),(0,a.yg)("li",{parentName:"ul"},"ctype.h\uff1a\u63d0\u4f9b\u5b57\u7b26\u5904\u7406\u51fd\u6570\uff0c\u5982 isalpha()\u548c isdigit()\u7b49\u3002"),(0,a.yg)("li",{parentName:"ul"},"assert.h\uff1a\u63d0\u4f9b\u65ad\u8a00\u5b8f\uff0c\u7528\u4e8e\u8c03\u8bd5\u7a0b\u5e8f\u3002"),(0,a.yg)("li",{parentName:"ul"},"stdarg.h\uff1a\u63d0\u4f9b\u53ef\u53d8\u53c2\u6570\u5217\u8868\u7684\u51fd\u6570\uff0c\u5982 printf()\u548c scanf()\u7b49\u3002"),(0,a.yg)("li",{parentName:"ul"},"errno.h\uff1a\u63d0\u4f9b\u9519\u8bef\u7801\u5b8f\uff0c\u7528\u4e8e\u6807\u8bc6\u9519\u8bef\u7c7b\u578b\u3002"),(0,a.yg)("li",{parentName:"ul"},"setjmp.h\uff1a\u63d0\u4f9b\u975e\u5c40\u90e8\u8df3\u8f6c\u51fd\u6570\uff0c\u5982 setjmp()\u548c longjmp()\u7b49\u3002"),(0,a.yg)("li",{parentName:"ul"},"signal.h\uff1a\u63d0\u4f9b\u4fe1\u53f7\u5904\u7406\u51fd\u6570\uff0c\u5982 signal()\u548c raise()\u7b49\u3002"),(0,a.yg)("li",{parentName:"ul"},"locale.h\uff1a\u63d0\u4f9b\u672c\u5730\u5316\u5904\u7406\u51fd\u6570\uff0c\u5982 setlocale()\u548c localeconv()\u7b49\u3002"),(0,a.yg)("li",{parentName:"ul"},"float.h\uff1a\u63d0\u4f9b\u6d6e\u70b9\u6570\u5904\u7406\u5b8f\uff0c\u5982 FLT_DIG \u548c DBL_MAX \u7b49\u3002"),(0,a.yg)("li",{parentName:"ul"},"limits.h\uff1a\u63d0\u4f9b\u6574\u6570\u5904\u7406\u5b8f\uff0c\u5982 INT_MAX \u548c LONG_MAX \u7b49\u3002"),(0,a.yg)("li",{parentName:"ul"},"stddef.h\uff1a\u63d0\u4f9b\u57fa\u672c\u7c7b\u578b\u5b9a\u4e49\uff0c\u5982 size_t \u548c ptrdiff_t \u7b49\u3002")),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://blog.csdn.net/weixin_43764974/article/details/130892554"},"CSDN-C \u8bed\u8a00\u6807\u51c6\u5e93\u3001Windows \u4e0e Linux \u5e73\u53f0\u4e0b\u5e38\u7528\u7684 C \u8bed\u8a00\u6807\u51c6\u5e93"))))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/04e0d125.53edd610.js b/assets/js/04e0d125.19647afe.js similarity index 98% rename from assets/js/04e0d125.53edd610.js rename to assets/js/04e0d125.19647afe.js index feeb09de5..48e285da4 100644 --- a/assets/js/04e0d125.53edd610.js +++ b/assets/js/04e0d125.19647afe.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2502],{5680:(e,t,n)=>{n.d(t,{xA:()=>l,yg:()=>f});var r=n(6540);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function c(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var d=r.createContext({}),s=function(e){var t=r.useContext(d),n=t;return e&&(n="function"==typeof e?e(t):c(c({},t),e)),n},l=function(e){var t=s(e.components);return r.createElement(d.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,d=e.parentName,l=i(e,["components","mdxType","originalType","parentName"]),p=s(n),y=o,f=p["".concat(d,".").concat(y)]||p[y]||u[y]||a;return n?r.createElement(f,c(c({ref:t},l),{},{components:n})):r.createElement(f,c({ref:t},l))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,c=new Array(a);c[0]=y;var i={};for(var d in t)hasOwnProperty.call(t,d)&&(i[d]=t[d]);i.originalType=e,i[p]="string"==typeof e?e:o,c[1]=i;for(var s=2;s{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>c,default:()=>u,frontMatter:()=>a,metadata:()=>i,toc:()=>s});var r=n(8168),o=(n(6540),n(5680));const a={},c="encoding",i={unversionedId:"study/back/IEDA/encoding",id:"study/back/IEDA/encoding",title:"encoding",description:"\u6ce8\u610f encoding \u7684\u914d\u7f6e",source:"@site/docs/study/back/IEDA/encoding.md",sourceDirName:"study/back/IEDA",slug:"/study/back/IEDA/encoding",permalink:"/docs/study/back/IEDA/encoding",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Maven",permalink:"/docs/study/back/IEDA/Maven"},next:{title:"File and Code Templates",permalink:"/docs/study/back/IEDA/fileandcodetemplates"}},d={},s=[],l={toc:s},p="wrapper";function u(e){let{components:t,...a}=e;return(0,o.yg)(p,(0,r.A)({},l,a,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"encoding"},"encoding"),(0,o.yg)("p",null,"\u6ce8\u610f encoding \u7684\u914d\u7f6e"),(0,o.yg)("p",null,(0,o.yg)("img",{alt:"endoding",src:n(677).A,width:"1017",height:"749"})))}u.isMDXComponent=!0},677:(e,t,n)=>{n.d(t,{A:()=>r});const r=n.p+"assets/images/ideaencoding-43e446aa1a506ecbfe47b4dd54b9490d.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2502],{5680:(e,t,n)=>{n.d(t,{xA:()=>l,yg:()=>f});var r=n(6540);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function c(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var d=r.createContext({}),s=function(e){var t=r.useContext(d),n=t;return e&&(n="function"==typeof e?e(t):c(c({},t),e)),n},l=function(e){var t=s(e.components);return r.createElement(d.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,d=e.parentName,l=i(e,["components","mdxType","originalType","parentName"]),p=s(n),y=o,f=p["".concat(d,".").concat(y)]||p[y]||u[y]||a;return n?r.createElement(f,c(c({ref:t},l),{},{components:n})):r.createElement(f,c({ref:t},l))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,c=new Array(a);c[0]=y;var i={};for(var d in t)hasOwnProperty.call(t,d)&&(i[d]=t[d]);i.originalType=e,i[p]="string"==typeof e?e:o,c[1]=i;for(var s=2;s{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>c,default:()=>u,frontMatter:()=>a,metadata:()=>i,toc:()=>s});var r=n(8168),o=(n(6540),n(5680));const a={},c="encoding",i={unversionedId:"study/back/IEDA/encoding",id:"study/back/IEDA/encoding",title:"encoding",description:"\u6ce8\u610f encoding \u7684\u914d\u7f6e",source:"@site/docs/study/back/IEDA/encoding.md",sourceDirName:"study/back/IEDA",slug:"/study/back/IEDA/encoding",permalink:"/docs/study/back/IEDA/encoding",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Maven",permalink:"/docs/study/back/IEDA/Maven"},next:{title:"File and Code Templates",permalink:"/docs/study/back/IEDA/fileandcodetemplates"}},d={},s=[],l={toc:s},p="wrapper";function u(e){let{components:t,...a}=e;return(0,o.yg)(p,(0,r.A)({},l,a,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"encoding"},"encoding"),(0,o.yg)("p",null,"\u6ce8\u610f encoding \u7684\u914d\u7f6e"),(0,o.yg)("p",null,(0,o.yg)("img",{alt:"endoding",src:n(677).A,width:"1017",height:"749"})))}u.isMDXComponent=!0},677:(e,t,n)=>{n.d(t,{A:()=>r});const r=n.p+"assets/images/ideaencoding-43e446aa1a506ecbfe47b4dd54b9490d.png"}}]); \ No newline at end of file diff --git a/assets/js/04e22f3f.84875dff.js b/assets/js/04e22f3f.a0e39142.js similarity index 98% rename from assets/js/04e22f3f.84875dff.js rename to assets/js/04e22f3f.a0e39142.js index 846675428..227fe5713 100644 --- a/assets/js/04e22f3f.84875dff.js +++ b/assets/js/04e22f3f.a0e39142.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2677],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>m});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),c=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=c(e.components);return n.createElement(p.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),d=c(r),y=a,m=d["".concat(p,".").concat(y)]||d[y]||u[y]||o;return r?n.createElement(m,i(i({ref:t},s),{},{components:r})):n.createElement(m,i({ref:t},s))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=y;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[d]="string"==typeof e?e:a,i[1]=l;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var n=r(8168),a=(r(6540),r(5680));const o={sidebar_position:1},i="\u6982\u8ff0",l={unversionedId:"study/program/index",id:"study/program/index",title:"\u6982\u8ff0",description:"\u5199\u4ee3\u7801\u7528\u5230\u7684\u4e00\u5957\u89c4\u8303\u53ca\u5176\u5ef6\u4f38\u5de5\u5177\u3002",source:"@site/docs/study/program/index.md",sourceDirName:"study/program",slug:"/study/program/",permalink:"/docs/study/program/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"TimescaleDB",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TimescaleDB"},next:{title:"Java",permalink:"/docs/study/program/JAVA/"}},p={},c=[{value:"\u76f8\u5173\u6982\u5ff5",id:"\u76f8\u5173\u6982\u5ff5",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],s={toc:c},d="wrapper";function u(e){let{components:t,...o}=e;return(0,a.yg)(d,(0,n.A)({},s,o,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,a.yg)("p",null,"\u5199\u4ee3\u7801\u7528\u5230\u7684\u4e00\u5957\u89c4\u8303\u53ca\u5176\u5ef6\u4f38\u5de5\u5177\u3002"),(0,a.yg)("h3",{id:"\u76f8\u5173\u6982\u5ff5"},"\u76f8\u5173\u6982\u5ff5"),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"\u6307\u4ee4-\u64cd\u4f5c\u7cfb\u7edf-\u5e94\u7528",src:r(714).A,width:"720",height:"289"})),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://windliang.wang/2019/11/06/%E5%88%B0%E5%BA%95%E5%AD%A6%E5%93%AA%E4%B8%80%E9%97%A8%E7%BC%96%E7%A8%8B%E8%AF%AD%E8%A8%80/"},"\u5230\u5e95\u5b66\u54ea\u4e00\u95e8\u7f16\u7a0b\u8bed\u8a00")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://windliang.wang/2020/03/11/x86-x64-x86-64-amd64-arm%E6%8C%87%E4%BB%A4%E9%9B%86%E6%9E%B6%E6%9E%84%E4%B9%8B%E9%97%B4%E7%9A%84%E5%85%B3%E7%B3%BB/"},"x86-x64-x86-64-amd64-arm \u6307\u4ee4\u96c6\u67b6\u6784\u4e4b\u95f4\u7684\u5173\u7cfb")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://windliang.wang/2019/05/21/linux%E5%92%8CAndroid%E7%9A%84%E5%85%B3%E7%B3%BB/"},"linux \u548c Android \u7684\u5173\u7cfb"))))}u.isMDXComponent=!0},714:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/zhiling-system-app-ad4d378124ac18c2ca5244edb7de32b2.webp"}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2677],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>m});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),c=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=c(e.components);return n.createElement(p.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),d=c(r),y=a,m=d["".concat(p,".").concat(y)]||d[y]||u[y]||o;return r?n.createElement(m,i(i({ref:t},s),{},{components:r})):n.createElement(m,i({ref:t},s))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=y;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[d]="string"==typeof e?e:a,i[1]=l;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var n=r(8168),a=(r(6540),r(5680));const o={sidebar_position:1},i="\u6982\u8ff0",l={unversionedId:"study/program/index",id:"study/program/index",title:"\u6982\u8ff0",description:"\u5199\u4ee3\u7801\u7528\u5230\u7684\u4e00\u5957\u89c4\u8303\u53ca\u5176\u5ef6\u4f38\u5de5\u5177\u3002",source:"@site/docs/study/program/index.md",sourceDirName:"study/program",slug:"/study/program/",permalink:"/docs/study/program/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"TimescaleDB",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TimescaleDB"},next:{title:"Java",permalink:"/docs/study/program/JAVA/"}},p={},c=[{value:"\u76f8\u5173\u6982\u5ff5",id:"\u76f8\u5173\u6982\u5ff5",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],s={toc:c},d="wrapper";function u(e){let{components:t,...o}=e;return(0,a.yg)(d,(0,n.A)({},s,o,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,a.yg)("p",null,"\u5199\u4ee3\u7801\u7528\u5230\u7684\u4e00\u5957\u89c4\u8303\u53ca\u5176\u5ef6\u4f38\u5de5\u5177\u3002"),(0,a.yg)("h3",{id:"\u76f8\u5173\u6982\u5ff5"},"\u76f8\u5173\u6982\u5ff5"),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"\u6307\u4ee4-\u64cd\u4f5c\u7cfb\u7edf-\u5e94\u7528",src:r(714).A,width:"720",height:"289"})),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://windliang.wang/2019/11/06/%E5%88%B0%E5%BA%95%E5%AD%A6%E5%93%AA%E4%B8%80%E9%97%A8%E7%BC%96%E7%A8%8B%E8%AF%AD%E8%A8%80/"},"\u5230\u5e95\u5b66\u54ea\u4e00\u95e8\u7f16\u7a0b\u8bed\u8a00")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://windliang.wang/2020/03/11/x86-x64-x86-64-amd64-arm%E6%8C%87%E4%BB%A4%E9%9B%86%E6%9E%B6%E6%9E%84%E4%B9%8B%E9%97%B4%E7%9A%84%E5%85%B3%E7%B3%BB/"},"x86-x64-x86-64-amd64-arm \u6307\u4ee4\u96c6\u67b6\u6784\u4e4b\u95f4\u7684\u5173\u7cfb")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://windliang.wang/2019/05/21/linux%E5%92%8CAndroid%E7%9A%84%E5%85%B3%E7%B3%BB/"},"linux \u548c Android \u7684\u5173\u7cfb"))))}u.isMDXComponent=!0},714:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/zhiling-system-app-ad4d378124ac18c2ca5244edb7de32b2.webp"}}]); \ No newline at end of file diff --git a/assets/js/06a5f76a.173adf7a.js b/assets/js/06a5f76a.d7395418.js similarity index 98% rename from assets/js/06a5f76a.173adf7a.js rename to assets/js/06a5f76a.d7395418.js index f287dce48..3b2500841 100644 --- a/assets/js/06a5f76a.173adf7a.js +++ b/assets/js/06a5f76a.d7395418.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8985],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>m});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),s=p(r),f=o,m=s["".concat(l,".").concat(f)]||s[f]||d[f]||a;return r?n.createElement(m,i(i({ref:t},u),{},{components:r})):n.createElement(m,i({ref:t},u))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=f;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[s]="string"==typeof e?e:o,i[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={sidebar_position:1},i="\u6982\u8ff0",c={unversionedId:"iotcloud/alarmlinkage/index",id:"iotcloud/alarmlinkage/index",title:"\u6982\u8ff0",description:"\u62a5\u8b66\u8054\u52a8\u4e3b\u8981\u662f\u7ba1\u7406\u62a5\u8b66\u63a8\u9001\u548c\u62a5\u8b66\u8054\u7cfb\u4eba\u3002",source:"@site/docs/iotcloud/alarmlinkage/index.md",sourceDirName:"iotcloud/alarmlinkage",slug:"/iotcloud/alarmlinkage/",permalink:"/docs/iotcloud/alarmlinkage/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1}},l={},p=[],u={toc:p},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,o.yg)("p",null,"\u62a5\u8b66\u8054\u52a8\u4e3b\u8981\u662f\u7ba1\u7406\u62a5\u8b66\u63a8\u9001\u548c\u62a5\u8b66\u8054\u7cfb\u4eba\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8985],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>m});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),s=p(r),f=o,m=s["".concat(l,".").concat(f)]||s[f]||d[f]||a;return r?n.createElement(m,i(i({ref:t},u),{},{components:r})):n.createElement(m,i({ref:t},u))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=f;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[s]="string"==typeof e?e:o,i[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={sidebar_position:1},i="\u6982\u8ff0",c={unversionedId:"iotcloud/alarmlinkage/index",id:"iotcloud/alarmlinkage/index",title:"\u6982\u8ff0",description:"\u62a5\u8b66\u8054\u52a8\u4e3b\u8981\u662f\u7ba1\u7406\u62a5\u8b66\u63a8\u9001\u548c\u62a5\u8b66\u8054\u7cfb\u4eba\u3002",source:"@site/docs/iotcloud/alarmlinkage/index.md",sourceDirName:"iotcloud/alarmlinkage",slug:"/iotcloud/alarmlinkage/",permalink:"/docs/iotcloud/alarmlinkage/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1}},l={},p=[],u={toc:p},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,o.yg)("p",null,"\u62a5\u8b66\u8054\u52a8\u4e3b\u8981\u662f\u7ba1\u7406\u62a5\u8b66\u63a8\u9001\u548c\u62a5\u8b66\u8054\u7cfb\u4eba\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/086f0ef7.06740d57.js b/assets/js/086f0ef7.71fc63d0.js similarity index 99% rename from assets/js/086f0ef7.06740d57.js rename to assets/js/086f0ef7.71fc63d0.js index f1d4bffff..3c8ac625a 100644 --- a/assets/js/086f0ef7.06740d57.js +++ b/assets/js/086f0ef7.71fc63d0.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1999],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>d});var n=r(6540);function s(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(s[r]=e[r]);return s}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(s[r]=e[r])}return s}var p=n.createContext({}),g=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},u=function(e){var t=g(e.components);return n.createElement(p.Provider,{value:t},e.children)},y="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},i=n.forwardRef((function(e,t){var r=e.components,s=e.mdxType,o=e.originalType,p=e.parentName,u=a(e,["components","mdxType","originalType","parentName"]),y=g(r),i=s,d=y["".concat(p,".").concat(i)]||y[i]||c[i]||o;return r?n.createElement(d,l(l({ref:t},u),{},{components:r})):n.createElement(d,l({ref:t},u))}));function d(e,t){var r=arguments,s=t&&t.mdxType;if("string"==typeof e||s){var o=r.length,l=new Array(o);l[0]=i;var a={};for(var p in t)hasOwnProperty.call(t,p)&&(a[p]=t[p]);a.originalType=e,a[y]="string"==typeof e?e:s,l[1]=a;for(var g=2;g{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>c,frontMatter:()=>o,metadata:()=>a,toc:()=>g});var n=r(8168),s=(r(6540),r(5680));const o={},l=void 0,a={unversionedId:"study/db/SQL/PostgreSQL",id:"study/db/SQL/PostgreSQL",title:"PostgreSQL",description:"\u7b80\u4ecb",source:"@site/docs/study/db/SQL/PostgreSQL.md",sourceDirName:"study/db/SQL",slug:"/study/db/SQL/PostgreSQL",permalink:"/docs/study/db/SQL/PostgreSQL",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"OpenGauss",permalink:"/docs/study/db/SQL/OpenGauss"},next:{title:"\u8fbe\u68a6\u6570\u636e\u5e93",permalink:"/docs/study/db/SQL/\u8fbe\u68a6"}},p={},g=[{value:"\u7b80\u4ecb",id:"\u7b80\u4ecb",level:3},{value:"PostGIS",id:"postgis",level:3},{value:"\u5b89\u88c5postgres",id:"\u5b89\u88c5postgres",level:3},{value:"mysql\u8fc1\u79fb\u5230postgres",id:"mysql\u8fc1\u79fb\u5230postgres",level:3}],u={toc:g},y="wrapper";function c(e){let{components:t,...r}=e;return(0,s.yg)(y,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,s.yg)("h3",{id:"\u7b80\u4ecb"},"\u7b80\u4ecb"),(0,s.yg)("p",null,(0,s.yg)("strong",{parentName:"p"},"PostgreSQL"),"\xa0(\u4e5f\u53eb Postgres)\u662f\u4e00\u4e2a\u81ea\u7531\u7684",(0,s.yg)("strong",{parentName:"p"},"\u5bf9\u8c61-\u5173\u7cfb\u6570\u636e\u5e93"),"\u670d\u52a1\u5668(\u6570\u636e\u5e93\u7ba1\u7406\u7cfb\u7edf)\uff0c\u5b83\u5728\u7075\u6d3b\u7684 BSD-\u98ce\u683c\u8bb8\u53ef\u8bc1\u4e0b\u53d1\u884c\u3002\u5b83\u63d0\u4f9b\u4e86\u76f8\u5bf9\u5176\u4ed6\u5f00\u653e\u6e90\u4ee3\u7801\u6570\u636e\u5e93\u7cfb\u7edf(\u6bd4\u5982 MySQL \u548c Firebird)\uff0c\u548c\u5bf9\u4e13\u6709\u7cfb\u7edf\u6bd4\u5982 Oracle\u3001Sybase\u3001IBM \u7684 DB2 \u548c Microsoft SQL Server\u7684\u4e00\u79cd\u9009\u62e9\u3002"),(0,s.yg)("p",null,'PostgreSQL \u7684 Slogan(\u53e3\u53f7) \u662f "\u4e16\u754c\u4e0a\u6700\u5148\u8fdb\u7684\u5f00\u6e90\u5173\u7cfb\u578b\u6570\u636e\u5e93"\u3002'),(0,s.yg)("h3",{id:"postgis"},"PostGIS"),(0,s.yg)("p",null,"PostGIS\u5728\u5bf9\u8c61\u5173\u7cfb\u578b\u6570\u636e\u5e93PostgreSQL\u4e0a\u589e\u52a0\u4e86\u5b58\u50a8\u7ba1\u7406\u7a7a\u95f4\u6570\u636e\u7684\u80fd\u529b\uff0c\u76f8\u5f53\u4e8eOracle\u7684spatial\u90e8\u5206\u3002PostGIS\u6700\u5927\u7684\u7279\u70b9\u662f\u7b26\u5408\u5e76\u4e14\u5b9e\u73b0\u4e86OpenGIS\u7684\u4e00\u4e9b\u89c4\u8303\uff0c\u662f\u6700\u8457\u540d\u7684\u5f00\u6e90GIS\u6570\u636e\u5e93\u3002"),(0,s.yg)("p",null,"PostGIS\u901a\u8fc7\u5411PostgreSQL\u6dfb\u52a0\u5bf9\u7a7a\u95f4\u6570\u636e\u7c7b\u578b\u3001\u7a7a\u95f4\u7d22\u5f15\u548c\u7a7a\u95f4\u51fd\u6570\u7684\u652f\u6301\uff0c\u5c06PostgreSQL\u6570\u636e\u5e93\u7ba1\u7406\u7cfb\u7edf\u8f6c\u6362\u4e3a\u7a7a\u95f4\u6570\u636e\u5e93\u3002"),(0,s.yg)("p",null,'\u56e0\u4e3aPostGIS\u662f\u5efa\u7acb\u5728PostgreSQL\u4e4b\u4e0a\u7684\uff0c\u6240\u4ee5PostGIS\u81ea\u52a8\u7ee7\u627f\u4e86\u91cd\u8981\u7684"\u4f01\u4e1a\u7ea7"\u7279\u6027\u4ee5\u53ca\u5f00\u653e\u6e90\u4ee3\u7801\u7684\u6807\u51c6\u3002'),(0,s.yg)("p",null,"\u53ef\u4ee5\u8bf4PostGIS\u4ec5\u4ec5\u53ea\u662fPostgreSQL\u7684\u4e00\u4e2a\u63d2\u4ef6\uff0c\u4f46\u662f\u5b83\u5c06PostgreSQL\u53d8\u6210\u4e86\u4e00\u4e2a\u5f3a\u5927\u7684\u7a7a\u95f4\u6570\u636e\u5e93\uff01"),(0,s.yg)("p",null,"\u95ee\u9898\u63cf\u8ff0\uff1a"),(0,s.yg)("p",null,"\u5bf9\u8f66\u8f86\u7684\u4f4d\u7f6e\u4fe1\u606f\u8fdb\u884c\u5b58\u50a8\uff0c\u67e5\u8be2\u8f66\u8f86\u7684\u884c\u9a76\u8f68\u8ff9\u548c\u91cc\u7a0b\u3002"),(0,s.yg)("h3",{id:"\u5b89\u88c5postgres"},"\u5b89\u88c5postgres"),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-shell"},"#\ndocker pull postgres:11.19-bullseye\n#\ndocker run \\\n--privileged=true \\\n--restart=always \\\n--name postgres \\\n-e POSTGRES_PASSWORD=Aa0123 \\\n-p 5432:5432 \\\n-v /mnt/docker/postgresql/data:/var/lib/postgresql/data \\\n-d postgres:11.19-bullseye\n# \u53d1\u73b0\u4f7f\u7528DBeaver\u8fde\u63a5\u4e0d\u4e0a\uff0c\u9700\u8981\u4fee\u6539/mnt/docker/postgresql/data/pg_hba.conf \n# \u589e\u52a0\u4e00\u884chost all all 192.168.41.69/32 trust\n# 192.168.41.69\u662f\u6211\u81ea\u5df1\u7684ip\n\n")),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-shell"},"# \u5728ubuntu\u4e0a\u5b89\u88c5\nsudo apt-get install postgresql -y\nsudo systemctl status postgresql\n#\npasswd postgres\n#\nsu - postgres\n#\npgsql\n#\n\\password postgres\n# \u67e5\u770b\u6240\u6709\u6570\u636e\u5e93\n\\l\n# \u521b\u5efa\u6570\u636e\u5e93\ncreate database xxx with owner=postgres encoding='UTF-8';\n")),(0,s.yg)("h3",{id:"mysql\u8fc1\u79fb\u5230postgres"},"mysql\u8fc1\u79fb\u5230postgres"),(0,s.yg)("p",null,"mysql\u8fc1\u79fb\u5230opengauss \u5c31\u76f8\u5f53\u4e8e mysql\u8fc1\u79fb\u5230postgres"),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-shell"},"# \u5728ubuntu\u4e0a\u5b89\u88c5\nsudo apt-get install pgloader -y\n# \u6ce8\u610f\u5bc6\u7801\u7684\u4f7f\u7528\uff0c\u5982\u679c\u643a\u5e26\u7279\u6b8a\u5b57\u7b26@\uff0c\u53ef\u4ee5\u7528\u4e24\u4e2a@\u6807\u8bc6\npgloader mysql://root:yyyyyyyyy@10.20.37.101:3306/ccsp_common pgsql://postgres:yyyyyyyyyy@127.0.0.1:5432/class\n")),(0,s.yg)("p",null,"\u53c2\u8003\u6587\u6863 ",(0,s.yg)("a",{parentName:"p",href:"https://pgloader.readthedocs.io/en/latest/ref/mysql.html#using-default-settings"},"https://pgloader.readthedocs.io/en/latest/ref/mysql.html#using-default-settings")))}c.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1999],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>d});var n=r(6540);function s(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(s[r]=e[r]);return s}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(s[r]=e[r])}return s}var p=n.createContext({}),g=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},u=function(e){var t=g(e.components);return n.createElement(p.Provider,{value:t},e.children)},y="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},i=n.forwardRef((function(e,t){var r=e.components,s=e.mdxType,o=e.originalType,p=e.parentName,u=a(e,["components","mdxType","originalType","parentName"]),y=g(r),i=s,d=y["".concat(p,".").concat(i)]||y[i]||c[i]||o;return r?n.createElement(d,l(l({ref:t},u),{},{components:r})):n.createElement(d,l({ref:t},u))}));function d(e,t){var r=arguments,s=t&&t.mdxType;if("string"==typeof e||s){var o=r.length,l=new Array(o);l[0]=i;var a={};for(var p in t)hasOwnProperty.call(t,p)&&(a[p]=t[p]);a.originalType=e,a[y]="string"==typeof e?e:s,l[1]=a;for(var g=2;g{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>c,frontMatter:()=>o,metadata:()=>a,toc:()=>g});var n=r(8168),s=(r(6540),r(5680));const o={},l=void 0,a={unversionedId:"study/db/SQL/PostgreSQL",id:"study/db/SQL/PostgreSQL",title:"PostgreSQL",description:"\u7b80\u4ecb",source:"@site/docs/study/db/SQL/PostgreSQL.md",sourceDirName:"study/db/SQL",slug:"/study/db/SQL/PostgreSQL",permalink:"/docs/study/db/SQL/PostgreSQL",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"OpenGauss",permalink:"/docs/study/db/SQL/OpenGauss"},next:{title:"\u8fbe\u68a6\u6570\u636e\u5e93",permalink:"/docs/study/db/SQL/\u8fbe\u68a6"}},p={},g=[{value:"\u7b80\u4ecb",id:"\u7b80\u4ecb",level:3},{value:"PostGIS",id:"postgis",level:3},{value:"\u5b89\u88c5postgres",id:"\u5b89\u88c5postgres",level:3},{value:"mysql\u8fc1\u79fb\u5230postgres",id:"mysql\u8fc1\u79fb\u5230postgres",level:3}],u={toc:g},y="wrapper";function c(e){let{components:t,...r}=e;return(0,s.yg)(y,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,s.yg)("h3",{id:"\u7b80\u4ecb"},"\u7b80\u4ecb"),(0,s.yg)("p",null,(0,s.yg)("strong",{parentName:"p"},"PostgreSQL"),"\xa0(\u4e5f\u53eb Postgres)\u662f\u4e00\u4e2a\u81ea\u7531\u7684",(0,s.yg)("strong",{parentName:"p"},"\u5bf9\u8c61-\u5173\u7cfb\u6570\u636e\u5e93"),"\u670d\u52a1\u5668(\u6570\u636e\u5e93\u7ba1\u7406\u7cfb\u7edf)\uff0c\u5b83\u5728\u7075\u6d3b\u7684 BSD-\u98ce\u683c\u8bb8\u53ef\u8bc1\u4e0b\u53d1\u884c\u3002\u5b83\u63d0\u4f9b\u4e86\u76f8\u5bf9\u5176\u4ed6\u5f00\u653e\u6e90\u4ee3\u7801\u6570\u636e\u5e93\u7cfb\u7edf(\u6bd4\u5982 MySQL \u548c Firebird)\uff0c\u548c\u5bf9\u4e13\u6709\u7cfb\u7edf\u6bd4\u5982 Oracle\u3001Sybase\u3001IBM \u7684 DB2 \u548c Microsoft SQL Server\u7684\u4e00\u79cd\u9009\u62e9\u3002"),(0,s.yg)("p",null,'PostgreSQL \u7684 Slogan(\u53e3\u53f7) \u662f "\u4e16\u754c\u4e0a\u6700\u5148\u8fdb\u7684\u5f00\u6e90\u5173\u7cfb\u578b\u6570\u636e\u5e93"\u3002'),(0,s.yg)("h3",{id:"postgis"},"PostGIS"),(0,s.yg)("p",null,"PostGIS\u5728\u5bf9\u8c61\u5173\u7cfb\u578b\u6570\u636e\u5e93PostgreSQL\u4e0a\u589e\u52a0\u4e86\u5b58\u50a8\u7ba1\u7406\u7a7a\u95f4\u6570\u636e\u7684\u80fd\u529b\uff0c\u76f8\u5f53\u4e8eOracle\u7684spatial\u90e8\u5206\u3002PostGIS\u6700\u5927\u7684\u7279\u70b9\u662f\u7b26\u5408\u5e76\u4e14\u5b9e\u73b0\u4e86OpenGIS\u7684\u4e00\u4e9b\u89c4\u8303\uff0c\u662f\u6700\u8457\u540d\u7684\u5f00\u6e90GIS\u6570\u636e\u5e93\u3002"),(0,s.yg)("p",null,"PostGIS\u901a\u8fc7\u5411PostgreSQL\u6dfb\u52a0\u5bf9\u7a7a\u95f4\u6570\u636e\u7c7b\u578b\u3001\u7a7a\u95f4\u7d22\u5f15\u548c\u7a7a\u95f4\u51fd\u6570\u7684\u652f\u6301\uff0c\u5c06PostgreSQL\u6570\u636e\u5e93\u7ba1\u7406\u7cfb\u7edf\u8f6c\u6362\u4e3a\u7a7a\u95f4\u6570\u636e\u5e93\u3002"),(0,s.yg)("p",null,'\u56e0\u4e3aPostGIS\u662f\u5efa\u7acb\u5728PostgreSQL\u4e4b\u4e0a\u7684\uff0c\u6240\u4ee5PostGIS\u81ea\u52a8\u7ee7\u627f\u4e86\u91cd\u8981\u7684"\u4f01\u4e1a\u7ea7"\u7279\u6027\u4ee5\u53ca\u5f00\u653e\u6e90\u4ee3\u7801\u7684\u6807\u51c6\u3002'),(0,s.yg)("p",null,"\u53ef\u4ee5\u8bf4PostGIS\u4ec5\u4ec5\u53ea\u662fPostgreSQL\u7684\u4e00\u4e2a\u63d2\u4ef6\uff0c\u4f46\u662f\u5b83\u5c06PostgreSQL\u53d8\u6210\u4e86\u4e00\u4e2a\u5f3a\u5927\u7684\u7a7a\u95f4\u6570\u636e\u5e93\uff01"),(0,s.yg)("p",null,"\u95ee\u9898\u63cf\u8ff0\uff1a"),(0,s.yg)("p",null,"\u5bf9\u8f66\u8f86\u7684\u4f4d\u7f6e\u4fe1\u606f\u8fdb\u884c\u5b58\u50a8\uff0c\u67e5\u8be2\u8f66\u8f86\u7684\u884c\u9a76\u8f68\u8ff9\u548c\u91cc\u7a0b\u3002"),(0,s.yg)("h3",{id:"\u5b89\u88c5postgres"},"\u5b89\u88c5postgres"),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-shell"},"#\ndocker pull postgres:11.19-bullseye\n#\ndocker run \\\n--privileged=true \\\n--restart=always \\\n--name postgres \\\n-e POSTGRES_PASSWORD=Aa0123 \\\n-p 5432:5432 \\\n-v /mnt/docker/postgresql/data:/var/lib/postgresql/data \\\n-d postgres:11.19-bullseye\n# \u53d1\u73b0\u4f7f\u7528DBeaver\u8fde\u63a5\u4e0d\u4e0a\uff0c\u9700\u8981\u4fee\u6539/mnt/docker/postgresql/data/pg_hba.conf \n# \u589e\u52a0\u4e00\u884chost all all 192.168.41.69/32 trust\n# 192.168.41.69\u662f\u6211\u81ea\u5df1\u7684ip\n\n")),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-shell"},"# \u5728ubuntu\u4e0a\u5b89\u88c5\nsudo apt-get install postgresql -y\nsudo systemctl status postgresql\n#\npasswd postgres\n#\nsu - postgres\n#\npgsql\n#\n\\password postgres\n# \u67e5\u770b\u6240\u6709\u6570\u636e\u5e93\n\\l\n# \u521b\u5efa\u6570\u636e\u5e93\ncreate database xxx with owner=postgres encoding='UTF-8';\n")),(0,s.yg)("h3",{id:"mysql\u8fc1\u79fb\u5230postgres"},"mysql\u8fc1\u79fb\u5230postgres"),(0,s.yg)("p",null,"mysql\u8fc1\u79fb\u5230opengauss \u5c31\u76f8\u5f53\u4e8e mysql\u8fc1\u79fb\u5230postgres"),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-shell"},"# \u5728ubuntu\u4e0a\u5b89\u88c5\nsudo apt-get install pgloader -y\n# \u6ce8\u610f\u5bc6\u7801\u7684\u4f7f\u7528\uff0c\u5982\u679c\u643a\u5e26\u7279\u6b8a\u5b57\u7b26@\uff0c\u53ef\u4ee5\u7528\u4e24\u4e2a@\u6807\u8bc6\npgloader mysql://root:yyyyyyyyy@10.20.37.101:3306/ccsp_common pgsql://postgres:yyyyyyyyyy@127.0.0.1:5432/class\n")),(0,s.yg)("p",null,"\u53c2\u8003\u6587\u6863 ",(0,s.yg)("a",{parentName:"p",href:"https://pgloader.readthedocs.io/en/latest/ref/mysql.html#using-default-settings"},"https://pgloader.readthedocs.io/en/latest/ref/mysql.html#using-default-settings")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0a1f7513.1a8d8709.js b/assets/js/0a1f7513.bfcb5015.js similarity index 99% rename from assets/js/0a1f7513.1a8d8709.js rename to assets/js/0a1f7513.bfcb5015.js index c4d7ecbc5..c8f902011 100644 --- a/assets/js/0a1f7513.1a8d8709.js +++ b/assets/js/0a1f7513.bfcb5015.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4963],{5680:(e,n,t)=>{t.d(n,{xA:()=>c,yg:()=>h});var a=t(6540);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function s(e){for(var n=1;n=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var o=a.createContext({}),i=function(e){var n=a.useContext(o),t=n;return e&&(t="function"==typeof e?e(n):s(s({},n),e)),t},c=function(e){var n=i(e.components);return a.createElement(o.Provider,{value:n},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},y=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,l=e.originalType,o=e.parentName,c=p(e,["components","mdxType","originalType","parentName"]),d=i(t),y=r,h=d["".concat(o,".").concat(y)]||d[y]||u[y]||l;return t?a.createElement(h,s(s({ref:n},c),{},{components:t})):a.createElement(h,s({ref:n},c))}));function h(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var l=t.length,s=new Array(l);s[0]=y;var p={};for(var o in n)hasOwnProperty.call(n,o)&&(p[o]=n[o]);p.originalType=e,p[d]="string"==typeof e?e:r,s[1]=p;for(var i=2;i{t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>s,default:()=>u,frontMatter:()=>l,metadata:()=>p,toc:()=>i});var a=t(8168),r=(t(6540),t(5680));const l={},s=void 0,p={unversionedId:"study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/Elasticsearch",id:"study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/Elasticsearch",title:"Elasticsearch",description:"ES\u7248\u672c",source:"@site/docs/study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/Elasticsearch.md",sourceDirName:"study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce",slug:"/study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/Elasticsearch",permalink:"/docs/study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/Elasticsearch",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u7efc\u5408\u6982\u8ff0",permalink:"/docs/study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/\u7efc\u5408\u6982\u8ff0"},next:{title:"InfluxDB",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/InfluxDB"}},o={},i=[{value:"ES\u7248\u672c",id:"es\u7248\u672c",level:2},{value:"ES\u57fa\u7840\u6982\u5ff5",id:"es\u57fa\u7840\u6982\u5ff5",level:2},{value:"\u5206\u9875",id:"\u5206\u9875",level:2},{value:"\u5206\u7247\u548c\u526f\u672c",id:"\u5206\u7247\u548c\u526f\u672c",level:2},{value:"\u5e38\u7528\u67e5\u8be2(curl)",id:"\u5e38\u7528\u67e5\u8be2curl",level:2},{value:"\u57fa\u7840\u6982\u5ff5",id:"\u57fa\u7840\u6982\u5ff5",level:3},{value:"\u67e5\u770b\u6240\u6709\u7d22\u5f15\u5e93",id:"\u67e5\u770b\u6240\u6709\u7d22\u5f15\u5e93",level:3},{value:"\u67e5\u770b\u67d0\u4e2a\u7d22\u5f15\u5e93\u4fe1\u606f",id:"\u67e5\u770b\u67d0\u4e2a\u7d22\u5f15\u5e93\u4fe1\u606f",level:3},{value:"\u8bbe\u7f6e\u67d0\u4e2a\u7d22\u5f15\u5e93\u4fe1\u606f",id:"\u8bbe\u7f6e\u67d0\u4e2a\u7d22\u5f15\u5e93\u4fe1\u606f",level:3},{value:"\u5206\u6790",id:"\u5206\u6790",level:3},{value:"\u5220\u9664\u6307\u5b9a\u7d22\u5f15\u5e93",id:"\u5220\u9664\u6307\u5b9a\u7d22\u5f15\u5e93",level:3},{value:"\u6df1\u5165\u641c\u7d22",id:"\u6df1\u5165\u641c\u7d22",level:3},{value:"\u65b0\u589e\u6570\u636e",id:"\u65b0\u589e\u6570\u636e",level:3},{value:"\u62f7\u8d1d\u7d22\u5f15\u5e93",id:"\u62f7\u8d1d\u7d22\u5f15\u5e93",level:3},{value:"\u540c\u4e00\u4e2a\u96c6\u7fa4\u62f7\u8d1d",id:"\u540c\u4e00\u4e2a\u96c6\u7fa4\u62f7\u8d1d",level:4},{value:"\u4e0d\u540c\u7684\u96c6\u7fa4\u62f7\u8d1d",id:"\u4e0d\u540c\u7684\u96c6\u7fa4\u62f7\u8d1d",level:4},{value:"\u62a5\u9519\u5904\u7406",id:"\u62a5\u9519\u5904\u7406",level:3},{value:"\u67e5\u8be2\u5206\u7247\u4fe1\u606f/\u6587\u6863\u603b\u6570/\u4e3b\u8282\u70b9",id:"\u67e5\u8be2\u5206\u7247\u4fe1\u606f\u6587\u6863\u603b\u6570\u4e3b\u8282\u70b9",level:3},{value:"\u9700\u8981\u5bc6\u7801\u65f6(nginx)",id:"\u9700\u8981\u5bc6\u7801\u65f6nginx",level:3},{value:"\u6a21\u677f",id:"\u6a21\u677f",level:3},{value:"\u521b\u5efa\u7d22\u5f15\u5e93",id:"\u521b\u5efa\u7d22\u5f15\u5e93",level:3},{value:"\u96c6\u7fa4\u72b6\u6001\u67e5\u770b",id:"\u96c6\u7fa4\u72b6\u6001\u67e5\u770b",level:3},{value:"\u5feb\u7167",id:"\u5feb\u7167",level:3},{value:"\u5220\u9664\u6570\u636e",id:"\u5220\u9664\u6570\u636e",level:3},{value:"es\u8bbf\u95ee\u6743\u9650",id:"es\u8bbf\u95ee\u6743\u9650",level:2},{value:"GEOIP",id:"geoip",level:2},{value:"\u76f8\u5173\u8d44\u6599",id:"\u76f8\u5173\u8d44\u6599",level:2}],c={toc:i},d="wrapper";function u(e){let{components:n,...t}=e;return(0,r.yg)(d,(0,a.A)({},c,t,{components:n,mdxType:"MDXLayout"}),(0,r.yg)("h2",{id:"es\u7248\u672c"},"ES\u7248\u672c"),(0,r.yg)("ol",null,(0,r.yg)("li",{parentName:"ol"},"\u76ee\u524d\u4f7f\u7528\u7684\u7248\u672c\u662f6.3.2\uff0c\u76f8\u5bf9\u5e94\u7684logstash/kibana/filebeat\u4e5f\u4f7f\u7528\u7684\u662f6.3.2\uff0cjava\u5bf9\u5e94\u7684jar\u5305client\u4e5f\u662f\u7528\u76846.3.2\uff1b")),(0,r.yg)("h2",{id:"es\u57fa\u7840\u6982\u5ff5"},"ES\u57fa\u7840\u6982\u5ff5"),(0,r.yg)("ol",null,(0,r.yg)("li",{parentName:"ol"},"Index\uff08\u7d22\u5f15-\u6570\u636e\u5e93\uff09\uff0c\u7d22\u5f15\u5305\u542b\u4e00\u5806\u6709\u76f8\u4f3c\u7ed3\u6784\u7684\u6587\u6863\u6570\u636e\uff0c\uff0c\u6bd4\u5982\u53ef\u4ee5\u6709\u4e00\u4e2a\u5ba2\u6237\u7d22\u5f15\uff0c\u5546\u54c1\u5206\u7c7b\u7d22\u5f15\uff0c\u8ba2\u5355\u7d22\u5f15\uff0c\u7d22\u5f15\u6709\u4e00\u4e2a\u540d\u79f0\u3002\u4e00\u4e2aindex\u5305\u542b\u5f88\u591adocument\uff0c\u4e00\u4e2aindex\u5c31\u4ee3\u8868\u4e86\u4e00\u7c7b\u7c7b\u4f3c\u7684\u6216\u8005\u76f8\u540c\u7684document\u3002\u6bd4\u5982\u8bf4\u5efa\u7acb\u4e00\u4e2aproduct index\uff0c\u5546\u54c1\u7d22\u5f15\uff0c\u91cc\u9762\u53ef\u80fd\u5c31\u5b58\u653e\u4e86\u6240\u6709\u7684\u5546\u54c1\u6570\u636e\uff0c\u6240\u6709\u7684\u5546\u54c1document\u3002\u5fc5\u987b\u662f\u82f1\u6587\u5c0f\u5199\u547d\u540d\u3002"),(0,r.yg)("li",{parentName:"ol"},(0,r.yg)("del",{parentName:"li"},"Type\uff08\u7c7b\u578b-\u8868\uff09\uff0c\u6bcf\u4e2a\u7d22\u5f15\u91cc\u90fd\u53ef\u4ee5\u6709\u4e00\u4e2a\u6216\u591a\u4e2atype\uff0ctype\u662findex\u4e2d\u7684\u4e00\u4e2a\u903b\u8f91\u6570\u636e\u5206\u7c7b\uff0c\u4e00\u4e2atype\u4e0b\u7684document\uff0c\u90fd\u6709\u76f8\u540c\u7684field\u3002")),(0,r.yg)("li",{parentName:"ol"},"Document\uff08\u6587\u6863-\u884c\uff09\uff0c\u6587\u6863\u662fes\u4e2d\u7684\u6700\u5c0f\u6570\u636e\u5355\u5143\uff0c\u4e00\u4e2adocument\u53ef\u4ee5\u662f\u4e00\u6761\u5ba2\u6237\u6570\u636e\uff0c\u4e00\u6761\u5546\u54c1\u5206\u7c7b\u6570\u636e\uff0c\u4e00\u6761\u8ba2\u5355\u6570\u636e\uff0c\u901a\u5e38\u7528JSON\u6570\u636e\u7ed3\u6784\u8868\u793a\uff0c\u6bcf\u4e2aindex\u4e0b\u7684type\u4e2d\uff0c\u90fd\u53ef\u4ee5\u53bb\u5b58\u50a8\u591a\u4e2adocument\u3002"),(0,r.yg)("li",{parentName:"ol"},"Field\uff08\u5b57\u6bb5-\u5217\uff09\uff0cField\u662fElasticsearch\u7684\u6700\u5c0f\u5355\u4f4d\u3002\u4e00\u4e2adocument\u91cc\u9762\u6709\u591a\u4e2afield\uff0c\u6bcf\u4e2afield\u5c31\u662f\u4e00\u4e2a\u6570\u636e\u5b57\u6bb5\u3002"),(0,r.yg)("li",{parentName:"ol"},"mapping\uff08\u6620\u5c04-\u7ea6\u675f\uff09\uff0c\u6570\u636e\u5982\u4f55\u5b58\u653e\u5230\u7d22\u5f15\u5bf9\u8c61\u4e0a\uff0c\u9700\u8981\u6709\u4e00\u4e2a\u6620\u5c04\u914d\u7f6e\uff0c\u5305\u62ec\uff1a\u6570\u636e\u7c7b\u578b\u3001\u662f\u5426\u5b58\u50a8\u3001\u662f\u5426\u5206\u8bcd\u7b49\u3002\u8fd9\u6837\u5c31\u521b\u5efa\u4e86\u4e00\u4e2a\u540d\u4e3ablog\u7684Index\u3002Type\u4e0d\u7528\u5355\u72ec\u521b\u5efa\uff0c\u5728\u521b\u5efaMapping \u65f6\u6307\u5b9a\u5c31\u53ef\u4ee5\u3002Mapping\u7528\u6765\u5b9a\u4e49Document\u4e2d\u6bcf\u4e2a\u5b57\u6bb5\u7684\u7c7b\u578b\uff0c\u5373\u6240\u4f7f\u7528\u7684 analyzer\u3001\u662f\u5426\u7d22\u5f15\u7b49\u5c5e\u6027\uff0c\u975e\u5e38\u5173\u952e\u7b49\u3002")),(0,r.yg)("p",null,(0,r.yg)("strong",{parentName:"p"},"\u6ce8\u610f\u4e8b\u9879\uff1a")),(0,r.yg)("p",null,"\u4eceES6.0\u5f00\u59cb\uff0c\u5b98\u65b9\u4fbf\u4e0d\u5efa\u8bae\u4e00\u4e2a\u7d22\u5f15\u4e2d\u521b\u5efa\u591a\u4e2a\u7c7b\u578b\uff1b\u5728ES7.0\u4e2d\uff0c\u66f4\u662f\u79fb\u9664\u4e86\u7c7b\u578b(Type)\u8fd9\u4e2a\u6982\u5ff5\u3002\u4e3a\u4ec0\u4e48\u5462\uff1f\n\u5728Elasticsearch\u7d22\u5f15\u4e2d\uff0c\u4e0d\u540c\u7c7b\u578b(Type)\u4e2d\u5177\u6709\u76f8\u540c\u540d\u79f0\u7684\u5b57\u6bb5\u5728\u5185\u90e8\u7531\u76f8\u540c\u7684Lucene\u5b57\u6bb5\u652f\u6301\u3002\u4e00\u4e2aindex\u4e2d\u591a\u4e2aType\u5728Lucene\u4e2d\u4f1a\u6709\u8bb8\u591a\u95ee\u9898\u3002\u5177\u4f53\u7684\u53ef\u4ee5\u53c2\u8003\u5b98\u65b9\u8bf4\u660e\u3002"),(0,r.yg)("h2",{id:"\u5206\u9875"},"\u5206\u9875"),(0,r.yg)("ol",null,(0,r.yg)("li",{parentName:"ol"},"\u6df1\u5ea6\u5206\u9875\uff0c\u7406\u89e3\u5728\u5206\u5e03\u5f0f\u7cfb\u7edf\u4e2d\u6df1\u5ea6\u5206\u9875\u662f\u6709\u95ee\u9898\u7684\uff0c\u6240\u4ee5\u4f7f\u7528\u6b64\u5206\u9875\u5728\u5bf9\u9700\u8981\u9650\u5236\u5206\u9875\u6570\u91cf\uff1b"),(0,r.yg)("li",{parentName:"ol"},"\u5feb\u7167\u5206\u9875(scroll)"),(0,r.yg)("li",{parentName:"ol"},"search_after\u5206\u9875")),(0,r.yg)("h2",{id:"\u5206\u7247\u548c\u526f\u672c"},"\u5206\u7247\u548c\u526f\u672c"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'//\u65b0\u589e\u7d22\u5f15\u7684\u540c\u65f6\u6dfb\u52a0\u5206\u7247\uff0c\u4e0d\u4f7f\u7528\u9ed8\u8ba4\u5206\u7247\uff0c\u5206\u7247\u7684\u6570\u91cf\n//\u4e00\u822c\u4ee5\uff08\u8282\u70b9\u6570*1.5\u62163\u500d\uff09\u6765\u8ba1\u7b97\uff0c\u6bd4\u5982\u67094\u4e2a\u8282\u70b9\uff0c\u5206\u7247\u6570\u91cf\u4e00\u822c\u662f6\u4e2a\u523012\u4e2a\uff0c\u6bcf\u4e2a\u5206\u7247\u4e00\u822c\u5206\u914d\u4e00\u4e2a\u526f\u672c\nPUT /testindex\n{\n "settings" : {\n "number_of_shards" : 5,\n "number_of_replicas" : 1\n }\n}\n')),(0,r.yg)("ol",null,(0,r.yg)("li",{parentName:"ol"},"\u4e00\u4e2a \u5206\u7247 \u662f\u4e00\u4e2a\u5e95\u5c42\u7684 \u5de5\u4f5c\u5355\u5143 \uff0c\u5b83\u4ec5\u4fdd\u5b58\u4e86\u5168\u90e8\u6570\u636e\u4e2d\u7684\u4e00\u90e8\u5206\u3002"),(0,r.yg)("li",{parentName:"ol"},"\u4e00\u4e2a\u5206\u7247\u662f\u4e00\u4e2a Lucene \u7684\u5b9e\u4f8b\uff0c\u4ee5\u53ca\u5b83\u672c\u8eab\u5c31\u662f\u4e00\u4e2a\u5b8c\u6574\u7684\u641c\u7d22\u5f15\u64ce\u3002"),(0,r.yg)("li",{parentName:"ol"},"\u4e00\u4e2a\u5206\u7247\u53ef\u4ee5\u662f \u4e3b \u5206\u7247\u6216\u8005 \u526f\u672c \u5206\u7247\u3002 \u7d22\u5f15\u5185\u4efb\u610f\u4e00\u4e2a\u6587\u6863\u90fd\u5f52\u5c5e\u4e8e\u4e00\u4e2a\u4e3b\u5206\u7247\uff0c\u6240\u4ee5\u4e3b\u5206\u7247\u7684\u6570\u76ee\u51b3\u5b9a\u7740\u7d22\u5f15\u80fd\u591f\u4fdd\u5b58\u7684\u6700\u5927\u6570\u636e\u91cf\u3002"),(0,r.yg)("li",{parentName:"ol"},"\u6280\u672f\u4e0a\u6765\u8bf4\uff0c\u4e00\u4e2a\u4e3b\u5206\u7247\u6700\u5927\u80fd\u591f\u5b58\u50a8 Integer.MAX_VALUE - 128 \u4e2a\u6587\u6863 ~= 21\u4ebf\u6761"),(0,r.yg)("li",{parentName:"ol"},"\u4e00\u4e2a\u526f\u672c\u5206\u7247\u53ea\u662f\u4e00\u4e2a\u4e3b\u5206\u7247\u7684\u62f7\u8d1d\u3002\u526f\u672c\u5206\u7247\u4f5c\u4e3a\u786c\u4ef6\u6545\u969c\u65f6\u4fdd\u62a4\u6570\u636e\u4e0d\u4e22\u5931\u7684\u5197\u4f59\u5907\u4efd\uff0c\u5e76\u4e3a\u641c\u7d22\u548c\u8fd4\u56de\u6587\u6863\u7b49\u8bfb\u64cd\u4f5c\u63d0\u4f9b\u670d\u52a1\u3002"),(0,r.yg)("li",{parentName:"ol"},"\u5728\u7d22\u5f15\u5efa\u7acb\u7684\u65f6\u5019\u5c31\u5df2\u7ecf\u786e\u5b9a\u4e86\u4e3b\u5206\u7247\u6570\uff0c\u4f46\u662f\u526f\u672c\u5206\u7247\u6570\u53ef\u4ee5\u968f\u65f6\u4fee\u6539\u3002\u8bfb\u64cd\u4f5c\u2014\u2014\u641c\u7d22\u548c\u8fd4\u56de\u6570\u636e\u2014\u2014\u53ef\u4ee5\u540c\u65f6\u88ab\u4e3b\u5206\u7247\xa0",(0,r.yg)("em",{parentName:"li"},"\u6216"),"\xa0\u526f\u672c\u5206\u7247\u6240\u5904\u7406\uff0c\u6240\u4ee5\u5f53\u4f60\u62e5\u6709\u8d8a\u591a\u7684\u526f\u672c\u5206\u7247\u65f6\uff0c\u4e5f\u5c06\u62e5\u6709\u8d8a\u9ad8\u7684\u541e\u5410\u91cf\u3002")),(0,r.yg)("h2",{id:"\u5e38\u7528\u67e5\u8be2curl"},"\u5e38\u7528\u67e5\u8be2(curl)"),(0,r.yg)("h3",{id:"\u57fa\u7840\u6982\u5ff5"},"\u57fa\u7840\u6982\u5ff5"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"#\nurl\u4e2d\u643a\u5e26?v\u8868\u793a\u5c55\u793a\u8868\u5934\nurl\u4e2d\u643a\u5e26?pretty\u8868\u793a\u5c55\u793a\u683c\u5f0f\u5316\nurl\u4e2d\u5e26\u7740?help\u67e5\u770b\u5217\u7684\u5b9a\u4e49\nurl\u4e2d\u5e26\u7740?h=a,b\u6307\u5b9a\u67e5\u770b\u67d0\u4e9b\u5217\n\n#\u6d4f\u89c8es\u670d\u52a1\u4fe1\u606f\ncurl -XGET http://127.0.0.1:9200\n")),(0,r.yg)("h3",{id:"\u67e5\u770b\u6240\u6709\u7d22\u5f15\u5e93"},"\u67e5\u770b\u6240\u6709\u7d22\u5f15\u5e93"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"#\u6839\u636e\u7d22\u5f15\u5e93\u540d\u79f0\u6392\u5e8f\ncurl -XGET 'http://127.0.0.1:9200/_cat/indices?v&s=index'\n#\u6839\u636e\u6587\u6863\u6570\u91cf\u6392\u5e8f\ncurl -XGET 'http://127.0.0.1:9200/_cat/indices?v&s=docs.count'\n#\u6839\u636e\u6587\u6863\u78c1\u76d8\u5b58\u50a8\u5927\u5c0f\u6392\u5e8f\ncurl -XGET 'http://127.0.0.1:9200/_cat/indices?v&s=store.size'\n#\u67e5\u770b\u6240\u6709\u7d22\u5f15\u5e93\u7684\u8bbe\u7f6e\u4fe1\u606f\ncurl -XGET 'http://127.0.0.1:9200/_all/_settings?pretty'\n#\u67d0\u4e2a\u7d22\u5f15\ncurl -XGET 'http://127.0.0.1:9200/_cat/indices/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}?v'\n")),(0,r.yg)("h3",{id:"\u67e5\u770b\u67d0\u4e2a\u7d22\u5f15\u5e93\u4fe1\u606f"},"\u67e5\u770b\u67d0\u4e2a\u7d22\u5f15\u5e93\u4fe1\u606f"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"#\u67e5\u770b\u67d0\u4e2a\u7d22\u5f15\u5e93\u7684aliases/mappings/settings\ncurl -XGET 'http://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}?pretty'\n#\u67e5\u770b\u67d0\u4e2a\u7d22\u5f15\u5e93\u7684settings\ncurl -XGET 'http://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_settings?pretty'\n#\u67e5\u770b\u67d0\u4e2a\u7d22\u5f15\u5e93\u7684mappings\ncurl -XGET 'http://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_mappings?pretty'\n")),(0,r.yg)("h3",{id:"\u8bbe\u7f6e\u67d0\u4e2a\u7d22\u5f15\u5e93\u4fe1\u606f"},"\u8bbe\u7f6e\u67d0\u4e2a\u7d22\u5f15\u5e93\u4fe1\u606f"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'#\u8bbe\u7f6e\u67d0\u4e2a\u7d22\u5f15\u5e93\u7684settings \u526f\u672c\u6570\u91cf\uff0c\u526f\u672c\u6570\u91cf\u8d8a\u5408\u7406\u7684\u8d8a\u591a\uff0c\u4f1a\u63d0\u9ad8\u67e5\u8be2\u901f\u5ea6\ncurl -XPUT \'http://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_settings\' \\\n-H "Content-Type: application/json" \\\n-d \'{"index":{"number_of_replicas":"1"}}\'\n#\u8bbe\u7f6e\u67d0\u4e2a\u7d22\u5f15\u5e93\u7684\u67d0\u4e2a\u5b57\u6bb5\u652f\u6301aggs\u5206\u6790 \u5982\u679c\u67d0\u4e2a\u5b57\u6bb5\u7684\u7c7b\u578b\u662f\u5bf9\u8c61\uff0c\u652f\u6301\u7528.\u8fd0\u7b97\u7b26\ncurl -XPUT \'http://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_mappings/doc?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \'{"properties" : {"url" : {"type" : "text", "fielddata" : true }}}\'\n')),(0,r.yg)("h3",{id:"\u5206\u6790"},"\u5206\u6790"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'#\u6839\u636e\u67d0\u4e2a\u5b57\u6bb5\u5206\u6790\u6587\u6863\u6570\u91cf \u5982\u679c\u67d0\u4e2a\u5b57\u6bb5\u7684\u7c7b\u578b\u662f\u5bf9\u8c61\uff0c\u652f\u6301\u7528.\u8fd0\u7b97\u7b26 \n#\u8fd9\u4e2a\u5b57\u6bb5\u9700\u8981\u652f\u6301fielddata=true\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \'{"size" : 0 ,"aggs": {"all_interests": {"terms": { "field": "url" }}}}\'\n#\u6839\u636e\u67d0\u4e2a\u5b57\u6bb5\u5148\u67e5\u8be2\u518d\u5206\u6790\u6587\u6863\u6570\u91cf\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \'{\n"query":{"match":{"method":"POST"}},\n"size" : 0 ,"aggs": {"all_interests": {"terms": { "field": "uaj.name" }}}}\'\n')),(0,r.yg)("h3",{id:"\u5220\u9664\u6307\u5b9a\u7d22\u5f15\u5e93"},"\u5220\u9664\u6307\u5b9a\u7d22\u5f15\u5e93"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"#\ncurl -XDELETE 'http://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}?pretty'\n")),(0,r.yg)("h3",{id:"\u6df1\u5165\u641c\u7d22"},"\u6df1\u5165\u641c\u7d22"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'##############################################\u7ed3\u6784\u5316\u641c\u7d22\n# \u7ed3\u6784\u5316\u641c\u7d22-\u7cbe\u786e\u503c\u67e5\u627e\ncurl -XPOST \\\nhttp://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_search?pretty \\\n-H "Content-Type: application/json" \\\n-d \'{ "sort": [{"@timestamp": {"order": "asc"}}], \n"from":0,"size": 10,"query":{"term":{"code":"200"}}}\'\n\ncurl -XPOST \\\nhttp://127.0.0.1:9400/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_search?pretty \\\n-H "Content-Type: application/json" \\\n-d \'{ \n"from":0,"size": 10,"query":{"term":{"_id":"uNp30XIB0LLx2kagtfJo"}}}\'\n# \u7ed3\u6784\u5316\u641c\u7d22-\u7cbe\u786e\u503c\u67e5\u627e\n# \u901a\u5e38\u5f53\u67e5\u627e\u4e00\u4e2a\u7cbe\u786e\u503c\u7684\u65f6\u5019\uff0c\u6211\u4eec\u4e0d\u5e0c\u671b\u5bf9\u67e5\u8be2\u8fdb\u884c\u8bc4\u5206\u8ba1\u7b97\u3002\u53ea\u5e0c\u671b\u5bf9\u6587\u6863\u8fdb\u884c\u5305\u62ec\u6216\u6392\u9664\u7684\u8ba1\u7b97\uff0c\n# \u6240\u4ee5\u6211\u4eec\u4f1a\u4f7f\u7528 constant_score \u67e5\u8be2\u4ee5\u975e\u8bc4\u5206\u6a21\u5f0f\u6765\u6267\u884c term \u67e5\u8be2\u5e76\u4ee5\u4e00\u4f5c\u4e3a\u7edf\u4e00\u8bc4\u5206\u3002\ncurl -XPOST \\\nhttp://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_search?pretty \\\n-H "Content-Type: application/json" \\\n-d \'{ "sort": [{"@timestamp": {"order": "desc"}}], \n"from":0,"size": 10,"query":{\n"constant_score":{\n "filter":{\n "term":{"code":"200"}\n }\n}\n}}\'\n#\ncurl -XPOST \\\nhttp://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_search?pretty \\\n-H "Content-Type: application/json" \\\n-d \'{ "sort": [{"@timestamp": {"order": "desc"}}], \n"from":0,"size": 10,"query":{\n"constant_score":{\n "filter":{\n "range":{"code":{\n "lte": "now"\n }}\n }\n}\n}}\'\n\n\n\n##############################################\u5168\u6587\u641c\u7d22\n# \u5168\u6587\u641c\u7d22-\u67e5\u8be2\u6240\u6709-\u6392\u5e8f\ncurl -XPOST \\\nhttp://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_search?pretty \\\n-H "Content-Type: application/json" \\\n-d \'{ "sort": [{"@timestamp": {"order": "desc"}}], \n"from":0,"size": 10,"query":{"match_all":{}}}\'\n# \u5168\u6587\u641c\u7d22-\u67d0\u4e2a\u5b57\u6bb5\u67e5\u8be2\ncurl -XPOST \\\nhttp://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}.20.6.11/_search?pretty \\\n-H "Content-Type: application/json" \\\n-d \'{ "from":0,"size": 10,"query":{"match":{"site":"m"}}}\'\n# \u6a21\u7cca\u67e5\u8be2\ncurl -XPOST \\\nhttp://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_search?pretty \\\n-H "Content-Type: application/json" \\\n-d \'{ "from":0,"size": 10,"query": {\n"wildcard": {\n "site": "*show.html*"\n}\n}}\'\ncurl -XPOST \\\nhttp://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_search?pretty \\\n-H "Content-Type: application/json" \\\n-d \'{ "from":0,"size": 10,"query": {\n"bool":{\n "must_not":[\n {"term":{"market.keyword":"\u79d1\u521b\u677f"}}\n ,{"wildcard": {"name": "*ST*"}}\n ]\n}\n}}\'\n\n\n')),(0,r.yg)("h3",{id:"\u65b0\u589e\u6570\u636e"},"\u65b0\u589e\u6570\u636e"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'#POST\u63d0\u4ea4 \u81ea\u52a8\u751f\u6210_id\ncurl -XPOST \\\nhttp://127.0.0.1:9200/stock/test \\\n-H "Content-Type: application/json" \\\n-d \'{"author" : "Doug Cutting"}\' \n#PUT\u63d0\u4ea4 \u6307\u5b9a_id\ncurl -XPOST \\\nhttp://127.0.0.1:9200/stock/test/1 \\\n-H "Content-Type: application/json" \\\n-d \'{"author" : "Doug Cutting"}\' \n')),(0,r.yg)("h3",{id:"\u62f7\u8d1d\u7d22\u5f15\u5e93"},"\u62f7\u8d1d\u7d22\u5f15\u5e93"),(0,r.yg)("h4",{id:"\u540c\u4e00\u4e2a\u96c6\u7fa4\u62f7\u8d1d"},"\u540c\u4e00\u4e2a\u96c6\u7fa4\u62f7\u8d1d"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'# x > .temp\n....\n#reindex one > bak\ncurl -XPOST \'http://127.0.0.1:9200/_reindex\' \\\n-H "Content-Type: application/json" \\\n-d \'{\n "source": {"index": "{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}.temp"},\n "dest": {"index": "{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}"}}\'\n#\n#curl -XDELETE \'http://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}?pretty\'\n#reindex bak > one\ncurl -XPOST \'http://127.0.0.1:9200/_reindex\' \\\n-H "Content-Type: application/json" \\\n-d \'{\n "source": {"index": "{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}"},\n "dest": {"index": "{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}"}}\'\n# restart logstash-xxx\n...\n#reindex temp > one\ncurl -XPOST \'http://127.0.0.1:9200/_reindex\' \\\n-H "Content-Type: application/json" \\\n-d \'{\n "source": {"index": "{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}.temp"},\n "dest": {"index": "{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}"}}\'\n#\n#curl -XDELETE \'http://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}.bak?pretty\'\n#curl -XDELETE \'http://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}.temp?pretty\'\n')),(0,r.yg)("h4",{id:"\u4e0d\u540c\u7684\u96c6\u7fa4\u62f7\u8d1d"},"\u4e0d\u540c\u7684\u96c6\u7fa4\u62f7\u8d1d"),(0,r.yg)("p",null,"\u6ce8\u610f\uff1a\n\u5fc5\u987b\u914d\u7f6ereindex.remote.whitelist=172.19.184.169:9200"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'#reindex one > bak --{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}\ncurl -XPOST \'http://127.0.0.1:9200/_reindex\' \\\n-H "Content-Type: application/json" \\\n-d \'{\n "source": {"index": "prod_device_active","remote":{"host":"http://172.19.184.169:9200"}},\n "dest": {"index": "prod_device_active"}}\'\n#reindex one > bak --prod_device_address_statistics\ncurl -XPOST \'http://127.0.0.1:9200/_reindex\' \\\n-H "Content-Type: application/json" \\\n-d \'{\n "source": {"index": "prod_device_address_statistics","remote":{"host":"http://172.19.184.169:9200"}},\n "dest": {"index": "prod_device_address_statistics"}}\'\n#reindex one > bak --prod_device_product_model_statistics\ncurl -XPOST \'http://127.0.0.1:9200/_reindex\' \\\n-H "Content-Type: application/json" \\\n-d \'{\n "source": {"index": "prod_device_product_model_statistics","remote":{"host":"http://172.19.184.169:9200"}},\n "dest": {"index": "prod_device_product_model_statistics"}}\'\n#reindex one > bak --prod_ranking\ncurl -XPOST \'http://127.0.0.1:9200/_reindex\' \\\n-H "Content-Type: application/json" \\\n-d \'{\n "source": {"index": "prod_ranking","remote":{"host":"http://172.19.184.169:9200"}},\n "dest": {"index": "prod_ranking.bak"}}\'\n#reindex one > bak --prod_user_func_flow_for_user_op_for_res\ncurl -XPOST \'http://127.0.0.1:9200/_reindex\' \\\n-H "Content-Type: application/json" \\\n-d \'{\n "source": {"index": "prod_user_func_flow_for_user_op_for_res","remote":{"host":"http://192.168.0.33:9200"}},\n "dest": {"index": "prod_user_func_flow_for_user_op_for_res"}}\'\n')),(0,r.yg)("h3",{id:"\u62a5\u9519\u5904\u7406"},"\u62a5\u9519\u5904\u7406"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'#\u5982\u679c\u62a5\u9519\u5982\u4e0b \u9700\u8981\u6267\u884c\n#Fielddata is disabled on text fields by default. Set fielddata=true on [ipo_date] in order to load fielddata in memory by uninverting the inverted index. Note that this can however use significant memory. Alternatively use a keyword field instead.\ncurl -i -H "Content-Type:application/json" \\\n-XPUT http://127.0.0.1:9200/daily/_mapping/doc/?pretty \\\n-d \'{"doc":{"properties":{"trade_date":{"type":"text","fielddata":true}}}}\'\n\n#\u89e3\u51b3\u9519\u8bef retrying failed action with response code: 403 ({"type"=>"cluster_block_exception", "reason"=>"block\ncurl -XPUT -H \'Content-Type: application/json\' \\\nhttp://127.0.0.1:9200/_all/_settings \\\n-d \'{"index.blocks.read_only_allow_delete": null}\'\n')),(0,r.yg)("h3",{id:"\u67e5\u8be2\u5206\u7247\u4fe1\u606f\u6587\u6863\u603b\u6570\u4e3b\u8282\u70b9"},"\u67e5\u8be2\u5206\u7247\u4fe1\u606f/\u6587\u6863\u603b\u6570/\u4e3b\u8282\u70b9"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"#\u67e5\u8be2\u67d0\u4e2a\u7d22\u5f15\u5e93\u7684\u5206\u7247\u4fe1\u606f\ncurl -XGET 'http://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_search_shards?pretty'\n#\u67e5\u8be2\u67d0\u4e2a\u7d22\u5f15\u5e93\u7684\u6587\u6863\u603b\u6570\u91cf\ncurl -XGET 'http://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/doc/_count?pretty'\n#\u67e5\u8be2\u4e3b\u8282\u70b9\ncurl -XGET 'http://127.0.0.1:9200/_cat/master?v'\n")),(0,r.yg)("h3",{id:"\u9700\u8981\u5bc6\u7801\u65f6nginx"},"\u9700\u8981\u5bc6\u7801\u65f6(nginx)"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'#\u9700\u8981\u5bc6\u7801\u65f6 \u4e3e\u4f8b\ncurl -XGET \\\n--user admin:Aa0123 \\\n#\u67e5\u770b\u67d0\u4e2a\u7d22\u5f15\u5e93\u4e0b\u7684\u524d1000\u6761\u6570\u636e\ncurl -XGET --user admin:Aa0123 \\\n\'http://47.103.38.240:8443/rc_ranking/_search\' \\\n-H "Content-Type: application/json" \\\n-d \'{ "sort": [{"@timestamp": {"order": "desc"}}],\\\n"from":0,"size": 1000,"query":{"match_all":{}}}\'\n')),(0,r.yg)("h3",{id:"\u6a21\u677f"},"\u6a21\u677f"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"#\u67e5\u8be2\u6240\u6709\u6a21\u677f\ncurl -XGET 'http://127.0.0.1:9200/_template?pretty'\ncurl -XGET 'http://127.0.0.1:9200/_template?pretty' > t.json\n#\u65b0\u589e\u67d0\u4e2a\u6a21\u677f--logstash-index-template-nginx-api\ncurl -XPUT http://127.0.0.1:9200/_template/logstash-index-template-nginx-api?pretty \\\n-H \"Content-Type: application/json\" \\\n-d @logstash-index-template-nginx-api.json\n\n#\u65b0\u589e\u67d0\u4e2a\u6a21\u677f--logstash-index-template-userop\ncurl -XPUT http://127.0.0.1:9200/_template/logstash-index-template-userop?pretty \\\n-H \"Content-Type: application/json\" \\\n-d @logstash-index-template-userop.json\n\n#\u65b0\u589e\u67d0\u4e2a\u6a21\u677f--logstash-index-template-alarm-data-history.json\ncurl -XPUT http://127.0.0.1:9200/_template/logstash-index-template-alarm-data-history?pretty \\\n-H \"Content-Type: application/json\" \\\n-d @logstash-index-template-alarm-data-history.json\n\n\n#\u5220\u9664\u67d0\u4e2a\u6a21\u677f\ncurl -XDELETE 'http://127.0.0.1:9200/_template/logstash-index-template-nginx-api?pretty'\n")),(0,r.yg)("h3",{id:"\u521b\u5efa\u7d22\u5f15\u5e93"},"\u521b\u5efa\u7d22\u5f15\u5e93"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"# \u521b\u5efa\u7d22\u5f15\u5e93\ncurl -XPUT 'http://127.0.0.1:9200/stock?pretty' \\\n-H 'Content-Type: application/json' \\\n-d '{\n \"settings\" : {\n \"number_of_shards\" : 5,\n \"number_of_replicas\" : 1\n }\n}'\n")),(0,r.yg)("h3",{id:"\u96c6\u7fa4\u72b6\u6001\u67e5\u770b"},"\u96c6\u7fa4\u72b6\u6001\u67e5\u770b"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"# \u670d\u52a1\u68c0\u6d4b\ncurl -XGET 'http://127.0.0.1:9200/_cat/health?v'\n# \u67e5\u770b\u6240\u6709\u96c6\u7fa4\u8282\u70b9\ncurl -XGET 'http://127.0.0.1:9200/_cat/allocation?v'\n# \u67e5\u770b\u96c6\u7fa4\u6240\u6709\u5206\u7247\u5206\u5e03\u60c5\u51b5\ncurl -XGET 'http://127.0.0.1:9200/_cat/shards?v'\n# \u67e5\u770b\u96c6\u7fa4\u67d0\u4e2a\u7d22\u5f15\u7684\u5206\u7247\u5206\u5e03\u60c5\u51b5\ncurl -XGET 'http://127.0.0.1:9200/_cat/shards/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}?v'\n# \u67e5\u770b\u96c6\u7fa4\u7684\u4e3b\u8282\u70b9\ncurl -XGET 'http://127.0.0.1:9200/_cat/master?v'\n# \u67e5\u770b\u96c6\u7fa4\u7684\u6240\u6709\u6570\u636e\u8282\u70b9\ncurl -XGET 'http://127.0.0.1:9200/_cat/nodes?v'\n# \u67e5\u770b\u96c6\u7fa4\u7684\u6240\u6709\u6bb5(\u6570\u636e\u96c6)\ncurl -XGET 'http://127.0.0.1:9200/_cat/segments?v'\n# \u67e5\u770b\u96c6\u7fa4\u67d0\u4e2a\u7d22\u5f15\u7684\u6bb5\u5206\u5e03\u60c5\u51b5\ncurl -XGET 'http://127.0.0.1:9200/_cat/segments/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}?v'\n# \u67e5\u770b\u96c6\u7fa4\u7684\u6240\u6709\u6587\u6863\u6570\u91cf\ncurl -XGET 'http://127.0.0.1:9200/_cat/count?v'\n# \u67e5\u770b\u96c6\u7fa4\u67d0\u4e2a\u7d22\u5f15\u7684\u6587\u6863\u6570\u91cf\ncurl -XGET 'http://127.0.0.1:9200/_cat/count/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}?v'\n# \u67e5\u770b\u96c6\u7fa4\u7684\u6240\u6709\u53d1\u73b0\u673a\u5236\ncurl -XGET 'http://127.0.0.1:9200/_cat/recovery?v'\n# \u67e5\u770b\u96c6\u7fa4\u67d0\u4e2a\u7d22\u5f15\u7684\u53d1\u73b0\u673a\u5236\ncurl -XGET 'http://127.0.0.1:9200/_cat/recovery/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}?v'\n# \u67e5\u770b\u96c6\u7fa4\u7684\u6240\u6709\u963b\u585e\u4efb\u52a1\uff1f\ncurl -XGET 'http://127.0.0.1:9200/_cat/pending_tasks?v'\n# \u67e5\u770b\u96c6\u7fa4\u7684\u6240\u6709\u522b\u540d\ncurl -XGET 'http://127.0.0.1:9200/_cat/aliases?v'\n# \u67e5\u770b\u96c6\u7fa4\u67d0\u4e2a\u7d22\u5f15\u7684\u522b\u540d\ncurl -XGET 'http://127.0.0.1:9200/_cat/aliases/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}?v'\n# \u67e5\u770b\u96c6\u7fa4\u7684\u6240\u6709\u7ebf\u7a0b\u6c60\ncurl -XGET 'http://127.0.0.1:9200/_cat/thread_pool?v'\n# \u67e5\u770b\u96c6\u7fa4\u7684\u6240\u6709\u63d2\u4ef6\u5217\u8868\ncurl -XGET 'http://127.0.0.1:9200/_cat/plugins?v'\n# \u67e5\u770b\u96c6\u7fa4\u7684\u6240\u6709fielddata\ncurl -XGET 'http://127.0.0.1:9200/_cat/fielddata?v'\ncurl -XGET 'http://127.0.0.1:9200/_cat/fielddata/{fields}?v'\n# \u67e5\u770b\u96c6\u7fa4\u7684\u6240\u6709\u8282\u70b9\u7684\u8282\u70b9\u5c5e\u6027\ncurl -XGET 'http://127.0.0.1:9200/_cat/nodeattrs?v'\n")),(0,r.yg)("h3",{id:"\u5feb\u7167"},"\u5feb\u7167"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'#\u67e5\u770b\u5feb\u7167\u5b58\u50a8\u4ed3\u5e93\u5217\u8868\ncurl -X ET "127.0.0.1:9200/_cat/repositories?v"\n#\u67e5\u770b\u67d0\u4e2a\u5feb\u7167\u5b58\u50a8\u4ed3\u5e93\u7684\u5feb\u7167\u5217\u8868\ncurl -XGET "127.0.0.1:9200/_snapshot/snapshots/_all?pretty"\n#\u6ce8\u518c\u5feb\u7167\u5b58\u50a8\u5e93\ncurl -XPUT \\\nhttp://127.0.0.1:9200/_snapshot/snapshots?pretty \\\n-H "Content-Type: application/json" \\\n-d \'{ "type":"fs","settings":{"location":"/usr/share/elasticsearch/snapshots"}}\'\n#\u67e5\u770b\u5feb\u7167\u5b58\u50a8\u5e93\ncurl -XGET \\\nhttp://127.0.0.1:9200/_snapshot?pretty\n#\u6267\u884c\u5feb\u7167\u5b58\u50a8\u5e93\ncurl -XPUT \\\n\'http://127.0.0.1:9200/_snapshot/snapshots/snapshot_02?wait_for_completion=true\'\n#\u67e5\u770b\u6267\u884c\u5feb\u7167\u5b58\u50a8\u5e93\u7684\u7ed3\u679c\ncurl -XGET \\\nhttp://127.0.0.1:9200/_snapshot/snapshots/snapshot_02?pretty\n#\u5220\u9664\u5feb\u7167\u5b58\u50a8\u5e93\ncurl -XDELETE "127.0.0.1:9200/_snapshot/snapshots?pretty"\n#\u5220\u9664\u5feb\u7167\ncurl -XDELETE "127.0.0.1:9200/_snapshot/snapshots/snapshot_02?pretty"\n#\u6253\u5305\ncd /mnt/docker/es.1\ntar czvf snapshots.tar.gz ./snapshots/*\n#############\u76ee\u7684\u5730\ncd /mnt/docker/es.1\n#upload an tar\ntar xzvf snapshots.tar.gz \n#\u6ce8\u518c\u5feb\u7167\u5b58\u50a8\u5e93\ncurl -XPUT \\\nhttp://127.0.0.1:9200/_snapshot/snapshots?pretty \\\n-H "Content-Type: application/json" \\\n-d \'{ "type":"fs","settings":{"location":"/usr/share/elasticsearch/snapshots"}}\'\n#\u8fd8\u539f\u5feb\u7167\u5b58\u50a8\u5e93\ncurl -XPOST \\\n\'http://127.0.0.1:9200/_snapshot/snapshots/snapshot_02/_restore?wait_for_completion=true\'\n')),(0,r.yg)("h3",{id:"\u5220\u9664\u6570\u636e"},"\u5220\u9664\u6570\u636e"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'#\u6839\u636e\u65f6\u95f4\u5220\u9664\u90e8\u5206\u6570\u636e\ncurl -XPOST \\\nhttp://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_delete_by_query?pretty \\\n-H "Content-Type: application/json" \\\n-d \'{ "query": {\n "range": {\n "@timestamp": {\n "lt": "2022-10-01T00:00:00Z"\n }\n }\n } }\'\n#\u5237\u65b0\u7d22\u5f15 \u5220\u9664 Elasticsearch \u7d22\u5f15\u4e2d\u7684\u90e8\u5206\u6570\u636e\u540e\uff0c\u78c1\u76d8\u4e0a\u53ef\u80fd\u4f1a\u51fa\u73b0\u4e0d\u5fc5\u8981\u7684\u788e\u7247\u3002\u4e3a\u4e86\u56de\u6536\u8fd9\u4e9b\u78c1\u76d8\u7a7a\u95f4\uff0c\u60a8\u53ef\u4ee5\u8fd0\u884c\u4e00\u6b21\u7d22\u5f15\u5237\u65b0\u64cd\u4f5c\uff0c\u8fd9\u5c06\u5220\u9664\u5df2\u6807\u8bb0\u4e3a\u5220\u9664\u4f46\u672a\u5b9e\u9645\u5220\u9664\u7684\u6587\u6863\uff0c\u5e76\u91cd\u65b0\u7ec4\u7ec7\u5269\u4f59\u6587\u6863\u4ee5\u51cf\u5c11\u788e\u7247\u3002\ncurl -XPOST \\\nhttp://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_refresh?pretty \\\n-H "Content-Type: application/json" \\\n-d \'{}\'\n')),(0,r.yg)("p",null,"#\u5f3a\u5236\u5408\u5e76\ncurl -XPOST \\\n",(0,r.yg)("a",{parentName:"p",href:"http://127.0.0.1:9200/%7B%E5%85%B7%E4%BD%93%E7%9A%84%E7%B4%A2%E5%BC%95%E5%BA%93%7D/_forcemerge?only_expunge_deletes=true"},"http://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_forcemerge?only_expunge_deletes=true")," \\\n-H \"Content-Type: application/json\" \\\n-d '{}'"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre"},"\n## \u8fd1\u5b9e\u65f6\u641c\u7d22/refresh\n\n\u5728 Elasticsearch \u4e2d\uff0c\u5199\u5165\u548c\u6253\u5f00\u4e00\u4e2a\u65b0\u6bb5\u7684\u8f7b\u91cf\u7684\u8fc7\u7a0b\u53eb\u505a refresh \u3002 \u9ed8\u8ba4\u60c5\u51b5\u4e0b\u6bcf\u4e2a\u5206\u7247\u4f1a\u6bcf\u79d2\u81ea\u52a8\u5237\u65b0\u4e00\u6b21\u3002\u8fd9\u5c31\u662f\u4e3a\u4ec0\u4e48\u6211\u4eec\u8bf4 Elasticsearch \u662f \u8fd1 \u5b9e\u65f6\u641c\u7d22: \u6587\u6863\u7684\u53d8\u5316\u5e76\u4e0d\u662f\u7acb\u5373\u5bf9\u641c\u7d22\u53ef\u89c1\uff0c\u4f46\u4f1a\u5728\u4e00\u79d2\u4e4b\u5185\u53d8\u4e3a\u53ef\u89c1\u3002\n\n\u8fd9\u4e9b\u884c\u4e3a\u53ef\u80fd\u4f1a\u5bf9\u65b0\u7528\u6237\u9020\u6210\u56f0\u60d1: \u4ed6\u4eec\u7d22\u5f15\u4e86\u4e00\u4e2a\u6587\u6863\u7136\u540e\u5c1d\u8bd5\u641c\u7d22\u5b83\uff0c\u4f46\u5374\u6ca1\u6709\u641c\u5230\u3002\u8fd9\u4e2a\u95ee\u9898\u7684\u89e3\u51b3\u529e\u6cd5\u662f\u7528 refresh API \u6267\u884c\u4e00\u6b21\u624b\u52a8\u5237\u65b0:\n```shell\nPOST /_refresh \nPOST /blogs/_refresh \n")),(0,r.yg)("h2",{id:"es\u8bbf\u95ee\u6743\u9650"},"es\u8bbf\u95ee\u6743\u9650"),(0,r.yg)("p",null,"\u56e0\u4e3a\u5f00\u6e90\u7684es\u662f\u4e0d\u5e26\u8bbf\u95ee\u6743\u9650\u63a7\u5236\u7684\uff0c\u5e76\u4e0d\u80fd\u7528\u4e8e\u751f\u4ea7\u73af\u5883\uff1b\u5546\u4e1a\u7248\u63d2\u4ef6x-pack\u662f\u652f\u6301\u7528\u6237\u6743\u9650\u7684\uff0c\u4f46\u662f\u6536\u8d39\u3002\n\u53ef\u4ee5\u4f7f\u7528nginx\u589e\u52a0\u8bbf\u95ee\u6743\u9650\u6765\u65b9\u5411\u4ee3\u7406es\uff0c\u4f46\u662fes\u76849200/9300\u7aef\u53e3\u4e0d\u80fd\u5916\u7f51\u5f00\u653e\uff1b"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'#\u5b89\u88c5httpd-tools\nyum install httpd-tools\nmkdir /usr/local/nginx/conf/passwd\nhtpasswd -c /usr/local/nginx/conf/passwd/es admin\n#nginx\u914d\u7f6e\u53cd\u5411\u4ee3\u7406\u589e\u52a0\nserver\n{\n listen 8443;\n location / {\n proxy_set_header Host $host;\n proxy_set_header X-Forwarded-For $remote_addr;\n proxy_pass http://172.17.0.1:9200;\n proxy_connect_timeout 18000;\n proxy_send_timeout 18000;\n proxy_read_timeout 18000;\n #\n auth_basic "Please input password";\n auth_basic_user_file /usr/local/nginx/conf/passwd/es;\n } \n}\n')),(0,r.yg)("h2",{id:"geoip"},"GEOIP"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"#\nyum install GeoIP-data -y\n")),(0,r.yg)("h2",{id:"\u76f8\u5173\u8d44\u6599"},"\u76f8\u5173\u8d44\u6599"),(0,r.yg)("ol",null,(0,r.yg)("li",{parentName:"ol"},(0,r.yg)("a",{parentName:"li",href:"https://blog.csdn.net/qq_31871785/article/details/86138291"},"\u4ece\u96f6\u5b66Elasticsearch\u7cfb\u5217\u2014\u2014JAVA API\u64cd\u4f5c")),(0,r.yg)("li",{parentName:"ol"},(0,r.yg)("a",{parentName:"li",href:"https://yqh.aliyun.com/detail/9912"},"\u5982\u4f55\u628aElasticsearch\u53d1\u6325\u5230\u6781\u81f4\uff1f")),(0,r.yg)("li",{parentName:"ol"},(0,r.yg)("a",{parentName:"li",href:"https://gitee.com/ymm-tech/ebatis"},"ebatis\u3010ebatis \u662f\u4e00\u4e2a\u7b80\u5355\u65b9\u4fbf\u4e0a\u624b\u7684 Elasticsearch ORM \u6846\u67b6\u3011"))))}u.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4963],{5680:(e,n,t)=>{t.d(n,{xA:()=>c,yg:()=>h});var a=t(6540);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function s(e){for(var n=1;n=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var o=a.createContext({}),i=function(e){var n=a.useContext(o),t=n;return e&&(t="function"==typeof e?e(n):s(s({},n),e)),t},c=function(e){var n=i(e.components);return a.createElement(o.Provider,{value:n},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},y=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,l=e.originalType,o=e.parentName,c=p(e,["components","mdxType","originalType","parentName"]),d=i(t),y=r,h=d["".concat(o,".").concat(y)]||d[y]||u[y]||l;return t?a.createElement(h,s(s({ref:n},c),{},{components:t})):a.createElement(h,s({ref:n},c))}));function h(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var l=t.length,s=new Array(l);s[0]=y;var p={};for(var o in n)hasOwnProperty.call(n,o)&&(p[o]=n[o]);p.originalType=e,p[d]="string"==typeof e?e:r,s[1]=p;for(var i=2;i{t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>s,default:()=>u,frontMatter:()=>l,metadata:()=>p,toc:()=>i});var a=t(8168),r=(t(6540),t(5680));const l={},s=void 0,p={unversionedId:"study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/Elasticsearch",id:"study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/Elasticsearch",title:"Elasticsearch",description:"ES\u7248\u672c",source:"@site/docs/study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/Elasticsearch.md",sourceDirName:"study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce",slug:"/study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/Elasticsearch",permalink:"/docs/study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/Elasticsearch",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u7efc\u5408\u6982\u8ff0",permalink:"/docs/study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/\u7efc\u5408\u6982\u8ff0"},next:{title:"InfluxDB",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/InfluxDB"}},o={},i=[{value:"ES\u7248\u672c",id:"es\u7248\u672c",level:2},{value:"ES\u57fa\u7840\u6982\u5ff5",id:"es\u57fa\u7840\u6982\u5ff5",level:2},{value:"\u5206\u9875",id:"\u5206\u9875",level:2},{value:"\u5206\u7247\u548c\u526f\u672c",id:"\u5206\u7247\u548c\u526f\u672c",level:2},{value:"\u5e38\u7528\u67e5\u8be2(curl)",id:"\u5e38\u7528\u67e5\u8be2curl",level:2},{value:"\u57fa\u7840\u6982\u5ff5",id:"\u57fa\u7840\u6982\u5ff5",level:3},{value:"\u67e5\u770b\u6240\u6709\u7d22\u5f15\u5e93",id:"\u67e5\u770b\u6240\u6709\u7d22\u5f15\u5e93",level:3},{value:"\u67e5\u770b\u67d0\u4e2a\u7d22\u5f15\u5e93\u4fe1\u606f",id:"\u67e5\u770b\u67d0\u4e2a\u7d22\u5f15\u5e93\u4fe1\u606f",level:3},{value:"\u8bbe\u7f6e\u67d0\u4e2a\u7d22\u5f15\u5e93\u4fe1\u606f",id:"\u8bbe\u7f6e\u67d0\u4e2a\u7d22\u5f15\u5e93\u4fe1\u606f",level:3},{value:"\u5206\u6790",id:"\u5206\u6790",level:3},{value:"\u5220\u9664\u6307\u5b9a\u7d22\u5f15\u5e93",id:"\u5220\u9664\u6307\u5b9a\u7d22\u5f15\u5e93",level:3},{value:"\u6df1\u5165\u641c\u7d22",id:"\u6df1\u5165\u641c\u7d22",level:3},{value:"\u65b0\u589e\u6570\u636e",id:"\u65b0\u589e\u6570\u636e",level:3},{value:"\u62f7\u8d1d\u7d22\u5f15\u5e93",id:"\u62f7\u8d1d\u7d22\u5f15\u5e93",level:3},{value:"\u540c\u4e00\u4e2a\u96c6\u7fa4\u62f7\u8d1d",id:"\u540c\u4e00\u4e2a\u96c6\u7fa4\u62f7\u8d1d",level:4},{value:"\u4e0d\u540c\u7684\u96c6\u7fa4\u62f7\u8d1d",id:"\u4e0d\u540c\u7684\u96c6\u7fa4\u62f7\u8d1d",level:4},{value:"\u62a5\u9519\u5904\u7406",id:"\u62a5\u9519\u5904\u7406",level:3},{value:"\u67e5\u8be2\u5206\u7247\u4fe1\u606f/\u6587\u6863\u603b\u6570/\u4e3b\u8282\u70b9",id:"\u67e5\u8be2\u5206\u7247\u4fe1\u606f\u6587\u6863\u603b\u6570\u4e3b\u8282\u70b9",level:3},{value:"\u9700\u8981\u5bc6\u7801\u65f6(nginx)",id:"\u9700\u8981\u5bc6\u7801\u65f6nginx",level:3},{value:"\u6a21\u677f",id:"\u6a21\u677f",level:3},{value:"\u521b\u5efa\u7d22\u5f15\u5e93",id:"\u521b\u5efa\u7d22\u5f15\u5e93",level:3},{value:"\u96c6\u7fa4\u72b6\u6001\u67e5\u770b",id:"\u96c6\u7fa4\u72b6\u6001\u67e5\u770b",level:3},{value:"\u5feb\u7167",id:"\u5feb\u7167",level:3},{value:"\u5220\u9664\u6570\u636e",id:"\u5220\u9664\u6570\u636e",level:3},{value:"es\u8bbf\u95ee\u6743\u9650",id:"es\u8bbf\u95ee\u6743\u9650",level:2},{value:"GEOIP",id:"geoip",level:2},{value:"\u76f8\u5173\u8d44\u6599",id:"\u76f8\u5173\u8d44\u6599",level:2}],c={toc:i},d="wrapper";function u(e){let{components:n,...t}=e;return(0,r.yg)(d,(0,a.A)({},c,t,{components:n,mdxType:"MDXLayout"}),(0,r.yg)("h2",{id:"es\u7248\u672c"},"ES\u7248\u672c"),(0,r.yg)("ol",null,(0,r.yg)("li",{parentName:"ol"},"\u76ee\u524d\u4f7f\u7528\u7684\u7248\u672c\u662f6.3.2\uff0c\u76f8\u5bf9\u5e94\u7684logstash/kibana/filebeat\u4e5f\u4f7f\u7528\u7684\u662f6.3.2\uff0cjava\u5bf9\u5e94\u7684jar\u5305client\u4e5f\u662f\u7528\u76846.3.2\uff1b")),(0,r.yg)("h2",{id:"es\u57fa\u7840\u6982\u5ff5"},"ES\u57fa\u7840\u6982\u5ff5"),(0,r.yg)("ol",null,(0,r.yg)("li",{parentName:"ol"},"Index\uff08\u7d22\u5f15-\u6570\u636e\u5e93\uff09\uff0c\u7d22\u5f15\u5305\u542b\u4e00\u5806\u6709\u76f8\u4f3c\u7ed3\u6784\u7684\u6587\u6863\u6570\u636e\uff0c\uff0c\u6bd4\u5982\u53ef\u4ee5\u6709\u4e00\u4e2a\u5ba2\u6237\u7d22\u5f15\uff0c\u5546\u54c1\u5206\u7c7b\u7d22\u5f15\uff0c\u8ba2\u5355\u7d22\u5f15\uff0c\u7d22\u5f15\u6709\u4e00\u4e2a\u540d\u79f0\u3002\u4e00\u4e2aindex\u5305\u542b\u5f88\u591adocument\uff0c\u4e00\u4e2aindex\u5c31\u4ee3\u8868\u4e86\u4e00\u7c7b\u7c7b\u4f3c\u7684\u6216\u8005\u76f8\u540c\u7684document\u3002\u6bd4\u5982\u8bf4\u5efa\u7acb\u4e00\u4e2aproduct index\uff0c\u5546\u54c1\u7d22\u5f15\uff0c\u91cc\u9762\u53ef\u80fd\u5c31\u5b58\u653e\u4e86\u6240\u6709\u7684\u5546\u54c1\u6570\u636e\uff0c\u6240\u6709\u7684\u5546\u54c1document\u3002\u5fc5\u987b\u662f\u82f1\u6587\u5c0f\u5199\u547d\u540d\u3002"),(0,r.yg)("li",{parentName:"ol"},(0,r.yg)("del",{parentName:"li"},"Type\uff08\u7c7b\u578b-\u8868\uff09\uff0c\u6bcf\u4e2a\u7d22\u5f15\u91cc\u90fd\u53ef\u4ee5\u6709\u4e00\u4e2a\u6216\u591a\u4e2atype\uff0ctype\u662findex\u4e2d\u7684\u4e00\u4e2a\u903b\u8f91\u6570\u636e\u5206\u7c7b\uff0c\u4e00\u4e2atype\u4e0b\u7684document\uff0c\u90fd\u6709\u76f8\u540c\u7684field\u3002")),(0,r.yg)("li",{parentName:"ol"},"Document\uff08\u6587\u6863-\u884c\uff09\uff0c\u6587\u6863\u662fes\u4e2d\u7684\u6700\u5c0f\u6570\u636e\u5355\u5143\uff0c\u4e00\u4e2adocument\u53ef\u4ee5\u662f\u4e00\u6761\u5ba2\u6237\u6570\u636e\uff0c\u4e00\u6761\u5546\u54c1\u5206\u7c7b\u6570\u636e\uff0c\u4e00\u6761\u8ba2\u5355\u6570\u636e\uff0c\u901a\u5e38\u7528JSON\u6570\u636e\u7ed3\u6784\u8868\u793a\uff0c\u6bcf\u4e2aindex\u4e0b\u7684type\u4e2d\uff0c\u90fd\u53ef\u4ee5\u53bb\u5b58\u50a8\u591a\u4e2adocument\u3002"),(0,r.yg)("li",{parentName:"ol"},"Field\uff08\u5b57\u6bb5-\u5217\uff09\uff0cField\u662fElasticsearch\u7684\u6700\u5c0f\u5355\u4f4d\u3002\u4e00\u4e2adocument\u91cc\u9762\u6709\u591a\u4e2afield\uff0c\u6bcf\u4e2afield\u5c31\u662f\u4e00\u4e2a\u6570\u636e\u5b57\u6bb5\u3002"),(0,r.yg)("li",{parentName:"ol"},"mapping\uff08\u6620\u5c04-\u7ea6\u675f\uff09\uff0c\u6570\u636e\u5982\u4f55\u5b58\u653e\u5230\u7d22\u5f15\u5bf9\u8c61\u4e0a\uff0c\u9700\u8981\u6709\u4e00\u4e2a\u6620\u5c04\u914d\u7f6e\uff0c\u5305\u62ec\uff1a\u6570\u636e\u7c7b\u578b\u3001\u662f\u5426\u5b58\u50a8\u3001\u662f\u5426\u5206\u8bcd\u7b49\u3002\u8fd9\u6837\u5c31\u521b\u5efa\u4e86\u4e00\u4e2a\u540d\u4e3ablog\u7684Index\u3002Type\u4e0d\u7528\u5355\u72ec\u521b\u5efa\uff0c\u5728\u521b\u5efaMapping \u65f6\u6307\u5b9a\u5c31\u53ef\u4ee5\u3002Mapping\u7528\u6765\u5b9a\u4e49Document\u4e2d\u6bcf\u4e2a\u5b57\u6bb5\u7684\u7c7b\u578b\uff0c\u5373\u6240\u4f7f\u7528\u7684 analyzer\u3001\u662f\u5426\u7d22\u5f15\u7b49\u5c5e\u6027\uff0c\u975e\u5e38\u5173\u952e\u7b49\u3002")),(0,r.yg)("p",null,(0,r.yg)("strong",{parentName:"p"},"\u6ce8\u610f\u4e8b\u9879\uff1a")),(0,r.yg)("p",null,"\u4eceES6.0\u5f00\u59cb\uff0c\u5b98\u65b9\u4fbf\u4e0d\u5efa\u8bae\u4e00\u4e2a\u7d22\u5f15\u4e2d\u521b\u5efa\u591a\u4e2a\u7c7b\u578b\uff1b\u5728ES7.0\u4e2d\uff0c\u66f4\u662f\u79fb\u9664\u4e86\u7c7b\u578b(Type)\u8fd9\u4e2a\u6982\u5ff5\u3002\u4e3a\u4ec0\u4e48\u5462\uff1f\n\u5728Elasticsearch\u7d22\u5f15\u4e2d\uff0c\u4e0d\u540c\u7c7b\u578b(Type)\u4e2d\u5177\u6709\u76f8\u540c\u540d\u79f0\u7684\u5b57\u6bb5\u5728\u5185\u90e8\u7531\u76f8\u540c\u7684Lucene\u5b57\u6bb5\u652f\u6301\u3002\u4e00\u4e2aindex\u4e2d\u591a\u4e2aType\u5728Lucene\u4e2d\u4f1a\u6709\u8bb8\u591a\u95ee\u9898\u3002\u5177\u4f53\u7684\u53ef\u4ee5\u53c2\u8003\u5b98\u65b9\u8bf4\u660e\u3002"),(0,r.yg)("h2",{id:"\u5206\u9875"},"\u5206\u9875"),(0,r.yg)("ol",null,(0,r.yg)("li",{parentName:"ol"},"\u6df1\u5ea6\u5206\u9875\uff0c\u7406\u89e3\u5728\u5206\u5e03\u5f0f\u7cfb\u7edf\u4e2d\u6df1\u5ea6\u5206\u9875\u662f\u6709\u95ee\u9898\u7684\uff0c\u6240\u4ee5\u4f7f\u7528\u6b64\u5206\u9875\u5728\u5bf9\u9700\u8981\u9650\u5236\u5206\u9875\u6570\u91cf\uff1b"),(0,r.yg)("li",{parentName:"ol"},"\u5feb\u7167\u5206\u9875(scroll)"),(0,r.yg)("li",{parentName:"ol"},"search_after\u5206\u9875")),(0,r.yg)("h2",{id:"\u5206\u7247\u548c\u526f\u672c"},"\u5206\u7247\u548c\u526f\u672c"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'//\u65b0\u589e\u7d22\u5f15\u7684\u540c\u65f6\u6dfb\u52a0\u5206\u7247\uff0c\u4e0d\u4f7f\u7528\u9ed8\u8ba4\u5206\u7247\uff0c\u5206\u7247\u7684\u6570\u91cf\n//\u4e00\u822c\u4ee5\uff08\u8282\u70b9\u6570*1.5\u62163\u500d\uff09\u6765\u8ba1\u7b97\uff0c\u6bd4\u5982\u67094\u4e2a\u8282\u70b9\uff0c\u5206\u7247\u6570\u91cf\u4e00\u822c\u662f6\u4e2a\u523012\u4e2a\uff0c\u6bcf\u4e2a\u5206\u7247\u4e00\u822c\u5206\u914d\u4e00\u4e2a\u526f\u672c\nPUT /testindex\n{\n "settings" : {\n "number_of_shards" : 5,\n "number_of_replicas" : 1\n }\n}\n')),(0,r.yg)("ol",null,(0,r.yg)("li",{parentName:"ol"},"\u4e00\u4e2a \u5206\u7247 \u662f\u4e00\u4e2a\u5e95\u5c42\u7684 \u5de5\u4f5c\u5355\u5143 \uff0c\u5b83\u4ec5\u4fdd\u5b58\u4e86\u5168\u90e8\u6570\u636e\u4e2d\u7684\u4e00\u90e8\u5206\u3002"),(0,r.yg)("li",{parentName:"ol"},"\u4e00\u4e2a\u5206\u7247\u662f\u4e00\u4e2a Lucene \u7684\u5b9e\u4f8b\uff0c\u4ee5\u53ca\u5b83\u672c\u8eab\u5c31\u662f\u4e00\u4e2a\u5b8c\u6574\u7684\u641c\u7d22\u5f15\u64ce\u3002"),(0,r.yg)("li",{parentName:"ol"},"\u4e00\u4e2a\u5206\u7247\u53ef\u4ee5\u662f \u4e3b \u5206\u7247\u6216\u8005 \u526f\u672c \u5206\u7247\u3002 \u7d22\u5f15\u5185\u4efb\u610f\u4e00\u4e2a\u6587\u6863\u90fd\u5f52\u5c5e\u4e8e\u4e00\u4e2a\u4e3b\u5206\u7247\uff0c\u6240\u4ee5\u4e3b\u5206\u7247\u7684\u6570\u76ee\u51b3\u5b9a\u7740\u7d22\u5f15\u80fd\u591f\u4fdd\u5b58\u7684\u6700\u5927\u6570\u636e\u91cf\u3002"),(0,r.yg)("li",{parentName:"ol"},"\u6280\u672f\u4e0a\u6765\u8bf4\uff0c\u4e00\u4e2a\u4e3b\u5206\u7247\u6700\u5927\u80fd\u591f\u5b58\u50a8 Integer.MAX_VALUE - 128 \u4e2a\u6587\u6863 ~= 21\u4ebf\u6761"),(0,r.yg)("li",{parentName:"ol"},"\u4e00\u4e2a\u526f\u672c\u5206\u7247\u53ea\u662f\u4e00\u4e2a\u4e3b\u5206\u7247\u7684\u62f7\u8d1d\u3002\u526f\u672c\u5206\u7247\u4f5c\u4e3a\u786c\u4ef6\u6545\u969c\u65f6\u4fdd\u62a4\u6570\u636e\u4e0d\u4e22\u5931\u7684\u5197\u4f59\u5907\u4efd\uff0c\u5e76\u4e3a\u641c\u7d22\u548c\u8fd4\u56de\u6587\u6863\u7b49\u8bfb\u64cd\u4f5c\u63d0\u4f9b\u670d\u52a1\u3002"),(0,r.yg)("li",{parentName:"ol"},"\u5728\u7d22\u5f15\u5efa\u7acb\u7684\u65f6\u5019\u5c31\u5df2\u7ecf\u786e\u5b9a\u4e86\u4e3b\u5206\u7247\u6570\uff0c\u4f46\u662f\u526f\u672c\u5206\u7247\u6570\u53ef\u4ee5\u968f\u65f6\u4fee\u6539\u3002\u8bfb\u64cd\u4f5c\u2014\u2014\u641c\u7d22\u548c\u8fd4\u56de\u6570\u636e\u2014\u2014\u53ef\u4ee5\u540c\u65f6\u88ab\u4e3b\u5206\u7247\xa0",(0,r.yg)("em",{parentName:"li"},"\u6216"),"\xa0\u526f\u672c\u5206\u7247\u6240\u5904\u7406\uff0c\u6240\u4ee5\u5f53\u4f60\u62e5\u6709\u8d8a\u591a\u7684\u526f\u672c\u5206\u7247\u65f6\uff0c\u4e5f\u5c06\u62e5\u6709\u8d8a\u9ad8\u7684\u541e\u5410\u91cf\u3002")),(0,r.yg)("h2",{id:"\u5e38\u7528\u67e5\u8be2curl"},"\u5e38\u7528\u67e5\u8be2(curl)"),(0,r.yg)("h3",{id:"\u57fa\u7840\u6982\u5ff5"},"\u57fa\u7840\u6982\u5ff5"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"#\nurl\u4e2d\u643a\u5e26?v\u8868\u793a\u5c55\u793a\u8868\u5934\nurl\u4e2d\u643a\u5e26?pretty\u8868\u793a\u5c55\u793a\u683c\u5f0f\u5316\nurl\u4e2d\u5e26\u7740?help\u67e5\u770b\u5217\u7684\u5b9a\u4e49\nurl\u4e2d\u5e26\u7740?h=a,b\u6307\u5b9a\u67e5\u770b\u67d0\u4e9b\u5217\n\n#\u6d4f\u89c8es\u670d\u52a1\u4fe1\u606f\ncurl -XGET http://127.0.0.1:9200\n")),(0,r.yg)("h3",{id:"\u67e5\u770b\u6240\u6709\u7d22\u5f15\u5e93"},"\u67e5\u770b\u6240\u6709\u7d22\u5f15\u5e93"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"#\u6839\u636e\u7d22\u5f15\u5e93\u540d\u79f0\u6392\u5e8f\ncurl -XGET 'http://127.0.0.1:9200/_cat/indices?v&s=index'\n#\u6839\u636e\u6587\u6863\u6570\u91cf\u6392\u5e8f\ncurl -XGET 'http://127.0.0.1:9200/_cat/indices?v&s=docs.count'\n#\u6839\u636e\u6587\u6863\u78c1\u76d8\u5b58\u50a8\u5927\u5c0f\u6392\u5e8f\ncurl -XGET 'http://127.0.0.1:9200/_cat/indices?v&s=store.size'\n#\u67e5\u770b\u6240\u6709\u7d22\u5f15\u5e93\u7684\u8bbe\u7f6e\u4fe1\u606f\ncurl -XGET 'http://127.0.0.1:9200/_all/_settings?pretty'\n#\u67d0\u4e2a\u7d22\u5f15\ncurl -XGET 'http://127.0.0.1:9200/_cat/indices/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}?v'\n")),(0,r.yg)("h3",{id:"\u67e5\u770b\u67d0\u4e2a\u7d22\u5f15\u5e93\u4fe1\u606f"},"\u67e5\u770b\u67d0\u4e2a\u7d22\u5f15\u5e93\u4fe1\u606f"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"#\u67e5\u770b\u67d0\u4e2a\u7d22\u5f15\u5e93\u7684aliases/mappings/settings\ncurl -XGET 'http://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}?pretty'\n#\u67e5\u770b\u67d0\u4e2a\u7d22\u5f15\u5e93\u7684settings\ncurl -XGET 'http://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_settings?pretty'\n#\u67e5\u770b\u67d0\u4e2a\u7d22\u5f15\u5e93\u7684mappings\ncurl -XGET 'http://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_mappings?pretty'\n")),(0,r.yg)("h3",{id:"\u8bbe\u7f6e\u67d0\u4e2a\u7d22\u5f15\u5e93\u4fe1\u606f"},"\u8bbe\u7f6e\u67d0\u4e2a\u7d22\u5f15\u5e93\u4fe1\u606f"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'#\u8bbe\u7f6e\u67d0\u4e2a\u7d22\u5f15\u5e93\u7684settings \u526f\u672c\u6570\u91cf\uff0c\u526f\u672c\u6570\u91cf\u8d8a\u5408\u7406\u7684\u8d8a\u591a\uff0c\u4f1a\u63d0\u9ad8\u67e5\u8be2\u901f\u5ea6\ncurl -XPUT \'http://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_settings\' \\\n-H "Content-Type: application/json" \\\n-d \'{"index":{"number_of_replicas":"1"}}\'\n#\u8bbe\u7f6e\u67d0\u4e2a\u7d22\u5f15\u5e93\u7684\u67d0\u4e2a\u5b57\u6bb5\u652f\u6301aggs\u5206\u6790 \u5982\u679c\u67d0\u4e2a\u5b57\u6bb5\u7684\u7c7b\u578b\u662f\u5bf9\u8c61\uff0c\u652f\u6301\u7528.\u8fd0\u7b97\u7b26\ncurl -XPUT \'http://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_mappings/doc?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \'{"properties" : {"url" : {"type" : "text", "fielddata" : true }}}\'\n')),(0,r.yg)("h3",{id:"\u5206\u6790"},"\u5206\u6790"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'#\u6839\u636e\u67d0\u4e2a\u5b57\u6bb5\u5206\u6790\u6587\u6863\u6570\u91cf \u5982\u679c\u67d0\u4e2a\u5b57\u6bb5\u7684\u7c7b\u578b\u662f\u5bf9\u8c61\uff0c\u652f\u6301\u7528.\u8fd0\u7b97\u7b26 \n#\u8fd9\u4e2a\u5b57\u6bb5\u9700\u8981\u652f\u6301fielddata=true\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \'{"size" : 0 ,"aggs": {"all_interests": {"terms": { "field": "url" }}}}\'\n#\u6839\u636e\u67d0\u4e2a\u5b57\u6bb5\u5148\u67e5\u8be2\u518d\u5206\u6790\u6587\u6863\u6570\u91cf\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \'{\n"query":{"match":{"method":"POST"}},\n"size" : 0 ,"aggs": {"all_interests": {"terms": { "field": "uaj.name" }}}}\'\n')),(0,r.yg)("h3",{id:"\u5220\u9664\u6307\u5b9a\u7d22\u5f15\u5e93"},"\u5220\u9664\u6307\u5b9a\u7d22\u5f15\u5e93"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"#\ncurl -XDELETE 'http://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}?pretty'\n")),(0,r.yg)("h3",{id:"\u6df1\u5165\u641c\u7d22"},"\u6df1\u5165\u641c\u7d22"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'##############################################\u7ed3\u6784\u5316\u641c\u7d22\n# \u7ed3\u6784\u5316\u641c\u7d22-\u7cbe\u786e\u503c\u67e5\u627e\ncurl -XPOST \\\nhttp://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_search?pretty \\\n-H "Content-Type: application/json" \\\n-d \'{ "sort": [{"@timestamp": {"order": "asc"}}], \n"from":0,"size": 10,"query":{"term":{"code":"200"}}}\'\n\ncurl -XPOST \\\nhttp://127.0.0.1:9400/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_search?pretty \\\n-H "Content-Type: application/json" \\\n-d \'{ \n"from":0,"size": 10,"query":{"term":{"_id":"uNp30XIB0LLx2kagtfJo"}}}\'\n# \u7ed3\u6784\u5316\u641c\u7d22-\u7cbe\u786e\u503c\u67e5\u627e\n# \u901a\u5e38\u5f53\u67e5\u627e\u4e00\u4e2a\u7cbe\u786e\u503c\u7684\u65f6\u5019\uff0c\u6211\u4eec\u4e0d\u5e0c\u671b\u5bf9\u67e5\u8be2\u8fdb\u884c\u8bc4\u5206\u8ba1\u7b97\u3002\u53ea\u5e0c\u671b\u5bf9\u6587\u6863\u8fdb\u884c\u5305\u62ec\u6216\u6392\u9664\u7684\u8ba1\u7b97\uff0c\n# \u6240\u4ee5\u6211\u4eec\u4f1a\u4f7f\u7528 constant_score \u67e5\u8be2\u4ee5\u975e\u8bc4\u5206\u6a21\u5f0f\u6765\u6267\u884c term \u67e5\u8be2\u5e76\u4ee5\u4e00\u4f5c\u4e3a\u7edf\u4e00\u8bc4\u5206\u3002\ncurl -XPOST \\\nhttp://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_search?pretty \\\n-H "Content-Type: application/json" \\\n-d \'{ "sort": [{"@timestamp": {"order": "desc"}}], \n"from":0,"size": 10,"query":{\n"constant_score":{\n "filter":{\n "term":{"code":"200"}\n }\n}\n}}\'\n#\ncurl -XPOST \\\nhttp://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_search?pretty \\\n-H "Content-Type: application/json" \\\n-d \'{ "sort": [{"@timestamp": {"order": "desc"}}], \n"from":0,"size": 10,"query":{\n"constant_score":{\n "filter":{\n "range":{"code":{\n "lte": "now"\n }}\n }\n}\n}}\'\n\n\n\n##############################################\u5168\u6587\u641c\u7d22\n# \u5168\u6587\u641c\u7d22-\u67e5\u8be2\u6240\u6709-\u6392\u5e8f\ncurl -XPOST \\\nhttp://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_search?pretty \\\n-H "Content-Type: application/json" \\\n-d \'{ "sort": [{"@timestamp": {"order": "desc"}}], \n"from":0,"size": 10,"query":{"match_all":{}}}\'\n# \u5168\u6587\u641c\u7d22-\u67d0\u4e2a\u5b57\u6bb5\u67e5\u8be2\ncurl -XPOST \\\nhttp://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}.20.6.11/_search?pretty \\\n-H "Content-Type: application/json" \\\n-d \'{ "from":0,"size": 10,"query":{"match":{"site":"m"}}}\'\n# \u6a21\u7cca\u67e5\u8be2\ncurl -XPOST \\\nhttp://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_search?pretty \\\n-H "Content-Type: application/json" \\\n-d \'{ "from":0,"size": 10,"query": {\n"wildcard": {\n "site": "*show.html*"\n}\n}}\'\ncurl -XPOST \\\nhttp://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_search?pretty \\\n-H "Content-Type: application/json" \\\n-d \'{ "from":0,"size": 10,"query": {\n"bool":{\n "must_not":[\n {"term":{"market.keyword":"\u79d1\u521b\u677f"}}\n ,{"wildcard": {"name": "*ST*"}}\n ]\n}\n}}\'\n\n\n')),(0,r.yg)("h3",{id:"\u65b0\u589e\u6570\u636e"},"\u65b0\u589e\u6570\u636e"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'#POST\u63d0\u4ea4 \u81ea\u52a8\u751f\u6210_id\ncurl -XPOST \\\nhttp://127.0.0.1:9200/stock/test \\\n-H "Content-Type: application/json" \\\n-d \'{"author" : "Doug Cutting"}\' \n#PUT\u63d0\u4ea4 \u6307\u5b9a_id\ncurl -XPOST \\\nhttp://127.0.0.1:9200/stock/test/1 \\\n-H "Content-Type: application/json" \\\n-d \'{"author" : "Doug Cutting"}\' \n')),(0,r.yg)("h3",{id:"\u62f7\u8d1d\u7d22\u5f15\u5e93"},"\u62f7\u8d1d\u7d22\u5f15\u5e93"),(0,r.yg)("h4",{id:"\u540c\u4e00\u4e2a\u96c6\u7fa4\u62f7\u8d1d"},"\u540c\u4e00\u4e2a\u96c6\u7fa4\u62f7\u8d1d"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'# x > .temp\n....\n#reindex one > bak\ncurl -XPOST \'http://127.0.0.1:9200/_reindex\' \\\n-H "Content-Type: application/json" \\\n-d \'{\n "source": {"index": "{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}.temp"},\n "dest": {"index": "{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}"}}\'\n#\n#curl -XDELETE \'http://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}?pretty\'\n#reindex bak > one\ncurl -XPOST \'http://127.0.0.1:9200/_reindex\' \\\n-H "Content-Type: application/json" \\\n-d \'{\n "source": {"index": "{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}"},\n "dest": {"index": "{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}"}}\'\n# restart logstash-xxx\n...\n#reindex temp > one\ncurl -XPOST \'http://127.0.0.1:9200/_reindex\' \\\n-H "Content-Type: application/json" \\\n-d \'{\n "source": {"index": "{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}.temp"},\n "dest": {"index": "{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}"}}\'\n#\n#curl -XDELETE \'http://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}.bak?pretty\'\n#curl -XDELETE \'http://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}.temp?pretty\'\n')),(0,r.yg)("h4",{id:"\u4e0d\u540c\u7684\u96c6\u7fa4\u62f7\u8d1d"},"\u4e0d\u540c\u7684\u96c6\u7fa4\u62f7\u8d1d"),(0,r.yg)("p",null,"\u6ce8\u610f\uff1a\n\u5fc5\u987b\u914d\u7f6ereindex.remote.whitelist=172.19.184.169:9200"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'#reindex one > bak --{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}\ncurl -XPOST \'http://127.0.0.1:9200/_reindex\' \\\n-H "Content-Type: application/json" \\\n-d \'{\n "source": {"index": "prod_device_active","remote":{"host":"http://172.19.184.169:9200"}},\n "dest": {"index": "prod_device_active"}}\'\n#reindex one > bak --prod_device_address_statistics\ncurl -XPOST \'http://127.0.0.1:9200/_reindex\' \\\n-H "Content-Type: application/json" \\\n-d \'{\n "source": {"index": "prod_device_address_statistics","remote":{"host":"http://172.19.184.169:9200"}},\n "dest": {"index": "prod_device_address_statistics"}}\'\n#reindex one > bak --prod_device_product_model_statistics\ncurl -XPOST \'http://127.0.0.1:9200/_reindex\' \\\n-H "Content-Type: application/json" \\\n-d \'{\n "source": {"index": "prod_device_product_model_statistics","remote":{"host":"http://172.19.184.169:9200"}},\n "dest": {"index": "prod_device_product_model_statistics"}}\'\n#reindex one > bak --prod_ranking\ncurl -XPOST \'http://127.0.0.1:9200/_reindex\' \\\n-H "Content-Type: application/json" \\\n-d \'{\n "source": {"index": "prod_ranking","remote":{"host":"http://172.19.184.169:9200"}},\n "dest": {"index": "prod_ranking.bak"}}\'\n#reindex one > bak --prod_user_func_flow_for_user_op_for_res\ncurl -XPOST \'http://127.0.0.1:9200/_reindex\' \\\n-H "Content-Type: application/json" \\\n-d \'{\n "source": {"index": "prod_user_func_flow_for_user_op_for_res","remote":{"host":"http://192.168.0.33:9200"}},\n "dest": {"index": "prod_user_func_flow_for_user_op_for_res"}}\'\n')),(0,r.yg)("h3",{id:"\u62a5\u9519\u5904\u7406"},"\u62a5\u9519\u5904\u7406"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'#\u5982\u679c\u62a5\u9519\u5982\u4e0b \u9700\u8981\u6267\u884c\n#Fielddata is disabled on text fields by default. Set fielddata=true on [ipo_date] in order to load fielddata in memory by uninverting the inverted index. Note that this can however use significant memory. Alternatively use a keyword field instead.\ncurl -i -H "Content-Type:application/json" \\\n-XPUT http://127.0.0.1:9200/daily/_mapping/doc/?pretty \\\n-d \'{"doc":{"properties":{"trade_date":{"type":"text","fielddata":true}}}}\'\n\n#\u89e3\u51b3\u9519\u8bef retrying failed action with response code: 403 ({"type"=>"cluster_block_exception", "reason"=>"block\ncurl -XPUT -H \'Content-Type: application/json\' \\\nhttp://127.0.0.1:9200/_all/_settings \\\n-d \'{"index.blocks.read_only_allow_delete": null}\'\n')),(0,r.yg)("h3",{id:"\u67e5\u8be2\u5206\u7247\u4fe1\u606f\u6587\u6863\u603b\u6570\u4e3b\u8282\u70b9"},"\u67e5\u8be2\u5206\u7247\u4fe1\u606f/\u6587\u6863\u603b\u6570/\u4e3b\u8282\u70b9"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"#\u67e5\u8be2\u67d0\u4e2a\u7d22\u5f15\u5e93\u7684\u5206\u7247\u4fe1\u606f\ncurl -XGET 'http://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_search_shards?pretty'\n#\u67e5\u8be2\u67d0\u4e2a\u7d22\u5f15\u5e93\u7684\u6587\u6863\u603b\u6570\u91cf\ncurl -XGET 'http://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/doc/_count?pretty'\n#\u67e5\u8be2\u4e3b\u8282\u70b9\ncurl -XGET 'http://127.0.0.1:9200/_cat/master?v'\n")),(0,r.yg)("h3",{id:"\u9700\u8981\u5bc6\u7801\u65f6nginx"},"\u9700\u8981\u5bc6\u7801\u65f6(nginx)"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'#\u9700\u8981\u5bc6\u7801\u65f6 \u4e3e\u4f8b\ncurl -XGET \\\n--user admin:Aa0123 \\\n#\u67e5\u770b\u67d0\u4e2a\u7d22\u5f15\u5e93\u4e0b\u7684\u524d1000\u6761\u6570\u636e\ncurl -XGET --user admin:Aa0123 \\\n\'http://47.103.38.240:8443/rc_ranking/_search\' \\\n-H "Content-Type: application/json" \\\n-d \'{ "sort": [{"@timestamp": {"order": "desc"}}],\\\n"from":0,"size": 1000,"query":{"match_all":{}}}\'\n')),(0,r.yg)("h3",{id:"\u6a21\u677f"},"\u6a21\u677f"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"#\u67e5\u8be2\u6240\u6709\u6a21\u677f\ncurl -XGET 'http://127.0.0.1:9200/_template?pretty'\ncurl -XGET 'http://127.0.0.1:9200/_template?pretty' > t.json\n#\u65b0\u589e\u67d0\u4e2a\u6a21\u677f--logstash-index-template-nginx-api\ncurl -XPUT http://127.0.0.1:9200/_template/logstash-index-template-nginx-api?pretty \\\n-H \"Content-Type: application/json\" \\\n-d @logstash-index-template-nginx-api.json\n\n#\u65b0\u589e\u67d0\u4e2a\u6a21\u677f--logstash-index-template-userop\ncurl -XPUT http://127.0.0.1:9200/_template/logstash-index-template-userop?pretty \\\n-H \"Content-Type: application/json\" \\\n-d @logstash-index-template-userop.json\n\n#\u65b0\u589e\u67d0\u4e2a\u6a21\u677f--logstash-index-template-alarm-data-history.json\ncurl -XPUT http://127.0.0.1:9200/_template/logstash-index-template-alarm-data-history?pretty \\\n-H \"Content-Type: application/json\" \\\n-d @logstash-index-template-alarm-data-history.json\n\n\n#\u5220\u9664\u67d0\u4e2a\u6a21\u677f\ncurl -XDELETE 'http://127.0.0.1:9200/_template/logstash-index-template-nginx-api?pretty'\n")),(0,r.yg)("h3",{id:"\u521b\u5efa\u7d22\u5f15\u5e93"},"\u521b\u5efa\u7d22\u5f15\u5e93"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"# \u521b\u5efa\u7d22\u5f15\u5e93\ncurl -XPUT 'http://127.0.0.1:9200/stock?pretty' \\\n-H 'Content-Type: application/json' \\\n-d '{\n \"settings\" : {\n \"number_of_shards\" : 5,\n \"number_of_replicas\" : 1\n }\n}'\n")),(0,r.yg)("h3",{id:"\u96c6\u7fa4\u72b6\u6001\u67e5\u770b"},"\u96c6\u7fa4\u72b6\u6001\u67e5\u770b"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"# \u670d\u52a1\u68c0\u6d4b\ncurl -XGET 'http://127.0.0.1:9200/_cat/health?v'\n# \u67e5\u770b\u6240\u6709\u96c6\u7fa4\u8282\u70b9\ncurl -XGET 'http://127.0.0.1:9200/_cat/allocation?v'\n# \u67e5\u770b\u96c6\u7fa4\u6240\u6709\u5206\u7247\u5206\u5e03\u60c5\u51b5\ncurl -XGET 'http://127.0.0.1:9200/_cat/shards?v'\n# \u67e5\u770b\u96c6\u7fa4\u67d0\u4e2a\u7d22\u5f15\u7684\u5206\u7247\u5206\u5e03\u60c5\u51b5\ncurl -XGET 'http://127.0.0.1:9200/_cat/shards/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}?v'\n# \u67e5\u770b\u96c6\u7fa4\u7684\u4e3b\u8282\u70b9\ncurl -XGET 'http://127.0.0.1:9200/_cat/master?v'\n# \u67e5\u770b\u96c6\u7fa4\u7684\u6240\u6709\u6570\u636e\u8282\u70b9\ncurl -XGET 'http://127.0.0.1:9200/_cat/nodes?v'\n# \u67e5\u770b\u96c6\u7fa4\u7684\u6240\u6709\u6bb5(\u6570\u636e\u96c6)\ncurl -XGET 'http://127.0.0.1:9200/_cat/segments?v'\n# \u67e5\u770b\u96c6\u7fa4\u67d0\u4e2a\u7d22\u5f15\u7684\u6bb5\u5206\u5e03\u60c5\u51b5\ncurl -XGET 'http://127.0.0.1:9200/_cat/segments/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}?v'\n# \u67e5\u770b\u96c6\u7fa4\u7684\u6240\u6709\u6587\u6863\u6570\u91cf\ncurl -XGET 'http://127.0.0.1:9200/_cat/count?v'\n# \u67e5\u770b\u96c6\u7fa4\u67d0\u4e2a\u7d22\u5f15\u7684\u6587\u6863\u6570\u91cf\ncurl -XGET 'http://127.0.0.1:9200/_cat/count/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}?v'\n# \u67e5\u770b\u96c6\u7fa4\u7684\u6240\u6709\u53d1\u73b0\u673a\u5236\ncurl -XGET 'http://127.0.0.1:9200/_cat/recovery?v'\n# \u67e5\u770b\u96c6\u7fa4\u67d0\u4e2a\u7d22\u5f15\u7684\u53d1\u73b0\u673a\u5236\ncurl -XGET 'http://127.0.0.1:9200/_cat/recovery/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}?v'\n# \u67e5\u770b\u96c6\u7fa4\u7684\u6240\u6709\u963b\u585e\u4efb\u52a1\uff1f\ncurl -XGET 'http://127.0.0.1:9200/_cat/pending_tasks?v'\n# \u67e5\u770b\u96c6\u7fa4\u7684\u6240\u6709\u522b\u540d\ncurl -XGET 'http://127.0.0.1:9200/_cat/aliases?v'\n# \u67e5\u770b\u96c6\u7fa4\u67d0\u4e2a\u7d22\u5f15\u7684\u522b\u540d\ncurl -XGET 'http://127.0.0.1:9200/_cat/aliases/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}?v'\n# \u67e5\u770b\u96c6\u7fa4\u7684\u6240\u6709\u7ebf\u7a0b\u6c60\ncurl -XGET 'http://127.0.0.1:9200/_cat/thread_pool?v'\n# \u67e5\u770b\u96c6\u7fa4\u7684\u6240\u6709\u63d2\u4ef6\u5217\u8868\ncurl -XGET 'http://127.0.0.1:9200/_cat/plugins?v'\n# \u67e5\u770b\u96c6\u7fa4\u7684\u6240\u6709fielddata\ncurl -XGET 'http://127.0.0.1:9200/_cat/fielddata?v'\ncurl -XGET 'http://127.0.0.1:9200/_cat/fielddata/{fields}?v'\n# \u67e5\u770b\u96c6\u7fa4\u7684\u6240\u6709\u8282\u70b9\u7684\u8282\u70b9\u5c5e\u6027\ncurl -XGET 'http://127.0.0.1:9200/_cat/nodeattrs?v'\n")),(0,r.yg)("h3",{id:"\u5feb\u7167"},"\u5feb\u7167"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'#\u67e5\u770b\u5feb\u7167\u5b58\u50a8\u4ed3\u5e93\u5217\u8868\ncurl -X ET "127.0.0.1:9200/_cat/repositories?v"\n#\u67e5\u770b\u67d0\u4e2a\u5feb\u7167\u5b58\u50a8\u4ed3\u5e93\u7684\u5feb\u7167\u5217\u8868\ncurl -XGET "127.0.0.1:9200/_snapshot/snapshots/_all?pretty"\n#\u6ce8\u518c\u5feb\u7167\u5b58\u50a8\u5e93\ncurl -XPUT \\\nhttp://127.0.0.1:9200/_snapshot/snapshots?pretty \\\n-H "Content-Type: application/json" \\\n-d \'{ "type":"fs","settings":{"location":"/usr/share/elasticsearch/snapshots"}}\'\n#\u67e5\u770b\u5feb\u7167\u5b58\u50a8\u5e93\ncurl -XGET \\\nhttp://127.0.0.1:9200/_snapshot?pretty\n#\u6267\u884c\u5feb\u7167\u5b58\u50a8\u5e93\ncurl -XPUT \\\n\'http://127.0.0.1:9200/_snapshot/snapshots/snapshot_02?wait_for_completion=true\'\n#\u67e5\u770b\u6267\u884c\u5feb\u7167\u5b58\u50a8\u5e93\u7684\u7ed3\u679c\ncurl -XGET \\\nhttp://127.0.0.1:9200/_snapshot/snapshots/snapshot_02?pretty\n#\u5220\u9664\u5feb\u7167\u5b58\u50a8\u5e93\ncurl -XDELETE "127.0.0.1:9200/_snapshot/snapshots?pretty"\n#\u5220\u9664\u5feb\u7167\ncurl -XDELETE "127.0.0.1:9200/_snapshot/snapshots/snapshot_02?pretty"\n#\u6253\u5305\ncd /mnt/docker/es.1\ntar czvf snapshots.tar.gz ./snapshots/*\n#############\u76ee\u7684\u5730\ncd /mnt/docker/es.1\n#upload an tar\ntar xzvf snapshots.tar.gz \n#\u6ce8\u518c\u5feb\u7167\u5b58\u50a8\u5e93\ncurl -XPUT \\\nhttp://127.0.0.1:9200/_snapshot/snapshots?pretty \\\n-H "Content-Type: application/json" \\\n-d \'{ "type":"fs","settings":{"location":"/usr/share/elasticsearch/snapshots"}}\'\n#\u8fd8\u539f\u5feb\u7167\u5b58\u50a8\u5e93\ncurl -XPOST \\\n\'http://127.0.0.1:9200/_snapshot/snapshots/snapshot_02/_restore?wait_for_completion=true\'\n')),(0,r.yg)("h3",{id:"\u5220\u9664\u6570\u636e"},"\u5220\u9664\u6570\u636e"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'#\u6839\u636e\u65f6\u95f4\u5220\u9664\u90e8\u5206\u6570\u636e\ncurl -XPOST \\\nhttp://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_delete_by_query?pretty \\\n-H "Content-Type: application/json" \\\n-d \'{ "query": {\n "range": {\n "@timestamp": {\n "lt": "2022-10-01T00:00:00Z"\n }\n }\n } }\'\n#\u5237\u65b0\u7d22\u5f15 \u5220\u9664 Elasticsearch \u7d22\u5f15\u4e2d\u7684\u90e8\u5206\u6570\u636e\u540e\uff0c\u78c1\u76d8\u4e0a\u53ef\u80fd\u4f1a\u51fa\u73b0\u4e0d\u5fc5\u8981\u7684\u788e\u7247\u3002\u4e3a\u4e86\u56de\u6536\u8fd9\u4e9b\u78c1\u76d8\u7a7a\u95f4\uff0c\u60a8\u53ef\u4ee5\u8fd0\u884c\u4e00\u6b21\u7d22\u5f15\u5237\u65b0\u64cd\u4f5c\uff0c\u8fd9\u5c06\u5220\u9664\u5df2\u6807\u8bb0\u4e3a\u5220\u9664\u4f46\u672a\u5b9e\u9645\u5220\u9664\u7684\u6587\u6863\uff0c\u5e76\u91cd\u65b0\u7ec4\u7ec7\u5269\u4f59\u6587\u6863\u4ee5\u51cf\u5c11\u788e\u7247\u3002\ncurl -XPOST \\\nhttp://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_refresh?pretty \\\n-H "Content-Type: application/json" \\\n-d \'{}\'\n')),(0,r.yg)("p",null,"#\u5f3a\u5236\u5408\u5e76\ncurl -XPOST \\\n",(0,r.yg)("a",{parentName:"p",href:"http://127.0.0.1:9200/%7B%E5%85%B7%E4%BD%93%E7%9A%84%E7%B4%A2%E5%BC%95%E5%BA%93%7D/_forcemerge?only_expunge_deletes=true"},"http://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_forcemerge?only_expunge_deletes=true")," \\\n-H \"Content-Type: application/json\" \\\n-d '{}'"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre"},"\n## \u8fd1\u5b9e\u65f6\u641c\u7d22/refresh\n\n\u5728 Elasticsearch \u4e2d\uff0c\u5199\u5165\u548c\u6253\u5f00\u4e00\u4e2a\u65b0\u6bb5\u7684\u8f7b\u91cf\u7684\u8fc7\u7a0b\u53eb\u505a refresh \u3002 \u9ed8\u8ba4\u60c5\u51b5\u4e0b\u6bcf\u4e2a\u5206\u7247\u4f1a\u6bcf\u79d2\u81ea\u52a8\u5237\u65b0\u4e00\u6b21\u3002\u8fd9\u5c31\u662f\u4e3a\u4ec0\u4e48\u6211\u4eec\u8bf4 Elasticsearch \u662f \u8fd1 \u5b9e\u65f6\u641c\u7d22: \u6587\u6863\u7684\u53d8\u5316\u5e76\u4e0d\u662f\u7acb\u5373\u5bf9\u641c\u7d22\u53ef\u89c1\uff0c\u4f46\u4f1a\u5728\u4e00\u79d2\u4e4b\u5185\u53d8\u4e3a\u53ef\u89c1\u3002\n\n\u8fd9\u4e9b\u884c\u4e3a\u53ef\u80fd\u4f1a\u5bf9\u65b0\u7528\u6237\u9020\u6210\u56f0\u60d1: \u4ed6\u4eec\u7d22\u5f15\u4e86\u4e00\u4e2a\u6587\u6863\u7136\u540e\u5c1d\u8bd5\u641c\u7d22\u5b83\uff0c\u4f46\u5374\u6ca1\u6709\u641c\u5230\u3002\u8fd9\u4e2a\u95ee\u9898\u7684\u89e3\u51b3\u529e\u6cd5\u662f\u7528 refresh API \u6267\u884c\u4e00\u6b21\u624b\u52a8\u5237\u65b0:\n```shell\nPOST /_refresh \nPOST /blogs/_refresh \n")),(0,r.yg)("h2",{id:"es\u8bbf\u95ee\u6743\u9650"},"es\u8bbf\u95ee\u6743\u9650"),(0,r.yg)("p",null,"\u56e0\u4e3a\u5f00\u6e90\u7684es\u662f\u4e0d\u5e26\u8bbf\u95ee\u6743\u9650\u63a7\u5236\u7684\uff0c\u5e76\u4e0d\u80fd\u7528\u4e8e\u751f\u4ea7\u73af\u5883\uff1b\u5546\u4e1a\u7248\u63d2\u4ef6x-pack\u662f\u652f\u6301\u7528\u6237\u6743\u9650\u7684\uff0c\u4f46\u662f\u6536\u8d39\u3002\n\u53ef\u4ee5\u4f7f\u7528nginx\u589e\u52a0\u8bbf\u95ee\u6743\u9650\u6765\u65b9\u5411\u4ee3\u7406es\uff0c\u4f46\u662fes\u76849200/9300\u7aef\u53e3\u4e0d\u80fd\u5916\u7f51\u5f00\u653e\uff1b"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'#\u5b89\u88c5httpd-tools\nyum install httpd-tools\nmkdir /usr/local/nginx/conf/passwd\nhtpasswd -c /usr/local/nginx/conf/passwd/es admin\n#nginx\u914d\u7f6e\u53cd\u5411\u4ee3\u7406\u589e\u52a0\nserver\n{\n listen 8443;\n location / {\n proxy_set_header Host $host;\n proxy_set_header X-Forwarded-For $remote_addr;\n proxy_pass http://172.17.0.1:9200;\n proxy_connect_timeout 18000;\n proxy_send_timeout 18000;\n proxy_read_timeout 18000;\n #\n auth_basic "Please input password";\n auth_basic_user_file /usr/local/nginx/conf/passwd/es;\n } \n}\n')),(0,r.yg)("h2",{id:"geoip"},"GEOIP"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"#\nyum install GeoIP-data -y\n")),(0,r.yg)("h2",{id:"\u76f8\u5173\u8d44\u6599"},"\u76f8\u5173\u8d44\u6599"),(0,r.yg)("ol",null,(0,r.yg)("li",{parentName:"ol"},(0,r.yg)("a",{parentName:"li",href:"https://blog.csdn.net/qq_31871785/article/details/86138291"},"\u4ece\u96f6\u5b66Elasticsearch\u7cfb\u5217\u2014\u2014JAVA API\u64cd\u4f5c")),(0,r.yg)("li",{parentName:"ol"},(0,r.yg)("a",{parentName:"li",href:"https://yqh.aliyun.com/detail/9912"},"\u5982\u4f55\u628aElasticsearch\u53d1\u6325\u5230\u6781\u81f4\uff1f")),(0,r.yg)("li",{parentName:"ol"},(0,r.yg)("a",{parentName:"li",href:"https://gitee.com/ymm-tech/ebatis"},"ebatis\u3010ebatis \u662f\u4e00\u4e2a\u7b80\u5355\u65b9\u4fbf\u4e0a\u624b\u7684 Elasticsearch ORM \u6846\u67b6\u3011"))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0ad179ee.bec8593d.js b/assets/js/0ad179ee.896ee1d9.js similarity index 98% rename from assets/js/0ad179ee.bec8593d.js rename to assets/js/0ad179ee.896ee1d9.js index 789bd25a2..8b043a837 100644 --- a/assets/js/0ad179ee.bec8593d.js +++ b/assets/js/0ad179ee.896ee1d9.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9121],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>m});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),l=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},s=function(e){var t=l(e.components);return n.createElement(p.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,p=e.parentName,s=a(e,["components","mdxType","originalType","parentName"]),u=l(r),y=o,m=u["".concat(p,".").concat(y)]||u[y]||d[y]||i;return r?n.createElement(m,c(c({ref:t},s),{},{components:r})):n.createElement(m,c({ref:t},s))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,c=new Array(i);c[0]=y;var a={};for(var p in t)hasOwnProperty.call(t,p)&&(a[p]=t[p]);a.originalType=e,a[u]="string"==typeof e?e:o,c[1]=a;for(var l=2;l{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>c,default:()=>d,frontMatter:()=>i,metadata:()=>a,toc:()=>l});var n=r(8168),o=(r(6540),r(5680));const i={},c=void 0,a={unversionedId:"study/competitive/TP-LINK",id:"study/competitive/TP-LINK",title:"TP-LINK",description:"SD-VPN",source:"@site/docs/study/competitive/TP-LINK.md",sourceDirName:"study/competitive",slug:"/study/competitive/TP-LINK",permalink:"/docs/study/competitive/TP-LINK",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"CMP-DMP-AEP-BAP",permalink:"/docs/study/competitive/CMP-DMP-AEP-BAP"},next:{title:"ThingsCloud",permalink:"/docs/study/competitive/ThingsCloud"}},p={},l=[{value:"SD-VPN",id:"sd-vpn",level:3}],s={toc:l},u="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"sd-vpn"},"SD-VPN"),(0,o.yg)("p",null,(0,o.yg)("a",{parentName:"p",href:"https://www.tp-link.com.cn/"},"\u5b98\u7f51")),(0,o.yg)("p",null,(0,o.yg)("a",{parentName:"p",href:"https://smb.tp-link.com.cn/service/detail_article_4777.html"},"SDN-VPN \u4f7f\u7528\u8bf4\u660e\u4ecb\u7ecd")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9121],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>m});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),l=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},s=function(e){var t=l(e.components);return n.createElement(p.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,p=e.parentName,s=a(e,["components","mdxType","originalType","parentName"]),u=l(r),y=o,m=u["".concat(p,".").concat(y)]||u[y]||d[y]||i;return r?n.createElement(m,c(c({ref:t},s),{},{components:r})):n.createElement(m,c({ref:t},s))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,c=new Array(i);c[0]=y;var a={};for(var p in t)hasOwnProperty.call(t,p)&&(a[p]=t[p]);a.originalType=e,a[u]="string"==typeof e?e:o,c[1]=a;for(var l=2;l{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>c,default:()=>d,frontMatter:()=>i,metadata:()=>a,toc:()=>l});var n=r(8168),o=(r(6540),r(5680));const i={},c=void 0,a={unversionedId:"study/competitive/TP-LINK",id:"study/competitive/TP-LINK",title:"TP-LINK",description:"SD-VPN",source:"@site/docs/study/competitive/TP-LINK.md",sourceDirName:"study/competitive",slug:"/study/competitive/TP-LINK",permalink:"/docs/study/competitive/TP-LINK",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"CMP-DMP-AEP-BAP",permalink:"/docs/study/competitive/CMP-DMP-AEP-BAP"},next:{title:"ThingsCloud",permalink:"/docs/study/competitive/ThingsCloud"}},p={},l=[{value:"SD-VPN",id:"sd-vpn",level:3}],s={toc:l},u="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"sd-vpn"},"SD-VPN"),(0,o.yg)("p",null,(0,o.yg)("a",{parentName:"p",href:"https://www.tp-link.com.cn/"},"\u5b98\u7f51")),(0,o.yg)("p",null,(0,o.yg)("a",{parentName:"p",href:"https://smb.tp-link.com.cn/service/detail_article_4777.html"},"SDN-VPN \u4f7f\u7528\u8bf4\u660e\u4ecb\u7ecd")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0b36e747.48951afd.js b/assets/js/0b36e747.141a564a.js similarity index 98% rename from assets/js/0b36e747.48951afd.js rename to assets/js/0b36e747.141a564a.js index 47c5ced0f..34dfd5c71 100644 --- a/assets/js/0b36e747.48951afd.js +++ b/assets/js/0b36e747.141a564a.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6493],{5680:(e,r,t)=>{t.d(r,{xA:()=>l,yg:()=>f});var n=t(6540);function i(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function a(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function p(e){for(var r=1;r=0||(i[t]=e[t]);return i}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}var o=n.createContext({}),u=function(e){var r=n.useContext(o),t=r;return e&&(t="function"==typeof e?e(r):p(p({},r),e)),t},l=function(e){var r=u(e.components);return n.createElement(o.Provider,{value:r},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},g=n.forwardRef((function(e,r){var t=e.components,i=e.mdxType,a=e.originalType,o=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),s=u(t),g=i,f=s["".concat(o,".").concat(g)]||s[g]||y[g]||a;return t?n.createElement(f,p(p({ref:r},l),{},{components:t})):n.createElement(f,p({ref:r},l))}));function f(e,r){var t=arguments,i=r&&r.mdxType;if("string"==typeof e||i){var a=t.length,p=new Array(a);p[0]=g;var c={};for(var o in r)hasOwnProperty.call(r,o)&&(c[o]=r[o]);c.originalType=e,c[s]="string"==typeof e?e:i,p[1]=c;for(var u=2;u{t.r(r),t.d(r,{assets:()=>o,contentTitle:()=>p,default:()=>y,frontMatter:()=>a,metadata:()=>c,toc:()=>u});var n=t(8168),i=(t(6540),t(5680));const a={},p="Spring Security",c={unversionedId:"study/back/spring/SpringSecurity",id:"study/back/spring/SpringSecurity",title:"Spring Security",description:"Spring Security \u662f\u4e00\u5957\u5b89\u5168\u6846\u67b6\uff0c\u53ef\u4ee5\u57fa\u4e8e RBAC\uff08\u57fa\u4e8e\u89d2\u8272\u7684\u6743\u9650\u63a7\u5236\uff09\u5bf9\u7528\u6237\u7684\u8bbf\u95ee\u6743\u9650\u8fdb\u884c\u63a7\u5236\uff0c",source:"@site/docs/study/back/spring/SpringSecurity.md",sourceDirName:"study/back/spring",slug:"/study/back/spring/SpringSecurity",permalink:"/docs/study/back/spring/SpringSecurity",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Spirng Framework",permalink:"/docs/study/back/spring/SpringFramework"},next:{title:"Spring\u751f\u547d\u5468\u671f\u63a5\u53e3",permalink:"/docs/study/back/spring/Spring\u751f\u547d\u5468\u671f\u63a5\u53e3"}},o={},u=[],l={toc:u},s="wrapper";function y(e){let{components:r,...t}=e;return(0,i.yg)(s,(0,n.A)({},l,t,{components:r,mdxType:"MDXLayout"}),(0,i.yg)("h1",{id:"spring-security"},"Spring Security"),(0,i.yg)("p",null,"Spring Security \u662f\u4e00\u5957\u5b89\u5168\u6846\u67b6\uff0c\u53ef\u4ee5\u57fa\u4e8e RBAC\uff08\u57fa\u4e8e\u89d2\u8272\u7684\u6743\u9650\u63a7\u5236\uff09\u5bf9\u7528\u6237\u7684\u8bbf\u95ee\u6743\u9650\u8fdb\u884c\u63a7\u5236\uff0c"),(0,i.yg)("p",null,"\u6838\u5fc3\u601d\u60f3\u662f\u901a\u8fc7\u4e00\u7cfb\u5217\u7684 filter chain \u6765\u8fdb\u884c\u62e6\u622a\u8fc7\u6ee4\uff0c\u5bf9\u7528\u6237\u7684\u8bbf\u95ee\u6743\u9650\u8fdb\u884c\u63a7\u5236\uff0c"),(0,i.yg)("p",null,"\u200bspring security \u7684\u6838\u5fc3\u529f\u80fd\u4e3b\u8981\u5305\u62ec\uff1a"),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},"\u8ba4\u8bc1 \uff08\u4f60\u662f\u8c01\uff09"),(0,i.yg)("li",{parentName:"ul"},"\u6388\u6743 \uff08\u4f60\u80fd\u5e72\u4ec0\u4e48\uff09"),(0,i.yg)("li",{parentName:"ul"},"\u653b\u51fb\u9632\u62a4 \uff08\u9632\u6b62\u4f2a\u9020\u8eab\u4efd\uff09")),(0,i.yg)("p",null,"\u5176\u6838\u5fc3\u5c31\u662f\u4e00\u7ec4\u8fc7\u6ee4\u5668\u94fe\uff0c\u9879\u76ee\u542f\u52a8\u540e\u5c06\u4f1a\u81ea\u52a8\u914d\u7f6e\u3002\u6700\u6838\u5fc3\u7684\u5c31\u662f Basic Authentication Filter \u7528\u6765\u8ba4\u8bc1\u7528\u6237\u7684\u8eab\u4efd\uff0c\u4e00\u4e2a\u5728 spring security \u4e2d\u4e00\u79cd\u8fc7\u6ee4\u5668\u5904\u7406\u4e00\u79cd\u8ba4\u8bc1\u65b9\u5f0f\u3002"),(0,i.yg)("p",null,(0,i.yg)("a",{parentName:"p",href:"https://docs.spring.io/spring-security/reference/index.html"},"\u5b98\u65b9\u53c2\u8003\u6587\u6863")),(0,i.yg)("p",null,"\u8fd9\u6837\u7684\u5b89\u5168\u6846\u67b6\u8fd8\u6709\uff0c"),(0,i.yg)("p",null,(0,i.yg)("a",{parentName:"p",href:"https://shiro.apache.org/"},"Apache Shiro")),(0,i.yg)("p",null,(0,i.yg)("a",{parentName:"p",href:"https://sa-token.cc/"},"Sa-Token")))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6493],{5680:(e,r,t)=>{t.d(r,{xA:()=>l,yg:()=>f});var n=t(6540);function i(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function a(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function p(e){for(var r=1;r=0||(i[t]=e[t]);return i}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}var o=n.createContext({}),u=function(e){var r=n.useContext(o),t=r;return e&&(t="function"==typeof e?e(r):p(p({},r),e)),t},l=function(e){var r=u(e.components);return n.createElement(o.Provider,{value:r},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},g=n.forwardRef((function(e,r){var t=e.components,i=e.mdxType,a=e.originalType,o=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),s=u(t),g=i,f=s["".concat(o,".").concat(g)]||s[g]||y[g]||a;return t?n.createElement(f,p(p({ref:r},l),{},{components:t})):n.createElement(f,p({ref:r},l))}));function f(e,r){var t=arguments,i=r&&r.mdxType;if("string"==typeof e||i){var a=t.length,p=new Array(a);p[0]=g;var c={};for(var o in r)hasOwnProperty.call(r,o)&&(c[o]=r[o]);c.originalType=e,c[s]="string"==typeof e?e:i,p[1]=c;for(var u=2;u{t.r(r),t.d(r,{assets:()=>o,contentTitle:()=>p,default:()=>y,frontMatter:()=>a,metadata:()=>c,toc:()=>u});var n=t(8168),i=(t(6540),t(5680));const a={},p="Spring Security",c={unversionedId:"study/back/spring/SpringSecurity",id:"study/back/spring/SpringSecurity",title:"Spring Security",description:"Spring Security \u662f\u4e00\u5957\u5b89\u5168\u6846\u67b6\uff0c\u53ef\u4ee5\u57fa\u4e8e RBAC\uff08\u57fa\u4e8e\u89d2\u8272\u7684\u6743\u9650\u63a7\u5236\uff09\u5bf9\u7528\u6237\u7684\u8bbf\u95ee\u6743\u9650\u8fdb\u884c\u63a7\u5236\uff0c",source:"@site/docs/study/back/spring/SpringSecurity.md",sourceDirName:"study/back/spring",slug:"/study/back/spring/SpringSecurity",permalink:"/docs/study/back/spring/SpringSecurity",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Spirng Framework",permalink:"/docs/study/back/spring/SpringFramework"},next:{title:"Spring\u751f\u547d\u5468\u671f\u63a5\u53e3",permalink:"/docs/study/back/spring/Spring\u751f\u547d\u5468\u671f\u63a5\u53e3"}},o={},u=[],l={toc:u},s="wrapper";function y(e){let{components:r,...t}=e;return(0,i.yg)(s,(0,n.A)({},l,t,{components:r,mdxType:"MDXLayout"}),(0,i.yg)("h1",{id:"spring-security"},"Spring Security"),(0,i.yg)("p",null,"Spring Security \u662f\u4e00\u5957\u5b89\u5168\u6846\u67b6\uff0c\u53ef\u4ee5\u57fa\u4e8e RBAC\uff08\u57fa\u4e8e\u89d2\u8272\u7684\u6743\u9650\u63a7\u5236\uff09\u5bf9\u7528\u6237\u7684\u8bbf\u95ee\u6743\u9650\u8fdb\u884c\u63a7\u5236\uff0c"),(0,i.yg)("p",null,"\u6838\u5fc3\u601d\u60f3\u662f\u901a\u8fc7\u4e00\u7cfb\u5217\u7684 filter chain \u6765\u8fdb\u884c\u62e6\u622a\u8fc7\u6ee4\uff0c\u5bf9\u7528\u6237\u7684\u8bbf\u95ee\u6743\u9650\u8fdb\u884c\u63a7\u5236\uff0c"),(0,i.yg)("p",null,"\u200bspring security \u7684\u6838\u5fc3\u529f\u80fd\u4e3b\u8981\u5305\u62ec\uff1a"),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},"\u8ba4\u8bc1 \uff08\u4f60\u662f\u8c01\uff09"),(0,i.yg)("li",{parentName:"ul"},"\u6388\u6743 \uff08\u4f60\u80fd\u5e72\u4ec0\u4e48\uff09"),(0,i.yg)("li",{parentName:"ul"},"\u653b\u51fb\u9632\u62a4 \uff08\u9632\u6b62\u4f2a\u9020\u8eab\u4efd\uff09")),(0,i.yg)("p",null,"\u5176\u6838\u5fc3\u5c31\u662f\u4e00\u7ec4\u8fc7\u6ee4\u5668\u94fe\uff0c\u9879\u76ee\u542f\u52a8\u540e\u5c06\u4f1a\u81ea\u52a8\u914d\u7f6e\u3002\u6700\u6838\u5fc3\u7684\u5c31\u662f Basic Authentication Filter \u7528\u6765\u8ba4\u8bc1\u7528\u6237\u7684\u8eab\u4efd\uff0c\u4e00\u4e2a\u5728 spring security \u4e2d\u4e00\u79cd\u8fc7\u6ee4\u5668\u5904\u7406\u4e00\u79cd\u8ba4\u8bc1\u65b9\u5f0f\u3002"),(0,i.yg)("p",null,(0,i.yg)("a",{parentName:"p",href:"https://docs.spring.io/spring-security/reference/index.html"},"\u5b98\u65b9\u53c2\u8003\u6587\u6863")),(0,i.yg)("p",null,"\u8fd9\u6837\u7684\u5b89\u5168\u6846\u67b6\u8fd8\u6709\uff0c"),(0,i.yg)("p",null,(0,i.yg)("a",{parentName:"p",href:"https://shiro.apache.org/"},"Apache Shiro")),(0,i.yg)("p",null,(0,i.yg)("a",{parentName:"p",href:"https://sa-token.cc/"},"Sa-Token")))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0b7620c8.c07dc691.js b/assets/js/0b7620c8.f73f20aa.js similarity index 98% rename from assets/js/0b7620c8.c07dc691.js rename to assets/js/0b7620c8.f73f20aa.js index 778db110e..c0c18303d 100644 --- a/assets/js/0b7620c8.c07dc691.js +++ b/assets/js/0b7620c8.f73f20aa.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7817],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),l=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},p=function(e){var t=l(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=l(r),y=a,f=u["".concat(s,".").concat(y)]||u[y]||d[y]||o;return r?n.createElement(f,c(c({ref:t},p),{},{components:r})):n.createElement(f,c({ref:t},p))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,c=new Array(o);c[0]=y;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[u]="string"==typeof e?e:a,c[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>l});var n=r(8168),a=(r(6540),r(5680));const o={},c="\u901a\u4fe1\u6a21\u7ec4",i={unversionedId:"study/hard/\u901a\u4fe1\u6a21\u7ec4",id:"study/hard/\u901a\u4fe1\u6a21\u7ec4",title:"\u901a\u4fe1\u6a21\u7ec4",description:"images",source:"@site/docs/study/hard/\u901a\u4fe1\u6a21\u7ec4.md",sourceDirName:"study/hard",slug:"/study/hard/\u901a\u4fe1\u6a21\u7ec4",permalink:"/docs/study/hard/\u901a\u4fe1\u6a21\u7ec4",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u8def\u7531\u5668\u548c\u4ea4\u6362\u673a\u7684\u533a\u522b",permalink:"/docs/study/hard/\u8def\u7531\u5668\u548c\u4ea4\u6362\u673a\u7684\u533a\u522b"},next:{title:"\u6982\u8ff0",permalink:"/docs/study/think/"}},s={},l=[],p={toc:l},u="wrapper";function d(e){let{components:t,...o}=e;return(0,a.yg)(u,(0,n.A)({},p,o,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"\u901a\u4fe1\u6a21\u7ec4"},"\u901a\u4fe1\u6a21\u7ec4"),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"images",src:r(3647).A,width:"600",height:"175"}),"\n",(0,a.yg)("img",{alt:"images",src:r(8216).A,width:"600",height:"145"})),(0,a.yg)("p",null,"\u53c2\u8003"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"\u6f2b\u8c08\u901a\u4fe1\u6a21\u7ec4\u5382\u5546\u53d1\u5c55\u5386\u53f2"),(0,a.yg)("li",{parentName:"ol"},"\u65e0\u7ebf\u901a\u4fe1\u6a21\u7ec4\u4ea7\u4e1a\u94fe\u53ca\u7ade\u4e89\u683c\u5c40\u5206\u6790"),(0,a.yg)("li",{parentName:"ol"},"OEM")))}d.isMDXComponent=!0},8216:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/txmz-6a248bb0330e89e38a5d694003270979.jpeg"},3647:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/txmz1-eb0fc062c9be4c1942f3093d983679a4.jpeg"}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7817],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),l=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},p=function(e){var t=l(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=l(r),y=a,f=u["".concat(s,".").concat(y)]||u[y]||d[y]||o;return r?n.createElement(f,c(c({ref:t},p),{},{components:r})):n.createElement(f,c({ref:t},p))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,c=new Array(o);c[0]=y;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[u]="string"==typeof e?e:a,c[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>l});var n=r(8168),a=(r(6540),r(5680));const o={},c="\u901a\u4fe1\u6a21\u7ec4",i={unversionedId:"study/hard/\u901a\u4fe1\u6a21\u7ec4",id:"study/hard/\u901a\u4fe1\u6a21\u7ec4",title:"\u901a\u4fe1\u6a21\u7ec4",description:"images",source:"@site/docs/study/hard/\u901a\u4fe1\u6a21\u7ec4.md",sourceDirName:"study/hard",slug:"/study/hard/\u901a\u4fe1\u6a21\u7ec4",permalink:"/docs/study/hard/\u901a\u4fe1\u6a21\u7ec4",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u8def\u7531\u5668\u548c\u4ea4\u6362\u673a\u7684\u533a\u522b",permalink:"/docs/study/hard/\u8def\u7531\u5668\u548c\u4ea4\u6362\u673a\u7684\u533a\u522b"},next:{title:"\u6982\u8ff0",permalink:"/docs/study/think/"}},s={},l=[],p={toc:l},u="wrapper";function d(e){let{components:t,...o}=e;return(0,a.yg)(u,(0,n.A)({},p,o,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"\u901a\u4fe1\u6a21\u7ec4"},"\u901a\u4fe1\u6a21\u7ec4"),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"images",src:r(3647).A,width:"600",height:"175"}),"\n",(0,a.yg)("img",{alt:"images",src:r(8216).A,width:"600",height:"145"})),(0,a.yg)("p",null,"\u53c2\u8003"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"\u6f2b\u8c08\u901a\u4fe1\u6a21\u7ec4\u5382\u5546\u53d1\u5c55\u5386\u53f2"),(0,a.yg)("li",{parentName:"ol"},"\u65e0\u7ebf\u901a\u4fe1\u6a21\u7ec4\u4ea7\u4e1a\u94fe\u53ca\u7ade\u4e89\u683c\u5c40\u5206\u6790"),(0,a.yg)("li",{parentName:"ol"},"OEM")))}d.isMDXComponent=!0},8216:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/txmz-6a248bb0330e89e38a5d694003270979.jpeg"},3647:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/txmz1-eb0fc062c9be4c1942f3093d983679a4.jpeg"}}]); \ No newline at end of file diff --git a/assets/js/0dc7fd42.a4c05598.js b/assets/js/0dc7fd42.04ec3dc5.js similarity index 98% rename from assets/js/0dc7fd42.a4c05598.js rename to assets/js/0dc7fd42.04ec3dc5.js index 39629f28d..28b7f353e 100644 --- a/assets/js/0dc7fd42.a4c05598.js +++ b/assets/js/0dc7fd42.04ec3dc5.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8901],{5680:(e,t,r)=>{r.d(t,{xA:()=>c,yg:()=>m});var o=r(6540);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function p(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var i=o.createContext({}),s=function(e){var t=o.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):p(p({},t),e)),r},c=function(e){var t=s(e.components);return o.createElement(i.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},y=o.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,i=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),u=s(r),y=n,m=u["".concat(i,".").concat(y)]||u[y]||d[y]||a;return r?o.createElement(m,p(p({ref:t},c),{},{components:r})):o.createElement(m,p({ref:t},c))}));function m(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,p=new Array(a);p[0]=y;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l[u]="string"==typeof e?e:n,p[1]=l;for(var s=2;s{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>p,default:()=>d,frontMatter:()=>a,metadata:()=>l,toc:()=>s});var o=r(8168),n=(r(6540),r(5680));const a={},p=void 0,l={unversionedId:"study/program/ETL/sqoop",id:"study/program/ETL/sqoop",title:"sqoop",description:"\u6982\u8ff0",source:"@site/docs/study/program/ETL/sqoop.md",sourceDirName:"study/program/ETL",slug:"/study/program/ETL/sqoop",permalink:"/docs/study/program/ETL/sqoop",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"kettle",permalink:"/docs/study/program/ETL/kettle"},next:{title:"Erlang",permalink:"/docs/study/program/Erlang/"}},i={},s=[{value:"\u6982\u8ff0",id:"\u6982\u8ff0",level:3},{value:"sqoop\u4ea7\u751f\u7684\u539f\u56e0\uff1a",id:"sqoop\u4ea7\u751f\u7684\u539f\u56e0",level:4},{value:"sqoop\u7684\u4ecb\u7ecd",id:"sqoop\u7684\u4ecb\u7ecd",level:4}],c={toc:s},u="wrapper";function d(e){let{components:t,...r}=e;return(0,n.yg)(u,(0,o.A)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,n.yg)("h3",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,n.yg)("h4",{id:"sqoop\u4ea7\u751f\u7684\u539f\u56e0"},"sqoop\u4ea7\u751f\u7684\u539f\u56e0\uff1a"),(0,n.yg)("ol",null,(0,n.yg)("li",{parentName:"ol"},"\u591a\u6570\u4f7f\u7528hadoop\u6280\u672f\u7684\u5904\u7406\u5927\u6570\u636e\u4e1a\u52a1\u7684\u4f01\u4e1a\uff0c\u6709\u5927\u91cf\u7684\u6570\u636e\u5b58\u50a8\u5728\u5173\u7cfb\u578b\u6570\u636e\u4e2d\u3002"),(0,n.yg)("li",{parentName:"ol"},"\u7531\u4e8e\u6ca1\u6709\u5de5\u5177\u652f\u6301\uff0c\u5bf9hadoop\u548c\u5173\u7cfb\u578b\u6570\u636e\u5e93\u4e4b\u95f4\u6570\u636e\u4f20\u8f93\u662f\u4e00\u4e2a\u5f88\u56f0\u96be\u7684\u4e8b\u3002"),(0,n.yg)("li",{parentName:"ol"},"\u4f9d\u636e\u4ee5\u4e0a\u7684\u539f\u56e0sqoop\u4ea7\u751f\u7684\u3002")),(0,n.yg)("h4",{id:"sqoop\u7684\u4ecb\u7ecd"},"sqoop\u7684\u4ecb\u7ecd"),(0,n.yg)("p",null,"sqoop\u662f\u8fde\u63a5\u5173\u7cfb\u578b\u6570\u636e\u5e93\u548chadoop\u7684\u6865\u6881\uff0c\u4e3b\u8981\u6709\u4e24\u4e2a\u65b9\u9762(\u5bfc\u5165\u548c\u5bfc\u51fa)\uff1a"),(0,n.yg)("ol",null,(0,n.yg)("li",{parentName:"ol"},"\u5c06\u5173\u7cfb\u578b\u6570\u636e\u5e93\u7684\u6570\u636e\u5bfc\u5165\u5230Hadoop \u53ca\u5176\u76f8\u5173\u7684\u7cfb\u7edf\u4e2d\uff0c\u5982 Hive\u548cHBase"),(0,n.yg)("li",{parentName:"ol"},"\u5c06\u6570\u636e\u4eceHadoop \u7cfb\u7edf\u91cc\u62bd\u53d6\u5e76\u5bfc\u51fa\u5230\u5173\u7cfb\u578b\u6570\u636e\u5e93")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8901],{5680:(e,t,r)=>{r.d(t,{xA:()=>c,yg:()=>m});var o=r(6540);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function p(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var i=o.createContext({}),s=function(e){var t=o.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):p(p({},t),e)),r},c=function(e){var t=s(e.components);return o.createElement(i.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},y=o.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,i=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),u=s(r),y=n,m=u["".concat(i,".").concat(y)]||u[y]||d[y]||a;return r?o.createElement(m,p(p({ref:t},c),{},{components:r})):o.createElement(m,p({ref:t},c))}));function m(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,p=new Array(a);p[0]=y;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l[u]="string"==typeof e?e:n,p[1]=l;for(var s=2;s{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>p,default:()=>d,frontMatter:()=>a,metadata:()=>l,toc:()=>s});var o=r(8168),n=(r(6540),r(5680));const a={},p=void 0,l={unversionedId:"study/program/ETL/sqoop",id:"study/program/ETL/sqoop",title:"sqoop",description:"\u6982\u8ff0",source:"@site/docs/study/program/ETL/sqoop.md",sourceDirName:"study/program/ETL",slug:"/study/program/ETL/sqoop",permalink:"/docs/study/program/ETL/sqoop",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"kettle",permalink:"/docs/study/program/ETL/kettle"},next:{title:"Erlang",permalink:"/docs/study/program/Erlang/"}},i={},s=[{value:"\u6982\u8ff0",id:"\u6982\u8ff0",level:3},{value:"sqoop\u4ea7\u751f\u7684\u539f\u56e0\uff1a",id:"sqoop\u4ea7\u751f\u7684\u539f\u56e0",level:4},{value:"sqoop\u7684\u4ecb\u7ecd",id:"sqoop\u7684\u4ecb\u7ecd",level:4}],c={toc:s},u="wrapper";function d(e){let{components:t,...r}=e;return(0,n.yg)(u,(0,o.A)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,n.yg)("h3",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,n.yg)("h4",{id:"sqoop\u4ea7\u751f\u7684\u539f\u56e0"},"sqoop\u4ea7\u751f\u7684\u539f\u56e0\uff1a"),(0,n.yg)("ol",null,(0,n.yg)("li",{parentName:"ol"},"\u591a\u6570\u4f7f\u7528hadoop\u6280\u672f\u7684\u5904\u7406\u5927\u6570\u636e\u4e1a\u52a1\u7684\u4f01\u4e1a\uff0c\u6709\u5927\u91cf\u7684\u6570\u636e\u5b58\u50a8\u5728\u5173\u7cfb\u578b\u6570\u636e\u4e2d\u3002"),(0,n.yg)("li",{parentName:"ol"},"\u7531\u4e8e\u6ca1\u6709\u5de5\u5177\u652f\u6301\uff0c\u5bf9hadoop\u548c\u5173\u7cfb\u578b\u6570\u636e\u5e93\u4e4b\u95f4\u6570\u636e\u4f20\u8f93\u662f\u4e00\u4e2a\u5f88\u56f0\u96be\u7684\u4e8b\u3002"),(0,n.yg)("li",{parentName:"ol"},"\u4f9d\u636e\u4ee5\u4e0a\u7684\u539f\u56e0sqoop\u4ea7\u751f\u7684\u3002")),(0,n.yg)("h4",{id:"sqoop\u7684\u4ecb\u7ecd"},"sqoop\u7684\u4ecb\u7ecd"),(0,n.yg)("p",null,"sqoop\u662f\u8fde\u63a5\u5173\u7cfb\u578b\u6570\u636e\u5e93\u548chadoop\u7684\u6865\u6881\uff0c\u4e3b\u8981\u6709\u4e24\u4e2a\u65b9\u9762(\u5bfc\u5165\u548c\u5bfc\u51fa)\uff1a"),(0,n.yg)("ol",null,(0,n.yg)("li",{parentName:"ol"},"\u5c06\u5173\u7cfb\u578b\u6570\u636e\u5e93\u7684\u6570\u636e\u5bfc\u5165\u5230Hadoop \u53ca\u5176\u76f8\u5173\u7684\u7cfb\u7edf\u4e2d\uff0c\u5982 Hive\u548cHBase"),(0,n.yg)("li",{parentName:"ol"},"\u5c06\u6570\u636e\u4eceHadoop \u7cfb\u7edf\u91cc\u62bd\u53d6\u5e76\u5bfc\u51fa\u5230\u5173\u7cfb\u578b\u6570\u636e\u5e93")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0dfb2733.1473ab62.js b/assets/js/0dfb2733.b8f854cb.js similarity index 98% rename from assets/js/0dfb2733.1473ab62.js rename to assets/js/0dfb2733.b8f854cb.js index 82fcbb604..2b5f18962 100644 --- a/assets/js/0dfb2733.1473ab62.js +++ b/assets/js/0dfb2733.b8f854cb.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4908],{5680:(e,r,t)=>{t.d(r,{xA:()=>u,yg:()=>f});var n=t(6540);function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function i(e){for(var r=1;r=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var l=n.createContext({}),p=function(e){var r=n.useContext(l),t=r;return e&&(t="function"==typeof e?e(r):i(i({},r),e)),t},u=function(e){var r=p(e.components);return n.createElement(l.Provider,{value:r},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},y=n.forwardRef((function(e,r){var t=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),s=p(t),y=a,f=s["".concat(l,".").concat(y)]||s[y]||d[y]||o;return t?n.createElement(f,i(i({ref:r},u),{},{components:t})):n.createElement(f,i({ref:r},u))}));function f(e,r){var t=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var o=t.length,i=new Array(o);i[0]=y;var c={};for(var l in r)hasOwnProperty.call(r,l)&&(c[l]=r[l]);c.originalType=e,c[s]="string"==typeof e?e:a,i[1]=c;for(var p=2;p{t.r(r),t.d(r,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>c,toc:()=>p});var n=t(8168),a=(t(6540),t(5680));const o={},i=void 0,c={unversionedId:"study/program/ABIAPI",id:"study/program/ABIAPI",title:"ABIAPI",description:"ABI",source:"@site/docs/study/program/ABIAPI.md",sourceDirName:"study/program",slug:"/study/program/ABIAPI",permalink:"/docs/study/program/ABIAPI",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u9501\uff08\u591a\u7ebf\u7a0b\uff09",permalink:"/docs/study/program/JAVA/\u9501"},next:{title:"C C++ \u7f16\u7a0b\u8bed\u8a00",permalink:"/docs/study/program/C/"}},l={},p=[{value:"ABI",id:"abi",level:3},{value:"API",id:"api",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],u={toc:p},s="wrapper";function d(e){let{components:r,...t}=e;return(0,a.yg)(s,(0,n.A)({},u,t,{components:r,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"abi"},"ABI"),(0,a.yg)("p",null,"ABI\uff08Application Binary Interface\uff09\uff1a\u5e94\u7528\u7a0b\u5e8f\u4e8c\u8fdb\u5236\u63a5\u53e3\uff0c\u63cf\u8ff0\u4e86\u5e94\u7528\u7a0b\u5e8f\u548c\u64cd\u4f5c\u7cfb\u7edf\u4e4b\u95f4\uff0c\u4e00\u4e2a\u5e94\u7528\u548c\u5b83\u7684\u5e93\u4e4b\u95f4\uff0c\u6216\u8005\u5e94\u7528\u7684\u7ec4\u6210\u90e8\u5206\u4e4b\u95f4\u7684\u4f4e\u63a5\u53e3\u3002"),(0,a.yg)("h3",{id:"api"},"API"),(0,a.yg)("p",null,"\u5e94\u7528\u7a0b\u5e8f\u63a5\u53e3\uff08Application Programming Interface\uff0cAPI\uff09\uff0c\u53c8\u79f0\u4e3a\u5e94\u7528\u7f16\u7a0b\u63a5\u53e3\uff0c\u5c31\u662f\u8f6f\u4ef6\u7cfb\u7edf\u4e0d\u540c\u7ec4\u6210\u90e8\u5206\u8854\u63a5\u7684\u7ea6\u5b9a\u3002"),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://baike.baidu.com/item/ABI/10912305"},"\u767e\u5ea6\u767e\u79d1-ABI"))))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4908],{5680:(e,r,t)=>{t.d(r,{xA:()=>u,yg:()=>f});var n=t(6540);function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function i(e){for(var r=1;r=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var l=n.createContext({}),p=function(e){var r=n.useContext(l),t=r;return e&&(t="function"==typeof e?e(r):i(i({},r),e)),t},u=function(e){var r=p(e.components);return n.createElement(l.Provider,{value:r},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},y=n.forwardRef((function(e,r){var t=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),s=p(t),y=a,f=s["".concat(l,".").concat(y)]||s[y]||d[y]||o;return t?n.createElement(f,i(i({ref:r},u),{},{components:t})):n.createElement(f,i({ref:r},u))}));function f(e,r){var t=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var o=t.length,i=new Array(o);i[0]=y;var c={};for(var l in r)hasOwnProperty.call(r,l)&&(c[l]=r[l]);c.originalType=e,c[s]="string"==typeof e?e:a,i[1]=c;for(var p=2;p{t.r(r),t.d(r,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>c,toc:()=>p});var n=t(8168),a=(t(6540),t(5680));const o={},i=void 0,c={unversionedId:"study/program/ABIAPI",id:"study/program/ABIAPI",title:"ABIAPI",description:"ABI",source:"@site/docs/study/program/ABIAPI.md",sourceDirName:"study/program",slug:"/study/program/ABIAPI",permalink:"/docs/study/program/ABIAPI",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u9501\uff08\u591a\u7ebf\u7a0b\uff09",permalink:"/docs/study/program/JAVA/\u9501"},next:{title:"C C++ \u7f16\u7a0b\u8bed\u8a00",permalink:"/docs/study/program/C/"}},l={},p=[{value:"ABI",id:"abi",level:3},{value:"API",id:"api",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],u={toc:p},s="wrapper";function d(e){let{components:r,...t}=e;return(0,a.yg)(s,(0,n.A)({},u,t,{components:r,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"abi"},"ABI"),(0,a.yg)("p",null,"ABI\uff08Application Binary Interface\uff09\uff1a\u5e94\u7528\u7a0b\u5e8f\u4e8c\u8fdb\u5236\u63a5\u53e3\uff0c\u63cf\u8ff0\u4e86\u5e94\u7528\u7a0b\u5e8f\u548c\u64cd\u4f5c\u7cfb\u7edf\u4e4b\u95f4\uff0c\u4e00\u4e2a\u5e94\u7528\u548c\u5b83\u7684\u5e93\u4e4b\u95f4\uff0c\u6216\u8005\u5e94\u7528\u7684\u7ec4\u6210\u90e8\u5206\u4e4b\u95f4\u7684\u4f4e\u63a5\u53e3\u3002"),(0,a.yg)("h3",{id:"api"},"API"),(0,a.yg)("p",null,"\u5e94\u7528\u7a0b\u5e8f\u63a5\u53e3\uff08Application Programming Interface\uff0cAPI\uff09\uff0c\u53c8\u79f0\u4e3a\u5e94\u7528\u7f16\u7a0b\u63a5\u53e3\uff0c\u5c31\u662f\u8f6f\u4ef6\u7cfb\u7edf\u4e0d\u540c\u7ec4\u6210\u90e8\u5206\u8854\u63a5\u7684\u7ea6\u5b9a\u3002"),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://baike.baidu.com/item/ABI/10912305"},"\u767e\u5ea6\u767e\u79d1-ABI"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0e133684.244cfd6d.js b/assets/js/0e133684.aa505b43.js similarity index 98% rename from assets/js/0e133684.244cfd6d.js rename to assets/js/0e133684.aa505b43.js index 118c6378b..f79533821 100644 --- a/assets/js/0e133684.244cfd6d.js +++ b/assets/js/0e133684.aa505b43.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8529],{5680:(e,t,r)=>{r.d(t,{xA:()=>l,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function s(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),i=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):s(s({},t),e)),r},l=function(e){var t=i(e.components);return n.createElement(p.Provider,{value:t},e.children)},u="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),u=i(r),d=o,f=u["".concat(p,".").concat(d)]||u[d]||y[d]||a;return r?n.createElement(f,s(s({ref:t},l),{},{components:r})):n.createElement(f,s({ref:t},l))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,s=new Array(a);s[0]=d;var c={};for(var p in t)hasOwnProperty.call(t,p)&&(c[p]=t[p]);c.originalType=e,c[u]="string"==typeof e?e:o,s[1]=c;for(var i=2;i{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>s,default:()=>y,frontMatter:()=>a,metadata:()=>c,toc:()=>i});var n=r(8168),o=(r(6540),r(5680));const a={},s=void 0,c={unversionedId:"study/system/openWRT",id:"study/system/openWRT",title:"openWRT",description:"\u53c2\u8003",source:"@site/docs/study/system/openWRT.md",sourceDirName:"study/system",slug:"/study/system/openWRT",permalink:"/docs/study/system/openWRT",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Open\u6b27\u62c9",permalink:"/docs/study/system/Open\u6b27\u62c9"},next:{title:"shell\u7f16\u7a0b\u667aexpect",permalink:"/docs/study/system/shell\u7f16\u7a0b\u667aexpect"}},p={},i=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],l={toc:i},u="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://baike.baidu.com/item/openWRT/3528947"},"\u767e\u5ea6\u767e\u79d1-openWRT"))))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8529],{5680:(e,t,r)=>{r.d(t,{xA:()=>l,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function s(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),i=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):s(s({},t),e)),r},l=function(e){var t=i(e.components);return n.createElement(p.Provider,{value:t},e.children)},u="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),u=i(r),d=o,f=u["".concat(p,".").concat(d)]||u[d]||y[d]||a;return r?n.createElement(f,s(s({ref:t},l),{},{components:r})):n.createElement(f,s({ref:t},l))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,s=new Array(a);s[0]=d;var c={};for(var p in t)hasOwnProperty.call(t,p)&&(c[p]=t[p]);c.originalType=e,c[u]="string"==typeof e?e:o,s[1]=c;for(var i=2;i{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>s,default:()=>y,frontMatter:()=>a,metadata:()=>c,toc:()=>i});var n=r(8168),o=(r(6540),r(5680));const a={},s=void 0,c={unversionedId:"study/system/openWRT",id:"study/system/openWRT",title:"openWRT",description:"\u53c2\u8003",source:"@site/docs/study/system/openWRT.md",sourceDirName:"study/system",slug:"/study/system/openWRT",permalink:"/docs/study/system/openWRT",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Open\u6b27\u62c9",permalink:"/docs/study/system/Open\u6b27\u62c9"},next:{title:"shell\u7f16\u7a0b\u667aexpect",permalink:"/docs/study/system/shell\u7f16\u7a0b\u667aexpect"}},p={},i=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],l={toc:i},u="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://baike.baidu.com/item/openWRT/3528947"},"\u767e\u5ea6\u767e\u79d1-openWRT"))))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0eefe494.18ba6973.js b/assets/js/0eefe494.4c031b20.js similarity index 98% rename from assets/js/0eefe494.18ba6973.js rename to assets/js/0eefe494.4c031b20.js index e82c82131..17cb7553e 100644 --- a/assets/js/0eefe494.18ba6973.js +++ b/assets/js/0eefe494.4c031b20.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4243],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>f});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),p=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},s=function(e){var t=p(e.components);return n.createElement(c.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),u=p(r),y=a,f=u["".concat(c,".").concat(y)]||u[y]||d[y]||o;return r?n.createElement(f,l(l({ref:t},s),{},{components:r})):n.createElement(f,l({ref:t},s))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=y;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[u]="string"==typeof e?e:a,l[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var n=r(8168),a=(r(6540),r(5680));const o={},l=void 0,i={unversionedId:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/OpenTSDB",id:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/OpenTSDB",title:"OpenTSDB",description:"\u57fa\u672c\u4fe1\u606f",source:"@site/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/OpenTSDB.md",sourceDirName:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93",slug:"/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/OpenTSDB",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/OpenTSDB",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"KairosDB",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/KairosDB"},next:{title:"TimescaleDB",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TimescaleDB"}},c={},p=[{value:"\u57fa\u672c\u4fe1\u606f",id:"\u57fa\u672c\u4fe1\u606f",level:3},{value:"\u8bc4\u4ef7",id:"\u8bc4\u4ef7",level:3}],s={toc:p},u="wrapper";function d(e){let{components:t,...r}=e;return(0,a.yg)(u,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u57fa\u672c\u4fe1\u606f"},"\u57fa\u672c\u4fe1\u606f"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"\u7f16\u7a0b\u8bed\u8a00\uff1aJava"),(0,a.yg)("li",{parentName:"ol"},"\u96c6\u7fa4\u6a21\u5f0f\uff1a\u652f\u6301\u96c6\u7fa4\uff0c\u5f00\u6e90"),(0,a.yg)("li",{parentName:"ol"},"\u5b58\u50a8\u7cfb\u7edf\uff1aHBase"),(0,a.yg)("li",{parentName:"ol"},"\u8fd0\u7ef4\u96be\u5ea6\uff1a\u590d\u6742"),(0,a.yg)("li",{parentName:"ol"},"\u63a5\u53e3\uff1aRestful API")),(0,a.yg)("h3",{id:"\u8bc4\u4ef7"},"\u8bc4\u4ef7"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"\u56e0\u5b58\u50a8\u7cfb\u7edf\u4f7f\u7528\u7684hbase\uff0chbase\u5b58\u5728\u6027\u80fd\u548c\u538b\u7f29\u7387\u7684\u95ee\u9898\uff0c\u5e76\u6ca1\u6709\u88ab\u89e3\u51b3\uff1b"),(0,a.yg)("li",{parentName:"ol"},"hbase\u672c\u8eab\u5bf9\u975e\u7ed3\u6784\u5316\u7684\u6570\u636e\u652f\u6301\u5f88\u597d\uff0c\u5982\u679c\u5b58\u7684\u662f\u7ed3\u6784\u5316\u6570\u636e\uff0c\u6709\u4e9b\u4e0d\u5408\u9002\uff1b")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4243],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>f});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),p=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},s=function(e){var t=p(e.components);return n.createElement(c.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),u=p(r),y=a,f=u["".concat(c,".").concat(y)]||u[y]||d[y]||o;return r?n.createElement(f,l(l({ref:t},s),{},{components:r})):n.createElement(f,l({ref:t},s))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=y;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[u]="string"==typeof e?e:a,l[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var n=r(8168),a=(r(6540),r(5680));const o={},l=void 0,i={unversionedId:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/OpenTSDB",id:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/OpenTSDB",title:"OpenTSDB",description:"\u57fa\u672c\u4fe1\u606f",source:"@site/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/OpenTSDB.md",sourceDirName:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93",slug:"/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/OpenTSDB",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/OpenTSDB",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"KairosDB",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/KairosDB"},next:{title:"TimescaleDB",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TimescaleDB"}},c={},p=[{value:"\u57fa\u672c\u4fe1\u606f",id:"\u57fa\u672c\u4fe1\u606f",level:3},{value:"\u8bc4\u4ef7",id:"\u8bc4\u4ef7",level:3}],s={toc:p},u="wrapper";function d(e){let{components:t,...r}=e;return(0,a.yg)(u,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u57fa\u672c\u4fe1\u606f"},"\u57fa\u672c\u4fe1\u606f"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"\u7f16\u7a0b\u8bed\u8a00\uff1aJava"),(0,a.yg)("li",{parentName:"ol"},"\u96c6\u7fa4\u6a21\u5f0f\uff1a\u652f\u6301\u96c6\u7fa4\uff0c\u5f00\u6e90"),(0,a.yg)("li",{parentName:"ol"},"\u5b58\u50a8\u7cfb\u7edf\uff1aHBase"),(0,a.yg)("li",{parentName:"ol"},"\u8fd0\u7ef4\u96be\u5ea6\uff1a\u590d\u6742"),(0,a.yg)("li",{parentName:"ol"},"\u63a5\u53e3\uff1aRestful API")),(0,a.yg)("h3",{id:"\u8bc4\u4ef7"},"\u8bc4\u4ef7"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"\u56e0\u5b58\u50a8\u7cfb\u7edf\u4f7f\u7528\u7684hbase\uff0chbase\u5b58\u5728\u6027\u80fd\u548c\u538b\u7f29\u7387\u7684\u95ee\u9898\uff0c\u5e76\u6ca1\u6709\u88ab\u89e3\u51b3\uff1b"),(0,a.yg)("li",{parentName:"ol"},"hbase\u672c\u8eab\u5bf9\u975e\u7ed3\u6784\u5316\u7684\u6570\u636e\u652f\u6301\u5f88\u597d\uff0c\u5982\u679c\u5b58\u7684\u662f\u7ed3\u6784\u5316\u6570\u636e\uff0c\u6709\u4e9b\u4e0d\u5408\u9002\uff1b")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0f04c4bf.08303893.js b/assets/js/0f04c4bf.078cb5b4.js similarity index 98% rename from assets/js/0f04c4bf.08303893.js rename to assets/js/0f04c4bf.078cb5b4.js index b37ebc21a..a1de8dd18 100644 --- a/assets/js/0f04c4bf.08303893.js +++ b/assets/js/0f04c4bf.078cb5b4.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6784],{5680:(e,t,n)=>{n.d(t,{xA:()=>d,yg:()=>m});var r=n(6540);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function p(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var p=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var c=r.createContext({}),l=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=l(e.components);return r.createElement(c.Provider,{value:t},e.children)},s="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,p=e.originalType,c=e.parentName,d=a(e,["components","mdxType","originalType","parentName"]),s=l(n),y=o,m=s["".concat(c,".").concat(y)]||s[y]||u[y]||p;return n?r.createElement(m,i(i({ref:t},d),{},{components:n})):r.createElement(m,i({ref:t},d))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var p=n.length,i=new Array(p);i[0]=y;var a={};for(var c in t)hasOwnProperty.call(t,c)&&(a[c]=t[c]);a.originalType=e,a[s]="string"==typeof e?e:o,i[1]=a;for(var l=2;l{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>u,frontMatter:()=>p,metadata:()=>a,toc:()=>l});var r=n(8168),o=(n(6540),n(5680));const p={sidebar_position:1},i=void 0,a={unversionedId:"study/back/maven/pom\u6587\u4ef6\u4e2d\u7684scope\u6807\u7b7e",id:"study/back/maven/pom\u6587\u4ef6\u4e2d\u7684scope\u6807\u7b7e",title:"pom\u6587\u4ef6\u4e2d\u7684scope\u6807\u7b7e",description:"\u5206\u7c7b",source:"@site/docs/study/back/maven/pom\u6587\u4ef6\u4e2d\u7684scope\u6807\u7b7e.md",sourceDirName:"study/back/maven",slug:"/study/back/maven/pom\u6587\u4ef6\u4e2d\u7684scope\u6807\u7b7e",permalink:"/docs/study/back/maven/pom\u6587\u4ef6\u4e2d\u7684scope\u6807\u7b7e",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"WSL",permalink:"/docs/study/back/WSL"},next:{title:"mvnw",permalink:"/docs/study/back/maven/mvnw"}},c={},l=[{value:"\u5206\u7c7b",id:"\u5206\u7c7b",level:3},{value:"compile",id:"compile",level:4},{value:"provided",id:"provided",level:4},{value:"runtime",id:"runtime",level:4},{value:"test",id:"test",level:4},{value:"system",id:"system",level:4},{value:"import",id:"import",level:4},{value:"\u6ce8\u610f\uff1a",id:"\u6ce8\u610f",level:3}],d={toc:l},s="wrapper";function u(e){let{components:t,...n}=e;return(0,o.yg)(s,(0,r.A)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u5206\u7c7b"},"\u5206\u7c7b"),(0,o.yg)("h4",{id:"compile"},"compile"),(0,o.yg)("p",null,"\u9ed8\u8ba4\u7684scope\uff0c\u8868\u793a dependency \u90fd\u53ef\u4ee5\u5728\u751f\u547d\u5468\u671f\u4e2d\u4f7f\u7528\u3002\u800c\u4e14\uff0c\u8fd9\u4e9bdependencies \u4f1a\u4f20\u9012\u5230\u4f9d\u8d56\u7684\u9879\u76ee\u4e2d\u3002\u9002\u7528\u4e8e\u6240\u6709\u9636\u6bb5\uff0c\u4f1a\u968f\u7740\u9879\u76ee\u4e00\u8d77\u53d1\u5e03\u3002"),(0,o.yg)("h4",{id:"provided"},"provided"),(0,o.yg)("p",null,"\u8ddfcompile\u76f8\u4f3c\uff0c\u4f46\u662f\u8868\u660e\u4e86dependency \u7531JDK\u6216\u8005\u5bb9\u5668\u63d0\u4f9b\uff0c\u4f8b\u5982Servlet AP\u548c\u4e00\u4e9bJava EE APIs\u3002\u8fd9\u4e2ascope \u53ea\u80fd\u4f5c\u7528\u5728\u7f16\u8bd1\u548c\u6d4b\u8bd5\u65f6\uff0c\u540c\u65f6\u6ca1\u6709\u4f20\u9012\u6027\u3002"),(0,o.yg)("h4",{id:"runtime"},"runtime"),(0,o.yg)("p",null,"\u8868\u793adependency\u4e0d\u4f5c\u7528\u5728\u7f16\u8bd1\u65f6\uff0c\u4f46\u4f1a\u4f5c\u7528\u5728\u8fd0\u884c\u548c\u6d4b\u8bd5\u65f6\uff0c\u5982JDBC\u9a71\u52a8\uff0c\u9002\u7528\u8fd0\u884c\u548c\u6d4b\u8bd5\u9636\u6bb5\u3002"),(0,o.yg)("h4",{id:"test"},"test"),(0,o.yg)("p",null,"\u8868\u793adependency\u4f5c\u7528\u5728\u6d4b\u8bd5\u65f6\uff0c\u4e0d\u4f5c\u7528\u5728\u8fd0\u884c\u65f6\u3002 \u53ea\u5728\u6d4b\u8bd5\u65f6\u4f7f\u7528\uff0c\u7528\u4e8e\u7f16\u8bd1\u548c\u8fd0\u884c\u6d4b\u8bd5\u4ee3\u7801\u3002\u4e0d\u4f1a\u968f\u9879\u76ee\u53d1\u5e03\u3002"),(0,o.yg)("h4",{id:"system"},"system"),(0,o.yg)("p",null,"\u8ddfprovided \u76f8\u4f3c\uff0c\u4f46\u662f\u5728\u7cfb\u7edf\u4e2d\u8981\u4ee5\u5916\u90e8JAR\u5305\u7684\u5f62\u5f0f\u63d0\u4f9b\uff0cmaven\u4e0d\u4f1a\u5728repository\u67e5\u627e\u5b83\u3002"),(0,o.yg)("h4",{id:"import"},"import"),(0,o.yg)("p",null,"\u8fd9\u4e2a\u6807\u7b7e\u5c31\u662f \u5f15\u5165\u8be5dependency\u7684pom\u4e2d\u5b9a\u4e49\u7684\u6240\u6709dependency\u5b9a\u4e49"),(0,o.yg)("h3",{id:"\u6ce8\u610f"},"\u6ce8\u610f\uff1a"),(0,o.yg)("p",null,'import\u6807\u7b7e\u503c\u53ea\u80fd\u5728dependencyManagement\u6807\u7b7e\u4e0b\u4f7f\u7528\uff01\n\u5e76\u4e14\u4ec5\u7528\u4e8etype\u4e3a"pom"\u7684dependency\uff0c\u5176\u610f\u4e49\u4e3a\u5f15\u5165\u8be5dependency\u7684pom\u4e2d\u5b9a\u4e49\u7684\u6240\u6709dependency\u5b9a\u4e49'))}u.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6784],{5680:(e,t,n)=>{n.d(t,{xA:()=>d,yg:()=>m});var r=n(6540);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function p(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var p=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var c=r.createContext({}),l=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=l(e.components);return r.createElement(c.Provider,{value:t},e.children)},s="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,p=e.originalType,c=e.parentName,d=a(e,["components","mdxType","originalType","parentName"]),s=l(n),y=o,m=s["".concat(c,".").concat(y)]||s[y]||u[y]||p;return n?r.createElement(m,i(i({ref:t},d),{},{components:n})):r.createElement(m,i({ref:t},d))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var p=n.length,i=new Array(p);i[0]=y;var a={};for(var c in t)hasOwnProperty.call(t,c)&&(a[c]=t[c]);a.originalType=e,a[s]="string"==typeof e?e:o,i[1]=a;for(var l=2;l{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>u,frontMatter:()=>p,metadata:()=>a,toc:()=>l});var r=n(8168),o=(n(6540),n(5680));const p={sidebar_position:1},i=void 0,a={unversionedId:"study/back/maven/pom\u6587\u4ef6\u4e2d\u7684scope\u6807\u7b7e",id:"study/back/maven/pom\u6587\u4ef6\u4e2d\u7684scope\u6807\u7b7e",title:"pom\u6587\u4ef6\u4e2d\u7684scope\u6807\u7b7e",description:"\u5206\u7c7b",source:"@site/docs/study/back/maven/pom\u6587\u4ef6\u4e2d\u7684scope\u6807\u7b7e.md",sourceDirName:"study/back/maven",slug:"/study/back/maven/pom\u6587\u4ef6\u4e2d\u7684scope\u6807\u7b7e",permalink:"/docs/study/back/maven/pom\u6587\u4ef6\u4e2d\u7684scope\u6807\u7b7e",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"WSL",permalink:"/docs/study/back/WSL"},next:{title:"mvnw",permalink:"/docs/study/back/maven/mvnw"}},c={},l=[{value:"\u5206\u7c7b",id:"\u5206\u7c7b",level:3},{value:"compile",id:"compile",level:4},{value:"provided",id:"provided",level:4},{value:"runtime",id:"runtime",level:4},{value:"test",id:"test",level:4},{value:"system",id:"system",level:4},{value:"import",id:"import",level:4},{value:"\u6ce8\u610f\uff1a",id:"\u6ce8\u610f",level:3}],d={toc:l},s="wrapper";function u(e){let{components:t,...n}=e;return(0,o.yg)(s,(0,r.A)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u5206\u7c7b"},"\u5206\u7c7b"),(0,o.yg)("h4",{id:"compile"},"compile"),(0,o.yg)("p",null,"\u9ed8\u8ba4\u7684scope\uff0c\u8868\u793a dependency \u90fd\u53ef\u4ee5\u5728\u751f\u547d\u5468\u671f\u4e2d\u4f7f\u7528\u3002\u800c\u4e14\uff0c\u8fd9\u4e9bdependencies \u4f1a\u4f20\u9012\u5230\u4f9d\u8d56\u7684\u9879\u76ee\u4e2d\u3002\u9002\u7528\u4e8e\u6240\u6709\u9636\u6bb5\uff0c\u4f1a\u968f\u7740\u9879\u76ee\u4e00\u8d77\u53d1\u5e03\u3002"),(0,o.yg)("h4",{id:"provided"},"provided"),(0,o.yg)("p",null,"\u8ddfcompile\u76f8\u4f3c\uff0c\u4f46\u662f\u8868\u660e\u4e86dependency \u7531JDK\u6216\u8005\u5bb9\u5668\u63d0\u4f9b\uff0c\u4f8b\u5982Servlet AP\u548c\u4e00\u4e9bJava EE APIs\u3002\u8fd9\u4e2ascope \u53ea\u80fd\u4f5c\u7528\u5728\u7f16\u8bd1\u548c\u6d4b\u8bd5\u65f6\uff0c\u540c\u65f6\u6ca1\u6709\u4f20\u9012\u6027\u3002"),(0,o.yg)("h4",{id:"runtime"},"runtime"),(0,o.yg)("p",null,"\u8868\u793adependency\u4e0d\u4f5c\u7528\u5728\u7f16\u8bd1\u65f6\uff0c\u4f46\u4f1a\u4f5c\u7528\u5728\u8fd0\u884c\u548c\u6d4b\u8bd5\u65f6\uff0c\u5982JDBC\u9a71\u52a8\uff0c\u9002\u7528\u8fd0\u884c\u548c\u6d4b\u8bd5\u9636\u6bb5\u3002"),(0,o.yg)("h4",{id:"test"},"test"),(0,o.yg)("p",null,"\u8868\u793adependency\u4f5c\u7528\u5728\u6d4b\u8bd5\u65f6\uff0c\u4e0d\u4f5c\u7528\u5728\u8fd0\u884c\u65f6\u3002 \u53ea\u5728\u6d4b\u8bd5\u65f6\u4f7f\u7528\uff0c\u7528\u4e8e\u7f16\u8bd1\u548c\u8fd0\u884c\u6d4b\u8bd5\u4ee3\u7801\u3002\u4e0d\u4f1a\u968f\u9879\u76ee\u53d1\u5e03\u3002"),(0,o.yg)("h4",{id:"system"},"system"),(0,o.yg)("p",null,"\u8ddfprovided \u76f8\u4f3c\uff0c\u4f46\u662f\u5728\u7cfb\u7edf\u4e2d\u8981\u4ee5\u5916\u90e8JAR\u5305\u7684\u5f62\u5f0f\u63d0\u4f9b\uff0cmaven\u4e0d\u4f1a\u5728repository\u67e5\u627e\u5b83\u3002"),(0,o.yg)("h4",{id:"import"},"import"),(0,o.yg)("p",null,"\u8fd9\u4e2a\u6807\u7b7e\u5c31\u662f \u5f15\u5165\u8be5dependency\u7684pom\u4e2d\u5b9a\u4e49\u7684\u6240\u6709dependency\u5b9a\u4e49"),(0,o.yg)("h3",{id:"\u6ce8\u610f"},"\u6ce8\u610f\uff1a"),(0,o.yg)("p",null,'import\u6807\u7b7e\u503c\u53ea\u80fd\u5728dependencyManagement\u6807\u7b7e\u4e0b\u4f7f\u7528\uff01\n\u5e76\u4e14\u4ec5\u7528\u4e8etype\u4e3a"pom"\u7684dependency\uff0c\u5176\u610f\u4e49\u4e3a\u5f15\u5165\u8be5dependency\u7684pom\u4e2d\u5b9a\u4e49\u7684\u6240\u6709dependency\u5b9a\u4e49'))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/12d1694e.5d56002f.js b/assets/js/12d1694e.169552a5.js similarity index 99% rename from assets/js/12d1694e.5d56002f.js rename to assets/js/12d1694e.169552a5.js index 033711420..6be6e68c9 100644 --- a/assets/js/12d1694e.5d56002f.js +++ b/assets/js/12d1694e.169552a5.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1293],{5680:(e,n,l)=>{l.d(n,{xA:()=>o,yg:()=>m});var a=l(6540);function t(e,n,l){return n in e?Object.defineProperty(e,n,{value:l,enumerable:!0,configurable:!0,writable:!0}):e[n]=l,e}function r(e,n){var l=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),l.push.apply(l,a)}return l}function p(e){for(var n=1;n=0||(t[l]=e[l]);return t}(e,n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,l)&&(t[l]=e[l])}return t}var i=a.createContext({}),c=function(e){var n=a.useContext(i),l=n;return e&&(l="function"==typeof e?e(n):p(p({},n),e)),l},o=function(e){var n=c(e.components);return a.createElement(i.Provider,{value:n},e.children)},u="mdxType",g={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},d=a.forwardRef((function(e,n){var l=e.components,t=e.mdxType,r=e.originalType,i=e.parentName,o=s(e,["components","mdxType","originalType","parentName"]),u=c(l),d=t,m=u["".concat(i,".").concat(d)]||u[d]||g[d]||r;return l?a.createElement(m,p(p({ref:n},o),{},{components:l})):a.createElement(m,p({ref:n},o))}));function m(e,n){var l=arguments,t=n&&n.mdxType;if("string"==typeof e||t){var r=l.length,p=new Array(r);p[0]=d;var s={};for(var i in n)hasOwnProperty.call(n,i)&&(s[i]=n[i]);s.originalType=e,s[u]="string"==typeof e?e:t,p[1]=s;for(var c=2;c{l.r(n),l.d(n,{assets:()=>i,contentTitle:()=>p,default:()=>g,frontMatter:()=>r,metadata:()=>s,toc:()=>c});var a=l(8168),t=(l(6540),l(5680));const r={},p=void 0,s={unversionedId:"study/devops/Linux\u8fd0\u7ef4-\u5e38\u7528",id:"study/devops/Linux\u8fd0\u7ef4-\u5e38\u7528",title:"Linux\u8fd0\u7ef4-\u5e38\u7528",description:"\u5185\u6838/\u53d1\u884c\u7248",source:"@site/docs/study/devops/Linux\u8fd0\u7ef4-\u5e38\u7528.md",sourceDirName:"study/devops",slug:"/study/devops/Linux\u8fd0\u7ef4-\u5e38\u7528",permalink:"/docs/study/devops/Linux\u8fd0\u7ef4-\u5e38\u7528",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Linux\u53d1\u884c\u7248",permalink:"/docs/study/devops/Linux\u53d1\u884c\u7248"},next:{title:"Linux\u8fd0\u7ef4-\u76d1\u63a7\u6570\u636e",permalink:"/docs/study/devops/Linux\u8fd0\u7ef4-\u76d1\u63a7\u6570\u636e"}},i={},c=[{value:"\u5185\u6838/\u53d1\u884c\u7248",id:"\u5185\u6838\u53d1\u884c\u7248",level:3},{value:"\u5220\u9664\u591a\u4f59\u7684\u5907\u4efd",id:"\u5220\u9664\u591a\u4f59\u7684\u5907\u4efd",level:3},{value:"\u6587\u4ef6/\u76ee\u5f55\u5927\u5c0f\u67e5\u770b",id:"\u6587\u4ef6\u76ee\u5f55\u5927\u5c0f\u67e5\u770b",level:3},{value:"\u7f51\u7edc\u5e26\u5bbd\u95ee\u9898",id:"\u7f51\u7edc\u5e26\u5bbd\u95ee\u9898",level:3},{value:"\u5b9a\u65f6\u4efb\u52a1",id:"\u5b9a\u65f6\u4efb\u52a1",level:3},{value:"\u9632\u706b\u5899",id:"\u9632\u706b\u5899",level:3},{value:"\u540e\u53f0\u8fd0\u884c",id:"\u540e\u53f0\u8fd0\u884c",level:3},{value:"zip/tar \u6587\u4ef6",id:"ziptar-\u6587\u4ef6",level:3},{value:"centos \u5b57\u7b26\u96c6\u95ee\u9898",id:"centos-\u5b57\u7b26\u96c6\u95ee\u9898",level:3},{value:"\u5b9d\u5854\u76f8\u5173",id:"\u5b9d\u5854\u76f8\u5173",level:3},{value:"\u767b\u5f55\u7528\u6237",id:"\u767b\u5f55\u7528\u6237",level:3},{value:"\u5e38\u7528\u7684 ls \u547d\u4ee4",id:"\u5e38\u7528\u7684-ls-\u547d\u4ee4",level:3},{value:"CPU",id:"cpu",level:3},{value:"apt-get",id:"apt-get",level:3},{value:"\u7cfb\u7edf\u76d8\u7b26",id:"\u7cfb\u7edf\u76d8\u7b26",level:3},{value:"\u5185\u5b58",id:"\u5185\u5b58",level:3},{value:"\u64cd\u4f5c\u7cfb\u7edf\u7248\u672c",id:"\u64cd\u4f5c\u7cfb\u7edf\u7248\u672c",level:3},{value:"\u7aef\u53e3/\u8fde\u63a5",id:"\u7aef\u53e3\u8fde\u63a5",level:3},{value:"vi/vim \u4e2d\u6587\u4e71\u7801",id:"vivim-\u4e2d\u6587\u4e71\u7801",level:3},{value:"htop/top",id:"htoptop",level:3},{value:"grep",id:"grep",level:3},{value:"pstree",id:"pstree",level:3},{value:"\u521b\u5efa\u5927\u6587\u4ef6",id:"\u521b\u5efa\u5927\u6587\u4ef6",level:3},{value:"ulimit",id:"ulimit",level:3},{value:"ipcs \u8fdb\u7a0b\u901a\u4fe1\u3010\u5171\u4eab\u5185\u5b58\u3001\u6d88\u606f\u961f\u5217\u3001\u4fe1\u53f7\u91cf\u3011",id:"ipcs-\u8fdb\u7a0b\u901a\u4fe1\u5171\u4eab\u5185\u5b58\u6d88\u606f\u961f\u5217\u4fe1\u53f7\u91cf",level:3},{value:"DNS \u57df\u540d\u89e3\u6790\u95ee\u9898",id:"dns-\u57df\u540d\u89e3\u6790\u95ee\u9898",level:3},{value:"\u65f6\u95f4\u540c\u6b65",id:"\u65f6\u95f4\u540c\u6b65",level:3},{value:"\u78c1\u76d8\u5360\u7528 \u5220\u9664\u6587\u4ef6\u4f46\u672a\u91ca\u653e\u7a7a\u95f4",id:"\u78c1\u76d8\u5360\u7528-\u5220\u9664\u6587\u4ef6\u4f46\u672a\u91ca\u653e\u7a7a\u95f4",level:3}],o={toc:c},u="wrapper";function g(e){let{components:n,...l}=e;return(0,t.yg)(u,(0,a.A)({},o,l,{components:n,mdxType:"MDXLayout"}),(0,t.yg)("h3",{id:"\u5185\u6838\u53d1\u884c\u7248"},"\u5185\u6838/\u53d1\u884c\u7248"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},"# \u5185\u6838 CPU\u67b6\u6784\nuname -a\n# \u53d1\u884c\u7248\nlsb_release -a\n")),(0,t.yg)("h3",{id:"\u5220\u9664\u591a\u4f59\u7684\u5907\u4efd"},"\u5220\u9664\u591a\u4f59\u7684\u5907\u4efd"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},"# \u5220\u966490\u4e4b\u524d\u7684\u5907\u4efd\u6587\u4ef6\nfind /root/sh/bak/*.gz -mtime +90 -type f -exec rm -f {} \\;\n# \u5220\u966460\u4e4b\u524d\u7684\u5907\u4efd\u6587\u4ef6\nfind /root/sh/bak/*.gz -mtime +60 -type f -exec rm -f {} \\;\n# \u5220\u966410\u4e4b\u524d\u7684\u5907\u4efd\u6587\u4ef6\nfind /mnt/docker/tomcat/logs/*.log -mtime +10 -type f -exec rm -f {} \\;\n")),(0,t.yg)("h3",{id:"\u6587\u4ef6\u76ee\u5f55\u5927\u5c0f\u67e5\u770b"},"\u6587\u4ef6/\u76ee\u5f55\u5927\u5c0f\u67e5\u770b"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},"#\u67e5\u770b\u5f53\u524d\u76ee\u5f55\u603b\u5171\u5360\u7684\u5bb9\u91cf\u3002\u800c\u4e0d\u5355\u72ec\u5217\u51fa\u5404\u5b50\u9879\u5360\u7528\u7684\u5bb9\u91cf\ndu -sh\n#\u67e5\u770b\u5f53\u524d\u76ee\u5f55\u4e0b\u4e00\u7ea7\u5b50\u6587\u4ef6\u548c\u5b50\u76ee\u5f55\u5360\u7528\u7684\u78c1\u76d8\u5bb9\u91cf\u3002\ndu -lh --max-depth=1\n#\u6309\u7167\u6587\u4ef6\u5927\u5c0f \u4ece\u5c0f\u5230\u5927\u6392\u5e8f\nls -hSlr\n#\u6309\u7167\u4fee\u6539\u65f6\u95f4 \u4ece\u5c0f\u5230\u5927\u6392\u5e8f\nls -hlt\n")),(0,t.yg)("h3",{id:"\u7f51\u7edc\u5e26\u5bbd\u95ee\u9898"},"\u7f51\u7edc\u5e26\u5bbd\u95ee\u9898"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},"yum install libpcap nethogs\nnethogs -a\nlsof -i:\u88ab\u5360\u7528\u7684\u7aef\u53e3\u53f7\n")),(0,t.yg)("h3",{id:"\u5b9a\u65f6\u4efb\u52a1"},"\u5b9a\u65f6\u4efb\u52a1"),(0,t.yg)("h3",{id:"\u9632\u706b\u5899"},"\u9632\u706b\u5899"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},"#\u68c0\u67e5\u9632\u706b\u5899 \u5982\u679c\u9632\u706b\u5f3a\u4fee\u6539\u4e86 \u8bb0\u5f97\u91cd\u542fdocker\nsystemctl status firewalld\n#\nfirewall-cmd --list-ports\n\n#\u5f00\u542f\u9632\u706b\u5899\u7aef\u53e3\n#\nfirewall-cmd --permanent --add-port=9100/tcp && \\\nfirewall-cmd --permanent --add-port=9200/tcp && \\\nfirewall-cmd --permanent --add-port=9300/tcp && \\\nfirewall-cmd --reload\n#\nfirewall-cmd --permanent --add-port=5044-5054/tcp && \\\nfirewall-cmd --reload\n#\nfirewall-cmd --permanent --add-port=8090-8099/tcp && \\\nfirewall-cmd --reload\n\n#\u5173\u95ed\u9632\u706b\u5899\u7aef\u53e3\nfirewall-cmd --permanent --remove-port=9100/tcp && \\\nfirewall-cmd --permanent --remove-port=9200/tcp && \\\nfirewall-cmd --permanent --remove-port=9300/tcp && \\\nfirewall-cmd --reload\n")),(0,t.yg)("h3",{id:"\u540e\u53f0\u8fd0\u884c"},"\u540e\u53f0\u8fd0\u884c"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},"nohup python ./analyse_init_stocks.py > /dev/null 2>&1 &\n")),(0,t.yg)("h3",{id:"ziptar-\u6587\u4ef6"},"zip/tar \u6587\u4ef6"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},"#\nyum install -y unzip zip\n# \u53ea\u770b\u4e0d\u89e3\u538b\ntar -tf xxx.tar.gz\n# \u89e3\u538b\u5230\u5f53\u524d\u76ee\u5f55\ntar -xzvf xxx.tar.gz\n# \u89e3\u538b\u5230\u6307\u5b9a\u76ee\u5f55\ntar -xzvf xxx.tar.gz -C ./xxx/\n# \u521b\u5efa\u538b\u7f29\u6587\u4ef6\ntar -czvf ./xxx.tar.gz ./xxx\n")),(0,t.yg)("h3",{id:"centos-\u5b57\u7b26\u96c6\u95ee\u9898"},"centos \u5b57\u7b26\u96c6\u95ee\u9898"),(0,t.yg)("ol",null,(0,t.yg)("li",{parentName:"ol"},(0,t.yg)("a",{parentName:"li",href:"https://www.cnblogs.com/kcxg/p/11451120.html"},"CentOS7 \u53ca Docker \u914d\u7f6e\u4e2d\u6587\u5b57\u7b26\u96c6\u95ee\u9898"))),(0,t.yg)("h3",{id:"\u5b9d\u5854\u76f8\u5173"},"\u5b9d\u5854\u76f8\u5173"),(0,t.yg)("ol",null,(0,t.yg)("li",{parentName:"ol"},"\u5982\u679c\u4e0d\u77e5\u9053\u5b9d\u5854\u7684\u7ba1\u7406\u5458\u7684\u7528\u6237\u540d\u548c\u5bc6\u7801\uff0c\u4f46\u662f\u53ef\u4ee5\u767b\u5f55\u670d\u52a1\u5668\uff0c\u4f7f\u7528\u811a\u672c bt default \u6765\u83b7\u53d6\u7ba1\u7406\u5458\u7684\u7528\u6237\u540d\u548c\u5bc6\u7801\u3002")),(0,t.yg)("h3",{id:"\u767b\u5f55\u7528\u6237"},"\u767b\u5f55\u7528\u6237"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},"#\nw\n# \nwho\n#\nwhoami\n# \u67e5\u770b\u5f53\u524d\u7528\u6237\u5206\u7ec4\nid [user]\n")),(0,t.yg)("h3",{id:"\u5e38\u7528\u7684-ls-\u547d\u4ee4"},"\u5e38\u7528\u7684 ls \u547d\u4ee4"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},'#\u5ffd\u7565\u67d0\u4e9b\u6587\u4ef6\u540d\u5c55\u793a\nll -h --ignore="*bak*"\n')),(0,t.yg)("h3",{id:"cpu"},"CPU"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},'#\u8be5\u670d\u52a1\u5668\u4e00\u5171\u6709\u51e0\u4e2a\u7269\u7406CPU\ngrep "physical id" /proc/cpuinfo | uniq | wc -l\n#\u8be5\u670d\u52a1\u5668\u4e00\u5171\u6709\u51e0\u4e2a\u903b\u8f91CPU\ngrep "processor" /proc/cpuinfo | wc -l\n#\u67e5\u770bcpu\u6838\u5fc3\u6570\ncat /proc/cpuinfo| grep "cpu cores"| uniq\n#\u67e5\u770bcpu\u8be6\u7ec6\u4fe1\u606f\nlscpu\n#\u67e5\u770bCPU\u4f4d\u6570\ngetconf LONG_BIT\n# \u5217\u51faCPU\u5360\u7528\u6700\u591a\u76845\u4e2a\u8fdb\u7a0b\nps -aux | sort -k3nr | head -5\n# P\u6309\u7167\u5185\u5b58\u5927\u5c0f\u6392\u5e8f c\u663e\u793a\u8fdb\u7a0b\u5168\u79f0\ntop\n')),(0,t.yg)("h3",{id:"apt-get"},"apt-get"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-sql"},"#\napt-get update\n#\napt-get install vim\n")),(0,t.yg)("h3",{id:"\u7cfb\u7edf\u76d8\u7b26"},"\u7cfb\u7edf\u76d8\u7b26"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},"#\u67e5\u770b\u7cfb\u7edf\u652f\u6301\u7684\u76d8\u7b26\uff0c\u67e5\u770b\u5206\u533a\u548c\u78c1\u76d8\nlsblk\n#\u67e5\u770b\u7a7a\u95f4\u4f7f\u7528\u60c5\u51b5\ndf -h\n#\u67e5\u770b\u786c\u76d8label\uff08\u522b\u540d\uff09\u78c1\u76d8\u6587\u4ef6\u7c7b\u578b\nblkid\n")),(0,t.yg)("h3",{id:"\u5185\u5b58"},"\u5185\u5b58"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},"# \u67e5\u770b\u5185\u5b58\u5927\u5c0f\nfree -h \u3000\n# \u5185\u5b58\u5360\u7528\u6700\u591a\u76845\u4e2a\u8fdb\u7a0b\nps -aux | sort -k4nr | head -5\n# >\u6216M\u6309\u7167\u5185\u5b58\u5927\u5c0f\u6392\u5e8f c\u663e\u793a\u8fdb\u7a0b\u5168\u79f0\ntop\n")),(0,t.yg)("h3",{id:"\u64cd\u4f5c\u7cfb\u7edf\u7248\u672c"},"\u64cd\u4f5c\u7cfb\u7edf\u7248\u672c"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},"#\u7ea2\u5e3d\u7cfb\u5217 centos\ncat /etc/redhat-release\n#\u67e5\u770b\u5185\u6838/\u64cd\u4f5c\u7cfb\u7edf/CPU\u4fe1\u606f\uff1a\nuname -a\n")),(0,t.yg)("h3",{id:"\u7aef\u53e3\u8fde\u63a5"},"\u7aef\u53e3/\u8fde\u63a5"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},"#\u67e5\u770b\u6240\u6709\u76d1\u542c\u7684\u7aef\u53e3\nnetstat -lntp\n#\u67e5\u770b\u5df2\u7ecf\u5efa\u7acb\u7684\u94fe\u63a5\nnetstat -antp\n#\nyum list |grep telnet\nyum -y install telnet.x86_64\ntelnet 172.19.74.146 9200\n# \u6839\u636e\u76d1\u542c\u7aef\u53e3\u67e5\u627e\u8fdb\u7a0b\uff0c\u6839\u636e\u8fdb\u7a0b\u53f7\u67e5\u627e\u8fdb\u7a0b\u547d\u4ee4\nnetstat -tulnp | grep ':\u7aef\u53e3\u53f7'\nss -tulnp | grep ':\u7aef\u53e3\u53f7'\nps -f -p 99382|cat\n")),(0,t.yg)("h3",{id:"vivim-\u4e2d\u6587\u4e71\u7801"},"vi/vim \u4e2d\u6587\u4e71\u7801"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},"#\nvi /etc/vimrc\n#\u5728\u6587\u4ef6\u5934\u589e\u52a0\u5982\u4e0b\u5185\u5bb9\nset fileencodings=utf-8,gb2312,gbk,gb18030\nset termencoding=utf-8\nset fileformats=unix\nset encoding=prc\n")),(0,t.yg)("h3",{id:"htoptop"},"htop/top"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},"#\u652f\u6301\u9f20\u6807 \u652f\u6301\u5de6\u53f3\u65b9\u5411\u952e\nhtop\n#\nH \u53ea\u5c55\u793a\u8fdb\u7a0b/\u663e\u793a\u7ebf\u7a0b\nh, ? F1\u67e5\u770bhtop\u4f7f\u7528\u8bf4\u660e\nS F2 htop \u8bbe\u5b9a\n/ F3 \u641c\u7d22\u8fdb\u7a0b\n\\ F4 \u589e\u91cf\u8fdb\u7a0b\u8fc7\u6ee4\u5668\nt F5 \u663e\u793a\u6811\u5f62\u7ed3\u6784\n<, > F6 \u9009\u62e9\u6392\u5e8f\u65b9\u5f0f\n[ F7 \u53ef\u51cf\u5c11nice\u503c\u53ef\u4ee5\u63d0\u9ad8\u5bf9\u5e94\u8fdb\u7a0b\u7684\u4f18\u5148\u7ea7\n] F8 \u53ef\u589e\u52a0nice\u503c\uff0c\u964d\u4f4e\u5bf9\u5e94\u8fdb\u7a0b\u7684\u4f18\u5148\u7ea7\nk F9 \u53ef\u5bf9\u8fdb\u7a0b\u4f20\u9012\u4fe1\u53f7\nq F10 \u7ed3\u675fhtop\nu \u53ea\u663e\u793a\u4e00\u4e2a\u7ed9\u5b9a\u7684\u7528\u6237\u7684\u8fc7\u7a0b\nU \u53d6\u6d88\u6807\u8bb0\u6240\u6709\u7684\u8fdb\u7a0b\nH \u663e\u793a\u6216\u9690\u85cf\u7528\u6237\u7ebf\u7a0b\nK \u663e\u793a\u6216\u9690\u85cf\u5185\u6838\u7ebf\u7a0b\nF \u8ddf\u8e2a\u8fdb\u7a0b\nP \u6309CPU \u4f7f\u7528\u6392\u5e8f\nM \u6309\u5185\u5b58\u4f7f\u7528\u6392\u5e8f\nT \u6309Time+ \u4f7f\u7528\u6392\u5e8f\nl \u663e\u793a\u8fdb\u7a0b\u6253\u5f00\u7684\u6587\u4ef6\nI \u5012\u8f6c\u6392\u5e8f\u987a\u5e8f\ns \u9009\u62e9\u67d0\u8fdb\u7a0b\uff0c\u6309s:\u7528strace\u8ffd\u8e2a\u8fdb\u7a0b\u7684\u7cfb\u7edf\u8c03\u7528\n")),(0,t.yg)("h3",{id:"grep"},"grep"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},"#\nless user-func-flow-for-res.2022-03-11.log | grep -E '61.166.240.34' |grep get | more\n\n\n")),(0,t.yg)("h3",{id:"pstree"},"pstree"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},"#pstree \u547d\u4ee4\u662f\u4ee5\u6811\u5f62\u7ed3\u6784\u663e\u793a\u7a0b\u5e8f\u548c\u8fdb\u7a0b\u4e4b\u95f4\u7684\u5173\u7cfb\nman pstree\n#\u5c55\u793a\u8fdb\u7a0b\u547d\u4ee4\u884c\npstree -a\n")),(0,t.yg)("h3",{id:"\u521b\u5efa\u5927\u6587\u4ef6"},"\u521b\u5efa\u5927\u6587\u4ef6"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},"fallocate -l 1G largefile\ntruncate -s 1G largefile\n")),(0,t.yg)("h3",{id:"ulimit"},"ulimit"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},"ulimit -a\nulimit -n\nulimit -u\n")),(0,t.yg)("h3",{id:"ipcs-\u8fdb\u7a0b\u901a\u4fe1\u5171\u4eab\u5185\u5b58\u6d88\u606f\u961f\u5217\u4fe1\u53f7\u91cf"},"ipcs \u8fdb\u7a0b\u901a\u4fe1\u3010\u5171\u4eab\u5185\u5b58\u3001\u6d88\u606f\u961f\u5217\u3001\u4fe1\u53f7\u91cf\u3011"),(0,t.yg)("p",null,"ipcs\u547d\u4ee4\ue6ea\u662f\u4e00\u4e2a\u7528\u4e8e\u663e\u793a\u7cfb\u7edf\u4e2d\u8fdb\u7a0b\u95f4\u901a\u4fe1(IPC\ue6ea)\u8bbe\u65bd\u72b6\u6001\u7684\u547d\u4ee4\u884c\u5de5\u5177\u3002"),(0,t.yg)("p",null,"ipcs\u547d\u4ee4\u4e3b\u8981\u663e\u793a\u6d88\u606f\u961f\u961f\u5217\u3001\u5171\u4eab\u5185\u5b58\u548c\u4fe1\u53f7\u91cf\u7684\u4fe1\u606f\u3002\u8fd9\u4e9bIPC\u8bbe\u65bd\u662f\u64cd\u4f5c\u7cfb\u7edf\u63d0\u4f9b\u7ed9\u8fdb\u7a0b\u95f4\u8fdb\u884c\u6570\u636e\u4ea4\u6362\u7684\u673a\u5236\u3002\u5728\u5904\u7406\u591a\u7ebf\u7a0b\u6216\u8005\u591a\u8fdb\u7a0b\u95ee\u9898\u65f6\uff0c\u5b83\u80fd\u591f\u63d0\u4f9b\u5927\u91cf\u6709\u4ef7\u503c\u7684\u4fe1\u606f\u3002"),(0,t.yg)("p",null,"\u6d88\u606f\u961f\u5217\uff08Message Queues\uff09"),(0,t.yg)("p",null,"\u6d88\u606f\u961f\u5217\u662f\u4e00\u4e2a\u94fe\u8868\uff0c\u5b58\u653e\u5728\u5185\u6838\u4e2d\u5e76\u7531\u6d88\u606f\u961f\u5217\u6807\u8bc6\u7b26\u6807\u8bc6\u3002Linux\u5185\u6838\u7ef4\u62a4\u4e86\u4e00\u4e2a\u6d88\u606f\u961f\u5217\u548c\u76f8\u5173\u64cd\u4f5c\u51fd\u6570\u7684\u96c6\u5408\uff0c\u7528\u6237\u8fdb\u7a0b\u53ef\u4ee5\u8c03\u7528\u64cd\u4f5c\u51fd\u6570\u5b8c\u6210\u6d88\u606f\u53d1\u9001\u548c\u63a5\u6536\u3002"),(0,t.yg)("p",null,"\u4fe1\u53f7\u91cf\uff08Semaphores\uff09"),(0,t.yg)("p",null,"\u4fe1\u53f7\u91cf\u4e3b\u8981\u4f5c\u4e3a\u8fdb\u7a0b\u95f4\u4ee5\u53ca\u540c\u4e00\u8fdb\u7a0b\u4e0d\u540c\u7ebf\u7a0b\u4e4b\u95f4\u7684\u540c\u6b65\u624b\u6bb5\u3002"),(0,t.yg)("p",null,"\u5171\u4eab\u5185\u5b58\uff08Shared Memories\uff09"),(0,t.yg)("p",null,"\u8ba9\u4efb\u4f55\u9700\u8981\u7684\u8fdb\u7a0b\u90fd\u80fd\u8bbf\u95ee\u7684\u5185\u5b58\u533a\u57df\u3002\u56e0\u4e3a\u591a\u4e2a\u8fdb\u7a0b\u53ef\u4ee5\u540c\u65f6\u64cd\u4f5c\uff0c\u6240\u4ee5\u5fc5\u987b\u901a\u8fc7\u67d0\u79cd\u540c\u6b65\u64cd\u4f5c\uff0c\u5982\u4fe1\u53f7\u91cf\uff0c\u6765\u786e\u4fdd\u8fdb\u7a0b\u95f4\u4e92\u4e0d\u5e72\u6270\u3002"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},"# \u663e\u793a\u6240\u6709\nipcs\n# \u53ea\u663e\u793a\u4fe1\u53f7\u91cf nsems\u4fe1\u53f7\u91cf\u96c6\u4e2d\u7684\u4fe1\u53f7\u91cf\u6570\nipcs -s\n# \u53ea\u663e\u793a\u5185\u5b58\nipcs -m\n# \u53ea\u663e\u793a\u6d88\u606f\u961f\u5217\nipcs -q\n# \u83b7\u53d6\u7cfb\u7edf\u4fe1\u53f7\u91cf\u7684\u6700\u5927\u503c\u8bbe\u7f6e\ncat /proc/sys/kernel/sem\nsysctl kernel.sem\n")),(0,t.yg)("h3",{id:"dns-\u57df\u540d\u89e3\u6790\u95ee\u9898"},"DNS \u57df\u540d\u89e3\u6790\u95ee\u9898"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},"# nameserver 8.8.8.8 #\u6216\u5176\u4ed6\u57df\u540d\u670d\u52a1\u5668\ncat /etc/resolv.conf\n")),(0,t.yg)("h3",{id:"\u65f6\u95f4\u540c\u6b65"},"\u65f6\u95f4\u540c\u6b65"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},"# \u5f53\u524d\u65f6\u95f4\ndate\n# \n# SWXA.sansec.cn/10.0.8.18 \u672c\u5730\u7535\u8111\u4f7f\u7528\u7684\u65f6\u95f4\u540c\u6b65\u670d\u52a1\u5668\n# \u4fdd\u6301\u4e91\u5e73\u53f0\u7684\u7b2c\u4e00\u53f0\u670d\u52a1\u5668\u548c\u4e0a\u9762\u4e00\u81f4\n# \u4fdd\u6301\u4e91\u5e73\u53f0\u7684\u5176\u4ed6\u670d\u52a1\u5668\u548c\u7b2c\u4e00\u53f0\u4fdd\u6301\u4e00\u81f4\u5373\u53ef\nsudo ntpdate 10.0.8.18\n")),(0,t.yg)("h3",{id:"\u78c1\u76d8\u5360\u7528-\u5220\u9664\u6587\u4ef6\u4f46\u672a\u91ca\u653e\u7a7a\u95f4"},"\u78c1\u76d8\u5360\u7528 \u5220\u9664\u6587\u4ef6\u4f46\u672a\u91ca\u653e\u7a7a\u95f4"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},"# \u5b9e\u9645\u7684\u78c1\u76d8\u5360\u7528\u60c5\u51b5\nsudo df -h\n# \u5b9e\u9645\u7684\u6587\u4ef6\u5927\u5c0f \u5982\u679c\u548c\u4e0a\u9762\u7684\u4e0d\u5339\u914d\uff0c\u8bf4\u660e\u6709\u5220\u9664\u6587\u4ef6\u4f46\u662f\u7a7a\u95f4\u672a\u88ab\u91ca\u653e\nsudo du -lh --max-depth=1 /\n# \u8fdb\u7a0b\u5360\u7528\u6587\u4ef6\uff0c\u4f46\u662f\u6587\u4ef6\u5df2\u88ab\u5220\u9664\uff0c\u6587\u4ef6\u6240\u5360\u78c1\u76d8\u7a7a\u95f4\u672a\u88ab\u91ca\u653e\uff1b\u91cd\u542f\u8fdb\u7a0b\u53ef\u4ee5\u91ca\u653e\uff1b\n# \u5b58\u5728\u8fd9\u79cd\u60c5\u51b5\u7684\u4f8b\u5b50\u5c31\u662f\uff0c\u542f\u52a8\u8fdb\u7a0b > \u65e5\u5fd7\u6587\u4ef6 2>&1 \u8fd9\u4e2a\u65e5\u5fd7\u6587\u4ef6\u88ab\u5220\u4e86\u4e4b\u540e\u4e0d\u80fd\u591f\u6709\u6548\u91ca\u653e\nsudo lsof | grep deleted\n")),(0,t.yg)("ul",null,(0,t.yg)("li",{parentName:"ul"},(0,t.yg)("a",{parentName:"li",href:"https://blog.csdn.net/llgde/article/details/133780294"},"csdn-ulimit\u547d\u4ee4\u8be6\u89e3\uff1a\u5982\u4f55\u8bbe\u7f6e\u548c\u67e5\u770b\u7cfb\u7edf\u8d44\u6e90\u9650\u5236"))))}g.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1293],{5680:(e,n,l)=>{l.d(n,{xA:()=>o,yg:()=>m});var a=l(6540);function t(e,n,l){return n in e?Object.defineProperty(e,n,{value:l,enumerable:!0,configurable:!0,writable:!0}):e[n]=l,e}function r(e,n){var l=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),l.push.apply(l,a)}return l}function p(e){for(var n=1;n=0||(t[l]=e[l]);return t}(e,n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,l)&&(t[l]=e[l])}return t}var i=a.createContext({}),c=function(e){var n=a.useContext(i),l=n;return e&&(l="function"==typeof e?e(n):p(p({},n),e)),l},o=function(e){var n=c(e.components);return a.createElement(i.Provider,{value:n},e.children)},u="mdxType",g={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},d=a.forwardRef((function(e,n){var l=e.components,t=e.mdxType,r=e.originalType,i=e.parentName,o=s(e,["components","mdxType","originalType","parentName"]),u=c(l),d=t,m=u["".concat(i,".").concat(d)]||u[d]||g[d]||r;return l?a.createElement(m,p(p({ref:n},o),{},{components:l})):a.createElement(m,p({ref:n},o))}));function m(e,n){var l=arguments,t=n&&n.mdxType;if("string"==typeof e||t){var r=l.length,p=new Array(r);p[0]=d;var s={};for(var i in n)hasOwnProperty.call(n,i)&&(s[i]=n[i]);s.originalType=e,s[u]="string"==typeof e?e:t,p[1]=s;for(var c=2;c{l.r(n),l.d(n,{assets:()=>i,contentTitle:()=>p,default:()=>g,frontMatter:()=>r,metadata:()=>s,toc:()=>c});var a=l(8168),t=(l(6540),l(5680));const r={},p=void 0,s={unversionedId:"study/devops/Linux\u8fd0\u7ef4-\u5e38\u7528",id:"study/devops/Linux\u8fd0\u7ef4-\u5e38\u7528",title:"Linux\u8fd0\u7ef4-\u5e38\u7528",description:"\u5185\u6838/\u53d1\u884c\u7248",source:"@site/docs/study/devops/Linux\u8fd0\u7ef4-\u5e38\u7528.md",sourceDirName:"study/devops",slug:"/study/devops/Linux\u8fd0\u7ef4-\u5e38\u7528",permalink:"/docs/study/devops/Linux\u8fd0\u7ef4-\u5e38\u7528",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Linux\u53d1\u884c\u7248",permalink:"/docs/study/devops/Linux\u53d1\u884c\u7248"},next:{title:"Linux\u8fd0\u7ef4-\u76d1\u63a7\u6570\u636e",permalink:"/docs/study/devops/Linux\u8fd0\u7ef4-\u76d1\u63a7\u6570\u636e"}},i={},c=[{value:"\u5185\u6838/\u53d1\u884c\u7248",id:"\u5185\u6838\u53d1\u884c\u7248",level:3},{value:"\u5220\u9664\u591a\u4f59\u7684\u5907\u4efd",id:"\u5220\u9664\u591a\u4f59\u7684\u5907\u4efd",level:3},{value:"\u6587\u4ef6/\u76ee\u5f55\u5927\u5c0f\u67e5\u770b",id:"\u6587\u4ef6\u76ee\u5f55\u5927\u5c0f\u67e5\u770b",level:3},{value:"\u7f51\u7edc\u5e26\u5bbd\u95ee\u9898",id:"\u7f51\u7edc\u5e26\u5bbd\u95ee\u9898",level:3},{value:"\u5b9a\u65f6\u4efb\u52a1",id:"\u5b9a\u65f6\u4efb\u52a1",level:3},{value:"\u9632\u706b\u5899",id:"\u9632\u706b\u5899",level:3},{value:"\u540e\u53f0\u8fd0\u884c",id:"\u540e\u53f0\u8fd0\u884c",level:3},{value:"zip/tar \u6587\u4ef6",id:"ziptar-\u6587\u4ef6",level:3},{value:"centos \u5b57\u7b26\u96c6\u95ee\u9898",id:"centos-\u5b57\u7b26\u96c6\u95ee\u9898",level:3},{value:"\u5b9d\u5854\u76f8\u5173",id:"\u5b9d\u5854\u76f8\u5173",level:3},{value:"\u767b\u5f55\u7528\u6237",id:"\u767b\u5f55\u7528\u6237",level:3},{value:"\u5e38\u7528\u7684 ls \u547d\u4ee4",id:"\u5e38\u7528\u7684-ls-\u547d\u4ee4",level:3},{value:"CPU",id:"cpu",level:3},{value:"apt-get",id:"apt-get",level:3},{value:"\u7cfb\u7edf\u76d8\u7b26",id:"\u7cfb\u7edf\u76d8\u7b26",level:3},{value:"\u5185\u5b58",id:"\u5185\u5b58",level:3},{value:"\u64cd\u4f5c\u7cfb\u7edf\u7248\u672c",id:"\u64cd\u4f5c\u7cfb\u7edf\u7248\u672c",level:3},{value:"\u7aef\u53e3/\u8fde\u63a5",id:"\u7aef\u53e3\u8fde\u63a5",level:3},{value:"vi/vim \u4e2d\u6587\u4e71\u7801",id:"vivim-\u4e2d\u6587\u4e71\u7801",level:3},{value:"htop/top",id:"htoptop",level:3},{value:"grep",id:"grep",level:3},{value:"pstree",id:"pstree",level:3},{value:"\u521b\u5efa\u5927\u6587\u4ef6",id:"\u521b\u5efa\u5927\u6587\u4ef6",level:3},{value:"ulimit",id:"ulimit",level:3},{value:"ipcs \u8fdb\u7a0b\u901a\u4fe1\u3010\u5171\u4eab\u5185\u5b58\u3001\u6d88\u606f\u961f\u5217\u3001\u4fe1\u53f7\u91cf\u3011",id:"ipcs-\u8fdb\u7a0b\u901a\u4fe1\u5171\u4eab\u5185\u5b58\u6d88\u606f\u961f\u5217\u4fe1\u53f7\u91cf",level:3},{value:"DNS \u57df\u540d\u89e3\u6790\u95ee\u9898",id:"dns-\u57df\u540d\u89e3\u6790\u95ee\u9898",level:3},{value:"\u65f6\u95f4\u540c\u6b65",id:"\u65f6\u95f4\u540c\u6b65",level:3},{value:"\u78c1\u76d8\u5360\u7528 \u5220\u9664\u6587\u4ef6\u4f46\u672a\u91ca\u653e\u7a7a\u95f4",id:"\u78c1\u76d8\u5360\u7528-\u5220\u9664\u6587\u4ef6\u4f46\u672a\u91ca\u653e\u7a7a\u95f4",level:3}],o={toc:c},u="wrapper";function g(e){let{components:n,...l}=e;return(0,t.yg)(u,(0,a.A)({},o,l,{components:n,mdxType:"MDXLayout"}),(0,t.yg)("h3",{id:"\u5185\u6838\u53d1\u884c\u7248"},"\u5185\u6838/\u53d1\u884c\u7248"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},"# \u5185\u6838 CPU\u67b6\u6784\nuname -a\n# \u53d1\u884c\u7248\nlsb_release -a\n")),(0,t.yg)("h3",{id:"\u5220\u9664\u591a\u4f59\u7684\u5907\u4efd"},"\u5220\u9664\u591a\u4f59\u7684\u5907\u4efd"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},"# \u5220\u966490\u4e4b\u524d\u7684\u5907\u4efd\u6587\u4ef6\nfind /root/sh/bak/*.gz -mtime +90 -type f -exec rm -f {} \\;\n# \u5220\u966460\u4e4b\u524d\u7684\u5907\u4efd\u6587\u4ef6\nfind /root/sh/bak/*.gz -mtime +60 -type f -exec rm -f {} \\;\n# \u5220\u966410\u4e4b\u524d\u7684\u5907\u4efd\u6587\u4ef6\nfind /mnt/docker/tomcat/logs/*.log -mtime +10 -type f -exec rm -f {} \\;\n")),(0,t.yg)("h3",{id:"\u6587\u4ef6\u76ee\u5f55\u5927\u5c0f\u67e5\u770b"},"\u6587\u4ef6/\u76ee\u5f55\u5927\u5c0f\u67e5\u770b"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},"#\u67e5\u770b\u5f53\u524d\u76ee\u5f55\u603b\u5171\u5360\u7684\u5bb9\u91cf\u3002\u800c\u4e0d\u5355\u72ec\u5217\u51fa\u5404\u5b50\u9879\u5360\u7528\u7684\u5bb9\u91cf\ndu -sh\n#\u67e5\u770b\u5f53\u524d\u76ee\u5f55\u4e0b\u4e00\u7ea7\u5b50\u6587\u4ef6\u548c\u5b50\u76ee\u5f55\u5360\u7528\u7684\u78c1\u76d8\u5bb9\u91cf\u3002\ndu -lh --max-depth=1\n#\u6309\u7167\u6587\u4ef6\u5927\u5c0f \u4ece\u5c0f\u5230\u5927\u6392\u5e8f\nls -hSlr\n#\u6309\u7167\u4fee\u6539\u65f6\u95f4 \u4ece\u5c0f\u5230\u5927\u6392\u5e8f\nls -hlt\n")),(0,t.yg)("h3",{id:"\u7f51\u7edc\u5e26\u5bbd\u95ee\u9898"},"\u7f51\u7edc\u5e26\u5bbd\u95ee\u9898"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},"yum install libpcap nethogs\nnethogs -a\nlsof -i:\u88ab\u5360\u7528\u7684\u7aef\u53e3\u53f7\n")),(0,t.yg)("h3",{id:"\u5b9a\u65f6\u4efb\u52a1"},"\u5b9a\u65f6\u4efb\u52a1"),(0,t.yg)("h3",{id:"\u9632\u706b\u5899"},"\u9632\u706b\u5899"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},"#\u68c0\u67e5\u9632\u706b\u5899 \u5982\u679c\u9632\u706b\u5f3a\u4fee\u6539\u4e86 \u8bb0\u5f97\u91cd\u542fdocker\nsystemctl status firewalld\n#\nfirewall-cmd --list-ports\n\n#\u5f00\u542f\u9632\u706b\u5899\u7aef\u53e3\n#\nfirewall-cmd --permanent --add-port=9100/tcp && \\\nfirewall-cmd --permanent --add-port=9200/tcp && \\\nfirewall-cmd --permanent --add-port=9300/tcp && \\\nfirewall-cmd --reload\n#\nfirewall-cmd --permanent --add-port=5044-5054/tcp && \\\nfirewall-cmd --reload\n#\nfirewall-cmd --permanent --add-port=8090-8099/tcp && \\\nfirewall-cmd --reload\n\n#\u5173\u95ed\u9632\u706b\u5899\u7aef\u53e3\nfirewall-cmd --permanent --remove-port=9100/tcp && \\\nfirewall-cmd --permanent --remove-port=9200/tcp && \\\nfirewall-cmd --permanent --remove-port=9300/tcp && \\\nfirewall-cmd --reload\n")),(0,t.yg)("h3",{id:"\u540e\u53f0\u8fd0\u884c"},"\u540e\u53f0\u8fd0\u884c"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},"nohup python ./analyse_init_stocks.py > /dev/null 2>&1 &\n")),(0,t.yg)("h3",{id:"ziptar-\u6587\u4ef6"},"zip/tar \u6587\u4ef6"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},"#\nyum install -y unzip zip\n# \u53ea\u770b\u4e0d\u89e3\u538b\ntar -tf xxx.tar.gz\n# \u89e3\u538b\u5230\u5f53\u524d\u76ee\u5f55\ntar -xzvf xxx.tar.gz\n# \u89e3\u538b\u5230\u6307\u5b9a\u76ee\u5f55\ntar -xzvf xxx.tar.gz -C ./xxx/\n# \u521b\u5efa\u538b\u7f29\u6587\u4ef6\ntar -czvf ./xxx.tar.gz ./xxx\n")),(0,t.yg)("h3",{id:"centos-\u5b57\u7b26\u96c6\u95ee\u9898"},"centos \u5b57\u7b26\u96c6\u95ee\u9898"),(0,t.yg)("ol",null,(0,t.yg)("li",{parentName:"ol"},(0,t.yg)("a",{parentName:"li",href:"https://www.cnblogs.com/kcxg/p/11451120.html"},"CentOS7 \u53ca Docker \u914d\u7f6e\u4e2d\u6587\u5b57\u7b26\u96c6\u95ee\u9898"))),(0,t.yg)("h3",{id:"\u5b9d\u5854\u76f8\u5173"},"\u5b9d\u5854\u76f8\u5173"),(0,t.yg)("ol",null,(0,t.yg)("li",{parentName:"ol"},"\u5982\u679c\u4e0d\u77e5\u9053\u5b9d\u5854\u7684\u7ba1\u7406\u5458\u7684\u7528\u6237\u540d\u548c\u5bc6\u7801\uff0c\u4f46\u662f\u53ef\u4ee5\u767b\u5f55\u670d\u52a1\u5668\uff0c\u4f7f\u7528\u811a\u672c bt default \u6765\u83b7\u53d6\u7ba1\u7406\u5458\u7684\u7528\u6237\u540d\u548c\u5bc6\u7801\u3002")),(0,t.yg)("h3",{id:"\u767b\u5f55\u7528\u6237"},"\u767b\u5f55\u7528\u6237"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},"#\nw\n# \nwho\n#\nwhoami\n# \u67e5\u770b\u5f53\u524d\u7528\u6237\u5206\u7ec4\nid [user]\n")),(0,t.yg)("h3",{id:"\u5e38\u7528\u7684-ls-\u547d\u4ee4"},"\u5e38\u7528\u7684 ls \u547d\u4ee4"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},'#\u5ffd\u7565\u67d0\u4e9b\u6587\u4ef6\u540d\u5c55\u793a\nll -h --ignore="*bak*"\n')),(0,t.yg)("h3",{id:"cpu"},"CPU"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},'#\u8be5\u670d\u52a1\u5668\u4e00\u5171\u6709\u51e0\u4e2a\u7269\u7406CPU\ngrep "physical id" /proc/cpuinfo | uniq | wc -l\n#\u8be5\u670d\u52a1\u5668\u4e00\u5171\u6709\u51e0\u4e2a\u903b\u8f91CPU\ngrep "processor" /proc/cpuinfo | wc -l\n#\u67e5\u770bcpu\u6838\u5fc3\u6570\ncat /proc/cpuinfo| grep "cpu cores"| uniq\n#\u67e5\u770bcpu\u8be6\u7ec6\u4fe1\u606f\nlscpu\n#\u67e5\u770bCPU\u4f4d\u6570\ngetconf LONG_BIT\n# \u5217\u51faCPU\u5360\u7528\u6700\u591a\u76845\u4e2a\u8fdb\u7a0b\nps -aux | sort -k3nr | head -5\n# P\u6309\u7167\u5185\u5b58\u5927\u5c0f\u6392\u5e8f c\u663e\u793a\u8fdb\u7a0b\u5168\u79f0\ntop\n')),(0,t.yg)("h3",{id:"apt-get"},"apt-get"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-sql"},"#\napt-get update\n#\napt-get install vim\n")),(0,t.yg)("h3",{id:"\u7cfb\u7edf\u76d8\u7b26"},"\u7cfb\u7edf\u76d8\u7b26"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},"#\u67e5\u770b\u7cfb\u7edf\u652f\u6301\u7684\u76d8\u7b26\uff0c\u67e5\u770b\u5206\u533a\u548c\u78c1\u76d8\nlsblk\n#\u67e5\u770b\u7a7a\u95f4\u4f7f\u7528\u60c5\u51b5\ndf -h\n#\u67e5\u770b\u786c\u76d8label\uff08\u522b\u540d\uff09\u78c1\u76d8\u6587\u4ef6\u7c7b\u578b\nblkid\n")),(0,t.yg)("h3",{id:"\u5185\u5b58"},"\u5185\u5b58"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},"# \u67e5\u770b\u5185\u5b58\u5927\u5c0f\nfree -h \u3000\n# \u5185\u5b58\u5360\u7528\u6700\u591a\u76845\u4e2a\u8fdb\u7a0b\nps -aux | sort -k4nr | head -5\n# >\u6216M\u6309\u7167\u5185\u5b58\u5927\u5c0f\u6392\u5e8f c\u663e\u793a\u8fdb\u7a0b\u5168\u79f0\ntop\n")),(0,t.yg)("h3",{id:"\u64cd\u4f5c\u7cfb\u7edf\u7248\u672c"},"\u64cd\u4f5c\u7cfb\u7edf\u7248\u672c"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},"#\u7ea2\u5e3d\u7cfb\u5217 centos\ncat /etc/redhat-release\n#\u67e5\u770b\u5185\u6838/\u64cd\u4f5c\u7cfb\u7edf/CPU\u4fe1\u606f\uff1a\nuname -a\n")),(0,t.yg)("h3",{id:"\u7aef\u53e3\u8fde\u63a5"},"\u7aef\u53e3/\u8fde\u63a5"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},"#\u67e5\u770b\u6240\u6709\u76d1\u542c\u7684\u7aef\u53e3\nnetstat -lntp\n#\u67e5\u770b\u5df2\u7ecf\u5efa\u7acb\u7684\u94fe\u63a5\nnetstat -antp\n#\nyum list |grep telnet\nyum -y install telnet.x86_64\ntelnet 172.19.74.146 9200\n# \u6839\u636e\u76d1\u542c\u7aef\u53e3\u67e5\u627e\u8fdb\u7a0b\uff0c\u6839\u636e\u8fdb\u7a0b\u53f7\u67e5\u627e\u8fdb\u7a0b\u547d\u4ee4\nnetstat -tulnp | grep ':\u7aef\u53e3\u53f7'\nss -tulnp | grep ':\u7aef\u53e3\u53f7'\nps -f -p 99382|cat\n")),(0,t.yg)("h3",{id:"vivim-\u4e2d\u6587\u4e71\u7801"},"vi/vim \u4e2d\u6587\u4e71\u7801"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},"#\nvi /etc/vimrc\n#\u5728\u6587\u4ef6\u5934\u589e\u52a0\u5982\u4e0b\u5185\u5bb9\nset fileencodings=utf-8,gb2312,gbk,gb18030\nset termencoding=utf-8\nset fileformats=unix\nset encoding=prc\n")),(0,t.yg)("h3",{id:"htoptop"},"htop/top"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},"#\u652f\u6301\u9f20\u6807 \u652f\u6301\u5de6\u53f3\u65b9\u5411\u952e\nhtop\n#\nH \u53ea\u5c55\u793a\u8fdb\u7a0b/\u663e\u793a\u7ebf\u7a0b\nh, ? F1\u67e5\u770bhtop\u4f7f\u7528\u8bf4\u660e\nS F2 htop \u8bbe\u5b9a\n/ F3 \u641c\u7d22\u8fdb\u7a0b\n\\ F4 \u589e\u91cf\u8fdb\u7a0b\u8fc7\u6ee4\u5668\nt F5 \u663e\u793a\u6811\u5f62\u7ed3\u6784\n<, > F6 \u9009\u62e9\u6392\u5e8f\u65b9\u5f0f\n[ F7 \u53ef\u51cf\u5c11nice\u503c\u53ef\u4ee5\u63d0\u9ad8\u5bf9\u5e94\u8fdb\u7a0b\u7684\u4f18\u5148\u7ea7\n] F8 \u53ef\u589e\u52a0nice\u503c\uff0c\u964d\u4f4e\u5bf9\u5e94\u8fdb\u7a0b\u7684\u4f18\u5148\u7ea7\nk F9 \u53ef\u5bf9\u8fdb\u7a0b\u4f20\u9012\u4fe1\u53f7\nq F10 \u7ed3\u675fhtop\nu \u53ea\u663e\u793a\u4e00\u4e2a\u7ed9\u5b9a\u7684\u7528\u6237\u7684\u8fc7\u7a0b\nU \u53d6\u6d88\u6807\u8bb0\u6240\u6709\u7684\u8fdb\u7a0b\nH \u663e\u793a\u6216\u9690\u85cf\u7528\u6237\u7ebf\u7a0b\nK \u663e\u793a\u6216\u9690\u85cf\u5185\u6838\u7ebf\u7a0b\nF \u8ddf\u8e2a\u8fdb\u7a0b\nP \u6309CPU \u4f7f\u7528\u6392\u5e8f\nM \u6309\u5185\u5b58\u4f7f\u7528\u6392\u5e8f\nT \u6309Time+ \u4f7f\u7528\u6392\u5e8f\nl \u663e\u793a\u8fdb\u7a0b\u6253\u5f00\u7684\u6587\u4ef6\nI \u5012\u8f6c\u6392\u5e8f\u987a\u5e8f\ns \u9009\u62e9\u67d0\u8fdb\u7a0b\uff0c\u6309s:\u7528strace\u8ffd\u8e2a\u8fdb\u7a0b\u7684\u7cfb\u7edf\u8c03\u7528\n")),(0,t.yg)("h3",{id:"grep"},"grep"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},"#\nless user-func-flow-for-res.2022-03-11.log | grep -E '61.166.240.34' |grep get | more\n\n\n")),(0,t.yg)("h3",{id:"pstree"},"pstree"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},"#pstree \u547d\u4ee4\u662f\u4ee5\u6811\u5f62\u7ed3\u6784\u663e\u793a\u7a0b\u5e8f\u548c\u8fdb\u7a0b\u4e4b\u95f4\u7684\u5173\u7cfb\nman pstree\n#\u5c55\u793a\u8fdb\u7a0b\u547d\u4ee4\u884c\npstree -a\n")),(0,t.yg)("h3",{id:"\u521b\u5efa\u5927\u6587\u4ef6"},"\u521b\u5efa\u5927\u6587\u4ef6"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},"fallocate -l 1G largefile\ntruncate -s 1G largefile\n")),(0,t.yg)("h3",{id:"ulimit"},"ulimit"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},"ulimit -a\nulimit -n\nulimit -u\n")),(0,t.yg)("h3",{id:"ipcs-\u8fdb\u7a0b\u901a\u4fe1\u5171\u4eab\u5185\u5b58\u6d88\u606f\u961f\u5217\u4fe1\u53f7\u91cf"},"ipcs \u8fdb\u7a0b\u901a\u4fe1\u3010\u5171\u4eab\u5185\u5b58\u3001\u6d88\u606f\u961f\u5217\u3001\u4fe1\u53f7\u91cf\u3011"),(0,t.yg)("p",null,"ipcs\u547d\u4ee4\ue6ea\u662f\u4e00\u4e2a\u7528\u4e8e\u663e\u793a\u7cfb\u7edf\u4e2d\u8fdb\u7a0b\u95f4\u901a\u4fe1(IPC\ue6ea)\u8bbe\u65bd\u72b6\u6001\u7684\u547d\u4ee4\u884c\u5de5\u5177\u3002"),(0,t.yg)("p",null,"ipcs\u547d\u4ee4\u4e3b\u8981\u663e\u793a\u6d88\u606f\u961f\u961f\u5217\u3001\u5171\u4eab\u5185\u5b58\u548c\u4fe1\u53f7\u91cf\u7684\u4fe1\u606f\u3002\u8fd9\u4e9bIPC\u8bbe\u65bd\u662f\u64cd\u4f5c\u7cfb\u7edf\u63d0\u4f9b\u7ed9\u8fdb\u7a0b\u95f4\u8fdb\u884c\u6570\u636e\u4ea4\u6362\u7684\u673a\u5236\u3002\u5728\u5904\u7406\u591a\u7ebf\u7a0b\u6216\u8005\u591a\u8fdb\u7a0b\u95ee\u9898\u65f6\uff0c\u5b83\u80fd\u591f\u63d0\u4f9b\u5927\u91cf\u6709\u4ef7\u503c\u7684\u4fe1\u606f\u3002"),(0,t.yg)("p",null,"\u6d88\u606f\u961f\u5217\uff08Message Queues\uff09"),(0,t.yg)("p",null,"\u6d88\u606f\u961f\u5217\u662f\u4e00\u4e2a\u94fe\u8868\uff0c\u5b58\u653e\u5728\u5185\u6838\u4e2d\u5e76\u7531\u6d88\u606f\u961f\u5217\u6807\u8bc6\u7b26\u6807\u8bc6\u3002Linux\u5185\u6838\u7ef4\u62a4\u4e86\u4e00\u4e2a\u6d88\u606f\u961f\u5217\u548c\u76f8\u5173\u64cd\u4f5c\u51fd\u6570\u7684\u96c6\u5408\uff0c\u7528\u6237\u8fdb\u7a0b\u53ef\u4ee5\u8c03\u7528\u64cd\u4f5c\u51fd\u6570\u5b8c\u6210\u6d88\u606f\u53d1\u9001\u548c\u63a5\u6536\u3002"),(0,t.yg)("p",null,"\u4fe1\u53f7\u91cf\uff08Semaphores\uff09"),(0,t.yg)("p",null,"\u4fe1\u53f7\u91cf\u4e3b\u8981\u4f5c\u4e3a\u8fdb\u7a0b\u95f4\u4ee5\u53ca\u540c\u4e00\u8fdb\u7a0b\u4e0d\u540c\u7ebf\u7a0b\u4e4b\u95f4\u7684\u540c\u6b65\u624b\u6bb5\u3002"),(0,t.yg)("p",null,"\u5171\u4eab\u5185\u5b58\uff08Shared Memories\uff09"),(0,t.yg)("p",null,"\u8ba9\u4efb\u4f55\u9700\u8981\u7684\u8fdb\u7a0b\u90fd\u80fd\u8bbf\u95ee\u7684\u5185\u5b58\u533a\u57df\u3002\u56e0\u4e3a\u591a\u4e2a\u8fdb\u7a0b\u53ef\u4ee5\u540c\u65f6\u64cd\u4f5c\uff0c\u6240\u4ee5\u5fc5\u987b\u901a\u8fc7\u67d0\u79cd\u540c\u6b65\u64cd\u4f5c\uff0c\u5982\u4fe1\u53f7\u91cf\uff0c\u6765\u786e\u4fdd\u8fdb\u7a0b\u95f4\u4e92\u4e0d\u5e72\u6270\u3002"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},"# \u663e\u793a\u6240\u6709\nipcs\n# \u53ea\u663e\u793a\u4fe1\u53f7\u91cf nsems\u4fe1\u53f7\u91cf\u96c6\u4e2d\u7684\u4fe1\u53f7\u91cf\u6570\nipcs -s\n# \u53ea\u663e\u793a\u5185\u5b58\nipcs -m\n# \u53ea\u663e\u793a\u6d88\u606f\u961f\u5217\nipcs -q\n# \u83b7\u53d6\u7cfb\u7edf\u4fe1\u53f7\u91cf\u7684\u6700\u5927\u503c\u8bbe\u7f6e\ncat /proc/sys/kernel/sem\nsysctl kernel.sem\n")),(0,t.yg)("h3",{id:"dns-\u57df\u540d\u89e3\u6790\u95ee\u9898"},"DNS \u57df\u540d\u89e3\u6790\u95ee\u9898"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},"# nameserver 8.8.8.8 #\u6216\u5176\u4ed6\u57df\u540d\u670d\u52a1\u5668\ncat /etc/resolv.conf\n")),(0,t.yg)("h3",{id:"\u65f6\u95f4\u540c\u6b65"},"\u65f6\u95f4\u540c\u6b65"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},"# \u5f53\u524d\u65f6\u95f4\ndate\n# \n# SWXA.sansec.cn/10.0.8.18 \u672c\u5730\u7535\u8111\u4f7f\u7528\u7684\u65f6\u95f4\u540c\u6b65\u670d\u52a1\u5668\n# \u4fdd\u6301\u4e91\u5e73\u53f0\u7684\u7b2c\u4e00\u53f0\u670d\u52a1\u5668\u548c\u4e0a\u9762\u4e00\u81f4\n# \u4fdd\u6301\u4e91\u5e73\u53f0\u7684\u5176\u4ed6\u670d\u52a1\u5668\u548c\u7b2c\u4e00\u53f0\u4fdd\u6301\u4e00\u81f4\u5373\u53ef\nsudo ntpdate 10.0.8.18\n")),(0,t.yg)("h3",{id:"\u78c1\u76d8\u5360\u7528-\u5220\u9664\u6587\u4ef6\u4f46\u672a\u91ca\u653e\u7a7a\u95f4"},"\u78c1\u76d8\u5360\u7528 \u5220\u9664\u6587\u4ef6\u4f46\u672a\u91ca\u653e\u7a7a\u95f4"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},"# \u5b9e\u9645\u7684\u78c1\u76d8\u5360\u7528\u60c5\u51b5\nsudo df -h\n# \u5b9e\u9645\u7684\u6587\u4ef6\u5927\u5c0f \u5982\u679c\u548c\u4e0a\u9762\u7684\u4e0d\u5339\u914d\uff0c\u8bf4\u660e\u6709\u5220\u9664\u6587\u4ef6\u4f46\u662f\u7a7a\u95f4\u672a\u88ab\u91ca\u653e\nsudo du -lh --max-depth=1 /\n# \u8fdb\u7a0b\u5360\u7528\u6587\u4ef6\uff0c\u4f46\u662f\u6587\u4ef6\u5df2\u88ab\u5220\u9664\uff0c\u6587\u4ef6\u6240\u5360\u78c1\u76d8\u7a7a\u95f4\u672a\u88ab\u91ca\u653e\uff1b\u91cd\u542f\u8fdb\u7a0b\u53ef\u4ee5\u91ca\u653e\uff1b\n# \u5b58\u5728\u8fd9\u79cd\u60c5\u51b5\u7684\u4f8b\u5b50\u5c31\u662f\uff0c\u542f\u52a8\u8fdb\u7a0b > \u65e5\u5fd7\u6587\u4ef6 2>&1 \u8fd9\u4e2a\u65e5\u5fd7\u6587\u4ef6\u88ab\u5220\u4e86\u4e4b\u540e\u4e0d\u80fd\u591f\u6709\u6548\u91ca\u653e\nsudo lsof | grep deleted\n")),(0,t.yg)("ul",null,(0,t.yg)("li",{parentName:"ul"},(0,t.yg)("a",{parentName:"li",href:"https://blog.csdn.net/llgde/article/details/133780294"},"csdn-ulimit\u547d\u4ee4\u8be6\u89e3\uff1a\u5982\u4f55\u8bbe\u7f6e\u548c\u67e5\u770b\u7cfb\u7edf\u8d44\u6e90\u9650\u5236"))))}g.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1387c807.1a2cdcb5.js b/assets/js/1387c807.c71101bd.js similarity index 99% rename from assets/js/1387c807.1a2cdcb5.js rename to assets/js/1387c807.c71101bd.js index 6147fcf92..b3588d13c 100644 --- a/assets/js/1387c807.1a2cdcb5.js +++ b/assets/js/1387c807.c71101bd.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6598],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var i=n.createContext({}),u=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(i.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),s=u(r),y=o,f=s["".concat(i,".").concat(y)]||s[y]||d[y]||a;return r?n.createElement(f,l(l({ref:t},p),{},{components:r})):n.createElement(f,l({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=y;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[s]="string"==typeof e?e:o,l[1]=c;for(var u=2;u{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={},l=void 0,c={unversionedId:"study/hard/\u5d4c\u5165\u5f0f_\u5355\u7247\u673a",id:"study/hard/\u5d4c\u5165\u5f0f_\u5355\u7247\u673a",title:"\u5d4c\u5165\u5f0f_\u5355\u7247\u673a",description:"\u5d4c\u5165\u5f0f\u548c\u5355\u7247\u673a\u7684\u533a\u522b\u5230\u5e95\u662f\u4ec0\u4e48\u3002",source:"@site/docs/study/hard/\u5d4c\u5165\u5f0f_\u5355\u7247\u673a.md",sourceDirName:"study/hard",slug:"/study/hard/\u5d4c\u5165\u5f0f_\u5355\u7247\u673a",permalink:"/docs/study/hard/\u5d4c\u5165\u5f0f_\u5355\u7247\u673a",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u6982\u8ff0",permalink:"/docs/study/hard/"},next:{title:"\u786c\u4ef6\u5f00\u53d1\u548c\u5d4c\u5165\u5f0f\u5f00\u53d1",permalink:"/docs/study/hard/\u786c\u4ef6\u5f00\u53d1\u548c\u5d4c\u5165\u5f0f\u5f00\u53d1"}},i={},u=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],p={toc:u},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"\u5d4c\u5165\u5f0f\u548c\u5355\u7247\u673a\u7684\u533a\u522b\u5230\u5e95\u662f\u4ec0\u4e48\u3002")),(0,o.yg)("p",null,"\u4ece\u524d\u6587\u7684\u4ecb\u7ecd\u6765\u770b\uff0c\u5d4c\u5165\u5f0f\u7cfb\u7edf\u662f\u4e00\u4e2a\u5927\u7c7b\uff0c\u5355\u7247\u673a\u662f\u5176\u4e2d\u4e00\u4e2a\u91cd\u8981\u7684\u5b50\u7c7b\u3002\u5d4c\u5165\u5f0f\u7cfb\u7edf\u50cf\u662f\u4e00\u4e2a\u5b8c\u6574\u7684\u8ba1\u7b97\u673a\uff0c\u800c\u5355\u7247\u673a\u66f4\u50cf\u662f\u4e00\u4e2a\u6ca1\u6709\u5916\u8bbe\u7684\u8ba1\u7b97\u673a\u3002"),(0,o.yg)("p",null,"\u4ee5\u524d\u5355\u7247\u673a\u5305\u62ec\u7684\u4e1c\u897f\u5e76\u4e0d\u7b97\u591a\uff0c\u4e24\u8005\u7684\u786c\u4ef6\u533a\u522b\u8f83\u4e3a\u660e\u663e\u3002\u4f46\u662f\uff0c\u968f\u7740\u534a\u5bfc\u4f53\u6280\u672f\u7684\u7a81\u98de\u731b\u8fdb\uff0c\u73b0\u5728\u5404\u79cd\u786c\u4ef6\u529f\u80fd\u90fd\u80fd\u88ab\u505a\u8fdb\u5355\u7247\u673a\u4e4b\u4e2d\u3002\u6240\u4ee5\uff0c\u5d4c\u5165\u5f0f\u7cfb\u7edf\u548c\u5355\u7247\u673a\u4e4b\u95f4\u7684\u786c\u4ef6\u533a\u522b\u8d8a\u6765\u8d8a\u5c0f\uff0c\u5206\u754c\u7ebf\u4e5f\u8d8a\u6765\u8d8a\u6a21\u7cca\u3002"),(0,o.yg)("p",null,"\u4e8e\u662f\uff0c\u4eba\u4eec\u503e\u5411\u4e8e\u5728\u8f6f\u4ef6\u4e0a\u8fdb\u884c\u533a\u5206\u3002"),(0,o.yg)("p",null,"\u4ece\u8f6f\u4ef6\u4e0a\uff0c\u884c\u4e1a\u91cc\u7ecf\u5e38\u628a\u82af\u7247\u4e2d\u4e0d\u5e26MMU\uff08memory management unit\uff0c\u5185\u5b58\u7ba1\u7406\u5355\u5143\uff09\u4ece\u800c\u4e0d\u652f\u6301\u865a\u62df\u5730\u5740\uff0c\u53ea\u80fd\u88f8\u5954\u6216\u8fd0\u884cRTOS\uff08\u5b9e\u65f6\u64cd\u4f5c\u7cfb\u7edf\uff0c\u4f8b\u5982ucos\u3001\u534e\u4e3aLiteOS\u3001RT-Thread\u3001freertos\u7b49\uff09\u7684system\uff0c\u53eb\u505a\u5355\u7247\u673a\uff08\u5982STM32\u3001NXP LPC\u7cfb\u5217\u3001NXP imxRT1052\u7cfb\u5217\u7b49\uff09\u3002\u800c\u628a\u82af\u7247\u81ea\u5e26MMU\u53ef\u4ee5\u652f\u6301\u865a\u62df\u5730\u5740\uff0c\u80fd\u591f\u8dd1Linux\u3001Vxworks\u3001WinCE\u3001Android\u8fd9\u6837\u7684\u201c\u9ad8\u7ea7\u201d\u64cd\u4f5c\u7cfb\u7edf\u7684system\uff0c\u53eb\u505a\u5d4c\u5165\u5f0f\u3002"),(0,o.yg)("p",null,"\u5728\u67d0\u4e9b\u65f6\u5019\uff0c\u5355\u7247\u673a\u672c\u8eab\u5df2\u7ecf\u8db3\u591f\u5f3a\u5927\uff0c\u53ef\u4ee5\u4f5c\u4e3a\u5d4c\u5165\u5f0f\u7cfb\u7edf\u4f7f\u7528\u3002\u5b83\u7684\u6210\u672c\u66f4\u4f4e\uff0c\u5f00\u53d1\u548c\u7ef4\u62a4\u7684\u96be\u5ea6\u76f8\u5bf9\u8f83\u5c0f\uff0c\u5c24\u5176\u662f\u9488\u5bf9\u4e00\u4e9b\u9488\u5bf9\u6027\u66f4\u5f3a\u7684\u5e94\u7528\u3002\u800c\u5d4c\u5165\u5f0f\u7cfb\u7edf\u7406\u8bba\u4e0a\u6027\u80fd\u66f4\u5f3a\uff0c\u5e94\u7528\u66f4\u5e7f\u6cdb\uff0c\u4f46\u590d\u6742\u5ea6\u9ad8\uff0c\u5f00\u53d1\u96be\u5ea6\u5927\u3002"),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("a",{parentName:"li",href:"https://cloud.tencent.com/developer/article/1505486"},"\u5230\u5e95\u4ec0\u4e48\u662f\u5d4c\u5165\u5f0f\uff1f\u4ec0\u4e48\u662f\u5355\u7247\u673a\uff1f"))))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6598],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var i=n.createContext({}),u=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(i.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),s=u(r),y=o,f=s["".concat(i,".").concat(y)]||s[y]||d[y]||a;return r?n.createElement(f,l(l({ref:t},p),{},{components:r})):n.createElement(f,l({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=y;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[s]="string"==typeof e?e:o,l[1]=c;for(var u=2;u{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={},l=void 0,c={unversionedId:"study/hard/\u5d4c\u5165\u5f0f_\u5355\u7247\u673a",id:"study/hard/\u5d4c\u5165\u5f0f_\u5355\u7247\u673a",title:"\u5d4c\u5165\u5f0f_\u5355\u7247\u673a",description:"\u5d4c\u5165\u5f0f\u548c\u5355\u7247\u673a\u7684\u533a\u522b\u5230\u5e95\u662f\u4ec0\u4e48\u3002",source:"@site/docs/study/hard/\u5d4c\u5165\u5f0f_\u5355\u7247\u673a.md",sourceDirName:"study/hard",slug:"/study/hard/\u5d4c\u5165\u5f0f_\u5355\u7247\u673a",permalink:"/docs/study/hard/\u5d4c\u5165\u5f0f_\u5355\u7247\u673a",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u6982\u8ff0",permalink:"/docs/study/hard/"},next:{title:"\u786c\u4ef6\u5f00\u53d1\u548c\u5d4c\u5165\u5f0f\u5f00\u53d1",permalink:"/docs/study/hard/\u786c\u4ef6\u5f00\u53d1\u548c\u5d4c\u5165\u5f0f\u5f00\u53d1"}},i={},u=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],p={toc:u},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"\u5d4c\u5165\u5f0f\u548c\u5355\u7247\u673a\u7684\u533a\u522b\u5230\u5e95\u662f\u4ec0\u4e48\u3002")),(0,o.yg)("p",null,"\u4ece\u524d\u6587\u7684\u4ecb\u7ecd\u6765\u770b\uff0c\u5d4c\u5165\u5f0f\u7cfb\u7edf\u662f\u4e00\u4e2a\u5927\u7c7b\uff0c\u5355\u7247\u673a\u662f\u5176\u4e2d\u4e00\u4e2a\u91cd\u8981\u7684\u5b50\u7c7b\u3002\u5d4c\u5165\u5f0f\u7cfb\u7edf\u50cf\u662f\u4e00\u4e2a\u5b8c\u6574\u7684\u8ba1\u7b97\u673a\uff0c\u800c\u5355\u7247\u673a\u66f4\u50cf\u662f\u4e00\u4e2a\u6ca1\u6709\u5916\u8bbe\u7684\u8ba1\u7b97\u673a\u3002"),(0,o.yg)("p",null,"\u4ee5\u524d\u5355\u7247\u673a\u5305\u62ec\u7684\u4e1c\u897f\u5e76\u4e0d\u7b97\u591a\uff0c\u4e24\u8005\u7684\u786c\u4ef6\u533a\u522b\u8f83\u4e3a\u660e\u663e\u3002\u4f46\u662f\uff0c\u968f\u7740\u534a\u5bfc\u4f53\u6280\u672f\u7684\u7a81\u98de\u731b\u8fdb\uff0c\u73b0\u5728\u5404\u79cd\u786c\u4ef6\u529f\u80fd\u90fd\u80fd\u88ab\u505a\u8fdb\u5355\u7247\u673a\u4e4b\u4e2d\u3002\u6240\u4ee5\uff0c\u5d4c\u5165\u5f0f\u7cfb\u7edf\u548c\u5355\u7247\u673a\u4e4b\u95f4\u7684\u786c\u4ef6\u533a\u522b\u8d8a\u6765\u8d8a\u5c0f\uff0c\u5206\u754c\u7ebf\u4e5f\u8d8a\u6765\u8d8a\u6a21\u7cca\u3002"),(0,o.yg)("p",null,"\u4e8e\u662f\uff0c\u4eba\u4eec\u503e\u5411\u4e8e\u5728\u8f6f\u4ef6\u4e0a\u8fdb\u884c\u533a\u5206\u3002"),(0,o.yg)("p",null,"\u4ece\u8f6f\u4ef6\u4e0a\uff0c\u884c\u4e1a\u91cc\u7ecf\u5e38\u628a\u82af\u7247\u4e2d\u4e0d\u5e26MMU\uff08memory management unit\uff0c\u5185\u5b58\u7ba1\u7406\u5355\u5143\uff09\u4ece\u800c\u4e0d\u652f\u6301\u865a\u62df\u5730\u5740\uff0c\u53ea\u80fd\u88f8\u5954\u6216\u8fd0\u884cRTOS\uff08\u5b9e\u65f6\u64cd\u4f5c\u7cfb\u7edf\uff0c\u4f8b\u5982ucos\u3001\u534e\u4e3aLiteOS\u3001RT-Thread\u3001freertos\u7b49\uff09\u7684system\uff0c\u53eb\u505a\u5355\u7247\u673a\uff08\u5982STM32\u3001NXP LPC\u7cfb\u5217\u3001NXP imxRT1052\u7cfb\u5217\u7b49\uff09\u3002\u800c\u628a\u82af\u7247\u81ea\u5e26MMU\u53ef\u4ee5\u652f\u6301\u865a\u62df\u5730\u5740\uff0c\u80fd\u591f\u8dd1Linux\u3001Vxworks\u3001WinCE\u3001Android\u8fd9\u6837\u7684\u201c\u9ad8\u7ea7\u201d\u64cd\u4f5c\u7cfb\u7edf\u7684system\uff0c\u53eb\u505a\u5d4c\u5165\u5f0f\u3002"),(0,o.yg)("p",null,"\u5728\u67d0\u4e9b\u65f6\u5019\uff0c\u5355\u7247\u673a\u672c\u8eab\u5df2\u7ecf\u8db3\u591f\u5f3a\u5927\uff0c\u53ef\u4ee5\u4f5c\u4e3a\u5d4c\u5165\u5f0f\u7cfb\u7edf\u4f7f\u7528\u3002\u5b83\u7684\u6210\u672c\u66f4\u4f4e\uff0c\u5f00\u53d1\u548c\u7ef4\u62a4\u7684\u96be\u5ea6\u76f8\u5bf9\u8f83\u5c0f\uff0c\u5c24\u5176\u662f\u9488\u5bf9\u4e00\u4e9b\u9488\u5bf9\u6027\u66f4\u5f3a\u7684\u5e94\u7528\u3002\u800c\u5d4c\u5165\u5f0f\u7cfb\u7edf\u7406\u8bba\u4e0a\u6027\u80fd\u66f4\u5f3a\uff0c\u5e94\u7528\u66f4\u5e7f\u6cdb\uff0c\u4f46\u590d\u6742\u5ea6\u9ad8\uff0c\u5f00\u53d1\u96be\u5ea6\u5927\u3002"),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("a",{parentName:"li",href:"https://cloud.tencent.com/developer/article/1505486"},"\u5230\u5e95\u4ec0\u4e48\u662f\u5d4c\u5165\u5f0f\uff1f\u4ec0\u4e48\u662f\u5355\u7247\u673a\uff1f"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/15ae2b3f.bd6c06d8.js b/assets/js/15ae2b3f.fa2d1957.js similarity index 99% rename from assets/js/15ae2b3f.bd6c06d8.js rename to assets/js/15ae2b3f.fa2d1957.js index 5102ba7f7..31d1f62dd 100644 --- a/assets/js/15ae2b3f.bd6c06d8.js +++ b/assets/js/15ae2b3f.fa2d1957.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[256],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>d});var l=r(6540);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,l)}return r}function i(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(l=0;l=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var u=l.createContext({}),p=function(e){var t=l.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=p(e.components);return l.createElement(u.Provider,{value:t},e.children)},c="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return l.createElement(l.Fragment,{},t)}},g=l.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,u=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),c=p(r),g=n,d=c["".concat(u,".").concat(g)]||c[g]||y[g]||a;return r?l.createElement(d,i(i({ref:t},s),{},{components:r})):l.createElement(d,i({ref:t},s))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,i=new Array(a);i[0]=g;var o={};for(var u in t)hasOwnProperty.call(t,u)&&(o[u]=t[u]);o.originalType=e,o[c]="string"==typeof e?e:n,i[1]=o;for(var p=2;p{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>y,frontMatter:()=>a,metadata:()=>o,toc:()=>p});var l=r(8168),n=(r(6540),r(5680));const a={},i=void 0,o={unversionedId:"study/program/\u8de8\u5e73\u53f0\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u6846\u67b6",id:"study/program/\u8de8\u5e73\u53f0\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u6846\u67b6",title:"\u8de8\u5e73\u53f0\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u6846\u67b6",description:"Electron",source:"@site/docs/study/program/\u8de8\u5e73\u53f0\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u6846\u67b6.md",sourceDirName:"study/program",slug:"/study/program/\u8de8\u5e73\u53f0\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u6846\u67b6",permalink:"/docs/study/program/\u8de8\u5e73\u53f0\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u6846\u67b6",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u7f16\u8bd1\u5668",permalink:"/docs/study/program/\u7f16\u8bd1\u5668"},next:{title:"\u6982\u8ff0",permalink:"/docs/study/devops/"}},u={},p=[{value:"Electron",id:"electron",level:3},{value:"TAURI",id:"tauri",level:3},{value:"Flutter",id:"flutter",level:3},{value:"NW.js",id:"nwjs",level:3},{value:"Neutralinojs",id:"neutralinojs",level:3},{value:"WAILS",id:"wails",level:3},{value:".NET MAUI",id:"net-maui",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],s={toc:p},c="wrapper";function y(e){let{components:t,...r}=e;return(0,n.yg)(c,(0,l.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,n.yg)("h3",{id:"electron"},"Electron"),(0,n.yg)("p",null,"Build cross-platform desktop apps with JavaScript, HTML, and CSS"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("a",{parentName:"li",href:"https://www.electronjs.org/zh/"},"\u5b98\u65b9\u7f51\u7ad9-Electron"))),(0,n.yg)("h3",{id:"tauri"},"TAURI"),(0,n.yg)("p",null,"\u6784\u5efa\u8de8\u5e73\u53f0\u7684\u5feb\u901f\u3001\u5b89\u5168\u3001\u524d\u7aef\u9694\u79bb\u5e94\u7528"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("a",{parentName:"li",href:"https://tauri.app/zh-cn/"},"\u5b98\u65b9\u7f51\u7ad9-TAURI")),(0,n.yg)("li",{parentName:"ul"},"\u6253\u5305\u5927\u5c0f:\u4f7f\u7528\u7cfb\u7edf\u81ea\u5e26\u7684\u7f51\u9875\u6e32\u67d3\u5668\uff0cTauri \u5e94\u7528\u7684\u5927\u5c0f\u53ef\u6253\u5305\u5230 600 KB \u4ee5\u4e0b\uff01"),(0,n.yg)("li",{parentName:"ul"},"\u8de8\u5e73\u53f0:\u6784\u5efa\u652f\u6301\u6240\u6709\u4e3b\u6d41\u684c\u9762\u5e73\u53f0\uff08\u79fb\u52a8\u7aef\u5373\u5c06\u63a8\u51fa\uff09\u7684\u4e8c\u8fdb\u5236\u6253\u5305\u6587\u4ef6\u3002"),(0,n.yg)("li",{parentName:"ul"},"\u57fa\u4e8e Rust \u5f00\u53d1:\u6027\u80fd\u53ca\u5b89\u5168\u81f3\u4e0a\u7684 Rust \u662f\u6b21\u65f6\u4ee3\u5e94\u7528\u5f00\u53d1\u9996\u9009\u3002"),(0,n.yg)("li",{parentName:"ul"},"\u76ee\u524d\u8fd8\u5728\u5feb\u901f\u53d1\u5c55\u4e2d-\uff082023 \u5e74\uff09")),(0,n.yg)("h3",{id:"flutter"},"Flutter"),(0,n.yg)("p",null,"\u4e3a\u6240\u6709\u5c4f\u5e55\u521b\u9020\u7cbe\u5f69"),(0,n.yg)("p",null,"Flutter \u4e3a\u8f6f\u4ef6\u5f00\u53d1\u884c\u4e1a\u5e26\u6765\u4e86\u9769\u65b0\uff1a\u53ea\u8981\u4e00\u5957\u4ee3\u7801\u5e93\uff0c\u5373\u53ef\u6784\u5efa\u3001\u6d4b\u8bd5\u548c\u53d1\u5e03\u9002\u7528\u4e8e\u79fb\u52a8\u3001Web\u3001\u684c\u9762\u548c\u5d4c\u5165\u5f0f\u5e73\u53f0\u7684\u7cbe\u7f8e\u5e94\u7528\u3002"),(0,n.yg)("p",null,"Flutter \u662f Google \u5f00\u6e90\u7684\u5e94\u7528\u5f00\u53d1\u6846\u67b6\uff0c\u4ec5\u901a\u8fc7\u4e00\u5957\u4ee3\u7801\u5e93\uff0c\u5c31\u80fd\u6784\u5efa\u7cbe\u7f8e\u7684\u3001\u539f\u751f\u5e73\u53f0\u7f16\u8bd1\u7684\u591a\u5e73\u53f0\u5e94\u7528\u3002"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("a",{parentName:"li",href:"https://flutter.cn/index"},"\u5b98\u65b9\u7f51\u7ad9-Flutter"))),(0,n.yg)("h3",{id:"nwjs"},"NW.js"),(0,n.yg)("p",null,"NW.js (previously known as node-webkit) lets you call all Node.js modules directly from DOM and enables a new way of writing applications with all Web technologies."),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("a",{parentName:"li",href:"https://nwjs.io/"},"\u5b98\u65b9\u7f51\u7ad9"))),(0,n.yg)("h3",{id:"neutralinojs"},"Neutralinojs"),(0,n.yg)("p",null,"Build lightweight cross-platform desktop apps with JavaScript, HTML, and CSS"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("a",{parentName:"li",href:"https://neutralino.js.org/"},"\u5b98\u65b9\u7f51\u7ad9-Neutralinojs"))),(0,n.yg)("h3",{id:"wails"},"WAILS"),(0,n.yg)("p",null,"\u4f7f\u7528 Go \u6784\u5efa\u6f02\u4eae\u7684\u8de8\u5e73\u53f0\u5e94\u7528\u7a0b\u5e8f"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("a",{parentName:"li",href:"https://wails.io/zh-Hans/"},"\u5b98\u65b9\u7f51\u7ad9-WAILS"))),(0,n.yg)("p",null,"\u5728\u4e00\u4e2a\u6846\u67b6\u4e2d\u751f\u6210\u672c\u673a\u3001\u8de8\u5e73\u53f0\u684c\u9762\u548c\u79fb\u52a8\u5e94\u7528\u3002"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("a",{parentName:"li",href:"https://dotnet.microsoft.com/zh-cn/apps/maui"},"\u5b98\u65b9\u7f51\u7ad9-.NET MAUI"))),(0,n.yg)("h3",{id:"net-maui"},".NET MAUI"),(0,n.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/596782927"},"2023 \u5e74\u6700\u5168\u76d8\u70b9 | 16 \u6b3e\u8de8\u5e73\u53f0\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u6846\u67b6")),(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("a",{parentName:"li",href:"https://github.com/Elanis/web-to-desktop-framework-comparison"},"Neutralinojs vs. Electron, NW.JS, Tauri, NodeGui, Flutter, .Net MAUI, Wails"),(0,n.yg)("ul",{parentName:"li"},(0,n.yg)("li",{parentName:"ul"},"\u770b Github Stars \u5c31\u77e5\u9053\u6d41\u7a0b\u7a0b\u5ea6\u4e86")))))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[256],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>d});var l=r(6540);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,l)}return r}function i(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(l=0;l=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var u=l.createContext({}),p=function(e){var t=l.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=p(e.components);return l.createElement(u.Provider,{value:t},e.children)},c="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return l.createElement(l.Fragment,{},t)}},g=l.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,u=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),c=p(r),g=n,d=c["".concat(u,".").concat(g)]||c[g]||y[g]||a;return r?l.createElement(d,i(i({ref:t},s),{},{components:r})):l.createElement(d,i({ref:t},s))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,i=new Array(a);i[0]=g;var o={};for(var u in t)hasOwnProperty.call(t,u)&&(o[u]=t[u]);o.originalType=e,o[c]="string"==typeof e?e:n,i[1]=o;for(var p=2;p{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>y,frontMatter:()=>a,metadata:()=>o,toc:()=>p});var l=r(8168),n=(r(6540),r(5680));const a={},i=void 0,o={unversionedId:"study/program/\u8de8\u5e73\u53f0\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u6846\u67b6",id:"study/program/\u8de8\u5e73\u53f0\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u6846\u67b6",title:"\u8de8\u5e73\u53f0\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u6846\u67b6",description:"Electron",source:"@site/docs/study/program/\u8de8\u5e73\u53f0\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u6846\u67b6.md",sourceDirName:"study/program",slug:"/study/program/\u8de8\u5e73\u53f0\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u6846\u67b6",permalink:"/docs/study/program/\u8de8\u5e73\u53f0\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u6846\u67b6",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u7f16\u8bd1\u5668",permalink:"/docs/study/program/\u7f16\u8bd1\u5668"},next:{title:"\u6982\u8ff0",permalink:"/docs/study/devops/"}},u={},p=[{value:"Electron",id:"electron",level:3},{value:"TAURI",id:"tauri",level:3},{value:"Flutter",id:"flutter",level:3},{value:"NW.js",id:"nwjs",level:3},{value:"Neutralinojs",id:"neutralinojs",level:3},{value:"WAILS",id:"wails",level:3},{value:".NET MAUI",id:"net-maui",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],s={toc:p},c="wrapper";function y(e){let{components:t,...r}=e;return(0,n.yg)(c,(0,l.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,n.yg)("h3",{id:"electron"},"Electron"),(0,n.yg)("p",null,"Build cross-platform desktop apps with JavaScript, HTML, and CSS"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("a",{parentName:"li",href:"https://www.electronjs.org/zh/"},"\u5b98\u65b9\u7f51\u7ad9-Electron"))),(0,n.yg)("h3",{id:"tauri"},"TAURI"),(0,n.yg)("p",null,"\u6784\u5efa\u8de8\u5e73\u53f0\u7684\u5feb\u901f\u3001\u5b89\u5168\u3001\u524d\u7aef\u9694\u79bb\u5e94\u7528"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("a",{parentName:"li",href:"https://tauri.app/zh-cn/"},"\u5b98\u65b9\u7f51\u7ad9-TAURI")),(0,n.yg)("li",{parentName:"ul"},"\u6253\u5305\u5927\u5c0f:\u4f7f\u7528\u7cfb\u7edf\u81ea\u5e26\u7684\u7f51\u9875\u6e32\u67d3\u5668\uff0cTauri \u5e94\u7528\u7684\u5927\u5c0f\u53ef\u6253\u5305\u5230 600 KB \u4ee5\u4e0b\uff01"),(0,n.yg)("li",{parentName:"ul"},"\u8de8\u5e73\u53f0:\u6784\u5efa\u652f\u6301\u6240\u6709\u4e3b\u6d41\u684c\u9762\u5e73\u53f0\uff08\u79fb\u52a8\u7aef\u5373\u5c06\u63a8\u51fa\uff09\u7684\u4e8c\u8fdb\u5236\u6253\u5305\u6587\u4ef6\u3002"),(0,n.yg)("li",{parentName:"ul"},"\u57fa\u4e8e Rust \u5f00\u53d1:\u6027\u80fd\u53ca\u5b89\u5168\u81f3\u4e0a\u7684 Rust \u662f\u6b21\u65f6\u4ee3\u5e94\u7528\u5f00\u53d1\u9996\u9009\u3002"),(0,n.yg)("li",{parentName:"ul"},"\u76ee\u524d\u8fd8\u5728\u5feb\u901f\u53d1\u5c55\u4e2d-\uff082023 \u5e74\uff09")),(0,n.yg)("h3",{id:"flutter"},"Flutter"),(0,n.yg)("p",null,"\u4e3a\u6240\u6709\u5c4f\u5e55\u521b\u9020\u7cbe\u5f69"),(0,n.yg)("p",null,"Flutter \u4e3a\u8f6f\u4ef6\u5f00\u53d1\u884c\u4e1a\u5e26\u6765\u4e86\u9769\u65b0\uff1a\u53ea\u8981\u4e00\u5957\u4ee3\u7801\u5e93\uff0c\u5373\u53ef\u6784\u5efa\u3001\u6d4b\u8bd5\u548c\u53d1\u5e03\u9002\u7528\u4e8e\u79fb\u52a8\u3001Web\u3001\u684c\u9762\u548c\u5d4c\u5165\u5f0f\u5e73\u53f0\u7684\u7cbe\u7f8e\u5e94\u7528\u3002"),(0,n.yg)("p",null,"Flutter \u662f Google \u5f00\u6e90\u7684\u5e94\u7528\u5f00\u53d1\u6846\u67b6\uff0c\u4ec5\u901a\u8fc7\u4e00\u5957\u4ee3\u7801\u5e93\uff0c\u5c31\u80fd\u6784\u5efa\u7cbe\u7f8e\u7684\u3001\u539f\u751f\u5e73\u53f0\u7f16\u8bd1\u7684\u591a\u5e73\u53f0\u5e94\u7528\u3002"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("a",{parentName:"li",href:"https://flutter.cn/index"},"\u5b98\u65b9\u7f51\u7ad9-Flutter"))),(0,n.yg)("h3",{id:"nwjs"},"NW.js"),(0,n.yg)("p",null,"NW.js (previously known as node-webkit) lets you call all Node.js modules directly from DOM and enables a new way of writing applications with all Web technologies."),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("a",{parentName:"li",href:"https://nwjs.io/"},"\u5b98\u65b9\u7f51\u7ad9"))),(0,n.yg)("h3",{id:"neutralinojs"},"Neutralinojs"),(0,n.yg)("p",null,"Build lightweight cross-platform desktop apps with JavaScript, HTML, and CSS"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("a",{parentName:"li",href:"https://neutralino.js.org/"},"\u5b98\u65b9\u7f51\u7ad9-Neutralinojs"))),(0,n.yg)("h3",{id:"wails"},"WAILS"),(0,n.yg)("p",null,"\u4f7f\u7528 Go \u6784\u5efa\u6f02\u4eae\u7684\u8de8\u5e73\u53f0\u5e94\u7528\u7a0b\u5e8f"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("a",{parentName:"li",href:"https://wails.io/zh-Hans/"},"\u5b98\u65b9\u7f51\u7ad9-WAILS"))),(0,n.yg)("p",null,"\u5728\u4e00\u4e2a\u6846\u67b6\u4e2d\u751f\u6210\u672c\u673a\u3001\u8de8\u5e73\u53f0\u684c\u9762\u548c\u79fb\u52a8\u5e94\u7528\u3002"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("a",{parentName:"li",href:"https://dotnet.microsoft.com/zh-cn/apps/maui"},"\u5b98\u65b9\u7f51\u7ad9-.NET MAUI"))),(0,n.yg)("h3",{id:"net-maui"},".NET MAUI"),(0,n.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/596782927"},"2023 \u5e74\u6700\u5168\u76d8\u70b9 | 16 \u6b3e\u8de8\u5e73\u53f0\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u6846\u67b6")),(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("a",{parentName:"li",href:"https://github.com/Elanis/web-to-desktop-framework-comparison"},"Neutralinojs vs. Electron, NW.JS, Tauri, NodeGui, Flutter, .Net MAUI, Wails"),(0,n.yg)("ul",{parentName:"li"},(0,n.yg)("li",{parentName:"ul"},"\u770b Github Stars \u5c31\u77e5\u9053\u6d41\u7a0b\u7a0b\u5ea6\u4e86")))))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1830dc74.d556ae5c.js b/assets/js/1830dc74.c0f37f30.js similarity index 98% rename from assets/js/1830dc74.d556ae5c.js rename to assets/js/1830dc74.c0f37f30.js index 5b88cfcaf..fa304cc20 100644 --- a/assets/js/1830dc74.d556ae5c.js +++ b/assets/js/1830dc74.c0f37f30.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3751],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>f});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var u=n.createContext({}),p=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},s=function(e){var t=p(e.components);return n.createElement(u.Provider,{value:t},e.children)},l="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,u=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),l=p(r),y=a,f=l["".concat(u,".").concat(y)]||l[y]||d[y]||o;return r?n.createElement(f,c(c({ref:t},s),{},{components:r})):n.createElement(f,c({ref:t},s))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,c=new Array(o);c[0]=y;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[l]="string"==typeof e?e:a,c[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>c,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var n=r(8168),a=(r(6540),r(5680));const o={},c=void 0,i={unversionedId:"study/db/SQL/MariaDB",id:"study/db/SQL/MariaDB",title:"MariaDB",description:"MariaDB\u6570\u636e\u5e93\u7ba1\u7406\u7cfb\u7edf\u662fMySQL\u7684\u4e00\u4e2a\u5206\u652f\uff0c\u4e3b\u8981\u7531\u5f00\u6e90\u793e\u533a\u5728\u7ef4\u62a4\uff0c\u91c7\u7528GPL\u6388\u6743\u8bb8\u53ef\u3002\u5f00\u53d1\u8fd9\u4e2a\u5206\u652f\u7684\u539f\u56e0\u4e4b\u4e00\u662f\uff1a\u7532\u9aa8\u6587\u516c\u53f8\u6536\u8d2d\u4e86MySQL\u540e\uff0c\u6709\u5c06MySQL\u95ed\u6e90\u7684\u6f5c\u5728\u98ce\u9669\uff0c\u56e0\u6b64\u793e\u533a\u91c7\u7528\u5206\u652f\u7684\u65b9\u5f0f\u6765\u907f\u5f00\u8fd9\u4e2a\u98ce\u9669\u3002",source:"@site/docs/study/db/SQL/MariaDB.md",sourceDirName:"study/db/SQL",slug:"/study/db/SQL/MariaDB",permalink:"/docs/study/db/SQL/MariaDB",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u7efc\u5408\u6982\u8ff0",permalink:"/docs/study/db/SQL/\u7efc\u5408\u6982\u8ff0"},next:{title:"MySQL \u7b14\u8bb0",permalink:"/docs/study/db/SQL/MySQL-\u7b14\u8bb0"}},u={},p=[],s={toc:p},l="wrapper";function d(e){let{components:t,...r}=e;return(0,a.yg)(l,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("p",null,"MariaDB\u6570\u636e\u5e93\u7ba1\u7406\u7cfb\u7edf\u662fMySQL\u7684\u4e00\u4e2a\u5206\u652f\uff0c\u4e3b\u8981\u7531\u5f00\u6e90\u793e\u533a\u5728\u7ef4\u62a4\uff0c\u91c7\u7528GPL\u6388\u6743\u8bb8\u53ef\u3002\u5f00\u53d1\u8fd9\u4e2a\u5206\u652f\u7684\u539f\u56e0\u4e4b\u4e00\u662f\uff1a\u7532\u9aa8\u6587\u516c\u53f8\u6536\u8d2d\u4e86MySQL\u540e\uff0c\u6709\u5c06MySQL\u95ed\u6e90\u7684\u6f5c\u5728\u98ce\u9669\uff0c\u56e0\u6b64\u793e\u533a\u91c7\u7528\u5206\u652f\u7684\u65b9\u5f0f\u6765\u907f\u5f00\u8fd9\u4e2a\u98ce\u9669\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3751],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>f});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var u=n.createContext({}),p=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},s=function(e){var t=p(e.components);return n.createElement(u.Provider,{value:t},e.children)},l="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,u=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),l=p(r),y=a,f=l["".concat(u,".").concat(y)]||l[y]||d[y]||o;return r?n.createElement(f,c(c({ref:t},s),{},{components:r})):n.createElement(f,c({ref:t},s))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,c=new Array(o);c[0]=y;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[l]="string"==typeof e?e:a,c[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>c,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var n=r(8168),a=(r(6540),r(5680));const o={},c=void 0,i={unversionedId:"study/db/SQL/MariaDB",id:"study/db/SQL/MariaDB",title:"MariaDB",description:"MariaDB\u6570\u636e\u5e93\u7ba1\u7406\u7cfb\u7edf\u662fMySQL\u7684\u4e00\u4e2a\u5206\u652f\uff0c\u4e3b\u8981\u7531\u5f00\u6e90\u793e\u533a\u5728\u7ef4\u62a4\uff0c\u91c7\u7528GPL\u6388\u6743\u8bb8\u53ef\u3002\u5f00\u53d1\u8fd9\u4e2a\u5206\u652f\u7684\u539f\u56e0\u4e4b\u4e00\u662f\uff1a\u7532\u9aa8\u6587\u516c\u53f8\u6536\u8d2d\u4e86MySQL\u540e\uff0c\u6709\u5c06MySQL\u95ed\u6e90\u7684\u6f5c\u5728\u98ce\u9669\uff0c\u56e0\u6b64\u793e\u533a\u91c7\u7528\u5206\u652f\u7684\u65b9\u5f0f\u6765\u907f\u5f00\u8fd9\u4e2a\u98ce\u9669\u3002",source:"@site/docs/study/db/SQL/MariaDB.md",sourceDirName:"study/db/SQL",slug:"/study/db/SQL/MariaDB",permalink:"/docs/study/db/SQL/MariaDB",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u7efc\u5408\u6982\u8ff0",permalink:"/docs/study/db/SQL/\u7efc\u5408\u6982\u8ff0"},next:{title:"MySQL \u7b14\u8bb0",permalink:"/docs/study/db/SQL/MySQL-\u7b14\u8bb0"}},u={},p=[],s={toc:p},l="wrapper";function d(e){let{components:t,...r}=e;return(0,a.yg)(l,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("p",null,"MariaDB\u6570\u636e\u5e93\u7ba1\u7406\u7cfb\u7edf\u662fMySQL\u7684\u4e00\u4e2a\u5206\u652f\uff0c\u4e3b\u8981\u7531\u5f00\u6e90\u793e\u533a\u5728\u7ef4\u62a4\uff0c\u91c7\u7528GPL\u6388\u6743\u8bb8\u53ef\u3002\u5f00\u53d1\u8fd9\u4e2a\u5206\u652f\u7684\u539f\u56e0\u4e4b\u4e00\u662f\uff1a\u7532\u9aa8\u6587\u516c\u53f8\u6536\u8d2d\u4e86MySQL\u540e\uff0c\u6709\u5c06MySQL\u95ed\u6e90\u7684\u6f5c\u5728\u98ce\u9669\uff0c\u56e0\u6b64\u793e\u533a\u91c7\u7528\u5206\u652f\u7684\u65b9\u5f0f\u6765\u907f\u5f00\u8fd9\u4e2a\u98ce\u9669\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/18536aaa.3e9101c2.js b/assets/js/18536aaa.72efd3c2.js similarity index 99% rename from assets/js/18536aaa.3e9101c2.js rename to assets/js/18536aaa.72efd3c2.js index 438de9ebc..5873d5c12 100644 --- a/assets/js/18536aaa.3e9101c2.js +++ b/assets/js/18536aaa.72efd3c2.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6393],{5680:(e,r,o)=>{o.d(r,{xA:()=>d,yg:()=>u});var t=o(6540);function n(e,r,o){return r in e?Object.defineProperty(e,r,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[r]=o,e}function l(e,r){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r&&(t=t.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),o.push.apply(o,t)}return o}function a(e){for(var r=1;r=0||(n[o]=e[o]);return n}(e,r);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}var p=t.createContext({}),i=function(e){var r=t.useContext(p),o=r;return e&&(o="function"==typeof e?e(r):a(a({},r),e)),o},d=function(e){var r=i(e.components);return t.createElement(p.Provider,{value:r},e.children)},s="mdxType",m={inlineCode:"code",wrapper:function(e){var r=e.children;return t.createElement(t.Fragment,{},r)}},y=t.forwardRef((function(e,r){var o=e.components,n=e.mdxType,l=e.originalType,p=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),s=i(o),y=n,u=s["".concat(p,".").concat(y)]||s[y]||m[y]||l;return o?t.createElement(u,a(a({ref:r},d),{},{components:o})):t.createElement(u,a({ref:r},d))}));function u(e,r){var o=arguments,n=r&&r.mdxType;if("string"==typeof e||n){var l=o.length,a=new Array(l);a[0]=y;var c={};for(var p in r)hasOwnProperty.call(r,p)&&(c[p]=r[p]);c.originalType=e,c[s]="string"==typeof e?e:n,a[1]=c;for(var i=2;i{o.r(r),o.d(r,{assets:()=>p,contentTitle:()=>a,default:()=>m,frontMatter:()=>l,metadata:()=>c,toc:()=>i});var t=o(8168),n=(o(6540),o(5680));const l={},a="Docker Compose",c={unversionedId:"study/docker/Docker-compose",id:"study/docker/Docker-compose",title:"Docker Compose",description:"\u5b9a\u4e49",source:"@site/docs/study/docker/Docker-compose.md",sourceDirName:"study/docker",slug:"/study/docker/Docker-compose",permalink:"/docs/study/docker/Docker-compose",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u6982\u8ff0",permalink:"/docs/study/docker/"},next:{title:"Docker Swarm",permalink:"/docs/study/docker/Docker-swarm"}},p={},i=[{value:"\u5b9a\u4e49",id:"\u5b9a\u4e49",level:3},{value:"\u4e3a\u4ec0\u4e48\u8981\u7528 Docker",id:"\u4e3a\u4ec0\u4e48\u8981\u7528-docker",level:3},{value:"Docker \u57fa\u672c\u7ec4\u6210",id:"docker-\u57fa\u672c\u7ec4\u6210",level:3},{value:"\u5e38\u7528\u547d\u4ee4",id:"\u5e38\u7528\u547d\u4ee4",level:3},{value:"Docker Compose",id:"docker-compose-1",level:3},{value:"\u5b89\u88c5",id:"\u5b89\u88c5",level:4},{value:"\u5e38\u7528\u547d\u4ee4",id:"\u5e38\u7528\u547d\u4ee4-1",level:4},{value:"\u95ee\u9898\u5904\u7406",id:"\u95ee\u9898\u5904\u7406",level:3}],d={toc:i},s="wrapper";function m(e){let{components:r,...o}=e;return(0,n.yg)(s,(0,t.A)({},d,o,{components:r,mdxType:"MDXLayout"}),(0,n.yg)("h1",{id:"docker-compose"},"Docker Compose"),(0,n.yg)("h3",{id:"\u5b9a\u4e49"},"\u5b9a\u4e49"),(0,n.yg)("p",null,"Docker \u662f\u4e00\u4e2a\u5f00\u6e90\u7684\u5bb9\u5668\u5f15\u64ce\uff0c\u5b83\u6709\u52a9\u4e8e\u66f4\u5feb\u5730\u4ea4\u4ed8\u5e94\u7528\u3002\u65b9\u4fbf\u5feb\u6377\u5df2\u7ecf\u662f Docker \u7684\u6700\u5927\u4f18\u52bf\uff0c\u8fc7\u53bb\u9700\u8981\u7528\u6570\u5929\u4e43\u81f3\u6570\u5468\u7684\u4efb\u52a1\uff0c\u5728 Docker \u5bb9\u5668\u7684\u5904\u7406\u4e0b\uff0c\u53ea\u9700\u8981\u6570\u79d2\u5c31\u80fd\u5b8c\u6210\u3002"),(0,n.yg)("h3",{id:"\u4e3a\u4ec0\u4e48\u8981\u7528-docker"},"\u4e3a\u4ec0\u4e48\u8981\u7528 Docker"),(0,n.yg)("ol",null,(0,n.yg)("li",{parentName:"ol"},"\u4e00\u81f4\u7684\u8fd0\u884c\u73af\u5883\uff1aDocker \u7684\u955c\u50cf\u63d0\u4f9b\u4e86\u9664\u5185\u6838\u5916\u5b8c\u6574\u7684\u8fd0\u884c\u65f6\u73af\u5883\uff0c\u786e\u4fdd\u4e86\u5e94\u7528\u8fd0\u884c\u73af\u5883\u4e00\u81f4\u6027\u3002"),(0,n.yg)("li",{parentName:"ol"},"\u6301\u7eed\u4ea4\u4ed8\u548c\u90e8\u7f72\uff1a\u4f7f\u7528 Docker \u53ef\u4ee5\u901a\u8fc7\u5b9a\u5236\u5e94\u7528\u955c\u50cf\u6765\u5b9e\u73b0\u6301\u7eed\u96c6\u6210\u3001\u6301\u7eed\u4ea4\u4ed8\u3001\u90e8\u7f72\u3002\u4e00\u6b21\u521b\u5efa\u6216\u914d\u7f6e\uff0c\u53ef\u4ee5\u5728\u4efb\u610f\u5730\u65b9\u6b63\u5e38\u8fd0\u884c\u3002"),(0,n.yg)("li",{parentName:"ol"},"\u66f4\u8f7b\u677e\u7684\u8fc1\u79fb\uff1aDocker \u786e\u4fdd\u4e86\u6267\u884c\u73af\u5883\u7684\u4e00\u81f4\u6027\uff0c\u4f7f\u5f97\u5e94\u7528\u7684\u8fc1\u79fb\u66f4\u52a0\u5bb9\u6613\u3002Docker \u53ef\u4ee5\u5728\u5f88\u591a\u5e73\u53f0\u4e0a\u8fd0\u884c\uff0c\u65e0\u8bba\u662f\u7269\u7406\u673a\u3001\u865a\u62df\u673a\u3001\u516c\u6709\u4e91\u3001\u79c1\u6709\u4e91\uff0c\u751a\u81f3\u662f\u7b14\u8bb0\u672c\uff0c\u5176\u8fd0\u884c\u7ed3\u679c\u662f\u4e00\u81f4\u7684\u3002"),(0,n.yg)("li",{parentName:"ol"},"\u66f4\u5feb\u901f\u7684\u542f\u52a8\u65f6\u95f4\uff1aDocker \u5bb9\u5668\u5e94\u7528\uff0c\u7531\u4e8e\u76f4\u63a5\u8fd0\u884c\u4e8e\u5bbf\u4e3b\u5185\u6838\uff0c\u65e0\u9700\u542f\u52a8\u5b8c\u6574\u7684\u64cd\u4f5c\u7cfb\u7edf\uff0c\u56e0\u6b64\u53ef\u4ee5\u505a\u5230\u79d2\u7ea7\u3001\u751a\u81f3\u6beb\u79d2\u7ea7\u7684\u542f\u52a8\u65f6\u95f4\u3002"),(0,n.yg)("li",{parentName:"ol"},"\u66f4\u9ad8\u6548\u7684\u5229\u7528\u7cfb\u7edf\u8d44\u6e90\uff1a\u7531\u4e8e\u5bb9\u5668\u4e0d\u9700\u8981\u8fdb\u884c\u786c\u4ef6\u865a\u62df\u4ee5\u53ca\u8fd0\u884c\u5b8c\u6574\u64cd\u4f5c\u7cfb\u7edf\u7b49\u989d\u5916\u5f00\u9500\uff0cDocker \u5bf9\u7cfb\u7edf\u8d44\u6e90\u7684\u5229\u7528\u7387\u66f4\u9ad8\u3002")),(0,n.yg)("h3",{id:"docker-\u57fa\u672c\u7ec4\u6210"},"Docker \u57fa\u672c\u7ec4\u6210"),(0,n.yg)("ol",null,(0,n.yg)("li",{parentName:"ol"},"\u955c\u50cf(Images)"),(0,n.yg)("li",{parentName:"ol"},"\u5bb9\u5668(Container)"),(0,n.yg)("li",{parentName:"ol"},"\u955c\u50cf\u4ed3\u5e93(Registry)")),(0,n.yg)("h3",{id:"\u5e38\u7528\u547d\u4ee4"},"\u5e38\u7528\u547d\u4ee4"),(0,n.yg)("ol",null,(0,n.yg)("li",{parentName:"ol"},"docker ps"),(0,n.yg)("li",{parentName:"ol"},"docker ps -a"),(0,n.yg)("li",{parentName:"ol"},"docker start xxx"),(0,n.yg)("li",{parentName:"ol"},"dcoker stop xxx"),(0,n.yg)("li",{parentName:"ol"},"docker rm xxx"),(0,n.yg)("li",{parentName:"ol"},"docker rmi xxx"),(0,n.yg)("li",{parentName:"ol"},"docker save -o ./xxx.tar xxx \u5bfc\u51fa\u955c\u50cf"),(0,n.yg)("li",{parentName:"ol"},"docker load -i xxx.tar \u5bfc\u5165\u955c\u50cf"),(0,n.yg)("li",{parentName:"ol"},"docker logs"),(0,n.yg)("li",{parentName:"ol"},"docker inspect xxx \u67e5\u770b\u5bb9\u5668\u8be6\u7ec6\u4fe1\u606f"),(0,n.yg)("li",{parentName:"ol"},"docker port xxx \u5217\u51fa\u6216\u6307\u5b9a\u5bb9\u5668\u7aef\u53e3\u6620\u5c04"),(0,n.yg)("li",{parentName:"ol"},"docker cp ","[dir]"," xxx:","[dir]"),(0,n.yg)("li",{parentName:"ol"},"docker diff xxx \u67e5\u770b\u5bb9\u5668\u548c\u955c\u50cf\u7684\u5dee\u5f02"),(0,n.yg)("li",{parentName:"ol"},"docker kill \u5bb9\u5668 id \u5f3a\u5236\u505c\u6b62\u5bb9\u5668"),(0,n.yg)("li",{parentName:"ol"},"docker container logs \u5bb9\u5668 id\uff1a\u67e5\u770b\u5bb9\u5668\u65e5\u5fd7"),(0,n.yg)("li",{parentName:"ol"},"docker top \u5bb9\u5668 id\uff1a\u67e5\u770b\u5bb9\u5668\u91cc\u7684\u8fdb\u7a0b")),(0,n.yg)("h3",{id:"docker-compose-1"},"Docker Compose"),(0,n.yg)("p",null,"Docker Compose \u662f docker \u63d0\u4f9b\u7684\u4e00\u4e2a\u547d\u4ee4\u884c\u5de5\u5177\uff0c\u7528\u6765\u5b9a\u4e49\u548c\u8fd0\u884c\u7531\u591a\u4e2a\u5bb9\u5668\u7ec4\u6210\u7684\u5e94\u7528\u3002\u4f7f\u7528 compose\uff0c\u6211\u4eec\u53ef\u4ee5\u901a\u8fc7 YAML \u6587\u4ef6\u58f0\u660e\u5f0f\u7684\u5b9a\u4e49\u5e94\u7528\u7a0b\u5e8f\u7684\u5404\u4e2a\u670d\u52a1\uff0c\u5e76\u7531\u5355\u4e2a\u547d\u4ee4\u5b8c\u6210\u5e94\u7528\u7684\u521b\u5efa\u548c\u542f\u52a8\u3002"),(0,n.yg)("h4",{id:"\u5b89\u88c5"},"\u5b89\u88c5"),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-shell"},"#\u9700\u8981\u5148\u628apython3\u548cpip3\u5b89\u88c5\u597d\npip3 install docker-compose\ndocker-compose --version\n")),(0,n.yg)("h4",{id:"\u5e38\u7528\u547d\u4ee4-1"},"\u5e38\u7528\u547d\u4ee4"),(0,n.yg)("ol",null,(0,n.yg)("li",{parentName:"ol"},"docker-compose up -d \xa0 \u540e\u53f0\u542f\u52a8"),(0,n.yg)("li",{parentName:"ol"},"docker-compose ps/stop/start/restart/rm"),(0,n.yg)("li",{parentName:"ol"},"docker-compose scale service=num\xa0 \u8bbe\u7f6e\u6307\u5b9a\u670d\u52a1\u8fd0\u884c\u7684\u5bb9\u5668\u4e2a\u6570\u3002\u901a\u8fc7 service=num \u7684\u53c2\u6570\u6765\u8bbe\u7f6e\u6570\u91cf")),(0,n.yg)("h3",{id:"\u95ee\u9898\u5904\u7406"},"\u95ee\u9898\u5904\u7406"),(0,n.yg)("ol",null,(0,n.yg)("li",{parentName:"ol"},(0,n.yg)("a",{parentName:"li",href:"https://blog.csdn.net/sangfei18829896970/article/details/97754635"},"python \u5b89\u88c5 pandas \u5e93\u51fa\u73b0 No module named \u2018","_","lzma\u2019")),(0,n.yg)("li",{parentName:"ol"},(0,n.yg)("a",{parentName:"li",href:"https://blog.51cto.com/13362895/2130375"},"docker \u4e4b\u7f51\u7edc\u914d\u7f6e")),(0,n.yg)("li",{parentName:"ol"},(0,n.yg)("a",{parentName:"li",href:"https://www.cnblogs.com/minseo/p/11548177.html"},"Docker \u5165\u95e8\u4e4b docker-compose"))))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6393],{5680:(e,r,o)=>{o.d(r,{xA:()=>d,yg:()=>u});var t=o(6540);function n(e,r,o){return r in e?Object.defineProperty(e,r,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[r]=o,e}function l(e,r){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r&&(t=t.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),o.push.apply(o,t)}return o}function a(e){for(var r=1;r=0||(n[o]=e[o]);return n}(e,r);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}var p=t.createContext({}),i=function(e){var r=t.useContext(p),o=r;return e&&(o="function"==typeof e?e(r):a(a({},r),e)),o},d=function(e){var r=i(e.components);return t.createElement(p.Provider,{value:r},e.children)},s="mdxType",m={inlineCode:"code",wrapper:function(e){var r=e.children;return t.createElement(t.Fragment,{},r)}},y=t.forwardRef((function(e,r){var o=e.components,n=e.mdxType,l=e.originalType,p=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),s=i(o),y=n,u=s["".concat(p,".").concat(y)]||s[y]||m[y]||l;return o?t.createElement(u,a(a({ref:r},d),{},{components:o})):t.createElement(u,a({ref:r},d))}));function u(e,r){var o=arguments,n=r&&r.mdxType;if("string"==typeof e||n){var l=o.length,a=new Array(l);a[0]=y;var c={};for(var p in r)hasOwnProperty.call(r,p)&&(c[p]=r[p]);c.originalType=e,c[s]="string"==typeof e?e:n,a[1]=c;for(var i=2;i{o.r(r),o.d(r,{assets:()=>p,contentTitle:()=>a,default:()=>m,frontMatter:()=>l,metadata:()=>c,toc:()=>i});var t=o(8168),n=(o(6540),o(5680));const l={},a="Docker Compose",c={unversionedId:"study/docker/Docker-compose",id:"study/docker/Docker-compose",title:"Docker Compose",description:"\u5b9a\u4e49",source:"@site/docs/study/docker/Docker-compose.md",sourceDirName:"study/docker",slug:"/study/docker/Docker-compose",permalink:"/docs/study/docker/Docker-compose",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u6982\u8ff0",permalink:"/docs/study/docker/"},next:{title:"Docker Swarm",permalink:"/docs/study/docker/Docker-swarm"}},p={},i=[{value:"\u5b9a\u4e49",id:"\u5b9a\u4e49",level:3},{value:"\u4e3a\u4ec0\u4e48\u8981\u7528 Docker",id:"\u4e3a\u4ec0\u4e48\u8981\u7528-docker",level:3},{value:"Docker \u57fa\u672c\u7ec4\u6210",id:"docker-\u57fa\u672c\u7ec4\u6210",level:3},{value:"\u5e38\u7528\u547d\u4ee4",id:"\u5e38\u7528\u547d\u4ee4",level:3},{value:"Docker Compose",id:"docker-compose-1",level:3},{value:"\u5b89\u88c5",id:"\u5b89\u88c5",level:4},{value:"\u5e38\u7528\u547d\u4ee4",id:"\u5e38\u7528\u547d\u4ee4-1",level:4},{value:"\u95ee\u9898\u5904\u7406",id:"\u95ee\u9898\u5904\u7406",level:3}],d={toc:i},s="wrapper";function m(e){let{components:r,...o}=e;return(0,n.yg)(s,(0,t.A)({},d,o,{components:r,mdxType:"MDXLayout"}),(0,n.yg)("h1",{id:"docker-compose"},"Docker Compose"),(0,n.yg)("h3",{id:"\u5b9a\u4e49"},"\u5b9a\u4e49"),(0,n.yg)("p",null,"Docker \u662f\u4e00\u4e2a\u5f00\u6e90\u7684\u5bb9\u5668\u5f15\u64ce\uff0c\u5b83\u6709\u52a9\u4e8e\u66f4\u5feb\u5730\u4ea4\u4ed8\u5e94\u7528\u3002\u65b9\u4fbf\u5feb\u6377\u5df2\u7ecf\u662f Docker \u7684\u6700\u5927\u4f18\u52bf\uff0c\u8fc7\u53bb\u9700\u8981\u7528\u6570\u5929\u4e43\u81f3\u6570\u5468\u7684\u4efb\u52a1\uff0c\u5728 Docker \u5bb9\u5668\u7684\u5904\u7406\u4e0b\uff0c\u53ea\u9700\u8981\u6570\u79d2\u5c31\u80fd\u5b8c\u6210\u3002"),(0,n.yg)("h3",{id:"\u4e3a\u4ec0\u4e48\u8981\u7528-docker"},"\u4e3a\u4ec0\u4e48\u8981\u7528 Docker"),(0,n.yg)("ol",null,(0,n.yg)("li",{parentName:"ol"},"\u4e00\u81f4\u7684\u8fd0\u884c\u73af\u5883\uff1aDocker \u7684\u955c\u50cf\u63d0\u4f9b\u4e86\u9664\u5185\u6838\u5916\u5b8c\u6574\u7684\u8fd0\u884c\u65f6\u73af\u5883\uff0c\u786e\u4fdd\u4e86\u5e94\u7528\u8fd0\u884c\u73af\u5883\u4e00\u81f4\u6027\u3002"),(0,n.yg)("li",{parentName:"ol"},"\u6301\u7eed\u4ea4\u4ed8\u548c\u90e8\u7f72\uff1a\u4f7f\u7528 Docker \u53ef\u4ee5\u901a\u8fc7\u5b9a\u5236\u5e94\u7528\u955c\u50cf\u6765\u5b9e\u73b0\u6301\u7eed\u96c6\u6210\u3001\u6301\u7eed\u4ea4\u4ed8\u3001\u90e8\u7f72\u3002\u4e00\u6b21\u521b\u5efa\u6216\u914d\u7f6e\uff0c\u53ef\u4ee5\u5728\u4efb\u610f\u5730\u65b9\u6b63\u5e38\u8fd0\u884c\u3002"),(0,n.yg)("li",{parentName:"ol"},"\u66f4\u8f7b\u677e\u7684\u8fc1\u79fb\uff1aDocker \u786e\u4fdd\u4e86\u6267\u884c\u73af\u5883\u7684\u4e00\u81f4\u6027\uff0c\u4f7f\u5f97\u5e94\u7528\u7684\u8fc1\u79fb\u66f4\u52a0\u5bb9\u6613\u3002Docker \u53ef\u4ee5\u5728\u5f88\u591a\u5e73\u53f0\u4e0a\u8fd0\u884c\uff0c\u65e0\u8bba\u662f\u7269\u7406\u673a\u3001\u865a\u62df\u673a\u3001\u516c\u6709\u4e91\u3001\u79c1\u6709\u4e91\uff0c\u751a\u81f3\u662f\u7b14\u8bb0\u672c\uff0c\u5176\u8fd0\u884c\u7ed3\u679c\u662f\u4e00\u81f4\u7684\u3002"),(0,n.yg)("li",{parentName:"ol"},"\u66f4\u5feb\u901f\u7684\u542f\u52a8\u65f6\u95f4\uff1aDocker \u5bb9\u5668\u5e94\u7528\uff0c\u7531\u4e8e\u76f4\u63a5\u8fd0\u884c\u4e8e\u5bbf\u4e3b\u5185\u6838\uff0c\u65e0\u9700\u542f\u52a8\u5b8c\u6574\u7684\u64cd\u4f5c\u7cfb\u7edf\uff0c\u56e0\u6b64\u53ef\u4ee5\u505a\u5230\u79d2\u7ea7\u3001\u751a\u81f3\u6beb\u79d2\u7ea7\u7684\u542f\u52a8\u65f6\u95f4\u3002"),(0,n.yg)("li",{parentName:"ol"},"\u66f4\u9ad8\u6548\u7684\u5229\u7528\u7cfb\u7edf\u8d44\u6e90\uff1a\u7531\u4e8e\u5bb9\u5668\u4e0d\u9700\u8981\u8fdb\u884c\u786c\u4ef6\u865a\u62df\u4ee5\u53ca\u8fd0\u884c\u5b8c\u6574\u64cd\u4f5c\u7cfb\u7edf\u7b49\u989d\u5916\u5f00\u9500\uff0cDocker \u5bf9\u7cfb\u7edf\u8d44\u6e90\u7684\u5229\u7528\u7387\u66f4\u9ad8\u3002")),(0,n.yg)("h3",{id:"docker-\u57fa\u672c\u7ec4\u6210"},"Docker \u57fa\u672c\u7ec4\u6210"),(0,n.yg)("ol",null,(0,n.yg)("li",{parentName:"ol"},"\u955c\u50cf(Images)"),(0,n.yg)("li",{parentName:"ol"},"\u5bb9\u5668(Container)"),(0,n.yg)("li",{parentName:"ol"},"\u955c\u50cf\u4ed3\u5e93(Registry)")),(0,n.yg)("h3",{id:"\u5e38\u7528\u547d\u4ee4"},"\u5e38\u7528\u547d\u4ee4"),(0,n.yg)("ol",null,(0,n.yg)("li",{parentName:"ol"},"docker ps"),(0,n.yg)("li",{parentName:"ol"},"docker ps -a"),(0,n.yg)("li",{parentName:"ol"},"docker start xxx"),(0,n.yg)("li",{parentName:"ol"},"dcoker stop xxx"),(0,n.yg)("li",{parentName:"ol"},"docker rm xxx"),(0,n.yg)("li",{parentName:"ol"},"docker rmi xxx"),(0,n.yg)("li",{parentName:"ol"},"docker save -o ./xxx.tar xxx \u5bfc\u51fa\u955c\u50cf"),(0,n.yg)("li",{parentName:"ol"},"docker load -i xxx.tar \u5bfc\u5165\u955c\u50cf"),(0,n.yg)("li",{parentName:"ol"},"docker logs"),(0,n.yg)("li",{parentName:"ol"},"docker inspect xxx \u67e5\u770b\u5bb9\u5668\u8be6\u7ec6\u4fe1\u606f"),(0,n.yg)("li",{parentName:"ol"},"docker port xxx \u5217\u51fa\u6216\u6307\u5b9a\u5bb9\u5668\u7aef\u53e3\u6620\u5c04"),(0,n.yg)("li",{parentName:"ol"},"docker cp ","[dir]"," xxx:","[dir]"),(0,n.yg)("li",{parentName:"ol"},"docker diff xxx \u67e5\u770b\u5bb9\u5668\u548c\u955c\u50cf\u7684\u5dee\u5f02"),(0,n.yg)("li",{parentName:"ol"},"docker kill \u5bb9\u5668 id \u5f3a\u5236\u505c\u6b62\u5bb9\u5668"),(0,n.yg)("li",{parentName:"ol"},"docker container logs \u5bb9\u5668 id\uff1a\u67e5\u770b\u5bb9\u5668\u65e5\u5fd7"),(0,n.yg)("li",{parentName:"ol"},"docker top \u5bb9\u5668 id\uff1a\u67e5\u770b\u5bb9\u5668\u91cc\u7684\u8fdb\u7a0b")),(0,n.yg)("h3",{id:"docker-compose-1"},"Docker Compose"),(0,n.yg)("p",null,"Docker Compose \u662f docker \u63d0\u4f9b\u7684\u4e00\u4e2a\u547d\u4ee4\u884c\u5de5\u5177\uff0c\u7528\u6765\u5b9a\u4e49\u548c\u8fd0\u884c\u7531\u591a\u4e2a\u5bb9\u5668\u7ec4\u6210\u7684\u5e94\u7528\u3002\u4f7f\u7528 compose\uff0c\u6211\u4eec\u53ef\u4ee5\u901a\u8fc7 YAML \u6587\u4ef6\u58f0\u660e\u5f0f\u7684\u5b9a\u4e49\u5e94\u7528\u7a0b\u5e8f\u7684\u5404\u4e2a\u670d\u52a1\uff0c\u5e76\u7531\u5355\u4e2a\u547d\u4ee4\u5b8c\u6210\u5e94\u7528\u7684\u521b\u5efa\u548c\u542f\u52a8\u3002"),(0,n.yg)("h4",{id:"\u5b89\u88c5"},"\u5b89\u88c5"),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-shell"},"#\u9700\u8981\u5148\u628apython3\u548cpip3\u5b89\u88c5\u597d\npip3 install docker-compose\ndocker-compose --version\n")),(0,n.yg)("h4",{id:"\u5e38\u7528\u547d\u4ee4-1"},"\u5e38\u7528\u547d\u4ee4"),(0,n.yg)("ol",null,(0,n.yg)("li",{parentName:"ol"},"docker-compose up -d \xa0 \u540e\u53f0\u542f\u52a8"),(0,n.yg)("li",{parentName:"ol"},"docker-compose ps/stop/start/restart/rm"),(0,n.yg)("li",{parentName:"ol"},"docker-compose scale service=num\xa0 \u8bbe\u7f6e\u6307\u5b9a\u670d\u52a1\u8fd0\u884c\u7684\u5bb9\u5668\u4e2a\u6570\u3002\u901a\u8fc7 service=num \u7684\u53c2\u6570\u6765\u8bbe\u7f6e\u6570\u91cf")),(0,n.yg)("h3",{id:"\u95ee\u9898\u5904\u7406"},"\u95ee\u9898\u5904\u7406"),(0,n.yg)("ol",null,(0,n.yg)("li",{parentName:"ol"},(0,n.yg)("a",{parentName:"li",href:"https://blog.csdn.net/sangfei18829896970/article/details/97754635"},"python \u5b89\u88c5 pandas \u5e93\u51fa\u73b0 No module named \u2018","_","lzma\u2019")),(0,n.yg)("li",{parentName:"ol"},(0,n.yg)("a",{parentName:"li",href:"https://blog.51cto.com/13362895/2130375"},"docker \u4e4b\u7f51\u7edc\u914d\u7f6e")),(0,n.yg)("li",{parentName:"ol"},(0,n.yg)("a",{parentName:"li",href:"https://www.cnblogs.com/minseo/p/11548177.html"},"Docker \u5165\u95e8\u4e4b docker-compose"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1aa9ac35.afb0f9ba.js b/assets/js/1aa9ac35.635e5190.js similarity index 99% rename from assets/js/1aa9ac35.afb0f9ba.js rename to assets/js/1aa9ac35.635e5190.js index a8b4e85ee..a35988205 100644 --- a/assets/js/1aa9ac35.afb0f9ba.js +++ b/assets/js/1aa9ac35.635e5190.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6019],{5680:(e,n,t)=>{t.d(n,{xA:()=>p,yg:()=>f});var r=t(6540);function s(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function a(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function o(e){for(var n=1;n=0||(s[t]=e[t]);return s}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(s[t]=e[t])}return s}var u=r.createContext({}),l=function(e){var n=r.useContext(u),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},p=function(e){var n=l(e.components);return r.createElement(u.Provider,{value:n},e.children)},i="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},m=r.forwardRef((function(e,n){var t=e.components,s=e.mdxType,a=e.originalType,u=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),i=l(t),m=s,f=i["".concat(u,".").concat(m)]||i[m]||d[m]||a;return t?r.createElement(f,o(o({ref:n},p),{},{components:t})):r.createElement(f,o({ref:n},p))}));function f(e,n){var t=arguments,s=n&&n.mdxType;if("string"==typeof e||s){var a=t.length,o=new Array(a);o[0]=m;var c={};for(var u in n)hasOwnProperty.call(n,u)&&(c[u]=n[u]);c.originalType=e,c[i]="string"==typeof e?e:s,o[1]=c;for(var l=2;l{t.r(n),t.d(n,{assets:()=>u,contentTitle:()=>o,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var r=t(8168),s=(t(6540),t(5680));const a={},o="OpenGauss",c={unversionedId:"study/db/SQL/OpenGauss",id:"study/db/SQL/OpenGauss",title:"OpenGauss",description:"\u5b98\u7f51 https://opengauss.org/zh/",source:"@site/docs/study/db/SQL/OpenGauss.md",sourceDirName:"study/db/SQL",slug:"/study/db/SQL/OpenGauss",permalink:"/docs/study/db/SQL/OpenGauss",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"MySQL",permalink:"/docs/study/db/SQL/MySQL"},next:{title:"PostgreSQL",permalink:"/docs/study/db/SQL/PostgreSQL"}},u={},l=[{value:"\u4fee\u6539\u6700\u5927\u8fde\u63a5\u6570\u62a5\u9519",id:"\u4fee\u6539\u6700\u5927\u8fde\u63a5\u6570\u62a5\u9519",level:3}],p={toc:l},i="wrapper";function d(e){let{components:n,...t}=e;return(0,s.yg)(i,(0,r.A)({},p,t,{components:n,mdxType:"MDXLayout"}),(0,s.yg)("h1",{id:"opengauss"},"OpenGauss"),(0,s.yg)("p",null,"\u5b98\u7f51 ",(0,s.yg)("a",{parentName:"p",href:"https://opengauss.org/zh/"},"https://opengauss.org/zh/")),(0,s.yg)("p",null,"\u5bf9\u6807\u7684\u662fPostgreSQL"),(0,s.yg)("h3",{id:"\u4fee\u6539\u6700\u5927\u8fde\u63a5\u6570\u62a5\u9519"},"\u4fee\u6539\u6700\u5927\u8fde\u63a5\u6570\u62a5\u9519"),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-shell"},"2024-05-14 10:02:06.004 [unknown] [unknown] localhost 140450292528512 0[0:0#0] 0 [CACHE] LOG: set data cache size(402653184)\n2024-05-14 10:02:06.247 [unknown] [unknown] localhost 140450292528512 0[0:0#0] 0 [BACKEND] FATAL: could not create semaphores: No space left on device\n2024-05-14 10:02:06.247 [unknown] [unknown] localhost 140450292528512 0[0:0#0] 0 [BACKEND] DETAIL: Failed system call was semget(5432129, 17, 03600).\n2024-05-14 10:02:06.247 [unknown] [unknown] localhost 140450292528512 0[0:0#0] 0 [BACKEND] HINT: This error does *not* mean that you have run out of disk space. It occurs when either the system limit for the maximum number of semaphore sets (SEMMNI), or the system wide maximum number of semaphores (SEMMNS), would be exceeded. You need to raise the respective kernel parameter. Alternatively, reduce openGauss's consumption of semaphores by reducing its max_connections parameter.\n The openGauss documentation contains more information about configuring your system for openGauss.\n2024-05-14 10:02:06.247 [unknown] [unknown] localhost 140450292528512 0[0:0#0] 0 [BACKEND] BACKTRACELOG: tid[1]'s backtrace:\n gaussdb(+0xe3a41e) [0x55c87d3c041e]\n gaussdb(_Z9errfinishiz+0x441) [0x55c87d3b8651]\n gaussdb(+0xbb6618) [0x55c87d13c618]\n gaussdb(_Z17PGSemaphoreCreateP15PGSemaphoreData+0x9c) [0x55c87d13c93c]\n gaussdb(_Z14InitProcGlobalv+0x7dd) [0x55c87e18bddd]\n gaussdb(_Z31CreateSharedMemoryAndSemaphoresbi+0x3a5) [0x55c87e165605]\n gaussdb(_Z14PostmasterMainiPPc+0x183f) [0x55c87d982a4f]\n gaussdb(main+0x3f2) [0x55c87ce545f2]\n /usr/lib64/libc.so.6(+0x2d210) [0x7fbd21d16210]\n /usr/lib64/libc.so.6(__libc_start_main+0x7c) [0x7fbd21d162bc]\n gaussdb(_start+0x25) [0x55c87cec57f5]\n Use addr2line to get pretty function name and line\n\n2024-05-14 10:02:06.342 [unknown] [unknown] localhost 140450292528512 0[0:0#0] 0 [BACKEND] LOG: FiniNuma allocIndex: 0.\n")),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-shell"},"[root@f37c6d33715e /]# ipcs -ls\n\n------ Semaphore Limits --------\nmax number of arrays = 128\nmax semaphores per array = 250\nmax semaphores system wide = 32000\nmax ops per semop call = 32\nsemaphore max value = 32767\n\n[root@f37c6d33715e /]# cat /proc/sys/kernel/sem\n250 32000 32 128\n")),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-shell"},"\u4fee\u6539 vi /etc/sysctl.conf \u7684\u4ee5\u4e0b\u53c2\u6570\nkernel.sem = 50100 128256000 50100 2560\nsysctl -p \u751f\u6548\n\u91cd\u542f\u6570\u636e\u5e93\u5373\u53ef\ndocker cp ./postgresql.conf f37c6d33715e:/var/lib/opengauss/data/postgresql.conf\ndocker cp ./sysctl.conf f37c6d33715e:/etc/sysctl.conf\ndocker restart f37c6d33715e\ndocker ps -a | grep opengauss\n/var/lib/opengauss/data/postgresql.conf\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6019],{5680:(e,n,t)=>{t.d(n,{xA:()=>p,yg:()=>f});var r=t(6540);function s(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function a(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function o(e){for(var n=1;n=0||(s[t]=e[t]);return s}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(s[t]=e[t])}return s}var u=r.createContext({}),l=function(e){var n=r.useContext(u),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},p=function(e){var n=l(e.components);return r.createElement(u.Provider,{value:n},e.children)},i="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},m=r.forwardRef((function(e,n){var t=e.components,s=e.mdxType,a=e.originalType,u=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),i=l(t),m=s,f=i["".concat(u,".").concat(m)]||i[m]||d[m]||a;return t?r.createElement(f,o(o({ref:n},p),{},{components:t})):r.createElement(f,o({ref:n},p))}));function f(e,n){var t=arguments,s=n&&n.mdxType;if("string"==typeof e||s){var a=t.length,o=new Array(a);o[0]=m;var c={};for(var u in n)hasOwnProperty.call(n,u)&&(c[u]=n[u]);c.originalType=e,c[i]="string"==typeof e?e:s,o[1]=c;for(var l=2;l{t.r(n),t.d(n,{assets:()=>u,contentTitle:()=>o,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var r=t(8168),s=(t(6540),t(5680));const a={},o="OpenGauss",c={unversionedId:"study/db/SQL/OpenGauss",id:"study/db/SQL/OpenGauss",title:"OpenGauss",description:"\u5b98\u7f51 https://opengauss.org/zh/",source:"@site/docs/study/db/SQL/OpenGauss.md",sourceDirName:"study/db/SQL",slug:"/study/db/SQL/OpenGauss",permalink:"/docs/study/db/SQL/OpenGauss",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"MySQL",permalink:"/docs/study/db/SQL/MySQL"},next:{title:"PostgreSQL",permalink:"/docs/study/db/SQL/PostgreSQL"}},u={},l=[{value:"\u4fee\u6539\u6700\u5927\u8fde\u63a5\u6570\u62a5\u9519",id:"\u4fee\u6539\u6700\u5927\u8fde\u63a5\u6570\u62a5\u9519",level:3}],p={toc:l},i="wrapper";function d(e){let{components:n,...t}=e;return(0,s.yg)(i,(0,r.A)({},p,t,{components:n,mdxType:"MDXLayout"}),(0,s.yg)("h1",{id:"opengauss"},"OpenGauss"),(0,s.yg)("p",null,"\u5b98\u7f51 ",(0,s.yg)("a",{parentName:"p",href:"https://opengauss.org/zh/"},"https://opengauss.org/zh/")),(0,s.yg)("p",null,"\u5bf9\u6807\u7684\u662fPostgreSQL"),(0,s.yg)("h3",{id:"\u4fee\u6539\u6700\u5927\u8fde\u63a5\u6570\u62a5\u9519"},"\u4fee\u6539\u6700\u5927\u8fde\u63a5\u6570\u62a5\u9519"),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-shell"},"2024-05-14 10:02:06.004 [unknown] [unknown] localhost 140450292528512 0[0:0#0] 0 [CACHE] LOG: set data cache size(402653184)\n2024-05-14 10:02:06.247 [unknown] [unknown] localhost 140450292528512 0[0:0#0] 0 [BACKEND] FATAL: could not create semaphores: No space left on device\n2024-05-14 10:02:06.247 [unknown] [unknown] localhost 140450292528512 0[0:0#0] 0 [BACKEND] DETAIL: Failed system call was semget(5432129, 17, 03600).\n2024-05-14 10:02:06.247 [unknown] [unknown] localhost 140450292528512 0[0:0#0] 0 [BACKEND] HINT: This error does *not* mean that you have run out of disk space. It occurs when either the system limit for the maximum number of semaphore sets (SEMMNI), or the system wide maximum number of semaphores (SEMMNS), would be exceeded. You need to raise the respective kernel parameter. Alternatively, reduce openGauss's consumption of semaphores by reducing its max_connections parameter.\n The openGauss documentation contains more information about configuring your system for openGauss.\n2024-05-14 10:02:06.247 [unknown] [unknown] localhost 140450292528512 0[0:0#0] 0 [BACKEND] BACKTRACELOG: tid[1]'s backtrace:\n gaussdb(+0xe3a41e) [0x55c87d3c041e]\n gaussdb(_Z9errfinishiz+0x441) [0x55c87d3b8651]\n gaussdb(+0xbb6618) [0x55c87d13c618]\n gaussdb(_Z17PGSemaphoreCreateP15PGSemaphoreData+0x9c) [0x55c87d13c93c]\n gaussdb(_Z14InitProcGlobalv+0x7dd) [0x55c87e18bddd]\n gaussdb(_Z31CreateSharedMemoryAndSemaphoresbi+0x3a5) [0x55c87e165605]\n gaussdb(_Z14PostmasterMainiPPc+0x183f) [0x55c87d982a4f]\n gaussdb(main+0x3f2) [0x55c87ce545f2]\n /usr/lib64/libc.so.6(+0x2d210) [0x7fbd21d16210]\n /usr/lib64/libc.so.6(__libc_start_main+0x7c) [0x7fbd21d162bc]\n gaussdb(_start+0x25) [0x55c87cec57f5]\n Use addr2line to get pretty function name and line\n\n2024-05-14 10:02:06.342 [unknown] [unknown] localhost 140450292528512 0[0:0#0] 0 [BACKEND] LOG: FiniNuma allocIndex: 0.\n")),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-shell"},"[root@f37c6d33715e /]# ipcs -ls\n\n------ Semaphore Limits --------\nmax number of arrays = 128\nmax semaphores per array = 250\nmax semaphores system wide = 32000\nmax ops per semop call = 32\nsemaphore max value = 32767\n\n[root@f37c6d33715e /]# cat /proc/sys/kernel/sem\n250 32000 32 128\n")),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-shell"},"\u4fee\u6539 vi /etc/sysctl.conf \u7684\u4ee5\u4e0b\u53c2\u6570\nkernel.sem = 50100 128256000 50100 2560\nsysctl -p \u751f\u6548\n\u91cd\u542f\u6570\u636e\u5e93\u5373\u53ef\ndocker cp ./postgresql.conf f37c6d33715e:/var/lib/opengauss/data/postgresql.conf\ndocker cp ./sysctl.conf f37c6d33715e:/etc/sysctl.conf\ndocker restart f37c6d33715e\ndocker ps -a | grep opengauss\n/var/lib/opengauss/data/postgresql.conf\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1ad4833d.397fbce0.js b/assets/js/1ad4833d.21bccc7d.js similarity index 98% rename from assets/js/1ad4833d.397fbce0.js rename to assets/js/1ad4833d.21bccc7d.js index 95bf7ecb5..6b6cea458 100644 --- a/assets/js/1ad4833d.397fbce0.js +++ b/assets/js/1ad4833d.21bccc7d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3783],{5680:(e,t,n)=>{n.d(t,{xA:()=>c,yg:()=>f});var r=n(6540);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var p=r.createContext({}),d=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=d(e.components);return r.createElement(p.Provider,{value:t},e.children)},u="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),u=d(n),y=o,f=u["".concat(p,".").concat(y)]||u[y]||s[y]||a;return n?r.createElement(f,i(i({ref:t},c),{},{components:n})):r.createElement(f,i({ref:t},c))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=y;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[u]="string"==typeof e?e:o,i[1]=l;for(var d=2;d{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>s,frontMatter:()=>a,metadata:()=>l,toc:()=>d});var r=n(8168),o=(n(6540),n(5680));const a={},i=void 0,l={unversionedId:"study/devops/SHELL",id:"study/devops/SHELL",title:"SHELL",description:"SHELL\u811a\u672c\u53c2\u6570",source:"@site/docs/study/devops/SHELL.md",sourceDirName:"study/devops",slug:"/study/devops/SHELL",permalink:"/docs/study/devops/SHELL",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Linux\u8fd0\u7ef4-\u9ad8\u5e76\u53d1",permalink:"/docs/study/devops/Linux\u8fd0\u7ef4-\u9ad8\u5e76\u53d1"},next:{title:"ansible",permalink:"/docs/study/devops/ansible"}},p={},d=[{value:"SHELL\u811a\u672c\u53c2\u6570",id:"shell\u811a\u672c\u53c2\u6570",level:3},{value:"\u4f4d\u7f6e\u53c2\u6570",id:"\u4f4d\u7f6e\u53c2\u6570",level:4},{value:"\u53c2\u6570\u8ba1\u6570",id:"\u53c2\u6570\u8ba1\u6570",level:4},{value:"\u83b7\u53d6\u6240\u6709\u6570\u636e\uff1a",id:"\u83b7\u53d6\u6240\u6709\u6570\u636e",level:4},{value:"\u79fb\u4f4d\uff1a",id:"\u79fb\u4f4d",level:4},{value:"\u5904\u7406\u9009\u9879\uff1a",id:"\u5904\u7406\u9009\u9879",level:4}],c={toc:d},u="wrapper";function s(e){let{components:t,...n}=e;return(0,o.yg)(u,(0,r.A)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"shell\u811a\u672c\u53c2\u6570"},"SHELL\u811a\u672c\u53c2\u6570"),(0,o.yg)("h4",{id:"\u4f4d\u7f6e\u53c2\u6570"},"\u4f4d\u7f6e\u53c2\u6570"),(0,o.yg)("p",null,"\u811a\u672c\u901a\u8fc7\u4f4d\u7f6e\u53c2\u6570\u6765\u83b7\u53d6\u547d\u4ee4\u884c\u4e2d\u7684\u53c2\u6570\u3002\u4f4d\u7f6e\u53c2\u6570\u901a\u8fc7\u6807\u51c6\u6570\u5b57\u8868\u793a\uff0c\u4f8b\u5982",(0,o.yg)("inlineCode",{parentName:"p"},"$0"),"\u4ee3\u8868\u811a\u672c\u540d\u79f0\uff0c",(0,o.yg)("inlineCode",{parentName:"p"},"$1"),"\u4ee3\u8868\u7b2c\u4e00\u4e2a\u53c2\u6570\uff0c",(0,o.yg)("inlineCode",{parentName:"p"},"$2"),"\u4ee3\u8868\u7b2c\u4e8c\u4e2a\u53c2\u6570\uff0c\u4f9d\u6b64\u7c7b\u63a8\u3002"),(0,o.yg)("h4",{id:"\u53c2\u6570\u8ba1\u6570"},"\u53c2\u6570\u8ba1\u6570"),(0,o.yg)("p",null,"\u4f7f\u7528",(0,o.yg)("inlineCode",{parentName:"p"},"$#"),"\u53ef\u4ee5\u6d4b\u8bd5\u6267\u884c\u811a\u672c\u65f6\u5305\u542b\u7684\u547d\u4ee4\u884c\u53c2\u6570\u4e2a\u6570\u3002\u5982\u679c\u65e0\u53c2\u6570\uff0c",(0,o.yg)("inlineCode",{parentName:"p"},"$#"),"\u4e3a0\u3002"),(0,o.yg)("h4",{id:"\u83b7\u53d6\u6240\u6709\u6570\u636e"},"\u83b7\u53d6\u6240\u6709\u6570\u636e\uff1a"),(0,o.yg)("p",null,"\u4f7f\u7528",(0,o.yg)("inlineCode",{parentName:"p"},"$*"),"\u53ef\u4ee5\u5c06\u547d\u4ee4\u884c\u4e2d\u63d0\u4f9b\u7684\u6240\u6709\u53c2\u6570\u4f5c\u4e3a\u4e00\u4e2a\u5355\u8bcd\u5904\u7406\uff0c\u5b83\u5c06\u591a\u4e2a\u53c2\u6570\u770b\u6210\u4e00\u4e2a\u53c2\u6570\u3002\u4f7f\u7528",(0,o.yg)("inlineCode",{parentName:"p"},"$@"),"\u5219\u5c06\u547d\u4ee4\u884c\u4e2d\u63d0\u4f9b\u7684\u6240\u6709\u53c2\u6570\u4f5c\u4e3a\u540c\u4e00\u4e2a\u5b57\u7b26\u4e32\u4e2d\u7684\u591a\u4e2a\u5355\u8bcd\u5904\u7406\u3002"),(0,o.yg)("h4",{id:"\u79fb\u4f4d"},"\u79fb\u4f4d\uff1a"),(0,o.yg)("p",null,"\u4f7f\u7528",(0,o.yg)("inlineCode",{parentName:"p"},"shift"),"\u547d\u4ee4\u53ef\u4ee5\u6539\u53d8\u547d\u4ee4\u884c\u53c2\u6570\u7684\u76f8\u5bf9\u4f4d\u7f6e\u3002\u9ed8\u8ba4\u4e3a\u6bcf\u4e2a\u53c2\u6570\u53d8\u91cf\u5de6\u79fb\u4e00\u4e2a\u4f4d\u7f6e\uff0c",(0,o.yg)("inlineCode",{parentName:"p"},"$0"),"\u4e0d\u53d8\u3002"),(0,o.yg)("h4",{id:"\u5904\u7406\u9009\u9879"},"\u5904\u7406\u9009\u9879\uff1a"),(0,o.yg)("p",null,"\u9009\u9879\u662f\u7531\u7834\u6298\u53f7\u5f15\u5bfc\u7684\u5355\u4e2a\u5b57\u6bcd\uff0c\u7528\u4e8e\u66f4\u6539\u547d\u4ee4\u7684\u884c\u4e3a\u3002\u4f8b\u5982\uff0c",(0,o.yg)("inlineCode",{parentName:"p"},"-n"),"\u53c2\u6570\u53ef\u4ee5\u7528\u6765\u68c0\u67e5\u53c2\u6570\u662f\u5426\u5b58\u5728\u3002"))}s.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3783],{5680:(e,t,n)=>{n.d(t,{xA:()=>c,yg:()=>f});var r=n(6540);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var p=r.createContext({}),d=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=d(e.components);return r.createElement(p.Provider,{value:t},e.children)},u="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),u=d(n),y=o,f=u["".concat(p,".").concat(y)]||u[y]||s[y]||a;return n?r.createElement(f,i(i({ref:t},c),{},{components:n})):r.createElement(f,i({ref:t},c))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=y;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[u]="string"==typeof e?e:o,i[1]=l;for(var d=2;d{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>s,frontMatter:()=>a,metadata:()=>l,toc:()=>d});var r=n(8168),o=(n(6540),n(5680));const a={},i=void 0,l={unversionedId:"study/devops/SHELL",id:"study/devops/SHELL",title:"SHELL",description:"SHELL\u811a\u672c\u53c2\u6570",source:"@site/docs/study/devops/SHELL.md",sourceDirName:"study/devops",slug:"/study/devops/SHELL",permalink:"/docs/study/devops/SHELL",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Linux\u8fd0\u7ef4-\u9ad8\u5e76\u53d1",permalink:"/docs/study/devops/Linux\u8fd0\u7ef4-\u9ad8\u5e76\u53d1"},next:{title:"ansible",permalink:"/docs/study/devops/ansible"}},p={},d=[{value:"SHELL\u811a\u672c\u53c2\u6570",id:"shell\u811a\u672c\u53c2\u6570",level:3},{value:"\u4f4d\u7f6e\u53c2\u6570",id:"\u4f4d\u7f6e\u53c2\u6570",level:4},{value:"\u53c2\u6570\u8ba1\u6570",id:"\u53c2\u6570\u8ba1\u6570",level:4},{value:"\u83b7\u53d6\u6240\u6709\u6570\u636e\uff1a",id:"\u83b7\u53d6\u6240\u6709\u6570\u636e",level:4},{value:"\u79fb\u4f4d\uff1a",id:"\u79fb\u4f4d",level:4},{value:"\u5904\u7406\u9009\u9879\uff1a",id:"\u5904\u7406\u9009\u9879",level:4}],c={toc:d},u="wrapper";function s(e){let{components:t,...n}=e;return(0,o.yg)(u,(0,r.A)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"shell\u811a\u672c\u53c2\u6570"},"SHELL\u811a\u672c\u53c2\u6570"),(0,o.yg)("h4",{id:"\u4f4d\u7f6e\u53c2\u6570"},"\u4f4d\u7f6e\u53c2\u6570"),(0,o.yg)("p",null,"\u811a\u672c\u901a\u8fc7\u4f4d\u7f6e\u53c2\u6570\u6765\u83b7\u53d6\u547d\u4ee4\u884c\u4e2d\u7684\u53c2\u6570\u3002\u4f4d\u7f6e\u53c2\u6570\u901a\u8fc7\u6807\u51c6\u6570\u5b57\u8868\u793a\uff0c\u4f8b\u5982",(0,o.yg)("inlineCode",{parentName:"p"},"$0"),"\u4ee3\u8868\u811a\u672c\u540d\u79f0\uff0c",(0,o.yg)("inlineCode",{parentName:"p"},"$1"),"\u4ee3\u8868\u7b2c\u4e00\u4e2a\u53c2\u6570\uff0c",(0,o.yg)("inlineCode",{parentName:"p"},"$2"),"\u4ee3\u8868\u7b2c\u4e8c\u4e2a\u53c2\u6570\uff0c\u4f9d\u6b64\u7c7b\u63a8\u3002"),(0,o.yg)("h4",{id:"\u53c2\u6570\u8ba1\u6570"},"\u53c2\u6570\u8ba1\u6570"),(0,o.yg)("p",null,"\u4f7f\u7528",(0,o.yg)("inlineCode",{parentName:"p"},"$#"),"\u53ef\u4ee5\u6d4b\u8bd5\u6267\u884c\u811a\u672c\u65f6\u5305\u542b\u7684\u547d\u4ee4\u884c\u53c2\u6570\u4e2a\u6570\u3002\u5982\u679c\u65e0\u53c2\u6570\uff0c",(0,o.yg)("inlineCode",{parentName:"p"},"$#"),"\u4e3a0\u3002"),(0,o.yg)("h4",{id:"\u83b7\u53d6\u6240\u6709\u6570\u636e"},"\u83b7\u53d6\u6240\u6709\u6570\u636e\uff1a"),(0,o.yg)("p",null,"\u4f7f\u7528",(0,o.yg)("inlineCode",{parentName:"p"},"$*"),"\u53ef\u4ee5\u5c06\u547d\u4ee4\u884c\u4e2d\u63d0\u4f9b\u7684\u6240\u6709\u53c2\u6570\u4f5c\u4e3a\u4e00\u4e2a\u5355\u8bcd\u5904\u7406\uff0c\u5b83\u5c06\u591a\u4e2a\u53c2\u6570\u770b\u6210\u4e00\u4e2a\u53c2\u6570\u3002\u4f7f\u7528",(0,o.yg)("inlineCode",{parentName:"p"},"$@"),"\u5219\u5c06\u547d\u4ee4\u884c\u4e2d\u63d0\u4f9b\u7684\u6240\u6709\u53c2\u6570\u4f5c\u4e3a\u540c\u4e00\u4e2a\u5b57\u7b26\u4e32\u4e2d\u7684\u591a\u4e2a\u5355\u8bcd\u5904\u7406\u3002"),(0,o.yg)("h4",{id:"\u79fb\u4f4d"},"\u79fb\u4f4d\uff1a"),(0,o.yg)("p",null,"\u4f7f\u7528",(0,o.yg)("inlineCode",{parentName:"p"},"shift"),"\u547d\u4ee4\u53ef\u4ee5\u6539\u53d8\u547d\u4ee4\u884c\u53c2\u6570\u7684\u76f8\u5bf9\u4f4d\u7f6e\u3002\u9ed8\u8ba4\u4e3a\u6bcf\u4e2a\u53c2\u6570\u53d8\u91cf\u5de6\u79fb\u4e00\u4e2a\u4f4d\u7f6e\uff0c",(0,o.yg)("inlineCode",{parentName:"p"},"$0"),"\u4e0d\u53d8\u3002"),(0,o.yg)("h4",{id:"\u5904\u7406\u9009\u9879"},"\u5904\u7406\u9009\u9879\uff1a"),(0,o.yg)("p",null,"\u9009\u9879\u662f\u7531\u7834\u6298\u53f7\u5f15\u5bfc\u7684\u5355\u4e2a\u5b57\u6bcd\uff0c\u7528\u4e8e\u66f4\u6539\u547d\u4ee4\u7684\u884c\u4e3a\u3002\u4f8b\u5982\uff0c",(0,o.yg)("inlineCode",{parentName:"p"},"-n"),"\u53c2\u6570\u53ef\u4ee5\u7528\u6765\u68c0\u67e5\u53c2\u6570\u662f\u5426\u5b58\u5728\u3002"))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1b135b54.f0d7ce3c.js b/assets/js/1b135b54.5e747482.js similarity index 99% rename from assets/js/1b135b54.f0d7ce3c.js rename to assets/js/1b135b54.5e747482.js index 9cdf75be8..248c5a22d 100644 --- a/assets/js/1b135b54.f0d7ce3c.js +++ b/assets/js/1b135b54.5e747482.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[344],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function l(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(l[r]=e[r]);return l}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(l[r]=e[r])}return l}var i=n.createContext({}),c=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(i.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,l=e.mdxType,a=e.originalType,i=e.parentName,p=u(e,["components","mdxType","originalType","parentName"]),s=c(r),d=l,f=s["".concat(i,".").concat(d)]||s[d]||y[d]||a;return r?n.createElement(f,o(o({ref:t},p),{},{components:r})):n.createElement(f,o({ref:t},p))}));function f(e,t){var r=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var a=r.length,o=new Array(a);o[0]=d;var u={};for(var i in t)hasOwnProperty.call(t,i)&&(u[i]=t[i]);u.originalType=e,u[s]="string"==typeof e?e:l,o[1]=u;for(var c=2;c{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>o,default:()=>y,frontMatter:()=>a,metadata:()=>u,toc:()=>c});var n=r(8168),l=(r(6540),r(5680));const a={},o=void 0,u={unversionedId:"study/fe/ARMS\u524d\u7aef\u76d1\u63a7",id:"study/fe/ARMS\u524d\u7aef\u76d1\u63a7",title:"ARMS\u524d\u7aef\u76d1\u63a7",description:"ARMS\u524d\u7aef\u76d1\u63a7\u4e13\u6ce8\u4e8e\u5bf9Web\u573a\u666f\u3001Weex\u573a\u666f\u548c\u5c0f\u7a0b\u5e8f\u573a\u666f\u7684\u76d1\u63a7\uff0c\u4ece\u9875\u9762\u6253\u5f00\u901f\u5ea6\uff08\u6d4b\u901f\uff09\u3001\u9875\u9762\u7a33\u5b9a\u6027\uff08JS\u8bca\u65ad\u9519\u8bef\uff09\u548c\u5916\u90e8\u670d\u52a1\u8c03\u7528\u6210\u529f\u7387\uff08API\uff09\u8fd9\u4e09\u4e2a\u65b9\u9762\u76d1\u6d4bWeb\u548c\u5c0f\u7a0b\u5e8f\u9875\u9762\u7684\u5065\u5eb7\u5ea6\u3002",source:"@site/docs/study/fe/ARMS\u524d\u7aef\u76d1\u63a7.md",sourceDirName:"study/fe",slug:"/study/fe/ARMS\u524d\u7aef\u76d1\u63a7",permalink:"/docs/study/fe/ARMS\u524d\u7aef\u76d1\u63a7",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u524d\u7aef\u6a21\u5757\u5316",permalink:"/docs/study/fe/\u524d\u7aef\u6a21\u5757\u5316"},next:{title:"Flutter\u5f00\u53d1\u95ee\u9898\u8bb0\u5f55",permalink:"/docs/study/fe/Flutter\u5f00\u53d1\u95ee\u9898\u8bb0\u5f55"}},i={},c=[{value:"\u4e3a\u4ec0\u4e48\u8981\u6709\u524d\u7aef\u76d1\u63a7\uff1f",id:"\u4e3a\u4ec0\u4e48\u8981\u6709\u524d\u7aef\u76d1\u63a7",level:3},{value:"\u6211\u4eec\u7684\u89e3\u51b3\u65b9\u6848",id:"\u6211\u4eec\u7684\u89e3\u51b3\u65b9\u6848",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],p={toc:c},s="wrapper";function y(e){let{components:t,...r}=e;return(0,l.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,l.yg)("p",null,"ARMS\u524d\u7aef\u76d1\u63a7\u4e13\u6ce8\u4e8e\u5bf9Web\u573a\u666f\u3001Weex\u573a\u666f\u548c\u5c0f\u7a0b\u5e8f\u573a\u666f\u7684\u76d1\u63a7\uff0c\u4ece\u9875\u9762\u6253\u5f00\u901f\u5ea6\uff08\u6d4b\u901f\uff09\u3001\u9875\u9762\u7a33\u5b9a\u6027\uff08JS\u8bca\u65ad\u9519\u8bef\uff09\u548c\u5916\u90e8\u670d\u52a1\u8c03\u7528\u6210\u529f\u7387\uff08API\uff09\u8fd9\u4e09\u4e2a\u65b9\u9762\u76d1\u6d4bWeb\u548c\u5c0f\u7a0b\u5e8f\u9875\u9762\u7684\u5065\u5eb7\u5ea6\u3002"),(0,l.yg)("h3",{id:"\u4e3a\u4ec0\u4e48\u8981\u6709\u524d\u7aef\u76d1\u63a7"},"\u4e3a\u4ec0\u4e48\u8981\u6709\u524d\u7aef\u76d1\u63a7\uff1f"),(0,l.yg)("p",null,"\u7528\u6237\u8bbf\u95ee\u60a8\u7684\u4e1a\u52a1\u65f6\uff0c\u6574\u4e2a\u8bbf\u95ee\u8fc7\u7a0b\u5927\u81f4\u53ef\u4ee5\u5206\u4e3a\u4e09\u4e2a\u9636\u6bb5\uff1a\u9875\u9762\u751f\u4ea7\u65f6\uff08\u670d\u52a1\u5668\u7aef\u72b6\u6001\uff09\u3001\u9875\u9762\u52a0\u8f7d\u65f6\u548c\u9875\u9762\u8fd0\u884c\u65f6\u3002"),(0,l.yg)("p",null,"\u4e3a\u4e86\u4fdd\u8bc1\u7ebf\u4e0a\u4e1a\u52a1\u7a33\u5b9a\u8fd0\u884c\uff0c\u6211\u4eec\u4f1a\u5728\u670d\u52a1\u5668\u7aef\u5bf9\u4e1a\u52a1\u7684\u8fd0\u884c\u72b6\u6001\u8fdb\u884c\u5404\u79cd\u76d1\u63a7\u3002\u73b0\u6709\u7684\u670d\u52a1\u5668\u7aef\u76d1\u63a7\u7cfb\u7edf\u76f8\u5bf9\u5df2\u7ecf\u5f88\u6210\u719f\uff0c\u800c\u9875\u9762\u52a0\u8f7d\u548c\u9875\u9762\u8fd0\u884c\u65f6\u7684\u72b6\u6001\u76d1\u63a7\u4e00\u76f4\u6bd4\u8f83\u6b20\u7f3a\u3002\u4f8b\u5982\uff1a"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u65e0\u6cd5\u7b2c\u4e00\u65f6\u95f4\u83b7\u77e5\u7528\u6237\u8bbf\u95ee\u60a8\u7684\u7ad9\u70b9\u65f6\u9047\u5230\u7684\u9519\u8bef\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u5404\u4e2a\u56fd\u5bb6\u3001\u5404\u4e2a\u5730\u533a\u7684\u7528\u6237\u8bbf\u95ee\u60a8\u7684\u7ad9\u70b9\u7684\u771f\u5b9e\u901f\u5ea6\u672a\u77e5\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u6bcf\u4e2a\u5e94\u7528\u5185\u6709\u5927\u91cf\u7684\u5f02\u6b65\u6570\u636e\u8c03\u7528\uff0c\u800c\u5b83\u4eec\u7684\u6027\u80fd\u3001\u6210\u529f\u7387\u90fd\u662f\u672a\u77e5\u7684\u3002")),(0,l.yg)("h3",{id:"\u6211\u4eec\u7684\u89e3\u51b3\u65b9\u6848"},"\u6211\u4eec\u7684\u89e3\u51b3\u65b9\u6848"),(0,l.yg)("p",null,"ARMS\u524d\u7aef\u76d1\u63a7\u91cd\u70b9\u76d1\u63a7\u9875\u9762\u7684\u52a0\u8f7d\u8fc7\u7a0b\u548c\u8fd0\u884c\u65f6\u72b6\u6001\uff0c\u540c\u65f6\u5c06\u9875\u9762\u52a0\u8f7d\u6027\u80fd\u3001\u8fd0\u884c\u65f6\u5f02\u5e38\u4ee5\u53caAPI\u8c03\u7528\u72b6\u6001\u548c\u8017\u65f6\u7b49\u6570\u636e\uff0c\u4e0a\u62a5\u5230\u65e5\u5fd7\u670d\u52a1\u5668\u3002\u4e4b\u540e\u501f\u52a9ARMS\u63d0\u4f9b\u7684\u6d77\u91cf\u5b9e\u65f6\u65e5\u5fd7\u5206\u6790\u548c\u5904\u7406\u670d\u52a1\uff0c\u5bf9\u5f53\u524d\u7ebf\u4e0a\u6240\u6709\u771f\u5b9e\u7528\u6237\u7684\u8bbf\u95ee\u60c5\u51b5\u8fdb\u884c\u76d1\u63a7\u3002\u6700\u540e\u901a\u8fc7\u76f4\u89c2\u7684\u62a5\u8868\u5c55\u793a\uff0c\u5e2e\u52a9\u60a8\u53ca\u65f6\u53d1\u73b0\u5e76\u8bca\u65ad\u95ee\u9898\u3002"),(0,l.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://help.aliyun.com/document_detail/58652.html?spm=a2c4g.91587.0.0.28c94e85lQHFGu"},"\u4ec0\u4e48\u662fARMS\u524d\u7aef\u76d1\u63a7\uff1f"))))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[344],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function l(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(l[r]=e[r]);return l}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(l[r]=e[r])}return l}var i=n.createContext({}),c=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(i.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,l=e.mdxType,a=e.originalType,i=e.parentName,p=u(e,["components","mdxType","originalType","parentName"]),s=c(r),d=l,f=s["".concat(i,".").concat(d)]||s[d]||y[d]||a;return r?n.createElement(f,o(o({ref:t},p),{},{components:r})):n.createElement(f,o({ref:t},p))}));function f(e,t){var r=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var a=r.length,o=new Array(a);o[0]=d;var u={};for(var i in t)hasOwnProperty.call(t,i)&&(u[i]=t[i]);u.originalType=e,u[s]="string"==typeof e?e:l,o[1]=u;for(var c=2;c{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>o,default:()=>y,frontMatter:()=>a,metadata:()=>u,toc:()=>c});var n=r(8168),l=(r(6540),r(5680));const a={},o=void 0,u={unversionedId:"study/fe/ARMS\u524d\u7aef\u76d1\u63a7",id:"study/fe/ARMS\u524d\u7aef\u76d1\u63a7",title:"ARMS\u524d\u7aef\u76d1\u63a7",description:"ARMS\u524d\u7aef\u76d1\u63a7\u4e13\u6ce8\u4e8e\u5bf9Web\u573a\u666f\u3001Weex\u573a\u666f\u548c\u5c0f\u7a0b\u5e8f\u573a\u666f\u7684\u76d1\u63a7\uff0c\u4ece\u9875\u9762\u6253\u5f00\u901f\u5ea6\uff08\u6d4b\u901f\uff09\u3001\u9875\u9762\u7a33\u5b9a\u6027\uff08JS\u8bca\u65ad\u9519\u8bef\uff09\u548c\u5916\u90e8\u670d\u52a1\u8c03\u7528\u6210\u529f\u7387\uff08API\uff09\u8fd9\u4e09\u4e2a\u65b9\u9762\u76d1\u6d4bWeb\u548c\u5c0f\u7a0b\u5e8f\u9875\u9762\u7684\u5065\u5eb7\u5ea6\u3002",source:"@site/docs/study/fe/ARMS\u524d\u7aef\u76d1\u63a7.md",sourceDirName:"study/fe",slug:"/study/fe/ARMS\u524d\u7aef\u76d1\u63a7",permalink:"/docs/study/fe/ARMS\u524d\u7aef\u76d1\u63a7",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u524d\u7aef\u6a21\u5757\u5316",permalink:"/docs/study/fe/\u524d\u7aef\u6a21\u5757\u5316"},next:{title:"Flutter\u5f00\u53d1\u95ee\u9898\u8bb0\u5f55",permalink:"/docs/study/fe/Flutter\u5f00\u53d1\u95ee\u9898\u8bb0\u5f55"}},i={},c=[{value:"\u4e3a\u4ec0\u4e48\u8981\u6709\u524d\u7aef\u76d1\u63a7\uff1f",id:"\u4e3a\u4ec0\u4e48\u8981\u6709\u524d\u7aef\u76d1\u63a7",level:3},{value:"\u6211\u4eec\u7684\u89e3\u51b3\u65b9\u6848",id:"\u6211\u4eec\u7684\u89e3\u51b3\u65b9\u6848",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],p={toc:c},s="wrapper";function y(e){let{components:t,...r}=e;return(0,l.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,l.yg)("p",null,"ARMS\u524d\u7aef\u76d1\u63a7\u4e13\u6ce8\u4e8e\u5bf9Web\u573a\u666f\u3001Weex\u573a\u666f\u548c\u5c0f\u7a0b\u5e8f\u573a\u666f\u7684\u76d1\u63a7\uff0c\u4ece\u9875\u9762\u6253\u5f00\u901f\u5ea6\uff08\u6d4b\u901f\uff09\u3001\u9875\u9762\u7a33\u5b9a\u6027\uff08JS\u8bca\u65ad\u9519\u8bef\uff09\u548c\u5916\u90e8\u670d\u52a1\u8c03\u7528\u6210\u529f\u7387\uff08API\uff09\u8fd9\u4e09\u4e2a\u65b9\u9762\u76d1\u6d4bWeb\u548c\u5c0f\u7a0b\u5e8f\u9875\u9762\u7684\u5065\u5eb7\u5ea6\u3002"),(0,l.yg)("h3",{id:"\u4e3a\u4ec0\u4e48\u8981\u6709\u524d\u7aef\u76d1\u63a7"},"\u4e3a\u4ec0\u4e48\u8981\u6709\u524d\u7aef\u76d1\u63a7\uff1f"),(0,l.yg)("p",null,"\u7528\u6237\u8bbf\u95ee\u60a8\u7684\u4e1a\u52a1\u65f6\uff0c\u6574\u4e2a\u8bbf\u95ee\u8fc7\u7a0b\u5927\u81f4\u53ef\u4ee5\u5206\u4e3a\u4e09\u4e2a\u9636\u6bb5\uff1a\u9875\u9762\u751f\u4ea7\u65f6\uff08\u670d\u52a1\u5668\u7aef\u72b6\u6001\uff09\u3001\u9875\u9762\u52a0\u8f7d\u65f6\u548c\u9875\u9762\u8fd0\u884c\u65f6\u3002"),(0,l.yg)("p",null,"\u4e3a\u4e86\u4fdd\u8bc1\u7ebf\u4e0a\u4e1a\u52a1\u7a33\u5b9a\u8fd0\u884c\uff0c\u6211\u4eec\u4f1a\u5728\u670d\u52a1\u5668\u7aef\u5bf9\u4e1a\u52a1\u7684\u8fd0\u884c\u72b6\u6001\u8fdb\u884c\u5404\u79cd\u76d1\u63a7\u3002\u73b0\u6709\u7684\u670d\u52a1\u5668\u7aef\u76d1\u63a7\u7cfb\u7edf\u76f8\u5bf9\u5df2\u7ecf\u5f88\u6210\u719f\uff0c\u800c\u9875\u9762\u52a0\u8f7d\u548c\u9875\u9762\u8fd0\u884c\u65f6\u7684\u72b6\u6001\u76d1\u63a7\u4e00\u76f4\u6bd4\u8f83\u6b20\u7f3a\u3002\u4f8b\u5982\uff1a"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u65e0\u6cd5\u7b2c\u4e00\u65f6\u95f4\u83b7\u77e5\u7528\u6237\u8bbf\u95ee\u60a8\u7684\u7ad9\u70b9\u65f6\u9047\u5230\u7684\u9519\u8bef\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u5404\u4e2a\u56fd\u5bb6\u3001\u5404\u4e2a\u5730\u533a\u7684\u7528\u6237\u8bbf\u95ee\u60a8\u7684\u7ad9\u70b9\u7684\u771f\u5b9e\u901f\u5ea6\u672a\u77e5\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u6bcf\u4e2a\u5e94\u7528\u5185\u6709\u5927\u91cf\u7684\u5f02\u6b65\u6570\u636e\u8c03\u7528\uff0c\u800c\u5b83\u4eec\u7684\u6027\u80fd\u3001\u6210\u529f\u7387\u90fd\u662f\u672a\u77e5\u7684\u3002")),(0,l.yg)("h3",{id:"\u6211\u4eec\u7684\u89e3\u51b3\u65b9\u6848"},"\u6211\u4eec\u7684\u89e3\u51b3\u65b9\u6848"),(0,l.yg)("p",null,"ARMS\u524d\u7aef\u76d1\u63a7\u91cd\u70b9\u76d1\u63a7\u9875\u9762\u7684\u52a0\u8f7d\u8fc7\u7a0b\u548c\u8fd0\u884c\u65f6\u72b6\u6001\uff0c\u540c\u65f6\u5c06\u9875\u9762\u52a0\u8f7d\u6027\u80fd\u3001\u8fd0\u884c\u65f6\u5f02\u5e38\u4ee5\u53caAPI\u8c03\u7528\u72b6\u6001\u548c\u8017\u65f6\u7b49\u6570\u636e\uff0c\u4e0a\u62a5\u5230\u65e5\u5fd7\u670d\u52a1\u5668\u3002\u4e4b\u540e\u501f\u52a9ARMS\u63d0\u4f9b\u7684\u6d77\u91cf\u5b9e\u65f6\u65e5\u5fd7\u5206\u6790\u548c\u5904\u7406\u670d\u52a1\uff0c\u5bf9\u5f53\u524d\u7ebf\u4e0a\u6240\u6709\u771f\u5b9e\u7528\u6237\u7684\u8bbf\u95ee\u60c5\u51b5\u8fdb\u884c\u76d1\u63a7\u3002\u6700\u540e\u901a\u8fc7\u76f4\u89c2\u7684\u62a5\u8868\u5c55\u793a\uff0c\u5e2e\u52a9\u60a8\u53ca\u65f6\u53d1\u73b0\u5e76\u8bca\u65ad\u95ee\u9898\u3002"),(0,l.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://help.aliyun.com/document_detail/58652.html?spm=a2c4g.91587.0.0.28c94e85lQHFGu"},"\u4ec0\u4e48\u662fARMS\u524d\u7aef\u76d1\u63a7\uff1f"))))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1b25ada3.d8a21729.js b/assets/js/1b25ada3.e67ac2c2.js similarity index 99% rename from assets/js/1b25ada3.d8a21729.js rename to assets/js/1b25ada3.e67ac2c2.js index 98dddc17c..d030d3337 100644 --- a/assets/js/1b25ada3.d8a21729.js +++ b/assets/js/1b25ada3.e67ac2c2.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[842],{5680:(e,l,t)=>{t.d(l,{xA:()=>d,yg:()=>s});var n=t(6540);function u(e,l,t){return l in e?Object.defineProperty(e,l,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[l]=t,e}function r(e,l){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);l&&(n=n.filter((function(l){return Object.getOwnPropertyDescriptor(e,l).enumerable}))),t.push.apply(t,n)}return t}function i(e){for(var l=1;l=0||(u[t]=e[t]);return u}(e,l);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(u[t]=e[t])}return u}var c=n.createContext({}),o=function(e){var l=n.useContext(c),t=l;return e&&(t="function"==typeof e?e(l):i(i({},l),e)),t},d=function(e){var l=o(e.components);return n.createElement(c.Provider,{value:l},e.children)},y="mdxType",p={inlineCode:"code",wrapper:function(e){var l=e.children;return n.createElement(n.Fragment,{},l)}},g=n.forwardRef((function(e,l){var t=e.components,u=e.mdxType,r=e.originalType,c=e.parentName,d=a(e,["components","mdxType","originalType","parentName"]),y=o(t),g=u,s=y["".concat(c,".").concat(g)]||y[g]||p[g]||r;return t?n.createElement(s,i(i({ref:l},d),{},{components:t})):n.createElement(s,i({ref:l},d))}));function s(e,l){var t=arguments,u=l&&l.mdxType;if("string"==typeof e||u){var r=t.length,i=new Array(r);i[0]=g;var a={};for(var c in l)hasOwnProperty.call(l,c)&&(a[c]=l[c]);a.originalType=e,a[y]="string"==typeof e?e:u,i[1]=a;for(var o=2;o{t.r(l),t.d(l,{assets:()=>c,contentTitle:()=>i,default:()=>p,frontMatter:()=>r,metadata:()=>a,toc:()=>o});var n=t(8168),u=(t(6540),t(5680));const r={sidebar_position:3},i="MQTT \u8bbe\u5907\u63a5\u5165",a={unversionedId:"iotcloud/connect/mqtt",id:"iotcloud/connect/mqtt",title:"MQTT \u8bbe\u5907\u63a5\u5165",description:"\u6211\u89c9\u5f97\u5927\u6982\u5206\u4e24\u79cd\u6a21\u5f0f\uff1a",source:"@site/docs/iotcloud/connect/mqtt.md",sourceDirName:"iotcloud/connect",slug:"/iotcloud/connect/mqtt",permalink:"/docs/iotcloud/connect/mqtt",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"iotCloudSidebar",previous:{title:"\u6982\u8ff0",permalink:"/docs/iotcloud/connect/"},next:{title:"TCP \u8bbe\u5907\u63a5\u5165",permalink:"/docs/iotcloud/connect/tcp"}},c={},o=[{value:"\u8bbe\u5907 connect",id:"\u8bbe\u5907-connect",level:3},{value:"\u8bbe\u5907\u5bf9\u63a5\u672c\u5e73\u53f0\u7684\u5c5e\u6027\u534f\u8bae",id:"\u8bbe\u5907\u5bf9\u63a5\u672c\u5e73\u53f0\u7684\u5c5e\u6027\u534f\u8bae",level:3},{value:"\u8bbe\u5907\u4e0a\u62a5\u5c5e\u6027",id:"\u8bbe\u5907\u4e0a\u62a5\u5c5e\u6027",level:4},{value:"\u7528\u6237\u5199\u5165\u5c5e\u6027",id:"\u7528\u6237\u5199\u5165\u5c5e\u6027",level:4},{value:"\u8bbe\u5907\u5bf9\u63a5\u672c\u5e73\u53f0\u7684\u900f\u4f20\u534f\u8bae",id:"\u8bbe\u5907\u5bf9\u63a5\u672c\u5e73\u53f0\u7684\u900f\u4f20\u534f\u8bae",level:3},{value:"\u8bbe\u5907\u4e0a\u62a5\u900f\u4f20\u6570\u636e",id:"\u8bbe\u5907\u4e0a\u62a5\u900f\u4f20\u6570\u636e",level:4},{value:"\u7528\u6237\u5199\u5165\u5c5e\u6027",id:"\u7528\u6237\u5199\u5165\u5c5e\u6027-1",level:4},{value:"\u4e3e\u4f8b\u8bf4\u660e",id:"\u4e3e\u4f8b\u8bf4\u660e",level:3},{value:"\u81ea\u884c\u5b9e\u73b0",id:"\u81ea\u884c\u5b9e\u73b0",level:4},{value:"\u5854\u77f3 DTU",id:"\u5854\u77f3-dtu",level:4},{value:"\u6709\u4eba DTU",id:"\u6709\u4eba-dtu",level:4},{value:"\u56db\u4fe1 DTU",id:"\u56db\u4fe1-dtu",level:4}],d={toc:o},y="wrapper";function p(e){let{components:l,...t}=e;return(0,u.yg)(y,(0,n.A)({},d,t,{components:l,mdxType:"MDXLayout"}),(0,u.yg)("h1",{id:"mqtt-\u8bbe\u5907\u63a5\u5165"},"MQTT \u8bbe\u5907\u63a5\u5165"),(0,u.yg)("p",null,"\u6211\u89c9\u5f97\u5927\u6982\u5206\u4e24\u79cd\u6a21\u5f0f\uff1a"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"\u8bbe\u5907\u5bf9\u63a5\u672c\u5e73\u53f0\u7684\u5c5e\u6027\u534f\u8bae"),(0,u.yg)("li",{parentName:"ul"},"\u8bbe\u5907\u5bf9\u63a5\u672c\u5e73\u53f0\u7684\u900f\u4f20\u534f\u8bae")),(0,u.yg)("p",null,"\u4e24\u79cd\u6a21\u5f0f\u7684\u8bbe\u5907 connect \u662f\u4e00\u6837\u7684\u3002"),(0,u.yg)("h3",{id:"\u8bbe\u5907-connect"},"\u8bbe\u5907 connect"),(0,u.yg)("hr",null),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"ClientID device:{deviceCode} \u4e3e\u4f8b\uff1adevice:XoVnVQ2"),(0,u.yg)("li",{parentName:"ul"},"Username {deviceCode} \u4e3e\u4f8b\uff1aXoVnVQ2"),(0,u.yg)("li",{parentName:"ul"},"Password {devicePwd} \u4e3e\u4f8b\uff1aYXOsHbV")),(0,u.yg)("p",null,"\u8fde\u63a5\u6210\u529f\u540e\uff0c\u9ed8\u8ba4\u8ba2\u9605"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"/device/${device.code}/attributes/d")),(0,u.yg)("p",null,"\u53ef\u6839\u636e\u5177\u4f53\u5e94\u7528\u573a\u666f\uff0c\u53d1\u5e03"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"/device/${device.code}/attributes/u"),(0,u.yg)("li",{parentName:"ul"},"/device/${device.code}/attributes/req/u")),(0,u.yg)("p",null,"\u53ef\u6839\u636e\u5177\u4f53\u5e94\u7528\u573a\u666f\uff0c\u8ba2\u9605"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"/device/${device.code}/attributes/res/d")),(0,u.yg)("h3",{id:"\u8bbe\u5907\u5bf9\u63a5\u672c\u5e73\u53f0\u7684\u5c5e\u6027\u534f\u8bae"},"\u8bbe\u5907\u5bf9\u63a5\u672c\u5e73\u53f0\u7684\u5c5e\u6027\u534f\u8bae"),(0,u.yg)("h4",{id:"\u8bbe\u5907\u4e0a\u62a5\u5c5e\u6027"},"\u8bbe\u5907\u4e0a\u62a5\u5c5e\u6027"),(0,u.yg)("hr",null),(0,u.yg)("p",null,"\u6570\u636e\u6d41\u5411"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"\u8bbe\u5907 >> \u4e91\u7aef >> \u7528\u6237")),(0,u.yg)("p",null,"\u5141\u8bb8\u5c5e\u6027\u7c7b\u578b"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"\u8bbe\u5907\u4e0a\u62a5"),(0,u.yg)("li",{parentName:"ul"},"\u8bbe\u5907\u4e91\u7aef\u5171\u4eab")),(0,u.yg)("p",null,"topic"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"/device/${device.code}/attributes/u"),(0,u.yg)("li",{parentName:"ul"},"/account/${user.account}/${device.code}/attributes/d")),(0,u.yg)("p",null,"plyload"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"[attributeCode:string]"," : ","[value:number|string]")),(0,u.yg)("h4",{id:"\u7528\u6237\u5199\u5165\u5c5e\u6027"},"\u7528\u6237\u5199\u5165\u5c5e\u6027"),(0,u.yg)("hr",null),(0,u.yg)("p",null,"\u6570\u636e\u6d41\u5411"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"\u7528\u6237 >> \u4e91\u7aef >> \u8bbe\u5907")),(0,u.yg)("p",null,"\u5141\u8bb8\u5c5e\u6027\u7c7b\u578b"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"\u4e91\u7aef\u4e0b\u53d1"),(0,u.yg)("li",{parentName:"ul"},"\u8bbe\u5907\u4e91\u7aef\u5171\u4eab \u6ce8\uff1a\u4e91\u7aef\u6536\u5230\u6b64\u5c5e\u6027\u540e\uff0c\u4f1a\u7acb\u5373\u5b58\u50a8\uff1b\u8bbe\u5907\u6536\u5230\u6b64\u5c5e\u6027\u540e\uff0c\u5e94\u8be5\u7acb\u5373\u4e0a\u62a5\uff1b"),(0,u.yg)("li",{parentName:"ul"},"\u4e91\u7aef\u79c1\u6709 \u6ce8\uff1a\u6b64\u7c7b\u5c5e\u6027\u53ea\u4f1a\u5230\u4e91\u7aef\uff0c\u4e0d\u4f1a\u4e0b\u53d1\u7ed9\u8bbe\u5907")),(0,u.yg)("p",null,"topic"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"/account/${user.account}/${device.code}/attributes/u"),(0,u.yg)("li",{parentName:"ul"},"/device/${device.code}/attributes/d")),(0,u.yg)("p",null,"plyload"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"[attributeCode:string]"," : ","[value:number|string]")),(0,u.yg)("h3",{id:"\u8bbe\u5907\u5bf9\u63a5\u672c\u5e73\u53f0\u7684\u900f\u4f20\u534f\u8bae"},"\u8bbe\u5907\u5bf9\u63a5\u672c\u5e73\u53f0\u7684\u900f\u4f20\u534f\u8bae"),(0,u.yg)("h4",{id:"\u8bbe\u5907\u4e0a\u62a5\u900f\u4f20\u6570\u636e"},"\u8bbe\u5907\u4e0a\u62a5\u900f\u4f20\u6570\u636e"),(0,u.yg)("hr",null),(0,u.yg)("p",null,"\u6570\u636e\u6d41\u5411"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"\u8bbe\u5907 >> \u4e91\u7aef >> \u7528\u6237")),(0,u.yg)("p",null,"\u5141\u8bb8\u5c5e\u6027\u7c7b\u578b"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"\u8bbe\u5907\u4e0a\u62a5"),(0,u.yg)("li",{parentName:"ul"},"\u8bbe\u5907\u4e91\u7aef\u5171\u4eab")),(0,u.yg)("p",null,"topic"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"/device/${device.code}/t/u"),(0,u.yg)("li",{parentName:"ul"},"\u534f\u8bae\u89e3\u6790\u540e\u6a21\u62df /device/${device.code}/attributes/u"),(0,u.yg)("li",{parentName:"ul"},"/account/${user.account}/${device.code}/attributes/d")),(0,u.yg)("p",null,"plyload"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"[attributeCode:string]"," : ","[value:number|string]")),(0,u.yg)("h4",{id:"\u7528\u6237\u5199\u5165\u5c5e\u6027-1"},"\u7528\u6237\u5199\u5165\u5c5e\u6027"),(0,u.yg)("hr",null),(0,u.yg)("p",null,"\u6570\u636e\u6d41\u5411"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"\u7528\u6237 >> \u4e91\u7aef >> \u8bbe\u5907")),(0,u.yg)("p",null,"\u5141\u8bb8\u5c5e\u6027\u7c7b\u578b"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"\u4e91\u7aef\u4e0b\u53d1"),(0,u.yg)("li",{parentName:"ul"},"\u8bbe\u5907\u4e91\u7aef\u5171\u4eab \u6ce8\uff1a\u4e91\u7aef\u6536\u5230\u6b64\u5c5e\u6027\u540e\uff0c\u4f1a\u7acb\u5373\u5b58\u50a8\uff1b\u8bbe\u5907\u6536\u5230\u6b64\u5c5e\u6027\u540e\uff0c\u5e94\u8be5\u7acb\u5373\u4e0a\u62a5\uff1b"),(0,u.yg)("li",{parentName:"ul"},"\u4e91\u7aef\u79c1\u6709 \u6ce8\uff1a\u6b64\u7c7b\u5c5e\u6027\u53ea\u4f1a\u5230\u4e91\u7aef\uff0c\u4e0d\u4f1a\u4e0b\u53d1\u7ed9\u8bbe\u5907")),(0,u.yg)("p",null,"topic"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"/account/${user.account}/${device.code}/attributes/u"),(0,u.yg)("li",{parentName:"ul"},"\u534f\u8bae\u89e3\u6790\u540e\u6a21\u62df /device/${device.code}/t/d")),(0,u.yg)("p",null,"plyload"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"[attributeCode:string]"," : ","[value:number|string]")),(0,u.yg)("h3",{id:"\u4e3e\u4f8b\u8bf4\u660e"},"\u4e3e\u4f8b\u8bf4\u660e"),(0,u.yg)("h4",{id:"\u81ea\u884c\u5b9e\u73b0"},"\u81ea\u884c\u5b9e\u73b0"),(0,u.yg)("p",null,"\u6709\u8bbe\u5907\u7aef\u7814\u53d1\u80fd\u529b\u7684\u53ef\u4ee5\u6839\u636e\u4e0a\u9762\u7684\u534f\u8bae\u81ea\u884c\u7814\u53d1\u5b9e\u73b0\u3002"),(0,u.yg)("p",null,"\u6216\u8005\u8bbe\u5907\u91cf\u5927\u7684\uff0c\u53ef\u4ee5\u8ba9 DTU \u6216\u6a21\u7ec4\u5382\u5546\u6839\u636e\u4e0a\u9762\u7684\u534f\u8bae\u5b9e\u73b0\u3002"),(0,u.yg)("p",null,"\u76ee\u524d\uff0c\u672c\u5e73\u53f0\u8fd8\u65e0\u6cd5\u505a\u5230\u8ba9\u4e0b\u9762\u7684 DTU \u5382\u5546\u5b9e\u73b0\u5c5e\u6027\u4ea4\u4e92\u534f\u8bae\uff0c\u4e0b\u9762\u4e3e\u4f8b\uff0c\u53ea\u4e3e\u4f8b\u900f\u4f20\u534f\u8bae\u65b9\u5f0f\u3002\n\u76f8\u5bf9\u4e8e MQTT \u900f\u4f20\uff0c100%\u7684 DTU \u5382\u5546\u90fd\u5b9e\u73b0\u4e86 TCP \u534f\u8bae\u63a5\u5165\uff0c\u5927\u5bb6\u8d2d\u4e70 DTU \u7684\u65f6\u5019\u8bf7\u4ed4\u7ec6\u8fa8\u522b\uff0c\u5e76\u975e\u6240\u6709\u7684 DTU \u90fd\u652f\u6301 MQTT \u900f\u4f20\u3002"),(0,u.yg)("h4",{id:"\u5854\u77f3-dtu"},"\u5854\u77f3 DTU"),(0,u.yg)("h4",{id:"\u6709\u4eba-dtu"},"\u6709\u4eba DTU"),(0,u.yg)("h4",{id:"\u56db\u4fe1-dtu"},"\u56db\u4fe1 DTU"))}p.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[842],{5680:(e,l,t)=>{t.d(l,{xA:()=>d,yg:()=>s});var n=t(6540);function u(e,l,t){return l in e?Object.defineProperty(e,l,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[l]=t,e}function r(e,l){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);l&&(n=n.filter((function(l){return Object.getOwnPropertyDescriptor(e,l).enumerable}))),t.push.apply(t,n)}return t}function i(e){for(var l=1;l=0||(u[t]=e[t]);return u}(e,l);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(u[t]=e[t])}return u}var c=n.createContext({}),o=function(e){var l=n.useContext(c),t=l;return e&&(t="function"==typeof e?e(l):i(i({},l),e)),t},d=function(e){var l=o(e.components);return n.createElement(c.Provider,{value:l},e.children)},y="mdxType",p={inlineCode:"code",wrapper:function(e){var l=e.children;return n.createElement(n.Fragment,{},l)}},g=n.forwardRef((function(e,l){var t=e.components,u=e.mdxType,r=e.originalType,c=e.parentName,d=a(e,["components","mdxType","originalType","parentName"]),y=o(t),g=u,s=y["".concat(c,".").concat(g)]||y[g]||p[g]||r;return t?n.createElement(s,i(i({ref:l},d),{},{components:t})):n.createElement(s,i({ref:l},d))}));function s(e,l){var t=arguments,u=l&&l.mdxType;if("string"==typeof e||u){var r=t.length,i=new Array(r);i[0]=g;var a={};for(var c in l)hasOwnProperty.call(l,c)&&(a[c]=l[c]);a.originalType=e,a[y]="string"==typeof e?e:u,i[1]=a;for(var o=2;o{t.r(l),t.d(l,{assets:()=>c,contentTitle:()=>i,default:()=>p,frontMatter:()=>r,metadata:()=>a,toc:()=>o});var n=t(8168),u=(t(6540),t(5680));const r={sidebar_position:3},i="MQTT \u8bbe\u5907\u63a5\u5165",a={unversionedId:"iotcloud/connect/mqtt",id:"iotcloud/connect/mqtt",title:"MQTT \u8bbe\u5907\u63a5\u5165",description:"\u6211\u89c9\u5f97\u5927\u6982\u5206\u4e24\u79cd\u6a21\u5f0f\uff1a",source:"@site/docs/iotcloud/connect/mqtt.md",sourceDirName:"iotcloud/connect",slug:"/iotcloud/connect/mqtt",permalink:"/docs/iotcloud/connect/mqtt",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"iotCloudSidebar",previous:{title:"\u6982\u8ff0",permalink:"/docs/iotcloud/connect/"},next:{title:"TCP \u8bbe\u5907\u63a5\u5165",permalink:"/docs/iotcloud/connect/tcp"}},c={},o=[{value:"\u8bbe\u5907 connect",id:"\u8bbe\u5907-connect",level:3},{value:"\u8bbe\u5907\u5bf9\u63a5\u672c\u5e73\u53f0\u7684\u5c5e\u6027\u534f\u8bae",id:"\u8bbe\u5907\u5bf9\u63a5\u672c\u5e73\u53f0\u7684\u5c5e\u6027\u534f\u8bae",level:3},{value:"\u8bbe\u5907\u4e0a\u62a5\u5c5e\u6027",id:"\u8bbe\u5907\u4e0a\u62a5\u5c5e\u6027",level:4},{value:"\u7528\u6237\u5199\u5165\u5c5e\u6027",id:"\u7528\u6237\u5199\u5165\u5c5e\u6027",level:4},{value:"\u8bbe\u5907\u5bf9\u63a5\u672c\u5e73\u53f0\u7684\u900f\u4f20\u534f\u8bae",id:"\u8bbe\u5907\u5bf9\u63a5\u672c\u5e73\u53f0\u7684\u900f\u4f20\u534f\u8bae",level:3},{value:"\u8bbe\u5907\u4e0a\u62a5\u900f\u4f20\u6570\u636e",id:"\u8bbe\u5907\u4e0a\u62a5\u900f\u4f20\u6570\u636e",level:4},{value:"\u7528\u6237\u5199\u5165\u5c5e\u6027",id:"\u7528\u6237\u5199\u5165\u5c5e\u6027-1",level:4},{value:"\u4e3e\u4f8b\u8bf4\u660e",id:"\u4e3e\u4f8b\u8bf4\u660e",level:3},{value:"\u81ea\u884c\u5b9e\u73b0",id:"\u81ea\u884c\u5b9e\u73b0",level:4},{value:"\u5854\u77f3 DTU",id:"\u5854\u77f3-dtu",level:4},{value:"\u6709\u4eba DTU",id:"\u6709\u4eba-dtu",level:4},{value:"\u56db\u4fe1 DTU",id:"\u56db\u4fe1-dtu",level:4}],d={toc:o},y="wrapper";function p(e){let{components:l,...t}=e;return(0,u.yg)(y,(0,n.A)({},d,t,{components:l,mdxType:"MDXLayout"}),(0,u.yg)("h1",{id:"mqtt-\u8bbe\u5907\u63a5\u5165"},"MQTT \u8bbe\u5907\u63a5\u5165"),(0,u.yg)("p",null,"\u6211\u89c9\u5f97\u5927\u6982\u5206\u4e24\u79cd\u6a21\u5f0f\uff1a"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"\u8bbe\u5907\u5bf9\u63a5\u672c\u5e73\u53f0\u7684\u5c5e\u6027\u534f\u8bae"),(0,u.yg)("li",{parentName:"ul"},"\u8bbe\u5907\u5bf9\u63a5\u672c\u5e73\u53f0\u7684\u900f\u4f20\u534f\u8bae")),(0,u.yg)("p",null,"\u4e24\u79cd\u6a21\u5f0f\u7684\u8bbe\u5907 connect \u662f\u4e00\u6837\u7684\u3002"),(0,u.yg)("h3",{id:"\u8bbe\u5907-connect"},"\u8bbe\u5907 connect"),(0,u.yg)("hr",null),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"ClientID device:{deviceCode} \u4e3e\u4f8b\uff1adevice:XoVnVQ2"),(0,u.yg)("li",{parentName:"ul"},"Username {deviceCode} \u4e3e\u4f8b\uff1aXoVnVQ2"),(0,u.yg)("li",{parentName:"ul"},"Password {devicePwd} \u4e3e\u4f8b\uff1aYXOsHbV")),(0,u.yg)("p",null,"\u8fde\u63a5\u6210\u529f\u540e\uff0c\u9ed8\u8ba4\u8ba2\u9605"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"/device/${device.code}/attributes/d")),(0,u.yg)("p",null,"\u53ef\u6839\u636e\u5177\u4f53\u5e94\u7528\u573a\u666f\uff0c\u53d1\u5e03"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"/device/${device.code}/attributes/u"),(0,u.yg)("li",{parentName:"ul"},"/device/${device.code}/attributes/req/u")),(0,u.yg)("p",null,"\u53ef\u6839\u636e\u5177\u4f53\u5e94\u7528\u573a\u666f\uff0c\u8ba2\u9605"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"/device/${device.code}/attributes/res/d")),(0,u.yg)("h3",{id:"\u8bbe\u5907\u5bf9\u63a5\u672c\u5e73\u53f0\u7684\u5c5e\u6027\u534f\u8bae"},"\u8bbe\u5907\u5bf9\u63a5\u672c\u5e73\u53f0\u7684\u5c5e\u6027\u534f\u8bae"),(0,u.yg)("h4",{id:"\u8bbe\u5907\u4e0a\u62a5\u5c5e\u6027"},"\u8bbe\u5907\u4e0a\u62a5\u5c5e\u6027"),(0,u.yg)("hr",null),(0,u.yg)("p",null,"\u6570\u636e\u6d41\u5411"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"\u8bbe\u5907 >> \u4e91\u7aef >> \u7528\u6237")),(0,u.yg)("p",null,"\u5141\u8bb8\u5c5e\u6027\u7c7b\u578b"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"\u8bbe\u5907\u4e0a\u62a5"),(0,u.yg)("li",{parentName:"ul"},"\u8bbe\u5907\u4e91\u7aef\u5171\u4eab")),(0,u.yg)("p",null,"topic"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"/device/${device.code}/attributes/u"),(0,u.yg)("li",{parentName:"ul"},"/account/${user.account}/${device.code}/attributes/d")),(0,u.yg)("p",null,"plyload"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"[attributeCode:string]"," : ","[value:number|string]")),(0,u.yg)("h4",{id:"\u7528\u6237\u5199\u5165\u5c5e\u6027"},"\u7528\u6237\u5199\u5165\u5c5e\u6027"),(0,u.yg)("hr",null),(0,u.yg)("p",null,"\u6570\u636e\u6d41\u5411"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"\u7528\u6237 >> \u4e91\u7aef >> \u8bbe\u5907")),(0,u.yg)("p",null,"\u5141\u8bb8\u5c5e\u6027\u7c7b\u578b"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"\u4e91\u7aef\u4e0b\u53d1"),(0,u.yg)("li",{parentName:"ul"},"\u8bbe\u5907\u4e91\u7aef\u5171\u4eab \u6ce8\uff1a\u4e91\u7aef\u6536\u5230\u6b64\u5c5e\u6027\u540e\uff0c\u4f1a\u7acb\u5373\u5b58\u50a8\uff1b\u8bbe\u5907\u6536\u5230\u6b64\u5c5e\u6027\u540e\uff0c\u5e94\u8be5\u7acb\u5373\u4e0a\u62a5\uff1b"),(0,u.yg)("li",{parentName:"ul"},"\u4e91\u7aef\u79c1\u6709 \u6ce8\uff1a\u6b64\u7c7b\u5c5e\u6027\u53ea\u4f1a\u5230\u4e91\u7aef\uff0c\u4e0d\u4f1a\u4e0b\u53d1\u7ed9\u8bbe\u5907")),(0,u.yg)("p",null,"topic"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"/account/${user.account}/${device.code}/attributes/u"),(0,u.yg)("li",{parentName:"ul"},"/device/${device.code}/attributes/d")),(0,u.yg)("p",null,"plyload"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"[attributeCode:string]"," : ","[value:number|string]")),(0,u.yg)("h3",{id:"\u8bbe\u5907\u5bf9\u63a5\u672c\u5e73\u53f0\u7684\u900f\u4f20\u534f\u8bae"},"\u8bbe\u5907\u5bf9\u63a5\u672c\u5e73\u53f0\u7684\u900f\u4f20\u534f\u8bae"),(0,u.yg)("h4",{id:"\u8bbe\u5907\u4e0a\u62a5\u900f\u4f20\u6570\u636e"},"\u8bbe\u5907\u4e0a\u62a5\u900f\u4f20\u6570\u636e"),(0,u.yg)("hr",null),(0,u.yg)("p",null,"\u6570\u636e\u6d41\u5411"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"\u8bbe\u5907 >> \u4e91\u7aef >> \u7528\u6237")),(0,u.yg)("p",null,"\u5141\u8bb8\u5c5e\u6027\u7c7b\u578b"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"\u8bbe\u5907\u4e0a\u62a5"),(0,u.yg)("li",{parentName:"ul"},"\u8bbe\u5907\u4e91\u7aef\u5171\u4eab")),(0,u.yg)("p",null,"topic"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"/device/${device.code}/t/u"),(0,u.yg)("li",{parentName:"ul"},"\u534f\u8bae\u89e3\u6790\u540e\u6a21\u62df /device/${device.code}/attributes/u"),(0,u.yg)("li",{parentName:"ul"},"/account/${user.account}/${device.code}/attributes/d")),(0,u.yg)("p",null,"plyload"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"[attributeCode:string]"," : ","[value:number|string]")),(0,u.yg)("h4",{id:"\u7528\u6237\u5199\u5165\u5c5e\u6027-1"},"\u7528\u6237\u5199\u5165\u5c5e\u6027"),(0,u.yg)("hr",null),(0,u.yg)("p",null,"\u6570\u636e\u6d41\u5411"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"\u7528\u6237 >> \u4e91\u7aef >> \u8bbe\u5907")),(0,u.yg)("p",null,"\u5141\u8bb8\u5c5e\u6027\u7c7b\u578b"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"\u4e91\u7aef\u4e0b\u53d1"),(0,u.yg)("li",{parentName:"ul"},"\u8bbe\u5907\u4e91\u7aef\u5171\u4eab \u6ce8\uff1a\u4e91\u7aef\u6536\u5230\u6b64\u5c5e\u6027\u540e\uff0c\u4f1a\u7acb\u5373\u5b58\u50a8\uff1b\u8bbe\u5907\u6536\u5230\u6b64\u5c5e\u6027\u540e\uff0c\u5e94\u8be5\u7acb\u5373\u4e0a\u62a5\uff1b"),(0,u.yg)("li",{parentName:"ul"},"\u4e91\u7aef\u79c1\u6709 \u6ce8\uff1a\u6b64\u7c7b\u5c5e\u6027\u53ea\u4f1a\u5230\u4e91\u7aef\uff0c\u4e0d\u4f1a\u4e0b\u53d1\u7ed9\u8bbe\u5907")),(0,u.yg)("p",null,"topic"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"/account/${user.account}/${device.code}/attributes/u"),(0,u.yg)("li",{parentName:"ul"},"\u534f\u8bae\u89e3\u6790\u540e\u6a21\u62df /device/${device.code}/t/d")),(0,u.yg)("p",null,"plyload"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"[attributeCode:string]"," : ","[value:number|string]")),(0,u.yg)("h3",{id:"\u4e3e\u4f8b\u8bf4\u660e"},"\u4e3e\u4f8b\u8bf4\u660e"),(0,u.yg)("h4",{id:"\u81ea\u884c\u5b9e\u73b0"},"\u81ea\u884c\u5b9e\u73b0"),(0,u.yg)("p",null,"\u6709\u8bbe\u5907\u7aef\u7814\u53d1\u80fd\u529b\u7684\u53ef\u4ee5\u6839\u636e\u4e0a\u9762\u7684\u534f\u8bae\u81ea\u884c\u7814\u53d1\u5b9e\u73b0\u3002"),(0,u.yg)("p",null,"\u6216\u8005\u8bbe\u5907\u91cf\u5927\u7684\uff0c\u53ef\u4ee5\u8ba9 DTU \u6216\u6a21\u7ec4\u5382\u5546\u6839\u636e\u4e0a\u9762\u7684\u534f\u8bae\u5b9e\u73b0\u3002"),(0,u.yg)("p",null,"\u76ee\u524d\uff0c\u672c\u5e73\u53f0\u8fd8\u65e0\u6cd5\u505a\u5230\u8ba9\u4e0b\u9762\u7684 DTU \u5382\u5546\u5b9e\u73b0\u5c5e\u6027\u4ea4\u4e92\u534f\u8bae\uff0c\u4e0b\u9762\u4e3e\u4f8b\uff0c\u53ea\u4e3e\u4f8b\u900f\u4f20\u534f\u8bae\u65b9\u5f0f\u3002\n\u76f8\u5bf9\u4e8e MQTT \u900f\u4f20\uff0c100%\u7684 DTU \u5382\u5546\u90fd\u5b9e\u73b0\u4e86 TCP \u534f\u8bae\u63a5\u5165\uff0c\u5927\u5bb6\u8d2d\u4e70 DTU \u7684\u65f6\u5019\u8bf7\u4ed4\u7ec6\u8fa8\u522b\uff0c\u5e76\u975e\u6240\u6709\u7684 DTU \u90fd\u652f\u6301 MQTT \u900f\u4f20\u3002"),(0,u.yg)("h4",{id:"\u5854\u77f3-dtu"},"\u5854\u77f3 DTU"),(0,u.yg)("h4",{id:"\u6709\u4eba-dtu"},"\u6709\u4eba DTU"),(0,u.yg)("h4",{id:"\u56db\u4fe1-dtu"},"\u56db\u4fe1 DTU"))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1c123384.13b547c0.js b/assets/js/1c123384.6fcf45db.js similarity index 98% rename from assets/js/1c123384.13b547c0.js rename to assets/js/1c123384.6fcf45db.js index 278f174ec..1ac599725 100644 --- a/assets/js/1c123384.13b547c0.js +++ b/assets/js/1c123384.6fcf45db.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1084],{5680:(e,r,t)=>{t.d(r,{xA:()=>l,yg:()=>f});var n=t(6540);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function a(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function c(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var u=n.createContext({}),p=function(e){var r=n.useContext(u),t=r;return e&&(t="function"==typeof e?e(r):c(c({},r),e)),t},l=function(e){var r=p(e.components);return n.createElement(u.Provider,{value:r},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},y=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,a=e.originalType,u=e.parentName,l=i(e,["components","mdxType","originalType","parentName"]),s=p(t),y=o,f=s["".concat(u,".").concat(y)]||s[y]||d[y]||a;return t?n.createElement(f,c(c({ref:r},l),{},{components:t})):n.createElement(f,c({ref:r},l))}));function f(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var a=t.length,c=new Array(a);c[0]=y;var i={};for(var u in r)hasOwnProperty.call(r,u)&&(i[u]=r[u]);i.originalType=e,i[s]="string"==typeof e?e:o,c[1]=i;for(var p=2;p{t.r(r),t.d(r,{assets:()=>u,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>p});var n=t(8168),o=(t(6540),t(5680));const a={},c=void 0,i={unversionedId:"study/program/JAVA/Guice",id:"study/program/JAVA/Guice",title:"Guice",description:"\u80cc\u666f",source:"@site/docs/study/program/JAVA/Guice.md",sourceDirName:"study/program/JAVA",slug:"/study/program/JAVA/Guice",permalink:"/docs/study/program/JAVA/Guice",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"GraalVM",permalink:"/docs/study/program/JAVA/GraalVM"},next:{title:"JDK17-bin",permalink:"/docs/study/program/JAVA/JDK17-bin"}},u={},p=[{value:"\u80cc\u666f",id:"\u80cc\u666f",level:3}],l={toc:p},s="wrapper";function d(e){let{components:r,...t}=e;return(0,o.yg)(s,(0,n.A)({},l,t,{components:r,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u80cc\u666f"},"\u80cc\u666f"),(0,o.yg)("p",null,"Guice \u662f\u4e00\u4e2a\u5f00\u6e90\u7684\u3001\u57fa\u4e8e Java \u7684\u4f9d\u8d56\u6ce8\u5165\u6846\u67b6\u3002\u5b83\u662f\u8f7b\u91cf\u7ea7\u7684\uff0c\u7531 Google \u79ef\u6781\u5f00\u53d1/\u7ba1\u7406\u3002"),(0,o.yg)("p",null,"\u5728\u65e5\u5e38\u5199\u4e00\u4e9b\u5c0f\u5de5\u5177\u6216\u8005\u5c0f\u9879\u76ee\u7684\u65f6\u5019\uff0c\u6709\u4f9d\u8d56\u7ba1\u7406\u548c\u4f9d\u8d56\u6ce8\u5165\u7684\u9700\u6c42\uff0c\u4f46\u662fSpring(Boot)\u4f53\u7cfb\u4f5c\u4e3aDI\u6846\u67b6\u8fc7\u4e8e\u91cd\u91cf\u7ea7\uff0c\u4e8e\u662f\u9700\u8981\u8c03\u7814\u4e00\u6b3e\u5fae\u578b\u7684DI\u6846\u67b6\u3002Guice\u662fGoogle\u51fa\u54c1\u7684\u4e00\u6b3e\u8f7b\u91cf\u7ea7\u7684\u4f9d\u8d56\u6ce8\u5165\u6846\u67b6\uff0c\u4f7f\u7528\u5b83\u6709\u52a9\u4e8e\u89e3\u51b3\u9879\u76ee\u4e2d\u7684\u4f9d\u8d56\u6ce8\u5165\u95ee\u9898\uff0c\u63d0\u9ad8\u4e86\u53ef\u7ef4\u62a4\u6027\u548c\u7075\u6d3b\u6027\u3002\u76f8\u5bf9\u4e8e\u91cd\u91cf\u7ea7\u7684Spring(Boot)\u4f53\u7cfb\uff0cGuice\u9879\u76ee\u53ea\u6709\u4e00\u4e2a\u5c0f\u4e8e1MB\u7684\u6838\u5fc3\u6a21\u5757\uff0c\u5982\u679c\u6838\u5fc3\u9700\u6c42\u662fDI\uff08\u5176\u5b9eGuice\u4e5f\u63d0\u4f9b\u4e86\u5f88\u4f4e\u5c42\u6b21\u7684AOP\u5b9e\u73b0\uff09\uff0c\u90a3\u4e48Guice\u5e94\u8be5\u4f1a\u662f\u4e00\u4e2a\u5408\u9002\u7684\u5019\u9009\u65b9\u6848\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1084],{5680:(e,r,t)=>{t.d(r,{xA:()=>l,yg:()=>f});var n=t(6540);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function a(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function c(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var u=n.createContext({}),p=function(e){var r=n.useContext(u),t=r;return e&&(t="function"==typeof e?e(r):c(c({},r),e)),t},l=function(e){var r=p(e.components);return n.createElement(u.Provider,{value:r},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},y=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,a=e.originalType,u=e.parentName,l=i(e,["components","mdxType","originalType","parentName"]),s=p(t),y=o,f=s["".concat(u,".").concat(y)]||s[y]||d[y]||a;return t?n.createElement(f,c(c({ref:r},l),{},{components:t})):n.createElement(f,c({ref:r},l))}));function f(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var a=t.length,c=new Array(a);c[0]=y;var i={};for(var u in r)hasOwnProperty.call(r,u)&&(i[u]=r[u]);i.originalType=e,i[s]="string"==typeof e?e:o,c[1]=i;for(var p=2;p{t.r(r),t.d(r,{assets:()=>u,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>p});var n=t(8168),o=(t(6540),t(5680));const a={},c=void 0,i={unversionedId:"study/program/JAVA/Guice",id:"study/program/JAVA/Guice",title:"Guice",description:"\u80cc\u666f",source:"@site/docs/study/program/JAVA/Guice.md",sourceDirName:"study/program/JAVA",slug:"/study/program/JAVA/Guice",permalink:"/docs/study/program/JAVA/Guice",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"GraalVM",permalink:"/docs/study/program/JAVA/GraalVM"},next:{title:"JDK17-bin",permalink:"/docs/study/program/JAVA/JDK17-bin"}},u={},p=[{value:"\u80cc\u666f",id:"\u80cc\u666f",level:3}],l={toc:p},s="wrapper";function d(e){let{components:r,...t}=e;return(0,o.yg)(s,(0,n.A)({},l,t,{components:r,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u80cc\u666f"},"\u80cc\u666f"),(0,o.yg)("p",null,"Guice \u662f\u4e00\u4e2a\u5f00\u6e90\u7684\u3001\u57fa\u4e8e Java \u7684\u4f9d\u8d56\u6ce8\u5165\u6846\u67b6\u3002\u5b83\u662f\u8f7b\u91cf\u7ea7\u7684\uff0c\u7531 Google \u79ef\u6781\u5f00\u53d1/\u7ba1\u7406\u3002"),(0,o.yg)("p",null,"\u5728\u65e5\u5e38\u5199\u4e00\u4e9b\u5c0f\u5de5\u5177\u6216\u8005\u5c0f\u9879\u76ee\u7684\u65f6\u5019\uff0c\u6709\u4f9d\u8d56\u7ba1\u7406\u548c\u4f9d\u8d56\u6ce8\u5165\u7684\u9700\u6c42\uff0c\u4f46\u662fSpring(Boot)\u4f53\u7cfb\u4f5c\u4e3aDI\u6846\u67b6\u8fc7\u4e8e\u91cd\u91cf\u7ea7\uff0c\u4e8e\u662f\u9700\u8981\u8c03\u7814\u4e00\u6b3e\u5fae\u578b\u7684DI\u6846\u67b6\u3002Guice\u662fGoogle\u51fa\u54c1\u7684\u4e00\u6b3e\u8f7b\u91cf\u7ea7\u7684\u4f9d\u8d56\u6ce8\u5165\u6846\u67b6\uff0c\u4f7f\u7528\u5b83\u6709\u52a9\u4e8e\u89e3\u51b3\u9879\u76ee\u4e2d\u7684\u4f9d\u8d56\u6ce8\u5165\u95ee\u9898\uff0c\u63d0\u9ad8\u4e86\u53ef\u7ef4\u62a4\u6027\u548c\u7075\u6d3b\u6027\u3002\u76f8\u5bf9\u4e8e\u91cd\u91cf\u7ea7\u7684Spring(Boot)\u4f53\u7cfb\uff0cGuice\u9879\u76ee\u53ea\u6709\u4e00\u4e2a\u5c0f\u4e8e1MB\u7684\u6838\u5fc3\u6a21\u5757\uff0c\u5982\u679c\u6838\u5fc3\u9700\u6c42\u662fDI\uff08\u5176\u5b9eGuice\u4e5f\u63d0\u4f9b\u4e86\u5f88\u4f4e\u5c42\u6b21\u7684AOP\u5b9e\u73b0\uff09\uff0c\u90a3\u4e48Guice\u5e94\u8be5\u4f1a\u662f\u4e00\u4e2a\u5408\u9002\u7684\u5019\u9009\u65b9\u6848\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1c2262cb.86e99cde.js b/assets/js/1c2262cb.b08dddb7.js similarity index 98% rename from assets/js/1c2262cb.86e99cde.js rename to assets/js/1c2262cb.b08dddb7.js index 3c3cec75f..1547a4e32 100644 --- a/assets/js/1c2262cb.86e99cde.js +++ b/assets/js/1c2262cb.b08dddb7.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7420],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>m});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var i=n.createContext({}),u=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},s=function(e){var t=u(e.components);return n.createElement(i.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),p=u(r),y=o,m=p["".concat(i,".").concat(y)]||p[y]||d[y]||a;return r?n.createElement(m,l(l({ref:t},s),{},{components:r})):n.createElement(m,l({ref:t},s))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=y;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[p]="string"==typeof e?e:o,l[1]=c;for(var u=2;u{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={sidebar_position:7},l="RAM \u7528\u6237",c={unversionedId:"iotcloud/usercenter/system-user",id:"iotcloud/usercenter/system-user",title:"RAM \u7528\u6237",description:"\u672c\u6587\u4e3a\u60a8\u4ecb\u7ecd RAM\uff08Resource Access Management\uff09\u7528\u6237\u7684\u57fa\u672c\u6982\u5ff5\u3001\u4f7f\u7528\u6d41\u7a0b\u3001\u6700\u4f73\u5b9e\u8df5\u548c\u4f7f\u7528\u9650\u5236\u3002",source:"@site/docs/iotcloud/usercenter/system-user.md",sourceDirName:"iotcloud/usercenter",slug:"/iotcloud/usercenter/system-user",permalink:"/docs/iotcloud/usercenter/system-user",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:7,frontMatter:{sidebar_position:7},sidebar:"iotCloudSidebar",previous:{title:"\u7528\u6237\u8bbe\u7f6e",permalink:"/docs/iotcloud/usercenter/user-settings"},next:{title:"\u5ba2\u6237\u7ba1\u7406",permalink:"/docs/iotcloud/usercenter/customer"}},i={},u=[{value:"\u4ec0\u4e48\u662f RAM \u7528\u6237",id:"\u4ec0\u4e48\u662f-ram-\u7528\u6237",level:3},{value:"\u4f7f\u7528\u6d41\u7a0b",id:"\u4f7f\u7528\u6d41\u7a0b",level:3},{value:"\u6700\u4f73\u5b9e\u8df5",id:"\u6700\u4f73\u5b9e\u8df5",level:3},{value:"\u4f7f\u7528\u9650\u5236",id:"\u4f7f\u7528\u9650\u5236",level:3}],s={toc:u},p="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(p,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"ram-\u7528\u6237"},"RAM \u7528\u6237"),(0,o.yg)("p",null,"\u672c\u6587\u4e3a\u60a8\u4ecb\u7ecd RAM\uff08Resource Access Management\uff09\u7528\u6237\u7684\u57fa\u672c\u6982\u5ff5\u3001\u4f7f\u7528\u6d41\u7a0b\u3001\u6700\u4f73\u5b9e\u8df5\u548c\u4f7f\u7528\u9650\u5236\u3002"),(0,o.yg)("h3",{id:"\u4ec0\u4e48\u662f-ram-\u7528\u6237"},"\u4ec0\u4e48\u662f RAM \u7528\u6237"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"RAM \u7528\u6237\u53ea\u80fd\u7531\u6ce8\u518c\u7528\u6237\u521b\u5efa\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u4ed6\u53ea\u662f\u534f\u52a9\u6ce8\u518c\u7528\u6237\u7ba1\u7406\u7cfb\u7edf\u7684\uff0c\u4e0d\u5177\u6709\u8d44\u6e90\u7684\u6240\u5c5e\u6743\u9650\uff0c\u53d7\u63a7\u4e8e\u6ce8\u518c\u7528\u6237\uff1b"),(0,o.yg)("li",{parentName:"ul"},"RAM \u7528\u6237\u4e0d\u62e5\u6709\u8d44\u6e90\uff0c\u4e0d\u80fd\u72ec\u7acb\u8ba1\u91cf\u8ba1\u8d39\uff0c\u7531\u6240\u5c5e\u7684\u6ce8\u518c\u7528\u6237\u7edf\u4e00\u4ed8\u8d39\u3002")),(0,o.yg)("h3",{id:"\u4f7f\u7528\u6d41\u7a0b"},"\u4f7f\u7528\u6d41\u7a0b"),(0,o.yg)("p",null,"GIF \u56fe"),(0,o.yg)("h3",{id:"\u6700\u4f73\u5b9e\u8df5"},"\u6700\u4f73\u5b9e\u8df5"),(0,o.yg)("p",null,"GIF \u56fe"),(0,o.yg)("h3",{id:"\u4f7f\u7528\u9650\u5236"},"\u4f7f\u7528\u9650\u5236"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"\u4e0d\u80fd\u62e5\u6709\u3010\u7528\u6237\u4e2d\u5fc3-RAM \u7528\u6237\u3011\u7684\u6240\u6709\u529f\u80fd\u6743\u9650\uff1b")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7420],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>m});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var i=n.createContext({}),u=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},s=function(e){var t=u(e.components);return n.createElement(i.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),p=u(r),y=o,m=p["".concat(i,".").concat(y)]||p[y]||d[y]||a;return r?n.createElement(m,l(l({ref:t},s),{},{components:r})):n.createElement(m,l({ref:t},s))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=y;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[p]="string"==typeof e?e:o,l[1]=c;for(var u=2;u{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={sidebar_position:7},l="RAM \u7528\u6237",c={unversionedId:"iotcloud/usercenter/system-user",id:"iotcloud/usercenter/system-user",title:"RAM \u7528\u6237",description:"\u672c\u6587\u4e3a\u60a8\u4ecb\u7ecd RAM\uff08Resource Access Management\uff09\u7528\u6237\u7684\u57fa\u672c\u6982\u5ff5\u3001\u4f7f\u7528\u6d41\u7a0b\u3001\u6700\u4f73\u5b9e\u8df5\u548c\u4f7f\u7528\u9650\u5236\u3002",source:"@site/docs/iotcloud/usercenter/system-user.md",sourceDirName:"iotcloud/usercenter",slug:"/iotcloud/usercenter/system-user",permalink:"/docs/iotcloud/usercenter/system-user",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:7,frontMatter:{sidebar_position:7},sidebar:"iotCloudSidebar",previous:{title:"\u7528\u6237\u8bbe\u7f6e",permalink:"/docs/iotcloud/usercenter/user-settings"},next:{title:"\u5ba2\u6237\u7ba1\u7406",permalink:"/docs/iotcloud/usercenter/customer"}},i={},u=[{value:"\u4ec0\u4e48\u662f RAM \u7528\u6237",id:"\u4ec0\u4e48\u662f-ram-\u7528\u6237",level:3},{value:"\u4f7f\u7528\u6d41\u7a0b",id:"\u4f7f\u7528\u6d41\u7a0b",level:3},{value:"\u6700\u4f73\u5b9e\u8df5",id:"\u6700\u4f73\u5b9e\u8df5",level:3},{value:"\u4f7f\u7528\u9650\u5236",id:"\u4f7f\u7528\u9650\u5236",level:3}],s={toc:u},p="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(p,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"ram-\u7528\u6237"},"RAM \u7528\u6237"),(0,o.yg)("p",null,"\u672c\u6587\u4e3a\u60a8\u4ecb\u7ecd RAM\uff08Resource Access Management\uff09\u7528\u6237\u7684\u57fa\u672c\u6982\u5ff5\u3001\u4f7f\u7528\u6d41\u7a0b\u3001\u6700\u4f73\u5b9e\u8df5\u548c\u4f7f\u7528\u9650\u5236\u3002"),(0,o.yg)("h3",{id:"\u4ec0\u4e48\u662f-ram-\u7528\u6237"},"\u4ec0\u4e48\u662f RAM \u7528\u6237"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"RAM \u7528\u6237\u53ea\u80fd\u7531\u6ce8\u518c\u7528\u6237\u521b\u5efa\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u4ed6\u53ea\u662f\u534f\u52a9\u6ce8\u518c\u7528\u6237\u7ba1\u7406\u7cfb\u7edf\u7684\uff0c\u4e0d\u5177\u6709\u8d44\u6e90\u7684\u6240\u5c5e\u6743\u9650\uff0c\u53d7\u63a7\u4e8e\u6ce8\u518c\u7528\u6237\uff1b"),(0,o.yg)("li",{parentName:"ul"},"RAM \u7528\u6237\u4e0d\u62e5\u6709\u8d44\u6e90\uff0c\u4e0d\u80fd\u72ec\u7acb\u8ba1\u91cf\u8ba1\u8d39\uff0c\u7531\u6240\u5c5e\u7684\u6ce8\u518c\u7528\u6237\u7edf\u4e00\u4ed8\u8d39\u3002")),(0,o.yg)("h3",{id:"\u4f7f\u7528\u6d41\u7a0b"},"\u4f7f\u7528\u6d41\u7a0b"),(0,o.yg)("p",null,"GIF \u56fe"),(0,o.yg)("h3",{id:"\u6700\u4f73\u5b9e\u8df5"},"\u6700\u4f73\u5b9e\u8df5"),(0,o.yg)("p",null,"GIF \u56fe"),(0,o.yg)("h3",{id:"\u4f7f\u7528\u9650\u5236"},"\u4f7f\u7528\u9650\u5236"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"\u4e0d\u80fd\u62e5\u6709\u3010\u7528\u6237\u4e2d\u5fc3-RAM \u7528\u6237\u3011\u7684\u6240\u6709\u529f\u80fd\u6743\u9650\uff1b")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1c40b03d.54e3bf01.js b/assets/js/1c40b03d.9f44da13.js similarity index 97% rename from assets/js/1c40b03d.54e3bf01.js rename to assets/js/1c40b03d.9f44da13.js index cd4c364ea..626d0e3a4 100644 --- a/assets/js/1c40b03d.54e3bf01.js +++ b/assets/js/1c40b03d.9f44da13.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3180],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var u=n.createContext({}),a=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},s=function(e){var t=a(e.components);return n.createElement(u.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,l=e.originalType,u=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),p=a(r),y=o,f=p["".concat(u,".").concat(y)]||p[y]||d[y]||l;return r?n.createElement(f,c(c({ref:t},s),{},{components:r})):n.createElement(f,c({ref:t},s))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var l=r.length,c=new Array(l);c[0]=y;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[p]="string"==typeof e?e:o,c[1]=i;for(var a=2;a{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>c,default:()=>d,frontMatter:()=>l,metadata:()=>i,toc:()=>a});var n=r(8168),o=(r(6540),r(5680));const l={sidebar_position:9},c="\u5ba2\u6237\u7ba1\u7406",i={unversionedId:"iotcloud/usercenter/customer",id:"iotcloud/usercenter/customer",title:"\u5ba2\u6237\u7ba1\u7406",description:"\u672c\u6587\u4e3a\u60a8\u4ecb\u7ecd \u5ba2\u6237 \u7684\u57fa\u672c\u6982\u5ff5\u3001\u4f7f\u7528\u6d41\u7a0b\u3001\u6700\u4f73\u5b9e\u8df5\u548c\u4f7f\u7528\u9650\u5236\u3002",source:"@site/docs/iotcloud/usercenter/customer.md",sourceDirName:"iotcloud/usercenter",slug:"/iotcloud/usercenter/customer",permalink:"/docs/iotcloud/usercenter/customer",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:9,frontMatter:{sidebar_position:9},sidebar:"iotCloudSidebar",previous:{title:"RAM \u7528\u6237",permalink:"/docs/iotcloud/usercenter/system-user"}},u={},a=[{value:"\u4ec0\u4e48\u662f\u5ba2\u6237",id:"\u4ec0\u4e48\u662f\u5ba2\u6237",level:3},{value:"\u4f7f\u7528\u6d41\u7a0b",id:"\u4f7f\u7528\u6d41\u7a0b",level:3},{value:"\u6700\u4f73\u5b9e\u8df5",id:"\u6700\u4f73\u5b9e\u8df5",level:3},{value:"\u4f7f\u7528\u9650\u5236",id:"\u4f7f\u7528\u9650\u5236",level:3}],s={toc:a},p="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(p,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u5ba2\u6237\u7ba1\u7406"},"\u5ba2\u6237\u7ba1\u7406"),(0,o.yg)("p",null,"\u672c\u6587\u4e3a\u60a8\u4ecb\u7ecd \u5ba2\u6237 \u7684\u57fa\u672c\u6982\u5ff5\u3001\u4f7f\u7528\u6d41\u7a0b\u3001\u6700\u4f73\u5b9e\u8df5\u548c\u4f7f\u7528\u9650\u5236\u3002"),(0,o.yg)("h3",{id:"\u4ec0\u4e48\u662f\u5ba2\u6237"},"\u4ec0\u4e48\u662f\u5ba2\u6237"),(0,o.yg)("p",null,"\u6211\u4eec\u8ba4\u4e3a\u8fd9\u91cc\u7684\u5ba2\u6237\u662f\u7b80\u5355\u4f7f\u7528\u8bbe\u5907\u7684\u7528\u6237\uff0c\u4ed6\u4eec\u53ea\u9700\u8981\u7ba1\u7406\u51e0\u53f0\u6700\u591a\u51e0\u5341\u53f0\u8bbe\u5907\u3002"),(0,o.yg)("p",null,"\u4ed6\u4eec\u662f RAM \u7528\u6237\u7684\u4e00\u79cd\u7b80\u5355\u5b9e\u7528\u7684\u5212\u5206\uff0c\u53ea\u9700\u8981\u7ed9\u4ed6\u4eec\u5206\u4e00\u4e0b\u8bbe\u5907\u6743\u9650\u5373\u53ef\u3002"),(0,o.yg)("p",null,"\u8bbe\u5907\u6743\u9650\u5e94\u8be5\u5206\u4e24\u79cd\uff1a\u652f\u6301\u8bbe\u5907\u5206\u7ec4\u3001\u652f\u6301\u5355\u72ec\u8bbe\u5907\uff0c\u4e24\u79cd\u6743\u9650\u9009\u62e9\u4e00\u79cd\u3002"),(0,o.yg)("p",null,"\u5982\u679c\u9009\u62e9\u8bbe\u5907\u5206\u7ec4\uff0c\u540e\u7eed\u5f80\u8bbe\u5907\u5206\u7ec4\u91cc\u9762\u589e\u5220\u8bbe\u5907\uff0c\u8be5\u5ba2\u6237\u4f1a\u53d7\u5230\u5f71\u54cd\u3002"),(0,o.yg)("p",null,"\u5982\u679c\u9009\u62e9\u5355\u72ec\u8bbe\u5907\uff0c\u53ea\u6709\u8bbe\u5907\u5220\u9664\uff0c\u8be5\u5ba2\u6237\u8bbe\u5907\u6743\u9650\u624d\u4f1a\u53d7\u5230\u5f71\u54cd\u3002"),(0,o.yg)("h3",{id:"\u4f7f\u7528\u6d41\u7a0b"},"\u4f7f\u7528\u6d41\u7a0b"),(0,o.yg)("p",null,"GIF \u56fe"),(0,o.yg)("h3",{id:"\u6700\u4f73\u5b9e\u8df5"},"\u6700\u4f73\u5b9e\u8df5"),(0,o.yg)("p",null,"GIF \u56fe"),(0,o.yg)("h3",{id:"\u4f7f\u7528\u9650\u5236"},"\u4f7f\u7528\u9650\u5236"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"\u5ba2\u6237\u4e0d\u80fd\u767b\u5f55 PC \u63a7\u5236\u53f0\uff0c\u53ef\u4ee5\u4f7f\u7528\u5c0f\u7a0b\u5e8f\u3002")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3180],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var u=n.createContext({}),a=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},s=function(e){var t=a(e.components);return n.createElement(u.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,l=e.originalType,u=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),p=a(r),y=o,f=p["".concat(u,".").concat(y)]||p[y]||d[y]||l;return r?n.createElement(f,c(c({ref:t},s),{},{components:r})):n.createElement(f,c({ref:t},s))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var l=r.length,c=new Array(l);c[0]=y;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[p]="string"==typeof e?e:o,c[1]=i;for(var a=2;a{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>c,default:()=>d,frontMatter:()=>l,metadata:()=>i,toc:()=>a});var n=r(8168),o=(r(6540),r(5680));const l={sidebar_position:9},c="\u5ba2\u6237\u7ba1\u7406",i={unversionedId:"iotcloud/usercenter/customer",id:"iotcloud/usercenter/customer",title:"\u5ba2\u6237\u7ba1\u7406",description:"\u672c\u6587\u4e3a\u60a8\u4ecb\u7ecd \u5ba2\u6237 \u7684\u57fa\u672c\u6982\u5ff5\u3001\u4f7f\u7528\u6d41\u7a0b\u3001\u6700\u4f73\u5b9e\u8df5\u548c\u4f7f\u7528\u9650\u5236\u3002",source:"@site/docs/iotcloud/usercenter/customer.md",sourceDirName:"iotcloud/usercenter",slug:"/iotcloud/usercenter/customer",permalink:"/docs/iotcloud/usercenter/customer",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:9,frontMatter:{sidebar_position:9},sidebar:"iotCloudSidebar",previous:{title:"RAM \u7528\u6237",permalink:"/docs/iotcloud/usercenter/system-user"}},u={},a=[{value:"\u4ec0\u4e48\u662f\u5ba2\u6237",id:"\u4ec0\u4e48\u662f\u5ba2\u6237",level:3},{value:"\u4f7f\u7528\u6d41\u7a0b",id:"\u4f7f\u7528\u6d41\u7a0b",level:3},{value:"\u6700\u4f73\u5b9e\u8df5",id:"\u6700\u4f73\u5b9e\u8df5",level:3},{value:"\u4f7f\u7528\u9650\u5236",id:"\u4f7f\u7528\u9650\u5236",level:3}],s={toc:a},p="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(p,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u5ba2\u6237\u7ba1\u7406"},"\u5ba2\u6237\u7ba1\u7406"),(0,o.yg)("p",null,"\u672c\u6587\u4e3a\u60a8\u4ecb\u7ecd \u5ba2\u6237 \u7684\u57fa\u672c\u6982\u5ff5\u3001\u4f7f\u7528\u6d41\u7a0b\u3001\u6700\u4f73\u5b9e\u8df5\u548c\u4f7f\u7528\u9650\u5236\u3002"),(0,o.yg)("h3",{id:"\u4ec0\u4e48\u662f\u5ba2\u6237"},"\u4ec0\u4e48\u662f\u5ba2\u6237"),(0,o.yg)("p",null,"\u6211\u4eec\u8ba4\u4e3a\u8fd9\u91cc\u7684\u5ba2\u6237\u662f\u7b80\u5355\u4f7f\u7528\u8bbe\u5907\u7684\u7528\u6237\uff0c\u4ed6\u4eec\u53ea\u9700\u8981\u7ba1\u7406\u51e0\u53f0\u6700\u591a\u51e0\u5341\u53f0\u8bbe\u5907\u3002"),(0,o.yg)("p",null,"\u4ed6\u4eec\u662f RAM \u7528\u6237\u7684\u4e00\u79cd\u7b80\u5355\u5b9e\u7528\u7684\u5212\u5206\uff0c\u53ea\u9700\u8981\u7ed9\u4ed6\u4eec\u5206\u4e00\u4e0b\u8bbe\u5907\u6743\u9650\u5373\u53ef\u3002"),(0,o.yg)("p",null,"\u8bbe\u5907\u6743\u9650\u5e94\u8be5\u5206\u4e24\u79cd\uff1a\u652f\u6301\u8bbe\u5907\u5206\u7ec4\u3001\u652f\u6301\u5355\u72ec\u8bbe\u5907\uff0c\u4e24\u79cd\u6743\u9650\u9009\u62e9\u4e00\u79cd\u3002"),(0,o.yg)("p",null,"\u5982\u679c\u9009\u62e9\u8bbe\u5907\u5206\u7ec4\uff0c\u540e\u7eed\u5f80\u8bbe\u5907\u5206\u7ec4\u91cc\u9762\u589e\u5220\u8bbe\u5907\uff0c\u8be5\u5ba2\u6237\u4f1a\u53d7\u5230\u5f71\u54cd\u3002"),(0,o.yg)("p",null,"\u5982\u679c\u9009\u62e9\u5355\u72ec\u8bbe\u5907\uff0c\u53ea\u6709\u8bbe\u5907\u5220\u9664\uff0c\u8be5\u5ba2\u6237\u8bbe\u5907\u6743\u9650\u624d\u4f1a\u53d7\u5230\u5f71\u54cd\u3002"),(0,o.yg)("h3",{id:"\u4f7f\u7528\u6d41\u7a0b"},"\u4f7f\u7528\u6d41\u7a0b"),(0,o.yg)("p",null,"GIF \u56fe"),(0,o.yg)("h3",{id:"\u6700\u4f73\u5b9e\u8df5"},"\u6700\u4f73\u5b9e\u8df5"),(0,o.yg)("p",null,"GIF \u56fe"),(0,o.yg)("h3",{id:"\u4f7f\u7528\u9650\u5236"},"\u4f7f\u7528\u9650\u5236"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"\u5ba2\u6237\u4e0d\u80fd\u767b\u5f55 PC \u63a7\u5236\u53f0\uff0c\u53ef\u4ee5\u4f7f\u7528\u5c0f\u7a0b\u5e8f\u3002")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1d6606cd.0ad9f51e.js b/assets/js/1d6606cd.349f8550.js similarity index 99% rename from assets/js/1d6606cd.0ad9f51e.js rename to assets/js/1d6606cd.349f8550.js index 08b0a7b85..a329c5bee 100644 --- a/assets/js/1d6606cd.0ad9f51e.js +++ b/assets/js/1d6606cd.349f8550.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2347],{5680:(e,t,n)=>{n.d(t,{xA:()=>y,yg:()=>d});var r=n(6540);function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(l[n]=e[n]);return l}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}var p=r.createContext({}),o=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},y=function(e){var t=o(e.components);return r.createElement(p.Provider,{value:t},e.children)},g="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},s=r.forwardRef((function(e,t){var n=e.components,l=e.mdxType,a=e.originalType,p=e.parentName,y=u(e,["components","mdxType","originalType","parentName"]),g=o(n),s=l,d=g["".concat(p,".").concat(s)]||g[s]||c[s]||a;return n?r.createElement(d,i(i({ref:t},y),{},{components:n})):r.createElement(d,i({ref:t},y))}));function d(e,t){var n=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var a=n.length,i=new Array(a);i[0]=s;var u={};for(var p in t)hasOwnProperty.call(t,p)&&(u[p]=t[p]);u.originalType=e,u[g]="string"==typeof e?e:l,i[1]=u;for(var o=2;o{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>c,frontMatter:()=>a,metadata:()=>u,toc:()=>o});var r=n(8168),l=(n(6540),n(5680));const a={},i=void 0,u={unversionedId:"study/think/\u67b6\u6784/\u8d1f\u8f7d\u5747\u8861",id:"study/think/\u67b6\u6784/\u8d1f\u8f7d\u5747\u8861",title:"\u8d1f\u8f7d\u5747\u8861",description:"DNS\u8d1f\u8f7d",source:"@site/docs/study/think/\u67b6\u6784/\u8d1f\u8f7d\u5747\u8861.md",sourceDirName:"study/think/\u67b6\u6784",slug:"/study/think/\u67b6\u6784/\u8d1f\u8f7d\u5747\u8861",permalink:"/docs/study/think/\u67b6\u6784/\u8d1f\u8f7d\u5747\u8861",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u67b6\u6784\u56fe\u793a\u4f8b",permalink:"/docs/study/think/\u67b6\u6784/\u67b6\u6784\u56fe\u793a\u4f8b"},next:{title:"\u9ad8\u6027\u80fd\u67b6\u6784\u6a21\u5f0f",permalink:"/docs/study/think/\u67b6\u6784/\u9ad8\u6027\u80fd\u67b6\u6784\u6a21\u5f0f"}},p={},o=[{value:"DNS\u8d1f\u8f7d",id:"dns\u8d1f\u8f7d",level:3},{value:"\u786c\u4ef6\u8d1f\u8f7d",id:"\u786c\u4ef6\u8d1f\u8f7d",level:3},{value:"\u8f6f\u4ef6\u8d1f\u8f7d",id:"\u8f6f\u4ef6\u8d1f\u8f7d",level:3},{value:"\u4f7f\u7528\u603b\u7ed3",id:"\u4f7f\u7528\u603b\u7ed3",level:3},{value:"\u7b97\u6cd5\u603b\u7ed3",id:"\u7b97\u6cd5\u603b\u7ed3",level:3}],y={toc:o},g="wrapper";function c(e){let{components:t,...a}=e;return(0,l.yg)(g,(0,r.A)({},y,a,{components:t,mdxType:"MDXLayout"}),(0,l.yg)("h3",{id:"dns\u8d1f\u8f7d"},"DNS\u8d1f\u8f7d"),(0,l.yg)("p",null,"DNS \u662f\u6700\u7b80\u5355\u4e5f\u662f\u6700\u5e38\u89c1\u7684\u8d1f\u8f7d\u5747\u8861\u65b9\u5f0f\uff0c\u4e00\u822c\u7528\u6765\u5b9e\u73b0\u5730\u7406\u7ea7\u522b\u7684\u5747\u8861\u3002\u4f8b\u5982\uff0c\u5317\u65b9\u7684\u7528\u6237\u8bbf\u95ee\u5317\u4eac\u7684\u673a\u623f\uff0c\u5357\u65b9\u7684\u7528\u6237\u8bbf\u95ee\u6df1\u5733\u7684\u673a\u623f\u3002DNS \u8d1f\u8f7d\u5747\u8861\u7684\u672c\u8d28\u662f DNS \u89e3\u6790\u540c\u4e00\u4e2a\u57df\u540d\u53ef\u4ee5\u8fd4\u56de\u4e0d\u540c\u7684 IP \u5730\u5740\u3002\u4f8b\u5982\uff0c\u540c\u6837\u662f ",(0,l.yg)("a",{parentName:"p",href:"http://www.baidu.com%EF%BC%8C%E5%8C%97%E6%96%B9%E7%94%A8%E6%88%B7%E8%A7%A3%E6%9E%90%E5%90%8E%E8%8E%B7%E5%8F%96%E7%9A%84%E5%9C%B0%E5%9D%80%E6%98%AF"},"www.baidu.com\uff0c\u5317\u65b9\u7528\u6237\u89e3\u6790\u540e\u83b7\u53d6\u7684\u5730\u5740\u662f")," 61.135.165.224\uff08\u8fd9\u662f\u5317\u4eac\u673a\u623f\u7684 IP\uff09\uff0c\u5357\u65b9\u7528\u6237\u89e3\u6790\u540e\u83b7\u53d6\u7684\u5730\u5740\u662f 14.215.177.38\uff08\u8fd9\u662f\u6df1\u5733\u673a\u623f\u7684 IP\uff09\u3002"),(0,l.yg)("p",null,"DNS \u8d1f\u8f7d\u5747\u8861\u5b9e\u73b0\u7b80\u5355\u3001\u6210\u672c\u4f4e\uff0c\u4f46\u4e5f\u5b58\u5728\u7c92\u5ea6\u592a\u7c97\u3001\u8d1f\u8f7d\u5747\u8861\u7b97\u6cd5\u5c11\u7b49\u7f3a\u70b9\u3002\u4ed4\u7ec6\u5206\u6790\u4e00\u4e0b\u4f18\u7f3a\u70b9\uff0c\u5176\u4f18\u70b9\u6709\uff1a"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u7b80\u5355\u3001\u6210\u672c\u4f4e\uff1a\u8d1f\u8f7d\u5747\u8861\u5de5\u4f5c\u4ea4\u7ed9 DNS \u670d\u52a1\u5668\u5904\u7406\uff0c\u65e0\u987b\u81ea\u5df1\u5f00\u53d1\u6216\u8005\u7ef4\u62a4\u8d1f\u8f7d\u5747\u8861\u8bbe\u5907\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u5c31\u8fd1\u8bbf\u95ee\uff0c\u63d0\u5347\u8bbf\u95ee\u901f\u5ea6\uff1aDNS \u89e3\u6790\u65f6\u53ef\u4ee5\u6839\u636e\u8bf7\u6c42\u6765\u6e90 IP\uff0c\u89e3\u6790\u6210\u8ddd\u79bb\u7528\u6237\u6700\u8fd1\u7684\u670d\u52a1\u5668\u5730\u5740\uff0c\u53ef\u4ee5\u52a0\u5feb\u8bbf\u95ee\u901f\u5ea6\uff0c\u6539\u5584\u6027\u80fd\u3002")),(0,l.yg)("p",null,"\u7f3a\u70b9\u6709\uff1a"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u66f4\u65b0\u4e0d\u53ca\u65f6\uff1aDNS \u7f13\u5b58\u7684\u65f6\u95f4\u6bd4\u8f83\u957f\uff0c\u4fee\u6539 DNS \u914d\u7f6e\u540e\uff0c\u7531\u4e8e\u7f13\u5b58\u7684\u539f\u56e0\uff0c\u8fd8\u662f\u6709\u5f88\u591a\u7528\u6237\u4f1a\u7ee7\u7eed\u8bbf\u95ee\u4fee\u6539\u524d\u7684 IP\uff0c\u8fd9\u6837\u7684\u8bbf\u95ee\u4f1a\u5931\u8d25\uff0c\u8fbe\u4e0d\u5230\u8d1f\u8f7d\u5747\u8861\u7684\u76ee\u7684\uff0c\u5e76\u4e14\u4e5f\u5f71\u54cd\u7528\u6237\u6b63\u5e38\u4f7f\u7528\u4e1a\u52a1\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u6269\u5c55\u6027\u5dee\uff1aDNS \u8d1f\u8f7d\u5747\u8861\u7684\u63a7\u5236\u6743\u5728\u57df\u540d\u5546\u90a3\u91cc\uff0c\u65e0\u6cd5\u6839\u636e\u4e1a\u52a1\u7279\u70b9\u9488\u5bf9\u5176\u505a\u66f4\u591a\u7684\u5b9a\u5236\u5316\u529f\u80fd\u548c\u6269\u5c55\u7279\u6027\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u5206\u914d\u7b56\u7565\u6bd4\u8f83\u7b80\u5355\uff1aDNS \u8d1f\u8f7d\u5747\u8861\u652f\u6301\u7684\u7b97\u6cd5\u5c11\uff1b\u4e0d\u80fd\u533a\u5206\u670d\u52a1\u5668\u7684\u5dee\u5f02\uff08\u4e0d\u80fd\u6839\u636e\u7cfb\u7edf\u4e0e\u670d\u52a1\u7684\u72b6\u6001\u6765\u5224\u65ad\u8d1f\u8f7d\uff09\uff1b\u4e5f\u65e0\u6cd5\u611f\u77e5\u540e\u7aef\u670d\u52a1\u5668\u7684\u72b6\u6001\u3002")),(0,l.yg)("p",null,"\u9488\u5bf9 DNS \u8d1f\u8f7d\u5747\u8861\u7684\u4e00\u4e9b\u7f3a\u70b9\uff0c\u5bf9\u4e8e\u65f6\u5ef6\u548c\u6545\u969c\u654f\u611f\u7684\u4e1a\u52a1\uff0c\u6709\u4e00\u4e9b\u516c\u53f8\u81ea\u5df1\u5b9e\u73b0\u4e86 HTTP-DNS \u7684\u529f\u80fd\uff0c\u5373\u4f7f\u7528 HTTP \u534f\u8bae\u5b9e\u73b0\u4e00\u4e2a\u79c1\u6709\u7684 DNS \u7cfb\u7edf\u3002\u8fd9\u6837\u7684\u65b9\u6848\u548c\u901a\u7528\u7684 DNS \u4f18\u7f3a\u70b9\u6b63\u597d\u76f8\u53cd\u3002"),(0,l.yg)("h3",{id:"\u786c\u4ef6\u8d1f\u8f7d"},"\u786c\u4ef6\u8d1f\u8f7d"),(0,l.yg)("p",null,"\u786c\u4ef6\u8d1f\u8f7d\u5747\u8861\u662f\u901a\u8fc7\u5355\u72ec\u7684\u786c\u4ef6\u8bbe\u5907\u6765\u5b9e\u73b0\u8d1f\u8f7d\u5747\u8861\u529f\u80fd\uff0c\u8fd9\u7c7b\u8bbe\u5907\u548c\u8def\u7531\u5668\u3001\u4ea4\u6362\u673a\u7c7b\u4f3c\uff0c\u53ef\u4ee5\u7406\u89e3\u4e3a\u4e00\u4e2a\u7528\u4e8e\u8d1f\u8f7d\u5747\u8861\u7684\u57fa\u7840\u7f51\u7edc\u8bbe\u5907\u3002\u76ee\u524d\u4e1a\u754c\u5178\u578b\u7684\u786c\u4ef6\u8d1f\u8f7d\u5747\u8861\u8bbe\u5907\u6709\u4e24\u6b3e\uff1aF5 \u548c A10\u3002\u8fd9\u7c7b\u8bbe\u5907\u6027\u80fd\u5f3a\u52b2\u3001\u529f\u80fd\u5f3a\u5927\uff0c\u4f46\u4ef7\u683c\u90fd\u4e0d\u4fbf\u5b9c\uff0c\u4e00\u822c\u53ea\u6709\u201c\u571f\u8c6a\u201d\u516c\u53f8\u624d\u4f1a\u8003\u8651\u4f7f\u7528\u6b64\u7c7b\u8bbe\u5907\u3002\u666e\u901a\u4e1a\u52a1\u91cf\u7ea7\u7684\u516c\u53f8\u4e00\u662f\u8d1f\u62c5\u4e0d\u8d77\uff0c\u4e8c\u662f\u4e1a\u52a1\u91cf\u6ca1\u90a3\u4e48\u5927\uff0c\u7528\u8fd9\u4e9b\u8bbe\u5907\u4e5f\u662f\u6d6a\u8d39\u3002"),(0,l.yg)("p",null,"\u786c\u4ef6\u8d1f\u8f7d\u5747\u8861\u7684\u4f18\u70b9\u662f\uff1a"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u529f\u80fd\u5f3a\u5927\uff1a\u5168\u9762\u652f\u6301\u5404\u5c42\u7ea7\u7684\u8d1f\u8f7d\u5747\u8861\uff0c\u652f\u6301\u5168\u9762\u7684\u8d1f\u8f7d\u5747\u8861\u7b97\u6cd5\uff0c\u652f\u6301\u5168\u5c40\u8d1f\u8f7d\u5747\u8861\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u6027\u80fd\u5f3a\u5927\uff1a\u5bf9\u6bd4\u4e00\u4e0b\uff0c\u8f6f\u4ef6\u8d1f\u8f7d\u5747\u8861\u652f\u6301\u5230 10 \u4e07\u7ea7\u5e76\u53d1\u5df2\u7ecf\u5f88\u5389\u5bb3\u4e86\uff0c\u786c\u4ef6\u8d1f\u8f7d\u5747\u8861\u53ef\u4ee5\u652f\u6301 100 \u4e07\u4ee5\u4e0a\u7684\u5e76\u53d1\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u7a33\u5b9a\u6027\u9ad8\uff1a\u5546\u7528\u786c\u4ef6\u8d1f\u8f7d\u5747\u8861\uff0c\u7ecf\u8fc7\u4e86\u826f\u597d\u7684\u4e25\u683c\u6d4b\u8bd5\uff0c\u7ecf\u8fc7\u5927\u89c4\u6a21\u4f7f\u7528\uff0c\u7a33\u5b9a\u6027\u9ad8\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u652f\u6301\u5b89\u5168\u9632\u62a4\uff1a\u786c\u4ef6\u5747\u8861\u8bbe\u5907\u9664\u5177\u5907\u8d1f\u8f7d\u5747\u8861\u529f\u80fd\u5916\uff0c\u8fd8\u5177\u5907\u9632\u706b\u5899\u3001\u9632 DDoS \u653b\u51fb\u7b49\u5b89\u5168\u529f\u80fd\u3002")),(0,l.yg)("p",null,"\u786c\u4ef6\u8d1f\u8f7d\u5747\u8861\u7684\u7f3a\u70b9\u662f\uff1a"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u4ef7\u683c\u6602\u8d35\uff1a\u6700\u666e\u901a\u7684\u4e00\u53f0 F5 \u5c31\u662f\u4e00\u53f0\u201c\u9a6c 6\u201d\uff0c\u597d\u4e00\u70b9\u7684\u5c31\u662f\u201cQ7\u201d\u4e86\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u6269\u5c55\u80fd\u529b\u5dee\uff1a\u786c\u4ef6\u8bbe\u5907\uff0c\u53ef\u4ee5\u6839\u636e\u4e1a\u52a1\u8fdb\u884c\u914d\u7f6e\uff0c\u4f46\u65e0\u6cd5\u8fdb\u884c\u6269\u5c55\u548c\u5b9a\u5236\u3002")),(0,l.yg)("h4",{id:""}),(0,l.yg)("h3",{id:"\u8f6f\u4ef6\u8d1f\u8f7d"},"\u8f6f\u4ef6\u8d1f\u8f7d"),(0,l.yg)("p",null,"\u8f6f\u4ef6\u8d1f\u8f7d\u5747\u8861\u901a\u8fc7\u8d1f\u8f7d\u5747\u8861\u8f6f\u4ef6\u6765\u5b9e\u73b0\u8d1f\u8f7d\u5747\u8861\u529f\u80fd\uff0c\u5e38\u89c1\u7684\u6709 Nginx \u548c LVS\uff0c\u5176\u4e2d Nginx \u662f\u8f6f\u4ef6\u7684 7 \u5c42\u8d1f\u8f7d\u5747\u8861\uff0cLVS \u662f Linux \u5185\u6838\u7684 4 \u5c42\u8d1f\u8f7d\u5747\u8861\u30024 \u5c42\u548c 7 \u5c42\u7684\u533a\u522b\u5c31\u5728\u4e8e\u534f\u8bae\u548c\u7075\u6d3b\u6027\uff0cNginx \u652f\u6301 HTTP\u3001E-mail \u534f\u8bae\uff1b\u800c LVS \u662f 4 \u5c42\u8d1f\u8f7d\u5747\u8861\uff0c\u548c\u534f\u8bae\u65e0\u5173\uff0c\u51e0\u4e4e\u6240\u6709\u5e94\u7528\u90fd\u53ef\u4ee5\u505a\uff0c\u4f8b\u5982\uff0c\u804a\u5929\u3001\u6570\u636e\u5e93\u7b49\u3002"),(0,l.yg)("p",null,"\u8f6f\u4ef6\u548c\u786c\u4ef6\u7684\u6700\u4e3b\u8981\u533a\u522b\u5c31\u5728\u4e8e\u6027\u80fd\uff0c\u786c\u4ef6\u8d1f\u8f7d\u5747\u8861\u6027\u80fd\u8fdc\u8fdc\u9ad8\u4e8e\u8f6f\u4ef6\u8d1f\u8f7d\u5747\u8861\u6027\u80fd\u3002Nginx \u7684\u6027\u80fd\u662f\u4e07\u7ea7\uff0c\u4e00\u822c\u7684 Linux \u670d\u52a1\u5668\u4e0a\u88c5\u4e00\u4e2a Nginx \u5927\u6982\u80fd\u5230 5 \u4e07 / \u79d2\uff1bLVS \u7684\u6027\u80fd\u662f\u5341\u4e07\u7ea7\uff0c\u636e\u8bf4\u53ef\u8fbe\u5230 80 \u4e07 / \u79d2\uff1b\u800c F5 \u6027\u80fd\u662f\u767e\u4e07\u7ea7\uff0c\u4ece 200 \u4e07 / \u79d2\u5230 800 \u4e07 / \u79d2\u90fd\u6709\uff08\u6570\u636e\u6765\u6e90\u7f51\u7edc\uff0c\u4ec5\u4f9b\u53c2\u8003\uff0c\u5982\u9700\u91c7\u7528\u8bf7\u6839\u636e\u5b9e\u9645\u4e1a\u52a1\u573a\u666f\u8fdb\u884c\u6027\u80fd\u6d4b\u8bd5\uff09\u3002\u5f53\u7136\uff0c\u8f6f\u4ef6\u8d1f\u8f7d\u5747\u8861\u7684\u6700\u5927\u4f18\u52bf\u662f\u4fbf\u5b9c\uff0c\u4e00\u53f0\u666e\u901a\u7684 Linux \u670d\u52a1\u5668\u6279\u53d1\u4ef7\u5927\u6982\u5c31\u662f 1 \u4e07\u5143\u5de6\u53f3\uff0c\u76f8\u6bd4 F5 \u7684\u4ef7\u683c\uff0c\u90a3\u5c31\u662f\u81ea\u884c\u8f66\u548c\u5b9d\u9a6c\u7684\u533a\u522b\u4e86\u3002"),(0,l.yg)("p",null,"\u8f6f\u4ef6\u8d1f\u8f7d\u5747\u8861\u7684\u4f18\u70b9\uff1a"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u7b80\u5355\uff1a\u65e0\u8bba\u662f\u90e8\u7f72\u8fd8\u662f\u7ef4\u62a4\u90fd\u6bd4\u8f83\u7b80\u5355\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u4fbf\u5b9c\uff1a\u53ea\u8981\u4e70\u4e2a Linux \u670d\u52a1\u5668\uff0c\u88c5\u4e0a\u8f6f\u4ef6\u5373\u53ef\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u7075\u6d3b\uff1a4 \u5c42\u548c 7 \u5c42\u8d1f\u8f7d\u5747\u8861\u53ef\u4ee5\u6839\u636e\u4e1a\u52a1\u8fdb\u884c\u9009\u62e9\uff1b\u4e5f\u53ef\u4ee5\u6839\u636e\u4e1a\u52a1\u8fdb\u884c\u6bd4\u8f83\u65b9\u4fbf\u7684\u6269\u5c55\uff0c\u4f8b\u5982\uff0c\u53ef\u4ee5\u901a\u8fc7 Nginx \u7684\u63d2\u4ef6\u6765\u5b9e\u73b0\u4e1a\u52a1\u7684\u5b9a\u5236\u5316\u529f\u80fd\u3002")),(0,l.yg)("p",null,"\u5176\u5b9e\u4e0b\u9762\u7684\u7f3a\u70b9\u90fd\u662f\u548c\u786c\u4ef6\u8d1f\u8f7d\u5747\u8861\u76f8\u6bd4\u7684\uff0c\u5e76\u4e0d\u662f\u8bf4\u8f6f\u4ef6\u8d1f\u8f7d\u5747\u8861\u6ca1\u6cd5\u7528\u3002"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u6027\u80fd\u4e00\u822c\uff1a\u4e00\u4e2a Nginx \u5927\u7ea6\u80fd\u652f\u6491 5 \u4e07\u5e76\u53d1\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u529f\u80fd\u6ca1\u6709\u786c\u4ef6\u8d1f\u8f7d\u5747\u8861\u90a3\u4e48\u5f3a\u5927\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u4e00\u822c\u4e0d\u5177\u5907\u9632\u706b\u5899\u548c\u9632 DDoS \u653b\u51fb\u7b49\u5b89\u5168\u529f\u80fd\u3002")),(0,l.yg)("h3",{id:"\u4f7f\u7528\u603b\u7ed3"},"\u4f7f\u7528\u603b\u7ed3"),(0,l.yg)("p",null,"\u524d\u9762\u6211\u4eec\u4ecb\u7ecd\u4e86 3 \u79cd\u5e38\u89c1\u7684\u8d1f\u8f7d\u5747\u8861\u673a\u5236\uff1aDNS \u8d1f\u8f7d\u5747\u8861\u3001\u786c\u4ef6\u8d1f\u8f7d\u5747\u8861\u3001\u8f6f\u4ef6\u8d1f\u8f7d\u5747\u8861\uff0c\u6bcf\u79cd\u65b9\u5f0f\u90fd\u6709\u4e00\u4e9b\u4f18\u7f3a\u70b9\uff0c\u4f46\u5e76\u4e0d\u610f\u5473\u7740\u5728\u5b9e\u9645\u5e94\u7528\u4e2d\u53ea\u80fd\u57fa\u4e8e\u5b83\u4eec\u7684\u4f18\u7f3a\u70b9\u8fdb\u884c\u975e\u6b64\u5373\u5f7c\u7684\u9009\u62e9\uff0c\u53cd\u800c\u662f\u57fa\u4e8e\u5b83\u4eec\u7684\u4f18\u7f3a\u70b9\u8fdb\u884c\u7ec4\u5408\u4f7f\u7528\u3002\u5177\u4f53\u6765\u8bf4\uff0c\u7ec4\u5408\u7684\u57fa\u672c\u539f\u5219\u4e3a\uff1aDNS \u8d1f\u8f7d\u5747\u8861\u7528\u4e8e\u5b9e\u73b0\u5730\u7406\u7ea7\u522b\u7684\u8d1f\u8f7d\u5747\u8861\uff1b\u786c\u4ef6\u8d1f\u8f7d\u5747\u8861\u7528\u4e8e\u5b9e\u73b0\u96c6\u7fa4\u7ea7\u522b\u7684\u8d1f\u8f7d\u5747\u8861\uff1b\u8f6f\u4ef6\u8d1f\u8f7d\u5747\u8861\u7528\u4e8e\u5b9e\u73b0\u673a\u5668\u7ea7\u522b\u7684\u8d1f\u8f7d\u5747\u8861\u3002"),(0,l.yg)("p",null,(0,l.yg)("img",{alt:"image.png",src:n(4993).A,width:"750",height:"500"})),(0,l.yg)("h3",{id:"-1"}),(0,l.yg)("h3",{id:"-2"}),(0,l.yg)("h3",{id:"\u7b97\u6cd5\u603b\u7ed3"},"\u7b97\u6cd5\u603b\u7ed3"),(0,l.yg)("p",null,"\u8d1f\u8f7d\u5747\u8861\u7b97\u6cd5\u6570\u91cf\u8f83\u591a\uff0c\u800c\u4e14\u53ef\u4ee5\u6839\u636e\u4e00\u4e9b\u4e1a\u52a1\u7279\u6027\u8fdb\u884c\u5b9a\u5236\u5f00\u53d1\uff0c\u629b\u5f00\u7ec6\u8282\u4e0a\u7684\u5dee\u5f02\uff0c\u6839\u636e\u7b97\u6cd5\u671f\u671b\u8fbe\u5230\u7684\u76ee\u7684\uff0c\u5927\u4f53\u4e0a\u53ef\u4ee5\u5206\u4e3a\u4e0b\u9762\u51e0\u7c7b\u3002"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u4efb\u52a1\u5e73\u5206\u7c7b\uff1a\u8d1f\u8f7d\u5747\u8861\u7cfb\u7edf\u5c06\u6536\u5230\u7684\u4efb\u52a1\u5e73\u5747\u5206\u914d\u7ed9\u670d\u52a1\u5668\u8fdb\u884c\u5904\u7406\uff0c\u8fd9\u91cc\u7684\u201c\u5e73\u5747\u201d\u53ef\u4ee5\u662f\u7edd\u5bf9\u6570\u91cf\u7684\u5e73\u5747\uff0c\u4e5f\u53ef\u4ee5\u662f\u6bd4\u4f8b\u6216\u8005\u6743\u91cd\u4e0a\u7684\u5e73\u5747\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u8d1f\u8f7d\u5747\u8861\u7c7b\uff1a\u8d1f\u8f7d\u5747\u8861\u7cfb\u7edf\u6839\u636e\u670d\u52a1\u5668\u7684\u8d1f\u8f7d\u6765\u8fdb\u884c\u5206\u914d\uff0c\u8fd9\u91cc\u7684\u8d1f\u8f7d\u5e76\u4e0d\u4e00\u5b9a\u662f\u901a\u5e38\u610f\u4e49\u4e0a\u6211\u4eec\u8bf4\u7684\u201cCPU \u8d1f\u8f7d\u201d\uff0c\u800c\u662f\u7cfb\u7edf\u5f53\u524d\u7684\u538b\u529b\uff0c\u53ef\u4ee5\u7528 CPU \u8d1f\u8f7d\u6765\u8861\u91cf\uff0c\u4e5f\u53ef\u4ee5\u7528\u8fde\u63a5\u6570\u3001I/O \u4f7f\u7528\u7387\u3001\u7f51\u5361\u541e\u5410\u91cf\u7b49\u6765\u8861\u91cf\u7cfb\u7edf\u7684\u538b\u529b\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u6027\u80fd\u6700\u4f18\u7c7b\uff1a\u8d1f\u8f7d\u5747\u8861\u7cfb\u7edf\u6839\u636e\u670d\u52a1\u5668\u7684\u54cd\u5e94\u65f6\u95f4\u6765\u8fdb\u884c\u4efb\u52a1\u5206\u914d\uff0c\u4f18\u5148\u5c06\u65b0\u4efb\u52a1\u5206\u914d\u7ed9\u54cd\u5e94\u6700\u5feb\u7684\u670d\u52a1\u5668\u3002"),(0,l.yg)("li",{parentName:"ul"},"Hash \u7c7b\uff1a\u8d1f\u8f7d\u5747\u8861\u7cfb\u7edf\u6839\u636e\u4efb\u52a1\u4e2d\u7684\u67d0\u4e9b\u5173\u952e\u4fe1\u606f\u8fdb\u884c Hash \u8fd0\u7b97\uff0c\u5c06\u76f8\u540c Hash \u503c\u7684\u8bf7\u6c42\u5206\u914d\u5230\u540c\u4e00\u53f0\u670d\u52a1\u5668\u4e0a\u3002\u5e38\u89c1\u7684\u6709\u6e90\u5730\u5740 Hash\u3001\u76ee\u6807\u5730\u5740 Hash\u3001session id hash\u3001\u7528\u6237 ID Hash \u7b49\u3002")))}c.isMDXComponent=!0},4993:(e,t,n)=>{n.d(t,{A:()=>r});const r=n.p+"assets/images/4-1110b0b730ae76dd61a1d7d14c8523cb.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2347],{5680:(e,t,n)=>{n.d(t,{xA:()=>y,yg:()=>d});var r=n(6540);function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(l[n]=e[n]);return l}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}var p=r.createContext({}),o=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},y=function(e){var t=o(e.components);return r.createElement(p.Provider,{value:t},e.children)},g="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},s=r.forwardRef((function(e,t){var n=e.components,l=e.mdxType,a=e.originalType,p=e.parentName,y=u(e,["components","mdxType","originalType","parentName"]),g=o(n),s=l,d=g["".concat(p,".").concat(s)]||g[s]||c[s]||a;return n?r.createElement(d,i(i({ref:t},y),{},{components:n})):r.createElement(d,i({ref:t},y))}));function d(e,t){var n=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var a=n.length,i=new Array(a);i[0]=s;var u={};for(var p in t)hasOwnProperty.call(t,p)&&(u[p]=t[p]);u.originalType=e,u[g]="string"==typeof e?e:l,i[1]=u;for(var o=2;o{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>c,frontMatter:()=>a,metadata:()=>u,toc:()=>o});var r=n(8168),l=(n(6540),n(5680));const a={},i=void 0,u={unversionedId:"study/think/\u67b6\u6784/\u8d1f\u8f7d\u5747\u8861",id:"study/think/\u67b6\u6784/\u8d1f\u8f7d\u5747\u8861",title:"\u8d1f\u8f7d\u5747\u8861",description:"DNS\u8d1f\u8f7d",source:"@site/docs/study/think/\u67b6\u6784/\u8d1f\u8f7d\u5747\u8861.md",sourceDirName:"study/think/\u67b6\u6784",slug:"/study/think/\u67b6\u6784/\u8d1f\u8f7d\u5747\u8861",permalink:"/docs/study/think/\u67b6\u6784/\u8d1f\u8f7d\u5747\u8861",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u67b6\u6784\u56fe\u793a\u4f8b",permalink:"/docs/study/think/\u67b6\u6784/\u67b6\u6784\u56fe\u793a\u4f8b"},next:{title:"\u9ad8\u6027\u80fd\u67b6\u6784\u6a21\u5f0f",permalink:"/docs/study/think/\u67b6\u6784/\u9ad8\u6027\u80fd\u67b6\u6784\u6a21\u5f0f"}},p={},o=[{value:"DNS\u8d1f\u8f7d",id:"dns\u8d1f\u8f7d",level:3},{value:"\u786c\u4ef6\u8d1f\u8f7d",id:"\u786c\u4ef6\u8d1f\u8f7d",level:3},{value:"\u8f6f\u4ef6\u8d1f\u8f7d",id:"\u8f6f\u4ef6\u8d1f\u8f7d",level:3},{value:"\u4f7f\u7528\u603b\u7ed3",id:"\u4f7f\u7528\u603b\u7ed3",level:3},{value:"\u7b97\u6cd5\u603b\u7ed3",id:"\u7b97\u6cd5\u603b\u7ed3",level:3}],y={toc:o},g="wrapper";function c(e){let{components:t,...a}=e;return(0,l.yg)(g,(0,r.A)({},y,a,{components:t,mdxType:"MDXLayout"}),(0,l.yg)("h3",{id:"dns\u8d1f\u8f7d"},"DNS\u8d1f\u8f7d"),(0,l.yg)("p",null,"DNS \u662f\u6700\u7b80\u5355\u4e5f\u662f\u6700\u5e38\u89c1\u7684\u8d1f\u8f7d\u5747\u8861\u65b9\u5f0f\uff0c\u4e00\u822c\u7528\u6765\u5b9e\u73b0\u5730\u7406\u7ea7\u522b\u7684\u5747\u8861\u3002\u4f8b\u5982\uff0c\u5317\u65b9\u7684\u7528\u6237\u8bbf\u95ee\u5317\u4eac\u7684\u673a\u623f\uff0c\u5357\u65b9\u7684\u7528\u6237\u8bbf\u95ee\u6df1\u5733\u7684\u673a\u623f\u3002DNS \u8d1f\u8f7d\u5747\u8861\u7684\u672c\u8d28\u662f DNS \u89e3\u6790\u540c\u4e00\u4e2a\u57df\u540d\u53ef\u4ee5\u8fd4\u56de\u4e0d\u540c\u7684 IP \u5730\u5740\u3002\u4f8b\u5982\uff0c\u540c\u6837\u662f ",(0,l.yg)("a",{parentName:"p",href:"http://www.baidu.com%EF%BC%8C%E5%8C%97%E6%96%B9%E7%94%A8%E6%88%B7%E8%A7%A3%E6%9E%90%E5%90%8E%E8%8E%B7%E5%8F%96%E7%9A%84%E5%9C%B0%E5%9D%80%E6%98%AF"},"www.baidu.com\uff0c\u5317\u65b9\u7528\u6237\u89e3\u6790\u540e\u83b7\u53d6\u7684\u5730\u5740\u662f")," 61.135.165.224\uff08\u8fd9\u662f\u5317\u4eac\u673a\u623f\u7684 IP\uff09\uff0c\u5357\u65b9\u7528\u6237\u89e3\u6790\u540e\u83b7\u53d6\u7684\u5730\u5740\u662f 14.215.177.38\uff08\u8fd9\u662f\u6df1\u5733\u673a\u623f\u7684 IP\uff09\u3002"),(0,l.yg)("p",null,"DNS \u8d1f\u8f7d\u5747\u8861\u5b9e\u73b0\u7b80\u5355\u3001\u6210\u672c\u4f4e\uff0c\u4f46\u4e5f\u5b58\u5728\u7c92\u5ea6\u592a\u7c97\u3001\u8d1f\u8f7d\u5747\u8861\u7b97\u6cd5\u5c11\u7b49\u7f3a\u70b9\u3002\u4ed4\u7ec6\u5206\u6790\u4e00\u4e0b\u4f18\u7f3a\u70b9\uff0c\u5176\u4f18\u70b9\u6709\uff1a"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u7b80\u5355\u3001\u6210\u672c\u4f4e\uff1a\u8d1f\u8f7d\u5747\u8861\u5de5\u4f5c\u4ea4\u7ed9 DNS \u670d\u52a1\u5668\u5904\u7406\uff0c\u65e0\u987b\u81ea\u5df1\u5f00\u53d1\u6216\u8005\u7ef4\u62a4\u8d1f\u8f7d\u5747\u8861\u8bbe\u5907\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u5c31\u8fd1\u8bbf\u95ee\uff0c\u63d0\u5347\u8bbf\u95ee\u901f\u5ea6\uff1aDNS \u89e3\u6790\u65f6\u53ef\u4ee5\u6839\u636e\u8bf7\u6c42\u6765\u6e90 IP\uff0c\u89e3\u6790\u6210\u8ddd\u79bb\u7528\u6237\u6700\u8fd1\u7684\u670d\u52a1\u5668\u5730\u5740\uff0c\u53ef\u4ee5\u52a0\u5feb\u8bbf\u95ee\u901f\u5ea6\uff0c\u6539\u5584\u6027\u80fd\u3002")),(0,l.yg)("p",null,"\u7f3a\u70b9\u6709\uff1a"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u66f4\u65b0\u4e0d\u53ca\u65f6\uff1aDNS \u7f13\u5b58\u7684\u65f6\u95f4\u6bd4\u8f83\u957f\uff0c\u4fee\u6539 DNS \u914d\u7f6e\u540e\uff0c\u7531\u4e8e\u7f13\u5b58\u7684\u539f\u56e0\uff0c\u8fd8\u662f\u6709\u5f88\u591a\u7528\u6237\u4f1a\u7ee7\u7eed\u8bbf\u95ee\u4fee\u6539\u524d\u7684 IP\uff0c\u8fd9\u6837\u7684\u8bbf\u95ee\u4f1a\u5931\u8d25\uff0c\u8fbe\u4e0d\u5230\u8d1f\u8f7d\u5747\u8861\u7684\u76ee\u7684\uff0c\u5e76\u4e14\u4e5f\u5f71\u54cd\u7528\u6237\u6b63\u5e38\u4f7f\u7528\u4e1a\u52a1\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u6269\u5c55\u6027\u5dee\uff1aDNS \u8d1f\u8f7d\u5747\u8861\u7684\u63a7\u5236\u6743\u5728\u57df\u540d\u5546\u90a3\u91cc\uff0c\u65e0\u6cd5\u6839\u636e\u4e1a\u52a1\u7279\u70b9\u9488\u5bf9\u5176\u505a\u66f4\u591a\u7684\u5b9a\u5236\u5316\u529f\u80fd\u548c\u6269\u5c55\u7279\u6027\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u5206\u914d\u7b56\u7565\u6bd4\u8f83\u7b80\u5355\uff1aDNS \u8d1f\u8f7d\u5747\u8861\u652f\u6301\u7684\u7b97\u6cd5\u5c11\uff1b\u4e0d\u80fd\u533a\u5206\u670d\u52a1\u5668\u7684\u5dee\u5f02\uff08\u4e0d\u80fd\u6839\u636e\u7cfb\u7edf\u4e0e\u670d\u52a1\u7684\u72b6\u6001\u6765\u5224\u65ad\u8d1f\u8f7d\uff09\uff1b\u4e5f\u65e0\u6cd5\u611f\u77e5\u540e\u7aef\u670d\u52a1\u5668\u7684\u72b6\u6001\u3002")),(0,l.yg)("p",null,"\u9488\u5bf9 DNS \u8d1f\u8f7d\u5747\u8861\u7684\u4e00\u4e9b\u7f3a\u70b9\uff0c\u5bf9\u4e8e\u65f6\u5ef6\u548c\u6545\u969c\u654f\u611f\u7684\u4e1a\u52a1\uff0c\u6709\u4e00\u4e9b\u516c\u53f8\u81ea\u5df1\u5b9e\u73b0\u4e86 HTTP-DNS \u7684\u529f\u80fd\uff0c\u5373\u4f7f\u7528 HTTP \u534f\u8bae\u5b9e\u73b0\u4e00\u4e2a\u79c1\u6709\u7684 DNS \u7cfb\u7edf\u3002\u8fd9\u6837\u7684\u65b9\u6848\u548c\u901a\u7528\u7684 DNS \u4f18\u7f3a\u70b9\u6b63\u597d\u76f8\u53cd\u3002"),(0,l.yg)("h3",{id:"\u786c\u4ef6\u8d1f\u8f7d"},"\u786c\u4ef6\u8d1f\u8f7d"),(0,l.yg)("p",null,"\u786c\u4ef6\u8d1f\u8f7d\u5747\u8861\u662f\u901a\u8fc7\u5355\u72ec\u7684\u786c\u4ef6\u8bbe\u5907\u6765\u5b9e\u73b0\u8d1f\u8f7d\u5747\u8861\u529f\u80fd\uff0c\u8fd9\u7c7b\u8bbe\u5907\u548c\u8def\u7531\u5668\u3001\u4ea4\u6362\u673a\u7c7b\u4f3c\uff0c\u53ef\u4ee5\u7406\u89e3\u4e3a\u4e00\u4e2a\u7528\u4e8e\u8d1f\u8f7d\u5747\u8861\u7684\u57fa\u7840\u7f51\u7edc\u8bbe\u5907\u3002\u76ee\u524d\u4e1a\u754c\u5178\u578b\u7684\u786c\u4ef6\u8d1f\u8f7d\u5747\u8861\u8bbe\u5907\u6709\u4e24\u6b3e\uff1aF5 \u548c A10\u3002\u8fd9\u7c7b\u8bbe\u5907\u6027\u80fd\u5f3a\u52b2\u3001\u529f\u80fd\u5f3a\u5927\uff0c\u4f46\u4ef7\u683c\u90fd\u4e0d\u4fbf\u5b9c\uff0c\u4e00\u822c\u53ea\u6709\u201c\u571f\u8c6a\u201d\u516c\u53f8\u624d\u4f1a\u8003\u8651\u4f7f\u7528\u6b64\u7c7b\u8bbe\u5907\u3002\u666e\u901a\u4e1a\u52a1\u91cf\u7ea7\u7684\u516c\u53f8\u4e00\u662f\u8d1f\u62c5\u4e0d\u8d77\uff0c\u4e8c\u662f\u4e1a\u52a1\u91cf\u6ca1\u90a3\u4e48\u5927\uff0c\u7528\u8fd9\u4e9b\u8bbe\u5907\u4e5f\u662f\u6d6a\u8d39\u3002"),(0,l.yg)("p",null,"\u786c\u4ef6\u8d1f\u8f7d\u5747\u8861\u7684\u4f18\u70b9\u662f\uff1a"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u529f\u80fd\u5f3a\u5927\uff1a\u5168\u9762\u652f\u6301\u5404\u5c42\u7ea7\u7684\u8d1f\u8f7d\u5747\u8861\uff0c\u652f\u6301\u5168\u9762\u7684\u8d1f\u8f7d\u5747\u8861\u7b97\u6cd5\uff0c\u652f\u6301\u5168\u5c40\u8d1f\u8f7d\u5747\u8861\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u6027\u80fd\u5f3a\u5927\uff1a\u5bf9\u6bd4\u4e00\u4e0b\uff0c\u8f6f\u4ef6\u8d1f\u8f7d\u5747\u8861\u652f\u6301\u5230 10 \u4e07\u7ea7\u5e76\u53d1\u5df2\u7ecf\u5f88\u5389\u5bb3\u4e86\uff0c\u786c\u4ef6\u8d1f\u8f7d\u5747\u8861\u53ef\u4ee5\u652f\u6301 100 \u4e07\u4ee5\u4e0a\u7684\u5e76\u53d1\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u7a33\u5b9a\u6027\u9ad8\uff1a\u5546\u7528\u786c\u4ef6\u8d1f\u8f7d\u5747\u8861\uff0c\u7ecf\u8fc7\u4e86\u826f\u597d\u7684\u4e25\u683c\u6d4b\u8bd5\uff0c\u7ecf\u8fc7\u5927\u89c4\u6a21\u4f7f\u7528\uff0c\u7a33\u5b9a\u6027\u9ad8\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u652f\u6301\u5b89\u5168\u9632\u62a4\uff1a\u786c\u4ef6\u5747\u8861\u8bbe\u5907\u9664\u5177\u5907\u8d1f\u8f7d\u5747\u8861\u529f\u80fd\u5916\uff0c\u8fd8\u5177\u5907\u9632\u706b\u5899\u3001\u9632 DDoS \u653b\u51fb\u7b49\u5b89\u5168\u529f\u80fd\u3002")),(0,l.yg)("p",null,"\u786c\u4ef6\u8d1f\u8f7d\u5747\u8861\u7684\u7f3a\u70b9\u662f\uff1a"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u4ef7\u683c\u6602\u8d35\uff1a\u6700\u666e\u901a\u7684\u4e00\u53f0 F5 \u5c31\u662f\u4e00\u53f0\u201c\u9a6c 6\u201d\uff0c\u597d\u4e00\u70b9\u7684\u5c31\u662f\u201cQ7\u201d\u4e86\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u6269\u5c55\u80fd\u529b\u5dee\uff1a\u786c\u4ef6\u8bbe\u5907\uff0c\u53ef\u4ee5\u6839\u636e\u4e1a\u52a1\u8fdb\u884c\u914d\u7f6e\uff0c\u4f46\u65e0\u6cd5\u8fdb\u884c\u6269\u5c55\u548c\u5b9a\u5236\u3002")),(0,l.yg)("h4",{id:""}),(0,l.yg)("h3",{id:"\u8f6f\u4ef6\u8d1f\u8f7d"},"\u8f6f\u4ef6\u8d1f\u8f7d"),(0,l.yg)("p",null,"\u8f6f\u4ef6\u8d1f\u8f7d\u5747\u8861\u901a\u8fc7\u8d1f\u8f7d\u5747\u8861\u8f6f\u4ef6\u6765\u5b9e\u73b0\u8d1f\u8f7d\u5747\u8861\u529f\u80fd\uff0c\u5e38\u89c1\u7684\u6709 Nginx \u548c LVS\uff0c\u5176\u4e2d Nginx \u662f\u8f6f\u4ef6\u7684 7 \u5c42\u8d1f\u8f7d\u5747\u8861\uff0cLVS \u662f Linux \u5185\u6838\u7684 4 \u5c42\u8d1f\u8f7d\u5747\u8861\u30024 \u5c42\u548c 7 \u5c42\u7684\u533a\u522b\u5c31\u5728\u4e8e\u534f\u8bae\u548c\u7075\u6d3b\u6027\uff0cNginx \u652f\u6301 HTTP\u3001E-mail \u534f\u8bae\uff1b\u800c LVS \u662f 4 \u5c42\u8d1f\u8f7d\u5747\u8861\uff0c\u548c\u534f\u8bae\u65e0\u5173\uff0c\u51e0\u4e4e\u6240\u6709\u5e94\u7528\u90fd\u53ef\u4ee5\u505a\uff0c\u4f8b\u5982\uff0c\u804a\u5929\u3001\u6570\u636e\u5e93\u7b49\u3002"),(0,l.yg)("p",null,"\u8f6f\u4ef6\u548c\u786c\u4ef6\u7684\u6700\u4e3b\u8981\u533a\u522b\u5c31\u5728\u4e8e\u6027\u80fd\uff0c\u786c\u4ef6\u8d1f\u8f7d\u5747\u8861\u6027\u80fd\u8fdc\u8fdc\u9ad8\u4e8e\u8f6f\u4ef6\u8d1f\u8f7d\u5747\u8861\u6027\u80fd\u3002Nginx \u7684\u6027\u80fd\u662f\u4e07\u7ea7\uff0c\u4e00\u822c\u7684 Linux \u670d\u52a1\u5668\u4e0a\u88c5\u4e00\u4e2a Nginx \u5927\u6982\u80fd\u5230 5 \u4e07 / \u79d2\uff1bLVS \u7684\u6027\u80fd\u662f\u5341\u4e07\u7ea7\uff0c\u636e\u8bf4\u53ef\u8fbe\u5230 80 \u4e07 / \u79d2\uff1b\u800c F5 \u6027\u80fd\u662f\u767e\u4e07\u7ea7\uff0c\u4ece 200 \u4e07 / \u79d2\u5230 800 \u4e07 / \u79d2\u90fd\u6709\uff08\u6570\u636e\u6765\u6e90\u7f51\u7edc\uff0c\u4ec5\u4f9b\u53c2\u8003\uff0c\u5982\u9700\u91c7\u7528\u8bf7\u6839\u636e\u5b9e\u9645\u4e1a\u52a1\u573a\u666f\u8fdb\u884c\u6027\u80fd\u6d4b\u8bd5\uff09\u3002\u5f53\u7136\uff0c\u8f6f\u4ef6\u8d1f\u8f7d\u5747\u8861\u7684\u6700\u5927\u4f18\u52bf\u662f\u4fbf\u5b9c\uff0c\u4e00\u53f0\u666e\u901a\u7684 Linux \u670d\u52a1\u5668\u6279\u53d1\u4ef7\u5927\u6982\u5c31\u662f 1 \u4e07\u5143\u5de6\u53f3\uff0c\u76f8\u6bd4 F5 \u7684\u4ef7\u683c\uff0c\u90a3\u5c31\u662f\u81ea\u884c\u8f66\u548c\u5b9d\u9a6c\u7684\u533a\u522b\u4e86\u3002"),(0,l.yg)("p",null,"\u8f6f\u4ef6\u8d1f\u8f7d\u5747\u8861\u7684\u4f18\u70b9\uff1a"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u7b80\u5355\uff1a\u65e0\u8bba\u662f\u90e8\u7f72\u8fd8\u662f\u7ef4\u62a4\u90fd\u6bd4\u8f83\u7b80\u5355\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u4fbf\u5b9c\uff1a\u53ea\u8981\u4e70\u4e2a Linux \u670d\u52a1\u5668\uff0c\u88c5\u4e0a\u8f6f\u4ef6\u5373\u53ef\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u7075\u6d3b\uff1a4 \u5c42\u548c 7 \u5c42\u8d1f\u8f7d\u5747\u8861\u53ef\u4ee5\u6839\u636e\u4e1a\u52a1\u8fdb\u884c\u9009\u62e9\uff1b\u4e5f\u53ef\u4ee5\u6839\u636e\u4e1a\u52a1\u8fdb\u884c\u6bd4\u8f83\u65b9\u4fbf\u7684\u6269\u5c55\uff0c\u4f8b\u5982\uff0c\u53ef\u4ee5\u901a\u8fc7 Nginx \u7684\u63d2\u4ef6\u6765\u5b9e\u73b0\u4e1a\u52a1\u7684\u5b9a\u5236\u5316\u529f\u80fd\u3002")),(0,l.yg)("p",null,"\u5176\u5b9e\u4e0b\u9762\u7684\u7f3a\u70b9\u90fd\u662f\u548c\u786c\u4ef6\u8d1f\u8f7d\u5747\u8861\u76f8\u6bd4\u7684\uff0c\u5e76\u4e0d\u662f\u8bf4\u8f6f\u4ef6\u8d1f\u8f7d\u5747\u8861\u6ca1\u6cd5\u7528\u3002"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u6027\u80fd\u4e00\u822c\uff1a\u4e00\u4e2a Nginx \u5927\u7ea6\u80fd\u652f\u6491 5 \u4e07\u5e76\u53d1\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u529f\u80fd\u6ca1\u6709\u786c\u4ef6\u8d1f\u8f7d\u5747\u8861\u90a3\u4e48\u5f3a\u5927\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u4e00\u822c\u4e0d\u5177\u5907\u9632\u706b\u5899\u548c\u9632 DDoS \u653b\u51fb\u7b49\u5b89\u5168\u529f\u80fd\u3002")),(0,l.yg)("h3",{id:"\u4f7f\u7528\u603b\u7ed3"},"\u4f7f\u7528\u603b\u7ed3"),(0,l.yg)("p",null,"\u524d\u9762\u6211\u4eec\u4ecb\u7ecd\u4e86 3 \u79cd\u5e38\u89c1\u7684\u8d1f\u8f7d\u5747\u8861\u673a\u5236\uff1aDNS \u8d1f\u8f7d\u5747\u8861\u3001\u786c\u4ef6\u8d1f\u8f7d\u5747\u8861\u3001\u8f6f\u4ef6\u8d1f\u8f7d\u5747\u8861\uff0c\u6bcf\u79cd\u65b9\u5f0f\u90fd\u6709\u4e00\u4e9b\u4f18\u7f3a\u70b9\uff0c\u4f46\u5e76\u4e0d\u610f\u5473\u7740\u5728\u5b9e\u9645\u5e94\u7528\u4e2d\u53ea\u80fd\u57fa\u4e8e\u5b83\u4eec\u7684\u4f18\u7f3a\u70b9\u8fdb\u884c\u975e\u6b64\u5373\u5f7c\u7684\u9009\u62e9\uff0c\u53cd\u800c\u662f\u57fa\u4e8e\u5b83\u4eec\u7684\u4f18\u7f3a\u70b9\u8fdb\u884c\u7ec4\u5408\u4f7f\u7528\u3002\u5177\u4f53\u6765\u8bf4\uff0c\u7ec4\u5408\u7684\u57fa\u672c\u539f\u5219\u4e3a\uff1aDNS \u8d1f\u8f7d\u5747\u8861\u7528\u4e8e\u5b9e\u73b0\u5730\u7406\u7ea7\u522b\u7684\u8d1f\u8f7d\u5747\u8861\uff1b\u786c\u4ef6\u8d1f\u8f7d\u5747\u8861\u7528\u4e8e\u5b9e\u73b0\u96c6\u7fa4\u7ea7\u522b\u7684\u8d1f\u8f7d\u5747\u8861\uff1b\u8f6f\u4ef6\u8d1f\u8f7d\u5747\u8861\u7528\u4e8e\u5b9e\u73b0\u673a\u5668\u7ea7\u522b\u7684\u8d1f\u8f7d\u5747\u8861\u3002"),(0,l.yg)("p",null,(0,l.yg)("img",{alt:"image.png",src:n(4993).A,width:"750",height:"500"})),(0,l.yg)("h3",{id:"-1"}),(0,l.yg)("h3",{id:"-2"}),(0,l.yg)("h3",{id:"\u7b97\u6cd5\u603b\u7ed3"},"\u7b97\u6cd5\u603b\u7ed3"),(0,l.yg)("p",null,"\u8d1f\u8f7d\u5747\u8861\u7b97\u6cd5\u6570\u91cf\u8f83\u591a\uff0c\u800c\u4e14\u53ef\u4ee5\u6839\u636e\u4e00\u4e9b\u4e1a\u52a1\u7279\u6027\u8fdb\u884c\u5b9a\u5236\u5f00\u53d1\uff0c\u629b\u5f00\u7ec6\u8282\u4e0a\u7684\u5dee\u5f02\uff0c\u6839\u636e\u7b97\u6cd5\u671f\u671b\u8fbe\u5230\u7684\u76ee\u7684\uff0c\u5927\u4f53\u4e0a\u53ef\u4ee5\u5206\u4e3a\u4e0b\u9762\u51e0\u7c7b\u3002"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u4efb\u52a1\u5e73\u5206\u7c7b\uff1a\u8d1f\u8f7d\u5747\u8861\u7cfb\u7edf\u5c06\u6536\u5230\u7684\u4efb\u52a1\u5e73\u5747\u5206\u914d\u7ed9\u670d\u52a1\u5668\u8fdb\u884c\u5904\u7406\uff0c\u8fd9\u91cc\u7684\u201c\u5e73\u5747\u201d\u53ef\u4ee5\u662f\u7edd\u5bf9\u6570\u91cf\u7684\u5e73\u5747\uff0c\u4e5f\u53ef\u4ee5\u662f\u6bd4\u4f8b\u6216\u8005\u6743\u91cd\u4e0a\u7684\u5e73\u5747\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u8d1f\u8f7d\u5747\u8861\u7c7b\uff1a\u8d1f\u8f7d\u5747\u8861\u7cfb\u7edf\u6839\u636e\u670d\u52a1\u5668\u7684\u8d1f\u8f7d\u6765\u8fdb\u884c\u5206\u914d\uff0c\u8fd9\u91cc\u7684\u8d1f\u8f7d\u5e76\u4e0d\u4e00\u5b9a\u662f\u901a\u5e38\u610f\u4e49\u4e0a\u6211\u4eec\u8bf4\u7684\u201cCPU \u8d1f\u8f7d\u201d\uff0c\u800c\u662f\u7cfb\u7edf\u5f53\u524d\u7684\u538b\u529b\uff0c\u53ef\u4ee5\u7528 CPU \u8d1f\u8f7d\u6765\u8861\u91cf\uff0c\u4e5f\u53ef\u4ee5\u7528\u8fde\u63a5\u6570\u3001I/O \u4f7f\u7528\u7387\u3001\u7f51\u5361\u541e\u5410\u91cf\u7b49\u6765\u8861\u91cf\u7cfb\u7edf\u7684\u538b\u529b\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u6027\u80fd\u6700\u4f18\u7c7b\uff1a\u8d1f\u8f7d\u5747\u8861\u7cfb\u7edf\u6839\u636e\u670d\u52a1\u5668\u7684\u54cd\u5e94\u65f6\u95f4\u6765\u8fdb\u884c\u4efb\u52a1\u5206\u914d\uff0c\u4f18\u5148\u5c06\u65b0\u4efb\u52a1\u5206\u914d\u7ed9\u54cd\u5e94\u6700\u5feb\u7684\u670d\u52a1\u5668\u3002"),(0,l.yg)("li",{parentName:"ul"},"Hash \u7c7b\uff1a\u8d1f\u8f7d\u5747\u8861\u7cfb\u7edf\u6839\u636e\u4efb\u52a1\u4e2d\u7684\u67d0\u4e9b\u5173\u952e\u4fe1\u606f\u8fdb\u884c Hash \u8fd0\u7b97\uff0c\u5c06\u76f8\u540c Hash \u503c\u7684\u8bf7\u6c42\u5206\u914d\u5230\u540c\u4e00\u53f0\u670d\u52a1\u5668\u4e0a\u3002\u5e38\u89c1\u7684\u6709\u6e90\u5730\u5740 Hash\u3001\u76ee\u6807\u5730\u5740 Hash\u3001session id hash\u3001\u7528\u6237 ID Hash \u7b49\u3002")))}c.isMDXComponent=!0},4993:(e,t,n)=>{n.d(t,{A:()=>r});const r=n.p+"assets/images/4-1110b0b730ae76dd61a1d7d14c8523cb.png"}}]); \ No newline at end of file diff --git a/assets/js/1df90d44.67807d71.js b/assets/js/1df90d44.0612e746.js similarity index 98% rename from assets/js/1df90d44.67807d71.js rename to assets/js/1df90d44.0612e746.js index 5760e6314..cf79d72a6 100644 --- a/assets/js/1df90d44.67807d71.js +++ b/assets/js/1df90d44.0612e746.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[407],{5680:(e,t,r)=>{r.d(t,{xA:()=>d,yg:()=>m});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),s=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},d=function(e){var t=s(e.components);return n.createElement(l.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),p=s(r),f=a,m=p["".concat(l,".").concat(f)]||p[f]||u[f]||o;return r?n.createElement(m,c(c({ref:t},d),{},{components:r})):n.createElement(m,c({ref:t},d))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,c=new Array(o);c[0]=f;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[p]="string"==typeof e?e:a,c[1]=i;for(var s=2;s{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>s});var n=r(8168),a=(r(6540),r(5680));const o={},c="File and Code Templates",i={unversionedId:"study/back/IEDA/fileandcodetemplates",id:"study/back/IEDA/fileandcodetemplates",title:"File and Code Templates",description:"File and Code Templates",source:"@site/docs/study/back/IEDA/fileandcodetemplates.md",sourceDirName:"study/back/IEDA",slug:"/study/back/IEDA/fileandcodetemplates",permalink:"/docs/study/back/IEDA/fileandcodetemplates",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"encoding",permalink:"/docs/study/back/IEDA/encoding"},next:{title:"Save Action",permalink:"/docs/study/back/IEDA/save-action"}},l={},s=[],d={toc:s},p="wrapper";function u(e){let{components:t,...o}=e;return(0,a.yg)(p,(0,n.A)({},d,o,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"file-and-code-templates"},"File and Code Templates"),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"File and Code Templates",src:r(1093).A,width:"1024",height:"742"})))}u.isMDXComponent=!0},1093:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/template-e53f99d21b44feb70bba2b644b267dee.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[407],{5680:(e,t,r)=>{r.d(t,{xA:()=>d,yg:()=>m});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),s=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},d=function(e){var t=s(e.components);return n.createElement(l.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),p=s(r),f=a,m=p["".concat(l,".").concat(f)]||p[f]||u[f]||o;return r?n.createElement(m,c(c({ref:t},d),{},{components:r})):n.createElement(m,c({ref:t},d))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,c=new Array(o);c[0]=f;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[p]="string"==typeof e?e:a,c[1]=i;for(var s=2;s{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>s});var n=r(8168),a=(r(6540),r(5680));const o={},c="File and Code Templates",i={unversionedId:"study/back/IEDA/fileandcodetemplates",id:"study/back/IEDA/fileandcodetemplates",title:"File and Code Templates",description:"File and Code Templates",source:"@site/docs/study/back/IEDA/fileandcodetemplates.md",sourceDirName:"study/back/IEDA",slug:"/study/back/IEDA/fileandcodetemplates",permalink:"/docs/study/back/IEDA/fileandcodetemplates",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"encoding",permalink:"/docs/study/back/IEDA/encoding"},next:{title:"Save Action",permalink:"/docs/study/back/IEDA/save-action"}},l={},s=[],d={toc:s},p="wrapper";function u(e){let{components:t,...o}=e;return(0,a.yg)(p,(0,n.A)({},d,o,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"file-and-code-templates"},"File and Code Templates"),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"File and Code Templates",src:r(1093).A,width:"1024",height:"742"})))}u.isMDXComponent=!0},1093:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/template-e53f99d21b44feb70bba2b644b267dee.png"}}]); \ No newline at end of file diff --git a/assets/js/1e8406f2.3569aba0.js b/assets/js/1e8406f2.e00fc99a.js similarity index 99% rename from assets/js/1e8406f2.3569aba0.js rename to assets/js/1e8406f2.e00fc99a.js index b44f61b92..1f781ea62 100644 --- a/assets/js/1e8406f2.3569aba0.js +++ b/assets/js/1e8406f2.e00fc99a.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6407],{5680:(e,n,a)=>{a.d(n,{xA:()=>g,yg:()=>c});var r=a(6540);function t(e,n,a){return n in e?Object.defineProperty(e,n,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[n]=a,e}function l(e,n){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var n=1;n=0||(t[a]=e[a]);return t}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(t[a]=e[a])}return t}var u=r.createContext({}),o=function(e){var n=r.useContext(u),a=n;return e&&(a="function"==typeof e?e(n):i(i({},n),e)),a},g=function(e){var n=o(e.components);return r.createElement(u.Provider,{value:n},e.children)},s="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},d=r.forwardRef((function(e,n){var a=e.components,t=e.mdxType,l=e.originalType,u=e.parentName,g=p(e,["components","mdxType","originalType","parentName"]),s=o(a),d=t,c=s["".concat(u,".").concat(d)]||s[d]||m[d]||l;return a?r.createElement(c,i(i({ref:n},g),{},{components:a})):r.createElement(c,i({ref:n},g))}));function c(e,n){var a=arguments,t=n&&n.mdxType;if("string"==typeof e||t){var l=a.length,i=new Array(l);i[0]=d;var p={};for(var u in n)hasOwnProperty.call(n,u)&&(p[u]=n[u]);p.originalType=e,p[s]="string"==typeof e?e:t,i[1]=p;for(var o=2;o{a.r(n),a.d(n,{assets:()=>u,contentTitle:()=>i,default:()=>m,frontMatter:()=>l,metadata:()=>p,toc:()=>o});var r=a(8168),t=(a(6540),a(5680));const l={},i=void 0,p={unversionedId:"study/program/JAVA/Maven",id:"study/program/JAVA/Maven",title:"Maven",description:"\u7b80\u4ecb",source:"@site/docs/study/program/JAVA/Maven.md",sourceDirName:"study/program/JAVA",slug:"/study/program/JAVA/Maven",permalink:"/docs/study/program/JAVA/Maven",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"JNI",permalink:"/docs/study/program/JAVA/JNI"},next:{title:"OpenJ9",permalink:"/docs/study/program/JAVA/OepnJ9"}},u={},o=[{value:"\u7b80\u4ecb",id:"\u7b80\u4ecb",level:3},{value:"\u53c2\u6570",id:"\u53c2\u6570",level:3},{value:"\u63d2\u4ef6",id:"\u63d2\u4ef6",level:3},{value:"\u4e09\u79cd\u6253\u5305\u63d2\u4ef6",id:"\u4e09\u79cd\u6253\u5305\u63d2\u4ef6",level:4},{value:"maven-assembly-plugin",id:"maven-assembly-plugin",level:4},{value:"maven-enforcer-plugin",id:"maven-enforcer-plugin",level:4},{value:"maven-release-plugin",id:"maven-release-plugin",level:4},{value:"maven-resources-plugin",id:"maven-resources-plugin",level:4},{value:"build-helper-maven-plugin",id:"build-helper-maven-plugin",level:4},{value:"versions-maven-plugin",id:"versions-maven-plugin",level:4},{value:"git-commit-id-plugin",id:"git-commit-id-plugin",level:4},{value:"jacoco-maven-plugin",id:"jacoco-maven-plugin",level:4}],g={toc:o},s="wrapper";function m(e){let{components:n,...a}=e;return(0,t.yg)(s,(0,r.A)({},g,a,{components:n,mdxType:"MDXLayout"}),(0,t.yg)("h3",{id:"\u7b80\u4ecb"},"\u7b80\u4ecb"),(0,t.yg)("p",null,"\u672c\u8d28\u4e0a\u662f\u4e00\u4e2a\u63d2\u4ef6\u6846\u67b6\uff0c\u5b83\u7684\u6838\u5fc3\u5e76\u4e0d\u6267\u884c\u4efb\u4f55\u5177\u4f53\u7684\u6784\u5efa\u4efb\u52a1\uff0c\u6240\u6709\u8fd9\u4e9b\u4efb\u52a1\u90fd\u4ea4\u7ed9\u63d2\u4ef6\u6765\u5b8c\u6210\uff0c\u4f8b\u5982\u7f16\u8bd1\u6e90\u4ee3\u7801\u662f\u7531maven- compiler-plugin\u5b8c\u6210\u7684\u3002"),(0,t.yg)("h3",{id:"\u53c2\u6570"},"\u53c2\u6570"),(0,t.yg)("table",null,(0,t.yg)("thead",{parentName:"table"},(0,t.yg)("tr",{parentName:"thead"},(0,t.yg)("th",{parentName:"tr",align:null},"\u53c2\u6570"),(0,t.yg)("th",{parentName:"tr",align:null},"\u5168\u79f0"),(0,t.yg)("th",{parentName:"tr",align:null},"\u91ca\u4e49"),(0,t.yg)("th",{parentName:"tr",align:null},"\u8bf4\u660e"))),(0,t.yg)("tbody",{parentName:"table"},(0,t.yg)("tr",{parentName:"tbody"},(0,t.yg)("td",{parentName:"tr",align:null},"-pl"),(0,t.yg)("td",{parentName:"tr",align:null},"--projects"),(0,t.yg)("td",{parentName:"tr",align:null},"Build specified reactor projects instead of all projects"),(0,t.yg)("td",{parentName:"tr",align:null},"\u9009\u9879\u540e\u53ef\u8ddf\u968f{groupId}:{artifactId}\u6216\u8005\u6240\u9009\u6a21\u5757\u7684\u76f8\u5bf9\u8def\u5f84(\u591a\u4e2a\u6a21\u5757\u4ee5\u9017\u53f7\u5206\u9694)")),(0,t.yg)("tr",{parentName:"tbody"},(0,t.yg)("td",{parentName:"tr",align:null},"-am"),(0,t.yg)("td",{parentName:"tr",align:null},"--also-make"),(0,t.yg)("td",{parentName:"tr",align:null},"If project list is specified, also build projects required by the list"),(0,t.yg)("td",{parentName:"tr",align:null},"\u8868\u793a\u540c\u65f6\u5904\u7406\u9009\u5b9a\u6a21\u5757\u6240\u4f9d\u8d56\u7684\u6a21\u5757")),(0,t.yg)("tr",{parentName:"tbody"},(0,t.yg)("td",{parentName:"tr",align:null},"-amd"),(0,t.yg)("td",{parentName:"tr",align:null},"--also-make-dependents"),(0,t.yg)("td",{parentName:"tr",align:null},"If project list is specified, also build projects that depend on projects on the list"),(0,t.yg)("td",{parentName:"tr",align:null},"\u8868\u793a\u540c\u65f6\u5904\u7406\u4f9d\u8d56\u9009\u5b9a\u6a21\u5757\u7684\u6a21\u5757")),(0,t.yg)("tr",{parentName:"tbody"},(0,t.yg)("td",{parentName:"tr",align:null},"-N"),(0,t.yg)("td",{parentName:"tr",align:null},"--Non-recursive"),(0,t.yg)("td",{parentName:"tr",align:null},"Build projects without recursive"),(0,t.yg)("td",{parentName:"tr",align:null},"\u8868\u793a\u4e0d\u9012\u5f52\u5b50\u6a21\u5757")),(0,t.yg)("tr",{parentName:"tbody"},(0,t.yg)("td",{parentName:"tr",align:null},"-rf"),(0,t.yg)("td",{parentName:"tr",align:null},"--resume-from"),(0,t.yg)("td",{parentName:"tr",align:null},"Resume reactor from specified project"),(0,t.yg)("td",{parentName:"tr",align:null},"\u8868\u793a\u4ece\u6307\u5b9a\u6a21\u5757\u5f00\u59cb\u7ee7\u7eed\u5904\u7406")))),(0,t.yg)("h3",{id:"\u63d2\u4ef6"},"\u63d2\u4ef6"),(0,t.yg)("h4",{id:"\u4e09\u79cd\u6253\u5305\u63d2\u4ef6"},"\u4e09\u79cd\u6253\u5305\u63d2\u4ef6"),(0,t.yg)("ul",null,(0,t.yg)("li",{parentName:"ul"},"maven-jar-plugin\uff0c\u9ed8\u8ba4\u7684\u6253\u5305\u63d2\u4ef6\uff0c\u7528\u6765\u6253\u666e\u901a\u7684project JAR\u5305\uff1b"),(0,t.yg)("li",{parentName:"ul"},"maven-shade-plugin\uff0c\u7528\u6765\u6253\u53ef\u6267\u884cJAR\u5305\uff0c\u4e5f\u5c31\u662f\u6240\u8c13\u7684fat JAR\u5305\uff1b"),(0,t.yg)("li",{parentName:"ul"},"maven-assembly-plugin\uff0c\u652f\u6301\u81ea\u5b9a\u4e49\u7684\u6253\u5305\u7ed3\u6784\uff0c\u4e5f\u53ef\u4ee5\u5b9a\u5236\u4f9d\u8d56\u9879\u7b49\u3002")),(0,t.yg)("h4",{id:"maven-assembly-plugin"},"maven-assembly-plugin"),(0,t.yg)("p",null,"maven-assembly-plugin\u7684\u7528\u9014\u662f\u5236\u4f5c\u9879\u76ee\u5206\u53d1\u5305\uff0c\u8be5\u5206\u53d1\u5305\u53ef\u80fd\u5305\u542b\u4e86\u9879\u76ee\u7684\u53ef\u6267\u884c\u6587\u4ef6\u3001\u6e90\u4ee3\u7801\u3001readme\u3001\u5e73\u53f0\u811a\u672c\u7b49\u7b49\u3002maven-assembly-plugin\u652f\u6301\u5404\u79cd\u4e3b\u6d41\u7684\u683c\u5f0f\u5982zip\u3001tar.gz\u3001jar\u548cwar\u7b49\uff0c\u5177\u4f53\u6253\u5305\u54ea\u4e9b\u6587\u4ef6\u662f\u9ad8\u5ea6\u53ef\u63a7\u7684\uff0c\u4f8b\u5982\u7528\u6237\u53ef\u4ee5 \u6309\u6587\u4ef6\u7ea7\u522b\u7684\u7c92\u5ea6\u3001\u6587\u4ef6\u96c6\u7ea7\u522b\u7684\u7c92\u5ea6\u3001\u6a21\u5757\u7ea7\u522b\u7684\u7c92\u5ea6\u3001\u4ee5\u53ca\u4f9d\u8d56\u7ea7\u522b\u7684\u7c92\u5ea6\u63a7\u5236\u6253\u5305\uff0c\u6b64\u5916\uff0c\u5305\u542b\u548c\u6392\u9664\u914d\u7f6e\u4e5f\u662f\u652f\u6301\u7684\u3002maven-assembly- plugin\u8981\u6c42\u7528\u6237\u4f7f\u7528\u4e00\u4e2a\u540d\u4e3aassembly.xml\u7684\u5143\u6570\u636e\u6587\u4ef6\u6765\u8868\u8ff0\u6253\u5305\uff0c\u5b83\u7684single\u76ee\u6807\u53ef\u4ee5\u76f4\u63a5\u5728\u547d\u4ee4\u884c\u8c03\u7528\uff0c\u4e5f\u53ef\u4ee5\u88ab\u7ed1\u5b9a\u81f3\u751f\u547d\u5468\u671f\u3002"),(0,t.yg)("h4",{id:"maven-enforcer-plugin"},"maven-enforcer-plugin"),(0,t.yg)("p",null,"\u5728\u4e00\u4e2a\u7a0d\u5927\u4e00\u70b9\u7684\u7ec4\u7ec7\u6216\u56e2\u961f\u4e2d\uff0c\u4f60\u65e0\u6cd5\u4fdd\u8bc1\u6240\u6709\u6210\u5458\u90fd\u719f\u6089Maven\uff0c\u90a3\u4ed6\u4eec\u505a\u4e00\u4e9b\u6bd4\u8f83\u611a\u8822\u7684\u4e8b\u60c5\u5c31\u4f1a\u53d8\u5f97\u5f88\u6b63\u5e38\uff0c\u4f8b\u5982\u7ed9\u9879\u76ee\u5f15\u5165\u4e86\u5916\u90e8\u7684 SNAPSHOT\u4f9d\u8d56\u800c\u5bfc\u81f4\u6784\u5efa\u4e0d\u7a33\u5b9a\uff0c\u4f7f\u7528\u4e86\u4e00\u4e2a\u4e0e\u5927\u5bb6\u4e0d\u4e00\u81f4\u7684Maven\u7248\u672c\u800c\u7ecf\u5e38\u62b1\u6028\u6784\u5efa\u51fa\u73b0\u8be1\u5f02\u95ee\u9898\u3002maven-enforcer- plugin\u80fd\u591f\u5e2e\u52a9\u4f60\u907f\u514d\u4e4b\u7c7b\u95ee\u9898\uff0c\u5b83\u5141\u8bb8\u4f60\u521b\u5efa\u4e00\u7cfb\u5217\u89c4\u5219\u5f3a\u5236\u5927\u5bb6\u9075\u5b88\uff0c\u5305\u62ec\u8bbe\u5b9aJava\u7248\u672c\u3001\u8bbe\u5b9aMaven\u7248\u672c\u3001\u7981\u6b62\u67d0\u4e9b\u4f9d\u8d56\u3001\u7981\u6b62 SNAPSHOT\u4f9d\u8d56\u3002\u53ea\u8981\u5728\u4e00\u4e2a\u7236POM\u914d\u7f6e\u89c4\u5219\uff0c\u7136\u540e\u8ba9\u5927\u5bb6\u7ee7\u627f\uff0c\u5f53\u89c4\u5219\u906d\u5230\u7834\u574f\u7684\u65f6\u5019\uff0cMaven\u5c31\u4f1a\u62a5\u9519\u3002\u9664\u4e86\u6807\u51c6\u7684\u89c4\u5219\u4e4b\u5916\uff0c\u4f60\u8fd8\u53ef\u4ee5\u6269\u5c55\u8be5\u63d2 \u4ef6\uff0c\u7f16\u5199\u81ea\u5df1\u7684\u89c4\u5219\u3002maven-enforcer-plugin\u7684enforce\u76ee\u6807\u8d1f\u8d23\u68c0\u67e5\u89c4\u5219\uff0c\u5b83\u9ed8\u8ba4\u7ed1\u5b9a\u5230\u751f\u547d\u5468\u671f\u7684validate\u9636\u6bb5\u3002"),(0,t.yg)("h4",{id:"maven-release-plugin"},"maven-release-plugin"),(0,t.yg)("p",null,"maven-release-plugin\u7684\u7528\u9014\u662f\u5e2e\u52a9\u81ea\u52a8\u5316\u9879\u76ee\u7248\u672c\u53d1\u5e03\uff0c\u5b83\u4f9d\u8d56\u4e8ePOM\u4e2d\u7684SCM\u4fe1\u606f\u3002release:prepare\u7528\u6765\u51c6\u5907\u7248\u672c\u53d1\u5e03\uff0c\u5177\u4f53\u7684\u5de5\u4f5c\u5305\u62ec\u68c0\u67e5\u662f\u5426\u6709\u672a\u63d0\u4ea4\u4ee3\u7801\u3001\u68c0\u67e5\u662f\u5426\u6709SNAPSHOT\u4f9d\u8d56\u3001\u5347\u7ea7\u9879\u76ee\u7684SNAPSHOT\u7248\u672c\u81f3RELEASE\u7248\u672c\u3001\u4e3a\u9879\u76ee\u6253\u6807\u7b7e\u7b49\u7b49\u3002release:perform\u5219 \u662f\u7b7e\u51fa\u6807\u7b7e\u4e2d\u7684RELEASE\u6e90\u7801\uff0c\u6784\u5efa\u5e76\u53d1\u5e03\u3002\u7248\u672c\u53d1\u5e03\u662f\u975e\u5e38\u7410\u788e\u7684\u5de5\u4f5c\uff0c\u5b83\u6d89\u53ca\u4e86\u5404\u79cd\u68c0\u67e5\uff0c\u800c\u4e14\u7531\u4e8e\u8be5\u5de5\u4f5c\u4ec5\u4ec5\u662f\u5076\u5c14\u9700\u8981\uff0c\u56e0\u6b64\u624b\u52a8\u64cd\u4f5c\u5f88\u5bb9\u6613\u9057\u6f0f\u4e00 \u4e9b\u7ec6\u8282\uff0cmaven-release-plugin\u8ba9\u8be5\u5de5\u4f5c\u53d8\u5f97\u975e\u5e38\u5feb\u901f\u7b80\u4fbf\uff0c\u4e0d\u6613\u51fa\u9519\u3002maven-release-plugin\u7684\u5404\u79cd\u76ee\u6807\u901a\u5e38\u76f4\u63a5\u5728 \u547d\u4ee4\u884c\u8c03\u7528\uff0c\u56e0\u4e3a\u7248\u672c\u53d1\u5e03\u663e\u7136\u4e0d\u662f\u65e5\u5e38\u6784\u5efa\u751f\u547d\u5468\u671f\u7684\u4e00\u90e8\u5206\u3002"),(0,t.yg)("h4",{id:"maven-resources-plugin"},"maven-resources-plugin"),(0,t.yg)("p",null,"\u4e3a\u4e86\u4f7f\u9879\u76ee\u7ed3\u6784\u66f4\u4e3a\u6e05\u6670\uff0cMaven\u533a\u522b\u5bf9\u5f85Java\u4ee3\u7801\u6587\u4ef6\u548c\u8d44\u6e90\u6587\u4ef6\uff0cmaven-compiler-plugin\u7528\u6765\u7f16\u8bd1Java\u4ee3\u7801\uff0cmaven-resources-plugin\u5219\u7528\u6765\u5904\u7406\u8d44\u6e90\u6587\u4ef6\u3002\u9ed8\u8ba4\u7684\u4e3b\u8d44\u6e90\u6587\u4ef6\u76ee\u5f55\u662fsrc/main/resources\uff0c\u5f88\u591a\u7528\u6237\u4f1a\u9700\u8981\u6dfb\u52a0\u989d\u5916\u7684\u8d44\u6e90\u6587\u4ef6\u76ee\u5f55\uff0c\u8fd9\u4e2a\u65f6\u5019\u5c31\u53ef\u4ee5\u901a\u8fc7\u914d\u7f6emaven-resources-plugin\u6765\u5b9e\u73b0\u3002\u6b64\u5916\uff0c\u8d44\u6e90\u6587\u4ef6\u8fc7\u6ee4\u4e5f\u662fMaven\u7684\u4e00\u5927\u7279\u6027\uff0c\u4f60\u53ef\u4ee5\u5728\u8d44\u6e90\u6587\u4ef6\u4e2d\u4f7f\u7528${propertyName}\u5f62\u5f0f\u7684Maven\u5c5e\u6027\uff0c\u7136\u540e\u914d\u7f6emaven-resources-plugin\u5f00\u542f\u5bf9\u8d44\u6e90\u6587\u4ef6\u7684\u8fc7\u6ee4\uff0c\u4e4b\u540e\u5c31\u53ef\u4ee5\u9488\u5bf9\u4e0d\u540c\u73af\u5883\u901a\u8fc7\u547d\u4ee4\u884c\u6216\u8005Profile\u4f20\u5165\u5c5e\u6027\u7684\u503c\uff0c\u4ee5\u5b9e\u73b0\u66f4\u4e3a\u7075\u6d3b\u7684\u6784\u5efa\u3002"),(0,t.yg)("h4",{id:"build-helper-maven-plugin"},"build-helper-maven-plugin"),(0,t.yg)("p",null,"Maven\u9ed8\u8ba4\u53ea\u5141\u8bb8\u6307\u5b9a\u4e00\u4e2a\u4e3bJava\u4ee3\u7801\u76ee\u5f55\u548c\u4e00\u4e2a\u6d4b\u8bd5Java\u4ee3\u7801\u76ee\u5f55\uff0c\u867d\u7136\u8fd9\u5176\u5b9e\u662f\u4e2a\u5e94\u5f53\u5c3d\u91cf\u9075\u5b88\u7684\u7ea6\u5b9a\uff0c\u4f46\u5076\u5c14\u4f60\u8fd8\u662f\u4f1a\u5e0c\u671b\u80fd\u591f\u6307\u5b9a\u591a\u4e2a \u6e90\u7801\u76ee\u5f55\uff08\u4f8b\u5982\u4e3a\u4e86\u5e94\u5bf9\u9057\u7559\u9879\u76ee\uff09\uff0cbuild-helper-maven-plugin\u7684add-source\u76ee\u6807\u5c31\u662f\u670d\u52a1\u4e8e\u8fd9\u4e2a\u76ee\u7684\uff0c\u901a\u5e38\u5b83\u88ab\u7ed1\u5b9a\u5230 \u9ed8\u8ba4\u751f\u547d\u5468\u671f\u7684generate-sources\u9636\u6bb5\u4ee5\u6dfb\u52a0\u989d\u5916\u7684\u6e90\u7801\u76ee\u5f55\u3002\u9700\u8981\u5f3a\u8c03\u7684\u662f\uff0c\u8fd9\u79cd\u505a\u6cd5\u8fd8\u662f\u4e0d\u63a8\u8350\u7684\uff0c\u56e0\u4e3a\u5b83\u7834\u574f\u4e86 Maven\u7684\u7ea6\u5b9a\uff0c\u800c\u4e14\u53ef\u80fd\u4f1a\u9047\u5230\u5176\u4ed6\u4e25\u683c\u9075\u5b88\u7ea6\u5b9a\u7684\u63d2\u4ef6\u5de5\u5177\u65e0\u6cd5\u6b63\u786e\u8bc6\u522b\u989d\u5916\u7684\u6e90\u7801\u76ee\u5f55\u3002\nbuild-helper-maven-plugin\u7684\u53e6\u4e00\u4e2a\u975e\u5e38\u6709\u7528\u7684\u76ee\u6807\u662fattach-artifact\uff0c\u4f7f\u7528\u8be5\u76ee\u6807\u4f60\u53ef\u4ee5\u4ee5classifier\u7684\u5f62\u5f0f\u9009\u53d6\u90e8\u5206\u9879\u76ee\u6587\u4ef6\u751f\u6210\u9644\u5c5e\u6784\u4ef6\uff0c\u5e76\u540c\u65f6install\u5230\u672c\u5730\u4ed3\u5e93\uff0c\u4e5f\u53ef\u4ee5deploy\u5230\u8fdc\u7a0b\u4ed3\u5e93\u3002"),(0,t.yg)("h4",{id:"versions-maven-plugin"},"versions-maven-plugin"),(0,t.yg)("p",null,"\u5f88\u591aMaven\u7528\u6237\u9047\u5230\u8fc7\u8fd9\u6837\u4e00\u4e2a\u95ee\u9898\uff0c\u5f53\u9879\u76ee\u5305\u542b\u5927\u91cf\u6a21\u5757\u7684\u65f6\u5019\uff0c\u4e3a\u4ed6\u4eec\u96c6\u4f53\u66f4\u65b0\u7248\u672c\u5c31\u53d8\u6210\u4e00\u4ef6\u70e6\u4eba\u7684\u4e8b\u60c5\uff0c\u5230\u5e95\u6709\u6ca1\u6709\u81ea\u52a8\u5316\u5de5\u5177\u80fd\u5e2e\u52a9\u5b8c\u6210\u8fd9\u4ef6 \u4e8b\u60c5\u5462\uff1f\uff08\u5f53\u7136\u4f60\u53ef\u4ee5\u4f7f\u7528sed\u4e4b\u7c7b\u7684\u6587\u672c\u64cd\u4f5c\u5de5\u5177\uff0c\u4e0d\u8fc7\u4e0d\u5728\u672c\u6587\u8ba8\u8bba\u8303\u56f4\uff09\u7b54\u6848\u662f\u80af\u5b9a\u7684\uff0cversions-maven- plugin\u63d0\u4f9b\u4e86\u5f88\u591a\u76ee\u6807\u5e2e\u52a9\u4f60\u7ba1\u7406Maven\u9879\u76ee\u7684\u5404\u79cd\u7248\u672c\u4fe1\u606f\u3002\u4f8b\u5982\u6700\u5e38\u7528\u7684\uff0c\u547d\u4ee4 mvn versions:set -DnewVersion=1.1-SNAPSHOT \u5c31\u80fd\u5e2e\u52a9\u4f60\u628a\u6240\u6709\u6a21\u5757\u7684\u7248\u672c\u66f4\u65b0\u52301.1-SNAPSHOT\u3002\u8be5\u63d2\u4ef6\u8fd8\u63d0\u4f9b\u4e86\u5176\u4ed6\u4e00\u4e9b\u5f88\u6709\u7528\u7684\u76ee\u6807\uff0cdisplay-dependency- updates\u80fd\u544a\u8bc9\u4f60\u9879\u76ee\u4f9d\u8d56\u6709\u54ea\u4e9b\u53ef\u7528\u7684\u66f4\u65b0\uff1b\u7c7b\u4f3c\u7684display-plugin-updates\u80fd\u544a\u8bc9\u4f60\u53ef\u7528\u7684\u63d2\u4ef6\u66f4\u65b0\uff1b\u7136\u540euse- latest-versions\u80fd\u81ea\u52a8\u5e2e\u4f60\u5c06\u6240\u6709\u4f9d\u8d56\u5347\u7ea7\u5230\u6700\u65b0\u7248\u672c\u3002\u6700\u540e\uff0c\u5982\u679c\u4f60\u5bf9\u6240\u505a\u7684\u66f4\u6539\u6ee1\u610f\uff0c\u5219\u53ef\u4ee5\u4f7f\u7528 mvn versions:commit \u63d0\u4ea4\uff0c\u4e0d\u6ee1\u610f\u7684\u8bdd\u4e5f\u53ef\u4ee5\u4f7f\u7528 mvn versions:revert \u8fdb\u884c\u64a4\u9500\u3002"),(0,t.yg)("h4",{id:"git-commit-id-plugin"},"git-commit-id-plugin"),(0,t.yg)("ul",null,(0,t.yg)("li",{parentName:"ul"},(0,t.yg)("a",{parentName:"li",href:"https://blog.csdn.net/mytt_10566/article/details/100116670"},"CSDN-Maven\u5b66\u4e60\u7b14\u8bb0 - git-commit-id-plugin\u63d2\u4ef6"))),(0,t.yg)("h4",{id:"jacoco-maven-plugin"},"jacoco-maven-plugin"),(0,t.yg)("p",null,"\u5728Maven\u9879\u76ee\u4e2d\uff0c\u6211\u4eec\u53ef\u4ee5\u4f7f\u7528jacoco-maven-plugin\u63d2\u4ef6\u6765\u751f\u6210\u4ee3\u7801\u8986\u76d6\u7387\u62a5\u544a\u3002Jacoco\u662f\u4e00\u79cd\u7528\u4e8e\u6d4b\u91cf\u4ee3\u7801\u8986\u76d6\u7387\u7684\u5de5\u5177\uff0c\u5b83\u80fd\u591f\u751f\u6210\u8986\u76d6\u7387\u6570\u636e\u5e76\u5e2e\u52a9\u6211\u4eec\u627e\u51fa\u4ee3\u7801\u4e2d\u672a\u88ab\u6d4b\u8bd5\u7684\u90e8\u5206\u3002"),(0,t.yg)("p",null,(0,t.yg)("a",{parentName:"p",href:"https://developer.baidu.com/article/details/2778816"},"\u4f7f\u7528Maven\u63d2\u4ef6\uff08jacoco-maven-plugin\uff09\u751f\u6210\u4ee3\u7801\u8986\u76d6\u7387\u62a5\u544a")))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6407],{5680:(e,n,a)=>{a.d(n,{xA:()=>g,yg:()=>c});var r=a(6540);function t(e,n,a){return n in e?Object.defineProperty(e,n,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[n]=a,e}function l(e,n){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var n=1;n=0||(t[a]=e[a]);return t}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(t[a]=e[a])}return t}var u=r.createContext({}),o=function(e){var n=r.useContext(u),a=n;return e&&(a="function"==typeof e?e(n):i(i({},n),e)),a},g=function(e){var n=o(e.components);return r.createElement(u.Provider,{value:n},e.children)},s="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},d=r.forwardRef((function(e,n){var a=e.components,t=e.mdxType,l=e.originalType,u=e.parentName,g=p(e,["components","mdxType","originalType","parentName"]),s=o(a),d=t,c=s["".concat(u,".").concat(d)]||s[d]||m[d]||l;return a?r.createElement(c,i(i({ref:n},g),{},{components:a})):r.createElement(c,i({ref:n},g))}));function c(e,n){var a=arguments,t=n&&n.mdxType;if("string"==typeof e||t){var l=a.length,i=new Array(l);i[0]=d;var p={};for(var u in n)hasOwnProperty.call(n,u)&&(p[u]=n[u]);p.originalType=e,p[s]="string"==typeof e?e:t,i[1]=p;for(var o=2;o{a.r(n),a.d(n,{assets:()=>u,contentTitle:()=>i,default:()=>m,frontMatter:()=>l,metadata:()=>p,toc:()=>o});var r=a(8168),t=(a(6540),a(5680));const l={},i=void 0,p={unversionedId:"study/program/JAVA/Maven",id:"study/program/JAVA/Maven",title:"Maven",description:"\u7b80\u4ecb",source:"@site/docs/study/program/JAVA/Maven.md",sourceDirName:"study/program/JAVA",slug:"/study/program/JAVA/Maven",permalink:"/docs/study/program/JAVA/Maven",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"JNI",permalink:"/docs/study/program/JAVA/JNI"},next:{title:"OpenJ9",permalink:"/docs/study/program/JAVA/OepnJ9"}},u={},o=[{value:"\u7b80\u4ecb",id:"\u7b80\u4ecb",level:3},{value:"\u53c2\u6570",id:"\u53c2\u6570",level:3},{value:"\u63d2\u4ef6",id:"\u63d2\u4ef6",level:3},{value:"\u4e09\u79cd\u6253\u5305\u63d2\u4ef6",id:"\u4e09\u79cd\u6253\u5305\u63d2\u4ef6",level:4},{value:"maven-assembly-plugin",id:"maven-assembly-plugin",level:4},{value:"maven-enforcer-plugin",id:"maven-enforcer-plugin",level:4},{value:"maven-release-plugin",id:"maven-release-plugin",level:4},{value:"maven-resources-plugin",id:"maven-resources-plugin",level:4},{value:"build-helper-maven-plugin",id:"build-helper-maven-plugin",level:4},{value:"versions-maven-plugin",id:"versions-maven-plugin",level:4},{value:"git-commit-id-plugin",id:"git-commit-id-plugin",level:4},{value:"jacoco-maven-plugin",id:"jacoco-maven-plugin",level:4}],g={toc:o},s="wrapper";function m(e){let{components:n,...a}=e;return(0,t.yg)(s,(0,r.A)({},g,a,{components:n,mdxType:"MDXLayout"}),(0,t.yg)("h3",{id:"\u7b80\u4ecb"},"\u7b80\u4ecb"),(0,t.yg)("p",null,"\u672c\u8d28\u4e0a\u662f\u4e00\u4e2a\u63d2\u4ef6\u6846\u67b6\uff0c\u5b83\u7684\u6838\u5fc3\u5e76\u4e0d\u6267\u884c\u4efb\u4f55\u5177\u4f53\u7684\u6784\u5efa\u4efb\u52a1\uff0c\u6240\u6709\u8fd9\u4e9b\u4efb\u52a1\u90fd\u4ea4\u7ed9\u63d2\u4ef6\u6765\u5b8c\u6210\uff0c\u4f8b\u5982\u7f16\u8bd1\u6e90\u4ee3\u7801\u662f\u7531maven- compiler-plugin\u5b8c\u6210\u7684\u3002"),(0,t.yg)("h3",{id:"\u53c2\u6570"},"\u53c2\u6570"),(0,t.yg)("table",null,(0,t.yg)("thead",{parentName:"table"},(0,t.yg)("tr",{parentName:"thead"},(0,t.yg)("th",{parentName:"tr",align:null},"\u53c2\u6570"),(0,t.yg)("th",{parentName:"tr",align:null},"\u5168\u79f0"),(0,t.yg)("th",{parentName:"tr",align:null},"\u91ca\u4e49"),(0,t.yg)("th",{parentName:"tr",align:null},"\u8bf4\u660e"))),(0,t.yg)("tbody",{parentName:"table"},(0,t.yg)("tr",{parentName:"tbody"},(0,t.yg)("td",{parentName:"tr",align:null},"-pl"),(0,t.yg)("td",{parentName:"tr",align:null},"--projects"),(0,t.yg)("td",{parentName:"tr",align:null},"Build specified reactor projects instead of all projects"),(0,t.yg)("td",{parentName:"tr",align:null},"\u9009\u9879\u540e\u53ef\u8ddf\u968f{groupId}:{artifactId}\u6216\u8005\u6240\u9009\u6a21\u5757\u7684\u76f8\u5bf9\u8def\u5f84(\u591a\u4e2a\u6a21\u5757\u4ee5\u9017\u53f7\u5206\u9694)")),(0,t.yg)("tr",{parentName:"tbody"},(0,t.yg)("td",{parentName:"tr",align:null},"-am"),(0,t.yg)("td",{parentName:"tr",align:null},"--also-make"),(0,t.yg)("td",{parentName:"tr",align:null},"If project list is specified, also build projects required by the list"),(0,t.yg)("td",{parentName:"tr",align:null},"\u8868\u793a\u540c\u65f6\u5904\u7406\u9009\u5b9a\u6a21\u5757\u6240\u4f9d\u8d56\u7684\u6a21\u5757")),(0,t.yg)("tr",{parentName:"tbody"},(0,t.yg)("td",{parentName:"tr",align:null},"-amd"),(0,t.yg)("td",{parentName:"tr",align:null},"--also-make-dependents"),(0,t.yg)("td",{parentName:"tr",align:null},"If project list is specified, also build projects that depend on projects on the list"),(0,t.yg)("td",{parentName:"tr",align:null},"\u8868\u793a\u540c\u65f6\u5904\u7406\u4f9d\u8d56\u9009\u5b9a\u6a21\u5757\u7684\u6a21\u5757")),(0,t.yg)("tr",{parentName:"tbody"},(0,t.yg)("td",{parentName:"tr",align:null},"-N"),(0,t.yg)("td",{parentName:"tr",align:null},"--Non-recursive"),(0,t.yg)("td",{parentName:"tr",align:null},"Build projects without recursive"),(0,t.yg)("td",{parentName:"tr",align:null},"\u8868\u793a\u4e0d\u9012\u5f52\u5b50\u6a21\u5757")),(0,t.yg)("tr",{parentName:"tbody"},(0,t.yg)("td",{parentName:"tr",align:null},"-rf"),(0,t.yg)("td",{parentName:"tr",align:null},"--resume-from"),(0,t.yg)("td",{parentName:"tr",align:null},"Resume reactor from specified project"),(0,t.yg)("td",{parentName:"tr",align:null},"\u8868\u793a\u4ece\u6307\u5b9a\u6a21\u5757\u5f00\u59cb\u7ee7\u7eed\u5904\u7406")))),(0,t.yg)("h3",{id:"\u63d2\u4ef6"},"\u63d2\u4ef6"),(0,t.yg)("h4",{id:"\u4e09\u79cd\u6253\u5305\u63d2\u4ef6"},"\u4e09\u79cd\u6253\u5305\u63d2\u4ef6"),(0,t.yg)("ul",null,(0,t.yg)("li",{parentName:"ul"},"maven-jar-plugin\uff0c\u9ed8\u8ba4\u7684\u6253\u5305\u63d2\u4ef6\uff0c\u7528\u6765\u6253\u666e\u901a\u7684project JAR\u5305\uff1b"),(0,t.yg)("li",{parentName:"ul"},"maven-shade-plugin\uff0c\u7528\u6765\u6253\u53ef\u6267\u884cJAR\u5305\uff0c\u4e5f\u5c31\u662f\u6240\u8c13\u7684fat JAR\u5305\uff1b"),(0,t.yg)("li",{parentName:"ul"},"maven-assembly-plugin\uff0c\u652f\u6301\u81ea\u5b9a\u4e49\u7684\u6253\u5305\u7ed3\u6784\uff0c\u4e5f\u53ef\u4ee5\u5b9a\u5236\u4f9d\u8d56\u9879\u7b49\u3002")),(0,t.yg)("h4",{id:"maven-assembly-plugin"},"maven-assembly-plugin"),(0,t.yg)("p",null,"maven-assembly-plugin\u7684\u7528\u9014\u662f\u5236\u4f5c\u9879\u76ee\u5206\u53d1\u5305\uff0c\u8be5\u5206\u53d1\u5305\u53ef\u80fd\u5305\u542b\u4e86\u9879\u76ee\u7684\u53ef\u6267\u884c\u6587\u4ef6\u3001\u6e90\u4ee3\u7801\u3001readme\u3001\u5e73\u53f0\u811a\u672c\u7b49\u7b49\u3002maven-assembly-plugin\u652f\u6301\u5404\u79cd\u4e3b\u6d41\u7684\u683c\u5f0f\u5982zip\u3001tar.gz\u3001jar\u548cwar\u7b49\uff0c\u5177\u4f53\u6253\u5305\u54ea\u4e9b\u6587\u4ef6\u662f\u9ad8\u5ea6\u53ef\u63a7\u7684\uff0c\u4f8b\u5982\u7528\u6237\u53ef\u4ee5 \u6309\u6587\u4ef6\u7ea7\u522b\u7684\u7c92\u5ea6\u3001\u6587\u4ef6\u96c6\u7ea7\u522b\u7684\u7c92\u5ea6\u3001\u6a21\u5757\u7ea7\u522b\u7684\u7c92\u5ea6\u3001\u4ee5\u53ca\u4f9d\u8d56\u7ea7\u522b\u7684\u7c92\u5ea6\u63a7\u5236\u6253\u5305\uff0c\u6b64\u5916\uff0c\u5305\u542b\u548c\u6392\u9664\u914d\u7f6e\u4e5f\u662f\u652f\u6301\u7684\u3002maven-assembly- plugin\u8981\u6c42\u7528\u6237\u4f7f\u7528\u4e00\u4e2a\u540d\u4e3aassembly.xml\u7684\u5143\u6570\u636e\u6587\u4ef6\u6765\u8868\u8ff0\u6253\u5305\uff0c\u5b83\u7684single\u76ee\u6807\u53ef\u4ee5\u76f4\u63a5\u5728\u547d\u4ee4\u884c\u8c03\u7528\uff0c\u4e5f\u53ef\u4ee5\u88ab\u7ed1\u5b9a\u81f3\u751f\u547d\u5468\u671f\u3002"),(0,t.yg)("h4",{id:"maven-enforcer-plugin"},"maven-enforcer-plugin"),(0,t.yg)("p",null,"\u5728\u4e00\u4e2a\u7a0d\u5927\u4e00\u70b9\u7684\u7ec4\u7ec7\u6216\u56e2\u961f\u4e2d\uff0c\u4f60\u65e0\u6cd5\u4fdd\u8bc1\u6240\u6709\u6210\u5458\u90fd\u719f\u6089Maven\uff0c\u90a3\u4ed6\u4eec\u505a\u4e00\u4e9b\u6bd4\u8f83\u611a\u8822\u7684\u4e8b\u60c5\u5c31\u4f1a\u53d8\u5f97\u5f88\u6b63\u5e38\uff0c\u4f8b\u5982\u7ed9\u9879\u76ee\u5f15\u5165\u4e86\u5916\u90e8\u7684 SNAPSHOT\u4f9d\u8d56\u800c\u5bfc\u81f4\u6784\u5efa\u4e0d\u7a33\u5b9a\uff0c\u4f7f\u7528\u4e86\u4e00\u4e2a\u4e0e\u5927\u5bb6\u4e0d\u4e00\u81f4\u7684Maven\u7248\u672c\u800c\u7ecf\u5e38\u62b1\u6028\u6784\u5efa\u51fa\u73b0\u8be1\u5f02\u95ee\u9898\u3002maven-enforcer- plugin\u80fd\u591f\u5e2e\u52a9\u4f60\u907f\u514d\u4e4b\u7c7b\u95ee\u9898\uff0c\u5b83\u5141\u8bb8\u4f60\u521b\u5efa\u4e00\u7cfb\u5217\u89c4\u5219\u5f3a\u5236\u5927\u5bb6\u9075\u5b88\uff0c\u5305\u62ec\u8bbe\u5b9aJava\u7248\u672c\u3001\u8bbe\u5b9aMaven\u7248\u672c\u3001\u7981\u6b62\u67d0\u4e9b\u4f9d\u8d56\u3001\u7981\u6b62 SNAPSHOT\u4f9d\u8d56\u3002\u53ea\u8981\u5728\u4e00\u4e2a\u7236POM\u914d\u7f6e\u89c4\u5219\uff0c\u7136\u540e\u8ba9\u5927\u5bb6\u7ee7\u627f\uff0c\u5f53\u89c4\u5219\u906d\u5230\u7834\u574f\u7684\u65f6\u5019\uff0cMaven\u5c31\u4f1a\u62a5\u9519\u3002\u9664\u4e86\u6807\u51c6\u7684\u89c4\u5219\u4e4b\u5916\uff0c\u4f60\u8fd8\u53ef\u4ee5\u6269\u5c55\u8be5\u63d2 \u4ef6\uff0c\u7f16\u5199\u81ea\u5df1\u7684\u89c4\u5219\u3002maven-enforcer-plugin\u7684enforce\u76ee\u6807\u8d1f\u8d23\u68c0\u67e5\u89c4\u5219\uff0c\u5b83\u9ed8\u8ba4\u7ed1\u5b9a\u5230\u751f\u547d\u5468\u671f\u7684validate\u9636\u6bb5\u3002"),(0,t.yg)("h4",{id:"maven-release-plugin"},"maven-release-plugin"),(0,t.yg)("p",null,"maven-release-plugin\u7684\u7528\u9014\u662f\u5e2e\u52a9\u81ea\u52a8\u5316\u9879\u76ee\u7248\u672c\u53d1\u5e03\uff0c\u5b83\u4f9d\u8d56\u4e8ePOM\u4e2d\u7684SCM\u4fe1\u606f\u3002release:prepare\u7528\u6765\u51c6\u5907\u7248\u672c\u53d1\u5e03\uff0c\u5177\u4f53\u7684\u5de5\u4f5c\u5305\u62ec\u68c0\u67e5\u662f\u5426\u6709\u672a\u63d0\u4ea4\u4ee3\u7801\u3001\u68c0\u67e5\u662f\u5426\u6709SNAPSHOT\u4f9d\u8d56\u3001\u5347\u7ea7\u9879\u76ee\u7684SNAPSHOT\u7248\u672c\u81f3RELEASE\u7248\u672c\u3001\u4e3a\u9879\u76ee\u6253\u6807\u7b7e\u7b49\u7b49\u3002release:perform\u5219 \u662f\u7b7e\u51fa\u6807\u7b7e\u4e2d\u7684RELEASE\u6e90\u7801\uff0c\u6784\u5efa\u5e76\u53d1\u5e03\u3002\u7248\u672c\u53d1\u5e03\u662f\u975e\u5e38\u7410\u788e\u7684\u5de5\u4f5c\uff0c\u5b83\u6d89\u53ca\u4e86\u5404\u79cd\u68c0\u67e5\uff0c\u800c\u4e14\u7531\u4e8e\u8be5\u5de5\u4f5c\u4ec5\u4ec5\u662f\u5076\u5c14\u9700\u8981\uff0c\u56e0\u6b64\u624b\u52a8\u64cd\u4f5c\u5f88\u5bb9\u6613\u9057\u6f0f\u4e00 \u4e9b\u7ec6\u8282\uff0cmaven-release-plugin\u8ba9\u8be5\u5de5\u4f5c\u53d8\u5f97\u975e\u5e38\u5feb\u901f\u7b80\u4fbf\uff0c\u4e0d\u6613\u51fa\u9519\u3002maven-release-plugin\u7684\u5404\u79cd\u76ee\u6807\u901a\u5e38\u76f4\u63a5\u5728 \u547d\u4ee4\u884c\u8c03\u7528\uff0c\u56e0\u4e3a\u7248\u672c\u53d1\u5e03\u663e\u7136\u4e0d\u662f\u65e5\u5e38\u6784\u5efa\u751f\u547d\u5468\u671f\u7684\u4e00\u90e8\u5206\u3002"),(0,t.yg)("h4",{id:"maven-resources-plugin"},"maven-resources-plugin"),(0,t.yg)("p",null,"\u4e3a\u4e86\u4f7f\u9879\u76ee\u7ed3\u6784\u66f4\u4e3a\u6e05\u6670\uff0cMaven\u533a\u522b\u5bf9\u5f85Java\u4ee3\u7801\u6587\u4ef6\u548c\u8d44\u6e90\u6587\u4ef6\uff0cmaven-compiler-plugin\u7528\u6765\u7f16\u8bd1Java\u4ee3\u7801\uff0cmaven-resources-plugin\u5219\u7528\u6765\u5904\u7406\u8d44\u6e90\u6587\u4ef6\u3002\u9ed8\u8ba4\u7684\u4e3b\u8d44\u6e90\u6587\u4ef6\u76ee\u5f55\u662fsrc/main/resources\uff0c\u5f88\u591a\u7528\u6237\u4f1a\u9700\u8981\u6dfb\u52a0\u989d\u5916\u7684\u8d44\u6e90\u6587\u4ef6\u76ee\u5f55\uff0c\u8fd9\u4e2a\u65f6\u5019\u5c31\u53ef\u4ee5\u901a\u8fc7\u914d\u7f6emaven-resources-plugin\u6765\u5b9e\u73b0\u3002\u6b64\u5916\uff0c\u8d44\u6e90\u6587\u4ef6\u8fc7\u6ee4\u4e5f\u662fMaven\u7684\u4e00\u5927\u7279\u6027\uff0c\u4f60\u53ef\u4ee5\u5728\u8d44\u6e90\u6587\u4ef6\u4e2d\u4f7f\u7528${propertyName}\u5f62\u5f0f\u7684Maven\u5c5e\u6027\uff0c\u7136\u540e\u914d\u7f6emaven-resources-plugin\u5f00\u542f\u5bf9\u8d44\u6e90\u6587\u4ef6\u7684\u8fc7\u6ee4\uff0c\u4e4b\u540e\u5c31\u53ef\u4ee5\u9488\u5bf9\u4e0d\u540c\u73af\u5883\u901a\u8fc7\u547d\u4ee4\u884c\u6216\u8005Profile\u4f20\u5165\u5c5e\u6027\u7684\u503c\uff0c\u4ee5\u5b9e\u73b0\u66f4\u4e3a\u7075\u6d3b\u7684\u6784\u5efa\u3002"),(0,t.yg)("h4",{id:"build-helper-maven-plugin"},"build-helper-maven-plugin"),(0,t.yg)("p",null,"Maven\u9ed8\u8ba4\u53ea\u5141\u8bb8\u6307\u5b9a\u4e00\u4e2a\u4e3bJava\u4ee3\u7801\u76ee\u5f55\u548c\u4e00\u4e2a\u6d4b\u8bd5Java\u4ee3\u7801\u76ee\u5f55\uff0c\u867d\u7136\u8fd9\u5176\u5b9e\u662f\u4e2a\u5e94\u5f53\u5c3d\u91cf\u9075\u5b88\u7684\u7ea6\u5b9a\uff0c\u4f46\u5076\u5c14\u4f60\u8fd8\u662f\u4f1a\u5e0c\u671b\u80fd\u591f\u6307\u5b9a\u591a\u4e2a \u6e90\u7801\u76ee\u5f55\uff08\u4f8b\u5982\u4e3a\u4e86\u5e94\u5bf9\u9057\u7559\u9879\u76ee\uff09\uff0cbuild-helper-maven-plugin\u7684add-source\u76ee\u6807\u5c31\u662f\u670d\u52a1\u4e8e\u8fd9\u4e2a\u76ee\u7684\uff0c\u901a\u5e38\u5b83\u88ab\u7ed1\u5b9a\u5230 \u9ed8\u8ba4\u751f\u547d\u5468\u671f\u7684generate-sources\u9636\u6bb5\u4ee5\u6dfb\u52a0\u989d\u5916\u7684\u6e90\u7801\u76ee\u5f55\u3002\u9700\u8981\u5f3a\u8c03\u7684\u662f\uff0c\u8fd9\u79cd\u505a\u6cd5\u8fd8\u662f\u4e0d\u63a8\u8350\u7684\uff0c\u56e0\u4e3a\u5b83\u7834\u574f\u4e86 Maven\u7684\u7ea6\u5b9a\uff0c\u800c\u4e14\u53ef\u80fd\u4f1a\u9047\u5230\u5176\u4ed6\u4e25\u683c\u9075\u5b88\u7ea6\u5b9a\u7684\u63d2\u4ef6\u5de5\u5177\u65e0\u6cd5\u6b63\u786e\u8bc6\u522b\u989d\u5916\u7684\u6e90\u7801\u76ee\u5f55\u3002\nbuild-helper-maven-plugin\u7684\u53e6\u4e00\u4e2a\u975e\u5e38\u6709\u7528\u7684\u76ee\u6807\u662fattach-artifact\uff0c\u4f7f\u7528\u8be5\u76ee\u6807\u4f60\u53ef\u4ee5\u4ee5classifier\u7684\u5f62\u5f0f\u9009\u53d6\u90e8\u5206\u9879\u76ee\u6587\u4ef6\u751f\u6210\u9644\u5c5e\u6784\u4ef6\uff0c\u5e76\u540c\u65f6install\u5230\u672c\u5730\u4ed3\u5e93\uff0c\u4e5f\u53ef\u4ee5deploy\u5230\u8fdc\u7a0b\u4ed3\u5e93\u3002"),(0,t.yg)("h4",{id:"versions-maven-plugin"},"versions-maven-plugin"),(0,t.yg)("p",null,"\u5f88\u591aMaven\u7528\u6237\u9047\u5230\u8fc7\u8fd9\u6837\u4e00\u4e2a\u95ee\u9898\uff0c\u5f53\u9879\u76ee\u5305\u542b\u5927\u91cf\u6a21\u5757\u7684\u65f6\u5019\uff0c\u4e3a\u4ed6\u4eec\u96c6\u4f53\u66f4\u65b0\u7248\u672c\u5c31\u53d8\u6210\u4e00\u4ef6\u70e6\u4eba\u7684\u4e8b\u60c5\uff0c\u5230\u5e95\u6709\u6ca1\u6709\u81ea\u52a8\u5316\u5de5\u5177\u80fd\u5e2e\u52a9\u5b8c\u6210\u8fd9\u4ef6 \u4e8b\u60c5\u5462\uff1f\uff08\u5f53\u7136\u4f60\u53ef\u4ee5\u4f7f\u7528sed\u4e4b\u7c7b\u7684\u6587\u672c\u64cd\u4f5c\u5de5\u5177\uff0c\u4e0d\u8fc7\u4e0d\u5728\u672c\u6587\u8ba8\u8bba\u8303\u56f4\uff09\u7b54\u6848\u662f\u80af\u5b9a\u7684\uff0cversions-maven- plugin\u63d0\u4f9b\u4e86\u5f88\u591a\u76ee\u6807\u5e2e\u52a9\u4f60\u7ba1\u7406Maven\u9879\u76ee\u7684\u5404\u79cd\u7248\u672c\u4fe1\u606f\u3002\u4f8b\u5982\u6700\u5e38\u7528\u7684\uff0c\u547d\u4ee4 mvn versions:set -DnewVersion=1.1-SNAPSHOT \u5c31\u80fd\u5e2e\u52a9\u4f60\u628a\u6240\u6709\u6a21\u5757\u7684\u7248\u672c\u66f4\u65b0\u52301.1-SNAPSHOT\u3002\u8be5\u63d2\u4ef6\u8fd8\u63d0\u4f9b\u4e86\u5176\u4ed6\u4e00\u4e9b\u5f88\u6709\u7528\u7684\u76ee\u6807\uff0cdisplay-dependency- updates\u80fd\u544a\u8bc9\u4f60\u9879\u76ee\u4f9d\u8d56\u6709\u54ea\u4e9b\u53ef\u7528\u7684\u66f4\u65b0\uff1b\u7c7b\u4f3c\u7684display-plugin-updates\u80fd\u544a\u8bc9\u4f60\u53ef\u7528\u7684\u63d2\u4ef6\u66f4\u65b0\uff1b\u7136\u540euse- latest-versions\u80fd\u81ea\u52a8\u5e2e\u4f60\u5c06\u6240\u6709\u4f9d\u8d56\u5347\u7ea7\u5230\u6700\u65b0\u7248\u672c\u3002\u6700\u540e\uff0c\u5982\u679c\u4f60\u5bf9\u6240\u505a\u7684\u66f4\u6539\u6ee1\u610f\uff0c\u5219\u53ef\u4ee5\u4f7f\u7528 mvn versions:commit \u63d0\u4ea4\uff0c\u4e0d\u6ee1\u610f\u7684\u8bdd\u4e5f\u53ef\u4ee5\u4f7f\u7528 mvn versions:revert \u8fdb\u884c\u64a4\u9500\u3002"),(0,t.yg)("h4",{id:"git-commit-id-plugin"},"git-commit-id-plugin"),(0,t.yg)("ul",null,(0,t.yg)("li",{parentName:"ul"},(0,t.yg)("a",{parentName:"li",href:"https://blog.csdn.net/mytt_10566/article/details/100116670"},"CSDN-Maven\u5b66\u4e60\u7b14\u8bb0 - git-commit-id-plugin\u63d2\u4ef6"))),(0,t.yg)("h4",{id:"jacoco-maven-plugin"},"jacoco-maven-plugin"),(0,t.yg)("p",null,"\u5728Maven\u9879\u76ee\u4e2d\uff0c\u6211\u4eec\u53ef\u4ee5\u4f7f\u7528jacoco-maven-plugin\u63d2\u4ef6\u6765\u751f\u6210\u4ee3\u7801\u8986\u76d6\u7387\u62a5\u544a\u3002Jacoco\u662f\u4e00\u79cd\u7528\u4e8e\u6d4b\u91cf\u4ee3\u7801\u8986\u76d6\u7387\u7684\u5de5\u5177\uff0c\u5b83\u80fd\u591f\u751f\u6210\u8986\u76d6\u7387\u6570\u636e\u5e76\u5e2e\u52a9\u6211\u4eec\u627e\u51fa\u4ee3\u7801\u4e2d\u672a\u88ab\u6d4b\u8bd5\u7684\u90e8\u5206\u3002"),(0,t.yg)("p",null,(0,t.yg)("a",{parentName:"p",href:"https://developer.baidu.com/article/details/2778816"},"\u4f7f\u7528Maven\u63d2\u4ef6\uff08jacoco-maven-plugin\uff09\u751f\u6210\u4ee3\u7801\u8986\u76d6\u7387\u62a5\u544a")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1ea907ab.d54ea7c8.js b/assets/js/1ea907ab.4d9c1c7e.js similarity index 98% rename from assets/js/1ea907ab.d54ea7c8.js rename to assets/js/1ea907ab.4d9c1c7e.js index 2d6fae196..449ce316c 100644 --- a/assets/js/1ea907ab.d54ea7c8.js +++ b/assets/js/1ea907ab.4d9c1c7e.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3441],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),s=p(r),m=o,y=s["".concat(l,".").concat(m)]||s[m]||d[m]||a;return r?n.createElement(y,c(c({ref:t},u),{},{components:r})):n.createElement(y,c({ref:t},u))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=m;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[s]="string"==typeof e?e:o,c[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,i={unversionedId:"study/program/C/extern-c",id:"study/program/C/extern-c",title:"extern-c",description:'extern "C"',source:"@site/docs/study/program/C/extern-c.md",sourceDirName:"study/program/C",slug:"/study/program/C/extern-c",permalink:"/docs/study/program/C/extern-c",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"cmake",permalink:"/docs/study/program/C/cmake"},next:{title:"make",permalink:"/docs/study/program/C/make"}},l={},p=[{value:"extern "C"",id:"extern-c",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],u={toc:p},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"extern-c"},'extern "C"'),(0,o.yg)("p",null,'\u5176\u5b9e\u5c31\u662f C++\u6587\u4ef6\u4e3a\u4e86\u517c\u5bb9 C\uff0c\u88ab\u5934\u6587\u4ef6\u6807\u8bb0 extern "C"\u7684\u51fd\u6570\uff0c\u5982\u679c C++\u6587\u4ef6\u5b9e\u73b0\u4e86\u6b64\u51fd\u6570\uff0c\u662f\u9700\u8981\u88ab extern "C"{}\u5305\u88f9\u7684\u3002\u5982\u679c C \u6587\u4ef6\u5b9e\u73b0\uff0c\u662f\u4e0d\u9700\u8981\u5305\u88f9\u7684\u3002'),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://baike.baidu.com/item/extern%20%22C%22/15267013?fr=ge_ala"},'\u767e\u5ea6\u767e\u79d1-extern "C"'))))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3441],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),s=p(r),m=o,y=s["".concat(l,".").concat(m)]||s[m]||d[m]||a;return r?n.createElement(y,c(c({ref:t},u),{},{components:r})):n.createElement(y,c({ref:t},u))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=m;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[s]="string"==typeof e?e:o,c[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,i={unversionedId:"study/program/C/extern-c",id:"study/program/C/extern-c",title:"extern-c",description:'extern "C"',source:"@site/docs/study/program/C/extern-c.md",sourceDirName:"study/program/C",slug:"/study/program/C/extern-c",permalink:"/docs/study/program/C/extern-c",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"cmake",permalink:"/docs/study/program/C/cmake"},next:{title:"make",permalink:"/docs/study/program/C/make"}},l={},p=[{value:"extern "C"",id:"extern-c",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],u={toc:p},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"extern-c"},'extern "C"'),(0,o.yg)("p",null,'\u5176\u5b9e\u5c31\u662f C++\u6587\u4ef6\u4e3a\u4e86\u517c\u5bb9 C\uff0c\u88ab\u5934\u6587\u4ef6\u6807\u8bb0 extern "C"\u7684\u51fd\u6570\uff0c\u5982\u679c C++\u6587\u4ef6\u5b9e\u73b0\u4e86\u6b64\u51fd\u6570\uff0c\u662f\u9700\u8981\u88ab extern "C"{}\u5305\u88f9\u7684\u3002\u5982\u679c C \u6587\u4ef6\u5b9e\u73b0\uff0c\u662f\u4e0d\u9700\u8981\u5305\u88f9\u7684\u3002'),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://baike.baidu.com/item/extern%20%22C%22/15267013?fr=ge_ala"},'\u767e\u5ea6\u767e\u79d1-extern "C"'))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1fa31a57.7bd0a209.js b/assets/js/1fa31a57.a927347a.js similarity index 98% rename from assets/js/1fa31a57.7bd0a209.js rename to assets/js/1fa31a57.a927347a.js index 5c8d091d7..0f481e0b3 100644 --- a/assets/js/1fa31a57.7bd0a209.js +++ b/assets/js/1fa31a57.a927347a.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4152],{5680:(e,r,t)=>{t.d(r,{xA:()=>u,yg:()=>k});var n=t(6540);function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function c(e){for(var r=1;r=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var i=n.createContext({}),l=function(e){var r=n.useContext(i),t=r;return e&&(t="function"==typeof e?e(r):c(c({},r),e)),t},u=function(e){var r=l(e.components);return n.createElement(i.Provider,{value:r},e.children)},p="mdxType",s={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},f=n.forwardRef((function(e,r){var t=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,u=d(e,["components","mdxType","originalType","parentName"]),p=l(t),f=a,k=p["".concat(i,".").concat(f)]||p[f]||s[f]||o;return t?n.createElement(k,c(c({ref:r},u),{},{components:t})):n.createElement(k,c({ref:r},u))}));function k(e,r){var t=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var o=t.length,c=new Array(o);c[0]=f;var d={};for(var i in r)hasOwnProperty.call(r,i)&&(d[i]=r[i]);d.originalType=e,d[p]="string"==typeof e?e:a,c[1]=d;for(var l=2;l{t.r(r),t.d(r,{assets:()=>i,contentTitle:()=>c,default:()=>s,frontMatter:()=>o,metadata:()=>d,toc:()=>l});var n=t(8168),a=(t(6540),t(5680));const o={},c=void 0,d={unversionedId:"study/docker/docker-kafka",id:"study/docker/docker-kafka",title:"docker-kafka",description:"docker kafka",source:"@site/docs/study/docker/docker-kafka.md",sourceDirName:"study/docker",slug:"/study/docker/docker-kafka",permalink:"/docs/study/docker/docker-kafka",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Docker\u7684\u4f7f\u7528\u603b\u7ed3",permalink:"/docs/study/docker/Docker\u7684\u4f7f\u7528\u603b\u7ed3"},next:{title:"docker-linux",permalink:"/docs/study/docker/docker-linux"}},i={},l=[{value:"docker kafka",id:"docker-kafka",level:3}],u={toc:l},p="wrapper";function s(e){let{components:r,...t}=e;return(0,a.yg)(p,(0,n.A)({},u,t,{components:r,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"docker-kafka"},"docker kafka"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"#\ndocker pull apache/kafka:3.7.0\n#\ndocker run -d \\\n-p 9092:9092 \\\n--privileged=true \\\n-e TZ=Asia/Shanghai \\\n--name kafka-study \\\napache/kafka:3.7.0\n")))}s.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4152],{5680:(e,r,t)=>{t.d(r,{xA:()=>u,yg:()=>k});var n=t(6540);function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function c(e){for(var r=1;r=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var i=n.createContext({}),l=function(e){var r=n.useContext(i),t=r;return e&&(t="function"==typeof e?e(r):c(c({},r),e)),t},u=function(e){var r=l(e.components);return n.createElement(i.Provider,{value:r},e.children)},p="mdxType",s={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},f=n.forwardRef((function(e,r){var t=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,u=d(e,["components","mdxType","originalType","parentName"]),p=l(t),f=a,k=p["".concat(i,".").concat(f)]||p[f]||s[f]||o;return t?n.createElement(k,c(c({ref:r},u),{},{components:t})):n.createElement(k,c({ref:r},u))}));function k(e,r){var t=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var o=t.length,c=new Array(o);c[0]=f;var d={};for(var i in r)hasOwnProperty.call(r,i)&&(d[i]=r[i]);d.originalType=e,d[p]="string"==typeof e?e:a,c[1]=d;for(var l=2;l{t.r(r),t.d(r,{assets:()=>i,contentTitle:()=>c,default:()=>s,frontMatter:()=>o,metadata:()=>d,toc:()=>l});var n=t(8168),a=(t(6540),t(5680));const o={},c=void 0,d={unversionedId:"study/docker/docker-kafka",id:"study/docker/docker-kafka",title:"docker-kafka",description:"docker kafka",source:"@site/docs/study/docker/docker-kafka.md",sourceDirName:"study/docker",slug:"/study/docker/docker-kafka",permalink:"/docs/study/docker/docker-kafka",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Docker\u7684\u4f7f\u7528\u603b\u7ed3",permalink:"/docs/study/docker/Docker\u7684\u4f7f\u7528\u603b\u7ed3"},next:{title:"docker-linux",permalink:"/docs/study/docker/docker-linux"}},i={},l=[{value:"docker kafka",id:"docker-kafka",level:3}],u={toc:l},p="wrapper";function s(e){let{components:r,...t}=e;return(0,a.yg)(p,(0,n.A)({},u,t,{components:r,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"docker-kafka"},"docker kafka"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"#\ndocker pull apache/kafka:3.7.0\n#\ndocker run -d \\\n-p 9092:9092 \\\n--privileged=true \\\n-e TZ=Asia/Shanghai \\\n--name kafka-study \\\napache/kafka:3.7.0\n")))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2015f8aa.547bde0e.js b/assets/js/2015f8aa.3d200b54.js similarity index 98% rename from assets/js/2015f8aa.547bde0e.js rename to assets/js/2015f8aa.3d200b54.js index a03b7fac3..fad67cb55 100644 --- a/assets/js/2015f8aa.547bde0e.js +++ b/assets/js/2015f8aa.3d200b54.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2788],{5680:(e,t,n)=>{n.d(t,{xA:()=>l,yg:()=>f});var r=n(6540);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),u=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},l=function(e){var t=u(e.components);return r.createElement(s.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),p=u(n),y=o,f=p["".concat(s,".").concat(y)]||p[y]||d[y]||a;return n?r.createElement(f,i(i({ref:t},l),{},{components:n})):r.createElement(f,i({ref:t},l))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=y;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[p]="string"==typeof e?e:o,i[1]=c;for(var u=2;u{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>u});var r=n(8168),o=(n(6540),n(5680));const a={},i="Linux netns",c={unversionedId:"study/net/netns",id:"study/net/netns",title:"Linux netns",description:"\u53c2\u8003",source:"@site/docs/study/net/netns.md",sourceDirName:"study/net",slug:"/study/net/netns",permalink:"/docs/study/net/netns",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Linux iptables \u9632\u706b\u5899",permalink:"/docs/study/net/iptables"},next:{title:"P2P \u7f51\u7edc NAT \u7a7f\u900f\u539f\u7406(\u6253\u6d1e\u65b9\u6848)",permalink:"/docs/study/net/p2p"}},s={},u=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],l={toc:u},p="wrapper";function d(e){let{components:t,...n}=e;return(0,o.yg)(p,(0,r.A)({},l,n,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"linux-netns"},"Linux netns"),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/293659403"},"Linux netns \u8be6\u89e3"))))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2788],{5680:(e,t,n)=>{n.d(t,{xA:()=>l,yg:()=>f});var r=n(6540);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),u=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},l=function(e){var t=u(e.components);return r.createElement(s.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),p=u(n),y=o,f=p["".concat(s,".").concat(y)]||p[y]||d[y]||a;return n?r.createElement(f,i(i({ref:t},l),{},{components:n})):r.createElement(f,i({ref:t},l))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=y;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[p]="string"==typeof e?e:o,i[1]=c;for(var u=2;u{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>u});var r=n(8168),o=(n(6540),n(5680));const a={},i="Linux netns",c={unversionedId:"study/net/netns",id:"study/net/netns",title:"Linux netns",description:"\u53c2\u8003",source:"@site/docs/study/net/netns.md",sourceDirName:"study/net",slug:"/study/net/netns",permalink:"/docs/study/net/netns",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Linux iptables \u9632\u706b\u5899",permalink:"/docs/study/net/iptables"},next:{title:"P2P \u7f51\u7edc NAT \u7a7f\u900f\u539f\u7406(\u6253\u6d1e\u65b9\u6848)",permalink:"/docs/study/net/p2p"}},s={},u=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],l={toc:u},p="wrapper";function d(e){let{components:t,...n}=e;return(0,o.yg)(p,(0,r.A)({},l,n,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"linux-netns"},"Linux netns"),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/293659403"},"Linux netns \u8be6\u89e3"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2064198b.ac7cf158.js b/assets/js/2064198b.0fa14954.js similarity index 99% rename from assets/js/2064198b.ac7cf158.js rename to assets/js/2064198b.0fa14954.js index 2e6d485ed..8b68788f1 100644 --- a/assets/js/2064198b.ac7cf158.js +++ b/assets/js/2064198b.0fa14954.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[439],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>m});var a=r(6540);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function c(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var l=a.createContext({}),u=function(e){var t=a.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},p=function(e){var t=u(e.components);return a.createElement(l.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,l=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),s=u(r),d=n,m=s["".concat(l,".").concat(d)]||s[d]||y[d]||o;return r?a.createElement(m,c(c({ref:t},p),{},{components:r})):a.createElement(m,c({ref:t},p))}));function m(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,c=new Array(o);c[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[s]="string"==typeof e?e:n,c[1]=i;for(var u=2;u{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>y,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var a=r(8168),n=(r(6540),r(5680));const o={},c=void 0,i={unversionedId:"study/back/\u6570\u636e\u5e93\u76f8\u5173/Java\u6570\u636e\u5e93\u8fde\u63a5\u6c60",id:"study/back/\u6570\u636e\u5e93\u76f8\u5173/Java\u6570\u636e\u5e93\u8fde\u63a5\u6c60",title:"Java\u6570\u636e\u5e93\u8fde\u63a5\u6c60",description:"Java \u6570\u636e\u5e93\u8fde\u63a5\u6c60",source:"@site/docs/study/back/\u6570\u636e\u5e93\u76f8\u5173/Java\u6570\u636e\u5e93\u8fde\u63a5\u6c60.md",sourceDirName:"study/back/\u6570\u636e\u5e93\u76f8\u5173",slug:"/study/back/\u6570\u636e\u5e93\u76f8\u5173/Java\u6570\u636e\u5e93\u8fde\u63a5\u6c60",permalink:"/docs/study/back/\u6570\u636e\u5e93\u76f8\u5173/Java\u6570\u636e\u5e93\u8fde\u63a5\u6c60",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"JPA-MyBatis",permalink:"/docs/study/back/\u6570\u636e\u5e93\u76f8\u5173/JPA-MyBatis"},next:{title:"MyBatis",permalink:"/docs/study/back/\u6570\u636e\u5e93\u76f8\u5173/MyBatis"}},l={},u=[{value:"Java \u6570\u636e\u5e93\u8fde\u63a5\u6c60",id:"java-\u6570\u636e\u5e93\u8fde\u63a5\u6c60",level:3}],p={toc:u},s="wrapper";function y(e){let{components:t,...r}=e;return(0,n.yg)(s,(0,a.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,n.yg)("h3",{id:"java-\u6570\u636e\u5e93\u8fde\u63a5\u6c60"},"Java \u6570\u636e\u5e93\u8fde\u63a5\u6c60"),(0,n.yg)("p",null,"\u662f\u7528\u4e8e\u7ba1\u7406\u6570\u636e\u5e93\u8fde\u63a5\u7684\u8f6f\u4ef6\u7ec4\u4ef6\uff0c\u5b83\u4eec\u63d0\u4f9b\u4e86\u8fde\u63a5\u7684\u521b\u5efa\u3001\u7ba1\u7406\u548c\u91ca\u653e\u7b49\u529f\u80fd\uff0c\u4ee5\u63d0\u9ad8\u6570\u636e\u5e93\u8bbf\u95ee\u7684\u6548\u7387\u548c\u6027\u80fd\u3002"),(0,n.yg)("p",null,"\u76ee\u524d\uff0c\u6d41\u884c\u7684 Java \u6570\u636e\u5e93\u8fde\u63a5\u6c60\u5305\u62ec\uff1a"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},"DBCP\uff1aDBCP \u662f Apache \u5f00\u6e90\u7ec4\u7ec7\u63d0\u4f9b\u7684\u8fde\u63a5\u6c60\u5b9e\u73b0\uff0c\u5b83\u76f4\u63a5\u4f9d\u8d56\u4e8e Jakarta commons-pool \u5bf9\u8c61\u6c60\u673a\u5236\u3002DBCP \u652f\u6301 JNDI \u6570\u636e\u6e90\u548c JDBC \u6570\u636e\u6e90\uff0c\u5e76\u4e14\u53ef\u4ee5\u76f4\u63a5\u5728\u5e94\u7528\u7a0b\u5e8f\u4e2d\u4f7f\u7528\u3002Tomcat \u7684\u6570\u636e\u6e90\u5c31\u662f\u4f7f\u7528\u7684 DBCP\u3002"),(0,n.yg)("li",{parentName:"ul"},"C3P0\uff1aC3P0 \u662f\u4e00\u4e2a\u8001\u724c\u7684 Java \u6570\u636e\u5e93\u8fde\u63a5\u6c60\uff0c\u5b83\u5b9e\u73b0\u4e86 JDBC 3 \u548c JDBC 4 \u7684\u89c4\u8303\uff0c\u652f\u6301 JNDI \u6570\u636e\u6e90\u548c JDBC \u6570\u636e\u6e90\u3002C3P0 \u8fde\u63a5\u6c60\u53ef\u4ee5\u914d\u7f6e\u591a\u79cd\u53c2\u6570\u8fdb\u884c\u8c03\u4f18\uff0c\u5e76\u652f\u6301\u81ea\u52a8\u56de\u6536\u7a7a\u95f2\u8fde\u63a5\u3002"),(0,n.yg)("li",{parentName:"ul"},"HikariCP\uff1aHikariCP \u662f\u4e00\u4e2a\u8f7b\u91cf\u7ea7\u3001\u9ad8\u6548\u7684\u8fde\u63a5\u6c60\uff0c\u5b83\u5728\u9ad8\u5e76\u53d1\u73af\u5883\u4e0b\u8868\u73b0\u51fa\u8272\u3002HikariCP \u652f\u6301 JNDI \u6570\u636e\u6e90\u548c JDBC \u6570\u636e\u6e90\uff0c\u5e76\u5177\u6709\u8d85\u65f6\u7ebf\u7a0b\u7b49\u914d\u7f6e\u53c2\u6570\u3002"),(0,n.yg)("li",{parentName:"ul"},"Tomcat-JDBC\uff1aTomcat-JDBC \u662f Tomcat \u670d\u52a1\u5668\u63d0\u4f9b\u7684 JDBC \u8fde\u63a5\u6c60\u5b9e\u73b0\uff0c\u5b83\u4e0e Tomcat \u670d\u52a1\u5668\u7d27\u5bc6\u96c6\u6210\uff0c\u9002\u7528\u4e8e Tomcat \u5e94\u7528\u573a\u666f\u3002"),(0,n.yg)("li",{parentName:"ul"},"Druid\uff1aDruid \u662f\u963f\u91cc\u5df4\u5df4\u5f00\u53d1\u7684\u6570\u636e\u5e93\u8fde\u63a5\u6c60\uff0c\u5b83\u652f\u6301 JNDI \u6570\u636e\u6e90\u548c JDBC \u6570\u636e\u6e90\uff0c\u5e76\u4e14\u63d0\u4f9b\u4e86\u5b9e\u65f6\u76d1\u63a7\u529f\u80fd\u3002Druid \u4e0d\u4ec5\u4ec5\u662f\u4e00\u4e2a\u6570\u636e\u5e93\u8fde\u63a5\u6c60\uff0c\u5b83\u8fd8\u5305\u62ec\u4e00\u4e2a ProxyDriver\uff0c\u4e00\u7cfb\u5217\u5185\u7f6e\u7684 JDBC \u7ec4\u4ef6\u5e93\uff0c\u4e00\u4e2a SQL Parser\u3002\u5b83\u652f\u6301\u6240\u6709 JDBC \u517c\u5bb9\u7684\u6570\u636e\u5e93\uff0c\u5305\u62ec Oracle\u3001MySQL\u3001Derby\u3001PostgreSQL\u3001SQL Server\u3001H2 \u7b49\uff0c\u5e76\u5bf9 Oracle \u548c MySQL \u505a\u4e86\u7279\u522b\u4f18\u5316\u3002")),(0,n.yg)("p",null,"\u4ee5\u4e0a\u8fde\u63a5\u6c60\u5404\u6709\u7279\u70b9\uff0c\u9002\u7528\u4e8e\u4e0d\u540c\u7684\u5e94\u7528\u573a\u666f\u548c\u6570\u636e\u5e93\u7c7b\u578b\u3002"))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[439],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>m});var a=r(6540);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function c(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var l=a.createContext({}),u=function(e){var t=a.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},p=function(e){var t=u(e.components);return a.createElement(l.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,l=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),s=u(r),d=n,m=s["".concat(l,".").concat(d)]||s[d]||y[d]||o;return r?a.createElement(m,c(c({ref:t},p),{},{components:r})):a.createElement(m,c({ref:t},p))}));function m(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,c=new Array(o);c[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[s]="string"==typeof e?e:n,c[1]=i;for(var u=2;u{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>y,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var a=r(8168),n=(r(6540),r(5680));const o={},c=void 0,i={unversionedId:"study/back/\u6570\u636e\u5e93\u76f8\u5173/Java\u6570\u636e\u5e93\u8fde\u63a5\u6c60",id:"study/back/\u6570\u636e\u5e93\u76f8\u5173/Java\u6570\u636e\u5e93\u8fde\u63a5\u6c60",title:"Java\u6570\u636e\u5e93\u8fde\u63a5\u6c60",description:"Java \u6570\u636e\u5e93\u8fde\u63a5\u6c60",source:"@site/docs/study/back/\u6570\u636e\u5e93\u76f8\u5173/Java\u6570\u636e\u5e93\u8fde\u63a5\u6c60.md",sourceDirName:"study/back/\u6570\u636e\u5e93\u76f8\u5173",slug:"/study/back/\u6570\u636e\u5e93\u76f8\u5173/Java\u6570\u636e\u5e93\u8fde\u63a5\u6c60",permalink:"/docs/study/back/\u6570\u636e\u5e93\u76f8\u5173/Java\u6570\u636e\u5e93\u8fde\u63a5\u6c60",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"JPA-MyBatis",permalink:"/docs/study/back/\u6570\u636e\u5e93\u76f8\u5173/JPA-MyBatis"},next:{title:"MyBatis",permalink:"/docs/study/back/\u6570\u636e\u5e93\u76f8\u5173/MyBatis"}},l={},u=[{value:"Java \u6570\u636e\u5e93\u8fde\u63a5\u6c60",id:"java-\u6570\u636e\u5e93\u8fde\u63a5\u6c60",level:3}],p={toc:u},s="wrapper";function y(e){let{components:t,...r}=e;return(0,n.yg)(s,(0,a.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,n.yg)("h3",{id:"java-\u6570\u636e\u5e93\u8fde\u63a5\u6c60"},"Java \u6570\u636e\u5e93\u8fde\u63a5\u6c60"),(0,n.yg)("p",null,"\u662f\u7528\u4e8e\u7ba1\u7406\u6570\u636e\u5e93\u8fde\u63a5\u7684\u8f6f\u4ef6\u7ec4\u4ef6\uff0c\u5b83\u4eec\u63d0\u4f9b\u4e86\u8fde\u63a5\u7684\u521b\u5efa\u3001\u7ba1\u7406\u548c\u91ca\u653e\u7b49\u529f\u80fd\uff0c\u4ee5\u63d0\u9ad8\u6570\u636e\u5e93\u8bbf\u95ee\u7684\u6548\u7387\u548c\u6027\u80fd\u3002"),(0,n.yg)("p",null,"\u76ee\u524d\uff0c\u6d41\u884c\u7684 Java \u6570\u636e\u5e93\u8fde\u63a5\u6c60\u5305\u62ec\uff1a"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},"DBCP\uff1aDBCP \u662f Apache \u5f00\u6e90\u7ec4\u7ec7\u63d0\u4f9b\u7684\u8fde\u63a5\u6c60\u5b9e\u73b0\uff0c\u5b83\u76f4\u63a5\u4f9d\u8d56\u4e8e Jakarta commons-pool \u5bf9\u8c61\u6c60\u673a\u5236\u3002DBCP \u652f\u6301 JNDI \u6570\u636e\u6e90\u548c JDBC \u6570\u636e\u6e90\uff0c\u5e76\u4e14\u53ef\u4ee5\u76f4\u63a5\u5728\u5e94\u7528\u7a0b\u5e8f\u4e2d\u4f7f\u7528\u3002Tomcat \u7684\u6570\u636e\u6e90\u5c31\u662f\u4f7f\u7528\u7684 DBCP\u3002"),(0,n.yg)("li",{parentName:"ul"},"C3P0\uff1aC3P0 \u662f\u4e00\u4e2a\u8001\u724c\u7684 Java \u6570\u636e\u5e93\u8fde\u63a5\u6c60\uff0c\u5b83\u5b9e\u73b0\u4e86 JDBC 3 \u548c JDBC 4 \u7684\u89c4\u8303\uff0c\u652f\u6301 JNDI \u6570\u636e\u6e90\u548c JDBC \u6570\u636e\u6e90\u3002C3P0 \u8fde\u63a5\u6c60\u53ef\u4ee5\u914d\u7f6e\u591a\u79cd\u53c2\u6570\u8fdb\u884c\u8c03\u4f18\uff0c\u5e76\u652f\u6301\u81ea\u52a8\u56de\u6536\u7a7a\u95f2\u8fde\u63a5\u3002"),(0,n.yg)("li",{parentName:"ul"},"HikariCP\uff1aHikariCP \u662f\u4e00\u4e2a\u8f7b\u91cf\u7ea7\u3001\u9ad8\u6548\u7684\u8fde\u63a5\u6c60\uff0c\u5b83\u5728\u9ad8\u5e76\u53d1\u73af\u5883\u4e0b\u8868\u73b0\u51fa\u8272\u3002HikariCP \u652f\u6301 JNDI \u6570\u636e\u6e90\u548c JDBC \u6570\u636e\u6e90\uff0c\u5e76\u5177\u6709\u8d85\u65f6\u7ebf\u7a0b\u7b49\u914d\u7f6e\u53c2\u6570\u3002"),(0,n.yg)("li",{parentName:"ul"},"Tomcat-JDBC\uff1aTomcat-JDBC \u662f Tomcat \u670d\u52a1\u5668\u63d0\u4f9b\u7684 JDBC \u8fde\u63a5\u6c60\u5b9e\u73b0\uff0c\u5b83\u4e0e Tomcat \u670d\u52a1\u5668\u7d27\u5bc6\u96c6\u6210\uff0c\u9002\u7528\u4e8e Tomcat \u5e94\u7528\u573a\u666f\u3002"),(0,n.yg)("li",{parentName:"ul"},"Druid\uff1aDruid \u662f\u963f\u91cc\u5df4\u5df4\u5f00\u53d1\u7684\u6570\u636e\u5e93\u8fde\u63a5\u6c60\uff0c\u5b83\u652f\u6301 JNDI \u6570\u636e\u6e90\u548c JDBC \u6570\u636e\u6e90\uff0c\u5e76\u4e14\u63d0\u4f9b\u4e86\u5b9e\u65f6\u76d1\u63a7\u529f\u80fd\u3002Druid \u4e0d\u4ec5\u4ec5\u662f\u4e00\u4e2a\u6570\u636e\u5e93\u8fde\u63a5\u6c60\uff0c\u5b83\u8fd8\u5305\u62ec\u4e00\u4e2a ProxyDriver\uff0c\u4e00\u7cfb\u5217\u5185\u7f6e\u7684 JDBC \u7ec4\u4ef6\u5e93\uff0c\u4e00\u4e2a SQL Parser\u3002\u5b83\u652f\u6301\u6240\u6709 JDBC \u517c\u5bb9\u7684\u6570\u636e\u5e93\uff0c\u5305\u62ec Oracle\u3001MySQL\u3001Derby\u3001PostgreSQL\u3001SQL Server\u3001H2 \u7b49\uff0c\u5e76\u5bf9 Oracle \u548c MySQL \u505a\u4e86\u7279\u522b\u4f18\u5316\u3002")),(0,n.yg)("p",null,"\u4ee5\u4e0a\u8fde\u63a5\u6c60\u5404\u6709\u7279\u70b9\uff0c\u9002\u7528\u4e8e\u4e0d\u540c\u7684\u5e94\u7528\u573a\u666f\u548c\u6570\u636e\u5e93\u7c7b\u578b\u3002"))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/20ecba9b.be50a049.js b/assets/js/20ecba9b.08be5d8a.js similarity index 99% rename from assets/js/20ecba9b.be50a049.js rename to assets/js/20ecba9b.08be5d8a.js index 405f3412c..617f9d1d6 100644 --- a/assets/js/20ecba9b.be50a049.js +++ b/assets/js/20ecba9b.08be5d8a.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5779],{5680:(e,n,r)=>{r.d(n,{xA:()=>i,yg:()=>g});var t=r(6540);function c(e,n,r){return n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r,e}function a(e,n){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n&&(t=t.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),r.push.apply(r,t)}return r}function o(e){for(var n=1;n=0||(c[r]=e[r]);return c}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(c[r]=e[r])}return c}var s=t.createContext({}),d=function(e){var n=t.useContext(s),r=n;return e&&(r="function"==typeof e?e(n):o(o({},n),e)),r},i=function(e){var n=d(e.components);return t.createElement(s.Provider,{value:n},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return t.createElement(t.Fragment,{},n)}},m=t.forwardRef((function(e,n){var r=e.components,c=e.mdxType,a=e.originalType,s=e.parentName,i=l(e,["components","mdxType","originalType","parentName"]),p=d(r),m=c,g=p["".concat(s,".").concat(m)]||p[m]||u[m]||a;return r?t.createElement(g,o(o({ref:n},i),{},{components:r})):t.createElement(g,o({ref:n},i))}));function g(e,n){var r=arguments,c=n&&n.mdxType;if("string"==typeof e||c){var a=r.length,o=new Array(a);o[0]=m;var l={};for(var s in n)hasOwnProperty.call(n,s)&&(l[s]=n[s]);l.originalType=e,l[p]="string"==typeof e?e:c,o[1]=l;for(var d=2;d{r.r(n),r.d(n,{assets:()=>s,contentTitle:()=>o,default:()=>u,frontMatter:()=>a,metadata:()=>l,toc:()=>d});var t=r(8168),c=(r(6540),r(5680));const a={},o=void 0,l={unversionedId:"study/docker/Docker\u7684\u4f7f\u7528\u603b\u7ed3",id:"study/docker/Docker\u7684\u4f7f\u7528\u603b\u7ed3",title:"Docker\u7684\u4f7f\u7528\u603b\u7ed3",description:"1. Docker \u5b98\u65b9\u4ed3\u5e93 \xa0https://hub.docker.com",source:"@site/docs/study/docker/Docker\u7684\u4f7f\u7528\u603b\u7ed3.md",sourceDirName:"study/docker",slug:"/study/docker/Docker\u7684\u4f7f\u7528\u603b\u7ed3",permalink:"/docs/study/docker/Docker\u7684\u4f7f\u7528\u603b\u7ed3",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Dockerfile\u4f7f\u7528\u8be6\u89e3",permalink:"/docs/study/docker/Dockerfile\u4f7f\u7528\u8be6\u89e3"},next:{title:"docker-kafka",permalink:"/docs/study/docker/docker-kafka"}},s={},d=[{value:"\u4fee\u6539\u955c\u50cf\u6e90",id:"\u4fee\u6539\u955c\u50cf\u6e90",level:3},{value:"\u5e38\u7528\u547d\u4ee4\u5927\u5168",id:"\u5e38\u7528\u547d\u4ee4\u5927\u5168",level:3},{value:"\u83b7\u53d6\u67d0\u4e2a docker \u5bb9\u5668\u7684 IP \u5730\u5740",id:"\u83b7\u53d6\u67d0\u4e2a-docker-\u5bb9\u5668\u7684-ip-\u5730\u5740",level:3},{value:"\u5bb9\u5668\u81ea\u52a8\u542f\u52a8",id:"\u5bb9\u5668\u81ea\u52a8\u542f\u52a8",level:3},{value:"\u5bb9\u5668\u65f6\u533a\u95ee\u9898",id:"\u5bb9\u5668\u65f6\u533a\u95ee\u9898",level:3},{value:"\u67e5\u770b\u548c\u6e05\u9664\u5bb9\u5668\u65e5\u5fd7",id:"\u67e5\u770b\u548c\u6e05\u9664\u5bb9\u5668\u65e5\u5fd7",level:3},{value:"\u7248\u672c\u592a\u4f4e \u9700\u8981\u5347\u7ea7",id:"\u7248\u672c\u592a\u4f4e-\u9700\u8981\u5347\u7ea7",level:3},{value:"run\u540e\u4fdd\u6301\u8fd0\u884c\u72b6\u6001",id:"run\u540e\u4fdd\u6301\u8fd0\u884c\u72b6\u6001",level:3},{value:"\u7ed1\u5b9a\u968f\u673a\u7aef\u53e3",id:"\u7ed1\u5b9a\u968f\u673a\u7aef\u53e3",level:3},{value:"dcoker save/load \u4fdd\u5b58\u548c\u52a0\u8f7d\u955c\u50cf",id:"dcoker-saveload-\u4fdd\u5b58\u548c\u52a0\u8f7d\u955c\u50cf",level:3},{value:"docker export/import \u5bfc\u51fa\u548c\u5bfc\u5165\u5bb9\u5668",id:"docker-exportimport-\u5bfc\u51fa\u548c\u5bfc\u5165\u5bb9\u5668",level:3},{value:"Linux\u4fee\u6539\u7f51\u7edc\u540e\uff0c\u5bfc\u81f4Docker\u5bb9\u5668\u7f51\u7edc\u51fa\u73b0\u95ee\u9898",id:"linux\u4fee\u6539\u7f51\u7edc\u540e\u5bfc\u81f4docker\u5bb9\u5668\u7f51\u7edc\u51fa\u73b0\u95ee\u9898",level:3},{value:"Docker\u5bb9\u5668\u751f\u6210\u955c\u50cf",id:"docker\u5bb9\u5668\u751f\u6210\u955c\u50cf",level:3},{value:"\u5220\u9664\u51e0\u5929\u4e4b\u524d\u7684\u5bb9\u5668",id:"\u5220\u9664\u51e0\u5929\u4e4b\u524d\u7684\u5bb9\u5668",level:3},{value:"\u672a\u8fd0\u884c\u7684\u5bb9\u5668\u4e2d\u7684\u6587\u4ef6\u4fee\u6539",id:"\u672a\u8fd0\u884c\u7684\u5bb9\u5668\u4e2d\u7684\u6587\u4ef6\u4fee\u6539",level:3},{value:"\u8bbe\u7f6ecpu\u6570\u91cf\u4ee5\u53ca\u5185\u5b58\u5927\u5c0f",id:"\u8bbe\u7f6ecpu\u6570\u91cf\u4ee5\u53ca\u5185\u5b58\u5927\u5c0f",level:3},{value:"\u6e05\u7406\u5bb9\u5668\u548c\u955c\u50cf",id:"\u6e05\u7406\u5bb9\u5668\u548c\u955c\u50cf",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],i={toc:d},p="wrapper";function u(e){let{components:n,...a}=e;return(0,c.yg)(p,(0,t.A)({},i,a,{components:n,mdxType:"MDXLayout"}),(0,c.yg)("ol",null,(0,c.yg)("li",{parentName:"ol"},"Docker \u5b98\u65b9\u4ed3\u5e93 \xa0",(0,c.yg)("a",{parentName:"li",href:"https://hub.docker.com"},"https://hub.docker.com")),(0,c.yg)("li",{parentName:"ol"},"\u811a\u672c\u641c\u7d22\u7248\u672c\u53f7 \xa0",(0,c.yg)("a",{parentName:"li",href:"https://blog.csdn.net/CodyGuo/article/details/86515354"},"docker-tags"))),(0,c.yg)("h3",{id:"\u4fee\u6539\u955c\u50cf\u6e90"},"\u4fee\u6539\u955c\u50cf\u6e90"),(0,c.yg)("p",null,"/etc/docker/daemon.json"),(0,c.yg)("pre",null,(0,c.yg)("code",{parentName:"pre",className:"language-json"},'{\n "registry-mirrors": ["https://registry.docker-cn.com", "http://hub-mirror.c.163.com", "https://docker.mirrors.ustc.edu.cn"]\n}\n')),(0,c.yg)("pre",null,(0,c.yg)("code",{parentName:"pre",className:"language-shell"},"docker info | grep Reg\n")),(0,c.yg)("h3",{id:"\u5e38\u7528\u547d\u4ee4\u5927\u5168"},"\u5e38\u7528\u547d\u4ee4\u5927\u5168"),(0,c.yg)("p",null,"docker --help"),(0,c.yg)("p",null,(0,c.yg)("img",{alt:"1.png",src:r(3579).A,width:"750",height:"538"})),(0,c.yg)("h3",{id:"\u83b7\u53d6\u67d0\u4e2a-docker-\u5bb9\u5668\u7684-ip-\u5730\u5740"},"\u83b7\u53d6\u67d0\u4e2a docker \u5bb9\u5668\u7684 IP \u5730\u5740"),(0,c.yg)("pre",null,(0,c.yg)("code",{parentName:"pre",className:"language-shell"},"docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name_or_id\n")),(0,c.yg)("h3",{id:"\u5bb9\u5668\u81ea\u52a8\u542f\u52a8"},"\u5bb9\u5668\u81ea\u52a8\u542f\u52a8"),(0,c.yg)("pre",null,(0,c.yg)("code",{parentName:"pre",className:"language-shell"},"docker run --restart=always\n#no - \u5bb9\u5668\u9000\u51fa\u65f6\uff0c\u4e0d\u91cd\u542f\u5bb9\u5668\uff1b\n#on-failure - \u53ea\u6709\u5728\u975e0\u72b6\u6001\u9000\u51fa\u65f6\u624d\u4ece\u65b0\u542f\u52a8\u5bb9\u5668\uff1b\n#always - \u65e0\u8bba\u9000\u51fa\u72b6\u6001\u662f\u5982\u4f55\uff0c\u90fd\u91cd\u542f\u5bb9\u5668\uff1b\n#\u5982\u679c\u521b\u5efa\u65f6\u672a\u6307\u5b9a --restart=always ,\u53ef\u901a\u8fc7update \u547d\u4ee4\ndocker update --restart=always container_name_or_id\ndocker update --restart=no container_name_or_id\n")),(0,c.yg)("h3",{id:"\u5bb9\u5668\u65f6\u533a\u95ee\u9898"},"\u5bb9\u5668\u65f6\u533a\u95ee\u9898"),(0,c.yg)("pre",null,(0,c.yg)("code",{parentName:"pre",className:"language-shell"},"# \u521b\u5efa\u5bb9\u5668\u7684\u65f6\u5019\u52a0\u4e0a\u8fd9\u4e2a\u53c2\u6570 \u4f1a\u8ba9\u5bb9\u5668\u91c7\u7528\u5bbf\u4e3b\u673a\u7684\u65f6\u533a\n-v /etc/localtime:/etc/localtime\n")),(0,c.yg)("h3",{id:"\u67e5\u770b\u548c\u6e05\u9664\u5bb9\u5668\u65e5\u5fd7"},"\u67e5\u770b\u548c\u6e05\u9664\u5bb9\u5668\u65e5\u5fd7"),(0,c.yg)("pre",null,(0,c.yg)("code",{parentName:"pre",className:"language-shell"},"#\nls -lh $(find /var/lib/docker/containers/ -name *-json.log)\n#\ntruncate -s 0 /var/lib/docker/containers/*/*-json.log\n#\u7528\u4e8e\u67e5\u770bDocker\u7684\u78c1\u76d8\u4f7f\u7528\u60c5\u51b5\ndocker system df\n#\u7528\u4e8e\u67e5\u770bDocker\u7684\u78c1\u76d8\u4f7f\u7528\u60c5\u51b5 \u8be6\u7ec6\u60c5\u51b5\ndocker system df -v\n#\u7528\u4e8e\u6e05\u7406\u78c1\u76d8\uff0c\u5220\u9664\u5173\u95ed\u7684\u5bb9\u5668\u3001\u65e0\u7528\u7684\u6570\u636e\u5377\u548c\u7f51\u7edc\uff0c\u4ee5\u53cadangling\u955c\u50cf\uff08\u5373\u65e0tag\u7684\u955c\u50cf\uff09\ndocker system prune\n#\u6e05\u7406\u5f97\u66f4\u52a0\u5f7b\u5e95\uff0c\u53ef\u4ee5\u5c06\u6ca1\u6709\u5bb9\u5668\u4f7f\u7528Docker\u955c\u50cf\u90fd\u5220\u6389\u3002\ndocker system prune -a\n")),(0,c.yg)("h3",{id:"\u7248\u672c\u592a\u4f4e-\u9700\u8981\u5347\u7ea7"},"\u7248\u672c\u592a\u4f4e \u9700\u8981\u5347\u7ea7"),(0,c.yg)("pre",null,(0,c.yg)("code",{parentName:"pre",className:"language-shell"},'# docker build \u62a5\u9519\u5982\u4e0b\nis not a valid repository/tag: invalid reference format\n# \u68c0\u67e5\u7248\u672c docker \u7248\u672c\u592a\u4f4e\ndocker version\n\n\n# \u5378\u8f7d\u65e7\u7248\u672c\nyum -y remove docker*\n# \u5b89\u88c5\u9700\u8981\u7684\u8f6f\u4ef6\u5305\uff0c yum-util \u63d0\u4f9byum-config-manager\u529f\u80fd\uff0c\u53e6\u5916\u4e24\u4e2a\u662fdevicemapper\u9a71\u52a8\u4f9d\u8d56\u7684\nsudo yum install -y yum-utils\n# \u8bbe\u7f6eyum\u6e90\nyum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo\n# \u5b89\u88c5docker\nyum install docker-ce docker-ce-cli containerd.io\n# \u914d\u7f6e\u56fd\u5185docker\u955c\u50cf\u6e90\nmkdir -p /etc/docker\ntee /etc/docker/daemon.json <<-\'EOF\'\n{\n "registry-mirrors": [\n "https://kfwkfulq.mirror.aliyuncs.com",\n "https://2lqq34jg.mirror.aliyuncs.com",\n "https://pee6w651.mirror.aliyuncs.com",\n "https://registry.docker-cn.com",\n "http://hub-mirror.c.163.com"\n ],\n "dns": ["8.8.8.8","8.8.4.4"]\n}\nEOF\n# \u91cd\u542fdocker\nsystemctl daemon-reload\nsystemctl restart docker\n# \u9a8c\u8bc1docker\u7248\u672c\ndocker version\n')),(0,c.yg)("pre",null,(0,c.yg)("code",{parentName:"pre",className:"language-shell"},'#!/bin/bash\n\necho "stop docker"\nsystemctl stop docker\n\n\necho "uninstall rpm docker"\nrpm -e --nodeps --docfiles docker-ce-rootless-extras-26.0.0-1.el7.aarch64\nrpm -e --nodeps --docfiles docker-ce-26.0.0-1.el7.aarch64\nrpm -e --nodeps --docfiles docker-ce-cli-26.0.0-1.el7.aarch64\nrpm -e --nodeps --docfiles docker-buildx-plugin-0.13.1-1.el7.aarch64\nrpm -e --nodeps --docfiles containerd.io-1.6.28-3.2.el7.aarch64\n\necho "rm -rf /opt/containerd /var/lib/containerd /var/lib/docker"\nrm -rf /opt/containerd\nrm -rf /var/lib/containerd\nrm -rf /var/lib/docker\n\necho "success"\n')),(0,c.yg)("h3",{id:"run\u540e\u4fdd\u6301\u8fd0\u884c\u72b6\u6001"},"run\u540e\u4fdd\u6301\u8fd0\u884c\u72b6\u6001"),(0,c.yg)("pre",null,(0,c.yg)("code",{parentName:"pre",className:"language-shell"},"#\ndocker run -tid \\\n--privileged=true \\\n--name test-ubuntu \\\nubuntu\n#\ndocker run -tid \\\n--privileged=true \\\n--name test-nginx \\\nnginx:stable-alpine3.17-slim\n")),(0,c.yg)("h3",{id:"\u7ed1\u5b9a\u968f\u673a\u7aef\u53e3"},"\u7ed1\u5b9a\u968f\u673a\u7aef\u53e3"),(0,c.yg)("pre",null,(0,c.yg)("code",{parentName:"pre",className:"language-shell"},"#\ndocker run -tid \\\n-p :80 \\\n--privileged=true \\\n--name test-ubuntu \\\nubuntu\n# \u91cd\u542f\u4e4b\u540e \u968f\u673a\u7684\u7aef\u53e3\u4f1a\u6362\u6389\ndocker port test-ubuntu\n# \u91cd\u542f\u4e4b\u540e \u968f\u673a\u7684\u7aef\u53e3\u4f1a\u6362\u6389\ndocker restart test-ubuntu\n# \u91cd\u542f\u4e4b\u540e \u968f\u673a\u7684\u7aef\u53e3\u4f1a\u6362\u6389\ndocker port test-ubuntu\n")),(0,c.yg)("h3",{id:"dcoker-saveload-\u4fdd\u5b58\u548c\u52a0\u8f7d\u955c\u50cf"},"dcoker save/load \u4fdd\u5b58\u548c\u52a0\u8f7d\u955c\u50cf"),(0,c.yg)("p",null,"\u5bf9\u955c\u50cf\u7684\u4fdd\u5b58\u548c\u52a0\u8f7d"),(0,c.yg)("pre",null,(0,c.yg)("code",{parentName:"pre",className:"language-shell"},"docker load < xx.tar.xz\n")),(0,c.yg)("h3",{id:"docker-exportimport-\u5bfc\u51fa\u548c\u5bfc\u5165\u5bb9\u5668"},"docker export/import \u5bfc\u51fa\u548c\u5bfc\u5165\u5bb9\u5668"),(0,c.yg)("p",null,"\u5bf9\u5bb9\u5668\u7684\u5bfc\u51fa\u548c\u5bfc\u5165"),(0,c.yg)("h3",{id:"linux\u4fee\u6539\u7f51\u7edc\u540e\u5bfc\u81f4docker\u5bb9\u5668\u7f51\u7edc\u51fa\u73b0\u95ee\u9898"},"Linux\u4fee\u6539\u7f51\u7edc\u540e\uff0c\u5bfc\u81f4Docker\u5bb9\u5668\u7f51\u7edc\u51fa\u73b0\u95ee\u9898"),(0,c.yg)("ul",null,(0,c.yg)("li",{parentName:"ul"},(0,c.yg)("a",{parentName:"li",href:"https://blog.csdn.net/m0_61230499/article/details/137916082"},"csdn-Linux\u91cd\u542f\u7f51\u7edc\u540e\u5bfc\u81f4\u5bb9\u5668\u7f51\u7edc\u65e0\u6cd5\u8fde\u63a5\u7684\u89e3\u51b3\u529e\u6cd5"))),(0,c.yg)("h3",{id:"docker\u5bb9\u5668\u751f\u6210\u955c\u50cf"},"Docker\u5bb9\u5668\u751f\u6210\u955c\u50cf"),(0,c.yg)("pre",null,(0,c.yg)("code",{parentName:"pre",className:"language-shell"},'docker commit -m="\u63cf\u8ff0\u4fe1\u606f" -a="\u4f5c\u8005" \u5bb9\u5668id \u76ee\u6807\u955c\u50cf\u540d\uff1a [TAG]\n\n')),(0,c.yg)("p",null,"\u4e5f\u53ef\u4ee5\u7528\u4e8e\u5bb9\u5668\u7aef\u53e3\u4fee\u6539\uff0c\u5148\u628a\u5bb9\u5668\u751f\u6210\u955c\u50cf\uff0c\u7136\u540e\u518d\u6839\u636e\u955c\u50cf\u91cd\u65b0\u521b\u5efa\u5bb9\u5668"),(0,c.yg)("pre",null,(0,c.yg)("code",{parentName:"pre",className:"language-shell"},'4661cf0ef60f ccsp-svs-openeuler-x86:3.3.1.5.16 "/bin/bash -c \'sh /o\u2026" 52 minutes ago Up 52 minutes 10.0.101.147:21008->20010/tcp, 10.0.101.147:21011->20012/tcp, 10.0.101.147:21009->20014/tcp, 10.0.101.147:21010->20015/tcp ccsp-svs-6751369239214162560\n#\ndocker commit -m="test" -a="weic" ccsp-svs-6751369239214162560 svstest:20016-12\n#\ndocker stop ccsp-svs-6751369239214162560\n#\ndocker run \\\n-td \\\n-p 10.0.101.147:21008:20010 \\\n-p 10.0.101.147:21011:20012 \\\n-p 10.0.101.147:21009:20014 \\\n-p 10.0.101.147:21010:20015 \\\n-p 10.0.101.147:20016:20016 \\\n-p 10.0.101.147:20018:20018 \\\n--name ccsp-svs-6751369239214162560-c \\\nsvstest:20016-12 \\\n/bin/bash -c "sh /opt/sansec/ccsp/startService.sh&bash"\n')),(0,c.yg)("p",null,"\u4fee\u6539shmsize \u5171\u4eab\u5185\u5b58"),(0,c.yg)("pre",null,(0,c.yg)("code",{parentName:"pre",className:"language-shell"},'fbaabf1d7e74 ccsp-tsc-openeuler-x86:3.3.1.3 "/bin/bash -c \'sh /o\u2026" 4 minutes ago Up 4 minutes 10.0.101.146:26501->8011/tcp, 10.0.101.146:26502->8099/tcp ccsp-tsc-6745104769515389829\n#\ndocker commit -m="test" -a="weic" ccsp-tsc-6745104769515389829 tsctest:shmsize-1\n#\ndocker stop ccsp-tsc-6745104769515389829\n#\ndocker run \\\n-td \\\n--shm-size 1gb \\\n-p 10.0.101.146:26501:8011 \\\n-p 10.0.101.146:26502:8099 \\\n--name ccsp-tsc-6745104769515389829-c \\\ntsctest:shmsize-1 \\\n/bin/bash -c "sh /opt/sansec/ccsp/startService.sh&bash"\n\ndocker run \\\n-td \\\n--name ccsp-tsc-6745104769515389829-c \\\ntsctest:shmsize-1 \\\n/bin/bash -c "sh /opt/sansec/ccsp/startService.sh&bash"\n')),(0,c.yg)("h3",{id:"\u5220\u9664\u51e0\u5929\u4e4b\u524d\u7684\u5bb9\u5668"},"\u5220\u9664\u51e0\u5929\u4e4b\u524d\u7684\u5bb9\u5668"),(0,c.yg)("pre",null,(0,c.yg)("code",{parentName:"pre",className:"language-shell"},"#!/bin/bash\n\n# \u8bbe\u7f6e\u5929\u6570\u9608\u503c\ndays=2\n \n# \u627e\u5230\u521b\u5efa\u65f6\u95f4\u5728\u51e0\u5929\u524d\u7684\u5bb9\u5668ID\ncontainer_ids=$(docker ps --format '{{.ID}} {{.CreatedAt}}' | awk -v days_ago=$days '$2 < \"'$(date -d \"$days days ago\" +'%Y-%m-%d')'\"' | cut -d ' ' -f1)\n \n# \u5220\u9664\u8fd9\u4e9b\u5bb9\u5668\ndocker rm -f $container_ids\n")),(0,c.yg)("h3",{id:"\u672a\u8fd0\u884c\u7684\u5bb9\u5668\u4e2d\u7684\u6587\u4ef6\u4fee\u6539"},"\u672a\u8fd0\u884c\u7684\u5bb9\u5668\u4e2d\u7684\u6587\u4ef6\u4fee\u6539"),(0,c.yg)("pre",null,(0,c.yg)("code",{parentName:"pre",className:"language-shell"},"# \u5148copy\u51fa\u6765\ndocker cp {containerID}:/xxx/xxx ./xxx\n# \u4fee\u6539\u5b8c\u4e4b\u540e \u5728copy\u8fdb\u53bb\ndocker cp ./xxx {containerID}:/xxx/xxx\n")),(0,c.yg)("h3",{id:"\u8bbe\u7f6ecpu\u6570\u91cf\u4ee5\u53ca\u5185\u5b58\u5927\u5c0f"},"\u8bbe\u7f6ecpu\u6570\u91cf\u4ee5\u53ca\u5185\u5b58\u5927\u5c0f"),(0,c.yg)("pre",null,(0,c.yg)("code",{parentName:"pre",className:"language-shell"},"docker update --cpus 4 --memory 8g {\u5bb9\u5668\u540d\u79f0\u6216ID}\n")),(0,c.yg)("h3",{id:"\u6e05\u7406\u5bb9\u5668\u548c\u955c\u50cf"},"\u6e05\u7406\u5bb9\u5668\u548c\u955c\u50cf"),(0,c.yg)("pre",null,(0,c.yg)("code",{parentName:"pre",className:"language-shell"},"\n# \u505c\u6b62\u6240\u6709\u6b63\u5728\u8fd0\u884c\u7684\u5bb9\u5668\ndocker stop $(docker ps -aq)\n \n# \u5220\u9664\u6240\u6709\u5bb9\u5668\ndocker rm $(docker ps -aq)\n \n# \u5220\u9664\u6240\u6709\u955c\u50cf\ndocker rmi $(docker images -q)\n")),(0,c.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,c.yg)("p",null,(0,c.yg)("a",{parentName:"p",href:"https://developer.aliyun.com/article/272173"},"\u53c2\u8003 1")))}u.isMDXComponent=!0},3579:(e,n,r)=>{r.d(n,{A:()=>t});const t=r.p+"assets/images/1-b23594a1c043f6f3f2961f17d876ef47.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5779],{5680:(e,n,r)=>{r.d(n,{xA:()=>i,yg:()=>g});var t=r(6540);function c(e,n,r){return n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r,e}function a(e,n){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n&&(t=t.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),r.push.apply(r,t)}return r}function o(e){for(var n=1;n=0||(c[r]=e[r]);return c}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(c[r]=e[r])}return c}var s=t.createContext({}),d=function(e){var n=t.useContext(s),r=n;return e&&(r="function"==typeof e?e(n):o(o({},n),e)),r},i=function(e){var n=d(e.components);return t.createElement(s.Provider,{value:n},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return t.createElement(t.Fragment,{},n)}},m=t.forwardRef((function(e,n){var r=e.components,c=e.mdxType,a=e.originalType,s=e.parentName,i=l(e,["components","mdxType","originalType","parentName"]),p=d(r),m=c,g=p["".concat(s,".").concat(m)]||p[m]||u[m]||a;return r?t.createElement(g,o(o({ref:n},i),{},{components:r})):t.createElement(g,o({ref:n},i))}));function g(e,n){var r=arguments,c=n&&n.mdxType;if("string"==typeof e||c){var a=r.length,o=new Array(a);o[0]=m;var l={};for(var s in n)hasOwnProperty.call(n,s)&&(l[s]=n[s]);l.originalType=e,l[p]="string"==typeof e?e:c,o[1]=l;for(var d=2;d{r.r(n),r.d(n,{assets:()=>s,contentTitle:()=>o,default:()=>u,frontMatter:()=>a,metadata:()=>l,toc:()=>d});var t=r(8168),c=(r(6540),r(5680));const a={},o=void 0,l={unversionedId:"study/docker/Docker\u7684\u4f7f\u7528\u603b\u7ed3",id:"study/docker/Docker\u7684\u4f7f\u7528\u603b\u7ed3",title:"Docker\u7684\u4f7f\u7528\u603b\u7ed3",description:"1. Docker \u5b98\u65b9\u4ed3\u5e93 \xa0https://hub.docker.com",source:"@site/docs/study/docker/Docker\u7684\u4f7f\u7528\u603b\u7ed3.md",sourceDirName:"study/docker",slug:"/study/docker/Docker\u7684\u4f7f\u7528\u603b\u7ed3",permalink:"/docs/study/docker/Docker\u7684\u4f7f\u7528\u603b\u7ed3",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Dockerfile\u4f7f\u7528\u8be6\u89e3",permalink:"/docs/study/docker/Dockerfile\u4f7f\u7528\u8be6\u89e3"},next:{title:"docker-kafka",permalink:"/docs/study/docker/docker-kafka"}},s={},d=[{value:"\u4fee\u6539\u955c\u50cf\u6e90",id:"\u4fee\u6539\u955c\u50cf\u6e90",level:3},{value:"\u5e38\u7528\u547d\u4ee4\u5927\u5168",id:"\u5e38\u7528\u547d\u4ee4\u5927\u5168",level:3},{value:"\u83b7\u53d6\u67d0\u4e2a docker \u5bb9\u5668\u7684 IP \u5730\u5740",id:"\u83b7\u53d6\u67d0\u4e2a-docker-\u5bb9\u5668\u7684-ip-\u5730\u5740",level:3},{value:"\u5bb9\u5668\u81ea\u52a8\u542f\u52a8",id:"\u5bb9\u5668\u81ea\u52a8\u542f\u52a8",level:3},{value:"\u5bb9\u5668\u65f6\u533a\u95ee\u9898",id:"\u5bb9\u5668\u65f6\u533a\u95ee\u9898",level:3},{value:"\u67e5\u770b\u548c\u6e05\u9664\u5bb9\u5668\u65e5\u5fd7",id:"\u67e5\u770b\u548c\u6e05\u9664\u5bb9\u5668\u65e5\u5fd7",level:3},{value:"\u7248\u672c\u592a\u4f4e \u9700\u8981\u5347\u7ea7",id:"\u7248\u672c\u592a\u4f4e-\u9700\u8981\u5347\u7ea7",level:3},{value:"run\u540e\u4fdd\u6301\u8fd0\u884c\u72b6\u6001",id:"run\u540e\u4fdd\u6301\u8fd0\u884c\u72b6\u6001",level:3},{value:"\u7ed1\u5b9a\u968f\u673a\u7aef\u53e3",id:"\u7ed1\u5b9a\u968f\u673a\u7aef\u53e3",level:3},{value:"dcoker save/load \u4fdd\u5b58\u548c\u52a0\u8f7d\u955c\u50cf",id:"dcoker-saveload-\u4fdd\u5b58\u548c\u52a0\u8f7d\u955c\u50cf",level:3},{value:"docker export/import \u5bfc\u51fa\u548c\u5bfc\u5165\u5bb9\u5668",id:"docker-exportimport-\u5bfc\u51fa\u548c\u5bfc\u5165\u5bb9\u5668",level:3},{value:"Linux\u4fee\u6539\u7f51\u7edc\u540e\uff0c\u5bfc\u81f4Docker\u5bb9\u5668\u7f51\u7edc\u51fa\u73b0\u95ee\u9898",id:"linux\u4fee\u6539\u7f51\u7edc\u540e\u5bfc\u81f4docker\u5bb9\u5668\u7f51\u7edc\u51fa\u73b0\u95ee\u9898",level:3},{value:"Docker\u5bb9\u5668\u751f\u6210\u955c\u50cf",id:"docker\u5bb9\u5668\u751f\u6210\u955c\u50cf",level:3},{value:"\u5220\u9664\u51e0\u5929\u4e4b\u524d\u7684\u5bb9\u5668",id:"\u5220\u9664\u51e0\u5929\u4e4b\u524d\u7684\u5bb9\u5668",level:3},{value:"\u672a\u8fd0\u884c\u7684\u5bb9\u5668\u4e2d\u7684\u6587\u4ef6\u4fee\u6539",id:"\u672a\u8fd0\u884c\u7684\u5bb9\u5668\u4e2d\u7684\u6587\u4ef6\u4fee\u6539",level:3},{value:"\u8bbe\u7f6ecpu\u6570\u91cf\u4ee5\u53ca\u5185\u5b58\u5927\u5c0f",id:"\u8bbe\u7f6ecpu\u6570\u91cf\u4ee5\u53ca\u5185\u5b58\u5927\u5c0f",level:3},{value:"\u6e05\u7406\u5bb9\u5668\u548c\u955c\u50cf",id:"\u6e05\u7406\u5bb9\u5668\u548c\u955c\u50cf",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],i={toc:d},p="wrapper";function u(e){let{components:n,...a}=e;return(0,c.yg)(p,(0,t.A)({},i,a,{components:n,mdxType:"MDXLayout"}),(0,c.yg)("ol",null,(0,c.yg)("li",{parentName:"ol"},"Docker \u5b98\u65b9\u4ed3\u5e93 \xa0",(0,c.yg)("a",{parentName:"li",href:"https://hub.docker.com"},"https://hub.docker.com")),(0,c.yg)("li",{parentName:"ol"},"\u811a\u672c\u641c\u7d22\u7248\u672c\u53f7 \xa0",(0,c.yg)("a",{parentName:"li",href:"https://blog.csdn.net/CodyGuo/article/details/86515354"},"docker-tags"))),(0,c.yg)("h3",{id:"\u4fee\u6539\u955c\u50cf\u6e90"},"\u4fee\u6539\u955c\u50cf\u6e90"),(0,c.yg)("p",null,"/etc/docker/daemon.json"),(0,c.yg)("pre",null,(0,c.yg)("code",{parentName:"pre",className:"language-json"},'{\n "registry-mirrors": ["https://registry.docker-cn.com", "http://hub-mirror.c.163.com", "https://docker.mirrors.ustc.edu.cn"]\n}\n')),(0,c.yg)("pre",null,(0,c.yg)("code",{parentName:"pre",className:"language-shell"},"docker info | grep Reg\n")),(0,c.yg)("h3",{id:"\u5e38\u7528\u547d\u4ee4\u5927\u5168"},"\u5e38\u7528\u547d\u4ee4\u5927\u5168"),(0,c.yg)("p",null,"docker --help"),(0,c.yg)("p",null,(0,c.yg)("img",{alt:"1.png",src:r(3579).A,width:"750",height:"538"})),(0,c.yg)("h3",{id:"\u83b7\u53d6\u67d0\u4e2a-docker-\u5bb9\u5668\u7684-ip-\u5730\u5740"},"\u83b7\u53d6\u67d0\u4e2a docker \u5bb9\u5668\u7684 IP \u5730\u5740"),(0,c.yg)("pre",null,(0,c.yg)("code",{parentName:"pre",className:"language-shell"},"docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name_or_id\n")),(0,c.yg)("h3",{id:"\u5bb9\u5668\u81ea\u52a8\u542f\u52a8"},"\u5bb9\u5668\u81ea\u52a8\u542f\u52a8"),(0,c.yg)("pre",null,(0,c.yg)("code",{parentName:"pre",className:"language-shell"},"docker run --restart=always\n#no - \u5bb9\u5668\u9000\u51fa\u65f6\uff0c\u4e0d\u91cd\u542f\u5bb9\u5668\uff1b\n#on-failure - \u53ea\u6709\u5728\u975e0\u72b6\u6001\u9000\u51fa\u65f6\u624d\u4ece\u65b0\u542f\u52a8\u5bb9\u5668\uff1b\n#always - \u65e0\u8bba\u9000\u51fa\u72b6\u6001\u662f\u5982\u4f55\uff0c\u90fd\u91cd\u542f\u5bb9\u5668\uff1b\n#\u5982\u679c\u521b\u5efa\u65f6\u672a\u6307\u5b9a --restart=always ,\u53ef\u901a\u8fc7update \u547d\u4ee4\ndocker update --restart=always container_name_or_id\ndocker update --restart=no container_name_or_id\n")),(0,c.yg)("h3",{id:"\u5bb9\u5668\u65f6\u533a\u95ee\u9898"},"\u5bb9\u5668\u65f6\u533a\u95ee\u9898"),(0,c.yg)("pre",null,(0,c.yg)("code",{parentName:"pre",className:"language-shell"},"# \u521b\u5efa\u5bb9\u5668\u7684\u65f6\u5019\u52a0\u4e0a\u8fd9\u4e2a\u53c2\u6570 \u4f1a\u8ba9\u5bb9\u5668\u91c7\u7528\u5bbf\u4e3b\u673a\u7684\u65f6\u533a\n-v /etc/localtime:/etc/localtime\n")),(0,c.yg)("h3",{id:"\u67e5\u770b\u548c\u6e05\u9664\u5bb9\u5668\u65e5\u5fd7"},"\u67e5\u770b\u548c\u6e05\u9664\u5bb9\u5668\u65e5\u5fd7"),(0,c.yg)("pre",null,(0,c.yg)("code",{parentName:"pre",className:"language-shell"},"#\nls -lh $(find /var/lib/docker/containers/ -name *-json.log)\n#\ntruncate -s 0 /var/lib/docker/containers/*/*-json.log\n#\u7528\u4e8e\u67e5\u770bDocker\u7684\u78c1\u76d8\u4f7f\u7528\u60c5\u51b5\ndocker system df\n#\u7528\u4e8e\u67e5\u770bDocker\u7684\u78c1\u76d8\u4f7f\u7528\u60c5\u51b5 \u8be6\u7ec6\u60c5\u51b5\ndocker system df -v\n#\u7528\u4e8e\u6e05\u7406\u78c1\u76d8\uff0c\u5220\u9664\u5173\u95ed\u7684\u5bb9\u5668\u3001\u65e0\u7528\u7684\u6570\u636e\u5377\u548c\u7f51\u7edc\uff0c\u4ee5\u53cadangling\u955c\u50cf\uff08\u5373\u65e0tag\u7684\u955c\u50cf\uff09\ndocker system prune\n#\u6e05\u7406\u5f97\u66f4\u52a0\u5f7b\u5e95\uff0c\u53ef\u4ee5\u5c06\u6ca1\u6709\u5bb9\u5668\u4f7f\u7528Docker\u955c\u50cf\u90fd\u5220\u6389\u3002\ndocker system prune -a\n")),(0,c.yg)("h3",{id:"\u7248\u672c\u592a\u4f4e-\u9700\u8981\u5347\u7ea7"},"\u7248\u672c\u592a\u4f4e \u9700\u8981\u5347\u7ea7"),(0,c.yg)("pre",null,(0,c.yg)("code",{parentName:"pre",className:"language-shell"},'# docker build \u62a5\u9519\u5982\u4e0b\nis not a valid repository/tag: invalid reference format\n# \u68c0\u67e5\u7248\u672c docker \u7248\u672c\u592a\u4f4e\ndocker version\n\n\n# \u5378\u8f7d\u65e7\u7248\u672c\nyum -y remove docker*\n# \u5b89\u88c5\u9700\u8981\u7684\u8f6f\u4ef6\u5305\uff0c yum-util \u63d0\u4f9byum-config-manager\u529f\u80fd\uff0c\u53e6\u5916\u4e24\u4e2a\u662fdevicemapper\u9a71\u52a8\u4f9d\u8d56\u7684\nsudo yum install -y yum-utils\n# \u8bbe\u7f6eyum\u6e90\nyum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo\n# \u5b89\u88c5docker\nyum install docker-ce docker-ce-cli containerd.io\n# \u914d\u7f6e\u56fd\u5185docker\u955c\u50cf\u6e90\nmkdir -p /etc/docker\ntee /etc/docker/daemon.json <<-\'EOF\'\n{\n "registry-mirrors": [\n "https://kfwkfulq.mirror.aliyuncs.com",\n "https://2lqq34jg.mirror.aliyuncs.com",\n "https://pee6w651.mirror.aliyuncs.com",\n "https://registry.docker-cn.com",\n "http://hub-mirror.c.163.com"\n ],\n "dns": ["8.8.8.8","8.8.4.4"]\n}\nEOF\n# \u91cd\u542fdocker\nsystemctl daemon-reload\nsystemctl restart docker\n# \u9a8c\u8bc1docker\u7248\u672c\ndocker version\n')),(0,c.yg)("pre",null,(0,c.yg)("code",{parentName:"pre",className:"language-shell"},'#!/bin/bash\n\necho "stop docker"\nsystemctl stop docker\n\n\necho "uninstall rpm docker"\nrpm -e --nodeps --docfiles docker-ce-rootless-extras-26.0.0-1.el7.aarch64\nrpm -e --nodeps --docfiles docker-ce-26.0.0-1.el7.aarch64\nrpm -e --nodeps --docfiles docker-ce-cli-26.0.0-1.el7.aarch64\nrpm -e --nodeps --docfiles docker-buildx-plugin-0.13.1-1.el7.aarch64\nrpm -e --nodeps --docfiles containerd.io-1.6.28-3.2.el7.aarch64\n\necho "rm -rf /opt/containerd /var/lib/containerd /var/lib/docker"\nrm -rf /opt/containerd\nrm -rf /var/lib/containerd\nrm -rf /var/lib/docker\n\necho "success"\n')),(0,c.yg)("h3",{id:"run\u540e\u4fdd\u6301\u8fd0\u884c\u72b6\u6001"},"run\u540e\u4fdd\u6301\u8fd0\u884c\u72b6\u6001"),(0,c.yg)("pre",null,(0,c.yg)("code",{parentName:"pre",className:"language-shell"},"#\ndocker run -tid \\\n--privileged=true \\\n--name test-ubuntu \\\nubuntu\n#\ndocker run -tid \\\n--privileged=true \\\n--name test-nginx \\\nnginx:stable-alpine3.17-slim\n")),(0,c.yg)("h3",{id:"\u7ed1\u5b9a\u968f\u673a\u7aef\u53e3"},"\u7ed1\u5b9a\u968f\u673a\u7aef\u53e3"),(0,c.yg)("pre",null,(0,c.yg)("code",{parentName:"pre",className:"language-shell"},"#\ndocker run -tid \\\n-p :80 \\\n--privileged=true \\\n--name test-ubuntu \\\nubuntu\n# \u91cd\u542f\u4e4b\u540e \u968f\u673a\u7684\u7aef\u53e3\u4f1a\u6362\u6389\ndocker port test-ubuntu\n# \u91cd\u542f\u4e4b\u540e \u968f\u673a\u7684\u7aef\u53e3\u4f1a\u6362\u6389\ndocker restart test-ubuntu\n# \u91cd\u542f\u4e4b\u540e \u968f\u673a\u7684\u7aef\u53e3\u4f1a\u6362\u6389\ndocker port test-ubuntu\n")),(0,c.yg)("h3",{id:"dcoker-saveload-\u4fdd\u5b58\u548c\u52a0\u8f7d\u955c\u50cf"},"dcoker save/load \u4fdd\u5b58\u548c\u52a0\u8f7d\u955c\u50cf"),(0,c.yg)("p",null,"\u5bf9\u955c\u50cf\u7684\u4fdd\u5b58\u548c\u52a0\u8f7d"),(0,c.yg)("pre",null,(0,c.yg)("code",{parentName:"pre",className:"language-shell"},"docker load < xx.tar.xz\n")),(0,c.yg)("h3",{id:"docker-exportimport-\u5bfc\u51fa\u548c\u5bfc\u5165\u5bb9\u5668"},"docker export/import \u5bfc\u51fa\u548c\u5bfc\u5165\u5bb9\u5668"),(0,c.yg)("p",null,"\u5bf9\u5bb9\u5668\u7684\u5bfc\u51fa\u548c\u5bfc\u5165"),(0,c.yg)("h3",{id:"linux\u4fee\u6539\u7f51\u7edc\u540e\u5bfc\u81f4docker\u5bb9\u5668\u7f51\u7edc\u51fa\u73b0\u95ee\u9898"},"Linux\u4fee\u6539\u7f51\u7edc\u540e\uff0c\u5bfc\u81f4Docker\u5bb9\u5668\u7f51\u7edc\u51fa\u73b0\u95ee\u9898"),(0,c.yg)("ul",null,(0,c.yg)("li",{parentName:"ul"},(0,c.yg)("a",{parentName:"li",href:"https://blog.csdn.net/m0_61230499/article/details/137916082"},"csdn-Linux\u91cd\u542f\u7f51\u7edc\u540e\u5bfc\u81f4\u5bb9\u5668\u7f51\u7edc\u65e0\u6cd5\u8fde\u63a5\u7684\u89e3\u51b3\u529e\u6cd5"))),(0,c.yg)("h3",{id:"docker\u5bb9\u5668\u751f\u6210\u955c\u50cf"},"Docker\u5bb9\u5668\u751f\u6210\u955c\u50cf"),(0,c.yg)("pre",null,(0,c.yg)("code",{parentName:"pre",className:"language-shell"},'docker commit -m="\u63cf\u8ff0\u4fe1\u606f" -a="\u4f5c\u8005" \u5bb9\u5668id \u76ee\u6807\u955c\u50cf\u540d\uff1a [TAG]\n\n')),(0,c.yg)("p",null,"\u4e5f\u53ef\u4ee5\u7528\u4e8e\u5bb9\u5668\u7aef\u53e3\u4fee\u6539\uff0c\u5148\u628a\u5bb9\u5668\u751f\u6210\u955c\u50cf\uff0c\u7136\u540e\u518d\u6839\u636e\u955c\u50cf\u91cd\u65b0\u521b\u5efa\u5bb9\u5668"),(0,c.yg)("pre",null,(0,c.yg)("code",{parentName:"pre",className:"language-shell"},'4661cf0ef60f ccsp-svs-openeuler-x86:3.3.1.5.16 "/bin/bash -c \'sh /o\u2026" 52 minutes ago Up 52 minutes 10.0.101.147:21008->20010/tcp, 10.0.101.147:21011->20012/tcp, 10.0.101.147:21009->20014/tcp, 10.0.101.147:21010->20015/tcp ccsp-svs-6751369239214162560\n#\ndocker commit -m="test" -a="weic" ccsp-svs-6751369239214162560 svstest:20016-12\n#\ndocker stop ccsp-svs-6751369239214162560\n#\ndocker run \\\n-td \\\n-p 10.0.101.147:21008:20010 \\\n-p 10.0.101.147:21011:20012 \\\n-p 10.0.101.147:21009:20014 \\\n-p 10.0.101.147:21010:20015 \\\n-p 10.0.101.147:20016:20016 \\\n-p 10.0.101.147:20018:20018 \\\n--name ccsp-svs-6751369239214162560-c \\\nsvstest:20016-12 \\\n/bin/bash -c "sh /opt/sansec/ccsp/startService.sh&bash"\n')),(0,c.yg)("p",null,"\u4fee\u6539shmsize \u5171\u4eab\u5185\u5b58"),(0,c.yg)("pre",null,(0,c.yg)("code",{parentName:"pre",className:"language-shell"},'fbaabf1d7e74 ccsp-tsc-openeuler-x86:3.3.1.3 "/bin/bash -c \'sh /o\u2026" 4 minutes ago Up 4 minutes 10.0.101.146:26501->8011/tcp, 10.0.101.146:26502->8099/tcp ccsp-tsc-6745104769515389829\n#\ndocker commit -m="test" -a="weic" ccsp-tsc-6745104769515389829 tsctest:shmsize-1\n#\ndocker stop ccsp-tsc-6745104769515389829\n#\ndocker run \\\n-td \\\n--shm-size 1gb \\\n-p 10.0.101.146:26501:8011 \\\n-p 10.0.101.146:26502:8099 \\\n--name ccsp-tsc-6745104769515389829-c \\\ntsctest:shmsize-1 \\\n/bin/bash -c "sh /opt/sansec/ccsp/startService.sh&bash"\n\ndocker run \\\n-td \\\n--name ccsp-tsc-6745104769515389829-c \\\ntsctest:shmsize-1 \\\n/bin/bash -c "sh /opt/sansec/ccsp/startService.sh&bash"\n')),(0,c.yg)("h3",{id:"\u5220\u9664\u51e0\u5929\u4e4b\u524d\u7684\u5bb9\u5668"},"\u5220\u9664\u51e0\u5929\u4e4b\u524d\u7684\u5bb9\u5668"),(0,c.yg)("pre",null,(0,c.yg)("code",{parentName:"pre",className:"language-shell"},"#!/bin/bash\n\n# \u8bbe\u7f6e\u5929\u6570\u9608\u503c\ndays=2\n \n# \u627e\u5230\u521b\u5efa\u65f6\u95f4\u5728\u51e0\u5929\u524d\u7684\u5bb9\u5668ID\ncontainer_ids=$(docker ps --format '{{.ID}} {{.CreatedAt}}' | awk -v days_ago=$days '$2 < \"'$(date -d \"$days days ago\" +'%Y-%m-%d')'\"' | cut -d ' ' -f1)\n \n# \u5220\u9664\u8fd9\u4e9b\u5bb9\u5668\ndocker rm -f $container_ids\n")),(0,c.yg)("h3",{id:"\u672a\u8fd0\u884c\u7684\u5bb9\u5668\u4e2d\u7684\u6587\u4ef6\u4fee\u6539"},"\u672a\u8fd0\u884c\u7684\u5bb9\u5668\u4e2d\u7684\u6587\u4ef6\u4fee\u6539"),(0,c.yg)("pre",null,(0,c.yg)("code",{parentName:"pre",className:"language-shell"},"# \u5148copy\u51fa\u6765\ndocker cp {containerID}:/xxx/xxx ./xxx\n# \u4fee\u6539\u5b8c\u4e4b\u540e \u5728copy\u8fdb\u53bb\ndocker cp ./xxx {containerID}:/xxx/xxx\n")),(0,c.yg)("h3",{id:"\u8bbe\u7f6ecpu\u6570\u91cf\u4ee5\u53ca\u5185\u5b58\u5927\u5c0f"},"\u8bbe\u7f6ecpu\u6570\u91cf\u4ee5\u53ca\u5185\u5b58\u5927\u5c0f"),(0,c.yg)("pre",null,(0,c.yg)("code",{parentName:"pre",className:"language-shell"},"docker update --cpus 4 --memory 8g {\u5bb9\u5668\u540d\u79f0\u6216ID}\n")),(0,c.yg)("h3",{id:"\u6e05\u7406\u5bb9\u5668\u548c\u955c\u50cf"},"\u6e05\u7406\u5bb9\u5668\u548c\u955c\u50cf"),(0,c.yg)("pre",null,(0,c.yg)("code",{parentName:"pre",className:"language-shell"},"\n# \u505c\u6b62\u6240\u6709\u6b63\u5728\u8fd0\u884c\u7684\u5bb9\u5668\ndocker stop $(docker ps -aq)\n \n# \u5220\u9664\u6240\u6709\u5bb9\u5668\ndocker rm $(docker ps -aq)\n \n# \u5220\u9664\u6240\u6709\u955c\u50cf\ndocker rmi $(docker images -q)\n")),(0,c.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,c.yg)("p",null,(0,c.yg)("a",{parentName:"p",href:"https://developer.aliyun.com/article/272173"},"\u53c2\u8003 1")))}u.isMDXComponent=!0},3579:(e,n,r)=>{r.d(n,{A:()=>t});const t=r.p+"assets/images/1-b23594a1c043f6f3f2961f17d876ef47.png"}}]); \ No newline at end of file diff --git a/assets/js/228940c7.9894dd93.js b/assets/js/228940c7.6bc04ae3.js similarity index 98% rename from assets/js/228940c7.9894dd93.js rename to assets/js/228940c7.6bc04ae3.js index a072186c4..88ca1f744 100644 --- a/assets/js/228940c7.9894dd93.js +++ b/assets/js/228940c7.6bc04ae3.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7152],{5680:(e,r,t)=>{t.d(r,{xA:()=>u,yg:()=>d});var n=t(6540);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function a(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function p(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var c=n.createContext({}),i=function(e){var r=n.useContext(c),t=r;return e&&(t="function"==typeof e?e(r):p(p({},r),e)),t},u=function(e){var r=i(e.components);return n.createElement(c.Provider,{value:r},e.children)},s="mdxType",m={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},y=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),s=i(t),y=o,d=s["".concat(c,".").concat(y)]||s[y]||m[y]||a;return t?n.createElement(d,p(p({ref:r},u),{},{components:t})):n.createElement(d,p({ref:r},u))}));function d(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var a=t.length,p=new Array(a);p[0]=y;var l={};for(var c in r)hasOwnProperty.call(r,c)&&(l[c]=r[c]);l.originalType=e,l[s]="string"==typeof e?e:o,p[1]=l;for(var i=2;i{t.r(r),t.d(r,{assets:()=>c,contentTitle:()=>p,default:()=>m,frontMatter:()=>a,metadata:()=>l,toc:()=>i});var n=t(8168),o=(t(6540),t(5680));const a={},p=void 0,l={unversionedId:"study/program/JS/npx",id:"study/program/JS/npx",title:"npx",description:"\u6982\u5ff5",source:"@site/docs/study/program/JS/npx.md",sourceDirName:"study/program/JS",slug:"/study/program/JS/npx",permalink:"/docs/study/program/JS/npx",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"npm",permalink:"/docs/study/program/JS/npm"},next:{title:"nrm",permalink:"/docs/study/program/JS/nrm"}},c={},i=[],u={toc:i},s="wrapper";function m(e){let{components:r,...t}=e;return(0,o.yg)(s,(0,n.A)({},u,t,{components:r,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"\u6982\u5ff5\nnpx\u662f\u4e00\u4e2a\u5de5\u5177\uff0c\u5b83\u662fnpm v5.2.0\u5f15\u5165\u7684\u4e00\u6761\u547d\u4ee4\uff08npx\uff09\uff0c\u662fnpm\u7684\u4e00\u4e2a\u5305\u6267\u884c\u5668\uff0c\u53ea\u8981\u4e3a\u4e86\u63d0\u9ad8\u4ecenpm\u6ce8\u518c\u8868\u4f7f\u7528\u8f6f\u4ef6\u5305\u7684\u4f53\u9a8c \u3002 npm\u4f7f\u5f97\u5b83\u975e\u5e38\u5bb9\u6613\u5730\u5b89\u88c5\u548c\u7ba1\u7406\u6258\u7ba1\u5728\u6ce8\u518c\u8868\u4e0a\u7684\u4f9d\u8d56\u9879\uff0c npx\u4f7f\u5f97\u4f7f\u7528CLI\u5de5\u5177\u548c\u5176\u4ed6\u6258\u7ba1\u5728\u6ce8\u518c\u8868\u3002"),(0,o.yg)("p",null,"\u5c31\u50cfnpm\u6781\u5927\u5730\u63d0\u5347\u4e86\u6211\u4eec\u5b89\u88c5\u548c\u7ba1\u7406\u5305\u4f9d\u8d56\u7684\u4f53\u9a8c\uff0c\u5728npm\u7684\u57fa\u7840\u4e4b\u4e0a\uff0cnpx\u8ba9npm\u5305\u4e2d\u7684\u547d\u4ee4\u884c\u5de5\u5177\u548c\u5176\u4ed6\u53ef\u6267\u884c\u6587\u4ef6\u5728\u4f7f\u7528\u4e0a\u53d8\u5f97\u66f4\u52a0\u7b80\u5355\u3002\u5b83\u6781\u5927\u5730\u7b80\u5316\u4e86\u6211\u4eec\u4e4b\u524d\u4f7f\u7528\u7eaf\u7cb9\u7684npm\u65f6\u6240\u9700\u8981\u7684\u5927\u91cf\u6b65\u9aa4\u3002"),(0,o.yg)("p",null,"\u4e3b\u8981\u7279\u70b9\uff1a"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},"\u4e34\u65f6\u5b89\u88c5\u53ef\u6267\u884c\u4f9d\u8d56\u5305\uff0c\u4e0d\u7528\u5168\u5c40\u5b89\u88c5\uff0c\u4e0d\u7528\u62c5\u5fc3\u957f\u671f\u7684\u6c61\u67d3\u3002"),(0,o.yg)("li",{parentName:"ol"},"\u53ef\u4ee5\u6267\u884c\u4f9d\u8d56\u5305\u4e2d\u7684\u547d\u4ee4\uff0c\u5b89\u88c5\u5b8c\u6210\u81ea\u52a8\u8fd0\u884c\u3002"),(0,o.yg)("li",{parentName:"ol"},"\u81ea\u52a8\u52a0\u8f7dnode_modules\u4e2d\u4f9d\u8d56\u5305\uff0c\u4e0d\u7528\u6307\u5b9a$PATH\u3002"),(0,o.yg)("li",{parentName:"ol"},"\u53ef\u4ee5\u6307\u5b9anode\u7248\u672c\u3001\u547d\u4ee4\u7684\u7248\u672c\uff0c\u89e3\u51b3\u4e86\u4e0d\u540c\u9879\u76ee\u4f7f\u7528\u4e0d\u540c\u7248\u672c\u7684\u547d\u4ee4\u7684\u95ee\u9898\u3002")))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7152],{5680:(e,r,t)=>{t.d(r,{xA:()=>u,yg:()=>d});var n=t(6540);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function a(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function p(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var c=n.createContext({}),i=function(e){var r=n.useContext(c),t=r;return e&&(t="function"==typeof e?e(r):p(p({},r),e)),t},u=function(e){var r=i(e.components);return n.createElement(c.Provider,{value:r},e.children)},s="mdxType",m={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},y=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),s=i(t),y=o,d=s["".concat(c,".").concat(y)]||s[y]||m[y]||a;return t?n.createElement(d,p(p({ref:r},u),{},{components:t})):n.createElement(d,p({ref:r},u))}));function d(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var a=t.length,p=new Array(a);p[0]=y;var l={};for(var c in r)hasOwnProperty.call(r,c)&&(l[c]=r[c]);l.originalType=e,l[s]="string"==typeof e?e:o,p[1]=l;for(var i=2;i{t.r(r),t.d(r,{assets:()=>c,contentTitle:()=>p,default:()=>m,frontMatter:()=>a,metadata:()=>l,toc:()=>i});var n=t(8168),o=(t(6540),t(5680));const a={},p=void 0,l={unversionedId:"study/program/JS/npx",id:"study/program/JS/npx",title:"npx",description:"\u6982\u5ff5",source:"@site/docs/study/program/JS/npx.md",sourceDirName:"study/program/JS",slug:"/study/program/JS/npx",permalink:"/docs/study/program/JS/npx",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"npm",permalink:"/docs/study/program/JS/npm"},next:{title:"nrm",permalink:"/docs/study/program/JS/nrm"}},c={},i=[],u={toc:i},s="wrapper";function m(e){let{components:r,...t}=e;return(0,o.yg)(s,(0,n.A)({},u,t,{components:r,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"\u6982\u5ff5\nnpx\u662f\u4e00\u4e2a\u5de5\u5177\uff0c\u5b83\u662fnpm v5.2.0\u5f15\u5165\u7684\u4e00\u6761\u547d\u4ee4\uff08npx\uff09\uff0c\u662fnpm\u7684\u4e00\u4e2a\u5305\u6267\u884c\u5668\uff0c\u53ea\u8981\u4e3a\u4e86\u63d0\u9ad8\u4ecenpm\u6ce8\u518c\u8868\u4f7f\u7528\u8f6f\u4ef6\u5305\u7684\u4f53\u9a8c \u3002 npm\u4f7f\u5f97\u5b83\u975e\u5e38\u5bb9\u6613\u5730\u5b89\u88c5\u548c\u7ba1\u7406\u6258\u7ba1\u5728\u6ce8\u518c\u8868\u4e0a\u7684\u4f9d\u8d56\u9879\uff0c npx\u4f7f\u5f97\u4f7f\u7528CLI\u5de5\u5177\u548c\u5176\u4ed6\u6258\u7ba1\u5728\u6ce8\u518c\u8868\u3002"),(0,o.yg)("p",null,"\u5c31\u50cfnpm\u6781\u5927\u5730\u63d0\u5347\u4e86\u6211\u4eec\u5b89\u88c5\u548c\u7ba1\u7406\u5305\u4f9d\u8d56\u7684\u4f53\u9a8c\uff0c\u5728npm\u7684\u57fa\u7840\u4e4b\u4e0a\uff0cnpx\u8ba9npm\u5305\u4e2d\u7684\u547d\u4ee4\u884c\u5de5\u5177\u548c\u5176\u4ed6\u53ef\u6267\u884c\u6587\u4ef6\u5728\u4f7f\u7528\u4e0a\u53d8\u5f97\u66f4\u52a0\u7b80\u5355\u3002\u5b83\u6781\u5927\u5730\u7b80\u5316\u4e86\u6211\u4eec\u4e4b\u524d\u4f7f\u7528\u7eaf\u7cb9\u7684npm\u65f6\u6240\u9700\u8981\u7684\u5927\u91cf\u6b65\u9aa4\u3002"),(0,o.yg)("p",null,"\u4e3b\u8981\u7279\u70b9\uff1a"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},"\u4e34\u65f6\u5b89\u88c5\u53ef\u6267\u884c\u4f9d\u8d56\u5305\uff0c\u4e0d\u7528\u5168\u5c40\u5b89\u88c5\uff0c\u4e0d\u7528\u62c5\u5fc3\u957f\u671f\u7684\u6c61\u67d3\u3002"),(0,o.yg)("li",{parentName:"ol"},"\u53ef\u4ee5\u6267\u884c\u4f9d\u8d56\u5305\u4e2d\u7684\u547d\u4ee4\uff0c\u5b89\u88c5\u5b8c\u6210\u81ea\u52a8\u8fd0\u884c\u3002"),(0,o.yg)("li",{parentName:"ol"},"\u81ea\u52a8\u52a0\u8f7dnode_modules\u4e2d\u4f9d\u8d56\u5305\uff0c\u4e0d\u7528\u6307\u5b9a$PATH\u3002"),(0,o.yg)("li",{parentName:"ol"},"\u53ef\u4ee5\u6307\u5b9anode\u7248\u672c\u3001\u547d\u4ee4\u7684\u7248\u672c\uff0c\u89e3\u51b3\u4e86\u4e0d\u540c\u9879\u76ee\u4f7f\u7528\u4e0d\u540c\u7248\u672c\u7684\u547d\u4ee4\u7684\u95ee\u9898\u3002")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/22d8222a.60fecca2.js b/assets/js/22d8222a.ca2d177b.js similarity index 98% rename from assets/js/22d8222a.60fecca2.js rename to assets/js/22d8222a.ca2d177b.js index fcb31626d..bae8e6d68 100644 --- a/assets/js/22d8222a.60fecca2.js +++ b/assets/js/22d8222a.ca2d177b.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4504],{5680:(e,r,t)=>{t.d(r,{xA:()=>u,yg:()=>g});var n=t(6540);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function i(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function c(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var a=n.createContext({}),d=function(e){var r=n.useContext(a),t=r;return e&&(t="function"==typeof e?e(r):c(c({},r),e)),t},u=function(e){var r=d(e.components);return n.createElement(a.Provider,{value:r},e.children)},p="mdxType",s={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},y=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,i=e.originalType,a=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),p=d(t),y=o,g=p["".concat(a,".").concat(y)]||p[y]||s[y]||i;return t?n.createElement(g,c(c({ref:r},u),{},{components:t})):n.createElement(g,c({ref:r},u))}));function g(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var i=t.length,c=new Array(i);c[0]=y;var l={};for(var a in r)hasOwnProperty.call(r,a)&&(l[a]=r[a]);l.originalType=e,l[p]="string"==typeof e?e:o,c[1]=l;for(var d=2;d{t.r(r),t.d(r,{assets:()=>a,contentTitle:()=>c,default:()=>s,frontMatter:()=>i,metadata:()=>l,toc:()=>d});var n=t(8168),o=(t(6540),t(5680));const i={sidebar_position:1},c="\u6982\u8ff0",l={unversionedId:"study/docker/index",id:"study/docker/index",title:"\u6982\u8ff0",description:"\u4e00\u79cd\u865a\u62df\u6280\u672f\u3002",source:"@site/docs/study/docker/index.md",sourceDirName:"study/docker",slug:"/study/docker/",permalink:"/docs/study/docker/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"\u9886\u57df\u9a71\u52a8\u8bbe\u8ba1DDD",permalink:"/docs/study/think/\u9886\u57df\u9a71\u52a8\u8bbe\u8ba1DDD"},next:{title:"Docker Compose",permalink:"/docs/study/docker/Docker-compose"}},a={},d=[{value:"windows/linux docker",id:"windowslinux-docker",level:3},{value:"\u5b98\u65b9\u53c2\u8003\u6587\u6863",id:"\u5b98\u65b9\u53c2\u8003\u6587\u6863",level:3},{value:"docker cli",id:"docker-cli",level:3},{value:"docker engine api",id:"docker-engine-api",level:3},{value:"docker \u5b98\u65b9\u955c\u50cf\u5e93 docker hub",id:"docker-\u5b98\u65b9\u955c\u50cf\u5e93-docker-hub",level:3},{value:"docker \u79c1\u6709\u955c\u50cf\u4ed3\u5e93\u8f6f\u4ef6",id:"docker-\u79c1\u6709\u955c\u50cf\u4ed3\u5e93\u8f6f\u4ef6",level:3}],u={toc:d},p="wrapper";function s(e){let{components:r,...t}=e;return(0,o.yg)(p,(0,n.A)({},u,t,{components:r,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,o.yg)("p",null,"\u4e00\u79cd\u865a\u62df\u6280\u672f\u3002"),(0,o.yg)("h3",{id:"windowslinux-docker"},"windows/linux docker"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"windows docker \u5bbf\u4e3b\u673a \u53ef\u4ee5\u8fd0\u884c windows \u548c linux \u5bb9\u5668;"),(0,o.yg)("li",{parentName:"ul"},"linux docker \u5bbf\u4e3b\u673a\u53ea\u80fd\u8fd0\u884c linux \u5bb9\u5668;"),(0,o.yg)("li",{parentName:"ul"},"windows \u5bbf\u4e3b\u673a\u53ef\u4ee5\u8fd0\u884c linux \u5bb9\u5668\u7684\u539f\u56e0\u662f\uff1a windows \u5728\u540e\u53f0\u521b\u5efa\u4e86\u4e00\u4e2a Linux \u5b50\u7cfb\u7edf(WSL)\uff0c\u56e0\u6b64 Linux \u5bb9\u5668\u4ecd\u5728 Linux \u4e0a\u8fd0\u884c;")),(0,o.yg)("h3",{id:"\u5b98\u65b9\u53c2\u8003\u6587\u6863"},"\u5b98\u65b9\u53c2\u8003\u6587\u6863"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://docs.docker.com/reference/"},"\u5b98\u65b9\u53c2\u8003\u6587\u6863"))),(0,o.yg)("p",null,"\u6ca1\u4ec0\u4e48\u597d\u7684\u529e\u6cd5\u3002\u628a\u8fd9\u4e2a\u6587\u6863\u591a\u8bfb\u591a\u5b9e\u8df5\uff0c\u57fa\u672c\u4e0a\u4e5f\u7b97\u534a\u4e2a\u4e13\u5bb6\u4e86\u3002"),(0,o.yg)("p",null,"\u6ca1\u4e8b\u591a\u770b\u770b\uff0c\ndocker --help\ndockerd --hlep"),(0,o.yg)("h3",{id:"docker-cli"},"docker cli"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://docs.docker.com/reference/cli/docker/"},"docker cli \u5b98\u65b9\u53c2\u8003\u6587\u6863"))),(0,o.yg)("h3",{id:"docker-engine-api"},"docker engine api"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://docs.docker.com/engine/api/v1.45/"},"docker engine api v1.45 \u5b98\u65b9\u53c2\u8003\u6587\u6863"))),(0,o.yg)("h3",{id:"docker-\u5b98\u65b9\u955c\u50cf\u5e93-docker-hub"},"docker \u5b98\u65b9\u955c\u50cf\u5e93 docker hub"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://hub.docker.com/"},"docker hub")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://hub-stage.docker.com/"},"docker hub-stage"))),(0,o.yg)("h3",{id:"docker-\u79c1\u6709\u955c\u50cf\u4ed3\u5e93\u8f6f\u4ef6"},"docker \u79c1\u6709\u955c\u50cf\u4ed3\u5e93\u8f6f\u4ef6"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://github.com/goharbor/harbor"},"harbor")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://hub.docker.com/_/registry"},"docker\u5b98\u65b9\u79c1\u6709registry"))))}s.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4504],{5680:(e,r,t)=>{t.d(r,{xA:()=>u,yg:()=>g});var n=t(6540);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function i(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function c(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var a=n.createContext({}),d=function(e){var r=n.useContext(a),t=r;return e&&(t="function"==typeof e?e(r):c(c({},r),e)),t},u=function(e){var r=d(e.components);return n.createElement(a.Provider,{value:r},e.children)},p="mdxType",s={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},y=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,i=e.originalType,a=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),p=d(t),y=o,g=p["".concat(a,".").concat(y)]||p[y]||s[y]||i;return t?n.createElement(g,c(c({ref:r},u),{},{components:t})):n.createElement(g,c({ref:r},u))}));function g(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var i=t.length,c=new Array(i);c[0]=y;var l={};for(var a in r)hasOwnProperty.call(r,a)&&(l[a]=r[a]);l.originalType=e,l[p]="string"==typeof e?e:o,c[1]=l;for(var d=2;d{t.r(r),t.d(r,{assets:()=>a,contentTitle:()=>c,default:()=>s,frontMatter:()=>i,metadata:()=>l,toc:()=>d});var n=t(8168),o=(t(6540),t(5680));const i={sidebar_position:1},c="\u6982\u8ff0",l={unversionedId:"study/docker/index",id:"study/docker/index",title:"\u6982\u8ff0",description:"\u4e00\u79cd\u865a\u62df\u6280\u672f\u3002",source:"@site/docs/study/docker/index.md",sourceDirName:"study/docker",slug:"/study/docker/",permalink:"/docs/study/docker/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"\u9886\u57df\u9a71\u52a8\u8bbe\u8ba1DDD",permalink:"/docs/study/think/\u9886\u57df\u9a71\u52a8\u8bbe\u8ba1DDD"},next:{title:"Docker Compose",permalink:"/docs/study/docker/Docker-compose"}},a={},d=[{value:"windows/linux docker",id:"windowslinux-docker",level:3},{value:"\u5b98\u65b9\u53c2\u8003\u6587\u6863",id:"\u5b98\u65b9\u53c2\u8003\u6587\u6863",level:3},{value:"docker cli",id:"docker-cli",level:3},{value:"docker engine api",id:"docker-engine-api",level:3},{value:"docker \u5b98\u65b9\u955c\u50cf\u5e93 docker hub",id:"docker-\u5b98\u65b9\u955c\u50cf\u5e93-docker-hub",level:3},{value:"docker \u79c1\u6709\u955c\u50cf\u4ed3\u5e93\u8f6f\u4ef6",id:"docker-\u79c1\u6709\u955c\u50cf\u4ed3\u5e93\u8f6f\u4ef6",level:3}],u={toc:d},p="wrapper";function s(e){let{components:r,...t}=e;return(0,o.yg)(p,(0,n.A)({},u,t,{components:r,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,o.yg)("p",null,"\u4e00\u79cd\u865a\u62df\u6280\u672f\u3002"),(0,o.yg)("h3",{id:"windowslinux-docker"},"windows/linux docker"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"windows docker \u5bbf\u4e3b\u673a \u53ef\u4ee5\u8fd0\u884c windows \u548c linux \u5bb9\u5668;"),(0,o.yg)("li",{parentName:"ul"},"linux docker \u5bbf\u4e3b\u673a\u53ea\u80fd\u8fd0\u884c linux \u5bb9\u5668;"),(0,o.yg)("li",{parentName:"ul"},"windows \u5bbf\u4e3b\u673a\u53ef\u4ee5\u8fd0\u884c linux \u5bb9\u5668\u7684\u539f\u56e0\u662f\uff1a windows \u5728\u540e\u53f0\u521b\u5efa\u4e86\u4e00\u4e2a Linux \u5b50\u7cfb\u7edf(WSL)\uff0c\u56e0\u6b64 Linux \u5bb9\u5668\u4ecd\u5728 Linux \u4e0a\u8fd0\u884c;")),(0,o.yg)("h3",{id:"\u5b98\u65b9\u53c2\u8003\u6587\u6863"},"\u5b98\u65b9\u53c2\u8003\u6587\u6863"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://docs.docker.com/reference/"},"\u5b98\u65b9\u53c2\u8003\u6587\u6863"))),(0,o.yg)("p",null,"\u6ca1\u4ec0\u4e48\u597d\u7684\u529e\u6cd5\u3002\u628a\u8fd9\u4e2a\u6587\u6863\u591a\u8bfb\u591a\u5b9e\u8df5\uff0c\u57fa\u672c\u4e0a\u4e5f\u7b97\u534a\u4e2a\u4e13\u5bb6\u4e86\u3002"),(0,o.yg)("p",null,"\u6ca1\u4e8b\u591a\u770b\u770b\uff0c\ndocker --help\ndockerd --hlep"),(0,o.yg)("h3",{id:"docker-cli"},"docker cli"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://docs.docker.com/reference/cli/docker/"},"docker cli \u5b98\u65b9\u53c2\u8003\u6587\u6863"))),(0,o.yg)("h3",{id:"docker-engine-api"},"docker engine api"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://docs.docker.com/engine/api/v1.45/"},"docker engine api v1.45 \u5b98\u65b9\u53c2\u8003\u6587\u6863"))),(0,o.yg)("h3",{id:"docker-\u5b98\u65b9\u955c\u50cf\u5e93-docker-hub"},"docker \u5b98\u65b9\u955c\u50cf\u5e93 docker hub"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://hub.docker.com/"},"docker hub")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://hub-stage.docker.com/"},"docker hub-stage"))),(0,o.yg)("h3",{id:"docker-\u79c1\u6709\u955c\u50cf\u4ed3\u5e93\u8f6f\u4ef6"},"docker \u79c1\u6709\u955c\u50cf\u4ed3\u5e93\u8f6f\u4ef6"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://github.com/goharbor/harbor"},"harbor")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://hub.docker.com/_/registry"},"docker\u5b98\u65b9\u79c1\u6709registry"))))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/249c18b0.daf6c1e9.js b/assets/js/249c18b0.cbdb44df.js similarity index 98% rename from assets/js/249c18b0.daf6c1e9.js rename to assets/js/249c18b0.cbdb44df.js index 753f84107..0c231b9f4 100644 --- a/assets/js/249c18b0.daf6c1e9.js +++ b/assets/js/249c18b0.cbdb44df.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9684],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>m});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function p(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),l=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):p(p({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(c.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),s=l(r),d=a,m=s["".concat(c,".").concat(d)]||s[d]||y[d]||o;return r?n.createElement(m,p(p({ref:t},u),{},{components:r})):n.createElement(m,p({ref:t},u))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,p=new Array(o);p[0]=d;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[s]="string"==typeof e?e:a,p[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>p,default:()=>y,frontMatter:()=>o,metadata:()=>i,toc:()=>l});var n=r(8168),a=(r(6540),r(5680));const o={},p=void 0,i={unversionedId:"study/program/JAVA/RxJava",id:"study/program/JAVA/RxJava",title:"RxJava",description:"\u7b80\u4ecb",source:"@site/docs/study/program/JAVA/RxJava.md",sourceDirName:"study/program/JAVA",slug:"/study/program/JAVA/RxJava",permalink:"/docs/study/program/JAVA/RxJava",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"OpenJ9",permalink:"/docs/study/program/JAVA/OepnJ9"},next:{title:"Vert.x",permalink:"/docs/study/program/JAVA/Vert.x"}},c={},l=[{value:"\u7b80\u4ecb",id:"\u7b80\u4ecb",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],u={toc:l},s="wrapper";function y(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u7b80\u4ecb"},"\u7b80\u4ecb"),(0,a.yg)("p",null,(0,a.yg)("a",{parentName:"p",href:"https://github.com/ReactiveX/RxJava"},"GitHub\u5730\u5740")),(0,a.yg)("p",null,"RxJava - JVM\u54cd\u5e94\u5f0f\u6269\u5c55Reactive Extensions \u7528\u4e8e\u4f7f\u7528Java VM\u7684\u53ef\u89c2\u5bdf\u5e8f\u5217\u7f16\u5199\u5f02\u6b65\u548c\u57fa\u4e8e\u4e8b\u4ef6\u7684\u7a0b\u5e8f\u7684\u5e93\u3002"),(0,a.yg)("p",null,"RxJava\u5230\u5e95\u662f\u4ec0\u4e48\uff1f\u8ba9\u6211\u4eec\u76f4\u63a5\u8df3\u8fc7\u5b98\u65b9\u90a3\u79cd\u6666\u6da9\u7684\u8ffd\u6c42\u7cbe\u786e\u7684\u5b9a\u4e49\uff0c\u5176\u5b9e\u521d\u5b66RxJava\u53ea\u8981\u628a\u63e1\u4e24\u70b9\uff1a\u89c2\u5bdf\u8005\u6a21\u5f0f\u548c\u5f02\u6b65,\u5c31\u57fa\u672c\u53ef\u4ee5\u719f\u7ec3\u4f7f\u7528RxJava\u4e86\u3002"),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"https://juejin.cn/post/6844903447280484360"},"\u5173\u4e8eRxJava\u6700\u53cb\u597d\u7684\u6587\u7ae0")),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"https://juejin.cn/post/6844903454067032071"},"\u5173\u4e8eRxJava\u6700\u53cb\u597d\u7684\u6587\u7ae0\u2014\u2014\u80cc\u538b\uff08Backpressure\uff09")),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"https://juejin.cn/post/6844903455929139207"},"\u5173\u4e8e RxJava \u6700\u53cb\u597d\u7684\u6587\u7ae0\u2014\u2014 RxJava 2.0 \u5168\u65b0\u6765\u88ad"))))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9684],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>m});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function p(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),l=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):p(p({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(c.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),s=l(r),d=a,m=s["".concat(c,".").concat(d)]||s[d]||y[d]||o;return r?n.createElement(m,p(p({ref:t},u),{},{components:r})):n.createElement(m,p({ref:t},u))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,p=new Array(o);p[0]=d;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[s]="string"==typeof e?e:a,p[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>p,default:()=>y,frontMatter:()=>o,metadata:()=>i,toc:()=>l});var n=r(8168),a=(r(6540),r(5680));const o={},p=void 0,i={unversionedId:"study/program/JAVA/RxJava",id:"study/program/JAVA/RxJava",title:"RxJava",description:"\u7b80\u4ecb",source:"@site/docs/study/program/JAVA/RxJava.md",sourceDirName:"study/program/JAVA",slug:"/study/program/JAVA/RxJava",permalink:"/docs/study/program/JAVA/RxJava",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"OpenJ9",permalink:"/docs/study/program/JAVA/OepnJ9"},next:{title:"Vert.x",permalink:"/docs/study/program/JAVA/Vert.x"}},c={},l=[{value:"\u7b80\u4ecb",id:"\u7b80\u4ecb",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],u={toc:l},s="wrapper";function y(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u7b80\u4ecb"},"\u7b80\u4ecb"),(0,a.yg)("p",null,(0,a.yg)("a",{parentName:"p",href:"https://github.com/ReactiveX/RxJava"},"GitHub\u5730\u5740")),(0,a.yg)("p",null,"RxJava - JVM\u54cd\u5e94\u5f0f\u6269\u5c55Reactive Extensions \u7528\u4e8e\u4f7f\u7528Java VM\u7684\u53ef\u89c2\u5bdf\u5e8f\u5217\u7f16\u5199\u5f02\u6b65\u548c\u57fa\u4e8e\u4e8b\u4ef6\u7684\u7a0b\u5e8f\u7684\u5e93\u3002"),(0,a.yg)("p",null,"RxJava\u5230\u5e95\u662f\u4ec0\u4e48\uff1f\u8ba9\u6211\u4eec\u76f4\u63a5\u8df3\u8fc7\u5b98\u65b9\u90a3\u79cd\u6666\u6da9\u7684\u8ffd\u6c42\u7cbe\u786e\u7684\u5b9a\u4e49\uff0c\u5176\u5b9e\u521d\u5b66RxJava\u53ea\u8981\u628a\u63e1\u4e24\u70b9\uff1a\u89c2\u5bdf\u8005\u6a21\u5f0f\u548c\u5f02\u6b65,\u5c31\u57fa\u672c\u53ef\u4ee5\u719f\u7ec3\u4f7f\u7528RxJava\u4e86\u3002"),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"https://juejin.cn/post/6844903447280484360"},"\u5173\u4e8eRxJava\u6700\u53cb\u597d\u7684\u6587\u7ae0")),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"https://juejin.cn/post/6844903454067032071"},"\u5173\u4e8eRxJava\u6700\u53cb\u597d\u7684\u6587\u7ae0\u2014\u2014\u80cc\u538b\uff08Backpressure\uff09")),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"https://juejin.cn/post/6844903455929139207"},"\u5173\u4e8e RxJava \u6700\u53cb\u597d\u7684\u6587\u7ae0\u2014\u2014 RxJava 2.0 \u5168\u65b0\u6765\u88ad"))))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/25692582.6b7c8ff2.js b/assets/js/25692582.ba1a7e12.js similarity index 98% rename from assets/js/25692582.6b7c8ff2.js rename to assets/js/25692582.ba1a7e12.js index c8bdae52e..f46a8b159 100644 --- a/assets/js/25692582.6b7c8ff2.js +++ b/assets/js/25692582.ba1a7e12.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7782],{5680:(e,t,r)=>{r.d(t,{xA:()=>i,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},i=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,c=e.originalType,s=e.parentName,i=a(e,["components","mdxType","originalType","parentName"]),u=p(r),d=o,f=u["".concat(s,".").concat(d)]||u[d]||y[d]||c;return r?n.createElement(f,l(l({ref:t},i),{},{components:r})):n.createElement(f,l({ref:t},i))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var c=r.length,l=new Array(c);l[0]=d;var a={};for(var s in t)hasOwnProperty.call(t,s)&&(a[s]=t[s]);a.originalType=e,a[u]="string"==typeof e?e:o,l[1]=a;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>y,frontMatter:()=>c,metadata:()=>a,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const c={},l=void 0,a={unversionedId:"study/system/shell\u7f16\u7a0b\u667aexpect",id:"study/system/shell\u7f16\u7a0b\u667aexpect",title:"shell\u7f16\u7a0b\u667aexpect",description:"expect",source:"@site/docs/study/system/shell\u7f16\u7a0b\u667aexpect.md",sourceDirName:"study/system",slug:"/study/system/shell\u7f16\u7a0b\u667aexpect",permalink:"/docs/study/system/shell\u7f16\u7a0b\u667aexpect",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"openWRT",permalink:"/docs/study/system/openWRT"},next:{title:"yum-dnf",permalink:"/docs/study/system/yum-dnf"}},s={},p=[{value:"expect",id:"expect",level:3}],i={toc:p},u="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},i,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"expect"},"expect"),(0,o.yg)("p",null,"expect \u662f\u4e00\u4e2a\u514d\u8d39\u7684\u7f16\u7a0b\u5de5\u5177\uff0c\u7528\u6765\u5b9e\u73b0\u81ea\u52a8\u7684\u4ea4\u4e92\u5f0f\u4efb\u52a1\uff0c\u800c\u65e0\u9700\u4eba\u4e3a\u5e72\u9884\u3002"),(0,o.yg)("p",null,"\u8fd9\u4e2a\u5de5\u5177\u5728\u5904\u7406\u8c03\u7528\u5176\u4ed6\u5de5\u5177\uff0c\u8f93\u5165\u5bc6\u7801\u4e4b\u7c7b\u7684\u4ea4\u4e92\uff0c\u975e\u5e38\u6709\u7528\u3002"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://blog.csdn.net/givenchy_yzl/article/details/118079170"},"CSDN-shell \u7f16\u7a0b\u4e4b expect"))))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7782],{5680:(e,t,r)=>{r.d(t,{xA:()=>i,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},i=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,c=e.originalType,s=e.parentName,i=a(e,["components","mdxType","originalType","parentName"]),u=p(r),d=o,f=u["".concat(s,".").concat(d)]||u[d]||y[d]||c;return r?n.createElement(f,l(l({ref:t},i),{},{components:r})):n.createElement(f,l({ref:t},i))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var c=r.length,l=new Array(c);l[0]=d;var a={};for(var s in t)hasOwnProperty.call(t,s)&&(a[s]=t[s]);a.originalType=e,a[u]="string"==typeof e?e:o,l[1]=a;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>y,frontMatter:()=>c,metadata:()=>a,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const c={},l=void 0,a={unversionedId:"study/system/shell\u7f16\u7a0b\u667aexpect",id:"study/system/shell\u7f16\u7a0b\u667aexpect",title:"shell\u7f16\u7a0b\u667aexpect",description:"expect",source:"@site/docs/study/system/shell\u7f16\u7a0b\u667aexpect.md",sourceDirName:"study/system",slug:"/study/system/shell\u7f16\u7a0b\u667aexpect",permalink:"/docs/study/system/shell\u7f16\u7a0b\u667aexpect",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"openWRT",permalink:"/docs/study/system/openWRT"},next:{title:"yum-dnf",permalink:"/docs/study/system/yum-dnf"}},s={},p=[{value:"expect",id:"expect",level:3}],i={toc:p},u="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},i,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"expect"},"expect"),(0,o.yg)("p",null,"expect \u662f\u4e00\u4e2a\u514d\u8d39\u7684\u7f16\u7a0b\u5de5\u5177\uff0c\u7528\u6765\u5b9e\u73b0\u81ea\u52a8\u7684\u4ea4\u4e92\u5f0f\u4efb\u52a1\uff0c\u800c\u65e0\u9700\u4eba\u4e3a\u5e72\u9884\u3002"),(0,o.yg)("p",null,"\u8fd9\u4e2a\u5de5\u5177\u5728\u5904\u7406\u8c03\u7528\u5176\u4ed6\u5de5\u5177\uff0c\u8f93\u5165\u5bc6\u7801\u4e4b\u7c7b\u7684\u4ea4\u4e92\uff0c\u975e\u5e38\u6709\u7528\u3002"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://blog.csdn.net/givenchy_yzl/article/details/118079170"},"CSDN-shell \u7f16\u7a0b\u4e4b expect"))))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/26299e01.774c72bc.js b/assets/js/26299e01.78d70061.js similarity index 99% rename from assets/js/26299e01.774c72bc.js rename to assets/js/26299e01.78d70061.js index 5e9ba697a..058e11b1f 100644 --- a/assets/js/26299e01.774c72bc.js +++ b/assets/js/26299e01.78d70061.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9343],{5680:(e,t,r)=>{r.d(t,{xA:()=>c,yg:()=>m});var n=r(6540);function l(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(l[r]=e[r]);return l}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(l[r]=e[r])}return l}var u=n.createContext({}),p=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},c=function(e){var t=p(e.components);return n.createElement(u.Provider,{value:t},e.children)},y="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,l=e.mdxType,a=e.originalType,u=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),y=p(r),d=l,m=y["".concat(u,".").concat(d)]||y[d]||s[d]||a;return r?n.createElement(m,o(o({ref:t},c),{},{components:r})):n.createElement(m,o({ref:t},c))}));function m(e,t){var r=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var a=r.length,o=new Array(a);o[0]=d;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[y]="string"==typeof e?e:l,o[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>o,default:()=>s,frontMatter:()=>a,metadata:()=>i,toc:()=>p});var n=r(8168),l=(r(6540),r(5680));const a={},o=void 0,i={unversionedId:"study/net/\u5f02\u5730\u7ec4\u7f51",id:"study/net/\u5f02\u5730\u7ec4\u7f51",title:"\u5f02\u5730\u7ec4\u7f51",description:"\u7f51\u7edc\u7c7b\u578b",source:"@site/docs/study/net/\u5f02\u5730\u7ec4\u7f51.md",sourceDirName:"study/net",slug:"/study/net/\u5f02\u5730\u7ec4\u7f51",permalink:"/docs/study/net/\u5f02\u5730\u7ec4\u7f51",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u5c40\u57df\u7f51IP\u5730\u5740\u8303\u56f4",permalink:"/docs/study/net/\u5c40\u57df\u7f51IP\u5730\u5740\u8303\u56f4"},next:{title:"\u6293\u5305\u5de5\u5177",permalink:"/docs/study/net/\u6293\u5305\u5de5\u5177"}},u={},p=[{value:"\u7f51\u7edc\u7c7b\u578b",id:"\u7f51\u7edc\u7c7b\u578b",level:3},{value:"\u5bf9\u7b49\u7f51\u7edc",id:"\u5bf9\u7b49\u7f51\u7edc",level:4},{value:"\u96c6\u6563\u7f51\u7edc",id:"\u96c6\u6563\u7f51\u7edc",level:4},{value:"\u7ade\u54c1\u5206\u6790",id:"\u7ade\u54c1\u5206\u6790",level:3},{value:"\u8d1d\u9510\u84b2\u516c\u82f1",id:"\u8d1d\u9510\u84b2\u516c\u82f1",level:4},{value:"\u6620\u7ff0\u901a",id:"\u6620\u7ff0\u901a",level:4},{value:"\u53ef\u9009\u65b9\u6848",id:"\u53ef\u9009\u65b9\u6848",level:3}],c={toc:p},y="wrapper";function s(e){let{components:t,...r}=e;return(0,l.yg)(y,(0,n.A)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,l.yg)("h3",{id:"\u7f51\u7edc\u7c7b\u578b"},"\u7f51\u7edc\u7c7b\u578b"),(0,l.yg)("h4",{id:"\u5bf9\u7b49\u7f51\u7edc"},"\u5bf9\u7b49\u7f51\u7edc"),(0,l.yg)("p",null,"\u7ec4\u7f51\u5185\u5404\u6210\u5458\u8eab\u4efd\u5bf9\u7b49\uff0c\u5747\u53ef\u5b9e\u73b0\u4e92\u8bbf\u3002"),(0,l.yg)("p",null,"\u5bf9\u7b49\u7f51\u7edc\uff08Peer-to-Peer\uff0c\u7b80\u79f0 P2P\uff09\u662f\u4e00\u79cd\u5206\u5e03\u5f0f\u7f51\u7edc\u7ed3\u6784\uff0c\u5b83\u5141\u8bb8\u7f51\u7edc\u4e2d\u7684\u8282\u70b9\uff08\u53c8\u79f0\u201c\u5bf9\u7b49\u4f53\u201d\u6216\u201c\u7528\u6237\u201d\uff09\u76f4\u63a5\u8fdb\u884c\u6570\u636e\u5171\u4eab\u548c\u901a\u4fe1\uff0c\u800c\u65e0\u9700\u4f9d\u8d56\u4e8e\u4e2d\u5fc3\u670d\u52a1\u5668\u3002\u5728\u5bf9\u7b49\u7f51\u7edc\u4e2d\uff0c\u6bcf\u4e2a\u8282\u70b9\u65e2\u662f\u5ba2\u6237\u7aef\u53c8\u662f\u670d\u52a1\u5668\uff0c\u56e0\u6b64\u7f51\u7edc\u8d44\u6e90\u548c\u8ba1\u7b97\u80fd\u529b\u662f\u5206\u6563\u7684\uff0c\u4e0d\u96c6\u4e2d\u5728\u7279\u5b9a\u7684\u670d\u52a1\u5668\u4e0a\u3002"),(0,l.yg)("h4",{id:"\u96c6\u6563\u7f51\u7edc"},"\u96c6\u6563\u7f51\u7edc"),(0,l.yg)("p",null,"\u7ec4\u7f51\u5185\u533a\u5206\u4e2d\u5fc3\u6210\u5458\u548c\u666e\u901a\u6210\u5458\uff0c\u666e\u901a\u6210\u5458\u53ea\u80fd\u8bbf\u95ee\u4e2d\u5fc3\u6210\u5458\uff0c\u666e\u901a\u6210\u5458\u4e4b\u95f4\u65e0\u6cd5\u4e92\u8bbf\u3002"),(0,l.yg)("h3",{id:"\u7ade\u54c1\u5206\u6790"},"\u7ade\u54c1\u5206\u6790"),(0,l.yg)("h4",{id:"\u8d1d\u9510\u84b2\u516c\u82f1"},"\u8d1d\u9510\u84b2\u516c\u82f1"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://pgy.oray.com/"},"https://pgy.oray.com/")," \u5f02\u5730\u7ec4\u7f51\u89e3\u51b3\u65b9\u6848")),(0,l.yg)("p",null,"p2p \u7684\u6280\u672f\u65b9\u6848"),(0,l.yg)("h4",{id:"\u6620\u7ff0\u901a"},"\u6620\u7ff0\u901a"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://ics.inhandiot.com/users/home"},"https://ics.inhandiot.com/users/home")," \u968f\u5fc3\u6240\u6b32\u7684\u4e91\u8fde\u63a5\u670d\u52a1\uff0c\u8fde\u63a5 IoT\uff0c\u8fde\u63a5\u672a\u6765")),(0,l.yg)("p",null,"OpenVPN \u7684\u6280\u672f\u65b9\u6848"),(0,l.yg)("h3",{id:"\u53ef\u9009\u65b9\u6848"},"\u53ef\u9009\u65b9\u6848"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u65b9\u6848\u4e00\uff1aSD-VPN\uff1a\u786c\u4ef6\uff08\u8def\u7531\u5668\uff09\u6765\u5b9e\u73b0 VPN \u7684 Server\uff08\u9700\u8981\u516c\u7f51 IP\uff09\uff0c\u53c2\u8003 TP-LINK\uff0c\u9700\u8981\u516c\u7f51 IP \u8fd9\u4e00\u6761\u5c31\u5f88\u5c40\u9650"),(0,l.yg)("li",{parentName:"ul"},"\u65b9\u6848\u4e8c\uff1aOpenVPN\uff1a\u8981\u6c42\u662f\u5b9e\u73b0\u591a\u79df\u6237\u9694\u79bb",(0,l.yg)("ul",{parentName:"li"},(0,l.yg)("li",{parentName:"ul"},"\u65b9\u6848\u4e8c A\uff1a\u91c7\u7528\u591a\u5b9e\u4f8b\u7684\u6a21\u5f0f\uff0c\u4e0d\u9002\u5408\u6700\u7ec8\u65b9\u6848\uff0c\u4e0d\u9002\u5408\u8fd0\u8425\u3001\u7ef4\u62a4"),(0,l.yg)("li",{parentName:"ul"},"\u65b9\u6848\u4e8c B\uff1a\u91c7\u7528\u5355\u5b9e\u4f8b\u7684\u6a21\u5f0f\uff0c\u4e0d\u9002\u5408\u6700\u7ec8\u65b9\u6848\uff0c\u53ef\u4ee5\u8fd0\u8425\u3001\u7ef4\u62a4"))),(0,l.yg)("li",{parentName:"ul"},"\u65b9\u6848\u4e09\uff1a\u57fa\u4e8e\u5f00\u6e90\u7684 P2P \u9879\u76ee\u6539\u9020\uff0c\u7814\u53d1\u5468\u671f\u957f\uff0c\u9700\u8981 C/C++\u4eba\u624d"),(0,l.yg)("li",{parentName:"ul"},"\u65b9\u6848\u56db\uff1a\u81ea\u7814 P2P\uff0c\u7814\u53d1\u5468\u671f\u957f\uff0c\u9700\u8981 C/C++\u4eba\u624d")))}s.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9343],{5680:(e,t,r)=>{r.d(t,{xA:()=>c,yg:()=>m});var n=r(6540);function l(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(l[r]=e[r]);return l}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(l[r]=e[r])}return l}var u=n.createContext({}),p=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},c=function(e){var t=p(e.components);return n.createElement(u.Provider,{value:t},e.children)},y="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,l=e.mdxType,a=e.originalType,u=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),y=p(r),d=l,m=y["".concat(u,".").concat(d)]||y[d]||s[d]||a;return r?n.createElement(m,o(o({ref:t},c),{},{components:r})):n.createElement(m,o({ref:t},c))}));function m(e,t){var r=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var a=r.length,o=new Array(a);o[0]=d;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[y]="string"==typeof e?e:l,o[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>o,default:()=>s,frontMatter:()=>a,metadata:()=>i,toc:()=>p});var n=r(8168),l=(r(6540),r(5680));const a={},o=void 0,i={unversionedId:"study/net/\u5f02\u5730\u7ec4\u7f51",id:"study/net/\u5f02\u5730\u7ec4\u7f51",title:"\u5f02\u5730\u7ec4\u7f51",description:"\u7f51\u7edc\u7c7b\u578b",source:"@site/docs/study/net/\u5f02\u5730\u7ec4\u7f51.md",sourceDirName:"study/net",slug:"/study/net/\u5f02\u5730\u7ec4\u7f51",permalink:"/docs/study/net/\u5f02\u5730\u7ec4\u7f51",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u5c40\u57df\u7f51IP\u5730\u5740\u8303\u56f4",permalink:"/docs/study/net/\u5c40\u57df\u7f51IP\u5730\u5740\u8303\u56f4"},next:{title:"\u6293\u5305\u5de5\u5177",permalink:"/docs/study/net/\u6293\u5305\u5de5\u5177"}},u={},p=[{value:"\u7f51\u7edc\u7c7b\u578b",id:"\u7f51\u7edc\u7c7b\u578b",level:3},{value:"\u5bf9\u7b49\u7f51\u7edc",id:"\u5bf9\u7b49\u7f51\u7edc",level:4},{value:"\u96c6\u6563\u7f51\u7edc",id:"\u96c6\u6563\u7f51\u7edc",level:4},{value:"\u7ade\u54c1\u5206\u6790",id:"\u7ade\u54c1\u5206\u6790",level:3},{value:"\u8d1d\u9510\u84b2\u516c\u82f1",id:"\u8d1d\u9510\u84b2\u516c\u82f1",level:4},{value:"\u6620\u7ff0\u901a",id:"\u6620\u7ff0\u901a",level:4},{value:"\u53ef\u9009\u65b9\u6848",id:"\u53ef\u9009\u65b9\u6848",level:3}],c={toc:p},y="wrapper";function s(e){let{components:t,...r}=e;return(0,l.yg)(y,(0,n.A)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,l.yg)("h3",{id:"\u7f51\u7edc\u7c7b\u578b"},"\u7f51\u7edc\u7c7b\u578b"),(0,l.yg)("h4",{id:"\u5bf9\u7b49\u7f51\u7edc"},"\u5bf9\u7b49\u7f51\u7edc"),(0,l.yg)("p",null,"\u7ec4\u7f51\u5185\u5404\u6210\u5458\u8eab\u4efd\u5bf9\u7b49\uff0c\u5747\u53ef\u5b9e\u73b0\u4e92\u8bbf\u3002"),(0,l.yg)("p",null,"\u5bf9\u7b49\u7f51\u7edc\uff08Peer-to-Peer\uff0c\u7b80\u79f0 P2P\uff09\u662f\u4e00\u79cd\u5206\u5e03\u5f0f\u7f51\u7edc\u7ed3\u6784\uff0c\u5b83\u5141\u8bb8\u7f51\u7edc\u4e2d\u7684\u8282\u70b9\uff08\u53c8\u79f0\u201c\u5bf9\u7b49\u4f53\u201d\u6216\u201c\u7528\u6237\u201d\uff09\u76f4\u63a5\u8fdb\u884c\u6570\u636e\u5171\u4eab\u548c\u901a\u4fe1\uff0c\u800c\u65e0\u9700\u4f9d\u8d56\u4e8e\u4e2d\u5fc3\u670d\u52a1\u5668\u3002\u5728\u5bf9\u7b49\u7f51\u7edc\u4e2d\uff0c\u6bcf\u4e2a\u8282\u70b9\u65e2\u662f\u5ba2\u6237\u7aef\u53c8\u662f\u670d\u52a1\u5668\uff0c\u56e0\u6b64\u7f51\u7edc\u8d44\u6e90\u548c\u8ba1\u7b97\u80fd\u529b\u662f\u5206\u6563\u7684\uff0c\u4e0d\u96c6\u4e2d\u5728\u7279\u5b9a\u7684\u670d\u52a1\u5668\u4e0a\u3002"),(0,l.yg)("h4",{id:"\u96c6\u6563\u7f51\u7edc"},"\u96c6\u6563\u7f51\u7edc"),(0,l.yg)("p",null,"\u7ec4\u7f51\u5185\u533a\u5206\u4e2d\u5fc3\u6210\u5458\u548c\u666e\u901a\u6210\u5458\uff0c\u666e\u901a\u6210\u5458\u53ea\u80fd\u8bbf\u95ee\u4e2d\u5fc3\u6210\u5458\uff0c\u666e\u901a\u6210\u5458\u4e4b\u95f4\u65e0\u6cd5\u4e92\u8bbf\u3002"),(0,l.yg)("h3",{id:"\u7ade\u54c1\u5206\u6790"},"\u7ade\u54c1\u5206\u6790"),(0,l.yg)("h4",{id:"\u8d1d\u9510\u84b2\u516c\u82f1"},"\u8d1d\u9510\u84b2\u516c\u82f1"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://pgy.oray.com/"},"https://pgy.oray.com/")," \u5f02\u5730\u7ec4\u7f51\u89e3\u51b3\u65b9\u6848")),(0,l.yg)("p",null,"p2p \u7684\u6280\u672f\u65b9\u6848"),(0,l.yg)("h4",{id:"\u6620\u7ff0\u901a"},"\u6620\u7ff0\u901a"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://ics.inhandiot.com/users/home"},"https://ics.inhandiot.com/users/home")," \u968f\u5fc3\u6240\u6b32\u7684\u4e91\u8fde\u63a5\u670d\u52a1\uff0c\u8fde\u63a5 IoT\uff0c\u8fde\u63a5\u672a\u6765")),(0,l.yg)("p",null,"OpenVPN \u7684\u6280\u672f\u65b9\u6848"),(0,l.yg)("h3",{id:"\u53ef\u9009\u65b9\u6848"},"\u53ef\u9009\u65b9\u6848"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u65b9\u6848\u4e00\uff1aSD-VPN\uff1a\u786c\u4ef6\uff08\u8def\u7531\u5668\uff09\u6765\u5b9e\u73b0 VPN \u7684 Server\uff08\u9700\u8981\u516c\u7f51 IP\uff09\uff0c\u53c2\u8003 TP-LINK\uff0c\u9700\u8981\u516c\u7f51 IP \u8fd9\u4e00\u6761\u5c31\u5f88\u5c40\u9650"),(0,l.yg)("li",{parentName:"ul"},"\u65b9\u6848\u4e8c\uff1aOpenVPN\uff1a\u8981\u6c42\u662f\u5b9e\u73b0\u591a\u79df\u6237\u9694\u79bb",(0,l.yg)("ul",{parentName:"li"},(0,l.yg)("li",{parentName:"ul"},"\u65b9\u6848\u4e8c A\uff1a\u91c7\u7528\u591a\u5b9e\u4f8b\u7684\u6a21\u5f0f\uff0c\u4e0d\u9002\u5408\u6700\u7ec8\u65b9\u6848\uff0c\u4e0d\u9002\u5408\u8fd0\u8425\u3001\u7ef4\u62a4"),(0,l.yg)("li",{parentName:"ul"},"\u65b9\u6848\u4e8c B\uff1a\u91c7\u7528\u5355\u5b9e\u4f8b\u7684\u6a21\u5f0f\uff0c\u4e0d\u9002\u5408\u6700\u7ec8\u65b9\u6848\uff0c\u53ef\u4ee5\u8fd0\u8425\u3001\u7ef4\u62a4"))),(0,l.yg)("li",{parentName:"ul"},"\u65b9\u6848\u4e09\uff1a\u57fa\u4e8e\u5f00\u6e90\u7684 P2P \u9879\u76ee\u6539\u9020\uff0c\u7814\u53d1\u5468\u671f\u957f\uff0c\u9700\u8981 C/C++\u4eba\u624d"),(0,l.yg)("li",{parentName:"ul"},"\u65b9\u6848\u56db\uff1a\u81ea\u7814 P2P\uff0c\u7814\u53d1\u5468\u671f\u957f\uff0c\u9700\u8981 C/C++\u4eba\u624d")))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/26739764.a8f7d37f.js b/assets/js/26739764.f52d7217.js similarity index 98% rename from assets/js/26739764.a8f7d37f.js rename to assets/js/26739764.f52d7217.js index bb3aea5cb..dcd3a5938 100644 --- a/assets/js/26739764.a8f7d37f.js +++ b/assets/js/26739764.f52d7217.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6819],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>d});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),u=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},s=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},l="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),l=u(r),y=a,d=l["".concat(p,".").concat(y)]||l[y]||m[y]||o;return r?n.createElement(d,c(c({ref:t},s),{},{components:r})):n.createElement(d,c({ref:t},s))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,c=new Array(o);c[0]=y;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[l]="string"==typeof e?e:a,c[1]=i;for(var u=2;u{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>c,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var n=r(8168),a=(r(6540),r(5680));const o={},c="mvnw",i={unversionedId:"study/back/maven/mvnw",id:"study/back/maven/mvnw",title:"mvnw",description:"- \u7b80\u4e66-mvnw \u4ecb\u7ecd",source:"@site/docs/study/back/maven/mvnw.md",sourceDirName:"study/back/maven",slug:"/study/back/maven/mvnw",permalink:"/docs/study/back/maven/mvnw",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"pom\u6587\u4ef6\u4e2d\u7684scope\u6807\u7b7e",permalink:"/docs/study/back/maven/pom\u6587\u4ef6\u4e2d\u7684scope\u6807\u7b7e"},next:{title:"\u5e38\u7528\u53c2\u6570",permalink:"/docs/study/back/maven/\u5e38\u7528\u53c2\u6570"}},p={},u=[],s={toc:u},l="wrapper";function m(e){let{components:t,...r}=e;return(0,a.yg)(l,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"mvnw"},"mvnw"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://www.jianshu.com/p/cea126e9ea58"},"\u7b80\u4e66-mvnw \u4ecb\u7ecd"))))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6819],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>d});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),u=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},s=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},l="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),l=u(r),y=a,d=l["".concat(p,".").concat(y)]||l[y]||m[y]||o;return r?n.createElement(d,c(c({ref:t},s),{},{components:r})):n.createElement(d,c({ref:t},s))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,c=new Array(o);c[0]=y;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[l]="string"==typeof e?e:a,c[1]=i;for(var u=2;u{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>c,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var n=r(8168),a=(r(6540),r(5680));const o={},c="mvnw",i={unversionedId:"study/back/maven/mvnw",id:"study/back/maven/mvnw",title:"mvnw",description:"- \u7b80\u4e66-mvnw \u4ecb\u7ecd",source:"@site/docs/study/back/maven/mvnw.md",sourceDirName:"study/back/maven",slug:"/study/back/maven/mvnw",permalink:"/docs/study/back/maven/mvnw",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"pom\u6587\u4ef6\u4e2d\u7684scope\u6807\u7b7e",permalink:"/docs/study/back/maven/pom\u6587\u4ef6\u4e2d\u7684scope\u6807\u7b7e"},next:{title:"\u5e38\u7528\u53c2\u6570",permalink:"/docs/study/back/maven/\u5e38\u7528\u53c2\u6570"}},p={},u=[],s={toc:u},l="wrapper";function m(e){let{components:t,...r}=e;return(0,a.yg)(l,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"mvnw"},"mvnw"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://www.jianshu.com/p/cea126e9ea58"},"\u7b80\u4e66-mvnw \u4ecb\u7ecd"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/281494d0.df284659.js b/assets/js/281494d0.778bf9a1.js similarity index 99% rename from assets/js/281494d0.df284659.js rename to assets/js/281494d0.778bf9a1.js index 1088d3a4d..1415ce211 100644 --- a/assets/js/281494d0.df284659.js +++ b/assets/js/281494d0.778bf9a1.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7145],{5680:(e,n,t)=>{t.d(n,{xA:()=>p,yg:()=>f});var r=t(6540);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var l=r.createContext({}),c=function(e){var n=r.useContext(l),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},p=function(e){var n=c(e.components);return r.createElement(l.Provider,{value:n},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},g=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,p=u(e,["components","mdxType","originalType","parentName"]),s=c(t),g=a,f=s["".concat(l,".").concat(g)]||s[g]||d[g]||o;return t?r.createElement(f,i(i({ref:n},p),{},{components:t})):r.createElement(f,i({ref:n},p))}));function f(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var o=t.length,i=new Array(o);i[0]=g;var u={};for(var l in n)hasOwnProperty.call(n,l)&&(u[l]=n[l]);u.originalType=e,u[s]="string"==typeof e?e:a,i[1]=u;for(var c=2;c{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>u,toc:()=>c});var r=t(8168),a=(t(6540),t(5680));const o={sidebar_position:3},i="\u7528\u6237\u7aef+\u7ba1\u7406\u7aef",u={unversionedId:"xuanxing/fe/\u7528\u6237\u7aef\u7ba1\u7406\u7aef",id:"xuanxing/fe/\u7528\u6237\u7aef\u7ba1\u7406\u7aef",title:"\u7528\u6237\u7aef+\u7ba1\u7406\u7aef",description:"\u5728\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u4e0a\uff0c\u7528\u6237\u7aef\u548c\u7ba1\u7406\u7aef\u90fd\u662f\u504f\u4e2d\u540e\u53f0\u7684\u7ba1\u7406\u7cfb\u7edf\uff0c\u6240\u4ee5\u4ed6\u4eec\u4e24\u4e2a\u524d\u7aef\u7684\u6280\u672f\u9009\u578b\u4e0a\u5e94\u8be5\u662f\u7edf\u4e00\u7684\uff1b",source:"@site/docs/xuanxing/fe/3-\u7528\u6237\u7aef\u7ba1\u7406\u7aef.md",sourceDirName:"xuanxing/fe",slug:"/xuanxing/fe/\u7528\u6237\u7aef\u7ba1\u7406\u7aef",permalink:"/docs/xuanxing/fe/\u7528\u6237\u7aef\u7ba1\u7406\u7aef",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"xuanxingSidebar",previous:{title:"\u5b98\u7f51",permalink:"/docs/xuanxing/fe/\u5b98\u7f51"},next:{title:"\u79fb\u52a8\u7aef",permalink:"/docs/xuanxing/fe/\u79fb\u52a8\u7aef"}},l={},c=[{value:"\u53ef\u9009\u65b9\u6848",id:"\u53ef\u9009\u65b9\u6848",level:3},{value:"\u6700\u7ec8\uff0c\u6280\u672f\u9009\u578b\u4e2a\u4eba\u63a8\u8350\uff1a",id:"\u6700\u7ec8\u6280\u672f\u9009\u578b\u4e2a\u4eba\u63a8\u8350",level:3}],p={toc:c},s="wrapper";function d(e){let{components:n,...t}=e;return(0,a.yg)(s,(0,r.A)({},p,t,{components:n,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"\u7528\u6237\u7aef\u7ba1\u7406\u7aef"},"\u7528\u6237\u7aef+\u7ba1\u7406\u7aef"),(0,a.yg)("p",null,"\u5728\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u4e0a\uff0c\u7528\u6237\u7aef\u548c\u7ba1\u7406\u7aef\u90fd\u662f\u504f\u4e2d\u540e\u53f0\u7684\u7ba1\u7406\u7cfb\u7edf\uff0c\u6240\u4ee5\u4ed6\u4eec\u4e24\u4e2a\u524d\u7aef\u7684\u6280\u672f\u9009\u578b\u4e0a\u5e94\u8be5\u662f\u7edf\u4e00\u7684\uff1b\n\u7528\u6237\u7aef\u662f\u7ed9\u7528\u6237\u4f7f\u7528\u7684\uff0c\u7ba1\u7406\u7aef\u662f\u7ed9\u516c\u53f8\u5185\u90e8\u4f7f\u7528\u7684\u3002"),(0,a.yg)("h3",{id:"\u53ef\u9009\u65b9\u6848"},"\u53ef\u9009\u65b9\u6848"),(0,a.yg)("p",null,"\u6700\u8fd1\u6bd4\u8f83\u706b\u7684\u6280\u672f\u5c31\u4e09\u4e2a\uff1aVue\u3001React\u3001Angular"),(0,a.yg)("p",null,"\u53d7\u4f17\u7a0b\u5ea6\u4e0a\uff0cVue\u56fd\u5185\u8f83\u591a\uff0cReact\u56fd\u5916\u8f83\u591a\uff0cAngular\u90fd\u4e0d\u591a\uff0c\u6240\u4ee5\uff0cAngular\u57fa\u672c\u53ef\u4ee5\u653e\u5f03\u4e86\u3002"),(0,a.yg)("p",null,"\u4ece\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u4ea7\u54c1\u67b6\u6784\u4e0a\u53ef\u4ee5\u770b\u51fa\uff0c\u529f\u80fd\u662f\u5f88\u591a\u5f88\u6742\u7684\uff0c\u800c\u4e14\u8fd8\u6709\u53ef\u80fd\u8bbe\u8ba1\u5230\u4e09\u65b9\u9875\u9762\u7684\u6574\u5408\u7b49\uff0c\n\u8fd9\u4e09\u4e2a\u6280\u672f\u4e0a\u90fd\u53ef\u4ee5\u80dc\u4efb\uff0c\u5dee\u522b\u4e0d\u5927\u3002"),(0,a.yg)("p",null,"\u56fd\u5185\u7684\u8bdd\uff0c\u9996\u63a8Vue\uff0c\u5176\u4ed6\u4e0d\u5206\u6790\u4e86\u3002"),(0,a.yg)("p",null,"\u9009Vue\u7684\u8bdd\uff0c\u6709\u51e0\u4e2a\u5907\u9009\u65b9\u6848\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"Vue2+element-ui\uff0c\u8fd9\u4e2a\u5728\u56fd\u5185\u7528\u7684\u662f\u771f\u591a\uff0c\u552f\u4e00\u7684\u52a3\u52bf\u5c31\u662f\u4ed6\u662fVue2\uff0c\u800c\u76ee\u524dVue\u662f\u4e3b\u6d41\uff1b"),(0,a.yg)("li",{parentName:"ul"},"Vue3+elementuiPlus\uff0c\u8fd9\u4e2a\u53d7\u4f17\u9762\u4e0d\u9519\uff0c\u52a3\u52bf\u5c31\u662felementuiPlus\u662f\u793e\u533a\u7ef4\u62a4\u7684\uff0c\u4e0d\u518d\u80cc\u9760\u997f\u4e86\u4e48\u4e86\uff1b"),(0,a.yg)("li",{parentName:"ul"},"Vue3+antd-vue\uff0c\u5982\u679c\u662freact\u53ef\u4ee5\u8003\u8651antd\uff0c\u4f46\u662f\u5982\u679c\u662fVue\uff0c\u5c31\u7b97\u4e86\u5427\uff0c\u800c\u4e14antd-vue\u548cantd\u4e0d\u662f\u4e00\u56de\u4e8b\uff1b"),(0,a.yg)("li",{parentName:"ul"},"Vue3+tdesign\uff0c\u80cc\u9760\u817e\u8baf\uff0cpro\u505a\u7684\u4e5f\u4e0d\u9519\uff1b"),(0,a.yg)("li",{parentName:"ul"},"Vue3+arco.design\uff0c\u80cc\u9760\u5b57\u8282\uff0cpro\u505a\u7684\u4e5f\u4e0d\u9519\uff1b")),(0,a.yg)("p",null,"\u57fa\u672c\u4e0a\uff0c\u5c31\u662ftdesign\u548carcodesign\u4e8c\u9009\u4e00\u4e86\uff0c\u4e2a\u4eba\u63a8\u8350arco.design\u3002"),(0,a.yg)("h3",{id:"\u6700\u7ec8\u6280\u672f\u9009\u578b\u4e2a\u4eba\u63a8\u8350"},"\u6700\u7ec8\uff0c\u6280\u672f\u9009\u578b\u4e2a\u4eba\u63a8\u8350\uff1a"),(0,a.yg)("p",null,"Vue3+arco-design-pro-vue"))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7145],{5680:(e,n,t)=>{t.d(n,{xA:()=>p,yg:()=>f});var r=t(6540);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var l=r.createContext({}),c=function(e){var n=r.useContext(l),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},p=function(e){var n=c(e.components);return r.createElement(l.Provider,{value:n},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},g=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,p=u(e,["components","mdxType","originalType","parentName"]),s=c(t),g=a,f=s["".concat(l,".").concat(g)]||s[g]||d[g]||o;return t?r.createElement(f,i(i({ref:n},p),{},{components:t})):r.createElement(f,i({ref:n},p))}));function f(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var o=t.length,i=new Array(o);i[0]=g;var u={};for(var l in n)hasOwnProperty.call(n,l)&&(u[l]=n[l]);u.originalType=e,u[s]="string"==typeof e?e:a,i[1]=u;for(var c=2;c{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>u,toc:()=>c});var r=t(8168),a=(t(6540),t(5680));const o={sidebar_position:3},i="\u7528\u6237\u7aef+\u7ba1\u7406\u7aef",u={unversionedId:"xuanxing/fe/\u7528\u6237\u7aef\u7ba1\u7406\u7aef",id:"xuanxing/fe/\u7528\u6237\u7aef\u7ba1\u7406\u7aef",title:"\u7528\u6237\u7aef+\u7ba1\u7406\u7aef",description:"\u5728\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u4e0a\uff0c\u7528\u6237\u7aef\u548c\u7ba1\u7406\u7aef\u90fd\u662f\u504f\u4e2d\u540e\u53f0\u7684\u7ba1\u7406\u7cfb\u7edf\uff0c\u6240\u4ee5\u4ed6\u4eec\u4e24\u4e2a\u524d\u7aef\u7684\u6280\u672f\u9009\u578b\u4e0a\u5e94\u8be5\u662f\u7edf\u4e00\u7684\uff1b",source:"@site/docs/xuanxing/fe/3-\u7528\u6237\u7aef\u7ba1\u7406\u7aef.md",sourceDirName:"xuanxing/fe",slug:"/xuanxing/fe/\u7528\u6237\u7aef\u7ba1\u7406\u7aef",permalink:"/docs/xuanxing/fe/\u7528\u6237\u7aef\u7ba1\u7406\u7aef",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"xuanxingSidebar",previous:{title:"\u5b98\u7f51",permalink:"/docs/xuanxing/fe/\u5b98\u7f51"},next:{title:"\u79fb\u52a8\u7aef",permalink:"/docs/xuanxing/fe/\u79fb\u52a8\u7aef"}},l={},c=[{value:"\u53ef\u9009\u65b9\u6848",id:"\u53ef\u9009\u65b9\u6848",level:3},{value:"\u6700\u7ec8\uff0c\u6280\u672f\u9009\u578b\u4e2a\u4eba\u63a8\u8350\uff1a",id:"\u6700\u7ec8\u6280\u672f\u9009\u578b\u4e2a\u4eba\u63a8\u8350",level:3}],p={toc:c},s="wrapper";function d(e){let{components:n,...t}=e;return(0,a.yg)(s,(0,r.A)({},p,t,{components:n,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"\u7528\u6237\u7aef\u7ba1\u7406\u7aef"},"\u7528\u6237\u7aef+\u7ba1\u7406\u7aef"),(0,a.yg)("p",null,"\u5728\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u4e0a\uff0c\u7528\u6237\u7aef\u548c\u7ba1\u7406\u7aef\u90fd\u662f\u504f\u4e2d\u540e\u53f0\u7684\u7ba1\u7406\u7cfb\u7edf\uff0c\u6240\u4ee5\u4ed6\u4eec\u4e24\u4e2a\u524d\u7aef\u7684\u6280\u672f\u9009\u578b\u4e0a\u5e94\u8be5\u662f\u7edf\u4e00\u7684\uff1b\n\u7528\u6237\u7aef\u662f\u7ed9\u7528\u6237\u4f7f\u7528\u7684\uff0c\u7ba1\u7406\u7aef\u662f\u7ed9\u516c\u53f8\u5185\u90e8\u4f7f\u7528\u7684\u3002"),(0,a.yg)("h3",{id:"\u53ef\u9009\u65b9\u6848"},"\u53ef\u9009\u65b9\u6848"),(0,a.yg)("p",null,"\u6700\u8fd1\u6bd4\u8f83\u706b\u7684\u6280\u672f\u5c31\u4e09\u4e2a\uff1aVue\u3001React\u3001Angular"),(0,a.yg)("p",null,"\u53d7\u4f17\u7a0b\u5ea6\u4e0a\uff0cVue\u56fd\u5185\u8f83\u591a\uff0cReact\u56fd\u5916\u8f83\u591a\uff0cAngular\u90fd\u4e0d\u591a\uff0c\u6240\u4ee5\uff0cAngular\u57fa\u672c\u53ef\u4ee5\u653e\u5f03\u4e86\u3002"),(0,a.yg)("p",null,"\u4ece\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u4ea7\u54c1\u67b6\u6784\u4e0a\u53ef\u4ee5\u770b\u51fa\uff0c\u529f\u80fd\u662f\u5f88\u591a\u5f88\u6742\u7684\uff0c\u800c\u4e14\u8fd8\u6709\u53ef\u80fd\u8bbe\u8ba1\u5230\u4e09\u65b9\u9875\u9762\u7684\u6574\u5408\u7b49\uff0c\n\u8fd9\u4e09\u4e2a\u6280\u672f\u4e0a\u90fd\u53ef\u4ee5\u80dc\u4efb\uff0c\u5dee\u522b\u4e0d\u5927\u3002"),(0,a.yg)("p",null,"\u56fd\u5185\u7684\u8bdd\uff0c\u9996\u63a8Vue\uff0c\u5176\u4ed6\u4e0d\u5206\u6790\u4e86\u3002"),(0,a.yg)("p",null,"\u9009Vue\u7684\u8bdd\uff0c\u6709\u51e0\u4e2a\u5907\u9009\u65b9\u6848\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"Vue2+element-ui\uff0c\u8fd9\u4e2a\u5728\u56fd\u5185\u7528\u7684\u662f\u771f\u591a\uff0c\u552f\u4e00\u7684\u52a3\u52bf\u5c31\u662f\u4ed6\u662fVue2\uff0c\u800c\u76ee\u524dVue\u662f\u4e3b\u6d41\uff1b"),(0,a.yg)("li",{parentName:"ul"},"Vue3+elementuiPlus\uff0c\u8fd9\u4e2a\u53d7\u4f17\u9762\u4e0d\u9519\uff0c\u52a3\u52bf\u5c31\u662felementuiPlus\u662f\u793e\u533a\u7ef4\u62a4\u7684\uff0c\u4e0d\u518d\u80cc\u9760\u997f\u4e86\u4e48\u4e86\uff1b"),(0,a.yg)("li",{parentName:"ul"},"Vue3+antd-vue\uff0c\u5982\u679c\u662freact\u53ef\u4ee5\u8003\u8651antd\uff0c\u4f46\u662f\u5982\u679c\u662fVue\uff0c\u5c31\u7b97\u4e86\u5427\uff0c\u800c\u4e14antd-vue\u548cantd\u4e0d\u662f\u4e00\u56de\u4e8b\uff1b"),(0,a.yg)("li",{parentName:"ul"},"Vue3+tdesign\uff0c\u80cc\u9760\u817e\u8baf\uff0cpro\u505a\u7684\u4e5f\u4e0d\u9519\uff1b"),(0,a.yg)("li",{parentName:"ul"},"Vue3+arco.design\uff0c\u80cc\u9760\u5b57\u8282\uff0cpro\u505a\u7684\u4e5f\u4e0d\u9519\uff1b")),(0,a.yg)("p",null,"\u57fa\u672c\u4e0a\uff0c\u5c31\u662ftdesign\u548carcodesign\u4e8c\u9009\u4e00\u4e86\uff0c\u4e2a\u4eba\u63a8\u8350arco.design\u3002"),(0,a.yg)("h3",{id:"\u6700\u7ec8\u6280\u672f\u9009\u578b\u4e2a\u4eba\u63a8\u8350"},"\u6700\u7ec8\uff0c\u6280\u672f\u9009\u578b\u4e2a\u4eba\u63a8\u8350\uff1a"),(0,a.yg)("p",null,"Vue3+arco-design-pro-vue"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/28f5562e.0c48756e.js b/assets/js/28f5562e.e0a044d9.js similarity index 99% rename from assets/js/28f5562e.0c48756e.js rename to assets/js/28f5562e.e0a044d9.js index 19cf24b2e..6d7024c4e 100644 --- a/assets/js/28f5562e.0c48756e.js +++ b/assets/js/28f5562e.e0a044d9.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2228],{5680:(e,t,n)=>{n.d(t,{xA:()=>u,yg:()=>g});var r=n(6540);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var o=r.createContext({}),c=function(e){var t=r.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},u=function(e){var t=c(e.components);return r.createElement(o.Provider,{value:t},e.children)},s="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,l=e.originalType,o=e.parentName,u=d(e,["components","mdxType","originalType","parentName"]),s=c(n),y=i,g=s["".concat(o,".").concat(y)]||s[y]||p[y]||l;return n?r.createElement(g,a(a({ref:t},u),{},{components:n})):r.createElement(g,a({ref:t},u))}));function g(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var l=n.length,a=new Array(l);a[0]=y;var d={};for(var o in t)hasOwnProperty.call(t,o)&&(d[o]=t[o]);d.originalType=e,d[s]="string"==typeof e?e:i,a[1]=d;for(var c=2;c{n.r(t),n.d(t,{assets:()=>o,contentTitle:()=>a,default:()=>p,frontMatter:()=>l,metadata:()=>d,toc:()=>c});var r=n(8168),i=(n(6540),n(5680));const l={},a=void 0,d={unversionedId:"study/think/\u67b6\u6784/\u5f02\u5730\u591a\u6d3b\u67b6\u6784",id:"study/think/\u67b6\u6784/\u5f02\u5730\u591a\u6d3b\u67b6\u6784",title:"\u5f02\u5730\u591a\u6d3b\u67b6\u6784",description:"\u5e72\u8d27\uff5c\u641e\u61c2\u300c\u5f02\u5730\u591a\u6d3b\u300d\uff0c\u770b\u8fd9\u7bc7\u5c31\u591f\u4e86",source:"@site/docs/study/think/\u67b6\u6784/\u5f02\u5730\u591a\u6d3b\u67b6\u6784.md",sourceDirName:"study/think/\u67b6\u6784",slug:"/study/think/\u67b6\u6784/\u5f02\u5730\u591a\u6d3b\u67b6\u6784",permalink:"/docs/study/think/\u67b6\u6784/\u5f02\u5730\u591a\u6d3b\u67b6\u6784",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"CAP\u7406\u8bba",permalink:"/docs/study/think/\u67b6\u6784/CAP\u7406\u8bba"},next:{title:"\u6280\u672f\u4e2d\u53f0",permalink:"/docs/study/think/\u67b6\u6784/\u6280\u672f\u4e2d\u53f0"}},o={},c=[{value:"\u5355\u673a\u67b6\u6784",id:"\u5355\u673a\u67b6\u6784",level:3},{value:"\u3010\u6ca1\u6709\u6570\u636e\u5907\u4efd\u3011",id:"\u6ca1\u6709\u6570\u636e\u5907\u4efd",level:4},{value:"\u3010\u6709\u6570\u636e\u5907\u4efd\u3001\u975e\u5b9e\u65f6\u3011",id:"\u6709\u6570\u636e\u5907\u4efd\u975e\u5b9e\u65f6",level:4},{value:"\u3010\u6709\u6570\u636e\u5907\u4efd\u3001\u5b9e\u65f6\u3001\u4e3b\u4ece\u6570\u636e\u5e93\u3001\u975e\u8bfb\u5199\u5206\u79bb\u3011",id:"\u6709\u6570\u636e\u5907\u4efd\u5b9e\u65f6\u4e3b\u4ece\u6570\u636e\u5e93\u975e\u8bfb\u5199\u5206\u79bb",level:4},{value:"\u3010\u6709\u6570\u636e\u5907\u4efd\u3001\u5b9e\u65f6\u3001\u4e3b\u4ece\u6570\u636e\u5e93\u3001\u8bfb\u5199\u5206\u79bb\u3011",id:"\u6709\u6570\u636e\u5907\u4efd\u5b9e\u65f6\u4e3b\u4ece\u6570\u636e\u5e93\u8bfb\u5199\u5206\u79bb",level:4},{value:"\u5206\u5e03\u5f0f\u67b6\u6784\u3010\u540c\u57ce\u4e00\u4e2a\u673a\u623f\u3011",id:"\u5206\u5e03\u5f0f\u67b6\u6784\u540c\u57ce\u4e00\u4e2a\u673a\u623f",level:3},{value:"\u3010\u6ca1\u6709\u6570\u636e\u5907\u4efd\u3011",id:"\u6ca1\u6709\u6570\u636e\u5907\u4efd-1",level:4},{value:"\u3010\u6709\u6570\u636e\u5907\u4efd\u3001\u975e\u5b9e\u65f6\u3011",id:"\u6709\u6570\u636e\u5907\u4efd\u975e\u5b9e\u65f6-1",level:4},{value:"\u3010\u6709\u6570\u636e\u5907\u4efd\u3001\u5b9e\u65f6\u3001\u4e3b\u4ece\u6570\u636e\u5e93\u3001\u975e\u8bfb\u5199\u5206\u79bb\u3011",id:"\u6709\u6570\u636e\u5907\u4efd\u5b9e\u65f6\u4e3b\u4ece\u6570\u636e\u5e93\u975e\u8bfb\u5199\u5206\u79bb-1",level:4},{value:"\u3010\u6709\u6570\u636e\u5907\u4efd\u3001\u5b9e\u65f6\u3001\u4e3b\u4ece\u6570\u636e\u5e93\u3001\u8bfb\u5199\u5206\u79bb\u3011",id:"\u6709\u6570\u636e\u5907\u4efd\u5b9e\u65f6\u4e3b\u4ece\u6570\u636e\u5e93\u8bfb\u5199\u5206\u79bb-1",level:4},{value:"\u5206\u5e03\u5f0f\u67b6\u6784\u3010\u540c\u57ce2\u4e2a\u673a\u623f\u3011",id:"\u5206\u5e03\u5f0f\u67b6\u6784\u540c\u57ce2\u4e2a\u673a\u623f",level:3},{value:"\u3010\u51b7\u5907\u3011",id:"\u51b7\u5907",level:4},{value:"\u3010\u70ed\u5907\u3011",id:"\u70ed\u5907",level:4},{value:"\u3010\u540c\u57ce\u53cc\u6d3b\u3011",id:"\u540c\u57ce\u53cc\u6d3b",level:4},{value:"\u5206\u5e03\u5f0f\u67b6\u6784\u3010\u4e24\u57ce3\u4e2a\u673a\u623f\u3011",id:"\u5206\u5e03\u5f0f\u67b6\u6784\u4e24\u57ce3\u4e2a\u673a\u623f",level:3},{value:"\u3010\u4e24\u5730\u4e09\u4e2d\u5fc3\u3001\u707e\u5907\u3011",id:"\u4e24\u5730\u4e09\u4e2d\u5fc3\u707e\u5907",level:4},{value:"\u5206\u5e03\u5f0f\u67b6\u6784\u3010\u4f2a\u5f02\u5730\u53cc\u6d3b\u3011",id:"\u5206\u5e03\u5f0f\u67b6\u6784\u4f2a\u5f02\u5730\u53cc\u6d3b",level:3},{value:"\u5206\u5e03\u5f0f\u67b6\u6784\u3010\u5f02\u5730\u53cc\u6d3b\u3011",id:"\u5206\u5e03\u5f0f\u67b6\u6784\u5f02\u5730\u53cc\u6d3b",level:3},{value:"\u5206\u5e03\u5f0f\u67b6\u6784\u3010\u5f02\u5730\u591a\u6d3b\u3011",id:"\u5206\u5e03\u5f0f\u67b6\u6784\u5f02\u5730\u591a\u6d3b",level:3}],u={toc:c},s="wrapper";function p(e){let{components:t,...l}=e;return(0,i.yg)(s,(0,r.A)({},u,l,{components:t,mdxType:"MDXLayout"}),(0,i.yg)("p",null,(0,i.yg)("a",{parentName:"p",href:"https://baijiahao.baidu.com/s?id=1714292603624190772&wfr=spider&for=pc"},"\u5e72\u8d27\uff5c\u641e\u61c2\u300c\u5f02\u5730\u591a\u6d3b\u300d\uff0c\u770b\u8fd9\u7bc7\u5c31\u591f\u4e86")),(0,i.yg)("p",null,(0,i.yg)("img",{alt:"image.png",src:n(1959).A,width:"376",height:"481"})),(0,i.yg)("h3",{id:"\u5355\u673a\u67b6\u6784"},"\u5355\u673a\u67b6\u6784"),(0,i.yg)("h4",{id:"\u6ca1\u6709\u6570\u636e\u5907\u4efd"},"\u3010\u6ca1\u6709\u6570\u636e\u5907\u4efd\u3011"),(0,i.yg)("h4",{id:"\u6709\u6570\u636e\u5907\u4efd\u975e\u5b9e\u65f6"},"\u3010\u6709\u6570\u636e\u5907\u4efd\u3001\u975e\u5b9e\u65f6\u3011"),(0,i.yg)("h4",{id:"\u6709\u6570\u636e\u5907\u4efd\u5b9e\u65f6\u4e3b\u4ece\u6570\u636e\u5e93\u975e\u8bfb\u5199\u5206\u79bb"},"\u3010\u6709\u6570\u636e\u5907\u4efd\u3001\u5b9e\u65f6\u3001\u4e3b\u4ece\u6570\u636e\u5e93\u3001\u975e\u8bfb\u5199\u5206\u79bb\u3011"),(0,i.yg)("h4",{id:"\u6709\u6570\u636e\u5907\u4efd\u5b9e\u65f6\u4e3b\u4ece\u6570\u636e\u5e93\u8bfb\u5199\u5206\u79bb"},"\u3010\u6709\u6570\u636e\u5907\u4efd\u3001\u5b9e\u65f6\u3001\u4e3b\u4ece\u6570\u636e\u5e93\u3001\u8bfb\u5199\u5206\u79bb\u3011"),(0,i.yg)("h3",{id:"\u5206\u5e03\u5f0f\u67b6\u6784\u540c\u57ce\u4e00\u4e2a\u673a\u623f"},"\u5206\u5e03\u5f0f\u67b6\u6784\u3010\u540c\u57ce\u4e00\u4e2a\u673a\u623f\u3011"),(0,i.yg)("h4",{id:"\u6ca1\u6709\u6570\u636e\u5907\u4efd-1"},"\u3010\u6ca1\u6709\u6570\u636e\u5907\u4efd\u3011"),(0,i.yg)("h4",{id:"\u6709\u6570\u636e\u5907\u4efd\u975e\u5b9e\u65f6-1"},"\u3010\u6709\u6570\u636e\u5907\u4efd\u3001\u975e\u5b9e\u65f6\u3011"),(0,i.yg)("h4",{id:"\u6709\u6570\u636e\u5907\u4efd\u5b9e\u65f6\u4e3b\u4ece\u6570\u636e\u5e93\u975e\u8bfb\u5199\u5206\u79bb-1"},"\u3010\u6709\u6570\u636e\u5907\u4efd\u3001\u5b9e\u65f6\u3001\u4e3b\u4ece\u6570\u636e\u5e93\u3001\u975e\u8bfb\u5199\u5206\u79bb\u3011"),(0,i.yg)("h4",{id:"\u6709\u6570\u636e\u5907\u4efd\u5b9e\u65f6\u4e3b\u4ece\u6570\u636e\u5e93\u8bfb\u5199\u5206\u79bb-1"},"\u3010\u6709\u6570\u636e\u5907\u4efd\u3001\u5b9e\u65f6\u3001\u4e3b\u4ece\u6570\u636e\u5e93\u3001\u8bfb\u5199\u5206\u79bb\u3011"),(0,i.yg)("h3",{id:"\u5206\u5e03\u5f0f\u67b6\u6784\u540c\u57ce2\u4e2a\u673a\u623f"},"\u5206\u5e03\u5f0f\u67b6\u6784\u3010\u540c\u57ce2\u4e2a\u673a\u623f\u3011"),(0,i.yg)("h4",{id:"\u51b7\u5907"},"\u3010\u51b7\u5907\u3011"),(0,i.yg)("h4",{id:"\u70ed\u5907"},"\u3010\u70ed\u5907\u3011"),(0,i.yg)("h4",{id:"\u540c\u57ce\u53cc\u6d3b"},"\u3010\u540c\u57ce\u53cc\u6d3b\u3011"),(0,i.yg)("h3",{id:"\u5206\u5e03\u5f0f\u67b6\u6784\u4e24\u57ce3\u4e2a\u673a\u623f"},"\u5206\u5e03\u5f0f\u67b6\u6784\u3010\u4e24\u57ce3\u4e2a\u673a\u623f\u3011"),(0,i.yg)("p",null,"\u5728\u3010\u540c\u57ce\u53cc\u6d3b\u3011\u7684\u57fa\u7840\u4e0a\u65b0\u589e\u4e86\u4e00\u4e2a\u5f02\u5730\uff08\u975e\u4e00\u4e2a\u57ce\u5e02\uff09\u673a\u623f\u3002"),(0,i.yg)("h4",{id:"\u4e24\u5730\u4e09\u4e2d\u5fc3\u707e\u5907"},"\u3010\u4e24\u5730\u4e09\u4e2d\u5fc3\u3001\u707e\u5907\u3011"),(0,i.yg)("h3",{id:"\u5206\u5e03\u5f0f\u67b6\u6784\u4f2a\u5f02\u5730\u53cc\u6d3b"},"\u5206\u5e03\u5f0f\u67b6\u6784\u3010\u4f2a\u5f02\u5730\u53cc\u6d3b\u3011"),(0,i.yg)("h3",{id:"\u5206\u5e03\u5f0f\u67b6\u6784\u5f02\u5730\u53cc\u6d3b"},"\u5206\u5e03\u5f0f\u67b6\u6784\u3010\u5f02\u5730\u53cc\u6d3b\u3011"),(0,i.yg)("p",null,"\u8def\u7531\u5c42\u7684\u89c4\u5219\u600e\u4e48\u5b9a\uff0c\u4e00\u822c\u662f\u6839\u636e\u4e1a\u52a1\u7c7b\u578b\u3001\u54c8\u5e0c\u7b97\u6cd5(\u4f8b\u5982\u7528\u6237ID)\u3001\u5730\u7406\u4f4d\u7f6e\u7b49"),(0,i.yg)("p",null,(0,i.yg)("img",{alt:"image.png",src:n(4924).A,width:"640",height:"927"})),(0,i.yg)("h3",{id:"\u5206\u5e03\u5f0f\u67b6\u6784\u5f02\u5730\u591a\u6d3b"},"\u5206\u5e03\u5f0f\u67b6\u6784\u3010\u5f02\u5730\u591a\u6d3b\u3011"),(0,i.yg)("p",null,"\u3010\u7f51\u72b6\u3011"),(0,i.yg)("p",null,(0,i.yg)("img",{alt:"image.png",src:n(6549).A,width:"640",height:"668"})),(0,i.yg)("p",null,"\u3010\u661f\u72b6\u3011"),(0,i.yg)("p",null,(0,i.yg)("img",{alt:"image.png",src:n(4490).A,width:"640",height:"668"})))}p.isMDXComponent=!0},1959:(e,t,n)=>{n.d(t,{A:()=>r});const r=n.p+"assets/images/y1-2ea87099668e063c3e7c2ff629fb6343.png"},4924:(e,t,n)=>{n.d(t,{A:()=>r});const r=n.p+"assets/images/y2-6d288cb5097c590fd6e5f87b0bc7d444.png"},6549:(e,t,n)=>{n.d(t,{A:()=>r});const r=n.p+"assets/images/y3-c6ae8c195d1db0dbd128a468ead957ec.png"},4490:(e,t,n)=>{n.d(t,{A:()=>r});const r=n.p+"assets/images/y4-664326e1d0537a58fb2221d2aa95bf62.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2228],{5680:(e,t,n)=>{n.d(t,{xA:()=>u,yg:()=>g});var r=n(6540);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var o=r.createContext({}),c=function(e){var t=r.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},u=function(e){var t=c(e.components);return r.createElement(o.Provider,{value:t},e.children)},s="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,l=e.originalType,o=e.parentName,u=d(e,["components","mdxType","originalType","parentName"]),s=c(n),y=i,g=s["".concat(o,".").concat(y)]||s[y]||p[y]||l;return n?r.createElement(g,a(a({ref:t},u),{},{components:n})):r.createElement(g,a({ref:t},u))}));function g(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var l=n.length,a=new Array(l);a[0]=y;var d={};for(var o in t)hasOwnProperty.call(t,o)&&(d[o]=t[o]);d.originalType=e,d[s]="string"==typeof e?e:i,a[1]=d;for(var c=2;c{n.r(t),n.d(t,{assets:()=>o,contentTitle:()=>a,default:()=>p,frontMatter:()=>l,metadata:()=>d,toc:()=>c});var r=n(8168),i=(n(6540),n(5680));const l={},a=void 0,d={unversionedId:"study/think/\u67b6\u6784/\u5f02\u5730\u591a\u6d3b\u67b6\u6784",id:"study/think/\u67b6\u6784/\u5f02\u5730\u591a\u6d3b\u67b6\u6784",title:"\u5f02\u5730\u591a\u6d3b\u67b6\u6784",description:"\u5e72\u8d27\uff5c\u641e\u61c2\u300c\u5f02\u5730\u591a\u6d3b\u300d\uff0c\u770b\u8fd9\u7bc7\u5c31\u591f\u4e86",source:"@site/docs/study/think/\u67b6\u6784/\u5f02\u5730\u591a\u6d3b\u67b6\u6784.md",sourceDirName:"study/think/\u67b6\u6784",slug:"/study/think/\u67b6\u6784/\u5f02\u5730\u591a\u6d3b\u67b6\u6784",permalink:"/docs/study/think/\u67b6\u6784/\u5f02\u5730\u591a\u6d3b\u67b6\u6784",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"CAP\u7406\u8bba",permalink:"/docs/study/think/\u67b6\u6784/CAP\u7406\u8bba"},next:{title:"\u6280\u672f\u4e2d\u53f0",permalink:"/docs/study/think/\u67b6\u6784/\u6280\u672f\u4e2d\u53f0"}},o={},c=[{value:"\u5355\u673a\u67b6\u6784",id:"\u5355\u673a\u67b6\u6784",level:3},{value:"\u3010\u6ca1\u6709\u6570\u636e\u5907\u4efd\u3011",id:"\u6ca1\u6709\u6570\u636e\u5907\u4efd",level:4},{value:"\u3010\u6709\u6570\u636e\u5907\u4efd\u3001\u975e\u5b9e\u65f6\u3011",id:"\u6709\u6570\u636e\u5907\u4efd\u975e\u5b9e\u65f6",level:4},{value:"\u3010\u6709\u6570\u636e\u5907\u4efd\u3001\u5b9e\u65f6\u3001\u4e3b\u4ece\u6570\u636e\u5e93\u3001\u975e\u8bfb\u5199\u5206\u79bb\u3011",id:"\u6709\u6570\u636e\u5907\u4efd\u5b9e\u65f6\u4e3b\u4ece\u6570\u636e\u5e93\u975e\u8bfb\u5199\u5206\u79bb",level:4},{value:"\u3010\u6709\u6570\u636e\u5907\u4efd\u3001\u5b9e\u65f6\u3001\u4e3b\u4ece\u6570\u636e\u5e93\u3001\u8bfb\u5199\u5206\u79bb\u3011",id:"\u6709\u6570\u636e\u5907\u4efd\u5b9e\u65f6\u4e3b\u4ece\u6570\u636e\u5e93\u8bfb\u5199\u5206\u79bb",level:4},{value:"\u5206\u5e03\u5f0f\u67b6\u6784\u3010\u540c\u57ce\u4e00\u4e2a\u673a\u623f\u3011",id:"\u5206\u5e03\u5f0f\u67b6\u6784\u540c\u57ce\u4e00\u4e2a\u673a\u623f",level:3},{value:"\u3010\u6ca1\u6709\u6570\u636e\u5907\u4efd\u3011",id:"\u6ca1\u6709\u6570\u636e\u5907\u4efd-1",level:4},{value:"\u3010\u6709\u6570\u636e\u5907\u4efd\u3001\u975e\u5b9e\u65f6\u3011",id:"\u6709\u6570\u636e\u5907\u4efd\u975e\u5b9e\u65f6-1",level:4},{value:"\u3010\u6709\u6570\u636e\u5907\u4efd\u3001\u5b9e\u65f6\u3001\u4e3b\u4ece\u6570\u636e\u5e93\u3001\u975e\u8bfb\u5199\u5206\u79bb\u3011",id:"\u6709\u6570\u636e\u5907\u4efd\u5b9e\u65f6\u4e3b\u4ece\u6570\u636e\u5e93\u975e\u8bfb\u5199\u5206\u79bb-1",level:4},{value:"\u3010\u6709\u6570\u636e\u5907\u4efd\u3001\u5b9e\u65f6\u3001\u4e3b\u4ece\u6570\u636e\u5e93\u3001\u8bfb\u5199\u5206\u79bb\u3011",id:"\u6709\u6570\u636e\u5907\u4efd\u5b9e\u65f6\u4e3b\u4ece\u6570\u636e\u5e93\u8bfb\u5199\u5206\u79bb-1",level:4},{value:"\u5206\u5e03\u5f0f\u67b6\u6784\u3010\u540c\u57ce2\u4e2a\u673a\u623f\u3011",id:"\u5206\u5e03\u5f0f\u67b6\u6784\u540c\u57ce2\u4e2a\u673a\u623f",level:3},{value:"\u3010\u51b7\u5907\u3011",id:"\u51b7\u5907",level:4},{value:"\u3010\u70ed\u5907\u3011",id:"\u70ed\u5907",level:4},{value:"\u3010\u540c\u57ce\u53cc\u6d3b\u3011",id:"\u540c\u57ce\u53cc\u6d3b",level:4},{value:"\u5206\u5e03\u5f0f\u67b6\u6784\u3010\u4e24\u57ce3\u4e2a\u673a\u623f\u3011",id:"\u5206\u5e03\u5f0f\u67b6\u6784\u4e24\u57ce3\u4e2a\u673a\u623f",level:3},{value:"\u3010\u4e24\u5730\u4e09\u4e2d\u5fc3\u3001\u707e\u5907\u3011",id:"\u4e24\u5730\u4e09\u4e2d\u5fc3\u707e\u5907",level:4},{value:"\u5206\u5e03\u5f0f\u67b6\u6784\u3010\u4f2a\u5f02\u5730\u53cc\u6d3b\u3011",id:"\u5206\u5e03\u5f0f\u67b6\u6784\u4f2a\u5f02\u5730\u53cc\u6d3b",level:3},{value:"\u5206\u5e03\u5f0f\u67b6\u6784\u3010\u5f02\u5730\u53cc\u6d3b\u3011",id:"\u5206\u5e03\u5f0f\u67b6\u6784\u5f02\u5730\u53cc\u6d3b",level:3},{value:"\u5206\u5e03\u5f0f\u67b6\u6784\u3010\u5f02\u5730\u591a\u6d3b\u3011",id:"\u5206\u5e03\u5f0f\u67b6\u6784\u5f02\u5730\u591a\u6d3b",level:3}],u={toc:c},s="wrapper";function p(e){let{components:t,...l}=e;return(0,i.yg)(s,(0,r.A)({},u,l,{components:t,mdxType:"MDXLayout"}),(0,i.yg)("p",null,(0,i.yg)("a",{parentName:"p",href:"https://baijiahao.baidu.com/s?id=1714292603624190772&wfr=spider&for=pc"},"\u5e72\u8d27\uff5c\u641e\u61c2\u300c\u5f02\u5730\u591a\u6d3b\u300d\uff0c\u770b\u8fd9\u7bc7\u5c31\u591f\u4e86")),(0,i.yg)("p",null,(0,i.yg)("img",{alt:"image.png",src:n(1959).A,width:"376",height:"481"})),(0,i.yg)("h3",{id:"\u5355\u673a\u67b6\u6784"},"\u5355\u673a\u67b6\u6784"),(0,i.yg)("h4",{id:"\u6ca1\u6709\u6570\u636e\u5907\u4efd"},"\u3010\u6ca1\u6709\u6570\u636e\u5907\u4efd\u3011"),(0,i.yg)("h4",{id:"\u6709\u6570\u636e\u5907\u4efd\u975e\u5b9e\u65f6"},"\u3010\u6709\u6570\u636e\u5907\u4efd\u3001\u975e\u5b9e\u65f6\u3011"),(0,i.yg)("h4",{id:"\u6709\u6570\u636e\u5907\u4efd\u5b9e\u65f6\u4e3b\u4ece\u6570\u636e\u5e93\u975e\u8bfb\u5199\u5206\u79bb"},"\u3010\u6709\u6570\u636e\u5907\u4efd\u3001\u5b9e\u65f6\u3001\u4e3b\u4ece\u6570\u636e\u5e93\u3001\u975e\u8bfb\u5199\u5206\u79bb\u3011"),(0,i.yg)("h4",{id:"\u6709\u6570\u636e\u5907\u4efd\u5b9e\u65f6\u4e3b\u4ece\u6570\u636e\u5e93\u8bfb\u5199\u5206\u79bb"},"\u3010\u6709\u6570\u636e\u5907\u4efd\u3001\u5b9e\u65f6\u3001\u4e3b\u4ece\u6570\u636e\u5e93\u3001\u8bfb\u5199\u5206\u79bb\u3011"),(0,i.yg)("h3",{id:"\u5206\u5e03\u5f0f\u67b6\u6784\u540c\u57ce\u4e00\u4e2a\u673a\u623f"},"\u5206\u5e03\u5f0f\u67b6\u6784\u3010\u540c\u57ce\u4e00\u4e2a\u673a\u623f\u3011"),(0,i.yg)("h4",{id:"\u6ca1\u6709\u6570\u636e\u5907\u4efd-1"},"\u3010\u6ca1\u6709\u6570\u636e\u5907\u4efd\u3011"),(0,i.yg)("h4",{id:"\u6709\u6570\u636e\u5907\u4efd\u975e\u5b9e\u65f6-1"},"\u3010\u6709\u6570\u636e\u5907\u4efd\u3001\u975e\u5b9e\u65f6\u3011"),(0,i.yg)("h4",{id:"\u6709\u6570\u636e\u5907\u4efd\u5b9e\u65f6\u4e3b\u4ece\u6570\u636e\u5e93\u975e\u8bfb\u5199\u5206\u79bb-1"},"\u3010\u6709\u6570\u636e\u5907\u4efd\u3001\u5b9e\u65f6\u3001\u4e3b\u4ece\u6570\u636e\u5e93\u3001\u975e\u8bfb\u5199\u5206\u79bb\u3011"),(0,i.yg)("h4",{id:"\u6709\u6570\u636e\u5907\u4efd\u5b9e\u65f6\u4e3b\u4ece\u6570\u636e\u5e93\u8bfb\u5199\u5206\u79bb-1"},"\u3010\u6709\u6570\u636e\u5907\u4efd\u3001\u5b9e\u65f6\u3001\u4e3b\u4ece\u6570\u636e\u5e93\u3001\u8bfb\u5199\u5206\u79bb\u3011"),(0,i.yg)("h3",{id:"\u5206\u5e03\u5f0f\u67b6\u6784\u540c\u57ce2\u4e2a\u673a\u623f"},"\u5206\u5e03\u5f0f\u67b6\u6784\u3010\u540c\u57ce2\u4e2a\u673a\u623f\u3011"),(0,i.yg)("h4",{id:"\u51b7\u5907"},"\u3010\u51b7\u5907\u3011"),(0,i.yg)("h4",{id:"\u70ed\u5907"},"\u3010\u70ed\u5907\u3011"),(0,i.yg)("h4",{id:"\u540c\u57ce\u53cc\u6d3b"},"\u3010\u540c\u57ce\u53cc\u6d3b\u3011"),(0,i.yg)("h3",{id:"\u5206\u5e03\u5f0f\u67b6\u6784\u4e24\u57ce3\u4e2a\u673a\u623f"},"\u5206\u5e03\u5f0f\u67b6\u6784\u3010\u4e24\u57ce3\u4e2a\u673a\u623f\u3011"),(0,i.yg)("p",null,"\u5728\u3010\u540c\u57ce\u53cc\u6d3b\u3011\u7684\u57fa\u7840\u4e0a\u65b0\u589e\u4e86\u4e00\u4e2a\u5f02\u5730\uff08\u975e\u4e00\u4e2a\u57ce\u5e02\uff09\u673a\u623f\u3002"),(0,i.yg)("h4",{id:"\u4e24\u5730\u4e09\u4e2d\u5fc3\u707e\u5907"},"\u3010\u4e24\u5730\u4e09\u4e2d\u5fc3\u3001\u707e\u5907\u3011"),(0,i.yg)("h3",{id:"\u5206\u5e03\u5f0f\u67b6\u6784\u4f2a\u5f02\u5730\u53cc\u6d3b"},"\u5206\u5e03\u5f0f\u67b6\u6784\u3010\u4f2a\u5f02\u5730\u53cc\u6d3b\u3011"),(0,i.yg)("h3",{id:"\u5206\u5e03\u5f0f\u67b6\u6784\u5f02\u5730\u53cc\u6d3b"},"\u5206\u5e03\u5f0f\u67b6\u6784\u3010\u5f02\u5730\u53cc\u6d3b\u3011"),(0,i.yg)("p",null,"\u8def\u7531\u5c42\u7684\u89c4\u5219\u600e\u4e48\u5b9a\uff0c\u4e00\u822c\u662f\u6839\u636e\u4e1a\u52a1\u7c7b\u578b\u3001\u54c8\u5e0c\u7b97\u6cd5(\u4f8b\u5982\u7528\u6237ID)\u3001\u5730\u7406\u4f4d\u7f6e\u7b49"),(0,i.yg)("p",null,(0,i.yg)("img",{alt:"image.png",src:n(4924).A,width:"640",height:"927"})),(0,i.yg)("h3",{id:"\u5206\u5e03\u5f0f\u67b6\u6784\u5f02\u5730\u591a\u6d3b"},"\u5206\u5e03\u5f0f\u67b6\u6784\u3010\u5f02\u5730\u591a\u6d3b\u3011"),(0,i.yg)("p",null,"\u3010\u7f51\u72b6\u3011"),(0,i.yg)("p",null,(0,i.yg)("img",{alt:"image.png",src:n(6549).A,width:"640",height:"668"})),(0,i.yg)("p",null,"\u3010\u661f\u72b6\u3011"),(0,i.yg)("p",null,(0,i.yg)("img",{alt:"image.png",src:n(4490).A,width:"640",height:"668"})))}p.isMDXComponent=!0},1959:(e,t,n)=>{n.d(t,{A:()=>r});const r=n.p+"assets/images/y1-2ea87099668e063c3e7c2ff629fb6343.png"},4924:(e,t,n)=>{n.d(t,{A:()=>r});const r=n.p+"assets/images/y2-6d288cb5097c590fd6e5f87b0bc7d444.png"},6549:(e,t,n)=>{n.d(t,{A:()=>r});const r=n.p+"assets/images/y3-c6ae8c195d1db0dbd128a468ead957ec.png"},4490:(e,t,n)=>{n.d(t,{A:()=>r});const r=n.p+"assets/images/y4-664326e1d0537a58fb2221d2aa95bf62.png"}}]); \ No newline at end of file diff --git a/assets/js/29ac29a0.5746f86d.js b/assets/js/29ac29a0.6f0cb8ce.js similarity index 98% rename from assets/js/29ac29a0.5746f86d.js rename to assets/js/29ac29a0.6f0cb8ce.js index 946255f19..293502c3f 100644 --- a/assets/js/29ac29a0.5746f86d.js +++ b/assets/js/29ac29a0.6f0cb8ce.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9136],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>y});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),l=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},p=function(e){var t=l(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=l(r),f=a,y=u["".concat(s,".").concat(f)]||u[f]||d[f]||o;return r?n.createElement(y,c(c({ref:t},p),{},{components:r})):n.createElement(y,c({ref:t},p))}));function y(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,c=new Array(o);c[0]=f;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[u]="string"==typeof e?e:a,c[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>l});var n=r(8168),a=(r(6540),r(5680));const o={},c="Save Action",i={unversionedId:"study/back/IEDA/save-action",id:"study/back/IEDA/save-action",title:"Save Action",description:"Save Action",source:"@site/docs/study/back/IEDA/save-action.md",sourceDirName:"study/back/IEDA",slug:"/study/back/IEDA/save-action",permalink:"/docs/study/back/IEDA/save-action",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"File and Code Templates",permalink:"/docs/study/back/IEDA/fileandcodetemplates"},next:{title:"POST\u7f16\u7801\u683c\u5f0f",permalink:"/docs/study/back/POST\u7f16\u7801\u683c\u5f0f"}},s={},l=[],p={toc:l},u="wrapper";function d(e){let{components:t,...o}=e;return(0,a.yg)(u,(0,n.A)({},p,o,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"save-action"},"Save Action"),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"Save Action",src:r(3068).A,width:"2070",height:"1492"})))}d.isMDXComponent=!0},3068:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/save-5f99d9334d83a264c231a7e154f35cfe.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9136],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>y});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),l=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},p=function(e){var t=l(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=l(r),f=a,y=u["".concat(s,".").concat(f)]||u[f]||d[f]||o;return r?n.createElement(y,c(c({ref:t},p),{},{components:r})):n.createElement(y,c({ref:t},p))}));function y(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,c=new Array(o);c[0]=f;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[u]="string"==typeof e?e:a,c[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>l});var n=r(8168),a=(r(6540),r(5680));const o={},c="Save Action",i={unversionedId:"study/back/IEDA/save-action",id:"study/back/IEDA/save-action",title:"Save Action",description:"Save Action",source:"@site/docs/study/back/IEDA/save-action.md",sourceDirName:"study/back/IEDA",slug:"/study/back/IEDA/save-action",permalink:"/docs/study/back/IEDA/save-action",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"File and Code Templates",permalink:"/docs/study/back/IEDA/fileandcodetemplates"},next:{title:"POST\u7f16\u7801\u683c\u5f0f",permalink:"/docs/study/back/POST\u7f16\u7801\u683c\u5f0f"}},s={},l=[],p={toc:l},u="wrapper";function d(e){let{components:t,...o}=e;return(0,a.yg)(u,(0,n.A)({},p,o,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"save-action"},"Save Action"),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"Save Action",src:r(3068).A,width:"2070",height:"1492"})))}d.isMDXComponent=!0},3068:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/save-5f99d9334d83a264c231a7e154f35cfe.png"}}]); \ No newline at end of file diff --git a/assets/js/2a0a68ae.7dd79c0b.js b/assets/js/2a0a68ae.0cbc192d.js similarity index 98% rename from assets/js/2a0a68ae.7dd79c0b.js rename to assets/js/2a0a68ae.0cbc192d.js index 32455965c..56f330eda 100644 --- a/assets/js/2a0a68ae.7dd79c0b.js +++ b/assets/js/2a0a68ae.0cbc192d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2613],{5680:(e,r,t)=>{t.d(r,{xA:()=>l,yg:()=>f});var n=t(6540);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function a(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function c(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var i=n.createContext({}),u=function(e){var r=n.useContext(i),t=r;return e&&(t="function"==typeof e?e(r):c(c({},r),e)),t},l=function(e){var r=u(e.components);return n.createElement(i.Provider,{value:r},e.children)},s="mdxType",m={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},d=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,l=p(e,["components","mdxType","originalType","parentName"]),s=u(t),d=o,f=s["".concat(i,".").concat(d)]||s[d]||m[d]||a;return t?n.createElement(f,c(c({ref:r},l),{},{components:t})):n.createElement(f,c({ref:r},l))}));function f(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var a=t.length,c=new Array(a);c[0]=d;var p={};for(var i in r)hasOwnProperty.call(r,i)&&(p[i]=r[i]);p.originalType=e,p[s]="string"==typeof e?e:o,c[1]=p;for(var u=2;u{t.r(r),t.d(r,{assets:()=>i,contentTitle:()=>c,default:()=>m,frontMatter:()=>a,metadata:()=>p,toc:()=>u});var n=t(8168),o=(t(6540),t(5680));const a={},c=void 0,p={unversionedId:"study/program/JS/nrm",id:"study/program/JS/nrm",title:"nrm",description:"nrm \u662f\u4e00\u4e2a npm \u6e90\u7ba1\u7406\u5668\uff0c\u5141\u8bb8\u4f60\u5feb\u901f\u5730\u5728 npm\u6e90\u95f4\u5207\u6362\u3002",source:"@site/docs/study/program/JS/nrm.md",sourceDirName:"study/program/JS",slug:"/study/program/JS/nrm",permalink:"/docs/study/program/JS/nrm",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"npx",permalink:"/docs/study/program/JS/npx"},next:{title:"Kotlin",permalink:"/docs/study/program/Kotlin/"}},i={},u=[],l={toc:u},s="wrapper";function m(e){let{components:r,...t}=e;return(0,o.yg)(s,(0,n.A)({},l,t,{components:r,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"nrm \u662f\u4e00\u4e2a npm \u6e90\u7ba1\u7406\u5668\uff0c\u5141\u8bb8\u4f60\u5feb\u901f\u5730\u5728 npm\u6e90\u95f4\u5207\u6362\u3002"))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2613],{5680:(e,r,t)=>{t.d(r,{xA:()=>l,yg:()=>f});var n=t(6540);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function a(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function c(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var i=n.createContext({}),u=function(e){var r=n.useContext(i),t=r;return e&&(t="function"==typeof e?e(r):c(c({},r),e)),t},l=function(e){var r=u(e.components);return n.createElement(i.Provider,{value:r},e.children)},s="mdxType",m={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},d=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,l=p(e,["components","mdxType","originalType","parentName"]),s=u(t),d=o,f=s["".concat(i,".").concat(d)]||s[d]||m[d]||a;return t?n.createElement(f,c(c({ref:r},l),{},{components:t})):n.createElement(f,c({ref:r},l))}));function f(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var a=t.length,c=new Array(a);c[0]=d;var p={};for(var i in r)hasOwnProperty.call(r,i)&&(p[i]=r[i]);p.originalType=e,p[s]="string"==typeof e?e:o,c[1]=p;for(var u=2;u{t.r(r),t.d(r,{assets:()=>i,contentTitle:()=>c,default:()=>m,frontMatter:()=>a,metadata:()=>p,toc:()=>u});var n=t(8168),o=(t(6540),t(5680));const a={},c=void 0,p={unversionedId:"study/program/JS/nrm",id:"study/program/JS/nrm",title:"nrm",description:"nrm \u662f\u4e00\u4e2a npm \u6e90\u7ba1\u7406\u5668\uff0c\u5141\u8bb8\u4f60\u5feb\u901f\u5730\u5728 npm\u6e90\u95f4\u5207\u6362\u3002",source:"@site/docs/study/program/JS/nrm.md",sourceDirName:"study/program/JS",slug:"/study/program/JS/nrm",permalink:"/docs/study/program/JS/nrm",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"npx",permalink:"/docs/study/program/JS/npx"},next:{title:"Kotlin",permalink:"/docs/study/program/Kotlin/"}},i={},u=[],l={toc:u},s="wrapper";function m(e){let{components:r,...t}=e;return(0,o.yg)(s,(0,n.A)({},l,t,{components:r,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"nrm \u662f\u4e00\u4e2a npm \u6e90\u7ba1\u7406\u5668\uff0c\u5141\u8bb8\u4f60\u5feb\u901f\u5730\u5728 npm\u6e90\u95f4\u5207\u6362\u3002"))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2a4fe0d4.2d0804a8.js b/assets/js/2a4fe0d4.f01aeb6e.js similarity index 98% rename from assets/js/2a4fe0d4.2d0804a8.js rename to assets/js/2a4fe0d4.f01aeb6e.js index d4e3d9524..eb5beafe9 100644 --- a/assets/js/2a4fe0d4.2d0804a8.js +++ b/assets/js/2a4fe0d4.f01aeb6e.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6021],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),s=p(r),d=o,f=s["".concat(l,".").concat(d)]||s[d]||y[d]||a;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[s]="string"==typeof e?e:o,c[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>y,frontMatter:()=>a,metadata:()=>i,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={},c="ASN.1",i={unversionedId:"study/encryption/ASN.1",id:"study/encryption/ASN.1",title:"ASN.1",description:"\u62bd\u8c61\u8bed\u6cd5\u6807\u8bb0\u3001",source:"@site/docs/study/encryption/ASN.1.md",sourceDirName:"study/encryption",slug:"/study/encryption/ASN.1",permalink:"/docs/study/encryption/ASN.1",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u7f51\u7edc\u541e\u5410\u91cf\u6d4b\u91cf\u5de5\u5177",permalink:"/docs/study/net/\u7f51\u7edc\u541e\u5410\u91cf\u6d4b\u91cf\u5de5\u5177"},next:{title:"HSM",permalink:"/docs/study/encryption/HSM"}},l={},p=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],u={toc:p},s="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"asn1"},"ASN.1"),(0,o.yg)("p",null,"\u62bd\u8c61\u8bed\u6cd5\u6807\u8bb0\u3001"),(0,o.yg)("p",null,"\u5305\u542b\u7f16\u7801\u89c4\u5219\uff0c\u5982\u4e0b"),(0,o.yg)("p",null,"ASN.1 \u53d6\u5f97\u6210\u529f\u7684\u4e00\u4e2a\u4e3b\u8981\u539f\u56e0\u662f\u5b83\u4e0e\u51e0\u4e2a\u6807\u51c6\u5316\u7f16\u7801\u89c4\u5219\u76f8\u5173\uff0c\u5982\u57fa\u672c\u7f16\u7801\u89c4\u5219\uff08BER\uff09 -X.209 \u3001\u89c4\u8303\u7f16\u7801\u89c4\u5219\uff08CER\uff09\u3001\u8bc6\u522b\u540d\u7f16\u7801\u89c4\u5219\uff08DER\uff09\u3001\u538b\u7f29\u7f16\u7801\u89c4\u5219\uff08PER\uff09\u548c XML\u7f16\u7801\u89c4\u5219\uff08XER\uff09\u3002\u8fd9\u4e9b\u7f16\u7801\u89c4\u5219\u63cf\u8ff0\u4e86\u5982\u4f55\u5bf9 ASN.1 \u4e2d\u5b9a\u4e49\u7684\u6570\u503c\u8fdb\u884c\u7f16\u7801\uff0c\u4ee5\u4fbf\u7528\u4e8e\u4f20\u8f93\uff0c\u800c\u4e0d\u7ba1\u8ba1\u7b97\u673a\u3001\u7f16\u7a0b\u8bed\u8a00\u6216\u5b83\u5728\u5e94\u7528\u7a0b\u5e8f\u4e2d\u5982\u4f55\u8868\u793a\u7b49\u56e0\u7d20\u3002ASN.1 \u7684\u7f16\u7801\u65b9\u6cd5\u6bd4\u8bb8\u591a\u4e0e\u4e4b\u76f8\u7ade\u4e89\u7684\u6807\u8bb0\u7cfb\u7edf\u66f4\u5148\u8fdb\uff0c\u5b83\u652f\u6301\u53ef\u6269\u5c55\u4fe1\u606f\u5feb\u901f\u53ef\u9760\u7684\u4f20\u8f93 \u2014 \u5728\u65e0\u7ebf\u5bbd\u5e26\u4e2d\uff0c\u8fd9\u662f\u4e00\u79cd\u4f18\u52bf\u30021984\u5e74\uff0cASN.1 \u5c31\u5df2\u7ecf\u6210\u4e3a\u4e86\u4e00\u79cd\u56fd\u9645\u6807\u51c6\uff0c\u5b83\u7684\u7f16\u7801\u89c4\u5219\u5df2\u7ecf\u6210\u719f\u5e76\u5728\u53ef\u9760\u6027\u548c\u517c\u5bb9\u6027\u65b9\u9762\u62e5\u6709\u66f4\u4e30\u5bcc\u7684\u5386\u7a0b\u3002"),(0,o.yg)("p",null,"\u7b80\u6d01\u7684\u4e8c\u8fdb\u5236\u7f16\u7801\u89c4\u5219\uff08BER\u3001CER\u3001DER\u3001PER\uff0c\u4f46\u4e0d\u5305\u62ec XER\uff09\u53ef\u5f53\u4f5c\u66f4\u73b0\u4ee3 XML \u7684\u66ff\u4ee3\u3002\u7136\u800c\uff0cASN.1 \u652f\u6301\u5bf9\u6570\u636e\u7684\u8bed\u4e49\u8fdb\u884c\u63cf\u8ff0\uff0c\u6240\u4ee5\u5b83\u662f\u6bd4 XML \u66f4\u4e3a\u9ad8\u7ea7\u7684\u8bed\u8a00\u3002"),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://baike.baidu.com/item/ASN.1/498523?fr=ge_ala"},"\u767e\u5ea6\u767e\u79d1"))))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6021],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),s=p(r),d=o,f=s["".concat(l,".").concat(d)]||s[d]||y[d]||a;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[s]="string"==typeof e?e:o,c[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>y,frontMatter:()=>a,metadata:()=>i,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={},c="ASN.1",i={unversionedId:"study/encryption/ASN.1",id:"study/encryption/ASN.1",title:"ASN.1",description:"\u62bd\u8c61\u8bed\u6cd5\u6807\u8bb0\u3001",source:"@site/docs/study/encryption/ASN.1.md",sourceDirName:"study/encryption",slug:"/study/encryption/ASN.1",permalink:"/docs/study/encryption/ASN.1",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u7f51\u7edc\u541e\u5410\u91cf\u6d4b\u91cf\u5de5\u5177",permalink:"/docs/study/net/\u7f51\u7edc\u541e\u5410\u91cf\u6d4b\u91cf\u5de5\u5177"},next:{title:"HSM",permalink:"/docs/study/encryption/HSM"}},l={},p=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],u={toc:p},s="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"asn1"},"ASN.1"),(0,o.yg)("p",null,"\u62bd\u8c61\u8bed\u6cd5\u6807\u8bb0\u3001"),(0,o.yg)("p",null,"\u5305\u542b\u7f16\u7801\u89c4\u5219\uff0c\u5982\u4e0b"),(0,o.yg)("p",null,"ASN.1 \u53d6\u5f97\u6210\u529f\u7684\u4e00\u4e2a\u4e3b\u8981\u539f\u56e0\u662f\u5b83\u4e0e\u51e0\u4e2a\u6807\u51c6\u5316\u7f16\u7801\u89c4\u5219\u76f8\u5173\uff0c\u5982\u57fa\u672c\u7f16\u7801\u89c4\u5219\uff08BER\uff09 -X.209 \u3001\u89c4\u8303\u7f16\u7801\u89c4\u5219\uff08CER\uff09\u3001\u8bc6\u522b\u540d\u7f16\u7801\u89c4\u5219\uff08DER\uff09\u3001\u538b\u7f29\u7f16\u7801\u89c4\u5219\uff08PER\uff09\u548c XML\u7f16\u7801\u89c4\u5219\uff08XER\uff09\u3002\u8fd9\u4e9b\u7f16\u7801\u89c4\u5219\u63cf\u8ff0\u4e86\u5982\u4f55\u5bf9 ASN.1 \u4e2d\u5b9a\u4e49\u7684\u6570\u503c\u8fdb\u884c\u7f16\u7801\uff0c\u4ee5\u4fbf\u7528\u4e8e\u4f20\u8f93\uff0c\u800c\u4e0d\u7ba1\u8ba1\u7b97\u673a\u3001\u7f16\u7a0b\u8bed\u8a00\u6216\u5b83\u5728\u5e94\u7528\u7a0b\u5e8f\u4e2d\u5982\u4f55\u8868\u793a\u7b49\u56e0\u7d20\u3002ASN.1 \u7684\u7f16\u7801\u65b9\u6cd5\u6bd4\u8bb8\u591a\u4e0e\u4e4b\u76f8\u7ade\u4e89\u7684\u6807\u8bb0\u7cfb\u7edf\u66f4\u5148\u8fdb\uff0c\u5b83\u652f\u6301\u53ef\u6269\u5c55\u4fe1\u606f\u5feb\u901f\u53ef\u9760\u7684\u4f20\u8f93 \u2014 \u5728\u65e0\u7ebf\u5bbd\u5e26\u4e2d\uff0c\u8fd9\u662f\u4e00\u79cd\u4f18\u52bf\u30021984\u5e74\uff0cASN.1 \u5c31\u5df2\u7ecf\u6210\u4e3a\u4e86\u4e00\u79cd\u56fd\u9645\u6807\u51c6\uff0c\u5b83\u7684\u7f16\u7801\u89c4\u5219\u5df2\u7ecf\u6210\u719f\u5e76\u5728\u53ef\u9760\u6027\u548c\u517c\u5bb9\u6027\u65b9\u9762\u62e5\u6709\u66f4\u4e30\u5bcc\u7684\u5386\u7a0b\u3002"),(0,o.yg)("p",null,"\u7b80\u6d01\u7684\u4e8c\u8fdb\u5236\u7f16\u7801\u89c4\u5219\uff08BER\u3001CER\u3001DER\u3001PER\uff0c\u4f46\u4e0d\u5305\u62ec XER\uff09\u53ef\u5f53\u4f5c\u66f4\u73b0\u4ee3 XML \u7684\u66ff\u4ee3\u3002\u7136\u800c\uff0cASN.1 \u652f\u6301\u5bf9\u6570\u636e\u7684\u8bed\u4e49\u8fdb\u884c\u63cf\u8ff0\uff0c\u6240\u4ee5\u5b83\u662f\u6bd4 XML \u66f4\u4e3a\u9ad8\u7ea7\u7684\u8bed\u8a00\u3002"),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://baike.baidu.com/item/ASN.1/498523?fr=ge_ala"},"\u767e\u5ea6\u767e\u79d1"))))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2a714a8e.e6fe5c76.js b/assets/js/2a714a8e.efc328b7.js similarity index 98% rename from assets/js/2a714a8e.e6fe5c76.js rename to assets/js/2a714a8e.efc328b7.js index 53081bf54..a12045c85 100644 --- a/assets/js/2a714a8e.e6fe5c76.js +++ b/assets/js/2a714a8e.efc328b7.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7448],{5680:(e,r,t)=>{t.d(r,{xA:()=>l,yg:()=>y});var n=t(6540);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function p(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function a(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var p=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var s=n.createContext({}),c=function(e){var r=n.useContext(s),t=r;return e&&(t="function"==typeof e?e(r):a(a({},r),e)),t},l=function(e){var r=c(e.components);return n.createElement(s.Provider,{value:r},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},g=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,p=e.originalType,s=e.parentName,l=i(e,["components","mdxType","originalType","parentName"]),d=c(t),g=o,y=d["".concat(s,".").concat(g)]||d[g]||u[g]||p;return t?n.createElement(y,a(a({ref:r},l),{},{components:t})):n.createElement(y,a({ref:r},l))}));function y(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var p=t.length,a=new Array(p);a[0]=g;var i={};for(var s in r)hasOwnProperty.call(r,s)&&(i[s]=r[s]);i.originalType=e,i[d]="string"==typeof e?e:o,a[1]=i;for(var c=2;c{t.r(r),t.d(r,{assets:()=>s,contentTitle:()=>a,default:()=>u,frontMatter:()=>p,metadata:()=>i,toc:()=>c});var n=t(8168),o=(t(6540),t(5680));const p={},a="Spring Boot",i={unversionedId:"study/back/spring/SpringBoot",id:"study/back/spring/SpringBoot",title:"Spring Boot",description:"\u5e38\u770b\u6587\u6863",source:"@site/docs/study/back/spring/SpringBoot.md",sourceDirName:"study/back/spring",slug:"/study/back/spring/SpringBoot",permalink:"/docs/study/back/spring/SpringBoot",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Spring AOP",permalink:"/docs/study/back/spring/SpringAOP"},next:{title:"Spirng Framework",permalink:"/docs/study/back/spring/SpringFramework"}},s={},c=[{value:"\u5e38\u770b\u6587\u6863",id:"\u5e38\u770b\u6587\u6863",level:3},{value:"\u4e24\u79cd\u65b9\u5f0f\u7ba1\u7406\u4f9d\u8d56",id:"\u4e24\u79cd\u65b9\u5f0f\u7ba1\u7406\u4f9d\u8d56",level:3},{value:"\u7ee7\u627f",id:"\u7ee7\u627f",level:4},{value:"\u4f9d\u8d56\u7ba1\u7406",id:"\u4f9d\u8d56\u7ba1\u7406",level:4},{value:"bootstrap.properties/yml",id:"bootstrappropertiesyml",level:3}],l={toc:c},d="wrapper";function u(e){let{components:r,...t}=e;return(0,o.yg)(d,(0,n.A)({},l,t,{components:r,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"spring-boot"},"Spring Boot"),(0,o.yg)("h3",{id:"\u5e38\u770b\u6587\u6863"},"\u5e38\u770b\u6587\u6863"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://docs.spring.io/spring-boot/docs/3.2.0/reference/html/"},"V3.2.0 \u5b98\u65b9\u53c2\u8003\u6587\u6863\uff0c\u6ca1\u4e8b\u591a\u770b\u770b"))),(0,o.yg)("h3",{id:"\u4e24\u79cd\u65b9\u5f0f\u7ba1\u7406\u4f9d\u8d56"},"\u4e24\u79cd\u65b9\u5f0f\u7ba1\u7406\u4f9d\u8d56"),(0,o.yg)("h4",{id:"\u7ee7\u627f"},"\u7ee7\u627f"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-xml"},"\n org.springframework.boot\n spring-boot-starter-parent\n 2.1.1.RELEASE\n\n")),(0,o.yg)("h4",{id:"\u4f9d\u8d56\u7ba1\u7406"},"\u4f9d\u8d56\u7ba1\u7406"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-xml"},"\n \n \n org.springframework.boot\n spring-boot-dependencies\n 2.1.1.RELEASE\n pom\n import\n \n \n\n")),(0,o.yg)("h3",{id:"bootstrappropertiesyml"},"bootstrap.properties/yml"),(0,o.yg)("p",null,"\u5355\u7eaf\u505a Spring Boot \u5f00\u53d1\uff0c\u53ef\u80fd\u4e0d\u592a\u5bb9\u6613\u9047\u5230 bootstrap.properties \u914d\u7f6e\u6587\u4ef6\uff0c\u4f46\u662f\u5728\u7ed3\u5408 Spring Cloud \u65f6\uff0c\u8fd9\u4e2a\u914d\u7f6e\u5c31\u4f1a\u7ecf\u5e38\u9047\u5230\u4e86\uff0c\u7279\u522b\u662f\u5728\u9700\u8981\u52a0\u8f7d\u4e00\u4e9b\u8fdc\u7a0b\u914d\u7f6e\u6587\u4ef6\u7684\u65f6\u4faf\u3002"),(0,o.yg)("p",null,"bootstrap.properties \u5728 application.properties \u4e4b\u524d\u52a0\u8f7d\uff0c\u914d\u7f6e\u5728\u5e94\u7528\u7a0b\u5e8f\u4e0a\u4e0b\u6587\u7684\u5f15\u5bfc\u9636\u6bb5\u751f\u6548\u3002\u4e00\u822c\u6765\u8bf4\u6211\u4eec\u5728 Spring Cloud Config \u6216\u8005 Nacos \u4e2d\u4f1a\u7528\u5230\u5b83\u3002bootstrap.properties \u88ab Spring ApplicationContext \u7684\u7236\u7c7b\u52a0\u8f7d\uff0c\u8fd9\u4e2a\u7c7b\u5148\u4e8e\u52a0\u8f7d application.properties \u7684 ApplicatonContext \u542f\u52a8\u3002"))}u.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7448],{5680:(e,r,t)=>{t.d(r,{xA:()=>l,yg:()=>y});var n=t(6540);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function p(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function a(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var p=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var s=n.createContext({}),c=function(e){var r=n.useContext(s),t=r;return e&&(t="function"==typeof e?e(r):a(a({},r),e)),t},l=function(e){var r=c(e.components);return n.createElement(s.Provider,{value:r},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},g=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,p=e.originalType,s=e.parentName,l=i(e,["components","mdxType","originalType","parentName"]),d=c(t),g=o,y=d["".concat(s,".").concat(g)]||d[g]||u[g]||p;return t?n.createElement(y,a(a({ref:r},l),{},{components:t})):n.createElement(y,a({ref:r},l))}));function y(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var p=t.length,a=new Array(p);a[0]=g;var i={};for(var s in r)hasOwnProperty.call(r,s)&&(i[s]=r[s]);i.originalType=e,i[d]="string"==typeof e?e:o,a[1]=i;for(var c=2;c{t.r(r),t.d(r,{assets:()=>s,contentTitle:()=>a,default:()=>u,frontMatter:()=>p,metadata:()=>i,toc:()=>c});var n=t(8168),o=(t(6540),t(5680));const p={},a="Spring Boot",i={unversionedId:"study/back/spring/SpringBoot",id:"study/back/spring/SpringBoot",title:"Spring Boot",description:"\u5e38\u770b\u6587\u6863",source:"@site/docs/study/back/spring/SpringBoot.md",sourceDirName:"study/back/spring",slug:"/study/back/spring/SpringBoot",permalink:"/docs/study/back/spring/SpringBoot",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Spring AOP",permalink:"/docs/study/back/spring/SpringAOP"},next:{title:"Spirng Framework",permalink:"/docs/study/back/spring/SpringFramework"}},s={},c=[{value:"\u5e38\u770b\u6587\u6863",id:"\u5e38\u770b\u6587\u6863",level:3},{value:"\u4e24\u79cd\u65b9\u5f0f\u7ba1\u7406\u4f9d\u8d56",id:"\u4e24\u79cd\u65b9\u5f0f\u7ba1\u7406\u4f9d\u8d56",level:3},{value:"\u7ee7\u627f",id:"\u7ee7\u627f",level:4},{value:"\u4f9d\u8d56\u7ba1\u7406",id:"\u4f9d\u8d56\u7ba1\u7406",level:4},{value:"bootstrap.properties/yml",id:"bootstrappropertiesyml",level:3}],l={toc:c},d="wrapper";function u(e){let{components:r,...t}=e;return(0,o.yg)(d,(0,n.A)({},l,t,{components:r,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"spring-boot"},"Spring Boot"),(0,o.yg)("h3",{id:"\u5e38\u770b\u6587\u6863"},"\u5e38\u770b\u6587\u6863"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://docs.spring.io/spring-boot/docs/3.2.0/reference/html/"},"V3.2.0 \u5b98\u65b9\u53c2\u8003\u6587\u6863\uff0c\u6ca1\u4e8b\u591a\u770b\u770b"))),(0,o.yg)("h3",{id:"\u4e24\u79cd\u65b9\u5f0f\u7ba1\u7406\u4f9d\u8d56"},"\u4e24\u79cd\u65b9\u5f0f\u7ba1\u7406\u4f9d\u8d56"),(0,o.yg)("h4",{id:"\u7ee7\u627f"},"\u7ee7\u627f"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-xml"},"\n org.springframework.boot\n spring-boot-starter-parent\n 2.1.1.RELEASE\n\n")),(0,o.yg)("h4",{id:"\u4f9d\u8d56\u7ba1\u7406"},"\u4f9d\u8d56\u7ba1\u7406"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-xml"},"\n \n \n org.springframework.boot\n spring-boot-dependencies\n 2.1.1.RELEASE\n pom\n import\n \n \n\n")),(0,o.yg)("h3",{id:"bootstrappropertiesyml"},"bootstrap.properties/yml"),(0,o.yg)("p",null,"\u5355\u7eaf\u505a Spring Boot \u5f00\u53d1\uff0c\u53ef\u80fd\u4e0d\u592a\u5bb9\u6613\u9047\u5230 bootstrap.properties \u914d\u7f6e\u6587\u4ef6\uff0c\u4f46\u662f\u5728\u7ed3\u5408 Spring Cloud \u65f6\uff0c\u8fd9\u4e2a\u914d\u7f6e\u5c31\u4f1a\u7ecf\u5e38\u9047\u5230\u4e86\uff0c\u7279\u522b\u662f\u5728\u9700\u8981\u52a0\u8f7d\u4e00\u4e9b\u8fdc\u7a0b\u914d\u7f6e\u6587\u4ef6\u7684\u65f6\u4faf\u3002"),(0,o.yg)("p",null,"bootstrap.properties \u5728 application.properties \u4e4b\u524d\u52a0\u8f7d\uff0c\u914d\u7f6e\u5728\u5e94\u7528\u7a0b\u5e8f\u4e0a\u4e0b\u6587\u7684\u5f15\u5bfc\u9636\u6bb5\u751f\u6548\u3002\u4e00\u822c\u6765\u8bf4\u6211\u4eec\u5728 Spring Cloud Config \u6216\u8005 Nacos \u4e2d\u4f1a\u7528\u5230\u5b83\u3002bootstrap.properties \u88ab Spring ApplicationContext \u7684\u7236\u7c7b\u52a0\u8f7d\uff0c\u8fd9\u4e2a\u7c7b\u5148\u4e8e\u52a0\u8f7d application.properties \u7684 ApplicatonContext \u542f\u52a8\u3002"))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2b486500.28b5a011.js b/assets/js/2b486500.75cd73c8.js similarity index 99% rename from assets/js/2b486500.28b5a011.js rename to assets/js/2b486500.75cd73c8.js index 7bf5b7109..1ba55d221 100644 --- a/assets/js/2b486500.28b5a011.js +++ b/assets/js/2b486500.75cd73c8.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1808],{5680:(e,t,n)=>{n.d(t,{xA:()=>c,yg:()=>f});var r=n(6540);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),i=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=i(e.components);return r.createElement(l.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,u=e.originalType,l=e.parentName,c=p(e,["components","mdxType","originalType","parentName"]),s=i(n),d=a,f=s["".concat(l,".").concat(d)]||s[d]||y[d]||u;return n?r.createElement(f,o(o({ref:t},c),{},{components:n})):r.createElement(f,o({ref:t},c))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var u=n.length,o=new Array(u);o[0]=d;var p={};for(var l in t)hasOwnProperty.call(t,l)&&(p[l]=t[l]);p.originalType=e,p[s]="string"==typeof e?e:a,o[1]=p;for(var i=2;i{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>y,frontMatter:()=>u,metadata:()=>p,toc:()=>i});var r=n(8168),a=(n(6540),n(5680));const u={},o=void 0,p={unversionedId:"study/net/tuntap",id:"study/net/tuntap",title:"tuntap",description:"Tun/Tap",source:"@site/docs/study/net/tuntap.md",sourceDirName:"study/net",slug:"/study/net/tuntap",permalink:"/docs/study/net/tuntap",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Linux tc",permalink:"/docs/study/net/tc"},next:{title:"vpn",permalink:"/docs/study/net/vpn"}},l={},i=[{value:"Tun/Tap",id:"tuntap",level:3}],c={toc:i},s="wrapper";function y(e){let{components:t,...u}=e;return(0,a.yg)(s,(0,r.A)({},c,u,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"tuntap"},"Tun/Tap"),(0,a.yg)("p",null,"\u5728\u8ba1\u7b97\u673a\u7f51\u7edc\u4e2d\uff0cTUN \u4e0e TAP \u662f\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838\u4e2d\u7684\u865a\u62df\u7f51\u7edc\u8bbe\u5907\u3002\u4e0d\u540c\u4e8e\u666e\u901a\u9760\u786c\u4ef6\u7f51\u8def\u677f\u5361\u5b9e\u73b0\u7684\u8bbe\u5907\uff0c\u8fd9\u4e9b\u865a\u62df\u7684\u7f51\u7edc\u8bbe\u5907\u5168\u90e8\u7528\u8f6f\u4ef6\u5b9e\u73b0\uff0c\u5e76\u5411\u8fd0\u884c\u4e8e\u64cd\u4f5c\u7cfb\u7edf\u4e0a\u7684\u8f6f\u4ef6\u63d0\u4f9b\u4e0e\u786c\u4ef6\u7684\u7f51\u7edc\u8bbe\u5907\u5b8c\u5168\u76f8\u540c\u7684\u529f\u80fd\u3002"),(0,a.yg)("p",null,"TAP \u7b49\u540c\u4e8e\u4e00\u4e2a\u4ee5\u592a\u7f51\u8bbe\u5907\uff0c\u5b83\u64cd\u4f5c\u7b2c\u4e8c\u5c42\u6570\u636e\u5305\u5982\u4ee5\u592a\u7f51\u6570\u636e\u5e27\u3002TUN \u6a21\u62df\u4e86\u7f51\u7edc\u5c42\u8bbe\u5907\uff0c\u64cd\u4f5c\u7b2c\u4e09\u5c42\u6570\u636e\u5305\u6bd4\u5982 IP \u6570\u636e\u5c01\u5305\u3002"),(0,a.yg)("p",null,"\u64cd\u4f5c\u7cfb\u7edf\u901a\u8fc7 TUN/TAP \u8bbe\u5907\u5411\u7ed1\u5b9a\u8be5\u8bbe\u5907\u7684\u7528\u6237\u7a7a\u95f4\u7684\u7a0b\u5e8f\u53d1\u9001\u6570\u636e\uff0c\u53cd\u4e4b\uff0c\u7528\u6237\u7a7a\u95f4\u7684\u7a0b\u5e8f\u4e5f\u53ef\u4ee5\u50cf\u64cd\u4f5c\u786c\u4ef6\u7f51\u7edc\u8bbe\u5907\u90a3\u6837\uff0c\u901a\u8fc7 TUN/TAP \u8bbe\u5907\u53d1\u9001\u6570\u636e\u3002\u5728\u540e\u79cd\u60c5\u51b5\u4e0b\uff0cTUN/TAP \u8bbe\u5907\u5411\u64cd\u4f5c\u7cfb\u7edf\u7684\u7f51\u7edc\u6808\u6295\u9012\uff08\u6216\u201c\u6ce8\u5165\u201d\uff09\u6570\u636e\u5305\uff0c\u4ece\u800c\u6a21\u62df\u4ece\u5916\u90e8\u63a5\u53d7\u6570\u636e\u7684\u8fc7\u7a0b\u3002"),(0,a.yg)("p",null,"Tun \u865a\u62df\u8bbe\u5907\u548c\u7269\u7406\u7f51\u5361\u7684\u533a\u522b\u662f Tun \u865a\u62df\u8bbe\u5907\u662f IP \u5c42\u8bbe\u5907\uff0c\u4ece/dev/net/tun \u5b57\u7b26\u8bbe\u5907\u4e0a\u8bfb\u53d6\u7684\u662f IP \u6570\u636e\u5305\uff0c\u5199\u5165\u7684\u4e5f\u53ea\u80fd\u662f IP \u6570\u636e\u5305\uff0c\u56e0\u6b64\u4e0d\u80fd\u8fdb\u884c\u4e8c\u5c42\u64cd\u4f5c\uff0c\u5982\u53d1\u9001 ARP \u8bf7\u6c42\u548c\u4ee5\u592a\u7f51\u5e7f\u64ad\u3002\u4e0e\u4e4b\u76f8\u5bf9\u7684\u662f\uff0cTap \u865a\u62df\u8bbe\u5907\u662f\u4ee5\u592a\u7f51\u8bbe\u5907\uff0c\u5904\u7406\u7684\u662f\u4e8c\u5c42\u4ee5\u592a\u7f51\u6570\u636e\u5e27\uff0c\u4ece/dev/net/tun \u5b57\u7b26\u8bbe\u5907\u4e0a\u8bfb\u53d6\u7684\u662f\u4ee5\u592a\u7f51\u6570\u636e\u5e27\uff0c\u5199\u5165\u7684\u4e5f\u53ea\u80fd\u662f\u4ee5\u592a\u7f51\u6570\u636e\u5e27\u3002\u4ece\u8fd9\u70b9\u6765\u770b\uff0cTap \u865a\u62df\u8bbe\u5907\u548c\u771f\u5b9e\u7684\u7269\u7406\u7f51\u5361\u7684\u80fd\u529b\u66f4\u63a5\u8fd1\u3002"),(0,a.yg)("p",null,(0,a.yg)("a",{target:"_blank",href:n(202).A},"\u539f\u7406\u56fe")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://www.lxlinux.net/12108.html"},"\u4ecb\u7ecd Linux \u4e0b\u7684 Tun/Tap"),(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},"\u5199\u7684\u771f\u4e0d\u9519\uff0c\u4e86\u89e3 tun\u3001tap \u4ee5\u53ca vpn \u7684\u539f\u7406\u56fe"))),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://www.junmajinlong.com/virtual/network/all_about_tun_tap/index.html"},"\u7406\u89e3 Linux \u865a\u62df\u7f51\u5361\u8bbe\u5907 tun/tap \u7684\u4e00\u5207"))))}y.isMDXComponent=!0},202:(e,t,n)=>{n.d(t,{A:()=>r});const r=n.p+"assets/files/vpnyuanlitu-0ce325275673446da8a9cf4e89759ca3.jpg"}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1808],{5680:(e,t,n)=>{n.d(t,{xA:()=>c,yg:()=>f});var r=n(6540);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),i=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=i(e.components);return r.createElement(l.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,u=e.originalType,l=e.parentName,c=p(e,["components","mdxType","originalType","parentName"]),s=i(n),d=a,f=s["".concat(l,".").concat(d)]||s[d]||y[d]||u;return n?r.createElement(f,o(o({ref:t},c),{},{components:n})):r.createElement(f,o({ref:t},c))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var u=n.length,o=new Array(u);o[0]=d;var p={};for(var l in t)hasOwnProperty.call(t,l)&&(p[l]=t[l]);p.originalType=e,p[s]="string"==typeof e?e:a,o[1]=p;for(var i=2;i{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>y,frontMatter:()=>u,metadata:()=>p,toc:()=>i});var r=n(8168),a=(n(6540),n(5680));const u={},o=void 0,p={unversionedId:"study/net/tuntap",id:"study/net/tuntap",title:"tuntap",description:"Tun/Tap",source:"@site/docs/study/net/tuntap.md",sourceDirName:"study/net",slug:"/study/net/tuntap",permalink:"/docs/study/net/tuntap",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Linux tc",permalink:"/docs/study/net/tc"},next:{title:"vpn",permalink:"/docs/study/net/vpn"}},l={},i=[{value:"Tun/Tap",id:"tuntap",level:3}],c={toc:i},s="wrapper";function y(e){let{components:t,...u}=e;return(0,a.yg)(s,(0,r.A)({},c,u,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"tuntap"},"Tun/Tap"),(0,a.yg)("p",null,"\u5728\u8ba1\u7b97\u673a\u7f51\u7edc\u4e2d\uff0cTUN \u4e0e TAP \u662f\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838\u4e2d\u7684\u865a\u62df\u7f51\u7edc\u8bbe\u5907\u3002\u4e0d\u540c\u4e8e\u666e\u901a\u9760\u786c\u4ef6\u7f51\u8def\u677f\u5361\u5b9e\u73b0\u7684\u8bbe\u5907\uff0c\u8fd9\u4e9b\u865a\u62df\u7684\u7f51\u7edc\u8bbe\u5907\u5168\u90e8\u7528\u8f6f\u4ef6\u5b9e\u73b0\uff0c\u5e76\u5411\u8fd0\u884c\u4e8e\u64cd\u4f5c\u7cfb\u7edf\u4e0a\u7684\u8f6f\u4ef6\u63d0\u4f9b\u4e0e\u786c\u4ef6\u7684\u7f51\u7edc\u8bbe\u5907\u5b8c\u5168\u76f8\u540c\u7684\u529f\u80fd\u3002"),(0,a.yg)("p",null,"TAP \u7b49\u540c\u4e8e\u4e00\u4e2a\u4ee5\u592a\u7f51\u8bbe\u5907\uff0c\u5b83\u64cd\u4f5c\u7b2c\u4e8c\u5c42\u6570\u636e\u5305\u5982\u4ee5\u592a\u7f51\u6570\u636e\u5e27\u3002TUN \u6a21\u62df\u4e86\u7f51\u7edc\u5c42\u8bbe\u5907\uff0c\u64cd\u4f5c\u7b2c\u4e09\u5c42\u6570\u636e\u5305\u6bd4\u5982 IP \u6570\u636e\u5c01\u5305\u3002"),(0,a.yg)("p",null,"\u64cd\u4f5c\u7cfb\u7edf\u901a\u8fc7 TUN/TAP \u8bbe\u5907\u5411\u7ed1\u5b9a\u8be5\u8bbe\u5907\u7684\u7528\u6237\u7a7a\u95f4\u7684\u7a0b\u5e8f\u53d1\u9001\u6570\u636e\uff0c\u53cd\u4e4b\uff0c\u7528\u6237\u7a7a\u95f4\u7684\u7a0b\u5e8f\u4e5f\u53ef\u4ee5\u50cf\u64cd\u4f5c\u786c\u4ef6\u7f51\u7edc\u8bbe\u5907\u90a3\u6837\uff0c\u901a\u8fc7 TUN/TAP \u8bbe\u5907\u53d1\u9001\u6570\u636e\u3002\u5728\u540e\u79cd\u60c5\u51b5\u4e0b\uff0cTUN/TAP \u8bbe\u5907\u5411\u64cd\u4f5c\u7cfb\u7edf\u7684\u7f51\u7edc\u6808\u6295\u9012\uff08\u6216\u201c\u6ce8\u5165\u201d\uff09\u6570\u636e\u5305\uff0c\u4ece\u800c\u6a21\u62df\u4ece\u5916\u90e8\u63a5\u53d7\u6570\u636e\u7684\u8fc7\u7a0b\u3002"),(0,a.yg)("p",null,"Tun \u865a\u62df\u8bbe\u5907\u548c\u7269\u7406\u7f51\u5361\u7684\u533a\u522b\u662f Tun \u865a\u62df\u8bbe\u5907\u662f IP \u5c42\u8bbe\u5907\uff0c\u4ece/dev/net/tun \u5b57\u7b26\u8bbe\u5907\u4e0a\u8bfb\u53d6\u7684\u662f IP \u6570\u636e\u5305\uff0c\u5199\u5165\u7684\u4e5f\u53ea\u80fd\u662f IP \u6570\u636e\u5305\uff0c\u56e0\u6b64\u4e0d\u80fd\u8fdb\u884c\u4e8c\u5c42\u64cd\u4f5c\uff0c\u5982\u53d1\u9001 ARP \u8bf7\u6c42\u548c\u4ee5\u592a\u7f51\u5e7f\u64ad\u3002\u4e0e\u4e4b\u76f8\u5bf9\u7684\u662f\uff0cTap \u865a\u62df\u8bbe\u5907\u662f\u4ee5\u592a\u7f51\u8bbe\u5907\uff0c\u5904\u7406\u7684\u662f\u4e8c\u5c42\u4ee5\u592a\u7f51\u6570\u636e\u5e27\uff0c\u4ece/dev/net/tun \u5b57\u7b26\u8bbe\u5907\u4e0a\u8bfb\u53d6\u7684\u662f\u4ee5\u592a\u7f51\u6570\u636e\u5e27\uff0c\u5199\u5165\u7684\u4e5f\u53ea\u80fd\u662f\u4ee5\u592a\u7f51\u6570\u636e\u5e27\u3002\u4ece\u8fd9\u70b9\u6765\u770b\uff0cTap \u865a\u62df\u8bbe\u5907\u548c\u771f\u5b9e\u7684\u7269\u7406\u7f51\u5361\u7684\u80fd\u529b\u66f4\u63a5\u8fd1\u3002"),(0,a.yg)("p",null,(0,a.yg)("a",{target:"_blank",href:n(202).A},"\u539f\u7406\u56fe")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://www.lxlinux.net/12108.html"},"\u4ecb\u7ecd Linux \u4e0b\u7684 Tun/Tap"),(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},"\u5199\u7684\u771f\u4e0d\u9519\uff0c\u4e86\u89e3 tun\u3001tap \u4ee5\u53ca vpn \u7684\u539f\u7406\u56fe"))),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://www.junmajinlong.com/virtual/network/all_about_tun_tap/index.html"},"\u7406\u89e3 Linux \u865a\u62df\u7f51\u5361\u8bbe\u5907 tun/tap \u7684\u4e00\u5207"))))}y.isMDXComponent=!0},202:(e,t,n)=>{n.d(t,{A:()=>r});const r=n.p+"assets/files/vpnyuanlitu-0ce325275673446da8a9cf4e89759ca3.jpg"}}]); \ No newline at end of file diff --git a/assets/js/2b5f2f35.b603469a.js b/assets/js/2b5f2f35.176f01bf.js similarity index 99% rename from assets/js/2b5f2f35.b603469a.js rename to assets/js/2b5f2f35.176f01bf.js index b770b4038..b104ffbfd 100644 --- a/assets/js/2b5f2f35.b603469a.js +++ b/assets/js/2b5f2f35.176f01bf.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5350],{5680:(e,t,n)=>{n.d(t,{xA:()=>d,yg:()=>g});var r=n(6540);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var u=r.createContext({}),c=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},d=function(e){var t=c(e.components);return r.createElement(u.Provider,{value:t},e.children)},p="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,u=e.parentName,d=o(e,["components","mdxType","originalType","parentName"]),p=c(n),y=a,g=p["".concat(u,".").concat(y)]||p[y]||s[y]||i;return n?r.createElement(g,l(l({ref:t},d),{},{components:n})):r.createElement(g,l({ref:t},d))}));function g(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,l=new Array(i);l[0]=y;var o={};for(var u in t)hasOwnProperty.call(t,u)&&(o[u]=t[u]);o.originalType=e,o[p]="string"==typeof e?e:a,l[1]=o;for(var c=2;c{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>l,default:()=>s,frontMatter:()=>i,metadata:()=>o,toc:()=>c});var r=n(8168),a=(n(6540),n(5680));const i={},l="\u5b57\u8282\u5e8f Big Endian Little Endian",o={unversionedId:"study/other/\u5b57\u8282\u5e8f",id:"study/other/\u5b57\u8282\u5e8f",title:"\u5b57\u8282\u5e8f Big Endian Little Endian",description:"\u5b57\u8282\u5e8f\uff0c\u4e5f\u5c31\u662f\u5b57\u8282\u7684\u987a\u5e8f\uff0c\u6307\u7684\u662f\u591a\u5b57\u8282\u7684\u6570\u636e\u5728\u5185\u5b58\u4e2d\u7684\u5b58\u653e\u987a\u5e8f\u3002",source:"@site/docs/study/other/\u5b57\u8282\u5e8f.md",sourceDirName:"study/other",slug:"/study/other/\u5b57\u8282\u5e8f",permalink:"/docs/study/other/\u5b57\u8282\u5e8f",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u4eba\u5de5\u667a\u80fd",permalink:"/docs/study/ai/"},next:{title:"\u6807\u51c6\u540d\u79f0\u7f29\u5199",permalink:"/docs/study/other/\u6807\u51c6\u540d\u79f0\u7f29\u5199"}},u={},c=[{value:"\u5927\u7aef\u4e0e\u5c0f\u7aef",id:"\u5927\u7aef\u4e0e\u5c0f\u7aef",level:3},{value:"\u4e24\u79cd\u5b57\u8282\u5e8f\uff1a\u7f51\u7edc\u5e8f\u548c\u4e3b\u673a\u5e8f",id:"\u4e24\u79cd\u5b57\u8282\u5e8f\u7f51\u7edc\u5e8f\u548c\u4e3b\u673a\u5e8f",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],d={toc:c},p="wrapper";function s(e){let{components:t,...i}=e;return(0,a.yg)(p,(0,r.A)({},d,i,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"\u5b57\u8282\u5e8f-big-endian-little-endian"},"\u5b57\u8282\u5e8f Big Endian Little Endian"),(0,a.yg)("p",null,"\u5b57\u8282\u5e8f\uff0c\u4e5f\u5c31\u662f\u5b57\u8282\u7684\u987a\u5e8f\uff0c\u6307\u7684\u662f\u591a\u5b57\u8282\u7684\u6570\u636e\u5728\u5185\u5b58\u4e2d\u7684\u5b58\u653e\u987a\u5e8f\u3002"),(0,a.yg)("p",null,"\u5728\u51e0\u4e4e\u6240\u6709\u7684\u673a\u5668\u4e0a\uff0c\u591a\u5b57\u8282\u5bf9\u8c61\u90fd\u88ab\u5b58\u50a8\u4e3a\u8fde\u7eed\u7684\u5b57\u8282\u5e8f\u5217\u3002\u4f8b\u5982\uff1a\u5982\u679c C/C++\u4e2d\u7684\u4e00\u4e2a int \u578b\u53d8\u91cf a \u7684\u8d77\u59cb\u5730\u5740\u662f&a = 0x100\uff0c\u90a3\u4e48 a \u7684\u56db\u4e2a\u5b57\u8282\u5c06\u88ab\u5b58\u50a8\u5728\u5b58\u50a8\u5668\u7684 0x100, 0x101, 0x102, 0x103 \u4f4d\u7f6e\u3002"),(0,a.yg)("p",null,"\u6839\u636e\u6574\u6570 a \u5728\u8fde\u7eed\u7684 4 byte \u5185\u5b58\u4e2d\u7684\u5b58\u50a8\u987a\u5e8f\uff0c\u5b57\u8282\u5e8f\u88ab\u5206\u4e3a\u5927\u7aef\u5e8f\uff08Big Endian\uff09 \u4e0e \u5c0f\u7aef\u5e8f\uff08Little Endian\uff09\u4e24\u7c7b\u3002 \u7136\u540e\u5c31\u7275\u6d89\u51fa\u4e24\u5927 CPU \u6d3e\u7cfb\uff1a"),(0,a.yg)("p",null,"Motorola 6800\uff0cPowerPC 970\uff0cSPARC\uff08\u9664 V9 \u5916\uff09\u7b49\u5904\u7406\u5668\u91c7\u7528 Big Endian \u65b9\u5f0f\u5b58\u50a8\u6570\u636e\uff1b\nx86 \u7cfb\u5217\uff0cVAX\uff0cPDP-11 \u7b49\u5904\u7406\u5668\u91c7\u7528 Little Endian \u65b9\u5f0f\u5b58\u50a8\u6570\u636e\u3002\n\u53e6\u5916\uff0c\u8fd8\u6709\u4e00\u4e9b\u5904\u7406\u5668\u50cf ARM, DEC Alpha \u7684\u5b57\u8282\u5e8f\u662f\u53ef\u914d\u7f6e\u7684\u3002"),(0,a.yg)("h3",{id:"\u5927\u7aef\u4e0e\u5c0f\u7aef"},"\u5927\u7aef\u4e0e\u5c0f\u7aef"),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"\u5927\u7aef\u4e0e\u5c0f\u7aef",src:n(9356).A,width:"520",height:"426"})),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"Big Endian \u662f\u6307\u4f4e\u5730\u5740\u7aef \u5b58\u653e \u9ad8\u4f4d\u5b57\u8282\u3002"),(0,a.yg)("li",{parentName:"ul"},"Little Endian \u662f\u6307\u4f4e\u5730\u5740\u7aef \u5b58\u653e \u4f4e\u4f4d\u5b57\u8282\u3002")),(0,a.yg)("h3",{id:"\u4e24\u79cd\u5b57\u8282\u5e8f\u7f51\u7edc\u5e8f\u548c\u4e3b\u673a\u5e8f"},"\u4e24\u79cd\u5b57\u8282\u5e8f\uff1a\u7f51\u7edc\u5e8f\u548c\u4e3b\u673a\u5e8f"),(0,a.yg)("p",null,"\u7f51\u7edc\u5b57\u8282\u5e8f\uff1aTCP/IP \u5404\u5c42\u534f\u8bae\u5c06\u5b57\u8282\u5e8f\u5b9a\u4e49\u4e3a Big Endian\uff0c\u56e0\u6b64 TCP/IP \u534f\u8bae\u4e2d\u4f7f\u7528\u7684\u5b57\u8282\u5e8f\u662f\u5927\u7aef\u5e8f\u3002\u662f\u786e\u5b9a\u7684"),(0,a.yg)("p",null,"\u4e3b\u673a\u5b57\u8282\u5e8f\uff1a\u6574\u6570\u5728\u5185\u5b58\u4e2d\u5b58\u50a8\u7684\u987a\u5e8f\uff0c\u7531 CPU \u67b6\u6784\u51b3\u5b9a\uff0c\u53ef\u80fd\u662f\u5c0f\u7aef\uff0c\u4e5f\u53ef\u80fd\u662f\u5927\u7aef\uff0c\u5e38\u7528\u7684 Intel \u4e0e AMD \u7684 CPU \u5747\u4e3a\u5c0f\u7aef\u5b57\u8282\u5e8f\u3002"),(0,a.yg)("p",null,"\u5728\u8fdb\u884c\u7f51\u7edc\u901a\u4fe1\u65f6 \u901a\u5e38\u9700\u8981\u8c03\u7528\u76f8\u5e94\u7684\u51fd\u6570\u8fdb\u884c\u4e3b\u673a\u5e8f\u548c\u7f51\u7edc\u5e8f\u7684\u8f6c\u6362\u3002"),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://blog.csdn.net/zhizhengguan/article/details/107887396"},"\u5b57\u8282\u5e8f\uff1aBig Endian \u548c Little Endian"))))}s.isMDXComponent=!0},9356:(e,t,n)=>{n.d(t,{A:()=>r});const r=n.p+"assets/images/zijiexu-8a5e0d07254294a0549c6f18d9f2f801.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5350],{5680:(e,t,n)=>{n.d(t,{xA:()=>d,yg:()=>g});var r=n(6540);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var u=r.createContext({}),c=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},d=function(e){var t=c(e.components);return r.createElement(u.Provider,{value:t},e.children)},p="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,u=e.parentName,d=o(e,["components","mdxType","originalType","parentName"]),p=c(n),y=a,g=p["".concat(u,".").concat(y)]||p[y]||s[y]||i;return n?r.createElement(g,l(l({ref:t},d),{},{components:n})):r.createElement(g,l({ref:t},d))}));function g(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,l=new Array(i);l[0]=y;var o={};for(var u in t)hasOwnProperty.call(t,u)&&(o[u]=t[u]);o.originalType=e,o[p]="string"==typeof e?e:a,l[1]=o;for(var c=2;c{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>l,default:()=>s,frontMatter:()=>i,metadata:()=>o,toc:()=>c});var r=n(8168),a=(n(6540),n(5680));const i={},l="\u5b57\u8282\u5e8f Big Endian Little Endian",o={unversionedId:"study/other/\u5b57\u8282\u5e8f",id:"study/other/\u5b57\u8282\u5e8f",title:"\u5b57\u8282\u5e8f Big Endian Little Endian",description:"\u5b57\u8282\u5e8f\uff0c\u4e5f\u5c31\u662f\u5b57\u8282\u7684\u987a\u5e8f\uff0c\u6307\u7684\u662f\u591a\u5b57\u8282\u7684\u6570\u636e\u5728\u5185\u5b58\u4e2d\u7684\u5b58\u653e\u987a\u5e8f\u3002",source:"@site/docs/study/other/\u5b57\u8282\u5e8f.md",sourceDirName:"study/other",slug:"/study/other/\u5b57\u8282\u5e8f",permalink:"/docs/study/other/\u5b57\u8282\u5e8f",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u4eba\u5de5\u667a\u80fd",permalink:"/docs/study/ai/"},next:{title:"\u6807\u51c6\u540d\u79f0\u7f29\u5199",permalink:"/docs/study/other/\u6807\u51c6\u540d\u79f0\u7f29\u5199"}},u={},c=[{value:"\u5927\u7aef\u4e0e\u5c0f\u7aef",id:"\u5927\u7aef\u4e0e\u5c0f\u7aef",level:3},{value:"\u4e24\u79cd\u5b57\u8282\u5e8f\uff1a\u7f51\u7edc\u5e8f\u548c\u4e3b\u673a\u5e8f",id:"\u4e24\u79cd\u5b57\u8282\u5e8f\u7f51\u7edc\u5e8f\u548c\u4e3b\u673a\u5e8f",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],d={toc:c},p="wrapper";function s(e){let{components:t,...i}=e;return(0,a.yg)(p,(0,r.A)({},d,i,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"\u5b57\u8282\u5e8f-big-endian-little-endian"},"\u5b57\u8282\u5e8f Big Endian Little Endian"),(0,a.yg)("p",null,"\u5b57\u8282\u5e8f\uff0c\u4e5f\u5c31\u662f\u5b57\u8282\u7684\u987a\u5e8f\uff0c\u6307\u7684\u662f\u591a\u5b57\u8282\u7684\u6570\u636e\u5728\u5185\u5b58\u4e2d\u7684\u5b58\u653e\u987a\u5e8f\u3002"),(0,a.yg)("p",null,"\u5728\u51e0\u4e4e\u6240\u6709\u7684\u673a\u5668\u4e0a\uff0c\u591a\u5b57\u8282\u5bf9\u8c61\u90fd\u88ab\u5b58\u50a8\u4e3a\u8fde\u7eed\u7684\u5b57\u8282\u5e8f\u5217\u3002\u4f8b\u5982\uff1a\u5982\u679c C/C++\u4e2d\u7684\u4e00\u4e2a int \u578b\u53d8\u91cf a \u7684\u8d77\u59cb\u5730\u5740\u662f&a = 0x100\uff0c\u90a3\u4e48 a \u7684\u56db\u4e2a\u5b57\u8282\u5c06\u88ab\u5b58\u50a8\u5728\u5b58\u50a8\u5668\u7684 0x100, 0x101, 0x102, 0x103 \u4f4d\u7f6e\u3002"),(0,a.yg)("p",null,"\u6839\u636e\u6574\u6570 a \u5728\u8fde\u7eed\u7684 4 byte \u5185\u5b58\u4e2d\u7684\u5b58\u50a8\u987a\u5e8f\uff0c\u5b57\u8282\u5e8f\u88ab\u5206\u4e3a\u5927\u7aef\u5e8f\uff08Big Endian\uff09 \u4e0e \u5c0f\u7aef\u5e8f\uff08Little Endian\uff09\u4e24\u7c7b\u3002 \u7136\u540e\u5c31\u7275\u6d89\u51fa\u4e24\u5927 CPU \u6d3e\u7cfb\uff1a"),(0,a.yg)("p",null,"Motorola 6800\uff0cPowerPC 970\uff0cSPARC\uff08\u9664 V9 \u5916\uff09\u7b49\u5904\u7406\u5668\u91c7\u7528 Big Endian \u65b9\u5f0f\u5b58\u50a8\u6570\u636e\uff1b\nx86 \u7cfb\u5217\uff0cVAX\uff0cPDP-11 \u7b49\u5904\u7406\u5668\u91c7\u7528 Little Endian \u65b9\u5f0f\u5b58\u50a8\u6570\u636e\u3002\n\u53e6\u5916\uff0c\u8fd8\u6709\u4e00\u4e9b\u5904\u7406\u5668\u50cf ARM, DEC Alpha \u7684\u5b57\u8282\u5e8f\u662f\u53ef\u914d\u7f6e\u7684\u3002"),(0,a.yg)("h3",{id:"\u5927\u7aef\u4e0e\u5c0f\u7aef"},"\u5927\u7aef\u4e0e\u5c0f\u7aef"),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"\u5927\u7aef\u4e0e\u5c0f\u7aef",src:n(9356).A,width:"520",height:"426"})),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"Big Endian \u662f\u6307\u4f4e\u5730\u5740\u7aef \u5b58\u653e \u9ad8\u4f4d\u5b57\u8282\u3002"),(0,a.yg)("li",{parentName:"ul"},"Little Endian \u662f\u6307\u4f4e\u5730\u5740\u7aef \u5b58\u653e \u4f4e\u4f4d\u5b57\u8282\u3002")),(0,a.yg)("h3",{id:"\u4e24\u79cd\u5b57\u8282\u5e8f\u7f51\u7edc\u5e8f\u548c\u4e3b\u673a\u5e8f"},"\u4e24\u79cd\u5b57\u8282\u5e8f\uff1a\u7f51\u7edc\u5e8f\u548c\u4e3b\u673a\u5e8f"),(0,a.yg)("p",null,"\u7f51\u7edc\u5b57\u8282\u5e8f\uff1aTCP/IP \u5404\u5c42\u534f\u8bae\u5c06\u5b57\u8282\u5e8f\u5b9a\u4e49\u4e3a Big Endian\uff0c\u56e0\u6b64 TCP/IP \u534f\u8bae\u4e2d\u4f7f\u7528\u7684\u5b57\u8282\u5e8f\u662f\u5927\u7aef\u5e8f\u3002\u662f\u786e\u5b9a\u7684"),(0,a.yg)("p",null,"\u4e3b\u673a\u5b57\u8282\u5e8f\uff1a\u6574\u6570\u5728\u5185\u5b58\u4e2d\u5b58\u50a8\u7684\u987a\u5e8f\uff0c\u7531 CPU \u67b6\u6784\u51b3\u5b9a\uff0c\u53ef\u80fd\u662f\u5c0f\u7aef\uff0c\u4e5f\u53ef\u80fd\u662f\u5927\u7aef\uff0c\u5e38\u7528\u7684 Intel \u4e0e AMD \u7684 CPU \u5747\u4e3a\u5c0f\u7aef\u5b57\u8282\u5e8f\u3002"),(0,a.yg)("p",null,"\u5728\u8fdb\u884c\u7f51\u7edc\u901a\u4fe1\u65f6 \u901a\u5e38\u9700\u8981\u8c03\u7528\u76f8\u5e94\u7684\u51fd\u6570\u8fdb\u884c\u4e3b\u673a\u5e8f\u548c\u7f51\u7edc\u5e8f\u7684\u8f6c\u6362\u3002"),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://blog.csdn.net/zhizhengguan/article/details/107887396"},"\u5b57\u8282\u5e8f\uff1aBig Endian \u548c Little Endian"))))}s.isMDXComponent=!0},9356:(e,t,n)=>{n.d(t,{A:()=>r});const r=n.p+"assets/images/zijiexu-8a5e0d07254294a0549c6f18d9f2f801.png"}}]); \ No newline at end of file diff --git a/assets/js/2bc909a9.5b63bb79.js b/assets/js/2bc909a9.3b82b900.js similarity index 97% rename from assets/js/2bc909a9.5b63bb79.js rename to assets/js/2bc909a9.3b82b900.js index 365796c01..fcb4a4f93 100644 --- a/assets/js/2bc909a9.5b63bb79.js +++ b/assets/js/2bc909a9.3b82b900.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8788],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},l="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),l=p(r),y=o,f=l["".concat(s,".").concat(y)]||l[y]||d[y]||a;return r?n.createElement(f,i(i({ref:t},u),{},{components:r})):n.createElement(f,i({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=y;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[l]="string"==typeof e?e:o,i[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={sidebar_position:1},i="\u5b66\u65e0\u6b62\u5883",c={unversionedId:"study/index",id:"study/index",title:"\u5b66\u65e0\u6b62\u5883",description:"\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u662f\u4e00\u4e2a\u4e0d\u65ad\u53d1\u5c55\u548c\u53d8\u5316\u7684\u9886\u57df\uff0c\u5b66\u65e0\u6b62\u5883\u3002\u968f\u7740\u6280\u672f\u548c\u5e02\u573a\u7684\u4e0d\u65ad\u53d8\u5316\uff0c\u6211\u4eec\u9700\u8981\u59cb\u7ec8\u4fdd\u6301\u654f\u9510\u7684\u89c2\u5bdf\u529b\u548c\u5b66\u4e60\u80fd\u529b\u3002",source:"@site/docs/study/index.md",sourceDirName:"study",slug:"/study/",permalink:"/docs/study/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",next:{title:"\u6982\u8ff0",permalink:"/docs/study/fe/"}},s={},p=[],u={toc:p},l="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(l,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u5b66\u65e0\u6b62\u5883"},"\u5b66\u65e0\u6b62\u5883"),(0,o.yg)("p",null,"\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u662f\u4e00\u4e2a\u4e0d\u65ad\u53d1\u5c55\u548c\u53d8\u5316\u7684\u9886\u57df\uff0c\u5b66\u65e0\u6b62\u5883\u3002\u968f\u7740\u6280\u672f\u548c\u5e02\u573a\u7684\u4e0d\u65ad\u53d8\u5316\uff0c\u6211\u4eec\u9700\u8981\u59cb\u7ec8\u4fdd\u6301\u654f\u9510\u7684\u89c2\u5bdf\u529b\u548c\u5b66\u4e60\u80fd\u529b\u3002"),(0,o.yg)("p",null,"\u9996\u5148\uff0c\u6211\u4eec\u9700\u8981\u4e86\u89e3\u5e76\u638c\u63e1\u6700\u65b0\u7684\u7269\u8054\u7f51\u6280\u672f\u548c\u4e91\u8ba1\u7b97\u6280\u672f\uff0c\u4f8b\u5982\u8fb9\u7f18\u8ba1\u7b97\u3001\u4eba\u5de5\u667a\u80fd\u7b49\u3002\u5176\u6b21\uff0c\u6211\u4eec\u9700\u8981\u6df1\u5165\u7406\u89e3\u5ba2\u6237\u7684\u9700\u6c42\uff0c\u4ee5\u6784\u5efa\u66f4\u52a0\u667a\u80fd\u548c\u9ad8\u6548\u7684\u7269\u8054\u7f51\u89e3\u51b3\u65b9\u6848\u3002\u540c\u65f6\uff0c\u6211\u4eec\u8fd8\u9700\u8981\u5bf9\u5404\u79cd\u5b89\u5168\u95ee\u9898\u4fdd\u6301\u9ad8\u5ea6\u8b66\u60d5\uff0c\u5e76\u91c7\u53d6\u63aa\u65bd\u4fdd\u62a4\u7528\u6237\u6570\u636e\u7684\u5b89\u5168\u6027\u3002"),(0,o.yg)("p",null,"\u4e0d\u65ad\u5b66\u4e60\u548c\u63d0\u5347\u81ea\u5df1\u7684\u6280\u80fd\u662f\u975e\u5e38\u91cd\u8981\u7684\uff0c\u53ef\u4ee5\u5e2e\u52a9\u6211\u4eec\u66f4\u597d\u5730\u9002\u5e94\u5feb\u901f\u53d8\u5316\u7684\u5e02\u573a\u548c\u6280\u672f\u73af\u5883\u3002\u56e0\u6b64\uff0c\u6211\u76f8\u4fe1\u5728\u8fd9\u4e2a\u5feb\u901f\u53d1\u5c55\u7684\u884c\u4e1a\u4e2d\uff0c\u6301\u7eed\u4e0d\u65ad\u5730\u5b66\u4e60\u548c\u8fdb\u6b65\u662f\u5fc5\u4e0d\u53ef\u5c11\u7684\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8788],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},l="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),l=p(r),y=o,f=l["".concat(s,".").concat(y)]||l[y]||d[y]||a;return r?n.createElement(f,i(i({ref:t},u),{},{components:r})):n.createElement(f,i({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=y;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[l]="string"==typeof e?e:o,i[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={sidebar_position:1},i="\u5b66\u65e0\u6b62\u5883",c={unversionedId:"study/index",id:"study/index",title:"\u5b66\u65e0\u6b62\u5883",description:"\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u662f\u4e00\u4e2a\u4e0d\u65ad\u53d1\u5c55\u548c\u53d8\u5316\u7684\u9886\u57df\uff0c\u5b66\u65e0\u6b62\u5883\u3002\u968f\u7740\u6280\u672f\u548c\u5e02\u573a\u7684\u4e0d\u65ad\u53d8\u5316\uff0c\u6211\u4eec\u9700\u8981\u59cb\u7ec8\u4fdd\u6301\u654f\u9510\u7684\u89c2\u5bdf\u529b\u548c\u5b66\u4e60\u80fd\u529b\u3002",source:"@site/docs/study/index.md",sourceDirName:"study",slug:"/study/",permalink:"/docs/study/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",next:{title:"\u6982\u8ff0",permalink:"/docs/study/fe/"}},s={},p=[],u={toc:p},l="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(l,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u5b66\u65e0\u6b62\u5883"},"\u5b66\u65e0\u6b62\u5883"),(0,o.yg)("p",null,"\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u662f\u4e00\u4e2a\u4e0d\u65ad\u53d1\u5c55\u548c\u53d8\u5316\u7684\u9886\u57df\uff0c\u5b66\u65e0\u6b62\u5883\u3002\u968f\u7740\u6280\u672f\u548c\u5e02\u573a\u7684\u4e0d\u65ad\u53d8\u5316\uff0c\u6211\u4eec\u9700\u8981\u59cb\u7ec8\u4fdd\u6301\u654f\u9510\u7684\u89c2\u5bdf\u529b\u548c\u5b66\u4e60\u80fd\u529b\u3002"),(0,o.yg)("p",null,"\u9996\u5148\uff0c\u6211\u4eec\u9700\u8981\u4e86\u89e3\u5e76\u638c\u63e1\u6700\u65b0\u7684\u7269\u8054\u7f51\u6280\u672f\u548c\u4e91\u8ba1\u7b97\u6280\u672f\uff0c\u4f8b\u5982\u8fb9\u7f18\u8ba1\u7b97\u3001\u4eba\u5de5\u667a\u80fd\u7b49\u3002\u5176\u6b21\uff0c\u6211\u4eec\u9700\u8981\u6df1\u5165\u7406\u89e3\u5ba2\u6237\u7684\u9700\u6c42\uff0c\u4ee5\u6784\u5efa\u66f4\u52a0\u667a\u80fd\u548c\u9ad8\u6548\u7684\u7269\u8054\u7f51\u89e3\u51b3\u65b9\u6848\u3002\u540c\u65f6\uff0c\u6211\u4eec\u8fd8\u9700\u8981\u5bf9\u5404\u79cd\u5b89\u5168\u95ee\u9898\u4fdd\u6301\u9ad8\u5ea6\u8b66\u60d5\uff0c\u5e76\u91c7\u53d6\u63aa\u65bd\u4fdd\u62a4\u7528\u6237\u6570\u636e\u7684\u5b89\u5168\u6027\u3002"),(0,o.yg)("p",null,"\u4e0d\u65ad\u5b66\u4e60\u548c\u63d0\u5347\u81ea\u5df1\u7684\u6280\u80fd\u662f\u975e\u5e38\u91cd\u8981\u7684\uff0c\u53ef\u4ee5\u5e2e\u52a9\u6211\u4eec\u66f4\u597d\u5730\u9002\u5e94\u5feb\u901f\u53d8\u5316\u7684\u5e02\u573a\u548c\u6280\u672f\u73af\u5883\u3002\u56e0\u6b64\uff0c\u6211\u76f8\u4fe1\u5728\u8fd9\u4e2a\u5feb\u901f\u53d1\u5c55\u7684\u884c\u4e1a\u4e2d\uff0c\u6301\u7eed\u4e0d\u65ad\u5730\u5b66\u4e60\u548c\u8fdb\u6b65\u662f\u5fc5\u4e0d\u53ef\u5c11\u7684\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2c29bcc5.9cacb31e.js b/assets/js/2c29bcc5.d65d4e1b.js similarity index 98% rename from assets/js/2c29bcc5.9cacb31e.js rename to assets/js/2c29bcc5.d65d4e1b.js index 265e96e3b..11db6a706 100644 --- a/assets/js/2c29bcc5.9cacb31e.js +++ b/assets/js/2c29bcc5.d65d4e1b.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7748],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>m});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),d=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},p=function(e){var t=d(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),u=d(r),f=o,m=u["".concat(l,".").concat(f)]||u[f]||s[f]||i;return r?n.createElement(m,a(a({ref:t},p),{},{components:r})):n.createElement(m,a({ref:t},p))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=f;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[u]="string"==typeof e?e:o,a[1]=c;for(var d=2;d{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>s,frontMatter:()=>i,metadata:()=>c,toc:()=>d});var n=r(8168),o=(r(6540),r(5680));const i={sidebar_position:5},a="\u8bbe\u5907\u4fe1\u606f\u7ba1\u7406",c={unversionedId:"iotcloud/devicemanager/device-info",id:"iotcloud/devicemanager/device-info",title:"\u8bbe\u5907\u4fe1\u606f\u7ba1\u7406",description:"",source:"@site/docs/iotcloud/devicemanager/device-info.md",sourceDirName:"iotcloud/devicemanager",slug:"/iotcloud/devicemanager/device-info",permalink:"/docs/iotcloud/devicemanager/device-info",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"iotCloudSidebar",previous:{title:"\u8bbe\u5907\u7c7b\u578b\u7ba1\u7406",permalink:"/docs/iotcloud/devicemanager/device-type"},next:{title:"\u8bbe\u5907\u5206\u7ec4\u7ba1\u7406",permalink:"/docs/iotcloud/devicemanager/device-group"}},l={},d=[],p={toc:d},u="wrapper";function s(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u8bbe\u5907\u4fe1\u606f\u7ba1\u7406"},"\u8bbe\u5907\u4fe1\u606f\u7ba1\u7406"))}s.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7748],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>m});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),d=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},p=function(e){var t=d(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),u=d(r),f=o,m=u["".concat(l,".").concat(f)]||u[f]||s[f]||i;return r?n.createElement(m,a(a({ref:t},p),{},{components:r})):n.createElement(m,a({ref:t},p))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=f;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[u]="string"==typeof e?e:o,a[1]=c;for(var d=2;d{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>s,frontMatter:()=>i,metadata:()=>c,toc:()=>d});var n=r(8168),o=(r(6540),r(5680));const i={sidebar_position:5},a="\u8bbe\u5907\u4fe1\u606f\u7ba1\u7406",c={unversionedId:"iotcloud/devicemanager/device-info",id:"iotcloud/devicemanager/device-info",title:"\u8bbe\u5907\u4fe1\u606f\u7ba1\u7406",description:"",source:"@site/docs/iotcloud/devicemanager/device-info.md",sourceDirName:"iotcloud/devicemanager",slug:"/iotcloud/devicemanager/device-info",permalink:"/docs/iotcloud/devicemanager/device-info",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"iotCloudSidebar",previous:{title:"\u8bbe\u5907\u7c7b\u578b\u7ba1\u7406",permalink:"/docs/iotcloud/devicemanager/device-type"},next:{title:"\u8bbe\u5907\u5206\u7ec4\u7ba1\u7406",permalink:"/docs/iotcloud/devicemanager/device-group"}},l={},d=[],p={toc:d},u="wrapper";function s(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u8bbe\u5907\u4fe1\u606f\u7ba1\u7406"},"\u8bbe\u5907\u4fe1\u606f\u7ba1\u7406"))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2d2ef872.0e5d2435.js b/assets/js/2d2ef872.d9932977.js similarity index 99% rename from assets/js/2d2ef872.0e5d2435.js rename to assets/js/2d2ef872.d9932977.js index 88a1a17cc..bb46c5722 100644 --- a/assets/js/2d2ef872.0e5d2435.js +++ b/assets/js/2d2ef872.d9932977.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4283],{5680:(e,t,r)=>{r.d(t,{xA:()=>c,yg:()=>g});var n=r(6540);function l(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(l[r]=e[r]);return l}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(l[r]=e[r])}return l}var p=n.createContext({}),u=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},c=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},y="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,l=e.mdxType,o=e.originalType,p=e.parentName,c=a(e,["components","mdxType","originalType","parentName"]),y=u(r),d=l,g=y["".concat(p,".").concat(d)]||y[d]||s[d]||o;return r?n.createElement(g,i(i({ref:t},c),{},{components:r})):n.createElement(g,i({ref:t},c))}));function g(e,t){var r=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var o=r.length,i=new Array(o);i[0]=d;var a={};for(var p in t)hasOwnProperty.call(t,p)&&(a[p]=t[p]);a.originalType=e,a[y]="string"==typeof e?e:l,i[1]=a;for(var u=2;u{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>s,frontMatter:()=>o,metadata:()=>a,toc:()=>u});var n=r(8168),l=(r(6540),r(5680));const o={},i="\u52a0\u89e3\u5bc6",a={unversionedId:"study/encryption/index",id:"study/encryption/index",title:"\u52a0\u89e3\u5bc6",description:"\u52a0\u5bc6\u548c\u89e3\u5bc6",source:"@site/docs/study/encryption/index.md",sourceDirName:"study/encryption",slug:"/study/encryption/",permalink:"/docs/study/encryption/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"SSL TLS HTTPS",permalink:"/docs/study/encryption/SSL_TLS"},next:{title:"\u4e2d\u56fd\u5546\u7528\u5bc6\u7801\u7b97\u6cd5",permalink:"/docs/study/encryption/\u4e2d\u56fd\u5546\u7528\u5bc6\u7801\u7b97\u6cd5"}},p={},u=[{value:"\u52a0\u5bc6\u548c\u89e3\u5bc6",id:"\u52a0\u5bc6\u548c\u89e3\u5bc6",level:3},{value:"\u660e\u6587\u548c\u5bc6\u6587",id:"\u660e\u6587\u548c\u5bc6\u6587",level:3},{value:"\u52a0\u5bc6\u7684\u5bc6\u94a5",id:"\u52a0\u5bc6\u7684\u5bc6\u94a5",level:3},{value:"\u5bf9\u79f0\u4e0e\u975e\u5bf9\u79f0",id:"\u5bf9\u79f0\u4e0e\u975e\u5bf9\u79f0",level:3},{value:"\u5bf9\u79f0\u52a0\u5bc6",id:"\u5bf9\u79f0\u52a0\u5bc6",level:4},{value:"\u975e\u5bf9\u79f0\u52a0\u5bc6",id:"\u975e\u5bf9\u79f0\u52a0\u5bc6",level:4},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],c={toc:u},y="wrapper";function s(e){let{components:t,...r}=e;return(0,l.yg)(y,(0,n.A)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,l.yg)("h1",{id:"\u52a0\u89e3\u5bc6"},"\u52a0\u89e3\u5bc6"),(0,l.yg)("h3",{id:"\u52a0\u5bc6\u548c\u89e3\u5bc6"},"\u52a0\u5bc6\u548c\u89e3\u5bc6"),(0,l.yg)("p",null,"\u52a0\u5bc6\u662f\u4ee5\u67d0\u79cd\u7279\u5b9a\u7684\u7b97\u6cd5\uff0c\u6539\u53d8\u539f\u6709\u7684\u6570\u636e\u4fe1\u606f\uff0c\u4f7f\u5f97\u672a\u6388\u6743\u7684\u7528\u6237\u5373\u4f7f\u83b7\u5f97\u4e86\u52a0\u5bc6\u540e\u7684\u6570\u636e\uff0c\u4f46\u56e0\u4e0d\u77e5\u89e3\u5bc6\u7684\u65b9\u6cd5\uff08\u786e\u5207\u7684\u8bf4\u662f\u4e0d\u77e5\u9053\u5bc6\u94a5\uff09\uff0c\u4ecd\u7136\u65e0\u6cd5\u4e86\u89e3\u5176\u4fe1\u606f\u5185\u5bb9\u3002\u800c\u89e3\u5bc6\u5219\u662f\u52a0\u5bc6\u7684\u9006\u8fc7\u7a0b\u3002"),(0,l.yg)("h3",{id:"\u660e\u6587\u548c\u5bc6\u6587"},"\u660e\u6587\u548c\u5bc6\u6587"),(0,l.yg)("p",null,"\u6211\u4eec\u79f0\u5c1a\u672a\u52a0\u5bc6\u7684\u6570\u636e\u4e3a\u660e\u6587\uff0c\u901a\u8fc7\u56fa\u5b9a\u7b97\u6cd5\u52a0\u5bc6\u540e\u7684\u6570\u636e\u4e3a\u5bc6\u6587\u3002"),(0,l.yg)("h3",{id:"\u52a0\u5bc6\u7684\u5bc6\u94a5"},"\u52a0\u5bc6\u7684\u5bc6\u94a5"),(0,l.yg)("p",null,"\u5bc6\u94a5\u662f\u4e00\u79cd\u53c2\u6570\uff0c\u5b83\u662f\u5728\u660e\u6587\u8f6c\u6362\u4e3a\u5bc6\u6587\u6216\u5bc6\u6587\u8f6c\u6362\u4e3a\u660e\u6587\u65f6\u7b97\u6cd5\u7684\u8f93\u5165\u53c2\u6570\u3002\u53ef\u4ee5\u7406\u89e3\u6210\u5bc6\u7801\u7684\u94a5\u5319\u3002"),(0,l.yg)("h3",{id:"\u5bf9\u79f0\u4e0e\u975e\u5bf9\u79f0"},"\u5bf9\u79f0\u4e0e\u975e\u5bf9\u79f0"),(0,l.yg)("h4",{id:"\u5bf9\u79f0\u52a0\u5bc6"},"\u5bf9\u79f0\u52a0\u5bc6"),(0,l.yg)("p",null,"\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u4e2d\uff0c\u6570\u636e\u53d1\u9001\u65b9\u5c06\u660e\u6587\u548c\u5bc6\u94a5\u4e00\u8d77\u7ecf\u8fc7\u7279\u6b8a\u52a0\u5bc6\u7b97\u6cd5\u5904\u7406\u6210\u5bc6\u6587\u540e\uff0c\u5c06\u5b83\u53d1\u9001\u51fa\u53bb\u3002\u63a5\u6536\u65b9\u6536\u5230\u5bc6\u6587\u540e\uff0c\u82e5\u60f3\u89e3\u8bfb\u539f\u6587\uff0c\u5219\u9700\u8981\u4f7f\u7528\u52a0\u5bc6\u7528\u5230\u7684\u76f8\u540c\u5bc6\u94a5\u53ca\u76f8\u540c\u7b97\u6cd5\u7684\u9006\u7b97\u6cd5\u5bf9\u5bc6\u6587\u8fdb\u884c\u89e3\u5bc6\uff0c\u624d\u80fd\u4f7f\u5176\u6062\u590d\u6210\u539f\u6587\u3002"),(0,l.yg)("p",null,"\u5b83\u7684\u6700\u5927\u4f18\u52bf\u662f\u52a0/\u89e3\u5bc6\u901f\u5ea6\u5feb\uff0c\u9002\u7528\u4e8e\u5927\u6570\u636e\u91cf\u8fdb\u884c\u52a0\u5bc6\uff0c\u7f3a\u70b9\u662f\u5bc6\u94a5\u7ba1\u7406\u56f0\u96be\uff0c\u6700\u5178\u578b\u7684\u95ee\u9898\u5c31\u662f\u5982\u4f55\u540c\u6b65\u8fd9\u4e2a\u5bc6\u94a5\uff0c\u540c\u6b65\u8fc7\u7a0b\u5982\u679c\u5728\u516c\u7f51\u4e0a\uff0c\u4e0d\u8fdb\u884c\u52a0\u5bc6\u662f\u53ef\u4ee5\u6293\u5305\u62ff\u5230\u7684\uff0c\u90a3\u4e48\u8fd9\u91cc\u5c31\u9047\u5230\u4e86\u8981\u5bf9\u5bc6\u94a5\u52a0\u5bc6\u7684\u95ee\u9898\u3002"),(0,l.yg)("p",null,"\u5e38\u89c1\u7684\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u6709 AES\u3001DES\u3001Blowfish \u7b49\u7b49\u3002"),(0,l.yg)("p",null,"\u5bf9\u79f0\u52a0\u5bc6\u7684\u6838\u5fc3\u662f\u53ea\u6709\u4e00\u628a\u5bc6\u94a5\u3002"),(0,l.yg)("h4",{id:"\u975e\u5bf9\u79f0\u52a0\u5bc6"},"\u975e\u5bf9\u79f0\u52a0\u5bc6"),(0,l.yg)("p",null,"\u975e\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u4e2d\uff0c\u6709\u4e24\u4e2a\u5bc6\u94a5\uff1a\u516c\u94a5\u548c\u79c1\u94a5\u3002\u5b83\u4eec\u662f\u4e00\u5bf9\uff0c\u5982\u679c\u7528\u516c\u94a5\u8fdb\u884c\u52a0\u5bc6\uff0c\u53ea\u6709\u7528\u5bf9\u5e94\u7684\u79c1\u94a5\u624d\u80fd\u89e3\u5bc6\uff1b\u5982\u679c\u7528\u79c1\u94a5\u8fdb\u884c\u52a0\u5bc6\uff0c\u53ea\u6709\u7528\u5bf9\u5e94\u7684\u516c\u94a5\u624d\u80fd\u89e3\u5bc6\u3002"),(0,l.yg)("p",null,"\u975e\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u5b9e\u73b0\u673a\u5bc6\u4fe1\u606f\u7684\u4ea4\u6362\u8fc7\u7a0b\u4e3a\uff1a\u7532\u65b9\u751f\u6210\u4e00\u5bf9\u5bc6\u94a5\u5e76\u5c06\u5176\u4e2d\u4e00\u4e2a\u4f5c\u4e3a\u516c\u94a5\u5411\u5176\u4ed6\u65b9\u516c\u5f00\uff1b\u5f97\u5230\u8be5\u516c\u94a5\u7684\u4e59\u65b9\u4f7f\u7528\u8be5\u5bc6\u94a5\u5bf9\u673a\u5bc6\u4fe1\u606f\u8fdb\u884c\u52a0\u5bc6\u540e\u53d1\u9001\u7ed9\u7532\u65b9\uff1b\u7532\u65b9\u518d\u7528\u81ea\u5df1\u7684\u53e6\u4e00\u4e2a\u4e13\u7528\u5bc6\u94a5\u5bf9\u52a0\u5bc6\u540e\u7684\u4fe1\u606f\u8fdb\u884c\u89e3\u5bc6\u3002"),(0,l.yg)("p",null,"\u6700\u6709\u540d\u7684\u975e\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u5f53\u5c5e RSA \u4e86\uff0c\u672c\u6587\u5c06\u5bf9 RSA \u7b97\u6cd5\u7684\u52a0/\u89e3\u5bc6\u8fc7\u7a0b\u8fdb\u884c\u8be6\u7ec6\u5256\u6790\u3002"),(0,l.yg)("p",null,"\u975e\u5bf9\u79f0\u52a0\u5bc6\u62e5\u6709\u4e24\u628a\u5bc6\u94a5\u3002"),(0,l.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://zh.wikipedia.org/wiki/%E5%BD%A9%E8%99%B9%E8%A1%A8"},"WIKI-\u5f69\u8679\u8868")),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"http://gmssl.org/"},"http://gmssl.org/"))))}s.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4283],{5680:(e,t,r)=>{r.d(t,{xA:()=>c,yg:()=>g});var n=r(6540);function l(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(l[r]=e[r]);return l}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(l[r]=e[r])}return l}var p=n.createContext({}),u=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},c=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},y="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,l=e.mdxType,o=e.originalType,p=e.parentName,c=a(e,["components","mdxType","originalType","parentName"]),y=u(r),d=l,g=y["".concat(p,".").concat(d)]||y[d]||s[d]||o;return r?n.createElement(g,i(i({ref:t},c),{},{components:r})):n.createElement(g,i({ref:t},c))}));function g(e,t){var r=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var o=r.length,i=new Array(o);i[0]=d;var a={};for(var p in t)hasOwnProperty.call(t,p)&&(a[p]=t[p]);a.originalType=e,a[y]="string"==typeof e?e:l,i[1]=a;for(var u=2;u{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>s,frontMatter:()=>o,metadata:()=>a,toc:()=>u});var n=r(8168),l=(r(6540),r(5680));const o={},i="\u52a0\u89e3\u5bc6",a={unversionedId:"study/encryption/index",id:"study/encryption/index",title:"\u52a0\u89e3\u5bc6",description:"\u52a0\u5bc6\u548c\u89e3\u5bc6",source:"@site/docs/study/encryption/index.md",sourceDirName:"study/encryption",slug:"/study/encryption/",permalink:"/docs/study/encryption/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"SSL TLS HTTPS",permalink:"/docs/study/encryption/SSL_TLS"},next:{title:"\u4e2d\u56fd\u5546\u7528\u5bc6\u7801\u7b97\u6cd5",permalink:"/docs/study/encryption/\u4e2d\u56fd\u5546\u7528\u5bc6\u7801\u7b97\u6cd5"}},p={},u=[{value:"\u52a0\u5bc6\u548c\u89e3\u5bc6",id:"\u52a0\u5bc6\u548c\u89e3\u5bc6",level:3},{value:"\u660e\u6587\u548c\u5bc6\u6587",id:"\u660e\u6587\u548c\u5bc6\u6587",level:3},{value:"\u52a0\u5bc6\u7684\u5bc6\u94a5",id:"\u52a0\u5bc6\u7684\u5bc6\u94a5",level:3},{value:"\u5bf9\u79f0\u4e0e\u975e\u5bf9\u79f0",id:"\u5bf9\u79f0\u4e0e\u975e\u5bf9\u79f0",level:3},{value:"\u5bf9\u79f0\u52a0\u5bc6",id:"\u5bf9\u79f0\u52a0\u5bc6",level:4},{value:"\u975e\u5bf9\u79f0\u52a0\u5bc6",id:"\u975e\u5bf9\u79f0\u52a0\u5bc6",level:4},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],c={toc:u},y="wrapper";function s(e){let{components:t,...r}=e;return(0,l.yg)(y,(0,n.A)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,l.yg)("h1",{id:"\u52a0\u89e3\u5bc6"},"\u52a0\u89e3\u5bc6"),(0,l.yg)("h3",{id:"\u52a0\u5bc6\u548c\u89e3\u5bc6"},"\u52a0\u5bc6\u548c\u89e3\u5bc6"),(0,l.yg)("p",null,"\u52a0\u5bc6\u662f\u4ee5\u67d0\u79cd\u7279\u5b9a\u7684\u7b97\u6cd5\uff0c\u6539\u53d8\u539f\u6709\u7684\u6570\u636e\u4fe1\u606f\uff0c\u4f7f\u5f97\u672a\u6388\u6743\u7684\u7528\u6237\u5373\u4f7f\u83b7\u5f97\u4e86\u52a0\u5bc6\u540e\u7684\u6570\u636e\uff0c\u4f46\u56e0\u4e0d\u77e5\u89e3\u5bc6\u7684\u65b9\u6cd5\uff08\u786e\u5207\u7684\u8bf4\u662f\u4e0d\u77e5\u9053\u5bc6\u94a5\uff09\uff0c\u4ecd\u7136\u65e0\u6cd5\u4e86\u89e3\u5176\u4fe1\u606f\u5185\u5bb9\u3002\u800c\u89e3\u5bc6\u5219\u662f\u52a0\u5bc6\u7684\u9006\u8fc7\u7a0b\u3002"),(0,l.yg)("h3",{id:"\u660e\u6587\u548c\u5bc6\u6587"},"\u660e\u6587\u548c\u5bc6\u6587"),(0,l.yg)("p",null,"\u6211\u4eec\u79f0\u5c1a\u672a\u52a0\u5bc6\u7684\u6570\u636e\u4e3a\u660e\u6587\uff0c\u901a\u8fc7\u56fa\u5b9a\u7b97\u6cd5\u52a0\u5bc6\u540e\u7684\u6570\u636e\u4e3a\u5bc6\u6587\u3002"),(0,l.yg)("h3",{id:"\u52a0\u5bc6\u7684\u5bc6\u94a5"},"\u52a0\u5bc6\u7684\u5bc6\u94a5"),(0,l.yg)("p",null,"\u5bc6\u94a5\u662f\u4e00\u79cd\u53c2\u6570\uff0c\u5b83\u662f\u5728\u660e\u6587\u8f6c\u6362\u4e3a\u5bc6\u6587\u6216\u5bc6\u6587\u8f6c\u6362\u4e3a\u660e\u6587\u65f6\u7b97\u6cd5\u7684\u8f93\u5165\u53c2\u6570\u3002\u53ef\u4ee5\u7406\u89e3\u6210\u5bc6\u7801\u7684\u94a5\u5319\u3002"),(0,l.yg)("h3",{id:"\u5bf9\u79f0\u4e0e\u975e\u5bf9\u79f0"},"\u5bf9\u79f0\u4e0e\u975e\u5bf9\u79f0"),(0,l.yg)("h4",{id:"\u5bf9\u79f0\u52a0\u5bc6"},"\u5bf9\u79f0\u52a0\u5bc6"),(0,l.yg)("p",null,"\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u4e2d\uff0c\u6570\u636e\u53d1\u9001\u65b9\u5c06\u660e\u6587\u548c\u5bc6\u94a5\u4e00\u8d77\u7ecf\u8fc7\u7279\u6b8a\u52a0\u5bc6\u7b97\u6cd5\u5904\u7406\u6210\u5bc6\u6587\u540e\uff0c\u5c06\u5b83\u53d1\u9001\u51fa\u53bb\u3002\u63a5\u6536\u65b9\u6536\u5230\u5bc6\u6587\u540e\uff0c\u82e5\u60f3\u89e3\u8bfb\u539f\u6587\uff0c\u5219\u9700\u8981\u4f7f\u7528\u52a0\u5bc6\u7528\u5230\u7684\u76f8\u540c\u5bc6\u94a5\u53ca\u76f8\u540c\u7b97\u6cd5\u7684\u9006\u7b97\u6cd5\u5bf9\u5bc6\u6587\u8fdb\u884c\u89e3\u5bc6\uff0c\u624d\u80fd\u4f7f\u5176\u6062\u590d\u6210\u539f\u6587\u3002"),(0,l.yg)("p",null,"\u5b83\u7684\u6700\u5927\u4f18\u52bf\u662f\u52a0/\u89e3\u5bc6\u901f\u5ea6\u5feb\uff0c\u9002\u7528\u4e8e\u5927\u6570\u636e\u91cf\u8fdb\u884c\u52a0\u5bc6\uff0c\u7f3a\u70b9\u662f\u5bc6\u94a5\u7ba1\u7406\u56f0\u96be\uff0c\u6700\u5178\u578b\u7684\u95ee\u9898\u5c31\u662f\u5982\u4f55\u540c\u6b65\u8fd9\u4e2a\u5bc6\u94a5\uff0c\u540c\u6b65\u8fc7\u7a0b\u5982\u679c\u5728\u516c\u7f51\u4e0a\uff0c\u4e0d\u8fdb\u884c\u52a0\u5bc6\u662f\u53ef\u4ee5\u6293\u5305\u62ff\u5230\u7684\uff0c\u90a3\u4e48\u8fd9\u91cc\u5c31\u9047\u5230\u4e86\u8981\u5bf9\u5bc6\u94a5\u52a0\u5bc6\u7684\u95ee\u9898\u3002"),(0,l.yg)("p",null,"\u5e38\u89c1\u7684\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u6709 AES\u3001DES\u3001Blowfish \u7b49\u7b49\u3002"),(0,l.yg)("p",null,"\u5bf9\u79f0\u52a0\u5bc6\u7684\u6838\u5fc3\u662f\u53ea\u6709\u4e00\u628a\u5bc6\u94a5\u3002"),(0,l.yg)("h4",{id:"\u975e\u5bf9\u79f0\u52a0\u5bc6"},"\u975e\u5bf9\u79f0\u52a0\u5bc6"),(0,l.yg)("p",null,"\u975e\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u4e2d\uff0c\u6709\u4e24\u4e2a\u5bc6\u94a5\uff1a\u516c\u94a5\u548c\u79c1\u94a5\u3002\u5b83\u4eec\u662f\u4e00\u5bf9\uff0c\u5982\u679c\u7528\u516c\u94a5\u8fdb\u884c\u52a0\u5bc6\uff0c\u53ea\u6709\u7528\u5bf9\u5e94\u7684\u79c1\u94a5\u624d\u80fd\u89e3\u5bc6\uff1b\u5982\u679c\u7528\u79c1\u94a5\u8fdb\u884c\u52a0\u5bc6\uff0c\u53ea\u6709\u7528\u5bf9\u5e94\u7684\u516c\u94a5\u624d\u80fd\u89e3\u5bc6\u3002"),(0,l.yg)("p",null,"\u975e\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u5b9e\u73b0\u673a\u5bc6\u4fe1\u606f\u7684\u4ea4\u6362\u8fc7\u7a0b\u4e3a\uff1a\u7532\u65b9\u751f\u6210\u4e00\u5bf9\u5bc6\u94a5\u5e76\u5c06\u5176\u4e2d\u4e00\u4e2a\u4f5c\u4e3a\u516c\u94a5\u5411\u5176\u4ed6\u65b9\u516c\u5f00\uff1b\u5f97\u5230\u8be5\u516c\u94a5\u7684\u4e59\u65b9\u4f7f\u7528\u8be5\u5bc6\u94a5\u5bf9\u673a\u5bc6\u4fe1\u606f\u8fdb\u884c\u52a0\u5bc6\u540e\u53d1\u9001\u7ed9\u7532\u65b9\uff1b\u7532\u65b9\u518d\u7528\u81ea\u5df1\u7684\u53e6\u4e00\u4e2a\u4e13\u7528\u5bc6\u94a5\u5bf9\u52a0\u5bc6\u540e\u7684\u4fe1\u606f\u8fdb\u884c\u89e3\u5bc6\u3002"),(0,l.yg)("p",null,"\u6700\u6709\u540d\u7684\u975e\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u5f53\u5c5e RSA \u4e86\uff0c\u672c\u6587\u5c06\u5bf9 RSA \u7b97\u6cd5\u7684\u52a0/\u89e3\u5bc6\u8fc7\u7a0b\u8fdb\u884c\u8be6\u7ec6\u5256\u6790\u3002"),(0,l.yg)("p",null,"\u975e\u5bf9\u79f0\u52a0\u5bc6\u62e5\u6709\u4e24\u628a\u5bc6\u94a5\u3002"),(0,l.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://zh.wikipedia.org/wiki/%E5%BD%A9%E8%99%B9%E8%A1%A8"},"WIKI-\u5f69\u8679\u8868")),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"http://gmssl.org/"},"http://gmssl.org/"))))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2dda2596.f4bd4794.js b/assets/js/2dda2596.e92fe0f2.js similarity index 97% rename from assets/js/2dda2596.f4bd4794.js rename to assets/js/2dda2596.e92fe0f2.js index fe00480ff..a989daa92 100644 --- a/assets/js/2dda2596.f4bd4794.js +++ b/assets/js/2dda2596.e92fe0f2.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8906],{5680:(e,t,r)=>{r.d(t,{xA:()=>l,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},l=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),u=p(r),f=o,y=u["".concat(s,".").concat(f)]||u[f]||d[f]||a;return r?n.createElement(y,i(i({ref:t},l),{},{components:r})):n.createElement(y,i({ref:t},l))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=f;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[u]="string"==typeof e?e:o,i[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={},i="Linux iptables \u9632\u706b\u5899",c={unversionedId:"study/net/iptables",id:"study/net/iptables",title:"Linux iptables \u9632\u706b\u5899",description:"",source:"@site/docs/study/net/iptables.md",sourceDirName:"study/net",slug:"/study/net/iptables",permalink:"/docs/study/net/iptables",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Linux ip \u547d\u4ee4",permalink:"/docs/study/net/ip"},next:{title:"Linux netns",permalink:"/docs/study/net/netns"}},s={},p=[],l={toc:p},u="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"linux-iptables-\u9632\u706b\u5899"},"Linux iptables \u9632\u706b\u5899"))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8906],{5680:(e,t,r)=>{r.d(t,{xA:()=>l,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},l=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),u=p(r),f=o,y=u["".concat(s,".").concat(f)]||u[f]||d[f]||a;return r?n.createElement(y,i(i({ref:t},l),{},{components:r})):n.createElement(y,i({ref:t},l))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=f;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[u]="string"==typeof e?e:o,i[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={},i="Linux iptables \u9632\u706b\u5899",c={unversionedId:"study/net/iptables",id:"study/net/iptables",title:"Linux iptables \u9632\u706b\u5899",description:"",source:"@site/docs/study/net/iptables.md",sourceDirName:"study/net",slug:"/study/net/iptables",permalink:"/docs/study/net/iptables",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Linux ip \u547d\u4ee4",permalink:"/docs/study/net/ip"},next:{title:"Linux netns",permalink:"/docs/study/net/netns"}},s={},p=[],l={toc:p},u="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"linux-iptables-\u9632\u706b\u5899"},"Linux iptables \u9632\u706b\u5899"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2e250d6d.6e626755.js b/assets/js/2e250d6d.2865959b.js similarity index 98% rename from assets/js/2e250d6d.6e626755.js rename to assets/js/2e250d6d.2865959b.js index 48b8626cd..f4dd7b747 100644 --- a/assets/js/2e250d6d.6e626755.js +++ b/assets/js/2e250d6d.2865959b.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5565],{5680:(e,t,r)=>{r.d(t,{xA:()=>l,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var i=n.createContext({}),u=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},l=function(e){var t=u(e.components);return n.createElement(i.Provider,{value:t},e.children)},p="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),p=u(r),d=o,f=p["".concat(i,".").concat(d)]||p[d]||y[d]||a;return r?n.createElement(f,c(c({ref:t},l),{},{components:r})):n.createElement(f,c({ref:t},l))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=d;var s={};for(var i in t)hasOwnProperty.call(t,i)&&(s[i]=t[i]);s.originalType=e,s[p]="string"==typeof e?e:o,c[1]=s;for(var u=2;u{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>c,default:()=>y,frontMatter:()=>a,metadata:()=>s,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,s={unversionedId:"study/system/CPU\u7ebf\u7a0b\u5e76\u53d1",id:"study/system/CPU\u7ebf\u7a0b\u5e76\u53d1",title:"CPU\u7ebf\u7a0b\u5e76\u53d1",description:"CPU \u7ebf\u7a0b \u8fdb\u7a0b \u5e76\u53d1 \u5e76\u884c",source:"@site/docs/study/system/CPU\u7ebf\u7a0b\u5e76\u53d1.md",sourceDirName:"study/system",slug:"/study/system/CPU\u7ebf\u7a0b\u5e76\u53d1",permalink:"/docs/study/system/CPU\u7ebf\u7a0b\u5e76\u53d1",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"index",permalink:"/docs/study/system/"},next:{title:"\u64cd\u4f5c\u7cfb\u7edf IO \u77e5\u8bc6",permalink:"/docs/study/system/IO"}},i={},u=[{value:"CPU \u7ebf\u7a0b \u8fdb\u7a0b \u5e76\u53d1 \u5e76\u884c",id:"cpu-\u7ebf\u7a0b-\u8fdb\u7a0b-\u5e76\u53d1-\u5e76\u884c",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],l={toc:u},p="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(p,(0,n.A)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"cpu-\u7ebf\u7a0b-\u8fdb\u7a0b-\u5e76\u53d1-\u5e76\u884c"},"CPU \u7ebf\u7a0b \u8fdb\u7a0b \u5e76\u53d1 \u5e76\u884c"),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/490318618?utm_id=0"},"\u77e5\u4e4e-\u7b80\u5355\u7406\u89e3\uff1aCPU \u7269\u7406\u6570\uff0c\u6838\u5fc3\u6570\uff0c\u7ebf\u7a0b\u6570\uff0c\u8fdb\u7a0b\uff0c\u7ebf\u7a0b\uff0c\u534f\u7a0b\uff0c\u5e76\u53d1\uff0c\u5e76\u884c\u7684\u6982\u5ff5"))))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5565],{5680:(e,t,r)=>{r.d(t,{xA:()=>l,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var i=n.createContext({}),u=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},l=function(e){var t=u(e.components);return n.createElement(i.Provider,{value:t},e.children)},p="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),p=u(r),d=o,f=p["".concat(i,".").concat(d)]||p[d]||y[d]||a;return r?n.createElement(f,c(c({ref:t},l),{},{components:r})):n.createElement(f,c({ref:t},l))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=d;var s={};for(var i in t)hasOwnProperty.call(t,i)&&(s[i]=t[i]);s.originalType=e,s[p]="string"==typeof e?e:o,c[1]=s;for(var u=2;u{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>c,default:()=>y,frontMatter:()=>a,metadata:()=>s,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,s={unversionedId:"study/system/CPU\u7ebf\u7a0b\u5e76\u53d1",id:"study/system/CPU\u7ebf\u7a0b\u5e76\u53d1",title:"CPU\u7ebf\u7a0b\u5e76\u53d1",description:"CPU \u7ebf\u7a0b \u8fdb\u7a0b \u5e76\u53d1 \u5e76\u884c",source:"@site/docs/study/system/CPU\u7ebf\u7a0b\u5e76\u53d1.md",sourceDirName:"study/system",slug:"/study/system/CPU\u7ebf\u7a0b\u5e76\u53d1",permalink:"/docs/study/system/CPU\u7ebf\u7a0b\u5e76\u53d1",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"index",permalink:"/docs/study/system/"},next:{title:"\u64cd\u4f5c\u7cfb\u7edf IO \u77e5\u8bc6",permalink:"/docs/study/system/IO"}},i={},u=[{value:"CPU \u7ebf\u7a0b \u8fdb\u7a0b \u5e76\u53d1 \u5e76\u884c",id:"cpu-\u7ebf\u7a0b-\u8fdb\u7a0b-\u5e76\u53d1-\u5e76\u884c",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],l={toc:u},p="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(p,(0,n.A)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"cpu-\u7ebf\u7a0b-\u8fdb\u7a0b-\u5e76\u53d1-\u5e76\u884c"},"CPU \u7ebf\u7a0b \u8fdb\u7a0b \u5e76\u53d1 \u5e76\u884c"),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/490318618?utm_id=0"},"\u77e5\u4e4e-\u7b80\u5355\u7406\u89e3\uff1aCPU \u7269\u7406\u6570\uff0c\u6838\u5fc3\u6570\uff0c\u7ebf\u7a0b\u6570\uff0c\u8fdb\u7a0b\uff0c\u7ebf\u7a0b\uff0c\u534f\u7a0b\uff0c\u5e76\u53d1\uff0c\u5e76\u884c\u7684\u6982\u5ff5"))))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2e955f05.50b622f6.js b/assets/js/2e955f05.8bddec1d.js similarity index 98% rename from assets/js/2e955f05.50b622f6.js rename to assets/js/2e955f05.8bddec1d.js index 2c5a0f92f..bfdfb183e 100644 --- a/assets/js/2e955f05.50b622f6.js +++ b/assets/js/2e955f05.8bddec1d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6550],{5680:(e,t,n)=>{n.d(t,{xA:()=>u,yg:()=>y});var r=n(6540);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var p=r.createContext({}),l=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=l(e.components);return r.createElement(p.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},f=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),s=l(n),f=o,y=s["".concat(p,".").concat(f)]||s[f]||d[f]||a;return n?r.createElement(y,i(i({ref:t},u),{},{components:n})):r.createElement(y,i({ref:t},u))}));function y(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=f;var c={};for(var p in t)hasOwnProperty.call(t,p)&&(c[p]=t[p]);c.originalType=e,c[s]="string"==typeof e?e:o,i[1]=c;for(var l=2;l{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var r=n(8168),o=(n(6540),n(5680));const a={sidebar_position:1},i="\u6982\u8ff0",c={unversionedId:"xuanxing/devops/index",id:"xuanxing/devops/index",title:"\u6982\u8ff0",description:"\u4e00\u822c\u9700\u8981\u5305\u62ec\u5982\u4e0b\u5185\u5bb9\uff1a",source:"@site/docs/xuanxing/devops/index.md",sourceDirName:"xuanxing/devops",slug:"/xuanxing/devops/",permalink:"/docs/xuanxing/devops/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"xuanxingSidebar",previous:{title:"\u6982\u8ff0",permalink:"/docs/xuanxing/back/"},next:{title:"\u7efc\u8ff0",permalink:"/docs/xuanxing/thingsboard/"}},p={},l=[],u={toc:l},s="wrapper";function d(e){let{components:t,...n}=e;return(0,o.yg)(s,(0,r.A)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,o.yg)("p",null,"\u4e00\u822c\u9700\u8981\u5305\u62ec\u5982\u4e0b\u5185\u5bb9\uff1a"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"Jenkins \u6301\u7eed\u96c6\u6210\u3001\u90e8\u7f72"),(0,o.yg)("li",{parentName:"ul"},"Grafana+\u54e8\u5175 \u76d1\u63a7\u670d\u52a1"),(0,o.yg)("li",{parentName:"ul"},"\u5404\u79cd\u8fd0\u7ef4\u811a\u672c")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6550],{5680:(e,t,n)=>{n.d(t,{xA:()=>u,yg:()=>y});var r=n(6540);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var p=r.createContext({}),l=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=l(e.components);return r.createElement(p.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},f=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),s=l(n),f=o,y=s["".concat(p,".").concat(f)]||s[f]||d[f]||a;return n?r.createElement(y,i(i({ref:t},u),{},{components:n})):r.createElement(y,i({ref:t},u))}));function y(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=f;var c={};for(var p in t)hasOwnProperty.call(t,p)&&(c[p]=t[p]);c.originalType=e,c[s]="string"==typeof e?e:o,i[1]=c;for(var l=2;l{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var r=n(8168),o=(n(6540),n(5680));const a={sidebar_position:1},i="\u6982\u8ff0",c={unversionedId:"xuanxing/devops/index",id:"xuanxing/devops/index",title:"\u6982\u8ff0",description:"\u4e00\u822c\u9700\u8981\u5305\u62ec\u5982\u4e0b\u5185\u5bb9\uff1a",source:"@site/docs/xuanxing/devops/index.md",sourceDirName:"xuanxing/devops",slug:"/xuanxing/devops/",permalink:"/docs/xuanxing/devops/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"xuanxingSidebar",previous:{title:"\u6982\u8ff0",permalink:"/docs/xuanxing/back/"},next:{title:"\u7efc\u8ff0",permalink:"/docs/xuanxing/thingsboard/"}},p={},l=[],u={toc:l},s="wrapper";function d(e){let{components:t,...n}=e;return(0,o.yg)(s,(0,r.A)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,o.yg)("p",null,"\u4e00\u822c\u9700\u8981\u5305\u62ec\u5982\u4e0b\u5185\u5bb9\uff1a"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"Jenkins \u6301\u7eed\u96c6\u6210\u3001\u90e8\u7f72"),(0,o.yg)("li",{parentName:"ul"},"Grafana+\u54e8\u5175 \u76d1\u63a7\u670d\u52a1"),(0,o.yg)("li",{parentName:"ul"},"\u5404\u79cd\u8fd0\u7ef4\u811a\u672c")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2fa90042.650aa37e.js b/assets/js/2fa90042.b2f6f7c3.js similarity index 98% rename from assets/js/2fa90042.650aa37e.js rename to assets/js/2fa90042.b2f6f7c3.js index c2d19db02..9aa45f6fb 100644 --- a/assets/js/2fa90042.650aa37e.js +++ b/assets/js/2fa90042.b2f6f7c3.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5175],{5680:(e,n,t)=>{t.d(n,{xA:()=>u,yg:()=>k});var r=t(6540);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function a(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function l(e){for(var n=1;n=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var i=r.createContext({}),d=function(e){var n=r.useContext(i),t=n;return e&&(t="function"==typeof e?e(n):l(l({},n),e)),t},u=function(e){var n=d(e.components);return r.createElement(i.Provider,{value:n},e.children)},p="mdxType",s={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},y=r.forwardRef((function(e,n){var t=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),p=d(t),y=o,k=p["".concat(i,".").concat(y)]||p[y]||s[y]||a;return t?r.createElement(k,l(l({ref:n},u),{},{components:t})):r.createElement(k,l({ref:n},u))}));function k(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var a=t.length,l=new Array(a);l[0]=y;var c={};for(var i in n)hasOwnProperty.call(n,i)&&(c[i]=n[i]);c.originalType=e,c[p]="string"==typeof e?e:o,l[1]=c;for(var d=2;d{t.r(n),t.d(n,{assets:()=>i,contentTitle:()=>l,default:()=>s,frontMatter:()=>a,metadata:()=>c,toc:()=>d});var r=t(8168),o=(t(6540),t(5680));const a={},l=void 0,c={unversionedId:"study/docker/docker-linux",id:"study/docker/docker-linux",title:"docker-linux",description:"alpine",source:"@site/docs/study/docker/docker-linux.md",sourceDirName:"study/docker",slug:"/study/docker/docker-linux",permalink:"/docs/study/docker/docker-linux",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"docker-kafka",permalink:"/docs/study/docker/docker-kafka"},next:{title:"docker-mysql",permalink:"/docs/study/docker/docker-mysql"}},i={},d=[{value:"alpine",id:"alpine",level:3}],u={toc:d},p="wrapper";function s(e){let{components:n,...t}=e;return(0,o.yg)(p,(0,r.A)({},u,t,{components:n,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"alpine"},"alpine"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-shell"},"docker pull alpine:3.18.3\n\ndocker run -d \\\n-p 1883:1883 \\\n-p 8080:8080 \\\n-p 8081:8081 \\\n-p 8000:8000 \\\n-p 15000:15000 \\\n--privileged=true \\\n-e TZ=Asia/Shanghai \\\n--name alpine-study \\\nalpine:3.18.3\n")),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-shell"},'FROM alpine:3.18.3\nMAINTAINER jiot.cloud "cniiot@163.com"\nWORKDIR /root/iot-cloud-backend\nADD jdk-17_linux-x64_bin.tar.gz /root/iot-cloud-backend/\nENV JAVA_HOME=/root/iot-cloud-backend/jdk-17.0.8\nENV PATH=$JAVA_HOME/bin:$PATH\n')),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-shell"},"docker build -t jdk17:jiot.cloud .\n\ndocker run -it jdk17:jiot.cloud /bin/sh\n\ndocker pull debian:stable-slim\n\ndocker run -d \\\n-p 1883:1883 \\\n-p 8080:8080 \\\n-p 8081:8081 \\\n--privileged=true \\\n-e TZ=Asia/Shanghai \\\n--name debian-study \\\ndebian:stable-slim\n")),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-shell"},'FROM debian:stable-slim\nMAINTAINER jiot.cloud "cniiot@163.com"\nWORKDIR /root/iot-cloud-backend\nADD jdk-17_linux-x64_bin.tar.gz /root/iot-cloud-backend/\nENV JAVA_HOME=/root/iot-cloud-backend/jdk-17.0.8\nENV PATH=$JAVA_HOME/bin:$PATH\n')),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-shell"},"docker build -t jdk17:jiot.cloud .\n\ndocker run -it jdk17:jiot.cloud /bin/sh\n\ndocker pull centos:centos7.9.2009\n\ndocker run -d \\\n-p 1883:1883 \\\n-p 8080:8080 \\\n-p 8081:8081 \\\n--privileged=true \\\n-e TZ=Asia/Shanghai \\\n--name debian-study \\\ncentos:centos7.9.2009\n")),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-shell"},'FROM centos:centos7.9.2009\nMAINTAINER jiot.cloud "cniiot@163.com"\nWORKDIR /root/iot-cloud-backend\nADD jdk-17_linux-x64_bin.tar.gz /root/iot-cloud-backend/\nENV JAVA_HOME=/root/iot-cloud-backend/jdk-17.0.8\nENV PATH=$JAVA_HOME/bin:$PATH\n')),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-shell"},"docker build -t jdk17:jiot.cloud .\n\ndocker run -it jdk17:jiot.cloud /bin/sh\n")))}s.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5175],{5680:(e,n,t)=>{t.d(n,{xA:()=>u,yg:()=>k});var r=t(6540);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function a(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function l(e){for(var n=1;n=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var i=r.createContext({}),d=function(e){var n=r.useContext(i),t=n;return e&&(t="function"==typeof e?e(n):l(l({},n),e)),t},u=function(e){var n=d(e.components);return r.createElement(i.Provider,{value:n},e.children)},p="mdxType",s={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},y=r.forwardRef((function(e,n){var t=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),p=d(t),y=o,k=p["".concat(i,".").concat(y)]||p[y]||s[y]||a;return t?r.createElement(k,l(l({ref:n},u),{},{components:t})):r.createElement(k,l({ref:n},u))}));function k(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var a=t.length,l=new Array(a);l[0]=y;var c={};for(var i in n)hasOwnProperty.call(n,i)&&(c[i]=n[i]);c.originalType=e,c[p]="string"==typeof e?e:o,l[1]=c;for(var d=2;d{t.r(n),t.d(n,{assets:()=>i,contentTitle:()=>l,default:()=>s,frontMatter:()=>a,metadata:()=>c,toc:()=>d});var r=t(8168),o=(t(6540),t(5680));const a={},l=void 0,c={unversionedId:"study/docker/docker-linux",id:"study/docker/docker-linux",title:"docker-linux",description:"alpine",source:"@site/docs/study/docker/docker-linux.md",sourceDirName:"study/docker",slug:"/study/docker/docker-linux",permalink:"/docs/study/docker/docker-linux",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"docker-kafka",permalink:"/docs/study/docker/docker-kafka"},next:{title:"docker-mysql",permalink:"/docs/study/docker/docker-mysql"}},i={},d=[{value:"alpine",id:"alpine",level:3}],u={toc:d},p="wrapper";function s(e){let{components:n,...t}=e;return(0,o.yg)(p,(0,r.A)({},u,t,{components:n,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"alpine"},"alpine"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-shell"},"docker pull alpine:3.18.3\n\ndocker run -d \\\n-p 1883:1883 \\\n-p 8080:8080 \\\n-p 8081:8081 \\\n-p 8000:8000 \\\n-p 15000:15000 \\\n--privileged=true \\\n-e TZ=Asia/Shanghai \\\n--name alpine-study \\\nalpine:3.18.3\n")),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-shell"},'FROM alpine:3.18.3\nMAINTAINER jiot.cloud "cniiot@163.com"\nWORKDIR /root/iot-cloud-backend\nADD jdk-17_linux-x64_bin.tar.gz /root/iot-cloud-backend/\nENV JAVA_HOME=/root/iot-cloud-backend/jdk-17.0.8\nENV PATH=$JAVA_HOME/bin:$PATH\n')),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-shell"},"docker build -t jdk17:jiot.cloud .\n\ndocker run -it jdk17:jiot.cloud /bin/sh\n\ndocker pull debian:stable-slim\n\ndocker run -d \\\n-p 1883:1883 \\\n-p 8080:8080 \\\n-p 8081:8081 \\\n--privileged=true \\\n-e TZ=Asia/Shanghai \\\n--name debian-study \\\ndebian:stable-slim\n")),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-shell"},'FROM debian:stable-slim\nMAINTAINER jiot.cloud "cniiot@163.com"\nWORKDIR /root/iot-cloud-backend\nADD jdk-17_linux-x64_bin.tar.gz /root/iot-cloud-backend/\nENV JAVA_HOME=/root/iot-cloud-backend/jdk-17.0.8\nENV PATH=$JAVA_HOME/bin:$PATH\n')),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-shell"},"docker build -t jdk17:jiot.cloud .\n\ndocker run -it jdk17:jiot.cloud /bin/sh\n\ndocker pull centos:centos7.9.2009\n\ndocker run -d \\\n-p 1883:1883 \\\n-p 8080:8080 \\\n-p 8081:8081 \\\n--privileged=true \\\n-e TZ=Asia/Shanghai \\\n--name debian-study \\\ncentos:centos7.9.2009\n")),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-shell"},'FROM centos:centos7.9.2009\nMAINTAINER jiot.cloud "cniiot@163.com"\nWORKDIR /root/iot-cloud-backend\nADD jdk-17_linux-x64_bin.tar.gz /root/iot-cloud-backend/\nENV JAVA_HOME=/root/iot-cloud-backend/jdk-17.0.8\nENV PATH=$JAVA_HOME/bin:$PATH\n')),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-shell"},"docker build -t jdk17:jiot.cloud .\n\ndocker run -it jdk17:jiot.cloud /bin/sh\n")))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/319ed101.ee06c352.js b/assets/js/319ed101.cec8ab22.js similarity index 98% rename from assets/js/319ed101.ee06c352.js rename to assets/js/319ed101.cec8ab22.js index 7fa3697f7..ddeca994c 100644 --- a/assets/js/319ed101.ee06c352.js +++ b/assets/js/319ed101.cec8ab22.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4377],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),u=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),s=u(r),f=o,y=s["".concat(l,".").concat(f)]||s[f]||d[f]||i;return r?n.createElement(y,a(a({ref:t},p),{},{components:r})):n.createElement(y,a({ref:t},p))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=f;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[s]="string"==typeof e?e:o,a[1]=c;for(var u=2;u{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>c,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const i={sidebar_position:1},a="\u6982\u8ff0",c={unversionedId:"iotcloud/usercenter/index",id:"iotcloud/usercenter/index",title:"\u6982\u8ff0",description:"\u7528\u6237\u4e2d\u5fc3\u5305\u62ec\uff1a\u5f53\u524d\u767b\u5f55\u7528\u6237\u7684\u7528\u6237\u65e5\u5fd7\uff0c\u6ce8\u518c\u7528\u6237\u53ca\u5176\u76f8\u5173\u529f\u80fd\u7684\u4fe1\u606f\u8bbe\u7f6e\uff0cRAM \u7528\u6237\u7684\u7ba1\u7406\uff0c\u5ba2\u6237\u7684\u7ba1\u7406\u3002",source:"@site/docs/iotcloud/usercenter/index.md",sourceDirName:"iotcloud/usercenter",slug:"/iotcloud/usercenter/",permalink:"/docs/iotcloud/usercenter/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"iotCloudSidebar",previous:{title:"\u8bbe\u5907\u5206\u7ec4\u7ba1\u7406",permalink:"/docs/iotcloud/devicemanager/device-group"},next:{title:"\u7528\u6237\u65e5\u5fd7",permalink:"/docs/iotcloud/usercenter/user-log"}},l={},u=[],p={toc:u},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,o.yg)("p",null,"\u7528\u6237\u4e2d\u5fc3\u5305\u62ec\uff1a\u5f53\u524d\u767b\u5f55\u7528\u6237\u7684\u7528\u6237\u65e5\u5fd7\uff0c\u6ce8\u518c\u7528\u6237\u53ca\u5176\u76f8\u5173\u529f\u80fd\u7684\u4fe1\u606f\u8bbe\u7f6e\uff0cRAM \u7528\u6237\u7684\u7ba1\u7406\uff0c\u5ba2\u6237\u7684\u7ba1\u7406\u3002"),(0,o.yg)("p",null,"\u5e73\u53f0\u7528\u6237\u76f8\u5173\u7684\u540d\u8bcd\u89e3\u91ca\uff1a"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"\u6ce8\u518c\u7528\u6237\uff1a\u6ce8\u518c\u5230",(0,o.yg)("strong",{parentName:"li"},"Iot Cloud"),"\u5e73\u53f0\u7684\u7528\u6237\uff0c\u8fd9\u4e9b\u7528\u6237\u4e4b\u95f4\u90fd\u662f\u72ec\u7acb\u7684\uff0c\u4e00\u822c\u90fd\u662f\u5236\u9020\u8bbe\u5907\u7684\u4f01\u4e1a\u3001\u4f7f\u7528\u8bbe\u5907\u7684\u4f01\u4e1a\u4ee5\u53ca\u8bbe\u5907\u4ee3\u7406/\u670d\u52a1\u4f01\u4e1a\uff1b"),(0,o.yg)("li",{parentName:"ul"},"RAM \u7528\u6237\uff1a\u7531\u6ce8\u518c\u7528\u6237\u624b\u52a8\u6dfb\u52a0\uff0c\u4e00\u822c\u662f\u4f01\u4e1a\u5185\u90e8\u5458\u5de5\uff0c\u914d\u5408\u6ce8\u518c\u7528\u6237\u4e00\u5757\u7ba1\u7406\u7ef4\u62a4\u5e73\u53f0\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u5ba2\u6237\uff1a\u53ef\u7531\u6ce8\u518c\u7528\u6237\u6216\u6709\u6743\u9650\u7684\u7cfb\u7edf\u7528\u6237\u6dfb\u52a0\uff0c\u4e00\u822c\u662f\u5b9e\u9645\u4f7f\u7528\u8bbe\u5907\u7684\u4e2a\u4eba\u6216\u4f01\u4e1a\uff1b\u5982\u679c\u6ce8\u518c\u7528\u6237\u662f",(0,o.yg)("strong",{parentName:"li"},"\u4f7f\u7528\u8bbe\u5907\u7684\u4f01\u4e1a"),"\uff0c\u53ef\u80fd\u8fd9\u79cd\u60c5\u51b5\u65e0\u9700\u4f7f\u7528\u5ba2\u6237\u529f\u80fd\uff1b")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4377],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),u=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),s=u(r),f=o,y=s["".concat(l,".").concat(f)]||s[f]||d[f]||i;return r?n.createElement(y,a(a({ref:t},p),{},{components:r})):n.createElement(y,a({ref:t},p))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=f;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[s]="string"==typeof e?e:o,a[1]=c;for(var u=2;u{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>c,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const i={sidebar_position:1},a="\u6982\u8ff0",c={unversionedId:"iotcloud/usercenter/index",id:"iotcloud/usercenter/index",title:"\u6982\u8ff0",description:"\u7528\u6237\u4e2d\u5fc3\u5305\u62ec\uff1a\u5f53\u524d\u767b\u5f55\u7528\u6237\u7684\u7528\u6237\u65e5\u5fd7\uff0c\u6ce8\u518c\u7528\u6237\u53ca\u5176\u76f8\u5173\u529f\u80fd\u7684\u4fe1\u606f\u8bbe\u7f6e\uff0cRAM \u7528\u6237\u7684\u7ba1\u7406\uff0c\u5ba2\u6237\u7684\u7ba1\u7406\u3002",source:"@site/docs/iotcloud/usercenter/index.md",sourceDirName:"iotcloud/usercenter",slug:"/iotcloud/usercenter/",permalink:"/docs/iotcloud/usercenter/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"iotCloudSidebar",previous:{title:"\u8bbe\u5907\u5206\u7ec4\u7ba1\u7406",permalink:"/docs/iotcloud/devicemanager/device-group"},next:{title:"\u7528\u6237\u65e5\u5fd7",permalink:"/docs/iotcloud/usercenter/user-log"}},l={},u=[],p={toc:u},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,o.yg)("p",null,"\u7528\u6237\u4e2d\u5fc3\u5305\u62ec\uff1a\u5f53\u524d\u767b\u5f55\u7528\u6237\u7684\u7528\u6237\u65e5\u5fd7\uff0c\u6ce8\u518c\u7528\u6237\u53ca\u5176\u76f8\u5173\u529f\u80fd\u7684\u4fe1\u606f\u8bbe\u7f6e\uff0cRAM \u7528\u6237\u7684\u7ba1\u7406\uff0c\u5ba2\u6237\u7684\u7ba1\u7406\u3002"),(0,o.yg)("p",null,"\u5e73\u53f0\u7528\u6237\u76f8\u5173\u7684\u540d\u8bcd\u89e3\u91ca\uff1a"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"\u6ce8\u518c\u7528\u6237\uff1a\u6ce8\u518c\u5230",(0,o.yg)("strong",{parentName:"li"},"Iot Cloud"),"\u5e73\u53f0\u7684\u7528\u6237\uff0c\u8fd9\u4e9b\u7528\u6237\u4e4b\u95f4\u90fd\u662f\u72ec\u7acb\u7684\uff0c\u4e00\u822c\u90fd\u662f\u5236\u9020\u8bbe\u5907\u7684\u4f01\u4e1a\u3001\u4f7f\u7528\u8bbe\u5907\u7684\u4f01\u4e1a\u4ee5\u53ca\u8bbe\u5907\u4ee3\u7406/\u670d\u52a1\u4f01\u4e1a\uff1b"),(0,o.yg)("li",{parentName:"ul"},"RAM \u7528\u6237\uff1a\u7531\u6ce8\u518c\u7528\u6237\u624b\u52a8\u6dfb\u52a0\uff0c\u4e00\u822c\u662f\u4f01\u4e1a\u5185\u90e8\u5458\u5de5\uff0c\u914d\u5408\u6ce8\u518c\u7528\u6237\u4e00\u5757\u7ba1\u7406\u7ef4\u62a4\u5e73\u53f0\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u5ba2\u6237\uff1a\u53ef\u7531\u6ce8\u518c\u7528\u6237\u6216\u6709\u6743\u9650\u7684\u7cfb\u7edf\u7528\u6237\u6dfb\u52a0\uff0c\u4e00\u822c\u662f\u5b9e\u9645\u4f7f\u7528\u8bbe\u5907\u7684\u4e2a\u4eba\u6216\u4f01\u4e1a\uff1b\u5982\u679c\u6ce8\u518c\u7528\u6237\u662f",(0,o.yg)("strong",{parentName:"li"},"\u4f7f\u7528\u8bbe\u5907\u7684\u4f01\u4e1a"),"\uff0c\u53ef\u80fd\u8fd9\u79cd\u60c5\u51b5\u65e0\u9700\u4f7f\u7528\u5ba2\u6237\u529f\u80fd\uff1b")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/32dcf95e.f73cd1af.js b/assets/js/32dcf95e.97c92707.js similarity index 99% rename from assets/js/32dcf95e.f73cd1af.js rename to assets/js/32dcf95e.97c92707.js index 97e05a4ab..2dc413bdf 100644 --- a/assets/js/32dcf95e.f73cd1af.js +++ b/assets/js/32dcf95e.97c92707.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5650],{5680:(t,e,r)=>{r.d(e,{xA:()=>l,yg:()=>f});var o=r(6540);function n(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function a(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e&&(o=o.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,o)}return r}function s(t){for(var e=1;e=0||(n[r]=t[r]);return n}(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}var i=o.createContext({}),p=function(t){var e=o.useContext(i),r=e;return t&&(r="function"==typeof t?t(e):s(s({},e),t)),r},l=function(t){var e=p(t.components);return o.createElement(i.Provider,{value:e},t.children)},u="mdxType",d={inlineCode:"code",wrapper:function(t){var e=t.children;return o.createElement(o.Fragment,{},e)}},y=o.forwardRef((function(t,e){var r=t.components,n=t.mdxType,a=t.originalType,i=t.parentName,l=c(t,["components","mdxType","originalType","parentName"]),u=p(r),y=n,f=u["".concat(i,".").concat(y)]||u[y]||d[y]||a;return r?o.createElement(f,s(s({ref:e},l),{},{components:r})):o.createElement(f,s({ref:e},l))}));function f(t,e){var r=arguments,n=e&&e.mdxType;if("string"==typeof t||n){var a=r.length,s=new Array(a);s[0]=y;var c={};for(var i in e)hasOwnProperty.call(e,i)&&(c[i]=e[i]);c.originalType=t,c[u]="string"==typeof t?t:n,s[1]=c;for(var p=2;p{r.r(e),r.d(e,{assets:()=>i,contentTitle:()=>s,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var o=r(8168),n=(r(6540),r(5680));const a={},s=void 0,c={unversionedId:"study/db/OLAP/StarRocks",id:"study/db/OLAP/StarRocks",title:"StarRocks",description:"\u80cc\u666f\u4fe1\u606f",source:"@site/docs/study/db/OLAP/StarRocks.md",sourceDirName:"study/db/OLAP",slug:"/study/db/OLAP/StarRocks",permalink:"/docs/study/db/OLAP/StarRocks",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Kylin",permalink:"/docs/study/db/OLAP/Kylin"},next:{title:"\u7efc\u5408\u6982\u8ff0",permalink:"/docs/study/db/SQL/\u7efc\u5408\u6982\u8ff0"}},i={},p=[{value:"\u80cc\u666f\u4fe1\u606f",id:"\u80cc\u666f\u4fe1\u606f",level:4},{value:"\u6982\u8ff0",id:"\u6982\u8ff0",level:4}],l={toc:p},u="wrapper";function d(t){let{components:e,...r}=t;return(0,n.yg)(u,(0,o.A)({},l,r,{components:e,mdxType:"MDXLayout"}),(0,n.yg)("h4",{id:"\u80cc\u666f\u4fe1\u606f"},"\u80cc\u666f\u4fe1\u606f"),(0,n.yg)("p",null,"Doris \u6700\u65e9\u662f\u89e3\u51b3\u767e\u5ea6\u51e4\u5de2\u7edf\u8ba1\u62a5\u8868\u7684\u4e13\u7528\u7cfb\u7edf\uff0c\u968f\u7740\u767e\u5ea6\u4e1a\u52a1\u7684\u98de\u901f\u53d1\u5c55\u5bf9\u7cfb\u7edf\u8fdb\u884c\u4e86\u591a\u6b21\u8fed\u4ee3\uff0c\u9010\u6e10\u627f\u62c5\u8d77\u767e\u5ea6\u5185\u90e8\u4e1a\u52a1\u7684\u7edf\u8ba1\u62a5\u8868\u548c\u591a\u7ef4\u5206\u6790\u9700\u6c42\u30022013 \u5e74\uff0c\u6211\u4eec\u628a Doris \u8fdb\u884c\u4e86 MPP \u6846\u67b6\u7684\u5347\u7ea7\uff0c\u5e76\u5c06\u65b0\u7cfb\u7edf\u547d\u540d\u4e3a Palo \uff0c2017 \u5e74\u6211\u4eec\u4ee5\u767e\u5ea6 Palo \u7684\u540d\u5b57\u5728 GitHub \u4e0a\u8fdb\u884c\u4e86\u5f00\u6e90\uff0c2018 \u5e74\u8d21\u732e\u7ed9 Apache \u57fa\u91d1\u4f1a\u65f6\uff0c\u7531\u4e8e\u4e0e\u56fd\u5916\u6570\u636e\u5e93\u5382\u5546\u91cd\u540d\uff0c\u56e0\u6b64\u9009\u62e9\u7528\u56de\u6700\u521d\u7684\u540d\u5b57\uff0c\u8fd9\u5c31\u662f Apache Doris \u7684\u7531\u6765\u3002"),(0,n.yg)("p",null,"2020 \u5e74 2 \u6708\uff0c\u767e\u5ea6 Doris \u56e2\u961f\u7684\u4e2a\u522b\u540c\u5b66\u79bb\u804c\u521b\u4e1a\uff0c\u57fa\u4e8e Apache Doris\u505a\u4e86\u81ea\u5df1\u7684\u5546\u4e1a\u5316\u95ed\u6e90\u4ea7\u54c1 DorisDB \uff0c\u8fd9\u5c31\u662f StarRocks \u7684\u524d\u8eab\u3002"),(0,n.yg)("p",null,"\u3010\u603b\u7ed3\u3011Doris\u5c5e\u4e8e\u767e\u5ea6\u7684\uff0cApache Doris\u662f\u6709\u767e\u5ea6\u8d21\u732e\u7ed9Apache \u7684\uff0cDorisDB\u662f\u767e\u5ea6\u524d\u5458\u5de5\u57fa\u4e8eApache Doris\u505a\u7684\u5546\u4e1a\u7248\u672c\u5c5e\u4e8e\u53e6\u5916\u7684\u516c\u53f8\uff0c\u540e\u9762\u56e0\u4e3a\u7248\u6743\u7684\u95ee\u9898\uff0c\u5c06DorisDB\u6539\u540d\u4e3aStarRocks\uff0c\u6240\u4ee5StarRocks\u548cDorisDB\u662f\u5c5e\u4e8e\u4e00\u4e2a\u4ea7\u54c1\uff0c\u4e00\u4e2a\u516c\u53f8\u7684\u3002\u4e0d\u77e5\u9053\u5c0f\u4f19\u4f34\uff0c\u8fd8\u8bb0\u4e0d\u8bb0\u5f97\u53e6\u5916\u4e00\u4e2a\u4ea7\u54c1\u7684\u7ecf\u5386\u8ddfDoris\u7684\u7ecf\u5386\u975e\u5e38\u7684\u76f8\u4f3c\uff0c\u90a3\u5c31\u662fpresto\u3002\u8fd9\u91cc\u4e3b\u8981\u8bb2StarRocks\uff0c\u56e0\u4e3aStarRocks\u66f4\u65b0\u8fed\u4ee3\u5f88\u5feb\uff0c\u6d3b\u8dc3\u5ea6\u4e5f\u9ad8\u3002"),(0,n.yg)("p",null,"Apache Doris GitHub\u5730\u5740\uff1a",(0,n.yg)("a",{parentName:"p",href:"https://github.com/apache/doris"},"https://github.com/apache/doris")),(0,n.yg)("p",null,"Apache Doris \u5b98\u7f51\u6587\u6863\uff1a",(0,n.yg)("a",{parentName:"p",href:"https://doris.apache.org/docs/get-starting/get-starting.html"},"https://doris.apache.org/docs/get-starting/get-starting.html")),(0,n.yg)("p",null,"StarRocks GitHub\u5730\u5740\uff1a",(0,n.yg)("a",{parentName:"p",href:"https://github.com/StarRocks/starrocks"},"https://github.com/StarRocks/starrocks")),(0,n.yg)("p",null,"StarRocks\u5b98\u65b9\u6587\u6863\uff1a",(0,n.yg)("a",{parentName:"p",href:"https://docs.starrocks.com/zh-cn/main/introduction/StarRocks_intro"},"https://docs.starrocks.com/zh-cn/main/introduction/StarRocks_intro")),(0,n.yg)("h4",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,n.yg)("p",null,"StarRocks \u662f\u4e00\u6b3e\u9ad8\u6027\u80fd\u5206\u6790\u578b\u6570\u636e\u4ed3\u5e93\uff0c\u4f7f\u7528\u5411\u91cf\u5316\u3001MPP\uff08Massively Parallel Processing\uff1a\u5927\u89c4\u6a21\u5e76\u884c\u5904\u7406\uff09 \u67b6\u6784\u3001\u53ef\u5b9e\u65f6\u66f4\u65b0\u7684\u5217\u5f0f\u5b58\u50a8\u5f15\u64ce\u7b49\u6280\u672f\u5b9e\u73b0\u591a\u7ef4\u3001\u5b9e\u65f6\u3001\u9ad8\u5e76\u53d1\u7684\u6570\u636e\u5206\u6790\u3002StarRocks \u65e2\u652f\u6301\u4ece\u5404\u7c7b\u5b9e\u65f6\u548c\u79bb\u7ebf\u7684\u6570\u636e\u6e90\u9ad8\u6548\u5bfc\u5165\u6570\u636e\uff0c\u4e5f\u652f\u6301\u76f4\u63a5\u5206\u6790\u6570\u636e\u6e56\u4e0a\u5404\u79cd\u683c\u5f0f\u7684\u6570\u636e\u3002StarRocks \u517c\u5bb9 MySQL \u534f\u8bae\uff0c\u53ef\u4f7f\u7528 MySQL \u5ba2\u6237\u7aef\u548c\u5e38\u7528 BI \u5de5\u5177\u5bf9\u63a5\u3002\u540c\u65f6 StarRocks \u5177\u5907\u6c34\u5e73\u6269\u5c55\uff0c\u9ad8\u53ef\u7528\uff0c\u9ad8\u53ef\u9760\uff0c\u6613\u8fd0\u7ef4\u7b49\u7279\u6027\u3002\u5e7f\u6cdb\u5e94\u7528\u4e8e\u5b9e\u65f6\u6570\u4ed3\u3001OLAP \u62a5\u8868\u3001\u6570\u636e\u6e56\u5206\u6790\u7b49\u573a\u666f\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5650],{5680:(t,e,r)=>{r.d(e,{xA:()=>l,yg:()=>f});var o=r(6540);function n(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function a(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e&&(o=o.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,o)}return r}function s(t){for(var e=1;e=0||(n[r]=t[r]);return n}(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}var i=o.createContext({}),p=function(t){var e=o.useContext(i),r=e;return t&&(r="function"==typeof t?t(e):s(s({},e),t)),r},l=function(t){var e=p(t.components);return o.createElement(i.Provider,{value:e},t.children)},u="mdxType",d={inlineCode:"code",wrapper:function(t){var e=t.children;return o.createElement(o.Fragment,{},e)}},y=o.forwardRef((function(t,e){var r=t.components,n=t.mdxType,a=t.originalType,i=t.parentName,l=c(t,["components","mdxType","originalType","parentName"]),u=p(r),y=n,f=u["".concat(i,".").concat(y)]||u[y]||d[y]||a;return r?o.createElement(f,s(s({ref:e},l),{},{components:r})):o.createElement(f,s({ref:e},l))}));function f(t,e){var r=arguments,n=e&&e.mdxType;if("string"==typeof t||n){var a=r.length,s=new Array(a);s[0]=y;var c={};for(var i in e)hasOwnProperty.call(e,i)&&(c[i]=e[i]);c.originalType=t,c[u]="string"==typeof t?t:n,s[1]=c;for(var p=2;p{r.r(e),r.d(e,{assets:()=>i,contentTitle:()=>s,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var o=r(8168),n=(r(6540),r(5680));const a={},s=void 0,c={unversionedId:"study/db/OLAP/StarRocks",id:"study/db/OLAP/StarRocks",title:"StarRocks",description:"\u80cc\u666f\u4fe1\u606f",source:"@site/docs/study/db/OLAP/StarRocks.md",sourceDirName:"study/db/OLAP",slug:"/study/db/OLAP/StarRocks",permalink:"/docs/study/db/OLAP/StarRocks",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Kylin",permalink:"/docs/study/db/OLAP/Kylin"},next:{title:"\u7efc\u5408\u6982\u8ff0",permalink:"/docs/study/db/SQL/\u7efc\u5408\u6982\u8ff0"}},i={},p=[{value:"\u80cc\u666f\u4fe1\u606f",id:"\u80cc\u666f\u4fe1\u606f",level:4},{value:"\u6982\u8ff0",id:"\u6982\u8ff0",level:4}],l={toc:p},u="wrapper";function d(t){let{components:e,...r}=t;return(0,n.yg)(u,(0,o.A)({},l,r,{components:e,mdxType:"MDXLayout"}),(0,n.yg)("h4",{id:"\u80cc\u666f\u4fe1\u606f"},"\u80cc\u666f\u4fe1\u606f"),(0,n.yg)("p",null,"Doris \u6700\u65e9\u662f\u89e3\u51b3\u767e\u5ea6\u51e4\u5de2\u7edf\u8ba1\u62a5\u8868\u7684\u4e13\u7528\u7cfb\u7edf\uff0c\u968f\u7740\u767e\u5ea6\u4e1a\u52a1\u7684\u98de\u901f\u53d1\u5c55\u5bf9\u7cfb\u7edf\u8fdb\u884c\u4e86\u591a\u6b21\u8fed\u4ee3\uff0c\u9010\u6e10\u627f\u62c5\u8d77\u767e\u5ea6\u5185\u90e8\u4e1a\u52a1\u7684\u7edf\u8ba1\u62a5\u8868\u548c\u591a\u7ef4\u5206\u6790\u9700\u6c42\u30022013 \u5e74\uff0c\u6211\u4eec\u628a Doris \u8fdb\u884c\u4e86 MPP \u6846\u67b6\u7684\u5347\u7ea7\uff0c\u5e76\u5c06\u65b0\u7cfb\u7edf\u547d\u540d\u4e3a Palo \uff0c2017 \u5e74\u6211\u4eec\u4ee5\u767e\u5ea6 Palo \u7684\u540d\u5b57\u5728 GitHub \u4e0a\u8fdb\u884c\u4e86\u5f00\u6e90\uff0c2018 \u5e74\u8d21\u732e\u7ed9 Apache \u57fa\u91d1\u4f1a\u65f6\uff0c\u7531\u4e8e\u4e0e\u56fd\u5916\u6570\u636e\u5e93\u5382\u5546\u91cd\u540d\uff0c\u56e0\u6b64\u9009\u62e9\u7528\u56de\u6700\u521d\u7684\u540d\u5b57\uff0c\u8fd9\u5c31\u662f Apache Doris \u7684\u7531\u6765\u3002"),(0,n.yg)("p",null,"2020 \u5e74 2 \u6708\uff0c\u767e\u5ea6 Doris \u56e2\u961f\u7684\u4e2a\u522b\u540c\u5b66\u79bb\u804c\u521b\u4e1a\uff0c\u57fa\u4e8e Apache Doris\u505a\u4e86\u81ea\u5df1\u7684\u5546\u4e1a\u5316\u95ed\u6e90\u4ea7\u54c1 DorisDB \uff0c\u8fd9\u5c31\u662f StarRocks \u7684\u524d\u8eab\u3002"),(0,n.yg)("p",null,"\u3010\u603b\u7ed3\u3011Doris\u5c5e\u4e8e\u767e\u5ea6\u7684\uff0cApache Doris\u662f\u6709\u767e\u5ea6\u8d21\u732e\u7ed9Apache \u7684\uff0cDorisDB\u662f\u767e\u5ea6\u524d\u5458\u5de5\u57fa\u4e8eApache Doris\u505a\u7684\u5546\u4e1a\u7248\u672c\u5c5e\u4e8e\u53e6\u5916\u7684\u516c\u53f8\uff0c\u540e\u9762\u56e0\u4e3a\u7248\u6743\u7684\u95ee\u9898\uff0c\u5c06DorisDB\u6539\u540d\u4e3aStarRocks\uff0c\u6240\u4ee5StarRocks\u548cDorisDB\u662f\u5c5e\u4e8e\u4e00\u4e2a\u4ea7\u54c1\uff0c\u4e00\u4e2a\u516c\u53f8\u7684\u3002\u4e0d\u77e5\u9053\u5c0f\u4f19\u4f34\uff0c\u8fd8\u8bb0\u4e0d\u8bb0\u5f97\u53e6\u5916\u4e00\u4e2a\u4ea7\u54c1\u7684\u7ecf\u5386\u8ddfDoris\u7684\u7ecf\u5386\u975e\u5e38\u7684\u76f8\u4f3c\uff0c\u90a3\u5c31\u662fpresto\u3002\u8fd9\u91cc\u4e3b\u8981\u8bb2StarRocks\uff0c\u56e0\u4e3aStarRocks\u66f4\u65b0\u8fed\u4ee3\u5f88\u5feb\uff0c\u6d3b\u8dc3\u5ea6\u4e5f\u9ad8\u3002"),(0,n.yg)("p",null,"Apache Doris GitHub\u5730\u5740\uff1a",(0,n.yg)("a",{parentName:"p",href:"https://github.com/apache/doris"},"https://github.com/apache/doris")),(0,n.yg)("p",null,"Apache Doris \u5b98\u7f51\u6587\u6863\uff1a",(0,n.yg)("a",{parentName:"p",href:"https://doris.apache.org/docs/get-starting/get-starting.html"},"https://doris.apache.org/docs/get-starting/get-starting.html")),(0,n.yg)("p",null,"StarRocks GitHub\u5730\u5740\uff1a",(0,n.yg)("a",{parentName:"p",href:"https://github.com/StarRocks/starrocks"},"https://github.com/StarRocks/starrocks")),(0,n.yg)("p",null,"StarRocks\u5b98\u65b9\u6587\u6863\uff1a",(0,n.yg)("a",{parentName:"p",href:"https://docs.starrocks.com/zh-cn/main/introduction/StarRocks_intro"},"https://docs.starrocks.com/zh-cn/main/introduction/StarRocks_intro")),(0,n.yg)("h4",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,n.yg)("p",null,"StarRocks \u662f\u4e00\u6b3e\u9ad8\u6027\u80fd\u5206\u6790\u578b\u6570\u636e\u4ed3\u5e93\uff0c\u4f7f\u7528\u5411\u91cf\u5316\u3001MPP\uff08Massively Parallel Processing\uff1a\u5927\u89c4\u6a21\u5e76\u884c\u5904\u7406\uff09 \u67b6\u6784\u3001\u53ef\u5b9e\u65f6\u66f4\u65b0\u7684\u5217\u5f0f\u5b58\u50a8\u5f15\u64ce\u7b49\u6280\u672f\u5b9e\u73b0\u591a\u7ef4\u3001\u5b9e\u65f6\u3001\u9ad8\u5e76\u53d1\u7684\u6570\u636e\u5206\u6790\u3002StarRocks \u65e2\u652f\u6301\u4ece\u5404\u7c7b\u5b9e\u65f6\u548c\u79bb\u7ebf\u7684\u6570\u636e\u6e90\u9ad8\u6548\u5bfc\u5165\u6570\u636e\uff0c\u4e5f\u652f\u6301\u76f4\u63a5\u5206\u6790\u6570\u636e\u6e56\u4e0a\u5404\u79cd\u683c\u5f0f\u7684\u6570\u636e\u3002StarRocks \u517c\u5bb9 MySQL \u534f\u8bae\uff0c\u53ef\u4f7f\u7528 MySQL \u5ba2\u6237\u7aef\u548c\u5e38\u7528 BI \u5de5\u5177\u5bf9\u63a5\u3002\u540c\u65f6 StarRocks \u5177\u5907\u6c34\u5e73\u6269\u5c55\uff0c\u9ad8\u53ef\u7528\uff0c\u9ad8\u53ef\u9760\uff0c\u6613\u8fd0\u7ef4\u7b49\u7279\u6027\u3002\u5e7f\u6cdb\u5e94\u7528\u4e8e\u5b9e\u65f6\u6570\u4ed3\u3001OLAP \u62a5\u8868\u3001\u6570\u636e\u6e56\u5206\u6790\u7b49\u573a\u666f\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/32ef234c.04f8cc18.js b/assets/js/32ef234c.63168f39.js similarity index 98% rename from assets/js/32ef234c.04f8cc18.js rename to assets/js/32ef234c.63168f39.js index 746520119..b062af26f 100644 --- a/assets/js/32ef234c.04f8cc18.js +++ b/assets/js/32ef234c.63168f39.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7055],{5680:(e,t,r)=>{r.d(t,{xA:()=>c,yg:()=>d});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var u=n.createContext({}),p=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},c=function(e){var t=p(e.components);return n.createElement(u.Provider,{value:t},e.children)},m="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},s=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,l=e.originalType,u=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),m=p(r),s=a,d=m["".concat(u,".").concat(s)]||m[s]||y[s]||l;return r?n.createElement(d,o(o({ref:t},c),{},{components:r})):n.createElement(d,o({ref:t},c))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=r.length,o=new Array(l);o[0]=s;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[m]="string"==typeof e?e:a,o[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>o,default:()=>y,frontMatter:()=>l,metadata:()=>i,toc:()=>p});var n=r(8168),a=(r(6540),r(5680));const l={},o=void 0,i={unversionedId:"study/back/mq/MQTT broker",id:"study/back/mq/MQTT broker",title:"MQTT broker",description:"EMQ EMQX",source:"@site/docs/study/back/mq/MQTT broker.md",sourceDirName:"study/back/mq",slug:"/study/back/mq/MQTT broker",permalink:"/docs/study/back/mq/MQTT broker",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Kafka",permalink:"/docs/study/back/mq/Kafka"},next:{title:"MQ\u5b9e\u73b0\u5bf9\u6bd4",permalink:"/docs/study/back/mq/MQ\u5b9e\u73b0\u5bf9\u6bd4"}},u={},p=[{value:"EMQ EMQX",id:"emq-emqx",level:3},{value:"BifroMQ",id:"bifromq",level:3},{value:"FluxMQ",id:"fluxmq",level:3},{value:"TBMQ",id:"tbmq",level:3},{value:"Eclipse Mosquitto",id:"eclipse-mosquitto",level:3},{value:"Moquette",id:"moquette",level:3},{value:"\u603b\u7ed3",id:"\u603b\u7ed3",level:3}],c={toc:p},m="wrapper";function y(e){let{components:t,...r}=e;return(0,a.yg)(m,(0,n.A)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"emq-emqx"},"EMQ EMQX"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"https://www.emqx.io/cn/"},"\u5b98\u7f51")),(0,a.yg)("li",{parentName:"ol"},"\u5f00\u53d1\u8bed\u8a00\uff1aErlang/OTP\uff0c\u4e00\u4e2a\u4e0d\u5e38\u89c1\u7684\u8bed\u8a00\uff1b"),(0,a.yg)("li",{parentName:"ol"},"\u56fd\u4eba\u5f00\u53d1\uff1b\u53c8\u79f0 emqttd\uff1b"),(0,a.yg)("li",{parentName:"ol"},"\u5f00\u6e90&\u5546\u4e1a\u5316 MQTT \u9f3b\u7956")),(0,a.yg)("h3",{id:"bifromq"},"BifroMQ"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u767e\u5ea6\u5f00\u6e90\u7684\u4e00\u6b3e MQTT \u4ea7\u54c1"),(0,a.yg)("li",{parentName:"ul"},"\u5f00\u53d1\u8bed\u8a00\uff1aJDK17 Maven3.5+"),(0,a.yg)("li",{parentName:"ul"},"\u5f00\u6e90")),(0,a.yg)("h3",{id:"fluxmq"},"FluxMQ"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u53f7\u79f0\u6027\u80fd\u9886\u5148 99%\u7684\u4e00\u6b3e\u5546\u4e1a\u5316 MQTT \u4ea7\u54c1"),(0,a.yg)("li",{parentName:"ul"},"\u5f00\u53d1\u8bed\u8a00\uff1aJDK8+"),(0,a.yg)("li",{parentName:"ul"},"\u95ed\u6e90"),(0,a.yg)("li",{parentName:"ul"},"\u5b98\u7f51 ",(0,a.yg)("a",{parentName:"li",href:"https://www.fluxmq.com/"},"https://www.fluxmq.com/"))),(0,a.yg)("h3",{id:"tbmq"},"TBMQ"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"Thingsboard \u5f00\u6e90\u7684\u2f00\u6b3e MQTT \u4ea7\u54c1"),(0,a.yg)("li",{parentName:"ul"},"\u5f00\u53d1\u8bed\u8a00\uff1aJDK17 Maven3.5+"),(0,a.yg)("li",{parentName:"ul"},"\u5f00\u6e90")),(0,a.yg)("h3",{id:"eclipse-mosquitto"},"Eclipse Mosquitto"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"https://mosquitto.org"},"\u5b98\u7f51")),(0,a.yg)("li",{parentName:"ol"},"\u5f00\u53d1\u8bed\u8a00\uff1aC/C++")),(0,a.yg)("h3",{id:"moquette"},"Moquette"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"https://github.com/moquette-io/moquette"},"\u5b98\u7f51")),(0,a.yg)("li",{parentName:"ol"},"\u5f00\u53d1\u8bed\u8a00\uff1aJava"),(0,a.yg)("li",{parentName:"ol"},"\u636e\u5927\u4f6c\u8bf4\u8fd9\u5c31\u662f\u4e00\u4e2a\u73a9\u5177\u9879\u76ee\uff0c\u4f46\u662f\u57fa\u4e8e Java \u5f00\u6e90\u7684\u5e76\u4e0d\u591a\uff0c\u4e14\u7f51\u4e0a\u5f88\u591a\u662f\u57fa\u4e8e\u4ed6\u5f00\u53d1\u51fa\u6765\u7684\uff1b"),(0,a.yg)("li",{parentName:"ol"},"0.10 \u652f\u6301\u96c6\u7fa4\uff1b0.12 \u4e0d\u652f\u6301\u96c6\u7fa4\uff1b")),(0,a.yg)("h3",{id:"\u603b\u7ed3"},"\u603b\u7ed3"))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7055],{5680:(e,t,r)=>{r.d(t,{xA:()=>c,yg:()=>d});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var u=n.createContext({}),p=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},c=function(e){var t=p(e.components);return n.createElement(u.Provider,{value:t},e.children)},m="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},s=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,l=e.originalType,u=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),m=p(r),s=a,d=m["".concat(u,".").concat(s)]||m[s]||y[s]||l;return r?n.createElement(d,o(o({ref:t},c),{},{components:r})):n.createElement(d,o({ref:t},c))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=r.length,o=new Array(l);o[0]=s;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[m]="string"==typeof e?e:a,o[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>o,default:()=>y,frontMatter:()=>l,metadata:()=>i,toc:()=>p});var n=r(8168),a=(r(6540),r(5680));const l={},o=void 0,i={unversionedId:"study/back/mq/MQTT broker",id:"study/back/mq/MQTT broker",title:"MQTT broker",description:"EMQ EMQX",source:"@site/docs/study/back/mq/MQTT broker.md",sourceDirName:"study/back/mq",slug:"/study/back/mq/MQTT broker",permalink:"/docs/study/back/mq/MQTT broker",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Kafka",permalink:"/docs/study/back/mq/Kafka"},next:{title:"MQ\u5b9e\u73b0\u5bf9\u6bd4",permalink:"/docs/study/back/mq/MQ\u5b9e\u73b0\u5bf9\u6bd4"}},u={},p=[{value:"EMQ EMQX",id:"emq-emqx",level:3},{value:"BifroMQ",id:"bifromq",level:3},{value:"FluxMQ",id:"fluxmq",level:3},{value:"TBMQ",id:"tbmq",level:3},{value:"Eclipse Mosquitto",id:"eclipse-mosquitto",level:3},{value:"Moquette",id:"moquette",level:3},{value:"\u603b\u7ed3",id:"\u603b\u7ed3",level:3}],c={toc:p},m="wrapper";function y(e){let{components:t,...r}=e;return(0,a.yg)(m,(0,n.A)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"emq-emqx"},"EMQ EMQX"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"https://www.emqx.io/cn/"},"\u5b98\u7f51")),(0,a.yg)("li",{parentName:"ol"},"\u5f00\u53d1\u8bed\u8a00\uff1aErlang/OTP\uff0c\u4e00\u4e2a\u4e0d\u5e38\u89c1\u7684\u8bed\u8a00\uff1b"),(0,a.yg)("li",{parentName:"ol"},"\u56fd\u4eba\u5f00\u53d1\uff1b\u53c8\u79f0 emqttd\uff1b"),(0,a.yg)("li",{parentName:"ol"},"\u5f00\u6e90&\u5546\u4e1a\u5316 MQTT \u9f3b\u7956")),(0,a.yg)("h3",{id:"bifromq"},"BifroMQ"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u767e\u5ea6\u5f00\u6e90\u7684\u4e00\u6b3e MQTT \u4ea7\u54c1"),(0,a.yg)("li",{parentName:"ul"},"\u5f00\u53d1\u8bed\u8a00\uff1aJDK17 Maven3.5+"),(0,a.yg)("li",{parentName:"ul"},"\u5f00\u6e90")),(0,a.yg)("h3",{id:"fluxmq"},"FluxMQ"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u53f7\u79f0\u6027\u80fd\u9886\u5148 99%\u7684\u4e00\u6b3e\u5546\u4e1a\u5316 MQTT \u4ea7\u54c1"),(0,a.yg)("li",{parentName:"ul"},"\u5f00\u53d1\u8bed\u8a00\uff1aJDK8+"),(0,a.yg)("li",{parentName:"ul"},"\u95ed\u6e90"),(0,a.yg)("li",{parentName:"ul"},"\u5b98\u7f51 ",(0,a.yg)("a",{parentName:"li",href:"https://www.fluxmq.com/"},"https://www.fluxmq.com/"))),(0,a.yg)("h3",{id:"tbmq"},"TBMQ"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"Thingsboard \u5f00\u6e90\u7684\u2f00\u6b3e MQTT \u4ea7\u54c1"),(0,a.yg)("li",{parentName:"ul"},"\u5f00\u53d1\u8bed\u8a00\uff1aJDK17 Maven3.5+"),(0,a.yg)("li",{parentName:"ul"},"\u5f00\u6e90")),(0,a.yg)("h3",{id:"eclipse-mosquitto"},"Eclipse Mosquitto"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"https://mosquitto.org"},"\u5b98\u7f51")),(0,a.yg)("li",{parentName:"ol"},"\u5f00\u53d1\u8bed\u8a00\uff1aC/C++")),(0,a.yg)("h3",{id:"moquette"},"Moquette"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"https://github.com/moquette-io/moquette"},"\u5b98\u7f51")),(0,a.yg)("li",{parentName:"ol"},"\u5f00\u53d1\u8bed\u8a00\uff1aJava"),(0,a.yg)("li",{parentName:"ol"},"\u636e\u5927\u4f6c\u8bf4\u8fd9\u5c31\u662f\u4e00\u4e2a\u73a9\u5177\u9879\u76ee\uff0c\u4f46\u662f\u57fa\u4e8e Java \u5f00\u6e90\u7684\u5e76\u4e0d\u591a\uff0c\u4e14\u7f51\u4e0a\u5f88\u591a\u662f\u57fa\u4e8e\u4ed6\u5f00\u53d1\u51fa\u6765\u7684\uff1b"),(0,a.yg)("li",{parentName:"ol"},"0.10 \u652f\u6301\u96c6\u7fa4\uff1b0.12 \u4e0d\u652f\u6301\u96c6\u7fa4\uff1b")),(0,a.yg)("h3",{id:"\u603b\u7ed3"},"\u603b\u7ed3"))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3474579f.eedc05a4.js b/assets/js/3474579f.5b350339.js similarity index 99% rename from assets/js/3474579f.eedc05a4.js rename to assets/js/3474579f.5b350339.js index eb85f7010..22003bd8a 100644 --- a/assets/js/3474579f.eedc05a4.js +++ b/assets/js/3474579f.5b350339.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7134],{5680:(e,t,n)=>{n.d(t,{xA:()=>y,yg:()=>d});var a=n(6540);function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(l[n]=e[n]);return l}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}var p=a.createContext({}),g=function(e){var t=a.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},y=function(e){var t=g(e.components);return a.createElement(p.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},s=a.forwardRef((function(e,t){var n=e.components,l=e.mdxType,r=e.originalType,p=e.parentName,y=o(e,["components","mdxType","originalType","parentName"]),u=g(n),s=l,d=u["".concat(p,".").concat(s)]||u[s]||c[s]||r;return n?a.createElement(d,i(i({ref:t},y),{},{components:n})):a.createElement(d,i({ref:t},y))}));function d(e,t){var n=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var r=n.length,i=new Array(r);i[0]=s;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[u]="string"==typeof e?e:l,i[1]=o;for(var g=2;g{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>c,frontMatter:()=>r,metadata:()=>o,toc:()=>g});var a=n(8168),l=(n(6540),n(5680));const r={},i=void 0,o={unversionedId:"study/think/\u9650\u6d41",id:"study/think/\u9650\u6d41",title:"\u9650\u6d41",description:"\u524d\u8a00",source:"@site/docs/study/think/\u9650\u6d41.md",sourceDirName:"study/think",slug:"/study/think/\u9650\u6d41",permalink:"/docs/study/think/\u9650\u6d41",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u8c08\u5de5\u4f5c\u5fc3\u5f97",permalink:"/docs/study/think/\u8c08\u5de5\u4f5c\u5fc3\u5f97"},next:{title:"\u9886\u57df\u9a71\u52a8\u8bbe\u8ba1DDD",permalink:"/docs/study/think/\u9886\u57df\u9a71\u52a8\u8bbe\u8ba1DDD"}},p={},g=[{value:"\u524d\u8a00",id:"\u524d\u8a00",level:3},{value:"\u5e38\u89c1\u7684\u9650\u6d41\u7b97\u6cd5",id:"\u5e38\u89c1\u7684\u9650\u6d41\u7b97\u6cd5",level:3},{value:"\u56fa\u5b9a\u7a97\u53e3\u8ba1\u6570\u5668",id:"\u56fa\u5b9a\u7a97\u53e3\u8ba1\u6570\u5668",level:4},{value:"\u6ed1\u52a8\u7a97\u53e3\u8ba1\u6570\u5668",id:"\u6ed1\u52a8\u7a97\u53e3\u8ba1\u6570\u5668",level:4},{value:"\u6f0f\u6876\u7b97\u6cd5",id:"\u6f0f\u6876\u7b97\u6cd5",level:4},{value:"\u4ee4\u724c\u6876\u7b97\u6cd5",id:"\u4ee4\u724c\u6876\u7b97\u6cd5",level:4},{value:"\u5355\u4f53\u5e94\u7528\u5b9e\u73b0",id:"\u5355\u4f53\u5e94\u7528\u5b9e\u73b0",level:3},{value:"\u5206\u5e03\u5f0f\u9650\u6d41",id:"\u5206\u5e03\u5f0f\u9650\u6d41",level:3}],y={toc:g},u="wrapper";function c(e){let{components:t,...r}=e;return(0,l.yg)(u,(0,a.A)({},y,r,{components:t,mdxType:"MDXLayout"}),(0,l.yg)("h3",{id:"\u524d\u8a00"},"\u524d\u8a00"),(0,l.yg)("p",null,"\u5728\u5f00\u53d1\u9ad8\u5e76\u53d1\u7cfb\u7edf\u65f6\u6709\u4e09\u628a\u5229\u5668\u7528\u6765\u4fdd\u62a4\u7cfb\u7edf\uff1a\u7f13\u5b58\u3001\u964d\u7ea7\u548c\u9650\u6d41"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("inlineCode",{parentName:"li"},"\u7f13\u5b58"),"\u7f13\u5b58\u7684\u76ee\u7684\u662f\u63d0\u5347\u7cfb\u7edf\u8bbf\u95ee\u901f\u5ea6\u548c\u589e\u5927\u7cfb\u7edf\u5904\u7406\u5bb9\u91cf"),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("inlineCode",{parentName:"li"},"\u964d\u7ea7"),"\u964d\u7ea7\u662f\u5f53\u670d\u52a1\u51fa\u73b0\u95ee\u9898\u6216\u8005\u5f71\u54cd\u5230\u6838\u5fc3\u6d41\u7a0b\u65f6\uff0c\u9700\u8981\u6682\u65f6\u5c4f\u853d\u6389\uff0c\u5f85\u9ad8\u5cf0\u6216\u8005\u95ee\u9898\u89e3\u51b3\u540e\u518d\u6253\u5f00"),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("inlineCode",{parentName:"li"},"\u9650\u6d41"),"\u9650\u6d41\u7684\u76ee\u7684\u662f\u901a\u8fc7\u5bf9\u5e76\u53d1\u8bbf\u95ee/\u8bf7\u6c42\u8fdb\u884c\u9650\u901f\uff0c\u6216\u8005\u5bf9\u4e00\u4e2a\u65f6\u95f4\u7a97\u53e3\u5185\u7684\u8bf7\u6c42\u8fdb\u884c\u9650\u901f\u6765\u4fdd\u62a4\u7cfb\u7edf\uff0c\u4e00\u65e6\u8fbe\u5230\u9650\u5236\u901f\u7387\u5219\u53ef\u4ee5\u62d2\u7edd\u670d\u52a1\u3001\u6392\u961f\u6216\u7b49\u5f85\u3001\u964d\u7ea7\u7b49\u5904\u7406")),(0,l.yg)("h3",{id:"\u5e38\u89c1\u7684\u9650\u6d41\u7b97\u6cd5"},"\u5e38\u89c1\u7684\u9650\u6d41\u7b97\u6cd5"),(0,l.yg)("h4",{id:"\u56fa\u5b9a\u7a97\u53e3\u8ba1\u6570\u5668"},"\u56fa\u5b9a\u7a97\u53e3\u8ba1\u6570\u5668"),(0,l.yg)("p",null,(0,l.yg)("img",{alt:"image.png",src:n(8635).A,width:"659",height:"342"})),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u56fa\u5b9a\u7a97\u53e3\u8ba1\u6570\u5668\u7b97\u6cd5\u7684\u6982\u5ff5\u5982\u4e0b",(0,l.yg)("ol",{parentName:"li"},(0,l.yg)("li",{parentName:"ol"},"\u5c06\u65f6\u95f4\u5212\u5206\u4e3a\u591a\u4e2a\u7a97\u53e3"),(0,l.yg)("li",{parentName:"ol"},"\u5728\u6bcf\u4e2a\u7a97\u53e3\u5185\u6bcf\u6709\u4e00\u6b21\u8bf7\u6c42\u5c31\u5c06\u8ba1\u6570\u5668\u52a0\u4e00"),(0,l.yg)("li",{parentName:"ol"},"\u5982\u679c\u8ba1\u6570\u5668\u8d85\u8fc7\u4e86\u9650\u5236\u6570\u91cf\uff0c\u5219\u672c\u7a97\u53e3\u5185\u65b0\u6765\u7684\u5176\u4ed6\u8bf7\u6c42\u90fd\u88ab\u4e22\u5f03\u3002\u5f53\u65f6\u95f4\u5230\u8fbe\u4e0b\u4e00\u4e2a\u7a97\u53e3\u65f6\uff0c\u8ba1\u6570\u5668\u91cd\u7f6e\u3002"))),(0,l.yg)("li",{parentName:"ul"},"\u56fa\u5b9a\u7a97\u53e3\u8ba1\u6570\u5668\u662f\u6700\u4e3a\u7b80\u5355\u7684\u7b97\u6cd5\uff0c\u4f46\u8fd9\u4e2a\u7b97\u6cd5\u6709\u65f6\u4f1a\u8ba9\u901a\u8fc7\u8bf7\u6c42\u91cf\u5141\u8bb8\u4e3a\u9650\u5236\u7684\u4e24\u500d\u3002\u8003\u8651\u5982\u4e0b\u60c5\u51b5\uff1a\u9650\u5236 1 \u79d2\u5185\u6700\u591a\u901a\u8fc7 5 \u4e2a\u8bf7\u6c42\uff0c\u5728\u7b2c\u4e00\u4e2a\u7a97\u53e3\u7684\u6700\u540e\u534a\u79d2\u5185\u901a\u8fc7\u4e86 5 \u4e2a\u8bf7\u6c42\uff0c\u7b2c\u4e8c\u4e2a\u7a97\u53e3\u7684\u524d\u534a\u79d2\u5185\u53c8\u901a\u8fc7\u4e86 5 \u4e2a\u8bf7\u6c42\u3002\u8fd9\u6837\u770b\u6765\u5c31\u662f\u5728 1 \u79d2\u5185\u901a\u8fc7\u4e86 10 \u4e2a\u8bf7\u6c42\u3002")),(0,l.yg)("p",null,(0,l.yg)("img",{alt:"image.png",src:n(8784).A,width:"732",height:"315"})),(0,l.yg)("h4",{id:"\u6ed1\u52a8\u7a97\u53e3\u8ba1\u6570\u5668"},"\u6ed1\u52a8\u7a97\u53e3\u8ba1\u6570\u5668"),(0,l.yg)("p",null,(0,l.yg)("img",{alt:"image.png",src:n(8070).A,width:"653",height:"295"})),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u6ed1\u52a8\u7a97\u53e3\u8ba1\u6570\u5668\u7b97\u6cd5\u6982\u5ff5\u5982\u4e0b\uff1a",(0,l.yg)("ol",{parentName:"li"},(0,l.yg)("li",{parentName:"ol"},"\u5c06\u65f6\u95f4\u5212\u5206\u4e3a\u591a\u4e2a\u533a\u95f4\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u5728\u6bcf\u4e2a\u533a\u95f4\u5185\u6bcf\u6709\u4e00\u6b21\u8bf7\u6c42\u5c31\u5c06\u8ba1\u6570\u5668\u52a0\u4e00\u7ef4\u6301\u4e00\u4e2a\u65f6\u95f4\u7a97\u53e3\uff0c\u5360\u636e\u591a\u4e2a\u533a\u95f4\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u6bcf\u7ecf\u8fc7\u4e00\u4e2a\u533a\u95f4\u7684\u65f6\u95f4\uff0c\u5219\u629b\u5f03\u6700\u8001\u7684\u4e00\u4e2a\u533a\u95f4\uff0c\u5e76\u7eb3\u5165\u6700\u65b0\u7684\u4e00\u4e2a\u533a\u95f4\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u5982\u679c\u5f53\u524d\u7a97\u53e3\u5185\u533a\u95f4\u7684\u8bf7\u6c42\u8ba1\u6570\u603b\u548c\u8d85\u8fc7\u4e86\u9650\u5236\u6570\u91cf\uff0c\u5219\u672c\u7a97\u53e3\u5185\u65b0\u6765\u7684\u5176\u4ed6\u8bf7\u6c42\u90fd\u88ab\u4e22\u5f03\u3002"))),(0,l.yg)("li",{parentName:"ul"},'\u6ed1\u52a8\u7a97\u53e3\u8ba1\u6570\u5668\u662f\u901a\u8fc7\u5c06\u7a97\u53e3\u518d\u7ec6\u5206\uff0c\u5e76\u4e14\u6309\u7167\u65f6\u95f4 " \u6ed1\u52a8 "\uff0c\u8fd9\u79cd\u7b97\u6cd5\u907f\u514d\u4e86\u56fa\u5b9a\u7a97\u53e3\u8ba1\u6570\u5668\u5e26\u6765\u7684\u53cc\u500d\u7a81\u53d1\u8bf7\u6c42\uff0c\u4f46\u65f6\u95f4\u533a\u95f4\u7684\u7cbe\u5ea6\u8d8a\u9ad8\uff0c\u7b97\u6cd5\u6240\u9700\u7684\u7a7a\u95f4\u5bb9\u91cf\u5c31\u8d8a\u5927\u3002')),(0,l.yg)("h4",{id:"\u6f0f\u6876\u7b97\u6cd5"},"\u6f0f\u6876\u7b97\u6cd5"),(0,l.yg)("p",null,(0,l.yg)("img",{alt:"image.png",src:n(2614).A,width:"506",height:"406"})),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u6f0f\u6876\u7b97\u6cd5\u6982\u5ff5\u5982\u4e0b\uff1a",(0,l.yg)("ol",{parentName:"li"},(0,l.yg)("li",{parentName:"ol"},'\u5c06\u6bcf\u4e2a\u8bf7\u6c42\u89c6\u4f5c " \u6c34\u6ef4 " \u653e\u5165 " \u6f0f\u6876 " \u8fdb\u884c\u5b58\u50a8\uff1b'),(0,l.yg)("li",{parentName:"ol"},'\u201c\u6f0f\u6876 " \u4ee5\u56fa\u5b9a\u901f\u7387\u5411\u5916 " \u6f0f " \u51fa\u8bf7\u6c42\u6765\u6267\u884c\u5982\u679c " \u6f0f\u6876 " \u7a7a\u4e86\u5219\u505c\u6b62 " \u6f0f\u6c34\u201d\uff1b'),(0,l.yg)("li",{parentName:"ol"},'\u5982\u679c " \u6f0f\u6876 " \u6ee1\u4e86\u5219\u591a\u4f59\u7684 " \u6c34\u6ef4 " \u4f1a\u88ab\u76f4\u63a5\u4e22\u5f03\u3002'))),(0,l.yg)("li",{parentName:"ul"},"\u6f0f\u6876\u7b97\u6cd5\u591a\u4f7f\u7528\u961f\u5217\u5b9e\u73b0\uff0c\u670d\u52a1\u7684\u8bf7\u6c42\u4f1a\u5b58\u5230\u961f\u5217\u4e2d\uff0c\u670d\u52a1\u7684\u63d0\u4f9b\u65b9\u5219\u6309\u7167\u56fa\u5b9a\u7684\u901f\u7387\u4ece\u961f\u5217\u4e2d\u53d6\u51fa\u8bf7\u6c42\u5e76\u6267\u884c\uff0c\u8fc7\u591a\u7684\u8bf7\u6c42\u5219\u653e\u5728\u961f\u5217\u4e2d\u6392\u961f\u6216\u76f4\u63a5\u62d2\u7edd\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u6f0f\u6876\u7b97\u6cd5\u7684\u7f3a\u9677\u4e5f\u5f88\u660e\u663e\uff0c\u5f53\u77ed\u65f6\u95f4\u5185\u6709\u5927\u91cf\u7684\u7a81\u53d1\u8bf7\u6c42\u65f6\uff0c\u5373\u4fbf\u6b64\u65f6\u670d\u52a1\u5668\u6ca1\u6709\u4efb\u4f55\u8d1f\u8f7d\uff0c\u6bcf\u4e2a\u8bf7\u6c42\u4e5f\u90fd\u5f97\u5728\u961f\u5217\u4e2d\u7b49\u5f85\u4e00\u6bb5\u65f6\u95f4\u624d\u80fd\u88ab\u54cd\u5e94\u3002")),(0,l.yg)("h4",{id:"\u4ee4\u724c\u6876\u7b97\u6cd5"},"\u4ee4\u724c\u6876\u7b97\u6cd5"),(0,l.yg)("p",null,(0,l.yg)("img",{alt:"image.png",src:n(1631).A,width:"704",height:"526"})),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u4ee4\u724c\u6876\u7b97\u6cd5\u6982\u5ff5\u5982\u4e0b\uff1a",(0,l.yg)("ol",{parentName:"li"},(0,l.yg)("li",{parentName:"ol"},"\u4ee4\u724c\u4ee5\u56fa\u5b9a\u901f\u7387\u751f\u6210\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u751f\u6210\u7684\u4ee4\u724c\u653e\u5165\u4ee4\u724c\u6876\u4e2d\u5b58\u653e\uff0c\u5982\u679c\u4ee4\u724c\u6876\u6ee1\u4e86\u5219\u591a\u4f59\u7684\u4ee4\u724c\u4f1a\u76f4\u63a5\u4e22\u5f03\uff0c\u5f53\u8bf7\u6c42\u5230\u8fbe\u65f6\uff0c\u4f1a\u5c1d\u8bd5\u4ece\u4ee4\u724c\u6876\u4e2d\u53d6\u4ee4\u724c\uff0c\u53d6\u5230\u4e86\u4ee4\u724c\u7684\u8bf7\u6c42\u53ef\u4ee5\u6267\u884c\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u5982\u679c\u6876\u7a7a\u4e86\uff0c\u90a3\u4e48\u5c1d\u8bd5\u53d6\u4ee4\u724c\u7684\u8bf7\u6c42\u4f1a\u88ab\u76f4\u63a5\u4e22\u5f03\u3002"))),(0,l.yg)("li",{parentName:"ul"},"\u4ee4\u724c\u6876\u7b97\u6cd5\u65e2\u80fd\u591f\u5c06\u6240\u6709\u7684\u8bf7\u6c42\u5e73\u5747\u5206\u5e03\u5230\u65f6\u95f4\u533a\u95f4\u5185\uff0c\u53c8\u80fd\u63a5\u53d7\u670d\u52a1\u5668\u80fd\u591f\u627f\u53d7\u8303\u56f4\u5185\u7684\u7a81\u53d1\u8bf7\u6c42\uff0c\u56e0\u6b64\u662f\u76ee\u524d\u4f7f\u7528\u8f83\u4e3a\u5e7f\u6cdb\u7684\u4e00\u79cd\u9650\u6d41\u7b97\u6cd5\u3002")),(0,l.yg)("h3",{id:"\u5355\u4f53\u5e94\u7528\u5b9e\u73b0"},"\u5355\u4f53\u5e94\u7528\u5b9e\u73b0"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u5728\u4f20\u7edf\u7684\u5355\u4f53\u5e94\u7528\u4e2d\u9650\u6d41\u53ea\u9700\u8981\u8003\u8651\u5230\u591a\u7ebf\u7a0b\u5373\u53ef\uff0c\u4f7f\u7528Google\u5f00\u6e90\u5de5\u5177\u7c7bguava\u5373\u53ef\u3002\u5176\u4e2d\u6709\u4e00\u4e2aRateLimiter\u4e13\u95e8\u5b9e\u73b0\u4e86\u5355\u4f53\u5e94\u7528\u7684\u9650\u6d41\uff0c\u4f7f\u7528\u7684\u662f\u4ee4\u724c\u6876\u7b97\u6cd5\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u5355\u4f53\u5e94\u7528\u7684\u9650\u6d41\u4e0d\u662f\u672c\u6587\u7684\u91cd\u70b9\uff0c\u5b98\u7f51\u4e0a\u73b0\u6210\u7684API\uff0c\u8bfb\u8005\u81ea\u5df1\u53bb\u770b\u770b\u5373\u53ef\uff0c\u8fd9\u91cc\u4e0d\u518d\u8be6\u7ec6\u89e3\u91ca\u3002")),(0,l.yg)("h3",{id:"\u5206\u5e03\u5f0f\u9650\u6d41"},"\u5206\u5e03\u5f0f\u9650\u6d41"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u5206\u5e03\u5f0f\u9650\u6d41\u548c\u7194\u65ad\u73b0\u5728\u6709\u5f88\u591a\u7684\u73b0\u6210\u7684\u5de5\u5177\uff0c\u6bd4\u5982Hystrix\uff0cSentinel \u7b49\uff0c\u4f46\u662f\u8fd8\u662f\u6709\u4e9b\u4f01\u4e1a\u4e0d\u5f15\u7528\u5916\u6765\u7c7b\u5e93\uff0c\u56e0\u6b64\u5c31\u9700\u8981\u81ea\u5df1\u5b9e\u73b0\u3002"),(0,l.yg)("li",{parentName:"ul"},"Redis\u4f5c\u4e3a\u5355\u7ebf\u7a0b\u591a\u8def\u590d\u7528\u7684\u7279\u6027\uff0c\u5f88\u663e\u7136\u80fd\u591f\u80dc\u4efb\u8fd9\u9879\u4efb\u52a1\u3002")))}c.isMDXComponent=!0},8635:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/images/x1-3edeedaffe0322bfb5a25168288d91d6.png"},8784:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/images/x2-6bc9382d5a047236dc1cf3608f948729.png"},8070:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/images/x3-74be0be0d3cfd84aff0638a937cd7387.png"},2614:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/images/x4-91ab48a56e8274e31fbb1a851e6cb685.png"},1631:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/images/x5-fa6893daf432a93118fac29e278dc4f0.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7134],{5680:(e,t,n)=>{n.d(t,{xA:()=>y,yg:()=>d});var a=n(6540);function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(l[n]=e[n]);return l}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}var p=a.createContext({}),g=function(e){var t=a.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},y=function(e){var t=g(e.components);return a.createElement(p.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},s=a.forwardRef((function(e,t){var n=e.components,l=e.mdxType,r=e.originalType,p=e.parentName,y=o(e,["components","mdxType","originalType","parentName"]),u=g(n),s=l,d=u["".concat(p,".").concat(s)]||u[s]||c[s]||r;return n?a.createElement(d,i(i({ref:t},y),{},{components:n})):a.createElement(d,i({ref:t},y))}));function d(e,t){var n=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var r=n.length,i=new Array(r);i[0]=s;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[u]="string"==typeof e?e:l,i[1]=o;for(var g=2;g{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>c,frontMatter:()=>r,metadata:()=>o,toc:()=>g});var a=n(8168),l=(n(6540),n(5680));const r={},i=void 0,o={unversionedId:"study/think/\u9650\u6d41",id:"study/think/\u9650\u6d41",title:"\u9650\u6d41",description:"\u524d\u8a00",source:"@site/docs/study/think/\u9650\u6d41.md",sourceDirName:"study/think",slug:"/study/think/\u9650\u6d41",permalink:"/docs/study/think/\u9650\u6d41",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u8c08\u5de5\u4f5c\u5fc3\u5f97",permalink:"/docs/study/think/\u8c08\u5de5\u4f5c\u5fc3\u5f97"},next:{title:"\u9886\u57df\u9a71\u52a8\u8bbe\u8ba1DDD",permalink:"/docs/study/think/\u9886\u57df\u9a71\u52a8\u8bbe\u8ba1DDD"}},p={},g=[{value:"\u524d\u8a00",id:"\u524d\u8a00",level:3},{value:"\u5e38\u89c1\u7684\u9650\u6d41\u7b97\u6cd5",id:"\u5e38\u89c1\u7684\u9650\u6d41\u7b97\u6cd5",level:3},{value:"\u56fa\u5b9a\u7a97\u53e3\u8ba1\u6570\u5668",id:"\u56fa\u5b9a\u7a97\u53e3\u8ba1\u6570\u5668",level:4},{value:"\u6ed1\u52a8\u7a97\u53e3\u8ba1\u6570\u5668",id:"\u6ed1\u52a8\u7a97\u53e3\u8ba1\u6570\u5668",level:4},{value:"\u6f0f\u6876\u7b97\u6cd5",id:"\u6f0f\u6876\u7b97\u6cd5",level:4},{value:"\u4ee4\u724c\u6876\u7b97\u6cd5",id:"\u4ee4\u724c\u6876\u7b97\u6cd5",level:4},{value:"\u5355\u4f53\u5e94\u7528\u5b9e\u73b0",id:"\u5355\u4f53\u5e94\u7528\u5b9e\u73b0",level:3},{value:"\u5206\u5e03\u5f0f\u9650\u6d41",id:"\u5206\u5e03\u5f0f\u9650\u6d41",level:3}],y={toc:g},u="wrapper";function c(e){let{components:t,...r}=e;return(0,l.yg)(u,(0,a.A)({},y,r,{components:t,mdxType:"MDXLayout"}),(0,l.yg)("h3",{id:"\u524d\u8a00"},"\u524d\u8a00"),(0,l.yg)("p",null,"\u5728\u5f00\u53d1\u9ad8\u5e76\u53d1\u7cfb\u7edf\u65f6\u6709\u4e09\u628a\u5229\u5668\u7528\u6765\u4fdd\u62a4\u7cfb\u7edf\uff1a\u7f13\u5b58\u3001\u964d\u7ea7\u548c\u9650\u6d41"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("inlineCode",{parentName:"li"},"\u7f13\u5b58"),"\u7f13\u5b58\u7684\u76ee\u7684\u662f\u63d0\u5347\u7cfb\u7edf\u8bbf\u95ee\u901f\u5ea6\u548c\u589e\u5927\u7cfb\u7edf\u5904\u7406\u5bb9\u91cf"),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("inlineCode",{parentName:"li"},"\u964d\u7ea7"),"\u964d\u7ea7\u662f\u5f53\u670d\u52a1\u51fa\u73b0\u95ee\u9898\u6216\u8005\u5f71\u54cd\u5230\u6838\u5fc3\u6d41\u7a0b\u65f6\uff0c\u9700\u8981\u6682\u65f6\u5c4f\u853d\u6389\uff0c\u5f85\u9ad8\u5cf0\u6216\u8005\u95ee\u9898\u89e3\u51b3\u540e\u518d\u6253\u5f00"),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("inlineCode",{parentName:"li"},"\u9650\u6d41"),"\u9650\u6d41\u7684\u76ee\u7684\u662f\u901a\u8fc7\u5bf9\u5e76\u53d1\u8bbf\u95ee/\u8bf7\u6c42\u8fdb\u884c\u9650\u901f\uff0c\u6216\u8005\u5bf9\u4e00\u4e2a\u65f6\u95f4\u7a97\u53e3\u5185\u7684\u8bf7\u6c42\u8fdb\u884c\u9650\u901f\u6765\u4fdd\u62a4\u7cfb\u7edf\uff0c\u4e00\u65e6\u8fbe\u5230\u9650\u5236\u901f\u7387\u5219\u53ef\u4ee5\u62d2\u7edd\u670d\u52a1\u3001\u6392\u961f\u6216\u7b49\u5f85\u3001\u964d\u7ea7\u7b49\u5904\u7406")),(0,l.yg)("h3",{id:"\u5e38\u89c1\u7684\u9650\u6d41\u7b97\u6cd5"},"\u5e38\u89c1\u7684\u9650\u6d41\u7b97\u6cd5"),(0,l.yg)("h4",{id:"\u56fa\u5b9a\u7a97\u53e3\u8ba1\u6570\u5668"},"\u56fa\u5b9a\u7a97\u53e3\u8ba1\u6570\u5668"),(0,l.yg)("p",null,(0,l.yg)("img",{alt:"image.png",src:n(8635).A,width:"659",height:"342"})),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u56fa\u5b9a\u7a97\u53e3\u8ba1\u6570\u5668\u7b97\u6cd5\u7684\u6982\u5ff5\u5982\u4e0b",(0,l.yg)("ol",{parentName:"li"},(0,l.yg)("li",{parentName:"ol"},"\u5c06\u65f6\u95f4\u5212\u5206\u4e3a\u591a\u4e2a\u7a97\u53e3"),(0,l.yg)("li",{parentName:"ol"},"\u5728\u6bcf\u4e2a\u7a97\u53e3\u5185\u6bcf\u6709\u4e00\u6b21\u8bf7\u6c42\u5c31\u5c06\u8ba1\u6570\u5668\u52a0\u4e00"),(0,l.yg)("li",{parentName:"ol"},"\u5982\u679c\u8ba1\u6570\u5668\u8d85\u8fc7\u4e86\u9650\u5236\u6570\u91cf\uff0c\u5219\u672c\u7a97\u53e3\u5185\u65b0\u6765\u7684\u5176\u4ed6\u8bf7\u6c42\u90fd\u88ab\u4e22\u5f03\u3002\u5f53\u65f6\u95f4\u5230\u8fbe\u4e0b\u4e00\u4e2a\u7a97\u53e3\u65f6\uff0c\u8ba1\u6570\u5668\u91cd\u7f6e\u3002"))),(0,l.yg)("li",{parentName:"ul"},"\u56fa\u5b9a\u7a97\u53e3\u8ba1\u6570\u5668\u662f\u6700\u4e3a\u7b80\u5355\u7684\u7b97\u6cd5\uff0c\u4f46\u8fd9\u4e2a\u7b97\u6cd5\u6709\u65f6\u4f1a\u8ba9\u901a\u8fc7\u8bf7\u6c42\u91cf\u5141\u8bb8\u4e3a\u9650\u5236\u7684\u4e24\u500d\u3002\u8003\u8651\u5982\u4e0b\u60c5\u51b5\uff1a\u9650\u5236 1 \u79d2\u5185\u6700\u591a\u901a\u8fc7 5 \u4e2a\u8bf7\u6c42\uff0c\u5728\u7b2c\u4e00\u4e2a\u7a97\u53e3\u7684\u6700\u540e\u534a\u79d2\u5185\u901a\u8fc7\u4e86 5 \u4e2a\u8bf7\u6c42\uff0c\u7b2c\u4e8c\u4e2a\u7a97\u53e3\u7684\u524d\u534a\u79d2\u5185\u53c8\u901a\u8fc7\u4e86 5 \u4e2a\u8bf7\u6c42\u3002\u8fd9\u6837\u770b\u6765\u5c31\u662f\u5728 1 \u79d2\u5185\u901a\u8fc7\u4e86 10 \u4e2a\u8bf7\u6c42\u3002")),(0,l.yg)("p",null,(0,l.yg)("img",{alt:"image.png",src:n(8784).A,width:"732",height:"315"})),(0,l.yg)("h4",{id:"\u6ed1\u52a8\u7a97\u53e3\u8ba1\u6570\u5668"},"\u6ed1\u52a8\u7a97\u53e3\u8ba1\u6570\u5668"),(0,l.yg)("p",null,(0,l.yg)("img",{alt:"image.png",src:n(8070).A,width:"653",height:"295"})),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u6ed1\u52a8\u7a97\u53e3\u8ba1\u6570\u5668\u7b97\u6cd5\u6982\u5ff5\u5982\u4e0b\uff1a",(0,l.yg)("ol",{parentName:"li"},(0,l.yg)("li",{parentName:"ol"},"\u5c06\u65f6\u95f4\u5212\u5206\u4e3a\u591a\u4e2a\u533a\u95f4\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u5728\u6bcf\u4e2a\u533a\u95f4\u5185\u6bcf\u6709\u4e00\u6b21\u8bf7\u6c42\u5c31\u5c06\u8ba1\u6570\u5668\u52a0\u4e00\u7ef4\u6301\u4e00\u4e2a\u65f6\u95f4\u7a97\u53e3\uff0c\u5360\u636e\u591a\u4e2a\u533a\u95f4\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u6bcf\u7ecf\u8fc7\u4e00\u4e2a\u533a\u95f4\u7684\u65f6\u95f4\uff0c\u5219\u629b\u5f03\u6700\u8001\u7684\u4e00\u4e2a\u533a\u95f4\uff0c\u5e76\u7eb3\u5165\u6700\u65b0\u7684\u4e00\u4e2a\u533a\u95f4\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u5982\u679c\u5f53\u524d\u7a97\u53e3\u5185\u533a\u95f4\u7684\u8bf7\u6c42\u8ba1\u6570\u603b\u548c\u8d85\u8fc7\u4e86\u9650\u5236\u6570\u91cf\uff0c\u5219\u672c\u7a97\u53e3\u5185\u65b0\u6765\u7684\u5176\u4ed6\u8bf7\u6c42\u90fd\u88ab\u4e22\u5f03\u3002"))),(0,l.yg)("li",{parentName:"ul"},'\u6ed1\u52a8\u7a97\u53e3\u8ba1\u6570\u5668\u662f\u901a\u8fc7\u5c06\u7a97\u53e3\u518d\u7ec6\u5206\uff0c\u5e76\u4e14\u6309\u7167\u65f6\u95f4 " \u6ed1\u52a8 "\uff0c\u8fd9\u79cd\u7b97\u6cd5\u907f\u514d\u4e86\u56fa\u5b9a\u7a97\u53e3\u8ba1\u6570\u5668\u5e26\u6765\u7684\u53cc\u500d\u7a81\u53d1\u8bf7\u6c42\uff0c\u4f46\u65f6\u95f4\u533a\u95f4\u7684\u7cbe\u5ea6\u8d8a\u9ad8\uff0c\u7b97\u6cd5\u6240\u9700\u7684\u7a7a\u95f4\u5bb9\u91cf\u5c31\u8d8a\u5927\u3002')),(0,l.yg)("h4",{id:"\u6f0f\u6876\u7b97\u6cd5"},"\u6f0f\u6876\u7b97\u6cd5"),(0,l.yg)("p",null,(0,l.yg)("img",{alt:"image.png",src:n(2614).A,width:"506",height:"406"})),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u6f0f\u6876\u7b97\u6cd5\u6982\u5ff5\u5982\u4e0b\uff1a",(0,l.yg)("ol",{parentName:"li"},(0,l.yg)("li",{parentName:"ol"},'\u5c06\u6bcf\u4e2a\u8bf7\u6c42\u89c6\u4f5c " \u6c34\u6ef4 " \u653e\u5165 " \u6f0f\u6876 " \u8fdb\u884c\u5b58\u50a8\uff1b'),(0,l.yg)("li",{parentName:"ol"},'\u201c\u6f0f\u6876 " \u4ee5\u56fa\u5b9a\u901f\u7387\u5411\u5916 " \u6f0f " \u51fa\u8bf7\u6c42\u6765\u6267\u884c\u5982\u679c " \u6f0f\u6876 " \u7a7a\u4e86\u5219\u505c\u6b62 " \u6f0f\u6c34\u201d\uff1b'),(0,l.yg)("li",{parentName:"ol"},'\u5982\u679c " \u6f0f\u6876 " \u6ee1\u4e86\u5219\u591a\u4f59\u7684 " \u6c34\u6ef4 " \u4f1a\u88ab\u76f4\u63a5\u4e22\u5f03\u3002'))),(0,l.yg)("li",{parentName:"ul"},"\u6f0f\u6876\u7b97\u6cd5\u591a\u4f7f\u7528\u961f\u5217\u5b9e\u73b0\uff0c\u670d\u52a1\u7684\u8bf7\u6c42\u4f1a\u5b58\u5230\u961f\u5217\u4e2d\uff0c\u670d\u52a1\u7684\u63d0\u4f9b\u65b9\u5219\u6309\u7167\u56fa\u5b9a\u7684\u901f\u7387\u4ece\u961f\u5217\u4e2d\u53d6\u51fa\u8bf7\u6c42\u5e76\u6267\u884c\uff0c\u8fc7\u591a\u7684\u8bf7\u6c42\u5219\u653e\u5728\u961f\u5217\u4e2d\u6392\u961f\u6216\u76f4\u63a5\u62d2\u7edd\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u6f0f\u6876\u7b97\u6cd5\u7684\u7f3a\u9677\u4e5f\u5f88\u660e\u663e\uff0c\u5f53\u77ed\u65f6\u95f4\u5185\u6709\u5927\u91cf\u7684\u7a81\u53d1\u8bf7\u6c42\u65f6\uff0c\u5373\u4fbf\u6b64\u65f6\u670d\u52a1\u5668\u6ca1\u6709\u4efb\u4f55\u8d1f\u8f7d\uff0c\u6bcf\u4e2a\u8bf7\u6c42\u4e5f\u90fd\u5f97\u5728\u961f\u5217\u4e2d\u7b49\u5f85\u4e00\u6bb5\u65f6\u95f4\u624d\u80fd\u88ab\u54cd\u5e94\u3002")),(0,l.yg)("h4",{id:"\u4ee4\u724c\u6876\u7b97\u6cd5"},"\u4ee4\u724c\u6876\u7b97\u6cd5"),(0,l.yg)("p",null,(0,l.yg)("img",{alt:"image.png",src:n(1631).A,width:"704",height:"526"})),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u4ee4\u724c\u6876\u7b97\u6cd5\u6982\u5ff5\u5982\u4e0b\uff1a",(0,l.yg)("ol",{parentName:"li"},(0,l.yg)("li",{parentName:"ol"},"\u4ee4\u724c\u4ee5\u56fa\u5b9a\u901f\u7387\u751f\u6210\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u751f\u6210\u7684\u4ee4\u724c\u653e\u5165\u4ee4\u724c\u6876\u4e2d\u5b58\u653e\uff0c\u5982\u679c\u4ee4\u724c\u6876\u6ee1\u4e86\u5219\u591a\u4f59\u7684\u4ee4\u724c\u4f1a\u76f4\u63a5\u4e22\u5f03\uff0c\u5f53\u8bf7\u6c42\u5230\u8fbe\u65f6\uff0c\u4f1a\u5c1d\u8bd5\u4ece\u4ee4\u724c\u6876\u4e2d\u53d6\u4ee4\u724c\uff0c\u53d6\u5230\u4e86\u4ee4\u724c\u7684\u8bf7\u6c42\u53ef\u4ee5\u6267\u884c\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u5982\u679c\u6876\u7a7a\u4e86\uff0c\u90a3\u4e48\u5c1d\u8bd5\u53d6\u4ee4\u724c\u7684\u8bf7\u6c42\u4f1a\u88ab\u76f4\u63a5\u4e22\u5f03\u3002"))),(0,l.yg)("li",{parentName:"ul"},"\u4ee4\u724c\u6876\u7b97\u6cd5\u65e2\u80fd\u591f\u5c06\u6240\u6709\u7684\u8bf7\u6c42\u5e73\u5747\u5206\u5e03\u5230\u65f6\u95f4\u533a\u95f4\u5185\uff0c\u53c8\u80fd\u63a5\u53d7\u670d\u52a1\u5668\u80fd\u591f\u627f\u53d7\u8303\u56f4\u5185\u7684\u7a81\u53d1\u8bf7\u6c42\uff0c\u56e0\u6b64\u662f\u76ee\u524d\u4f7f\u7528\u8f83\u4e3a\u5e7f\u6cdb\u7684\u4e00\u79cd\u9650\u6d41\u7b97\u6cd5\u3002")),(0,l.yg)("h3",{id:"\u5355\u4f53\u5e94\u7528\u5b9e\u73b0"},"\u5355\u4f53\u5e94\u7528\u5b9e\u73b0"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u5728\u4f20\u7edf\u7684\u5355\u4f53\u5e94\u7528\u4e2d\u9650\u6d41\u53ea\u9700\u8981\u8003\u8651\u5230\u591a\u7ebf\u7a0b\u5373\u53ef\uff0c\u4f7f\u7528Google\u5f00\u6e90\u5de5\u5177\u7c7bguava\u5373\u53ef\u3002\u5176\u4e2d\u6709\u4e00\u4e2aRateLimiter\u4e13\u95e8\u5b9e\u73b0\u4e86\u5355\u4f53\u5e94\u7528\u7684\u9650\u6d41\uff0c\u4f7f\u7528\u7684\u662f\u4ee4\u724c\u6876\u7b97\u6cd5\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u5355\u4f53\u5e94\u7528\u7684\u9650\u6d41\u4e0d\u662f\u672c\u6587\u7684\u91cd\u70b9\uff0c\u5b98\u7f51\u4e0a\u73b0\u6210\u7684API\uff0c\u8bfb\u8005\u81ea\u5df1\u53bb\u770b\u770b\u5373\u53ef\uff0c\u8fd9\u91cc\u4e0d\u518d\u8be6\u7ec6\u89e3\u91ca\u3002")),(0,l.yg)("h3",{id:"\u5206\u5e03\u5f0f\u9650\u6d41"},"\u5206\u5e03\u5f0f\u9650\u6d41"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u5206\u5e03\u5f0f\u9650\u6d41\u548c\u7194\u65ad\u73b0\u5728\u6709\u5f88\u591a\u7684\u73b0\u6210\u7684\u5de5\u5177\uff0c\u6bd4\u5982Hystrix\uff0cSentinel \u7b49\uff0c\u4f46\u662f\u8fd8\u662f\u6709\u4e9b\u4f01\u4e1a\u4e0d\u5f15\u7528\u5916\u6765\u7c7b\u5e93\uff0c\u56e0\u6b64\u5c31\u9700\u8981\u81ea\u5df1\u5b9e\u73b0\u3002"),(0,l.yg)("li",{parentName:"ul"},"Redis\u4f5c\u4e3a\u5355\u7ebf\u7a0b\u591a\u8def\u590d\u7528\u7684\u7279\u6027\uff0c\u5f88\u663e\u7136\u80fd\u591f\u80dc\u4efb\u8fd9\u9879\u4efb\u52a1\u3002")))}c.isMDXComponent=!0},8635:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/images/x1-3edeedaffe0322bfb5a25168288d91d6.png"},8784:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/images/x2-6bc9382d5a047236dc1cf3608f948729.png"},8070:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/images/x3-74be0be0d3cfd84aff0638a937cd7387.png"},2614:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/images/x4-91ab48a56e8274e31fbb1a851e6cb685.png"},1631:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/images/x5-fa6893daf432a93118fac29e278dc4f0.png"}}]); \ No newline at end of file diff --git a/assets/js/34be6e6a.58c2a41e.js b/assets/js/34be6e6a.3e7c90ac.js similarity index 99% rename from assets/js/34be6e6a.58c2a41e.js rename to assets/js/34be6e6a.3e7c90ac.js index 149fb0005..f7280985e 100644 --- a/assets/js/34be6e6a.58c2a41e.js +++ b/assets/js/34be6e6a.3e7c90ac.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7005],{5680:(e,n,a)=>{a.d(n,{xA:()=>i,yg:()=>g});var t=a(6540);function r(e,n,a){return n in e?Object.defineProperty(e,n,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[n]=a,e}function o(e,n){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n&&(t=t.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),a.push.apply(a,t)}return a}function l(e){for(var n=1;n=0||(r[a]=e[a]);return r}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var p=t.createContext({}),d=function(e){var n=t.useContext(p),a=n;return e&&(a="function"==typeof e?e(n):l(l({},n),e)),a},i=function(e){var n=d(e.components);return t.createElement(p.Provider,{value:n},e.children)},s="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return t.createElement(t.Fragment,{},n)}},v=t.forwardRef((function(e,n){var a=e.components,r=e.mdxType,o=e.originalType,p=e.parentName,i=c(e,["components","mdxType","originalType","parentName"]),s=d(a),v=r,g=s["".concat(p,".").concat(v)]||s[v]||u[v]||o;return a?t.createElement(g,l(l({ref:n},i),{},{components:a})):t.createElement(g,l({ref:n},i))}));function g(e,n){var a=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var o=a.length,l=new Array(o);l[0]=v;var c={};for(var p in n)hasOwnProperty.call(n,p)&&(c[p]=n[p]);c.originalType=e,c[s]="string"==typeof e?e:r,l[1]=c;for(var d=2;d{a.r(n),a.d(n,{assets:()=>p,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>c,toc:()=>d});var t=a(8168),r=(a(6540),a(5680));const o={},l="centos-jdk17-app",c={unversionedId:"study/devops/centos-jdk17-app",id:"study/devops/centos-jdk17-app",title:"centos-jdk17-app",description:"\u5b89\u88c5 jdk",source:"@site/docs/study/devops/centos-jdk17-app.md",sourceDirName:"study/devops",slug:"/study/devops/centos-jdk17-app",permalink:"/docs/study/devops/centos-jdk17-app",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"centos-nginx",permalink:"/docs/study/devops/centos-gninx-app"},next:{title:"jar\u8fd0\u7ef4-\u76d1\u63a7",permalink:"/docs/study/devops/jar\u8fd0\u7ef4-\u76d1\u63a7"}},p={},d=[{value:"\u5b89\u88c5 jdk",id:"\u5b89\u88c5-jdk",level:3},{value:"\u914d\u7f6e java",id:"\u914d\u7f6e-java",level:3},{value:"\u914d\u7f6e\u5e94\u7528\u6240\u9700\u7684\u73af\u5883\u53d8\u91cf",id:"\u914d\u7f6e\u5e94\u7528\u6240\u9700\u7684\u73af\u5883\u53d8\u91cf",level:3},{value:"\u521b\u5efa hivemq \u6587\u4ef6\u5939",id:"\u521b\u5efa-hivemq-\u6587\u4ef6\u5939",level:3},{value:"\u542f\u52a8\u5e94\u7528",id:"\u542f\u52a8\u5e94\u7528",level:3},{value:"\u542f\u52a8\u811a\u672c",id:"\u542f\u52a8\u811a\u672c",level:3},{value:"\u505c\u6b62\u811a\u672c",id:"\u505c\u6b62\u811a\u672c",level:3}],i={toc:d},s="wrapper";function u(e){let{components:n,...a}=e;return(0,r.yg)(s,(0,t.A)({},i,a,{components:n,mdxType:"MDXLayout"}),(0,r.yg)("h1",{id:"centos-jdk17-app"},"centos-jdk17-app"),(0,r.yg)("h3",{id:"\u5b89\u88c5-jdk"},"\u5b89\u88c5 jdk"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"#\u9700\u8981\u770bcpu\u67b6\u6784 x64\nuname -a\ncd ~\nmkdir iot-cloud-backend\ncd iot-cloud-backend\nwget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz\ntar -zxvf jdk-17_linux-x64_bin.tar.gz\n\n#\u9700\u8981\u770bcpu\u67b6\u6784 aarch64\nuname -a\ncd ~\nmkdir iot-cloud-backend\ncd iot-cloud-backend\nwget https://download.oracle.com/java/17/latest/jdk-17_linux-aarch64_bin.tar.gz\ntar -zxvf jdk-17_linux-aarch64_bin.tar.gz\n")),(0,r.yg)("h3",{id:"\u914d\u7f6e-java"},"\u914d\u7f6e java"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"vim /etc/profile\n\n# \u589e\u52a0\u5982\u4e0b\nexport JAVA_HOME=/root/iot-cloud-backend/jdk-17.0.8;\nexport PATH=$JAVA_HOME/bin:$PATH;\nexport CLASSPATH=.:$JAVA_HOME/lib;\n\n# \u4fdd\u5b58\u540e\nsource /etc/profile\n")),(0,r.yg)("h3",{id:"\u914d\u7f6e\u5e94\u7528\u6240\u9700\u7684\u73af\u5883\u53d8\u91cf"},"\u914d\u7f6e\u5e94\u7528\u6240\u9700\u7684\u73af\u5883\u53d8\u91cf"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"vim ~/.bash_profile\n\n# \u589e\u52a0\u5982\u4e0b\nexport IOT_MYSQL_HOST=127.0.0.1\nexport IOT_MYSQL_PORT=13306\n# HIVEMQ_HOME=/Users/weic/Documents/GITREP/GITHUB/net-cloud-backend/hivemq\nexport IOT_ALIYUN_KEY=xxx\nexport IOT_ALIYUN_SECRET=xxx\nexport IOT_SMS_REAL=0\n\n#\u4fdd\u5b58\u540e\nsource /etc/profile\n")),(0,r.yg)("h3",{id:"\u521b\u5efa-hivemq-\u6587\u4ef6\u5939"},"\u521b\u5efa hivemq \u6587\u4ef6\u5939"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"mkdir -p /root/iot-cloud-backend/hivemq/embedded-config-folder\nmkdir -p /root/iot-cloud-backend/hivemq/embedded-data-folder\nmkdir -p /root/iot-cloud-backend/hivemq/embedded-extensions-folder\n# config\u4e0b\u9762\u6709\u4e09\u4e2a\u914d\u7f6e\u6587\u4ef6\u9700\u8981\u4f20\u8fc7\u53bb\n\n")),(0,r.yg)("h3",{id:"\u542f\u52a8\u5e94\u7528"},"\u542f\u52a8\u5e94\u7528"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"# \u542f\u52a8\njava -jar application-0.0.1-SNAPSHOT.jar > iot-cloud-backend.log &\n")),(0,r.yg)("h3",{id:"\u542f\u52a8\u811a\u672c"},"\u542f\u52a8\u811a\u672c"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'#!/bin/sh\n# \u67e5\u627eJava\u8fdb\u7a0b\uff0c\u5e76\u5c06\u7ed3\u679c\u4fdd\u5b58\u5230\u53d8\u91cf\u4e2d\njava_pid=$(ps aux | grep java | grep application | grep -v grep | awk \'{print $2}\')\n\nif [ -n "$java_pid" ]; then\n echo "\u5df2\u5b58\u5728 $java_pid"\nelse\n java -jar application-0.0.1-SNAPSHOT.jar > net-cloud-backend.log &\n echo "\u542f\u52a8\u4e2d..."\n tail -f net-cloud-backend.log\nfi\n')),(0,r.yg)("h3",{id:"\u505c\u6b62\u811a\u672c"},"\u505c\u6b62\u811a\u672c"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'#!/bin/sh\n\n# \u67e5\u627eJava\u8fdb\u7a0b\uff0c\u5e76\u5c06\u7ed3\u679c\u4fdd\u5b58\u5230\u53d8\u91cf\u4e2d\njava_pid=$(ps aux | grep java | grep application | grep -v grep | awk \'{print $2}\')\n\nif [ -n "$java_pid" ]; then\n echo "\u6b63\u5728\u7ec8\u6b62Java\u8fdb\u7a0b $java_pid"\n kill -9 $java_pid\n echo "Java\u8fdb\u7a0b\u5df2\u7ec8\u6b62"\nelse\n echo "\u672a\u627e\u5230Java\u8fdb\u7a0b"\nfi\n')))}u.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7005],{5680:(e,n,a)=>{a.d(n,{xA:()=>i,yg:()=>g});var t=a(6540);function r(e,n,a){return n in e?Object.defineProperty(e,n,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[n]=a,e}function o(e,n){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n&&(t=t.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),a.push.apply(a,t)}return a}function l(e){for(var n=1;n=0||(r[a]=e[a]);return r}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var p=t.createContext({}),d=function(e){var n=t.useContext(p),a=n;return e&&(a="function"==typeof e?e(n):l(l({},n),e)),a},i=function(e){var n=d(e.components);return t.createElement(p.Provider,{value:n},e.children)},s="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return t.createElement(t.Fragment,{},n)}},v=t.forwardRef((function(e,n){var a=e.components,r=e.mdxType,o=e.originalType,p=e.parentName,i=c(e,["components","mdxType","originalType","parentName"]),s=d(a),v=r,g=s["".concat(p,".").concat(v)]||s[v]||u[v]||o;return a?t.createElement(g,l(l({ref:n},i),{},{components:a})):t.createElement(g,l({ref:n},i))}));function g(e,n){var a=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var o=a.length,l=new Array(o);l[0]=v;var c={};for(var p in n)hasOwnProperty.call(n,p)&&(c[p]=n[p]);c.originalType=e,c[s]="string"==typeof e?e:r,l[1]=c;for(var d=2;d{a.r(n),a.d(n,{assets:()=>p,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>c,toc:()=>d});var t=a(8168),r=(a(6540),a(5680));const o={},l="centos-jdk17-app",c={unversionedId:"study/devops/centos-jdk17-app",id:"study/devops/centos-jdk17-app",title:"centos-jdk17-app",description:"\u5b89\u88c5 jdk",source:"@site/docs/study/devops/centos-jdk17-app.md",sourceDirName:"study/devops",slug:"/study/devops/centos-jdk17-app",permalink:"/docs/study/devops/centos-jdk17-app",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"centos-nginx",permalink:"/docs/study/devops/centos-gninx-app"},next:{title:"jar\u8fd0\u7ef4-\u76d1\u63a7",permalink:"/docs/study/devops/jar\u8fd0\u7ef4-\u76d1\u63a7"}},p={},d=[{value:"\u5b89\u88c5 jdk",id:"\u5b89\u88c5-jdk",level:3},{value:"\u914d\u7f6e java",id:"\u914d\u7f6e-java",level:3},{value:"\u914d\u7f6e\u5e94\u7528\u6240\u9700\u7684\u73af\u5883\u53d8\u91cf",id:"\u914d\u7f6e\u5e94\u7528\u6240\u9700\u7684\u73af\u5883\u53d8\u91cf",level:3},{value:"\u521b\u5efa hivemq \u6587\u4ef6\u5939",id:"\u521b\u5efa-hivemq-\u6587\u4ef6\u5939",level:3},{value:"\u542f\u52a8\u5e94\u7528",id:"\u542f\u52a8\u5e94\u7528",level:3},{value:"\u542f\u52a8\u811a\u672c",id:"\u542f\u52a8\u811a\u672c",level:3},{value:"\u505c\u6b62\u811a\u672c",id:"\u505c\u6b62\u811a\u672c",level:3}],i={toc:d},s="wrapper";function u(e){let{components:n,...a}=e;return(0,r.yg)(s,(0,t.A)({},i,a,{components:n,mdxType:"MDXLayout"}),(0,r.yg)("h1",{id:"centos-jdk17-app"},"centos-jdk17-app"),(0,r.yg)("h3",{id:"\u5b89\u88c5-jdk"},"\u5b89\u88c5 jdk"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"#\u9700\u8981\u770bcpu\u67b6\u6784 x64\nuname -a\ncd ~\nmkdir iot-cloud-backend\ncd iot-cloud-backend\nwget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz\ntar -zxvf jdk-17_linux-x64_bin.tar.gz\n\n#\u9700\u8981\u770bcpu\u67b6\u6784 aarch64\nuname -a\ncd ~\nmkdir iot-cloud-backend\ncd iot-cloud-backend\nwget https://download.oracle.com/java/17/latest/jdk-17_linux-aarch64_bin.tar.gz\ntar -zxvf jdk-17_linux-aarch64_bin.tar.gz\n")),(0,r.yg)("h3",{id:"\u914d\u7f6e-java"},"\u914d\u7f6e java"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"vim /etc/profile\n\n# \u589e\u52a0\u5982\u4e0b\nexport JAVA_HOME=/root/iot-cloud-backend/jdk-17.0.8;\nexport PATH=$JAVA_HOME/bin:$PATH;\nexport CLASSPATH=.:$JAVA_HOME/lib;\n\n# \u4fdd\u5b58\u540e\nsource /etc/profile\n")),(0,r.yg)("h3",{id:"\u914d\u7f6e\u5e94\u7528\u6240\u9700\u7684\u73af\u5883\u53d8\u91cf"},"\u914d\u7f6e\u5e94\u7528\u6240\u9700\u7684\u73af\u5883\u53d8\u91cf"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"vim ~/.bash_profile\n\n# \u589e\u52a0\u5982\u4e0b\nexport IOT_MYSQL_HOST=127.0.0.1\nexport IOT_MYSQL_PORT=13306\n# HIVEMQ_HOME=/Users/weic/Documents/GITREP/GITHUB/net-cloud-backend/hivemq\nexport IOT_ALIYUN_KEY=xxx\nexport IOT_ALIYUN_SECRET=xxx\nexport IOT_SMS_REAL=0\n\n#\u4fdd\u5b58\u540e\nsource /etc/profile\n")),(0,r.yg)("h3",{id:"\u521b\u5efa-hivemq-\u6587\u4ef6\u5939"},"\u521b\u5efa hivemq \u6587\u4ef6\u5939"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"mkdir -p /root/iot-cloud-backend/hivemq/embedded-config-folder\nmkdir -p /root/iot-cloud-backend/hivemq/embedded-data-folder\nmkdir -p /root/iot-cloud-backend/hivemq/embedded-extensions-folder\n# config\u4e0b\u9762\u6709\u4e09\u4e2a\u914d\u7f6e\u6587\u4ef6\u9700\u8981\u4f20\u8fc7\u53bb\n\n")),(0,r.yg)("h3",{id:"\u542f\u52a8\u5e94\u7528"},"\u542f\u52a8\u5e94\u7528"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"# \u542f\u52a8\njava -jar application-0.0.1-SNAPSHOT.jar > iot-cloud-backend.log &\n")),(0,r.yg)("h3",{id:"\u542f\u52a8\u811a\u672c"},"\u542f\u52a8\u811a\u672c"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'#!/bin/sh\n# \u67e5\u627eJava\u8fdb\u7a0b\uff0c\u5e76\u5c06\u7ed3\u679c\u4fdd\u5b58\u5230\u53d8\u91cf\u4e2d\njava_pid=$(ps aux | grep java | grep application | grep -v grep | awk \'{print $2}\')\n\nif [ -n "$java_pid" ]; then\n echo "\u5df2\u5b58\u5728 $java_pid"\nelse\n java -jar application-0.0.1-SNAPSHOT.jar > net-cloud-backend.log &\n echo "\u542f\u52a8\u4e2d..."\n tail -f net-cloud-backend.log\nfi\n')),(0,r.yg)("h3",{id:"\u505c\u6b62\u811a\u672c"},"\u505c\u6b62\u811a\u672c"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'#!/bin/sh\n\n# \u67e5\u627eJava\u8fdb\u7a0b\uff0c\u5e76\u5c06\u7ed3\u679c\u4fdd\u5b58\u5230\u53d8\u91cf\u4e2d\njava_pid=$(ps aux | grep java | grep application | grep -v grep | awk \'{print $2}\')\n\nif [ -n "$java_pid" ]; then\n echo "\u6b63\u5728\u7ec8\u6b62Java\u8fdb\u7a0b $java_pid"\n kill -9 $java_pid\n echo "Java\u8fdb\u7a0b\u5df2\u7ec8\u6b62"\nelse\n echo "\u672a\u627e\u5230Java\u8fdb\u7a0b"\nfi\n')))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/350be966.1b3e6221.js b/assets/js/350be966.a9a61c84.js similarity index 98% rename from assets/js/350be966.1b3e6221.js rename to assets/js/350be966.a9a61c84.js index b9e49bd32..ccc6e42f4 100644 --- a/assets/js/350be966.1b3e6221.js +++ b/assets/js/350be966.a9a61c84.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[767],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var u=n.createContext({}),l=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},p=function(e){var t=l(e.components);return n.createElement(u.Provider,{value:t},e.children)},s="mdxType",f={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,c=e.originalType,u=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),s=l(r),d=o,y=s["".concat(u,".").concat(d)]||s[d]||f[d]||c;return r?n.createElement(y,a(a({ref:t},p),{},{components:r})):n.createElement(y,a({ref:t},p))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var c=r.length,a=new Array(c);a[0]=d;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[s]="string"==typeof e?e:o,a[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>a,default:()=>f,frontMatter:()=>c,metadata:()=>i,toc:()=>l});var n=r(8168),o=(r(6540),r(5680));const c={},a="Linux tc",i={unversionedId:"study/net/tc",id:"study/net/tc",title:"Linux tc",description:"tc \u662f Linux \u7cfb\u7edf\u4e0b\u7684\u6d41\u91cf\u63a7\u5236\u5de5\u5177\uff0c\u5168\u79f0 Traffic Control\uff0c\u7528\u4e8e\u914d\u7f6e\u548c\u63a7\u5236\u7f51\u7edc\u6d41\u91cf\u3002\u5b83\u662f\u4e00\u4e2a\u5f3a\u5927\u7684\u5de5\u5177\uff0c\u53ef\u4ee5\u7528\u4e8e\u914d\u7f6e\u548c\u8c03\u6574\u5404\u79cd\u7f51\u7edc\u63a5\u53e3\u7684\u6d41\u91cf\u63a7\u5236\u53c2\u6570\uff0c\u5982\u5e26\u5bbd\u9650\u5236\u3001\u5ef6\u8fdf\u3001\u4e22\u5305\u7387\u7b49\u3002",source:"@site/docs/study/net/tc.md",sourceDirName:"study/net",slug:"/study/net/tc",permalink:"/docs/study/net/tc",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"unix pfctl \u9632\u706b\u5899",permalink:"/docs/study/net/pfctl\u9632\u706b\u5899"},next:{title:"tuntap",permalink:"/docs/study/net/tuntap"}},u={},l=[],p={toc:l},s="wrapper";function f(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"linux-tc"},"Linux tc"),(0,o.yg)("p",null,"tc \u662f Linux \u7cfb\u7edf\u4e0b\u7684\u6d41\u91cf\u63a7\u5236\u5de5\u5177\uff0c\u5168\u79f0 Traffic Control\uff0c\u7528\u4e8e\u914d\u7f6e\u548c\u63a7\u5236\u7f51\u7edc\u6d41\u91cf\u3002\u5b83\u662f\u4e00\u4e2a\u5f3a\u5927\u7684\u5de5\u5177\uff0c\u53ef\u4ee5\u7528\u4e8e\u914d\u7f6e\u548c\u8c03\u6574\u5404\u79cd\u7f51\u7edc\u63a5\u53e3\u7684\u6d41\u91cf\u63a7\u5236\u53c2\u6570\uff0c\u5982\u5e26\u5bbd\u9650\u5236\u3001\u5ef6\u8fdf\u3001\u4e22\u5305\u7387\u7b49\u3002"))}f.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[767],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var u=n.createContext({}),l=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},p=function(e){var t=l(e.components);return n.createElement(u.Provider,{value:t},e.children)},s="mdxType",f={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,c=e.originalType,u=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),s=l(r),d=o,y=s["".concat(u,".").concat(d)]||s[d]||f[d]||c;return r?n.createElement(y,a(a({ref:t},p),{},{components:r})):n.createElement(y,a({ref:t},p))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var c=r.length,a=new Array(c);a[0]=d;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[s]="string"==typeof e?e:o,a[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>a,default:()=>f,frontMatter:()=>c,metadata:()=>i,toc:()=>l});var n=r(8168),o=(r(6540),r(5680));const c={},a="Linux tc",i={unversionedId:"study/net/tc",id:"study/net/tc",title:"Linux tc",description:"tc \u662f Linux \u7cfb\u7edf\u4e0b\u7684\u6d41\u91cf\u63a7\u5236\u5de5\u5177\uff0c\u5168\u79f0 Traffic Control\uff0c\u7528\u4e8e\u914d\u7f6e\u548c\u63a7\u5236\u7f51\u7edc\u6d41\u91cf\u3002\u5b83\u662f\u4e00\u4e2a\u5f3a\u5927\u7684\u5de5\u5177\uff0c\u53ef\u4ee5\u7528\u4e8e\u914d\u7f6e\u548c\u8c03\u6574\u5404\u79cd\u7f51\u7edc\u63a5\u53e3\u7684\u6d41\u91cf\u63a7\u5236\u53c2\u6570\uff0c\u5982\u5e26\u5bbd\u9650\u5236\u3001\u5ef6\u8fdf\u3001\u4e22\u5305\u7387\u7b49\u3002",source:"@site/docs/study/net/tc.md",sourceDirName:"study/net",slug:"/study/net/tc",permalink:"/docs/study/net/tc",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"unix pfctl \u9632\u706b\u5899",permalink:"/docs/study/net/pfctl\u9632\u706b\u5899"},next:{title:"tuntap",permalink:"/docs/study/net/tuntap"}},u={},l=[],p={toc:l},s="wrapper";function f(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"linux-tc"},"Linux tc"),(0,o.yg)("p",null,"tc \u662f Linux \u7cfb\u7edf\u4e0b\u7684\u6d41\u91cf\u63a7\u5236\u5de5\u5177\uff0c\u5168\u79f0 Traffic Control\uff0c\u7528\u4e8e\u914d\u7f6e\u548c\u63a7\u5236\u7f51\u7edc\u6d41\u91cf\u3002\u5b83\u662f\u4e00\u4e2a\u5f3a\u5927\u7684\u5de5\u5177\uff0c\u53ef\u4ee5\u7528\u4e8e\u914d\u7f6e\u548c\u8c03\u6574\u5404\u79cd\u7f51\u7edc\u63a5\u53e3\u7684\u6d41\u91cf\u63a7\u5236\u53c2\u6570\uff0c\u5982\u5e26\u5bbd\u9650\u5236\u3001\u5ef6\u8fdf\u3001\u4e22\u5305\u7387\u7b49\u3002"))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/35b5dc5a.cc9b5176.js b/assets/js/35b5dc5a.7829f5c5.js similarity index 98% rename from assets/js/35b5dc5a.cc9b5176.js rename to assets/js/35b5dc5a.7829f5c5.js index 3c64ce02a..c9f2befaa 100644 --- a/assets/js/35b5dc5a.cc9b5176.js +++ b/assets/js/35b5dc5a.7829f5c5.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[385],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),s=p(r),d=o,f=s["".concat(l,".").concat(d)]||s[d]||y[d]||a;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[s]="string"==typeof e?e:o,c[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>y,frontMatter:()=>a,metadata:()=>i,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,i={unversionedId:"study/net/\u4ee3\u7406",id:"study/net/\u4ee3\u7406",title:"\u4ee3\u7406",description:"\u53c2\u8003",source:"@site/docs/study/net/\u4ee3\u7406.md",sourceDirName:"study/net",slug:"/study/net/\u4ee3\u7406",permalink:"/docs/study/net/\u4ee3\u7406",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"vpn",permalink:"/docs/study/net/vpn"},next:{title:"\u5185\u7f51\u7a7f\u900f",permalink:"/docs/study/net/\u5185\u7f51\u7a7f\u900f"}},l={},p=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],u={toc:p},s="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://blog.revincx.icu/posts/proxy-summary/"},"\u5173\u4e8e\u300e\u4ee3\u7406\u300f\u7684\u4e0d\u5b8c\u5168\u4f7f\u7528\u6307\u5317"),(0,o.yg)("ul",{parentName:"li"},(0,o.yg)("li",{parentName:"ul"},"\u4ee3\u7406\u548c vpn \u8fd8\u662f\u6709\u5f88\u5927\u533a\u522b\u7684")))))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[385],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),s=p(r),d=o,f=s["".concat(l,".").concat(d)]||s[d]||y[d]||a;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[s]="string"==typeof e?e:o,c[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>y,frontMatter:()=>a,metadata:()=>i,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,i={unversionedId:"study/net/\u4ee3\u7406",id:"study/net/\u4ee3\u7406",title:"\u4ee3\u7406",description:"\u53c2\u8003",source:"@site/docs/study/net/\u4ee3\u7406.md",sourceDirName:"study/net",slug:"/study/net/\u4ee3\u7406",permalink:"/docs/study/net/\u4ee3\u7406",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"vpn",permalink:"/docs/study/net/vpn"},next:{title:"\u5185\u7f51\u7a7f\u900f",permalink:"/docs/study/net/\u5185\u7f51\u7a7f\u900f"}},l={},p=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],u={toc:p},s="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://blog.revincx.icu/posts/proxy-summary/"},"\u5173\u4e8e\u300e\u4ee3\u7406\u300f\u7684\u4e0d\u5b8c\u5168\u4f7f\u7528\u6307\u5317"),(0,o.yg)("ul",{parentName:"li"},(0,o.yg)("li",{parentName:"ul"},"\u4ee3\u7406\u548c vpn \u8fd8\u662f\u6709\u5f88\u5927\u533a\u522b\u7684")))))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/35d73bf2.be489659.js b/assets/js/35d73bf2.ec4e916a.js similarity index 98% rename from assets/js/35d73bf2.be489659.js rename to assets/js/35d73bf2.ec4e916a.js index c9bd6a477..80b46f697 100644 --- a/assets/js/35d73bf2.be489659.js +++ b/assets/js/35d73bf2.ec4e916a.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2747],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),u=p(r),y=o,f=u["".concat(l,".").concat(y)]||u[y]||d[y]||a;return r?n.createElement(f,i(i({ref:t},s),{},{components:r})):n.createElement(f,i({ref:t},s))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=y;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[u]="string"==typeof e?e:o,i[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={},i=void 0,c={unversionedId:"study/think/\u4ee3\u7801\u8bc4\u5ba1/Gerrit\u4ee3\u7801\u8bc4\u5ba1\u5de5\u5177",id:"study/think/\u4ee3\u7801\u8bc4\u5ba1/Gerrit\u4ee3\u7801\u8bc4\u5ba1\u5de5\u5177",title:"Gerrit\u4ee3\u7801\u8bc4\u5ba1\u5de5\u5177",description:"\u53c2\u8003",source:"@site/docs/study/think/\u4ee3\u7801\u8bc4\u5ba1/Gerrit\u4ee3\u7801\u8bc4\u5ba1\u5de5\u5177.md",sourceDirName:"study/think/\u4ee3\u7801\u8bc4\u5ba1",slug:"/study/think/\u4ee3\u7801\u8bc4\u5ba1/Gerrit\u4ee3\u7801\u8bc4\u5ba1\u5de5\u5177",permalink:"/docs/study/think/\u4ee3\u7801\u8bc4\u5ba1/Gerrit\u4ee3\u7801\u8bc4\u5ba1\u5de5\u5177",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"IT_CT_OT",permalink:"/docs/study/think/IT_CT_OT"},next:{title:"\u4ee3\u7801\u5ba1\u67e5\u95ee\u9898\u624b\u518c",permalink:"/docs/study/think/\u4ee3\u7801\u8bc4\u5ba1/\u4ee3\u7801\u5ba1\u67e5\u95ee\u9898\u624b\u518c"}},l={},p=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],s={toc:p},u="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("a",{parentName:"li",href:"https://blog.csdn.net/weihao_/article/details/109636572"},"Gerrit\u4ee3\u7801\u8bc4\u5ba1\u5de5\u5177")),(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("a",{parentName:"li",href:"https://www.pianshen.com/article/23571578417/"},"15\u4e2a\u6700\u4f73\u7684\u4ee3\u7801\u8bc4\u5ba1\uff08Code Review\uff09\u5de5\u5177"))))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2747],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),u=p(r),y=o,f=u["".concat(l,".").concat(y)]||u[y]||d[y]||a;return r?n.createElement(f,i(i({ref:t},s),{},{components:r})):n.createElement(f,i({ref:t},s))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=y;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[u]="string"==typeof e?e:o,i[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={},i=void 0,c={unversionedId:"study/think/\u4ee3\u7801\u8bc4\u5ba1/Gerrit\u4ee3\u7801\u8bc4\u5ba1\u5de5\u5177",id:"study/think/\u4ee3\u7801\u8bc4\u5ba1/Gerrit\u4ee3\u7801\u8bc4\u5ba1\u5de5\u5177",title:"Gerrit\u4ee3\u7801\u8bc4\u5ba1\u5de5\u5177",description:"\u53c2\u8003",source:"@site/docs/study/think/\u4ee3\u7801\u8bc4\u5ba1/Gerrit\u4ee3\u7801\u8bc4\u5ba1\u5de5\u5177.md",sourceDirName:"study/think/\u4ee3\u7801\u8bc4\u5ba1",slug:"/study/think/\u4ee3\u7801\u8bc4\u5ba1/Gerrit\u4ee3\u7801\u8bc4\u5ba1\u5de5\u5177",permalink:"/docs/study/think/\u4ee3\u7801\u8bc4\u5ba1/Gerrit\u4ee3\u7801\u8bc4\u5ba1\u5de5\u5177",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"IT_CT_OT",permalink:"/docs/study/think/IT_CT_OT"},next:{title:"\u4ee3\u7801\u5ba1\u67e5\u95ee\u9898\u624b\u518c",permalink:"/docs/study/think/\u4ee3\u7801\u8bc4\u5ba1/\u4ee3\u7801\u5ba1\u67e5\u95ee\u9898\u624b\u518c"}},l={},p=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],s={toc:p},u="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("a",{parentName:"li",href:"https://blog.csdn.net/weihao_/article/details/109636572"},"Gerrit\u4ee3\u7801\u8bc4\u5ba1\u5de5\u5177")),(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("a",{parentName:"li",href:"https://www.pianshen.com/article/23571578417/"},"15\u4e2a\u6700\u4f73\u7684\u4ee3\u7801\u8bc4\u5ba1\uff08Code Review\uff09\u5de5\u5177"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/36351059.d238766b.js b/assets/js/36351059.20dee2ae.js similarity index 98% rename from assets/js/36351059.d238766b.js rename to assets/js/36351059.20dee2ae.js index 0ac9c6a1f..35736edcc 100644 --- a/assets/js/36351059.d238766b.js +++ b/assets/js/36351059.20dee2ae.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1213],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>m});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},d="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),d=p(r),f=o,m=d["".concat(l,".").concat(f)]||d[f]||s[f]||a;return r?n.createElement(m,i(i({ref:t},u),{},{components:r})):n.createElement(m,i({ref:t},u))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=f;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[d]="string"==typeof e?e:o,i[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>s,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={sidebar_position:7},i="\u8bbe\u5907\u5206\u7ec4\u7ba1\u7406",c={unversionedId:"iotcloud/devicemanager/device-group",id:"iotcloud/devicemanager/device-group",title:"\u8bbe\u5907\u5206\u7ec4\u7ba1\u7406",description:"\u4e3a\u4ec0\u4e48\u9700\u8981\u8bbe\u8ba1\u8bbe\u5907\u5206\u7ec4\u8fd9\u4e2a\u529f\u80fd\uff1f",source:"@site/docs/iotcloud/devicemanager/device-group.md",sourceDirName:"iotcloud/devicemanager",slug:"/iotcloud/devicemanager/device-group",permalink:"/docs/iotcloud/devicemanager/device-group",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:7,frontMatter:{sidebar_position:7},sidebar:"iotCloudSidebar",previous:{title:"\u8bbe\u5907\u4fe1\u606f\u7ba1\u7406",permalink:"/docs/iotcloud/devicemanager/device-info"},next:{title:"\u6982\u8ff0",permalink:"/docs/iotcloud/usercenter/"}},l={},p=[],u={toc:p},d="wrapper";function s(e){let{components:t,...r}=e;return(0,o.yg)(d,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u8bbe\u5907\u5206\u7ec4\u7ba1\u7406"},"\u8bbe\u5907\u5206\u7ec4\u7ba1\u7406"),(0,o.yg)("p",null,"\u4e3a\u4ec0\u4e48\u9700\u8981\u8bbe\u8ba1\u8bbe\u5907\u5206\u7ec4\u8fd9\u4e2a\u529f\u80fd\uff1f"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"\u8bbe\u5907\u592a\u591a\uff0c\u67e5\u8be2\u7684\u65f6\u5019\u5f88\u4e0d\u65b9\u4fbf\uff0c\u9700\u8981\u8bbe\u5907\u91cd\u65b0\u5f52\u7eb3\uff1b\u5982\u679c\u8bbe\u5907\u592a\u5c11\uff08\u4f4e\u4e8e 100\uff09\uff0c\u4f7f\u7528\u8fd9\u4e2a\u529f\u80fd\u610f\u4e49\u4e0d\u5927\u3002"),(0,o.yg)("li",{parentName:"ul"},"\u8fd8\u662f\u8bbe\u5907\u592a\u591a\uff0c\u5206\u914d\u6743\u9650\u7684\u65f6\u5019\uff0c\u4e0d\u597d\u5212\u5206\uff0c\u4e3b\u8981\u662f\u5206\u7ed9",(0,o.yg)("strong",{parentName:"li"},"\u5ba2\u6237"),"\u3001",(0,o.yg)("strong",{parentName:"li"},"\u7cfb\u7edf\u7528\u6237"),"\uff0c\u8fd9\u79cd\u60c5\u51b5\u4e0b\u53ef\u4ee5\u76f4\u63a5\u5212\u5206",(0,o.yg)("strong",{parentName:"li"},"\u5206\u7ec4"),"\u7ed9\u4ed6\u4eec\uff0c\u8fd9\u6837\u8fd9\u4e2a\u5206\u7ec4\u4e0b\u9762\u7684\u8bbe\u5907\u7684\u589e\u5220\u4e5f\u4f1a\u76f4\u63a5\u5f71\u54cd\u5ba2\u6237\u548c\u7cfb\u7edf\u7528\u6237\u7684\u8bbe\u5907\u6743\u9650\u3002")))}s.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1213],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>m});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},d="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),d=p(r),f=o,m=d["".concat(l,".").concat(f)]||d[f]||s[f]||a;return r?n.createElement(m,i(i({ref:t},u),{},{components:r})):n.createElement(m,i({ref:t},u))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=f;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[d]="string"==typeof e?e:o,i[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>s,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={sidebar_position:7},i="\u8bbe\u5907\u5206\u7ec4\u7ba1\u7406",c={unversionedId:"iotcloud/devicemanager/device-group",id:"iotcloud/devicemanager/device-group",title:"\u8bbe\u5907\u5206\u7ec4\u7ba1\u7406",description:"\u4e3a\u4ec0\u4e48\u9700\u8981\u8bbe\u8ba1\u8bbe\u5907\u5206\u7ec4\u8fd9\u4e2a\u529f\u80fd\uff1f",source:"@site/docs/iotcloud/devicemanager/device-group.md",sourceDirName:"iotcloud/devicemanager",slug:"/iotcloud/devicemanager/device-group",permalink:"/docs/iotcloud/devicemanager/device-group",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:7,frontMatter:{sidebar_position:7},sidebar:"iotCloudSidebar",previous:{title:"\u8bbe\u5907\u4fe1\u606f\u7ba1\u7406",permalink:"/docs/iotcloud/devicemanager/device-info"},next:{title:"\u6982\u8ff0",permalink:"/docs/iotcloud/usercenter/"}},l={},p=[],u={toc:p},d="wrapper";function s(e){let{components:t,...r}=e;return(0,o.yg)(d,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u8bbe\u5907\u5206\u7ec4\u7ba1\u7406"},"\u8bbe\u5907\u5206\u7ec4\u7ba1\u7406"),(0,o.yg)("p",null,"\u4e3a\u4ec0\u4e48\u9700\u8981\u8bbe\u8ba1\u8bbe\u5907\u5206\u7ec4\u8fd9\u4e2a\u529f\u80fd\uff1f"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"\u8bbe\u5907\u592a\u591a\uff0c\u67e5\u8be2\u7684\u65f6\u5019\u5f88\u4e0d\u65b9\u4fbf\uff0c\u9700\u8981\u8bbe\u5907\u91cd\u65b0\u5f52\u7eb3\uff1b\u5982\u679c\u8bbe\u5907\u592a\u5c11\uff08\u4f4e\u4e8e 100\uff09\uff0c\u4f7f\u7528\u8fd9\u4e2a\u529f\u80fd\u610f\u4e49\u4e0d\u5927\u3002"),(0,o.yg)("li",{parentName:"ul"},"\u8fd8\u662f\u8bbe\u5907\u592a\u591a\uff0c\u5206\u914d\u6743\u9650\u7684\u65f6\u5019\uff0c\u4e0d\u597d\u5212\u5206\uff0c\u4e3b\u8981\u662f\u5206\u7ed9",(0,o.yg)("strong",{parentName:"li"},"\u5ba2\u6237"),"\u3001",(0,o.yg)("strong",{parentName:"li"},"\u7cfb\u7edf\u7528\u6237"),"\uff0c\u8fd9\u79cd\u60c5\u51b5\u4e0b\u53ef\u4ee5\u76f4\u63a5\u5212\u5206",(0,o.yg)("strong",{parentName:"li"},"\u5206\u7ec4"),"\u7ed9\u4ed6\u4eec\uff0c\u8fd9\u6837\u8fd9\u4e2a\u5206\u7ec4\u4e0b\u9762\u7684\u8bbe\u5907\u7684\u589e\u5220\u4e5f\u4f1a\u76f4\u63a5\u5f71\u54cd\u5ba2\u6237\u548c\u7cfb\u7edf\u7528\u6237\u7684\u8bbe\u5907\u6743\u9650\u3002")))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3790afcd.93c5acb9.js b/assets/js/3790afcd.c27c4cb8.js similarity index 98% rename from assets/js/3790afcd.93c5acb9.js rename to assets/js/3790afcd.c27c4cb8.js index 702c2cca5..52d910dfd 100644 --- a/assets/js/3790afcd.93c5acb9.js +++ b/assets/js/3790afcd.c27c4cb8.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3114],{5680:(e,n,t)=>{t.d(n,{xA:()=>p,yg:()=>y});var r=t(6540);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function c(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var s=r.createContext({}),l=function(e){var n=r.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):c(c({},n),e)),t},p=function(e){var n=l(e.components);return r.createElement(s.Provider,{value:n},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},m=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=l(t),m=a,y=u["".concat(s,".").concat(m)]||u[m]||d[m]||o;return t?r.createElement(y,c(c({ref:n},p),{},{components:t})):r.createElement(y,c({ref:n},p))}));function y(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var o=t.length,c=new Array(o);c[0]=m;var i={};for(var s in n)hasOwnProperty.call(n,s)&&(i[s]=n[s]);i.originalType=e,i[u]="string"==typeof e?e:a,c[1]=i;for(var l=2;l{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>c,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>l});var r=t(8168),a=(t(6540),t(5680));const o={},c=void 0,i={unversionedId:"study/back/IEDA/Maven",id:"study/back/IEDA/Maven",title:"Maven",description:"Maven \u5728 IDEA \u7684\u6700\u4f73\u914d\u7f6e",source:"@site/docs/study/back/IEDA/Maven.md",sourceDirName:"study/back/IEDA",slug:"/study/back/IEDA/Maven",permalink:"/docs/study/back/IEDA/Maven",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Apache APISIX",permalink:"/docs/study/back/API\u7f51\u5173/APISIX"},next:{title:"encoding",permalink:"/docs/study/back/IEDA/encoding"}},s={},l=[{value:"Maven \u5728 IDEA \u7684\u6700\u4f73\u914d\u7f6e",id:"maven-\u5728-idea-\u7684\u6700\u4f73\u914d\u7f6e",level:3},{value:"\u6ce8\u610f settings.xml \u7684\u4e00\u4e9b\u914d\u7f6e",id:"\u6ce8\u610f-settingsxml-\u7684\u4e00\u4e9b\u914d\u7f6e",level:3}],p={toc:l},u="wrapper";function d(e){let{components:n,...o}=e;return(0,a.yg)(u,(0,r.A)({},p,o,{components:n,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"maven-\u5728-idea-\u7684\u6700\u4f73\u914d\u7f6e"},"Maven \u5728 IDEA \u7684\u6700\u4f73\u914d\u7f6e"),(0,a.yg)("p",null,"\u56e2\u961f\u56fa\u5b9a\u4f7f\u7528\u67d0\u4e2a\u7248\u672c\u7684 Maven\uff0c\u81ea\u884c\u5728\u5b98\u7f51\u4e0b\u8f7d ",(0,a.yg)("a",{parentName:"p",href:"https://maven.apache.org/download.cgi"},"https://maven.apache.org/download.cgi")),(0,a.yg)("p",null,"\u5728 IDEA \u4e2d\u8bbe\u7f6e"),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"maven",src:t(4517).A,width:"1136",height:"781"})),(0,a.yg)("h3",{id:"\u6ce8\u610f-settingsxml-\u7684\u4e00\u4e9b\u914d\u7f6e"},"\u6ce8\u610f settings.xml \u7684\u4e00\u4e9b\u914d\u7f6e"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-xml"},"\nD:\\soft\\.m2\\repository\n\n\n xx-nexus\n admin\n 123456\n\n\n\x3c!-- \u963f\u91cc\u955c\u50cf\u5730\u5740 --\x3e\n\n alimaven\n aliyun maven\n http://maven.aliyun.com/nexus/content/repositories/central/\n central\n\n\n")))}d.isMDXComponent=!0},4517:(e,n,t)=>{t.d(n,{A:()=>r});const r=t.p+"assets/images/ideamaven-d7219c23020ea19ec135e3c90a316aa2.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3114],{5680:(e,n,t)=>{t.d(n,{xA:()=>p,yg:()=>y});var r=t(6540);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function c(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var s=r.createContext({}),l=function(e){var n=r.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):c(c({},n),e)),t},p=function(e){var n=l(e.components);return r.createElement(s.Provider,{value:n},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},m=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=l(t),m=a,y=u["".concat(s,".").concat(m)]||u[m]||d[m]||o;return t?r.createElement(y,c(c({ref:n},p),{},{components:t})):r.createElement(y,c({ref:n},p))}));function y(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var o=t.length,c=new Array(o);c[0]=m;var i={};for(var s in n)hasOwnProperty.call(n,s)&&(i[s]=n[s]);i.originalType=e,i[u]="string"==typeof e?e:a,c[1]=i;for(var l=2;l{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>c,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>l});var r=t(8168),a=(t(6540),t(5680));const o={},c=void 0,i={unversionedId:"study/back/IEDA/Maven",id:"study/back/IEDA/Maven",title:"Maven",description:"Maven \u5728 IDEA \u7684\u6700\u4f73\u914d\u7f6e",source:"@site/docs/study/back/IEDA/Maven.md",sourceDirName:"study/back/IEDA",slug:"/study/back/IEDA/Maven",permalink:"/docs/study/back/IEDA/Maven",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Apache APISIX",permalink:"/docs/study/back/API\u7f51\u5173/APISIX"},next:{title:"encoding",permalink:"/docs/study/back/IEDA/encoding"}},s={},l=[{value:"Maven \u5728 IDEA \u7684\u6700\u4f73\u914d\u7f6e",id:"maven-\u5728-idea-\u7684\u6700\u4f73\u914d\u7f6e",level:3},{value:"\u6ce8\u610f settings.xml \u7684\u4e00\u4e9b\u914d\u7f6e",id:"\u6ce8\u610f-settingsxml-\u7684\u4e00\u4e9b\u914d\u7f6e",level:3}],p={toc:l},u="wrapper";function d(e){let{components:n,...o}=e;return(0,a.yg)(u,(0,r.A)({},p,o,{components:n,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"maven-\u5728-idea-\u7684\u6700\u4f73\u914d\u7f6e"},"Maven \u5728 IDEA \u7684\u6700\u4f73\u914d\u7f6e"),(0,a.yg)("p",null,"\u56e2\u961f\u56fa\u5b9a\u4f7f\u7528\u67d0\u4e2a\u7248\u672c\u7684 Maven\uff0c\u81ea\u884c\u5728\u5b98\u7f51\u4e0b\u8f7d ",(0,a.yg)("a",{parentName:"p",href:"https://maven.apache.org/download.cgi"},"https://maven.apache.org/download.cgi")),(0,a.yg)("p",null,"\u5728 IDEA \u4e2d\u8bbe\u7f6e"),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"maven",src:t(4517).A,width:"1136",height:"781"})),(0,a.yg)("h3",{id:"\u6ce8\u610f-settingsxml-\u7684\u4e00\u4e9b\u914d\u7f6e"},"\u6ce8\u610f settings.xml \u7684\u4e00\u4e9b\u914d\u7f6e"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-xml"},"\nD:\\soft\\.m2\\repository\n\n\n xx-nexus\n admin\n 123456\n\n\n\x3c!-- \u963f\u91cc\u955c\u50cf\u5730\u5740 --\x3e\n\n alimaven\n aliyun maven\n http://maven.aliyun.com/nexus/content/repositories/central/\n central\n\n\n")))}d.isMDXComponent=!0},4517:(e,n,t)=>{t.d(n,{A:()=>r});const r=t.p+"assets/images/ideamaven-d7219c23020ea19ec135e3c90a316aa2.png"}}]); \ No newline at end of file diff --git a/assets/js/3815e5ff.bd41bde2.js b/assets/js/3815e5ff.c26dce9c.js similarity index 99% rename from assets/js/3815e5ff.bd41bde2.js rename to assets/js/3815e5ff.c26dce9c.js index e3ca0338b..b91f8790c 100644 --- a/assets/js/3815e5ff.bd41bde2.js +++ b/assets/js/3815e5ff.c26dce9c.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1366],{5680:(e,n,l)=>{l.d(n,{xA:()=>u,yg:()=>s});var t=l(6540);function a(e,n,l){return n in e?Object.defineProperty(e,n,{value:l,enumerable:!0,configurable:!0,writable:!0}):e[n]=l,e}function r(e,n){var l=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n&&(t=t.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),l.push.apply(l,t)}return l}function p(e){for(var n=1;n=0||(a[l]=e[l]);return a}(e,n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,l)&&(a[l]=e[l])}return a}var i=t.createContext({}),y=function(e){var n=t.useContext(i),l=n;return e&&(l="function"==typeof e?e(n):p(p({},n),e)),l},u=function(e){var n=y(e.components);return t.createElement(i.Provider,{value:n},e.children)},o="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return t.createElement(t.Fragment,{},n)}},d=t.forwardRef((function(e,n){var l=e.components,a=e.mdxType,r=e.originalType,i=e.parentName,u=g(e,["components","mdxType","originalType","parentName"]),o=y(l),d=a,s=o["".concat(i,".").concat(d)]||o[d]||m[d]||r;return l?t.createElement(s,p(p({ref:n},u),{},{components:l})):t.createElement(s,p({ref:n},u))}));function s(e,n){var l=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var r=l.length,p=new Array(r);p[0]=d;var g={};for(var i in n)hasOwnProperty.call(n,i)&&(g[i]=n[i]);g.originalType=e,g[o]="string"==typeof e?e:a,p[1]=g;for(var y=2;y{l.r(n),l.d(n,{assets:()=>i,contentTitle:()=>p,default:()=>m,frontMatter:()=>r,metadata:()=>g,toc:()=>y});var t=l(8168),a=(l(6540),l(5680));const r={},p=void 0,g={unversionedId:"study/think/\u8c08\u5de5\u4f5c\u5fc3\u5f97",id:"study/think/\u8c08\u5de5\u4f5c\u5fc3\u5f97",title:"\u8c08\u5de5\u4f5c\u5fc3\u5f97",description:"\u5236\u5b9a\u539f\u5219\uff1a\u624b\u4e2d\u65e0\u5200\uff0c\u4f46\u4f60\u7684\u5fc3\u4e2d\u8981\u6709\u5200",source:"@site/docs/study/think/\u8c08\u5de5\u4f5c\u5fc3\u5f97.md",sourceDirName:"study/think",slug:"/study/think/\u8c08\u5de5\u4f5c\u5fc3\u5f97",permalink:"/docs/study/think/\u8c08\u5de5\u4f5c\u5fc3\u5f97",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u5206\u5e03\u5f0f\u7f13\u5b58",permalink:"/docs/study/think/\u7f13\u5b58/\u5206\u5e03\u5f0f\u7f13\u5b58"},next:{title:"\u9650\u6d41",permalink:"/docs/study/think/\u9650\u6d41"}},i={},y=[{value:"\u5236\u5b9a\u539f\u5219\uff1a\u624b\u4e2d\u65e0\u5200\uff0c\u4f46\u4f60\u7684\u5fc3\u4e2d\u8981\u6709\u5200",id:"\u5236\u5b9a\u539f\u5219\u624b\u4e2d\u65e0\u5200\u4f46\u4f60\u7684\u5fc3\u4e2d\u8981\u6709\u5200",level:3},{value:"\u6280\u672f\u56e2\u961f\u6210\u9f99\u6210\u866b\u7684\u79d8\u8bc0",id:"\u6280\u672f\u56e2\u961f\u6210\u9f99\u6210\u866b\u7684\u79d8\u8bc0",level:3},{value:"\u56e2\u961f\u7684\u89c2\u5bdf\u8005\u6548\u5e94",id:"\u56e2\u961f\u7684\u89c2\u5bdf\u8005\u6548\u5e94",level:4},{value:"\u613f\u666f\u521d\u5fc3\u5f88\u91cd\u8981\u3002",id:"\u613f\u666f\u521d\u5fc3\u5f88\u91cd\u8981",level:4},{value:"\u4e13\u4e1a\u7684\u4eba\u505a\u4e13\u4e1a\u7684\u4e8b",id:"\u4e13\u4e1a\u7684\u4eba\u505a\u4e13\u4e1a\u7684\u4e8b",level:3},{value:"\u7ebf\u4e0a\u6545\u969c\u5904\u7406\u603b\u7ed3",id:"\u7ebf\u4e0a\u6545\u969c\u5904\u7406\u603b\u7ed3",level:3},{value:"\u6ca1\u6709\u9884\u89c1\u6027\u4f60\u51ed\u4ec0\u4e48\u664b\u5347",id:"\u6ca1\u6709\u9884\u89c1\u6027\u4f60\u51ed\u4ec0\u4e48\u664b\u5347",level:3},{value:"\u4ec0\u4e48\u662f\u9884\u89c1\u6027\uff1f",id:"\u4ec0\u4e48\u662f\u9884\u89c1\u6027",level:4},{value:"\u6211\u53f8\u7814\u53d1\u6587\u5316=",id:"\u6211\u53f8\u7814\u53d1\u6587\u5316",level:3},{value:"Don't make me think",id:"dont-make-me-think",level:3},{value:"If it hurts, do it more and often",id:"if-it-hurts-do-it-more-and-often",level:3},{value:"\u8fd9\u4e2a\u4e16\u754c\u4ece\u6765\u6ca1\u6709\u4ec0\u4e48\u6551\u4e16\u4e3b",id:"\u8fd9\u4e2a\u4e16\u754c\u4ece\u6765\u6ca1\u6709\u4ec0\u4e48\u6551\u4e16\u4e3b",level:3},{value:"\u4e00\u5b9a\u8981\u6709\u540e\u5907\u65b9\u6848",id:"\u4e00\u5b9a\u8981\u6709\u540e\u5907\u65b9\u6848",level:3},{value:"DevOps \u65b0\u516b\u8363\u516b\u803b\uff0c\u6bcf\u4e00\u6761\u90fd\u662f\u8840\u8089\u957f\u57ce",id:"devops-\u65b0\u516b\u8363\u516b\u803b\u6bcf\u4e00\u6761\u90fd\u662f\u8840\u8089\u957f\u57ce",level:3},{value:"\u6838\u5fc3\u4e1a\u52a1\u6d41\u7a0b\u7684\u6545\u969c\u5904\u7406\u539f\u5219\uff1a\u4e0d\u53ef\u604b\u6218",id:"\u6838\u5fc3\u4e1a\u52a1\u6d41\u7a0b\u7684\u6545\u969c\u5904\u7406\u539f\u5219\u4e0d\u53ef\u604b\u6218",level:3},{value:"\u5f53\u6211\u4eec\u8c08\u91cd\u6784\u7684\u65f6\u5019\u6211\u4eec\u60f3\u8c08\u4ec0\u4e48",id:"\u5f53\u6211\u4eec\u8c08\u91cd\u6784\u7684\u65f6\u5019\u6211\u4eec\u60f3\u8c08\u4ec0\u4e48",level:3},{value:"\u8981\u719f\u7ec3\u638c\u63e1\u7684\u4e03\u4e2a\u4eba\u751f\u5de5\u5177",id:"\u8981\u719f\u7ec3\u638c\u63e1\u7684\u4e03\u4e2a\u4eba\u751f\u5de5\u5177",level:3},{value:"\u4e00\u3001SWOT\u5206\u6790\u6cd5\uff1a",id:"\u4e00swot\u5206\u6790\u6cd5",level:4},{value:"\u4e8c\u3001PDCA\u5faa\u73af\u89c4\u5219",id:"\u4e8cpdca\u5faa\u73af\u89c4\u5219",level:4},{value:"\u4e09\u30016W2H\u6cd5",id:"\u4e096w2h\u6cd5",level:4},{value:"\u56db\u3001SMART\u539f\u5219",id:"\u56dbsmart\u539f\u5219",level:4},{value:"\u4e94\u3001\u65f6\u95f4\u7ba1\u7406-\u91cd\u8981\u4e0e\u7d27\u6025",id:"\u4e94\u65f6\u95f4\u7ba1\u7406-\u91cd\u8981\u4e0e\u7d27\u6025",level:4},{value:"\u516d\u3001\u4efb\u52a1\u5206\u89e3\u6cd5WBS",id:"\u516d\u4efb\u52a1\u5206\u89e3\u6cd5wbs",level:4},{value:"\u4e03\u3001\u4e8c\u516b\u539f\u5219",id:"\u4e03\u4e8c\u516b\u539f\u5219",level:4},{value:"\u63d0\u9ad8\u63d0\u6d4b\u8d28\u91cf",id:"\u63d0\u9ad8\u63d0\u6d4b\u8d28\u91cf",level:3},{value:"\u5148\u5199\u6587\u6863\u518d\u5199\u4ee3\u7801",id:"\u5148\u5199\u6587\u6863\u518d\u5199\u4ee3\u7801",level:3},{value:"\u4e00\u4e2a\u7a0b\u5e8f\u5458\u7684\u4ef7\u503c\u662f\u89e3\u51b3\u95ee\u9898\u7684\u80fd\u529b",id:"\u4e00\u4e2a\u7a0b\u5e8f\u5458\u7684\u4ef7\u503c\u662f\u89e3\u51b3\u95ee\u9898\u7684\u80fd\u529b",level:3},{value:"\u6ce8\u610f\u6d41\u7a0b\u3001\u89c4\u8303",id:"\u6ce8\u610f\u6d41\u7a0b\u89c4\u8303",level:3}],u={toc:y},o="wrapper";function m(e){let{components:n,...l}=e;return(0,a.yg)(o,(0,t.A)({},u,l,{components:n,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u5236\u5b9a\u539f\u5219\u624b\u4e2d\u65e0\u5200\u4f46\u4f60\u7684\u5fc3\u4e2d\u8981\u6709\u5200"},"\u5236\u5b9a\u539f\u5219\uff1a\u624b\u4e2d\u65e0\u5200\uff0c\u4f46\u4f60\u7684\u5fc3\u4e2d\u8981\u6709\u5200"),(0,a.yg)("p",null,"\u8f6f\u4ef6\u5de5\u7a0b\u548c\u6280\u672f\u9886\u57df\u91cc\u867d\u8bf4\u6cd5\u65e0\u5b9a\u6cd5\uff0c\u9700\u6c42\u548c\u6d41\u7a0b\u968f\u4fbf\u600e\u4e48\u505a\u90fd\u53ef\u4ee5\uff0c\u4f46\u4e5f\u5e76\u975e\u53ef\u4ee5\u5929\u9a6c\u884c\u7a7a\u6063\u610f\u5984\u4e3a\uff0c\u7a0d\u4e0d\u7559\u610f\u5c31\u53ef\u80fd\u5929\u584c\u5730\u9677\u5899\u5012\u5c4b\u584c\uff0c\u917f\u6210\u4e0d\u53ef\u6536\u62fe\u4e4b\u60e8\u5267\u3002\u4e0b\u9762\u6211\u5c31\u8bf4\u9053\u8bf4\u9053\u3002"),(0,a.yg)("p",null,"2020\u5e741\u6708\u5e952\u6708\u521d\uff0c\u9996\u90fd\u533b\u79d1\u5927\u5b66\u9644\u5c5e\u590d\u5174\u533b\u9662\u51fa\u73b0\u533b\u62a4\u4eba\u5458\u611f\u67d3\u65b0\u51a0\u80ba\u708e\u4e8b\u4ef6\uff0c\u6700\u7ec8\u7d2f\u8ba1\u786e\u8bca34\u4eba\uff0c\u65e2\u6709\u533b\u62a4\u4e5f\u6709\u60a3\u8005\u548c\u5bb6\u5c5e\uff0c\u539f\u56e0\u4e5f\u975e\u5e38\u201c\u611f\u4eba\u201d\uff1a\u4e00\u4f4d\u6709\u6b66\u6c49\u63a5\u89e6\u53f2\u7684\u8001\u592a\u592a\uff0c\u672c\u6765\u5c5e\u4e8e\u201c\u65b0\u51a0\u80ba\u708e\u7591\u4f3c\u75c5\u4f8b\u201d\u5728\u53d1\u70ed\u95e8\u8bca\u770b\u75c5\uff0c\u4f46\u5374\u7a81\u53d1\u5947\u60f3\uff0c\u901a\u8fc7\u9662\u9886\u5bfc\u7684\u5173\u7cfb\uff0c\u6258\u5173\u7cfb\u627e\u5fc3\u5185\u79d1ICU\u4e3b\u4efb\u97e9\u67d0\uff0c\u6123\u662f\u4ece\u9632\u62a4\u68ee\u4e25\u7684\u53d1\u70ed\u95e8\u8bca\u75c5\u623f\u8f6c\u8fdb\u4e86\u4e91\u6de1\u98ce\u8f7b\u7684\u5fc3\u5185\u79d1ICU\uff0c\u7ed3\u679c\u6a2a\u626b\u4e00\u7247\u3002"),(0,a.yg)("p",null,"\u6211\u4e00\u76f4\u8bf4\uff0c\u5de5\u7a0b\u5e08\u56e2\u961f\u548c\u533b\u62a4\u56e2\u961f\u90fd\u662f\u4e13\u4e1a\u9886\u57df\u673a\u6784\uff0c\u7ba1\u7406\u65b9\u5f0f\u6709\u76f8\u4f3c\u4e4b\u5904\u3002\u90a3\u4e48\u5728\u8fd9\u4e2a\u6848\u4f8b\u91cc\uff0c\u7ba1\u7406\u8005\u72af\u4e86\u4ec0\u4e48\u9519\u8bef\uff1f\u5fc3\u4e2d\u65e0\u539f\u5219\uff01"),(0,a.yg)("p",null,"\u5fc3\u4e2d\u65e0\u539f\u5219\uff0c\u4f1a\u6709\u4e00\u767e\u4e07\u79cd\u6b7b\u6cd5\u3002"),(0,a.yg)("p",null,"\u539f\u5219\uff01\u4e13\u4e1a\u56e2\u961f\u7684\u7ba1\u7406\u8005\u5fc3\u4e2d\u4e00\u5b9a\u8981\u6709\u539f\u5219\uff0c\u4f60\u6709\u4e86\u539f\u5219\uff0c\u624d\u80fd\u8981\u6c42\u5927\u5bb6\u201c\u8bb2\u653f\u6cbb\uff0c\u5b88\u89c4\u77e9\u201d\uff01\u540c\u6837\uff0c\u5728\u505a\u8bbe\u8ba1\u7684\u65f6\u5019\uff0c\u5148\u628a\u8bbe\u8ba1\u613f\u666f\u3001\u8bbe\u8ba1\u5206\u9636\u6bb5\u76ee\u6807\u3001\u8bbe\u8ba1\u539f\u5219\u5199\u4e0b\u6765\uff0c\u5728\u6b64\u57fa\u7840\u4e0a\u753b\u5730\u4e3a\u7262\u518d\u505a\u8bbe\u8ba1\u63a8\u6f14\uff0c\u83ab\u8981\u5929\u9a6c\u884c\u7a7a\u6063\u610f\u5984\u4e3a\u3002\u624b\u4e2d\u65e0\u5200\uff0c\u5fc3\u4e2d\u6709\u5200\u3002"),(0,a.yg)("p",null,"\u4f5c\u4e3a\u7ba1\u7406\u8005\uff0c\u5982\u679c\u4e0d\u8bb2\u539f\u5219\uff0c\u6ca1\u6709\u89c4\u8303\uff0c\u65e0\u6cd5\u505a\u597d\u7ba1\u7406\u3002\u4e0b\u9762\u7684\u4eba\u4f1a\u65e0\u6240\u9002\u4ece\uff0c\u56e0\u4e3a\u539f\u5219\u5929\u5929\u53d8\uff0c\u4eca\u5929\u8fd9\u6837\uff0c\u660e\u5929\u53c8\u90a3\u6837\uff0c\u6beb\u65e0\u7ae0\u6cd5\u3002\u4e0b\u9762\u7684\u4eba\u4e0d\u77e5\u9053\u5f80\u54ea\u91cc\u91cd\u70b9\u4f7f\u52b2\uff0c\u4e8b\u60c5\u5c31\u4f1a\u53d8\u5f97\u4e00\u56e2\u7cdf\u3002"),(0,a.yg)("p",null,"\u4e0d\uff0c\u6ca1\u6709\u4ec0\u4e48\u6cd5\u65e0\u5b9a\u6cd5\uff0c\u6280\u672f\u7684\u4e16\u754c\u91cc\u4e00\u5b9a\u662f\u6709\u6cd5\u5219\u7684\uff0c\u5426\u5219\u4f60\u4f1a\u6b7b\u5f97\u5f88\u96be\u770b\uff0c\u522b\u6307\u671b\u6211\u6765\u6551\u4f60\uff0c\u6211\u6551\u90fd\u6551\u4e0d\u8d62\u3002"),(0,a.yg)("p",null,"You\uff01Leaders\uff01\u4e00\u5b9a\u8981\u901a\u8fc7\u5c42\u5c42\u53e0\u52a0\u7684\u201cRules\u201d\u5efa\u7acb\u8d77\u672c\u80fd\u53cd\u5e94\uff0c\u4e00\u9047\u5230\u7c7b\u4f3c\u7684\u4e8b\u60c5\uff0c\u5e94\u6fc0\u822c\u7684\u5c31\u77e5\u9053\u8be5\u600e\u4e48\u8bbe\u8ba1\uff0c\u600e\u4e48\u884c\u52a8\uff0c\u600e\u4e48\u6551\u706b\u3002\n\u800c\u8fd9\u4e9b\u201cRules\u201d\u662f\u7ecf\u5386\u4e86\u8840\u4e0e\u706b\u7684\u6d17\u793c\u94f8\u9020\u7684\uff0c\u6bcf\u4e00\u6761\u90fd\u6709\u6765\u7531\u6709\u53bb\u8def\u3002\n\u6bd4\u5982\u8bf4\uff0c\u6211\u57282018\u5e74\u5b9a\u4e49\u7684 DevOps \u65b0\u516b\u8363\u516b\u803b\uff0c\u6bcf\u4e00\u6761\u90fd\u662f\u8840\u8089\u957f\u57ce\uff1a"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"\u4ee5\u968f\u65f6\u53ef\u6269\u5bb9\u3001\u53ef\u7f29\u5bb9\u3001\u53ef\u91cd\u542f\u3001\u53ef\u5207\u6362\u673a\u623f\u6d41\u91cf\u4e3a\u8363\uff0c\u4ee5\u4e0d\u80fd\u8fc1\u79fb\u4e3a\u803b\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u4ee5\u53ef\u914d\u7f6e\u4e3a\u8363\uff0c\u4ee5\u786c\u7f16\u7801\u4e3a\u803b\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u4ee5\u7cfb\u7edf\u4e92\u5907\u4e3a\u8363\uff0c\u4ee5\u7cfb\u7edf\u5355\u70b9\u4e3a\u803b\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u4ee5\u4ea4\u4ed8\u65f6\u6709\u76d1\u63a7\u62a5\u8b66\u4e3a\u8363\uff0c\u4ee5\u4ea4\u4ed8\u88f8\u5954\u7cfb\u7edf\u4e3a\u803b\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u4ee5\u65e0\u72b6\u6001\u4e3a\u8363\uff0c\u4ee5\u6709\u72b6\u6001\u4e3a\u803b\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u4ee5\u6807\u51c6\u5316\u4e3a\u8363\uff0c\u4ee5\u7279\u6b8a\u5316\u4e3a\u803b\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u4ee5\u81ea\u52a8\u5316\u5de5\u5177\u4e3a\u8363\uff0c\u4ee5\u4eba\u8089\u64cd\u4f5c\u4e3a\u803b\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u4ee5\u65e0\u4eba\u503c\u5b88\u4e3a\u8363\uff0c\u4ee5\u4eba\u5de5\u4ecb\u5165\u4e3a\u803b\u3002")),(0,a.yg)("p",null,"\xa0\n\u5982\u4f55\u81ea\u5efa\u6cd5\u5219\uff1f\n\u4ece\u9519\u8bef\u4e2d\u5b66\u4e60\u9519\u8bef\uff01"),(0,a.yg)("p",null,"\xa0\n\u300e\u5b66\u6821\u91cc\u5b66\u4e60\u6700\u597d\u7684\u5b66\u751f\u53ef\u80fd\u5f80\u5f80\u662f\u90a3\u4e9b\u6700\u4e0d\u5584\u4e8e\u4ece\u9519\u8bef\u4e2d\u5b66\u4e60\u7684\u4eba\uff0c\u56e0\u4e3a\u4ed6\u4eec\u5df2\u7ecf\u4e60\u60ef\u4e86\u628a\u9519\u9898\u5f53\u6210\u5931\u8d25\u7684\u4ee3\u540d\u8bcd\uff0c\u800c\u4e0d\u662f\u628a\u72af\u9519\u770b\u6210\u5b66\u4e60\u7684\u673a\u4f1a\uff0c\u8fd9\u53cd\u800c\u6210\u4e3a\u4ed6\u4eec\u8fdb\u6b65\u7684\u4e3b\u8981\u969c\u788d\u3002\u8d70\u5165\u793e\u4f1a\u4e4b\u540e\uff0c\u806a\u660e\u7684\u4eba\u5fc5\u987b\u5584\u4e8e\u62e5\u62b1\u81ea\u5df1\u7684\u9519\u8bef\u548c\u4e0d\u8db3\uff0c\u4ece\u800c\u80fd\u8fdc\u8fdc\u8d85\u8fc7\u90a3\u4e9b\u4e0e\u4ed6\u4eec\u6c34\u5e73\u76f8\u5f53\uff0c\u4f46\u66f4\u81ea\u8d1f\u7684\u540c\u5b66\u3001\u540c\u8f88\u3002\u300f\n\u8fd9\u4e5f\u5c31\u662f\u4e3a\u4ec0\u4e48\u5e73\u51e1\u4eba\u53ef\u4e3a\u975e\u51e1\u4e8b\u7684\u7f18\u6545\uff01\n\u300e\u4e0d\u8981\u60a3\u5f97\u60a3\u5931\uff0c\u8981\u671d\u7740\u76ee\u6807\u52aa\u529b\u524d\u884c\u3002\u8981\u81ea\u7701\u81ea\u8b66\uff0c\u522b\u4eba\u5bf9\u4f60\u5f88\u5230\u4f4d\u7684\u6279\u8bc4\uff0c\u662f\u4f60\u80fd\u5f97\u5230\u7684\u6700\u5b9d\u8d35\u7684\u5efa\u8bae\u3002\u60f3\u60f3\u770b\uff0c\u4f60\u7684\u6ed1\u96ea\u6559\u7ec3\u544a\u8bc9\u4f60\uff0c\u4f60\u6454\u8ddf\u5934\u662f\u56e0\u4e3a\u4f60\u6ed1\u884c\u4e2d\u7684\u91cd\u5fc3\u79fb\u52a8\u4e0d\u5bf9\uff0c\u6b64\u65f6\u4f60\u8981\u662f\u8ba4\u4e3a\u4ed6\u5728\u8d23\u9a82\u4f60\uff0c\u4f60\u8be5\u591a\u4e48\u611a\u8822\u548c\u4f4e\u6548\u3002\u540c\u7406\uff0c\u4f60\u7684\u4e0a\u53f8\uff0c\u6211\uff0c\u4e5f\u53ef\u80fd\u4f1a\u6307\u51fa\u4f60\u5de5\u4f5c\u4e2d\u7684\u7f3a\u70b9\uff0c\u6709\u5219\u6539\u4e4b\uff0c\u7ee7\u7eed\u52aa\u529b\u5c31\u662f\u4e86\u3002\u300f\n\u7b49\u6709\u4e00\u5929\u4f60\u4f9d\u636e\u672c\u80fd\uff08\u4e5f\u5c31\u662f\u4f60\u81ea\u5efa\u7684\u6cd5\u5219\uff09\u884c\u4e8b\u7684\u65f6\u5019\uff0c\u4f60\u80af\u5b9a\u4f1a\u628a\u4e8b\u60c5\u505a\u5f97\u5f88\u597d\uff01"),(0,a.yg)("h3",{id:"\u6280\u672f\u56e2\u961f\u6210\u9f99\u6210\u866b\u7684\u79d8\u8bc0"},"\u6280\u672f\u56e2\u961f\u6210\u9f99\u6210\u866b\u7684\u79d8\u8bc0"),(0,a.yg)("h4",{id:"\u56e2\u961f\u7684\u89c2\u5bdf\u8005\u6548\u5e94"},"\u56e2\u961f\u7684\u89c2\u5bdf\u8005\u6548\u5e94"),(0,a.yg)("p",null,"\u9519\u8bef\u4f1a\u6f14\u53d8\u6210\u4ec0\u4e48\uff0c\u53d6\u51b3\u4e8e\u4f60\u600e\u4e48\u770b\u5f85\u5b83\u3002\u4f60\u89c9\u5f97\u5b83\u662f\u7f9e\u803b\uff0c\u5e94\u8be5\u9690\u79d8\u4e8e\u4eba\uff0c\u6700\u597d\u7edd\u53e3\u4e0d\u63d0\uff0c\u90a3\u4e48\u5b83\u5c31\u4f1a\u53d8\u6210\u5b83\u5b83\u5b83\u5b83\u5b83\u5b83\u5b83\uff0c\u6700\u7ec8\u53d8\u6210\u5927\u707e\u96be\u3002\u4f60\u89c9\u5f97\u5b83\u662f\u8d22\u5bcc\uff0c\u662f\u7ec4\u7ec7\u8fdb\u6b65\u7684\u597d\u673a\u4f1a\uff0c\u662f\u63a8\u884c\u5de5\u5177\u548c\u89c4\u8303\u7684\u5207\u5165\u70b9\uff0c\u90a3\u4e48\u5b83\u5c31\u4f1a\u771f\u7684\u6210\u4e3a\u56e2\u961f\u7684\u4e0d\u53ef\u78e8\u706d\u7684\u4f20\u627f\uff0c\u6210\u4e3a\u5b9d\u8d35\u8d22\u5bcc\u3002"),(0,a.yg)("p",null,(0,a.yg)("strong",{parentName:"p"},"\u9519\u8bef\u7684\u89c2\u5bdf\u8005\u6548\u5e94\uff1a"),"\n",(0,a.yg)("strong",{parentName:"p"},"\u4f60\u8ba4\u4e3a\u9519\u8bef\u662f\u8d22\u5bcc\uff0c\u5b83\u5c31\u662f\u5b9d\u8d35\u8d22\u5bcc\u3002"),"\n",(0,a.yg)("strong",{parentName:"p"},"\u4f60\u8ba4\u4e3a\u9519\u8bef\u662f\u5931\u8d25\uff0c\u5b83\u7acb\u9a6c\u53d8\u6210\u707e\u96be\u3002"),"\n",(0,a.yg)("strong",{parentName:"p"},"\n\u5176\u5b9e\u8fd8\u6709\u4e00\u79cd\u89c2\u5bdf\u8005\u6548\u5e94\u3002\n"),"\u56e2\u961f\u7684\u89c2\u5bdf\u8005\u6548\u5e94\uff1a**\n",(0,a.yg)("strong",{parentName:"p"},"\u4f60\u8ba4\u4e3a\u56e2\u961f\u662f\u8d22\u5bcc\uff0c\u5b83\u5c31\u662f\u8d22\u5bcc\u3002"),"\n",(0,a.yg)("strong",{parentName:"p"},"\u4f60\u8ba4\u4e3a\u56e2\u961f\u662f\u6210\u672c\u5305\u88b1\uff0c\u5b83\u7acb\u9a6c\u53d8\u8eab\u5305\u88b1\u3002")),(0,a.yg)("p",null,"2017\u5e74\uff0c\u6709\u8d5eCTO\u5d14\u7389\u677e\u8bf4\uff0c\u6211\u60f3\u6253\u9020\u51fa\u4e2d\u56fd\u6700\u597d\u7684\u6280\u672f\u56e2\u961f\u3002"),(0,a.yg)("blockquote",null,(0,a.yg)("p",{parentName:"blockquote"},"\u6280\u672f\u4e0a\uff0c\u6709\u8d5e\u8d70\u8fc7\u7684\u8def\u548c\u5927\u591a\u6570\u4ece\u5c0f\u5230\u5927\u7684\u521b\u4e1a\u516c\u53f8\u5dee\u4e0d\u591a\uff0c\u90fd\u662f\u524d\u671f\u4e13\u6ce8\u4e8e\u89e3\u51b3\u4e1a\u52a1\u95ee\u9898\uff0c\u6700\u540e\u67b6\u6784\u95ee\u9898\u5728\u67d0\u4e2a\u65f6\u95f4\u70b9\u96c6\u4e2d\u7206\u53d1\uff0c\u5bfc\u81f4\u5f88\u591a\u7684\u4e0d\u7a33\u5b9a\u3002\u8fd9\u4e00\u70b9\u4e0d\u7ba1\u662f\u963f\u91cc\u4e5f\u597d\uff0c\u4eac\u4e1c\u4e5f\u7f62\uff0c\u8fd8\u662f\u6700\u8fd1\u4ea4\u6d41\u7684\u4e00\u4e9b\u5176\u4ed6\u516c\u53f8\uff0c\u57fa\u672c\u4e0a\u90fd\u662f\u4e00\u6837\u7684\uff0c\u53ea\u662f\u5927\u5bb6\u95ee\u9898\u7684\u4e25\u91cd\u7a0b\u5ea6\u548c\u89e3\u51b3\u95ee\u9898\u7684\u901f\u5ea6\u4e0d\u4e00\u6837\u3002",(0,a.yg)("strong",{parentName:"p"},"\u6709\u8d5e\u7684\u89e3\u51b3\u65b9\u6cd5\u548c\u5927\u5bb6\u4e5f\u6ca1\u4ec0\u4e48\u592a\u5927\u533a\u522b\uff0c\u5c31\u662f\u7ec4\u5efa\u4e00\u6d41\u5e95\u5c42\u6838\u5fc3\u67b6\u6784\u548c\u6838\u5fc3\u8fd0\u7ef4\u56e2\u961f\uff0c\u8fd9\u4e2a\u56e2\u961f\u5fc5\u987b\u5f97\u597d\uff0c\u4e0d\u7136\u89e3\u51b3\u95ee\u9898\u7684\u901f\u5ea6\u975e\u5e38\u975e\u5e38\u6162\uff0c\u6bcf\u5929\u90fd\u53ef\u80fd\u5b95\u673a\uff0c\u4f1a\u4e25\u91cd\u5f71\u54cd\u516c\u53f8\u4e1a\u52a1\u53ca\u6548\u76ca\u3002"),"\n\u65e5\u5e38\u4e1a\u52a1\u4e2d\uff0c\u6211\u4eec\u975e\u5e38\u9f13\u52b1\u5927\u5bb6\u76f8\u4e92\u8865\u4f4d\uff0c\u6709\u95ee\u9898\u53ca\u65f6\u5bfb\u627e\u8d44\u6e90\uff0c\u53ca\u65f6\u83b7\u53d6\u6709\u6548\u7684\u4fe1\u606f\uff0c\u9f13\u52b1\u5927\u5bb6\u9762\u5bf9\u9762\u628a\u4e8b\u60c5\u8bf4\u6e05\u695a\u3002\n\u2014\u20142017\uff0c\u6709\u8d5eCTO\u5d14\u7389\u677e\uff1a\u6211\u60f3\u6253\u9020\u51fa\u4e2d\u56fd\u6700\u597d\u7684\u6280\u672f\u56e2\u961f")),(0,a.yg)("p",null,"2020\u5e74\uff0c\u73b0\u5728\u6765\u770b\uff0c\u4ed6\u53ef\u80fd\u786e\u5b9e\u505a\u5230\u4e86\uff0c\u6709\u8d5e\u7684\u6280\u672f\u5e95\u8574\u975e\u5e38\u5f3a\u3002\u5f53\u7136\u4e0a\u9762\u8fd8\u6709\u4e00\u5c42\u7f8e\u56e2\uff0c\u518d\u4e0a\u9762\u8fd8\u6709\u4e00\u5c42\u963f\u91cc\u5df4\u5df4\u3002"),(0,a.yg)("h4",{id:"\u613f\u666f\u521d\u5fc3\u5f88\u91cd\u8981"},"\u613f\u666f\u521d\u5fc3\u5f88\u91cd\u8981\u3002"),(0,a.yg)("p",null,"\u6709\u7684\u4eba\u613f\u666f\u5c31\u662f\u6d3b\u4e0b\u53bb\uff0c\u90a3\u4e48\u5e74\u590d\u4e00\u5e74\u65e5\u590d\u4e00\u65e5\u59cb\u7ec8\u6323\u624e\u5728\u751f\u6b7b\u8fb9\u7f18\u3002\n\u6709\u7684\u4eba\u613f\u666f\u5c31\u662f\u7528\u4e09\u4e94\u4e2a\u4eba\u505a\u4e00\u4e2a\u8d5a\u94b1\u7684\u5c0f\u516c\u53f8\uff0c\u90a3\u4e48\u4e5f\u633a\u597d\uff0c\u4ed6\u80fd\u8fd9\u6837\u8fc7\u4e00\u8f88\u5b50\u3002\n\u6709\u7684\u4eba\u6ca1\u6709\u613f\u666f\uff0c\u6240\u4ee5\u4ed6\u6b7b\u4e86\u3002"),(0,a.yg)("p",null,"\xa0\n\u963f\u91cc\u5df4\u5df4\u7684\u201c",(0,a.yg)("strong",{parentName:"p"},"\u6b64\u65f6\u6b64\u523b\uff0c\u975e\u6211\u83ab\u5c5e"),"\u201d\u786e\u5b9e\u725b\u903c\uff0c99\u5e74\u5c31\u6709\u4e86\uff0c\u53ef\u4ee5\u8bf4\u662f\u963f\u91cc\u5df4\u5df4\u7b2c\u4e00\u53e5\u571f\u8bdd\u3002"),(0,a.yg)("h3",{id:"\u4e13\u4e1a\u7684\u4eba\u505a\u4e13\u4e1a\u7684\u4e8b"},"\u4e13\u4e1a\u7684\u4eba\u505a\u4e13\u4e1a\u7684\u4e8b"),(0,a.yg)("p",null,"\u6211\u4ee5\u524d\u8bb2\u8fc7\u804c\u573a\uff08\u6f5c\uff09\u89c4\u5219\uff0c\u5176\u4e2d\u4e00\u6761\u53eb\u201c\u542c\u539f\u59cb\u9700\u6c42\uff0c\u4e0d\u542c\u6280\u672f\u89e3\u51b3\u65b9\u6848\u201d\uff0c\u539f\u6587\u5982\u4e0b\uff1a\n\u300e\u6211\u53d1\u73b0\u5f88\u591a\u505a\u4e1a\u52a1\u7684\u4eba\u4e00\u65b9\u9762\u641e\u4e0d\u6e05\u695a\u4ec0\u4e48\u53eb\u539f\u59cb\u9700\u6c42\uff0c\u751a\u81f3\u8fde\u6574\u4e2a\u4e1a\u52a1\u4f53\u7cfb\u662f\u600e\u4e48\u8fd0\u8f6c\u8d77\u6765\u7684\u90fd\u61f5\u61f5\u61c2\u61c2\uff0c\u542c\u4ed6\u8bf4\u4e86\u534a\u5929\uff0c\u539f\u6765\u662f\u5728\u8bb2\u4ed6\u8ba4\u4e3a\u6280\u672f\u4e0a\u600e\u4e48\u89e3\u51b3\u3002\n\u53e6\u4e00\u65b9\u9762\u4ed6\u4eec\u8fd8\u633a\u559c\u6b22\u8d8a\u4fce\u4ee3\u5e96\uff0c\u539f\u59cb\u9700\u6c42\u8fd8\u542d\u542d\u54e7\u54e7\u8bf4\u4e0d\u6e05\u695a\u5462\uff0c\u5c31\u76f4\u63a5\u62cd\u65b9\u6848\uff0c\u751a\u81f3\u8feb\u4e0d\u53ca\u5f85\u5730\u66ff\u6211\u4eec\u60f3\u6570\u636e\u5e93\u662f\u4e0d\u662f\u52a0\u5b57\u6bb5\u2026\u2026\n\u5bf9\u6b64\uff0c\u6211\u7684\u6807\u51c6\u56de\u7b54\u662f\uff1a\u201c\u8bf7\u76f4\u63a5\u8bf4\u539f\u59cb\u9700\u6c42\uff0c\u8bf7\u4e0d\u8981\u7ed9\u6211\u8bb2\u89e3\u51b3\u65b9\u6848\u201d\u3002\n",(0,a.yg)("strong",{parentName:"p"},"\u6f5c\u53f0\u8bcd\u5c31\u662f\uff0c\u4f60\u6709\u4f60\u7684\u4e13\u4e1a\u9886\u57df\uff0c\u6211\u6709\u6211\u7684\uff0c\u8d62\u5f97\u522b\u4eba\u5c0a\u91cd\u7684\u524d\u63d0\u662f\u5148\u628a\u81ea\u5df1\u7684\u672c\u804c\u5de5\u4f5c\u505a\u597d\u3002"),"\n**\n",(0,a.yg)("strong",{parentName:"p"},"\u5728\u4e13\u4e1a\u9886\u57df\u91cc\uff0c\u5343\u4e07\u4e0d\u80fd\u8ba9\u5916\u884c\u9886\u5bfc\u5185\u884c\uff01"),"\n\u6211\u53d1\u73b0\u597d\u591a\u505a\u7ba1\u7406\u7684\u90fd\u4e0d\u77e5\u9053\u8fd9\u4e00\u6761\uff0c\u603b\u89c9\u5f97\u6211\u505a\u7ba1\u7406\u7684\u80fd\u7ba1\u5929\u4e0b\u4e07\u4e8b\u4e07\u7269\u3002\u626f\u6de1\uff01\n**"),(0,a.yg)("h3",{id:"\u7ebf\u4e0a\u6545\u969c\u5904\u7406\u603b\u7ed3"},"\u7ebf\u4e0a\u6545\u969c\u5904\u7406\u603b\u7ed3"),(0,a.yg)("p",null,"\u7ebf\u4e0a\u6545\u969c\u5904\u7406\u53e3\u8bc0\uff1a\n",(0,a.yg)("strong",{parentName:"p"},"\u9047\u4e8b\u4e0d\u4e71\uff0c\u5206\u5934\u6838\u67e5\uff0c\u7fa4\u91cc\u540c\u6b65\uff0c\u7b80\u5355\u9648\u8ff0\uff0c\u7edd\u4e0d\u604b\u6218\uff0c\u6062\u590d\u670d\u52a1\u3002"),"\n**\n\u5177\u4f53\u89e3\u91ca\u4e00\u4e0b\u3002"),(0,a.yg)("p",null,(0,a.yg)("strong",{parentName:"p"},"\u5206\u5934\u6838\u67e5"),"\uff1aQA\u8d1f\u8d23\u7ebf\u4e0b\u590d\u73b0\u73b0\u8c61\uff0c\u786e\u8ba4\u95ee\u9898\u662f\u5426\u5b58\u5728\uff1bSA\u8d1f\u8d23\u6838\u67e5\u4e1a\u52a1\u5bf9\u5e94\u7684\u673a\u623f\u3001\u6570\u636e\u5e93\u3001\u5185\u5916\u7f51\u6d41\u91cf\u3001\u5e94\u7528\u8d1f\u8f7d\u6709\u65e0\u53d8\u66f4\u64cd\u4f5c\u3001\u6709\u4f55\u5f02\u5e38\u6307\u6807\u3002"),(0,a.yg)("p",null,(0,a.yg)("strong",{parentName:"p"},"\u7edd\u4e0d\u604b\u6218"),"\uff1a\u5982\u679c\u8fdf\u8fdf\u5b9a\u4f4d\u4e0d\u4e86\u95ee\u9898\uff08\u6bd4\u5982\u4e94\u5206\u949f\u4e4b\u5185\uff09\uff0c\u5c31\u4e0d\u53ef\u604b\u6218\uff0c\u5fc5\u987b\u5feb\u901f\u6062\u590d\u4e1a\u52a1\u3002\u7b2c\u4e00\uff0c\u4e0d\u8981\u628a\u751f\u4ea7\u73af\u5883\u5f53\u6210\u6d4b\u8bd5\u73af\u5883\uff0c\u4e0d\u8981\u5728\u7ebf\u8c03\u8bd5\uff1b\u7b2c\u4e8c\uff0c\u4e0d\u8981\u4e00\u76f4\u7559\u7740\u73b0\u573a\u89c2\u5bdf\u6765\u89c2\u5bdf\u53bb\u3002"),(0,a.yg)("p",null,(0,a.yg)("strong",{parentName:"p"},"\u7b80\u5355\u9648\u8ff0"),"\uff1a\u51fa\u4e86\u4e8b\u513f\u4e00\u5b9a\u5404\u65b9\u9762\u90fd\u52a8\u5458\u8d77\u6765\u4e86\uff0c\u4e03\u5634\u516b\u820c\uff0c\u5404\u8bf4\u5404\u8bdd\uff0c\u8fd9\u65f6\u5019\u4e00\u5b9a\u8981\u6709\u4e00\u4e2a\u4e34\u65f6\u603b\u6307\u6325\u4e0d\u65ad\u5730\u603b\u7ed3\u5927\u5bb6\u73b0\u5728\u7684\u8fdb\u5ea6\uff0c\u505a\u7cbe\u70bc\u7684\u201c\u7b80\u5355\u9648\u8ff0\u201d\uff0c\u53d1\u5728\u7fa4\u91cc\uff0c\u76f8\u5f53\u4e8e\u4e00\u4e2a\u65b0\u95fb\u53d1\u8a00\u4eba\u3002\u4ed6\u5728\u7b2c\u4e00\u65f6\u95f4\u51fa\u6765\u505a\u7b80\u8981\u7efc\u8ff0\uff0c\u628aWHEN/WHO/WHAT/HOW/RESULT\u51e0\u53e5\u8bdd\u8bf4\u6e05\u695a\uff0c\u540c\u6b65\u7ed9\u6838\u5fc3\u5e72\u90e8\u3002\u4e0d\u8981\u70b9\u5bf9\u70b9\u3002\u8bf7\u52a1\u5fc5\u5e7f\u64ad\u3002\u8868\u660e\u6211\u4eec\u5728\u8ddf\uff0c\u6211\u4eec\u5728\u89e3\u51b3\uff0c\u6240\u6709\u4e8b\u60c5\u90fd\u5728\u638c\u63e1\u4e2d\uff0c\u522b\u6015\uff0c\u522b\u614c\u3002"),(0,a.yg)("h3",{id:"\u6ca1\u6709\u9884\u89c1\u6027\u4f60\u51ed\u4ec0\u4e48\u664b\u5347"},"\u6ca1\u6709\u9884\u89c1\u6027\u4f60\u51ed\u4ec0\u4e48\u664b\u5347"),(0,a.yg)("h4",{id:"\u4ec0\u4e48\u662f\u9884\u89c1\u6027"},"\u4ec0\u4e48\u662f\u9884\u89c1\u6027\uff1f"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"\u5e02\u573a\u7ade\u4e89\u6001\u52bf\u7684\u9884\u89c1\u6027\u3002",(0,a.yg)("ol",{parentName:"li"},(0,a.yg)("li",{parentName:"ol"},"\u6709\u6ca1\u6709\u5bf9\u5e02\u573a\u5927\u52bf\u6709\u4e00\u5b9a\u9884\u89c1\u6027\uff1f"),(0,a.yg)("li",{parentName:"ol"},"\u662f\u4e0d\u662f\u65f6\u523b\u5728\u5173\u6ce8\u7740\u53cb\u5546\u3001\u7ade\u54c1\u548c\u884c\u4e1a\u52a8\u6001\uff1f"),(0,a.yg)("li",{parentName:"ol"},"\u80fd\u4e0d\u80fd\u5bf9\u4e1a\u52a1\u505a\u51fa\u6709\u524d\u77bb\u6027\u7684\u9884\u6d4b\uff1f"),(0,a.yg)("li",{parentName:"ol"},"\u4e3e\u4f8b\uff1a\u672c\u5730\u751f\u6d3b\u670d\u52a1\u5e02\u573a\uff0c\u5927\u7684\u5e02\u573a\u53d8\u5316\u8d8b\u52bf\u662f\uff0c\u70b9\u8bc4\u2014>\u56e2\u8d2d\u2014>\u5916\u5356\u2014>\u4e70\u5355\u548c\u4e0b\u7801\u2014>\u94fa\u673a\u5177\u6784\u7b51IoT\u58c1\u5792\u2014>\u5207ERP\u2014>\u5e26\u8d27\u548c\u4fdd\u7406\u2026\u2026"))),(0,a.yg)("li",{parentName:"ol"},"\u4e1a\u52a1\u4e0a\u7684\u9884\u89c1\u6027\u3002",(0,a.yg)("ol",{parentName:"li"},(0,a.yg)("li",{parentName:"ol"},"\u9700\u6c42\u65b9\u8bf4\u4ec0\u4e48\u5c31\u662f\u4ec0\u4e48\u5417\uff1f"),(0,a.yg)("li",{parentName:"ol"},"\u4ea7\u54c1\u8bbe\u8ba1\u6210\u4ec0\u4e48\u6837\u5c31\u505a\u6210\u4ec0\u4e48\u6837\u5417\uff1f"),(0,a.yg)("li",{parentName:"ol"},"\u4e00\u5207\u90fd\u662f\u987a\u6c34\u63a8\u821f\u5417\uff1f"),(0,a.yg)("li",{parentName:"ol"},"\u4f60\u6709\u6ca1\u6709\u529b\u6392\u4f17\u8bae\uff0c\u63d0\u51fa\u81ea\u5df1\u7684\u89c2\u70b9\u548c\u65b9\u6848\uff0c\u800c\u4e14\u6700\u540e\u4e8b\u5b9e\u8bc1\u660e\u4f60\u8bf4\u7684\u505a\u7684\u662f\u5bf9\u7684\uff1f"))),(0,a.yg)("li",{parentName:"ol"},"\u6280\u672f\u4e0a\u7684\u9884\u89c1\u6027\u3002")),(0,a.yg)("p",null,"\u9996\u5148\uff0c\u6280\u672f\u9886\u57df\u77ac\u606f\u4e07\u53d8\uff0c\u6628\u5929\u7684\u6280\u672f\u65b0\u8d8b\u52bf\uff0c\u660e\u5929\u5c31\u6210\u4e3a\u884c\u4e1a\u6807\u6746\u7684\u6807\u51c6\u89e3\u51b3\u65b9\u6848\u3002\u4f4e\u5934\u62c9\u8f66\u4e4b\u4f59\uff0c\u5fc5\u987b\u62ac\u5934\u770b\u8def\u3002Docker\u4ece2014\u5e74\u7684\u5fae\u70ed\uff0c\u52302015\u30012016\u5e74\u4e00\u7ebf\u4e92\u8054\u7f51\u516c\u53f8\u7684\u6807\u914d\uff0c\u4ec5\u4ec5\u4e00\u4e24\u5e74\u65f6\u95f4\u3002\n\u5176\u6b21\uff0c\u5355\u4e00\u6280\u672f\u8d8b\u52bf\uff0c\u5e76\u4e0d\u80fd\u627f\u8f7d\u4e2d\u5927\u578b\u56e2\u961f\uff0c\u4e0d\u80fd\u627f\u8f7d\u5267\u70c8\u53d8\u5316\u7684\u4e1a\u52a1\uff0c\u6211\u4eec\u5bf9\u6b64\u9700\u8981\u6709\u4e00\u4e2a\u57fa\u672c\u7684\u5224\u65ad\u3002\u6bd4\u5982\u8bf4\u5fae\u670d\u52a1\u7684\u524d\u63d0\u662fDocker\u5bb9\u5668\u5316\u3001\u670d\u52a1\u8def\u7531\u548c\u5e73\u53f0\u81ea\u52a8\u5316\u3002Docker\u96c6\u7fa4\u7f16\u6392+\u7814\u53d1\u534f\u4f5c\u53ef\u89c6\u5316+\u8fd0\u7ef4\u81ea\u52a8\u5316+API\u7f51\u5173+\u5fae\u670d\u52a1\uff0c\u624d\u8c08\u5f97\u4e0a\u53ef\u8d1f\u91cd\u524d\u884c\u3002\n\u518d\u6b21\uff0c\u5f53\u4e1a\u52a1\u4ece\u96f6\u5230\u4e00\u7684\u65f6\u5019\uff0c\u6211\u4eec\u9700\u8981\u6709\u4e00\u5b9a\u7684\u9884\u89c1\u6027\uff0c\u8d70\u4e00\u6b65\u770b\u4e24\u6b65\u3002\n\u4e3e\u4f8b\uff1a\u4e1a\u52a1\u521a\u5f00\u59cb\u8bd5\u70b9\u7684\u65f6\u5019\uff0c\u6211\u5c31\u9884\u89c1\u5230IoT\u673a\u5177\u94fa\u8bbe\u5728\u5168\u56fd\u5404\u5730\uff0c\u6240\u6709\u95ee\u9898\u90fd\u5c06\u7531\u6211\u4eec\u515c\u5e95\uff0c\u6240\u4ee5\u5fc5\u987b\u4ee5\u6700\u5feb\u901f\u5ea6\u5efa\u8bbe\u4e00\u4e2a\u5f3a\u5927\u7684\u8bbe\u5907\u5f3a\u7ba1\u63a7\u8fd0\u7ef4\u7ba1\u7406\u5e73\u53f0\uff0c\u5b83\u5c06\u662f\u5927\u4e2d\u53f0\u4f53\u7cfb\u7684\u91cd\u8981\u7ec4\u6210\u90e8\u5206\u3002\n\u4e3e\u4f8b\uff1a\u968f\u7740\u4e1a\u52a1\u7684\u6df1\u5165\uff0c\u6211\u9884\u89c1\u5230\u7531\u4e8e\u673a\u5177\u7684\u5404\u79cd\u4e1a\u52a1\u65b9\u90fd\u4f1a\u7ed9\u673a\u5177\u4e0b\u53d1\u6307\u4ee4\uff08\u4e0a\u884c\u548c\u4e0b\u884c\uff09\uff0c\u6bd4\u5982\u652f\u4ed8\u6210\u529f\u8bed\u97f3\u64ad\u62a5\uff0c\u6bd4\u5982\u5e94\u7528\u7248\u672c\u5206\u53d1\uff0c\u6bd4\u5982\u5feb\u901f\u6539\u53d8\u673a\u5177\u4e0aApp\u5185\u90e8\u72b6\u6001\uff0c\u4e1a\u52a1\u65b9\u4e0d\u5173\u5fc3\u4e5f\u4e0d\u9700\u8981\u5173\u5fc3\u673a\u5177\u5728\u4e0d\u5728\u7ebf\uff0c\u6240\u4ee5\u6211\u51b3\u5b9a\u5c3d\u5feb\u5f15\u5165\u8bbe\u5907\u5f71\u5b50\uff0c\u5728\u4e1a\u52a1\u65b9\u8fd8\u4e0d\u8db3\u591f\u591a\u7684\u65f6\u5019\u4e00\u52b3\u6c38\u9038\u5730\u89e3\u51b3\u8fd9\u4e2a\u95ee\u9898\u3002\n\u505a\u6280\u672f\u5343\u4e07\u4e0d\u8981\u811a\u8e29\u897f\u74dc\u76ae\uff0c\u6ed1\u5230\u54ea\u91cc\u7b97\u54ea\u91cc\u3002"),(0,a.yg)("h3",{id:"\u6211\u53f8\u7814\u53d1\u6587\u5316"},"\u6211\u53f8\u7814\u53d1\u6587\u5316="),(0,a.yg)("p",null,"\u7814\u53d1\u54f2\u5b66\uff08Don't make me think/If it hurts, do it more and often/\u8fd9\u4e2a\u4e16\u754c\u4ece\u6765\u6ca1\u6709\u4ec0\u4e48\u6551\u4e16\u4e3b/\u6ca1\u6709\u82e6\u52b3\u53ea\u6709\u529f\u52b3/\u4e00\u5b9a\u8981\u6709\u540e\u5907\u65b9\u6848\uff09\n+\u7814\u53d1\u4e09\u5faa\u73af\u65b9\u6cd5\u8bba\uff08\u7814\u53d1\u80fd\u529b/\u7814\u53d1\u6548\u7387/\u7814\u53d1\u6d3b\u529b\uff09\n+\u7814\u53d1\u4e09\u677f\u65a7\uff08RCA/\u6280\u672f\u5206\u4eab\u8bb2\u5ea7/\u6280\u672f\u9884\u7814\u8bfe\u9898\uff09\n\u6bcf\u4e00\u4e2a\u7814\u53d1\u7ec4\u7ec7\u90fd\u5fc5\u987b\u60f3\u7740\u5ff5\u7740\u505a\u7740\u3002"),(0,a.yg)("h3",{id:"dont-make-me-think"},"Don't make me think"),(0,a.yg)("p",null,"\u5927\u5bb6\u90fd\u77e5\u9053\uff0c\u6280\u672f\u4eba\u5458\u4ece\u4e8b\u7684\u662f\u521b\u9020\u6027\u5de5\u4f5c\uff0c\u52a0\u4e4b\u662f\u5355\u6838\u5904\u7406\u5668\uff0c\u6211\u4eec\u7684\u4e0a\u4e0b\u6587\u5207\u6362\u975e\u5e38\u56f0\u96be\uff0c\u88ab\u6253\u65ad\u540e\u4ece\u65b0\u8fdb\u5165\u201c\u795e\u6e38\u201d\u72b6\u6001\u5f80\u5f80\u9700\u8981\u5341\u51e0\u5206\u949f\u3002\u5c24\u5176\u662f\u7814\u53d1\u7ecf\u7406\uff0c\u627f\u62c5\u66f4\u591a\u7684\u8d23\u4efb\uff0c\u7ebf\u4e0a\u7ebf\u4e0b\u7684\u95ee\u9898\u90fd\u8981\u7167\u987e\u5230\uff0c\u8fd8\u8981\u89e3\u7b54\u5185\u5916\u7684\u5404\u79cd\u54a8\u8be2\uff0c\u5de5\u4f5c\u65f6\u95f4\u788e\u7247\u5316\u4e25\u91cd\u3002\u6211\u4eec\uff08\u5305\u62ec\u7cfb\u7edf\uff09\u7ed9\u51fa\u7684\u4fe1\u606f\uff0c\u4e00\u5b9a\u8981\u8db3\u591f\u7b80\u7ec3\uff0c\u4e00\u76ee\u4e86\u7136\uff0c\u8ba9\u4eba\u5f88\u5bb9\u6613\u514b\u670d\u7126\u8e81\u60c5\u7eea\uff0c\u556a\u556a\u5730\u5c31\u5904\u7406\u4e86\uff0c\u6216\u8005\u556a\u556a\u5730\u4e8c\u6b21\u5206\u53d1\u51fa\u53bb\u3002\xa0\u4e0d\u8981\u8ba9\u65e0\u7528\u7684\u4fe1\u606f\u6298\u78e8\u8fd9\u4e9b\u4eba\u3002"),(0,a.yg)("p",null,"\u5176\u6b21\uff0c\u6280\u672f\u4eba\u5458\u662f\u201c\u4e16\u754c\u201d\u7684\u6784\u5efa\u8005\uff0c\u4e0d\u5f97\u4e0d\u505a\u5927\u91cf\u7410\u788e\u4e14\u67af\u71e5\u7684\u5de5\u4f5c\uff0c\u5176\u4e2d\uff0c\u76f8\u5f53\u5927\u6bd4\u4f8b\u7684\u5de5\u4f5c\u662f\u91cd\u590d\u6027\u7684\uff0c\u5982\u4fee\u6539\u914d\u7f6e\u6587\u4ef6\u9002\u914d\u4e0d\u540c\u73af\u5883\uff0c\u5982\u6253\u5305\u3002\n\u91cd\u590d\u7684\u5de5\u4f5c\u4e00\u65b9\u9762\u5bb9\u6613\u51fa\u9519\uff0c\u5c24\u5176\u662f\u5728\u901a\u5bb5\u4e0a\u7ebf\u65f6\uff0c\u53e6\u4e00\u65b9\u9762\u6d88\u78e8\u4eba\u7684\u8010\u5fc3\u548c\u6597\u5fd7\u3002 \u6211\u5728\u300a\u804c\u573a\u57f9\u8bad\u7b2c\u4e94\u671f\uff1a\u804c\u573a\u7684\u771f\u76f8\u300b\u4e2d\u8bb2\u8fc7\u89e3\u9898\u601d\u8def\uff1a\u300e",(0,a.yg)("strong",{parentName:"p"},"\u8981\u6452\u5f03\u5355\u7eaf\u4f9d\u9760\u5458\u5de5\u4e4b\u95f4\u4e92\u76f8\u63d0\u9192\u3001\u4f9d\u9760\u4e2a\u4eba\u8ba4\u771f\u7ec6\u81f4\u6765\u89c4\u907f\u76f8\u540c\u9519\u8bef\u7684\u56fa\u6709\u601d\u8def\uff0c\u94c1\u6253\u8425\u76d8\u6d41\u6c34\u5175\uff0c\u9760\u4eba\u7ec8\u5f52\u662f\u9760\u4e0d\u4f4f\u7684\uff0c\u6700\u597d\u9760\u9075\u5faa\u89c4\u5219\u7684\u673a\u5668"),"\u300f\u3002\n\u738b\u6dee\u5728\u300a\u4ee5 Facebook \u4e3a\u6848\u4f8b\u5256\u6790\u79d1\u6280\u516c\u53f8\u5e94\u6709\u7684\u5de5\u5177\u6587\u5316\u300b\u4e00\u6587\u4e2d\u8c08\u53ca\uff0c\u57fa\u672c\u7406\u5ff5\u5c31\u662f",(0,a.yg)("strong",{parentName:"p"},'\u51e1\u662f\u88ab\u5f88\u591a\u4eba\u4e0d\u65ad\u91cd\u590d\u7684\u597d\u4e60\u60ef\uff0c\u8981\u5c06\u5176\u81ea\u52a8\u5316\uff0c\u7ed1\u5b9a\u5230\u5de5\u5177\u4e4b\u4e2d\uff0c\u4ee5"Don\'t make me think"\u7684\u65b9\u5f0f\u6765\u63a8\u5e7f\u6700\u4f73\u5b9e\u8df5\uff08best practice\uff09'),"\u3002"),(0,a.yg)("p",null,"\u57fa\u4e8e\u4ee5\u4e0a\u539f\u56e0\uff0c\u6211\u4eec\u8ba4\u4e3a\uff0c",(0,a.yg)("strong",{parentName:"p"},"\u51e1\u662f\u88ab\u4e0d\u65ad\u91cd\u590d\u7684\u8fc7\u7a0b\uff0c\u5c06\u5176\u5de5\u5177\u5316\uff0c\u7ed1\u5b9a\u5230\u81ea\u52a8\u5316\u6d41\u7a0b\u4e4b\u4e2d\uff0c\u51cf\u5c11\u4e0d\u5fc5\u8981\u7684\u5fc3\u667a\u8d1f\u62c5"),"\u3002\n\u8fd9\u4e5f\u5c31\u662f\u8fc7\u53bb\u51e0\u5e74\u91cc\u6211\u4eec\u4e00\u5b63\u5b63\u5730\u63a8\u8fdb\u6301\u7eed\u96c6\u6210\uff08Continuous Integration\uff0cCI\uff09\u7684\u539f\u56e0\uff0c\u628a\u6211\u4eec\u7684\u7ecf\u9a8c\u6559\u8bad\u53d8\u6210\u53ef\u91cd\u590d\u7684\u89c4\u5219\uff0c\u878d\u5165\u5de5\u5177\u4e2d\uff0c\u878d\u5165\u81ea\u52a8\u5316\u6d41\u7a0b\u4e2d\uff0c\u800c\u4e0d\u662f\u4e00\u4ee3\u4e00\u4ee3\u53e3\u53e3\u76f8\u4f20\u3002"),(0,a.yg)("p",null,"\u597d\u4e86\uff0c\u5728\u4e3e\u5177\u4f53\u7684\u4f8b\u5b50\u4e4b\u524d\uff0c\u8ba9\u6211\u4eec\u5927\u58f0\u8bfb\u51fa\u8fd9\u51e0\u6761 Slogan\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"Don't make me think!"),(0,a.yg)("li",{parentName:"ul"},"\u51cf\u5c11\u4e0d\u5fc5\u8981\u7684\u5fc3\u667a\u8d1f\u62c5\uff01")),(0,a.yg)("h3",{id:"if-it-hurts-do-it-more-and-often"},"If it hurts, do it more and often"),(0,a.yg)("p",null,"\u6211\u4eec\u4e0d\u80fd\u6b7b\u4e8e\u542c\u5929\u7531\u547d\u548c\u6f2b\u4e0d\u7ecf\u5fc3\u3002\n\u5de5\u7a0b\u5e08\u4e3a\u4ec0\u4e48\u4f1a\u542c\u5929\u7531\u547d\uff1f"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u56e0\u4e3a\u7ebf\u4e0a\u65e5\u5fd7\u91cc\u7684\u5f02\u5e38\u5b9e\u5728\u662f\u592a\u591a\u4e86\uff0c\u5904\u7406\u4e0d\u8fc7\u6765\u3002",(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},"\u56e0\u4e3a\u5f02\u5e38\u592a\u591a\u4e86\uff0c\u6df9\u6ca1\u4e86\u81f4\u547d\u5f02\u5e38\uff0c\u4ee5\u81f3\u4e8e\u670d\u52a1\u6302\u5f97\u6b7b\u6b7b\u7684\u624d\u53d1\u73b0\u95ee\u9898\u5df2\u7ecf\u5b58\u5728N\u4e45\u4e86\u3002"))),(0,a.yg)("li",{parentName:"ul"},"\u56e0\u4e3a\u660e\u5929\u5c31\u8981\u63d0\u6d4b\u4e86\uff0c\u4ee3\u7801\u5408\u5e76\u51b2\u7a81\u8fd8\u6709\u51e0\u5343\u4e2a\u3002",(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},"\u6bcf\u5230\u5e38\u89c4\u7248\u672c\u63d0\u6d4b\u65f6\u5c31\u5fc3\u91cc\u6253\u9f13\uff0c\u5408\u5e76\u4e2a\u4ee3\u7801\u90fd\u5f97\u9884\u7559\u4e24\u5929\u65f6\u95f4\u3002"))),(0,a.yg)("li",{parentName:"ul"},"\u56e0\u4e3a\u753b\u65f6\u5e8f\u56fe\u597d\u70e6\uff0c\u6240\u4ee5\u590d\u6742\u7cfb\u7edf\u7684\u6570\u636e\u6d41\u8f6c\u9760\u201c\u5fc3\u7b97\u201d\u3001\u9760\u6587\u5b57\u63cf\u8ff0\u3002",(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},"\u4eba\u8111\u5bb9\u6613\u6709\u601d\u7ef4\u6b7b\u89d2\uff0c\u4e00\u4e2a\u8003\u8651\u4e0d\u5230\uff0c\u7cfb\u7edf\u5c31\u9632\u4e0d\u4f4f\u5e76\u53d1\u63d0\u4ea4\u548c\u91cd\u590d\u63d0\u4ea4\u3002"))),(0,a.yg)("li",{parentName:"ul"},"\u2026\u2026")),(0,a.yg)("p",null,"\u56e0\u4e3a\u5df2\u7136\u96c6\u814b\u6210\u88d8\uff0c\u6240\u4ee5\u505a\u4e8b\u524d\u6211\u4eec\u5404\u79cd\u7ea0\u7ed3\u548c\u62b5\u89e6\uff0c\u4e8e\u662f\u627e\u5404\u79cd\u7406\u7531\u62d6\u5ef6\u3002\n\u600e\u4e48\u529e\uff1f\n\u6211\u5728\u300a\u804c\u4e1a\u5316\u76847\u4e2a\u7ec6\u8282\u300b\u91cc\u8bb2\u5230\uff0c \u5982\u679c\u4e00\u4ef6\u4e8b\u505a\u8d77\u6765\u5f88\u70e6\uff0c\u90a3\u5c31\u628a\u5b83\u62c6\u6210\u5f88\u591a\u5757\u513f\uff0c\u6bcf\u5929\u505a\u4e00\u70b9\uff0c\u6bcf\u6b21\u505a\u4e00\u70b9\u3002"),(0,a.yg)("h3",{id:"\u8fd9\u4e2a\u4e16\u754c\u4ece\u6765\u6ca1\u6709\u4ec0\u4e48\u6551\u4e16\u4e3b"},"\u8fd9\u4e2a\u4e16\u754c\u4ece\u6765\u6ca1\u6709\u4ec0\u4e48\u6551\u4e16\u4e3b"),(0,a.yg)("p",null,"\u8fd9\u4e2a\u54f2\u5b66\u6211\u8fc7\u53bb\u51e0\u5e74\u91cc\u4e00\u800c\u518d\u518d\u800c\u4e09\u5730\u8bb2\u3002\u5728\u300a\u804c\u4e1a\u57f9\u8bad\u7b2c\u4e94\u671f\uff1a\u804c\u573a\u7684\u771f\u76f8\u300b\u4e2d\uff0c\u6211\u8bf4\uff1a\u8fc7\u53bb\u51e0\u5e74\u91cc\uff0c\u6211\u4eec\u6df1\u6df1\u5730\u4f53\u4f1a\u5230\uff0c\u4ece\u6765\u5c31\u6ca1\u6709\u4ec0\u4e48\u6551\u4e16\u4e3b\uff0c\u8981\u521b\u9020\u4eba\u7c7b\u7684\u5e78\u798f\u5168\u9760\u6211\u4eec\u81ea\u5df1\uff0c\u4e0d\u8981\u6307\u671b\u6709\u4ec0\u4e48\u4eba\u80fd\u6551\u6211\u4eec\uff0c\u53ea\u80fd\u7ede\u5c3d\u8111\u6c41\u95ef\u9635\u3002"),(0,a.yg)("p",null,"\u4e3a\u4ec0\u4e48\uff1f\n\u6280\u672f\u56e2\u961f\u662f\u4e92\u8054\u7f51\u516c\u53f8\u91cc\u6700\u8ba4\u771f\u6700\u4e13\u4e1a\u6700\u5b9e\u64cd\u6700\u9760\u8c31\u7684\u4e00\u7fa4\u4eba\uff0c\u5982\u679c\u6211\u4eec\u51e1\u4e8b\u90fd\u8981\u6307\u671b\u522b\u4eba\u7ed9\u6211\u4eec\u89e3\u51b3\u65b9\u6848\u548c\u601d\u8def\uff0c\u6307\u671b\u522b\u4eba\u6bd4\u6211\u4eec\u66f4\u8ba4\u771f\uff0c\u90a3\u8fd9\u4e2a\u516c\u53f8\u5c31\u5371\u5728\u65e6\u5915\u4e86\u3002\n\u6240\u4ee5\uff0c\u6211\u57282012\u5e74\u7684\u98de\u884c\u7814\u8ba8\u4f1a\u4e0a\u629b\u51fa\u4e24\u4e2a Slogan\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u629b\u6389\u5e7b\u60f3\uff0c\u52c7\u6562\u9762\u5bf9\uff01"),(0,a.yg)("li",{parentName:"ul"},"\u76f4\u9762\u767d\u5203\u6218\uff01")),(0,a.yg)("p",null,"\u57fa\u4e8e\u8fd9\u4e2a\u54f2\u5b66\uff0c\u6211\u4eec\u884d\u751f\u51fa\u4e24\u4e2a Slogan\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u4e0d\u8981\u7b49\u6b7b\uff01"),(0,a.yg)("li",{parentName:"ul"},"\u5411\u524d\u8fc8\u534a\u6b65\u5bf9\u63a5\uff01")),(0,a.yg)("h3",{id:"\u4e00\u5b9a\u8981\u6709\u540e\u5907\u65b9\u6848"},"\u4e00\u5b9a\u8981\u6709\u540e\u5907\u65b9\u6848"),(0,a.yg)("p",null,"\u707e\u96be\uff0c\u603b\u662f\u5728\u4f60\u610f\u6599\u4e4b\u5916\u3002\n\u4e00\u4e2a\u540e\u5907\u65b9\u6848\uff0c\n\u6700\u540e\u4e00\u6761\u8ba9\u4f60\u8d77\u6b7b\u56de\u751f\u7684\u8def\u3002"),(0,a.yg)("p",null,"\u65e9\u5e74\u95f4\uff0c\u4faf\u5c0f\u5f3a\u66fe\u7ecf\u8bf4\u8fc7\uff1a \u5982\u679c\u4f60\u5728\u804c\u573a\uff0c\u9700\u8981\u6709\u4e09\u4e2a\u597d\u4e60\u60ef\uff0c1\uff0c\u80fd\u9a6c\u4e0a\u505a\u7684\u4e8b\u60c5\u9a6c\u4e0a\u505a\u30022\uff0c\u6bcf\u4e2a\u4e8b\u60c5\u8981\u6709\u59cb\u6709\u7ec8\u30023\uff0c\u8981\u6709\u8fd9\u4e2a\u4e60\u60ef\u601d\u7ef4\uff0c\u6ca1\u6709\u82e6\u52b3\uff0c\u53ea\u6709\u529f\u52b3\u3002\u4f46\u5982\u679c\u6ca1\u6709\u6781\u5176\u52aa\u529b\uff0c\u901a\u5e38\u4e5f\u4e0d\u4f1a\u6709\u529f\u52b3\u3002\n\u5ef6\u7eed\u7740\u8fd9\u4e2a\u601d\u7ef4\uff0c\u6211\u4eec\u8fc7\u53bb\u51e0\u5e74\u91cc\u53cd\u590d\u5f3a\u8c03\uff1a",(0,a.yg)("strong",{parentName:"p"},"\u6ca1\u6709\u7ed3\u679c\u5c31\u6ca1\u6709\u610f\u4e49"),"\u3002\u4e0d\u8981\u671f\u671b\u516c\u53f8\u56e0\u4e3a\u4f60\u548c\u5c0f\u4f19\u4f34\u4eec\u6709\u82e6\u52b3\u800c\u5bbd\u5bb9\u4f60\u4eec\u6ca1\u6709\u4ea7\u51fa\uff0c\u8fd9\u662f\u4e00\u4e2a\u5546\u4e1a\u516c\u53f8\u3002"),(0,a.yg)("h3",{id:"devops-\u65b0\u516b\u8363\u516b\u803b\u6bcf\u4e00\u6761\u90fd\u662f\u8840\u8089\u957f\u57ce"},"DevOps \u65b0\u516b\u8363\u516b\u803b\uff0c\u6bcf\u4e00\u6761\u90fd\u662f\u8840\u8089\u957f\u57ce"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"\u4ee5\u968f\u65f6\u53ef\u6269\u5bb9\u3001\u53ef\u7f29\u5bb9\u3001\u53ef\u91cd\u542f\u3001\u53ef\u5207\u6362\u673a\u623f\u6d41\u91cf\u4e3a\u8363\uff0c\u4ee5\u4e0d\u80fd\u8fc1\u79fb\u4e3a\u803b\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u4ee5\u53ef\u914d\u7f6e\u4e3a\u8363\uff0c\u4ee5\u786c\u7f16\u7801\u4e3a\u803b\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u4ee5\u7cfb\u7edf\u4e92\u5907\u4e3a\u8363\uff0c\u4ee5\u7cfb\u7edf\u5355\u70b9\u4e3a\u803b\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u4ee5\u4ea4\u4ed8\u65f6\u6709\u76d1\u63a7\u62a5\u8b66\u4e3a\u8363\uff0c\u4ee5\u4ea4\u4ed8\u88f8\u5954\u7cfb\u7edf\u4e3a\u803b\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u4ee5\u65e0\u72b6\u6001\u4e3a\u8363\uff0c\u4ee5\u6709\u72b6\u6001\u4e3a\u803b\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u4ee5\u6807\u51c6\u5316\u4e3a\u8363\uff0c\u4ee5\u7279\u6b8a\u5316\u4e3a\u803b\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u4ee5\u81ea\u52a8\u5316\u5de5\u5177\u4e3a\u8363\uff0c\u4ee5\u4eba\u8089\u64cd\u4f5c\u4e3a\u803b\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u4ee5\u65e0\u4eba\u503c\u5b88\u4e3a\u8363\uff0c\u4ee5\u4eba\u5de5\u4ecb\u5165\u4e3a\u803b\u3002")),(0,a.yg)("h3",{id:"\u6838\u5fc3\u4e1a\u52a1\u6d41\u7a0b\u7684\u6545\u969c\u5904\u7406\u539f\u5219\u4e0d\u53ef\u604b\u6218"},"\u6838\u5fc3\u4e1a\u52a1\u6d41\u7a0b\u7684\u6545\u969c\u5904\u7406\u539f\u5219\uff1a\u4e0d\u53ef\u604b\u6218"),(0,a.yg)("p",null,"\u7b2c\u4e00\u65f6\u95f4\u53eb\u591a\u4eba\u4e00\u8d77\u5206\u5934\u67e5\uff1a\u67e5\u673a\u623f\uff0c\u67e5\u6d41\u91cf\uff0c\u67e5\u5e94\u7528\u6027\u80fd\uff0c\u67e5\u6570\u636e\u5e93\uff0c\u67e5Redis\u3002\n\u5982\u679c\u8fdf\u8fdf\u5b9a\u4f4d\u4e0d\u4e86\u95ee\u9898\uff08\u6bd4\u5982\u5341\u5206\u949f\u4e4b\u5185\uff09\uff0c\u5c31\u4e0d\u53ef\u604b\u6218\uff0c\u5fc5\u987b\u6062\u590d\u4e1a\u52a1\uff08\u4e09\u677f\u65a7\uff09\uff1a\n\u7b2c\u4e00\u62db\u91cd\u542f\u5e94\u7528\uff0c\n\u7b2c\u4e8c\u62db\u56de\u9000\u7248\u672c\uff0c\n\u6700\u540e\u4e00\u62db\u662f\u5f02\u5730\u591a\u6d3b\u5207\u673a\u623f\u6d41\u91cf\uff0c\u628a\u53d7\u5f71\u54cd\u7684\u5546\u6237\u5207\u5230\u53e6\u4e00\u4e2a\u673a\u623f\u7684\u5355\u5143\u683c\u91cc\u3002\n\u5343\u4e07\u522b\u5728\u5b9a\u4f4d\u95ee\u9898\u4e0a\u82b1\u592a\u591a\u65f6\u95f4\u3002"),(0,a.yg)("h3",{id:"\u5f53\u6211\u4eec\u8c08\u91cd\u6784\u7684\u65f6\u5019\u6211\u4eec\u60f3\u8c08\u4ec0\u4e48"},"\u5f53\u6211\u4eec\u8c08\u91cd\u6784\u7684\u65f6\u5019\u6211\u4eec\u60f3\u8c08\u4ec0\u4e48"),(0,a.yg)("p",null,"\u5982\u679c\u4f60\u5728\u7e41\u5fd9\u7684\u4e1a\u52a1\u8fed\u4ee3\u4e2d\u5f00\u59cb\u7cfb\u7edf\u91cd\u6784\uff0c\u606d\u559c\u4f60\uff0c\u8bf4\u660e\u4f60\u7684\u4e1a\u52a1\u5df2\u7ecf\u5b8c\u6210\u4e86\u4ece0\u52301\uff0c\u6b63\u5728\u4ece1\u8d70\u541110\uff0c\u6216\u8005\u4ece10\u8d70\u5411100\u3002"),(0,a.yg)("p",null,(0,a.yg)("strong",{parentName:"p"},"\u4e24\u4e2a\u201c\u662f\u5426\u6709\u5229\u4e8e\u201d\uff1a"),"\n",(0,a.yg)("strong",{parentName:"p"},"\u4e00\uff0c\u662f\u5426\u6709\u5229\u4e8e\u53d1\u5e03\u90e8\u7f72\u3002"),"\n",(0,a.yg)("strong",{parentName:"p"},"\u4e8c\uff0c\u662f\u5426\u6709\u5229\u4e8e\u6392\u9664\u6545\u969c\uff08\u662f\u5426\u6709\u5229\u4e8e\u5feb\u901f\u5b9a\u4f4d\u95ee\u9898\u548c\u89e3\u51b3\u95ee\u9898\uff09\u3002")),(0,a.yg)("p",null,"\xa0\n",(0,a.yg)("strong",{parentName:"p"},"\u4e24\u4e2a\u6212\u5f8b\uff1a"),"\n",(0,a.yg)("strong",{parentName:"p"},"\u6212\u5f8b\u4e00\uff1a\u51e1\u662f\u4e2d\u95f4\u4ef6\uff0c\u4e0d\u7ba1\u662f\u81ea\u4e3b\u5f00\u53d1\u7684\uff0c\u8fd8\u662f\u4ee5\u5f00\u6e90\u8f6f\u4ef6\u4e3a\u5185\u6838\u6784\u5efa\u51fa\u6765\u7684\uff0c\u90fd\u5fc5\u987b\u81ea\u5e26\u76d1\u63a7\u62a5\u8b66\uff0c\u5426\u5219\u4e0d\u5141\u8bb8\u4e0a\u7ebf\u3002"),"\n",(0,a.yg)("strong",{parentName:"p"},"\u6212\u5f8b\u4e8c\uff1a\u672c\u7740 Don't make me think \u7684\u54f2\u5b66\u601d\u8def\uff0c\u6240\u6709\u5bf9\u6392\u9664\u6545\u969c\u6709\u5e2e\u52a9\u7684\u4fe1\u606f\uff0c\u90fd\u5fc5\u987b\u4e00\u7ad9\u5f0f\u5c55\u793a\u5728\u4ea4\u4e92\u754c\u9762\u4e0a\uff0c\u4e5f\u5c31\u662f\u4e2d\u95f4\u4ef6\u7684\u63a7\u5236\u53f0\u4e0a\uff0c\u6216\u8fd0\u7ef4\u81ea\u52a8\u5316\u5e73\u53f0\u4e0a\uff0c\u6216\u7814\u53d1\u534f\u4f5c\u5e73\u53f0\u4e0a\u3002")),(0,a.yg)("h3",{id:"\u8981\u719f\u7ec3\u638c\u63e1\u7684\u4e03\u4e2a\u4eba\u751f\u5de5\u5177"},"\u8981\u719f\u7ec3\u638c\u63e1\u7684\u4e03\u4e2a\u4eba\u751f\u5de5\u5177"),(0,a.yg)("h4",{id:"\u4e00swot\u5206\u6790\u6cd5"},"\u4e00\u3001SWOT\u5206\u6790\u6cd5\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"Strengths\uff1a\u4f18\u52bf"),(0,a.yg)("li",{parentName:"ul"},"Weaknesses\uff1a\u52a3\u52bf"),(0,a.yg)("li",{parentName:"ul"},"Opportunities\uff1a\u673a\u4f1a"),(0,a.yg)("li",{parentName:"ul"},"Threats\uff1a\u5a01\u80c1"),(0,a.yg)("li",{parentName:"ul"},"\u610f\u4e49\uff1a\u5e2e\u60a8\u6e05\u6670\u5730\u628a\u63e1\u5168\u5c40\uff0c\u5206\u6790\u81ea\u5df1\u5728\u8d44\u6e90\u65b9\u9762\u7684\u4f18\u52bf\u4e0e\u52a3\u52bf\uff0c\u628a\u63e1\u73af\u5883\u63d0\u4f9b\u7684\u673a\u4f1a\uff0c\u9632\u8303\u53ef\u80fd\u5b58\u5728\u7684\u98ce\u9669\u4e0e\u5a01\u80c1\uff0c\u5bf9\u6211\u4eec\u7684\u6210\u529f\u6709\u975e\u5e38\u91cd\u8981\u7684\u610f\u4e49\u3002")),(0,a.yg)("h4",{id:"\u4e8cpdca\u5faa\u73af\u89c4\u5219"},"\u4e8c\u3001PDCA\u5faa\u73af\u89c4\u5219"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"Plan\uff1a\u5236\u5b9a\u76ee\u6807\u4e0e\u8ba1\u5212\uff1b"),(0,a.yg)("li",{parentName:"ul"},"Do\uff1a\u4efb\u52a1\u5c55\u5f00\uff0c\u7ec4\u7ec7\u5b9e\u65bd\uff1b"),(0,a.yg)("li",{parentName:"ul"},"Check\uff1a\u5bf9\u8fc7\u7a0b\u4e2d\u7684\u5173\u952e\u70b9\u548c\u6700\u7ec8\u7ed3\u679c\u8fdb\u884c\u68c0\u67e5\uff1b"),(0,a.yg)("li",{parentName:"ul"},"Action\uff1a\u7ea0\u6b63\u504f\u5dee\uff0c\u5bf9\u6210\u679c\u8fdb\u884c\u6807\u51c6\u5316\uff0c\u5e76\u786e\u5b9a\u65b0\u7684\u76ee\u6807\uff0c\u5236\u5b9a\u4e0b\u4e00\u8f6e\u8ba1\u5212\u3002"),(0,a.yg)("li",{parentName:"ul"},"\u610f\u4e49\uff1a\u6bcf\u4e00\u9879\u5de5\u4f5c\uff0c\u90fd\u662f\u4e00\u4e2apdca\u5faa\u73af\uff0c\u90fd\u9700\u8981\u8ba1\u5212\u3001\u5b9e\u65bd\u3001\u68c0\u67e5\u7ed3\u679c\uff0c\u5e76\u8fdb\u4e00\u6b65\u8fdb\u884c\u6539\u8fdb\uff0c\u540c\u65f6\u8fdb\u5165\u4e0b\u4e00\u4e2a\u5faa\u73af\uff0c\u53ea\u6709\u5728\u65e5\u79ef\u6708\u7d2f\u7684\u6e10\u8fdb\u6539\u5584\u4e2d\uff0c\u624d\u53ef\u80fd\u4f1a\u6709\u8d28\u7684\u98de\u8dc3\uff0c\u624d\u53ef\u80fd\u53d6\u5f97\u5b8c\u5584\u6bcf\u4e00\u9879\u5de5\u4f5c\uff0c\u5b8c\u5584\u81ea\u5df1\u7684\u4eba\u751f\u3002")),(0,a.yg)("h4",{id:"\u4e096w2h\u6cd5"},"\u4e09\u30016W2H\u6cd5"),(0,a.yg)("p",null,"**"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"What\uff1a\u5de5\u4f5c\u7684\u5185\u5bb9\u548c\u8fbe\u6210\u7684\u76ee\u6807\uff1b"),(0,a.yg)("li",{parentName:"ul"},"Why\uff1a\u505a\u8fd9\u9879\u5de5\u4f5c\u7684\u539f\u56e0\uff1b"),(0,a.yg)("li",{parentName:"ul"},"Who\uff1a\u53c2\u52a0\u8fd9\u9879\u5de5\u4f5c\u7684\u5177\u4f53\u4eba\u5458\uff0c\u4ee5\u53ca\u8d1f\u8d23\u4eba\uff1b"),(0,a.yg)("li",{parentName:"ul"},"When\uff1a\u5728\u4ec0\u4e48\u65f6\u95f4\u3001\u4ec0\u4e48\u65f6\u95f4\u6bb5\u8fdb\u884c\u5de5\u4f5c\uff1b"),(0,a.yg)("li",{parentName:"ul"},"Where\uff1a\u5de5\u4f5c\u53d1\u751f\u7684\u5730\u70b9 \uff1b"),(0,a.yg)("li",{parentName:"ul"},"Which\uff1a\u54ea\u4e00\u79cd\u65b9\u6cd5\u6216\u9014\u5f84\uff1b"),(0,a.yg)("li",{parentName:"ul"},"How\uff1a\u7528\u4ec0\u4e48\u65b9\u6cd5\u8fdb\u884c\uff1b"),(0,a.yg)("li",{parentName:"ul"},"How much\uff1a\u9700\u8981\u591a\u5c11\u6210\u672c\uff1f"),(0,a.yg)("li",{parentName:"ul"},"\u610f\u4e49\uff1a\u505a\u4efb\u4f55\u5de5\u4f5c\u90fd\u5e94\u8be5\u4ece6W2H\u6765\u601d\u8003\uff0c\u8fd9\u6709\u52a9\u4e8e\u6211\u4eec\u7684\u601d\u8def\u7684\u6761\u7406\u5316\uff0c\u675c\u7edd\u76f2\u76ee\u6027\u3002\u6211\u4eec\u7684\u6c47\u62a5\u4e5f\u5e94\u8be5\u75286W2H\uff0c\u80fd\u8282\u7ea6\u5199\u62a5\u544a\u53ca\u770b\u62a5\u544a\u7684\u65f6\u95f4\u3002")),(0,a.yg)("h4",{id:"\u56dbsmart\u539f\u5219"},"\u56db\u3001SMART\u539f\u5219"),(0,a.yg)("p",null,"**"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"Specific \u5177\u4f53\u7684\uff1b"),(0,a.yg)("li",{parentName:"ul"},"Measurable \u53ef\u6d4b\u91cf\u7684\uff1b"),(0,a.yg)("li",{parentName:"ul"},"Attainable \u53ef\u8fbe\u5230\u7684\uff1b"),(0,a.yg)("li",{parentName:"ul"},"Relevant \u76f8\u5173\u7684\uff1b"),(0,a.yg)("li",{parentName:"ul"},"Time based \u65f6\u95f4\u7684\uff1b"),(0,a.yg)("li",{parentName:"ul"},"\u610f\u4e49\uff1a\u4eba\u4eec\u5728\u5236\u5b9a\u5de5\u4f5c\u76ee\u6807\u6216\u8005\u4efb\u52a1\u76ee\u6807\u65f6\uff0c\u8003\u8651\u4e00\u4e0b\u76ee\u6807\u4e0e\u8ba1\u5212\u662f\u4e0d\u662fSMART\u5316\u7684\u3002\u53ea\u6709\u5177\u5907SMART\u5316\u7684\u8ba1\u5212\u624d\u662f\u5177\u6709\u826f\u597d\u53ef\u5b9e\u65bd\u6027\u7684\uff0c\u4e5f\u624d\u80fd\u6307\u5bfc\u4fdd\u8bc1\u8ba1\u5212\u5f97\u4ee5\u5b9e\u73b0\u3002"),(0,a.yg)("li",{parentName:"ul"},"\u7279\u522b\u6ce8\u660e\uff1a")),(0,a.yg)("p",null,"\u6709\u7684\u53c8\u5982\u6b64\u89e3\u91ca\u6b64\u539f\u5219\uff1a\n\u2014\u2014S\u4ee3\u8868\u5177\u4f53(Specific)\uff0c\u6307\u7ee9\u6548\u8003\u6838\u8981\u5207\u4e2d\u7279\u5b9a\u7684\u5de5\u4f5c\u6307\u6807\uff0c\u4e0d\u80fd\u7b3c\u7edf\uff1b\n\u2014\u2014M\u4ee3\u8868\u53ef\u5ea6\u91cf(Measurable)\uff0c\u6307\u7ee9\u6548\u6307\u6807\u662f\u6570\u91cf\u5316\u6216\u8005\u884c\u4e3a\u5316\u7684\uff0c\u9a8c\u8bc1\u8fd9\u4e9b\u7ee9\u6548\u6307\u6807\u7684\u6570\u636e\u6216\u8005\u4fe1\u606f\u662f\u53ef\u4ee5\u83b7\u5f97\u7684\uff1b\n\u2014\u2014A\u4ee3\u8868\u53ef\u5b9e\u73b0(Attainable)\uff0c\u6307\u7ee9\u6548\u6307\u6807\u5728\u4ed8\u51fa\u52aa\u529b\u7684\u60c5\u51b5\u4e0b\u53ef\u4ee5\u5b9e\u73b0\uff0c\u907f\u514d\u8bbe\u7acb\u8fc7\u9ad8\u6216\u8fc7\u4f4e\u7684\u76ee\u6807\uff1b\n\u2014\u2014R\u4ee3\u8868\u73b0\u5b9e\u6027(realistic)\uff0c\u6307\u7ee9\u6548\u6307\u6807\u662f\u5b9e\u5b9e\u5728\u5728\u7684\uff0c\u53ef\u4ee5\u8bc1\u660e\u548c\u89c2\u5bdf\uff1b\n\u2014\u2014T\u4ee3\u8868\u6709\u65f6\u9650(time bound)\uff0c\u6ce8\u91cd\u5b8c\u6210\u7ee9\u6548\u6307\u6807\u7684\u7279\u5b9a\u671f\u9650\u3002"),(0,a.yg)("h4",{id:"\u4e94\u65f6\u95f4\u7ba1\u7406-\u91cd\u8981\u4e0e\u7d27\u6025"},"\u4e94\u3001\u65f6\u95f4\u7ba1\u7406-\u91cd\u8981\u4e0e\u7d27\u6025"),(0,a.yg)("p",null,"**"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"A\u3001\u91cd\u8981\u4e14\u7d27\u6025")),(0,a.yg)("p",null,"\u7d27\u6025\u72b6\u51b5\n\u8feb\u5207\u7684\u95ee\u9898\n\u9650\u671f\u5b8c\u6210\u7684\u5de5\u4f5c\n\u4f60\u4e0d\u505a\u5176\u4ed6\u4eba\u4e5f\u4e0d\u80fd\u505a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"B\u3001\u91cd\u8981\u4e0d\u7d27\u6025")),(0,a.yg)("p",null,"\u51c6\u5907\u5de5\u4f5c\n\u9884\u9632\u63aa\u65bd\n\u4ef7\u503c\u89c2\u7684\u6f84\u6e05\n\u8ba1\u5212\n\u4eba\u9645\u5173\u7cfb\u7684\u5efa\u7acb\n\u771f\u6b63\u7684\u518d\u521b\u9020\n\u589e\u8fdb\u81ea\u5df1\u7684\u80fd\u529b"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"C\u3001\u7d27\u6025\u4e0d\u91cd\u8981")),(0,a.yg)("p",null,"\u9020\u6210\u5e72\u6270\u7684\u4e8b\u3001\u7535\u8bdd\u3001\n\u4fe1\u4ef6\u3001\u62a5\u544a\n\u4f1a\u8bae\n\u8bb8\u591a\u8feb\u5728\u7709\u6377\u7684\u6025\u4e8b\n\u7b26\u5408\u522b\u4eba\u671f\u671b\u7684\u4e8b"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"D\u3001\u4e0d\u91cd\u8981\u4e0d\u7d27\u6025")),(0,a.yg)("p",null,"\u5fd9\u788c\u7410\u788e\u7684\u4e8b\n\u5e7f\u544a\u51fd\u4ef6\n\u7535\u8bdd\n\u9003\u907f\u6027\u6d3b\u52a8\n\u7b49\u5f85\u65f6\u95f4\n\u4f18\u5148\u987a\u5e8f=\u91cd\u8981\u6027*\u7d27\u8feb\u6027\n\u5728\u8fdb\u884c\u65f6\u95f4\u5b89\u6392\u65f6\uff0c\u5e94\u6743\u8861\u5404\u79cd\u4e8b\u60c5\u7684\u4f18\u5148\u987a\u5e8f\uff0c\u8981\u5b66\u4f1a\u201c\u5f39\u94a2\u7434\u201d\u3002\n\u5bf9\u5de5\u4f5c\u8981\u6709\u524d\u77bb\u80fd\u529b\uff0c\u9632\u60a3\u4e8e\u672a\u7136\uff0c\u5982\u679c\u603b\u662f\u5728\u5fd9\u4e8e\u6551\u706b\uff0c\u90a3\u5c06\u4f7f\u6211\u4eec\u7684\u5de5\u4f5c\u6c38\u8fdc\u5904\u7406\u88ab\u52a8\u4e4b\u4e2d\u3002\n**"),(0,a.yg)("h4",{id:"\u516d\u4efb\u52a1\u5206\u89e3\u6cd5wbs"},"\u516d\u3001\u4efb\u52a1\u5206\u89e3\u6cd5","[WBS]"),(0,a.yg)("p",null,"\u5373Work Breakdown Structure\uff0c\u5982\u4f55\u8fdb\u884cWBS\u5206\u89e3\uff1a\u76ee\u6807\u2192\u4efb\u52a1\u2192\u5de5\u4f5c\u2192\u6d3b\u52a8\nWBS\u5206\u89e3\u7684\u539f\u5219\uff1a\n\u5c06\u4e3b\u4f53\u76ee\u6807\u9010\u6b65\u7ec6\u5316\u5206\u89e3\uff0c\u6700\u5e95\u5c42\u7684\u4efb\u52a1\u6d3b\u52a8\u53ef\u76f4\u63a5\u5206\u6d3e\u5230\u4e2a\u4eba\u53bb\u5b8c\u6210\uff1b\u6bcf\u4e2a\u4efb\u52a1\u539f\u5219\u4e0a\u8981\u6c42\u5206\u89e3\u5230\u4e0d\u80fd\u518d\u7ec6\u5206\u4e3a\u6b62\u3002\nWBS\u5206\u89e3\u7684\u65b9\u6cd5\uff1a\n\u81f3\u4e0a\u800c\u4e0b\u4e0e\u81f3\u4e0b\u800c\u4e0a\u7684\u5145\u5206\u6c9f\u901a\uff1b\n\u4e00\u5bf9\u4e00\u4e2a\u522b\u4ea4\u6d41\uff1b\n\u5c0f\u7ec4\u8ba8\u8bba\u3002\nWBS\u5206\u89e3\u7684\u6807\u51c6\uff1a\n\u5206\u89e3\u540e\u7684\u6d3b\u52a8\u7ed3\u6784\u6e05\u6670\uff1b\n\u903b\u8f91\u4e0a\u5f62\u6210\u4e00\u4e2a\u5927\u7684\u6d3b\u52a8\uff1b\n\u96c6\u6210\u4e86\u6240\u6709\u7684\u5173\u952e\u56e0\u7d20\u5305\u542b\u4e34\u65f6\u7684\u91cc\u7a0b\u7891\u548c\u76d1\u63a7\u70b9\uff1b\n\u6240\u6709\u6d3b\u52a8\u5168\u90e8\u5b9a\u4e49\u6e05\u695a\u3002\n\u610f\u4e49\uff1a\u5b66\u4f1a\u5206\u89e3\u4efb\u52a1\uff0c\u53ea\u6709\u5c06\u4efb\u52a1\u5206\u89e3\u5f97\u8db3\u591f\u7ec6\uff0c\u60a8\u624d\u80fd\u5fc3\u91cc\u6709\u6570\uff0c\u60a8\u624d\u80fd\u6709\u6761\u4e0d\u7d0a\u5730\u5de5\u4f5c\uff0c\u60a8\u624d\u80fd\u7edf\u7b79\u5b89\u6392\u60a8\u7684\u65f6\u95f4\u8868\u3002\n**"),(0,a.yg)("h4",{id:"\u4e03\u4e8c\u516b\u539f\u5219"},"\u4e03\u3001\u4e8c\u516b\u539f\u5219"),(0,a.yg)("p",null,"\u5df4\u5217\u7279\u5b9a\u5f8b\uff1a\u201c\u603b\u7ed3\u679c\u768480%\u662f\u7531\u603b\u6d88\u8017\u65f6\u95f4\u4e2d\u768420%\u6240\u5f62\u6210\u7684\u3002\u201d\u6309\u4e8b\u60c5\u7684\u201c\u91cd\u8981\u7a0b\u5ea6\u201d\u7f16\u6392\u4e8b\u52a1\u4f18\u5148\u6b21\u5e8f\u7684\u51c6\u5219\u662f\u5efa\u7acb\u5728\u201c\u91cd\u8981\u7684\u5c11\u6570\u4e0e\u7410\u788e\u7684\u591a\u6570\u201d\u7684\u539f\u7406\u7684\u57fa\u7840\u4e0a\u3002\n\u4e3e\u4f8b\u8bf4\u660e\uff1a\n80%\u7684\u9500\u552e\u989d\u662f\u6e90\u81ea20%\u7684\u987e\u5ba2\uff1b\n80%\u7684\u7535\u8bdd\u662f\u6765\u81ea20%\u7684\u670b\u53cb\uff1b\n80%\u7684\u603b\u4ea7\u91cf\u6765\u81ea20%\u7684\u4ea7\u54c1\uff1b\n80%\u7684\u8d22\u5bcc\u96c6\u4e2d\u572820%\u7684\u4eba\u624b\u4e2d\uff1b\n\u8fd9\u542f\u793a\u6211\u4eec\u5728\u5de5\u4f5c\u4e2d\u8981\u5584\u4e8e\u6293\u4e3b\u8981\u77db\u76fe\uff0c\u5584\u4e8e\u4ece\u7eb7\u7e41\u590d\u6742\u7684\u5de5\u4f5c\u4e2d\u7406\u51fa\u5934\u7eea\uff0c\u628a\u8d44\u6e90\u7528\u5728\u6700\u91cd\u8981\u3001\u6700\u7d27\u8feb\u7684\u4e8b\u60c5\u4e0a\u3002"),(0,a.yg)("h3",{id:"\u63d0\u9ad8\u63d0\u6d4b\u8d28\u91cf"},"\u63d0\u9ad8\u63d0\u6d4b\u8d28\u91cf"),(0,a.yg)("p",null,"QA\u7684\u804c\u8d23\u4e0d\u662f\u5f00\u53d1\u5199\u5b8c\u6254\u7ed9\u4eba\u5bb6\u6d4b\u8bd5\uff0c\u8fd9\u662f\u504f\u89c1\uff0c\u4e5f\u662f\u597d\u591a\u5f00\u53d1\u4eba\u5458\u4e00\u76f4\u6709\u7684\u9519\u8bef\u7684\u89c2\u5ff5\uff0cQA \u4e0d\u662f\u7b80\u5355\u7684\u9a8c\u8bc1\u529f\u80fd\u6027\u7684\uff08\u5f53\u7136\u5b58\u5728\u8fd9\u79cdAQ\uff09\uff0cQA\u66f4\u591a\u662f\u9a8c\u8bc1\u7a0b\u5e8f\u7684",(0,a.yg)("strong",{parentName:"p"},"\u5065\u58ee\u6027"),"\u3001",(0,a.yg)("strong",{parentName:"p"},"\u5bb9\u9519\u6027"),"\uff0c\u6240\u4ee5\u5728\u6211\u4eec\u8fd9\u91cc\u5e94\u8be5\u4fdd\u8bc1\u7a0b\u5e8f\u6700\u57fa\u672c\u7684\u529f\u80fd\u6027\u95ee\u9898\uff0c\u51cf\u5c11\u4ee3\u7801\u7684\u56de\u6eaf\uff0c\u8fd9\u6837\u624d\u80fd\u4e0d\u5f71\u54cd\u4ea7\u54c1\u7684\u8fc5\u901f\u8fed\u4ee3\uff0c\u4e0d\u5f71\u54cd\u4ea7\u54c1\u7684\u63a8\u8fdb\u3002"),(0,a.yg)("h3",{id:"\u5148\u5199\u6587\u6863\u518d\u5199\u4ee3\u7801"},"\u5148\u5199\u6587\u6863\u518d\u5199\u4ee3\u7801"),(0,a.yg)("p",null,"\u597d\u591a\u7a0b\u5e8f\u5458\u7684\u901a\u75c5\u5c31\u662f\u62ff\u5230\u9700\u6c42\u5c31\u5f00\u59cb\u5199\u4ee3\u7801\uff0c\u8fd9\u662f\u76f8\u5f53\u7684\u4e0d\u8d1f\u8d23\u4efb\u7684\uff0c\u5f88\u660e\u663e\u8fd9\u79cd\u505a\u6cd5\u6709\u95ee\u9898\u3002\u5e94\u8be5\u5148\u5199\u81ea\u5df1\u7684\u601d\u8def\uff0c\u5982\u679c\u529f\u80fd\u5927\u4e00\u4e9b\uff0c\u8981\u5148\u5199\u65b9\u6848\uff0c\u8bc4\u5ba1\u65b9\u6848\u3002\u601d\u8def\u3001\u65b9\u6848\u6ca1\u6709\u95ee\u9898\u5728\u52a8\u624b\u53bb\u5199\u4ee3\u7801\uff0c\u4f60\u4f1a\u53d1\u73b0\u5751\u4f1a\u5c11\u8e29\u597d\u591a\u3002"),(0,a.yg)("h3",{id:"\u4e00\u4e2a\u7a0b\u5e8f\u5458\u7684\u4ef7\u503c\u662f\u89e3\u51b3\u95ee\u9898\u7684\u80fd\u529b"},"\u4e00\u4e2a\u7a0b\u5e8f\u5458\u7684\u4ef7\u503c\u662f\u89e3\u51b3\u95ee\u9898\u7684\u80fd\u529b"),(0,a.yg)("p",null,"\u6280\u672f\u8d8a\u597d\u89e3\u51b3\u95ee\u9898\u7684\u80fd\u529b\u8d8a\u5f3a\uff0c\u8fd9\u4e2a\u6ca1\u6709\u95ee\u9898\uff0c\u8fd9\u662f\u4e00\u4e2a\u6b63\u5411\u6bd4\u4f8b\u5173\u7cfb\u3002\u4f46\u662f\u89e3\u51b3\u95ee\u9898\u7684\u80fd\u529b\uff0c\u4e0d\u4ec5\u4ec5\u5305\u62ec\u6280\u672f\uff0c\u4e5f\u5305\u62ec\u6c9f\u901a\u3001\u4e1a\u52a1\u7b49\u7b49\u5176\u4ed6\u65b9\u9762\u3002\u5728\u5de5\u4f5c\u4e2d\uff0c\u4e0d\u8981\u4ec5\u4ec5\u7684\u53bb\u5b66\u4e60\u5404\u79cd\u7f16\u7a0b\u6280\u672f\uff0c\u4e5f\u8981\u5b66\u4f1a\u6c9f\u901a\u3001\u4e1a\u52a1\u3002"),(0,a.yg)("h3",{id:"\u6ce8\u610f\u6d41\u7a0b\u89c4\u8303"},"\u6ce8\u610f\u6d41\u7a0b\u3001\u89c4\u8303"),(0,a.yg)("p",null,"\u5c24\u5176\u662f\u7ba1\u7406\u4eba\u5458\u3001\u7ec4\u957f\u3001\u9ad8\u7a0b\uff0c\u4e00\u5b9a\u8981\u4e3b\u8981\u6d41\u7a0b\u548c\u89c4\u8303\uff0c\u6ca1\u6709\u6d41\u7a0b\u548c\u89c4\u8303\u5c31\u662f\u4e00\u7fa4\u4e4c\u5408\u4e4b\u4f17\uff0c\u6ca1\u6709\u4efb\u4f55\u6218\u529b\u53ef\u8a00\u3002\u6709\u4e86\u6d41\u7a0b\u548c\u89c4\u8303\uff0c10\u4e2a\u4eba\u53ef\u4ee5\u505a20\u4e2a\u4eba\u7684\u5de5\u4f5c\uff1b\u6ca1\u6709\u6d41\u7a0b\u548c\u89c4\u8303\uff0c20\u4e2a\u4eba\u9876\u591a\u4e5f\u53ea\u80fd\u505a10\u4e2a\u4eba\u7684\u5de5\u4f5c\uff0c\u4e14\u4e0d\u4f1a\u6709\u4efb\u4f55\u53ef\u7ef4\u62a4\u6027\u3002"))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1366],{5680:(e,n,l)=>{l.d(n,{xA:()=>u,yg:()=>s});var t=l(6540);function a(e,n,l){return n in e?Object.defineProperty(e,n,{value:l,enumerable:!0,configurable:!0,writable:!0}):e[n]=l,e}function r(e,n){var l=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n&&(t=t.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),l.push.apply(l,t)}return l}function p(e){for(var n=1;n=0||(a[l]=e[l]);return a}(e,n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,l)&&(a[l]=e[l])}return a}var i=t.createContext({}),y=function(e){var n=t.useContext(i),l=n;return e&&(l="function"==typeof e?e(n):p(p({},n),e)),l},u=function(e){var n=y(e.components);return t.createElement(i.Provider,{value:n},e.children)},o="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return t.createElement(t.Fragment,{},n)}},d=t.forwardRef((function(e,n){var l=e.components,a=e.mdxType,r=e.originalType,i=e.parentName,u=g(e,["components","mdxType","originalType","parentName"]),o=y(l),d=a,s=o["".concat(i,".").concat(d)]||o[d]||m[d]||r;return l?t.createElement(s,p(p({ref:n},u),{},{components:l})):t.createElement(s,p({ref:n},u))}));function s(e,n){var l=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var r=l.length,p=new Array(r);p[0]=d;var g={};for(var i in n)hasOwnProperty.call(n,i)&&(g[i]=n[i]);g.originalType=e,g[o]="string"==typeof e?e:a,p[1]=g;for(var y=2;y{l.r(n),l.d(n,{assets:()=>i,contentTitle:()=>p,default:()=>m,frontMatter:()=>r,metadata:()=>g,toc:()=>y});var t=l(8168),a=(l(6540),l(5680));const r={},p=void 0,g={unversionedId:"study/think/\u8c08\u5de5\u4f5c\u5fc3\u5f97",id:"study/think/\u8c08\u5de5\u4f5c\u5fc3\u5f97",title:"\u8c08\u5de5\u4f5c\u5fc3\u5f97",description:"\u5236\u5b9a\u539f\u5219\uff1a\u624b\u4e2d\u65e0\u5200\uff0c\u4f46\u4f60\u7684\u5fc3\u4e2d\u8981\u6709\u5200",source:"@site/docs/study/think/\u8c08\u5de5\u4f5c\u5fc3\u5f97.md",sourceDirName:"study/think",slug:"/study/think/\u8c08\u5de5\u4f5c\u5fc3\u5f97",permalink:"/docs/study/think/\u8c08\u5de5\u4f5c\u5fc3\u5f97",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u5206\u5e03\u5f0f\u7f13\u5b58",permalink:"/docs/study/think/\u7f13\u5b58/\u5206\u5e03\u5f0f\u7f13\u5b58"},next:{title:"\u9650\u6d41",permalink:"/docs/study/think/\u9650\u6d41"}},i={},y=[{value:"\u5236\u5b9a\u539f\u5219\uff1a\u624b\u4e2d\u65e0\u5200\uff0c\u4f46\u4f60\u7684\u5fc3\u4e2d\u8981\u6709\u5200",id:"\u5236\u5b9a\u539f\u5219\u624b\u4e2d\u65e0\u5200\u4f46\u4f60\u7684\u5fc3\u4e2d\u8981\u6709\u5200",level:3},{value:"\u6280\u672f\u56e2\u961f\u6210\u9f99\u6210\u866b\u7684\u79d8\u8bc0",id:"\u6280\u672f\u56e2\u961f\u6210\u9f99\u6210\u866b\u7684\u79d8\u8bc0",level:3},{value:"\u56e2\u961f\u7684\u89c2\u5bdf\u8005\u6548\u5e94",id:"\u56e2\u961f\u7684\u89c2\u5bdf\u8005\u6548\u5e94",level:4},{value:"\u613f\u666f\u521d\u5fc3\u5f88\u91cd\u8981\u3002",id:"\u613f\u666f\u521d\u5fc3\u5f88\u91cd\u8981",level:4},{value:"\u4e13\u4e1a\u7684\u4eba\u505a\u4e13\u4e1a\u7684\u4e8b",id:"\u4e13\u4e1a\u7684\u4eba\u505a\u4e13\u4e1a\u7684\u4e8b",level:3},{value:"\u7ebf\u4e0a\u6545\u969c\u5904\u7406\u603b\u7ed3",id:"\u7ebf\u4e0a\u6545\u969c\u5904\u7406\u603b\u7ed3",level:3},{value:"\u6ca1\u6709\u9884\u89c1\u6027\u4f60\u51ed\u4ec0\u4e48\u664b\u5347",id:"\u6ca1\u6709\u9884\u89c1\u6027\u4f60\u51ed\u4ec0\u4e48\u664b\u5347",level:3},{value:"\u4ec0\u4e48\u662f\u9884\u89c1\u6027\uff1f",id:"\u4ec0\u4e48\u662f\u9884\u89c1\u6027",level:4},{value:"\u6211\u53f8\u7814\u53d1\u6587\u5316=",id:"\u6211\u53f8\u7814\u53d1\u6587\u5316",level:3},{value:"Don't make me think",id:"dont-make-me-think",level:3},{value:"If it hurts, do it more and often",id:"if-it-hurts-do-it-more-and-often",level:3},{value:"\u8fd9\u4e2a\u4e16\u754c\u4ece\u6765\u6ca1\u6709\u4ec0\u4e48\u6551\u4e16\u4e3b",id:"\u8fd9\u4e2a\u4e16\u754c\u4ece\u6765\u6ca1\u6709\u4ec0\u4e48\u6551\u4e16\u4e3b",level:3},{value:"\u4e00\u5b9a\u8981\u6709\u540e\u5907\u65b9\u6848",id:"\u4e00\u5b9a\u8981\u6709\u540e\u5907\u65b9\u6848",level:3},{value:"DevOps \u65b0\u516b\u8363\u516b\u803b\uff0c\u6bcf\u4e00\u6761\u90fd\u662f\u8840\u8089\u957f\u57ce",id:"devops-\u65b0\u516b\u8363\u516b\u803b\u6bcf\u4e00\u6761\u90fd\u662f\u8840\u8089\u957f\u57ce",level:3},{value:"\u6838\u5fc3\u4e1a\u52a1\u6d41\u7a0b\u7684\u6545\u969c\u5904\u7406\u539f\u5219\uff1a\u4e0d\u53ef\u604b\u6218",id:"\u6838\u5fc3\u4e1a\u52a1\u6d41\u7a0b\u7684\u6545\u969c\u5904\u7406\u539f\u5219\u4e0d\u53ef\u604b\u6218",level:3},{value:"\u5f53\u6211\u4eec\u8c08\u91cd\u6784\u7684\u65f6\u5019\u6211\u4eec\u60f3\u8c08\u4ec0\u4e48",id:"\u5f53\u6211\u4eec\u8c08\u91cd\u6784\u7684\u65f6\u5019\u6211\u4eec\u60f3\u8c08\u4ec0\u4e48",level:3},{value:"\u8981\u719f\u7ec3\u638c\u63e1\u7684\u4e03\u4e2a\u4eba\u751f\u5de5\u5177",id:"\u8981\u719f\u7ec3\u638c\u63e1\u7684\u4e03\u4e2a\u4eba\u751f\u5de5\u5177",level:3},{value:"\u4e00\u3001SWOT\u5206\u6790\u6cd5\uff1a",id:"\u4e00swot\u5206\u6790\u6cd5",level:4},{value:"\u4e8c\u3001PDCA\u5faa\u73af\u89c4\u5219",id:"\u4e8cpdca\u5faa\u73af\u89c4\u5219",level:4},{value:"\u4e09\u30016W2H\u6cd5",id:"\u4e096w2h\u6cd5",level:4},{value:"\u56db\u3001SMART\u539f\u5219",id:"\u56dbsmart\u539f\u5219",level:4},{value:"\u4e94\u3001\u65f6\u95f4\u7ba1\u7406-\u91cd\u8981\u4e0e\u7d27\u6025",id:"\u4e94\u65f6\u95f4\u7ba1\u7406-\u91cd\u8981\u4e0e\u7d27\u6025",level:4},{value:"\u516d\u3001\u4efb\u52a1\u5206\u89e3\u6cd5WBS",id:"\u516d\u4efb\u52a1\u5206\u89e3\u6cd5wbs",level:4},{value:"\u4e03\u3001\u4e8c\u516b\u539f\u5219",id:"\u4e03\u4e8c\u516b\u539f\u5219",level:4},{value:"\u63d0\u9ad8\u63d0\u6d4b\u8d28\u91cf",id:"\u63d0\u9ad8\u63d0\u6d4b\u8d28\u91cf",level:3},{value:"\u5148\u5199\u6587\u6863\u518d\u5199\u4ee3\u7801",id:"\u5148\u5199\u6587\u6863\u518d\u5199\u4ee3\u7801",level:3},{value:"\u4e00\u4e2a\u7a0b\u5e8f\u5458\u7684\u4ef7\u503c\u662f\u89e3\u51b3\u95ee\u9898\u7684\u80fd\u529b",id:"\u4e00\u4e2a\u7a0b\u5e8f\u5458\u7684\u4ef7\u503c\u662f\u89e3\u51b3\u95ee\u9898\u7684\u80fd\u529b",level:3},{value:"\u6ce8\u610f\u6d41\u7a0b\u3001\u89c4\u8303",id:"\u6ce8\u610f\u6d41\u7a0b\u89c4\u8303",level:3}],u={toc:y},o="wrapper";function m(e){let{components:n,...l}=e;return(0,a.yg)(o,(0,t.A)({},u,l,{components:n,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u5236\u5b9a\u539f\u5219\u624b\u4e2d\u65e0\u5200\u4f46\u4f60\u7684\u5fc3\u4e2d\u8981\u6709\u5200"},"\u5236\u5b9a\u539f\u5219\uff1a\u624b\u4e2d\u65e0\u5200\uff0c\u4f46\u4f60\u7684\u5fc3\u4e2d\u8981\u6709\u5200"),(0,a.yg)("p",null,"\u8f6f\u4ef6\u5de5\u7a0b\u548c\u6280\u672f\u9886\u57df\u91cc\u867d\u8bf4\u6cd5\u65e0\u5b9a\u6cd5\uff0c\u9700\u6c42\u548c\u6d41\u7a0b\u968f\u4fbf\u600e\u4e48\u505a\u90fd\u53ef\u4ee5\uff0c\u4f46\u4e5f\u5e76\u975e\u53ef\u4ee5\u5929\u9a6c\u884c\u7a7a\u6063\u610f\u5984\u4e3a\uff0c\u7a0d\u4e0d\u7559\u610f\u5c31\u53ef\u80fd\u5929\u584c\u5730\u9677\u5899\u5012\u5c4b\u584c\uff0c\u917f\u6210\u4e0d\u53ef\u6536\u62fe\u4e4b\u60e8\u5267\u3002\u4e0b\u9762\u6211\u5c31\u8bf4\u9053\u8bf4\u9053\u3002"),(0,a.yg)("p",null,"2020\u5e741\u6708\u5e952\u6708\u521d\uff0c\u9996\u90fd\u533b\u79d1\u5927\u5b66\u9644\u5c5e\u590d\u5174\u533b\u9662\u51fa\u73b0\u533b\u62a4\u4eba\u5458\u611f\u67d3\u65b0\u51a0\u80ba\u708e\u4e8b\u4ef6\uff0c\u6700\u7ec8\u7d2f\u8ba1\u786e\u8bca34\u4eba\uff0c\u65e2\u6709\u533b\u62a4\u4e5f\u6709\u60a3\u8005\u548c\u5bb6\u5c5e\uff0c\u539f\u56e0\u4e5f\u975e\u5e38\u201c\u611f\u4eba\u201d\uff1a\u4e00\u4f4d\u6709\u6b66\u6c49\u63a5\u89e6\u53f2\u7684\u8001\u592a\u592a\uff0c\u672c\u6765\u5c5e\u4e8e\u201c\u65b0\u51a0\u80ba\u708e\u7591\u4f3c\u75c5\u4f8b\u201d\u5728\u53d1\u70ed\u95e8\u8bca\u770b\u75c5\uff0c\u4f46\u5374\u7a81\u53d1\u5947\u60f3\uff0c\u901a\u8fc7\u9662\u9886\u5bfc\u7684\u5173\u7cfb\uff0c\u6258\u5173\u7cfb\u627e\u5fc3\u5185\u79d1ICU\u4e3b\u4efb\u97e9\u67d0\uff0c\u6123\u662f\u4ece\u9632\u62a4\u68ee\u4e25\u7684\u53d1\u70ed\u95e8\u8bca\u75c5\u623f\u8f6c\u8fdb\u4e86\u4e91\u6de1\u98ce\u8f7b\u7684\u5fc3\u5185\u79d1ICU\uff0c\u7ed3\u679c\u6a2a\u626b\u4e00\u7247\u3002"),(0,a.yg)("p",null,"\u6211\u4e00\u76f4\u8bf4\uff0c\u5de5\u7a0b\u5e08\u56e2\u961f\u548c\u533b\u62a4\u56e2\u961f\u90fd\u662f\u4e13\u4e1a\u9886\u57df\u673a\u6784\uff0c\u7ba1\u7406\u65b9\u5f0f\u6709\u76f8\u4f3c\u4e4b\u5904\u3002\u90a3\u4e48\u5728\u8fd9\u4e2a\u6848\u4f8b\u91cc\uff0c\u7ba1\u7406\u8005\u72af\u4e86\u4ec0\u4e48\u9519\u8bef\uff1f\u5fc3\u4e2d\u65e0\u539f\u5219\uff01"),(0,a.yg)("p",null,"\u5fc3\u4e2d\u65e0\u539f\u5219\uff0c\u4f1a\u6709\u4e00\u767e\u4e07\u79cd\u6b7b\u6cd5\u3002"),(0,a.yg)("p",null,"\u539f\u5219\uff01\u4e13\u4e1a\u56e2\u961f\u7684\u7ba1\u7406\u8005\u5fc3\u4e2d\u4e00\u5b9a\u8981\u6709\u539f\u5219\uff0c\u4f60\u6709\u4e86\u539f\u5219\uff0c\u624d\u80fd\u8981\u6c42\u5927\u5bb6\u201c\u8bb2\u653f\u6cbb\uff0c\u5b88\u89c4\u77e9\u201d\uff01\u540c\u6837\uff0c\u5728\u505a\u8bbe\u8ba1\u7684\u65f6\u5019\uff0c\u5148\u628a\u8bbe\u8ba1\u613f\u666f\u3001\u8bbe\u8ba1\u5206\u9636\u6bb5\u76ee\u6807\u3001\u8bbe\u8ba1\u539f\u5219\u5199\u4e0b\u6765\uff0c\u5728\u6b64\u57fa\u7840\u4e0a\u753b\u5730\u4e3a\u7262\u518d\u505a\u8bbe\u8ba1\u63a8\u6f14\uff0c\u83ab\u8981\u5929\u9a6c\u884c\u7a7a\u6063\u610f\u5984\u4e3a\u3002\u624b\u4e2d\u65e0\u5200\uff0c\u5fc3\u4e2d\u6709\u5200\u3002"),(0,a.yg)("p",null,"\u4f5c\u4e3a\u7ba1\u7406\u8005\uff0c\u5982\u679c\u4e0d\u8bb2\u539f\u5219\uff0c\u6ca1\u6709\u89c4\u8303\uff0c\u65e0\u6cd5\u505a\u597d\u7ba1\u7406\u3002\u4e0b\u9762\u7684\u4eba\u4f1a\u65e0\u6240\u9002\u4ece\uff0c\u56e0\u4e3a\u539f\u5219\u5929\u5929\u53d8\uff0c\u4eca\u5929\u8fd9\u6837\uff0c\u660e\u5929\u53c8\u90a3\u6837\uff0c\u6beb\u65e0\u7ae0\u6cd5\u3002\u4e0b\u9762\u7684\u4eba\u4e0d\u77e5\u9053\u5f80\u54ea\u91cc\u91cd\u70b9\u4f7f\u52b2\uff0c\u4e8b\u60c5\u5c31\u4f1a\u53d8\u5f97\u4e00\u56e2\u7cdf\u3002"),(0,a.yg)("p",null,"\u4e0d\uff0c\u6ca1\u6709\u4ec0\u4e48\u6cd5\u65e0\u5b9a\u6cd5\uff0c\u6280\u672f\u7684\u4e16\u754c\u91cc\u4e00\u5b9a\u662f\u6709\u6cd5\u5219\u7684\uff0c\u5426\u5219\u4f60\u4f1a\u6b7b\u5f97\u5f88\u96be\u770b\uff0c\u522b\u6307\u671b\u6211\u6765\u6551\u4f60\uff0c\u6211\u6551\u90fd\u6551\u4e0d\u8d62\u3002"),(0,a.yg)("p",null,"You\uff01Leaders\uff01\u4e00\u5b9a\u8981\u901a\u8fc7\u5c42\u5c42\u53e0\u52a0\u7684\u201cRules\u201d\u5efa\u7acb\u8d77\u672c\u80fd\u53cd\u5e94\uff0c\u4e00\u9047\u5230\u7c7b\u4f3c\u7684\u4e8b\u60c5\uff0c\u5e94\u6fc0\u822c\u7684\u5c31\u77e5\u9053\u8be5\u600e\u4e48\u8bbe\u8ba1\uff0c\u600e\u4e48\u884c\u52a8\uff0c\u600e\u4e48\u6551\u706b\u3002\n\u800c\u8fd9\u4e9b\u201cRules\u201d\u662f\u7ecf\u5386\u4e86\u8840\u4e0e\u706b\u7684\u6d17\u793c\u94f8\u9020\u7684\uff0c\u6bcf\u4e00\u6761\u90fd\u6709\u6765\u7531\u6709\u53bb\u8def\u3002\n\u6bd4\u5982\u8bf4\uff0c\u6211\u57282018\u5e74\u5b9a\u4e49\u7684 DevOps \u65b0\u516b\u8363\u516b\u803b\uff0c\u6bcf\u4e00\u6761\u90fd\u662f\u8840\u8089\u957f\u57ce\uff1a"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"\u4ee5\u968f\u65f6\u53ef\u6269\u5bb9\u3001\u53ef\u7f29\u5bb9\u3001\u53ef\u91cd\u542f\u3001\u53ef\u5207\u6362\u673a\u623f\u6d41\u91cf\u4e3a\u8363\uff0c\u4ee5\u4e0d\u80fd\u8fc1\u79fb\u4e3a\u803b\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u4ee5\u53ef\u914d\u7f6e\u4e3a\u8363\uff0c\u4ee5\u786c\u7f16\u7801\u4e3a\u803b\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u4ee5\u7cfb\u7edf\u4e92\u5907\u4e3a\u8363\uff0c\u4ee5\u7cfb\u7edf\u5355\u70b9\u4e3a\u803b\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u4ee5\u4ea4\u4ed8\u65f6\u6709\u76d1\u63a7\u62a5\u8b66\u4e3a\u8363\uff0c\u4ee5\u4ea4\u4ed8\u88f8\u5954\u7cfb\u7edf\u4e3a\u803b\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u4ee5\u65e0\u72b6\u6001\u4e3a\u8363\uff0c\u4ee5\u6709\u72b6\u6001\u4e3a\u803b\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u4ee5\u6807\u51c6\u5316\u4e3a\u8363\uff0c\u4ee5\u7279\u6b8a\u5316\u4e3a\u803b\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u4ee5\u81ea\u52a8\u5316\u5de5\u5177\u4e3a\u8363\uff0c\u4ee5\u4eba\u8089\u64cd\u4f5c\u4e3a\u803b\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u4ee5\u65e0\u4eba\u503c\u5b88\u4e3a\u8363\uff0c\u4ee5\u4eba\u5de5\u4ecb\u5165\u4e3a\u803b\u3002")),(0,a.yg)("p",null,"\xa0\n\u5982\u4f55\u81ea\u5efa\u6cd5\u5219\uff1f\n\u4ece\u9519\u8bef\u4e2d\u5b66\u4e60\u9519\u8bef\uff01"),(0,a.yg)("p",null,"\xa0\n\u300e\u5b66\u6821\u91cc\u5b66\u4e60\u6700\u597d\u7684\u5b66\u751f\u53ef\u80fd\u5f80\u5f80\u662f\u90a3\u4e9b\u6700\u4e0d\u5584\u4e8e\u4ece\u9519\u8bef\u4e2d\u5b66\u4e60\u7684\u4eba\uff0c\u56e0\u4e3a\u4ed6\u4eec\u5df2\u7ecf\u4e60\u60ef\u4e86\u628a\u9519\u9898\u5f53\u6210\u5931\u8d25\u7684\u4ee3\u540d\u8bcd\uff0c\u800c\u4e0d\u662f\u628a\u72af\u9519\u770b\u6210\u5b66\u4e60\u7684\u673a\u4f1a\uff0c\u8fd9\u53cd\u800c\u6210\u4e3a\u4ed6\u4eec\u8fdb\u6b65\u7684\u4e3b\u8981\u969c\u788d\u3002\u8d70\u5165\u793e\u4f1a\u4e4b\u540e\uff0c\u806a\u660e\u7684\u4eba\u5fc5\u987b\u5584\u4e8e\u62e5\u62b1\u81ea\u5df1\u7684\u9519\u8bef\u548c\u4e0d\u8db3\uff0c\u4ece\u800c\u80fd\u8fdc\u8fdc\u8d85\u8fc7\u90a3\u4e9b\u4e0e\u4ed6\u4eec\u6c34\u5e73\u76f8\u5f53\uff0c\u4f46\u66f4\u81ea\u8d1f\u7684\u540c\u5b66\u3001\u540c\u8f88\u3002\u300f\n\u8fd9\u4e5f\u5c31\u662f\u4e3a\u4ec0\u4e48\u5e73\u51e1\u4eba\u53ef\u4e3a\u975e\u51e1\u4e8b\u7684\u7f18\u6545\uff01\n\u300e\u4e0d\u8981\u60a3\u5f97\u60a3\u5931\uff0c\u8981\u671d\u7740\u76ee\u6807\u52aa\u529b\u524d\u884c\u3002\u8981\u81ea\u7701\u81ea\u8b66\uff0c\u522b\u4eba\u5bf9\u4f60\u5f88\u5230\u4f4d\u7684\u6279\u8bc4\uff0c\u662f\u4f60\u80fd\u5f97\u5230\u7684\u6700\u5b9d\u8d35\u7684\u5efa\u8bae\u3002\u60f3\u60f3\u770b\uff0c\u4f60\u7684\u6ed1\u96ea\u6559\u7ec3\u544a\u8bc9\u4f60\uff0c\u4f60\u6454\u8ddf\u5934\u662f\u56e0\u4e3a\u4f60\u6ed1\u884c\u4e2d\u7684\u91cd\u5fc3\u79fb\u52a8\u4e0d\u5bf9\uff0c\u6b64\u65f6\u4f60\u8981\u662f\u8ba4\u4e3a\u4ed6\u5728\u8d23\u9a82\u4f60\uff0c\u4f60\u8be5\u591a\u4e48\u611a\u8822\u548c\u4f4e\u6548\u3002\u540c\u7406\uff0c\u4f60\u7684\u4e0a\u53f8\uff0c\u6211\uff0c\u4e5f\u53ef\u80fd\u4f1a\u6307\u51fa\u4f60\u5de5\u4f5c\u4e2d\u7684\u7f3a\u70b9\uff0c\u6709\u5219\u6539\u4e4b\uff0c\u7ee7\u7eed\u52aa\u529b\u5c31\u662f\u4e86\u3002\u300f\n\u7b49\u6709\u4e00\u5929\u4f60\u4f9d\u636e\u672c\u80fd\uff08\u4e5f\u5c31\u662f\u4f60\u81ea\u5efa\u7684\u6cd5\u5219\uff09\u884c\u4e8b\u7684\u65f6\u5019\uff0c\u4f60\u80af\u5b9a\u4f1a\u628a\u4e8b\u60c5\u505a\u5f97\u5f88\u597d\uff01"),(0,a.yg)("h3",{id:"\u6280\u672f\u56e2\u961f\u6210\u9f99\u6210\u866b\u7684\u79d8\u8bc0"},"\u6280\u672f\u56e2\u961f\u6210\u9f99\u6210\u866b\u7684\u79d8\u8bc0"),(0,a.yg)("h4",{id:"\u56e2\u961f\u7684\u89c2\u5bdf\u8005\u6548\u5e94"},"\u56e2\u961f\u7684\u89c2\u5bdf\u8005\u6548\u5e94"),(0,a.yg)("p",null,"\u9519\u8bef\u4f1a\u6f14\u53d8\u6210\u4ec0\u4e48\uff0c\u53d6\u51b3\u4e8e\u4f60\u600e\u4e48\u770b\u5f85\u5b83\u3002\u4f60\u89c9\u5f97\u5b83\u662f\u7f9e\u803b\uff0c\u5e94\u8be5\u9690\u79d8\u4e8e\u4eba\uff0c\u6700\u597d\u7edd\u53e3\u4e0d\u63d0\uff0c\u90a3\u4e48\u5b83\u5c31\u4f1a\u53d8\u6210\u5b83\u5b83\u5b83\u5b83\u5b83\u5b83\u5b83\uff0c\u6700\u7ec8\u53d8\u6210\u5927\u707e\u96be\u3002\u4f60\u89c9\u5f97\u5b83\u662f\u8d22\u5bcc\uff0c\u662f\u7ec4\u7ec7\u8fdb\u6b65\u7684\u597d\u673a\u4f1a\uff0c\u662f\u63a8\u884c\u5de5\u5177\u548c\u89c4\u8303\u7684\u5207\u5165\u70b9\uff0c\u90a3\u4e48\u5b83\u5c31\u4f1a\u771f\u7684\u6210\u4e3a\u56e2\u961f\u7684\u4e0d\u53ef\u78e8\u706d\u7684\u4f20\u627f\uff0c\u6210\u4e3a\u5b9d\u8d35\u8d22\u5bcc\u3002"),(0,a.yg)("p",null,(0,a.yg)("strong",{parentName:"p"},"\u9519\u8bef\u7684\u89c2\u5bdf\u8005\u6548\u5e94\uff1a"),"\n",(0,a.yg)("strong",{parentName:"p"},"\u4f60\u8ba4\u4e3a\u9519\u8bef\u662f\u8d22\u5bcc\uff0c\u5b83\u5c31\u662f\u5b9d\u8d35\u8d22\u5bcc\u3002"),"\n",(0,a.yg)("strong",{parentName:"p"},"\u4f60\u8ba4\u4e3a\u9519\u8bef\u662f\u5931\u8d25\uff0c\u5b83\u7acb\u9a6c\u53d8\u6210\u707e\u96be\u3002"),"\n",(0,a.yg)("strong",{parentName:"p"},"\n\u5176\u5b9e\u8fd8\u6709\u4e00\u79cd\u89c2\u5bdf\u8005\u6548\u5e94\u3002\n"),"\u56e2\u961f\u7684\u89c2\u5bdf\u8005\u6548\u5e94\uff1a**\n",(0,a.yg)("strong",{parentName:"p"},"\u4f60\u8ba4\u4e3a\u56e2\u961f\u662f\u8d22\u5bcc\uff0c\u5b83\u5c31\u662f\u8d22\u5bcc\u3002"),"\n",(0,a.yg)("strong",{parentName:"p"},"\u4f60\u8ba4\u4e3a\u56e2\u961f\u662f\u6210\u672c\u5305\u88b1\uff0c\u5b83\u7acb\u9a6c\u53d8\u8eab\u5305\u88b1\u3002")),(0,a.yg)("p",null,"2017\u5e74\uff0c\u6709\u8d5eCTO\u5d14\u7389\u677e\u8bf4\uff0c\u6211\u60f3\u6253\u9020\u51fa\u4e2d\u56fd\u6700\u597d\u7684\u6280\u672f\u56e2\u961f\u3002"),(0,a.yg)("blockquote",null,(0,a.yg)("p",{parentName:"blockquote"},"\u6280\u672f\u4e0a\uff0c\u6709\u8d5e\u8d70\u8fc7\u7684\u8def\u548c\u5927\u591a\u6570\u4ece\u5c0f\u5230\u5927\u7684\u521b\u4e1a\u516c\u53f8\u5dee\u4e0d\u591a\uff0c\u90fd\u662f\u524d\u671f\u4e13\u6ce8\u4e8e\u89e3\u51b3\u4e1a\u52a1\u95ee\u9898\uff0c\u6700\u540e\u67b6\u6784\u95ee\u9898\u5728\u67d0\u4e2a\u65f6\u95f4\u70b9\u96c6\u4e2d\u7206\u53d1\uff0c\u5bfc\u81f4\u5f88\u591a\u7684\u4e0d\u7a33\u5b9a\u3002\u8fd9\u4e00\u70b9\u4e0d\u7ba1\u662f\u963f\u91cc\u4e5f\u597d\uff0c\u4eac\u4e1c\u4e5f\u7f62\uff0c\u8fd8\u662f\u6700\u8fd1\u4ea4\u6d41\u7684\u4e00\u4e9b\u5176\u4ed6\u516c\u53f8\uff0c\u57fa\u672c\u4e0a\u90fd\u662f\u4e00\u6837\u7684\uff0c\u53ea\u662f\u5927\u5bb6\u95ee\u9898\u7684\u4e25\u91cd\u7a0b\u5ea6\u548c\u89e3\u51b3\u95ee\u9898\u7684\u901f\u5ea6\u4e0d\u4e00\u6837\u3002",(0,a.yg)("strong",{parentName:"p"},"\u6709\u8d5e\u7684\u89e3\u51b3\u65b9\u6cd5\u548c\u5927\u5bb6\u4e5f\u6ca1\u4ec0\u4e48\u592a\u5927\u533a\u522b\uff0c\u5c31\u662f\u7ec4\u5efa\u4e00\u6d41\u5e95\u5c42\u6838\u5fc3\u67b6\u6784\u548c\u6838\u5fc3\u8fd0\u7ef4\u56e2\u961f\uff0c\u8fd9\u4e2a\u56e2\u961f\u5fc5\u987b\u5f97\u597d\uff0c\u4e0d\u7136\u89e3\u51b3\u95ee\u9898\u7684\u901f\u5ea6\u975e\u5e38\u975e\u5e38\u6162\uff0c\u6bcf\u5929\u90fd\u53ef\u80fd\u5b95\u673a\uff0c\u4f1a\u4e25\u91cd\u5f71\u54cd\u516c\u53f8\u4e1a\u52a1\u53ca\u6548\u76ca\u3002"),"\n\u65e5\u5e38\u4e1a\u52a1\u4e2d\uff0c\u6211\u4eec\u975e\u5e38\u9f13\u52b1\u5927\u5bb6\u76f8\u4e92\u8865\u4f4d\uff0c\u6709\u95ee\u9898\u53ca\u65f6\u5bfb\u627e\u8d44\u6e90\uff0c\u53ca\u65f6\u83b7\u53d6\u6709\u6548\u7684\u4fe1\u606f\uff0c\u9f13\u52b1\u5927\u5bb6\u9762\u5bf9\u9762\u628a\u4e8b\u60c5\u8bf4\u6e05\u695a\u3002\n\u2014\u20142017\uff0c\u6709\u8d5eCTO\u5d14\u7389\u677e\uff1a\u6211\u60f3\u6253\u9020\u51fa\u4e2d\u56fd\u6700\u597d\u7684\u6280\u672f\u56e2\u961f")),(0,a.yg)("p",null,"2020\u5e74\uff0c\u73b0\u5728\u6765\u770b\uff0c\u4ed6\u53ef\u80fd\u786e\u5b9e\u505a\u5230\u4e86\uff0c\u6709\u8d5e\u7684\u6280\u672f\u5e95\u8574\u975e\u5e38\u5f3a\u3002\u5f53\u7136\u4e0a\u9762\u8fd8\u6709\u4e00\u5c42\u7f8e\u56e2\uff0c\u518d\u4e0a\u9762\u8fd8\u6709\u4e00\u5c42\u963f\u91cc\u5df4\u5df4\u3002"),(0,a.yg)("h4",{id:"\u613f\u666f\u521d\u5fc3\u5f88\u91cd\u8981"},"\u613f\u666f\u521d\u5fc3\u5f88\u91cd\u8981\u3002"),(0,a.yg)("p",null,"\u6709\u7684\u4eba\u613f\u666f\u5c31\u662f\u6d3b\u4e0b\u53bb\uff0c\u90a3\u4e48\u5e74\u590d\u4e00\u5e74\u65e5\u590d\u4e00\u65e5\u59cb\u7ec8\u6323\u624e\u5728\u751f\u6b7b\u8fb9\u7f18\u3002\n\u6709\u7684\u4eba\u613f\u666f\u5c31\u662f\u7528\u4e09\u4e94\u4e2a\u4eba\u505a\u4e00\u4e2a\u8d5a\u94b1\u7684\u5c0f\u516c\u53f8\uff0c\u90a3\u4e48\u4e5f\u633a\u597d\uff0c\u4ed6\u80fd\u8fd9\u6837\u8fc7\u4e00\u8f88\u5b50\u3002\n\u6709\u7684\u4eba\u6ca1\u6709\u613f\u666f\uff0c\u6240\u4ee5\u4ed6\u6b7b\u4e86\u3002"),(0,a.yg)("p",null,"\xa0\n\u963f\u91cc\u5df4\u5df4\u7684\u201c",(0,a.yg)("strong",{parentName:"p"},"\u6b64\u65f6\u6b64\u523b\uff0c\u975e\u6211\u83ab\u5c5e"),"\u201d\u786e\u5b9e\u725b\u903c\uff0c99\u5e74\u5c31\u6709\u4e86\uff0c\u53ef\u4ee5\u8bf4\u662f\u963f\u91cc\u5df4\u5df4\u7b2c\u4e00\u53e5\u571f\u8bdd\u3002"),(0,a.yg)("h3",{id:"\u4e13\u4e1a\u7684\u4eba\u505a\u4e13\u4e1a\u7684\u4e8b"},"\u4e13\u4e1a\u7684\u4eba\u505a\u4e13\u4e1a\u7684\u4e8b"),(0,a.yg)("p",null,"\u6211\u4ee5\u524d\u8bb2\u8fc7\u804c\u573a\uff08\u6f5c\uff09\u89c4\u5219\uff0c\u5176\u4e2d\u4e00\u6761\u53eb\u201c\u542c\u539f\u59cb\u9700\u6c42\uff0c\u4e0d\u542c\u6280\u672f\u89e3\u51b3\u65b9\u6848\u201d\uff0c\u539f\u6587\u5982\u4e0b\uff1a\n\u300e\u6211\u53d1\u73b0\u5f88\u591a\u505a\u4e1a\u52a1\u7684\u4eba\u4e00\u65b9\u9762\u641e\u4e0d\u6e05\u695a\u4ec0\u4e48\u53eb\u539f\u59cb\u9700\u6c42\uff0c\u751a\u81f3\u8fde\u6574\u4e2a\u4e1a\u52a1\u4f53\u7cfb\u662f\u600e\u4e48\u8fd0\u8f6c\u8d77\u6765\u7684\u90fd\u61f5\u61f5\u61c2\u61c2\uff0c\u542c\u4ed6\u8bf4\u4e86\u534a\u5929\uff0c\u539f\u6765\u662f\u5728\u8bb2\u4ed6\u8ba4\u4e3a\u6280\u672f\u4e0a\u600e\u4e48\u89e3\u51b3\u3002\n\u53e6\u4e00\u65b9\u9762\u4ed6\u4eec\u8fd8\u633a\u559c\u6b22\u8d8a\u4fce\u4ee3\u5e96\uff0c\u539f\u59cb\u9700\u6c42\u8fd8\u542d\u542d\u54e7\u54e7\u8bf4\u4e0d\u6e05\u695a\u5462\uff0c\u5c31\u76f4\u63a5\u62cd\u65b9\u6848\uff0c\u751a\u81f3\u8feb\u4e0d\u53ca\u5f85\u5730\u66ff\u6211\u4eec\u60f3\u6570\u636e\u5e93\u662f\u4e0d\u662f\u52a0\u5b57\u6bb5\u2026\u2026\n\u5bf9\u6b64\uff0c\u6211\u7684\u6807\u51c6\u56de\u7b54\u662f\uff1a\u201c\u8bf7\u76f4\u63a5\u8bf4\u539f\u59cb\u9700\u6c42\uff0c\u8bf7\u4e0d\u8981\u7ed9\u6211\u8bb2\u89e3\u51b3\u65b9\u6848\u201d\u3002\n",(0,a.yg)("strong",{parentName:"p"},"\u6f5c\u53f0\u8bcd\u5c31\u662f\uff0c\u4f60\u6709\u4f60\u7684\u4e13\u4e1a\u9886\u57df\uff0c\u6211\u6709\u6211\u7684\uff0c\u8d62\u5f97\u522b\u4eba\u5c0a\u91cd\u7684\u524d\u63d0\u662f\u5148\u628a\u81ea\u5df1\u7684\u672c\u804c\u5de5\u4f5c\u505a\u597d\u3002"),"\n**\n",(0,a.yg)("strong",{parentName:"p"},"\u5728\u4e13\u4e1a\u9886\u57df\u91cc\uff0c\u5343\u4e07\u4e0d\u80fd\u8ba9\u5916\u884c\u9886\u5bfc\u5185\u884c\uff01"),"\n\u6211\u53d1\u73b0\u597d\u591a\u505a\u7ba1\u7406\u7684\u90fd\u4e0d\u77e5\u9053\u8fd9\u4e00\u6761\uff0c\u603b\u89c9\u5f97\u6211\u505a\u7ba1\u7406\u7684\u80fd\u7ba1\u5929\u4e0b\u4e07\u4e8b\u4e07\u7269\u3002\u626f\u6de1\uff01\n**"),(0,a.yg)("h3",{id:"\u7ebf\u4e0a\u6545\u969c\u5904\u7406\u603b\u7ed3"},"\u7ebf\u4e0a\u6545\u969c\u5904\u7406\u603b\u7ed3"),(0,a.yg)("p",null,"\u7ebf\u4e0a\u6545\u969c\u5904\u7406\u53e3\u8bc0\uff1a\n",(0,a.yg)("strong",{parentName:"p"},"\u9047\u4e8b\u4e0d\u4e71\uff0c\u5206\u5934\u6838\u67e5\uff0c\u7fa4\u91cc\u540c\u6b65\uff0c\u7b80\u5355\u9648\u8ff0\uff0c\u7edd\u4e0d\u604b\u6218\uff0c\u6062\u590d\u670d\u52a1\u3002"),"\n**\n\u5177\u4f53\u89e3\u91ca\u4e00\u4e0b\u3002"),(0,a.yg)("p",null,(0,a.yg)("strong",{parentName:"p"},"\u5206\u5934\u6838\u67e5"),"\uff1aQA\u8d1f\u8d23\u7ebf\u4e0b\u590d\u73b0\u73b0\u8c61\uff0c\u786e\u8ba4\u95ee\u9898\u662f\u5426\u5b58\u5728\uff1bSA\u8d1f\u8d23\u6838\u67e5\u4e1a\u52a1\u5bf9\u5e94\u7684\u673a\u623f\u3001\u6570\u636e\u5e93\u3001\u5185\u5916\u7f51\u6d41\u91cf\u3001\u5e94\u7528\u8d1f\u8f7d\u6709\u65e0\u53d8\u66f4\u64cd\u4f5c\u3001\u6709\u4f55\u5f02\u5e38\u6307\u6807\u3002"),(0,a.yg)("p",null,(0,a.yg)("strong",{parentName:"p"},"\u7edd\u4e0d\u604b\u6218"),"\uff1a\u5982\u679c\u8fdf\u8fdf\u5b9a\u4f4d\u4e0d\u4e86\u95ee\u9898\uff08\u6bd4\u5982\u4e94\u5206\u949f\u4e4b\u5185\uff09\uff0c\u5c31\u4e0d\u53ef\u604b\u6218\uff0c\u5fc5\u987b\u5feb\u901f\u6062\u590d\u4e1a\u52a1\u3002\u7b2c\u4e00\uff0c\u4e0d\u8981\u628a\u751f\u4ea7\u73af\u5883\u5f53\u6210\u6d4b\u8bd5\u73af\u5883\uff0c\u4e0d\u8981\u5728\u7ebf\u8c03\u8bd5\uff1b\u7b2c\u4e8c\uff0c\u4e0d\u8981\u4e00\u76f4\u7559\u7740\u73b0\u573a\u89c2\u5bdf\u6765\u89c2\u5bdf\u53bb\u3002"),(0,a.yg)("p",null,(0,a.yg)("strong",{parentName:"p"},"\u7b80\u5355\u9648\u8ff0"),"\uff1a\u51fa\u4e86\u4e8b\u513f\u4e00\u5b9a\u5404\u65b9\u9762\u90fd\u52a8\u5458\u8d77\u6765\u4e86\uff0c\u4e03\u5634\u516b\u820c\uff0c\u5404\u8bf4\u5404\u8bdd\uff0c\u8fd9\u65f6\u5019\u4e00\u5b9a\u8981\u6709\u4e00\u4e2a\u4e34\u65f6\u603b\u6307\u6325\u4e0d\u65ad\u5730\u603b\u7ed3\u5927\u5bb6\u73b0\u5728\u7684\u8fdb\u5ea6\uff0c\u505a\u7cbe\u70bc\u7684\u201c\u7b80\u5355\u9648\u8ff0\u201d\uff0c\u53d1\u5728\u7fa4\u91cc\uff0c\u76f8\u5f53\u4e8e\u4e00\u4e2a\u65b0\u95fb\u53d1\u8a00\u4eba\u3002\u4ed6\u5728\u7b2c\u4e00\u65f6\u95f4\u51fa\u6765\u505a\u7b80\u8981\u7efc\u8ff0\uff0c\u628aWHEN/WHO/WHAT/HOW/RESULT\u51e0\u53e5\u8bdd\u8bf4\u6e05\u695a\uff0c\u540c\u6b65\u7ed9\u6838\u5fc3\u5e72\u90e8\u3002\u4e0d\u8981\u70b9\u5bf9\u70b9\u3002\u8bf7\u52a1\u5fc5\u5e7f\u64ad\u3002\u8868\u660e\u6211\u4eec\u5728\u8ddf\uff0c\u6211\u4eec\u5728\u89e3\u51b3\uff0c\u6240\u6709\u4e8b\u60c5\u90fd\u5728\u638c\u63e1\u4e2d\uff0c\u522b\u6015\uff0c\u522b\u614c\u3002"),(0,a.yg)("h3",{id:"\u6ca1\u6709\u9884\u89c1\u6027\u4f60\u51ed\u4ec0\u4e48\u664b\u5347"},"\u6ca1\u6709\u9884\u89c1\u6027\u4f60\u51ed\u4ec0\u4e48\u664b\u5347"),(0,a.yg)("h4",{id:"\u4ec0\u4e48\u662f\u9884\u89c1\u6027"},"\u4ec0\u4e48\u662f\u9884\u89c1\u6027\uff1f"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"\u5e02\u573a\u7ade\u4e89\u6001\u52bf\u7684\u9884\u89c1\u6027\u3002",(0,a.yg)("ol",{parentName:"li"},(0,a.yg)("li",{parentName:"ol"},"\u6709\u6ca1\u6709\u5bf9\u5e02\u573a\u5927\u52bf\u6709\u4e00\u5b9a\u9884\u89c1\u6027\uff1f"),(0,a.yg)("li",{parentName:"ol"},"\u662f\u4e0d\u662f\u65f6\u523b\u5728\u5173\u6ce8\u7740\u53cb\u5546\u3001\u7ade\u54c1\u548c\u884c\u4e1a\u52a8\u6001\uff1f"),(0,a.yg)("li",{parentName:"ol"},"\u80fd\u4e0d\u80fd\u5bf9\u4e1a\u52a1\u505a\u51fa\u6709\u524d\u77bb\u6027\u7684\u9884\u6d4b\uff1f"),(0,a.yg)("li",{parentName:"ol"},"\u4e3e\u4f8b\uff1a\u672c\u5730\u751f\u6d3b\u670d\u52a1\u5e02\u573a\uff0c\u5927\u7684\u5e02\u573a\u53d8\u5316\u8d8b\u52bf\u662f\uff0c\u70b9\u8bc4\u2014>\u56e2\u8d2d\u2014>\u5916\u5356\u2014>\u4e70\u5355\u548c\u4e0b\u7801\u2014>\u94fa\u673a\u5177\u6784\u7b51IoT\u58c1\u5792\u2014>\u5207ERP\u2014>\u5e26\u8d27\u548c\u4fdd\u7406\u2026\u2026"))),(0,a.yg)("li",{parentName:"ol"},"\u4e1a\u52a1\u4e0a\u7684\u9884\u89c1\u6027\u3002",(0,a.yg)("ol",{parentName:"li"},(0,a.yg)("li",{parentName:"ol"},"\u9700\u6c42\u65b9\u8bf4\u4ec0\u4e48\u5c31\u662f\u4ec0\u4e48\u5417\uff1f"),(0,a.yg)("li",{parentName:"ol"},"\u4ea7\u54c1\u8bbe\u8ba1\u6210\u4ec0\u4e48\u6837\u5c31\u505a\u6210\u4ec0\u4e48\u6837\u5417\uff1f"),(0,a.yg)("li",{parentName:"ol"},"\u4e00\u5207\u90fd\u662f\u987a\u6c34\u63a8\u821f\u5417\uff1f"),(0,a.yg)("li",{parentName:"ol"},"\u4f60\u6709\u6ca1\u6709\u529b\u6392\u4f17\u8bae\uff0c\u63d0\u51fa\u81ea\u5df1\u7684\u89c2\u70b9\u548c\u65b9\u6848\uff0c\u800c\u4e14\u6700\u540e\u4e8b\u5b9e\u8bc1\u660e\u4f60\u8bf4\u7684\u505a\u7684\u662f\u5bf9\u7684\uff1f"))),(0,a.yg)("li",{parentName:"ol"},"\u6280\u672f\u4e0a\u7684\u9884\u89c1\u6027\u3002")),(0,a.yg)("p",null,"\u9996\u5148\uff0c\u6280\u672f\u9886\u57df\u77ac\u606f\u4e07\u53d8\uff0c\u6628\u5929\u7684\u6280\u672f\u65b0\u8d8b\u52bf\uff0c\u660e\u5929\u5c31\u6210\u4e3a\u884c\u4e1a\u6807\u6746\u7684\u6807\u51c6\u89e3\u51b3\u65b9\u6848\u3002\u4f4e\u5934\u62c9\u8f66\u4e4b\u4f59\uff0c\u5fc5\u987b\u62ac\u5934\u770b\u8def\u3002Docker\u4ece2014\u5e74\u7684\u5fae\u70ed\uff0c\u52302015\u30012016\u5e74\u4e00\u7ebf\u4e92\u8054\u7f51\u516c\u53f8\u7684\u6807\u914d\uff0c\u4ec5\u4ec5\u4e00\u4e24\u5e74\u65f6\u95f4\u3002\n\u5176\u6b21\uff0c\u5355\u4e00\u6280\u672f\u8d8b\u52bf\uff0c\u5e76\u4e0d\u80fd\u627f\u8f7d\u4e2d\u5927\u578b\u56e2\u961f\uff0c\u4e0d\u80fd\u627f\u8f7d\u5267\u70c8\u53d8\u5316\u7684\u4e1a\u52a1\uff0c\u6211\u4eec\u5bf9\u6b64\u9700\u8981\u6709\u4e00\u4e2a\u57fa\u672c\u7684\u5224\u65ad\u3002\u6bd4\u5982\u8bf4\u5fae\u670d\u52a1\u7684\u524d\u63d0\u662fDocker\u5bb9\u5668\u5316\u3001\u670d\u52a1\u8def\u7531\u548c\u5e73\u53f0\u81ea\u52a8\u5316\u3002Docker\u96c6\u7fa4\u7f16\u6392+\u7814\u53d1\u534f\u4f5c\u53ef\u89c6\u5316+\u8fd0\u7ef4\u81ea\u52a8\u5316+API\u7f51\u5173+\u5fae\u670d\u52a1\uff0c\u624d\u8c08\u5f97\u4e0a\u53ef\u8d1f\u91cd\u524d\u884c\u3002\n\u518d\u6b21\uff0c\u5f53\u4e1a\u52a1\u4ece\u96f6\u5230\u4e00\u7684\u65f6\u5019\uff0c\u6211\u4eec\u9700\u8981\u6709\u4e00\u5b9a\u7684\u9884\u89c1\u6027\uff0c\u8d70\u4e00\u6b65\u770b\u4e24\u6b65\u3002\n\u4e3e\u4f8b\uff1a\u4e1a\u52a1\u521a\u5f00\u59cb\u8bd5\u70b9\u7684\u65f6\u5019\uff0c\u6211\u5c31\u9884\u89c1\u5230IoT\u673a\u5177\u94fa\u8bbe\u5728\u5168\u56fd\u5404\u5730\uff0c\u6240\u6709\u95ee\u9898\u90fd\u5c06\u7531\u6211\u4eec\u515c\u5e95\uff0c\u6240\u4ee5\u5fc5\u987b\u4ee5\u6700\u5feb\u901f\u5ea6\u5efa\u8bbe\u4e00\u4e2a\u5f3a\u5927\u7684\u8bbe\u5907\u5f3a\u7ba1\u63a7\u8fd0\u7ef4\u7ba1\u7406\u5e73\u53f0\uff0c\u5b83\u5c06\u662f\u5927\u4e2d\u53f0\u4f53\u7cfb\u7684\u91cd\u8981\u7ec4\u6210\u90e8\u5206\u3002\n\u4e3e\u4f8b\uff1a\u968f\u7740\u4e1a\u52a1\u7684\u6df1\u5165\uff0c\u6211\u9884\u89c1\u5230\u7531\u4e8e\u673a\u5177\u7684\u5404\u79cd\u4e1a\u52a1\u65b9\u90fd\u4f1a\u7ed9\u673a\u5177\u4e0b\u53d1\u6307\u4ee4\uff08\u4e0a\u884c\u548c\u4e0b\u884c\uff09\uff0c\u6bd4\u5982\u652f\u4ed8\u6210\u529f\u8bed\u97f3\u64ad\u62a5\uff0c\u6bd4\u5982\u5e94\u7528\u7248\u672c\u5206\u53d1\uff0c\u6bd4\u5982\u5feb\u901f\u6539\u53d8\u673a\u5177\u4e0aApp\u5185\u90e8\u72b6\u6001\uff0c\u4e1a\u52a1\u65b9\u4e0d\u5173\u5fc3\u4e5f\u4e0d\u9700\u8981\u5173\u5fc3\u673a\u5177\u5728\u4e0d\u5728\u7ebf\uff0c\u6240\u4ee5\u6211\u51b3\u5b9a\u5c3d\u5feb\u5f15\u5165\u8bbe\u5907\u5f71\u5b50\uff0c\u5728\u4e1a\u52a1\u65b9\u8fd8\u4e0d\u8db3\u591f\u591a\u7684\u65f6\u5019\u4e00\u52b3\u6c38\u9038\u5730\u89e3\u51b3\u8fd9\u4e2a\u95ee\u9898\u3002\n\u505a\u6280\u672f\u5343\u4e07\u4e0d\u8981\u811a\u8e29\u897f\u74dc\u76ae\uff0c\u6ed1\u5230\u54ea\u91cc\u7b97\u54ea\u91cc\u3002"),(0,a.yg)("h3",{id:"\u6211\u53f8\u7814\u53d1\u6587\u5316"},"\u6211\u53f8\u7814\u53d1\u6587\u5316="),(0,a.yg)("p",null,"\u7814\u53d1\u54f2\u5b66\uff08Don't make me think/If it hurts, do it more and often/\u8fd9\u4e2a\u4e16\u754c\u4ece\u6765\u6ca1\u6709\u4ec0\u4e48\u6551\u4e16\u4e3b/\u6ca1\u6709\u82e6\u52b3\u53ea\u6709\u529f\u52b3/\u4e00\u5b9a\u8981\u6709\u540e\u5907\u65b9\u6848\uff09\n+\u7814\u53d1\u4e09\u5faa\u73af\u65b9\u6cd5\u8bba\uff08\u7814\u53d1\u80fd\u529b/\u7814\u53d1\u6548\u7387/\u7814\u53d1\u6d3b\u529b\uff09\n+\u7814\u53d1\u4e09\u677f\u65a7\uff08RCA/\u6280\u672f\u5206\u4eab\u8bb2\u5ea7/\u6280\u672f\u9884\u7814\u8bfe\u9898\uff09\n\u6bcf\u4e00\u4e2a\u7814\u53d1\u7ec4\u7ec7\u90fd\u5fc5\u987b\u60f3\u7740\u5ff5\u7740\u505a\u7740\u3002"),(0,a.yg)("h3",{id:"dont-make-me-think"},"Don't make me think"),(0,a.yg)("p",null,"\u5927\u5bb6\u90fd\u77e5\u9053\uff0c\u6280\u672f\u4eba\u5458\u4ece\u4e8b\u7684\u662f\u521b\u9020\u6027\u5de5\u4f5c\uff0c\u52a0\u4e4b\u662f\u5355\u6838\u5904\u7406\u5668\uff0c\u6211\u4eec\u7684\u4e0a\u4e0b\u6587\u5207\u6362\u975e\u5e38\u56f0\u96be\uff0c\u88ab\u6253\u65ad\u540e\u4ece\u65b0\u8fdb\u5165\u201c\u795e\u6e38\u201d\u72b6\u6001\u5f80\u5f80\u9700\u8981\u5341\u51e0\u5206\u949f\u3002\u5c24\u5176\u662f\u7814\u53d1\u7ecf\u7406\uff0c\u627f\u62c5\u66f4\u591a\u7684\u8d23\u4efb\uff0c\u7ebf\u4e0a\u7ebf\u4e0b\u7684\u95ee\u9898\u90fd\u8981\u7167\u987e\u5230\uff0c\u8fd8\u8981\u89e3\u7b54\u5185\u5916\u7684\u5404\u79cd\u54a8\u8be2\uff0c\u5de5\u4f5c\u65f6\u95f4\u788e\u7247\u5316\u4e25\u91cd\u3002\u6211\u4eec\uff08\u5305\u62ec\u7cfb\u7edf\uff09\u7ed9\u51fa\u7684\u4fe1\u606f\uff0c\u4e00\u5b9a\u8981\u8db3\u591f\u7b80\u7ec3\uff0c\u4e00\u76ee\u4e86\u7136\uff0c\u8ba9\u4eba\u5f88\u5bb9\u6613\u514b\u670d\u7126\u8e81\u60c5\u7eea\uff0c\u556a\u556a\u5730\u5c31\u5904\u7406\u4e86\uff0c\u6216\u8005\u556a\u556a\u5730\u4e8c\u6b21\u5206\u53d1\u51fa\u53bb\u3002\xa0\u4e0d\u8981\u8ba9\u65e0\u7528\u7684\u4fe1\u606f\u6298\u78e8\u8fd9\u4e9b\u4eba\u3002"),(0,a.yg)("p",null,"\u5176\u6b21\uff0c\u6280\u672f\u4eba\u5458\u662f\u201c\u4e16\u754c\u201d\u7684\u6784\u5efa\u8005\uff0c\u4e0d\u5f97\u4e0d\u505a\u5927\u91cf\u7410\u788e\u4e14\u67af\u71e5\u7684\u5de5\u4f5c\uff0c\u5176\u4e2d\uff0c\u76f8\u5f53\u5927\u6bd4\u4f8b\u7684\u5de5\u4f5c\u662f\u91cd\u590d\u6027\u7684\uff0c\u5982\u4fee\u6539\u914d\u7f6e\u6587\u4ef6\u9002\u914d\u4e0d\u540c\u73af\u5883\uff0c\u5982\u6253\u5305\u3002\n\u91cd\u590d\u7684\u5de5\u4f5c\u4e00\u65b9\u9762\u5bb9\u6613\u51fa\u9519\uff0c\u5c24\u5176\u662f\u5728\u901a\u5bb5\u4e0a\u7ebf\u65f6\uff0c\u53e6\u4e00\u65b9\u9762\u6d88\u78e8\u4eba\u7684\u8010\u5fc3\u548c\u6597\u5fd7\u3002 \u6211\u5728\u300a\u804c\u573a\u57f9\u8bad\u7b2c\u4e94\u671f\uff1a\u804c\u573a\u7684\u771f\u76f8\u300b\u4e2d\u8bb2\u8fc7\u89e3\u9898\u601d\u8def\uff1a\u300e",(0,a.yg)("strong",{parentName:"p"},"\u8981\u6452\u5f03\u5355\u7eaf\u4f9d\u9760\u5458\u5de5\u4e4b\u95f4\u4e92\u76f8\u63d0\u9192\u3001\u4f9d\u9760\u4e2a\u4eba\u8ba4\u771f\u7ec6\u81f4\u6765\u89c4\u907f\u76f8\u540c\u9519\u8bef\u7684\u56fa\u6709\u601d\u8def\uff0c\u94c1\u6253\u8425\u76d8\u6d41\u6c34\u5175\uff0c\u9760\u4eba\u7ec8\u5f52\u662f\u9760\u4e0d\u4f4f\u7684\uff0c\u6700\u597d\u9760\u9075\u5faa\u89c4\u5219\u7684\u673a\u5668"),"\u300f\u3002\n\u738b\u6dee\u5728\u300a\u4ee5 Facebook \u4e3a\u6848\u4f8b\u5256\u6790\u79d1\u6280\u516c\u53f8\u5e94\u6709\u7684\u5de5\u5177\u6587\u5316\u300b\u4e00\u6587\u4e2d\u8c08\u53ca\uff0c\u57fa\u672c\u7406\u5ff5\u5c31\u662f",(0,a.yg)("strong",{parentName:"p"},'\u51e1\u662f\u88ab\u5f88\u591a\u4eba\u4e0d\u65ad\u91cd\u590d\u7684\u597d\u4e60\u60ef\uff0c\u8981\u5c06\u5176\u81ea\u52a8\u5316\uff0c\u7ed1\u5b9a\u5230\u5de5\u5177\u4e4b\u4e2d\uff0c\u4ee5"Don\'t make me think"\u7684\u65b9\u5f0f\u6765\u63a8\u5e7f\u6700\u4f73\u5b9e\u8df5\uff08best practice\uff09'),"\u3002"),(0,a.yg)("p",null,"\u57fa\u4e8e\u4ee5\u4e0a\u539f\u56e0\uff0c\u6211\u4eec\u8ba4\u4e3a\uff0c",(0,a.yg)("strong",{parentName:"p"},"\u51e1\u662f\u88ab\u4e0d\u65ad\u91cd\u590d\u7684\u8fc7\u7a0b\uff0c\u5c06\u5176\u5de5\u5177\u5316\uff0c\u7ed1\u5b9a\u5230\u81ea\u52a8\u5316\u6d41\u7a0b\u4e4b\u4e2d\uff0c\u51cf\u5c11\u4e0d\u5fc5\u8981\u7684\u5fc3\u667a\u8d1f\u62c5"),"\u3002\n\u8fd9\u4e5f\u5c31\u662f\u8fc7\u53bb\u51e0\u5e74\u91cc\u6211\u4eec\u4e00\u5b63\u5b63\u5730\u63a8\u8fdb\u6301\u7eed\u96c6\u6210\uff08Continuous Integration\uff0cCI\uff09\u7684\u539f\u56e0\uff0c\u628a\u6211\u4eec\u7684\u7ecf\u9a8c\u6559\u8bad\u53d8\u6210\u53ef\u91cd\u590d\u7684\u89c4\u5219\uff0c\u878d\u5165\u5de5\u5177\u4e2d\uff0c\u878d\u5165\u81ea\u52a8\u5316\u6d41\u7a0b\u4e2d\uff0c\u800c\u4e0d\u662f\u4e00\u4ee3\u4e00\u4ee3\u53e3\u53e3\u76f8\u4f20\u3002"),(0,a.yg)("p",null,"\u597d\u4e86\uff0c\u5728\u4e3e\u5177\u4f53\u7684\u4f8b\u5b50\u4e4b\u524d\uff0c\u8ba9\u6211\u4eec\u5927\u58f0\u8bfb\u51fa\u8fd9\u51e0\u6761 Slogan\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"Don't make me think!"),(0,a.yg)("li",{parentName:"ul"},"\u51cf\u5c11\u4e0d\u5fc5\u8981\u7684\u5fc3\u667a\u8d1f\u62c5\uff01")),(0,a.yg)("h3",{id:"if-it-hurts-do-it-more-and-often"},"If it hurts, do it more and often"),(0,a.yg)("p",null,"\u6211\u4eec\u4e0d\u80fd\u6b7b\u4e8e\u542c\u5929\u7531\u547d\u548c\u6f2b\u4e0d\u7ecf\u5fc3\u3002\n\u5de5\u7a0b\u5e08\u4e3a\u4ec0\u4e48\u4f1a\u542c\u5929\u7531\u547d\uff1f"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u56e0\u4e3a\u7ebf\u4e0a\u65e5\u5fd7\u91cc\u7684\u5f02\u5e38\u5b9e\u5728\u662f\u592a\u591a\u4e86\uff0c\u5904\u7406\u4e0d\u8fc7\u6765\u3002",(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},"\u56e0\u4e3a\u5f02\u5e38\u592a\u591a\u4e86\uff0c\u6df9\u6ca1\u4e86\u81f4\u547d\u5f02\u5e38\uff0c\u4ee5\u81f3\u4e8e\u670d\u52a1\u6302\u5f97\u6b7b\u6b7b\u7684\u624d\u53d1\u73b0\u95ee\u9898\u5df2\u7ecf\u5b58\u5728N\u4e45\u4e86\u3002"))),(0,a.yg)("li",{parentName:"ul"},"\u56e0\u4e3a\u660e\u5929\u5c31\u8981\u63d0\u6d4b\u4e86\uff0c\u4ee3\u7801\u5408\u5e76\u51b2\u7a81\u8fd8\u6709\u51e0\u5343\u4e2a\u3002",(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},"\u6bcf\u5230\u5e38\u89c4\u7248\u672c\u63d0\u6d4b\u65f6\u5c31\u5fc3\u91cc\u6253\u9f13\uff0c\u5408\u5e76\u4e2a\u4ee3\u7801\u90fd\u5f97\u9884\u7559\u4e24\u5929\u65f6\u95f4\u3002"))),(0,a.yg)("li",{parentName:"ul"},"\u56e0\u4e3a\u753b\u65f6\u5e8f\u56fe\u597d\u70e6\uff0c\u6240\u4ee5\u590d\u6742\u7cfb\u7edf\u7684\u6570\u636e\u6d41\u8f6c\u9760\u201c\u5fc3\u7b97\u201d\u3001\u9760\u6587\u5b57\u63cf\u8ff0\u3002",(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},"\u4eba\u8111\u5bb9\u6613\u6709\u601d\u7ef4\u6b7b\u89d2\uff0c\u4e00\u4e2a\u8003\u8651\u4e0d\u5230\uff0c\u7cfb\u7edf\u5c31\u9632\u4e0d\u4f4f\u5e76\u53d1\u63d0\u4ea4\u548c\u91cd\u590d\u63d0\u4ea4\u3002"))),(0,a.yg)("li",{parentName:"ul"},"\u2026\u2026")),(0,a.yg)("p",null,"\u56e0\u4e3a\u5df2\u7136\u96c6\u814b\u6210\u88d8\uff0c\u6240\u4ee5\u505a\u4e8b\u524d\u6211\u4eec\u5404\u79cd\u7ea0\u7ed3\u548c\u62b5\u89e6\uff0c\u4e8e\u662f\u627e\u5404\u79cd\u7406\u7531\u62d6\u5ef6\u3002\n\u600e\u4e48\u529e\uff1f\n\u6211\u5728\u300a\u804c\u4e1a\u5316\u76847\u4e2a\u7ec6\u8282\u300b\u91cc\u8bb2\u5230\uff0c \u5982\u679c\u4e00\u4ef6\u4e8b\u505a\u8d77\u6765\u5f88\u70e6\uff0c\u90a3\u5c31\u628a\u5b83\u62c6\u6210\u5f88\u591a\u5757\u513f\uff0c\u6bcf\u5929\u505a\u4e00\u70b9\uff0c\u6bcf\u6b21\u505a\u4e00\u70b9\u3002"),(0,a.yg)("h3",{id:"\u8fd9\u4e2a\u4e16\u754c\u4ece\u6765\u6ca1\u6709\u4ec0\u4e48\u6551\u4e16\u4e3b"},"\u8fd9\u4e2a\u4e16\u754c\u4ece\u6765\u6ca1\u6709\u4ec0\u4e48\u6551\u4e16\u4e3b"),(0,a.yg)("p",null,"\u8fd9\u4e2a\u54f2\u5b66\u6211\u8fc7\u53bb\u51e0\u5e74\u91cc\u4e00\u800c\u518d\u518d\u800c\u4e09\u5730\u8bb2\u3002\u5728\u300a\u804c\u4e1a\u57f9\u8bad\u7b2c\u4e94\u671f\uff1a\u804c\u573a\u7684\u771f\u76f8\u300b\u4e2d\uff0c\u6211\u8bf4\uff1a\u8fc7\u53bb\u51e0\u5e74\u91cc\uff0c\u6211\u4eec\u6df1\u6df1\u5730\u4f53\u4f1a\u5230\uff0c\u4ece\u6765\u5c31\u6ca1\u6709\u4ec0\u4e48\u6551\u4e16\u4e3b\uff0c\u8981\u521b\u9020\u4eba\u7c7b\u7684\u5e78\u798f\u5168\u9760\u6211\u4eec\u81ea\u5df1\uff0c\u4e0d\u8981\u6307\u671b\u6709\u4ec0\u4e48\u4eba\u80fd\u6551\u6211\u4eec\uff0c\u53ea\u80fd\u7ede\u5c3d\u8111\u6c41\u95ef\u9635\u3002"),(0,a.yg)("p",null,"\u4e3a\u4ec0\u4e48\uff1f\n\u6280\u672f\u56e2\u961f\u662f\u4e92\u8054\u7f51\u516c\u53f8\u91cc\u6700\u8ba4\u771f\u6700\u4e13\u4e1a\u6700\u5b9e\u64cd\u6700\u9760\u8c31\u7684\u4e00\u7fa4\u4eba\uff0c\u5982\u679c\u6211\u4eec\u51e1\u4e8b\u90fd\u8981\u6307\u671b\u522b\u4eba\u7ed9\u6211\u4eec\u89e3\u51b3\u65b9\u6848\u548c\u601d\u8def\uff0c\u6307\u671b\u522b\u4eba\u6bd4\u6211\u4eec\u66f4\u8ba4\u771f\uff0c\u90a3\u8fd9\u4e2a\u516c\u53f8\u5c31\u5371\u5728\u65e6\u5915\u4e86\u3002\n\u6240\u4ee5\uff0c\u6211\u57282012\u5e74\u7684\u98de\u884c\u7814\u8ba8\u4f1a\u4e0a\u629b\u51fa\u4e24\u4e2a Slogan\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u629b\u6389\u5e7b\u60f3\uff0c\u52c7\u6562\u9762\u5bf9\uff01"),(0,a.yg)("li",{parentName:"ul"},"\u76f4\u9762\u767d\u5203\u6218\uff01")),(0,a.yg)("p",null,"\u57fa\u4e8e\u8fd9\u4e2a\u54f2\u5b66\uff0c\u6211\u4eec\u884d\u751f\u51fa\u4e24\u4e2a Slogan\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u4e0d\u8981\u7b49\u6b7b\uff01"),(0,a.yg)("li",{parentName:"ul"},"\u5411\u524d\u8fc8\u534a\u6b65\u5bf9\u63a5\uff01")),(0,a.yg)("h3",{id:"\u4e00\u5b9a\u8981\u6709\u540e\u5907\u65b9\u6848"},"\u4e00\u5b9a\u8981\u6709\u540e\u5907\u65b9\u6848"),(0,a.yg)("p",null,"\u707e\u96be\uff0c\u603b\u662f\u5728\u4f60\u610f\u6599\u4e4b\u5916\u3002\n\u4e00\u4e2a\u540e\u5907\u65b9\u6848\uff0c\n\u6700\u540e\u4e00\u6761\u8ba9\u4f60\u8d77\u6b7b\u56de\u751f\u7684\u8def\u3002"),(0,a.yg)("p",null,"\u65e9\u5e74\u95f4\uff0c\u4faf\u5c0f\u5f3a\u66fe\u7ecf\u8bf4\u8fc7\uff1a \u5982\u679c\u4f60\u5728\u804c\u573a\uff0c\u9700\u8981\u6709\u4e09\u4e2a\u597d\u4e60\u60ef\uff0c1\uff0c\u80fd\u9a6c\u4e0a\u505a\u7684\u4e8b\u60c5\u9a6c\u4e0a\u505a\u30022\uff0c\u6bcf\u4e2a\u4e8b\u60c5\u8981\u6709\u59cb\u6709\u7ec8\u30023\uff0c\u8981\u6709\u8fd9\u4e2a\u4e60\u60ef\u601d\u7ef4\uff0c\u6ca1\u6709\u82e6\u52b3\uff0c\u53ea\u6709\u529f\u52b3\u3002\u4f46\u5982\u679c\u6ca1\u6709\u6781\u5176\u52aa\u529b\uff0c\u901a\u5e38\u4e5f\u4e0d\u4f1a\u6709\u529f\u52b3\u3002\n\u5ef6\u7eed\u7740\u8fd9\u4e2a\u601d\u7ef4\uff0c\u6211\u4eec\u8fc7\u53bb\u51e0\u5e74\u91cc\u53cd\u590d\u5f3a\u8c03\uff1a",(0,a.yg)("strong",{parentName:"p"},"\u6ca1\u6709\u7ed3\u679c\u5c31\u6ca1\u6709\u610f\u4e49"),"\u3002\u4e0d\u8981\u671f\u671b\u516c\u53f8\u56e0\u4e3a\u4f60\u548c\u5c0f\u4f19\u4f34\u4eec\u6709\u82e6\u52b3\u800c\u5bbd\u5bb9\u4f60\u4eec\u6ca1\u6709\u4ea7\u51fa\uff0c\u8fd9\u662f\u4e00\u4e2a\u5546\u4e1a\u516c\u53f8\u3002"),(0,a.yg)("h3",{id:"devops-\u65b0\u516b\u8363\u516b\u803b\u6bcf\u4e00\u6761\u90fd\u662f\u8840\u8089\u957f\u57ce"},"DevOps \u65b0\u516b\u8363\u516b\u803b\uff0c\u6bcf\u4e00\u6761\u90fd\u662f\u8840\u8089\u957f\u57ce"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"\u4ee5\u968f\u65f6\u53ef\u6269\u5bb9\u3001\u53ef\u7f29\u5bb9\u3001\u53ef\u91cd\u542f\u3001\u53ef\u5207\u6362\u673a\u623f\u6d41\u91cf\u4e3a\u8363\uff0c\u4ee5\u4e0d\u80fd\u8fc1\u79fb\u4e3a\u803b\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u4ee5\u53ef\u914d\u7f6e\u4e3a\u8363\uff0c\u4ee5\u786c\u7f16\u7801\u4e3a\u803b\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u4ee5\u7cfb\u7edf\u4e92\u5907\u4e3a\u8363\uff0c\u4ee5\u7cfb\u7edf\u5355\u70b9\u4e3a\u803b\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u4ee5\u4ea4\u4ed8\u65f6\u6709\u76d1\u63a7\u62a5\u8b66\u4e3a\u8363\uff0c\u4ee5\u4ea4\u4ed8\u88f8\u5954\u7cfb\u7edf\u4e3a\u803b\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u4ee5\u65e0\u72b6\u6001\u4e3a\u8363\uff0c\u4ee5\u6709\u72b6\u6001\u4e3a\u803b\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u4ee5\u6807\u51c6\u5316\u4e3a\u8363\uff0c\u4ee5\u7279\u6b8a\u5316\u4e3a\u803b\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u4ee5\u81ea\u52a8\u5316\u5de5\u5177\u4e3a\u8363\uff0c\u4ee5\u4eba\u8089\u64cd\u4f5c\u4e3a\u803b\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u4ee5\u65e0\u4eba\u503c\u5b88\u4e3a\u8363\uff0c\u4ee5\u4eba\u5de5\u4ecb\u5165\u4e3a\u803b\u3002")),(0,a.yg)("h3",{id:"\u6838\u5fc3\u4e1a\u52a1\u6d41\u7a0b\u7684\u6545\u969c\u5904\u7406\u539f\u5219\u4e0d\u53ef\u604b\u6218"},"\u6838\u5fc3\u4e1a\u52a1\u6d41\u7a0b\u7684\u6545\u969c\u5904\u7406\u539f\u5219\uff1a\u4e0d\u53ef\u604b\u6218"),(0,a.yg)("p",null,"\u7b2c\u4e00\u65f6\u95f4\u53eb\u591a\u4eba\u4e00\u8d77\u5206\u5934\u67e5\uff1a\u67e5\u673a\u623f\uff0c\u67e5\u6d41\u91cf\uff0c\u67e5\u5e94\u7528\u6027\u80fd\uff0c\u67e5\u6570\u636e\u5e93\uff0c\u67e5Redis\u3002\n\u5982\u679c\u8fdf\u8fdf\u5b9a\u4f4d\u4e0d\u4e86\u95ee\u9898\uff08\u6bd4\u5982\u5341\u5206\u949f\u4e4b\u5185\uff09\uff0c\u5c31\u4e0d\u53ef\u604b\u6218\uff0c\u5fc5\u987b\u6062\u590d\u4e1a\u52a1\uff08\u4e09\u677f\u65a7\uff09\uff1a\n\u7b2c\u4e00\u62db\u91cd\u542f\u5e94\u7528\uff0c\n\u7b2c\u4e8c\u62db\u56de\u9000\u7248\u672c\uff0c\n\u6700\u540e\u4e00\u62db\u662f\u5f02\u5730\u591a\u6d3b\u5207\u673a\u623f\u6d41\u91cf\uff0c\u628a\u53d7\u5f71\u54cd\u7684\u5546\u6237\u5207\u5230\u53e6\u4e00\u4e2a\u673a\u623f\u7684\u5355\u5143\u683c\u91cc\u3002\n\u5343\u4e07\u522b\u5728\u5b9a\u4f4d\u95ee\u9898\u4e0a\u82b1\u592a\u591a\u65f6\u95f4\u3002"),(0,a.yg)("h3",{id:"\u5f53\u6211\u4eec\u8c08\u91cd\u6784\u7684\u65f6\u5019\u6211\u4eec\u60f3\u8c08\u4ec0\u4e48"},"\u5f53\u6211\u4eec\u8c08\u91cd\u6784\u7684\u65f6\u5019\u6211\u4eec\u60f3\u8c08\u4ec0\u4e48"),(0,a.yg)("p",null,"\u5982\u679c\u4f60\u5728\u7e41\u5fd9\u7684\u4e1a\u52a1\u8fed\u4ee3\u4e2d\u5f00\u59cb\u7cfb\u7edf\u91cd\u6784\uff0c\u606d\u559c\u4f60\uff0c\u8bf4\u660e\u4f60\u7684\u4e1a\u52a1\u5df2\u7ecf\u5b8c\u6210\u4e86\u4ece0\u52301\uff0c\u6b63\u5728\u4ece1\u8d70\u541110\uff0c\u6216\u8005\u4ece10\u8d70\u5411100\u3002"),(0,a.yg)("p",null,(0,a.yg)("strong",{parentName:"p"},"\u4e24\u4e2a\u201c\u662f\u5426\u6709\u5229\u4e8e\u201d\uff1a"),"\n",(0,a.yg)("strong",{parentName:"p"},"\u4e00\uff0c\u662f\u5426\u6709\u5229\u4e8e\u53d1\u5e03\u90e8\u7f72\u3002"),"\n",(0,a.yg)("strong",{parentName:"p"},"\u4e8c\uff0c\u662f\u5426\u6709\u5229\u4e8e\u6392\u9664\u6545\u969c\uff08\u662f\u5426\u6709\u5229\u4e8e\u5feb\u901f\u5b9a\u4f4d\u95ee\u9898\u548c\u89e3\u51b3\u95ee\u9898\uff09\u3002")),(0,a.yg)("p",null,"\xa0\n",(0,a.yg)("strong",{parentName:"p"},"\u4e24\u4e2a\u6212\u5f8b\uff1a"),"\n",(0,a.yg)("strong",{parentName:"p"},"\u6212\u5f8b\u4e00\uff1a\u51e1\u662f\u4e2d\u95f4\u4ef6\uff0c\u4e0d\u7ba1\u662f\u81ea\u4e3b\u5f00\u53d1\u7684\uff0c\u8fd8\u662f\u4ee5\u5f00\u6e90\u8f6f\u4ef6\u4e3a\u5185\u6838\u6784\u5efa\u51fa\u6765\u7684\uff0c\u90fd\u5fc5\u987b\u81ea\u5e26\u76d1\u63a7\u62a5\u8b66\uff0c\u5426\u5219\u4e0d\u5141\u8bb8\u4e0a\u7ebf\u3002"),"\n",(0,a.yg)("strong",{parentName:"p"},"\u6212\u5f8b\u4e8c\uff1a\u672c\u7740 Don't make me think \u7684\u54f2\u5b66\u601d\u8def\uff0c\u6240\u6709\u5bf9\u6392\u9664\u6545\u969c\u6709\u5e2e\u52a9\u7684\u4fe1\u606f\uff0c\u90fd\u5fc5\u987b\u4e00\u7ad9\u5f0f\u5c55\u793a\u5728\u4ea4\u4e92\u754c\u9762\u4e0a\uff0c\u4e5f\u5c31\u662f\u4e2d\u95f4\u4ef6\u7684\u63a7\u5236\u53f0\u4e0a\uff0c\u6216\u8fd0\u7ef4\u81ea\u52a8\u5316\u5e73\u53f0\u4e0a\uff0c\u6216\u7814\u53d1\u534f\u4f5c\u5e73\u53f0\u4e0a\u3002")),(0,a.yg)("h3",{id:"\u8981\u719f\u7ec3\u638c\u63e1\u7684\u4e03\u4e2a\u4eba\u751f\u5de5\u5177"},"\u8981\u719f\u7ec3\u638c\u63e1\u7684\u4e03\u4e2a\u4eba\u751f\u5de5\u5177"),(0,a.yg)("h4",{id:"\u4e00swot\u5206\u6790\u6cd5"},"\u4e00\u3001SWOT\u5206\u6790\u6cd5\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"Strengths\uff1a\u4f18\u52bf"),(0,a.yg)("li",{parentName:"ul"},"Weaknesses\uff1a\u52a3\u52bf"),(0,a.yg)("li",{parentName:"ul"},"Opportunities\uff1a\u673a\u4f1a"),(0,a.yg)("li",{parentName:"ul"},"Threats\uff1a\u5a01\u80c1"),(0,a.yg)("li",{parentName:"ul"},"\u610f\u4e49\uff1a\u5e2e\u60a8\u6e05\u6670\u5730\u628a\u63e1\u5168\u5c40\uff0c\u5206\u6790\u81ea\u5df1\u5728\u8d44\u6e90\u65b9\u9762\u7684\u4f18\u52bf\u4e0e\u52a3\u52bf\uff0c\u628a\u63e1\u73af\u5883\u63d0\u4f9b\u7684\u673a\u4f1a\uff0c\u9632\u8303\u53ef\u80fd\u5b58\u5728\u7684\u98ce\u9669\u4e0e\u5a01\u80c1\uff0c\u5bf9\u6211\u4eec\u7684\u6210\u529f\u6709\u975e\u5e38\u91cd\u8981\u7684\u610f\u4e49\u3002")),(0,a.yg)("h4",{id:"\u4e8cpdca\u5faa\u73af\u89c4\u5219"},"\u4e8c\u3001PDCA\u5faa\u73af\u89c4\u5219"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"Plan\uff1a\u5236\u5b9a\u76ee\u6807\u4e0e\u8ba1\u5212\uff1b"),(0,a.yg)("li",{parentName:"ul"},"Do\uff1a\u4efb\u52a1\u5c55\u5f00\uff0c\u7ec4\u7ec7\u5b9e\u65bd\uff1b"),(0,a.yg)("li",{parentName:"ul"},"Check\uff1a\u5bf9\u8fc7\u7a0b\u4e2d\u7684\u5173\u952e\u70b9\u548c\u6700\u7ec8\u7ed3\u679c\u8fdb\u884c\u68c0\u67e5\uff1b"),(0,a.yg)("li",{parentName:"ul"},"Action\uff1a\u7ea0\u6b63\u504f\u5dee\uff0c\u5bf9\u6210\u679c\u8fdb\u884c\u6807\u51c6\u5316\uff0c\u5e76\u786e\u5b9a\u65b0\u7684\u76ee\u6807\uff0c\u5236\u5b9a\u4e0b\u4e00\u8f6e\u8ba1\u5212\u3002"),(0,a.yg)("li",{parentName:"ul"},"\u610f\u4e49\uff1a\u6bcf\u4e00\u9879\u5de5\u4f5c\uff0c\u90fd\u662f\u4e00\u4e2apdca\u5faa\u73af\uff0c\u90fd\u9700\u8981\u8ba1\u5212\u3001\u5b9e\u65bd\u3001\u68c0\u67e5\u7ed3\u679c\uff0c\u5e76\u8fdb\u4e00\u6b65\u8fdb\u884c\u6539\u8fdb\uff0c\u540c\u65f6\u8fdb\u5165\u4e0b\u4e00\u4e2a\u5faa\u73af\uff0c\u53ea\u6709\u5728\u65e5\u79ef\u6708\u7d2f\u7684\u6e10\u8fdb\u6539\u5584\u4e2d\uff0c\u624d\u53ef\u80fd\u4f1a\u6709\u8d28\u7684\u98de\u8dc3\uff0c\u624d\u53ef\u80fd\u53d6\u5f97\u5b8c\u5584\u6bcf\u4e00\u9879\u5de5\u4f5c\uff0c\u5b8c\u5584\u81ea\u5df1\u7684\u4eba\u751f\u3002")),(0,a.yg)("h4",{id:"\u4e096w2h\u6cd5"},"\u4e09\u30016W2H\u6cd5"),(0,a.yg)("p",null,"**"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"What\uff1a\u5de5\u4f5c\u7684\u5185\u5bb9\u548c\u8fbe\u6210\u7684\u76ee\u6807\uff1b"),(0,a.yg)("li",{parentName:"ul"},"Why\uff1a\u505a\u8fd9\u9879\u5de5\u4f5c\u7684\u539f\u56e0\uff1b"),(0,a.yg)("li",{parentName:"ul"},"Who\uff1a\u53c2\u52a0\u8fd9\u9879\u5de5\u4f5c\u7684\u5177\u4f53\u4eba\u5458\uff0c\u4ee5\u53ca\u8d1f\u8d23\u4eba\uff1b"),(0,a.yg)("li",{parentName:"ul"},"When\uff1a\u5728\u4ec0\u4e48\u65f6\u95f4\u3001\u4ec0\u4e48\u65f6\u95f4\u6bb5\u8fdb\u884c\u5de5\u4f5c\uff1b"),(0,a.yg)("li",{parentName:"ul"},"Where\uff1a\u5de5\u4f5c\u53d1\u751f\u7684\u5730\u70b9 \uff1b"),(0,a.yg)("li",{parentName:"ul"},"Which\uff1a\u54ea\u4e00\u79cd\u65b9\u6cd5\u6216\u9014\u5f84\uff1b"),(0,a.yg)("li",{parentName:"ul"},"How\uff1a\u7528\u4ec0\u4e48\u65b9\u6cd5\u8fdb\u884c\uff1b"),(0,a.yg)("li",{parentName:"ul"},"How much\uff1a\u9700\u8981\u591a\u5c11\u6210\u672c\uff1f"),(0,a.yg)("li",{parentName:"ul"},"\u610f\u4e49\uff1a\u505a\u4efb\u4f55\u5de5\u4f5c\u90fd\u5e94\u8be5\u4ece6W2H\u6765\u601d\u8003\uff0c\u8fd9\u6709\u52a9\u4e8e\u6211\u4eec\u7684\u601d\u8def\u7684\u6761\u7406\u5316\uff0c\u675c\u7edd\u76f2\u76ee\u6027\u3002\u6211\u4eec\u7684\u6c47\u62a5\u4e5f\u5e94\u8be5\u75286W2H\uff0c\u80fd\u8282\u7ea6\u5199\u62a5\u544a\u53ca\u770b\u62a5\u544a\u7684\u65f6\u95f4\u3002")),(0,a.yg)("h4",{id:"\u56dbsmart\u539f\u5219"},"\u56db\u3001SMART\u539f\u5219"),(0,a.yg)("p",null,"**"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"Specific \u5177\u4f53\u7684\uff1b"),(0,a.yg)("li",{parentName:"ul"},"Measurable \u53ef\u6d4b\u91cf\u7684\uff1b"),(0,a.yg)("li",{parentName:"ul"},"Attainable \u53ef\u8fbe\u5230\u7684\uff1b"),(0,a.yg)("li",{parentName:"ul"},"Relevant \u76f8\u5173\u7684\uff1b"),(0,a.yg)("li",{parentName:"ul"},"Time based \u65f6\u95f4\u7684\uff1b"),(0,a.yg)("li",{parentName:"ul"},"\u610f\u4e49\uff1a\u4eba\u4eec\u5728\u5236\u5b9a\u5de5\u4f5c\u76ee\u6807\u6216\u8005\u4efb\u52a1\u76ee\u6807\u65f6\uff0c\u8003\u8651\u4e00\u4e0b\u76ee\u6807\u4e0e\u8ba1\u5212\u662f\u4e0d\u662fSMART\u5316\u7684\u3002\u53ea\u6709\u5177\u5907SMART\u5316\u7684\u8ba1\u5212\u624d\u662f\u5177\u6709\u826f\u597d\u53ef\u5b9e\u65bd\u6027\u7684\uff0c\u4e5f\u624d\u80fd\u6307\u5bfc\u4fdd\u8bc1\u8ba1\u5212\u5f97\u4ee5\u5b9e\u73b0\u3002"),(0,a.yg)("li",{parentName:"ul"},"\u7279\u522b\u6ce8\u660e\uff1a")),(0,a.yg)("p",null,"\u6709\u7684\u53c8\u5982\u6b64\u89e3\u91ca\u6b64\u539f\u5219\uff1a\n\u2014\u2014S\u4ee3\u8868\u5177\u4f53(Specific)\uff0c\u6307\u7ee9\u6548\u8003\u6838\u8981\u5207\u4e2d\u7279\u5b9a\u7684\u5de5\u4f5c\u6307\u6807\uff0c\u4e0d\u80fd\u7b3c\u7edf\uff1b\n\u2014\u2014M\u4ee3\u8868\u53ef\u5ea6\u91cf(Measurable)\uff0c\u6307\u7ee9\u6548\u6307\u6807\u662f\u6570\u91cf\u5316\u6216\u8005\u884c\u4e3a\u5316\u7684\uff0c\u9a8c\u8bc1\u8fd9\u4e9b\u7ee9\u6548\u6307\u6807\u7684\u6570\u636e\u6216\u8005\u4fe1\u606f\u662f\u53ef\u4ee5\u83b7\u5f97\u7684\uff1b\n\u2014\u2014A\u4ee3\u8868\u53ef\u5b9e\u73b0(Attainable)\uff0c\u6307\u7ee9\u6548\u6307\u6807\u5728\u4ed8\u51fa\u52aa\u529b\u7684\u60c5\u51b5\u4e0b\u53ef\u4ee5\u5b9e\u73b0\uff0c\u907f\u514d\u8bbe\u7acb\u8fc7\u9ad8\u6216\u8fc7\u4f4e\u7684\u76ee\u6807\uff1b\n\u2014\u2014R\u4ee3\u8868\u73b0\u5b9e\u6027(realistic)\uff0c\u6307\u7ee9\u6548\u6307\u6807\u662f\u5b9e\u5b9e\u5728\u5728\u7684\uff0c\u53ef\u4ee5\u8bc1\u660e\u548c\u89c2\u5bdf\uff1b\n\u2014\u2014T\u4ee3\u8868\u6709\u65f6\u9650(time bound)\uff0c\u6ce8\u91cd\u5b8c\u6210\u7ee9\u6548\u6307\u6807\u7684\u7279\u5b9a\u671f\u9650\u3002"),(0,a.yg)("h4",{id:"\u4e94\u65f6\u95f4\u7ba1\u7406-\u91cd\u8981\u4e0e\u7d27\u6025"},"\u4e94\u3001\u65f6\u95f4\u7ba1\u7406-\u91cd\u8981\u4e0e\u7d27\u6025"),(0,a.yg)("p",null,"**"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"A\u3001\u91cd\u8981\u4e14\u7d27\u6025")),(0,a.yg)("p",null,"\u7d27\u6025\u72b6\u51b5\n\u8feb\u5207\u7684\u95ee\u9898\n\u9650\u671f\u5b8c\u6210\u7684\u5de5\u4f5c\n\u4f60\u4e0d\u505a\u5176\u4ed6\u4eba\u4e5f\u4e0d\u80fd\u505a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"B\u3001\u91cd\u8981\u4e0d\u7d27\u6025")),(0,a.yg)("p",null,"\u51c6\u5907\u5de5\u4f5c\n\u9884\u9632\u63aa\u65bd\n\u4ef7\u503c\u89c2\u7684\u6f84\u6e05\n\u8ba1\u5212\n\u4eba\u9645\u5173\u7cfb\u7684\u5efa\u7acb\n\u771f\u6b63\u7684\u518d\u521b\u9020\n\u589e\u8fdb\u81ea\u5df1\u7684\u80fd\u529b"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"C\u3001\u7d27\u6025\u4e0d\u91cd\u8981")),(0,a.yg)("p",null,"\u9020\u6210\u5e72\u6270\u7684\u4e8b\u3001\u7535\u8bdd\u3001\n\u4fe1\u4ef6\u3001\u62a5\u544a\n\u4f1a\u8bae\n\u8bb8\u591a\u8feb\u5728\u7709\u6377\u7684\u6025\u4e8b\n\u7b26\u5408\u522b\u4eba\u671f\u671b\u7684\u4e8b"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"D\u3001\u4e0d\u91cd\u8981\u4e0d\u7d27\u6025")),(0,a.yg)("p",null,"\u5fd9\u788c\u7410\u788e\u7684\u4e8b\n\u5e7f\u544a\u51fd\u4ef6\n\u7535\u8bdd\n\u9003\u907f\u6027\u6d3b\u52a8\n\u7b49\u5f85\u65f6\u95f4\n\u4f18\u5148\u987a\u5e8f=\u91cd\u8981\u6027*\u7d27\u8feb\u6027\n\u5728\u8fdb\u884c\u65f6\u95f4\u5b89\u6392\u65f6\uff0c\u5e94\u6743\u8861\u5404\u79cd\u4e8b\u60c5\u7684\u4f18\u5148\u987a\u5e8f\uff0c\u8981\u5b66\u4f1a\u201c\u5f39\u94a2\u7434\u201d\u3002\n\u5bf9\u5de5\u4f5c\u8981\u6709\u524d\u77bb\u80fd\u529b\uff0c\u9632\u60a3\u4e8e\u672a\u7136\uff0c\u5982\u679c\u603b\u662f\u5728\u5fd9\u4e8e\u6551\u706b\uff0c\u90a3\u5c06\u4f7f\u6211\u4eec\u7684\u5de5\u4f5c\u6c38\u8fdc\u5904\u7406\u88ab\u52a8\u4e4b\u4e2d\u3002\n**"),(0,a.yg)("h4",{id:"\u516d\u4efb\u52a1\u5206\u89e3\u6cd5wbs"},"\u516d\u3001\u4efb\u52a1\u5206\u89e3\u6cd5","[WBS]"),(0,a.yg)("p",null,"\u5373Work Breakdown Structure\uff0c\u5982\u4f55\u8fdb\u884cWBS\u5206\u89e3\uff1a\u76ee\u6807\u2192\u4efb\u52a1\u2192\u5de5\u4f5c\u2192\u6d3b\u52a8\nWBS\u5206\u89e3\u7684\u539f\u5219\uff1a\n\u5c06\u4e3b\u4f53\u76ee\u6807\u9010\u6b65\u7ec6\u5316\u5206\u89e3\uff0c\u6700\u5e95\u5c42\u7684\u4efb\u52a1\u6d3b\u52a8\u53ef\u76f4\u63a5\u5206\u6d3e\u5230\u4e2a\u4eba\u53bb\u5b8c\u6210\uff1b\u6bcf\u4e2a\u4efb\u52a1\u539f\u5219\u4e0a\u8981\u6c42\u5206\u89e3\u5230\u4e0d\u80fd\u518d\u7ec6\u5206\u4e3a\u6b62\u3002\nWBS\u5206\u89e3\u7684\u65b9\u6cd5\uff1a\n\u81f3\u4e0a\u800c\u4e0b\u4e0e\u81f3\u4e0b\u800c\u4e0a\u7684\u5145\u5206\u6c9f\u901a\uff1b\n\u4e00\u5bf9\u4e00\u4e2a\u522b\u4ea4\u6d41\uff1b\n\u5c0f\u7ec4\u8ba8\u8bba\u3002\nWBS\u5206\u89e3\u7684\u6807\u51c6\uff1a\n\u5206\u89e3\u540e\u7684\u6d3b\u52a8\u7ed3\u6784\u6e05\u6670\uff1b\n\u903b\u8f91\u4e0a\u5f62\u6210\u4e00\u4e2a\u5927\u7684\u6d3b\u52a8\uff1b\n\u96c6\u6210\u4e86\u6240\u6709\u7684\u5173\u952e\u56e0\u7d20\u5305\u542b\u4e34\u65f6\u7684\u91cc\u7a0b\u7891\u548c\u76d1\u63a7\u70b9\uff1b\n\u6240\u6709\u6d3b\u52a8\u5168\u90e8\u5b9a\u4e49\u6e05\u695a\u3002\n\u610f\u4e49\uff1a\u5b66\u4f1a\u5206\u89e3\u4efb\u52a1\uff0c\u53ea\u6709\u5c06\u4efb\u52a1\u5206\u89e3\u5f97\u8db3\u591f\u7ec6\uff0c\u60a8\u624d\u80fd\u5fc3\u91cc\u6709\u6570\uff0c\u60a8\u624d\u80fd\u6709\u6761\u4e0d\u7d0a\u5730\u5de5\u4f5c\uff0c\u60a8\u624d\u80fd\u7edf\u7b79\u5b89\u6392\u60a8\u7684\u65f6\u95f4\u8868\u3002\n**"),(0,a.yg)("h4",{id:"\u4e03\u4e8c\u516b\u539f\u5219"},"\u4e03\u3001\u4e8c\u516b\u539f\u5219"),(0,a.yg)("p",null,"\u5df4\u5217\u7279\u5b9a\u5f8b\uff1a\u201c\u603b\u7ed3\u679c\u768480%\u662f\u7531\u603b\u6d88\u8017\u65f6\u95f4\u4e2d\u768420%\u6240\u5f62\u6210\u7684\u3002\u201d\u6309\u4e8b\u60c5\u7684\u201c\u91cd\u8981\u7a0b\u5ea6\u201d\u7f16\u6392\u4e8b\u52a1\u4f18\u5148\u6b21\u5e8f\u7684\u51c6\u5219\u662f\u5efa\u7acb\u5728\u201c\u91cd\u8981\u7684\u5c11\u6570\u4e0e\u7410\u788e\u7684\u591a\u6570\u201d\u7684\u539f\u7406\u7684\u57fa\u7840\u4e0a\u3002\n\u4e3e\u4f8b\u8bf4\u660e\uff1a\n80%\u7684\u9500\u552e\u989d\u662f\u6e90\u81ea20%\u7684\u987e\u5ba2\uff1b\n80%\u7684\u7535\u8bdd\u662f\u6765\u81ea20%\u7684\u670b\u53cb\uff1b\n80%\u7684\u603b\u4ea7\u91cf\u6765\u81ea20%\u7684\u4ea7\u54c1\uff1b\n80%\u7684\u8d22\u5bcc\u96c6\u4e2d\u572820%\u7684\u4eba\u624b\u4e2d\uff1b\n\u8fd9\u542f\u793a\u6211\u4eec\u5728\u5de5\u4f5c\u4e2d\u8981\u5584\u4e8e\u6293\u4e3b\u8981\u77db\u76fe\uff0c\u5584\u4e8e\u4ece\u7eb7\u7e41\u590d\u6742\u7684\u5de5\u4f5c\u4e2d\u7406\u51fa\u5934\u7eea\uff0c\u628a\u8d44\u6e90\u7528\u5728\u6700\u91cd\u8981\u3001\u6700\u7d27\u8feb\u7684\u4e8b\u60c5\u4e0a\u3002"),(0,a.yg)("h3",{id:"\u63d0\u9ad8\u63d0\u6d4b\u8d28\u91cf"},"\u63d0\u9ad8\u63d0\u6d4b\u8d28\u91cf"),(0,a.yg)("p",null,"QA\u7684\u804c\u8d23\u4e0d\u662f\u5f00\u53d1\u5199\u5b8c\u6254\u7ed9\u4eba\u5bb6\u6d4b\u8bd5\uff0c\u8fd9\u662f\u504f\u89c1\uff0c\u4e5f\u662f\u597d\u591a\u5f00\u53d1\u4eba\u5458\u4e00\u76f4\u6709\u7684\u9519\u8bef\u7684\u89c2\u5ff5\uff0cQA \u4e0d\u662f\u7b80\u5355\u7684\u9a8c\u8bc1\u529f\u80fd\u6027\u7684\uff08\u5f53\u7136\u5b58\u5728\u8fd9\u79cdAQ\uff09\uff0cQA\u66f4\u591a\u662f\u9a8c\u8bc1\u7a0b\u5e8f\u7684",(0,a.yg)("strong",{parentName:"p"},"\u5065\u58ee\u6027"),"\u3001",(0,a.yg)("strong",{parentName:"p"},"\u5bb9\u9519\u6027"),"\uff0c\u6240\u4ee5\u5728\u6211\u4eec\u8fd9\u91cc\u5e94\u8be5\u4fdd\u8bc1\u7a0b\u5e8f\u6700\u57fa\u672c\u7684\u529f\u80fd\u6027\u95ee\u9898\uff0c\u51cf\u5c11\u4ee3\u7801\u7684\u56de\u6eaf\uff0c\u8fd9\u6837\u624d\u80fd\u4e0d\u5f71\u54cd\u4ea7\u54c1\u7684\u8fc5\u901f\u8fed\u4ee3\uff0c\u4e0d\u5f71\u54cd\u4ea7\u54c1\u7684\u63a8\u8fdb\u3002"),(0,a.yg)("h3",{id:"\u5148\u5199\u6587\u6863\u518d\u5199\u4ee3\u7801"},"\u5148\u5199\u6587\u6863\u518d\u5199\u4ee3\u7801"),(0,a.yg)("p",null,"\u597d\u591a\u7a0b\u5e8f\u5458\u7684\u901a\u75c5\u5c31\u662f\u62ff\u5230\u9700\u6c42\u5c31\u5f00\u59cb\u5199\u4ee3\u7801\uff0c\u8fd9\u662f\u76f8\u5f53\u7684\u4e0d\u8d1f\u8d23\u4efb\u7684\uff0c\u5f88\u660e\u663e\u8fd9\u79cd\u505a\u6cd5\u6709\u95ee\u9898\u3002\u5e94\u8be5\u5148\u5199\u81ea\u5df1\u7684\u601d\u8def\uff0c\u5982\u679c\u529f\u80fd\u5927\u4e00\u4e9b\uff0c\u8981\u5148\u5199\u65b9\u6848\uff0c\u8bc4\u5ba1\u65b9\u6848\u3002\u601d\u8def\u3001\u65b9\u6848\u6ca1\u6709\u95ee\u9898\u5728\u52a8\u624b\u53bb\u5199\u4ee3\u7801\uff0c\u4f60\u4f1a\u53d1\u73b0\u5751\u4f1a\u5c11\u8e29\u597d\u591a\u3002"),(0,a.yg)("h3",{id:"\u4e00\u4e2a\u7a0b\u5e8f\u5458\u7684\u4ef7\u503c\u662f\u89e3\u51b3\u95ee\u9898\u7684\u80fd\u529b"},"\u4e00\u4e2a\u7a0b\u5e8f\u5458\u7684\u4ef7\u503c\u662f\u89e3\u51b3\u95ee\u9898\u7684\u80fd\u529b"),(0,a.yg)("p",null,"\u6280\u672f\u8d8a\u597d\u89e3\u51b3\u95ee\u9898\u7684\u80fd\u529b\u8d8a\u5f3a\uff0c\u8fd9\u4e2a\u6ca1\u6709\u95ee\u9898\uff0c\u8fd9\u662f\u4e00\u4e2a\u6b63\u5411\u6bd4\u4f8b\u5173\u7cfb\u3002\u4f46\u662f\u89e3\u51b3\u95ee\u9898\u7684\u80fd\u529b\uff0c\u4e0d\u4ec5\u4ec5\u5305\u62ec\u6280\u672f\uff0c\u4e5f\u5305\u62ec\u6c9f\u901a\u3001\u4e1a\u52a1\u7b49\u7b49\u5176\u4ed6\u65b9\u9762\u3002\u5728\u5de5\u4f5c\u4e2d\uff0c\u4e0d\u8981\u4ec5\u4ec5\u7684\u53bb\u5b66\u4e60\u5404\u79cd\u7f16\u7a0b\u6280\u672f\uff0c\u4e5f\u8981\u5b66\u4f1a\u6c9f\u901a\u3001\u4e1a\u52a1\u3002"),(0,a.yg)("h3",{id:"\u6ce8\u610f\u6d41\u7a0b\u89c4\u8303"},"\u6ce8\u610f\u6d41\u7a0b\u3001\u89c4\u8303"),(0,a.yg)("p",null,"\u5c24\u5176\u662f\u7ba1\u7406\u4eba\u5458\u3001\u7ec4\u957f\u3001\u9ad8\u7a0b\uff0c\u4e00\u5b9a\u8981\u4e3b\u8981\u6d41\u7a0b\u548c\u89c4\u8303\uff0c\u6ca1\u6709\u6d41\u7a0b\u548c\u89c4\u8303\u5c31\u662f\u4e00\u7fa4\u4e4c\u5408\u4e4b\u4f17\uff0c\u6ca1\u6709\u4efb\u4f55\u6218\u529b\u53ef\u8a00\u3002\u6709\u4e86\u6d41\u7a0b\u548c\u89c4\u8303\uff0c10\u4e2a\u4eba\u53ef\u4ee5\u505a20\u4e2a\u4eba\u7684\u5de5\u4f5c\uff1b\u6ca1\u6709\u6d41\u7a0b\u548c\u89c4\u8303\uff0c20\u4e2a\u4eba\u9876\u591a\u4e5f\u53ea\u80fd\u505a10\u4e2a\u4eba\u7684\u5de5\u4f5c\uff0c\u4e14\u4e0d\u4f1a\u6709\u4efb\u4f55\u53ef\u7ef4\u62a4\u6027\u3002"))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/397e604e.46cbf351.js b/assets/js/397e604e.3db42bde.js similarity index 98% rename from assets/js/397e604e.46cbf351.js rename to assets/js/397e604e.3db42bde.js index d7d993e64..6d0c5f000 100644 --- a/assets/js/397e604e.46cbf351.js +++ b/assets/js/397e604e.3db42bde.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9304],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var a=n.createContext({}),u=function(e){var t=n.useContext(a),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},s=function(e){var t=u(e.components);return n.createElement(a.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,a=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),p=u(r),y=o,f=p["".concat(a,".").concat(y)]||p[y]||d[y]||i;return r?n.createElement(f,c(c({ref:t},s),{},{components:r})):n.createElement(f,c({ref:t},s))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,c=new Array(i);c[0]=y;var l={};for(var a in t)hasOwnProperty.call(t,a)&&(l[a]=t[a]);l.originalType=e,l[p]="string"==typeof e?e:o,c[1]=l;for(var u=2;u{r.r(t),r.d(t,{assets:()=>a,contentTitle:()=>c,default:()=>d,frontMatter:()=>i,metadata:()=>l,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const i={sidebar_position:5},c="\u7528\u6237\u8bbe\u7f6e",l={unversionedId:"iotcloud/usercenter/user-settings",id:"iotcloud/usercenter/user-settings",title:"\u7528\u6237\u8bbe\u7f6e",description:"\u672c\u6587\u4e3a\u60a8\u4ecb\u7ecd \u7528\u6237\u8bbe\u7f6e \u7684\u57fa\u672c\u6982\u5ff5\u3001\u4f7f\u7528\u6d41\u7a0b\u3001\u6700\u4f73\u5b9e\u8df5\u548c\u4f7f\u7528\u9650\u5236\u3002",source:"@site/docs/iotcloud/usercenter/user-settings.md",sourceDirName:"iotcloud/usercenter",slug:"/iotcloud/usercenter/user-settings",permalink:"/docs/iotcloud/usercenter/user-settings",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"iotCloudSidebar",previous:{title:"\u7528\u6237\u65e5\u5fd7",permalink:"/docs/iotcloud/usercenter/user-log"},next:{title:"RAM \u7528\u6237",permalink:"/docs/iotcloud/usercenter/system-user"}},a={},u=[{value:"\u4ec0\u4e48\u662f\u7528\u6237\u8bbe\u7f6e",id:"\u4ec0\u4e48\u662f\u7528\u6237\u8bbe\u7f6e",level:3},{value:"\u4f7f\u7528\u6d41\u7a0b",id:"\u4f7f\u7528\u6d41\u7a0b",level:3},{value:"\u6700\u4f73\u5b9e\u8df5",id:"\u6700\u4f73\u5b9e\u8df5",level:3},{value:"\u4f7f\u7528\u9650\u5236",id:"\u4f7f\u7528\u9650\u5236",level:3}],s={toc:u},p="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(p,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u7528\u6237\u8bbe\u7f6e"},"\u7528\u6237\u8bbe\u7f6e"),(0,o.yg)("p",null,"\u672c\u6587\u4e3a\u60a8\u4ecb\u7ecd \u7528\u6237\u8bbe\u7f6e \u7684\u57fa\u672c\u6982\u5ff5\u3001\u4f7f\u7528\u6d41\u7a0b\u3001\u6700\u4f73\u5b9e\u8df5\u548c\u4f7f\u7528\u9650\u5236\u3002"),(0,o.yg)("h3",{id:"\u4ec0\u4e48\u662f\u7528\u6237\u8bbe\u7f6e"},"\u4ec0\u4e48\u662f\u7528\u6237\u8bbe\u7f6e"),(0,o.yg)("p",null,"\u5982\u679c\u662f\u6ce8\u518c\u7528\u6237\uff0c\u53ef\u4ee5\u7ba1\u7406\u7528\u6237\u4fe1\u606f\u3001\u4ee5\u53ca\u4e00\u4e9b\u91cd\u8981\u7684\u670d\u52a1\u4fe1\u606f\u914d\u7f6e\uff1b"),(0,o.yg)("p",null,"\u5982\u679c\u662f RAM \u7528\u6237\uff0c\u53ea\u5141\u8bb8\u7ba1\u7406\u7528\u6237\u4fe1\u606f\u3002"),(0,o.yg)("h3",{id:"\u4f7f\u7528\u6d41\u7a0b"},"\u4f7f\u7528\u6d41\u7a0b"),(0,o.yg)("p",null,"GIF \u56fe"),(0,o.yg)("h3",{id:"\u6700\u4f73\u5b9e\u8df5"},"\u6700\u4f73\u5b9e\u8df5"),(0,o.yg)("p",null,"GIF \u56fe"),(0,o.yg)("h3",{id:"\u4f7f\u7528\u9650\u5236"},"\u4f7f\u7528\u9650\u5236"))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9304],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var a=n.createContext({}),u=function(e){var t=n.useContext(a),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},s=function(e){var t=u(e.components);return n.createElement(a.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,a=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),p=u(r),y=o,f=p["".concat(a,".").concat(y)]||p[y]||d[y]||i;return r?n.createElement(f,c(c({ref:t},s),{},{components:r})):n.createElement(f,c({ref:t},s))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,c=new Array(i);c[0]=y;var l={};for(var a in t)hasOwnProperty.call(t,a)&&(l[a]=t[a]);l.originalType=e,l[p]="string"==typeof e?e:o,c[1]=l;for(var u=2;u{r.r(t),r.d(t,{assets:()=>a,contentTitle:()=>c,default:()=>d,frontMatter:()=>i,metadata:()=>l,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const i={sidebar_position:5},c="\u7528\u6237\u8bbe\u7f6e",l={unversionedId:"iotcloud/usercenter/user-settings",id:"iotcloud/usercenter/user-settings",title:"\u7528\u6237\u8bbe\u7f6e",description:"\u672c\u6587\u4e3a\u60a8\u4ecb\u7ecd \u7528\u6237\u8bbe\u7f6e \u7684\u57fa\u672c\u6982\u5ff5\u3001\u4f7f\u7528\u6d41\u7a0b\u3001\u6700\u4f73\u5b9e\u8df5\u548c\u4f7f\u7528\u9650\u5236\u3002",source:"@site/docs/iotcloud/usercenter/user-settings.md",sourceDirName:"iotcloud/usercenter",slug:"/iotcloud/usercenter/user-settings",permalink:"/docs/iotcloud/usercenter/user-settings",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"iotCloudSidebar",previous:{title:"\u7528\u6237\u65e5\u5fd7",permalink:"/docs/iotcloud/usercenter/user-log"},next:{title:"RAM \u7528\u6237",permalink:"/docs/iotcloud/usercenter/system-user"}},a={},u=[{value:"\u4ec0\u4e48\u662f\u7528\u6237\u8bbe\u7f6e",id:"\u4ec0\u4e48\u662f\u7528\u6237\u8bbe\u7f6e",level:3},{value:"\u4f7f\u7528\u6d41\u7a0b",id:"\u4f7f\u7528\u6d41\u7a0b",level:3},{value:"\u6700\u4f73\u5b9e\u8df5",id:"\u6700\u4f73\u5b9e\u8df5",level:3},{value:"\u4f7f\u7528\u9650\u5236",id:"\u4f7f\u7528\u9650\u5236",level:3}],s={toc:u},p="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(p,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u7528\u6237\u8bbe\u7f6e"},"\u7528\u6237\u8bbe\u7f6e"),(0,o.yg)("p",null,"\u672c\u6587\u4e3a\u60a8\u4ecb\u7ecd \u7528\u6237\u8bbe\u7f6e \u7684\u57fa\u672c\u6982\u5ff5\u3001\u4f7f\u7528\u6d41\u7a0b\u3001\u6700\u4f73\u5b9e\u8df5\u548c\u4f7f\u7528\u9650\u5236\u3002"),(0,o.yg)("h3",{id:"\u4ec0\u4e48\u662f\u7528\u6237\u8bbe\u7f6e"},"\u4ec0\u4e48\u662f\u7528\u6237\u8bbe\u7f6e"),(0,o.yg)("p",null,"\u5982\u679c\u662f\u6ce8\u518c\u7528\u6237\uff0c\u53ef\u4ee5\u7ba1\u7406\u7528\u6237\u4fe1\u606f\u3001\u4ee5\u53ca\u4e00\u4e9b\u91cd\u8981\u7684\u670d\u52a1\u4fe1\u606f\u914d\u7f6e\uff1b"),(0,o.yg)("p",null,"\u5982\u679c\u662f RAM \u7528\u6237\uff0c\u53ea\u5141\u8bb8\u7ba1\u7406\u7528\u6237\u4fe1\u606f\u3002"),(0,o.yg)("h3",{id:"\u4f7f\u7528\u6d41\u7a0b"},"\u4f7f\u7528\u6d41\u7a0b"),(0,o.yg)("p",null,"GIF \u56fe"),(0,o.yg)("h3",{id:"\u6700\u4f73\u5b9e\u8df5"},"\u6700\u4f73\u5b9e\u8df5"),(0,o.yg)("p",null,"GIF \u56fe"),(0,o.yg)("h3",{id:"\u4f7f\u7528\u9650\u5236"},"\u4f7f\u7528\u9650\u5236"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/398dd9ed.7a094a8d.js b/assets/js/398dd9ed.db4897c0.js similarity index 99% rename from assets/js/398dd9ed.7a094a8d.js rename to assets/js/398dd9ed.db4897c0.js index 28e754649..345ad3ce1 100644 --- a/assets/js/398dd9ed.7a094a8d.js +++ b/assets/js/398dd9ed.db4897c0.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7445],{5680:(e,r,t)=>{t.d(r,{xA:()=>y,yg:()=>m});var n=t(6540);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function a(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function p(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var l=n.createContext({}),c=function(e){var r=n.useContext(l),t=r;return e&&(t="function"==typeof e?e(r):p(p({},r),e)),t},y=function(e){var r=c(e.components);return n.createElement(l.Provider,{value:r},e.children)},d="mdxType",s={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},u=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,y=i(e,["components","mdxType","originalType","parentName"]),d=c(t),u=o,m=d["".concat(l,".").concat(u)]||d[u]||s[u]||a;return t?n.createElement(m,p(p({ref:r},y),{},{components:t})):n.createElement(m,p({ref:r},y))}));function m(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var a=t.length,p=new Array(a);p[0]=u;var i={};for(var l in r)hasOwnProperty.call(r,l)&&(i[l]=r[l]);i.originalType=e,i[d]="string"==typeof e?e:o,p[1]=i;for(var c=2;c{t.r(r),t.d(r,{assets:()=>l,contentTitle:()=>p,default:()=>s,frontMatter:()=>a,metadata:()=>i,toc:()=>c});var n=t(8168),o=(t(6540),t(5680));const a={sidebar_position:2},p=void 0,i={unversionedId:"study/back/Zookeeper",id:"study/back/Zookeeper",title:"Zookeeper",description:"Zookeeper\u6982\u8ff0",source:"@site/docs/study/back/Zookeeper.md",sourceDirName:"study/back",slug:"/study/back/Zookeeper",permalink:"/docs/study/back/Zookeeper",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"studySidebar",previous:{title:"\u6982\u8ff0",permalink:"/docs/study/back/"},next:{title:"\u9ad8\u5e76\u53d1API",permalink:"/docs/study/back/\u9ad8\u5e76\u53d1API"}},l={},c=[{value:"Zookeeper\u6982\u8ff0",id:"zookeeper\u6982\u8ff0",level:3},{value:"Zookeeper \u7279\u6027",id:"zookeeper-\u7279\u6027",level:3}],y={toc:c},d="wrapper";function s(e){let{components:r,...t}=e;return(0,o.yg)(d,(0,n.A)({},y,t,{components:r,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"zookeeper\u6982\u8ff0"},"Zookeeper\u6982\u8ff0"),(0,o.yg)("p",null,"Zookeeper \u662f\u4e00\u4e2a\u5206\u5e03\u5f0f\u534f\u8c03\u670d\u52a1\u7684\u5f00\u6e90\u6846\u67b6\u3002\u4e3b\u8981\u7528\u6765\u89e3\u51b3\u5206\u5e03\u5f0f\u96c6\u7fa4\u4e2d\u5e94\u7528\u7cfb\u7edf\u7684\u4e00\u81f4\u6027\u95ee\u9898\uff0c\u4f8b\u5982\u600e\u6837\u907f\u514d\u540c\u65f6\u64cd\u4f5c\u540c\u4e00\u6570\u636e\u9020\u6210\u810f\u8bfb\u7684\u95ee\u9898\u3002"),(0,o.yg)("p",null,"ZooKeeper \u672c\u8d28\u4e0a\u662f\u4e00\u4e2a\u5206\u5e03\u5f0f\u7684\u5c0f\u6587\u4ef6\u5b58\u50a8\u7cfb\u7edf\u3002\u63d0\u4f9b\u57fa\u4e8e\u7c7b\u4f3c\u4e8e\u6587\u4ef6\u7cfb \u7edf\u7684\u76ee\u5f55\u6811\u65b9\u5f0f\u7684\u6570\u636e\u5b58\u50a8\uff0c\u5e76\u4e14\u53ef\u4ee5\u5bf9\u6811\u4e2d\u7684\u8282\u70b9\u8fdb\u884c\u6709\u6548\u7ba1\u7406\u3002\u4ece\u800c\u7528\u6765\u7ef4\u62a4\u548c\u76d1\u63a7\u4f60\u5b58\u50a8\u7684\u6570\u636e\u7684\u72b6\u6001\u53d8\u5316\u3002\u901a\u8fc7\u76d1\u63a7\u8fd9\u4e9b\u6570\u636e\u72b6\u6001\u7684\u53d8\u5316\uff0c\u4ece\u800c\u53ef\u4ee5\u8fbe \u5230\u57fa\u4e8e\u6570\u636e\u7684\u96c6\u7fa4\u7ba1\u7406\u3002\u8bf8\u5982\uff1a",(0,o.yg)("inlineCode",{parentName:"p"},"\u7edf\u4e00\u547d\u540d\u670d\u52a1"),"\u3001",(0,o.yg)("inlineCode",{parentName:"p"},"\u5206\u5e03\u5f0f\u914d\u7f6e\u7ba1\u7406"),"\u3001",(0,o.yg)("inlineCode",{parentName:"p"},"\u5206\u5e03\u5f0f\u6d88\u606f\u961f\u5217"),"\u3001",(0,o.yg)("inlineCode",{parentName:"p"},"\u5206\u5e03\u5f0f\u9501"),"\u3001",(0,o.yg)("inlineCode",{parentName:"p"},"\u5206\u5e03\u5f0f\u534f\u8c03"),"\u7b49\u529f\u80fd\u3002"),(0,o.yg)("p",null,"\u4e0a\u9762\u7684\u89e3\u91ca\u6709\u70b9\u62bd\u8c61\uff0c\u7b80\u5355\u6765\u8bf4zookeeper=\u6587\u4ef6\u7cfb\u7edf+\u76d1\u542c\u901a\u77e5\u673a\u5236\u3002"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},"\u6587\u4ef6\u7cfb\u7edf\uff0cZookeeper\u7ef4\u62a4\u4e00\u4e2a\u7c7b\u4f3c\u6587\u4ef6\u7cfb\u7edf\u7684\u6570\u636e\u7ed3\u6784\uff0c\u6bcf\u4e2a\u5b50\u76ee\u5f55\u9879\u5982 NameService \u90fd\u88ab\u79f0\u4f5c\u4e3a znode(\u76ee\u5f55\u8282\u70b9)\uff0c\u548c\u6587\u4ef6\u7cfb\u7edf\u4e00\u6837\uff0c\u6211\u4eec\u80fd\u591f\u81ea\u7531\u7684\u589e\u52a0\u3001\u5220\u9664znode\uff0c\u5728\u4e00\u4e2aznode\u4e0b\u589e\u52a0\u3001\u5220\u9664\u5b50znode\uff0c\u552f\u4e00\u7684\u4e0d\u540c\u5728\u4e8eznode\u662f\u53ef\u4ee5\u5b58\u50a8\u6570\u636e\u7684\u3002"),(0,o.yg)("li",{parentName:"ol"},"\u76d1\u542c\u901a\u77e5\u673a\u5236\uff0c\u5ba2\u6237\u7aef\u6ce8\u518c\u76d1\u542c\u5b83\u5173\u5fc3\u7684\u76ee\u5f55\u8282\u70b9\uff0c\u5f53\u76ee\u5f55\u8282\u70b9\u53d1\u751f\u53d8\u5316\uff08\u6570\u636e\u6539\u53d8\u3001\u88ab\u5220\u9664\u3001\u5b50\u76ee\u5f55\u8282\u70b9\u589e\u52a0\u5220\u9664\uff09\u65f6\uff0czookeeper\u4f1a\u901a\u77e5\u5ba2\u6237\u7aef\u3002")),(0,o.yg)("h3",{id:"zookeeper-\u7279\u6027"},"Zookeeper \u7279\u6027"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("p",{parentName:"li"},(0,o.yg)("inlineCode",{parentName:"p"},"\u5168\u5c40\u6570\u636e\u4e00\u81f4"),"\uff1a\u6bcf\u4e2a server \u4fdd\u5b58\u4e00\u4efd\u76f8\u540c\u7684\u6570\u636e\u526f\u672c\uff0cclient \u65e0\u8bba\u8fde \u63a5\u5230\u54ea\u4e2a server\uff0c\u5c55\u793a\u7684\u6570\u636e\u90fd\u662f\u4e00\u81f4\u7684\uff0c\u8fd9\u662f\u6700\u91cd\u8981\u7684\u7279\u5f81\uff1b")),(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("p",{parentName:"li"},(0,o.yg)("inlineCode",{parentName:"p"},"\u53ef\u9760\u6027"),"\uff1a\u5982\u679c\u6d88\u606f\u88ab\u5176\u4e2d\u4e00\u53f0\u670d\u52a1\u5668\u63a5\u53d7\uff0c\u90a3\u4e48\u5c06\u88ab\u6240\u6709\u7684\u670d\u52a1\u5668\u63a5\u53d7\u3002")),(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("p",{parentName:"li"},(0,o.yg)("inlineCode",{parentName:"p"},"\u987a\u5e8f\u6027"),"\uff1a\u5305\u62ec\u5168\u5c40\u6709\u5e8f\u548c\u504f\u5e8f\u4e24\u79cd\uff1a\u5168\u5c40\u6709\u5e8f\u662f\u6307\u5982\u679c\u5728\u4e00\u53f0\u670d\u52a1\u5668\u4e0a \u6d88\u606f a \u5728\u6d88\u606f b \u524d\u53d1\u5e03\uff0c\u5219\u5728\u6240\u6709 Server \u4e0a\u6d88\u606f a \u90fd\u5c06\u5728\u6d88\u606f b \u524d\u88ab \u53d1\u5e03\uff1b\u504f\u5e8f\u662f\u6307\u5982\u679c\u4e00\u4e2a\u6d88\u606f b \u5728\u6d88\u606f a \u540e\u88ab\u540c\u4e00\u4e2a\u53d1\u9001\u8005\u53d1\u5e03\uff0ca \u5fc5\u5c06\u6392\u5728 b \u524d\u9762\u3002")),(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("p",{parentName:"li"},(0,o.yg)("inlineCode",{parentName:"p"},"\u6570\u636e\u66f4\u65b0\u539f\u5b50\u6027"),"\uff1a\u4e00\u6b21\u6570\u636e\u66f4\u65b0\u8981\u4e48\u6210\u529f\uff08\u534a\u6570\u4ee5\u4e0a\u8282\u70b9\u6210\u529f\uff09\uff0c\u8981\u4e48\u5931 \u8d25\uff0c\u4e0d\u5b58\u5728\u4e2d\u95f4\u72b6\u6001\uff1b")),(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("p",{parentName:"li"},(0,o.yg)("inlineCode",{parentName:"p"},"\u5b9e\u65f6\u6027"),"\uff1aZookeeper \u4fdd\u8bc1\u5ba2\u6237\u7aef\u5c06\u5728\u4e00\u4e2a\u65f6\u95f4\u95f4\u9694\u8303\u56f4\u5185\u83b7\u5f97\u670d\u52a1\u5668\u7684\u66f4\u65b0\u4fe1\u606f\uff0c\u6216\u8005\u670d\u52a1\u5668\u5931\u6548\u7684\u4fe1\u606f\u3002"))))}s.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7445],{5680:(e,r,t)=>{t.d(r,{xA:()=>y,yg:()=>m});var n=t(6540);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function a(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function p(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var l=n.createContext({}),c=function(e){var r=n.useContext(l),t=r;return e&&(t="function"==typeof e?e(r):p(p({},r),e)),t},y=function(e){var r=c(e.components);return n.createElement(l.Provider,{value:r},e.children)},d="mdxType",s={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},u=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,y=i(e,["components","mdxType","originalType","parentName"]),d=c(t),u=o,m=d["".concat(l,".").concat(u)]||d[u]||s[u]||a;return t?n.createElement(m,p(p({ref:r},y),{},{components:t})):n.createElement(m,p({ref:r},y))}));function m(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var a=t.length,p=new Array(a);p[0]=u;var i={};for(var l in r)hasOwnProperty.call(r,l)&&(i[l]=r[l]);i.originalType=e,i[d]="string"==typeof e?e:o,p[1]=i;for(var c=2;c{t.r(r),t.d(r,{assets:()=>l,contentTitle:()=>p,default:()=>s,frontMatter:()=>a,metadata:()=>i,toc:()=>c});var n=t(8168),o=(t(6540),t(5680));const a={sidebar_position:2},p=void 0,i={unversionedId:"study/back/Zookeeper",id:"study/back/Zookeeper",title:"Zookeeper",description:"Zookeeper\u6982\u8ff0",source:"@site/docs/study/back/Zookeeper.md",sourceDirName:"study/back",slug:"/study/back/Zookeeper",permalink:"/docs/study/back/Zookeeper",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"studySidebar",previous:{title:"\u6982\u8ff0",permalink:"/docs/study/back/"},next:{title:"\u9ad8\u5e76\u53d1API",permalink:"/docs/study/back/\u9ad8\u5e76\u53d1API"}},l={},c=[{value:"Zookeeper\u6982\u8ff0",id:"zookeeper\u6982\u8ff0",level:3},{value:"Zookeeper \u7279\u6027",id:"zookeeper-\u7279\u6027",level:3}],y={toc:c},d="wrapper";function s(e){let{components:r,...t}=e;return(0,o.yg)(d,(0,n.A)({},y,t,{components:r,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"zookeeper\u6982\u8ff0"},"Zookeeper\u6982\u8ff0"),(0,o.yg)("p",null,"Zookeeper \u662f\u4e00\u4e2a\u5206\u5e03\u5f0f\u534f\u8c03\u670d\u52a1\u7684\u5f00\u6e90\u6846\u67b6\u3002\u4e3b\u8981\u7528\u6765\u89e3\u51b3\u5206\u5e03\u5f0f\u96c6\u7fa4\u4e2d\u5e94\u7528\u7cfb\u7edf\u7684\u4e00\u81f4\u6027\u95ee\u9898\uff0c\u4f8b\u5982\u600e\u6837\u907f\u514d\u540c\u65f6\u64cd\u4f5c\u540c\u4e00\u6570\u636e\u9020\u6210\u810f\u8bfb\u7684\u95ee\u9898\u3002"),(0,o.yg)("p",null,"ZooKeeper \u672c\u8d28\u4e0a\u662f\u4e00\u4e2a\u5206\u5e03\u5f0f\u7684\u5c0f\u6587\u4ef6\u5b58\u50a8\u7cfb\u7edf\u3002\u63d0\u4f9b\u57fa\u4e8e\u7c7b\u4f3c\u4e8e\u6587\u4ef6\u7cfb \u7edf\u7684\u76ee\u5f55\u6811\u65b9\u5f0f\u7684\u6570\u636e\u5b58\u50a8\uff0c\u5e76\u4e14\u53ef\u4ee5\u5bf9\u6811\u4e2d\u7684\u8282\u70b9\u8fdb\u884c\u6709\u6548\u7ba1\u7406\u3002\u4ece\u800c\u7528\u6765\u7ef4\u62a4\u548c\u76d1\u63a7\u4f60\u5b58\u50a8\u7684\u6570\u636e\u7684\u72b6\u6001\u53d8\u5316\u3002\u901a\u8fc7\u76d1\u63a7\u8fd9\u4e9b\u6570\u636e\u72b6\u6001\u7684\u53d8\u5316\uff0c\u4ece\u800c\u53ef\u4ee5\u8fbe \u5230\u57fa\u4e8e\u6570\u636e\u7684\u96c6\u7fa4\u7ba1\u7406\u3002\u8bf8\u5982\uff1a",(0,o.yg)("inlineCode",{parentName:"p"},"\u7edf\u4e00\u547d\u540d\u670d\u52a1"),"\u3001",(0,o.yg)("inlineCode",{parentName:"p"},"\u5206\u5e03\u5f0f\u914d\u7f6e\u7ba1\u7406"),"\u3001",(0,o.yg)("inlineCode",{parentName:"p"},"\u5206\u5e03\u5f0f\u6d88\u606f\u961f\u5217"),"\u3001",(0,o.yg)("inlineCode",{parentName:"p"},"\u5206\u5e03\u5f0f\u9501"),"\u3001",(0,o.yg)("inlineCode",{parentName:"p"},"\u5206\u5e03\u5f0f\u534f\u8c03"),"\u7b49\u529f\u80fd\u3002"),(0,o.yg)("p",null,"\u4e0a\u9762\u7684\u89e3\u91ca\u6709\u70b9\u62bd\u8c61\uff0c\u7b80\u5355\u6765\u8bf4zookeeper=\u6587\u4ef6\u7cfb\u7edf+\u76d1\u542c\u901a\u77e5\u673a\u5236\u3002"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},"\u6587\u4ef6\u7cfb\u7edf\uff0cZookeeper\u7ef4\u62a4\u4e00\u4e2a\u7c7b\u4f3c\u6587\u4ef6\u7cfb\u7edf\u7684\u6570\u636e\u7ed3\u6784\uff0c\u6bcf\u4e2a\u5b50\u76ee\u5f55\u9879\u5982 NameService \u90fd\u88ab\u79f0\u4f5c\u4e3a znode(\u76ee\u5f55\u8282\u70b9)\uff0c\u548c\u6587\u4ef6\u7cfb\u7edf\u4e00\u6837\uff0c\u6211\u4eec\u80fd\u591f\u81ea\u7531\u7684\u589e\u52a0\u3001\u5220\u9664znode\uff0c\u5728\u4e00\u4e2aznode\u4e0b\u589e\u52a0\u3001\u5220\u9664\u5b50znode\uff0c\u552f\u4e00\u7684\u4e0d\u540c\u5728\u4e8eznode\u662f\u53ef\u4ee5\u5b58\u50a8\u6570\u636e\u7684\u3002"),(0,o.yg)("li",{parentName:"ol"},"\u76d1\u542c\u901a\u77e5\u673a\u5236\uff0c\u5ba2\u6237\u7aef\u6ce8\u518c\u76d1\u542c\u5b83\u5173\u5fc3\u7684\u76ee\u5f55\u8282\u70b9\uff0c\u5f53\u76ee\u5f55\u8282\u70b9\u53d1\u751f\u53d8\u5316\uff08\u6570\u636e\u6539\u53d8\u3001\u88ab\u5220\u9664\u3001\u5b50\u76ee\u5f55\u8282\u70b9\u589e\u52a0\u5220\u9664\uff09\u65f6\uff0czookeeper\u4f1a\u901a\u77e5\u5ba2\u6237\u7aef\u3002")),(0,o.yg)("h3",{id:"zookeeper-\u7279\u6027"},"Zookeeper \u7279\u6027"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("p",{parentName:"li"},(0,o.yg)("inlineCode",{parentName:"p"},"\u5168\u5c40\u6570\u636e\u4e00\u81f4"),"\uff1a\u6bcf\u4e2a server \u4fdd\u5b58\u4e00\u4efd\u76f8\u540c\u7684\u6570\u636e\u526f\u672c\uff0cclient \u65e0\u8bba\u8fde \u63a5\u5230\u54ea\u4e2a server\uff0c\u5c55\u793a\u7684\u6570\u636e\u90fd\u662f\u4e00\u81f4\u7684\uff0c\u8fd9\u662f\u6700\u91cd\u8981\u7684\u7279\u5f81\uff1b")),(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("p",{parentName:"li"},(0,o.yg)("inlineCode",{parentName:"p"},"\u53ef\u9760\u6027"),"\uff1a\u5982\u679c\u6d88\u606f\u88ab\u5176\u4e2d\u4e00\u53f0\u670d\u52a1\u5668\u63a5\u53d7\uff0c\u90a3\u4e48\u5c06\u88ab\u6240\u6709\u7684\u670d\u52a1\u5668\u63a5\u53d7\u3002")),(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("p",{parentName:"li"},(0,o.yg)("inlineCode",{parentName:"p"},"\u987a\u5e8f\u6027"),"\uff1a\u5305\u62ec\u5168\u5c40\u6709\u5e8f\u548c\u504f\u5e8f\u4e24\u79cd\uff1a\u5168\u5c40\u6709\u5e8f\u662f\u6307\u5982\u679c\u5728\u4e00\u53f0\u670d\u52a1\u5668\u4e0a \u6d88\u606f a \u5728\u6d88\u606f b \u524d\u53d1\u5e03\uff0c\u5219\u5728\u6240\u6709 Server \u4e0a\u6d88\u606f a \u90fd\u5c06\u5728\u6d88\u606f b \u524d\u88ab \u53d1\u5e03\uff1b\u504f\u5e8f\u662f\u6307\u5982\u679c\u4e00\u4e2a\u6d88\u606f b \u5728\u6d88\u606f a \u540e\u88ab\u540c\u4e00\u4e2a\u53d1\u9001\u8005\u53d1\u5e03\uff0ca \u5fc5\u5c06\u6392\u5728 b \u524d\u9762\u3002")),(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("p",{parentName:"li"},(0,o.yg)("inlineCode",{parentName:"p"},"\u6570\u636e\u66f4\u65b0\u539f\u5b50\u6027"),"\uff1a\u4e00\u6b21\u6570\u636e\u66f4\u65b0\u8981\u4e48\u6210\u529f\uff08\u534a\u6570\u4ee5\u4e0a\u8282\u70b9\u6210\u529f\uff09\uff0c\u8981\u4e48\u5931 \u8d25\uff0c\u4e0d\u5b58\u5728\u4e2d\u95f4\u72b6\u6001\uff1b")),(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("p",{parentName:"li"},(0,o.yg)("inlineCode",{parentName:"p"},"\u5b9e\u65f6\u6027"),"\uff1aZookeeper \u4fdd\u8bc1\u5ba2\u6237\u7aef\u5c06\u5728\u4e00\u4e2a\u65f6\u95f4\u95f4\u9694\u8303\u56f4\u5185\u83b7\u5f97\u670d\u52a1\u5668\u7684\u66f4\u65b0\u4fe1\u606f\uff0c\u6216\u8005\u670d\u52a1\u5668\u5931\u6548\u7684\u4fe1\u606f\u3002"))))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/399850d1.439fd7ad.js b/assets/js/399850d1.9ee49c22.js similarity index 99% rename from assets/js/399850d1.439fd7ad.js rename to assets/js/399850d1.9ee49c22.js index 68368e206..a5d1e0604 100644 --- a/assets/js/399850d1.439fd7ad.js +++ b/assets/js/399850d1.9ee49c22.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2042],{5680:(e,n,t)=>{t.d(n,{xA:()=>s,yg:()=>m});var a=t(6540);function l(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function r(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function g(e){for(var n=1;n=0||(l[t]=e[t]);return l}(e,n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(l[t]=e[t])}return l}var o=a.createContext({}),d=function(e){var n=a.useContext(o),t=n;return e&&(t="function"==typeof e?e(n):g(g({},n),e)),t},s=function(e){var n=d(e.components);return a.createElement(o.Provider,{value:n},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},y=a.forwardRef((function(e,n){var t=e.components,l=e.mdxType,r=e.originalType,o=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),p=d(t),y=l,m=p["".concat(o,".").concat(y)]||p[y]||u[y]||r;return t?a.createElement(m,g(g({ref:n},s),{},{components:t})):a.createElement(m,g({ref:n},s))}));function m(e,n){var t=arguments,l=n&&n.mdxType;if("string"==typeof e||l){var r=t.length,g=new Array(r);g[0]=y;var i={};for(var o in n)hasOwnProperty.call(n,o)&&(i[o]=n[o]);i.originalType=e,i[p]="string"==typeof e?e:l,g[1]=i;for(var d=2;d{t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>g,default:()=>u,frontMatter:()=>r,metadata:()=>i,toc:()=>d});var a=t(8168),l=(t(6540),t(5680));const r={sidebar_position:2},g=void 0,i={unversionedId:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TDengine",id:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TDengine",title:"TDengine",description:"\u5b98\u7f51",source:"@site/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TDengine.md",sourceDirName:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93",slug:"/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TDengine",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TDengine",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"studySidebar",previous:{title:"InfluxDB",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/InfluxDB"},next:{title:"Apache IoTDB",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Apache IoTDB"}},o={},d=[{value:"\u7b80\u4ecb",id:"\u7b80\u4ecb",level:3},{value:"\u8bc4\u4ef7",id:"\u8bc4\u4ef7",level:3},{value:"\u90e8\u7f72",id:"\u90e8\u7f72",level:3},{value:"\u73af\u5883\u51c6\u5907",id:"\u73af\u5883\u51c6\u5907",level:4},{value:"\u6784\u5efa&\u5b89\u88c5\u3010\u6e90\u7801\u3011",id:"\u6784\u5efa\u5b89\u88c5\u6e90\u7801",level:4},{value:"\u6784\u4ef6\u5b89\u88c5\u3010\u5b89\u88c5\u5305\u3011",id:"\u6784\u4ef6\u5b89\u88c5\u5b89\u88c5\u5305",level:4},{value:"\u4f53\u9a8c SQL",id:"\u4f53\u9a8c-sql",level:4},{value:"\u96c6\u7fa4\u90e8\u7f72",id:"\u96c6\u7fa4\u90e8\u7f72",level:4},{value:"\u57fa\u672c\u6982\u5ff5",id:"\u57fa\u672c\u6982\u5ff5",level:3},{value:"\u91c7\u96c6\u91cf (Metric)",id:"\u91c7\u96c6\u91cf-metric",level:4},{value:"\u6807\u7b7e (Label/Tag)",id:"\u6807\u7b7e-labeltag",level:4},{value:"\u6570\u636e\u91c7\u96c6\u70b9 (Data Collection Point)",id:"\u6570\u636e\u91c7\u96c6\u70b9-data-collection-point",level:4},{value:"\u8868 (Table)",id:"\u8868-table",level:4},{value:"\u8d85\u7ea7\u8868 (STable)",id:"\u8d85\u7ea7\u8868-stable",level:4},{value:"\u5b50\u8868 (Subtable)",id:"\u5b50\u8868-subtable",level:4},{value:"\u5e93 (database)",id:"\u5e93-database",level:4},{value:"\u51c6\u5907\u6570\u636e",id:"\u51c6\u5907\u6570\u636e",level:3},{value:"\u538b\u6d4b",id:"\u538b\u6d4b",level:3},{value:"\u5751\u70b9\u6c47\u603b",id:"\u5751\u70b9\u6c47\u603b",level:3},{value:"\u9644\u5f55",id:"\u9644\u5f55",level:3},{value:"\u5f00\u6e90\u534f\u8bae\u8bf4\u660e",id:"\u5f00\u6e90\u534f\u8bae\u8bf4\u660e",level:4}],s={toc:d},p="wrapper";function u(e){let{components:n,...r}=e;return(0,l.yg)(p,(0,a.A)({},s,r,{components:n,mdxType:"MDXLayout"}),(0,l.yg)("p",null,(0,l.yg)("a",{parentName:"p",href:"https://www.taosdata.com/"},"\u5b98\u7f51"),"\n",(0,l.yg)("a",{parentName:"p",href:"https://github.com/taosdata/TDengine"},"GitHub \u94fe\u63a5\u5730\u5740")),(0,l.yg)("h3",{id:"\u7b80\u4ecb"},"\u7b80\u4ecb"),(0,l.yg)("p",null,"\u5f00\u6e90\u534f\u8bae\uff1aAGPL V3\n\u5f00\u53d1\u8bed\u8a00\uff1aC\n\u5546\u4e1a\u516c\u53f8\uff1a\u5317\u4eac\u6d9b\u601d\u6570\u636e\u79d1\u6280\u6709\u9650\u516c\u53f8(TAOS Data) \uff1b\u6d9b\u601d\u6570\u636e\u91c7\u7528 AGPL \u8bb8\u53ef\u8bc1\uff0c\u5df2\u7ecf\u5c06 TDengine \u7684\u5185\u6838(\u5b58\u50a8\u3001\u8ba1\u7b97\u5f15\u64ce\u548c\u96c6\u7fa4\uff09100%\u5f00\u6e90\u3002\u6d9b\u601d\u6570\u636e\u5c06\u5c3d\u6700\u5927\u52aa\u529b\u6253\u9020\u5f00\u53d1\u8005\u793e\u533a\uff0c\u7ef4\u62a4\u8fd9\u4e2a\u5f00\u6e90\u7684\u5546\u4e1a\u6a21\u5f0f\uff0c\u76f8\u4fe1\u4e0d\u5c06\u6700\u6838\u5fc3\u7684\u4ee3\u7801\u5f00\u6e90\uff0c\u4efb\u4f55\u57fa\u7840\u8f6f\u4ef6\u90fd\u5c06\u65e0\u6cd5\u8d62\u5f97\u5e02\u573a\u3002\u6d9b\u601d\u6570\u636e\u5e0c\u671b\u901a\u8fc7\u5f00\u6e90\uff0c\u5feb\u901f\u83b7\u5f97\u5e02\u573a\u53cd\u9988\uff0c\u5b8c\u5584\u4ea7\u54c1\uff0c\u5b8c\u5584\u751f\u6001\uff0c\u800c\u4e14\u5438\u5f15\u66f4\u591a\u7684\u5f00\u53d1\u8005\u52a0\u5165\u5230\u8fd9\u4e2a\u9879\u76ee\u4e2d\u3002\n\u652f\u6301\u96c6\u7fa4\uff1a\u5f00\u6e90\u7248\u672c\u652f\u6301\u96c6\u7fa4"),(0,l.yg)("h3",{id:"\u8bc4\u4ef7"},"\u8bc4\u4ef7"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u56fd\u5185\u516c\u53f8\u4f17\u591a\u9879\u76ee\u4f7f\u7528\uff0c\u4f7f\u7528\u91cf\u8fd8\u662f\u5f88\u9ad8\u7684\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u5f00\u6e90\u65e2\u652f\u6301\u96c6\u7fa4\uff0c\u5927\u6570\u636e\u91cf\u7684\u62d3\u5c55\u662f\u6ca1\u95ee\u9898\u7684\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u6587\u6863\u76f8\u5bf9\u6765\u8bf4\u662f\u975e\u5e38\u53cb\u597d\u7684\uff0c\u65b9\u65b9\u9762\u9762\u4ff1\u5230\uff1b")),(0,l.yg)("h3",{id:"\u90e8\u7f72"},"\u90e8\u7f72"),(0,l.yg)("h4",{id:"\u73af\u5883\u51c6\u5907"},"\u73af\u5883\u51c6\u5907"),(0,l.yg)("p",null,"\u6587\u6863\u662f\u4e2d\u6587\u7684\uff0c\u8fd8\u662f\u4e0d\u9519\u7684\u3002",(0,l.yg)("a",{parentName:"p",href:"https://github.com/taosdata/TDengine/blob/develop/README-CN.md"},"\u5b89\u88c5\u6587\u6863")),(0,l.yg)("p",null,"\u95ee\u8fd0\u7ef4\u7ae5\u978b\u8981\u4e86\u9884\u7814\u4f7f\u7528\u7684\u670d\u52a1\u5668\uff0c\u5982\u4e0b\uff1a"),(0,l.yg)("table",null,(0,l.yg)("thead",{parentName:"table"},(0,l.yg)("tr",{parentName:"thead"},(0,l.yg)("th",{parentName:"tr",align:null},"hostname"),(0,l.yg)("th",{parentName:"tr",align:null},"ip"))),(0,l.yg)("tbody",{parentName:"table"},(0,l.yg)("tr",{parentName:"tbody"},(0,l.yg)("td",{parentName:"tr",align:null},"node57"),(0,l.yg)("td",{parentName:"tr",align:null},"192.168.0.57")),(0,l.yg)("tr",{parentName:"tbody"},(0,l.yg)("td",{parentName:"tr",align:null},"node54"),(0,l.yg)("td",{parentName:"tr",align:null},"192.168.0.54")),(0,l.yg)("tr",{parentName:"tbody"},(0,l.yg)("td",{parentName:"tr",align:null},"node53"),(0,l.yg)("td",{parentName:"tr",align:null},"192.168.0.53")),(0,l.yg)("tr",{parentName:"tbody"},(0,l.yg)("td",{parentName:"tr",align:null},"node55"),(0,l.yg)("td",{parentName:"tr",align:null},"192.168.0.55")))),(0,l.yg)("p",null,"\u770b\u4e86\u4e00\u4e0b\u64cd\u4f5c\u7cfb\u7edf\u7248\u672c\u4e3a Centos 7\uff0c\u5927\u5bb6\u6839\u636e\u81ea\u5df1\u670d\u52a1\u5668\u7684\u64cd\u4f5c\u7cfb\u7edf\u5b89\u88c5\u4e0d\u540c\u547d\u4ee4\uff0c\u4ee5\u4e0b\u90fd\u662f\u57fa\u4e8e Centos7 \u7684"),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-shell"},"[root@centos ~]# cat /etc/redhat-release\nCentOS Linux release 7.9.2009 (Core)\n")),(0,l.yg)("p",null,"\u6839\u636e\u6587\u6863\u4f9d\u6b21\u6267\u884c\uff1a"),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-shell"},"sudo yum install -y gcc gcc-c++ make cmake git\n\nsudo yum install -y java-1.8.0-openjdk\n\n#maven\u4e0d\u8981\u8fd9\u4e48\u5b89\u88c5\uff0c\u6709\u53ef\u80fd\u7248\u672c\u6bd4\u8f83\u4f4e \u53ea\u80fd\u8bf4\u6709\u53ef\u80fd\nsudo yum install -y maven\n\nsudo yum install zlib-devel xz-devel snappy-devel jansson jansson-devel pkgconfig libatomic libstdc++-static\n\ngit clone https://github.com/taosdata/TDengine.git\ncd TDengine\n\n#Go \u8fde\u63a5\u5668\u548c Grafana \u63d2\u4ef6\u5728\u5176\u4ed6\u72ec\u7acb\u4ed3\u5e93\uff0c\u5982\u679c\u5b89\u88c5\u5b83\u4eec\u7684\u8bdd\uff0c\u9700\u8981\u5728 TDengine \u76ee\u5f55\u4e0b\u901a\u8fc7\u6b64\u547d\u4ee4\u5b89\u88c5\uff1a\ngit submodule update --init --recursive\n")),(0,l.yg)("p",null,"\u6267\u884c\u6700\u540e\u7684\u547d\u4ee4\u7684\u65f6\u5019\uff0c\u4f1a\u62a5\u9519\uff0c\u9700\u8981\u914d\u7f6e git\uff0c\u3010YiRanCN\u3011\u548c\u3010",(0,l.yg)("a",{parentName:"p",href:"mailto:jiot.cloud059@163.com"},"jiot.cloud059@163.com"),"\u3011\u90fd\u662f\u6211\u7684 git \u8d26\u53f7\uff0c\u9700\u8981\u6839\u636e\u81ea\u5df1\u7684\u8d26\u53f7\u81ea\u884c\u914d\u7f6e"),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-shell"},'git config --global http.sslVerify false\ngit config --global user.name "YiRanCN"\ngit config --global user.email "xxx@163.com"\n\nssh-keygen -t rsa -C "YiRanCN"\n\n#\u83b7\u53d6 \u4e4b\u540e \u4e0d\u8981\u540e\u9762\u7684\u8d26\u53f7 \u590d\u5236\u4e0b\u6765\ncat /root/.ssh/id_rsa.pub\n')),(0,l.yg)("p",null,"\u6839\u636e\u3010cat /root/.ssh/id_rsa.pub\u3011\u8fd9\u4e2a\u5f97\u7ed3\u679c\uff0c\u653e\u5230 github \u8d26\u53f7\u7684\u3010SSH and GPG keys\u3011\u529f\u80fd\u4e0b\u9762\n",(0,l.yg)("img",{parentName:"p",src:"https://cdn.nlark.com/yuque/0/2022/png/276833/1654587900708-8145fd94-a69e-492a-bf83-41ddd0a2e789.png#averageHue=%23fefefe&clientId=u7121fde3-9777-4&from=paste&height=1174&id=ua6a234e7&name=image.png&originHeight=1174&originWidth=2428&originalType=binary&ratio=1&rotation=0&showTitle=false&size=317728&status=done&style=none&taskId=u1b8b6bce-4d72-4ca1-b2c2-48963f55d0b&title=&width=2428",alt:"image.png"})),(0,l.yg)("h4",{id:"\u6784\u5efa\u5b89\u88c5\u6e90\u7801"},"\u6784\u5efa&\u5b89\u88c5\u3010\u6e90\u7801\u3011"),(0,l.yg)("p",null,"\u6784\u5efa\u5f88\u7b80\u5355\uff0c\u81ea\u5e26\u6784\u5efa\u811a\u672c"),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-shell"},"./build.sh\n")),(0,l.yg)("h4",{id:"\u6784\u4ef6\u5b89\u88c5\u5b89\u88c5\u5305"},"\u6784\u4ef6\u5b89\u88c5\u3010\u5b89\u88c5\u5305\u3011"),(0,l.yg)("p",null,"\u4e0b\u8f7d\u5730\u5740\uff1a\u3010",(0,l.yg)("a",{parentName:"p",href:"https://docs.tdengine.com/get-started/#!"},"https://docs.tdengine.com/get-started/#!"),"\u3011\n\u6267\u884c\u3010rpm -i TDengine-server-2.6.0.1-Linux-x64.rpm\u3011\uff0c\u5982\u679c\u53ea\u662f\u5b89\u88c5\u975e\u96c6\u7fa4\u7248\u672c\u76f4\u63a5\u56de\u8f66\u5373\u53ef\u3002\n\u3010sudo systemctl start taosd\u3011\u542f\u52a8\uff1b\n\u6267\u884c\u3010sudo systemctl status taosd\u3011\u68c0\u67e5\u8fd0\u884c\u72b6\u6001"),(0,l.yg)("p",null,"\u5982\u679c\u9700\u8981\u5378\u8f7d\uff1a\n\u3010sudo rpm -qa|grep tdengine\u3011\n\u3010sudo rpm -e tdengine\u3011\n\u3010sudo rm -rf /var/lib/taos/","*","\u3011\u614e\u7528"),(0,l.yg)("h4",{id:"\u4f53\u9a8c-sql"},"\u4f53\u9a8c SQL"),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-shell"},"CREATE DATABASE demo;\nUSE demo;\nCREATE TABLE t (ts TIMESTAMP, speed INT);\nINSERT INTO t VALUES('2019-07-15 00:00:00', 10);\nINSERT INTO t VALUES('2019-07-15 01:00:00', 20);\nSELECT * FROM t;\n")),(0,l.yg)("p",null,"\u4e3a\u964d\u4f4e\u5b66\u4e60\u95e8\u69db\uff0cTDengine \u91c7\u7528\u4f20\u7edf\u7684\u5173\u7cfb\u578b\u6570\u636e\u5e93\u6a21\u578b\u7ba1\u7406\u6570\u636e\uff0c\u548c MySQL \u6ca1\u5565\u592a\u5927\u533a\u522b\u3002"),(0,l.yg)("h4",{id:"\u96c6\u7fa4\u90e8\u7f72"},"\u96c6\u7fa4\u90e8\u7f72"),(0,l.yg)("p",null,"\u56e0\u4e3a\u6211\u7684\u76ee\u6807\u662f\u96c6\u7fa4\uff0c\u6240\u4ee5\uff0c\u4e0a\u9762\u7684\u90fd\u662f\u5f00\u80c3\u5c0f\u83dc\u3002"),(0,l.yg)("table",null,(0,l.yg)("thead",{parentName:"table"},(0,l.yg)("tr",{parentName:"thead"},(0,l.yg)("th",{parentName:"tr",align:null},"hostname"),(0,l.yg)("th",{parentName:"tr",align:null},"ip"))),(0,l.yg)("tbody",{parentName:"table"},(0,l.yg)("tr",{parentName:"tbody"},(0,l.yg)("td",{parentName:"tr",align:null},"node57"),(0,l.yg)("td",{parentName:"tr",align:null},"192.168.0.57")),(0,l.yg)("tr",{parentName:"tbody"},(0,l.yg)("td",{parentName:"tr",align:null},"node54"),(0,l.yg)("td",{parentName:"tr",align:null},"192.168.0.54")),(0,l.yg)("tr",{parentName:"tbody"},(0,l.yg)("td",{parentName:"tr",align:null},"node53"),(0,l.yg)("td",{parentName:"tr",align:null},"192.168.0.53")),(0,l.yg)("tr",{parentName:"tbody"},(0,l.yg)("td",{parentName:"tr",align:null},"node55"),(0,l.yg)("td",{parentName:"tr",align:null},"192.168.0.55")))),(0,l.yg)("p",null,"\u4f7f\u7528\n\u3010hostnamectl set-hostname node57\u3011\n\u3010hostnamectl set-hostname node54\u3011\n\u3010hostnamectl set-hostname node53\u3011\n\u3010hostnamectl set-hostname node55\u3011\n\u547d\u4ee4\u4fee\u6539 hostname.\n\u5c06\u5982\u4e0b\u914d\u7f6e\u653e\u5230\u3010vim /etc/hosts\u3011\u6587\u4ef6\u5185"),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-shell"},"192.168.0.57 node57\n192.168.0.54 node54\n192.168.0.53 node53\n192.168.0.55 node55\n")),(0,l.yg)("p",null,"\u6240\u6709\u7684\u8282\u70b9\u5b89\u88c5\u4e00\u904d\u3002\n\u96c6\u7fa4\u642d\u5efa\u5b8c\u6210\uff0c\u5982\u4e0b\u56fe\u6240\u793a\uff1a\n",(0,l.yg)("img",{alt:"image.png",src:t(9792).A,width:"1087",height:"153"})),(0,l.yg)("h3",{id:"\u57fa\u672c\u6982\u5ff5"},"\u57fa\u672c\u6982\u5ff5"),(0,l.yg)("h4",{id:"\u91c7\u96c6\u91cf-metric"},"\u91c7\u96c6\u91cf (Metric)"),(0,l.yg)("p",null,"\u91c7\u96c6\u91cf\u662f\u6307\u4f20\u611f\u5668\u3001\u8bbe\u5907\u6216\u5176\u4ed6\u7c7b\u578b\u91c7\u96c6\u70b9\u91c7\u96c6\u7684\u7269\u7406\u91cf\uff0c\u6bd4\u5982\u7535\u6d41\u3001\u7535\u538b\u3001\u6e29\u5ea6\u3001\u538b\u529b\u3001GPS \u4f4d\u7f6e\u7b49\uff0c\u662f\u968f\u65f6\u95f4\u53d8\u5316\u7684\uff0c\u6570\u636e\u7c7b\u578b\u53ef\u4ee5\u662f\u6574\u578b\u3001\u6d6e\u70b9\u578b\u3001\u5e03\u5c14\u578b\uff0c\u4e5f\u53ef\u662f\u5b57\u7b26\u4e32\u3002\u968f\u7740\u65f6\u95f4\u7684\u63a8\u79fb\uff0c\u5b58\u50a8\u7684\u91c7\u96c6\u91cf\u7684\u6570\u636e\u91cf\u8d8a\u6765\u8d8a\u5927\u3002"),(0,l.yg)("h4",{id:"\u6807\u7b7e-labeltag"},"\u6807\u7b7e (Label/Tag)"),(0,l.yg)("p",null,"\u6807\u7b7e\u662f\u6307\u4f20\u611f\u5668\u3001\u8bbe\u5907\u6216\u5176\u4ed6\u7c7b\u578b\u91c7\u96c6\u70b9\u7684\u9759\u6001\u5c5e\u6027\uff0c\u4e0d\u662f\u968f\u65f6\u95f4\u53d8\u5316\u7684\uff0c\u6bd4\u5982\u8bbe\u5907\u578b\u53f7\u3001\u989c\u8272\u3001\u8bbe\u5907\u7684\u6240\u5728\u5730\u7b49\uff0c\u6570\u636e\u7c7b\u578b\u53ef\u4ee5\u662f\u4efb\u4f55\u7c7b\u578b\u3002\u867d\u7136\u662f\u9759\u6001\u7684\uff0c\u4f46 TDengine \u5bb9\u8bb8\u7528\u6237\u4fee\u6539\u3001\u5220\u9664\u6216\u589e\u52a0\u6807\u7b7e\u503c\u3002\u4e0e\u91c7\u96c6\u91cf\u4e0d\u4e00\u6837\u7684\u662f\uff0c\u968f\u65f6\u95f4\u7684\u63a8\u79fb\uff0c\u5b58\u50a8\u7684\u6807\u7b7e\u7684\u6570\u636e\u91cf\u4e0d\u4f1a\u6709\u4ec0\u4e48\u53d8\u5316\u3002"),(0,l.yg)("h4",{id:"\u6570\u636e\u91c7\u96c6\u70b9-data-collection-point"},"\u6570\u636e\u91c7\u96c6\u70b9 (Data Collection Point)"),(0,l.yg)("p",null,"\u6570\u636e\u91c7\u96c6\u70b9\u662f\u6307\u6309\u7167\u9884\u8bbe\u65f6\u95f4\u5468\u671f\u6216\u53d7\u4e8b\u4ef6\u89e6\u53d1\u91c7\u96c6\u7269\u7406\u91cf\u7684\u786c\u4ef6\u6216\u8f6f\u4ef6\u3002\u4e00\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u53ef\u4ee5\u91c7\u96c6\u4e00\u4e2a\u6216\u591a\u4e2a\u91c7\u96c6\u91cf\uff0c",(0,l.yg)("strong",{parentName:"p"},"\u4f46\u8fd9\u4e9b\u91c7\u96c6\u91cf\u90fd\u662f\u540c\u4e00\u65f6\u523b\u91c7\u96c6\u7684\uff0c\u5177\u6709\u76f8\u540c\u7684\u65f6\u95f4\u6233"),"\u3002\u5bf9\u4e8e\u590d\u6742\u7684\u8bbe\u5907\uff0c\u5f80\u5f80\u6709\u591a\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\uff0c\u6bcf\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u91c7\u96c6\u7684\u5468\u671f\u90fd\u53ef\u80fd\u4e0d\u4e00\u6837\uff0c\u800c\u4e14\u5b8c\u5168\u72ec\u7acb\uff0c\u4e0d\u540c\u6b65\u3002\u6bd4\u5982\u5bf9\u4e8e\u4e00\u53f0\u6c7d\u8f66\uff0c\u6709\u6570\u636e\u91c7\u96c6\u70b9\u4e13\u95e8\u91c7\u96c6 GPS \u4f4d\u7f6e\uff0c\u6709\u6570\u636e\u91c7\u96c6\u70b9\u4e13\u95e8\u91c7\u96c6\u53d1\u52a8\u673a\u72b6\u6001\uff0c\u6709\u6570\u636e\u91c7\u96c6\u70b9\u4e13\u95e8\u91c7\u96c6\u8f66\u5185\u7684\u73af\u5883\uff0c\u8fd9\u6837\u4e00\u53f0\u6c7d\u8f66\u5c31\u6709\u4e09\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u3002"),(0,l.yg)("h4",{id:"\u8868-table"},"\u8868 (Table)"),(0,l.yg)("p",null,"\u56e0\u4e3a\u91c7\u96c6\u91cf\u4e00\u822c\u662f\u7ed3\u6784\u5316\u6570\u636e\uff0c\u540c\u65f6\u4e3a\u964d\u4f4e\u5b66\u4e60\u95e8\u69db\uff0cTDengine \u91c7\u7528\u4f20\u7edf\u7684\u5173\u7cfb\u578b\u6570\u636e\u5e93\u6a21\u578b\u7ba1\u7406\u6570\u636e\u3002\u7528\u6237\u9700\u8981\u5148\u521b\u5efa\u5e93\uff0c\u7136\u540e\u521b\u5efa\u8868\uff0c\u4e4b\u540e\u624d\u80fd\u63d2\u5165\u6216\u67e5\u8be2\u6570\u636e\u3002\n\u4e3a\u5145\u5206\u5229\u7528\u5176\u6570\u636e\u7684\u65f6\u5e8f\u6027\u548c\u5176\u4ed6\u6570\u636e\u7279\u70b9\uff0cTDengine \u91c7\u53d6",(0,l.yg)("strong",{parentName:"p"},"\u4e00\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u4e00\u5f20\u8868"),"\u7684\u7b56\u7565\uff0c\u8981\u6c42\u5bf9\u6bcf\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u5355\u72ec\u5efa\u8868\uff08\u6bd4\u5982\u6709\u4e00\u5343\u4e07\u4e2a\u667a\u80fd\u7535\u8868\uff0c\u5c31\u9700\u521b\u5efa\u4e00\u5343\u4e07\u5f20\u8868\uff0c\u4e0a\u8ff0\u8868\u683c\u4e2d\u7684 d1001\uff0cd1002\uff0cd1003\uff0cd1004 \u90fd\u9700\u5355\u72ec\u5efa\u8868\uff09\uff0c\u7528\u6765\u5b58\u50a8\u8fd9\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u6240\u91c7\u96c6\u7684\u65f6\u5e8f\u6570\u636e\u3002\u8fd9\u79cd\u8bbe\u8ba1\u6709\u51e0\u5927\u4f18\u70b9\uff1a"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u7531\u4e8e\u4e0d\u540c\u6570\u636e\u91c7\u96c6\u70b9\u4ea7\u751f\u6570\u636e\u7684\u8fc7\u7a0b\u5b8c\u5168\u72ec\u7acb\uff0c\u6bcf\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u7684\u6570\u636e\u6e90\u662f\u552f\u4e00\u7684\uff0c\u4e00\u5f20\u8868\u4e5f\u5c31\u53ea\u6709\u4e00\u4e2a\u5199\u5165\u8005\uff0c\u8fd9\u6837\u5c31\u53ef\u91c7\u7528\u65e0\u9501\u65b9\u5f0f\u6765\u5199\uff0c\u5199\u5165\u901f\u5ea6\u5c31\u80fd\u5927\u5e45\u63d0\u5347\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u5bf9\u4e8e\u4e00\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u800c\u8a00\uff0c\u5176\u4ea7\u751f\u7684\u6570\u636e\u662f\u6309\u7167\u65f6\u95f4\u6392\u5e8f\u7684\uff0c\u56e0\u6b64\u5199\u7684\u64cd\u4f5c\u53ef\u7528\u8ffd\u52a0\u7684\u65b9\u5f0f\u5b9e\u73b0\uff0c\u8fdb\u4e00\u6b65\u5927\u5e45\u63d0\u9ad8\u6570\u636e\u5199\u5165\u901f\u5ea6\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u4e00\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u7684\u6570\u636e\u662f\u4ee5\u5757\u4e3a\u5355\u4f4d\u8fde\u7eed\u5b58\u50a8\u7684\u3002\u5982\u679c\u8bfb\u53d6\u4e00\u4e2a\u65f6\u95f4\u6bb5\u7684\u6570\u636e\uff0c\u5b83\u80fd\u5927\u5e45\u51cf\u5c11\u968f\u673a\u8bfb\u53d6\u64cd\u4f5c\uff0c\u6210\u6570\u91cf\u7ea7\u7684\u63d0\u5347\u8bfb\u53d6\u548c\u67e5\u8be2\u901f\u5ea6\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u4e00\u4e2a\u6570\u636e\u5757\u5185\u90e8\uff0c\u91c7\u7528\u5217\u5f0f\u5b58\u50a8\uff0c\u5bf9\u4e8e\u4e0d\u540c\u6570\u636e\u7c7b\u578b\uff0c\u91c7\u7528\u4e0d\u540c\u538b\u7f29\u7b97\u6cd5\uff0c\u800c\u4e14\u7531\u4e8e\u4e00\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u7684\u91c7\u96c6\u91cf\u7684\u53d8\u5316\u662f\u7f13\u6162\u7684\uff0c\u538b\u7f29\u7387\u66f4\u9ad8\u3002")),(0,l.yg)("p",null,"\u5982\u679c\u91c7\u7528\u4f20\u7edf\u7684\u65b9\u5f0f\uff0c\u5c06\u591a\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u7684\u6570\u636e\u5199\u5165\u4e00\u5f20\u8868\uff0c\u7531\u4e8e\u7f51\u7edc\u5ef6\u65f6\u4e0d\u53ef\u63a7\uff0c\u4e0d\u540c\u6570\u636e\u91c7\u96c6\u70b9\u7684\u6570\u636e\u5230\u8fbe\u670d\u52a1\u5668\u7684\u65f6\u5e8f\u662f\u65e0\u6cd5\u4fdd\u8bc1\u7684\uff0c\u5199\u5165\u64cd\u4f5c\u662f\u8981\u6709\u9501\u4fdd\u62a4\u7684\uff0c\u800c\u4e14\u4e00\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u7684\u6570\u636e\u662f\u96be\u4ee5\u4fdd\u8bc1\u8fde\u7eed\u5b58\u50a8\u5728\u4e00\u8d77\u7684\u3002",(0,l.yg)("strong",{parentName:"p"},"\u91c7\u7528\u4e00\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u4e00\u5f20\u8868\u7684\u65b9\u5f0f\uff0c\u80fd\u6700\u5927\u7a0b\u5ea6\u7684\u4fdd\u8bc1\u5355\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u7684\u63d2\u5165\u548c\u67e5\u8be2\u7684\u6027\u80fd\u662f\u6700\u4f18\u7684\u3002"),"\nTDengine \u5efa\u8bae\u7528\u6570\u636e\u91c7\u96c6\u70b9\u7684\u540d\u5b57\uff08\u5982\u4e0a\u8868\u4e2d\u7684 D1001\uff09\u6765\u505a\u8868\u540d\u3002\u6bcf\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u53ef\u80fd\u540c\u65f6\u91c7\u96c6\u591a\u4e2a\u91c7\u96c6\u91cf\uff08\u5982\u4e0a\u8868\u4e2d\u7684 current\uff0cvoltage\uff0cphase\uff09\uff0c\u6bcf\u4e2a\u91c7\u96c6\u91cf\u5bf9\u5e94\u4e00\u5f20\u8868\u4e2d\u7684\u4e00\u5217\uff0c\u6570\u636e\u7c7b\u578b\u53ef\u4ee5\u662f\u6574\u578b\u3001\u6d6e\u70b9\u578b\u3001\u5b57\u7b26\u4e32\u7b49\u3002\u9664\u6b64\u4e4b\u5916\uff0c\u8868\u7684\u7b2c\u4e00\u5217\u5fc5\u987b\u662f\u65f6\u95f4\u6233\uff0c\u5373\u6570\u636e\u7c7b\u578b\u4e3a timestamp\u3002\u5bf9\u91c7\u96c6\u91cf\uff0cTDengine \u5c06\u81ea\u52a8\u6309\u7167\u65f6\u95f4\u6233\u5efa\u7acb\u7d22\u5f15\uff0c\u4f46\u5bf9\u91c7\u96c6\u91cf\u672c\u8eab\u4e0d\u5efa\u4efb\u4f55\u7d22\u5f15\u3002\u6570\u636e\u7528\u5217\u5f0f\u5b58\u50a8\u65b9\u5f0f\u4fdd\u5b58\u3002\n\u5bf9\u4e8e\u590d\u6742\u7684\u8bbe\u5907\uff0c\u6bd4\u5982\u6c7d\u8f66\uff0c\u5b83\u6709\u591a\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\uff0c\u90a3\u4e48\u5c31\u9700\u8981\u4e3a\u4e00\u53f0\u6c7d\u8f66\u5efa\u7acb\u591a\u5f20\u8868\u3002"),(0,l.yg)("h4",{id:"\u8d85\u7ea7\u8868-stable"},"\u8d85\u7ea7\u8868 (STable)"),(0,l.yg)("p",null,"\u7531\u4e8e\u4e00\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u4e00\u5f20\u8868\uff0c\u5bfc\u81f4\u8868\u7684\u6570\u91cf\u5de8\u589e\uff0c\u96be\u4ee5\u7ba1\u7406\uff0c\u800c\u4e14\u5e94\u7528\u7ecf\u5e38\u9700\u8981\u505a\u91c7\u96c6\u70b9\u4e4b\u95f4\u7684\u805a\u5408\u64cd\u4f5c\uff0c\u805a\u5408\u7684\u64cd\u4f5c\u4e5f\u53d8\u5f97\u590d\u6742\u8d77\u6765\u3002\u4e3a\u89e3\u51b3\u8fd9\u4e2a\u95ee\u9898\uff0cTDengine \u5f15\u5165\u8d85\u7ea7\u8868\uff08Super Table\uff0c\u7b80\u79f0\u4e3a STable\uff09\u7684\u6982\u5ff5\u3002\n\u8d85\u7ea7\u8868\u662f\u6307\u67d0\u4e00\u7279\u5b9a\u7c7b\u578b\u7684\u6570\u636e\u91c7\u96c6\u70b9\u7684\u96c6\u5408\u3002\u540c\u4e00\u7c7b\u578b\u7684\u6570\u636e\u91c7\u96c6\u70b9\uff0c\u5176\u8868\u7684\u7ed3\u6784\u662f\u5b8c\u5168\u4e00\u6837\u7684\uff0c\u4f46\u6bcf\u4e2a\u8868\uff08\u6570\u636e\u91c7\u96c6\u70b9\uff09\u7684\u9759\u6001\u5c5e\u6027\uff08\u6807\u7b7e\uff09\u662f\u4e0d\u4e00\u6837\u7684\u3002\u63cf\u8ff0\u4e00\u4e2a\u8d85\u7ea7\u8868\uff08\u67d0\u4e00\u7279\u5b9a\u7c7b\u578b\u7684\u6570\u636e\u91c7\u96c6\u70b9\u7684\u96c6\u5408\uff09\uff0c\u9664\u9700\u8981\u5b9a\u4e49\u91c7\u96c6\u91cf\u7684\u8868\u7ed3\u6784\u4e4b\u5916\uff0c\u8fd8\u9700\u8981\u5b9a\u4e49\u5176\u6807\u7b7e\u7684 schema\uff0c\u6807\u7b7e\u7684\u6570\u636e\u7c7b\u578b\u53ef\u4ee5\u662f\u6574\u6570\u3001\u6d6e\u70b9\u6570\u3001\u5b57\u7b26\u4e32\uff0c\u6807\u7b7e\u53ef\u4ee5\u6709\u591a\u4e2a\uff0c\u53ef\u4ee5\u4e8b\u540e\u589e\u52a0\u3001\u5220\u9664\u6216\u4fee\u6539\u3002\u5982\u679c\u6574\u4e2a\u7cfb\u7edf\u6709 N \u4e2a\u4e0d\u540c\u7c7b\u578b\u7684\u6570\u636e\u91c7\u96c6\u70b9\uff0c\u5c31\u9700\u8981\u5efa\u7acb N \u4e2a\u8d85\u7ea7\u8868\u3002\n\u5728 TDengine \u7684\u8bbe\u8ba1\u91cc\uff0c",(0,l.yg)("strong",{parentName:"p"},"\u8868\u7528\u6765\u4ee3\u8868\u4e00\u4e2a\u5177\u4f53\u7684\u6570\u636e\u91c7\u96c6\u70b9\uff0c\u8d85\u7ea7\u8868\u7528\u6765\u4ee3\u8868\u4e00\u7ec4\u76f8\u540c\u7c7b\u578b\u7684\u6570\u636e\u91c7\u96c6\u70b9\u96c6\u5408"),"\u3002"),(0,l.yg)("p",null,"\u8fd9\u91cc\u7684\u8d85\u7ea7\u8868\u3001\u5b50\u8868\u7684\u8bbe\u8ba1\u5f88\u6709\u610f\u601d\uff0c\u5b50\u8868\u5c31\u662f\u67d0\u4e2a\u8bbe\u5907\uff08\u865a\u62df\u7684\uff0c\u5176\u4ed6\u4e5f\u884c\uff09\uff0c\u8fd9\u4e2a\u662f\u6570\u636e\u653e\u5230\u4e00\u5757\u7684\u6700\u5c0f\u5355\u4f4d\uff0c\u8fd9\u91cc\u548c\u5176\u4ed6\u65f6\u5e8f\u6570\u636e\u5e93\u7684\u5f88\u5927\u533a\u522b\uff0c\u53ef\u6709\u6709\u6548\u5904\u7406\u201c\u8bbe\u5907\u5220\u4e86\uff0c\u6570\u636e\u8fd8\u5b58\u5728\u7684\u95ee\u9898\u201d\u3002"),(0,l.yg)("h4",{id:"\u5b50\u8868-subtable"},"\u5b50\u8868 (Subtable)"),(0,l.yg)("p",null,"\u5f53\u4e3a\u67d0\u4e2a\u5177\u4f53\u6570\u636e\u91c7\u96c6\u70b9\u521b\u5efa\u8868\u65f6\uff0c\u7528\u6237\u53ef\u4ee5\u4f7f\u7528\u8d85\u7ea7\u8868\u7684\u5b9a\u4e49\u505a\u6a21\u677f\uff0c\u540c\u65f6\u6307\u5b9a\u8be5\u5177\u4f53\u91c7\u96c6\u70b9\uff08\u8868\uff09\u7684\u5177\u4f53\u6807\u7b7e\u503c\u6765\u521b\u5efa\u8be5\u8868\u3002",(0,l.yg)("strong",{parentName:"p"},"\u901a\u8fc7\u8d85\u7ea7\u8868\u521b\u5efa\u7684\u8868\u79f0\u4e4b\u4e3a\u5b50\u8868"),"\u3002\u6b63\u5e38\u7684\u8868\u4e0e\u5b50\u8868\u7684\u5dee\u5f02\u5728\u4e8e\uff1a"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u5b50\u8868\u5c31\u662f\u8868\uff0c\u56e0\u6b64\u6240\u6709\u6b63\u5e38\u8868\u7684 SQL \u64cd\u4f5c\u90fd\u53ef\u4ee5\u5728\u5b50\u8868\u4e0a\u6267\u884c\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u5b50\u8868\u5728\u6b63\u5e38\u8868\u7684\u57fa\u7840\u4e0a\u6709\u6269\u5c55\uff0c\u5b83\u662f\u5e26\u6709\u9759\u6001\u6807\u7b7e\u7684\uff0c\u800c\u4e14\u8fd9\u4e9b\u6807\u7b7e\u53ef\u4ee5\u4e8b\u540e\u589e\u52a0\u3001\u5220\u9664\u3001\u4fee\u6539\uff0c\u800c\u6b63\u5e38\u7684\u8868\u6ca1\u6709\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u5b50\u8868\u4e00\u5b9a\u5c5e\u4e8e\u4e00\u5f20\u8d85\u7ea7\u8868\uff0c\u4f46\u666e\u901a\u8868\u4e0d\u5c5e\u4e8e\u4efb\u4f55\u8d85\u7ea7\u8868"),(0,l.yg)("li",{parentName:"ol"},"\u666e\u901a\u8868\u65e0\u6cd5\u8f6c\u4e3a\u5b50\u8868\uff0c\u5b50\u8868\u4e5f\u65e0\u6cd5\u8f6c\u4e3a\u666e\u901a\u8868\u3002")),(0,l.yg)("p",null,"\u8d85\u7ea7\u8868\u4e0e\u4e0e\u57fa\u4e8e\u8d85\u7ea7\u8868\u5efa\u7acb\u7684\u5b50\u8868\u4e4b\u95f4\u7684\u5173\u7cfb\u8868\u73b0\u5728\uff1a"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u4e00\u5f20\u8d85\u7ea7\u8868\u5305\u542b\u6709\u591a\u5f20\u5b50\u8868\uff0c\u8fd9\u4e9b\u5b50\u8868\u5177\u6709\u76f8\u540c\u7684\u91c7\u96c6\u91cf schema\uff0c\u4f46\u5e26\u6709\u4e0d\u540c\u7684\u6807\u7b7e\u503c\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u4e0d\u80fd\u901a\u8fc7\u5b50\u8868\u8c03\u6574\u6570\u636e\u6216\u6807\u7b7e\u7684\u6a21\u5f0f\uff0c\u5bf9\u4e8e\u8d85\u7ea7\u8868\u7684\u6570\u636e\u6a21\u5f0f\u4fee\u6539\u7acb\u5373\u5bf9\u6240\u6709\u7684\u5b50\u8868\u751f\u6548\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u8d85\u7ea7\u8868\u53ea\u5b9a\u4e49\u4e00\u4e2a\u6a21\u677f\uff0c\u81ea\u8eab\u4e0d\u5b58\u50a8\u4efb\u4f55\u6570\u636e\u6216\u6807\u7b7e\u4fe1\u606f\u3002\u56e0\u6b64\uff0c\u4e0d\u80fd\u5411\u4e00\u4e2a\u8d85\u7ea7\u8868\u5199\u5165\u6570\u636e\uff0c\u53ea\u80fd\u5c06\u6570\u636e\u5199\u5165\u5b50\u8868\u4e2d\u3002")),(0,l.yg)("p",null,"\u67e5\u8be2\u65e2\u53ef\u4ee5\u5728\u8868\u4e0a\u8fdb\u884c\uff0c\u4e5f\u53ef\u4ee5\u5728\u8d85\u7ea7\u8868\u4e0a\u8fdb\u884c\u3002\u9488\u5bf9\u8d85\u7ea7\u8868\u7684\u67e5\u8be2\uff0cTDengine \u5c06\u628a\u6240\u6709\u5b50\u8868\u4e2d\u7684\u6570\u636e\u89c6\u4e3a\u4e00\u4e2a\u6574\u4f53\u6570\u636e\u96c6\u8fdb\u884c\u5904\u7406\uff0c\u4f1a\u5148\u628a\u6ee1\u8db3\u6807\u7b7e\u8fc7\u6ee4\u6761\u4ef6\u7684\u8868\u4ece\u8d85\u7ea7\u8868\u4e2d\u627e\u51fa\u6765\uff0c\u7136\u540e\u518d\u626b\u63cf\u8fd9\u4e9b\u8868\u7684\u65f6\u5e8f\u6570\u636e\uff0c\u8fdb\u884c\u805a\u5408\u64cd\u4f5c\uff0c\u8fd9\u6837\u9700\u8981\u626b\u63cf\u7684\u6570\u636e\u96c6\u4f1a\u5927\u5e45\u51cf\u5c11\uff0c\u4ece\u800c\u663e\u8457\u63d0\u9ad8\u67e5\u8be2\u7684\u6027\u80fd\u3002\u672c\u8d28\u4e0a\uff0cTDengine \u901a\u8fc7\u5bf9\u8d85\u7ea7\u8868\u67e5\u8be2\u7684\u652f\u6301\uff0c\u5b9e\u73b0\u4e86\u591a\u4e2a\u540c\u7c7b\u6570\u636e\u91c7\u96c6\u70b9\u7684\u9ad8\u6548\u805a\u5408\u3002\nTDengine \u7cfb\u7edf\u5efa\u8bae\u7ed9\u4e00\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u5efa\u8868\uff0c\u9700\u8981\u901a\u8fc7\u8d85\u7ea7\u8868\u5efa\u8868\uff0c\u800c\u4e0d\u662f\u5efa\u666e\u901a\u8868\u3002"),(0,l.yg)("h4",{id:"\u5e93-database"},"\u5e93 (database)"),(0,l.yg)("p",null,"\u5e93\u662f\u6307\u4e00\u7ec4\u8868\u7684\u96c6\u5408\u3002TDengine \u5bb9\u8bb8\u4e00\u4e2a\u8fd0\u884c\u5b9e\u4f8b\u6709\u591a\u4e2a\u5e93\uff0c\u800c\u4e14\u6bcf\u4e2a\u5e93\u53ef\u4ee5\u914d\u7f6e\u4e0d\u540c\u7684\u5b58\u50a8\u7b56\u7565\u3002\u4e0d\u540c\u7c7b\u578b\u7684\u6570\u636e\u91c7\u96c6\u70b9\u5f80\u5f80\u5177\u6709\u4e0d\u540c\u7684\u6570\u636e\u7279\u5f81\uff0c\u5305\u62ec\u6570\u636e\u91c7\u96c6\u9891\u7387\u7684\u9ad8\u4f4e\uff0c\u6570\u636e\u4fdd\u7559\u65f6\u95f4\u7684\u957f\u77ed\uff0c\u526f\u672c\u7684\u6570\u76ee\uff0c\u6570\u636e\u5757\u7684\u5927\u5c0f\uff0c\u662f\u5426\u5141\u8bb8\u66f4\u65b0\u6570\u636e\u7b49\u7b49\u3002\u4e3a\u4e86\u5728\u5404\u79cd\u573a\u666f\u4e0b TDengine \u90fd\u80fd\u6700\u5927\u6548\u7387\u7684\u5de5\u4f5c\uff0cTDengine \u5efa\u8bae\u5c06\u4e0d\u540c\u6570\u636e\u7279\u5f81\u7684\u8d85\u7ea7\u8868\u521b\u5efa\u5728\u4e0d\u540c\u7684\u5e93\u91cc\u3002"),(0,l.yg)("p",null,"\u4e00\u4e2a\u5e93\u91cc\uff0c\u53ef\u4ee5\u6709\u4e00\u5230\u591a\u4e2a\u8d85\u7ea7\u8868\uff0c\u4f46\u4e00\u4e2a\u8d85\u7ea7\u8868\u53ea\u5c5e\u4e8e\u4e00\u4e2a\u5e93\u3002\u4e00\u4e2a\u8d85\u7ea7\u8868\u6240\u62e5\u6709\u7684\u5b50\u8868\u5168\u90e8\u5b58\u5728\u4e00\u4e2a\u5e93\u91cc\u3002"),(0,l.yg)("p",null,"\u8fd9\u91cc\u4e00\u5b9a\u8981\u6ce8\u610f\uff0c\u6211\u4eec\u5728\u8bbe\u8ba1\u5e93\u7684\u65f6\u5019\uff0c\u4e00\u5b9a\u8981\u6839\u636e\u6570\u636e\u7684\u60c5\u51b5\u6765\uff0c\u4f8b\u5982\u4e0a\u4e0b\u7ebf\u6d88\u606f\u548c\u8bbe\u5907\u5386\u53f2\u6570\u636e\u5e94\u8be5\u5206\u4e24\u4e2a\u5e93\uff0c\u56e0\u4e3a\u4ed6\u4eec\u7684\u6570\u636e\u4fdd\u7559\u65f6\u95f4\u4e0d\u540c\uff0c\u8bbe\u5907\u4e0a\u4e0b\u7ebf\u6d88\u606f\u5b58 1 \u5e74\u5c31\u5f88\u591a\u4e86\uff0c\u8bbe\u5907\u5386\u53f2\u6570\u636e\u53ef\u80fd\u9700\u8981\u5b58 5 \u5e74\u4ee5\u4e0a\u3002"),(0,l.yg)("h3",{id:"\u51c6\u5907\u6570\u636e"},"\u51c6\u5907\u6570\u636e"),(0,l.yg)("p",null,"\u7ed3\u5408\u4e0a\u9762\u7684\u6982\u5ff5\u4ee5\u53ca SQL \u8bed\u6cd5\u53ef\u4ee5\u521b\u5efa\u8868\u505a\u538b\u6d4b\u4e86\uff0cSQL \u662f\u53c2\u8003\u76ee\u524d influxdb \u5b58\u50a8\u7684\u5386\u53f2\u6570\u636e\u6765\u7684\u3002"),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-sql"},'# \u4fdd\u5b5810\u5e74 1\u4e2a\u526f\u672c\ncreate database ucloud keep 3650 REPLICA 2;\nuse ucloud;\n\n#\u521b\u5efa\u8d85\u7ea7\u8868\ncreate stable datapoint_record(ts timestamp,value double,StringValue NCHAR(128),DataType NCHAR(10),StorageFlag int)\n tags(DeviceId NCHAR(32),DataPointId int,SlaveIndex int);\n#\u63d2\u5165\u6d4b\u8bd5\u6570\u636e\ninsert into D00500221122700004100_1_1 using datapoint_record\ntags(00500221122700004100,1,1)\nvalues(now(),1,"1","ushort",1);\ninsert into D00500221122700004100_1_2 using datapoint_record\ntags(00500221122700004100,1,2)\nvalues(now(),1,"1","ushort",1);\n#\u67e5\u8be2\nselect * from datapoint_record;\n\n')),(0,l.yg)("p",null,"\u6700\u91cd\u70b9\u7684\u5176\u5b9e\u662f\u8868\u7ed3\u6784\u7684\u8bbe\u8ba1\u4e86\uff0c\u7ed3\u5408\u6211\u4eec\u7684\u4e1a\u52a1\uff0c\u6211\u4eec\u5e73\u53f0\u7684\u201c\u91c7\u96c6\u91cf\u201d\u662f\u914d\u7f6e\u51fa\u6765\uff0c\u6240\u4ee5\u91c7\u96c6\u91cf\u662f\u4e0d\u56fa\u5b9a\u7684\uff0c\u7528\u6237\u4f1a\u6839\u636e\u81ea\u5df1\u7684\u4e8b\u60c5\u60c5\u51b5\u52a8\u6001\u7684\u589e\u5220\u3002\u6240\u4ee5\u6211\u4eec\u7684\u5b50\u8868\u53ea\u80fd\u6709\u4e00\u4e2a\u91c7\u96c6\u91cf\uff0c\u8fd9\u4e2a\u662f\u5173\u952e\u3002"),(0,l.yg)("p",null,"\u6211\u4eec\u76ee\u524d\u7528\u7684\u65f6\u5e8f\u6570\u636e\u5e93\u662f InfluxDB\uff0c\u6240\u4ee5\u9700\u8981\u6709\u4e2a\u4e2d\u95f4\u4ef6\uff0c\u8f6f\u5b9e\u65f6\u540c\u6b65\u5230 TDengine\u3002\u5b9e\u73b0\u601d\u8def\u4e3a\uff1a"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u5b9a\u65f6\u6bcf\u5206\u949f\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u5bfc\u51fa InfluxDB \u6570\u636e\uff0c\u4e00\u5206\u949f\u7684\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u8bfb\u53d6\u8fd9\u4e2a\u5bfc\u51fa\u6587\u4ef6\uff0c\u5e76\u63d2\u5165\u5230 TDengine \u4e2d\uff1b")),(0,l.yg)("h3",{id:"\u538b\u6d4b"},"\u538b\u6d4b"),(0,l.yg)("p",null,"\u81ea\u5e26 taosBenchmark \u6027\u80fd\u6d4b\u8bd5\u5de5\u5177\uff0c\u53ef\u4ee5\u4f7f\u7528\u3002"),(0,l.yg)("p",null,"\u65e0\u547d\u4ee4\u884c\u53c2\u6570\u76f4\u63a5\u8fd0\u884c taosBenchmark\uff0c\u56de\u8f66\u76f4\u63a5\u6267\u884c\uff0c\u9ed8\u8ba4\u5728 TDengine \u4e2d\u521b\u5efa\u4e00\u4e2a\u540d\u4e3a test \u7684\u6570\u636e\u5e93\uff0ctest \u6570\u636e\u5e93\u4e0b\u521b\u5efa\u540d\u4e3a meters \u7684\u4e00\u5f20\u8d85\u7ea7\u8868\uff0c\u8d85\u7ea7\u8868\u4e0b\u521b\u5efa 10000 \u5f20\u8868\uff0c\u6bcf\u5f20\u8868\u4e2d\u5199\u5165 10000 \u6761\u8bb0\u5f55\u3002"),(0,l.yg)("p",null,(0,l.yg)("img",{alt:"image.png",src:t(8123).A,width:"1435",height:"48"}),"\n1w \u5f20\u8868\u7528\u4e86\u63a5\u8fd1 4 \u5206\u949f\u521b\u5efa\u5b8c\u6210\uff0c\u5f53\u7136\u4e86\u548c\u6d4b\u8bd5\u670d\u52a1\u5668\u7684\u673a\u68b0\u786c\u76d8\u5e94\u8be5\u6709\u5f88\u5927\u5173\u7cfb\uff1b"),(0,l.yg)("p",null,(0,l.yg)("img",{alt:"image.png",src:t(3906).A,width:"1237",height:"58"}),"\n\u63d2\u5165 1 \u4ebf\u8c03\u6570\u636e\u7528\u4e86 18 \u79d2\uff0c\u5f53\u7136\u4e86\u548c\u6d4b\u8bd5\u670d\u52a1\u5668\u7684\u673a\u68b0\u786c\u76d8\u5e94\u8be5\u6709\u5f88\u5927\u5173\u7cfb\uff1b"),(0,l.yg)("h3",{id:"\u5751\u70b9\u6c47\u603b"},"\u5751\u70b9\u6c47\u603b"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u793e\u533a\u7248\u672c\u4e0d\u652f\u6301\u201c\u5220\u9664\u6307\u5b9a\u65f6\u95f4\u8303\u56f4\u7684\u6570\u636e\u201d\u7684\u529f\u80fd\uff0c\u4f01\u4e1a\u7248\u624d\u652f\u6301\uff0c\u4f46\u662f\u6709\u4e9b\u7279\u6b8a\u60c5\u51b5\u8fd8\u662f\u9700\u8981\u5220\u9664\u6570\u636e\u7684\uff0c\u53ef\u4ee5\u901a\u8fc7\u589e\u52a0\u201c\u5220\u9664\u6807\u8bb0\u5b57\u6bb5\u201d\u6765\u8fc2\u56de\u5904\u7406\u8fd9\u4e2a\u95ee\u9898\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u793e\u533a\u7248\u672c\u4e0d\u652f\u6301\u201cUAF\u201d\uff0c\u4e5f\u5c31\u662f\u7528\u6237\u81ea\u5b9a\u4e49\u51fd\u6570\uff0c\u67d0\u4e9b\u7279\u6b8a\u805a\u5408\u6216\u8ba1\u7b97\u7b97\u6cd5\u65e0\u6cd5\u505a\u5230\uff0c\u4e0d\u8fc7\u793e\u533a\u7248\u672c\u63d0\u4f9b\u7684\u5df2\u7ecf\u662f\u7edd\u5bf9\u90e8\u5206\u4e86\u3002"),(0,l.yg)("li",{parentName:"ol"},"java client \u4f7f\u7528 RS \u600e\u4e48\u4e5f\u8fde\u63a5\u4e0d\u4e0a\uff0c\u540e\u6765\u53d1\u73b0\u662f\u670d\u52a1\u7aef\u6ca1\u6709\u542f\u52a8 taosadapter\uff0c\u4f7f\u7528\u547d\u4ee4 systemctl start taosadapter \u542f\u52a8\u540e\uff0cjava client \u5c31\u53ef\u4ee5\u6b63\u5e38\u8fde\u63a5\u4e86\u3002")),(0,l.yg)("h3",{id:"\u9644\u5f55"},"\u9644\u5f55"),(0,l.yg)("h4",{id:"\u5f00\u6e90\u534f\u8bae\u8bf4\u660e"},"\u5f00\u6e90\u534f\u8bae\u8bf4\u660e"),(0,l.yg)("p",null,(0,l.yg)("img",{alt:"image.png",src:t(6413).A,width:"750",height:"454"})))}u.isMDXComponent=!0},9792:(e,n,t)=>{t.d(n,{A:()=>a});const a=t.p+"assets/images/1-86f297ccfad12004e3b4a982a06dbdb1.png"},8123:(e,n,t)=>{t.d(n,{A:()=>a});const a=t.p+"assets/images/2-c10305180fd1dff6eef758f70d21f175.png"},3906:(e,n,t)=>{t.d(n,{A:()=>a});const a=t.p+"assets/images/3-e91119dc93e175c318646768f42457a1.png"},6413:(e,n,t)=>{t.d(n,{A:()=>a});const a=t.p+"assets/images/4-708f8212de488f91684592cc80775af3.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2042],{5680:(e,n,t)=>{t.d(n,{xA:()=>s,yg:()=>m});var a=t(6540);function l(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function r(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function g(e){for(var n=1;n=0||(l[t]=e[t]);return l}(e,n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(l[t]=e[t])}return l}var o=a.createContext({}),d=function(e){var n=a.useContext(o),t=n;return e&&(t="function"==typeof e?e(n):g(g({},n),e)),t},s=function(e){var n=d(e.components);return a.createElement(o.Provider,{value:n},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},y=a.forwardRef((function(e,n){var t=e.components,l=e.mdxType,r=e.originalType,o=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),p=d(t),y=l,m=p["".concat(o,".").concat(y)]||p[y]||u[y]||r;return t?a.createElement(m,g(g({ref:n},s),{},{components:t})):a.createElement(m,g({ref:n},s))}));function m(e,n){var t=arguments,l=n&&n.mdxType;if("string"==typeof e||l){var r=t.length,g=new Array(r);g[0]=y;var i={};for(var o in n)hasOwnProperty.call(n,o)&&(i[o]=n[o]);i.originalType=e,i[p]="string"==typeof e?e:l,g[1]=i;for(var d=2;d{t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>g,default:()=>u,frontMatter:()=>r,metadata:()=>i,toc:()=>d});var a=t(8168),l=(t(6540),t(5680));const r={sidebar_position:2},g=void 0,i={unversionedId:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TDengine",id:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TDengine",title:"TDengine",description:"\u5b98\u7f51",source:"@site/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TDengine.md",sourceDirName:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93",slug:"/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TDengine",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TDengine",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"studySidebar",previous:{title:"InfluxDB",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/InfluxDB"},next:{title:"Apache IoTDB",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Apache IoTDB"}},o={},d=[{value:"\u7b80\u4ecb",id:"\u7b80\u4ecb",level:3},{value:"\u8bc4\u4ef7",id:"\u8bc4\u4ef7",level:3},{value:"\u90e8\u7f72",id:"\u90e8\u7f72",level:3},{value:"\u73af\u5883\u51c6\u5907",id:"\u73af\u5883\u51c6\u5907",level:4},{value:"\u6784\u5efa&\u5b89\u88c5\u3010\u6e90\u7801\u3011",id:"\u6784\u5efa\u5b89\u88c5\u6e90\u7801",level:4},{value:"\u6784\u4ef6\u5b89\u88c5\u3010\u5b89\u88c5\u5305\u3011",id:"\u6784\u4ef6\u5b89\u88c5\u5b89\u88c5\u5305",level:4},{value:"\u4f53\u9a8c SQL",id:"\u4f53\u9a8c-sql",level:4},{value:"\u96c6\u7fa4\u90e8\u7f72",id:"\u96c6\u7fa4\u90e8\u7f72",level:4},{value:"\u57fa\u672c\u6982\u5ff5",id:"\u57fa\u672c\u6982\u5ff5",level:3},{value:"\u91c7\u96c6\u91cf (Metric)",id:"\u91c7\u96c6\u91cf-metric",level:4},{value:"\u6807\u7b7e (Label/Tag)",id:"\u6807\u7b7e-labeltag",level:4},{value:"\u6570\u636e\u91c7\u96c6\u70b9 (Data Collection Point)",id:"\u6570\u636e\u91c7\u96c6\u70b9-data-collection-point",level:4},{value:"\u8868 (Table)",id:"\u8868-table",level:4},{value:"\u8d85\u7ea7\u8868 (STable)",id:"\u8d85\u7ea7\u8868-stable",level:4},{value:"\u5b50\u8868 (Subtable)",id:"\u5b50\u8868-subtable",level:4},{value:"\u5e93 (database)",id:"\u5e93-database",level:4},{value:"\u51c6\u5907\u6570\u636e",id:"\u51c6\u5907\u6570\u636e",level:3},{value:"\u538b\u6d4b",id:"\u538b\u6d4b",level:3},{value:"\u5751\u70b9\u6c47\u603b",id:"\u5751\u70b9\u6c47\u603b",level:3},{value:"\u9644\u5f55",id:"\u9644\u5f55",level:3},{value:"\u5f00\u6e90\u534f\u8bae\u8bf4\u660e",id:"\u5f00\u6e90\u534f\u8bae\u8bf4\u660e",level:4}],s={toc:d},p="wrapper";function u(e){let{components:n,...r}=e;return(0,l.yg)(p,(0,a.A)({},s,r,{components:n,mdxType:"MDXLayout"}),(0,l.yg)("p",null,(0,l.yg)("a",{parentName:"p",href:"https://www.taosdata.com/"},"\u5b98\u7f51"),"\n",(0,l.yg)("a",{parentName:"p",href:"https://github.com/taosdata/TDengine"},"GitHub \u94fe\u63a5\u5730\u5740")),(0,l.yg)("h3",{id:"\u7b80\u4ecb"},"\u7b80\u4ecb"),(0,l.yg)("p",null,"\u5f00\u6e90\u534f\u8bae\uff1aAGPL V3\n\u5f00\u53d1\u8bed\u8a00\uff1aC\n\u5546\u4e1a\u516c\u53f8\uff1a\u5317\u4eac\u6d9b\u601d\u6570\u636e\u79d1\u6280\u6709\u9650\u516c\u53f8(TAOS Data) \uff1b\u6d9b\u601d\u6570\u636e\u91c7\u7528 AGPL \u8bb8\u53ef\u8bc1\uff0c\u5df2\u7ecf\u5c06 TDengine \u7684\u5185\u6838(\u5b58\u50a8\u3001\u8ba1\u7b97\u5f15\u64ce\u548c\u96c6\u7fa4\uff09100%\u5f00\u6e90\u3002\u6d9b\u601d\u6570\u636e\u5c06\u5c3d\u6700\u5927\u52aa\u529b\u6253\u9020\u5f00\u53d1\u8005\u793e\u533a\uff0c\u7ef4\u62a4\u8fd9\u4e2a\u5f00\u6e90\u7684\u5546\u4e1a\u6a21\u5f0f\uff0c\u76f8\u4fe1\u4e0d\u5c06\u6700\u6838\u5fc3\u7684\u4ee3\u7801\u5f00\u6e90\uff0c\u4efb\u4f55\u57fa\u7840\u8f6f\u4ef6\u90fd\u5c06\u65e0\u6cd5\u8d62\u5f97\u5e02\u573a\u3002\u6d9b\u601d\u6570\u636e\u5e0c\u671b\u901a\u8fc7\u5f00\u6e90\uff0c\u5feb\u901f\u83b7\u5f97\u5e02\u573a\u53cd\u9988\uff0c\u5b8c\u5584\u4ea7\u54c1\uff0c\u5b8c\u5584\u751f\u6001\uff0c\u800c\u4e14\u5438\u5f15\u66f4\u591a\u7684\u5f00\u53d1\u8005\u52a0\u5165\u5230\u8fd9\u4e2a\u9879\u76ee\u4e2d\u3002\n\u652f\u6301\u96c6\u7fa4\uff1a\u5f00\u6e90\u7248\u672c\u652f\u6301\u96c6\u7fa4"),(0,l.yg)("h3",{id:"\u8bc4\u4ef7"},"\u8bc4\u4ef7"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u56fd\u5185\u516c\u53f8\u4f17\u591a\u9879\u76ee\u4f7f\u7528\uff0c\u4f7f\u7528\u91cf\u8fd8\u662f\u5f88\u9ad8\u7684\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u5f00\u6e90\u65e2\u652f\u6301\u96c6\u7fa4\uff0c\u5927\u6570\u636e\u91cf\u7684\u62d3\u5c55\u662f\u6ca1\u95ee\u9898\u7684\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u6587\u6863\u76f8\u5bf9\u6765\u8bf4\u662f\u975e\u5e38\u53cb\u597d\u7684\uff0c\u65b9\u65b9\u9762\u9762\u4ff1\u5230\uff1b")),(0,l.yg)("h3",{id:"\u90e8\u7f72"},"\u90e8\u7f72"),(0,l.yg)("h4",{id:"\u73af\u5883\u51c6\u5907"},"\u73af\u5883\u51c6\u5907"),(0,l.yg)("p",null,"\u6587\u6863\u662f\u4e2d\u6587\u7684\uff0c\u8fd8\u662f\u4e0d\u9519\u7684\u3002",(0,l.yg)("a",{parentName:"p",href:"https://github.com/taosdata/TDengine/blob/develop/README-CN.md"},"\u5b89\u88c5\u6587\u6863")),(0,l.yg)("p",null,"\u95ee\u8fd0\u7ef4\u7ae5\u978b\u8981\u4e86\u9884\u7814\u4f7f\u7528\u7684\u670d\u52a1\u5668\uff0c\u5982\u4e0b\uff1a"),(0,l.yg)("table",null,(0,l.yg)("thead",{parentName:"table"},(0,l.yg)("tr",{parentName:"thead"},(0,l.yg)("th",{parentName:"tr",align:null},"hostname"),(0,l.yg)("th",{parentName:"tr",align:null},"ip"))),(0,l.yg)("tbody",{parentName:"table"},(0,l.yg)("tr",{parentName:"tbody"},(0,l.yg)("td",{parentName:"tr",align:null},"node57"),(0,l.yg)("td",{parentName:"tr",align:null},"192.168.0.57")),(0,l.yg)("tr",{parentName:"tbody"},(0,l.yg)("td",{parentName:"tr",align:null},"node54"),(0,l.yg)("td",{parentName:"tr",align:null},"192.168.0.54")),(0,l.yg)("tr",{parentName:"tbody"},(0,l.yg)("td",{parentName:"tr",align:null},"node53"),(0,l.yg)("td",{parentName:"tr",align:null},"192.168.0.53")),(0,l.yg)("tr",{parentName:"tbody"},(0,l.yg)("td",{parentName:"tr",align:null},"node55"),(0,l.yg)("td",{parentName:"tr",align:null},"192.168.0.55")))),(0,l.yg)("p",null,"\u770b\u4e86\u4e00\u4e0b\u64cd\u4f5c\u7cfb\u7edf\u7248\u672c\u4e3a Centos 7\uff0c\u5927\u5bb6\u6839\u636e\u81ea\u5df1\u670d\u52a1\u5668\u7684\u64cd\u4f5c\u7cfb\u7edf\u5b89\u88c5\u4e0d\u540c\u547d\u4ee4\uff0c\u4ee5\u4e0b\u90fd\u662f\u57fa\u4e8e Centos7 \u7684"),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-shell"},"[root@centos ~]# cat /etc/redhat-release\nCentOS Linux release 7.9.2009 (Core)\n")),(0,l.yg)("p",null,"\u6839\u636e\u6587\u6863\u4f9d\u6b21\u6267\u884c\uff1a"),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-shell"},"sudo yum install -y gcc gcc-c++ make cmake git\n\nsudo yum install -y java-1.8.0-openjdk\n\n#maven\u4e0d\u8981\u8fd9\u4e48\u5b89\u88c5\uff0c\u6709\u53ef\u80fd\u7248\u672c\u6bd4\u8f83\u4f4e \u53ea\u80fd\u8bf4\u6709\u53ef\u80fd\nsudo yum install -y maven\n\nsudo yum install zlib-devel xz-devel snappy-devel jansson jansson-devel pkgconfig libatomic libstdc++-static\n\ngit clone https://github.com/taosdata/TDengine.git\ncd TDengine\n\n#Go \u8fde\u63a5\u5668\u548c Grafana \u63d2\u4ef6\u5728\u5176\u4ed6\u72ec\u7acb\u4ed3\u5e93\uff0c\u5982\u679c\u5b89\u88c5\u5b83\u4eec\u7684\u8bdd\uff0c\u9700\u8981\u5728 TDengine \u76ee\u5f55\u4e0b\u901a\u8fc7\u6b64\u547d\u4ee4\u5b89\u88c5\uff1a\ngit submodule update --init --recursive\n")),(0,l.yg)("p",null,"\u6267\u884c\u6700\u540e\u7684\u547d\u4ee4\u7684\u65f6\u5019\uff0c\u4f1a\u62a5\u9519\uff0c\u9700\u8981\u914d\u7f6e git\uff0c\u3010YiRanCN\u3011\u548c\u3010",(0,l.yg)("a",{parentName:"p",href:"mailto:jiot.cloud059@163.com"},"jiot.cloud059@163.com"),"\u3011\u90fd\u662f\u6211\u7684 git \u8d26\u53f7\uff0c\u9700\u8981\u6839\u636e\u81ea\u5df1\u7684\u8d26\u53f7\u81ea\u884c\u914d\u7f6e"),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-shell"},'git config --global http.sslVerify false\ngit config --global user.name "YiRanCN"\ngit config --global user.email "xxx@163.com"\n\nssh-keygen -t rsa -C "YiRanCN"\n\n#\u83b7\u53d6 \u4e4b\u540e \u4e0d\u8981\u540e\u9762\u7684\u8d26\u53f7 \u590d\u5236\u4e0b\u6765\ncat /root/.ssh/id_rsa.pub\n')),(0,l.yg)("p",null,"\u6839\u636e\u3010cat /root/.ssh/id_rsa.pub\u3011\u8fd9\u4e2a\u5f97\u7ed3\u679c\uff0c\u653e\u5230 github \u8d26\u53f7\u7684\u3010SSH and GPG keys\u3011\u529f\u80fd\u4e0b\u9762\n",(0,l.yg)("img",{parentName:"p",src:"https://cdn.nlark.com/yuque/0/2022/png/276833/1654587900708-8145fd94-a69e-492a-bf83-41ddd0a2e789.png#averageHue=%23fefefe&clientId=u7121fde3-9777-4&from=paste&height=1174&id=ua6a234e7&name=image.png&originHeight=1174&originWidth=2428&originalType=binary&ratio=1&rotation=0&showTitle=false&size=317728&status=done&style=none&taskId=u1b8b6bce-4d72-4ca1-b2c2-48963f55d0b&title=&width=2428",alt:"image.png"})),(0,l.yg)("h4",{id:"\u6784\u5efa\u5b89\u88c5\u6e90\u7801"},"\u6784\u5efa&\u5b89\u88c5\u3010\u6e90\u7801\u3011"),(0,l.yg)("p",null,"\u6784\u5efa\u5f88\u7b80\u5355\uff0c\u81ea\u5e26\u6784\u5efa\u811a\u672c"),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-shell"},"./build.sh\n")),(0,l.yg)("h4",{id:"\u6784\u4ef6\u5b89\u88c5\u5b89\u88c5\u5305"},"\u6784\u4ef6\u5b89\u88c5\u3010\u5b89\u88c5\u5305\u3011"),(0,l.yg)("p",null,"\u4e0b\u8f7d\u5730\u5740\uff1a\u3010",(0,l.yg)("a",{parentName:"p",href:"https://docs.tdengine.com/get-started/#!"},"https://docs.tdengine.com/get-started/#!"),"\u3011\n\u6267\u884c\u3010rpm -i TDengine-server-2.6.0.1-Linux-x64.rpm\u3011\uff0c\u5982\u679c\u53ea\u662f\u5b89\u88c5\u975e\u96c6\u7fa4\u7248\u672c\u76f4\u63a5\u56de\u8f66\u5373\u53ef\u3002\n\u3010sudo systemctl start taosd\u3011\u542f\u52a8\uff1b\n\u6267\u884c\u3010sudo systemctl status taosd\u3011\u68c0\u67e5\u8fd0\u884c\u72b6\u6001"),(0,l.yg)("p",null,"\u5982\u679c\u9700\u8981\u5378\u8f7d\uff1a\n\u3010sudo rpm -qa|grep tdengine\u3011\n\u3010sudo rpm -e tdengine\u3011\n\u3010sudo rm -rf /var/lib/taos/","*","\u3011\u614e\u7528"),(0,l.yg)("h4",{id:"\u4f53\u9a8c-sql"},"\u4f53\u9a8c SQL"),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-shell"},"CREATE DATABASE demo;\nUSE demo;\nCREATE TABLE t (ts TIMESTAMP, speed INT);\nINSERT INTO t VALUES('2019-07-15 00:00:00', 10);\nINSERT INTO t VALUES('2019-07-15 01:00:00', 20);\nSELECT * FROM t;\n")),(0,l.yg)("p",null,"\u4e3a\u964d\u4f4e\u5b66\u4e60\u95e8\u69db\uff0cTDengine \u91c7\u7528\u4f20\u7edf\u7684\u5173\u7cfb\u578b\u6570\u636e\u5e93\u6a21\u578b\u7ba1\u7406\u6570\u636e\uff0c\u548c MySQL \u6ca1\u5565\u592a\u5927\u533a\u522b\u3002"),(0,l.yg)("h4",{id:"\u96c6\u7fa4\u90e8\u7f72"},"\u96c6\u7fa4\u90e8\u7f72"),(0,l.yg)("p",null,"\u56e0\u4e3a\u6211\u7684\u76ee\u6807\u662f\u96c6\u7fa4\uff0c\u6240\u4ee5\uff0c\u4e0a\u9762\u7684\u90fd\u662f\u5f00\u80c3\u5c0f\u83dc\u3002"),(0,l.yg)("table",null,(0,l.yg)("thead",{parentName:"table"},(0,l.yg)("tr",{parentName:"thead"},(0,l.yg)("th",{parentName:"tr",align:null},"hostname"),(0,l.yg)("th",{parentName:"tr",align:null},"ip"))),(0,l.yg)("tbody",{parentName:"table"},(0,l.yg)("tr",{parentName:"tbody"},(0,l.yg)("td",{parentName:"tr",align:null},"node57"),(0,l.yg)("td",{parentName:"tr",align:null},"192.168.0.57")),(0,l.yg)("tr",{parentName:"tbody"},(0,l.yg)("td",{parentName:"tr",align:null},"node54"),(0,l.yg)("td",{parentName:"tr",align:null},"192.168.0.54")),(0,l.yg)("tr",{parentName:"tbody"},(0,l.yg)("td",{parentName:"tr",align:null},"node53"),(0,l.yg)("td",{parentName:"tr",align:null},"192.168.0.53")),(0,l.yg)("tr",{parentName:"tbody"},(0,l.yg)("td",{parentName:"tr",align:null},"node55"),(0,l.yg)("td",{parentName:"tr",align:null},"192.168.0.55")))),(0,l.yg)("p",null,"\u4f7f\u7528\n\u3010hostnamectl set-hostname node57\u3011\n\u3010hostnamectl set-hostname node54\u3011\n\u3010hostnamectl set-hostname node53\u3011\n\u3010hostnamectl set-hostname node55\u3011\n\u547d\u4ee4\u4fee\u6539 hostname.\n\u5c06\u5982\u4e0b\u914d\u7f6e\u653e\u5230\u3010vim /etc/hosts\u3011\u6587\u4ef6\u5185"),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-shell"},"192.168.0.57 node57\n192.168.0.54 node54\n192.168.0.53 node53\n192.168.0.55 node55\n")),(0,l.yg)("p",null,"\u6240\u6709\u7684\u8282\u70b9\u5b89\u88c5\u4e00\u904d\u3002\n\u96c6\u7fa4\u642d\u5efa\u5b8c\u6210\uff0c\u5982\u4e0b\u56fe\u6240\u793a\uff1a\n",(0,l.yg)("img",{alt:"image.png",src:t(9792).A,width:"1087",height:"153"})),(0,l.yg)("h3",{id:"\u57fa\u672c\u6982\u5ff5"},"\u57fa\u672c\u6982\u5ff5"),(0,l.yg)("h4",{id:"\u91c7\u96c6\u91cf-metric"},"\u91c7\u96c6\u91cf (Metric)"),(0,l.yg)("p",null,"\u91c7\u96c6\u91cf\u662f\u6307\u4f20\u611f\u5668\u3001\u8bbe\u5907\u6216\u5176\u4ed6\u7c7b\u578b\u91c7\u96c6\u70b9\u91c7\u96c6\u7684\u7269\u7406\u91cf\uff0c\u6bd4\u5982\u7535\u6d41\u3001\u7535\u538b\u3001\u6e29\u5ea6\u3001\u538b\u529b\u3001GPS \u4f4d\u7f6e\u7b49\uff0c\u662f\u968f\u65f6\u95f4\u53d8\u5316\u7684\uff0c\u6570\u636e\u7c7b\u578b\u53ef\u4ee5\u662f\u6574\u578b\u3001\u6d6e\u70b9\u578b\u3001\u5e03\u5c14\u578b\uff0c\u4e5f\u53ef\u662f\u5b57\u7b26\u4e32\u3002\u968f\u7740\u65f6\u95f4\u7684\u63a8\u79fb\uff0c\u5b58\u50a8\u7684\u91c7\u96c6\u91cf\u7684\u6570\u636e\u91cf\u8d8a\u6765\u8d8a\u5927\u3002"),(0,l.yg)("h4",{id:"\u6807\u7b7e-labeltag"},"\u6807\u7b7e (Label/Tag)"),(0,l.yg)("p",null,"\u6807\u7b7e\u662f\u6307\u4f20\u611f\u5668\u3001\u8bbe\u5907\u6216\u5176\u4ed6\u7c7b\u578b\u91c7\u96c6\u70b9\u7684\u9759\u6001\u5c5e\u6027\uff0c\u4e0d\u662f\u968f\u65f6\u95f4\u53d8\u5316\u7684\uff0c\u6bd4\u5982\u8bbe\u5907\u578b\u53f7\u3001\u989c\u8272\u3001\u8bbe\u5907\u7684\u6240\u5728\u5730\u7b49\uff0c\u6570\u636e\u7c7b\u578b\u53ef\u4ee5\u662f\u4efb\u4f55\u7c7b\u578b\u3002\u867d\u7136\u662f\u9759\u6001\u7684\uff0c\u4f46 TDengine \u5bb9\u8bb8\u7528\u6237\u4fee\u6539\u3001\u5220\u9664\u6216\u589e\u52a0\u6807\u7b7e\u503c\u3002\u4e0e\u91c7\u96c6\u91cf\u4e0d\u4e00\u6837\u7684\u662f\uff0c\u968f\u65f6\u95f4\u7684\u63a8\u79fb\uff0c\u5b58\u50a8\u7684\u6807\u7b7e\u7684\u6570\u636e\u91cf\u4e0d\u4f1a\u6709\u4ec0\u4e48\u53d8\u5316\u3002"),(0,l.yg)("h4",{id:"\u6570\u636e\u91c7\u96c6\u70b9-data-collection-point"},"\u6570\u636e\u91c7\u96c6\u70b9 (Data Collection Point)"),(0,l.yg)("p",null,"\u6570\u636e\u91c7\u96c6\u70b9\u662f\u6307\u6309\u7167\u9884\u8bbe\u65f6\u95f4\u5468\u671f\u6216\u53d7\u4e8b\u4ef6\u89e6\u53d1\u91c7\u96c6\u7269\u7406\u91cf\u7684\u786c\u4ef6\u6216\u8f6f\u4ef6\u3002\u4e00\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u53ef\u4ee5\u91c7\u96c6\u4e00\u4e2a\u6216\u591a\u4e2a\u91c7\u96c6\u91cf\uff0c",(0,l.yg)("strong",{parentName:"p"},"\u4f46\u8fd9\u4e9b\u91c7\u96c6\u91cf\u90fd\u662f\u540c\u4e00\u65f6\u523b\u91c7\u96c6\u7684\uff0c\u5177\u6709\u76f8\u540c\u7684\u65f6\u95f4\u6233"),"\u3002\u5bf9\u4e8e\u590d\u6742\u7684\u8bbe\u5907\uff0c\u5f80\u5f80\u6709\u591a\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\uff0c\u6bcf\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u91c7\u96c6\u7684\u5468\u671f\u90fd\u53ef\u80fd\u4e0d\u4e00\u6837\uff0c\u800c\u4e14\u5b8c\u5168\u72ec\u7acb\uff0c\u4e0d\u540c\u6b65\u3002\u6bd4\u5982\u5bf9\u4e8e\u4e00\u53f0\u6c7d\u8f66\uff0c\u6709\u6570\u636e\u91c7\u96c6\u70b9\u4e13\u95e8\u91c7\u96c6 GPS \u4f4d\u7f6e\uff0c\u6709\u6570\u636e\u91c7\u96c6\u70b9\u4e13\u95e8\u91c7\u96c6\u53d1\u52a8\u673a\u72b6\u6001\uff0c\u6709\u6570\u636e\u91c7\u96c6\u70b9\u4e13\u95e8\u91c7\u96c6\u8f66\u5185\u7684\u73af\u5883\uff0c\u8fd9\u6837\u4e00\u53f0\u6c7d\u8f66\u5c31\u6709\u4e09\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u3002"),(0,l.yg)("h4",{id:"\u8868-table"},"\u8868 (Table)"),(0,l.yg)("p",null,"\u56e0\u4e3a\u91c7\u96c6\u91cf\u4e00\u822c\u662f\u7ed3\u6784\u5316\u6570\u636e\uff0c\u540c\u65f6\u4e3a\u964d\u4f4e\u5b66\u4e60\u95e8\u69db\uff0cTDengine \u91c7\u7528\u4f20\u7edf\u7684\u5173\u7cfb\u578b\u6570\u636e\u5e93\u6a21\u578b\u7ba1\u7406\u6570\u636e\u3002\u7528\u6237\u9700\u8981\u5148\u521b\u5efa\u5e93\uff0c\u7136\u540e\u521b\u5efa\u8868\uff0c\u4e4b\u540e\u624d\u80fd\u63d2\u5165\u6216\u67e5\u8be2\u6570\u636e\u3002\n\u4e3a\u5145\u5206\u5229\u7528\u5176\u6570\u636e\u7684\u65f6\u5e8f\u6027\u548c\u5176\u4ed6\u6570\u636e\u7279\u70b9\uff0cTDengine \u91c7\u53d6",(0,l.yg)("strong",{parentName:"p"},"\u4e00\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u4e00\u5f20\u8868"),"\u7684\u7b56\u7565\uff0c\u8981\u6c42\u5bf9\u6bcf\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u5355\u72ec\u5efa\u8868\uff08\u6bd4\u5982\u6709\u4e00\u5343\u4e07\u4e2a\u667a\u80fd\u7535\u8868\uff0c\u5c31\u9700\u521b\u5efa\u4e00\u5343\u4e07\u5f20\u8868\uff0c\u4e0a\u8ff0\u8868\u683c\u4e2d\u7684 d1001\uff0cd1002\uff0cd1003\uff0cd1004 \u90fd\u9700\u5355\u72ec\u5efa\u8868\uff09\uff0c\u7528\u6765\u5b58\u50a8\u8fd9\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u6240\u91c7\u96c6\u7684\u65f6\u5e8f\u6570\u636e\u3002\u8fd9\u79cd\u8bbe\u8ba1\u6709\u51e0\u5927\u4f18\u70b9\uff1a"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u7531\u4e8e\u4e0d\u540c\u6570\u636e\u91c7\u96c6\u70b9\u4ea7\u751f\u6570\u636e\u7684\u8fc7\u7a0b\u5b8c\u5168\u72ec\u7acb\uff0c\u6bcf\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u7684\u6570\u636e\u6e90\u662f\u552f\u4e00\u7684\uff0c\u4e00\u5f20\u8868\u4e5f\u5c31\u53ea\u6709\u4e00\u4e2a\u5199\u5165\u8005\uff0c\u8fd9\u6837\u5c31\u53ef\u91c7\u7528\u65e0\u9501\u65b9\u5f0f\u6765\u5199\uff0c\u5199\u5165\u901f\u5ea6\u5c31\u80fd\u5927\u5e45\u63d0\u5347\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u5bf9\u4e8e\u4e00\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u800c\u8a00\uff0c\u5176\u4ea7\u751f\u7684\u6570\u636e\u662f\u6309\u7167\u65f6\u95f4\u6392\u5e8f\u7684\uff0c\u56e0\u6b64\u5199\u7684\u64cd\u4f5c\u53ef\u7528\u8ffd\u52a0\u7684\u65b9\u5f0f\u5b9e\u73b0\uff0c\u8fdb\u4e00\u6b65\u5927\u5e45\u63d0\u9ad8\u6570\u636e\u5199\u5165\u901f\u5ea6\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u4e00\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u7684\u6570\u636e\u662f\u4ee5\u5757\u4e3a\u5355\u4f4d\u8fde\u7eed\u5b58\u50a8\u7684\u3002\u5982\u679c\u8bfb\u53d6\u4e00\u4e2a\u65f6\u95f4\u6bb5\u7684\u6570\u636e\uff0c\u5b83\u80fd\u5927\u5e45\u51cf\u5c11\u968f\u673a\u8bfb\u53d6\u64cd\u4f5c\uff0c\u6210\u6570\u91cf\u7ea7\u7684\u63d0\u5347\u8bfb\u53d6\u548c\u67e5\u8be2\u901f\u5ea6\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u4e00\u4e2a\u6570\u636e\u5757\u5185\u90e8\uff0c\u91c7\u7528\u5217\u5f0f\u5b58\u50a8\uff0c\u5bf9\u4e8e\u4e0d\u540c\u6570\u636e\u7c7b\u578b\uff0c\u91c7\u7528\u4e0d\u540c\u538b\u7f29\u7b97\u6cd5\uff0c\u800c\u4e14\u7531\u4e8e\u4e00\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u7684\u91c7\u96c6\u91cf\u7684\u53d8\u5316\u662f\u7f13\u6162\u7684\uff0c\u538b\u7f29\u7387\u66f4\u9ad8\u3002")),(0,l.yg)("p",null,"\u5982\u679c\u91c7\u7528\u4f20\u7edf\u7684\u65b9\u5f0f\uff0c\u5c06\u591a\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u7684\u6570\u636e\u5199\u5165\u4e00\u5f20\u8868\uff0c\u7531\u4e8e\u7f51\u7edc\u5ef6\u65f6\u4e0d\u53ef\u63a7\uff0c\u4e0d\u540c\u6570\u636e\u91c7\u96c6\u70b9\u7684\u6570\u636e\u5230\u8fbe\u670d\u52a1\u5668\u7684\u65f6\u5e8f\u662f\u65e0\u6cd5\u4fdd\u8bc1\u7684\uff0c\u5199\u5165\u64cd\u4f5c\u662f\u8981\u6709\u9501\u4fdd\u62a4\u7684\uff0c\u800c\u4e14\u4e00\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u7684\u6570\u636e\u662f\u96be\u4ee5\u4fdd\u8bc1\u8fde\u7eed\u5b58\u50a8\u5728\u4e00\u8d77\u7684\u3002",(0,l.yg)("strong",{parentName:"p"},"\u91c7\u7528\u4e00\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u4e00\u5f20\u8868\u7684\u65b9\u5f0f\uff0c\u80fd\u6700\u5927\u7a0b\u5ea6\u7684\u4fdd\u8bc1\u5355\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u7684\u63d2\u5165\u548c\u67e5\u8be2\u7684\u6027\u80fd\u662f\u6700\u4f18\u7684\u3002"),"\nTDengine \u5efa\u8bae\u7528\u6570\u636e\u91c7\u96c6\u70b9\u7684\u540d\u5b57\uff08\u5982\u4e0a\u8868\u4e2d\u7684 D1001\uff09\u6765\u505a\u8868\u540d\u3002\u6bcf\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u53ef\u80fd\u540c\u65f6\u91c7\u96c6\u591a\u4e2a\u91c7\u96c6\u91cf\uff08\u5982\u4e0a\u8868\u4e2d\u7684 current\uff0cvoltage\uff0cphase\uff09\uff0c\u6bcf\u4e2a\u91c7\u96c6\u91cf\u5bf9\u5e94\u4e00\u5f20\u8868\u4e2d\u7684\u4e00\u5217\uff0c\u6570\u636e\u7c7b\u578b\u53ef\u4ee5\u662f\u6574\u578b\u3001\u6d6e\u70b9\u578b\u3001\u5b57\u7b26\u4e32\u7b49\u3002\u9664\u6b64\u4e4b\u5916\uff0c\u8868\u7684\u7b2c\u4e00\u5217\u5fc5\u987b\u662f\u65f6\u95f4\u6233\uff0c\u5373\u6570\u636e\u7c7b\u578b\u4e3a timestamp\u3002\u5bf9\u91c7\u96c6\u91cf\uff0cTDengine \u5c06\u81ea\u52a8\u6309\u7167\u65f6\u95f4\u6233\u5efa\u7acb\u7d22\u5f15\uff0c\u4f46\u5bf9\u91c7\u96c6\u91cf\u672c\u8eab\u4e0d\u5efa\u4efb\u4f55\u7d22\u5f15\u3002\u6570\u636e\u7528\u5217\u5f0f\u5b58\u50a8\u65b9\u5f0f\u4fdd\u5b58\u3002\n\u5bf9\u4e8e\u590d\u6742\u7684\u8bbe\u5907\uff0c\u6bd4\u5982\u6c7d\u8f66\uff0c\u5b83\u6709\u591a\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\uff0c\u90a3\u4e48\u5c31\u9700\u8981\u4e3a\u4e00\u53f0\u6c7d\u8f66\u5efa\u7acb\u591a\u5f20\u8868\u3002"),(0,l.yg)("h4",{id:"\u8d85\u7ea7\u8868-stable"},"\u8d85\u7ea7\u8868 (STable)"),(0,l.yg)("p",null,"\u7531\u4e8e\u4e00\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u4e00\u5f20\u8868\uff0c\u5bfc\u81f4\u8868\u7684\u6570\u91cf\u5de8\u589e\uff0c\u96be\u4ee5\u7ba1\u7406\uff0c\u800c\u4e14\u5e94\u7528\u7ecf\u5e38\u9700\u8981\u505a\u91c7\u96c6\u70b9\u4e4b\u95f4\u7684\u805a\u5408\u64cd\u4f5c\uff0c\u805a\u5408\u7684\u64cd\u4f5c\u4e5f\u53d8\u5f97\u590d\u6742\u8d77\u6765\u3002\u4e3a\u89e3\u51b3\u8fd9\u4e2a\u95ee\u9898\uff0cTDengine \u5f15\u5165\u8d85\u7ea7\u8868\uff08Super Table\uff0c\u7b80\u79f0\u4e3a STable\uff09\u7684\u6982\u5ff5\u3002\n\u8d85\u7ea7\u8868\u662f\u6307\u67d0\u4e00\u7279\u5b9a\u7c7b\u578b\u7684\u6570\u636e\u91c7\u96c6\u70b9\u7684\u96c6\u5408\u3002\u540c\u4e00\u7c7b\u578b\u7684\u6570\u636e\u91c7\u96c6\u70b9\uff0c\u5176\u8868\u7684\u7ed3\u6784\u662f\u5b8c\u5168\u4e00\u6837\u7684\uff0c\u4f46\u6bcf\u4e2a\u8868\uff08\u6570\u636e\u91c7\u96c6\u70b9\uff09\u7684\u9759\u6001\u5c5e\u6027\uff08\u6807\u7b7e\uff09\u662f\u4e0d\u4e00\u6837\u7684\u3002\u63cf\u8ff0\u4e00\u4e2a\u8d85\u7ea7\u8868\uff08\u67d0\u4e00\u7279\u5b9a\u7c7b\u578b\u7684\u6570\u636e\u91c7\u96c6\u70b9\u7684\u96c6\u5408\uff09\uff0c\u9664\u9700\u8981\u5b9a\u4e49\u91c7\u96c6\u91cf\u7684\u8868\u7ed3\u6784\u4e4b\u5916\uff0c\u8fd8\u9700\u8981\u5b9a\u4e49\u5176\u6807\u7b7e\u7684 schema\uff0c\u6807\u7b7e\u7684\u6570\u636e\u7c7b\u578b\u53ef\u4ee5\u662f\u6574\u6570\u3001\u6d6e\u70b9\u6570\u3001\u5b57\u7b26\u4e32\uff0c\u6807\u7b7e\u53ef\u4ee5\u6709\u591a\u4e2a\uff0c\u53ef\u4ee5\u4e8b\u540e\u589e\u52a0\u3001\u5220\u9664\u6216\u4fee\u6539\u3002\u5982\u679c\u6574\u4e2a\u7cfb\u7edf\u6709 N \u4e2a\u4e0d\u540c\u7c7b\u578b\u7684\u6570\u636e\u91c7\u96c6\u70b9\uff0c\u5c31\u9700\u8981\u5efa\u7acb N \u4e2a\u8d85\u7ea7\u8868\u3002\n\u5728 TDengine \u7684\u8bbe\u8ba1\u91cc\uff0c",(0,l.yg)("strong",{parentName:"p"},"\u8868\u7528\u6765\u4ee3\u8868\u4e00\u4e2a\u5177\u4f53\u7684\u6570\u636e\u91c7\u96c6\u70b9\uff0c\u8d85\u7ea7\u8868\u7528\u6765\u4ee3\u8868\u4e00\u7ec4\u76f8\u540c\u7c7b\u578b\u7684\u6570\u636e\u91c7\u96c6\u70b9\u96c6\u5408"),"\u3002"),(0,l.yg)("p",null,"\u8fd9\u91cc\u7684\u8d85\u7ea7\u8868\u3001\u5b50\u8868\u7684\u8bbe\u8ba1\u5f88\u6709\u610f\u601d\uff0c\u5b50\u8868\u5c31\u662f\u67d0\u4e2a\u8bbe\u5907\uff08\u865a\u62df\u7684\uff0c\u5176\u4ed6\u4e5f\u884c\uff09\uff0c\u8fd9\u4e2a\u662f\u6570\u636e\u653e\u5230\u4e00\u5757\u7684\u6700\u5c0f\u5355\u4f4d\uff0c\u8fd9\u91cc\u548c\u5176\u4ed6\u65f6\u5e8f\u6570\u636e\u5e93\u7684\u5f88\u5927\u533a\u522b\uff0c\u53ef\u6709\u6709\u6548\u5904\u7406\u201c\u8bbe\u5907\u5220\u4e86\uff0c\u6570\u636e\u8fd8\u5b58\u5728\u7684\u95ee\u9898\u201d\u3002"),(0,l.yg)("h4",{id:"\u5b50\u8868-subtable"},"\u5b50\u8868 (Subtable)"),(0,l.yg)("p",null,"\u5f53\u4e3a\u67d0\u4e2a\u5177\u4f53\u6570\u636e\u91c7\u96c6\u70b9\u521b\u5efa\u8868\u65f6\uff0c\u7528\u6237\u53ef\u4ee5\u4f7f\u7528\u8d85\u7ea7\u8868\u7684\u5b9a\u4e49\u505a\u6a21\u677f\uff0c\u540c\u65f6\u6307\u5b9a\u8be5\u5177\u4f53\u91c7\u96c6\u70b9\uff08\u8868\uff09\u7684\u5177\u4f53\u6807\u7b7e\u503c\u6765\u521b\u5efa\u8be5\u8868\u3002",(0,l.yg)("strong",{parentName:"p"},"\u901a\u8fc7\u8d85\u7ea7\u8868\u521b\u5efa\u7684\u8868\u79f0\u4e4b\u4e3a\u5b50\u8868"),"\u3002\u6b63\u5e38\u7684\u8868\u4e0e\u5b50\u8868\u7684\u5dee\u5f02\u5728\u4e8e\uff1a"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u5b50\u8868\u5c31\u662f\u8868\uff0c\u56e0\u6b64\u6240\u6709\u6b63\u5e38\u8868\u7684 SQL \u64cd\u4f5c\u90fd\u53ef\u4ee5\u5728\u5b50\u8868\u4e0a\u6267\u884c\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u5b50\u8868\u5728\u6b63\u5e38\u8868\u7684\u57fa\u7840\u4e0a\u6709\u6269\u5c55\uff0c\u5b83\u662f\u5e26\u6709\u9759\u6001\u6807\u7b7e\u7684\uff0c\u800c\u4e14\u8fd9\u4e9b\u6807\u7b7e\u53ef\u4ee5\u4e8b\u540e\u589e\u52a0\u3001\u5220\u9664\u3001\u4fee\u6539\uff0c\u800c\u6b63\u5e38\u7684\u8868\u6ca1\u6709\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u5b50\u8868\u4e00\u5b9a\u5c5e\u4e8e\u4e00\u5f20\u8d85\u7ea7\u8868\uff0c\u4f46\u666e\u901a\u8868\u4e0d\u5c5e\u4e8e\u4efb\u4f55\u8d85\u7ea7\u8868"),(0,l.yg)("li",{parentName:"ol"},"\u666e\u901a\u8868\u65e0\u6cd5\u8f6c\u4e3a\u5b50\u8868\uff0c\u5b50\u8868\u4e5f\u65e0\u6cd5\u8f6c\u4e3a\u666e\u901a\u8868\u3002")),(0,l.yg)("p",null,"\u8d85\u7ea7\u8868\u4e0e\u4e0e\u57fa\u4e8e\u8d85\u7ea7\u8868\u5efa\u7acb\u7684\u5b50\u8868\u4e4b\u95f4\u7684\u5173\u7cfb\u8868\u73b0\u5728\uff1a"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u4e00\u5f20\u8d85\u7ea7\u8868\u5305\u542b\u6709\u591a\u5f20\u5b50\u8868\uff0c\u8fd9\u4e9b\u5b50\u8868\u5177\u6709\u76f8\u540c\u7684\u91c7\u96c6\u91cf schema\uff0c\u4f46\u5e26\u6709\u4e0d\u540c\u7684\u6807\u7b7e\u503c\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u4e0d\u80fd\u901a\u8fc7\u5b50\u8868\u8c03\u6574\u6570\u636e\u6216\u6807\u7b7e\u7684\u6a21\u5f0f\uff0c\u5bf9\u4e8e\u8d85\u7ea7\u8868\u7684\u6570\u636e\u6a21\u5f0f\u4fee\u6539\u7acb\u5373\u5bf9\u6240\u6709\u7684\u5b50\u8868\u751f\u6548\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u8d85\u7ea7\u8868\u53ea\u5b9a\u4e49\u4e00\u4e2a\u6a21\u677f\uff0c\u81ea\u8eab\u4e0d\u5b58\u50a8\u4efb\u4f55\u6570\u636e\u6216\u6807\u7b7e\u4fe1\u606f\u3002\u56e0\u6b64\uff0c\u4e0d\u80fd\u5411\u4e00\u4e2a\u8d85\u7ea7\u8868\u5199\u5165\u6570\u636e\uff0c\u53ea\u80fd\u5c06\u6570\u636e\u5199\u5165\u5b50\u8868\u4e2d\u3002")),(0,l.yg)("p",null,"\u67e5\u8be2\u65e2\u53ef\u4ee5\u5728\u8868\u4e0a\u8fdb\u884c\uff0c\u4e5f\u53ef\u4ee5\u5728\u8d85\u7ea7\u8868\u4e0a\u8fdb\u884c\u3002\u9488\u5bf9\u8d85\u7ea7\u8868\u7684\u67e5\u8be2\uff0cTDengine \u5c06\u628a\u6240\u6709\u5b50\u8868\u4e2d\u7684\u6570\u636e\u89c6\u4e3a\u4e00\u4e2a\u6574\u4f53\u6570\u636e\u96c6\u8fdb\u884c\u5904\u7406\uff0c\u4f1a\u5148\u628a\u6ee1\u8db3\u6807\u7b7e\u8fc7\u6ee4\u6761\u4ef6\u7684\u8868\u4ece\u8d85\u7ea7\u8868\u4e2d\u627e\u51fa\u6765\uff0c\u7136\u540e\u518d\u626b\u63cf\u8fd9\u4e9b\u8868\u7684\u65f6\u5e8f\u6570\u636e\uff0c\u8fdb\u884c\u805a\u5408\u64cd\u4f5c\uff0c\u8fd9\u6837\u9700\u8981\u626b\u63cf\u7684\u6570\u636e\u96c6\u4f1a\u5927\u5e45\u51cf\u5c11\uff0c\u4ece\u800c\u663e\u8457\u63d0\u9ad8\u67e5\u8be2\u7684\u6027\u80fd\u3002\u672c\u8d28\u4e0a\uff0cTDengine \u901a\u8fc7\u5bf9\u8d85\u7ea7\u8868\u67e5\u8be2\u7684\u652f\u6301\uff0c\u5b9e\u73b0\u4e86\u591a\u4e2a\u540c\u7c7b\u6570\u636e\u91c7\u96c6\u70b9\u7684\u9ad8\u6548\u805a\u5408\u3002\nTDengine \u7cfb\u7edf\u5efa\u8bae\u7ed9\u4e00\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u5efa\u8868\uff0c\u9700\u8981\u901a\u8fc7\u8d85\u7ea7\u8868\u5efa\u8868\uff0c\u800c\u4e0d\u662f\u5efa\u666e\u901a\u8868\u3002"),(0,l.yg)("h4",{id:"\u5e93-database"},"\u5e93 (database)"),(0,l.yg)("p",null,"\u5e93\u662f\u6307\u4e00\u7ec4\u8868\u7684\u96c6\u5408\u3002TDengine \u5bb9\u8bb8\u4e00\u4e2a\u8fd0\u884c\u5b9e\u4f8b\u6709\u591a\u4e2a\u5e93\uff0c\u800c\u4e14\u6bcf\u4e2a\u5e93\u53ef\u4ee5\u914d\u7f6e\u4e0d\u540c\u7684\u5b58\u50a8\u7b56\u7565\u3002\u4e0d\u540c\u7c7b\u578b\u7684\u6570\u636e\u91c7\u96c6\u70b9\u5f80\u5f80\u5177\u6709\u4e0d\u540c\u7684\u6570\u636e\u7279\u5f81\uff0c\u5305\u62ec\u6570\u636e\u91c7\u96c6\u9891\u7387\u7684\u9ad8\u4f4e\uff0c\u6570\u636e\u4fdd\u7559\u65f6\u95f4\u7684\u957f\u77ed\uff0c\u526f\u672c\u7684\u6570\u76ee\uff0c\u6570\u636e\u5757\u7684\u5927\u5c0f\uff0c\u662f\u5426\u5141\u8bb8\u66f4\u65b0\u6570\u636e\u7b49\u7b49\u3002\u4e3a\u4e86\u5728\u5404\u79cd\u573a\u666f\u4e0b TDengine \u90fd\u80fd\u6700\u5927\u6548\u7387\u7684\u5de5\u4f5c\uff0cTDengine \u5efa\u8bae\u5c06\u4e0d\u540c\u6570\u636e\u7279\u5f81\u7684\u8d85\u7ea7\u8868\u521b\u5efa\u5728\u4e0d\u540c\u7684\u5e93\u91cc\u3002"),(0,l.yg)("p",null,"\u4e00\u4e2a\u5e93\u91cc\uff0c\u53ef\u4ee5\u6709\u4e00\u5230\u591a\u4e2a\u8d85\u7ea7\u8868\uff0c\u4f46\u4e00\u4e2a\u8d85\u7ea7\u8868\u53ea\u5c5e\u4e8e\u4e00\u4e2a\u5e93\u3002\u4e00\u4e2a\u8d85\u7ea7\u8868\u6240\u62e5\u6709\u7684\u5b50\u8868\u5168\u90e8\u5b58\u5728\u4e00\u4e2a\u5e93\u91cc\u3002"),(0,l.yg)("p",null,"\u8fd9\u91cc\u4e00\u5b9a\u8981\u6ce8\u610f\uff0c\u6211\u4eec\u5728\u8bbe\u8ba1\u5e93\u7684\u65f6\u5019\uff0c\u4e00\u5b9a\u8981\u6839\u636e\u6570\u636e\u7684\u60c5\u51b5\u6765\uff0c\u4f8b\u5982\u4e0a\u4e0b\u7ebf\u6d88\u606f\u548c\u8bbe\u5907\u5386\u53f2\u6570\u636e\u5e94\u8be5\u5206\u4e24\u4e2a\u5e93\uff0c\u56e0\u4e3a\u4ed6\u4eec\u7684\u6570\u636e\u4fdd\u7559\u65f6\u95f4\u4e0d\u540c\uff0c\u8bbe\u5907\u4e0a\u4e0b\u7ebf\u6d88\u606f\u5b58 1 \u5e74\u5c31\u5f88\u591a\u4e86\uff0c\u8bbe\u5907\u5386\u53f2\u6570\u636e\u53ef\u80fd\u9700\u8981\u5b58 5 \u5e74\u4ee5\u4e0a\u3002"),(0,l.yg)("h3",{id:"\u51c6\u5907\u6570\u636e"},"\u51c6\u5907\u6570\u636e"),(0,l.yg)("p",null,"\u7ed3\u5408\u4e0a\u9762\u7684\u6982\u5ff5\u4ee5\u53ca SQL \u8bed\u6cd5\u53ef\u4ee5\u521b\u5efa\u8868\u505a\u538b\u6d4b\u4e86\uff0cSQL \u662f\u53c2\u8003\u76ee\u524d influxdb \u5b58\u50a8\u7684\u5386\u53f2\u6570\u636e\u6765\u7684\u3002"),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-sql"},'# \u4fdd\u5b5810\u5e74 1\u4e2a\u526f\u672c\ncreate database ucloud keep 3650 REPLICA 2;\nuse ucloud;\n\n#\u521b\u5efa\u8d85\u7ea7\u8868\ncreate stable datapoint_record(ts timestamp,value double,StringValue NCHAR(128),DataType NCHAR(10),StorageFlag int)\n tags(DeviceId NCHAR(32),DataPointId int,SlaveIndex int);\n#\u63d2\u5165\u6d4b\u8bd5\u6570\u636e\ninsert into D00500221122700004100_1_1 using datapoint_record\ntags(00500221122700004100,1,1)\nvalues(now(),1,"1","ushort",1);\ninsert into D00500221122700004100_1_2 using datapoint_record\ntags(00500221122700004100,1,2)\nvalues(now(),1,"1","ushort",1);\n#\u67e5\u8be2\nselect * from datapoint_record;\n\n')),(0,l.yg)("p",null,"\u6700\u91cd\u70b9\u7684\u5176\u5b9e\u662f\u8868\u7ed3\u6784\u7684\u8bbe\u8ba1\u4e86\uff0c\u7ed3\u5408\u6211\u4eec\u7684\u4e1a\u52a1\uff0c\u6211\u4eec\u5e73\u53f0\u7684\u201c\u91c7\u96c6\u91cf\u201d\u662f\u914d\u7f6e\u51fa\u6765\uff0c\u6240\u4ee5\u91c7\u96c6\u91cf\u662f\u4e0d\u56fa\u5b9a\u7684\uff0c\u7528\u6237\u4f1a\u6839\u636e\u81ea\u5df1\u7684\u4e8b\u60c5\u60c5\u51b5\u52a8\u6001\u7684\u589e\u5220\u3002\u6240\u4ee5\u6211\u4eec\u7684\u5b50\u8868\u53ea\u80fd\u6709\u4e00\u4e2a\u91c7\u96c6\u91cf\uff0c\u8fd9\u4e2a\u662f\u5173\u952e\u3002"),(0,l.yg)("p",null,"\u6211\u4eec\u76ee\u524d\u7528\u7684\u65f6\u5e8f\u6570\u636e\u5e93\u662f InfluxDB\uff0c\u6240\u4ee5\u9700\u8981\u6709\u4e2a\u4e2d\u95f4\u4ef6\uff0c\u8f6f\u5b9e\u65f6\u540c\u6b65\u5230 TDengine\u3002\u5b9e\u73b0\u601d\u8def\u4e3a\uff1a"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u5b9a\u65f6\u6bcf\u5206\u949f\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u5bfc\u51fa InfluxDB \u6570\u636e\uff0c\u4e00\u5206\u949f\u7684\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u8bfb\u53d6\u8fd9\u4e2a\u5bfc\u51fa\u6587\u4ef6\uff0c\u5e76\u63d2\u5165\u5230 TDengine \u4e2d\uff1b")),(0,l.yg)("h3",{id:"\u538b\u6d4b"},"\u538b\u6d4b"),(0,l.yg)("p",null,"\u81ea\u5e26 taosBenchmark \u6027\u80fd\u6d4b\u8bd5\u5de5\u5177\uff0c\u53ef\u4ee5\u4f7f\u7528\u3002"),(0,l.yg)("p",null,"\u65e0\u547d\u4ee4\u884c\u53c2\u6570\u76f4\u63a5\u8fd0\u884c taosBenchmark\uff0c\u56de\u8f66\u76f4\u63a5\u6267\u884c\uff0c\u9ed8\u8ba4\u5728 TDengine \u4e2d\u521b\u5efa\u4e00\u4e2a\u540d\u4e3a test \u7684\u6570\u636e\u5e93\uff0ctest \u6570\u636e\u5e93\u4e0b\u521b\u5efa\u540d\u4e3a meters \u7684\u4e00\u5f20\u8d85\u7ea7\u8868\uff0c\u8d85\u7ea7\u8868\u4e0b\u521b\u5efa 10000 \u5f20\u8868\uff0c\u6bcf\u5f20\u8868\u4e2d\u5199\u5165 10000 \u6761\u8bb0\u5f55\u3002"),(0,l.yg)("p",null,(0,l.yg)("img",{alt:"image.png",src:t(8123).A,width:"1435",height:"48"}),"\n1w \u5f20\u8868\u7528\u4e86\u63a5\u8fd1 4 \u5206\u949f\u521b\u5efa\u5b8c\u6210\uff0c\u5f53\u7136\u4e86\u548c\u6d4b\u8bd5\u670d\u52a1\u5668\u7684\u673a\u68b0\u786c\u76d8\u5e94\u8be5\u6709\u5f88\u5927\u5173\u7cfb\uff1b"),(0,l.yg)("p",null,(0,l.yg)("img",{alt:"image.png",src:t(3906).A,width:"1237",height:"58"}),"\n\u63d2\u5165 1 \u4ebf\u8c03\u6570\u636e\u7528\u4e86 18 \u79d2\uff0c\u5f53\u7136\u4e86\u548c\u6d4b\u8bd5\u670d\u52a1\u5668\u7684\u673a\u68b0\u786c\u76d8\u5e94\u8be5\u6709\u5f88\u5927\u5173\u7cfb\uff1b"),(0,l.yg)("h3",{id:"\u5751\u70b9\u6c47\u603b"},"\u5751\u70b9\u6c47\u603b"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u793e\u533a\u7248\u672c\u4e0d\u652f\u6301\u201c\u5220\u9664\u6307\u5b9a\u65f6\u95f4\u8303\u56f4\u7684\u6570\u636e\u201d\u7684\u529f\u80fd\uff0c\u4f01\u4e1a\u7248\u624d\u652f\u6301\uff0c\u4f46\u662f\u6709\u4e9b\u7279\u6b8a\u60c5\u51b5\u8fd8\u662f\u9700\u8981\u5220\u9664\u6570\u636e\u7684\uff0c\u53ef\u4ee5\u901a\u8fc7\u589e\u52a0\u201c\u5220\u9664\u6807\u8bb0\u5b57\u6bb5\u201d\u6765\u8fc2\u56de\u5904\u7406\u8fd9\u4e2a\u95ee\u9898\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u793e\u533a\u7248\u672c\u4e0d\u652f\u6301\u201cUAF\u201d\uff0c\u4e5f\u5c31\u662f\u7528\u6237\u81ea\u5b9a\u4e49\u51fd\u6570\uff0c\u67d0\u4e9b\u7279\u6b8a\u805a\u5408\u6216\u8ba1\u7b97\u7b97\u6cd5\u65e0\u6cd5\u505a\u5230\uff0c\u4e0d\u8fc7\u793e\u533a\u7248\u672c\u63d0\u4f9b\u7684\u5df2\u7ecf\u662f\u7edd\u5bf9\u90e8\u5206\u4e86\u3002"),(0,l.yg)("li",{parentName:"ol"},"java client \u4f7f\u7528 RS \u600e\u4e48\u4e5f\u8fde\u63a5\u4e0d\u4e0a\uff0c\u540e\u6765\u53d1\u73b0\u662f\u670d\u52a1\u7aef\u6ca1\u6709\u542f\u52a8 taosadapter\uff0c\u4f7f\u7528\u547d\u4ee4 systemctl start taosadapter \u542f\u52a8\u540e\uff0cjava client \u5c31\u53ef\u4ee5\u6b63\u5e38\u8fde\u63a5\u4e86\u3002")),(0,l.yg)("h3",{id:"\u9644\u5f55"},"\u9644\u5f55"),(0,l.yg)("h4",{id:"\u5f00\u6e90\u534f\u8bae\u8bf4\u660e"},"\u5f00\u6e90\u534f\u8bae\u8bf4\u660e"),(0,l.yg)("p",null,(0,l.yg)("img",{alt:"image.png",src:t(6413).A,width:"750",height:"454"})))}u.isMDXComponent=!0},9792:(e,n,t)=>{t.d(n,{A:()=>a});const a=t.p+"assets/images/1-86f297ccfad12004e3b4a982a06dbdb1.png"},8123:(e,n,t)=>{t.d(n,{A:()=>a});const a=t.p+"assets/images/2-c10305180fd1dff6eef758f70d21f175.png"},3906:(e,n,t)=>{t.d(n,{A:()=>a});const a=t.p+"assets/images/3-e91119dc93e175c318646768f42457a1.png"},6413:(e,n,t)=>{t.d(n,{A:()=>a});const a=t.p+"assets/images/4-708f8212de488f91684592cc80775af3.png"}}]); \ No newline at end of file diff --git a/assets/js/39e40f36.cd8f95a9.js b/assets/js/39e40f36.006c70ba.js similarity index 98% rename from assets/js/39e40f36.cd8f95a9.js rename to assets/js/39e40f36.006c70ba.js index 03a7ce8c7..d248c306c 100644 --- a/assets/js/39e40f36.cd8f95a9.js +++ b/assets/js/39e40f36.006c70ba.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9253],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>m});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),u=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(c.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),s=u(r),y=a,m=s["".concat(c,".").concat(y)]||s[y]||d[y]||o;return r?n.createElement(m,l(l({ref:t},p),{},{components:r})):n.createElement(m,l({ref:t},p))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=y;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[s]="string"==typeof e?e:a,l[1]=i;for(var u=2;u{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var n=r(8168),a=(r(6540),r(5680));const o={},l="Dart \u5b66\u4e60\u8d44\u6599",i={unversionedId:"study/program/Dart/\u5b66\u4e60\u8d44\u6599",id:"study/program/Dart/\u5b66\u4e60\u8d44\u6599",title:"Dart \u5b66\u4e60\u8d44\u6599",description:"\u7279\u70b9",source:"@site/docs/study/program/Dart/\u5b66\u4e60\u8d44\u6599.md",sourceDirName:"study/program/Dart",slug:"/study/program/Dart/\u5b66\u4e60\u8d44\u6599",permalink:"/docs/study/program/Dart/\u5b66\u4e60\u8d44\u6599",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Flutter",permalink:"/docs/study/program/Dart/Flutter"},next:{title:"dataX",permalink:"/docs/study/program/ETL/dataX"}},c={},u=[{value:"\u7279\u70b9",id:"\u7279\u70b9",level:3},{value:"\u5b98\u65b9\u6587\u6863",id:"\u5b98\u65b9\u6587\u6863",level:3}],p={toc:u},s="wrapper";function d(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"dart-\u5b66\u4e60\u8d44\u6599"},"Dart \u5b66\u4e60\u8d44\u6599"),(0,a.yg)("h3",{id:"\u7279\u70b9"},"\u7279\u70b9"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u9488\u5bf9\u5ba2\u6237\u7aef\u4f18\u5316\uff0c\u4e9a\u79d2\u7ea7\u7684\u72b6\u6001\u70ed\u91cd\u8f7d"),(0,a.yg)("li",{parentName:"ul"},"\u4f18\u5148\u8003\u8651\u591a\u5e73\u53f0 (Web\uff0c\u79fb\u52a8\u7aef\u548c\u684c\u9762\u7aef)"),(0,a.yg)("li",{parentName:"ul"},"Dart \u4e5f\u662f Flutter \u7684\u57fa\u7840"),(0,a.yg)("li",{parentName:"ul"},"\u9759\u6001\u7c7b\u578b\uff0c\u4f46\u652f\u6301\u7c7b\u578b\u63a8\u65ad"),(0,a.yg)("li",{parentName:"ul"},"\u9488\u5bf9\u9762\u5411\u79fb\u52a8\u548c\u684c\u9762\u8bbe\u5907\u7684\u5e94\u7528\u7a0b\u5e8f\uff0c Dart \u62e5\u6709\u5177\u6709\u5b9e\u65f6 (JIT) \u7f16\u8bd1\u529f\u80fd\u7684 Dart VM \u548c\u7528\u4e8e\u751f\u6210\u673a\u5668\u4ee3\u7801\u7684\u63d0\u524d (AOT) \u7f16\u8bd1\u5668\u3002")),(0,a.yg)("h3",{id:"\u5b98\u65b9\u6587\u6863"},"\u5b98\u65b9\u6587\u6863"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://dart.cn/overview"},"dart.cn \u6587\u6863"))))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9253],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>m});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),u=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(c.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),s=u(r),y=a,m=s["".concat(c,".").concat(y)]||s[y]||d[y]||o;return r?n.createElement(m,l(l({ref:t},p),{},{components:r})):n.createElement(m,l({ref:t},p))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=y;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[s]="string"==typeof e?e:a,l[1]=i;for(var u=2;u{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var n=r(8168),a=(r(6540),r(5680));const o={},l="Dart \u5b66\u4e60\u8d44\u6599",i={unversionedId:"study/program/Dart/\u5b66\u4e60\u8d44\u6599",id:"study/program/Dart/\u5b66\u4e60\u8d44\u6599",title:"Dart \u5b66\u4e60\u8d44\u6599",description:"\u7279\u70b9",source:"@site/docs/study/program/Dart/\u5b66\u4e60\u8d44\u6599.md",sourceDirName:"study/program/Dart",slug:"/study/program/Dart/\u5b66\u4e60\u8d44\u6599",permalink:"/docs/study/program/Dart/\u5b66\u4e60\u8d44\u6599",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Flutter",permalink:"/docs/study/program/Dart/Flutter"},next:{title:"dataX",permalink:"/docs/study/program/ETL/dataX"}},c={},u=[{value:"\u7279\u70b9",id:"\u7279\u70b9",level:3},{value:"\u5b98\u65b9\u6587\u6863",id:"\u5b98\u65b9\u6587\u6863",level:3}],p={toc:u},s="wrapper";function d(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"dart-\u5b66\u4e60\u8d44\u6599"},"Dart \u5b66\u4e60\u8d44\u6599"),(0,a.yg)("h3",{id:"\u7279\u70b9"},"\u7279\u70b9"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u9488\u5bf9\u5ba2\u6237\u7aef\u4f18\u5316\uff0c\u4e9a\u79d2\u7ea7\u7684\u72b6\u6001\u70ed\u91cd\u8f7d"),(0,a.yg)("li",{parentName:"ul"},"\u4f18\u5148\u8003\u8651\u591a\u5e73\u53f0 (Web\uff0c\u79fb\u52a8\u7aef\u548c\u684c\u9762\u7aef)"),(0,a.yg)("li",{parentName:"ul"},"Dart \u4e5f\u662f Flutter \u7684\u57fa\u7840"),(0,a.yg)("li",{parentName:"ul"},"\u9759\u6001\u7c7b\u578b\uff0c\u4f46\u652f\u6301\u7c7b\u578b\u63a8\u65ad"),(0,a.yg)("li",{parentName:"ul"},"\u9488\u5bf9\u9762\u5411\u79fb\u52a8\u548c\u684c\u9762\u8bbe\u5907\u7684\u5e94\u7528\u7a0b\u5e8f\uff0c Dart \u62e5\u6709\u5177\u6709\u5b9e\u65f6 (JIT) \u7f16\u8bd1\u529f\u80fd\u7684 Dart VM \u548c\u7528\u4e8e\u751f\u6210\u673a\u5668\u4ee3\u7801\u7684\u63d0\u524d (AOT) \u7f16\u8bd1\u5668\u3002")),(0,a.yg)("h3",{id:"\u5b98\u65b9\u6587\u6863"},"\u5b98\u65b9\u6587\u6863"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://dart.cn/overview"},"dart.cn \u6587\u6863"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3b2c25df.96f88b59.js b/assets/js/3b2c25df.5882c2aa.js similarity index 99% rename from assets/js/3b2c25df.96f88b59.js rename to assets/js/3b2c25df.5882c2aa.js index 0e1a891cc..b45c3ccc9 100644 --- a/assets/js/3b2c25df.96f88b59.js +++ b/assets/js/3b2c25df.5882c2aa.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[496],{5680:(e,t,n)=>{n.d(t,{xA:()=>s,yg:()=>m});var r=n(6540);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function c(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var i=r.createContext({}),u=function(e){var t=r.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):c(c({},t),e)),n},s=function(e){var t=u(e.components);return r.createElement(i.Provider,{value:t},e.children)},y="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,l=e.originalType,i=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),y=u(n),d=a,m=y["".concat(i,".").concat(d)]||y[d]||p[d]||l;return n?r.createElement(m,c(c({ref:t},s),{},{components:n})):r.createElement(m,c({ref:t},s))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=n.length,c=new Array(l);c[0]=d;var o={};for(var i in t)hasOwnProperty.call(t,i)&&(o[i]=t[i]);o.originalType=e,o[y]="string"==typeof e?e:a,c[1]=o;for(var u=2;u{n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>c,default:()=>p,frontMatter:()=>l,metadata:()=>o,toc:()=>u});var r=n(8168),a=(n(6540),n(5680));const l={},c="MySQL \u7b14\u8bb0",o={unversionedId:"study/db/SQL/MySQL-\u7b14\u8bb0",id:"study/db/SQL/MySQL-\u7b14\u8bb0",title:"MySQL \u7b14\u8bb0",description:"WITH \u67e5\u8be2",source:"@site/docs/study/db/SQL/MySQL-\u7b14\u8bb0.md",sourceDirName:"study/db/SQL",slug:"/study/db/SQL/MySQL-\u7b14\u8bb0",permalink:"/docs/study/db/SQL/MySQL-\u7b14\u8bb0",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"MariaDB",permalink:"/docs/study/db/SQL/MariaDB"},next:{title:"MySQL",permalink:"/docs/study/db/SQL/MySQL"}},i={},u=[{value:"WITH \u67e5\u8be2",id:"with-\u67e5\u8be2",level:3},{value:"\u9012\u5f52\u5171\u7528\u8868\u8fbe\u5f0f with recursive",id:"\u9012\u5f52\u5171\u7528\u8868\u8fbe\u5f0f-with-recursive",level:3},{value:"\u4e8b\u4ef6/\u5b9a\u65f6\u4efb\u52a1",id:"\u4e8b\u4ef6\u5b9a\u65f6\u4efb\u52a1",level:3},{value:"\u53c2\u8003\u6587\u6863",id:"\u53c2\u8003\u6587\u6863",level:3}],s={toc:u},y="wrapper";function p(e){let{components:t,...n}=e;return(0,a.yg)(y,(0,r.A)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"mysql-\u7b14\u8bb0"},"MySQL \u7b14\u8bb0"),(0,a.yg)("h3",{id:"with-\u67e5\u8be2"},"WITH \u67e5\u8be2"),(0,a.yg)("p",null,"MySQL \u8bed\u53e5 WITH \u662f MySQL 8.0 \u4e2d\u7684\u4e00\u4e2a\u65b0\u7279\u6027\uff0c\u7528\u4e8e\u5e2e\u52a9\u7b80\u5316\u590d\u6742\u67e5\u8be2\u4ee5\u53ca\u63d0\u9ad8\u67e5\u8be2\u6548\u7387\u3002\u5728\u5927\u591a\u6570\u60c5\u51b5\u4e0b\uff0c\u67e5\u8be2\u90fd\u9700\u8981\u591a\u6b21\u5d4c\u5957\u4f7f\u7528\uff0c\u8fd9\u5bfc\u81f4\u67e5\u8be2\u8bed\u53e5\u5199\u5f97\u5f88\u957f\u4e14\u96be\u4ee5\u7ef4\u62a4\u3002WITH \u8bed\u53e5\u5c31\u662f\u7528\u6765\u89e3\u51b3\u8fd9\u4e2a\u95ee\u9898\u7684\uff0c\u5b83\u662f\u4e00\u79cd\u4e34\u65f6\u8868\u7684\u65b9\u5f0f\uff0c\u5f97\u5230\u7684\u7ed3\u679c\u96c6\u53ef\u4ee5\u4f5c\u4e3a\u67e5\u8be2\u7684\u7ed3\u679c\u96c6\u3002\u5728 WITH \u8bed\u53e5\u4e2d\uff0c\u53ef\u4ee5\u5b9a\u4e49\u591a\u4e2a\u522b\u540d\uff0c\u7136\u540e\u5d4c\u5957\u4f7f\u7528\u3002"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sql"},"WITH t1 AS (\n SELECT col1 FROM table1\n),\nt2 as (\n SELECT col1 FROM table2\n)\n--\u4f7f\u7528\nSELECT * FROM t1 INNER JOIN t2 ON t1.col1 = t2.col1;\n")),(0,a.yg)("p",null,"\u5728\u8fd9\u4e2a\u4f8b\u5b50\u4e2d\uff0c\u6211\u4eec\u5b9a\u4e49\u4e86\u4e24\u5f20\u8868\uff0ct1 \u548c t2\uff0c\u7136\u540e\u4f7f\u7528\u4e86\u8fd9\u4e24\u5f20\u8868\u6765\u8fdb\u884c\u67e5\u8be2\uff0c\u8fd9\u6837\u6211\u4eec\u5c31\u53ef\u4ee5\u907f\u514d\u5728\u67e5\u8be2\u8bed\u53e5\u4e2d\u591a\u6b21\u5d4c\u5957\u4f7f\u7528\u76f8\u540c\u7684\u5b50\u67e5\u8be2\uff0c\u5e76\u4e14\u4e5f\u4e0d\u9700\u8981\u4e3a\u6bcf\u4e2a\u67e5\u8be2\u5b9a\u4e49\u4e00\u4e2a\u4e34\u65f6\u8868\u3002"),(0,a.yg)("p",null,"with \u7279\u6027\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"with \u5176\u5b9e\u5c31\u662f\u4e00\u4e2a\u5b50\u67e5\u8be2\u62bd\u53d6\u51fa\u6765\uff0c\u6362\u4e86\u4e00\u4e2a\u522b\u540d"),(0,a.yg)("li",{parentName:"ul"},"\u548c\u89c6\u56fe\u7684\u533a\u522b\uff1awith as \u7b49\u540c\u4e8e\u4e00\u6b21\u6027\u89c6\u56fe\uff0c\u53ea\u4f1a\u6301\u7eed\u5230\u4e0b\u4e00\u4e2a\u67e5\u8be2\u3002\u5728\u4e4b\u540e\u5c31\u4e0d\u80fd\u518d\u88ab\u5f15\u7528"),(0,a.yg)("li",{parentName:"ul"},"\u4e3b\u8981\u7528\u4e8e\u7b80\u5316\u590d\u6742\u7684 \u6570\u636e\u96c6 \u548c \u9012\u5f52")),(0,a.yg)("p",null,"\u5176\u5b9e WITH \u8868\u8fbe\u5f0f\u9664\u4e86\u548c SELECT \u4e00\u8d77\u7528\uff0c \u8fd8\u53ef\u4ee5\u6709\u4e0b\u9762\u7684\u7ec4\u5408\uff1a"),(0,a.yg)("p",null,"insert with \u3001with update\u3001with delete\u3001with with\u3001with recursive(\u53ef\u4ee5\u6a21\u62df\u6570\u5b57\u3001\u65e5\u671f\u7b49\u5e8f\u5217)\u3001WITH \u53ef\u4ee5\u5b9a\u4e49\u591a\u5f20\u8868"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sql"},"with_clause:\n WITH [RECURSIVE]\n cte_name [(col_name [, col_name] ...)] AS (subquery)\n [, cte_name [(col_name [, col_name] ...)] AS (subquery)] ...\n")),(0,a.yg)("h3",{id:"\u9012\u5f52\u5171\u7528\u8868\u8fbe\u5f0f-with-recursive"},"\u9012\u5f52\u5171\u7528\u8868\u8fbe\u5f0f with recursive"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sql"},"WITH RECURSIVE cte (n) AS\n(\n SELECT 1\n UNION ALL\n SELECT n + 1 FROM cte WHERE n < 5\n)\nSELECT * FROM cte;\n")),(0,a.yg)("h3",{id:"\u4e8b\u4ef6\u5b9a\u65f6\u4efb\u52a1"},"\u4e8b\u4ef6/\u5b9a\u65f6\u4efb\u52a1"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sql"},"-- \u5148\u68c0\u67e5\u662f\u5426\u5f00\u542f \u4e00\u822c\u90fd\u662f\u9ed8\u8ba4\u5173\u95ed\u7684\nshow variables like 'event%'\nset global event_scheduler=on;\n--\nCREATE EVENT handle_server_count_schedule\nON SCHEDULE EVERY 10 SECOND\nSTARTS '2024-03-13 00:00:00.000'\nON COMPLETION NOT PRESERVE\nENABLE\nDO begin\nupdate server_count set COUNT = COUNT + (FLOOR(RAND() * 100) + 1)\nwhere REGION_ID in(1,2) and TENANT_NAME in('\u8054\u901a\u4fe1\u521b\u4e91','\u6d6a\u6f6e\u653f\u52a1\u4e91');\nEND\n")),(0,a.yg)("h3",{id:"\u53c2\u8003\u6587\u6863"},"\u53c2\u8003\u6587\u6863"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://halo.sherlocky.com/archives/mysql-8-cte"},"MySQL 8.0 with \u8bed\u6cd5(cte)")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://dev.mysql.com/doc/refman/8.0/en/preface.html"},"MySQL 8.0 \u5b98\u65b9\u6587\u6863"))))}p.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[496],{5680:(e,t,n)=>{n.d(t,{xA:()=>s,yg:()=>m});var r=n(6540);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function c(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var i=r.createContext({}),u=function(e){var t=r.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):c(c({},t),e)),n},s=function(e){var t=u(e.components);return r.createElement(i.Provider,{value:t},e.children)},y="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,l=e.originalType,i=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),y=u(n),d=a,m=y["".concat(i,".").concat(d)]||y[d]||p[d]||l;return n?r.createElement(m,c(c({ref:t},s),{},{components:n})):r.createElement(m,c({ref:t},s))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=n.length,c=new Array(l);c[0]=d;var o={};for(var i in t)hasOwnProperty.call(t,i)&&(o[i]=t[i]);o.originalType=e,o[y]="string"==typeof e?e:a,c[1]=o;for(var u=2;u{n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>c,default:()=>p,frontMatter:()=>l,metadata:()=>o,toc:()=>u});var r=n(8168),a=(n(6540),n(5680));const l={},c="MySQL \u7b14\u8bb0",o={unversionedId:"study/db/SQL/MySQL-\u7b14\u8bb0",id:"study/db/SQL/MySQL-\u7b14\u8bb0",title:"MySQL \u7b14\u8bb0",description:"WITH \u67e5\u8be2",source:"@site/docs/study/db/SQL/MySQL-\u7b14\u8bb0.md",sourceDirName:"study/db/SQL",slug:"/study/db/SQL/MySQL-\u7b14\u8bb0",permalink:"/docs/study/db/SQL/MySQL-\u7b14\u8bb0",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"MariaDB",permalink:"/docs/study/db/SQL/MariaDB"},next:{title:"MySQL",permalink:"/docs/study/db/SQL/MySQL"}},i={},u=[{value:"WITH \u67e5\u8be2",id:"with-\u67e5\u8be2",level:3},{value:"\u9012\u5f52\u5171\u7528\u8868\u8fbe\u5f0f with recursive",id:"\u9012\u5f52\u5171\u7528\u8868\u8fbe\u5f0f-with-recursive",level:3},{value:"\u4e8b\u4ef6/\u5b9a\u65f6\u4efb\u52a1",id:"\u4e8b\u4ef6\u5b9a\u65f6\u4efb\u52a1",level:3},{value:"\u53c2\u8003\u6587\u6863",id:"\u53c2\u8003\u6587\u6863",level:3}],s={toc:u},y="wrapper";function p(e){let{components:t,...n}=e;return(0,a.yg)(y,(0,r.A)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"mysql-\u7b14\u8bb0"},"MySQL \u7b14\u8bb0"),(0,a.yg)("h3",{id:"with-\u67e5\u8be2"},"WITH \u67e5\u8be2"),(0,a.yg)("p",null,"MySQL \u8bed\u53e5 WITH \u662f MySQL 8.0 \u4e2d\u7684\u4e00\u4e2a\u65b0\u7279\u6027\uff0c\u7528\u4e8e\u5e2e\u52a9\u7b80\u5316\u590d\u6742\u67e5\u8be2\u4ee5\u53ca\u63d0\u9ad8\u67e5\u8be2\u6548\u7387\u3002\u5728\u5927\u591a\u6570\u60c5\u51b5\u4e0b\uff0c\u67e5\u8be2\u90fd\u9700\u8981\u591a\u6b21\u5d4c\u5957\u4f7f\u7528\uff0c\u8fd9\u5bfc\u81f4\u67e5\u8be2\u8bed\u53e5\u5199\u5f97\u5f88\u957f\u4e14\u96be\u4ee5\u7ef4\u62a4\u3002WITH \u8bed\u53e5\u5c31\u662f\u7528\u6765\u89e3\u51b3\u8fd9\u4e2a\u95ee\u9898\u7684\uff0c\u5b83\u662f\u4e00\u79cd\u4e34\u65f6\u8868\u7684\u65b9\u5f0f\uff0c\u5f97\u5230\u7684\u7ed3\u679c\u96c6\u53ef\u4ee5\u4f5c\u4e3a\u67e5\u8be2\u7684\u7ed3\u679c\u96c6\u3002\u5728 WITH \u8bed\u53e5\u4e2d\uff0c\u53ef\u4ee5\u5b9a\u4e49\u591a\u4e2a\u522b\u540d\uff0c\u7136\u540e\u5d4c\u5957\u4f7f\u7528\u3002"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sql"},"WITH t1 AS (\n SELECT col1 FROM table1\n),\nt2 as (\n SELECT col1 FROM table2\n)\n--\u4f7f\u7528\nSELECT * FROM t1 INNER JOIN t2 ON t1.col1 = t2.col1;\n")),(0,a.yg)("p",null,"\u5728\u8fd9\u4e2a\u4f8b\u5b50\u4e2d\uff0c\u6211\u4eec\u5b9a\u4e49\u4e86\u4e24\u5f20\u8868\uff0ct1 \u548c t2\uff0c\u7136\u540e\u4f7f\u7528\u4e86\u8fd9\u4e24\u5f20\u8868\u6765\u8fdb\u884c\u67e5\u8be2\uff0c\u8fd9\u6837\u6211\u4eec\u5c31\u53ef\u4ee5\u907f\u514d\u5728\u67e5\u8be2\u8bed\u53e5\u4e2d\u591a\u6b21\u5d4c\u5957\u4f7f\u7528\u76f8\u540c\u7684\u5b50\u67e5\u8be2\uff0c\u5e76\u4e14\u4e5f\u4e0d\u9700\u8981\u4e3a\u6bcf\u4e2a\u67e5\u8be2\u5b9a\u4e49\u4e00\u4e2a\u4e34\u65f6\u8868\u3002"),(0,a.yg)("p",null,"with \u7279\u6027\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"with \u5176\u5b9e\u5c31\u662f\u4e00\u4e2a\u5b50\u67e5\u8be2\u62bd\u53d6\u51fa\u6765\uff0c\u6362\u4e86\u4e00\u4e2a\u522b\u540d"),(0,a.yg)("li",{parentName:"ul"},"\u548c\u89c6\u56fe\u7684\u533a\u522b\uff1awith as \u7b49\u540c\u4e8e\u4e00\u6b21\u6027\u89c6\u56fe\uff0c\u53ea\u4f1a\u6301\u7eed\u5230\u4e0b\u4e00\u4e2a\u67e5\u8be2\u3002\u5728\u4e4b\u540e\u5c31\u4e0d\u80fd\u518d\u88ab\u5f15\u7528"),(0,a.yg)("li",{parentName:"ul"},"\u4e3b\u8981\u7528\u4e8e\u7b80\u5316\u590d\u6742\u7684 \u6570\u636e\u96c6 \u548c \u9012\u5f52")),(0,a.yg)("p",null,"\u5176\u5b9e WITH \u8868\u8fbe\u5f0f\u9664\u4e86\u548c SELECT \u4e00\u8d77\u7528\uff0c \u8fd8\u53ef\u4ee5\u6709\u4e0b\u9762\u7684\u7ec4\u5408\uff1a"),(0,a.yg)("p",null,"insert with \u3001with update\u3001with delete\u3001with with\u3001with recursive(\u53ef\u4ee5\u6a21\u62df\u6570\u5b57\u3001\u65e5\u671f\u7b49\u5e8f\u5217)\u3001WITH \u53ef\u4ee5\u5b9a\u4e49\u591a\u5f20\u8868"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sql"},"with_clause:\n WITH [RECURSIVE]\n cte_name [(col_name [, col_name] ...)] AS (subquery)\n [, cte_name [(col_name [, col_name] ...)] AS (subquery)] ...\n")),(0,a.yg)("h3",{id:"\u9012\u5f52\u5171\u7528\u8868\u8fbe\u5f0f-with-recursive"},"\u9012\u5f52\u5171\u7528\u8868\u8fbe\u5f0f with recursive"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sql"},"WITH RECURSIVE cte (n) AS\n(\n SELECT 1\n UNION ALL\n SELECT n + 1 FROM cte WHERE n < 5\n)\nSELECT * FROM cte;\n")),(0,a.yg)("h3",{id:"\u4e8b\u4ef6\u5b9a\u65f6\u4efb\u52a1"},"\u4e8b\u4ef6/\u5b9a\u65f6\u4efb\u52a1"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sql"},"-- \u5148\u68c0\u67e5\u662f\u5426\u5f00\u542f \u4e00\u822c\u90fd\u662f\u9ed8\u8ba4\u5173\u95ed\u7684\nshow variables like 'event%'\nset global event_scheduler=on;\n--\nCREATE EVENT handle_server_count_schedule\nON SCHEDULE EVERY 10 SECOND\nSTARTS '2024-03-13 00:00:00.000'\nON COMPLETION NOT PRESERVE\nENABLE\nDO begin\nupdate server_count set COUNT = COUNT + (FLOOR(RAND() * 100) + 1)\nwhere REGION_ID in(1,2) and TENANT_NAME in('\u8054\u901a\u4fe1\u521b\u4e91','\u6d6a\u6f6e\u653f\u52a1\u4e91');\nEND\n")),(0,a.yg)("h3",{id:"\u53c2\u8003\u6587\u6863"},"\u53c2\u8003\u6587\u6863"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://halo.sherlocky.com/archives/mysql-8-cte"},"MySQL 8.0 with \u8bed\u6cd5(cte)")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://dev.mysql.com/doc/refman/8.0/en/preface.html"},"MySQL 8.0 \u5b98\u65b9\u6587\u6863"))))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3b47b6b5.82b21006.js b/assets/js/3b47b6b5.a099bb48.js similarity index 98% rename from assets/js/3b47b6b5.82b21006.js rename to assets/js/3b47b6b5.a099bb48.js index bdebe232f..458ab2c86 100644 --- a/assets/js/3b47b6b5.82b21006.js +++ b/assets/js/3b47b6b5.a099bb48.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9688],{5680:(e,t,r)=>{r.d(t,{xA:()=>d,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},d=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",l={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),u=p(r),f=o,y=u["".concat(s,".").concat(f)]||u[f]||l[f]||a;return r?n.createElement(y,i(i({ref:t},d),{},{components:r})):n.createElement(y,i({ref:t},d))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=f;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[u]="string"==typeof e?e:o,i[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>l,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={sidebar_position:1},i="\u6982\u8ff0",c={unversionedId:"study/hard/index",id:"study/hard/index",title:"\u6982\u8ff0",description:"",source:"@site/docs/study/hard/index.md",sourceDirName:"study/hard",slug:"/study/hard/",permalink:"/docs/study/hard/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"\u94fe\u8def\u8ffd\u8e2a\u76d1\u63a7",permalink:"/docs/study/devops/\u94fe\u8def\u8ffd\u8e2a\u76d1\u63a7"},next:{title:"\u5d4c\u5165\u5f0f_\u5355\u7247\u673a",permalink:"/docs/study/hard/\u5d4c\u5165\u5f0f_\u5355\u7247\u673a"}},s={},p=[],d={toc:p},u="wrapper";function l(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"))}l.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9688],{5680:(e,t,r)=>{r.d(t,{xA:()=>d,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},d=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",l={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),u=p(r),f=o,y=u["".concat(s,".").concat(f)]||u[f]||l[f]||a;return r?n.createElement(y,i(i({ref:t},d),{},{components:r})):n.createElement(y,i({ref:t},d))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=f;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[u]="string"==typeof e?e:o,i[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>l,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={sidebar_position:1},i="\u6982\u8ff0",c={unversionedId:"study/hard/index",id:"study/hard/index",title:"\u6982\u8ff0",description:"",source:"@site/docs/study/hard/index.md",sourceDirName:"study/hard",slug:"/study/hard/",permalink:"/docs/study/hard/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"\u94fe\u8def\u8ffd\u8e2a\u76d1\u63a7",permalink:"/docs/study/devops/\u94fe\u8def\u8ffd\u8e2a\u76d1\u63a7"},next:{title:"\u5d4c\u5165\u5f0f_\u5355\u7247\u673a",permalink:"/docs/study/hard/\u5d4c\u5165\u5f0f_\u5355\u7247\u673a"}},s={},p=[],d={toc:p},u="wrapper";function l(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"))}l.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3bd11cc0.867f1a45.js b/assets/js/3bd11cc0.e9f9f3c4.js similarity index 98% rename from assets/js/3bd11cc0.867f1a45.js rename to assets/js/3bd11cc0.e9f9f3c4.js index 811247ace..d544c1192 100644 --- a/assets/js/3bd11cc0.867f1a45.js +++ b/assets/js/3bd11cc0.e9f9f3c4.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4816],{5680:(e,t,r)=>{r.d(t,{xA:()=>l,yg:()=>d});var n=r(6540);function c(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(c[r]=e[r]);return c}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(c[r]=e[r])}return c}var s=n.createContext({}),i=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},l=function(e){var t=i(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",g={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,c=e.mdxType,a=e.originalType,s=e.parentName,l=p(e,["components","mdxType","originalType","parentName"]),u=i(r),y=c,d=u["".concat(s,".").concat(y)]||u[y]||g[y]||a;return r?n.createElement(d,o(o({ref:t},l),{},{components:r})):n.createElement(d,o({ref:t},l))}));function d(e,t){var r=arguments,c=t&&t.mdxType;if("string"==typeof e||c){var a=r.length,o=new Array(a);o[0]=y;var p={};for(var s in t)hasOwnProperty.call(t,s)&&(p[s]=t[s]);p.originalType=e,p[u]="string"==typeof e?e:c,o[1]=p;for(var i=2;i{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>g,frontMatter:()=>a,metadata:()=>p,toc:()=>i});var n=r(8168),c=(r(6540),r(5680));const a={},o=void 0,p={unversionedId:"study/back/\u9519\u8bef\u6392\u9664\u96c6\u9526",id:"study/back/\u9519\u8bef\u6392\u9664\u96c6\u9526",title:"\u9519\u8bef\u6392\u9664\u96c6\u9526",description:"\u5185\u5b58\u4e0d\u8db3\uff0c\u5bfc\u81f4\u4e0a\u4f20\u6587\u4ef6\u5931\u8d25",source:"@site/docs/study/back/\u9519\u8bef\u6392\u9664\u96c6\u9526.md",sourceDirName:"study/back",slug:"/study/back/\u9519\u8bef\u6392\u9664\u96c6\u9526",permalink:"/docs/study/back/\u9519\u8bef\u6392\u9664\u96c6\u9526",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"log4jdbc",permalink:"/docs/study/back/\u6570\u636e\u5e93\u76f8\u5173/log4jdbc"},next:{title:"\u6982\u8ff0",permalink:"/docs/study/db/"}},s={},i=[{value:"\u5185\u5b58\u4e0d\u8db3\uff0c\u5bfc\u81f4\u4e0a\u4f20\u6587\u4ef6\u5931\u8d25",id:"\u5185\u5b58\u4e0d\u8db3\u5bfc\u81f4\u4e0a\u4f20\u6587\u4ef6\u5931\u8d25",level:3}],l={toc:i},u="wrapper";function g(e){let{components:t,...r}=e;return(0,c.yg)(u,(0,n.A)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,c.yg)("h3",{id:"\u5185\u5b58\u4e0d\u8db3\u5bfc\u81f4\u4e0a\u4f20\u6587\u4ef6\u5931\u8d25"},"\u5185\u5b58\u4e0d\u8db3\uff0c\u5bfc\u81f4\u4e0a\u4f20\u6587\u4ef6\u5931\u8d25"),(0,c.yg)("p",null,"HTTP\u8bf7\u6c42\u4e0a\u4f20\u6587\u4ef6"),(0,c.yg)("p",null,"\u62a5\u9519\u5982\u4e0b"),(0,c.yg)("pre",null,(0,c.yg)("code",{parentName:"pre",className:"language-shell"},"2024-05-09 11:09:36.896 [ccsp-aggregate-pt,TASK,6727263067663369608,] [task-2] INFO c.s.c.p.b.s.s.service.impl.ServiceInfoServiceImpl - start upload image fi\nle to remote ---\n2024-05-09 11:09:38.672 [ccsp-aggregate-pt,TASK,6727263067663369608,] [task-2] INFO org.apache.http.impl.execchain.RetryExec - I/O exception (java.net.Socket\nException) caught when processing request to {s}->https://10.20.37.101:18086: Connection reset\n2024-05-09 11:09:38.673 [ccsp-aggregate-pt,TASK,6727263067663369608,] [task-2] INFO org.apache.http.impl.execchain.RetryExec - Retrying request to {s}->https\n://10.20.37.101:18086\n2024-05-09 11:09:40.552 [ccsp-aggregate-pt,TASK,6727263067663369608,] [task-2] INFO org.apache.http.impl.execchain.RetryExec - I/O exception (java.net.Socket\nException) caught when processing request to {s}->https://10.20.37.101:18086: Connection reset\n2024-05-09 11:09:40.552 [ccsp-aggregate-pt,TASK,6727263067663369608,] [task-2] INFO org.apache.http.impl.execchain.RetryExec - Retrying request to {s}->https\n://10.20.37.101:18086\n2024-05-09 11:09:42.355 [ccsp-aggregate-pt,TASK,6727263067663369608,] [task-2] INFO org.apache.http.impl.execchain.RetryExec - I/O exception (java.net.Socket\nException) caught when processing request to {s}->https://10.20.37.101:18086: Connection reset\n2024-05-09 11:09:42.355 [ccsp-aggregate-pt,TASK,6727263067663369608,] [task-2] INFO org.apache.http.impl.execchain.RetryExec - Retrying request to {s}->https\n://10.20.37.101:18086\n")),(0,c.yg)("p",null,"\u5bbf\u4e3b\u673aserver\u7aef\u7684\u5185\u5b58\u4e0d\u8db3\uff0c\u6bd4\u4e0a\u4f20\u7684\u6587\u4ef6\u8981\u5c0f\uff0c\u5bfc\u81f4\u65e0\u6cd5\u63a5\u53d7\uff0c\u4ece\u800c\u76f4\u63a5\u65ad\u8054\u4e86HTTP\u8bf7\u6c42\u3002"))}g.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4816],{5680:(e,t,r)=>{r.d(t,{xA:()=>l,yg:()=>d});var n=r(6540);function c(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(c[r]=e[r]);return c}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(c[r]=e[r])}return c}var s=n.createContext({}),i=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},l=function(e){var t=i(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",g={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,c=e.mdxType,a=e.originalType,s=e.parentName,l=p(e,["components","mdxType","originalType","parentName"]),u=i(r),y=c,d=u["".concat(s,".").concat(y)]||u[y]||g[y]||a;return r?n.createElement(d,o(o({ref:t},l),{},{components:r})):n.createElement(d,o({ref:t},l))}));function d(e,t){var r=arguments,c=t&&t.mdxType;if("string"==typeof e||c){var a=r.length,o=new Array(a);o[0]=y;var p={};for(var s in t)hasOwnProperty.call(t,s)&&(p[s]=t[s]);p.originalType=e,p[u]="string"==typeof e?e:c,o[1]=p;for(var i=2;i{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>g,frontMatter:()=>a,metadata:()=>p,toc:()=>i});var n=r(8168),c=(r(6540),r(5680));const a={},o=void 0,p={unversionedId:"study/back/\u9519\u8bef\u6392\u9664\u96c6\u9526",id:"study/back/\u9519\u8bef\u6392\u9664\u96c6\u9526",title:"\u9519\u8bef\u6392\u9664\u96c6\u9526",description:"\u5185\u5b58\u4e0d\u8db3\uff0c\u5bfc\u81f4\u4e0a\u4f20\u6587\u4ef6\u5931\u8d25",source:"@site/docs/study/back/\u9519\u8bef\u6392\u9664\u96c6\u9526.md",sourceDirName:"study/back",slug:"/study/back/\u9519\u8bef\u6392\u9664\u96c6\u9526",permalink:"/docs/study/back/\u9519\u8bef\u6392\u9664\u96c6\u9526",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"log4jdbc",permalink:"/docs/study/back/\u6570\u636e\u5e93\u76f8\u5173/log4jdbc"},next:{title:"\u6982\u8ff0",permalink:"/docs/study/db/"}},s={},i=[{value:"\u5185\u5b58\u4e0d\u8db3\uff0c\u5bfc\u81f4\u4e0a\u4f20\u6587\u4ef6\u5931\u8d25",id:"\u5185\u5b58\u4e0d\u8db3\u5bfc\u81f4\u4e0a\u4f20\u6587\u4ef6\u5931\u8d25",level:3}],l={toc:i},u="wrapper";function g(e){let{components:t,...r}=e;return(0,c.yg)(u,(0,n.A)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,c.yg)("h3",{id:"\u5185\u5b58\u4e0d\u8db3\u5bfc\u81f4\u4e0a\u4f20\u6587\u4ef6\u5931\u8d25"},"\u5185\u5b58\u4e0d\u8db3\uff0c\u5bfc\u81f4\u4e0a\u4f20\u6587\u4ef6\u5931\u8d25"),(0,c.yg)("p",null,"HTTP\u8bf7\u6c42\u4e0a\u4f20\u6587\u4ef6"),(0,c.yg)("p",null,"\u62a5\u9519\u5982\u4e0b"),(0,c.yg)("pre",null,(0,c.yg)("code",{parentName:"pre",className:"language-shell"},"2024-05-09 11:09:36.896 [ccsp-aggregate-pt,TASK,6727263067663369608,] [task-2] INFO c.s.c.p.b.s.s.service.impl.ServiceInfoServiceImpl - start upload image fi\nle to remote ---\n2024-05-09 11:09:38.672 [ccsp-aggregate-pt,TASK,6727263067663369608,] [task-2] INFO org.apache.http.impl.execchain.RetryExec - I/O exception (java.net.Socket\nException) caught when processing request to {s}->https://10.20.37.101:18086: Connection reset\n2024-05-09 11:09:38.673 [ccsp-aggregate-pt,TASK,6727263067663369608,] [task-2] INFO org.apache.http.impl.execchain.RetryExec - Retrying request to {s}->https\n://10.20.37.101:18086\n2024-05-09 11:09:40.552 [ccsp-aggregate-pt,TASK,6727263067663369608,] [task-2] INFO org.apache.http.impl.execchain.RetryExec - I/O exception (java.net.Socket\nException) caught when processing request to {s}->https://10.20.37.101:18086: Connection reset\n2024-05-09 11:09:40.552 [ccsp-aggregate-pt,TASK,6727263067663369608,] [task-2] INFO org.apache.http.impl.execchain.RetryExec - Retrying request to {s}->https\n://10.20.37.101:18086\n2024-05-09 11:09:42.355 [ccsp-aggregate-pt,TASK,6727263067663369608,] [task-2] INFO org.apache.http.impl.execchain.RetryExec - I/O exception (java.net.Socket\nException) caught when processing request to {s}->https://10.20.37.101:18086: Connection reset\n2024-05-09 11:09:42.355 [ccsp-aggregate-pt,TASK,6727263067663369608,] [task-2] INFO org.apache.http.impl.execchain.RetryExec - Retrying request to {s}->https\n://10.20.37.101:18086\n")),(0,c.yg)("p",null,"\u5bbf\u4e3b\u673aserver\u7aef\u7684\u5185\u5b58\u4e0d\u8db3\uff0c\u6bd4\u4e0a\u4f20\u7684\u6587\u4ef6\u8981\u5c0f\uff0c\u5bfc\u81f4\u65e0\u6cd5\u63a5\u53d7\uff0c\u4ece\u800c\u76f4\u63a5\u65ad\u8054\u4e86HTTP\u8bf7\u6c42\u3002"))}g.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3c356cd2.94cf967e.js b/assets/js/3c356cd2.bb5d4b18.js similarity index 99% rename from assets/js/3c356cd2.94cf967e.js rename to assets/js/3c356cd2.bb5d4b18.js index 86cc6d7df..e2aa3b8f1 100644 --- a/assets/js/3c356cd2.94cf967e.js +++ b/assets/js/3c356cd2.bb5d4b18.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2582],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var i=n.createContext({}),p=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(i.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),s=p(r),d=o,f=s["".concat(i,".").concat(d)]||s[d]||y[d]||a;return r?n.createElement(f,l(l({ref:t},u),{},{components:r})):n.createElement(f,l({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=d;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[s]="string"==typeof e?e:o,l[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>y,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={},l=void 0,c={unversionedId:"study/net/\u5185\u7f51\u7a7f\u900f",id:"study/net/\u5185\u7f51\u7a7f\u900f",title:"\u5185\u7f51\u7a7f\u900f",description:"\u5185\u7f51\u7a7f\u900f",source:"@site/docs/study/net/\u5185\u7f51\u7a7f\u900f.md",sourceDirName:"study/net",slug:"/study/net/\u5185\u7f51\u7a7f\u900f",permalink:"/docs/study/net/\u5185\u7f51\u7a7f\u900f",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u4ee3\u7406",permalink:"/docs/study/net/\u4ee3\u7406"},next:{title:"\u5c40\u57df\u7f51IP\u5730\u5740\u8303\u56f4",permalink:"/docs/study/net/\u5c40\u57df\u7f51IP\u5730\u5740\u8303\u56f4"}},i={},p=[{value:"\u5185\u7f51\u7a7f\u900f",id:"\u5185\u7f51\u7a7f\u900f",level:3},{value:"\u5185\u7f51\u7a7f\u900f\u539f\u7406",id:"\u5185\u7f51\u7a7f\u900f\u539f\u7406",level:3},{value:"\u7ade\u54c1\u5206\u6790",id:"\u7ade\u54c1\u5206\u6790",level:3}],u={toc:p},s="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u5185\u7f51\u7a7f\u900f"},"\u5185\u7f51\u7a7f\u900f"),(0,o.yg)("p",null,"\u5185\u7f51\uff0c\u5c31\u662f\u5728\u516c\u53f8\u6216\u8005\u5bb6\u5ead\u5185\u90e8\uff0c\u5efa\u7acb\u7684\u5c40\u57df\u7f51\u7edc\u6216\u8005\u662f\u529e\u516c\u7f51\u7edc\uff0c\u53ef\u4ee5\u5b9e\u73b0\u591a\u53f0\u7535\u8111\u4e4b\u95f4\u7684\u8d44\u6e90\u5171\u4eab\uff0c\u5305\u62ec\u8bbe\u5907\u3001\u8d44\u6599\u3001\u6570\u636e\u7b49\u3002\u800c\u5916\u7f51\u5219\u662f\u901a\u8fc7\u4e00\u4e2a\u7f51\u5173\u4e0e\u5176\u5b83\u7684\u7f51\u7edc\u7cfb\u7edf\u8fde\u63a5\uff0c\u76f8\u5bf9\u4e8e\u5185\u7f51\u800c\u8a00\uff0c\u8fd9\u79cd\u7f51\u7edc\u7cfb\u7edf\u79f0\u4e4b\u4e3a\u5916\u90e8\u7f51\u7edc\uff0c\u5e38\u89c1\u7684\u5c31\u662f\u6211\u4eec\u65e5\u5e38\u4f7f\u7528\u7684\u4e92\u8054\u7f51\u3002"),(0,o.yg)("p",null,"\u4e00\u822c\u800c\u8a00\uff0c\u5728\u6ca1\u6709\u56fa\u5b9a\u516c\u7f51 IP \u7684\u60c5\u51b5\u4e0b\uff0c\u5916\u7f51\u8bbe\u5907\u65e0\u6cd5\u76f4\u63a5\u8bbf\u95ee\u5185\u7f51\u8bbe\u5907\u3002\u800c\u5185\u7f51\u7a7f\u900f\u6280\u672f\uff0c\u987e\u540d\u601d\u4e49\u5c31\u662f\u80fd\u8ba9\u5916\u7f51\u7684\u8bbe\u5907\u627e\u5230\u5904\u4e8e\u5185\u7f51\u7684\u8bbe\u5907\uff0c\u4ece\u800c\u5b9e\u73b0\u6570\u636e\u901a\u4fe1\u3002"),(0,o.yg)("h3",{id:"\u5185\u7f51\u7a7f\u900f\u539f\u7406"},"\u5185\u7f51\u7a7f\u900f\u539f\u7406"),(0,o.yg)("p",null,"\u5185\u7f51\u7a7f\u900f\uff0c\u53c8\u79f0\u4e3a NAT \u7a7f\u900f\u3002NAT \u80cc\u540e\u7684\u8bbe\u5907\uff0c\u5b83\u4eec\u7684\u4e3b\u8981\u7279\u70b9\u662f \uff0c\u53ef\u4ee5\u8bbf\u95ee\u5916\u7f51\uff0c\u4f46\u4e0d\u80fd\u88ab\u5916\u7f51\u8bbe\u5907\u6709\u6548\u8bbf\u95ee\u3002\u57fa\u4e8e\u8fd9\u4e00\u7279\u70b9\uff0cNAT \u7a7f\u900f\u6280\u672f\u662f\u8ba9 NAT \u80cc\u540e\u7684\u8bbe\u5907\uff0c\u5148\u8bbf\u95ee\u6307\u5b9a\u7684\u5916\u7f51\u670d\u52a1\u5668\uff0c\u7531\u6307\u5b9a\u7684\u5916\u7f51\u670d\u52a1\u5668\u642d\u5efa\u6865\u6881\uff0c\u6253\u901a\u5185\u3001\u5916\u7f51\u8bbe\u5907\u7684\u8bbf\u95ee\u901a\u9053\uff0c\u5b9e\u73b0\u5916\u7f51\u8bbe\u5907\u8bbf\u95ee\u5230\u5185\u7f51\u8bbe\u5907\u3002"),(0,o.yg)("p",null,"\u8be5\u6280\u672f\u9664\u4e86\u53ef\u4ee5\u8bbf\u95ee\u9690\u85cf\u5728 NAT \u540e\u7684\u8bbe\u5907\uff0c\u540c\u6837\u53ef\u4ee5\u7a7f\u900f\u9632\u706b\u5899\u3002\u8fd9\u662f\u56e0\u4e3a\u9632\u706b\u5899\u4e00\u822c\u53ea\u62e6\u622a\u4e86\u5165\u7ad9\u6ca1\u6709\u62e6\u622a\u51fa\u7ad9\uff0c\u6240\u4ee5\u4e5f\u53ef\u4ee5\u8ba9\u9632\u706b\u5899\u5185\u7684\u8bbe\u5907\u5bf9\u5916\u63d0\u4f9b\u670d\u52a1\u3002"),(0,o.yg)("p",null,"\u7531\u4e8e\u5185\u7f51\u8bbe\u5907\u5e76\u4e0d\u662f\u4e0e\u5916\u7f51\u8bbe\u5907\u76f4\u63a5\u76f8\u8fde\uff0c\u6240\u4ee5\u5728\u5b89\u5168\u6027\u4e0a\u662f\u6bcb\u5eb8\u7f6e\u7591\u7684\uff0c\u5185\u7f51\u7a7f\u900f\u53ef\u4ee5\u8bf4\u662f\u5b89\u5168\u4e0e\u6548\u7387\u517c\u5f97\u3002"),(0,o.yg)("h3",{id:"\u7ade\u54c1\u5206\u6790"},"\u7ade\u54c1\u5206\u6790"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://hsk.oray.com/"},"https://hsk.oray.com/")," \u82b1\u751f\u58f3 8 \u4ee5\u82af\u6362\u65b0\uff0c\u8ba9\u5185\u7f51\u7a7f\u900f\u66f4\u7b80\u5355"),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://www.cpolar.com/"},"https://www.cpolar.com/")," \u6df1\u8015\u5185\u7f51\u7a7f\u900f\u9886\u57df")))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2582],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var i=n.createContext({}),p=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(i.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),s=p(r),d=o,f=s["".concat(i,".").concat(d)]||s[d]||y[d]||a;return r?n.createElement(f,l(l({ref:t},u),{},{components:r})):n.createElement(f,l({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=d;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[s]="string"==typeof e?e:o,l[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>y,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={},l=void 0,c={unversionedId:"study/net/\u5185\u7f51\u7a7f\u900f",id:"study/net/\u5185\u7f51\u7a7f\u900f",title:"\u5185\u7f51\u7a7f\u900f",description:"\u5185\u7f51\u7a7f\u900f",source:"@site/docs/study/net/\u5185\u7f51\u7a7f\u900f.md",sourceDirName:"study/net",slug:"/study/net/\u5185\u7f51\u7a7f\u900f",permalink:"/docs/study/net/\u5185\u7f51\u7a7f\u900f",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u4ee3\u7406",permalink:"/docs/study/net/\u4ee3\u7406"},next:{title:"\u5c40\u57df\u7f51IP\u5730\u5740\u8303\u56f4",permalink:"/docs/study/net/\u5c40\u57df\u7f51IP\u5730\u5740\u8303\u56f4"}},i={},p=[{value:"\u5185\u7f51\u7a7f\u900f",id:"\u5185\u7f51\u7a7f\u900f",level:3},{value:"\u5185\u7f51\u7a7f\u900f\u539f\u7406",id:"\u5185\u7f51\u7a7f\u900f\u539f\u7406",level:3},{value:"\u7ade\u54c1\u5206\u6790",id:"\u7ade\u54c1\u5206\u6790",level:3}],u={toc:p},s="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u5185\u7f51\u7a7f\u900f"},"\u5185\u7f51\u7a7f\u900f"),(0,o.yg)("p",null,"\u5185\u7f51\uff0c\u5c31\u662f\u5728\u516c\u53f8\u6216\u8005\u5bb6\u5ead\u5185\u90e8\uff0c\u5efa\u7acb\u7684\u5c40\u57df\u7f51\u7edc\u6216\u8005\u662f\u529e\u516c\u7f51\u7edc\uff0c\u53ef\u4ee5\u5b9e\u73b0\u591a\u53f0\u7535\u8111\u4e4b\u95f4\u7684\u8d44\u6e90\u5171\u4eab\uff0c\u5305\u62ec\u8bbe\u5907\u3001\u8d44\u6599\u3001\u6570\u636e\u7b49\u3002\u800c\u5916\u7f51\u5219\u662f\u901a\u8fc7\u4e00\u4e2a\u7f51\u5173\u4e0e\u5176\u5b83\u7684\u7f51\u7edc\u7cfb\u7edf\u8fde\u63a5\uff0c\u76f8\u5bf9\u4e8e\u5185\u7f51\u800c\u8a00\uff0c\u8fd9\u79cd\u7f51\u7edc\u7cfb\u7edf\u79f0\u4e4b\u4e3a\u5916\u90e8\u7f51\u7edc\uff0c\u5e38\u89c1\u7684\u5c31\u662f\u6211\u4eec\u65e5\u5e38\u4f7f\u7528\u7684\u4e92\u8054\u7f51\u3002"),(0,o.yg)("p",null,"\u4e00\u822c\u800c\u8a00\uff0c\u5728\u6ca1\u6709\u56fa\u5b9a\u516c\u7f51 IP \u7684\u60c5\u51b5\u4e0b\uff0c\u5916\u7f51\u8bbe\u5907\u65e0\u6cd5\u76f4\u63a5\u8bbf\u95ee\u5185\u7f51\u8bbe\u5907\u3002\u800c\u5185\u7f51\u7a7f\u900f\u6280\u672f\uff0c\u987e\u540d\u601d\u4e49\u5c31\u662f\u80fd\u8ba9\u5916\u7f51\u7684\u8bbe\u5907\u627e\u5230\u5904\u4e8e\u5185\u7f51\u7684\u8bbe\u5907\uff0c\u4ece\u800c\u5b9e\u73b0\u6570\u636e\u901a\u4fe1\u3002"),(0,o.yg)("h3",{id:"\u5185\u7f51\u7a7f\u900f\u539f\u7406"},"\u5185\u7f51\u7a7f\u900f\u539f\u7406"),(0,o.yg)("p",null,"\u5185\u7f51\u7a7f\u900f\uff0c\u53c8\u79f0\u4e3a NAT \u7a7f\u900f\u3002NAT \u80cc\u540e\u7684\u8bbe\u5907\uff0c\u5b83\u4eec\u7684\u4e3b\u8981\u7279\u70b9\u662f \uff0c\u53ef\u4ee5\u8bbf\u95ee\u5916\u7f51\uff0c\u4f46\u4e0d\u80fd\u88ab\u5916\u7f51\u8bbe\u5907\u6709\u6548\u8bbf\u95ee\u3002\u57fa\u4e8e\u8fd9\u4e00\u7279\u70b9\uff0cNAT \u7a7f\u900f\u6280\u672f\u662f\u8ba9 NAT \u80cc\u540e\u7684\u8bbe\u5907\uff0c\u5148\u8bbf\u95ee\u6307\u5b9a\u7684\u5916\u7f51\u670d\u52a1\u5668\uff0c\u7531\u6307\u5b9a\u7684\u5916\u7f51\u670d\u52a1\u5668\u642d\u5efa\u6865\u6881\uff0c\u6253\u901a\u5185\u3001\u5916\u7f51\u8bbe\u5907\u7684\u8bbf\u95ee\u901a\u9053\uff0c\u5b9e\u73b0\u5916\u7f51\u8bbe\u5907\u8bbf\u95ee\u5230\u5185\u7f51\u8bbe\u5907\u3002"),(0,o.yg)("p",null,"\u8be5\u6280\u672f\u9664\u4e86\u53ef\u4ee5\u8bbf\u95ee\u9690\u85cf\u5728 NAT \u540e\u7684\u8bbe\u5907\uff0c\u540c\u6837\u53ef\u4ee5\u7a7f\u900f\u9632\u706b\u5899\u3002\u8fd9\u662f\u56e0\u4e3a\u9632\u706b\u5899\u4e00\u822c\u53ea\u62e6\u622a\u4e86\u5165\u7ad9\u6ca1\u6709\u62e6\u622a\u51fa\u7ad9\uff0c\u6240\u4ee5\u4e5f\u53ef\u4ee5\u8ba9\u9632\u706b\u5899\u5185\u7684\u8bbe\u5907\u5bf9\u5916\u63d0\u4f9b\u670d\u52a1\u3002"),(0,o.yg)("p",null,"\u7531\u4e8e\u5185\u7f51\u8bbe\u5907\u5e76\u4e0d\u662f\u4e0e\u5916\u7f51\u8bbe\u5907\u76f4\u63a5\u76f8\u8fde\uff0c\u6240\u4ee5\u5728\u5b89\u5168\u6027\u4e0a\u662f\u6bcb\u5eb8\u7f6e\u7591\u7684\uff0c\u5185\u7f51\u7a7f\u900f\u53ef\u4ee5\u8bf4\u662f\u5b89\u5168\u4e0e\u6548\u7387\u517c\u5f97\u3002"),(0,o.yg)("h3",{id:"\u7ade\u54c1\u5206\u6790"},"\u7ade\u54c1\u5206\u6790"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://hsk.oray.com/"},"https://hsk.oray.com/")," \u82b1\u751f\u58f3 8 \u4ee5\u82af\u6362\u65b0\uff0c\u8ba9\u5185\u7f51\u7a7f\u900f\u66f4\u7b80\u5355"),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://www.cpolar.com/"},"https://www.cpolar.com/")," \u6df1\u8015\u5185\u7f51\u7a7f\u900f\u9886\u57df")))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3c4f1597.359fabbd.js b/assets/js/3c4f1597.7da9beb2.js similarity index 98% rename from assets/js/3c4f1597.359fabbd.js rename to assets/js/3c4f1597.7da9beb2.js index 6fc942877..ce4a0ee3c 100644 --- a/assets/js/3c4f1597.359fabbd.js +++ b/assets/js/3c4f1597.7da9beb2.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3845],{5680:(t,e,r)=>{r.d(e,{xA:()=>c,yg:()=>y});var n=r(6540);function i(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function o(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function p(t){for(var e=1;e=0||(i[r]=t[r]);return i}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(i[r]=t[r])}return i}var l=n.createContext({}),u=function(t){var e=n.useContext(l),r=e;return t&&(r="function"==typeof t?t(e):p(p({},e),t)),r},c=function(t){var e=u(t.components);return n.createElement(l.Provider,{value:e},t.children)},s="mdxType",f={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},d=n.forwardRef((function(t,e){var r=t.components,i=t.mdxType,o=t.originalType,l=t.parentName,c=a(t,["components","mdxType","originalType","parentName"]),s=u(r),d=i,y=s["".concat(l,".").concat(d)]||s[d]||f[d]||o;return r?n.createElement(y,p(p({ref:e},c),{},{components:r})):n.createElement(y,p({ref:e},c))}));function y(t,e){var r=arguments,i=e&&e.mdxType;if("string"==typeof t||i){var o=r.length,p=new Array(o);p[0]=d;var a={};for(var l in e)hasOwnProperty.call(e,l)&&(a[l]=e[l]);a.originalType=t,a[s]="string"==typeof t?t:i,p[1]=a;for(var u=2;u{r.r(e),r.d(e,{assets:()=>l,contentTitle:()=>p,default:()=>f,frontMatter:()=>o,metadata:()=>a,toc:()=>u});var n=r(8168),i=(r(6540),r(5680));const o={},p=void 0,a={unversionedId:"study/program/C/size_t-ptrdiff_t-intptr_t-uintptr_t",id:"study/program/C/size_t-ptrdiff_t-intptr_t-uintptr_t",title:"size_t-ptrdiff_t-intptr_t-uintptr_t",description:"- size_t",source:"@site/docs/study/program/C/size_t-ptrdiff_t-intptr_t-uintptr_t.md",sourceDirName:"study/program/C",slug:"/study/program/C/size_t-ptrdiff_t-intptr_t-uintptr_t",permalink:"/docs/study/program/C/size_t-ptrdiff_t-intptr_t-uintptr_t",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"pragma",permalink:"/docs/study/program/C/pragma"},next:{title:"\u65b9\u6cd5\u5e93-\u9759\u6001\u5e93-\u52a8\u6001\u5e93-\u5171\u4eab\u5e93",permalink:"/docs/study/program/C/\u65b9\u6cd5\u5e93-\u9759\u6001\u5e93-\u52a8\u6001\u5e93-\u5171\u4eab\u5e93"}},l={},u=[],c={toc:u},s="wrapper";function f(t){let{components:e,...r}=t;return(0,i.yg)(s,(0,n.A)({},c,r,{components:e,mdxType:"MDXLayout"}),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},"size_t")),(0,i.yg)("p",null,"size_t \u662f\u65e0\u7b26\u53f7\u6574\u6570\u7c7b\u578b\uff0c\u8fd9\u662f sizeof \u64cd\u4f5c\u7b26\u7ed3\u679c\u7684\u7c7b\u578b\u3002\u5982\u679c\u8bbe\u5907\u7684\u5730\u5740\u7a7a\u95f4\u4e3a 32 \u4f4d\uff0c\u8fd9\u5c31\u662f\u4e00\u4e2a 32 \u4f4d\u65e0\u7b26\u53f7\u6574\u6570\uff1b\u5982\u679c\u8bbe\u5907\u7684\u5730\u5740\u7a7a\u95f4\u662f 64 \u4f4d\uff0c\u8fd9\u5c31\u662f\u4e00\u4e2a 64 \u4f4d\u65e0\u7b26\u53f7\u6574\u6570\u3002\u6362\u800c\u8a00\u4e4b\uff0c\u4e00\u4e2a size_t \u7c7b\u578b\u7684\u53d8\u91cf\u80fd\u591f\u5b89\u5168\u4fdd\u5b58\u4e00\u4e2a\u6307\u9488\uff08\u552f\u4e00\u7684\u4f8b\u5916\u662f\u6307\u5411\u7c7b\u51fd\u6570\u7684\u6307\u9488\uff09\u3002size_t \u901a\u5e38\u7528\u4e8e loop \u8ba1\u6570\u5668\uff0c\u6570\u7ec4\u7d22\u5f15\u548c\u5730\u5740\u7b97\u6570\u3002"),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},"ptrdiff_t")),(0,i.yg)("p",null,"ptrdiff_t \u662f\u6709\u7b26\u53f7\u6574\u6570\u7c7b\u578b\uff0c\u8fd9\u662f\u4e24\u4e2a\u6307\u9488\u76f8\u51cf\u7ed3\u679c\u7684\u7c7b\u578b\u3002\u5982\u679c\u8bbe\u5907\u7684\u5730\u5740\u7a7a\u95f4\u4e3a 32 \u4f4d\uff0c\u8fd9\u5c31\u662f\u4e00\u4e2a 32 \u4f4d\u6709\u7b26\u53f7\u6574\u6570\uff1b\u5982\u679c\u8bbe\u5907\u7684\u5730\u5740\u7a7a\u95f4\u662f 64 \u4f4d\uff0c\u8fd9\u5c31\u662f\u4e00\u4e2a 64 \u4f4d\u6709\u7b26\u53f7\u6574\u6570\u3002\u4e0e size_t \u4e00\u6837\uff0cptrdiff_t \u80fd\u5b89\u5168\u5b58\u50a8\u9664\u7c7b\u51fd\u6570\u6307\u9488\u5916\u7684\u6307\u9488\u3002"),(0,i.yg)("p",null,"size_t \u548c ptr_diff \u7684\u5927\u5c0f\u603b\u662f\u548c\u6307\u9488\u7684\u5927\u5c0f\u4e00\u81f4\uff0c\u56e0\u6b64\u9002\u5408\u7528\u6765\u7d22\u5f15\u5927\u6570\u7ec4\u3001\u5b58\u50a8\u6307\u9488\u4ee5\u53ca\u6307\u9488\u8fd0\u7b97\u7b49\u3002"),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},"intptr_t")),(0,i.yg)("p",null,"\u6709\u7b26\u53f7\u6574\u6570\u7c7b\u578b\uff0c\u5b83\u6709\u4e00\u4e2a\u6027\u8d28\uff0c\u4efb\u4f55\u6307\u5411 void \u7684\u5408\u6cd5\u6307\u9488\u90fd\u53ef\u4ee5\u8f6c\u5316\u4e3a\u8fd9\u4e2a\u7c7b\u578b\uff0c\u7136\u540e\u8fd8\u53ef\u4ee5\u518d\u8f6c\u6362\u56de\u6307\u5411 void \u7684\u6307\u9488\uff0c\u5176\u7ed3\u679c\u4e0e\u539f\u6307\u9488\u6bd4\u8f83\u662f\u76f8\u7b49\u7684\u3002"),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},"uintptr_t")),(0,i.yg)("p",null,"\u65e0\u7b26\u53f7\u6574\u6570\u7c7b\u578b\uff0c\u5b83\u6709\u4e00\u4e2a\u6027\u8d28\uff0c\u4efb\u4f55\u6307\u5411 void \u7684\u5408\u6cd5\u6307\u9488\u90fd\u53ef\u4ee5\u8f6c\u5316\u4e3a\u8fd9\u4e2a\u7c7b\u578b\uff0c\u7136\u540e\u8fd8\u53ef\u4ee5\u518d\u8f6c\u6362\u56de\u6307\u5411 void \u7684\u6307\u9488\uff0c\u5176\u7ed3\u679c\u4e0e\u539f\u6307\u9488\u6bd4\u8f83\u662f\u76f8\u7b49\u7684\u3002"))}f.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3845],{5680:(t,e,r)=>{r.d(e,{xA:()=>c,yg:()=>y});var n=r(6540);function i(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function o(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function p(t){for(var e=1;e=0||(i[r]=t[r]);return i}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(i[r]=t[r])}return i}var l=n.createContext({}),u=function(t){var e=n.useContext(l),r=e;return t&&(r="function"==typeof t?t(e):p(p({},e),t)),r},c=function(t){var e=u(t.components);return n.createElement(l.Provider,{value:e},t.children)},s="mdxType",f={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},d=n.forwardRef((function(t,e){var r=t.components,i=t.mdxType,o=t.originalType,l=t.parentName,c=a(t,["components","mdxType","originalType","parentName"]),s=u(r),d=i,y=s["".concat(l,".").concat(d)]||s[d]||f[d]||o;return r?n.createElement(y,p(p({ref:e},c),{},{components:r})):n.createElement(y,p({ref:e},c))}));function y(t,e){var r=arguments,i=e&&e.mdxType;if("string"==typeof t||i){var o=r.length,p=new Array(o);p[0]=d;var a={};for(var l in e)hasOwnProperty.call(e,l)&&(a[l]=e[l]);a.originalType=t,a[s]="string"==typeof t?t:i,p[1]=a;for(var u=2;u{r.r(e),r.d(e,{assets:()=>l,contentTitle:()=>p,default:()=>f,frontMatter:()=>o,metadata:()=>a,toc:()=>u});var n=r(8168),i=(r(6540),r(5680));const o={},p=void 0,a={unversionedId:"study/program/C/size_t-ptrdiff_t-intptr_t-uintptr_t",id:"study/program/C/size_t-ptrdiff_t-intptr_t-uintptr_t",title:"size_t-ptrdiff_t-intptr_t-uintptr_t",description:"- size_t",source:"@site/docs/study/program/C/size_t-ptrdiff_t-intptr_t-uintptr_t.md",sourceDirName:"study/program/C",slug:"/study/program/C/size_t-ptrdiff_t-intptr_t-uintptr_t",permalink:"/docs/study/program/C/size_t-ptrdiff_t-intptr_t-uintptr_t",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"pragma",permalink:"/docs/study/program/C/pragma"},next:{title:"\u65b9\u6cd5\u5e93-\u9759\u6001\u5e93-\u52a8\u6001\u5e93-\u5171\u4eab\u5e93",permalink:"/docs/study/program/C/\u65b9\u6cd5\u5e93-\u9759\u6001\u5e93-\u52a8\u6001\u5e93-\u5171\u4eab\u5e93"}},l={},u=[],c={toc:u},s="wrapper";function f(t){let{components:e,...r}=t;return(0,i.yg)(s,(0,n.A)({},c,r,{components:e,mdxType:"MDXLayout"}),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},"size_t")),(0,i.yg)("p",null,"size_t \u662f\u65e0\u7b26\u53f7\u6574\u6570\u7c7b\u578b\uff0c\u8fd9\u662f sizeof \u64cd\u4f5c\u7b26\u7ed3\u679c\u7684\u7c7b\u578b\u3002\u5982\u679c\u8bbe\u5907\u7684\u5730\u5740\u7a7a\u95f4\u4e3a 32 \u4f4d\uff0c\u8fd9\u5c31\u662f\u4e00\u4e2a 32 \u4f4d\u65e0\u7b26\u53f7\u6574\u6570\uff1b\u5982\u679c\u8bbe\u5907\u7684\u5730\u5740\u7a7a\u95f4\u662f 64 \u4f4d\uff0c\u8fd9\u5c31\u662f\u4e00\u4e2a 64 \u4f4d\u65e0\u7b26\u53f7\u6574\u6570\u3002\u6362\u800c\u8a00\u4e4b\uff0c\u4e00\u4e2a size_t \u7c7b\u578b\u7684\u53d8\u91cf\u80fd\u591f\u5b89\u5168\u4fdd\u5b58\u4e00\u4e2a\u6307\u9488\uff08\u552f\u4e00\u7684\u4f8b\u5916\u662f\u6307\u5411\u7c7b\u51fd\u6570\u7684\u6307\u9488\uff09\u3002size_t \u901a\u5e38\u7528\u4e8e loop \u8ba1\u6570\u5668\uff0c\u6570\u7ec4\u7d22\u5f15\u548c\u5730\u5740\u7b97\u6570\u3002"),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},"ptrdiff_t")),(0,i.yg)("p",null,"ptrdiff_t \u662f\u6709\u7b26\u53f7\u6574\u6570\u7c7b\u578b\uff0c\u8fd9\u662f\u4e24\u4e2a\u6307\u9488\u76f8\u51cf\u7ed3\u679c\u7684\u7c7b\u578b\u3002\u5982\u679c\u8bbe\u5907\u7684\u5730\u5740\u7a7a\u95f4\u4e3a 32 \u4f4d\uff0c\u8fd9\u5c31\u662f\u4e00\u4e2a 32 \u4f4d\u6709\u7b26\u53f7\u6574\u6570\uff1b\u5982\u679c\u8bbe\u5907\u7684\u5730\u5740\u7a7a\u95f4\u662f 64 \u4f4d\uff0c\u8fd9\u5c31\u662f\u4e00\u4e2a 64 \u4f4d\u6709\u7b26\u53f7\u6574\u6570\u3002\u4e0e size_t \u4e00\u6837\uff0cptrdiff_t \u80fd\u5b89\u5168\u5b58\u50a8\u9664\u7c7b\u51fd\u6570\u6307\u9488\u5916\u7684\u6307\u9488\u3002"),(0,i.yg)("p",null,"size_t \u548c ptr_diff \u7684\u5927\u5c0f\u603b\u662f\u548c\u6307\u9488\u7684\u5927\u5c0f\u4e00\u81f4\uff0c\u56e0\u6b64\u9002\u5408\u7528\u6765\u7d22\u5f15\u5927\u6570\u7ec4\u3001\u5b58\u50a8\u6307\u9488\u4ee5\u53ca\u6307\u9488\u8fd0\u7b97\u7b49\u3002"),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},"intptr_t")),(0,i.yg)("p",null,"\u6709\u7b26\u53f7\u6574\u6570\u7c7b\u578b\uff0c\u5b83\u6709\u4e00\u4e2a\u6027\u8d28\uff0c\u4efb\u4f55\u6307\u5411 void \u7684\u5408\u6cd5\u6307\u9488\u90fd\u53ef\u4ee5\u8f6c\u5316\u4e3a\u8fd9\u4e2a\u7c7b\u578b\uff0c\u7136\u540e\u8fd8\u53ef\u4ee5\u518d\u8f6c\u6362\u56de\u6307\u5411 void \u7684\u6307\u9488\uff0c\u5176\u7ed3\u679c\u4e0e\u539f\u6307\u9488\u6bd4\u8f83\u662f\u76f8\u7b49\u7684\u3002"),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},"uintptr_t")),(0,i.yg)("p",null,"\u65e0\u7b26\u53f7\u6574\u6570\u7c7b\u578b\uff0c\u5b83\u6709\u4e00\u4e2a\u6027\u8d28\uff0c\u4efb\u4f55\u6307\u5411 void \u7684\u5408\u6cd5\u6307\u9488\u90fd\u53ef\u4ee5\u8f6c\u5316\u4e3a\u8fd9\u4e2a\u7c7b\u578b\uff0c\u7136\u540e\u8fd8\u53ef\u4ee5\u518d\u8f6c\u6362\u56de\u6307\u5411 void \u7684\u6307\u9488\uff0c\u5176\u7ed3\u679c\u4e0e\u539f\u6307\u9488\u6bd4\u8f83\u662f\u76f8\u7b49\u7684\u3002"))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3e116dbc.7e483a79.js b/assets/js/3e116dbc.7fcb0d09.js similarity index 98% rename from assets/js/3e116dbc.7e483a79.js rename to assets/js/3e116dbc.7fcb0d09.js index bf380694f..5678e8d3b 100644 --- a/assets/js/3e116dbc.7e483a79.js +++ b/assets/js/3e116dbc.7fcb0d09.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[822],{5680:(e,n,t)=>{t.d(n,{xA:()=>s,yg:()=>f});var r=t(6540);function c(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n=0||(c[t]=e[t]);return c}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(c[t]=e[t])}return c}var p=r.createContext({}),l=function(e){var n=r.useContext(p),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},s=function(e){var n=l(e.components);return r.createElement(p.Provider,{value:n},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},d=r.forwardRef((function(e,n){var t=e.components,c=e.mdxType,o=e.originalType,p=e.parentName,s=a(e,["components","mdxType","originalType","parentName"]),u=l(t),d=c,f=u["".concat(p,".").concat(d)]||u[d]||m[d]||o;return t?r.createElement(f,i(i({ref:n},s),{},{components:t})):r.createElement(f,i({ref:n},s))}));function f(e,n){var t=arguments,c=n&&n.mdxType;if("string"==typeof e||c){var o=t.length,i=new Array(o);i[0]=d;var a={};for(var p in n)hasOwnProperty.call(n,p)&&(a[p]=n[p]);a.originalType=e,a[u]="string"==typeof e?e:c,i[1]=a;for(var l=2;l{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>a,toc:()=>l});var r=t(8168),c=(t(6540),t(5680));const o={},i=void 0,a={unversionedId:"study/devops/Linux\u8fd0\u7ef4-\u9ad8\u5e76\u53d1",id:"study/devops/Linux\u8fd0\u7ef4-\u9ad8\u5e76\u53d1",title:"Linux\u8fd0\u7ef4-\u9ad8\u5e76\u53d1",description:"\u6700\u5927\u6587\u4ef6\u63cf\u8ff0\u7b26",source:"@site/docs/study/devops/Linux\u8fd0\u7ef4-\u9ad8\u5e76\u53d1.md",sourceDirName:"study/devops",slug:"/study/devops/Linux\u8fd0\u7ef4-\u9ad8\u5e76\u53d1",permalink:"/docs/study/devops/Linux\u8fd0\u7ef4-\u9ad8\u5e76\u53d1",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Linux\u8fd0\u7ef4-\u81ea\u542f",permalink:"/docs/study/devops/Linux\u8fd0\u7ef4-\u81ea\u542f"},next:{title:"SHELL",permalink:"/docs/study/devops/SHELL"}},p={},l=[{value:"\u6700\u5927\u6587\u4ef6\u63cf\u8ff0\u7b26",id:"\u6700\u5927\u6587\u4ef6\u63cf\u8ff0\u7b26",level:3},{value:"max-file",id:"max-file",level:3},{value:"\u5185\u6838\u53c2\u6570\u4f18\u5316/etc/sysctl.conf",id:"\u5185\u6838\u53c2\u6570\u4f18\u5316etcsysctlconf",level:3}],s={toc:l},u="wrapper";function m(e){let{components:n,...t}=e;return(0,c.yg)(u,(0,r.A)({},s,t,{components:n,mdxType:"MDXLayout"}),(0,c.yg)("h3",{id:"\u6700\u5927\u6587\u4ef6\u63cf\u8ff0\u7b26"},"\u6700\u5927\u6587\u4ef6\u63cf\u8ff0\u7b26"),(0,c.yg)("p",null,"ulimit -n \u63a7\u5236\u8fdb\u7a0b\u7ea7\u522b\u80fd\u591f\u6253\u5f00\u7684\u6587\u4ef6\u53e5\u67c4\u7684\u6570\u91cf\u3002\u63d0\u4f9b\u5bf9shell\u53ca\u5176\u542f\u52a8\u7684\u8fdb\u7a0b\u7684\u53ef\u7528\u6587\u4ef6\u53e5\u67c4\u7684\u63a7\u5236\u3002\u8fd9\u662f\u8fdb\u7a0b\u7ea7\u522b\u7684\u3002"),(0,c.yg)("pre",null,(0,c.yg)("code",{parentName:"pre",className:"language-shell"},'#\u6700\u5927\u6587\u4ef6\u63cf\u8ff0\u7b26 100W\nulimit -SHn 1000000 \necho "ulimit -SHn 1000000" >> /etc/rc.d/rc.local \nsource /etc/rc.d/rc.local\nulimit -n\n\n')),(0,c.yg)("h3",{id:"max-file"},"max-file"),(0,c.yg)("h3",{id:""}),(0,c.yg)("p",null,"\u8868\u793a\u7cfb\u7edf\u7ea7\u522b\u7684\u80fd\u591f\u6253\u5f00\u7684\u6587\u4ef6\u53e5\u67c4\u7684\u6570\u91cf\u3002\u662f\u5bf9\u6574\u4e2a\u7cfb\u7edf\u7684\u9650\u5236\uff0c\u5e76\u4e0d\u662f\u9488\u5bf9\u7528\u6237\u7684\u3002"),(0,c.yg)("pre",null,(0,c.yg)("code",{parentName:"pre",className:"language-shell"},"#\u67e5\u770b\u7cfb\u7edf\u7ea7\u522b\u7684\u80fd\u591f\u6253\u5f00\u7684\u6587\u4ef6\u53e5\u67c4\u7684\u6570\u91cf\uff0cCentos7\u9ed8\u8ba4\u662f794168\ncat /proc/sys/fs/file-max\n#\nvim /etc/sysctl.conf\n#\nfs.file-max = 1000000\n#\u7136\u540e\u6267\u884c\u547d\u4ee4\uff0c\u4f7f\u4fee\u6539\u914d\u7f6e\u7acb\u5373\u751f\u6548\uff1a\nsysctl -p\n")),(0,c.yg)("h3",{id:"\u5185\u6838\u53c2\u6570\u4f18\u5316etcsysctlconf"},"\u5185\u6838\u53c2\u6570\u4f18\u5316/etc/sysctl.conf"),(0,c.yg)("pre",null,(0,c.yg)("code",{parentName:"pre",className:"language-shell"},"#\u5173\u95edipv6\nnet.ipv6.conf.all.disable_ipv6 = 1\nnet.ipv6.conf.default.disable_ipv6 = 1\n\n#\u51b3\u5b9a\u68c0\u67e5\u8fc7\u671f\u591a\u4e45\u90bb\u5c45\u6761\u76ee\nnet.ipv4.neigh.default.gc_stale_time=120\n\n#\u4f7f\u7528arp_announce / arp_ignore\u89e3\u51b3ARP\u6620\u5c04\u95ee\u9898\nnet.ipv4.conf.default.arp_announce = 2\nnet.ipv4.conf.all.arp_announce=2\nnet.ipv4.conf.lo.arp_announce=2 # \u907f\u514d\u653e\u5927\u653b\u51fb\nnet.ipv4.icmp_echo_ignore_broadcasts = 1 # \u5f00\u542f\u6076\u610ficmp\u9519\u8bef\u6d88\u606f\u4fdd\u62a4\nnet.ipv4.icmp_ignore_bogus_error_responses = 1\n\n#\u5904\u7406\u65e0\u6e90\u8def\u7531\u7684\u5305\nnet.ipv4.conf.all.accept_source_route = 0\nnet.ipv4.conf.default.accept_source_route = 0\n\n#core\u6587\u4ef6\u540d\u4e2d\u6dfb\u52a0pid\u4f5c\u4e3a\u6269\u5c55\u540d\nkernel.core_uses_pid = 1 # \u5f00\u542fSYN\u6d2a\u6c34\u653b\u51fb\u4fdd\u62a4\nnet.ipv4.tcp_syncookies = 1\n\n#\u4fee\u6539\u6d88\u606f\u961f\u5217\u957f\u5ea6\nkernel.msgmnb = 65536\nkernel.msgmax = 65536\n\n#timewait\u7684\u6570\u91cf\uff0c\u9ed8\u8ba4180000\nnet.ipv4.tcp_max_tw_buckets = 6000\nnet.ipv4.tcp_sack = 1\nnet.ipv4.tcp_window_scaling = 1\nnet.ipv4.tcp_rmem = 4096 87380 4194304\nnet.ipv4.tcp_wmem = 4096 16384 4194304\nnet.core.wmem_default = 8388608\nnet.core.rmem_default = 8388608\nnet.core.rmem_max = 16777216\nnet.core.wmem_max = 16777216\n\n#\u9650\u5236\u4ec5\u4ec5\u662f\u4e3a\u4e86\u9632\u6b62\u7b80\u5355\u7684DoS \u653b\u51fb\nnet.ipv4.tcp_max_orphans = 3276800\n\n#\u672a\u6536\u5230\u5ba2\u6237\u7aef\u786e\u8ba4\u4fe1\u606f\u7684\u8fde\u63a5\u8bf7\u6c42\u7684\u6700\u5927\u503c\nnet.ipv4.tcp_max_syn_backlog = 262144\nnet.ipv4.tcp_timestamps = 0\n\n#\u5185\u6838\u653e\u5f03\u5efa\u7acb\u8fde\u63a5\u4e4b\u524d\u53d1\u9001SYNACK \u5305\u7684\u6570\u91cf\nnet.ipv4.tcp_synack_retries = 1\n\n#\u5185\u6838\u653e\u5f03\u5efa\u7acb\u8fde\u63a5\u4e4b\u524d\u53d1\u9001SYN \u5305\u7684\u6570\u91cf\nnet.ipv4.tcp_syn_retries = 1\n\n#\u542f\u7528timewait \u5feb\u901f\u56de\u6536\nnet.ipv4.tcp_tw_recycle = 1\n\n#\u5f00\u542f\u91cd\u7528\u3002\u5141\u8bb8\u5c06TIME-WAIT sockets \u91cd\u65b0\u7528\u4e8e\u65b0\u7684TCP \u8fde\u63a5\nnet.ipv4.tcp_tw_reuse = 1\nnet.ipv4.tcp_mem = 94500000 915000000 927000000\nnet.ipv4.tcp_fin_timeout = 1\n\n#\u7136\u540e\u6267\u884c\u4ee5\u4e0b\u547d\u4ee4\u91cd\u8f7d\u914d\u7f6e\nsysctl -p\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[822],{5680:(e,n,t)=>{t.d(n,{xA:()=>s,yg:()=>f});var r=t(6540);function c(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n=0||(c[t]=e[t]);return c}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(c[t]=e[t])}return c}var p=r.createContext({}),l=function(e){var n=r.useContext(p),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},s=function(e){var n=l(e.components);return r.createElement(p.Provider,{value:n},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},d=r.forwardRef((function(e,n){var t=e.components,c=e.mdxType,o=e.originalType,p=e.parentName,s=a(e,["components","mdxType","originalType","parentName"]),u=l(t),d=c,f=u["".concat(p,".").concat(d)]||u[d]||m[d]||o;return t?r.createElement(f,i(i({ref:n},s),{},{components:t})):r.createElement(f,i({ref:n},s))}));function f(e,n){var t=arguments,c=n&&n.mdxType;if("string"==typeof e||c){var o=t.length,i=new Array(o);i[0]=d;var a={};for(var p in n)hasOwnProperty.call(n,p)&&(a[p]=n[p]);a.originalType=e,a[u]="string"==typeof e?e:c,i[1]=a;for(var l=2;l{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>a,toc:()=>l});var r=t(8168),c=(t(6540),t(5680));const o={},i=void 0,a={unversionedId:"study/devops/Linux\u8fd0\u7ef4-\u9ad8\u5e76\u53d1",id:"study/devops/Linux\u8fd0\u7ef4-\u9ad8\u5e76\u53d1",title:"Linux\u8fd0\u7ef4-\u9ad8\u5e76\u53d1",description:"\u6700\u5927\u6587\u4ef6\u63cf\u8ff0\u7b26",source:"@site/docs/study/devops/Linux\u8fd0\u7ef4-\u9ad8\u5e76\u53d1.md",sourceDirName:"study/devops",slug:"/study/devops/Linux\u8fd0\u7ef4-\u9ad8\u5e76\u53d1",permalink:"/docs/study/devops/Linux\u8fd0\u7ef4-\u9ad8\u5e76\u53d1",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Linux\u8fd0\u7ef4-\u81ea\u542f",permalink:"/docs/study/devops/Linux\u8fd0\u7ef4-\u81ea\u542f"},next:{title:"SHELL",permalink:"/docs/study/devops/SHELL"}},p={},l=[{value:"\u6700\u5927\u6587\u4ef6\u63cf\u8ff0\u7b26",id:"\u6700\u5927\u6587\u4ef6\u63cf\u8ff0\u7b26",level:3},{value:"max-file",id:"max-file",level:3},{value:"\u5185\u6838\u53c2\u6570\u4f18\u5316/etc/sysctl.conf",id:"\u5185\u6838\u53c2\u6570\u4f18\u5316etcsysctlconf",level:3}],s={toc:l},u="wrapper";function m(e){let{components:n,...t}=e;return(0,c.yg)(u,(0,r.A)({},s,t,{components:n,mdxType:"MDXLayout"}),(0,c.yg)("h3",{id:"\u6700\u5927\u6587\u4ef6\u63cf\u8ff0\u7b26"},"\u6700\u5927\u6587\u4ef6\u63cf\u8ff0\u7b26"),(0,c.yg)("p",null,"ulimit -n \u63a7\u5236\u8fdb\u7a0b\u7ea7\u522b\u80fd\u591f\u6253\u5f00\u7684\u6587\u4ef6\u53e5\u67c4\u7684\u6570\u91cf\u3002\u63d0\u4f9b\u5bf9shell\u53ca\u5176\u542f\u52a8\u7684\u8fdb\u7a0b\u7684\u53ef\u7528\u6587\u4ef6\u53e5\u67c4\u7684\u63a7\u5236\u3002\u8fd9\u662f\u8fdb\u7a0b\u7ea7\u522b\u7684\u3002"),(0,c.yg)("pre",null,(0,c.yg)("code",{parentName:"pre",className:"language-shell"},'#\u6700\u5927\u6587\u4ef6\u63cf\u8ff0\u7b26 100W\nulimit -SHn 1000000 \necho "ulimit -SHn 1000000" >> /etc/rc.d/rc.local \nsource /etc/rc.d/rc.local\nulimit -n\n\n')),(0,c.yg)("h3",{id:"max-file"},"max-file"),(0,c.yg)("h3",{id:""}),(0,c.yg)("p",null,"\u8868\u793a\u7cfb\u7edf\u7ea7\u522b\u7684\u80fd\u591f\u6253\u5f00\u7684\u6587\u4ef6\u53e5\u67c4\u7684\u6570\u91cf\u3002\u662f\u5bf9\u6574\u4e2a\u7cfb\u7edf\u7684\u9650\u5236\uff0c\u5e76\u4e0d\u662f\u9488\u5bf9\u7528\u6237\u7684\u3002"),(0,c.yg)("pre",null,(0,c.yg)("code",{parentName:"pre",className:"language-shell"},"#\u67e5\u770b\u7cfb\u7edf\u7ea7\u522b\u7684\u80fd\u591f\u6253\u5f00\u7684\u6587\u4ef6\u53e5\u67c4\u7684\u6570\u91cf\uff0cCentos7\u9ed8\u8ba4\u662f794168\ncat /proc/sys/fs/file-max\n#\nvim /etc/sysctl.conf\n#\nfs.file-max = 1000000\n#\u7136\u540e\u6267\u884c\u547d\u4ee4\uff0c\u4f7f\u4fee\u6539\u914d\u7f6e\u7acb\u5373\u751f\u6548\uff1a\nsysctl -p\n")),(0,c.yg)("h3",{id:"\u5185\u6838\u53c2\u6570\u4f18\u5316etcsysctlconf"},"\u5185\u6838\u53c2\u6570\u4f18\u5316/etc/sysctl.conf"),(0,c.yg)("pre",null,(0,c.yg)("code",{parentName:"pre",className:"language-shell"},"#\u5173\u95edipv6\nnet.ipv6.conf.all.disable_ipv6 = 1\nnet.ipv6.conf.default.disable_ipv6 = 1\n\n#\u51b3\u5b9a\u68c0\u67e5\u8fc7\u671f\u591a\u4e45\u90bb\u5c45\u6761\u76ee\nnet.ipv4.neigh.default.gc_stale_time=120\n\n#\u4f7f\u7528arp_announce / arp_ignore\u89e3\u51b3ARP\u6620\u5c04\u95ee\u9898\nnet.ipv4.conf.default.arp_announce = 2\nnet.ipv4.conf.all.arp_announce=2\nnet.ipv4.conf.lo.arp_announce=2 # \u907f\u514d\u653e\u5927\u653b\u51fb\nnet.ipv4.icmp_echo_ignore_broadcasts = 1 # \u5f00\u542f\u6076\u610ficmp\u9519\u8bef\u6d88\u606f\u4fdd\u62a4\nnet.ipv4.icmp_ignore_bogus_error_responses = 1\n\n#\u5904\u7406\u65e0\u6e90\u8def\u7531\u7684\u5305\nnet.ipv4.conf.all.accept_source_route = 0\nnet.ipv4.conf.default.accept_source_route = 0\n\n#core\u6587\u4ef6\u540d\u4e2d\u6dfb\u52a0pid\u4f5c\u4e3a\u6269\u5c55\u540d\nkernel.core_uses_pid = 1 # \u5f00\u542fSYN\u6d2a\u6c34\u653b\u51fb\u4fdd\u62a4\nnet.ipv4.tcp_syncookies = 1\n\n#\u4fee\u6539\u6d88\u606f\u961f\u5217\u957f\u5ea6\nkernel.msgmnb = 65536\nkernel.msgmax = 65536\n\n#timewait\u7684\u6570\u91cf\uff0c\u9ed8\u8ba4180000\nnet.ipv4.tcp_max_tw_buckets = 6000\nnet.ipv4.tcp_sack = 1\nnet.ipv4.tcp_window_scaling = 1\nnet.ipv4.tcp_rmem = 4096 87380 4194304\nnet.ipv4.tcp_wmem = 4096 16384 4194304\nnet.core.wmem_default = 8388608\nnet.core.rmem_default = 8388608\nnet.core.rmem_max = 16777216\nnet.core.wmem_max = 16777216\n\n#\u9650\u5236\u4ec5\u4ec5\u662f\u4e3a\u4e86\u9632\u6b62\u7b80\u5355\u7684DoS \u653b\u51fb\nnet.ipv4.tcp_max_orphans = 3276800\n\n#\u672a\u6536\u5230\u5ba2\u6237\u7aef\u786e\u8ba4\u4fe1\u606f\u7684\u8fde\u63a5\u8bf7\u6c42\u7684\u6700\u5927\u503c\nnet.ipv4.tcp_max_syn_backlog = 262144\nnet.ipv4.tcp_timestamps = 0\n\n#\u5185\u6838\u653e\u5f03\u5efa\u7acb\u8fde\u63a5\u4e4b\u524d\u53d1\u9001SYNACK \u5305\u7684\u6570\u91cf\nnet.ipv4.tcp_synack_retries = 1\n\n#\u5185\u6838\u653e\u5f03\u5efa\u7acb\u8fde\u63a5\u4e4b\u524d\u53d1\u9001SYN \u5305\u7684\u6570\u91cf\nnet.ipv4.tcp_syn_retries = 1\n\n#\u542f\u7528timewait \u5feb\u901f\u56de\u6536\nnet.ipv4.tcp_tw_recycle = 1\n\n#\u5f00\u542f\u91cd\u7528\u3002\u5141\u8bb8\u5c06TIME-WAIT sockets \u91cd\u65b0\u7528\u4e8e\u65b0\u7684TCP \u8fde\u63a5\nnet.ipv4.tcp_tw_reuse = 1\nnet.ipv4.tcp_mem = 94500000 915000000 927000000\nnet.ipv4.tcp_fin_timeout = 1\n\n#\u7136\u540e\u6267\u884c\u4ee5\u4e0b\u547d\u4ee4\u91cd\u8f7d\u914d\u7f6e\nsysctl -p\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3eef7308.97c971e4.js b/assets/js/3eef7308.a32bcc05.js similarity index 98% rename from assets/js/3eef7308.97c971e4.js rename to assets/js/3eef7308.a32bcc05.js index b968b2ce6..4047ba50b 100644 --- a/assets/js/3eef7308.97c971e4.js +++ b/assets/js/3eef7308.a32bcc05.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1956],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var u=n.createContext({}),c=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(u.Provider,{value:t},e.children)},d="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,u=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),d=c(r),y=o,f=d["".concat(u,".").concat(y)]||d[y]||s[y]||a;return r?n.createElement(f,i(i({ref:t},p),{},{components:r})):n.createElement(f,i({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=y;var l={};for(var u in t)hasOwnProperty.call(t,u)&&(l[u]=t[u]);l.originalType=e,l[d]="string"==typeof e?e:o,i[1]=l;for(var c=2;c{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>s,frontMatter:()=>a,metadata:()=>l,toc:()=>c});var n=r(8168),o=(r(6540),r(5680));const a={},i=void 0,l={unversionedId:"study/net/UDP",id:"study/net/UDP",title:"UDP",description:"UDP",source:"@site/docs/study/net/UDP.md",sourceDirName:"study/net",slug:"/study/net/UDP",permalink:"/docs/study/net/UDP",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"TCP",permalink:"/docs/study/net/TCP"},next:{title:"VLAN-VXLAN",permalink:"/docs/study/net/VLAN-VXLAN"}},u={},c=[{value:"UDP",id:"udp",level:3},{value:"\u57fa\u4e8e UDP \u7684\u53ef\u9760\u6027\u534f\u8bae",id:"\u57fa\u4e8e-udp-\u7684\u53ef\u9760\u6027\u534f\u8bae",level:3},{value:"QUIC",id:"quic",level:4},{value:"RUDP",id:"rudp",level:4},{value:"RTP",id:"rtp",level:4},{value:"UDT",id:"udt",level:4}],p={toc:c},d="wrapper";function s(e){let{components:t,...r}=e;return(0,o.yg)(d,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"udp"},"UDP"),(0,o.yg)("p",null,"UDP (User Datagram Protocol) \u662f\u4e00\u79cd\u65e0\u8fde\u63a5\u7684\u7f51\u7edc\u4f20\u8f93\u534f\u8bae\uff0c\u5b83\u4e0d\u4fdd\u8bc1\u6570\u636e\u4f20\u8f93\u7684\u53ef\u9760\u6027\u548c\u987a\u5e8f\uff0c\u4f46\u5177\u6709\u9ad8\u6548\u3001\u4f4e\u5ef6\u8fdf\u548c\u7075\u6d3b\u7684\u7279\u70b9\u3002UDP \u5e38\u7528\u4e8e\u5b9e\u65f6\u901a\u4fe1\u5e94\u7528\u7a0b\u5e8f\uff0c\u4f8b\u5982\u97f3\u9891\u3001\u89c6\u9891\u548c\u5728\u7ebf\u6e38\u620f\u7b49\u3002\u7531\u4e8e UDP \u5c06\u6570\u636e\u5305\u53d1\u9001\u5230\u76ee\u6807\u5730\u5740\uff0c\u800c\u4e0d\u9700\u8981\u5efa\u7acb\u8fde\u63a5\uff0c\u56e0\u6b64\u5b83\u6bd4 TCP \u66f4\u52a0\u7b80\u5355\u3001\u8f7b\u91cf\u7ea7\u548c\u5feb\u901f\u3002\u4f46\u662f\uff0c\u7531\u4e8e\u5b83\u4e0d\u63d0\u4f9b\u6570\u636e\u5b8c\u6574\u6027\u68c0\u67e5\u548c\u91cd\u4f20\u673a\u5236\uff0c\u56e0\u6b64\u5728\u4e00\u4e9b\u5e94\u7528\u573a\u666f\u4e0b\u53ef\u80fd\u4f1a\u51fa\u73b0\u6570\u636e\u4e22\u5931\u6216\u9519\u8bef\u7684\u95ee\u9898\u3002"),(0,o.yg)("h3",{id:"\u57fa\u4e8e-udp-\u7684\u53ef\u9760\u6027\u534f\u8bae"},"\u57fa\u4e8e UDP \u7684\u53ef\u9760\u6027\u534f\u8bae"),(0,o.yg)("h4",{id:"quic"},"QUIC"),(0,o.yg)("h4",{id:"rudp"},"RUDP"),(0,o.yg)("h4",{id:"rtp"},"RTP"),(0,o.yg)("h4",{id:"udt"},"UDT"))}s.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1956],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var u=n.createContext({}),c=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(u.Provider,{value:t},e.children)},d="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,u=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),d=c(r),y=o,f=d["".concat(u,".").concat(y)]||d[y]||s[y]||a;return r?n.createElement(f,i(i({ref:t},p),{},{components:r})):n.createElement(f,i({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=y;var l={};for(var u in t)hasOwnProperty.call(t,u)&&(l[u]=t[u]);l.originalType=e,l[d]="string"==typeof e?e:o,i[1]=l;for(var c=2;c{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>s,frontMatter:()=>a,metadata:()=>l,toc:()=>c});var n=r(8168),o=(r(6540),r(5680));const a={},i=void 0,l={unversionedId:"study/net/UDP",id:"study/net/UDP",title:"UDP",description:"UDP",source:"@site/docs/study/net/UDP.md",sourceDirName:"study/net",slug:"/study/net/UDP",permalink:"/docs/study/net/UDP",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"TCP",permalink:"/docs/study/net/TCP"},next:{title:"VLAN-VXLAN",permalink:"/docs/study/net/VLAN-VXLAN"}},u={},c=[{value:"UDP",id:"udp",level:3},{value:"\u57fa\u4e8e UDP \u7684\u53ef\u9760\u6027\u534f\u8bae",id:"\u57fa\u4e8e-udp-\u7684\u53ef\u9760\u6027\u534f\u8bae",level:3},{value:"QUIC",id:"quic",level:4},{value:"RUDP",id:"rudp",level:4},{value:"RTP",id:"rtp",level:4},{value:"UDT",id:"udt",level:4}],p={toc:c},d="wrapper";function s(e){let{components:t,...r}=e;return(0,o.yg)(d,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"udp"},"UDP"),(0,o.yg)("p",null,"UDP (User Datagram Protocol) \u662f\u4e00\u79cd\u65e0\u8fde\u63a5\u7684\u7f51\u7edc\u4f20\u8f93\u534f\u8bae\uff0c\u5b83\u4e0d\u4fdd\u8bc1\u6570\u636e\u4f20\u8f93\u7684\u53ef\u9760\u6027\u548c\u987a\u5e8f\uff0c\u4f46\u5177\u6709\u9ad8\u6548\u3001\u4f4e\u5ef6\u8fdf\u548c\u7075\u6d3b\u7684\u7279\u70b9\u3002UDP \u5e38\u7528\u4e8e\u5b9e\u65f6\u901a\u4fe1\u5e94\u7528\u7a0b\u5e8f\uff0c\u4f8b\u5982\u97f3\u9891\u3001\u89c6\u9891\u548c\u5728\u7ebf\u6e38\u620f\u7b49\u3002\u7531\u4e8e UDP \u5c06\u6570\u636e\u5305\u53d1\u9001\u5230\u76ee\u6807\u5730\u5740\uff0c\u800c\u4e0d\u9700\u8981\u5efa\u7acb\u8fde\u63a5\uff0c\u56e0\u6b64\u5b83\u6bd4 TCP \u66f4\u52a0\u7b80\u5355\u3001\u8f7b\u91cf\u7ea7\u548c\u5feb\u901f\u3002\u4f46\u662f\uff0c\u7531\u4e8e\u5b83\u4e0d\u63d0\u4f9b\u6570\u636e\u5b8c\u6574\u6027\u68c0\u67e5\u548c\u91cd\u4f20\u673a\u5236\uff0c\u56e0\u6b64\u5728\u4e00\u4e9b\u5e94\u7528\u573a\u666f\u4e0b\u53ef\u80fd\u4f1a\u51fa\u73b0\u6570\u636e\u4e22\u5931\u6216\u9519\u8bef\u7684\u95ee\u9898\u3002"),(0,o.yg)("h3",{id:"\u57fa\u4e8e-udp-\u7684\u53ef\u9760\u6027\u534f\u8bae"},"\u57fa\u4e8e UDP \u7684\u53ef\u9760\u6027\u534f\u8bae"),(0,o.yg)("h4",{id:"quic"},"QUIC"),(0,o.yg)("h4",{id:"rudp"},"RUDP"),(0,o.yg)("h4",{id:"rtp"},"RTP"),(0,o.yg)("h4",{id:"udt"},"UDT"))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3f06bf29.f4f78dbc.js b/assets/js/3f06bf29.8df782b0.js similarity index 99% rename from assets/js/3f06bf29.f4f78dbc.js rename to assets/js/3f06bf29.8df782b0.js index 8384099fd..a8915314b 100644 --- a/assets/js/3f06bf29.f4f78dbc.js +++ b/assets/js/3f06bf29.8df782b0.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4501],{5680:(e,t,n)=>{n.d(t,{xA:()=>p,yg:()=>d});var r=n(6540);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var u=r.createContext({}),c=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(u.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,u=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),s=c(n),m=a,d=s["".concat(u,".").concat(m)]||s[m]||y[m]||o;return n?r.createElement(d,l(l({ref:t},p),{},{components:n})):r.createElement(d,l({ref:t},p))}));function d(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=m;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[s]="string"==typeof e?e:a,l[1]=i;for(var c=2;c{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>l,default:()=>y,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var r=n(8168),a=(n(6540),n(5680));const o={},l=void 0,i={unversionedId:"study/program/C/\u6784\u5efa\u5de5\u5177",id:"study/program/C/\u6784\u5efa\u5de5\u5177",title:"\u6784\u5efa\u5de5\u5177",description:"C \u8bed\u8a00\u6784\u5efa\u5de5\u5177",source:"@site/docs/study/program/C/\u6784\u5efa\u5de5\u5177.md",sourceDirName:"study/program/C",slug:"/study/program/C/\u6784\u5efa\u5de5\u5177",permalink:"/docs/study/program/C/\u6784\u5efa\u5de5\u5177",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u65b9\u6cd5\u5e93-\u9759\u6001\u5e93-\u52a8\u6001\u5e93-\u5171\u4eab\u5e93",permalink:"/docs/study/program/C/\u65b9\u6cd5\u5e93-\u9759\u6001\u5e93-\u52a8\u6001\u5e93-\u5171\u4eab\u5e93"},next:{title:"\u865a\u62df\u7f51\u5361",permalink:"/docs/study/program/C/\u865a\u62df\u7f51\u5361"}},u={},c=[{value:"C \u8bed\u8a00\u6784\u5efa\u5de5\u5177",id:"c-\u8bed\u8a00\u6784\u5efa\u5de5\u5177",level:3},{value:"Make\uff1a",id:"make",level:4},{value:"CMake\uff1a",id:"cmake",level:4},{value:"Autotools\uff1a",id:"autotools",level:4},{value:"SCons\uff1a",id:"scons",level:4},{value:"Ninja\uff1a",id:"ninja",level:4},{value:"bazel",id:"bazel",level:4},{value:"xmake",id:"xmake",level:4},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],p={toc:c},s="wrapper";function y(e){let{components:t,...n}=e;return(0,a.yg)(s,(0,r.A)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"c-\u8bed\u8a00\u6784\u5efa\u5de5\u5177"},"C \u8bed\u8a00\u6784\u5efa\u5de5\u5177"),(0,a.yg)("p",null,"\u5728 C \u8bed\u8a00\u5f00\u53d1\u4e2d\uff0c\u4f7f\u7528\u6784\u5efa\u5de5\u5177\u53ef\u4ee5\u7b80\u5316\u4ee3\u7801\u7f16\u8bd1\u3001\u6784\u5efa\u548c\u90e8\u7f72\u7b49\u8fc7\u7a0b\uff0c\u63d0\u9ad8\u5f00\u53d1\u6548\u7387\u548c\u4ee3\u7801\u8d28\u91cf\u3002"),(0,a.yg)("p",null,"\u4e0b\u9762\u4ecb\u7ecd\u4e00\u4e9b\u5e38\u7528\u7684 C \u8bed\u8a00\u6784\u5efa\u5de5\u5177\u3002"),(0,a.yg)("h4",{id:"make"},"Make\uff1a"),(0,a.yg)("p",null,"Make \u662f\u4e00\u4e2a\u6d41\u884c\u7684\u6784\u5efa\u5de5\u5177\uff0c\u5b83\u53ef\u4ee5\u81ea\u52a8\u5316\u6267\u884c\u4ee3\u7801\u7f16\u8bd1\u3001\u6784\u5efa\u548c\u90e8\u7f72\u7b49\u8fc7\u7a0b\u3002Make \u57fa\u4e8e Makefile \u6587\u4ef6\u8fdb\u884c\u914d\u7f6e\uff0c\u901a\u8fc7 Makefile \u6587\u4ef6\u4e2d\u7684\u89c4\u5219\u548c\u4f9d\u8d56\u5173\u7cfb\uff0c\u53ef\u4ee5\u5b9a\u4e49\u6e90\u4ee3\u7801\u6587\u4ef6\u3001\u5934\u6587\u4ef6\u548c\u53ef\u6267\u884c\u6587\u4ef6\u7b49\u5404\u4e2a\u90e8\u5206\u4e4b\u95f4\u7684\u5173\u7cfb\u3002Make \u5177\u6709\u7b80\u5355\u6613\u7528\u3001\u53ef\u6269\u5c55\u6027\u5f3a\u7b49\u4f18\u70b9\uff0c\u56e0\u6b64\u88ab\u5e7f\u6cdb\u5e94\u7528\u4e8e C \u8bed\u8a00\u5f00\u53d1\u4e2d\u3002"),(0,a.yg)("h4",{id:"cmake"},"CMake\uff1a"),(0,a.yg)("p",null,"CMake \u662f\u4e00\u4e2a\u8de8\u5e73\u53f0\u7684\u6784\u5efa\u5de5\u5177\uff0c\u53ef\u4ee5\u81ea\u52a8\u751f\u6210 Makefile \u6587\u4ef6\uff0c\u4ece\u800c\u7b80\u5316\u6784\u5efa\u8fc7\u7a0b\u3002CMake \u652f\u6301\u591a\u79cd\u5e73\u53f0\u548c\u7f16\u8bd1\u5668\uff0c\u53ef\u4ee5\u901a\u8fc7\u7b80\u5355\u7684\u547d\u4ee4\u884c\u53c2\u6570\u548c\u914d\u7f6e\u6587\u4ef6\u8fdb\u884c\u914d\u7f6e\u3002CMake \u5177\u6709\u7b80\u5355\u6613\u7528\u3001\u8de8\u5e73\u53f0\u3001\u53ef\u6269\u5c55\u6027\u5f3a\u7b49\u4f18\u70b9\uff0c\u56e0\u6b64\u88ab\u5e7f\u6cdb\u5e94\u7528\u4e8e C \u8bed\u8a00\u5f00\u53d1\u4e2d\u3002"),(0,a.yg)("h4",{id:"autotools"},"Autotools\uff1a"),(0,a.yg)("p",null,"Autotools \u662f\u4e00\u4e2a\u6d41\u884c\u7684\u81ea\u52a8\u5316\u6784\u5efa\u5de5\u5177\u96c6\uff0c\u5305\u62ec Autoconf\u3001Automake \u548c Libtool \u7b49\u7ec4\u4ef6\u3002\u5176\u4e2d\uff0cAutoconf \u7528\u4e8e\u68c0\u67e5\u7cfb\u7edf\u73af\u5883\u548c\u751f\u6210 Makefile.in \u6587\u4ef6\uff0cAutomake \u7528\u4e8e\u751f\u6210 Makefile \u6587\u4ef6\uff0cLibtool \u7528\u4e8e\u7ba1\u7406\u5e93\u6587\u4ef6\u7684\u7f16\u8bd1\u548c\u94fe\u63a5\u3002Autotools \u5177\u6709\u8de8\u5e73\u53f0\u3001\u53ef\u6269\u5c55\u6027\u5f3a\u7b49\u4f18\u70b9\uff0c\u88ab\u5e7f\u6cdb\u5e94\u7528\u4e8e C \u8bed\u8a00\u5f00\u53d1\u4e2d\u3002"),(0,a.yg)("p",null,"\u5728 linux \u4e0a\u7f16\u8bd1\u4e00\u4e2a\u5de5\u7a0b\u9700\u8981\u5148\u8c03\u7528./configure,\u5927\u90e8\u5206 linux \u5f00\u6e90\u9879\u76ee\u90fd\u4f7f\u7528 autotools \u7f16\u8bd1\u67b6\u6784\u6765\u751f\u6210 configure \u8fd9\u4e2a\u811a\u672c\u6587\u4ef6\u3002\u901a\u8fc7\u5728\u6267\u884c./configure\uff0c\u4ea7\u751f Makefile,src/Makefile,config.h\uff0c\u4e3a\u4e0b\u4e00\u6b65\u7f16\u8bd1\u505a\u51c6\u5907\u3002\u968f\u540e\u8c03\u7528 make \u8fdb\u884c\u7f16\u8bd1\u3002"),(0,a.yg)("p",null,"GNU \u6784\u5efa\u7cfb\u7edf\uff0c\u662f\u5229\u7528\u811a\u672c\u548c make \u7a0b\u5e8f\u5728\u7279\u5b9a\u7684\u5e73\u53f0\u4e0a\u6784\u5efa\u8f6f\u4ef6\u7684\u8fc7\u7a0b\u3002\u4e00\u822c\u8fc7\u7a0b\u662f configure\uff0cmake\uff0cmake install \u4e09\u90e8\u66f2\u3002\u8fd9\u79cd\u65b9\u5f0f\u6210\u4e3a\u4e00\u79cd\u4e60\u60ef\uff0c\u88ab\u5e7f\u6cdb\u4f7f\u7528\u3002\n\u4e3a\u4e86\u7b80\u5316\u53ef\u79fb\u690d\u6784\u5efa\u7684\u96be\u5ea6\uff0c\u65e9\u671f\u6709\u4e00\u5957 AutoTools \u7684\u5de5\u5177\u5e2e\u52a9\u7a0b\u5e8f\u5458\u6784\u5efa\u8f6f\u4ef6\u3002configure\uff0cmake\uff0cmake install \u4e09\u90e8\u66f2\uff0c\u5927\u591a\u90fd\u662f\u57fa\u4e8e Auto Tools \u6765\u6784\u5efa\u7684\u3002Auto Tools \u662f GNU \u7a0b\u5e8f\u7684\u6807\u51c6\u6784\u5efa\u7cfb\u7edf\u3002"),(0,a.yg)("h4",{id:"scons"},"SCons\uff1a"),(0,a.yg)("p",null,"SCons \u662f\u4e00\u4e2a Python \u7f16\u5199\u7684\u6784\u5efa\u5de5\u5177\uff0c\u5b83\u53ef\u4ee5\u81ea\u52a8\u5316\u6267\u884c\u4ee3\u7801\u7f16\u8bd1\u3001\u6784\u5efa\u548c\u90e8\u7f72\u7b49\u8fc7\u7a0b\u3002SCons \u57fa\u4e8e Python \u8bed\u8a00\u8fdb\u884c\u914d\u7f6e\uff0c\u901a\u8fc7 Python \u811a\u672c\u6587\u4ef6\u4e2d\u7684\u89c4\u5219\u548c\u4f9d\u8d56\u5173\u7cfb\uff0c\u53ef\u4ee5\u5b9a\u4e49\u6e90\u4ee3\u7801\u6587\u4ef6\u3001\u5934\u6587\u4ef6\u548c\u53ef\u6267\u884c\u6587\u4ef6\u7b49\u5404\u4e2a\u90e8\u5206\u4e4b\u95f4\u7684\u5173\u7cfb\u3002SCons \u5177\u6709\u53ef\u6269\u5c55\u6027\u5f3a\u3001\u6613\u4e8e\u914d\u7f6e\u7b49\u4f18\u70b9\uff0c\u56e0\u6b64\u88ab\u5e7f\u6cdb\u5e94\u7528\u4e8e C \u8bed\u8a00\u5f00\u53d1\u4e2d\u3002"),(0,a.yg)("h4",{id:"ninja"},"Ninja\uff1a"),(0,a.yg)("p",null,"Ninja \u662f\u4e00\u4e2a\u5feb\u901f\u7684\u6784\u5efa\u5de5\u5177\uff0c\u53ef\u4ee5\u751f\u6210\u9ad8\u6548\u7684\u6784\u5efa\u56fe\u8c31\uff0c\u4ece\u800c\u63d0\u9ad8\u4ee3\u7801\u7f16\u8bd1\u3001\u6784\u5efa\u548c\u90e8\u7f72\u7684\u901f\u5ea6\u3002Ninja \u53ef\u4ee5\u4f7f\u7528 Ninjafile \u6587\u4ef6\u8fdb\u884c\u914d\u7f6e\uff0c\u901a\u8fc7 Ninjafile \u6587\u4ef6\u4e2d\u7684\u89c4\u5219\u548c\u4f9d\u8d56\u5173\u7cfb\uff0c\u53ef\u4ee5\u5b9a\u4e49\u6e90\u4ee3\u7801\u6587\u4ef6\u3001\u5934\u6587\u4ef6\u548c\u53ef\u6267\u884c\u6587\u4ef6\u7b49\u5404\u4e2a\u90e8\u5206\u4e4b\u95f4\u7684\u5173\u7cfb\u3002Ninja \u5177\u6709\u901f\u5ea6\u5feb\u3001\u53ef\u6269\u5c55\u6027\u5f3a\u7b49\u4f18\u70b9\uff0c\u56e0\u6b64\u88ab\u5e7f\u6cdb\u5e94\u7528\u4e8e C \u8bed\u8a00\u5f00\u53d1\u4e2d\u3002"),(0,a.yg)("h4",{id:"bazel"},"bazel"),(0,a.yg)("h4",{id:"xmake"},"xmake"),(0,a.yg)("p",null,(0,a.yg)("a",{parentName:"p",href:"https://xmake.io/#/zh-cn/"},"https://xmake.io/#/zh-cn/")),(0,a.yg)("p",null,"\u4e00\u4e2a\u57fa\u4e8e Lua \u7684\u8f7b\u91cf\u7ea7\u8de8\u5e73\u53f0\u81ea\u52a8\u6784\u5efa\u5de5\u5177"),(0,a.yg)("p",null,"\u7b80\u5355\uff0c\u5feb\u901f\uff0c\u8f7b\u91cf\u65e0\u4f9d\u8d56"),(0,a.yg)("p",null,"\u73b0\u4ee3\u5316\u7684 C/C++ \u6784\u5efa\u5de5\u5177\uff0c\u5f3a\u5927\u7684\u4f9d\u8d56\u5305\u7ba1\u7406\u548c\u96c6\u6210"),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://blog.csdn.net/qq_27870421/article/details/99621737"},"CSDN-Autotools \u7b14\u8bb0")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://www.jianshu.com/p/b3b0a090a01e"},"\u7b80\u4e66-Autotools \u5de5\u5177")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/638986464"},"\u77e5\u4e4e-GCC\u3001CMake\u3001CMakelist\u3001Make\u3001Makefile\u3001Ninja \u5565\u5173\u7cfb\uff1f\u4e00\u56fe\u8bb2\u900f\uff01"))))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4501],{5680:(e,t,n)=>{n.d(t,{xA:()=>p,yg:()=>d});var r=n(6540);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var u=r.createContext({}),c=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(u.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,u=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),s=c(n),m=a,d=s["".concat(u,".").concat(m)]||s[m]||y[m]||o;return n?r.createElement(d,l(l({ref:t},p),{},{components:n})):r.createElement(d,l({ref:t},p))}));function d(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=m;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[s]="string"==typeof e?e:a,l[1]=i;for(var c=2;c{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>l,default:()=>y,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var r=n(8168),a=(n(6540),n(5680));const o={},l=void 0,i={unversionedId:"study/program/C/\u6784\u5efa\u5de5\u5177",id:"study/program/C/\u6784\u5efa\u5de5\u5177",title:"\u6784\u5efa\u5de5\u5177",description:"C \u8bed\u8a00\u6784\u5efa\u5de5\u5177",source:"@site/docs/study/program/C/\u6784\u5efa\u5de5\u5177.md",sourceDirName:"study/program/C",slug:"/study/program/C/\u6784\u5efa\u5de5\u5177",permalink:"/docs/study/program/C/\u6784\u5efa\u5de5\u5177",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u65b9\u6cd5\u5e93-\u9759\u6001\u5e93-\u52a8\u6001\u5e93-\u5171\u4eab\u5e93",permalink:"/docs/study/program/C/\u65b9\u6cd5\u5e93-\u9759\u6001\u5e93-\u52a8\u6001\u5e93-\u5171\u4eab\u5e93"},next:{title:"\u865a\u62df\u7f51\u5361",permalink:"/docs/study/program/C/\u865a\u62df\u7f51\u5361"}},u={},c=[{value:"C \u8bed\u8a00\u6784\u5efa\u5de5\u5177",id:"c-\u8bed\u8a00\u6784\u5efa\u5de5\u5177",level:3},{value:"Make\uff1a",id:"make",level:4},{value:"CMake\uff1a",id:"cmake",level:4},{value:"Autotools\uff1a",id:"autotools",level:4},{value:"SCons\uff1a",id:"scons",level:4},{value:"Ninja\uff1a",id:"ninja",level:4},{value:"bazel",id:"bazel",level:4},{value:"xmake",id:"xmake",level:4},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],p={toc:c},s="wrapper";function y(e){let{components:t,...n}=e;return(0,a.yg)(s,(0,r.A)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"c-\u8bed\u8a00\u6784\u5efa\u5de5\u5177"},"C \u8bed\u8a00\u6784\u5efa\u5de5\u5177"),(0,a.yg)("p",null,"\u5728 C \u8bed\u8a00\u5f00\u53d1\u4e2d\uff0c\u4f7f\u7528\u6784\u5efa\u5de5\u5177\u53ef\u4ee5\u7b80\u5316\u4ee3\u7801\u7f16\u8bd1\u3001\u6784\u5efa\u548c\u90e8\u7f72\u7b49\u8fc7\u7a0b\uff0c\u63d0\u9ad8\u5f00\u53d1\u6548\u7387\u548c\u4ee3\u7801\u8d28\u91cf\u3002"),(0,a.yg)("p",null,"\u4e0b\u9762\u4ecb\u7ecd\u4e00\u4e9b\u5e38\u7528\u7684 C \u8bed\u8a00\u6784\u5efa\u5de5\u5177\u3002"),(0,a.yg)("h4",{id:"make"},"Make\uff1a"),(0,a.yg)("p",null,"Make \u662f\u4e00\u4e2a\u6d41\u884c\u7684\u6784\u5efa\u5de5\u5177\uff0c\u5b83\u53ef\u4ee5\u81ea\u52a8\u5316\u6267\u884c\u4ee3\u7801\u7f16\u8bd1\u3001\u6784\u5efa\u548c\u90e8\u7f72\u7b49\u8fc7\u7a0b\u3002Make \u57fa\u4e8e Makefile \u6587\u4ef6\u8fdb\u884c\u914d\u7f6e\uff0c\u901a\u8fc7 Makefile \u6587\u4ef6\u4e2d\u7684\u89c4\u5219\u548c\u4f9d\u8d56\u5173\u7cfb\uff0c\u53ef\u4ee5\u5b9a\u4e49\u6e90\u4ee3\u7801\u6587\u4ef6\u3001\u5934\u6587\u4ef6\u548c\u53ef\u6267\u884c\u6587\u4ef6\u7b49\u5404\u4e2a\u90e8\u5206\u4e4b\u95f4\u7684\u5173\u7cfb\u3002Make \u5177\u6709\u7b80\u5355\u6613\u7528\u3001\u53ef\u6269\u5c55\u6027\u5f3a\u7b49\u4f18\u70b9\uff0c\u56e0\u6b64\u88ab\u5e7f\u6cdb\u5e94\u7528\u4e8e C \u8bed\u8a00\u5f00\u53d1\u4e2d\u3002"),(0,a.yg)("h4",{id:"cmake"},"CMake\uff1a"),(0,a.yg)("p",null,"CMake \u662f\u4e00\u4e2a\u8de8\u5e73\u53f0\u7684\u6784\u5efa\u5de5\u5177\uff0c\u53ef\u4ee5\u81ea\u52a8\u751f\u6210 Makefile \u6587\u4ef6\uff0c\u4ece\u800c\u7b80\u5316\u6784\u5efa\u8fc7\u7a0b\u3002CMake \u652f\u6301\u591a\u79cd\u5e73\u53f0\u548c\u7f16\u8bd1\u5668\uff0c\u53ef\u4ee5\u901a\u8fc7\u7b80\u5355\u7684\u547d\u4ee4\u884c\u53c2\u6570\u548c\u914d\u7f6e\u6587\u4ef6\u8fdb\u884c\u914d\u7f6e\u3002CMake \u5177\u6709\u7b80\u5355\u6613\u7528\u3001\u8de8\u5e73\u53f0\u3001\u53ef\u6269\u5c55\u6027\u5f3a\u7b49\u4f18\u70b9\uff0c\u56e0\u6b64\u88ab\u5e7f\u6cdb\u5e94\u7528\u4e8e C \u8bed\u8a00\u5f00\u53d1\u4e2d\u3002"),(0,a.yg)("h4",{id:"autotools"},"Autotools\uff1a"),(0,a.yg)("p",null,"Autotools \u662f\u4e00\u4e2a\u6d41\u884c\u7684\u81ea\u52a8\u5316\u6784\u5efa\u5de5\u5177\u96c6\uff0c\u5305\u62ec Autoconf\u3001Automake \u548c Libtool \u7b49\u7ec4\u4ef6\u3002\u5176\u4e2d\uff0cAutoconf \u7528\u4e8e\u68c0\u67e5\u7cfb\u7edf\u73af\u5883\u548c\u751f\u6210 Makefile.in \u6587\u4ef6\uff0cAutomake \u7528\u4e8e\u751f\u6210 Makefile \u6587\u4ef6\uff0cLibtool \u7528\u4e8e\u7ba1\u7406\u5e93\u6587\u4ef6\u7684\u7f16\u8bd1\u548c\u94fe\u63a5\u3002Autotools \u5177\u6709\u8de8\u5e73\u53f0\u3001\u53ef\u6269\u5c55\u6027\u5f3a\u7b49\u4f18\u70b9\uff0c\u88ab\u5e7f\u6cdb\u5e94\u7528\u4e8e C \u8bed\u8a00\u5f00\u53d1\u4e2d\u3002"),(0,a.yg)("p",null,"\u5728 linux \u4e0a\u7f16\u8bd1\u4e00\u4e2a\u5de5\u7a0b\u9700\u8981\u5148\u8c03\u7528./configure,\u5927\u90e8\u5206 linux \u5f00\u6e90\u9879\u76ee\u90fd\u4f7f\u7528 autotools \u7f16\u8bd1\u67b6\u6784\u6765\u751f\u6210 configure \u8fd9\u4e2a\u811a\u672c\u6587\u4ef6\u3002\u901a\u8fc7\u5728\u6267\u884c./configure\uff0c\u4ea7\u751f Makefile,src/Makefile,config.h\uff0c\u4e3a\u4e0b\u4e00\u6b65\u7f16\u8bd1\u505a\u51c6\u5907\u3002\u968f\u540e\u8c03\u7528 make \u8fdb\u884c\u7f16\u8bd1\u3002"),(0,a.yg)("p",null,"GNU \u6784\u5efa\u7cfb\u7edf\uff0c\u662f\u5229\u7528\u811a\u672c\u548c make \u7a0b\u5e8f\u5728\u7279\u5b9a\u7684\u5e73\u53f0\u4e0a\u6784\u5efa\u8f6f\u4ef6\u7684\u8fc7\u7a0b\u3002\u4e00\u822c\u8fc7\u7a0b\u662f configure\uff0cmake\uff0cmake install \u4e09\u90e8\u66f2\u3002\u8fd9\u79cd\u65b9\u5f0f\u6210\u4e3a\u4e00\u79cd\u4e60\u60ef\uff0c\u88ab\u5e7f\u6cdb\u4f7f\u7528\u3002\n\u4e3a\u4e86\u7b80\u5316\u53ef\u79fb\u690d\u6784\u5efa\u7684\u96be\u5ea6\uff0c\u65e9\u671f\u6709\u4e00\u5957 AutoTools \u7684\u5de5\u5177\u5e2e\u52a9\u7a0b\u5e8f\u5458\u6784\u5efa\u8f6f\u4ef6\u3002configure\uff0cmake\uff0cmake install \u4e09\u90e8\u66f2\uff0c\u5927\u591a\u90fd\u662f\u57fa\u4e8e Auto Tools \u6765\u6784\u5efa\u7684\u3002Auto Tools \u662f GNU \u7a0b\u5e8f\u7684\u6807\u51c6\u6784\u5efa\u7cfb\u7edf\u3002"),(0,a.yg)("h4",{id:"scons"},"SCons\uff1a"),(0,a.yg)("p",null,"SCons \u662f\u4e00\u4e2a Python \u7f16\u5199\u7684\u6784\u5efa\u5de5\u5177\uff0c\u5b83\u53ef\u4ee5\u81ea\u52a8\u5316\u6267\u884c\u4ee3\u7801\u7f16\u8bd1\u3001\u6784\u5efa\u548c\u90e8\u7f72\u7b49\u8fc7\u7a0b\u3002SCons \u57fa\u4e8e Python \u8bed\u8a00\u8fdb\u884c\u914d\u7f6e\uff0c\u901a\u8fc7 Python \u811a\u672c\u6587\u4ef6\u4e2d\u7684\u89c4\u5219\u548c\u4f9d\u8d56\u5173\u7cfb\uff0c\u53ef\u4ee5\u5b9a\u4e49\u6e90\u4ee3\u7801\u6587\u4ef6\u3001\u5934\u6587\u4ef6\u548c\u53ef\u6267\u884c\u6587\u4ef6\u7b49\u5404\u4e2a\u90e8\u5206\u4e4b\u95f4\u7684\u5173\u7cfb\u3002SCons \u5177\u6709\u53ef\u6269\u5c55\u6027\u5f3a\u3001\u6613\u4e8e\u914d\u7f6e\u7b49\u4f18\u70b9\uff0c\u56e0\u6b64\u88ab\u5e7f\u6cdb\u5e94\u7528\u4e8e C \u8bed\u8a00\u5f00\u53d1\u4e2d\u3002"),(0,a.yg)("h4",{id:"ninja"},"Ninja\uff1a"),(0,a.yg)("p",null,"Ninja \u662f\u4e00\u4e2a\u5feb\u901f\u7684\u6784\u5efa\u5de5\u5177\uff0c\u53ef\u4ee5\u751f\u6210\u9ad8\u6548\u7684\u6784\u5efa\u56fe\u8c31\uff0c\u4ece\u800c\u63d0\u9ad8\u4ee3\u7801\u7f16\u8bd1\u3001\u6784\u5efa\u548c\u90e8\u7f72\u7684\u901f\u5ea6\u3002Ninja \u53ef\u4ee5\u4f7f\u7528 Ninjafile \u6587\u4ef6\u8fdb\u884c\u914d\u7f6e\uff0c\u901a\u8fc7 Ninjafile \u6587\u4ef6\u4e2d\u7684\u89c4\u5219\u548c\u4f9d\u8d56\u5173\u7cfb\uff0c\u53ef\u4ee5\u5b9a\u4e49\u6e90\u4ee3\u7801\u6587\u4ef6\u3001\u5934\u6587\u4ef6\u548c\u53ef\u6267\u884c\u6587\u4ef6\u7b49\u5404\u4e2a\u90e8\u5206\u4e4b\u95f4\u7684\u5173\u7cfb\u3002Ninja \u5177\u6709\u901f\u5ea6\u5feb\u3001\u53ef\u6269\u5c55\u6027\u5f3a\u7b49\u4f18\u70b9\uff0c\u56e0\u6b64\u88ab\u5e7f\u6cdb\u5e94\u7528\u4e8e C \u8bed\u8a00\u5f00\u53d1\u4e2d\u3002"),(0,a.yg)("h4",{id:"bazel"},"bazel"),(0,a.yg)("h4",{id:"xmake"},"xmake"),(0,a.yg)("p",null,(0,a.yg)("a",{parentName:"p",href:"https://xmake.io/#/zh-cn/"},"https://xmake.io/#/zh-cn/")),(0,a.yg)("p",null,"\u4e00\u4e2a\u57fa\u4e8e Lua \u7684\u8f7b\u91cf\u7ea7\u8de8\u5e73\u53f0\u81ea\u52a8\u6784\u5efa\u5de5\u5177"),(0,a.yg)("p",null,"\u7b80\u5355\uff0c\u5feb\u901f\uff0c\u8f7b\u91cf\u65e0\u4f9d\u8d56"),(0,a.yg)("p",null,"\u73b0\u4ee3\u5316\u7684 C/C++ \u6784\u5efa\u5de5\u5177\uff0c\u5f3a\u5927\u7684\u4f9d\u8d56\u5305\u7ba1\u7406\u548c\u96c6\u6210"),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://blog.csdn.net/qq_27870421/article/details/99621737"},"CSDN-Autotools \u7b14\u8bb0")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://www.jianshu.com/p/b3b0a090a01e"},"\u7b80\u4e66-Autotools \u5de5\u5177")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/638986464"},"\u77e5\u4e4e-GCC\u3001CMake\u3001CMakelist\u3001Make\u3001Makefile\u3001Ninja \u5565\u5173\u7cfb\uff1f\u4e00\u56fe\u8bb2\u900f\uff01"))))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/42c9ab86.fb4d466e.js b/assets/js/42c9ab86.67242235.js similarity index 98% rename from assets/js/42c9ab86.fb4d466e.js rename to assets/js/42c9ab86.67242235.js index e6578d970..e9197b36f 100644 --- a/assets/js/42c9ab86.fb4d466e.js +++ b/assets/js/42c9ab86.67242235.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8274],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>y});var n=r(6540);function c(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(c[r]=e[r]);return c}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(c[r]=e[r])}return c}var i=n.createContext({}),p=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(i.Provider,{value:t},e.children)},s="mdxType",f={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,c=e.mdxType,a=e.originalType,i=e.parentName,u=o(e,["components","mdxType","originalType","parentName"]),s=p(r),d=c,y=s["".concat(i,".").concat(d)]||s[d]||f[d]||a;return r?n.createElement(y,l(l({ref:t},u),{},{components:r})):n.createElement(y,l({ref:t},u))}));function y(e,t){var r=arguments,c=t&&t.mdxType;if("string"==typeof e||c){var a=r.length,l=new Array(a);l[0]=d;var o={};for(var i in t)hasOwnProperty.call(t,i)&&(o[i]=t[i]);o.originalType=e,o[s]="string"==typeof e?e:c,l[1]=o;for(var p=2;p{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>f,frontMatter:()=>a,metadata:()=>o,toc:()=>p});var n=r(8168),c=(r(6540),r(5680));const a={},l="unix pfctl \u9632\u706b\u5899",o={unversionedId:"study/net/pfctl\u9632\u706b\u5899",id:"study/net/pfctl\u9632\u706b\u5899",title:"unix pfctl \u9632\u706b\u5899",description:"iptables \u662f Linux \u4e0b\u7684\u9632\u706b\u5899\uff0c\u53ef\u4ee5\u8fdb\u884c\u6570\u636e\u5305\u7684\u8fc7\u6ee4\uff0c\u5728\u7f51\u7edc\u5c42\u8fdb\u884c\u6570\u636e\u7684\u8f6c\u53d1\u3001\u62e6\u622a\u6216\u4e22\u5f03\u7b49\uff0c\u4f7f\u7528\u975e\u5e38\u666e\u904d\uff0c\u529f\u80fd\u4e5f\u975e\u5e38\u5f3a\u5927\u3002\u4f46\u662f Mac \u4e0b\u6ca1\u6709 iptables\uff0c\u4e3a\u4e86\u5b9e\u73b0\u6d41\u91cf\u8f6c\u53d1\u548c\u8fc7\u6ee4\uff0c\u8981\u4f7f\u7528\u5230 Mac \u81ea\u5e26\u7684 PFctl\u3002PFctl \u5373 control the packet filter\uff0c\u662f Unix LIKE \u7cfb\u7edf\u4e0a\u8fdb\u884c TCP/IP \u6d41\u91cf\u8fc7\u6ee4\u548c\u7f51\u7edc\u5730\u5740\u8f6c\u6362\u7684\u7cfb\u7edf\uff0c\u4e5f\u80fd\u63d0\u4f9b\u6d41\u91cf\u6574\u5f62\u548c\u63a7\u5236\u7b49",source:"@site/docs/study/net/pfctl\u9632\u706b\u5899.md",sourceDirName:"study/net",slug:"/study/net/pfctl\u9632\u706b\u5899",permalink:"/docs/study/net/pfctl\u9632\u706b\u5899",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"P2P \u7f51\u7edc NAT \u7a7f\u900f\u539f\u7406(\u6253\u6d1e\u65b9\u6848)",permalink:"/docs/study/net/p2p"},next:{title:"Linux tc",permalink:"/docs/study/net/tc"}},i={},p=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],u={toc:p},s="wrapper";function f(e){let{components:t,...r}=e;return(0,c.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,c.yg)("h1",{id:"unix-pfctl-\u9632\u706b\u5899"},"unix pfctl \u9632\u706b\u5899"),(0,c.yg)("p",null,"iptables \u662f Linux \u4e0b\u7684\u9632\u706b\u5899\uff0c\u53ef\u4ee5\u8fdb\u884c\u6570\u636e\u5305\u7684\u8fc7\u6ee4\uff0c\u5728\u7f51\u7edc\u5c42\u8fdb\u884c\u6570\u636e\u7684\u8f6c\u53d1\u3001\u62e6\u622a\u6216\u4e22\u5f03\u7b49\uff0c\u4f7f\u7528\u975e\u5e38\u666e\u904d\uff0c\u529f\u80fd\u4e5f\u975e\u5e38\u5f3a\u5927\u3002\u4f46\u662f Mac \u4e0b\u6ca1\u6709 iptables\uff0c\u4e3a\u4e86\u5b9e\u73b0\u6d41\u91cf\u8f6c\u53d1\u548c\u8fc7\u6ee4\uff0c\u8981\u4f7f\u7528\u5230 Mac \u81ea\u5e26\u7684 PFctl\u3002PFctl \u5373 control the packet filter\uff0c\u662f Unix LIKE \u7cfb\u7edf\u4e0a\u8fdb\u884c TCP/IP \u6d41\u91cf\u8fc7\u6ee4\u548c\u7f51\u7edc\u5730\u5740\u8f6c\u6362\u7684\u7cfb\u7edf\uff0c\u4e5f\u80fd\u63d0\u4f9b\u6d41\u91cf\u6574\u5f62\u548c\u63a7\u5236\u7b49"),(0,c.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,c.yg)("ul",null,(0,c.yg)("li",{parentName:"ul"},(0,c.yg)("a",{parentName:"li",href:"https://www.imydl.tech/linux-command/c/pfctl.html"},"pfctl")),(0,c.yg)("li",{parentName:"ul"},(0,c.yg)("a",{parentName:"li",href:"https://shidian.baike.com/wikiid/658345936018390300"},"\u8bc6\u5178\u767e\u79d1-PF \u9632\u706b\u5899"))))}f.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8274],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>y});var n=r(6540);function c(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(c[r]=e[r]);return c}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(c[r]=e[r])}return c}var i=n.createContext({}),p=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(i.Provider,{value:t},e.children)},s="mdxType",f={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,c=e.mdxType,a=e.originalType,i=e.parentName,u=o(e,["components","mdxType","originalType","parentName"]),s=p(r),d=c,y=s["".concat(i,".").concat(d)]||s[d]||f[d]||a;return r?n.createElement(y,l(l({ref:t},u),{},{components:r})):n.createElement(y,l({ref:t},u))}));function y(e,t){var r=arguments,c=t&&t.mdxType;if("string"==typeof e||c){var a=r.length,l=new Array(a);l[0]=d;var o={};for(var i in t)hasOwnProperty.call(t,i)&&(o[i]=t[i]);o.originalType=e,o[s]="string"==typeof e?e:c,l[1]=o;for(var p=2;p{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>f,frontMatter:()=>a,metadata:()=>o,toc:()=>p});var n=r(8168),c=(r(6540),r(5680));const a={},l="unix pfctl \u9632\u706b\u5899",o={unversionedId:"study/net/pfctl\u9632\u706b\u5899",id:"study/net/pfctl\u9632\u706b\u5899",title:"unix pfctl \u9632\u706b\u5899",description:"iptables \u662f Linux \u4e0b\u7684\u9632\u706b\u5899\uff0c\u53ef\u4ee5\u8fdb\u884c\u6570\u636e\u5305\u7684\u8fc7\u6ee4\uff0c\u5728\u7f51\u7edc\u5c42\u8fdb\u884c\u6570\u636e\u7684\u8f6c\u53d1\u3001\u62e6\u622a\u6216\u4e22\u5f03\u7b49\uff0c\u4f7f\u7528\u975e\u5e38\u666e\u904d\uff0c\u529f\u80fd\u4e5f\u975e\u5e38\u5f3a\u5927\u3002\u4f46\u662f Mac \u4e0b\u6ca1\u6709 iptables\uff0c\u4e3a\u4e86\u5b9e\u73b0\u6d41\u91cf\u8f6c\u53d1\u548c\u8fc7\u6ee4\uff0c\u8981\u4f7f\u7528\u5230 Mac \u81ea\u5e26\u7684 PFctl\u3002PFctl \u5373 control the packet filter\uff0c\u662f Unix LIKE \u7cfb\u7edf\u4e0a\u8fdb\u884c TCP/IP \u6d41\u91cf\u8fc7\u6ee4\u548c\u7f51\u7edc\u5730\u5740\u8f6c\u6362\u7684\u7cfb\u7edf\uff0c\u4e5f\u80fd\u63d0\u4f9b\u6d41\u91cf\u6574\u5f62\u548c\u63a7\u5236\u7b49",source:"@site/docs/study/net/pfctl\u9632\u706b\u5899.md",sourceDirName:"study/net",slug:"/study/net/pfctl\u9632\u706b\u5899",permalink:"/docs/study/net/pfctl\u9632\u706b\u5899",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"P2P \u7f51\u7edc NAT \u7a7f\u900f\u539f\u7406(\u6253\u6d1e\u65b9\u6848)",permalink:"/docs/study/net/p2p"},next:{title:"Linux tc",permalink:"/docs/study/net/tc"}},i={},p=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],u={toc:p},s="wrapper";function f(e){let{components:t,...r}=e;return(0,c.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,c.yg)("h1",{id:"unix-pfctl-\u9632\u706b\u5899"},"unix pfctl \u9632\u706b\u5899"),(0,c.yg)("p",null,"iptables \u662f Linux \u4e0b\u7684\u9632\u706b\u5899\uff0c\u53ef\u4ee5\u8fdb\u884c\u6570\u636e\u5305\u7684\u8fc7\u6ee4\uff0c\u5728\u7f51\u7edc\u5c42\u8fdb\u884c\u6570\u636e\u7684\u8f6c\u53d1\u3001\u62e6\u622a\u6216\u4e22\u5f03\u7b49\uff0c\u4f7f\u7528\u975e\u5e38\u666e\u904d\uff0c\u529f\u80fd\u4e5f\u975e\u5e38\u5f3a\u5927\u3002\u4f46\u662f Mac \u4e0b\u6ca1\u6709 iptables\uff0c\u4e3a\u4e86\u5b9e\u73b0\u6d41\u91cf\u8f6c\u53d1\u548c\u8fc7\u6ee4\uff0c\u8981\u4f7f\u7528\u5230 Mac \u81ea\u5e26\u7684 PFctl\u3002PFctl \u5373 control the packet filter\uff0c\u662f Unix LIKE \u7cfb\u7edf\u4e0a\u8fdb\u884c TCP/IP \u6d41\u91cf\u8fc7\u6ee4\u548c\u7f51\u7edc\u5730\u5740\u8f6c\u6362\u7684\u7cfb\u7edf\uff0c\u4e5f\u80fd\u63d0\u4f9b\u6d41\u91cf\u6574\u5f62\u548c\u63a7\u5236\u7b49"),(0,c.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,c.yg)("ul",null,(0,c.yg)("li",{parentName:"ul"},(0,c.yg)("a",{parentName:"li",href:"https://www.imydl.tech/linux-command/c/pfctl.html"},"pfctl")),(0,c.yg)("li",{parentName:"ul"},(0,c.yg)("a",{parentName:"li",href:"https://shidian.baike.com/wikiid/658345936018390300"},"\u8bc6\u5178\u767e\u79d1-PF \u9632\u706b\u5899"))))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/42fe7d73.e61b9001.js b/assets/js/42fe7d73.68f0873a.js similarity index 98% rename from assets/js/42fe7d73.e61b9001.js rename to assets/js/42fe7d73.68f0873a.js index 0b85d0031..61789770a 100644 --- a/assets/js/42fe7d73.e61b9001.js +++ b/assets/js/42fe7d73.68f0873a.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2325],{5680:(e,t,n)=>{n.d(t,{xA:()=>p,yg:()=>f});var r=n(6540);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var i=r.createContext({}),c=function(e){var t=r.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(i.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),u=c(n),y=a,f=u["".concat(i,".").concat(y)]||u[y]||d[y]||o;return n?r.createElement(f,l(l({ref:t},p),{},{components:n})):r.createElement(f,l({ref:t},p))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=y;var s={};for(var i in t)hasOwnProperty.call(t,i)&&(s[i]=t[i]);s.originalType=e,s[u]="string"==typeof e?e:a,l[1]=s;for(var c=2;c{n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>s,toc:()=>c});var r=n(8168),a=(n(6540),n(5680));const o={},l="ansible",s={unversionedId:"study/devops/ansible",id:"study/devops/ansible",title:"ansible",description:"\u5e38\u7528",source:"@site/docs/study/devops/ansible.md",sourceDirName:"study/devops",slug:"/study/devops/ansible",permalink:"/docs/study/devops/ansible",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"SHELL",permalink:"/docs/study/devops/SHELL"},next:{title:"centos-nginx",permalink:"/docs/study/devops/centos-gninx-app"}},i={},c=[{value:"\u5e38\u7528",id:"\u5e38\u7528",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],p={toc:c},u="wrapper";function d(e){let{components:t,...n}=e;return(0,a.yg)(u,(0,r.A)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"ansible"},"ansible"),(0,a.yg)("h3",{id:"\u5e38\u7528"},"\u5e38\u7528"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"# \u83b7\u53d6\u6700\u65b0\u65f6\u95f4 \u770b\u65f6\u95f4\u662f\u5426\u540c\u6b65\nansible ssh_host -o -m shell -a 'date'\nansible ssh_host -b -o -m shell -a 'sudo ntpdate 10.0.8.18'\n#\ncat /opt/ansible/ansible-2.9.9/hosts\ncat /opt/ansible/var_file.yaml\nansible pt_host -o -e @/opt/ansible/var_file.yaml -m shell -a 'echo {{odbc_type}}'\n")),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://www.cnblogs.com/keerya/p/7987886.html"},"cnblogs-\u8be6\u89e3\u4e00")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://www.cnblogs.com/keerya/p/8004566.html"},"cnblogs-\u8be6\u89e3\u4e8c"))))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2325],{5680:(e,t,n)=>{n.d(t,{xA:()=>p,yg:()=>f});var r=n(6540);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var i=r.createContext({}),c=function(e){var t=r.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(i.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),u=c(n),y=a,f=u["".concat(i,".").concat(y)]||u[y]||d[y]||o;return n?r.createElement(f,l(l({ref:t},p),{},{components:n})):r.createElement(f,l({ref:t},p))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=y;var s={};for(var i in t)hasOwnProperty.call(t,i)&&(s[i]=t[i]);s.originalType=e,s[u]="string"==typeof e?e:a,l[1]=s;for(var c=2;c{n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>s,toc:()=>c});var r=n(8168),a=(n(6540),n(5680));const o={},l="ansible",s={unversionedId:"study/devops/ansible",id:"study/devops/ansible",title:"ansible",description:"\u5e38\u7528",source:"@site/docs/study/devops/ansible.md",sourceDirName:"study/devops",slug:"/study/devops/ansible",permalink:"/docs/study/devops/ansible",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"SHELL",permalink:"/docs/study/devops/SHELL"},next:{title:"centos-nginx",permalink:"/docs/study/devops/centos-gninx-app"}},i={},c=[{value:"\u5e38\u7528",id:"\u5e38\u7528",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],p={toc:c},u="wrapper";function d(e){let{components:t,...n}=e;return(0,a.yg)(u,(0,r.A)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"ansible"},"ansible"),(0,a.yg)("h3",{id:"\u5e38\u7528"},"\u5e38\u7528"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"# \u83b7\u53d6\u6700\u65b0\u65f6\u95f4 \u770b\u65f6\u95f4\u662f\u5426\u540c\u6b65\nansible ssh_host -o -m shell -a 'date'\nansible ssh_host -b -o -m shell -a 'sudo ntpdate 10.0.8.18'\n#\ncat /opt/ansible/ansible-2.9.9/hosts\ncat /opt/ansible/var_file.yaml\nansible pt_host -o -e @/opt/ansible/var_file.yaml -m shell -a 'echo {{odbc_type}}'\n")),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://www.cnblogs.com/keerya/p/7987886.html"},"cnblogs-\u8be6\u89e3\u4e00")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://www.cnblogs.com/keerya/p/8004566.html"},"cnblogs-\u8be6\u89e3\u4e8c"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/44c08670.e97ee001.js b/assets/js/44c08670.29705e97.js similarity index 99% rename from assets/js/44c08670.e97ee001.js rename to assets/js/44c08670.29705e97.js index c043f2c80..6e9fadc10 100644 --- a/assets/js/44c08670.e97ee001.js +++ b/assets/js/44c08670.29705e97.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9489],{5680:(e,n,t)=>{t.d(n,{xA:()=>s,yg:()=>g});var r=t(6540);function i(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function p(e){for(var n=1;n=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}var u=r.createContext({}),o=function(e){var n=r.useContext(u),t=n;return e&&(t="function"==typeof e?e(n):p(p({},n),e)),t},s=function(e){var n=o(e.components);return r.createElement(u.Provider,{value:n},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},y=r.forwardRef((function(e,n){var t=e.components,i=e.mdxType,l=e.originalType,u=e.parentName,s=a(e,["components","mdxType","originalType","parentName"]),c=o(t),y=i,g=c["".concat(u,".").concat(y)]||c[y]||d[y]||l;return t?r.createElement(g,p(p({ref:n},s),{},{components:t})):r.createElement(g,p({ref:n},s))}));function g(e,n){var t=arguments,i=n&&n.mdxType;if("string"==typeof e||i){var l=t.length,p=new Array(l);p[0]=y;var a={};for(var u in n)hasOwnProperty.call(n,u)&&(a[u]=n[u]);a.originalType=e,a[c]="string"==typeof e?e:i,p[1]=a;for(var o=2;o{t.r(n),t.d(n,{assets:()=>u,contentTitle:()=>p,default:()=>d,frontMatter:()=>l,metadata:()=>a,toc:()=>o});var r=t(8168),i=(t(6540),t(5680));const l={},p="Linux ip \u547d\u4ee4",a={unversionedId:"study/net/ip",id:"study/net/ip",title:"Linux ip \u547d\u4ee4",description:"ip \u547d\u4ee4\u6765\u81ea iproute \u8f6f\u4ef6\u5305\uff0c\u8f6f\u4ef6\u5305\u63d0\u4f9b\u4e86\u5f88\u591a\u547d\u4ee4\uff08rpm -ql iproute |grep bin\uff09\uff0c\u5982 ss \u547d\u4ee4\u3001bridge\uff0c\u8fd9\u4e9b\u547d\u4ee4\u53ef\u4ee5\u5b8c\u5168\u66ff\u4ee3 ifconfig\u3001netstat\u3001route \u7b49\u547d\u4ee4\u3002",source:"@site/docs/study/net/ip.md",sourceDirName:"study/net",slug:"/study/net/ip",permalink:"/docs/study/net/ip",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"VLAN-VXLAN",permalink:"/docs/study/net/VLAN-VXLAN"},next:{title:"Linux iptables \u9632\u706b\u5899",permalink:"/docs/study/net/iptables"}},u={},o=[{value:"ip netns",id:"ip-netns",level:3},{value:"ip address",id:"ip-address",level:3},{value:"ip route",id:"ip-route",level:3},{value:"ip link",id:"ip-link",level:3},{value:"ip neigh",id:"ip-neigh",level:3}],s={toc:o},c="wrapper";function d(e){let{components:n,...t}=e;return(0,i.yg)(c,(0,r.A)({},s,t,{components:n,mdxType:"MDXLayout"}),(0,i.yg)("h1",{id:"linux-ip-\u547d\u4ee4"},"Linux ip \u547d\u4ee4"),(0,i.yg)("p",null,"ip \u547d\u4ee4\u6765\u81ea iproute \u8f6f\u4ef6\u5305\uff0c\u8f6f\u4ef6\u5305\u63d0\u4f9b\u4e86\u5f88\u591a\u547d\u4ee4\uff08rpm -ql iproute |grep bin\uff09\uff0c\u5982 ss \u547d\u4ee4\u3001bridge\uff0c\u8fd9\u4e9b\u547d\u4ee4\u53ef\u4ee5\u5b8c\u5168\u66ff\u4ee3 ifconfig\u3001netstat\u3001route \u7b49\u547d\u4ee4\u3002"),(0,i.yg)("p",null,"ip \u547d\u4ee4\u6709\u5f88\u591a\u5b50\u547d\u4ee4\uff0c\u53ef\u4ee5\u901a\u8fc7 man ip \u67e5\u770b"),(0,i.yg)("p",null,"link - address - addrlabel - route - rule - neigh - ntable - tunnel - tuntap - maddress - mroute - mrule - monitor - xfrm - netns - l2tp - tcp_metrics -\ntoken - macsec"),(0,i.yg)("p",null,"\u67e5\u770b\u547d\u4ee4\u7684\u7528\u6cd5\uff1a"),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},"ip netns help"),(0,i.yg)("li",{parentName:"ul"},"ip address help"),(0,i.yg)("li",{parentName:"ul"},"ip route help"),(0,i.yg)("li",{parentName:"ul"},"ip link help"),(0,i.yg)("li",{parentName:"ul"},"ip neigh help")),(0,i.yg)("p",null,"\u67e5\u770b\u5e2e\u52a9\u6587\u6863\uff1a"),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},"man ip-netns"),(0,i.yg)("li",{parentName:"ul"},"man ip-address"),(0,i.yg)("li",{parentName:"ul"},"man ip-route"),(0,i.yg)("li",{parentName:"ul"},"man ip-link"),(0,i.yg)("li",{parentName:"ul"},"man ip-neighbour")),(0,i.yg)("p",null,"\u66f4\u591a\u547d\u4ee4\u7684\u5e2e\u52a9\u6587\u6863\u53ef\u4ee5\u901a\u8fc7\u4ee5\u4e0b\u547d\u4ee4\u67e5\u770b\uff1a"),(0,i.yg)("p",null,"rpm -ql iproute |grep man"),(0,i.yg)("h3",{id:"ip-netns"},"ip netns"),(0,i.yg)("p",null,"\u67e5\u770b\u6240\u6709\u7f51\u7edc\u547d\u540d\u7a7a\u95f4\uff0c\u7528\u4e8e\u9694\u79bb\u7f51\u7edc"),(0,i.yg)("h3",{id:"ip-address"},"ip address"),(0,i.yg)("p",null,"address \u53ef\u4ee5\u7b80\u5199\u4e3a a \u6216 ad \u6216 add \u6216 addr"),(0,i.yg)("p",null,"\u67e5\u770b ip"),(0,i.yg)("h3",{id:"ip-route"},"ip route"),(0,i.yg)("p",null,"route \u53ef\u4ee5\u7b80\u5199\u4e3a r \u6216 ro \u6216 rou"),(0,i.yg)("p",null,"\u67e5\u770b\u8def\u7531"),(0,i.yg)("h3",{id:"ip-link"},"ip link"),(0,i.yg)("p",null,"link \u8868\u793a\u94fe\u8def\u5c42\u3002link \u53ef\u4ee5\u7b80\u5199\u4e3a l \u6216 li \u6216 lin"),(0,i.yg)("p",null,"ip l\uff1a\u67e5\u770b\u6240\u6709\u7684\u7f51\u7edc\u8bbe\u5907\uff08\u56e0\u4e3a\u662f\u94fe\u8def\u5c42\uff0c\u6240\u4ee5\u53ea\u663e\u793a MAC \u5730\u5740\uff0c\u4e0d\u663e\u793a IP \u5730\u5740\uff09\u3002\u5176\u4e2d\uff0clo\u3001ens33 \u7b49\u662f\u771f\u5b9e\u7684\u7269\u7406\u8bbe\u5907\uff0c\u901a\u8fc7 ip l add \u547d\u4ee4\u521b\u5efa\u7684\u90fd\u662f\u865a\u62df\u8bbe\u5907\u3002"),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("a",{parentName:"li",href:"https://mp.weixin.qq.com/s/sSQFINJ8RO8Nc4XtcyQIjQ"},"\u8f7b\u677e\u7406\u89e3 Docker \u7f51\u7edc\u865a\u62df\u5316\u57fa\u7840\u4e4b veth \u8bbe\u5907\uff01")),(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("a",{parentName:"li",href:"https://mp.weixin.qq.com/s?__biz=MjM5Njg5NDgwNA==&mid=2247485146&idx=1&sn=e5bfc79ba915df1f6a8b32b87ef0ef78&scene=21#wechat_redirect"},"25 \u5f20\u56fe\uff0c\u4e00\u4e07\u5b57\uff0c\u62c6\u89e3 Linux \u7f51\u7edc\u5305\u53d1\u9001\u8fc7\u7a0b")),(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("a",{parentName:"li",href:"https://mp.weixin.qq.com/s?__biz=MjM5Njg5NDgwNA==&mid=2247484058&idx=1&sn=a2621bc27c74b313528eefbc81ee8c0f&scene=21#wechat_redirect"},"\u56fe\u89e3 Linux \u7f51\u7edc\u5305\u63a5\u6536\u8fc7\u7a0b"))),(0,i.yg)("h3",{id:"ip-neigh"},"ip neigh"),(0,i.yg)("p",null,"neigh \u53ef\u4ee5\u7b80\u5199\u4e3a n \u6216 ne \u6216 nei"),(0,i.yg)("p",null,"ip n\uff1a\u67e5\u770b\u5185\u6838\u4e2d\u8bb0\u5f55\u7684 ARP \u8868\uff08\u4e5f\u5c31\u662f\u94fe\u8def\u5c42\u76f4\u8fde\u7684\u4e3b\u673a\u7684 IP \u548c MAC \u5730\u5740\uff0c\u4e0d\u4e00\u5b9a\u51c6\u786e\uff0c\u9700\u8981\u4e4b\u524d\u8fde\u8fc7\uff09\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9489],{5680:(e,n,t)=>{t.d(n,{xA:()=>s,yg:()=>g});var r=t(6540);function i(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function p(e){for(var n=1;n=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}var u=r.createContext({}),o=function(e){var n=r.useContext(u),t=n;return e&&(t="function"==typeof e?e(n):p(p({},n),e)),t},s=function(e){var n=o(e.components);return r.createElement(u.Provider,{value:n},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},y=r.forwardRef((function(e,n){var t=e.components,i=e.mdxType,l=e.originalType,u=e.parentName,s=a(e,["components","mdxType","originalType","parentName"]),c=o(t),y=i,g=c["".concat(u,".").concat(y)]||c[y]||d[y]||l;return t?r.createElement(g,p(p({ref:n},s),{},{components:t})):r.createElement(g,p({ref:n},s))}));function g(e,n){var t=arguments,i=n&&n.mdxType;if("string"==typeof e||i){var l=t.length,p=new Array(l);p[0]=y;var a={};for(var u in n)hasOwnProperty.call(n,u)&&(a[u]=n[u]);a.originalType=e,a[c]="string"==typeof e?e:i,p[1]=a;for(var o=2;o{t.r(n),t.d(n,{assets:()=>u,contentTitle:()=>p,default:()=>d,frontMatter:()=>l,metadata:()=>a,toc:()=>o});var r=t(8168),i=(t(6540),t(5680));const l={},p="Linux ip \u547d\u4ee4",a={unversionedId:"study/net/ip",id:"study/net/ip",title:"Linux ip \u547d\u4ee4",description:"ip \u547d\u4ee4\u6765\u81ea iproute \u8f6f\u4ef6\u5305\uff0c\u8f6f\u4ef6\u5305\u63d0\u4f9b\u4e86\u5f88\u591a\u547d\u4ee4\uff08rpm -ql iproute |grep bin\uff09\uff0c\u5982 ss \u547d\u4ee4\u3001bridge\uff0c\u8fd9\u4e9b\u547d\u4ee4\u53ef\u4ee5\u5b8c\u5168\u66ff\u4ee3 ifconfig\u3001netstat\u3001route \u7b49\u547d\u4ee4\u3002",source:"@site/docs/study/net/ip.md",sourceDirName:"study/net",slug:"/study/net/ip",permalink:"/docs/study/net/ip",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"VLAN-VXLAN",permalink:"/docs/study/net/VLAN-VXLAN"},next:{title:"Linux iptables \u9632\u706b\u5899",permalink:"/docs/study/net/iptables"}},u={},o=[{value:"ip netns",id:"ip-netns",level:3},{value:"ip address",id:"ip-address",level:3},{value:"ip route",id:"ip-route",level:3},{value:"ip link",id:"ip-link",level:3},{value:"ip neigh",id:"ip-neigh",level:3}],s={toc:o},c="wrapper";function d(e){let{components:n,...t}=e;return(0,i.yg)(c,(0,r.A)({},s,t,{components:n,mdxType:"MDXLayout"}),(0,i.yg)("h1",{id:"linux-ip-\u547d\u4ee4"},"Linux ip \u547d\u4ee4"),(0,i.yg)("p",null,"ip \u547d\u4ee4\u6765\u81ea iproute \u8f6f\u4ef6\u5305\uff0c\u8f6f\u4ef6\u5305\u63d0\u4f9b\u4e86\u5f88\u591a\u547d\u4ee4\uff08rpm -ql iproute |grep bin\uff09\uff0c\u5982 ss \u547d\u4ee4\u3001bridge\uff0c\u8fd9\u4e9b\u547d\u4ee4\u53ef\u4ee5\u5b8c\u5168\u66ff\u4ee3 ifconfig\u3001netstat\u3001route \u7b49\u547d\u4ee4\u3002"),(0,i.yg)("p",null,"ip \u547d\u4ee4\u6709\u5f88\u591a\u5b50\u547d\u4ee4\uff0c\u53ef\u4ee5\u901a\u8fc7 man ip \u67e5\u770b"),(0,i.yg)("p",null,"link - address - addrlabel - route - rule - neigh - ntable - tunnel - tuntap - maddress - mroute - mrule - monitor - xfrm - netns - l2tp - tcp_metrics -\ntoken - macsec"),(0,i.yg)("p",null,"\u67e5\u770b\u547d\u4ee4\u7684\u7528\u6cd5\uff1a"),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},"ip netns help"),(0,i.yg)("li",{parentName:"ul"},"ip address help"),(0,i.yg)("li",{parentName:"ul"},"ip route help"),(0,i.yg)("li",{parentName:"ul"},"ip link help"),(0,i.yg)("li",{parentName:"ul"},"ip neigh help")),(0,i.yg)("p",null,"\u67e5\u770b\u5e2e\u52a9\u6587\u6863\uff1a"),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},"man ip-netns"),(0,i.yg)("li",{parentName:"ul"},"man ip-address"),(0,i.yg)("li",{parentName:"ul"},"man ip-route"),(0,i.yg)("li",{parentName:"ul"},"man ip-link"),(0,i.yg)("li",{parentName:"ul"},"man ip-neighbour")),(0,i.yg)("p",null,"\u66f4\u591a\u547d\u4ee4\u7684\u5e2e\u52a9\u6587\u6863\u53ef\u4ee5\u901a\u8fc7\u4ee5\u4e0b\u547d\u4ee4\u67e5\u770b\uff1a"),(0,i.yg)("p",null,"rpm -ql iproute |grep man"),(0,i.yg)("h3",{id:"ip-netns"},"ip netns"),(0,i.yg)("p",null,"\u67e5\u770b\u6240\u6709\u7f51\u7edc\u547d\u540d\u7a7a\u95f4\uff0c\u7528\u4e8e\u9694\u79bb\u7f51\u7edc"),(0,i.yg)("h3",{id:"ip-address"},"ip address"),(0,i.yg)("p",null,"address \u53ef\u4ee5\u7b80\u5199\u4e3a a \u6216 ad \u6216 add \u6216 addr"),(0,i.yg)("p",null,"\u67e5\u770b ip"),(0,i.yg)("h3",{id:"ip-route"},"ip route"),(0,i.yg)("p",null,"route \u53ef\u4ee5\u7b80\u5199\u4e3a r \u6216 ro \u6216 rou"),(0,i.yg)("p",null,"\u67e5\u770b\u8def\u7531"),(0,i.yg)("h3",{id:"ip-link"},"ip link"),(0,i.yg)("p",null,"link \u8868\u793a\u94fe\u8def\u5c42\u3002link \u53ef\u4ee5\u7b80\u5199\u4e3a l \u6216 li \u6216 lin"),(0,i.yg)("p",null,"ip l\uff1a\u67e5\u770b\u6240\u6709\u7684\u7f51\u7edc\u8bbe\u5907\uff08\u56e0\u4e3a\u662f\u94fe\u8def\u5c42\uff0c\u6240\u4ee5\u53ea\u663e\u793a MAC \u5730\u5740\uff0c\u4e0d\u663e\u793a IP \u5730\u5740\uff09\u3002\u5176\u4e2d\uff0clo\u3001ens33 \u7b49\u662f\u771f\u5b9e\u7684\u7269\u7406\u8bbe\u5907\uff0c\u901a\u8fc7 ip l add \u547d\u4ee4\u521b\u5efa\u7684\u90fd\u662f\u865a\u62df\u8bbe\u5907\u3002"),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("a",{parentName:"li",href:"https://mp.weixin.qq.com/s/sSQFINJ8RO8Nc4XtcyQIjQ"},"\u8f7b\u677e\u7406\u89e3 Docker \u7f51\u7edc\u865a\u62df\u5316\u57fa\u7840\u4e4b veth \u8bbe\u5907\uff01")),(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("a",{parentName:"li",href:"https://mp.weixin.qq.com/s?__biz=MjM5Njg5NDgwNA==&mid=2247485146&idx=1&sn=e5bfc79ba915df1f6a8b32b87ef0ef78&scene=21#wechat_redirect"},"25 \u5f20\u56fe\uff0c\u4e00\u4e07\u5b57\uff0c\u62c6\u89e3 Linux \u7f51\u7edc\u5305\u53d1\u9001\u8fc7\u7a0b")),(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("a",{parentName:"li",href:"https://mp.weixin.qq.com/s?__biz=MjM5Njg5NDgwNA==&mid=2247484058&idx=1&sn=a2621bc27c74b313528eefbc81ee8c0f&scene=21#wechat_redirect"},"\u56fe\u89e3 Linux \u7f51\u7edc\u5305\u63a5\u6536\u8fc7\u7a0b"))),(0,i.yg)("h3",{id:"ip-neigh"},"ip neigh"),(0,i.yg)("p",null,"neigh \u53ef\u4ee5\u7b80\u5199\u4e3a n \u6216 ne \u6216 nei"),(0,i.yg)("p",null,"ip n\uff1a\u67e5\u770b\u5185\u6838\u4e2d\u8bb0\u5f55\u7684 ARP \u8868\uff08\u4e5f\u5c31\u662f\u94fe\u8def\u5c42\u76f4\u8fde\u7684\u4e3b\u673a\u7684 IP \u548c MAC \u5730\u5740\uff0c\u4e0d\u4e00\u5b9a\u51c6\u786e\uff0c\u9700\u8981\u4e4b\u524d\u8fde\u8fc7\uff09\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/455d41bc.eff58370.js b/assets/js/455d41bc.492f72cc.js similarity index 98% rename from assets/js/455d41bc.eff58370.js rename to assets/js/455d41bc.492f72cc.js index cb9e78bba..58b5f2d7d 100644 --- a/assets/js/455d41bc.eff58370.js +++ b/assets/js/455d41bc.492f72cc.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6097],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),u=p(r),d=o,f=u["".concat(l,".").concat(d)]||u[d]||y[d]||a;return r?n.createElement(f,i(i({ref:t},s),{},{components:r})):n.createElement(f,i({ref:t},s))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=d;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[u]="string"==typeof e?e:o,i[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>y,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={},i=void 0,c={unversionedId:"study/think/\u67b6\u6784/\u6280\u672f\u4e2d\u53f0",id:"study/think/\u67b6\u6784/\u6280\u672f\u4e2d\u53f0",title:"\u6280\u672f\u4e2d\u53f0",description:"\u53c2\u8003",source:"@site/docs/study/think/\u67b6\u6784/\u6280\u672f\u4e2d\u53f0.md",sourceDirName:"study/think/\u67b6\u6784",slug:"/study/think/\u67b6\u6784/\u6280\u672f\u4e2d\u53f0",permalink:"/docs/study/think/\u67b6\u6784/\u6280\u672f\u4e2d\u53f0",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u5f02\u5730\u591a\u6d3b\u67b6\u6784",permalink:"/docs/study/think/\u67b6\u6784/\u5f02\u5730\u591a\u6d3b\u67b6\u6784"},next:{title:"\u67b6\u6784\u56fe\u793a\u4f8b",permalink:"/docs/study/think/\u67b6\u6784/\u67b6\u6784\u56fe\u793a\u4f8b"}},l={},p=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],s={toc:p},u="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("a",{parentName:"li",href:"https://blog.csdn.net/sinat_26811377/article/details/98484190"},"\u6280\u672f\u4e2d\u53f0\u7684\u4f5c\u7528\u662f\u4ec0\u4e48\uff0c\u5728\u4ec0\u4e48\u60c5\u51b5\u4e0b\u624d\u6709\u5fc5\u8981\u505a\u6280\u672f\u4e2d\u53f0\uff1f")),(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("a",{parentName:"li",href:"https://www.cnblogs.com/itlz/p/15786961.html"},"\u8be6\u89e3\u6570\u636e\u4e2d\u53f0\u7684\u5e95\u5c42\u67b6\u6784\u903b\u8f91")),(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("a",{parentName:"li",href:"https://36kr.com/p/1725013082113"},"\u4e2d\u53f0\uff0c\u6211\u4fe1\u4e86\u4f60\u7684\u90aa | \u6df1\u6c2a"))))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6097],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),u=p(r),d=o,f=u["".concat(l,".").concat(d)]||u[d]||y[d]||a;return r?n.createElement(f,i(i({ref:t},s),{},{components:r})):n.createElement(f,i({ref:t},s))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=d;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[u]="string"==typeof e?e:o,i[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>y,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={},i=void 0,c={unversionedId:"study/think/\u67b6\u6784/\u6280\u672f\u4e2d\u53f0",id:"study/think/\u67b6\u6784/\u6280\u672f\u4e2d\u53f0",title:"\u6280\u672f\u4e2d\u53f0",description:"\u53c2\u8003",source:"@site/docs/study/think/\u67b6\u6784/\u6280\u672f\u4e2d\u53f0.md",sourceDirName:"study/think/\u67b6\u6784",slug:"/study/think/\u67b6\u6784/\u6280\u672f\u4e2d\u53f0",permalink:"/docs/study/think/\u67b6\u6784/\u6280\u672f\u4e2d\u53f0",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u5f02\u5730\u591a\u6d3b\u67b6\u6784",permalink:"/docs/study/think/\u67b6\u6784/\u5f02\u5730\u591a\u6d3b\u67b6\u6784"},next:{title:"\u67b6\u6784\u56fe\u793a\u4f8b",permalink:"/docs/study/think/\u67b6\u6784/\u67b6\u6784\u56fe\u793a\u4f8b"}},l={},p=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],s={toc:p},u="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("a",{parentName:"li",href:"https://blog.csdn.net/sinat_26811377/article/details/98484190"},"\u6280\u672f\u4e2d\u53f0\u7684\u4f5c\u7528\u662f\u4ec0\u4e48\uff0c\u5728\u4ec0\u4e48\u60c5\u51b5\u4e0b\u624d\u6709\u5fc5\u8981\u505a\u6280\u672f\u4e2d\u53f0\uff1f")),(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("a",{parentName:"li",href:"https://www.cnblogs.com/itlz/p/15786961.html"},"\u8be6\u89e3\u6570\u636e\u4e2d\u53f0\u7684\u5e95\u5c42\u67b6\u6784\u903b\u8f91")),(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("a",{parentName:"li",href:"https://36kr.com/p/1725013082113"},"\u4e2d\u53f0\uff0c\u6211\u4fe1\u4e86\u4f60\u7684\u90aa | \u6df1\u6c2a"))))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/461e82b5.427796e5.js b/assets/js/461e82b5.30e79dc5.js similarity index 99% rename from assets/js/461e82b5.427796e5.js rename to assets/js/461e82b5.30e79dc5.js index f79106c79..558086f31 100644 --- a/assets/js/461e82b5.427796e5.js +++ b/assets/js/461e82b5.30e79dc5.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3946],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>v});var n=r(6540);function l(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(l[r]=e[r]);return l}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(l[r]=e[r])}return l}var p=n.createContext({}),c=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=c(e.components);return n.createElement(p.Provider,{value:t},e.children)},y="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},s=n.forwardRef((function(e,t){var r=e.components,l=e.mdxType,a=e.originalType,p=e.parentName,u=o(e,["components","mdxType","originalType","parentName"]),y=c(r),s=l,v=y["".concat(p,".").concat(s)]||y[s]||d[s]||a;return r?n.createElement(v,i(i({ref:t},u),{},{components:r})):n.createElement(v,i({ref:t},u))}));function v(e,t){var r=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var a=r.length,i=new Array(a);i[0]=s;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[y]="string"==typeof e?e:l,i[1]=o;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>o,toc:()=>c});var n=r(8168),l=(r(6540),r(5680));const a={},i=void 0,o={unversionedId:"study/encryption/\u52a0\u89e3\u5bc6\u670d\u52a1",id:"study/encryption/\u52a0\u89e3\u5bc6\u670d\u52a1",title:"\u52a0\u89e3\u5bc6\u670d\u52a1",description:"\u52a0\u89e3\u5bc6\u670d\u52a1",source:"@site/docs/study/encryption/\u52a0\u89e3\u5bc6\u670d\u52a1.md",sourceDirName:"study/encryption",slug:"/study/encryption/\u52a0\u89e3\u5bc6\u670d\u52a1",permalink:"/docs/study/encryption/\u52a0\u89e3\u5bc6\u670d\u52a1",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u4e2d\u56fd\u5546\u7528\u5bc6\u7801\u7b97\u6cd5",permalink:"/docs/study/encryption/\u4e2d\u56fd\u5546\u7528\u5bc6\u7801\u7b97\u6cd5"},next:{title:"\u5bc6\u7801\u54c8\u5e0c\u7b97\u6cd5",permalink:"/docs/study/encryption/\u5bc6\u7801\u54c8\u5e0c\u7b97\u6cd5\u603b\u7ed3"}},p={},c=[{value:"\u52a0\u89e3\u5bc6\u670d\u52a1",id:"\u52a0\u89e3\u5bc6\u670d\u52a1",level:3},{value:"\u7b7e\u540d\u9a8c\u7b7e\u670d\u52a1",id:"\u7b7e\u540d\u9a8c\u7b7e\u670d\u52a1",level:3},{value:"\u79d8\u94a5\u7ba1\u7406",id:"\u79d8\u94a5\u7ba1\u7406",level:3},{value:"\u6587\u4ef6\u52a0\u5bc6",id:"\u6587\u4ef6\u52a0\u5bc6",level:3},{value:"\u6570\u636e\u5e93\u52a0\u5bc6",id:"\u6570\u636e\u5e93\u52a0\u5bc6",level:3},{value:"\u65f6\u95f4\u6233\u670d\u52a1",id:"\u65f6\u95f4\u6233\u670d\u52a1",level:3},{value:"\u534f\u540c\u7b7e\u540d",id:"\u534f\u540c\u7b7e\u540d",level:3},{value:"\u52a8\u6001\u4ee4\u724c",id:"\u52a8\u6001\u4ee4\u724c",level:3},{value:"\u7535\u5b50\u7b7e\u7ae0",id:"\u7535\u5b50\u7b7e\u7ae0",level:3},{value:"SSLVPN\u52a0\u5bc6\u901a\u9053",id:"sslvpn\u52a0\u5bc6\u901a\u9053",level:3},{value:"\u6570\u5b57\u8bc1\u4e66\u8ba4\u8bc1",id:"\u6570\u5b57\u8bc1\u4e66\u8ba4\u8bc1",level:3}],u={toc:c},y="wrapper";function d(e){let{components:t,...r}=e;return(0,l.yg)(y,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,l.yg)("h3",{id:"\u52a0\u89e3\u5bc6\u670d\u52a1"},"\u52a0\u89e3\u5bc6\u670d\u52a1"),(0,l.yg)("p",null,"\u5bf9\u79f0\u52a0\u5bc6\u3001\u975e\u5bf9\u79f0\u52a0\u5bc6\u3001\u6570\u636e\u6458\u8981"),(0,l.yg)("h3",{id:"\u7b7e\u540d\u9a8c\u7b7e\u670d\u52a1"},"\u7b7e\u540d\u9a8c\u7b7e\u670d\u52a1"),(0,l.yg)("p",null,(0,l.yg)("a",{parentName:"p",href:"https://zhuanlan.zhihu.com/p/457435473"},"\u77e5\u4e4e-\u7b7e\u540d\u9a8c\u7b7e")),(0,l.yg)("h3",{id:"\u79d8\u94a5\u7ba1\u7406"},"\u79d8\u94a5\u7ba1\u7406"),(0,l.yg)("p",null,"\u5bc6\u94a5\u662f\u52a0\u5bc6\u901a\u4fe1\u3001\u4fdd\u62a4\u6570\u636e\u7684\u91cd\u8981\u5de5\u5177\u3002\u5bc6\u94a5\u7ba1\u7406\u662f\u6307\u5bf9\u5bc6\u94a5\u7684\u4ea7\u751f\u3001\u5b58\u50a8\u3001\u4f7f\u7528\u548c\u9500\u6bc1\u7b49\u5168\u8fc7\u7a0b\u8fdb\u884c\u7ba1\u7406\uff0c\u786e\u4fdd\u5bc6\u94a5\u7684\u5b89\u5168\u6027\u548c\u53ef\u9760\u6027\u3002"),(0,l.yg)("p",null,(0,l.yg)("a",{parentName:"p",href:"https://developer.baidu.com/article/detail.html?id=379498"},"\u5bc6\u94a5\u7ba1\u7406\u670d\u52a1\uff08KMS\uff09")),(0,l.yg)("h3",{id:"\u6587\u4ef6\u52a0\u5bc6"},"\u6587\u4ef6\u52a0\u5bc6"),(0,l.yg)("h3",{id:"\u6570\u636e\u5e93\u52a0\u5bc6"},"\u6570\u636e\u5e93\u52a0\u5bc6"),(0,l.yg)("h3",{id:"\u65f6\u95f4\u6233\u670d\u52a1"},"\u65f6\u95f4\u6233\u670d\u52a1"),(0,l.yg)("h3",{id:"\u534f\u540c\u7b7e\u540d"},"\u534f\u540c\u7b7e\u540d"),(0,l.yg)("h3",{id:"\u52a8\u6001\u4ee4\u724c"},"\u52a8\u6001\u4ee4\u724c"),(0,l.yg)("h3",{id:"\u7535\u5b50\u7b7e\u7ae0"},"\u7535\u5b50\u7b7e\u7ae0"),(0,l.yg)("h3",{id:"sslvpn\u52a0\u5bc6\u901a\u9053"},"SSLVPN\u52a0\u5bc6\u901a\u9053"),(0,l.yg)("h3",{id:"\u6570\u5b57\u8bc1\u4e66\u8ba4\u8bc1"},"\u6570\u5b57\u8bc1\u4e66\u8ba4\u8bc1"),(0,l.yg)("p",null,"\u8bc1\u4e66\u5b9e\u9645\u662f\u7531\u8bc1\u4e66\u7b7e\u8bc1\u673a\u5173\uff08CA\uff09\u7b7e\u53d1\u7684\u5bf9\u7528\u6237\u7684\u516c\u94a5\u7684\u8ba4\u8bc1\u3002"),(0,l.yg)("p",null,"\u8bc1\u4e66\u7684\u5185\u5bb9\u5305\u62ec\uff1a\u7535\u5b50\u7b7e\u8bc1\u673a\u5173\u7684\u4fe1\u606f\u3001\u516c\u94a5\u7528\u6237\u4fe1\u606f\u3001\u516c\u94a5\u3001\u6743\u5a01\u673a\u6784\u7684\u7b7e\u5b57\u548c\u6709\u6548\u671f\u7b49\u7b49\u3002\u76ee\u524d\uff0c\u8bc1\u4e66\u7684\u683c\u5f0f\u548c\u9a8c\u8bc1\u65b9\u6cd5\u666e\u904d\u9075\u5faaX.509 \u56fd\u9645\u6807\u51c6\u3002"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("p",{parentName:"li"},"\u52a0\u5bc6\uff1aca\u8ba4\u8bc1\u5c06\u6587\u5b57\u8f6c\u6362\u6210\u4e0d\u80fd\u76f4\u63a5\u9605\u8bfb\u7684\u5f62\u5f0f\uff08\u5373\u5bc6\u6587\uff09\u7684\u8fc7\u7a0b\u79f0\u4e3a\u52a0\u5bc6\u3002")),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("p",{parentName:"li"},"\u89e3\u5bc6\uff1a\u5c06\u5bc6\u6587\u8f6c\u6362\u6210\u80fd\u591f\u76f4\u63a5\u9605\u8bfb\u7684\u6587\u5b57\uff08\u5373\u660e\u6587\uff09\u7684\u8fc7\u7a0b\u79f0\u4e3a\u89e3\u5bc6\u3002"))))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3946],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>v});var n=r(6540);function l(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(l[r]=e[r]);return l}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(l[r]=e[r])}return l}var p=n.createContext({}),c=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=c(e.components);return n.createElement(p.Provider,{value:t},e.children)},y="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},s=n.forwardRef((function(e,t){var r=e.components,l=e.mdxType,a=e.originalType,p=e.parentName,u=o(e,["components","mdxType","originalType","parentName"]),y=c(r),s=l,v=y["".concat(p,".").concat(s)]||y[s]||d[s]||a;return r?n.createElement(v,i(i({ref:t},u),{},{components:r})):n.createElement(v,i({ref:t},u))}));function v(e,t){var r=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var a=r.length,i=new Array(a);i[0]=s;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[y]="string"==typeof e?e:l,i[1]=o;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>o,toc:()=>c});var n=r(8168),l=(r(6540),r(5680));const a={},i=void 0,o={unversionedId:"study/encryption/\u52a0\u89e3\u5bc6\u670d\u52a1",id:"study/encryption/\u52a0\u89e3\u5bc6\u670d\u52a1",title:"\u52a0\u89e3\u5bc6\u670d\u52a1",description:"\u52a0\u89e3\u5bc6\u670d\u52a1",source:"@site/docs/study/encryption/\u52a0\u89e3\u5bc6\u670d\u52a1.md",sourceDirName:"study/encryption",slug:"/study/encryption/\u52a0\u89e3\u5bc6\u670d\u52a1",permalink:"/docs/study/encryption/\u52a0\u89e3\u5bc6\u670d\u52a1",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u4e2d\u56fd\u5546\u7528\u5bc6\u7801\u7b97\u6cd5",permalink:"/docs/study/encryption/\u4e2d\u56fd\u5546\u7528\u5bc6\u7801\u7b97\u6cd5"},next:{title:"\u5bc6\u7801\u54c8\u5e0c\u7b97\u6cd5",permalink:"/docs/study/encryption/\u5bc6\u7801\u54c8\u5e0c\u7b97\u6cd5\u603b\u7ed3"}},p={},c=[{value:"\u52a0\u89e3\u5bc6\u670d\u52a1",id:"\u52a0\u89e3\u5bc6\u670d\u52a1",level:3},{value:"\u7b7e\u540d\u9a8c\u7b7e\u670d\u52a1",id:"\u7b7e\u540d\u9a8c\u7b7e\u670d\u52a1",level:3},{value:"\u79d8\u94a5\u7ba1\u7406",id:"\u79d8\u94a5\u7ba1\u7406",level:3},{value:"\u6587\u4ef6\u52a0\u5bc6",id:"\u6587\u4ef6\u52a0\u5bc6",level:3},{value:"\u6570\u636e\u5e93\u52a0\u5bc6",id:"\u6570\u636e\u5e93\u52a0\u5bc6",level:3},{value:"\u65f6\u95f4\u6233\u670d\u52a1",id:"\u65f6\u95f4\u6233\u670d\u52a1",level:3},{value:"\u534f\u540c\u7b7e\u540d",id:"\u534f\u540c\u7b7e\u540d",level:3},{value:"\u52a8\u6001\u4ee4\u724c",id:"\u52a8\u6001\u4ee4\u724c",level:3},{value:"\u7535\u5b50\u7b7e\u7ae0",id:"\u7535\u5b50\u7b7e\u7ae0",level:3},{value:"SSLVPN\u52a0\u5bc6\u901a\u9053",id:"sslvpn\u52a0\u5bc6\u901a\u9053",level:3},{value:"\u6570\u5b57\u8bc1\u4e66\u8ba4\u8bc1",id:"\u6570\u5b57\u8bc1\u4e66\u8ba4\u8bc1",level:3}],u={toc:c},y="wrapper";function d(e){let{components:t,...r}=e;return(0,l.yg)(y,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,l.yg)("h3",{id:"\u52a0\u89e3\u5bc6\u670d\u52a1"},"\u52a0\u89e3\u5bc6\u670d\u52a1"),(0,l.yg)("p",null,"\u5bf9\u79f0\u52a0\u5bc6\u3001\u975e\u5bf9\u79f0\u52a0\u5bc6\u3001\u6570\u636e\u6458\u8981"),(0,l.yg)("h3",{id:"\u7b7e\u540d\u9a8c\u7b7e\u670d\u52a1"},"\u7b7e\u540d\u9a8c\u7b7e\u670d\u52a1"),(0,l.yg)("p",null,(0,l.yg)("a",{parentName:"p",href:"https://zhuanlan.zhihu.com/p/457435473"},"\u77e5\u4e4e-\u7b7e\u540d\u9a8c\u7b7e")),(0,l.yg)("h3",{id:"\u79d8\u94a5\u7ba1\u7406"},"\u79d8\u94a5\u7ba1\u7406"),(0,l.yg)("p",null,"\u5bc6\u94a5\u662f\u52a0\u5bc6\u901a\u4fe1\u3001\u4fdd\u62a4\u6570\u636e\u7684\u91cd\u8981\u5de5\u5177\u3002\u5bc6\u94a5\u7ba1\u7406\u662f\u6307\u5bf9\u5bc6\u94a5\u7684\u4ea7\u751f\u3001\u5b58\u50a8\u3001\u4f7f\u7528\u548c\u9500\u6bc1\u7b49\u5168\u8fc7\u7a0b\u8fdb\u884c\u7ba1\u7406\uff0c\u786e\u4fdd\u5bc6\u94a5\u7684\u5b89\u5168\u6027\u548c\u53ef\u9760\u6027\u3002"),(0,l.yg)("p",null,(0,l.yg)("a",{parentName:"p",href:"https://developer.baidu.com/article/detail.html?id=379498"},"\u5bc6\u94a5\u7ba1\u7406\u670d\u52a1\uff08KMS\uff09")),(0,l.yg)("h3",{id:"\u6587\u4ef6\u52a0\u5bc6"},"\u6587\u4ef6\u52a0\u5bc6"),(0,l.yg)("h3",{id:"\u6570\u636e\u5e93\u52a0\u5bc6"},"\u6570\u636e\u5e93\u52a0\u5bc6"),(0,l.yg)("h3",{id:"\u65f6\u95f4\u6233\u670d\u52a1"},"\u65f6\u95f4\u6233\u670d\u52a1"),(0,l.yg)("h3",{id:"\u534f\u540c\u7b7e\u540d"},"\u534f\u540c\u7b7e\u540d"),(0,l.yg)("h3",{id:"\u52a8\u6001\u4ee4\u724c"},"\u52a8\u6001\u4ee4\u724c"),(0,l.yg)("h3",{id:"\u7535\u5b50\u7b7e\u7ae0"},"\u7535\u5b50\u7b7e\u7ae0"),(0,l.yg)("h3",{id:"sslvpn\u52a0\u5bc6\u901a\u9053"},"SSLVPN\u52a0\u5bc6\u901a\u9053"),(0,l.yg)("h3",{id:"\u6570\u5b57\u8bc1\u4e66\u8ba4\u8bc1"},"\u6570\u5b57\u8bc1\u4e66\u8ba4\u8bc1"),(0,l.yg)("p",null,"\u8bc1\u4e66\u5b9e\u9645\u662f\u7531\u8bc1\u4e66\u7b7e\u8bc1\u673a\u5173\uff08CA\uff09\u7b7e\u53d1\u7684\u5bf9\u7528\u6237\u7684\u516c\u94a5\u7684\u8ba4\u8bc1\u3002"),(0,l.yg)("p",null,"\u8bc1\u4e66\u7684\u5185\u5bb9\u5305\u62ec\uff1a\u7535\u5b50\u7b7e\u8bc1\u673a\u5173\u7684\u4fe1\u606f\u3001\u516c\u94a5\u7528\u6237\u4fe1\u606f\u3001\u516c\u94a5\u3001\u6743\u5a01\u673a\u6784\u7684\u7b7e\u5b57\u548c\u6709\u6548\u671f\u7b49\u7b49\u3002\u76ee\u524d\uff0c\u8bc1\u4e66\u7684\u683c\u5f0f\u548c\u9a8c\u8bc1\u65b9\u6cd5\u666e\u904d\u9075\u5faaX.509 \u56fd\u9645\u6807\u51c6\u3002"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("p",{parentName:"li"},"\u52a0\u5bc6\uff1aca\u8ba4\u8bc1\u5c06\u6587\u5b57\u8f6c\u6362\u6210\u4e0d\u80fd\u76f4\u63a5\u9605\u8bfb\u7684\u5f62\u5f0f\uff08\u5373\u5bc6\u6587\uff09\u7684\u8fc7\u7a0b\u79f0\u4e3a\u52a0\u5bc6\u3002")),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("p",{parentName:"li"},"\u89e3\u5bc6\uff1a\u5c06\u5bc6\u6587\u8f6c\u6362\u6210\u80fd\u591f\u76f4\u63a5\u9605\u8bfb\u7684\u6587\u5b57\uff08\u5373\u660e\u6587\uff09\u7684\u8fc7\u7a0b\u79f0\u4e3a\u89e3\u5bc6\u3002"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/46c2ebc5.407f7609.js b/assets/js/46c2ebc5.3deeab56.js similarity index 99% rename from assets/js/46c2ebc5.407f7609.js rename to assets/js/46c2ebc5.3deeab56.js index ac9d49a1c..0800bd644 100644 --- a/assets/js/46c2ebc5.407f7609.js +++ b/assets/js/46c2ebc5.3deeab56.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2143],{5680:(e,t,n)=>{n.d(t,{xA:()=>p,yg:()=>g});var r=n(6540);function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(l[n]=e[n]);return l}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}var c=r.createContext({}),d=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=d(e.components);return r.createElement(c.Provider,{value:t},e.children)},u="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},s=r.forwardRef((function(e,t){var n=e.components,l=e.mdxType,i=e.originalType,c=e.parentName,p=a(e,["components","mdxType","originalType","parentName"]),u=d(n),s=l,g=u["".concat(c,".").concat(s)]||u[s]||y[s]||i;return n?r.createElement(g,o(o({ref:t},p),{},{components:n})):r.createElement(g,o({ref:t},p))}));function g(e,t){var n=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var i=n.length,o=new Array(i);o[0]=s;var a={};for(var c in t)hasOwnProperty.call(t,c)&&(a[c]=t[c]);a.originalType=e,a[u]="string"==typeof e?e:l,o[1]=a;for(var d=2;d{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>y,frontMatter:()=>i,metadata:()=>a,toc:()=>d});var r=n(8168),l=(n(6540),n(5680));const i={},o=void 0,a={unversionedId:"study/encryption/\u5bf9\u79f0\u52a0\u5bc6-\u5206\u7ec4\u5bc6\u7801\u7684\u6a21\u5f0f",id:"study/encryption/\u5bf9\u79f0\u52a0\u5bc6-\u5206\u7ec4\u5bc6\u7801\u7684\u6a21\u5f0f",title:"\u5bf9\u79f0\u52a0\u5bc6-\u5206\u7ec4\u5bc6\u7801\u7684\u6a21\u5f0f",description:"DES\u30013DES \u548c AES \u90fd\u5c5e\u4e8e\u5206\u7ec4\u5bc6\u7801\uff0c\u5b83\u4eec\u53ea\u80fd\u52a0\u5bc6\u56fa\u5b9a\u957f\u5ea6\u7684\u660e\u6587\u3002\u5982\u679c\u9700\u8981\u52a0\u5bc6\u66f4\u957f\u7684\u660e\u6587\uff0c\u5c31\u9700\u8981\u5bf9\u5206\u7ec4\u5bc6\u7801\u8fdb\u884c\u8fed\u4ee3\uff0c\u800c\u5206\u7ec4\u5bc6\u7801\u7684\u8fed\u4ee3\u65b9\u6cd5\u79f0\u4e3a\u5206\u7ec4\u5bc6\u7801\u7684\u6a21\u5f0f\uff08Model\uff09\u3002\u7b80\u800c\u4e00\u53e5\u8bdd\uff1a\u5206\u7ec4\u5bc6\u7801\u7684\u6a21\u5f0f\uff0c\u5c31\u662f\u5206\u7ec4\u5bc6\u7801\u7684\u8fed\u4ee3\u65b9\u5f0f\u3002",source:"@site/docs/study/encryption/\u5bf9\u79f0\u52a0\u5bc6-\u5206\u7ec4\u5bc6\u7801\u7684\u6a21\u5f0f.md",sourceDirName:"study/encryption",slug:"/study/encryption/\u5bf9\u79f0\u52a0\u5bc6-\u5206\u7ec4\u5bc6\u7801\u7684\u6a21\u5f0f",permalink:"/docs/study/encryption/\u5bf9\u79f0\u52a0\u5bc6-\u5206\u7ec4\u5bc6\u7801\u7684\u6a21\u5f0f",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u5bc6\u7801\u54c8\u5e0c\u7b97\u6cd5",permalink:"/docs/study/encryption/\u5bc6\u7801\u54c8\u5e0c\u7b97\u6cd5\u603b\u7ed3"},next:{title:"\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3",permalink:"/docs/study/encryption/\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3"}},c={},d=[{value:"ECB \u6a21\u5f0f",id:"ecb-\u6a21\u5f0f",level:3},{value:"CBC \u6a21\u5f0f",id:"cbc-\u6a21\u5f0f",level:3},{value:"CFB \u6a21\u5f0f",id:"cfb-\u6a21\u5f0f",level:3},{value:"OFB \u6a21\u5f0f",id:"ofb-\u6a21\u5f0f",level:3},{value:"CTR \u6a21\u5f0f",id:"ctr-\u6a21\u5f0f",level:3},{value:"\u5206\u7ec4\u5bc6\u7801\u7684\u586b\u5145",id:"\u5206\u7ec4\u5bc6\u7801\u7684\u586b\u5145",level:2},{value:"No Padding",id:"no-padding",level:3},{value:"ANSI X9.23",id:"ansi-x923",level:3},{value:"ISO 10126",id:"iso-10126",level:3},{value:"PKCS#5 \u548c PKCS#7",id:"pkcs5-\u548c-pkcs7",level:3},{value:"ISO/IEC 7816-4",id:"isoiec-7816-4",level:3},{value:"Zero Padding",id:"zero-padding",level:3}],p={toc:d},u="wrapper";function y(e){let{components:t,...n}=e;return(0,l.yg)(u,(0,r.A)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,l.yg)("p",null,"DES\u30013DES \u548c AES \u90fd\u5c5e\u4e8e\u5206\u7ec4\u5bc6\u7801\uff0c\u5b83\u4eec\u53ea\u80fd\u52a0\u5bc6\u56fa\u5b9a\u957f\u5ea6\u7684\u660e\u6587\u3002\u5982\u679c\u9700\u8981\u52a0\u5bc6\u66f4\u957f\u7684\u660e\u6587\uff0c\u5c31\u9700\u8981\u5bf9\u5206\u7ec4\u5bc6\u7801\u8fdb\u884c\u8fed\u4ee3\uff0c\u800c\u5206\u7ec4\u5bc6\u7801\u7684\u8fed\u4ee3\u65b9\u6cd5\u79f0\u4e3a\u5206\u7ec4\u5bc6\u7801\u7684\u6a21\u5f0f\uff08Model\uff09\u3002\u7b80\u800c\u4e00\u53e5\u8bdd\uff1a\u5206\u7ec4\u5bc6\u7801\u7684\u6a21\u5f0f\uff0c\u5c31\u662f\u5206\u7ec4\u5bc6\u7801\u7684\u8fed\u4ee3\u65b9\u5f0f\u3002"),(0,l.yg)("p",null,"\u5206\u7ec4\u5bc6\u7801\u6709\u5f88\u591a\u79cd\u6a21\u5f0f\uff0c\u8fd9\u91cc\u4e3b\u8981\u4ecb\u7ecd\u4ee5\u4e0b\u51e0\u79cd\uff1aECB\u3001CBC\u3001CFB\u3001OFB\u3001CTR\u3002"),(0,l.yg)("h3",{id:"ecb-\u6a21\u5f0f"},"ECB \u6a21\u5f0f"),(0,l.yg)("p",null,"ECB\uff08Electronic CodeBook\uff09\u6a21\u5f0f\uff0c\u5373\u7535\u5b50\u5bc6\u7801\u672c\u6a21\u5f0f\u3002\u8be5\u6a21\u5f0f\u662f\u5c06\u660e\u6587\u5206\u7ec4\uff0c\u52a0\u5bc6\u540e\u76f4\u63a5\u6210\u4e3a\u5bc6\u6587\u5206\u7ec4\uff0c\u5206\u7ec4\u4e4b\u95f4\u6ca1\u6709\u5173\u7cfb\u3002"),(0,l.yg)("p",null,"ECB \u6a21\u5f0f\u662f\u6240\u6709\u6a21\u5f0f\u4e2d\u6700\u7b80\u5355\u7684\u4e00\u79cd\uff0c\u8be5\u6a21\u5f0f\u7684\u660e\u6587\u5206\u7ec4\u4e0e\u5bc6\u6587\u5206\u7ec4\u662f\u4e00\u4e00\u5bf9\u5e94\u7684\u5173\u7cfb\uff0c\u82e5\u660e\u6587\u5206\u7ec4\u76f8\u540c\uff0c\u5176\u5bc6\u6587\u5206\u7ec4\u4e5f\u4e00\u5b9a\u76f8\u540c\u3002\u56e0\u6b64\uff0cECB \u6a21\u5f0f\u4e5f\u662f\u6700\u4e0d\u5b89\u5168\u7684\u6a21\u5f0f\u3002"),(0,l.yg)("h3",{id:"cbc-\u6a21\u5f0f"},"CBC \u6a21\u5f0f"),(0,l.yg)("p",null,"CBC\uff08Cipher Block Chaining\uff09\u6a21\u5f0f\uff0c\u5373\u5bc6\u7801\u5206\u7ec4\u94fe\u63a5\u6a21\u5f0f\u3002\u8be5\u6a21\u5f0f\u9996\u5148\u5c06\u660e\u6587\u5206\u7ec4\u4e0e\u524d\u4e00\u4e2a\u5bc6\u6587\u5206\u7ec4\u8fdb\u884c XOR \u8fd0\u7b97\uff0c\u7136\u540e\u518d\u8fdb\u884c\u52a0\u5bc6\u3002\u53ea\u6709\u7b2c\u4e00\u4e2a\u660e\u6587\u5206\u7ec4\u7279\u6b8a\uff0c\u9700\u8981\u63d0\u524d\u4e3a\u5176\u751f\u6210\u4e00\u4e2a\u4e0e\u5206\u7ec4\u957f\u5ea6\u76f8\u540c\u7684\u6bd4\u7279\u5e8f\u5217\uff0c\u8fdb\u884c XOR \u8fd0\u7b97\uff0c\u8fd9\u4e2a\u6bd4\u7279\u5e8f\u5217\u79f0\u4e3a\u521d\u59cb\u5316\u5411\u91cf\uff08Initialization Vector\uff09\uff0c\u7b80\u79f0 IV\u3002"),(0,l.yg)("h3",{id:"cfb-\u6a21\u5f0f"},"CFB \u6a21\u5f0f"),(0,l.yg)("p",null,"CFB\uff08Cipher FeedBack\uff09\u6a21\u5f0f\uff0c\u5373\u5bc6\u6587\u53cd\u9988\u6a21\u5f0f\u3002\u8be5\u6a21\u5f0f\u9996\u5148\u5c06\u524d\u4e00\u4e2a\u5bc6\u6587\u5206\u7ec4\u8fdb\u884c\u52a0\u5bc6\uff0c\u518d\u4e0e\u5f53\u524d\u660e\u6587\u5206\u7ec4\u8fdb\u884c XOR \u8fd0\u7b97\uff0c\u6765\u751f\u6210\u5bc6\u6587\u5206\u7ec4\u3002\u540c\u6837 CFB \u6a21\u5f0f\u4e5f\u9700\u8981\u4e00\u4e2a IV\u3002"),(0,l.yg)("h3",{id:"ofb-\u6a21\u5f0f"},"OFB \u6a21\u5f0f"),(0,l.yg)("p",null,"OFB\uff08Output FeedBack\uff09\u6a21\u5f0f\uff0c\u5373\u8f93\u51fa\u53cd\u9988\u6a21\u5f0f\u3002\u8be5\u6a21\u5f0f\u4f1a\u4ea7\u751f\u4e00\u4e2a\u5bc6\u94a5\u6d41\uff0c\u5373\u5c06\u5bc6\u7801\u7b97\u6cd5\u7684\u524d\u4e00\u4e2a\u8f93\u51fa\u503c\uff0c\u505a\u4e3a\u5f53\u524d\u5bc6\u7801\u7b97\u6cd5\u7684\u8f93\u5165\u503c\u3002\u8be5\u8f93\u5165\u503c\u518d\u4e0e\u660e\u6587\u5206\u7ec4\u8fdb\u884c XOR \u8fd0\u884c\uff0c\u8ba1\u7b97\u5f97\u51fa\u5bc6\u6587\u5206\u7ec4\u3002\u8be5\u6a21\u5f0f\u9700\u8981\u4e00\u4e2a IV\uff0c\u8fdb\u884c\u52a0\u5bc6\u540e\u505a\u4e3a\u7b2c\u4e00\u4e2a\u5206\u7ec4\u7684\u8f93\u5165\u3002"),(0,l.yg)("h3",{id:"ctr-\u6a21\u5f0f"},"CTR \u6a21\u5f0f"),(0,l.yg)("p",null,"CTR\uff08CounTeR\uff09\u6a21\u5f0f\uff0c\u5373\u8ba1\u6570\u5668\u6a21\u5f0f\u3002\u8be5\u6a21\u5f0f\u4e5f\u4f1a\u4ea7\u751f\u4e00\u4e2a\u5bc6\u94a5\u6d41\uff0c\u5b83\u901a\u8fc7\u9012\u589e\u4e00\u4e2a\u8ba1\u6570\u5668\u6765\u4ea7\u751f\u8fde\u7eed\u7684\u5bc6\u94a5\u6d41\u3002\u5bf9\u8be5\u8ba1\u6570\u5668\u8fdb\u884c\u52a0\u5bc6\uff0c\u518d\u4e0e\u660e\u6587\u5206\u7ec4\u8fdb\u884c XOR \u8fd0\u7b97\uff0c\u8ba1\u7b97\u5f97\u51fa\u5bc6\u6587\u5206\u7ec4\u3002"),(0,l.yg)("h2",{id:"\u5206\u7ec4\u5bc6\u7801\u7684\u586b\u5145"},"\u5206\u7ec4\u5bc6\u7801\u7684\u586b\u5145"),(0,l.yg)("p",null,"\u5728\u5206\u7ec4\u5bc6\u7801\u4e2d\uff0c\u5f53\u6570\u636e\u957f\u5ea6\u4e0d\u7b26\u5408\u5206\u7ec4\u957f\u5ea6\u65f6\uff0c\u9700\u8981\u6309\u4e00\u5b9a\u7684\u65b9\u5f0f\uff0c\u5c06\u5c3e\u90e8\u660e\u6587\u5206\u7ec4\u8fdb\u884c\u586b\u5145\uff0c\u8fd9\u79cd\u5c06\u5c3e\u90e8\u5206\u7ec4\u6570\u636e\u586b\u6ee1\u7684\u65b9\u6cd5\u79f0\u4e3a\u586b\u5145\uff08Padding)\u3002"),(0,l.yg)("h3",{id:"no-padding"},"No Padding"),(0,l.yg)("p",null,"\u5373\u4e0d\u586b\u5145\uff0c\u8981\u6c42\u660e\u6587\u7684\u957f\u5ea6\uff0c\u5fc5\u987b\u662f\u52a0\u5bc6\u7b97\u6cd5\u5206\u7ec4\u957f\u5ea6\u7684\u6574\u6570\u500d\u3002"),(0,l.yg)("h3",{id:"ansi-x923"},"ANSI X9.23"),(0,l.yg)("p",null,"\u5728\u586b\u5145\u5b57\u8282\u5e8f\u5217\u4e2d\uff0c\u6700\u540e\u4e00\u4e2a\u5b57\u8282\u586b\u5145\u4e3a\u9700\u8981\u586b\u5145\u7684\u5b57\u8282\u957f\u5ea6\uff0c\u5176\u4f59\u5b57\u8282\u586b\u5145 0\u3002"),(0,l.yg)("h3",{id:"iso-10126"},"ISO 10126"),(0,l.yg)("p",null,"\u5728\u586b\u5145\u5b57\u8282\u5e8f\u5217\u4e2d\uff0c\u6700\u540e\u4e00\u4e2a\u5b57\u8282\u586b\u5145\u4e3a\u9700\u8981\u586b\u5145\u7684\u5b57\u8282\u957f\u5ea6\uff0c\u5176\u4f59\u5b57\u8282\u586b\u5145\u968f\u673a\u6570\u3002"),(0,l.yg)("h3",{id:"pkcs5-\u548c-pkcs7"},"PKCS#5 \u548c PKCS#7"),(0,l.yg)("p",null,"\u5728\u586b\u5145\u5b57\u8282\u5e8f\u5217\u4e2d\uff0c\u6bcf\u4e2a\u5b57\u8282\u586b\u5145\u4e3a\u9700\u8981\u586b\u5145\u7684\u5b57\u8282\u957f\u5ea6\u3002"),(0,l.yg)("h3",{id:"isoiec-7816-4"},"ISO/IEC 7816-4"),(0,l.yg)("p",null,"\u5728\u586b\u5145\u5b57\u8282\u5e8f\u5217\u4e2d\uff0c\u7b2c\u4e00\u4e2a\u5b57\u8282\u586b\u5145\u56fa\u5b9a\u503c 80\uff0c\u5176\u4f59\u5b57\u8282\u586b\u5145 0\u3002\u82e5\u53ea\u9700\u586b\u5145\u4e00\u4e2a\u5b57\u8282\uff0c\u5219\u76f4\u63a5\u586b\u5145 80\u3002"),(0,l.yg)("h3",{id:"zero-padding"},"Zero Padding"),(0,l.yg)("p",null,"\u5728\u586b\u5145\u5b57\u8282\u5e8f\u5217\u4e2d\uff0c\u6bcf\u4e2a\u5b57\u8282\u586b\u5145\u4e3a 0\u3002"))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2143],{5680:(e,t,n)=>{n.d(t,{xA:()=>p,yg:()=>g});var r=n(6540);function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(l[n]=e[n]);return l}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}var c=r.createContext({}),d=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=d(e.components);return r.createElement(c.Provider,{value:t},e.children)},u="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},s=r.forwardRef((function(e,t){var n=e.components,l=e.mdxType,i=e.originalType,c=e.parentName,p=a(e,["components","mdxType","originalType","parentName"]),u=d(n),s=l,g=u["".concat(c,".").concat(s)]||u[s]||y[s]||i;return n?r.createElement(g,o(o({ref:t},p),{},{components:n})):r.createElement(g,o({ref:t},p))}));function g(e,t){var n=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var i=n.length,o=new Array(i);o[0]=s;var a={};for(var c in t)hasOwnProperty.call(t,c)&&(a[c]=t[c]);a.originalType=e,a[u]="string"==typeof e?e:l,o[1]=a;for(var d=2;d{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>y,frontMatter:()=>i,metadata:()=>a,toc:()=>d});var r=n(8168),l=(n(6540),n(5680));const i={},o=void 0,a={unversionedId:"study/encryption/\u5bf9\u79f0\u52a0\u5bc6-\u5206\u7ec4\u5bc6\u7801\u7684\u6a21\u5f0f",id:"study/encryption/\u5bf9\u79f0\u52a0\u5bc6-\u5206\u7ec4\u5bc6\u7801\u7684\u6a21\u5f0f",title:"\u5bf9\u79f0\u52a0\u5bc6-\u5206\u7ec4\u5bc6\u7801\u7684\u6a21\u5f0f",description:"DES\u30013DES \u548c AES \u90fd\u5c5e\u4e8e\u5206\u7ec4\u5bc6\u7801\uff0c\u5b83\u4eec\u53ea\u80fd\u52a0\u5bc6\u56fa\u5b9a\u957f\u5ea6\u7684\u660e\u6587\u3002\u5982\u679c\u9700\u8981\u52a0\u5bc6\u66f4\u957f\u7684\u660e\u6587\uff0c\u5c31\u9700\u8981\u5bf9\u5206\u7ec4\u5bc6\u7801\u8fdb\u884c\u8fed\u4ee3\uff0c\u800c\u5206\u7ec4\u5bc6\u7801\u7684\u8fed\u4ee3\u65b9\u6cd5\u79f0\u4e3a\u5206\u7ec4\u5bc6\u7801\u7684\u6a21\u5f0f\uff08Model\uff09\u3002\u7b80\u800c\u4e00\u53e5\u8bdd\uff1a\u5206\u7ec4\u5bc6\u7801\u7684\u6a21\u5f0f\uff0c\u5c31\u662f\u5206\u7ec4\u5bc6\u7801\u7684\u8fed\u4ee3\u65b9\u5f0f\u3002",source:"@site/docs/study/encryption/\u5bf9\u79f0\u52a0\u5bc6-\u5206\u7ec4\u5bc6\u7801\u7684\u6a21\u5f0f.md",sourceDirName:"study/encryption",slug:"/study/encryption/\u5bf9\u79f0\u52a0\u5bc6-\u5206\u7ec4\u5bc6\u7801\u7684\u6a21\u5f0f",permalink:"/docs/study/encryption/\u5bf9\u79f0\u52a0\u5bc6-\u5206\u7ec4\u5bc6\u7801\u7684\u6a21\u5f0f",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u5bc6\u7801\u54c8\u5e0c\u7b97\u6cd5",permalink:"/docs/study/encryption/\u5bc6\u7801\u54c8\u5e0c\u7b97\u6cd5\u603b\u7ed3"},next:{title:"\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3",permalink:"/docs/study/encryption/\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3"}},c={},d=[{value:"ECB \u6a21\u5f0f",id:"ecb-\u6a21\u5f0f",level:3},{value:"CBC \u6a21\u5f0f",id:"cbc-\u6a21\u5f0f",level:3},{value:"CFB \u6a21\u5f0f",id:"cfb-\u6a21\u5f0f",level:3},{value:"OFB \u6a21\u5f0f",id:"ofb-\u6a21\u5f0f",level:3},{value:"CTR \u6a21\u5f0f",id:"ctr-\u6a21\u5f0f",level:3},{value:"\u5206\u7ec4\u5bc6\u7801\u7684\u586b\u5145",id:"\u5206\u7ec4\u5bc6\u7801\u7684\u586b\u5145",level:2},{value:"No Padding",id:"no-padding",level:3},{value:"ANSI X9.23",id:"ansi-x923",level:3},{value:"ISO 10126",id:"iso-10126",level:3},{value:"PKCS#5 \u548c PKCS#7",id:"pkcs5-\u548c-pkcs7",level:3},{value:"ISO/IEC 7816-4",id:"isoiec-7816-4",level:3},{value:"Zero Padding",id:"zero-padding",level:3}],p={toc:d},u="wrapper";function y(e){let{components:t,...n}=e;return(0,l.yg)(u,(0,r.A)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,l.yg)("p",null,"DES\u30013DES \u548c AES \u90fd\u5c5e\u4e8e\u5206\u7ec4\u5bc6\u7801\uff0c\u5b83\u4eec\u53ea\u80fd\u52a0\u5bc6\u56fa\u5b9a\u957f\u5ea6\u7684\u660e\u6587\u3002\u5982\u679c\u9700\u8981\u52a0\u5bc6\u66f4\u957f\u7684\u660e\u6587\uff0c\u5c31\u9700\u8981\u5bf9\u5206\u7ec4\u5bc6\u7801\u8fdb\u884c\u8fed\u4ee3\uff0c\u800c\u5206\u7ec4\u5bc6\u7801\u7684\u8fed\u4ee3\u65b9\u6cd5\u79f0\u4e3a\u5206\u7ec4\u5bc6\u7801\u7684\u6a21\u5f0f\uff08Model\uff09\u3002\u7b80\u800c\u4e00\u53e5\u8bdd\uff1a\u5206\u7ec4\u5bc6\u7801\u7684\u6a21\u5f0f\uff0c\u5c31\u662f\u5206\u7ec4\u5bc6\u7801\u7684\u8fed\u4ee3\u65b9\u5f0f\u3002"),(0,l.yg)("p",null,"\u5206\u7ec4\u5bc6\u7801\u6709\u5f88\u591a\u79cd\u6a21\u5f0f\uff0c\u8fd9\u91cc\u4e3b\u8981\u4ecb\u7ecd\u4ee5\u4e0b\u51e0\u79cd\uff1aECB\u3001CBC\u3001CFB\u3001OFB\u3001CTR\u3002"),(0,l.yg)("h3",{id:"ecb-\u6a21\u5f0f"},"ECB \u6a21\u5f0f"),(0,l.yg)("p",null,"ECB\uff08Electronic CodeBook\uff09\u6a21\u5f0f\uff0c\u5373\u7535\u5b50\u5bc6\u7801\u672c\u6a21\u5f0f\u3002\u8be5\u6a21\u5f0f\u662f\u5c06\u660e\u6587\u5206\u7ec4\uff0c\u52a0\u5bc6\u540e\u76f4\u63a5\u6210\u4e3a\u5bc6\u6587\u5206\u7ec4\uff0c\u5206\u7ec4\u4e4b\u95f4\u6ca1\u6709\u5173\u7cfb\u3002"),(0,l.yg)("p",null,"ECB \u6a21\u5f0f\u662f\u6240\u6709\u6a21\u5f0f\u4e2d\u6700\u7b80\u5355\u7684\u4e00\u79cd\uff0c\u8be5\u6a21\u5f0f\u7684\u660e\u6587\u5206\u7ec4\u4e0e\u5bc6\u6587\u5206\u7ec4\u662f\u4e00\u4e00\u5bf9\u5e94\u7684\u5173\u7cfb\uff0c\u82e5\u660e\u6587\u5206\u7ec4\u76f8\u540c\uff0c\u5176\u5bc6\u6587\u5206\u7ec4\u4e5f\u4e00\u5b9a\u76f8\u540c\u3002\u56e0\u6b64\uff0cECB \u6a21\u5f0f\u4e5f\u662f\u6700\u4e0d\u5b89\u5168\u7684\u6a21\u5f0f\u3002"),(0,l.yg)("h3",{id:"cbc-\u6a21\u5f0f"},"CBC \u6a21\u5f0f"),(0,l.yg)("p",null,"CBC\uff08Cipher Block Chaining\uff09\u6a21\u5f0f\uff0c\u5373\u5bc6\u7801\u5206\u7ec4\u94fe\u63a5\u6a21\u5f0f\u3002\u8be5\u6a21\u5f0f\u9996\u5148\u5c06\u660e\u6587\u5206\u7ec4\u4e0e\u524d\u4e00\u4e2a\u5bc6\u6587\u5206\u7ec4\u8fdb\u884c XOR \u8fd0\u7b97\uff0c\u7136\u540e\u518d\u8fdb\u884c\u52a0\u5bc6\u3002\u53ea\u6709\u7b2c\u4e00\u4e2a\u660e\u6587\u5206\u7ec4\u7279\u6b8a\uff0c\u9700\u8981\u63d0\u524d\u4e3a\u5176\u751f\u6210\u4e00\u4e2a\u4e0e\u5206\u7ec4\u957f\u5ea6\u76f8\u540c\u7684\u6bd4\u7279\u5e8f\u5217\uff0c\u8fdb\u884c XOR \u8fd0\u7b97\uff0c\u8fd9\u4e2a\u6bd4\u7279\u5e8f\u5217\u79f0\u4e3a\u521d\u59cb\u5316\u5411\u91cf\uff08Initialization Vector\uff09\uff0c\u7b80\u79f0 IV\u3002"),(0,l.yg)("h3",{id:"cfb-\u6a21\u5f0f"},"CFB \u6a21\u5f0f"),(0,l.yg)("p",null,"CFB\uff08Cipher FeedBack\uff09\u6a21\u5f0f\uff0c\u5373\u5bc6\u6587\u53cd\u9988\u6a21\u5f0f\u3002\u8be5\u6a21\u5f0f\u9996\u5148\u5c06\u524d\u4e00\u4e2a\u5bc6\u6587\u5206\u7ec4\u8fdb\u884c\u52a0\u5bc6\uff0c\u518d\u4e0e\u5f53\u524d\u660e\u6587\u5206\u7ec4\u8fdb\u884c XOR \u8fd0\u7b97\uff0c\u6765\u751f\u6210\u5bc6\u6587\u5206\u7ec4\u3002\u540c\u6837 CFB \u6a21\u5f0f\u4e5f\u9700\u8981\u4e00\u4e2a IV\u3002"),(0,l.yg)("h3",{id:"ofb-\u6a21\u5f0f"},"OFB \u6a21\u5f0f"),(0,l.yg)("p",null,"OFB\uff08Output FeedBack\uff09\u6a21\u5f0f\uff0c\u5373\u8f93\u51fa\u53cd\u9988\u6a21\u5f0f\u3002\u8be5\u6a21\u5f0f\u4f1a\u4ea7\u751f\u4e00\u4e2a\u5bc6\u94a5\u6d41\uff0c\u5373\u5c06\u5bc6\u7801\u7b97\u6cd5\u7684\u524d\u4e00\u4e2a\u8f93\u51fa\u503c\uff0c\u505a\u4e3a\u5f53\u524d\u5bc6\u7801\u7b97\u6cd5\u7684\u8f93\u5165\u503c\u3002\u8be5\u8f93\u5165\u503c\u518d\u4e0e\u660e\u6587\u5206\u7ec4\u8fdb\u884c XOR \u8fd0\u884c\uff0c\u8ba1\u7b97\u5f97\u51fa\u5bc6\u6587\u5206\u7ec4\u3002\u8be5\u6a21\u5f0f\u9700\u8981\u4e00\u4e2a IV\uff0c\u8fdb\u884c\u52a0\u5bc6\u540e\u505a\u4e3a\u7b2c\u4e00\u4e2a\u5206\u7ec4\u7684\u8f93\u5165\u3002"),(0,l.yg)("h3",{id:"ctr-\u6a21\u5f0f"},"CTR \u6a21\u5f0f"),(0,l.yg)("p",null,"CTR\uff08CounTeR\uff09\u6a21\u5f0f\uff0c\u5373\u8ba1\u6570\u5668\u6a21\u5f0f\u3002\u8be5\u6a21\u5f0f\u4e5f\u4f1a\u4ea7\u751f\u4e00\u4e2a\u5bc6\u94a5\u6d41\uff0c\u5b83\u901a\u8fc7\u9012\u589e\u4e00\u4e2a\u8ba1\u6570\u5668\u6765\u4ea7\u751f\u8fde\u7eed\u7684\u5bc6\u94a5\u6d41\u3002\u5bf9\u8be5\u8ba1\u6570\u5668\u8fdb\u884c\u52a0\u5bc6\uff0c\u518d\u4e0e\u660e\u6587\u5206\u7ec4\u8fdb\u884c XOR \u8fd0\u7b97\uff0c\u8ba1\u7b97\u5f97\u51fa\u5bc6\u6587\u5206\u7ec4\u3002"),(0,l.yg)("h2",{id:"\u5206\u7ec4\u5bc6\u7801\u7684\u586b\u5145"},"\u5206\u7ec4\u5bc6\u7801\u7684\u586b\u5145"),(0,l.yg)("p",null,"\u5728\u5206\u7ec4\u5bc6\u7801\u4e2d\uff0c\u5f53\u6570\u636e\u957f\u5ea6\u4e0d\u7b26\u5408\u5206\u7ec4\u957f\u5ea6\u65f6\uff0c\u9700\u8981\u6309\u4e00\u5b9a\u7684\u65b9\u5f0f\uff0c\u5c06\u5c3e\u90e8\u660e\u6587\u5206\u7ec4\u8fdb\u884c\u586b\u5145\uff0c\u8fd9\u79cd\u5c06\u5c3e\u90e8\u5206\u7ec4\u6570\u636e\u586b\u6ee1\u7684\u65b9\u6cd5\u79f0\u4e3a\u586b\u5145\uff08Padding)\u3002"),(0,l.yg)("h3",{id:"no-padding"},"No Padding"),(0,l.yg)("p",null,"\u5373\u4e0d\u586b\u5145\uff0c\u8981\u6c42\u660e\u6587\u7684\u957f\u5ea6\uff0c\u5fc5\u987b\u662f\u52a0\u5bc6\u7b97\u6cd5\u5206\u7ec4\u957f\u5ea6\u7684\u6574\u6570\u500d\u3002"),(0,l.yg)("h3",{id:"ansi-x923"},"ANSI X9.23"),(0,l.yg)("p",null,"\u5728\u586b\u5145\u5b57\u8282\u5e8f\u5217\u4e2d\uff0c\u6700\u540e\u4e00\u4e2a\u5b57\u8282\u586b\u5145\u4e3a\u9700\u8981\u586b\u5145\u7684\u5b57\u8282\u957f\u5ea6\uff0c\u5176\u4f59\u5b57\u8282\u586b\u5145 0\u3002"),(0,l.yg)("h3",{id:"iso-10126"},"ISO 10126"),(0,l.yg)("p",null,"\u5728\u586b\u5145\u5b57\u8282\u5e8f\u5217\u4e2d\uff0c\u6700\u540e\u4e00\u4e2a\u5b57\u8282\u586b\u5145\u4e3a\u9700\u8981\u586b\u5145\u7684\u5b57\u8282\u957f\u5ea6\uff0c\u5176\u4f59\u5b57\u8282\u586b\u5145\u968f\u673a\u6570\u3002"),(0,l.yg)("h3",{id:"pkcs5-\u548c-pkcs7"},"PKCS#5 \u548c PKCS#7"),(0,l.yg)("p",null,"\u5728\u586b\u5145\u5b57\u8282\u5e8f\u5217\u4e2d\uff0c\u6bcf\u4e2a\u5b57\u8282\u586b\u5145\u4e3a\u9700\u8981\u586b\u5145\u7684\u5b57\u8282\u957f\u5ea6\u3002"),(0,l.yg)("h3",{id:"isoiec-7816-4"},"ISO/IEC 7816-4"),(0,l.yg)("p",null,"\u5728\u586b\u5145\u5b57\u8282\u5e8f\u5217\u4e2d\uff0c\u7b2c\u4e00\u4e2a\u5b57\u8282\u586b\u5145\u56fa\u5b9a\u503c 80\uff0c\u5176\u4f59\u5b57\u8282\u586b\u5145 0\u3002\u82e5\u53ea\u9700\u586b\u5145\u4e00\u4e2a\u5b57\u8282\uff0c\u5219\u76f4\u63a5\u586b\u5145 80\u3002"),(0,l.yg)("h3",{id:"zero-padding"},"Zero Padding"),(0,l.yg)("p",null,"\u5728\u586b\u5145\u5b57\u8282\u5e8f\u5217\u4e2d\uff0c\u6bcf\u4e2a\u5b57\u8282\u586b\u5145\u4e3a 0\u3002"))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/47d775f0.36ef99b3.js b/assets/js/47d775f0.8d8f1c71.js similarity index 99% rename from assets/js/47d775f0.36ef99b3.js rename to assets/js/47d775f0.8d8f1c71.js index 892567b37..c125c9ef6 100644 --- a/assets/js/47d775f0.36ef99b3.js +++ b/assets/js/47d775f0.8d8f1c71.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6093],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),l=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,c=e.originalType,p=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),s=l(r),y=o,f=s["".concat(p,".").concat(y)]||s[y]||d[y]||c;return r?n.createElement(f,a(a({ref:t},u),{},{components:r})):n.createElement(f,a({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var c=r.length,a=new Array(c);a[0]=y;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:o,a[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>a,default:()=>d,frontMatter:()=>c,metadata:()=>i,toc:()=>l});var n=r(8168),o=(r(6540),r(5680));const c={},a="\u7b49\u4fdd\u548c\u5bc6\u8bc4",i={unversionedId:"study/encryption/\u7b49\u4fdd_\u5bc6\u8bc4",id:"study/encryption/\u7b49\u4fdd_\u5bc6\u8bc4",title:"\u7b49\u4fdd\u548c\u5bc6\u8bc4",description:"\u201c\u7b49\u4fdd\u201d\u5373\u7f51\u7edc\u5b89\u5168\u7b49\u7ea7\u4fdd\u62a4\uff0c\u65e8\u5728\u901a\u8fc7\u4e0d\u540c\u5b89\u5168\u7b49\u7ea7\u7684\u7ba1\u7406\u548c\u6280\u672f\u63aa\u65bd\uff0c\u786e\u4fdd\u4fe1\u606f\u7cfb\u7edf\u7684\u5b89\u5168\u7a33\u5b9a\u8fd0\u884c\u3002\u6211\u56fd\u4e8e2017\u5e74\u9881\u5e03\u7684\u300a\u7f51\u7edc\u5b89\u5168\u6cd5\u300b\u4e2d\u7b2c\u4e8c\u5341\u4e00\u6761\u89c4\u5b9a\u201c\u56fd\u5bb6\u5b9e\u884c\u7f51\u7edc\u5b89\u5168\u7b49\u7ea7\u4fdd\u62a4\u5236\u5ea6\u201d\u3002\u6cd5\u5f8b\u8981\u6c42\u7f51\u7edc\u8fd0\u8425\u8005\u9700\u6309\u7167\u7f51\u7edc\u5b89\u5168\u7b49\u7ea7\u4fdd\u62a4\u5236\u5ea6\u8981\u6c42\uff0c\u5c65\u884c\u5236\u5b9a\u5b89\u5168\u7ba1\u7406\u5236\u5ea6\u3001\u91c7\u53d6\u9632\u8303\u6280\u672f\u63aa\u65bd\u3001\u76d1\u6d4b\u8bb0\u5f55\u7f51\u7edc\u72b6\u6001\u3001\u4fdd\u62a4\u6570\u636e\u5b89\u5168\u7b49\u591a\u9879\u4e49\u52a1\uff0c\u786e\u4fdd\u7f51\u7edc\u5b89\u5168\u7a33\u5b9a\u3002",source:"@site/docs/study/encryption/\u7b49\u4fdd_\u5bc6\u8bc4.md",sourceDirName:"study/encryption",slug:"/study/encryption/\u7b49\u4fdd_\u5bc6\u8bc4",permalink:"/docs/study/encryption/\u7b49\u4fdd_\u5bc6\u8bc4",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u6d88\u606f\u6458\u8981\u7b97\u6cd5\u603b\u7ed3",permalink:"/docs/study/encryption/\u6d88\u606f\u6458\u8981\u7b97\u6cd5\u603b\u7ed3"},next:{title:"\u884c\u4e1a\u5206\u6790",permalink:"/docs/study/encryption/\u884c\u4e1a\u5206\u6790"}},p={},l=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],u={toc:l},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u7b49\u4fdd\u548c\u5bc6\u8bc4"},"\u7b49\u4fdd\u548c\u5bc6\u8bc4"),(0,o.yg)("p",null,"\u201c\u7b49\u4fdd\u201d\u5373\u7f51\u7edc\u5b89\u5168\u7b49\u7ea7\u4fdd\u62a4\uff0c\u65e8\u5728\u901a\u8fc7\u4e0d\u540c\u5b89\u5168\u7b49\u7ea7\u7684\u7ba1\u7406\u548c\u6280\u672f\u63aa\u65bd\uff0c\u786e\u4fdd\u4fe1\u606f\u7cfb\u7edf\u7684\u5b89\u5168\u7a33\u5b9a\u8fd0\u884c\u3002\u6211\u56fd\u4e8e2017\u5e74\u9881\u5e03\u7684\u300a\u7f51\u7edc\u5b89\u5168\u6cd5\u300b\u4e2d\u7b2c\u4e8c\u5341\u4e00\u6761\u89c4\u5b9a\u201c\u56fd\u5bb6\u5b9e\u884c\u7f51\u7edc\u5b89\u5168\u7b49\u7ea7\u4fdd\u62a4\u5236\u5ea6\u201d\u3002\u6cd5\u5f8b\u8981\u6c42\u7f51\u7edc\u8fd0\u8425\u8005\u9700\u6309\u7167\u7f51\u7edc\u5b89\u5168\u7b49\u7ea7\u4fdd\u62a4\u5236\u5ea6\u8981\u6c42\uff0c\u5c65\u884c\u5236\u5b9a\u5b89\u5168\u7ba1\u7406\u5236\u5ea6\u3001\u91c7\u53d6\u9632\u8303\u6280\u672f\u63aa\u65bd\u3001\u76d1\u6d4b\u8bb0\u5f55\u7f51\u7edc\u72b6\u6001\u3001\u4fdd\u62a4\u6570\u636e\u5b89\u5168\u7b49\u591a\u9879\u4e49\u52a1\uff0c\u786e\u4fdd\u7f51\u7edc\u5b89\u5168\u7a33\u5b9a\u3002"),(0,o.yg)("p",null,"\u201c\u5bc6\u8bc4\u201d\u5373\u5546\u7528\u5bc6\u7801\u5e94\u7528\u5b89\u5168\u6027\u8bc4\u4f30\uff0c\u662f\u5bf9\u7f51\u7edc\u4fe1\u606f\u7cfb\u7edf\u4e2d\u6240\u4f7f\u7528\u7684\u5546\u7528\u5bc6\u7801\u4ea7\u54c1\u548c\u5e94\u7528\u8fdb\u884c\u7684\u5b89\u5168\u6027\u8bc4\u4f30\u3002\u300a\u5bc6\u7801\u6cd5\u300b\u4e8e2020\u5e74\u5f00\u59cb\u5b9e\u65bd\uff0c\u5176\u4e2d\u7b2c\u4e8c\u5341\u4e03\u6761\u8981\u6c42\u5173\u952e\u4fe1\u606f\u57fa\u7840\u8bbe\u65bd\u7684\u8fd0\u8425\u8005\u9700\u4f9d\u6cd5\u4f7f\u7528\u5546\u7528\u5bc6\u7801\u8fdb\u884c\u4fdd\u62a4\uff0c\u5e76\u81ea\u884c\u6216\u59d4\u6258\u4e13\u4e1a\u673a\u6784\u5f00\u5c55\u5b89\u5168\u6027\u8bc4\u4f30\uff0c\u786e\u4fdd\u4e0e\u5176\u4ed6\u5b89\u5168\u68c0\u6d4b\u8bc4\u4f30\u5236\u5ea6\u76f8\u8854\u63a5\uff0c\u907f\u514d\u91cd\u590d\u5de5\u4f5c\u3002"),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://mp.weixin.qq.com/s?__biz=MzU0Mzk0NDQyOA==&mid=2247515893&idx=1&sn=088c3013acddde2d3ab6e351bb92e1ed&chksm=fb014576cc76cc60c06d893c53fdb30b089aff0f9dd2c60ccca06333596131c024cbd862d0be&scene=27"},"\u4e00\u6587get\u7b49\u4fdd\u6d4b\u8bc4\u4e0e\u5bc6\u8bc4\u7684\u5dee\u5f02"))))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6093],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),l=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,c=e.originalType,p=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),s=l(r),y=o,f=s["".concat(p,".").concat(y)]||s[y]||d[y]||c;return r?n.createElement(f,a(a({ref:t},u),{},{components:r})):n.createElement(f,a({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var c=r.length,a=new Array(c);a[0]=y;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:o,a[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>a,default:()=>d,frontMatter:()=>c,metadata:()=>i,toc:()=>l});var n=r(8168),o=(r(6540),r(5680));const c={},a="\u7b49\u4fdd\u548c\u5bc6\u8bc4",i={unversionedId:"study/encryption/\u7b49\u4fdd_\u5bc6\u8bc4",id:"study/encryption/\u7b49\u4fdd_\u5bc6\u8bc4",title:"\u7b49\u4fdd\u548c\u5bc6\u8bc4",description:"\u201c\u7b49\u4fdd\u201d\u5373\u7f51\u7edc\u5b89\u5168\u7b49\u7ea7\u4fdd\u62a4\uff0c\u65e8\u5728\u901a\u8fc7\u4e0d\u540c\u5b89\u5168\u7b49\u7ea7\u7684\u7ba1\u7406\u548c\u6280\u672f\u63aa\u65bd\uff0c\u786e\u4fdd\u4fe1\u606f\u7cfb\u7edf\u7684\u5b89\u5168\u7a33\u5b9a\u8fd0\u884c\u3002\u6211\u56fd\u4e8e2017\u5e74\u9881\u5e03\u7684\u300a\u7f51\u7edc\u5b89\u5168\u6cd5\u300b\u4e2d\u7b2c\u4e8c\u5341\u4e00\u6761\u89c4\u5b9a\u201c\u56fd\u5bb6\u5b9e\u884c\u7f51\u7edc\u5b89\u5168\u7b49\u7ea7\u4fdd\u62a4\u5236\u5ea6\u201d\u3002\u6cd5\u5f8b\u8981\u6c42\u7f51\u7edc\u8fd0\u8425\u8005\u9700\u6309\u7167\u7f51\u7edc\u5b89\u5168\u7b49\u7ea7\u4fdd\u62a4\u5236\u5ea6\u8981\u6c42\uff0c\u5c65\u884c\u5236\u5b9a\u5b89\u5168\u7ba1\u7406\u5236\u5ea6\u3001\u91c7\u53d6\u9632\u8303\u6280\u672f\u63aa\u65bd\u3001\u76d1\u6d4b\u8bb0\u5f55\u7f51\u7edc\u72b6\u6001\u3001\u4fdd\u62a4\u6570\u636e\u5b89\u5168\u7b49\u591a\u9879\u4e49\u52a1\uff0c\u786e\u4fdd\u7f51\u7edc\u5b89\u5168\u7a33\u5b9a\u3002",source:"@site/docs/study/encryption/\u7b49\u4fdd_\u5bc6\u8bc4.md",sourceDirName:"study/encryption",slug:"/study/encryption/\u7b49\u4fdd_\u5bc6\u8bc4",permalink:"/docs/study/encryption/\u7b49\u4fdd_\u5bc6\u8bc4",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u6d88\u606f\u6458\u8981\u7b97\u6cd5\u603b\u7ed3",permalink:"/docs/study/encryption/\u6d88\u606f\u6458\u8981\u7b97\u6cd5\u603b\u7ed3"},next:{title:"\u884c\u4e1a\u5206\u6790",permalink:"/docs/study/encryption/\u884c\u4e1a\u5206\u6790"}},p={},l=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],u={toc:l},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u7b49\u4fdd\u548c\u5bc6\u8bc4"},"\u7b49\u4fdd\u548c\u5bc6\u8bc4"),(0,o.yg)("p",null,"\u201c\u7b49\u4fdd\u201d\u5373\u7f51\u7edc\u5b89\u5168\u7b49\u7ea7\u4fdd\u62a4\uff0c\u65e8\u5728\u901a\u8fc7\u4e0d\u540c\u5b89\u5168\u7b49\u7ea7\u7684\u7ba1\u7406\u548c\u6280\u672f\u63aa\u65bd\uff0c\u786e\u4fdd\u4fe1\u606f\u7cfb\u7edf\u7684\u5b89\u5168\u7a33\u5b9a\u8fd0\u884c\u3002\u6211\u56fd\u4e8e2017\u5e74\u9881\u5e03\u7684\u300a\u7f51\u7edc\u5b89\u5168\u6cd5\u300b\u4e2d\u7b2c\u4e8c\u5341\u4e00\u6761\u89c4\u5b9a\u201c\u56fd\u5bb6\u5b9e\u884c\u7f51\u7edc\u5b89\u5168\u7b49\u7ea7\u4fdd\u62a4\u5236\u5ea6\u201d\u3002\u6cd5\u5f8b\u8981\u6c42\u7f51\u7edc\u8fd0\u8425\u8005\u9700\u6309\u7167\u7f51\u7edc\u5b89\u5168\u7b49\u7ea7\u4fdd\u62a4\u5236\u5ea6\u8981\u6c42\uff0c\u5c65\u884c\u5236\u5b9a\u5b89\u5168\u7ba1\u7406\u5236\u5ea6\u3001\u91c7\u53d6\u9632\u8303\u6280\u672f\u63aa\u65bd\u3001\u76d1\u6d4b\u8bb0\u5f55\u7f51\u7edc\u72b6\u6001\u3001\u4fdd\u62a4\u6570\u636e\u5b89\u5168\u7b49\u591a\u9879\u4e49\u52a1\uff0c\u786e\u4fdd\u7f51\u7edc\u5b89\u5168\u7a33\u5b9a\u3002"),(0,o.yg)("p",null,"\u201c\u5bc6\u8bc4\u201d\u5373\u5546\u7528\u5bc6\u7801\u5e94\u7528\u5b89\u5168\u6027\u8bc4\u4f30\uff0c\u662f\u5bf9\u7f51\u7edc\u4fe1\u606f\u7cfb\u7edf\u4e2d\u6240\u4f7f\u7528\u7684\u5546\u7528\u5bc6\u7801\u4ea7\u54c1\u548c\u5e94\u7528\u8fdb\u884c\u7684\u5b89\u5168\u6027\u8bc4\u4f30\u3002\u300a\u5bc6\u7801\u6cd5\u300b\u4e8e2020\u5e74\u5f00\u59cb\u5b9e\u65bd\uff0c\u5176\u4e2d\u7b2c\u4e8c\u5341\u4e03\u6761\u8981\u6c42\u5173\u952e\u4fe1\u606f\u57fa\u7840\u8bbe\u65bd\u7684\u8fd0\u8425\u8005\u9700\u4f9d\u6cd5\u4f7f\u7528\u5546\u7528\u5bc6\u7801\u8fdb\u884c\u4fdd\u62a4\uff0c\u5e76\u81ea\u884c\u6216\u59d4\u6258\u4e13\u4e1a\u673a\u6784\u5f00\u5c55\u5b89\u5168\u6027\u8bc4\u4f30\uff0c\u786e\u4fdd\u4e0e\u5176\u4ed6\u5b89\u5168\u68c0\u6d4b\u8bc4\u4f30\u5236\u5ea6\u76f8\u8854\u63a5\uff0c\u907f\u514d\u91cd\u590d\u5de5\u4f5c\u3002"),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://mp.weixin.qq.com/s?__biz=MzU0Mzk0NDQyOA==&mid=2247515893&idx=1&sn=088c3013acddde2d3ab6e351bb92e1ed&chksm=fb014576cc76cc60c06d893c53fdb30b089aff0f9dd2c60ccca06333596131c024cbd862d0be&scene=27"},"\u4e00\u6587get\u7b49\u4fdd\u6d4b\u8bc4\u4e0e\u5bc6\u8bc4\u7684\u5dee\u5f02"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/489cc4f4.56438c24.js b/assets/js/489cc4f4.548c8178.js similarity index 98% rename from assets/js/489cc4f4.56438c24.js rename to assets/js/489cc4f4.548c8178.js index 7cbc46689..15e1e1b04 100644 --- a/assets/js/489cc4f4.56438c24.js +++ b/assets/js/489cc4f4.548c8178.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7876],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),s=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=s(e.components);return n.createElement(l.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=s(r),m=o,y=p["".concat(l,".").concat(m)]||p[m]||d[m]||a;return r?n.createElement(y,c(c({ref:t},u),{},{components:r})):n.createElement(y,c({ref:t},u))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=m;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[p]="string"==typeof e?e:o,c[1]=i;for(var s=2;s{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>s});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,i={unversionedId:"study/back/mq/MQ\u5b9e\u73b0\u5bf9\u6bd4",id:"study/back/mq/MQ\u5b9e\u73b0\u5bf9\u6bd4",title:"MQ\u5b9e\u73b0\u5bf9\u6bd4",description:"\u56db\u79cd MQ \u5b9e\u73b0\u5bf9\u6bd4",source:"@site/docs/study/back/mq/MQ\u5b9e\u73b0\u5bf9\u6bd4.md",sourceDirName:"study/back/mq",slug:"/study/back/mq/MQ\u5b9e\u73b0\u5bf9\u6bd4",permalink:"/docs/study/back/mq/MQ\u5b9e\u73b0\u5bf9\u6bd4",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"MQTT broker",permalink:"/docs/study/back/mq/MQTT broker"},next:{title:"RocketMQ",permalink:"/docs/study/back/mq/RocketMQ"}},l={},s=[{value:"\u56db\u79cd MQ \u5b9e\u73b0\u5bf9\u6bd4",id:"\u56db\u79cd-mq-\u5b9e\u73b0\u5bf9\u6bd4",level:3}],u={toc:s},p="wrapper";function d(e){let{components:t,...a}=e;return(0,o.yg)(p,(0,n.A)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u56db\u79cd-mq-\u5b9e\u73b0\u5bf9\u6bd4"},"\u56db\u79cd MQ \u5b9e\u73b0\u5bf9\u6bd4"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("img",{alt:"\u56db\u79cdMQ\u5b9e\u73b0\u5bf9\u6bd4",src:r(9374).A,width:"1300",height:"666"}))))}d.isMDXComponent=!0},9374:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/mq4-7e461104b366281c78b8265d74e21a7a.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7876],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),s=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=s(e.components);return n.createElement(l.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=s(r),m=o,y=p["".concat(l,".").concat(m)]||p[m]||d[m]||a;return r?n.createElement(y,c(c({ref:t},u),{},{components:r})):n.createElement(y,c({ref:t},u))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=m;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[p]="string"==typeof e?e:o,c[1]=i;for(var s=2;s{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>s});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,i={unversionedId:"study/back/mq/MQ\u5b9e\u73b0\u5bf9\u6bd4",id:"study/back/mq/MQ\u5b9e\u73b0\u5bf9\u6bd4",title:"MQ\u5b9e\u73b0\u5bf9\u6bd4",description:"\u56db\u79cd MQ \u5b9e\u73b0\u5bf9\u6bd4",source:"@site/docs/study/back/mq/MQ\u5b9e\u73b0\u5bf9\u6bd4.md",sourceDirName:"study/back/mq",slug:"/study/back/mq/MQ\u5b9e\u73b0\u5bf9\u6bd4",permalink:"/docs/study/back/mq/MQ\u5b9e\u73b0\u5bf9\u6bd4",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"MQTT broker",permalink:"/docs/study/back/mq/MQTT broker"},next:{title:"RocketMQ",permalink:"/docs/study/back/mq/RocketMQ"}},l={},s=[{value:"\u56db\u79cd MQ \u5b9e\u73b0\u5bf9\u6bd4",id:"\u56db\u79cd-mq-\u5b9e\u73b0\u5bf9\u6bd4",level:3}],u={toc:s},p="wrapper";function d(e){let{components:t,...a}=e;return(0,o.yg)(p,(0,n.A)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u56db\u79cd-mq-\u5b9e\u73b0\u5bf9\u6bd4"},"\u56db\u79cd MQ \u5b9e\u73b0\u5bf9\u6bd4"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("img",{alt:"\u56db\u79cdMQ\u5b9e\u73b0\u5bf9\u6bd4",src:r(9374).A,width:"1300",height:"666"}))))}d.isMDXComponent=!0},9374:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/mq4-7e461104b366281c78b8265d74e21a7a.png"}}]); \ No newline at end of file diff --git a/assets/js/4a7a0e3b.b50196cc.js b/assets/js/4a7a0e3b.2b4626d6.js similarity index 98% rename from assets/js/4a7a0e3b.b50196cc.js rename to assets/js/4a7a0e3b.2b4626d6.js index adb7aac77..6981e3082 100644 --- a/assets/js/4a7a0e3b.b50196cc.js +++ b/assets/js/4a7a0e3b.2b4626d6.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7808],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var i=n.createContext({}),l=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},p=function(e){var t=l(e.components);return n.createElement(i.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),u=l(r),y=o,f=u["".concat(i,".").concat(y)]||u[y]||d[y]||a;return r?n.createElement(f,c(c({ref:t},p),{},{components:r})):n.createElement(f,c({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=y;var s={};for(var i in t)hasOwnProperty.call(t,i)&&(s[i]=t[i]);s.originalType=e,s[u]="string"==typeof e?e:o,c[1]=s;for(var l=2;l{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>s,toc:()=>l});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,s={unversionedId:"study/back/WSL",id:"study/back/WSL",title:"WSL",description:"\u7528\u672c\u5730\u7684ssh\u547d\u4ee4\u8fde\u63a5WSL",source:"@site/docs/study/back/WSL.md",sourceDirName:"study/back",slug:"/study/back/WSL",permalink:"/docs/study/back/WSL",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"POST\u7f16\u7801\u683c\u5f0f",permalink:"/docs/study/back/POST\u7f16\u7801\u683c\u5f0f"},next:{title:"pom\u6587\u4ef6\u4e2d\u7684scope\u6807\u7b7e",permalink:"/docs/study/back/maven/pom\u6587\u4ef6\u4e2d\u7684scope\u6807\u7b7e"}},i={},l=[{value:"\u7528\u672c\u5730\u7684ssh\u547d\u4ee4\u8fde\u63a5WSL",id:"\u7528\u672c\u5730\u7684ssh\u547d\u4ee4\u8fde\u63a5wsl",level:3}],p={toc:l},u="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u7528\u672c\u5730\u7684ssh\u547d\u4ee4\u8fde\u63a5wsl"},"\u7528\u672c\u5730\u7684ssh\u547d\u4ee4\u8fde\u63a5WSL"),(0,o.yg)("p",null,"windows\u4e0b\u9762\u7684cmd\u548cps\u592a\u96be\u7528\uff0c\u9700\u8981\u7528\u597d\u7528\u7684ssh\u5ba2\u6237\u7aef\u8fde\u63a5wsl\uff0c\u6839\u636e\u665a\u4e0a\u7684\u914d\u7f6e\uff0c\u600e\u4e48\u90fd\u8fde\u4e0d\u4e0a\uff0c\u540e\u6765\u53d1\u73b0\uff0c"),(0,o.yg)("p",null,"ip\u6539\u6210localhost\uff0c\u7acb\u5373\u5c31\u53ef\u4ee5\u4e86\uff0c\u8bb0\u5f55\u4e00\u4e0b\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7808],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var i=n.createContext({}),l=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},p=function(e){var t=l(e.components);return n.createElement(i.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),u=l(r),y=o,f=u["".concat(i,".").concat(y)]||u[y]||d[y]||a;return r?n.createElement(f,c(c({ref:t},p),{},{components:r})):n.createElement(f,c({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=y;var s={};for(var i in t)hasOwnProperty.call(t,i)&&(s[i]=t[i]);s.originalType=e,s[u]="string"==typeof e?e:o,c[1]=s;for(var l=2;l{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>s,toc:()=>l});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,s={unversionedId:"study/back/WSL",id:"study/back/WSL",title:"WSL",description:"\u7528\u672c\u5730\u7684ssh\u547d\u4ee4\u8fde\u63a5WSL",source:"@site/docs/study/back/WSL.md",sourceDirName:"study/back",slug:"/study/back/WSL",permalink:"/docs/study/back/WSL",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"POST\u7f16\u7801\u683c\u5f0f",permalink:"/docs/study/back/POST\u7f16\u7801\u683c\u5f0f"},next:{title:"pom\u6587\u4ef6\u4e2d\u7684scope\u6807\u7b7e",permalink:"/docs/study/back/maven/pom\u6587\u4ef6\u4e2d\u7684scope\u6807\u7b7e"}},i={},l=[{value:"\u7528\u672c\u5730\u7684ssh\u547d\u4ee4\u8fde\u63a5WSL",id:"\u7528\u672c\u5730\u7684ssh\u547d\u4ee4\u8fde\u63a5wsl",level:3}],p={toc:l},u="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u7528\u672c\u5730\u7684ssh\u547d\u4ee4\u8fde\u63a5wsl"},"\u7528\u672c\u5730\u7684ssh\u547d\u4ee4\u8fde\u63a5WSL"),(0,o.yg)("p",null,"windows\u4e0b\u9762\u7684cmd\u548cps\u592a\u96be\u7528\uff0c\u9700\u8981\u7528\u597d\u7528\u7684ssh\u5ba2\u6237\u7aef\u8fde\u63a5wsl\uff0c\u6839\u636e\u665a\u4e0a\u7684\u914d\u7f6e\uff0c\u600e\u4e48\u90fd\u8fde\u4e0d\u4e0a\uff0c\u540e\u6765\u53d1\u73b0\uff0c"),(0,o.yg)("p",null,"ip\u6539\u6210localhost\uff0c\u7acb\u5373\u5c31\u53ef\u4ee5\u4e86\uff0c\u8bb0\u5f55\u4e00\u4e0b\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4af85ab8.49c16c42.js b/assets/js/4af85ab8.944cf0a1.js similarity index 98% rename from assets/js/4af85ab8.49c16c42.js rename to assets/js/4af85ab8.944cf0a1.js index cdcf857c8..49d9514eb 100644 --- a/assets/js/4af85ab8.49c16c42.js +++ b/assets/js/4af85ab8.944cf0a1.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4072],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),i=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=i(e.components);return n.createElement(l.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),p=i(r),y=o,f=p["".concat(l,".").concat(y)]||p[y]||d[y]||a;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=y;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[p]="string"==typeof e?e:o,c[1]=s;for(var i=2;i{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>s,toc:()=>i});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,s={unversionedId:"study/devops/\u94fe\u8def\u8ffd\u8e2a\u76d1\u63a7",id:"study/devops/\u94fe\u8def\u8ffd\u8e2a\u76d1\u63a7",title:"\u94fe\u8def\u8ffd\u8e2a\u76d1\u63a7",description:"jaeger",source:"@site/docs/study/devops/\u94fe\u8def\u8ffd\u8e2a\u76d1\u63a7.md",sourceDirName:"study/devops",slug:"/study/devops/\u94fe\u8def\u8ffd\u8e2a\u76d1\u63a7",permalink:"/docs/study/devops/\u94fe\u8def\u8ffd\u8e2a\u76d1\u63a7",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"ssh",permalink:"/docs/study/devops/ssh"},next:{title:"\u6982\u8ff0",permalink:"/docs/study/hard/"}},l={},i=[{value:"jaeger",id:"jaeger",level:3},{value:"Prometheus",id:"prometheus",level:3}],u={toc:i},p="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(p,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"jaeger"},"jaeger"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://mikechen.cc/32479.html"},"Jaeger \u6700\u5168\u8be6\u89e3"))),(0,o.yg)("h3",{id:"prometheus"},"Prometheus"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/467438139"},"\u77e5\u4e4e-Prometheus \u7b80\u4ecb"))))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4072],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),i=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=i(e.components);return n.createElement(l.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),p=i(r),y=o,f=p["".concat(l,".").concat(y)]||p[y]||d[y]||a;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=y;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[p]="string"==typeof e?e:o,c[1]=s;for(var i=2;i{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>s,toc:()=>i});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,s={unversionedId:"study/devops/\u94fe\u8def\u8ffd\u8e2a\u76d1\u63a7",id:"study/devops/\u94fe\u8def\u8ffd\u8e2a\u76d1\u63a7",title:"\u94fe\u8def\u8ffd\u8e2a\u76d1\u63a7",description:"jaeger",source:"@site/docs/study/devops/\u94fe\u8def\u8ffd\u8e2a\u76d1\u63a7.md",sourceDirName:"study/devops",slug:"/study/devops/\u94fe\u8def\u8ffd\u8e2a\u76d1\u63a7",permalink:"/docs/study/devops/\u94fe\u8def\u8ffd\u8e2a\u76d1\u63a7",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"ssh",permalink:"/docs/study/devops/ssh"},next:{title:"\u6982\u8ff0",permalink:"/docs/study/hard/"}},l={},i=[{value:"jaeger",id:"jaeger",level:3},{value:"Prometheus",id:"prometheus",level:3}],u={toc:i},p="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(p,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"jaeger"},"jaeger"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://mikechen.cc/32479.html"},"Jaeger \u6700\u5168\u8be6\u89e3"))),(0,o.yg)("h3",{id:"prometheus"},"Prometheus"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/467438139"},"\u77e5\u4e4e-Prometheus \u7b80\u4ecb"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4b0ccf38.9ef8f6e9.js b/assets/js/4b0ccf38.5cd1f43d.js similarity index 99% rename from assets/js/4b0ccf38.9ef8f6e9.js rename to assets/js/4b0ccf38.5cd1f43d.js index 5ad8ce7fa..d3da32795 100644 --- a/assets/js/4b0ccf38.9ef8f6e9.js +++ b/assets/js/4b0ccf38.5cd1f43d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3624],{5680:(e,n,t)=>{t.d(n,{xA:()=>c,yg:()=>m});var r=t(6540);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var u=r.createContext({}),p=function(e){var n=r.useContext(u),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},c=function(e){var n=p(e.components);return r.createElement(u.Provider,{value:n},e.children)},y="mdxType",g={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},s=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,l=e.originalType,u=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),y=p(t),s=a,m=y["".concat(u,".").concat(s)]||y[s]||g[s]||l;return t?r.createElement(m,i(i({ref:n},c),{},{components:t})):r.createElement(m,i({ref:n},c))}));function m(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var l=t.length,i=new Array(l);i[0]=s;var o={};for(var u in n)hasOwnProperty.call(n,u)&&(o[u]=n[u]);o.originalType=e,o[y]="string"==typeof e?e:a,i[1]=o;for(var p=2;p{t.r(n),t.d(n,{assets:()=>u,contentTitle:()=>i,default:()=>g,frontMatter:()=>l,metadata:()=>o,toc:()=>p});var r=t(8168),a=(t(6540),t(5680));const l={sidebar_position:1},i="\u7efc\u8ff0",o={unversionedId:"xuanxing/index",id:"xuanxing/index",title:"\u7efc\u8ff0",description:"\u7efc\u5408\u8003\u8651",source:"@site/docs/xuanxing/index.md",sourceDirName:"xuanxing",slug:"/xuanxing/",permalink:"/docs/xuanxing/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"xuanxingSidebar",next:{title:"\u6982\u8ff0",permalink:"/docs/xuanxing/fe/"}},u={},p=[{value:"\u7efc\u5408\u8003\u8651",id:"\u7efc\u5408\u8003\u8651",level:3},{value:"\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u6280\u672f\u65b9\u5411",id:"\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u6280\u672f\u65b9\u5411",level:3}],c={toc:p},y="wrapper";function g(e){let{components:n,...t}=e;return(0,a.yg)(y,(0,r.A)({},c,t,{components:n,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"\u7efc\u8ff0"},"\u7efc\u8ff0"),(0,a.yg)("h3",{id:"\u7efc\u5408\u8003\u8651"},"\u7efc\u5408\u8003\u8651"),(0,a.yg)("p",null,"\u6280\u672f\u9009\u578b\u662f\u975e\u5e38\u91cd\u8981\u7684\uff0c\u4ed6\u51b3\u5b9a\u4e86\u6280\u672f\u76ee\u6807\u662f\u5426\u80fd\u987a\u5229\u5b8c\u6210\u3002"),(0,a.yg)("p",null,"\u6211\u4eec\u5728\u505a\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u7684\u6280\u672f\u9009\u578b\u65f6\uff0c\u5e94\u8be5\u7efc\u5408\u8003\u8651\u5982\u4e0b\u51e0\u4e2a\u65b9\u9762\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u6280\u672f\u76ee\u6807\uff0c\u6280\u672f\u76ee\u6807\u662f\u521d\u521b\u3001\u63d0\u5347\u3001\u8fd8\u662f\u91cd\u6784\uff0c\u4e0d\u540c\u7684\u6280\u672f\u76ee\u6807\u5bf9\u6280\u672f\u9009\u578b\u5f71\u54cd\u5f88\u5927\uff1b"),(0,a.yg)("li",{parentName:"ul"},"\u6280\u672f\u7684\u53d7\u4f17\u7a0b\u5ea6\uff0c\u867d\u7136\u67d0\u4e9b\u6280\u672f\u5f88\u9002\u5408\u505a\u67d0\u4e2a\u4e1c\u897f\uff0c\u4f46\u662f\u53d7\u4f17\u7a0b\u5ea6\u4f4e\u4f1a\u5bfc\u81f4\u62db\u4e0d\u5230\u4eba\u624d\uff1b"),(0,a.yg)("li",{parentName:"ul"},"\u56e2\u961f\u7684\u4eba\u624d\u9636\u68af\uff0c\u90fd\u662f\u5927\u725b\u8fd8\u662f\u4e00\u822c\uff0c\u6216\u8005\u521d\u4e2d\u9ad8\u7ea7\u5206\u5e03\u6bd4\u8f83\u5408\u7406\uff1b")),(0,a.yg)("h3",{id:"\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u6280\u672f\u65b9\u5411"},"\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u6280\u672f\u65b9\u5411"),(0,a.yg)("p",null,"\u5728\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u6280\u672f\u65b9\u5411\u4e0a\uff0c\u5927\u6982\u5206\u4e3a\u524d\u7aef\u3001\u540e\u7aef\u548c\u8fd0\u7ef4\uff1a"),(0,a.yg)("p",null,"\u524d\u7aef\u5927\u6982\u5305\u542b\u4ee5\u4e0b\u51e0\u4e2a\u65b9\u9762\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u5b98\u7f51"),(0,a.yg)("li",{parentName:"ul"},"\u7528\u6237\u7aef\u3010PC WEB\u3011"),(0,a.yg)("li",{parentName:"ul"},"\u7ba1\u7406\u7aef\u3010PC WEB\u3011"),(0,a.yg)("li",{parentName:"ul"},"\u79fb\u52a8\u7aef\u3010\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\u3001APP\u3001Mobile WEB\u3011"),(0,a.yg)("li",{parentName:"ul"},"\u7ec4\u6001\u7f16\u8f91\u5668\u3010PC WEB\u7f16\u8f91\u53ca\u8fd0\u884c\u3011\u3010Mobile WEB\u8fd0\u884c\u3011"),(0,a.yg)("li",{parentName:"ul"},"\u5927\u5c4f\u7f16\u8f91\u5668\u3010PC WEB\u7f16\u8f91\u53ca\u8fd0\u884c\u3011")),(0,a.yg)("p",null,"\u540e\u7aef\u6839\u636e\u670d\u52a1\u7279\u70b9\uff0c\u5206\u4e3a\u4e24\u4e2a\u5927\u5c42\uff0c\u4e1a\u52a1\u5c42\u548c\u901a\u8baf\u5c42\uff0c\u4e1a\u52a1\u5c42\u9762\u5411\u7684\u662f\u7528\u6237\uff0c\u901a\u8baf\u5c42\u9762\u5411\u7684\u662f\u8bbe\u5907\u3002"),(0,a.yg)("p",null,"\u540e\u7aef\u4e1a\u52a1\u5c42\u5927\u6982\u5305\u542b\u4ee5\u4e0b\u51e0\u4e2a\u65b9\u9762\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"API\u670d\u52a1\uff0c\u9700\u8981\u6839\u636e\u524d\u7aef\u7684\u7aef\u518d\u53bb\u7ec6\u5206\u82e5\u5e72\u670d\u52a1\uff0c\u6280\u672f\u9009\u578b\u5e94\u8be5\u7528\u4e00\u4e2a\uff0c\u4fdd\u6301\u7edf\u4e00\uff1b"),(0,a.yg)("li",{parentName:"ul"},"\u62a5\u8b66\u670d\u52a1\uff0c\u4e3b\u8981\u662f\u7ed9\u7528\u6237\u53d1\u9001\u62a5\u8b66\u4fe1\u606f\uff1b"),(0,a.yg)("li",{parentName:"ul"},"Monitor\u670d\u52a1\uff0c\u4e3b\u8981\u662f\u76d1\u63a7\u6765\u81ea\u540e\u7aef\u901a\u8baf\u5c42\u7684\u6d88\u606f\uff1b")),(0,a.yg)("p",null,"\u540e\u7aef\u901a\u8baf\u5c42\u5927\u6982\u5305\u542b\u4ee5\u4e0b\u51e0\u4e2a\u65b9\u9762\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u8bbe\u5907\u63a5\u5165"),(0,a.yg)("li",{parentName:"ul"},"\u6570\u636e\u89e3\u6790"),(0,a.yg)("li",{parentName:"ul"},"\u529f\u80fd\u670d\u52a1")))}g.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3624],{5680:(e,n,t)=>{t.d(n,{xA:()=>c,yg:()=>m});var r=t(6540);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var u=r.createContext({}),p=function(e){var n=r.useContext(u),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},c=function(e){var n=p(e.components);return r.createElement(u.Provider,{value:n},e.children)},y="mdxType",g={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},s=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,l=e.originalType,u=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),y=p(t),s=a,m=y["".concat(u,".").concat(s)]||y[s]||g[s]||l;return t?r.createElement(m,i(i({ref:n},c),{},{components:t})):r.createElement(m,i({ref:n},c))}));function m(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var l=t.length,i=new Array(l);i[0]=s;var o={};for(var u in n)hasOwnProperty.call(n,u)&&(o[u]=n[u]);o.originalType=e,o[y]="string"==typeof e?e:a,i[1]=o;for(var p=2;p{t.r(n),t.d(n,{assets:()=>u,contentTitle:()=>i,default:()=>g,frontMatter:()=>l,metadata:()=>o,toc:()=>p});var r=t(8168),a=(t(6540),t(5680));const l={sidebar_position:1},i="\u7efc\u8ff0",o={unversionedId:"xuanxing/index",id:"xuanxing/index",title:"\u7efc\u8ff0",description:"\u7efc\u5408\u8003\u8651",source:"@site/docs/xuanxing/index.md",sourceDirName:"xuanxing",slug:"/xuanxing/",permalink:"/docs/xuanxing/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"xuanxingSidebar",next:{title:"\u6982\u8ff0",permalink:"/docs/xuanxing/fe/"}},u={},p=[{value:"\u7efc\u5408\u8003\u8651",id:"\u7efc\u5408\u8003\u8651",level:3},{value:"\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u6280\u672f\u65b9\u5411",id:"\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u6280\u672f\u65b9\u5411",level:3}],c={toc:p},y="wrapper";function g(e){let{components:n,...t}=e;return(0,a.yg)(y,(0,r.A)({},c,t,{components:n,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"\u7efc\u8ff0"},"\u7efc\u8ff0"),(0,a.yg)("h3",{id:"\u7efc\u5408\u8003\u8651"},"\u7efc\u5408\u8003\u8651"),(0,a.yg)("p",null,"\u6280\u672f\u9009\u578b\u662f\u975e\u5e38\u91cd\u8981\u7684\uff0c\u4ed6\u51b3\u5b9a\u4e86\u6280\u672f\u76ee\u6807\u662f\u5426\u80fd\u987a\u5229\u5b8c\u6210\u3002"),(0,a.yg)("p",null,"\u6211\u4eec\u5728\u505a\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u7684\u6280\u672f\u9009\u578b\u65f6\uff0c\u5e94\u8be5\u7efc\u5408\u8003\u8651\u5982\u4e0b\u51e0\u4e2a\u65b9\u9762\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u6280\u672f\u76ee\u6807\uff0c\u6280\u672f\u76ee\u6807\u662f\u521d\u521b\u3001\u63d0\u5347\u3001\u8fd8\u662f\u91cd\u6784\uff0c\u4e0d\u540c\u7684\u6280\u672f\u76ee\u6807\u5bf9\u6280\u672f\u9009\u578b\u5f71\u54cd\u5f88\u5927\uff1b"),(0,a.yg)("li",{parentName:"ul"},"\u6280\u672f\u7684\u53d7\u4f17\u7a0b\u5ea6\uff0c\u867d\u7136\u67d0\u4e9b\u6280\u672f\u5f88\u9002\u5408\u505a\u67d0\u4e2a\u4e1c\u897f\uff0c\u4f46\u662f\u53d7\u4f17\u7a0b\u5ea6\u4f4e\u4f1a\u5bfc\u81f4\u62db\u4e0d\u5230\u4eba\u624d\uff1b"),(0,a.yg)("li",{parentName:"ul"},"\u56e2\u961f\u7684\u4eba\u624d\u9636\u68af\uff0c\u90fd\u662f\u5927\u725b\u8fd8\u662f\u4e00\u822c\uff0c\u6216\u8005\u521d\u4e2d\u9ad8\u7ea7\u5206\u5e03\u6bd4\u8f83\u5408\u7406\uff1b")),(0,a.yg)("h3",{id:"\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u6280\u672f\u65b9\u5411"},"\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u6280\u672f\u65b9\u5411"),(0,a.yg)("p",null,"\u5728\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u6280\u672f\u65b9\u5411\u4e0a\uff0c\u5927\u6982\u5206\u4e3a\u524d\u7aef\u3001\u540e\u7aef\u548c\u8fd0\u7ef4\uff1a"),(0,a.yg)("p",null,"\u524d\u7aef\u5927\u6982\u5305\u542b\u4ee5\u4e0b\u51e0\u4e2a\u65b9\u9762\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u5b98\u7f51"),(0,a.yg)("li",{parentName:"ul"},"\u7528\u6237\u7aef\u3010PC WEB\u3011"),(0,a.yg)("li",{parentName:"ul"},"\u7ba1\u7406\u7aef\u3010PC WEB\u3011"),(0,a.yg)("li",{parentName:"ul"},"\u79fb\u52a8\u7aef\u3010\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\u3001APP\u3001Mobile WEB\u3011"),(0,a.yg)("li",{parentName:"ul"},"\u7ec4\u6001\u7f16\u8f91\u5668\u3010PC WEB\u7f16\u8f91\u53ca\u8fd0\u884c\u3011\u3010Mobile WEB\u8fd0\u884c\u3011"),(0,a.yg)("li",{parentName:"ul"},"\u5927\u5c4f\u7f16\u8f91\u5668\u3010PC WEB\u7f16\u8f91\u53ca\u8fd0\u884c\u3011")),(0,a.yg)("p",null,"\u540e\u7aef\u6839\u636e\u670d\u52a1\u7279\u70b9\uff0c\u5206\u4e3a\u4e24\u4e2a\u5927\u5c42\uff0c\u4e1a\u52a1\u5c42\u548c\u901a\u8baf\u5c42\uff0c\u4e1a\u52a1\u5c42\u9762\u5411\u7684\u662f\u7528\u6237\uff0c\u901a\u8baf\u5c42\u9762\u5411\u7684\u662f\u8bbe\u5907\u3002"),(0,a.yg)("p",null,"\u540e\u7aef\u4e1a\u52a1\u5c42\u5927\u6982\u5305\u542b\u4ee5\u4e0b\u51e0\u4e2a\u65b9\u9762\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"API\u670d\u52a1\uff0c\u9700\u8981\u6839\u636e\u524d\u7aef\u7684\u7aef\u518d\u53bb\u7ec6\u5206\u82e5\u5e72\u670d\u52a1\uff0c\u6280\u672f\u9009\u578b\u5e94\u8be5\u7528\u4e00\u4e2a\uff0c\u4fdd\u6301\u7edf\u4e00\uff1b"),(0,a.yg)("li",{parentName:"ul"},"\u62a5\u8b66\u670d\u52a1\uff0c\u4e3b\u8981\u662f\u7ed9\u7528\u6237\u53d1\u9001\u62a5\u8b66\u4fe1\u606f\uff1b"),(0,a.yg)("li",{parentName:"ul"},"Monitor\u670d\u52a1\uff0c\u4e3b\u8981\u662f\u76d1\u63a7\u6765\u81ea\u540e\u7aef\u901a\u8baf\u5c42\u7684\u6d88\u606f\uff1b")),(0,a.yg)("p",null,"\u540e\u7aef\u901a\u8baf\u5c42\u5927\u6982\u5305\u542b\u4ee5\u4e0b\u51e0\u4e2a\u65b9\u9762\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u8bbe\u5907\u63a5\u5165"),(0,a.yg)("li",{parentName:"ul"},"\u6570\u636e\u89e3\u6790"),(0,a.yg)("li",{parentName:"ul"},"\u529f\u80fd\u670d\u52a1")))}g.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4d36f4bb.1c89bc29.js b/assets/js/4d36f4bb.11513ed3.js similarity index 98% rename from assets/js/4d36f4bb.1c89bc29.js rename to assets/js/4d36f4bb.11513ed3.js index 0a328799e..7ff6576b5 100644 --- a/assets/js/4d36f4bb.1c89bc29.js +++ b/assets/js/4d36f4bb.11513ed3.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7686],{5680:(e,t,r)=>{r.d(t,{xA:()=>l,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),u=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},l=function(e){var t=u(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),p=u(r),m=o,f=p["".concat(s,".").concat(m)]||p[m]||d[m]||a;return r?n.createElement(f,i(i({ref:t},l),{},{components:r})):n.createElement(f,i({ref:t},l))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=m;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[p]="string"==typeof e?e:o,i[1]=c;for(var u=2;u{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={},i=void 0,c={unversionedId:"xuanxing/thingsboard/\u5982\u4f55\u4f7f\u7528",id:"xuanxing/thingsboard/\u5982\u4f55\u4f7f\u7528",title:"\u5982\u4f55\u4f7f\u7528",description:"\u4e0a\u884c\u6d88\u606f",source:"@site/docs/xuanxing/thingsboard/\u5982\u4f55\u4f7f\u7528.md",sourceDirName:"xuanxing/thingsboard",slug:"/xuanxing/thingsboard/\u5982\u4f55\u4f7f\u7528",permalink:"/docs/xuanxing/thingsboard/\u5982\u4f55\u4f7f\u7528",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"xuanxingSidebar",previous:{title:"\u7efc\u8ff0",permalink:"/docs/xuanxing/thingsboard/"},next:{title:"\u6e90\u7801\u7ed3\u6784",permalink:"/docs/xuanxing/thingsboard/\u6e90\u7801\u7ed3\u6784"}},s={},u=[{value:"\u4e0a\u884c\u6d88\u606f",id:"\u4e0a\u884c\u6d88\u606f",level:3}],l={toc:u},p="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(p,(0,n.A)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u4e0a\u884c\u6d88\u606f"},"\u4e0a\u884c\u6d88\u606f"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-shell"},'curl -v -X POST -d "{\\"temperature\\": 27}" http://localhost:8080/api/v1/ZGmef5dqOBYcQSR7EzQs/telemetry --header "Content-Type:application/json"\n\n# Acesss token\nmosquitto_pub -d -q 1 -h "localhost" -p "1883" -t "v1/devices/me/telemetry" -u "rX1zRfYWNoUgAg0FIKUt" -m {"temperature":300}\nmosquitto_pub -d -q 1 -h "localhost" -p "1883" -t "v1/devices/me/telemetry" -u "12345678" -m {"t":250}\nmosquitto_pub -d -q 1 -h "localhost" -p "1883" -t "v1/devices/me/attributes" -u "12345678" -m {"t":25}\n\n# MQTT Basic\nmosquitto_pub -h \'localhost\' -i \'c1\' -u \'u1\' -P \'secret\' -t \'/telemetry\' -m \'{"temperature": 25}\'\nmosquitto_pub -h \'localhost\' -i \'c1\' -u \'t1\' -P \'secret\' -t \'/attributes\' -m \'{"firmwareVersion": "1.3"}\'\n')))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7686],{5680:(e,t,r)=>{r.d(t,{xA:()=>l,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),u=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},l=function(e){var t=u(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),p=u(r),m=o,f=p["".concat(s,".").concat(m)]||p[m]||d[m]||a;return r?n.createElement(f,i(i({ref:t},l),{},{components:r})):n.createElement(f,i({ref:t},l))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=m;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[p]="string"==typeof e?e:o,i[1]=c;for(var u=2;u{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={},i=void 0,c={unversionedId:"xuanxing/thingsboard/\u5982\u4f55\u4f7f\u7528",id:"xuanxing/thingsboard/\u5982\u4f55\u4f7f\u7528",title:"\u5982\u4f55\u4f7f\u7528",description:"\u4e0a\u884c\u6d88\u606f",source:"@site/docs/xuanxing/thingsboard/\u5982\u4f55\u4f7f\u7528.md",sourceDirName:"xuanxing/thingsboard",slug:"/xuanxing/thingsboard/\u5982\u4f55\u4f7f\u7528",permalink:"/docs/xuanxing/thingsboard/\u5982\u4f55\u4f7f\u7528",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"xuanxingSidebar",previous:{title:"\u7efc\u8ff0",permalink:"/docs/xuanxing/thingsboard/"},next:{title:"\u6e90\u7801\u7ed3\u6784",permalink:"/docs/xuanxing/thingsboard/\u6e90\u7801\u7ed3\u6784"}},s={},u=[{value:"\u4e0a\u884c\u6d88\u606f",id:"\u4e0a\u884c\u6d88\u606f",level:3}],l={toc:u},p="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(p,(0,n.A)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u4e0a\u884c\u6d88\u606f"},"\u4e0a\u884c\u6d88\u606f"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-shell"},'curl -v -X POST -d "{\\"temperature\\": 27}" http://localhost:8080/api/v1/ZGmef5dqOBYcQSR7EzQs/telemetry --header "Content-Type:application/json"\n\n# Acesss token\nmosquitto_pub -d -q 1 -h "localhost" -p "1883" -t "v1/devices/me/telemetry" -u "rX1zRfYWNoUgAg0FIKUt" -m {"temperature":300}\nmosquitto_pub -d -q 1 -h "localhost" -p "1883" -t "v1/devices/me/telemetry" -u "12345678" -m {"t":250}\nmosquitto_pub -d -q 1 -h "localhost" -p "1883" -t "v1/devices/me/attributes" -u "12345678" -m {"t":25}\n\n# MQTT Basic\nmosquitto_pub -h \'localhost\' -i \'c1\' -u \'u1\' -P \'secret\' -t \'/telemetry\' -m \'{"temperature": 25}\'\nmosquitto_pub -h \'localhost\' -i \'c1\' -u \'t1\' -P \'secret\' -t \'/attributes\' -m \'{"firmwareVersion": "1.3"}\'\n')))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4d86c8f8.b112c4d2.js b/assets/js/4d86c8f8.8b1f146e.js similarity index 98% rename from assets/js/4d86c8f8.b112c4d2.js rename to assets/js/4d86c8f8.8b1f146e.js index 3d79e364c..3ecfdad5b 100644 --- a/assets/js/4d86c8f8.b112c4d2.js +++ b/assets/js/4d86c8f8.8b1f146e.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1090],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),s=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=s(e.components);return n.createElement(p.Provider,{value:t},e.children)},l="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),l=s(r),y=o,f=l["".concat(p,".").concat(y)]||l[y]||d[y]||a;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=y;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[l]="string"==typeof e?e:o,c[1]=i;for(var s=2;s{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>s});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,i={unversionedId:"study/net/IPV6",id:"study/net/IPV6",title:"IPV6",description:"IPV6 \u8fde\u63a5\u6d4b\u8bd5",source:"@site/docs/study/net/IPV6.md",sourceDirName:"study/net",slug:"/study/net/IPV6",permalink:"/docs/study/net/IPV6",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u7a0b\u5e8f\u8c03\u8bd5",permalink:"/docs/study/system/\u7a0b\u5e8f\u8c03\u8bd5"},next:{title:"MacOS\u7f16\u8bd1OpenVPN",permalink:"/docs/study/net/MacOS\u7f16\u8bd1OpenVPN"}},p={},s=[{value:"IPV6 \u8fde\u63a5\u6d4b\u8bd5",id:"ipv6-\u8fde\u63a5\u6d4b\u8bd5",level:3}],u={toc:s},l="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(l,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"ipv6-\u8fde\u63a5\u6d4b\u8bd5"},"IPV6 \u8fde\u63a5\u6d4b\u8bd5"),(0,o.yg)("p",null,(0,o.yg)("a",{parentName:"p",href:"https://www.test-ipv6.com/"},"https://www.test-ipv6.com/")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1090],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),s=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=s(e.components);return n.createElement(p.Provider,{value:t},e.children)},l="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),l=s(r),y=o,f=l["".concat(p,".").concat(y)]||l[y]||d[y]||a;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=y;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[l]="string"==typeof e?e:o,c[1]=i;for(var s=2;s{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>s});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,i={unversionedId:"study/net/IPV6",id:"study/net/IPV6",title:"IPV6",description:"IPV6 \u8fde\u63a5\u6d4b\u8bd5",source:"@site/docs/study/net/IPV6.md",sourceDirName:"study/net",slug:"/study/net/IPV6",permalink:"/docs/study/net/IPV6",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u7a0b\u5e8f\u8c03\u8bd5",permalink:"/docs/study/system/\u7a0b\u5e8f\u8c03\u8bd5"},next:{title:"MacOS\u7f16\u8bd1OpenVPN",permalink:"/docs/study/net/MacOS\u7f16\u8bd1OpenVPN"}},p={},s=[{value:"IPV6 \u8fde\u63a5\u6d4b\u8bd5",id:"ipv6-\u8fde\u63a5\u6d4b\u8bd5",level:3}],u={toc:s},l="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(l,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"ipv6-\u8fde\u63a5\u6d4b\u8bd5"},"IPV6 \u8fde\u63a5\u6d4b\u8bd5"),(0,o.yg)("p",null,(0,o.yg)("a",{parentName:"p",href:"https://www.test-ipv6.com/"},"https://www.test-ipv6.com/")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4ed715ca.38633ace.js b/assets/js/4ed715ca.4d8052db.js similarity index 98% rename from assets/js/4ed715ca.38633ace.js rename to assets/js/4ed715ca.4d8052db.js index d2c2fdc27..c98393632 100644 --- a/assets/js/4ed715ca.38633ace.js +++ b/assets/js/4ed715ca.4d8052db.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8451],{5680:(e,t,r)=>{r.d(t,{xA:()=>l,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var i=n.createContext({}),p=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},l=function(e){var t=p(e.components);return n.createElement(i.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),u=p(r),y=o,f=u["".concat(i,".").concat(y)]||u[y]||d[y]||a;return r?n.createElement(f,c(c({ref:t},l),{},{components:r})):n.createElement(f,c({ref:t},l))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=y;var s={};for(var i in t)hasOwnProperty.call(t,i)&&(s[i]=t[i]);s.originalType=e,s[u]="string"==typeof e?e:o,c[1]=s;for(var p=2;p{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>s,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={},c="nacos",s={unversionedId:"study/back/springcloud/nacos",id:"study/back/springcloud/nacos",title:"nacos",description:"\u4e00\u4e2a\u66f4\u6613\u4e8e\u6784\u5efa\u4e91\u539f\u751f\u5e94\u7528\u7684\u52a8\u6001\u670d\u52a1\u53d1\u73b0\u3001\u914d\u7f6e\u7ba1\u7406\u548c\u670d\u52a1\u7ba1\u7406\u5e73\u53f0",source:"@site/docs/study/back/springcloud/nacos.md",sourceDirName:"study/back/springcloud",slug:"/study/back/springcloud/nacos",permalink:"/docs/study/back/springcloud/nacos",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"SpringCloud\u4e94\u5927\u7ec4\u4ef6",permalink:"/docs/study/back/springcloud/SpringCloud\u4e94\u5927\u7ec4\u4ef6"},next:{title:"\u5fae\u670d\u52a1",permalink:"/docs/study/back/springcloud/\u5fae\u670d\u52a1"}},i={},p=[],l={toc:p},u="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"nacos"},"nacos"),(0,o.yg)("p",null,"\u4e00\u4e2a\u66f4\u6613\u4e8e\u6784\u5efa\u4e91\u539f\u751f\u5e94\u7528\u7684\u52a8\u6001\u670d\u52a1\u53d1\u73b0\u3001\u914d\u7f6e\u7ba1\u7406\u548c\u670d\u52a1\u7ba1\u7406\u5e73\u53f0"),(0,o.yg)("p",null,"Nacos \u81f4\u529b\u4e8e\u5e2e\u52a9\u60a8\u53d1\u73b0\u3001\u914d\u7f6e\u548c\u7ba1\u7406\u5fae\u670d\u52a1\u3002Nacos \u63d0\u4f9b\u4e86\u4e00\u7ec4\u7b80\u5355\u6613\u7528\u7684\u7279\u6027\u96c6\uff0c\u5e2e\u52a9\u60a8\u5feb\u901f\u5b9e\u73b0\u52a8\u6001\u670d\u52a1\u53d1\u73b0\u3001\u670d\u52a1\u914d\u7f6e\u3001\u670d\u52a1\u5143\u6570\u636e\u53ca\u6d41\u91cf\u7ba1\u7406\u3002"),(0,o.yg)("p",null,(0,o.yg)("a",{parentName:"p",href:"https://nacos.io/"},"\u5b98\u65b9\u7f51\u7ad9")),(0,o.yg)("p",null,(0,o.yg)("a",{parentName:"p",href:"https://nacos.io/docs/latest/what-is-nacos/"},"\u5b98\u65b9\u6587\u6863")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8451],{5680:(e,t,r)=>{r.d(t,{xA:()=>l,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var i=n.createContext({}),p=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},l=function(e){var t=p(e.components);return n.createElement(i.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),u=p(r),y=o,f=u["".concat(i,".").concat(y)]||u[y]||d[y]||a;return r?n.createElement(f,c(c({ref:t},l),{},{components:r})):n.createElement(f,c({ref:t},l))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=y;var s={};for(var i in t)hasOwnProperty.call(t,i)&&(s[i]=t[i]);s.originalType=e,s[u]="string"==typeof e?e:o,c[1]=s;for(var p=2;p{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>s,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={},c="nacos",s={unversionedId:"study/back/springcloud/nacos",id:"study/back/springcloud/nacos",title:"nacos",description:"\u4e00\u4e2a\u66f4\u6613\u4e8e\u6784\u5efa\u4e91\u539f\u751f\u5e94\u7528\u7684\u52a8\u6001\u670d\u52a1\u53d1\u73b0\u3001\u914d\u7f6e\u7ba1\u7406\u548c\u670d\u52a1\u7ba1\u7406\u5e73\u53f0",source:"@site/docs/study/back/springcloud/nacos.md",sourceDirName:"study/back/springcloud",slug:"/study/back/springcloud/nacos",permalink:"/docs/study/back/springcloud/nacos",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"SpringCloud\u4e94\u5927\u7ec4\u4ef6",permalink:"/docs/study/back/springcloud/SpringCloud\u4e94\u5927\u7ec4\u4ef6"},next:{title:"\u5fae\u670d\u52a1",permalink:"/docs/study/back/springcloud/\u5fae\u670d\u52a1"}},i={},p=[],l={toc:p},u="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"nacos"},"nacos"),(0,o.yg)("p",null,"\u4e00\u4e2a\u66f4\u6613\u4e8e\u6784\u5efa\u4e91\u539f\u751f\u5e94\u7528\u7684\u52a8\u6001\u670d\u52a1\u53d1\u73b0\u3001\u914d\u7f6e\u7ba1\u7406\u548c\u670d\u52a1\u7ba1\u7406\u5e73\u53f0"),(0,o.yg)("p",null,"Nacos \u81f4\u529b\u4e8e\u5e2e\u52a9\u60a8\u53d1\u73b0\u3001\u914d\u7f6e\u548c\u7ba1\u7406\u5fae\u670d\u52a1\u3002Nacos \u63d0\u4f9b\u4e86\u4e00\u7ec4\u7b80\u5355\u6613\u7528\u7684\u7279\u6027\u96c6\uff0c\u5e2e\u52a9\u60a8\u5feb\u901f\u5b9e\u73b0\u52a8\u6001\u670d\u52a1\u53d1\u73b0\u3001\u670d\u52a1\u914d\u7f6e\u3001\u670d\u52a1\u5143\u6570\u636e\u53ca\u6d41\u91cf\u7ba1\u7406\u3002"),(0,o.yg)("p",null,(0,o.yg)("a",{parentName:"p",href:"https://nacos.io/"},"\u5b98\u65b9\u7f51\u7ad9")),(0,o.yg)("p",null,(0,o.yg)("a",{parentName:"p",href:"https://nacos.io/docs/latest/what-is-nacos/"},"\u5b98\u65b9\u6587\u6863")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4f086afd.72650a3f.js b/assets/js/4f086afd.9e2fb63c.js similarity index 99% rename from assets/js/4f086afd.72650a3f.js rename to assets/js/4f086afd.9e2fb63c.js index 73c1dce8a..e6b296a6f 100644 --- a/assets/js/4f086afd.72650a3f.js +++ b/assets/js/4f086afd.9e2fb63c.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5452],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function l(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(l[r]=e[r]);return l}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(l[r]=e[r])}return l}var u=n.createContext({}),c=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(u.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,l=e.mdxType,a=e.originalType,u=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),s=c(r),d=l,f=s["".concat(u,".").concat(d)]||s[d]||y[d]||a;return r?n.createElement(f,o(o({ref:t},p),{},{components:r})):n.createElement(f,o({ref:t},p))}));function f(e,t){var r=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var a=r.length,o=new Array(a);o[0]=d;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[s]="string"==typeof e?e:l,o[1]=i;for(var c=2;c{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>o,default:()=>y,frontMatter:()=>a,metadata:()=>i,toc:()=>c});var n=r(8168),l=(r(6540),r(5680));const a={},o=void 0,i={unversionedId:"study/net/VLAN-VXLAN",id:"study/net/VLAN-VXLAN",title:"VLAN-VXLAN",description:"VLAN",source:"@site/docs/study/net/VLAN-VXLAN.md",sourceDirName:"study/net",slug:"/study/net/VLAN-VXLAN",permalink:"/docs/study/net/VLAN-VXLAN",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"UDP",permalink:"/docs/study/net/UDP"},next:{title:"Linux ip \u547d\u4ee4",permalink:"/docs/study/net/ip"}},u={},c=[{value:"VLAN",id:"vlan",level:3},{value:"VXLAN",id:"vxlan",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],p={toc:c},s="wrapper";function y(e){let{components:t,...r}=e;return(0,l.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,l.yg)("h3",{id:"vlan"},"VLAN"),(0,l.yg)("p",null,"VLAN(Virtual LAN)\uff0c\u7ffb\u8bd1\u6210\u4e2d\u6587\u662f\u201c\u865a\u62df\u5c40\u57df\u7f51\u201d\u3002LAN\u53ef\u4ee5\u662f\u7531\u5c11\u6570\u51e0\u53f0\u5bb6\u7528\u8ba1\u7b97\u673a\u6784\u6210\u7684\u7f51\u7edc\uff0c\u4e5f\u53ef\u4ee5\u662f\u6570\u4ee5\u767e\u8ba1\u7684\u8ba1\u7b97\u673a\u6784\u6210\u7684\u4f01\u4e1a\u7f51\u7edc\u3002VLAN\u6240\u6307\u7684LAN\u7279\u6307\u4f7f\u7528\u8def\u7531\u5668\u5206\u5272\u7684\u7f51\u7edc(\u4e5f\u5c31\u662f\u5e7f\u64ad\u57df)."),(0,l.yg)("p",null,"VLAN\u4f5c\u4e3a\u4f20\u7edf\u7684\u7f51\u7edc\u9694\u79bb\u6280\u672f\uff0c\u5728\u6807\u51c6\u5b9a\u4e49\u4e2dVLAN\u7684\u6570\u91cf\u53ea\u67094000\u4e2a\u5de6\u53f3\uff0c\u65e0\u6cd5\u6ee1\u8db3\u5927\u578b\u6570\u636e\u4e2d\u5fc3\u7684\u79df\u6237\u95f4\u9694\u79bb\u9700\u6c42\u3002\u53e6\u5916\uff0cVLAN\u7684\u4e8c\u5c42\u8303\u56f4\u4e00\u822c\u8f83\u5c0f\u4e14\u56fa\u5b9a\uff0c\u65e0\u6cd5\u652f\u6301\u865a\u62df\u673a\u5927\u8303\u56f4\u7684\u52a8\u6001\u8fc1\u79fb."),(0,l.yg)("h3",{id:"vxlan"},"VXLAN"),(0,l.yg)("p",null,"VXLAN\uff08Virtual eXtensible Local Area Network\uff0c\u865a\u62df\u6269\u5c55\u5c40\u57df\u7f51\uff09\uff0c\u662f\u7531IETF\u5b9a\u4e49\u7684NVO3\uff08Network Virtualization over Layer 3\uff09\u6807\u51c6\u6280\u672f\u4e4b\u4e00\uff0c\u662f\u5bf9\u4f20\u7edfVLAN\u534f\u8bae\u7684\u4e00\u79cd\u6269\u5c55\u3002VXLAN\u7684\u7279\u70b9\u662f\u5c06L2\u7684\u4ee5\u592a\u5e27\u5c01\u88c5\u5230UDP\u6d88\u606f\uff08\u5373L2 over L4\uff09\u4e2d\uff0c\u5e76\u5728L3\u7f51\u7edc\u4e2d\u4f20\u8f93\u3002\u662foverlay\u7f51\u7edc\u7684\u5b9e\u73b0\u6280\u672f\u4e4b\u4e00\u3002"),(0,l.yg)("p",null,"vxlan\u89e3\u51b3\u4e86\u4ec0\u4e48\u5173\u952e\u95ee\u9898"),(0,l.yg)("p",null,"\u865a\u62df\u5316\u670d\u52a1\u5668\u52a8\u6001\u8fc1\u79fb"),(0,l.yg)("p",null,"\u670d\u52a1\u5668\u4ece\u8be5\u4e8c\u5c42\u4ea4\u6362\u673a\u7684\u4e00\u4e2a\u7aef\u53e3\u8fc1\u79fb\u5230\u53e6\u4e00\u4e2a\u7aef\u53e3\u65f6\uff0cIP\u5730\u5740\u662f\u53ef\u4ee5\u4fdd\u6301\u4e0d\u53d8\u7684\uff0cVXLAN\u5229\u7528\u6b64\u8bbe\u8ba1\u7406\u5ff5\uff0c\u5728\u6570\u636e\u4e2d\u5fc3IP\u7f51\u7edc\u57fa\u7840\u4e0a\uff0c\u6784\u5efa\u4e00\u5f20\u5168\u4e92\u8054\u7684\u4e8c\u5c42\u96a7\u9053\u865a\u62df\u7f51\u7edc\uff0c\u4fdd\u8bc1\u4efb\u610f\u4e24\u70b9\u4e4b\u95f4\u90fd\u80fd\u901a\u8fc7VXLAN\u96a7\u9053\u6765\u901a\u4fe1\uff0c\u5e76\u5ffd\u7565\u5e95\u5c42\u7f51\u7edc\u7684\u7ed3\u6784\u548c\u7ec6\u8282\uff0cVXLAN\u4e3a\u5b83\u4eec\u5c06\u6574\u4e2a\u6570\u636e\u4e2d\u5fc3\u57fa\u7840\u7f51\u7edc\u865a\u62df\u6210\u4e86\u4e00\u53f0\u5de8\u5927\u7684\u201c\u4e8c\u5c42\u4ea4\u6362\u673a\uff08\u5927\u4e8c\u5c42\uff09\u201d\uff0c\u6240\u6709\u670d\u52a1\u5668\u90fd\u8fde\u63a5\u5728\u8fd9\u53f0\u865a\u62df\u4e8c\u5c42\u4ea4\u6362\u673a\u4e0a\u3002"),(0,l.yg)("p",null,"\u5927\u89c4\u6a21\u6570\u636e\u4e2d\u5fc3\uff0c\u6d77\u91cf\u79df\u6237\u9694\u79bb\u80fd\u529b"),(0,l.yg)("p",null,"\u5728\u6807\u51c6\u5b9a\u4e49\u4e2dVLAN\u7684\u6570\u91cf\u53ea\u67094000\u4e2a\u5de6\u53f3\uff0c\u65e0\u6cd5\u6ee1\u8db3\u5927\u578b\u6570\u636e\u4e2d\u5fc3\u7684\u79df\u6237\u95f4\u9694\u79bb\u9700\u6c42\u3002 VXLAN\u5b8c\u7f8e\u5730\u5f25\u8865\u4e86VLAN\u7684\u4e0a\u8ff0\u4e0d\u8db3\uff0c\u4e00\u65b9\u9762\u901a\u8fc7VXLAN\u4e2d\u768424\u6bd4\u7279VNI\u5b57\u6bb5\u3002\u63d0\u4f9b\u591a\u8fbe16M\u79df\u6237\u7684\u6807\u8bc6\u80fd\u529b"),(0,l.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://blog.csdn.net/ecloud_developer/article/details/120526041"},"csdn-vlan\u548cvxlan"))))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5452],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function l(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(l[r]=e[r]);return l}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(l[r]=e[r])}return l}var u=n.createContext({}),c=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(u.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,l=e.mdxType,a=e.originalType,u=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),s=c(r),d=l,f=s["".concat(u,".").concat(d)]||s[d]||y[d]||a;return r?n.createElement(f,o(o({ref:t},p),{},{components:r})):n.createElement(f,o({ref:t},p))}));function f(e,t){var r=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var a=r.length,o=new Array(a);o[0]=d;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[s]="string"==typeof e?e:l,o[1]=i;for(var c=2;c{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>o,default:()=>y,frontMatter:()=>a,metadata:()=>i,toc:()=>c});var n=r(8168),l=(r(6540),r(5680));const a={},o=void 0,i={unversionedId:"study/net/VLAN-VXLAN",id:"study/net/VLAN-VXLAN",title:"VLAN-VXLAN",description:"VLAN",source:"@site/docs/study/net/VLAN-VXLAN.md",sourceDirName:"study/net",slug:"/study/net/VLAN-VXLAN",permalink:"/docs/study/net/VLAN-VXLAN",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"UDP",permalink:"/docs/study/net/UDP"},next:{title:"Linux ip \u547d\u4ee4",permalink:"/docs/study/net/ip"}},u={},c=[{value:"VLAN",id:"vlan",level:3},{value:"VXLAN",id:"vxlan",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],p={toc:c},s="wrapper";function y(e){let{components:t,...r}=e;return(0,l.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,l.yg)("h3",{id:"vlan"},"VLAN"),(0,l.yg)("p",null,"VLAN(Virtual LAN)\uff0c\u7ffb\u8bd1\u6210\u4e2d\u6587\u662f\u201c\u865a\u62df\u5c40\u57df\u7f51\u201d\u3002LAN\u53ef\u4ee5\u662f\u7531\u5c11\u6570\u51e0\u53f0\u5bb6\u7528\u8ba1\u7b97\u673a\u6784\u6210\u7684\u7f51\u7edc\uff0c\u4e5f\u53ef\u4ee5\u662f\u6570\u4ee5\u767e\u8ba1\u7684\u8ba1\u7b97\u673a\u6784\u6210\u7684\u4f01\u4e1a\u7f51\u7edc\u3002VLAN\u6240\u6307\u7684LAN\u7279\u6307\u4f7f\u7528\u8def\u7531\u5668\u5206\u5272\u7684\u7f51\u7edc(\u4e5f\u5c31\u662f\u5e7f\u64ad\u57df)."),(0,l.yg)("p",null,"VLAN\u4f5c\u4e3a\u4f20\u7edf\u7684\u7f51\u7edc\u9694\u79bb\u6280\u672f\uff0c\u5728\u6807\u51c6\u5b9a\u4e49\u4e2dVLAN\u7684\u6570\u91cf\u53ea\u67094000\u4e2a\u5de6\u53f3\uff0c\u65e0\u6cd5\u6ee1\u8db3\u5927\u578b\u6570\u636e\u4e2d\u5fc3\u7684\u79df\u6237\u95f4\u9694\u79bb\u9700\u6c42\u3002\u53e6\u5916\uff0cVLAN\u7684\u4e8c\u5c42\u8303\u56f4\u4e00\u822c\u8f83\u5c0f\u4e14\u56fa\u5b9a\uff0c\u65e0\u6cd5\u652f\u6301\u865a\u62df\u673a\u5927\u8303\u56f4\u7684\u52a8\u6001\u8fc1\u79fb."),(0,l.yg)("h3",{id:"vxlan"},"VXLAN"),(0,l.yg)("p",null,"VXLAN\uff08Virtual eXtensible Local Area Network\uff0c\u865a\u62df\u6269\u5c55\u5c40\u57df\u7f51\uff09\uff0c\u662f\u7531IETF\u5b9a\u4e49\u7684NVO3\uff08Network Virtualization over Layer 3\uff09\u6807\u51c6\u6280\u672f\u4e4b\u4e00\uff0c\u662f\u5bf9\u4f20\u7edfVLAN\u534f\u8bae\u7684\u4e00\u79cd\u6269\u5c55\u3002VXLAN\u7684\u7279\u70b9\u662f\u5c06L2\u7684\u4ee5\u592a\u5e27\u5c01\u88c5\u5230UDP\u6d88\u606f\uff08\u5373L2 over L4\uff09\u4e2d\uff0c\u5e76\u5728L3\u7f51\u7edc\u4e2d\u4f20\u8f93\u3002\u662foverlay\u7f51\u7edc\u7684\u5b9e\u73b0\u6280\u672f\u4e4b\u4e00\u3002"),(0,l.yg)("p",null,"vxlan\u89e3\u51b3\u4e86\u4ec0\u4e48\u5173\u952e\u95ee\u9898"),(0,l.yg)("p",null,"\u865a\u62df\u5316\u670d\u52a1\u5668\u52a8\u6001\u8fc1\u79fb"),(0,l.yg)("p",null,"\u670d\u52a1\u5668\u4ece\u8be5\u4e8c\u5c42\u4ea4\u6362\u673a\u7684\u4e00\u4e2a\u7aef\u53e3\u8fc1\u79fb\u5230\u53e6\u4e00\u4e2a\u7aef\u53e3\u65f6\uff0cIP\u5730\u5740\u662f\u53ef\u4ee5\u4fdd\u6301\u4e0d\u53d8\u7684\uff0cVXLAN\u5229\u7528\u6b64\u8bbe\u8ba1\u7406\u5ff5\uff0c\u5728\u6570\u636e\u4e2d\u5fc3IP\u7f51\u7edc\u57fa\u7840\u4e0a\uff0c\u6784\u5efa\u4e00\u5f20\u5168\u4e92\u8054\u7684\u4e8c\u5c42\u96a7\u9053\u865a\u62df\u7f51\u7edc\uff0c\u4fdd\u8bc1\u4efb\u610f\u4e24\u70b9\u4e4b\u95f4\u90fd\u80fd\u901a\u8fc7VXLAN\u96a7\u9053\u6765\u901a\u4fe1\uff0c\u5e76\u5ffd\u7565\u5e95\u5c42\u7f51\u7edc\u7684\u7ed3\u6784\u548c\u7ec6\u8282\uff0cVXLAN\u4e3a\u5b83\u4eec\u5c06\u6574\u4e2a\u6570\u636e\u4e2d\u5fc3\u57fa\u7840\u7f51\u7edc\u865a\u62df\u6210\u4e86\u4e00\u53f0\u5de8\u5927\u7684\u201c\u4e8c\u5c42\u4ea4\u6362\u673a\uff08\u5927\u4e8c\u5c42\uff09\u201d\uff0c\u6240\u6709\u670d\u52a1\u5668\u90fd\u8fde\u63a5\u5728\u8fd9\u53f0\u865a\u62df\u4e8c\u5c42\u4ea4\u6362\u673a\u4e0a\u3002"),(0,l.yg)("p",null,"\u5927\u89c4\u6a21\u6570\u636e\u4e2d\u5fc3\uff0c\u6d77\u91cf\u79df\u6237\u9694\u79bb\u80fd\u529b"),(0,l.yg)("p",null,"\u5728\u6807\u51c6\u5b9a\u4e49\u4e2dVLAN\u7684\u6570\u91cf\u53ea\u67094000\u4e2a\u5de6\u53f3\uff0c\u65e0\u6cd5\u6ee1\u8db3\u5927\u578b\u6570\u636e\u4e2d\u5fc3\u7684\u79df\u6237\u95f4\u9694\u79bb\u9700\u6c42\u3002 VXLAN\u5b8c\u7f8e\u5730\u5f25\u8865\u4e86VLAN\u7684\u4e0a\u8ff0\u4e0d\u8db3\uff0c\u4e00\u65b9\u9762\u901a\u8fc7VXLAN\u4e2d\u768424\u6bd4\u7279VNI\u5b57\u6bb5\u3002\u63d0\u4f9b\u591a\u8fbe16M\u79df\u6237\u7684\u6807\u8bc6\u80fd\u529b"),(0,l.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://blog.csdn.net/ecloud_developer/article/details/120526041"},"csdn-vlan\u548cvxlan"))))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4f6149ca.fb80bb24.js b/assets/js/4f6149ca.6da63705.js similarity index 98% rename from assets/js/4f6149ca.fb80bb24.js rename to assets/js/4f6149ca.6da63705.js index 8250eb308..f862f0087 100644 --- a/assets/js/4f6149ca.fb80bb24.js +++ b/assets/js/4f6149ca.6da63705.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6923],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>m});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},d="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),d=p(r),f=o,m=d["".concat(l,".").concat(f)]||d[f]||s[f]||a;return r?n.createElement(m,i(i({ref:t},u),{},{components:r})):n.createElement(m,i({ref:t},u))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=f;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[d]="string"==typeof e?e:o,i[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>s,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={sidebar_position:1},i="\u6982\u8ff0",c={unversionedId:"iotcloud/devicemanager/index",id:"iotcloud/devicemanager/index",title:"\u6982\u8ff0",description:"\u8bbe\u5907\u7ba1\u7406\u7684\u5185\u5bb9\u5305\u62ec\u8bbe\u5907\u7c7b\u578b\u53ca\u5176\u9644\u5c5e\u529f\u80fd\u7684\u7ba1\u7406\u3001\u8bbe\u5907\u4fe1\u606f\u53ca\u5176\u9644\u5c5e\u529f\u80fd\u7684\u7ba1\u7406\u3001\u8bbe\u5907\u5206\u7ec4\u53ca\u5176\u9644\u5c5e\u529f\u80fd\u7684\u7ba1\u7406\u3002",source:"@site/docs/iotcloud/devicemanager/index.md",sourceDirName:"iotcloud/devicemanager",slug:"/iotcloud/devicemanager/",permalink:"/docs/iotcloud/devicemanager/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"iotCloudSidebar",previous:{title:"HTTP \u8bbe\u5907\u63a5\u5165",permalink:"/docs/iotcloud/connect/http"},next:{title:"\u8bbe\u5907\u7c7b\u578b\u7ba1\u7406",permalink:"/docs/iotcloud/devicemanager/device-type"}},l={},p=[],u={toc:p},d="wrapper";function s(e){let{components:t,...r}=e;return(0,o.yg)(d,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,o.yg)("p",null,"\u8bbe\u5907\u7ba1\u7406\u7684\u5185\u5bb9\u5305\u62ec\u8bbe\u5907\u7c7b\u578b\u53ca\u5176\u9644\u5c5e\u529f\u80fd\u7684\u7ba1\u7406\u3001\u8bbe\u5907\u4fe1\u606f\u53ca\u5176\u9644\u5c5e\u529f\u80fd\u7684\u7ba1\u7406\u3001\u8bbe\u5907\u5206\u7ec4\u53ca\u5176\u9644\u5c5e\u529f\u80fd\u7684\u7ba1\u7406\u3002"))}s.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6923],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>m});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},d="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),d=p(r),f=o,m=d["".concat(l,".").concat(f)]||d[f]||s[f]||a;return r?n.createElement(m,i(i({ref:t},u),{},{components:r})):n.createElement(m,i({ref:t},u))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=f;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[d]="string"==typeof e?e:o,i[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>s,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={sidebar_position:1},i="\u6982\u8ff0",c={unversionedId:"iotcloud/devicemanager/index",id:"iotcloud/devicemanager/index",title:"\u6982\u8ff0",description:"\u8bbe\u5907\u7ba1\u7406\u7684\u5185\u5bb9\u5305\u62ec\u8bbe\u5907\u7c7b\u578b\u53ca\u5176\u9644\u5c5e\u529f\u80fd\u7684\u7ba1\u7406\u3001\u8bbe\u5907\u4fe1\u606f\u53ca\u5176\u9644\u5c5e\u529f\u80fd\u7684\u7ba1\u7406\u3001\u8bbe\u5907\u5206\u7ec4\u53ca\u5176\u9644\u5c5e\u529f\u80fd\u7684\u7ba1\u7406\u3002",source:"@site/docs/iotcloud/devicemanager/index.md",sourceDirName:"iotcloud/devicemanager",slug:"/iotcloud/devicemanager/",permalink:"/docs/iotcloud/devicemanager/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"iotCloudSidebar",previous:{title:"HTTP \u8bbe\u5907\u63a5\u5165",permalink:"/docs/iotcloud/connect/http"},next:{title:"\u8bbe\u5907\u7c7b\u578b\u7ba1\u7406",permalink:"/docs/iotcloud/devicemanager/device-type"}},l={},p=[],u={toc:p},d="wrapper";function s(e){let{components:t,...r}=e;return(0,o.yg)(d,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,o.yg)("p",null,"\u8bbe\u5907\u7ba1\u7406\u7684\u5185\u5bb9\u5305\u62ec\u8bbe\u5907\u7c7b\u578b\u53ca\u5176\u9644\u5c5e\u529f\u80fd\u7684\u7ba1\u7406\u3001\u8bbe\u5907\u4fe1\u606f\u53ca\u5176\u9644\u5c5e\u529f\u80fd\u7684\u7ba1\u7406\u3001\u8bbe\u5907\u5206\u7ec4\u53ca\u5176\u9644\u5c5e\u529f\u80fd\u7684\u7ba1\u7406\u3002"))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4fb554a1.2ca029ea.js b/assets/js/4fb554a1.45adcf24.js similarity index 99% rename from assets/js/4fb554a1.2ca029ea.js rename to assets/js/4fb554a1.45adcf24.js index 9d03120a5..677d4d27f 100644 --- a/assets/js/4fb554a1.2ca029ea.js +++ b/assets/js/4fb554a1.45adcf24.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8859],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),s=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=s(e.components);return n.createElement(l.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),p=s(r),y=o,f=p["".concat(l,".").concat(y)]||p[y]||d[y]||a;return r?n.createElement(f,i(i({ref:t},u),{},{components:r})):n.createElement(f,i({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=y;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[p]="string"==typeof e?e:o,i[1]=c;for(var s=2;s{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>s});var n=r(8168),o=(r(6540),r(5680));const a={sidebar_position:1},i=void 0,c={unversionedId:"study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/\u7efc\u5408\u6982\u8ff0",id:"study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/\u7efc\u5408\u6982\u8ff0",title:"\u7efc\u5408\u6982\u8ff0",description:"\u4f20\u7edf\u7684\u5173\u7cfb\u578b\u6570\u636e\u5e93\u901a\u8fc7\u7d22\u5f15\u6765\u8fbe\u5230\u5feb\u901f\u67e5\u8be2\u7684\u76ee\u7684\uff0c\u4f46\u662f\u5728\u5168\u6587\u641c\u7d22\u7684\u4e1a\u52a1\u573a\u666f\u4e0b\uff0c\u7d22\u5f15\u4e5f\u65e0\u80fd\u4e3a\u529b\uff0c\u4e3b\u8981\u4f53\u73b0\u5728\uff1a",source:"@site/docs/study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/\u7efc\u5408\u6982\u8ff0.md",sourceDirName:"study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce",slug:"/study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/\u7efc\u5408\u6982\u8ff0",permalink:"/docs/study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/\u7efc\u5408\u6982\u8ff0",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"\u8fbe\u68a6\u6570\u636e\u5e93",permalink:"/docs/study/db/SQL/\u8fbe\u68a6"},next:{title:"Elasticsearch",permalink:"/docs/study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/Elasticsearch"}},l={},s=[{value:"\u5168\u6587\u641c\u7d22\u57fa\u672c\u539f\u7406",id:"\u5168\u6587\u641c\u7d22\u57fa\u672c\u539f\u7406",level:3}],u={toc:s},p="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(p,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"\u4f20\u7edf\u7684\u5173\u7cfb\u578b\u6570\u636e\u5e93\u901a\u8fc7\u7d22\u5f15\u6765\u8fbe\u5230\u5feb\u901f\u67e5\u8be2\u7684\u76ee\u7684\uff0c\u4f46\u662f\u5728\u5168\u6587\u641c\u7d22\u7684\u4e1a\u52a1\u573a\u666f\u4e0b\uff0c\u7d22\u5f15\u4e5f\u65e0\u80fd\u4e3a\u529b\uff0c\u4e3b\u8981\u4f53\u73b0\u5728\uff1a"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"\u5168\u6587\u641c\u7d22\u7684\u6761\u4ef6\u53ef\u4ee5\u968f\u610f\u6392\u5217\u7ec4\u5408\uff0c\u5982\u679c\u901a\u8fc7\u7d22\u5f15\u6765\u6ee1\u8db3\uff0c\u5219\u7d22\u5f15\u7684\u6570\u91cf\u4f1a\u975e\u5e38\u591a\u3002"),(0,o.yg)("li",{parentName:"ul"},"\u5168\u6587\u641c\u7d22\u7684\u6a21\u7cca\u5339\u914d\u65b9\u5f0f\uff0c\u7d22\u5f15\u65e0\u6cd5\u6ee1\u8db3\uff0c\u53ea\u80fd\u7528 like \u67e5\u8be2\uff0c\u800c like \u67e5\u8be2\u662f\u6574\u8868\u626b\u63cf\uff0c\u6548\u7387\u975e\u5e38\u4f4e\u3002")),(0,o.yg)("h3",{id:"\u5168\u6587\u641c\u7d22\u57fa\u672c\u539f\u7406"},"\u5168\u6587\u641c\u7d22\u57fa\u672c\u539f\u7406"),(0,o.yg)("p",null,"\u5168\u6587\u641c\u7d22\u5f15\u64ce\u7684\u6280\u672f\u539f\u7406\u88ab\u79f0\u4e3a\u201c\u5012\u6392\u7d22\u5f15\u201d\uff08Inverted index\uff09\uff0c\u4e5f\u5e38\u88ab\u79f0\u4e3a\u53cd\u5411\u7d22\u5f15\u3001\u7f6e\u5165\u6863\u6848\u6216\u53cd\u5411\u6863\u6848\uff0c\u662f\u4e00\u79cd\u7d22\u5f15\u65b9\u6cd5\uff0c\u5176\u57fa\u672c\u539f\u7406\u662f\u5efa\u7acb\u5355\u8bcd\u5230\u6587\u6863\u7684\u7d22\u5f15\u3002\u4e4b\u6240\u4ee5\u88ab\u79f0\u4e3a\u201c\u5012\u6392\u201d\u7d22\u5f15\uff0c\u662f\u548c\u201c\u6b63\u6392\u201c\u7d22\u5f15\u76f8\u5bf9\u7684\uff0c\u201c\u6b63\u6392\u7d22\u5f15\u201d\u7684\u57fa\u672c\u539f\u7406\u662f\u5efa\u7acb\u6587\u6863\u5230\u5355\u8bcd\u7684\u7d22\u5f15\u3002\u6211\u4eec\u901a\u8fc7\u4e00\u4e2a\u7b80\u5355\u7684\u6837\u4f8b\u6765\u8bf4\u660e\u8fd9\u4e24\u79cd\u7d22\u5f15\u7684\u5dee\u5f02\u3002"),(0,o.yg)("p",null,"\u5168\u6587\u641c\u7d22\u5f15\u64ce\u7684\u7d22\u5f15\u5bf9\u8c61\u662f\u5355\u8bcd\u548c\u6587\u6863\uff0c\u800c\u5173\u7cfb\u6570\u636e\u5e93\u7684\u7d22\u5f15\u5bf9\u8c61\u662f\u952e\u548c\u884c\uff0c\u4e24\u8005\u7684\u672f\u8bed\u5dee\u5f02\u5f88\u5927\uff0c\u4e0d\u80fd\u7b80\u5355\u5730\u7b49\u540c\u8d77\u6765\u3002\u56e0\u6b64\uff0c\u4e3a\u4e86\u8ba9\u5168\u6587\u641c\u7d22\u5f15\u64ce\u652f\u6301\u5173\u7cfb\u578b\u6570\u636e\u7684\u5168\u6587\u641c\u7d22\uff0c\u9700\u8981\u505a\u4e00\u4e9b\u8f6c\u6362\u64cd\u4f5c\uff0c\u5373\u5c06\u5173\u7cfb\u578b\u6570\u636e\u8f6c\u6362\u4e3a\u6587\u6863\u6570\u636e\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8859],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),s=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=s(e.components);return n.createElement(l.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),p=s(r),y=o,f=p["".concat(l,".").concat(y)]||p[y]||d[y]||a;return r?n.createElement(f,i(i({ref:t},u),{},{components:r})):n.createElement(f,i({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=y;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[p]="string"==typeof e?e:o,i[1]=c;for(var s=2;s{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>s});var n=r(8168),o=(r(6540),r(5680));const a={sidebar_position:1},i=void 0,c={unversionedId:"study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/\u7efc\u5408\u6982\u8ff0",id:"study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/\u7efc\u5408\u6982\u8ff0",title:"\u7efc\u5408\u6982\u8ff0",description:"\u4f20\u7edf\u7684\u5173\u7cfb\u578b\u6570\u636e\u5e93\u901a\u8fc7\u7d22\u5f15\u6765\u8fbe\u5230\u5feb\u901f\u67e5\u8be2\u7684\u76ee\u7684\uff0c\u4f46\u662f\u5728\u5168\u6587\u641c\u7d22\u7684\u4e1a\u52a1\u573a\u666f\u4e0b\uff0c\u7d22\u5f15\u4e5f\u65e0\u80fd\u4e3a\u529b\uff0c\u4e3b\u8981\u4f53\u73b0\u5728\uff1a",source:"@site/docs/study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/\u7efc\u5408\u6982\u8ff0.md",sourceDirName:"study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce",slug:"/study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/\u7efc\u5408\u6982\u8ff0",permalink:"/docs/study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/\u7efc\u5408\u6982\u8ff0",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"\u8fbe\u68a6\u6570\u636e\u5e93",permalink:"/docs/study/db/SQL/\u8fbe\u68a6"},next:{title:"Elasticsearch",permalink:"/docs/study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/Elasticsearch"}},l={},s=[{value:"\u5168\u6587\u641c\u7d22\u57fa\u672c\u539f\u7406",id:"\u5168\u6587\u641c\u7d22\u57fa\u672c\u539f\u7406",level:3}],u={toc:s},p="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(p,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"\u4f20\u7edf\u7684\u5173\u7cfb\u578b\u6570\u636e\u5e93\u901a\u8fc7\u7d22\u5f15\u6765\u8fbe\u5230\u5feb\u901f\u67e5\u8be2\u7684\u76ee\u7684\uff0c\u4f46\u662f\u5728\u5168\u6587\u641c\u7d22\u7684\u4e1a\u52a1\u573a\u666f\u4e0b\uff0c\u7d22\u5f15\u4e5f\u65e0\u80fd\u4e3a\u529b\uff0c\u4e3b\u8981\u4f53\u73b0\u5728\uff1a"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"\u5168\u6587\u641c\u7d22\u7684\u6761\u4ef6\u53ef\u4ee5\u968f\u610f\u6392\u5217\u7ec4\u5408\uff0c\u5982\u679c\u901a\u8fc7\u7d22\u5f15\u6765\u6ee1\u8db3\uff0c\u5219\u7d22\u5f15\u7684\u6570\u91cf\u4f1a\u975e\u5e38\u591a\u3002"),(0,o.yg)("li",{parentName:"ul"},"\u5168\u6587\u641c\u7d22\u7684\u6a21\u7cca\u5339\u914d\u65b9\u5f0f\uff0c\u7d22\u5f15\u65e0\u6cd5\u6ee1\u8db3\uff0c\u53ea\u80fd\u7528 like \u67e5\u8be2\uff0c\u800c like \u67e5\u8be2\u662f\u6574\u8868\u626b\u63cf\uff0c\u6548\u7387\u975e\u5e38\u4f4e\u3002")),(0,o.yg)("h3",{id:"\u5168\u6587\u641c\u7d22\u57fa\u672c\u539f\u7406"},"\u5168\u6587\u641c\u7d22\u57fa\u672c\u539f\u7406"),(0,o.yg)("p",null,"\u5168\u6587\u641c\u7d22\u5f15\u64ce\u7684\u6280\u672f\u539f\u7406\u88ab\u79f0\u4e3a\u201c\u5012\u6392\u7d22\u5f15\u201d\uff08Inverted index\uff09\uff0c\u4e5f\u5e38\u88ab\u79f0\u4e3a\u53cd\u5411\u7d22\u5f15\u3001\u7f6e\u5165\u6863\u6848\u6216\u53cd\u5411\u6863\u6848\uff0c\u662f\u4e00\u79cd\u7d22\u5f15\u65b9\u6cd5\uff0c\u5176\u57fa\u672c\u539f\u7406\u662f\u5efa\u7acb\u5355\u8bcd\u5230\u6587\u6863\u7684\u7d22\u5f15\u3002\u4e4b\u6240\u4ee5\u88ab\u79f0\u4e3a\u201c\u5012\u6392\u201d\u7d22\u5f15\uff0c\u662f\u548c\u201c\u6b63\u6392\u201c\u7d22\u5f15\u76f8\u5bf9\u7684\uff0c\u201c\u6b63\u6392\u7d22\u5f15\u201d\u7684\u57fa\u672c\u539f\u7406\u662f\u5efa\u7acb\u6587\u6863\u5230\u5355\u8bcd\u7684\u7d22\u5f15\u3002\u6211\u4eec\u901a\u8fc7\u4e00\u4e2a\u7b80\u5355\u7684\u6837\u4f8b\u6765\u8bf4\u660e\u8fd9\u4e24\u79cd\u7d22\u5f15\u7684\u5dee\u5f02\u3002"),(0,o.yg)("p",null,"\u5168\u6587\u641c\u7d22\u5f15\u64ce\u7684\u7d22\u5f15\u5bf9\u8c61\u662f\u5355\u8bcd\u548c\u6587\u6863\uff0c\u800c\u5173\u7cfb\u6570\u636e\u5e93\u7684\u7d22\u5f15\u5bf9\u8c61\u662f\u952e\u548c\u884c\uff0c\u4e24\u8005\u7684\u672f\u8bed\u5dee\u5f02\u5f88\u5927\uff0c\u4e0d\u80fd\u7b80\u5355\u5730\u7b49\u540c\u8d77\u6765\u3002\u56e0\u6b64\uff0c\u4e3a\u4e86\u8ba9\u5168\u6587\u641c\u7d22\u5f15\u64ce\u652f\u6301\u5173\u7cfb\u578b\u6570\u636e\u7684\u5168\u6587\u641c\u7d22\uff0c\u9700\u8981\u505a\u4e00\u4e9b\u8f6c\u6362\u64cd\u4f5c\uff0c\u5373\u5c06\u5173\u7cfb\u578b\u6570\u636e\u8f6c\u6362\u4e3a\u6587\u6863\u6570\u636e\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/50eef34b.231af15e.js b/assets/js/50eef34b.99f6638b.js similarity index 99% rename from assets/js/50eef34b.231af15e.js rename to assets/js/50eef34b.99f6638b.js index d90dcf65c..20013804b 100644 --- a/assets/js/50eef34b.231af15e.js +++ b/assets/js/50eef34b.99f6638b.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5861],{5680:(e,t,r)=>{r.d(t,{xA:()=>c,yg:()=>u});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),m=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},c=function(e){var t=m(e.components);return n.createElement(i.Provider,{value:t},e.children)},y="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},g=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,c=p(e,["components","mdxType","originalType","parentName"]),y=m(r),g=a,u=y["".concat(i,".").concat(g)]||y[g]||s[g]||o;return r?n.createElement(u,l(l({ref:t},c),{},{components:r})):n.createElement(u,l({ref:t},c))}));function u(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=g;var p={};for(var i in t)hasOwnProperty.call(t,i)&&(p[i]=t[i]);p.originalType=e,p[y]="string"==typeof e?e:a,l[1]=p;for(var m=2;m{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>s,frontMatter:()=>o,metadata:()=>p,toc:()=>m});var n=r(8168),a=(r(6540),r(5680));const o={sidebar_position:1},l=void 0,p={unversionedId:"study/competitive/\u5de5\u4e1a\u4e92\u8054\u7f51\u63a2\u7a76",id:"study/competitive/\u5de5\u4e1a\u4e92\u8054\u7f51\u63a2\u7a76",title:"\u5de5\u4e1a\u4e92\u8054\u7f51\u63a2\u7a76",description:"\u5206\u7c7b\uff1a\u884c\u4e1a+\u573a\u666f+\u6a21\u5f0f",source:"@site/docs/study/competitive/\u5de5\u4e1a\u4e92\u8054\u7f51\u63a2\u7a76.md",sourceDirName:"study/competitive",slug:"/study/competitive/\u5de5\u4e1a\u4e92\u8054\u7f51\u63a2\u7a76",permalink:"/docs/study/competitive/\u5de5\u4e1a\u4e92\u8054\u7f51\u63a2\u7a76",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"\u6982\u8ff0",permalink:"/docs/study/competitive/"},next:{title:"CMP-DMP-AEP-BAP",permalink:"/docs/study/competitive/CMP-DMP-AEP-BAP"}},i={},m=[{value:"\u5206\u7c7b\uff1a\u884c\u4e1a+\u573a\u666f+\u6a21\u5f0f",id:"\u5206\u7c7b\u884c\u4e1a\u573a\u666f\u6a21\u5f0f",level:3},{value:"\u901a\u7528\u578b\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0",id:"\u901a\u7528\u578b\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0",level:3},{value:"\u5782\u76f4\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0\u53ca\u89e3\u51b3\u65b9\u6848",id:"\u5782\u76f4\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0\u53ca\u89e3\u51b3\u65b9\u6848",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],c={toc:m},y="wrapper";function s(e){let{components:t,...r}=e;return(0,a.yg)(y,(0,n.A)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u5206\u7c7b\u884c\u4e1a\u573a\u666f\u6a21\u5f0f"},"\u5206\u7c7b\uff1a\u884c\u4e1a+\u573a\u666f+\u6a21\u5f0f"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"\u201c\u573a\u666f\u201d\u6307\u8bbe\u5907\u8d44\u4ea7\u7ba1\u7406\u3001\u4e1a\u52a1\u8fd0\u8425\u4f18\u5316\u548c\u4ea7\u4e1a\u751f\u6001\u521b\u65b0\u4e09\u79cd\uff1b"),(0,a.yg)("li",{parentName:"ol"},"\u201c\u6a21\u5f0f\u201d\u5219\u5305\u62ec\u901a\u7528\u578b\u5e73\u53f0\u3001\u5782\u76f4\u884c\u4e1a\u5e73\u53f0\u3001\u5e73\u53f0\u89e3\u51b3\u65b9\u6848\u3001\u5de5\u4e1aApp/\u7ec6\u5206\u89e3\u51b3\u65b9\u6848\u4ee5\u53caIAAS\u5c42\uff08\u4e3b\u8981\u63d0\u4f9b\u4e91\u670d\u52a1\uff0c\u57fa\u672c\u5c31\u662f\u963f\u91cc\u4e91\u3001\u534e\u4e3a\u4e91\u3001\u817e\u8baf\u4e91\u3001AWS\u7b49\uff0c\u4e0d\u5728\u672c\u6587\u8ba8\u8bba\u8303\u56f4\uff09\u4e94\u7c7b")),(0,a.yg)("h3",{id:"\u901a\u7528\u578b\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0"},"\u901a\u7528\u578b\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0"),(0,a.yg)("p",null,"\u901a\u7528\u578b\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0\u8de8\u591a\u884c\u4e1a\u591a\u9886\u57df\uff0c\u5f80\u5f80\u4f1a\u57fa\u4e8e\u81ea\u8eabPaaS\u5c42\u4e0e\u751f\u6001\u4f19\u4f34\u5408\u4f5c\u63a8\u52a8\u5728\u5404\u884c\u4e1a\u3001\u9886\u57df\u7684\u5de5\u4e1a\u4e92\u8054\u7f51\u5efa\u8bbe\u3002\u4e5f\u6b63\u662f\u56e0\u4e3a\u5176\u8de8\u884c\u4e1a\u8de8\u9886\u57df\u7279\u6027\uff0c\u5de5\u4e1a\u4e92\u8054\u7f51\u901a\u7528\u578b\u5e73\u53f0\u5efa\u8bbe\u96be\u5ea6\u5927\uff0c\u5c5e\u4e8e\u8d44\u6e90\u548c\u8d44\u91d1\u5bc6\u96c6\u578b\u7684\u673a\u4f1a\u3002"),(0,a.yg)("p",null,"2019\u5e748\u670826\u65e5\uff0c\u5de5\u4fe1\u90e8\u516c\u5e032019\u5e74\u5341\u5927\u8de8\u884c\u4e1a\u8de8\u9886\u57df\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0\u6e05\u5355\uff0c\u5165\u9009\u5e73\u53f0\u5206\u522b\u662f\uff1a",(0,a.yg)("strong",{parentName:"p"},"\u6d77\u5c14COSMOPlat\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0"),"\u3001",(0,a.yg)("strong",{parentName:"p"},"\u4e1c\u65b9\u56fd\u4fe1Cloudiip\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0"),"\u3001",(0,a.yg)("strong",{parentName:"p"},"\u7528\u53cb\u7cbe\u667a\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0"),"\u3001",(0,a.yg)("strong",{parentName:"p"},"\u6811\u6839\u4e92\u8054\u6839\u4e91\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0"),"\u3001",(0,a.yg)("strong",{parentName:"p"},"\u822a\u5929\u4e91\u7f51INDICS\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0"),"\u3001",(0,a.yg)("strong",{parentName:"p"},"\u6d6a\u6f6e\u4e91In-Cloud\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0"),"\u3001",(0,a.yg)("strong",{parentName:"p"},"\u534e\u4e3aFusionPlant\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0"),"\u3001",(0,a.yg)("strong",{parentName:"p"},"\u5bcc\u58eb\u5eb7BEACON\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0"),"\u3001",(0,a.yg)("strong",{parentName:"p"},"\u963f\u91ccsupET\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0"),"\u3001",(0,a.yg)("strong",{parentName:"p"},"\u5f90\u5de5\u4fe1\u606f\u6c49\u4e91\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0"),"\uff0c\u8fd9\u5341\u5bb6\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0\u5373\u662f\u901a\u7528\u578b\u5e73\u53f0\u7684\u5178\u578b\u6848\u4f8b\u3002"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"http://www.rootcloud.com"},"\u6811\u6839\u4e92\u8054(\u4e09\u4e00\u91cd\u5de5)")),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"http://www.hanplatform.com"},"\u6c49\u4e91\u5de5\u4e1a\u7269\u8054\u7f51\u5e73\u53f0(\u5f90\u5de5\u4fe1\u606f)"))),(0,a.yg)("h3",{id:"\u5782\u76f4\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0\u53ca\u89e3\u51b3\u65b9\u6848"},"\u5782\u76f4\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0\u53ca\u89e3\u51b3\u65b9\u6848"),(0,a.yg)("p",null,"\u901a\u7528\u578b\u5e73\u53f0\u201c\u4e00\u4e2a\u5e73\u53f0\u5305\u6253\u5929\u4e0b\u201d\u7684\u6a21\u5f0f\u6bd4\u8f83\u96be\u5728\u884c\u4e1a\u5185\u6df1\u8015\uff0c\u4e0d\u540c\u884c\u4e1a\u751f\u4ea7\u573a\u666f\u7684\u5de8\u5927\u5dee\u522b\u4e5f\u7ed9\u4e86\u5782\u76f4\u9886\u57df\u4e92\u8054\u7f51\u5e73\u53f0\u53ca\u89e3\u51b3\u65b9\u6848\u53d1\u5c55\u7684\u673a\u4f1a\u3002\u4e0b\u9762\u4ece\u5de5\u4e1a\u4e92\u8054\u7f51\u4e09\u5927\u5e94\u7528\u573a\u666f",(0,a.yg)("strong",{parentName:"p"},"\u8bbe\u5907\u8d44\u4ea7\u7ba1\u7406\u3001\u4e1a\u52a1\u8fd0\u8425\u4f18\u5316\u3001\u4ea7\u4e1a\u751f\u6001\u521b\u65b0"),"\u51fa\u53d1\uff0c\u5217\u4e3e\u5782\u76f4\u884c\u4e1a\u5e73\u53f0\u3001\u5e73\u53f0\u89e3\u51b3\u65b9\u6848\u4ee5\u53ca\u5de5\u4e1aApp\u7b49\u7ec6\u5206\u89e3\u51b3\u65b9\u6848\u4e09\u7c7b\u56fd\u5185\u5de5\u4e1a\u4e92\u8054\u7f51\u516c\u53f8\u3002\u5176\u4e2d\uff0c\u5782\u76f4\u884c\u4e1a\u5e73\u53f0\u53ea\u805a\u7126\u4e8e\u67d0\u4e00\u4e2a\u9886\u57df\u6216\u884c\u4e1a\uff1b\u5e73\u53f0\u89e3\u51b3\u65b9\u6848\u9664\u4e86\u5e73\u53f0\uff0c\u8fd8\u4f1a\u63d0\u4f9b\u6574\u4f53\u89e3\u51b3\u65b9\u6848\uff0c\u6a21\u5f0f\u66f4\u201c\u91cd\u201d\u3002\u9664\u4e86\u4ee5\u4e0a\u7aef\u5230\u7aef\u7684\u5e73\u53f0\u6a21\u5f0f\uff0c\u8fd8\u6709\u4e00\u7c7b\u516c\u53f8\u662f\u9488\u5bf9\u5de5\u4e1a\u573a\u666f\u4e2d\u7684\u67d0\u4e00\u4e2a\u75db\u70b9\u63d0\u4f9b\u7ec6\u5206\u89e3\u51b3\u65b9\u6848\uff0c\u8fd9\u79cd\u5c31\u662f\u5de5\u4e1aAPP/\u7ec6\u5206\u5e94\u7528\u3002\xa0"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"http://www.mogulinker.com/index.html"},"\u8611\u83c7\u4e92\u8054"),"\uff08\u5782\u76f4\u884c\u4e1a\u5e73\u53f0\uff09",(0,a.yg)("ol",{parentName:"li"},(0,a.yg)("li",{parentName:"ol"},"\u8bbe\u5907\u4ea7\u4e1a\u94fe\u4e09\u5927\u4e3b\u9898\uff1a\u8bbe\u5907\u5236\u9020\u4f01\u4e1a\u3001\u8bbe\u5907\u4ee3\u7406/\u670d\u52a1\u4f01\u4e1a\u3001\u8bbe\u5907\u7528\u6237\u4f01\u4e1a\uff1b"),(0,a.yg)("li",{parentName:"ol"},"\u8611\u83c7\u4e91\u76d2+\u8611\u83c7\u4e91+\u8611\u83c7\u5708\uff1b"),(0,a.yg)("li",{parentName:"ol"},'\u4e3a\u8bbe\u5907\u5236\u9020\u5546\u5b9a\u5236"\u7269\u8054\u7f51\u96c6\u6210\u7ba1\u7406\u7cfb\u7edf"\uff1b'),(0,a.yg)("li",{parentName:"ol"},'\u4e3a\u8bbe\u5907\u4ee3\u7406/\u670d\u52a1\u5546\u63d0\u4f9b"\u4e00\u7ad9\u5f0f\u7269\u8054\u7f51\u7ba1\u7406\u5de5\u5177"\uff1b'),(0,a.yg)("li",{parentName:"ol"},'\u4e3a\u8bbe\u5907\u7528\u6237\u4f01\u4e1a\u6253\u9020"\u6570\u5b57\u667a\u80fd\u7ba1\u7406\u8f66\u95f4\u7cfb"\uff1b'))),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"https://www.isesol.com"},"\u667a\u80fd\u4e91\u79d1"),"\uff08\u5782\u76f4\u884c\u4e1a\u5e73\u53f0\uff09"),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"http://www.proudsmart.com"},"\u666e\u5965\u4e91\u79d1\u6280"),"\uff08\u5e73\u53f0\u89e3\u51b3\u65b9\u6848\uff09"),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"https://www.neucloud.cn"},"\u5bc4\u4e91\u79d1\u6280"),"\uff08\u5e73\u53f0\u89e3\u51b3\u65b9\u6848\uff09"),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"http://www.pi2star.com"},"\u6e43\u65b9\u79d1\u6280"),"\uff08\u5e73\u53f0\u89e3\u51b3\u65b9\u6848\uff09"),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"https://www.cyber-insight.com"},"\u5929\u6cfd\u667a\u4e91"),"\uff08\u5e73\u53f0\u89e3\u51b3\u65b9\u6848\uff09")),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"https://mp.weixin.qq.com/s/0-jAmmJE4mVGnajb_QlFog"},"\u8fd1\u4e07\u4ebf\u5de5\u4e1a\u4e92\u8054\u7f51\u8d5b\u9053\u6709\u54ea\u4e9b\u73a9\u5bb6\uff1f\u8fd9\u91cc\u6709\u4e00\u4efd\u884c\u4e1a\u56fe\u8c31"))))}s.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5861],{5680:(e,t,r)=>{r.d(t,{xA:()=>c,yg:()=>u});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),m=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},c=function(e){var t=m(e.components);return n.createElement(i.Provider,{value:t},e.children)},y="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},g=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,c=p(e,["components","mdxType","originalType","parentName"]),y=m(r),g=a,u=y["".concat(i,".").concat(g)]||y[g]||s[g]||o;return r?n.createElement(u,l(l({ref:t},c),{},{components:r})):n.createElement(u,l({ref:t},c))}));function u(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=g;var p={};for(var i in t)hasOwnProperty.call(t,i)&&(p[i]=t[i]);p.originalType=e,p[y]="string"==typeof e?e:a,l[1]=p;for(var m=2;m{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>s,frontMatter:()=>o,metadata:()=>p,toc:()=>m});var n=r(8168),a=(r(6540),r(5680));const o={sidebar_position:1},l=void 0,p={unversionedId:"study/competitive/\u5de5\u4e1a\u4e92\u8054\u7f51\u63a2\u7a76",id:"study/competitive/\u5de5\u4e1a\u4e92\u8054\u7f51\u63a2\u7a76",title:"\u5de5\u4e1a\u4e92\u8054\u7f51\u63a2\u7a76",description:"\u5206\u7c7b\uff1a\u884c\u4e1a+\u573a\u666f+\u6a21\u5f0f",source:"@site/docs/study/competitive/\u5de5\u4e1a\u4e92\u8054\u7f51\u63a2\u7a76.md",sourceDirName:"study/competitive",slug:"/study/competitive/\u5de5\u4e1a\u4e92\u8054\u7f51\u63a2\u7a76",permalink:"/docs/study/competitive/\u5de5\u4e1a\u4e92\u8054\u7f51\u63a2\u7a76",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"\u6982\u8ff0",permalink:"/docs/study/competitive/"},next:{title:"CMP-DMP-AEP-BAP",permalink:"/docs/study/competitive/CMP-DMP-AEP-BAP"}},i={},m=[{value:"\u5206\u7c7b\uff1a\u884c\u4e1a+\u573a\u666f+\u6a21\u5f0f",id:"\u5206\u7c7b\u884c\u4e1a\u573a\u666f\u6a21\u5f0f",level:3},{value:"\u901a\u7528\u578b\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0",id:"\u901a\u7528\u578b\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0",level:3},{value:"\u5782\u76f4\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0\u53ca\u89e3\u51b3\u65b9\u6848",id:"\u5782\u76f4\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0\u53ca\u89e3\u51b3\u65b9\u6848",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],c={toc:m},y="wrapper";function s(e){let{components:t,...r}=e;return(0,a.yg)(y,(0,n.A)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u5206\u7c7b\u884c\u4e1a\u573a\u666f\u6a21\u5f0f"},"\u5206\u7c7b\uff1a\u884c\u4e1a+\u573a\u666f+\u6a21\u5f0f"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"\u201c\u573a\u666f\u201d\u6307\u8bbe\u5907\u8d44\u4ea7\u7ba1\u7406\u3001\u4e1a\u52a1\u8fd0\u8425\u4f18\u5316\u548c\u4ea7\u4e1a\u751f\u6001\u521b\u65b0\u4e09\u79cd\uff1b"),(0,a.yg)("li",{parentName:"ol"},"\u201c\u6a21\u5f0f\u201d\u5219\u5305\u62ec\u901a\u7528\u578b\u5e73\u53f0\u3001\u5782\u76f4\u884c\u4e1a\u5e73\u53f0\u3001\u5e73\u53f0\u89e3\u51b3\u65b9\u6848\u3001\u5de5\u4e1aApp/\u7ec6\u5206\u89e3\u51b3\u65b9\u6848\u4ee5\u53caIAAS\u5c42\uff08\u4e3b\u8981\u63d0\u4f9b\u4e91\u670d\u52a1\uff0c\u57fa\u672c\u5c31\u662f\u963f\u91cc\u4e91\u3001\u534e\u4e3a\u4e91\u3001\u817e\u8baf\u4e91\u3001AWS\u7b49\uff0c\u4e0d\u5728\u672c\u6587\u8ba8\u8bba\u8303\u56f4\uff09\u4e94\u7c7b")),(0,a.yg)("h3",{id:"\u901a\u7528\u578b\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0"},"\u901a\u7528\u578b\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0"),(0,a.yg)("p",null,"\u901a\u7528\u578b\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0\u8de8\u591a\u884c\u4e1a\u591a\u9886\u57df\uff0c\u5f80\u5f80\u4f1a\u57fa\u4e8e\u81ea\u8eabPaaS\u5c42\u4e0e\u751f\u6001\u4f19\u4f34\u5408\u4f5c\u63a8\u52a8\u5728\u5404\u884c\u4e1a\u3001\u9886\u57df\u7684\u5de5\u4e1a\u4e92\u8054\u7f51\u5efa\u8bbe\u3002\u4e5f\u6b63\u662f\u56e0\u4e3a\u5176\u8de8\u884c\u4e1a\u8de8\u9886\u57df\u7279\u6027\uff0c\u5de5\u4e1a\u4e92\u8054\u7f51\u901a\u7528\u578b\u5e73\u53f0\u5efa\u8bbe\u96be\u5ea6\u5927\uff0c\u5c5e\u4e8e\u8d44\u6e90\u548c\u8d44\u91d1\u5bc6\u96c6\u578b\u7684\u673a\u4f1a\u3002"),(0,a.yg)("p",null,"2019\u5e748\u670826\u65e5\uff0c\u5de5\u4fe1\u90e8\u516c\u5e032019\u5e74\u5341\u5927\u8de8\u884c\u4e1a\u8de8\u9886\u57df\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0\u6e05\u5355\uff0c\u5165\u9009\u5e73\u53f0\u5206\u522b\u662f\uff1a",(0,a.yg)("strong",{parentName:"p"},"\u6d77\u5c14COSMOPlat\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0"),"\u3001",(0,a.yg)("strong",{parentName:"p"},"\u4e1c\u65b9\u56fd\u4fe1Cloudiip\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0"),"\u3001",(0,a.yg)("strong",{parentName:"p"},"\u7528\u53cb\u7cbe\u667a\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0"),"\u3001",(0,a.yg)("strong",{parentName:"p"},"\u6811\u6839\u4e92\u8054\u6839\u4e91\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0"),"\u3001",(0,a.yg)("strong",{parentName:"p"},"\u822a\u5929\u4e91\u7f51INDICS\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0"),"\u3001",(0,a.yg)("strong",{parentName:"p"},"\u6d6a\u6f6e\u4e91In-Cloud\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0"),"\u3001",(0,a.yg)("strong",{parentName:"p"},"\u534e\u4e3aFusionPlant\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0"),"\u3001",(0,a.yg)("strong",{parentName:"p"},"\u5bcc\u58eb\u5eb7BEACON\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0"),"\u3001",(0,a.yg)("strong",{parentName:"p"},"\u963f\u91ccsupET\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0"),"\u3001",(0,a.yg)("strong",{parentName:"p"},"\u5f90\u5de5\u4fe1\u606f\u6c49\u4e91\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0"),"\uff0c\u8fd9\u5341\u5bb6\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0\u5373\u662f\u901a\u7528\u578b\u5e73\u53f0\u7684\u5178\u578b\u6848\u4f8b\u3002"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"http://www.rootcloud.com"},"\u6811\u6839\u4e92\u8054(\u4e09\u4e00\u91cd\u5de5)")),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"http://www.hanplatform.com"},"\u6c49\u4e91\u5de5\u4e1a\u7269\u8054\u7f51\u5e73\u53f0(\u5f90\u5de5\u4fe1\u606f)"))),(0,a.yg)("h3",{id:"\u5782\u76f4\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0\u53ca\u89e3\u51b3\u65b9\u6848"},"\u5782\u76f4\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0\u53ca\u89e3\u51b3\u65b9\u6848"),(0,a.yg)("p",null,"\u901a\u7528\u578b\u5e73\u53f0\u201c\u4e00\u4e2a\u5e73\u53f0\u5305\u6253\u5929\u4e0b\u201d\u7684\u6a21\u5f0f\u6bd4\u8f83\u96be\u5728\u884c\u4e1a\u5185\u6df1\u8015\uff0c\u4e0d\u540c\u884c\u4e1a\u751f\u4ea7\u573a\u666f\u7684\u5de8\u5927\u5dee\u522b\u4e5f\u7ed9\u4e86\u5782\u76f4\u9886\u57df\u4e92\u8054\u7f51\u5e73\u53f0\u53ca\u89e3\u51b3\u65b9\u6848\u53d1\u5c55\u7684\u673a\u4f1a\u3002\u4e0b\u9762\u4ece\u5de5\u4e1a\u4e92\u8054\u7f51\u4e09\u5927\u5e94\u7528\u573a\u666f",(0,a.yg)("strong",{parentName:"p"},"\u8bbe\u5907\u8d44\u4ea7\u7ba1\u7406\u3001\u4e1a\u52a1\u8fd0\u8425\u4f18\u5316\u3001\u4ea7\u4e1a\u751f\u6001\u521b\u65b0"),"\u51fa\u53d1\uff0c\u5217\u4e3e\u5782\u76f4\u884c\u4e1a\u5e73\u53f0\u3001\u5e73\u53f0\u89e3\u51b3\u65b9\u6848\u4ee5\u53ca\u5de5\u4e1aApp\u7b49\u7ec6\u5206\u89e3\u51b3\u65b9\u6848\u4e09\u7c7b\u56fd\u5185\u5de5\u4e1a\u4e92\u8054\u7f51\u516c\u53f8\u3002\u5176\u4e2d\uff0c\u5782\u76f4\u884c\u4e1a\u5e73\u53f0\u53ea\u805a\u7126\u4e8e\u67d0\u4e00\u4e2a\u9886\u57df\u6216\u884c\u4e1a\uff1b\u5e73\u53f0\u89e3\u51b3\u65b9\u6848\u9664\u4e86\u5e73\u53f0\uff0c\u8fd8\u4f1a\u63d0\u4f9b\u6574\u4f53\u89e3\u51b3\u65b9\u6848\uff0c\u6a21\u5f0f\u66f4\u201c\u91cd\u201d\u3002\u9664\u4e86\u4ee5\u4e0a\u7aef\u5230\u7aef\u7684\u5e73\u53f0\u6a21\u5f0f\uff0c\u8fd8\u6709\u4e00\u7c7b\u516c\u53f8\u662f\u9488\u5bf9\u5de5\u4e1a\u573a\u666f\u4e2d\u7684\u67d0\u4e00\u4e2a\u75db\u70b9\u63d0\u4f9b\u7ec6\u5206\u89e3\u51b3\u65b9\u6848\uff0c\u8fd9\u79cd\u5c31\u662f\u5de5\u4e1aAPP/\u7ec6\u5206\u5e94\u7528\u3002\xa0"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"http://www.mogulinker.com/index.html"},"\u8611\u83c7\u4e92\u8054"),"\uff08\u5782\u76f4\u884c\u4e1a\u5e73\u53f0\uff09",(0,a.yg)("ol",{parentName:"li"},(0,a.yg)("li",{parentName:"ol"},"\u8bbe\u5907\u4ea7\u4e1a\u94fe\u4e09\u5927\u4e3b\u9898\uff1a\u8bbe\u5907\u5236\u9020\u4f01\u4e1a\u3001\u8bbe\u5907\u4ee3\u7406/\u670d\u52a1\u4f01\u4e1a\u3001\u8bbe\u5907\u7528\u6237\u4f01\u4e1a\uff1b"),(0,a.yg)("li",{parentName:"ol"},"\u8611\u83c7\u4e91\u76d2+\u8611\u83c7\u4e91+\u8611\u83c7\u5708\uff1b"),(0,a.yg)("li",{parentName:"ol"},'\u4e3a\u8bbe\u5907\u5236\u9020\u5546\u5b9a\u5236"\u7269\u8054\u7f51\u96c6\u6210\u7ba1\u7406\u7cfb\u7edf"\uff1b'),(0,a.yg)("li",{parentName:"ol"},'\u4e3a\u8bbe\u5907\u4ee3\u7406/\u670d\u52a1\u5546\u63d0\u4f9b"\u4e00\u7ad9\u5f0f\u7269\u8054\u7f51\u7ba1\u7406\u5de5\u5177"\uff1b'),(0,a.yg)("li",{parentName:"ol"},'\u4e3a\u8bbe\u5907\u7528\u6237\u4f01\u4e1a\u6253\u9020"\u6570\u5b57\u667a\u80fd\u7ba1\u7406\u8f66\u95f4\u7cfb"\uff1b'))),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"https://www.isesol.com"},"\u667a\u80fd\u4e91\u79d1"),"\uff08\u5782\u76f4\u884c\u4e1a\u5e73\u53f0\uff09"),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"http://www.proudsmart.com"},"\u666e\u5965\u4e91\u79d1\u6280"),"\uff08\u5e73\u53f0\u89e3\u51b3\u65b9\u6848\uff09"),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"https://www.neucloud.cn"},"\u5bc4\u4e91\u79d1\u6280"),"\uff08\u5e73\u53f0\u89e3\u51b3\u65b9\u6848\uff09"),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"http://www.pi2star.com"},"\u6e43\u65b9\u79d1\u6280"),"\uff08\u5e73\u53f0\u89e3\u51b3\u65b9\u6848\uff09"),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"https://www.cyber-insight.com"},"\u5929\u6cfd\u667a\u4e91"),"\uff08\u5e73\u53f0\u89e3\u51b3\u65b9\u6848\uff09")),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"https://mp.weixin.qq.com/s/0-jAmmJE4mVGnajb_QlFog"},"\u8fd1\u4e07\u4ebf\u5de5\u4e1a\u4e92\u8054\u7f51\u8d5b\u9053\u6709\u54ea\u4e9b\u73a9\u5bb6\uff1f\u8fd9\u91cc\u6709\u4e00\u4efd\u884c\u4e1a\u56fe\u8c31"))))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/52135254.782697c6.js b/assets/js/52135254.b376a4de.js similarity index 98% rename from assets/js/52135254.782697c6.js rename to assets/js/52135254.b376a4de.js index d0903f758..7111a6f38 100644 --- a/assets/js/52135254.782697c6.js +++ b/assets/js/52135254.b376a4de.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1812],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),l=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),s=l(r),f=o,y=s["".concat(p,".").concat(f)]||s[f]||d[f]||a;return r?n.createElement(y,c(c({ref:t},u),{},{components:r})):n.createElement(y,c({ref:t},u))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=f;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:o,c[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,i={unversionedId:"study/program/\u6280\u672f\u6587\u6863",id:"study/program/\u6280\u672f\u6587\u6863",title:"\u6280\u672f\u6587\u6863",description:"\u6280\u672f\u6587\u6863",source:"@site/docs/study/program/\u6280\u672f\u6587\u6863.md",sourceDirName:"study/program",slug:"/study/program/\u6280\u672f\u6587\u6863",permalink:"/docs/study/program/\u6280\u672f\u6587\u6863",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Rust",permalink:"/docs/study/program/Rust/"},next:{title:"\u7f16\u8bd1\u5668",permalink:"/docs/study/program/\u7f16\u8bd1\u5668"}},p={},l=[{value:"\u6280\u672f\u6587\u6863",id:"\u6280\u672f\u6587\u6863",level:3}],u={toc:l},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u6280\u672f\u6587\u6863"},"\u6280\u672f\u6587\u6863"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://learn.microsoft.com/zh-cn/docs/"},"Micorsoft-\u6280\u672f\u6587\u6863"))))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1812],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),l=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),s=l(r),f=o,y=s["".concat(p,".").concat(f)]||s[f]||d[f]||a;return r?n.createElement(y,c(c({ref:t},u),{},{components:r})):n.createElement(y,c({ref:t},u))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=f;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:o,c[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,i={unversionedId:"study/program/\u6280\u672f\u6587\u6863",id:"study/program/\u6280\u672f\u6587\u6863",title:"\u6280\u672f\u6587\u6863",description:"\u6280\u672f\u6587\u6863",source:"@site/docs/study/program/\u6280\u672f\u6587\u6863.md",sourceDirName:"study/program",slug:"/study/program/\u6280\u672f\u6587\u6863",permalink:"/docs/study/program/\u6280\u672f\u6587\u6863",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Rust",permalink:"/docs/study/program/Rust/"},next:{title:"\u7f16\u8bd1\u5668",permalink:"/docs/study/program/\u7f16\u8bd1\u5668"}},p={},l=[{value:"\u6280\u672f\u6587\u6863",id:"\u6280\u672f\u6587\u6863",level:3}],u={toc:l},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u6280\u672f\u6587\u6863"},"\u6280\u672f\u6587\u6863"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://learn.microsoft.com/zh-cn/docs/"},"Micorsoft-\u6280\u672f\u6587\u6863"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5535d7af.a62da13a.js b/assets/js/5535d7af.a725cde6.js similarity index 98% rename from assets/js/5535d7af.a62da13a.js rename to assets/js/5535d7af.a725cde6.js index d576ca018..f433d197f 100644 --- a/assets/js/5535d7af.a62da13a.js +++ b/assets/js/5535d7af.a725cde6.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5755],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),u=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),s=u(r),y=o,f=s["".concat(l,".").concat(y)]||s[y]||d[y]||a;return r?n.createElement(f,c(c({ref:t},p),{},{components:r})):n.createElement(f,c({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=y;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[s]="string"==typeof e?e:o,c[1]=i;for(var u=2;u{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,i={unversionedId:"study/net/SNMP",id:"study/net/SNMP",title:"SNMP",description:"\u53c2\u8003",source:"@site/docs/study/net/SNMP.md",sourceDirName:"study/net",slug:"/study/net/SNMP",permalink:"/docs/study/net/SNMP",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"OpenVPN",permalink:"/docs/study/net/OpenVPN"},next:{title:"TCP",permalink:"/docs/study/net/TCP"}},l={},u=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],p={toc:u},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://blog.csdn.net/qq_20332637/article/details/82690755"},"CSDN-SNMP \u6982\u8ff0"))))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5755],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),u=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),s=u(r),y=o,f=s["".concat(l,".").concat(y)]||s[y]||d[y]||a;return r?n.createElement(f,c(c({ref:t},p),{},{components:r})):n.createElement(f,c({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=y;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[s]="string"==typeof e?e:o,c[1]=i;for(var u=2;u{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,i={unversionedId:"study/net/SNMP",id:"study/net/SNMP",title:"SNMP",description:"\u53c2\u8003",source:"@site/docs/study/net/SNMP.md",sourceDirName:"study/net",slug:"/study/net/SNMP",permalink:"/docs/study/net/SNMP",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"OpenVPN",permalink:"/docs/study/net/OpenVPN"},next:{title:"TCP",permalink:"/docs/study/net/TCP"}},l={},u=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],p={toc:u},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://blog.csdn.net/qq_20332637/article/details/82690755"},"CSDN-SNMP \u6982\u8ff0"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/576ec208.2ad686f2.js b/assets/js/576ec208.7c9697ee.js similarity index 98% rename from assets/js/576ec208.2ad686f2.js rename to assets/js/576ec208.7c9697ee.js index a0d1a03e9..bdfa770bf 100644 --- a/assets/js/576ec208.2ad686f2.js +++ b/assets/js/576ec208.7c9697ee.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[15],{5680:(e,r,t)=>{t.d(r,{xA:()=>u,yg:()=>f});var n=t(6540);function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function c(e){for(var r=1;r=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var i=n.createContext({}),l=function(e){var r=n.useContext(i),t=r;return e&&(t="function"==typeof e?e(r):c(c({},r),e)),t},u=function(e){var r=l(e.components);return n.createElement(i.Provider,{value:r},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},y=n.forwardRef((function(e,r){var t=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,u=p(e,["components","mdxType","originalType","parentName"]),s=l(t),y=a,f=s["".concat(i,".").concat(y)]||s[y]||d[y]||o;return t?n.createElement(f,c(c({ref:r},u),{},{components:t})):n.createElement(f,c({ref:r},u))}));function f(e,r){var t=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var o=t.length,c=new Array(o);c[0]=y;var p={};for(var i in r)hasOwnProperty.call(r,i)&&(p[i]=r[i]);p.originalType=e,p[s]="string"==typeof e?e:a,c[1]=p;for(var l=2;l{t.r(r),t.d(r,{assets:()=>i,contentTitle:()=>c,default:()=>d,frontMatter:()=>o,metadata:()=>p,toc:()=>l});var n=t(8168),a=(t(6540),t(5680));const o={},c=void 0,p={unversionedId:"study/program/JAVA/GraalVM",id:"study/program/JAVA/GraalVM",title:"GraalVM",description:"\u5b98\u7f51",source:"@site/docs/study/program/JAVA/GraalVM.md",sourceDirName:"study/program/JAVA",slug:"/study/program/JAVA/GraalVM",permalink:"/docs/study/program/JAVA/GraalVM",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"GC",permalink:"/docs/study/program/JAVA/GC"},next:{title:"Guice",permalink:"/docs/study/program/JAVA/Guice"}},i={},l=[],u={toc:l},s="wrapper";function d(e){let{components:r,...t}=e;return(0,a.yg)(s,(0,n.A)({},u,t,{components:r,mdxType:"MDXLayout"}),(0,a.yg)("p",null,(0,a.yg)("a",{parentName:"p",href:"https://www.graalvm.org/"},"\u5b98\u7f51")),(0,a.yg)("p",null,"\u4e00\u6b3e\u9ad8\u6027\u80fd\u3001\u4e91\u539f\u751f\u3001\u652f\u6301\u591a\u79cd\u7f16\u7a0b\u8bed\u8a00\u7684\u865a\u62df\u673a\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[15],{5680:(e,r,t)=>{t.d(r,{xA:()=>u,yg:()=>f});var n=t(6540);function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function c(e){for(var r=1;r=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var i=n.createContext({}),l=function(e){var r=n.useContext(i),t=r;return e&&(t="function"==typeof e?e(r):c(c({},r),e)),t},u=function(e){var r=l(e.components);return n.createElement(i.Provider,{value:r},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},y=n.forwardRef((function(e,r){var t=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,u=p(e,["components","mdxType","originalType","parentName"]),s=l(t),y=a,f=s["".concat(i,".").concat(y)]||s[y]||d[y]||o;return t?n.createElement(f,c(c({ref:r},u),{},{components:t})):n.createElement(f,c({ref:r},u))}));function f(e,r){var t=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var o=t.length,c=new Array(o);c[0]=y;var p={};for(var i in r)hasOwnProperty.call(r,i)&&(p[i]=r[i]);p.originalType=e,p[s]="string"==typeof e?e:a,c[1]=p;for(var l=2;l{t.r(r),t.d(r,{assets:()=>i,contentTitle:()=>c,default:()=>d,frontMatter:()=>o,metadata:()=>p,toc:()=>l});var n=t(8168),a=(t(6540),t(5680));const o={},c=void 0,p={unversionedId:"study/program/JAVA/GraalVM",id:"study/program/JAVA/GraalVM",title:"GraalVM",description:"\u5b98\u7f51",source:"@site/docs/study/program/JAVA/GraalVM.md",sourceDirName:"study/program/JAVA",slug:"/study/program/JAVA/GraalVM",permalink:"/docs/study/program/JAVA/GraalVM",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"GC",permalink:"/docs/study/program/JAVA/GC"},next:{title:"Guice",permalink:"/docs/study/program/JAVA/Guice"}},i={},l=[],u={toc:l},s="wrapper";function d(e){let{components:r,...t}=e;return(0,a.yg)(s,(0,n.A)({},u,t,{components:r,mdxType:"MDXLayout"}),(0,a.yg)("p",null,(0,a.yg)("a",{parentName:"p",href:"https://www.graalvm.org/"},"\u5b98\u7f51")),(0,a.yg)("p",null,"\u4e00\u6b3e\u9ad8\u6027\u80fd\u3001\u4e91\u539f\u751f\u3001\u652f\u6301\u591a\u79cd\u7f16\u7a0b\u8bed\u8a00\u7684\u865a\u62df\u673a\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/582dea03.bff6b099.js b/assets/js/582dea03.8d0c3fff.js similarity index 98% rename from assets/js/582dea03.bff6b099.js rename to assets/js/582dea03.8d0c3fff.js index b3f82b82e..af2aae0c0 100644 --- a/assets/js/582dea03.bff6b099.js +++ b/assets/js/582dea03.8d0c3fff.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5979],{5680:(e,t,n)=>{n.d(t,{xA:()=>l,yg:()=>m});var r=n(6540);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var u=r.createContext({}),c=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},l=function(e){var t=c(e.components);return r.createElement(u.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,o=e.originalType,u=e.parentName,l=a(e,["components","mdxType","originalType","parentName"]),d=c(n),y=i,m=d["".concat(u,".").concat(y)]||d[y]||p[y]||o;return n?r.createElement(m,s(s({ref:t},l),{},{components:n})):r.createElement(m,s({ref:t},l))}));function m(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=n.length,s=new Array(o);s[0]=y;var a={};for(var u in t)hasOwnProperty.call(t,u)&&(a[u]=t[u]);a.originalType=e,a[d]="string"==typeof e?e:i,s[1]=a;for(var c=2;c{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>s,default:()=>p,frontMatter:()=>o,metadata:()=>a,toc:()=>c});var r=n(8168),i=(n(6540),n(5680));const o={},s="Linux\u8fd0\u7ef4-\u81ea\u542f",a={unversionedId:"study/devops/Linux\u8fd0\u7ef4-\u81ea\u542f",id:"study/devops/Linux\u8fd0\u7ef4-\u81ea\u542f",title:"Linux\u8fd0\u7ef4-\u81ea\u542f",description:"systemd\u548cinit\u662fLinux\u7cfb\u7edf\u4e2d\u7528\u4e8e\u542f\u52a8\u548c\u7ba1\u7406\u7cfb\u7edf\u7684\u4e24\u4e2a\u4e0d\u540c\u5de5\u5177\u3002",source:"@site/docs/study/devops/Linux\u8fd0\u7ef4-\u81ea\u542f.md",sourceDirName:"study/devops",slug:"/study/devops/Linux\u8fd0\u7ef4-\u81ea\u542f",permalink:"/docs/study/devops/Linux\u8fd0\u7ef4-\u81ea\u542f",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Linux\u8fd0\u7ef4-\u76d1\u63a7\u6570\u636e",permalink:"/docs/study/devops/Linux\u8fd0\u7ef4-\u76d1\u63a7\u6570\u636e"},next:{title:"Linux\u8fd0\u7ef4-\u9ad8\u5e76\u53d1",permalink:"/docs/study/devops/Linux\u8fd0\u7ef4-\u9ad8\u5e76\u53d1"}},u={},c=[{value:"init",id:"init",level:3},{value:"systemd",id:"systemd",level:3},{value:"Docker systemd",id:"docker-systemd",level:3}],l={toc:c},d="wrapper";function p(e){let{components:t,...n}=e;return(0,i.yg)(d,(0,r.A)({},l,n,{components:t,mdxType:"MDXLayout"}),(0,i.yg)("h1",{id:"linux\u8fd0\u7ef4-\u81ea\u542f"},"Linux\u8fd0\u7ef4-\u81ea\u542f"),(0,i.yg)("p",null,"systemd\u548cinit\u662fLinux\u7cfb\u7edf\u4e2d\u7528\u4e8e\u542f\u52a8\u548c\u7ba1\u7406\u7cfb\u7edf\u7684\u4e24\u4e2a\u4e0d\u540c\u5de5\u5177\u3002"),(0,i.yg)("h3",{id:"init"},"init"),(0,i.yg)("p",null,"\u5b83\u662fLinux\u5185\u6838\u542f\u52a8\u540e\u7684\u7b2c\u4e00\u4e2a\u7528\u6237\u8fdb\u7a0b\uff0c\u7528\u4e8e\u521d\u59cb\u5316\u548c\u7ba1\u7406\u7cfb\u7edf\u670d\u52a1\u548c\u5b88\u62a4\u8fdb\u7a0b\u3002init\u4f7f\u7528service\u547d\u4ee4\u6765\u7ba1\u7406\u670d\u52a1\uff0c\u5982\u542f\u52a8\u3001\u505c\u6b62\u548c\u91cd\u542f\u670d\u52a1\u3002init\u7684\u4e3b\u8981\u7f3a\u70b9\u662f\u542f\u52a8\u65f6\u95f4\u957f\uff0c\u56e0\u4e3a\u5b83\u5728\u542f\u52a8\u8fc7\u7a0b\u4e2d\u662f\u4e32\u884c\u7684\uff0c\u8fd9\u610f\u5473\u7740\u5fc5\u987b\u4f9d\u6b21\u542f\u52a8\u6bcf\u4e2a\u670d\u52a1\u3002\u6b64\u5916\uff0cinit\u7684\u914d\u7f6e\u811a\u672c\u8f83\u4e3a\u590d\u6742\uff0c\u9700\u8981\u81ea\u884c\u5904\u7406\u5404\u79cd\u60c5\u51b5\uff0c\u8fd9\u53ef\u80fd\u5bfc\u81f4\u811a\u672c\u53d8\u5f97\u5f88\u957f\u3002"),(0,i.yg)("h3",{id:"systemd"},"systemd"),(0,i.yg)("p",null,"\u5b83\u662f\u8f83\u65b0\u7684Linux\u7cfb\u7edf\u5b88\u62a4\u8fdb\u7a0b\u7ba1\u7406\u5de5\u5177\uff0c\u5728CentOS 7\u53ca\u66f4\u9ad8\u7248\u672c\u4e2d\uff0csystemd\u53d6\u4ee3\u4e86init\u4f5c\u4e3a\u7cfb\u7edf\u7684\u9ed8\u8ba4\u8fdb\u7a0b\u7ba1\u7406\u5668\u3002systemd\u63d0\u4f9b\u4e86\u5e76\u884c\u542f\u52a8\u670d\u52a1\u7684\u80fd\u529b\uff0c\u4f7f\u7528socket\u548cD-Bus\u6fc0\u6d3b\u673a\u5236\uff0c\u8fd9\u663e\u8457\u63d0\u9ad8\u4e86\u7cfb\u7edf\u7684\u542f\u52a8\u901f\u5ea6\u3002systemd\u8fd8\u652f\u6301SysV\u548cLSB\u521d\u59cb\u5316\u811a\u672c\uff0c\u5e76\u80fd\u591f\u7ba1\u7406\u7cfb\u7edf\u7684\u5404\u9879\u529f\u80fd\uff0c\u5982\u65e5\u5fd7\u8bb0\u5f55\u3001\u7f51\u7edc\u914d\u7f6e\u3001\u7535\u6e90\u7ba1\u7406\u7b49\u3002systemd\u7684\u6838\u5fc3\u6982\u5ff5\u5305\u62ec\u57fa\u4e8e\u4f9d\u8d56\u5173\u7cfb\u7684\u670d\u52a1\u63a7\u5236\u548c\u7edf\u4e00\u4efb\u52a1\u5b9a\u4e49\uff0c\u8fd9\u4f7f\u5f97\u7ba1\u7406\u66f4\u52a0\u9ad8\u6548\u548c\u7b80\u5316\u3002"),(0,i.yg)("h3",{id:"docker-systemd"},"Docker systemd"),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("a",{parentName:"li",href:"https://blog.csdn.net/qq_46207024/article/details/134006150"},"Docker\u670d\u52a1systemd\u914d\u7f6e\u6587\u4ef6\u8be6\u89e3")),(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/633832183"},"\u914d\u7f6e Docker \u7684 cgroup driver \u4e3a systemd"))))}p.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5979],{5680:(e,t,n)=>{n.d(t,{xA:()=>l,yg:()=>m});var r=n(6540);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var u=r.createContext({}),c=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},l=function(e){var t=c(e.components);return r.createElement(u.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,o=e.originalType,u=e.parentName,l=a(e,["components","mdxType","originalType","parentName"]),d=c(n),y=i,m=d["".concat(u,".").concat(y)]||d[y]||p[y]||o;return n?r.createElement(m,s(s({ref:t},l),{},{components:n})):r.createElement(m,s({ref:t},l))}));function m(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=n.length,s=new Array(o);s[0]=y;var a={};for(var u in t)hasOwnProperty.call(t,u)&&(a[u]=t[u]);a.originalType=e,a[d]="string"==typeof e?e:i,s[1]=a;for(var c=2;c{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>s,default:()=>p,frontMatter:()=>o,metadata:()=>a,toc:()=>c});var r=n(8168),i=(n(6540),n(5680));const o={},s="Linux\u8fd0\u7ef4-\u81ea\u542f",a={unversionedId:"study/devops/Linux\u8fd0\u7ef4-\u81ea\u542f",id:"study/devops/Linux\u8fd0\u7ef4-\u81ea\u542f",title:"Linux\u8fd0\u7ef4-\u81ea\u542f",description:"systemd\u548cinit\u662fLinux\u7cfb\u7edf\u4e2d\u7528\u4e8e\u542f\u52a8\u548c\u7ba1\u7406\u7cfb\u7edf\u7684\u4e24\u4e2a\u4e0d\u540c\u5de5\u5177\u3002",source:"@site/docs/study/devops/Linux\u8fd0\u7ef4-\u81ea\u542f.md",sourceDirName:"study/devops",slug:"/study/devops/Linux\u8fd0\u7ef4-\u81ea\u542f",permalink:"/docs/study/devops/Linux\u8fd0\u7ef4-\u81ea\u542f",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Linux\u8fd0\u7ef4-\u76d1\u63a7\u6570\u636e",permalink:"/docs/study/devops/Linux\u8fd0\u7ef4-\u76d1\u63a7\u6570\u636e"},next:{title:"Linux\u8fd0\u7ef4-\u9ad8\u5e76\u53d1",permalink:"/docs/study/devops/Linux\u8fd0\u7ef4-\u9ad8\u5e76\u53d1"}},u={},c=[{value:"init",id:"init",level:3},{value:"systemd",id:"systemd",level:3},{value:"Docker systemd",id:"docker-systemd",level:3}],l={toc:c},d="wrapper";function p(e){let{components:t,...n}=e;return(0,i.yg)(d,(0,r.A)({},l,n,{components:t,mdxType:"MDXLayout"}),(0,i.yg)("h1",{id:"linux\u8fd0\u7ef4-\u81ea\u542f"},"Linux\u8fd0\u7ef4-\u81ea\u542f"),(0,i.yg)("p",null,"systemd\u548cinit\u662fLinux\u7cfb\u7edf\u4e2d\u7528\u4e8e\u542f\u52a8\u548c\u7ba1\u7406\u7cfb\u7edf\u7684\u4e24\u4e2a\u4e0d\u540c\u5de5\u5177\u3002"),(0,i.yg)("h3",{id:"init"},"init"),(0,i.yg)("p",null,"\u5b83\u662fLinux\u5185\u6838\u542f\u52a8\u540e\u7684\u7b2c\u4e00\u4e2a\u7528\u6237\u8fdb\u7a0b\uff0c\u7528\u4e8e\u521d\u59cb\u5316\u548c\u7ba1\u7406\u7cfb\u7edf\u670d\u52a1\u548c\u5b88\u62a4\u8fdb\u7a0b\u3002init\u4f7f\u7528service\u547d\u4ee4\u6765\u7ba1\u7406\u670d\u52a1\uff0c\u5982\u542f\u52a8\u3001\u505c\u6b62\u548c\u91cd\u542f\u670d\u52a1\u3002init\u7684\u4e3b\u8981\u7f3a\u70b9\u662f\u542f\u52a8\u65f6\u95f4\u957f\uff0c\u56e0\u4e3a\u5b83\u5728\u542f\u52a8\u8fc7\u7a0b\u4e2d\u662f\u4e32\u884c\u7684\uff0c\u8fd9\u610f\u5473\u7740\u5fc5\u987b\u4f9d\u6b21\u542f\u52a8\u6bcf\u4e2a\u670d\u52a1\u3002\u6b64\u5916\uff0cinit\u7684\u914d\u7f6e\u811a\u672c\u8f83\u4e3a\u590d\u6742\uff0c\u9700\u8981\u81ea\u884c\u5904\u7406\u5404\u79cd\u60c5\u51b5\uff0c\u8fd9\u53ef\u80fd\u5bfc\u81f4\u811a\u672c\u53d8\u5f97\u5f88\u957f\u3002"),(0,i.yg)("h3",{id:"systemd"},"systemd"),(0,i.yg)("p",null,"\u5b83\u662f\u8f83\u65b0\u7684Linux\u7cfb\u7edf\u5b88\u62a4\u8fdb\u7a0b\u7ba1\u7406\u5de5\u5177\uff0c\u5728CentOS 7\u53ca\u66f4\u9ad8\u7248\u672c\u4e2d\uff0csystemd\u53d6\u4ee3\u4e86init\u4f5c\u4e3a\u7cfb\u7edf\u7684\u9ed8\u8ba4\u8fdb\u7a0b\u7ba1\u7406\u5668\u3002systemd\u63d0\u4f9b\u4e86\u5e76\u884c\u542f\u52a8\u670d\u52a1\u7684\u80fd\u529b\uff0c\u4f7f\u7528socket\u548cD-Bus\u6fc0\u6d3b\u673a\u5236\uff0c\u8fd9\u663e\u8457\u63d0\u9ad8\u4e86\u7cfb\u7edf\u7684\u542f\u52a8\u901f\u5ea6\u3002systemd\u8fd8\u652f\u6301SysV\u548cLSB\u521d\u59cb\u5316\u811a\u672c\uff0c\u5e76\u80fd\u591f\u7ba1\u7406\u7cfb\u7edf\u7684\u5404\u9879\u529f\u80fd\uff0c\u5982\u65e5\u5fd7\u8bb0\u5f55\u3001\u7f51\u7edc\u914d\u7f6e\u3001\u7535\u6e90\u7ba1\u7406\u7b49\u3002systemd\u7684\u6838\u5fc3\u6982\u5ff5\u5305\u62ec\u57fa\u4e8e\u4f9d\u8d56\u5173\u7cfb\u7684\u670d\u52a1\u63a7\u5236\u548c\u7edf\u4e00\u4efb\u52a1\u5b9a\u4e49\uff0c\u8fd9\u4f7f\u5f97\u7ba1\u7406\u66f4\u52a0\u9ad8\u6548\u548c\u7b80\u5316\u3002"),(0,i.yg)("h3",{id:"docker-systemd"},"Docker systemd"),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("a",{parentName:"li",href:"https://blog.csdn.net/qq_46207024/article/details/134006150"},"Docker\u670d\u52a1systemd\u914d\u7f6e\u6587\u4ef6\u8be6\u89e3")),(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/633832183"},"\u914d\u7f6e Docker \u7684 cgroup driver \u4e3a systemd"))))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/588433b1.366631af.js b/assets/js/588433b1.86081721.js similarity index 99% rename from assets/js/588433b1.366631af.js rename to assets/js/588433b1.86081721.js index dddf9646b..08cb7b3d9 100644 --- a/assets/js/588433b1.366631af.js +++ b/assets/js/588433b1.86081721.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5537],{5680:(e,r,t)=>{t.d(r,{xA:()=>c,yg:()=>g});var n=t(6540);function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function l(e){for(var r=1;r=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var p=n.createContext({}),u=function(e){var r=n.useContext(p),t=r;return e&&(t="function"==typeof e?e(r):l(l({},r),e)),t},c=function(e){var r=u(e.components);return n.createElement(p.Provider,{value:r},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},y=n.forwardRef((function(e,r){var t=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),s=u(t),y=a,g=s["".concat(p,".").concat(y)]||s[y]||d[y]||o;return t?n.createElement(g,l(l({ref:r},c),{},{components:t})):n.createElement(g,l({ref:r},c))}));function g(e,r){var t=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var o=t.length,l=new Array(o);l[0]=y;var i={};for(var p in r)hasOwnProperty.call(r,p)&&(i[p]=r[p]);i.originalType=e,i[s]="string"==typeof e?e:a,l[1]=i;for(var u=2;u{t.r(r),t.d(r,{assets:()=>p,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var n=t(8168),a=(t(6540),t(5680));const o={},l="C++\u8fdb\u7a0b\u95f4\u901a\u4fe1",i={unversionedId:"study/program/CPP/CPP\u8fdb\u7a0b\u95f4\u901a\u4fe1",id:"study/program/CPP/CPP\u8fdb\u7a0b\u95f4\u901a\u4fe1",title:"C++\u8fdb\u7a0b\u95f4\u901a\u4fe1",description:"\u7ba1\u9053",source:"@site/docs/study/program/CPP/CPP\u8fdb\u7a0b\u95f4\u901a\u4fe1.md",sourceDirName:"study/program/CPP",slug:"/study/program/CPP/CPP\u8fdb\u7a0b\u95f4\u901a\u4fe1",permalink:"/docs/study/program/CPP/CPP\u8fdb\u7a0b\u95f4\u901a\u4fe1",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"CGI",permalink:"/docs/study/program/CPP/CGI"},next:{title:"CSharp",permalink:"/docs/study/program/CSharp/"}},p={},u=[{value:"\u7ba1\u9053",id:"\u7ba1\u9053",level:3},{value:"\u5171\u4eab\u5185\u5b58",id:"\u5171\u4eab\u5185\u5b58",level:3},{value:"\u6d88\u606f\u961f\u5217",id:"\u6d88\u606f\u961f\u5217",level:3},{value:"\u4fe1\u53f7\u91cf",id:"\u4fe1\u53f7\u91cf",level:3},{value:"\u5957\u63a5\u5b57",id:"\u5957\u63a5\u5b57",level:3},{value:"\u6587\u4ef6\u6620\u5c04",id:"\u6587\u4ef6\u6620\u5c04",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],c={toc:u},s="wrapper";function d(e){let{components:r,...t}=e;return(0,a.yg)(s,(0,n.A)({},c,t,{components:r,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"c\u8fdb\u7a0b\u95f4\u901a\u4fe1"},"C++\u8fdb\u7a0b\u95f4\u901a\u4fe1"),(0,a.yg)("h3",{id:"\u7ba1\u9053"},"\u7ba1\u9053"),(0,a.yg)("p",null,"\u7ba1\u9053\uff08Pipe\uff09\uff1a\u662f\u4e00\u79cd\u534a\u53cc\u5de5\u7684\u901a\u4fe1\u65b9\u5f0f\uff0c\u9002\u7528\u4e8e\u5177\u6709\u4eb2\u7f18\u5173\u7cfb\u7684\u4e24\u4e2a\u8fdb\u7a0b\u4e4b\u95f4\u7684\u901a\u4fe1\u3002\u7ba1\u9053\u5206\u4e3a\u533f\u540d\u7ba1\u9053\u548c\u547d\u540d\u7ba1\u9053\u3002"),(0,a.yg)("h3",{id:"\u5171\u4eab\u5185\u5b58"},"\u5171\u4eab\u5185\u5b58"),(0,a.yg)("p",null,"\u5171\u4eab\u5185\u5b58\uff08Shared Memory\uff09\uff1a\u662f\u4e00\u79cd\u9ad8\u6548\u7684\u8fdb\u7a0b\u95f4\u901a\u4fe1\u65b9\u5f0f\uff0c\u53ef\u4ee5\u5728\u591a\u4e2a\u8fdb\u7a0b\u4e4b\u95f4\u5171\u4eab\u540c\u4e00\u5757\u5185\u5b58\u533a\u57df\uff0c\u9700\u8981\u4f7f\u7528\u4fe1\u53f7\u91cf\u7b49\u540c\u6b65\u673a\u5236\u4fdd\u8bc1\u6570\u636e\u7684\u6b63\u786e\u6027\u3002"),(0,a.yg)("h3",{id:"\u6d88\u606f\u961f\u5217"},"\u6d88\u606f\u961f\u5217"),(0,a.yg)("p",null,"\u6d88\u606f\u961f\u5217\uff08Message Queue\uff09\uff1a\u662f\u4e00\u79cd\u53ef\u9760\u7684\u8fdb\u7a0b\u95f4\u901a\u4fe1\u65b9\u5f0f\uff0c\u5141\u8bb8\u4e00\u4e2a\u8fdb\u7a0b\u5411\u6d88\u606f\u961f\u5217\u53d1\u9001\u6d88\u606f\uff0c\u53e6\u4e00\u4e2a\u8fdb\u7a0b\u4ece\u8be5\u961f\u5217\u63a5\u6536\u6d88\u606f\u3002"),(0,a.yg)("h3",{id:"\u4fe1\u53f7\u91cf"},"\u4fe1\u53f7\u91cf"),(0,a.yg)("p",null,"\u4fe1\u53f7\u91cf\uff08Semaphore\uff09\uff1a\u662f\u4e00\u79cd\u7279\u6b8a\u7684\u53d8\u91cf\uff0c\u4e3b\u8981\u7528\u4e8e\u591a\u4e2a\u8fdb\u7a0b\u5bf9\u5171\u4eab\u8d44\u6e90\u7684\u8bbf\u95ee\u63a7\u5236\u95ee\u9898\uff0c\u4ee5\u4fdd\u8bc1\u7a0b\u5e8f\u6b63\u5e38\u8fd0\u884c\u3002"),(0,a.yg)("h3",{id:"\u5957\u63a5\u5b57"},"\u5957\u63a5\u5b57"),(0,a.yg)("p",null,"\u5957\u63a5\u5b57\uff08Socket\uff09\uff1a\u662f\u4e00\u79cd\u7f51\u7edc\u7f16\u7a0b\u6280\u672f\uff0c\u4f46\u4e5f\u53ef\u7528\u4e8e\u5b9e\u73b0\u8fdb\u7a0b\u95f4\u901a\u4fe1\uff0c\u652f\u6301\u4e0d\u540c\u4e3b\u673a\u4e0a\u7684\u8fdb\u7a0b\u8fdb\u884c\u901a\u4fe1\u3002"),(0,a.yg)("h3",{id:"\u6587\u4ef6\u6620\u5c04"},"\u6587\u4ef6\u6620\u5c04"),(0,a.yg)("p",null,"\u6587\u4ef6\u6620\u5c04\uff08File Mapping\uff09\uff1a\u5c06\u78c1\u76d8\u4e0a\u7684\u6587\u4ef6\u6620\u5c04\u5230\u8fdb\u7a0b\u7684\u5730\u5740\u7a7a\u95f4\u4e2d\uff0c\u591a\u4e2a\u8fdb\u7a0b\u53ef\u4ee5\u540c\u65f6\u5bf9\u8be5\u6587\u4ef6\u8fdb\u884c\u8bfb\u5199\u64cd\u4f5c\uff0c\u9700\u8981\u4f7f\u7528\u540c\u6b65\u673a\u5236\u786e\u4fdd\u6570\u636e\u7684\u5b8c\u6574\u6027\u3002"),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://blog.csdn.net/qq_43119867/article/details/130520252"},"CSDN-C++\u8fdb\u7a0b\u95f4\u901a\u4fe1\u7684\u591a\u79cd\u65b9\u5f0f\u53ca\u5b9e\u73b0"))))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5537],{5680:(e,r,t)=>{t.d(r,{xA:()=>c,yg:()=>g});var n=t(6540);function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function l(e){for(var r=1;r=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var p=n.createContext({}),u=function(e){var r=n.useContext(p),t=r;return e&&(t="function"==typeof e?e(r):l(l({},r),e)),t},c=function(e){var r=u(e.components);return n.createElement(p.Provider,{value:r},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},y=n.forwardRef((function(e,r){var t=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),s=u(t),y=a,g=s["".concat(p,".").concat(y)]||s[y]||d[y]||o;return t?n.createElement(g,l(l({ref:r},c),{},{components:t})):n.createElement(g,l({ref:r},c))}));function g(e,r){var t=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var o=t.length,l=new Array(o);l[0]=y;var i={};for(var p in r)hasOwnProperty.call(r,p)&&(i[p]=r[p]);i.originalType=e,i[s]="string"==typeof e?e:a,l[1]=i;for(var u=2;u{t.r(r),t.d(r,{assets:()=>p,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var n=t(8168),a=(t(6540),t(5680));const o={},l="C++\u8fdb\u7a0b\u95f4\u901a\u4fe1",i={unversionedId:"study/program/CPP/CPP\u8fdb\u7a0b\u95f4\u901a\u4fe1",id:"study/program/CPP/CPP\u8fdb\u7a0b\u95f4\u901a\u4fe1",title:"C++\u8fdb\u7a0b\u95f4\u901a\u4fe1",description:"\u7ba1\u9053",source:"@site/docs/study/program/CPP/CPP\u8fdb\u7a0b\u95f4\u901a\u4fe1.md",sourceDirName:"study/program/CPP",slug:"/study/program/CPP/CPP\u8fdb\u7a0b\u95f4\u901a\u4fe1",permalink:"/docs/study/program/CPP/CPP\u8fdb\u7a0b\u95f4\u901a\u4fe1",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"CGI",permalink:"/docs/study/program/CPP/CGI"},next:{title:"CSharp",permalink:"/docs/study/program/CSharp/"}},p={},u=[{value:"\u7ba1\u9053",id:"\u7ba1\u9053",level:3},{value:"\u5171\u4eab\u5185\u5b58",id:"\u5171\u4eab\u5185\u5b58",level:3},{value:"\u6d88\u606f\u961f\u5217",id:"\u6d88\u606f\u961f\u5217",level:3},{value:"\u4fe1\u53f7\u91cf",id:"\u4fe1\u53f7\u91cf",level:3},{value:"\u5957\u63a5\u5b57",id:"\u5957\u63a5\u5b57",level:3},{value:"\u6587\u4ef6\u6620\u5c04",id:"\u6587\u4ef6\u6620\u5c04",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],c={toc:u},s="wrapper";function d(e){let{components:r,...t}=e;return(0,a.yg)(s,(0,n.A)({},c,t,{components:r,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"c\u8fdb\u7a0b\u95f4\u901a\u4fe1"},"C++\u8fdb\u7a0b\u95f4\u901a\u4fe1"),(0,a.yg)("h3",{id:"\u7ba1\u9053"},"\u7ba1\u9053"),(0,a.yg)("p",null,"\u7ba1\u9053\uff08Pipe\uff09\uff1a\u662f\u4e00\u79cd\u534a\u53cc\u5de5\u7684\u901a\u4fe1\u65b9\u5f0f\uff0c\u9002\u7528\u4e8e\u5177\u6709\u4eb2\u7f18\u5173\u7cfb\u7684\u4e24\u4e2a\u8fdb\u7a0b\u4e4b\u95f4\u7684\u901a\u4fe1\u3002\u7ba1\u9053\u5206\u4e3a\u533f\u540d\u7ba1\u9053\u548c\u547d\u540d\u7ba1\u9053\u3002"),(0,a.yg)("h3",{id:"\u5171\u4eab\u5185\u5b58"},"\u5171\u4eab\u5185\u5b58"),(0,a.yg)("p",null,"\u5171\u4eab\u5185\u5b58\uff08Shared Memory\uff09\uff1a\u662f\u4e00\u79cd\u9ad8\u6548\u7684\u8fdb\u7a0b\u95f4\u901a\u4fe1\u65b9\u5f0f\uff0c\u53ef\u4ee5\u5728\u591a\u4e2a\u8fdb\u7a0b\u4e4b\u95f4\u5171\u4eab\u540c\u4e00\u5757\u5185\u5b58\u533a\u57df\uff0c\u9700\u8981\u4f7f\u7528\u4fe1\u53f7\u91cf\u7b49\u540c\u6b65\u673a\u5236\u4fdd\u8bc1\u6570\u636e\u7684\u6b63\u786e\u6027\u3002"),(0,a.yg)("h3",{id:"\u6d88\u606f\u961f\u5217"},"\u6d88\u606f\u961f\u5217"),(0,a.yg)("p",null,"\u6d88\u606f\u961f\u5217\uff08Message Queue\uff09\uff1a\u662f\u4e00\u79cd\u53ef\u9760\u7684\u8fdb\u7a0b\u95f4\u901a\u4fe1\u65b9\u5f0f\uff0c\u5141\u8bb8\u4e00\u4e2a\u8fdb\u7a0b\u5411\u6d88\u606f\u961f\u5217\u53d1\u9001\u6d88\u606f\uff0c\u53e6\u4e00\u4e2a\u8fdb\u7a0b\u4ece\u8be5\u961f\u5217\u63a5\u6536\u6d88\u606f\u3002"),(0,a.yg)("h3",{id:"\u4fe1\u53f7\u91cf"},"\u4fe1\u53f7\u91cf"),(0,a.yg)("p",null,"\u4fe1\u53f7\u91cf\uff08Semaphore\uff09\uff1a\u662f\u4e00\u79cd\u7279\u6b8a\u7684\u53d8\u91cf\uff0c\u4e3b\u8981\u7528\u4e8e\u591a\u4e2a\u8fdb\u7a0b\u5bf9\u5171\u4eab\u8d44\u6e90\u7684\u8bbf\u95ee\u63a7\u5236\u95ee\u9898\uff0c\u4ee5\u4fdd\u8bc1\u7a0b\u5e8f\u6b63\u5e38\u8fd0\u884c\u3002"),(0,a.yg)("h3",{id:"\u5957\u63a5\u5b57"},"\u5957\u63a5\u5b57"),(0,a.yg)("p",null,"\u5957\u63a5\u5b57\uff08Socket\uff09\uff1a\u662f\u4e00\u79cd\u7f51\u7edc\u7f16\u7a0b\u6280\u672f\uff0c\u4f46\u4e5f\u53ef\u7528\u4e8e\u5b9e\u73b0\u8fdb\u7a0b\u95f4\u901a\u4fe1\uff0c\u652f\u6301\u4e0d\u540c\u4e3b\u673a\u4e0a\u7684\u8fdb\u7a0b\u8fdb\u884c\u901a\u4fe1\u3002"),(0,a.yg)("h3",{id:"\u6587\u4ef6\u6620\u5c04"},"\u6587\u4ef6\u6620\u5c04"),(0,a.yg)("p",null,"\u6587\u4ef6\u6620\u5c04\uff08File Mapping\uff09\uff1a\u5c06\u78c1\u76d8\u4e0a\u7684\u6587\u4ef6\u6620\u5c04\u5230\u8fdb\u7a0b\u7684\u5730\u5740\u7a7a\u95f4\u4e2d\uff0c\u591a\u4e2a\u8fdb\u7a0b\u53ef\u4ee5\u540c\u65f6\u5bf9\u8be5\u6587\u4ef6\u8fdb\u884c\u8bfb\u5199\u64cd\u4f5c\uff0c\u9700\u8981\u4f7f\u7528\u540c\u6b65\u673a\u5236\u786e\u4fdd\u6570\u636e\u7684\u5b8c\u6574\u6027\u3002"),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://blog.csdn.net/qq_43119867/article/details/130520252"},"CSDN-C++\u8fdb\u7a0b\u95f4\u901a\u4fe1\u7684\u591a\u79cd\u65b9\u5f0f\u53ca\u5b9e\u73b0"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5886a939.1b7a773f.js b/assets/js/5886a939.643a03e9.js similarity index 98% rename from assets/js/5886a939.1b7a773f.js rename to assets/js/5886a939.643a03e9.js index feef492ef..3223e03a0 100644 --- a/assets/js/5886a939.1b7a773f.js +++ b/assets/js/5886a939.643a03e9.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7840],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>m});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),l=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=l(e.components);return n.createElement(c.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),u=l(r),y=a,m=u["".concat(c,".").concat(y)]||u[y]||d[y]||o;return r?n.createElement(m,i(i({ref:t},p),{},{components:r})):n.createElement(m,i({ref:t},p))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=y;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[u]="string"==typeof e?e:a,i[1]=s;for(var l=2;l{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>s,toc:()=>l});var n=r(8168),a=(r(6540),r(5680));const o={sidebar_position:1},i=void 0,s={unversionedId:"study/system/index",id:"study/system/index",title:"index",description:"\u5b66\u4e60\u8d44\u6599",source:"@site/docs/study/system/index.md",sourceDirName:"study/system",slug:"/study/system/",permalink:"/docs/study/system/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"\u7269\u8054\u7f51\u5e73\u53f0\u5c42\u6982\u8ff0",permalink:"/docs/study/competitive/\u7269\u8054\u7f51\u5e73\u53f0\u5c42\u6982\u8ff0"},next:{title:"CPU\u7ebf\u7a0b\u5e76\u53d1",permalink:"/docs/study/system/CPU\u7ebf\u7a0b\u5e76\u53d1"}},c={},l=[{value:"\u5b66\u4e60\u8d44\u6599",id:"\u5b66\u4e60\u8d44\u6599",level:3},{value:"mac \u7528\u4e45\u4e86\uff0c\u5982\u4f55\u6e05\u7406\u6bd4\u8f83\u5927\u7684\u6587\u4ef6",id:"mac-\u7528\u4e45\u4e86\u5982\u4f55\u6e05\u7406\u6bd4\u8f83\u5927\u7684\u6587\u4ef6",level:3}],p={toc:l},u="wrapper";function d(e){let{components:t,...r}=e;return(0,a.yg)(u,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u5b66\u4e60\u8d44\u6599"},"\u5b66\u4e60\u8d44\u6599"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://www.junmajinlong.com/os/index/"},"\u9a8f\u9a6c\u91d1\u9f99-\u64cd\u4f5c\u7cfb\u7edf\u7cfb\u5217\u6587\u7ae0")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://www.zhihu.com/people/zhang-yan-fei-26-61/posts"},"\u77e5\u4e4e-\u5f20\u5f66\u98de"))),(0,a.yg)("h3",{id:"mac-\u7528\u4e45\u4e86\u5982\u4f55\u6e05\u7406\u6bd4\u8f83\u5927\u7684\u6587\u4ef6"},"mac \u7528\u4e45\u4e86\uff0c\u5982\u4f55\u6e05\u7406\u6bd4\u8f83\u5927\u7684\u6587\u4ef6"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"cd ~/Library\ndu -s ./* | sort -rn|head\ndu -sh ./* | sort -rn|head\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7840],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>m});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),l=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=l(e.components);return n.createElement(c.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),u=l(r),y=a,m=u["".concat(c,".").concat(y)]||u[y]||d[y]||o;return r?n.createElement(m,i(i({ref:t},p),{},{components:r})):n.createElement(m,i({ref:t},p))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=y;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[u]="string"==typeof e?e:a,i[1]=s;for(var l=2;l{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>s,toc:()=>l});var n=r(8168),a=(r(6540),r(5680));const o={sidebar_position:1},i=void 0,s={unversionedId:"study/system/index",id:"study/system/index",title:"index",description:"\u5b66\u4e60\u8d44\u6599",source:"@site/docs/study/system/index.md",sourceDirName:"study/system",slug:"/study/system/",permalink:"/docs/study/system/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"\u7269\u8054\u7f51\u5e73\u53f0\u5c42\u6982\u8ff0",permalink:"/docs/study/competitive/\u7269\u8054\u7f51\u5e73\u53f0\u5c42\u6982\u8ff0"},next:{title:"CPU\u7ebf\u7a0b\u5e76\u53d1",permalink:"/docs/study/system/CPU\u7ebf\u7a0b\u5e76\u53d1"}},c={},l=[{value:"\u5b66\u4e60\u8d44\u6599",id:"\u5b66\u4e60\u8d44\u6599",level:3},{value:"mac \u7528\u4e45\u4e86\uff0c\u5982\u4f55\u6e05\u7406\u6bd4\u8f83\u5927\u7684\u6587\u4ef6",id:"mac-\u7528\u4e45\u4e86\u5982\u4f55\u6e05\u7406\u6bd4\u8f83\u5927\u7684\u6587\u4ef6",level:3}],p={toc:l},u="wrapper";function d(e){let{components:t,...r}=e;return(0,a.yg)(u,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u5b66\u4e60\u8d44\u6599"},"\u5b66\u4e60\u8d44\u6599"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://www.junmajinlong.com/os/index/"},"\u9a8f\u9a6c\u91d1\u9f99-\u64cd\u4f5c\u7cfb\u7edf\u7cfb\u5217\u6587\u7ae0")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://www.zhihu.com/people/zhang-yan-fei-26-61/posts"},"\u77e5\u4e4e-\u5f20\u5f66\u98de"))),(0,a.yg)("h3",{id:"mac-\u7528\u4e45\u4e86\u5982\u4f55\u6e05\u7406\u6bd4\u8f83\u5927\u7684\u6587\u4ef6"},"mac \u7528\u4e45\u4e86\uff0c\u5982\u4f55\u6e05\u7406\u6bd4\u8f83\u5927\u7684\u6587\u4ef6"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"cd ~/Library\ndu -s ./* | sort -rn|head\ndu -sh ./* | sort -rn|head\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5ae76acd.c7a970d3.js b/assets/js/5ae76acd.50942ceb.js similarity index 99% rename from assets/js/5ae76acd.c7a970d3.js rename to assets/js/5ae76acd.50942ceb.js index 84192728f..1d111c00d 100644 --- a/assets/js/5ae76acd.c7a970d3.js +++ b/assets/js/5ae76acd.50942ceb.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6427],{5680:(e,t,r)=>{r.d(t,{xA:()=>y,yg:()=>g});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),u=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},y=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,y=i(e,["components","mdxType","originalType","parentName"]),s=u(r),m=a,g=s["".concat(p,".").concat(m)]||s[m]||c[m]||o;return r?n.createElement(g,l(l({ref:t},y),{},{components:r})):n.createElement(g,l({ref:t},y))}));function g(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=m;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:a,l[1]=i;for(var u=2;u{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>c,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var n=r(8168),a=(r(6540),r(5680));const o={},l=void 0,i={unversionedId:"study/hard/\u786c\u4ef6\u5f00\u53d1\u548c\u5d4c\u5165\u5f0f\u5f00\u53d1",id:"study/hard/\u786c\u4ef6\u5f00\u53d1\u548c\u5d4c\u5165\u5f0f\u5f00\u53d1",title:"\u786c\u4ef6\u5f00\u53d1\u548c\u5d4c\u5165\u5f0f\u5f00\u53d1",description:"1. \u5d4c\u5165\u5f0flinux \u548c \u7528stm32\u8fdb\u884c\u7684\u5d4c\u5165\u5f0f\u5f00\u53d1 \u8fd9\u4e24\u8005\u4e4b\u95f4\u6709\u4ec0\u4e48\u5173\u8054\u6027\u5417\uff1f",source:"@site/docs/study/hard/\u786c\u4ef6\u5f00\u53d1\u548c\u5d4c\u5165\u5f0f\u5f00\u53d1.md",sourceDirName:"study/hard",slug:"/study/hard/\u786c\u4ef6\u5f00\u53d1\u548c\u5d4c\u5165\u5f0f\u5f00\u53d1",permalink:"/docs/study/hard/\u786c\u4ef6\u5f00\u53d1\u548c\u5d4c\u5165\u5f0f\u5f00\u53d1",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u5d4c\u5165\u5f0f_\u5355\u7247\u673a",permalink:"/docs/study/hard/\u5d4c\u5165\u5f0f_\u5355\u7247\u673a"},next:{title:"\u8def\u7531\u5668\u548c\u4ea4\u6362\u673a\u7684\u533a\u522b",permalink:"/docs/study/hard/\u8def\u7531\u5668\u548c\u4ea4\u6362\u673a\u7684\u533a\u522b"}},p={},u=[],y={toc:u},s="wrapper";function c(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},y,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"https://www.zhihu.com/question/53880054/answer/164501004"},"\u5d4c\u5165\u5f0flinux \u548c \u7528stm32\u8fdb\u884c\u7684\u5d4c\u5165\u5f0f\u5f00\u53d1 \u8fd9\u4e24\u8005\u4e4b\u95f4\u6709\u4ec0\u4e48\u5173\u8054\u6027\u5417\uff1f"),(0,a.yg)("ol",{parentName:"li"},(0,a.yg)("li",{parentName:"ol"},"=====\u57fa\u4e8eSTM32\u7684\u5f00\u53d1\u5c5e\u4e8e\u5fae\u63a7\u5236\u5668\u5f00\u53d1\u9886\u57df\uff0c\u4e3b\u8981\u5f00\u53d1\u5de5\u5177\u662f",(0,a.yg)("strong",{parentName:"li"},"keil"),"\u6216",(0,a.yg)("strong",{parentName:"li"},"IAR"),"\uff0c\u8fd9\u79cd\u5f00\u53d1\u66f4\u51c6\u786e\u7684\u8bf4\u6cd5\u662f",(0,a.yg)("strong",{parentName:"li"},"\u5355\u7247\u673a\u5f00\u53d1"),"\u6216\u8005\u786c\u4ef6\u5f00\u53d1\uff1b"),(0,a.yg)("li",{parentName:"ol"},"\u5d4c\u5165\u5f0f\u5f00\u53d1\uff0c\u5f00\u53d1\u73af\u5883\u662f",(0,a.yg)("strong",{parentName:"li"},"\u57fa\u4e8eLinux\u64cd\u4f5c\u7cfb\u7edf"),"\uff0c\u8fd9\u79cd\u5f00\u53d1\u4e00\u822c\u4f1a\u5206\u4e3a\u51e0\u4e2a\u5c42\u6b21\uff1a\u9a71\u52a8\u5f00\u53d1\u3001\u64cd\u4f5c\u7cfb\u7edf\u5c42\u5f00\u53d1\u3001\u5e94\u7528\u5c42\u5f00\u53d1\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u5982\u679c\u73a9\u8fc7Arduino\u548c\u6811\u8393\u6d3e\uff0c\u90a3\u4e48\u8fd9\u4e2a\u5c31\u5f88\u597d\u7406\u89e3\u4e86\u3002STM32\u5f00\u53d1\u548cArduino\u662f\u540c\u4e00\u4e2a\u5c42\u6b21\uff0c\u5904\u4e8e\u5fae\u63a7\u5236\u5668\u7ea7\u522b\uff1b\u5d4c\u5165\u5f0fLinux\u5f00\u53d1\u548c\u6811\u8393\u6d3e\u4e00\u4e2a\u5c42\u6b21\uff0c\u5c5e\u4e8e\u5fae\u5904\u7406\u5668\u7ea7\u522b\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u5355\u7247\u673a\u5f00\u53d1\u4e3b\u8981\u5728\u4e8e",(0,a.yg)("strong",{parentName:"li"},"\u63a7\u5236"),"\u3001",(0,a.yg)("strong",{parentName:"li"},"\u68c0\u6d4b"),"\u548c",(0,a.yg)("strong",{parentName:"li"},"\u4f20\u8f93"),"\u6570\u636e\uff0c\u6bd4\u5982\u63a7\u5236\u7ee7\u7535\u5668\u5f00\u5173\u4ee5\u63a7\u5236\u95e8\u9501\uff0c\u68c0\u6d4b\u6e29\u6e7f\u5ea6\u4e0a\u4f20\u6570\u636e\u5230\u7f51\u5173\u3002\u800c\u5904\u7406\u5668\u9664\u4e86\u53ef\u4ee5\u505a\u5355\u7247\u673a\u7684\u4e8b\uff0c\u8fd8\u53ef\u4ee5\u5904\u7406\u97f3\u89c6\u9891\u7b49",(0,a.yg)("strong",{parentName:"li"},"\u8ba1\u7b97\u91cf"),"\u5f88\u5927\u7684\u4efb\u52a1\uff0c\u6709",(0,a.yg)("strong",{parentName:"li"},"\u6587\u4ef6\u7ba1\u7406\u7cfb\u7edf"),"\u4e5f\u6709",(0,a.yg)("strong",{parentName:"li"},"\u66f4\u591a\u7684\u5b58\u50a8\u7a7a\u95f4"),"\uff0c\u4ee5\u53ca\u8be5\u5e73\u53f0\u6240\u63d0\u4f9b\u7684\u300c",(0,a.yg)("strong",{parentName:"li"},"\u5f00\u5c01\u5373\u7528"),"\u300d\u7684\u5de5\u5177\uff08\u5373\u5b89\u88c5\u540e\u5c31\u53ef\u4ee5\u76f4\u63a5\u4f7f\u7528\uff09\uff0c\u6bd4\u5982\u5728\u6811\u8393\u6d3e\u4e0a\u8fd0\u884c\u4e00\u4e2a\u4eba\u8138\u68c0\u6d4b\u7cfb\u7edf\u662f\u6ca1\u95ee\u9898\u7684\uff0c\u5728\u6811\u8393\u6d3e\u4e0a\u642d\u5efaWeb\u7f51\u7ad9\u4e5f\u662f\u5f88\u65b9\u4fbf\u7684\u3002"),(0,a.yg)("li",{parentName:"ol"},"=====\u5d4c\u5165\u5f0f\u5f00\u53d1\uff0c\u4e3b\u8981\u6709\u4e09\u6761\u6280\u672f\u8def\u7ebf\uff1a",(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},"51\u5355\u7247\u673a"),(0,a.yg)("li",{parentName:"ul"},"STM32 + RTOS"),(0,a.yg)("li",{parentName:"ul"},"ARM + Linux\xa0 \xa0\xa0"),(0,a.yg)("li",{parentName:"ul"},"51\u5355\u7247\u673a\u4e3b\u8981\u7528\u5728\u4e00\u4e9b\u63a7\u5236\u7b80\u5355\u7684\u7535\u8def\u3001\u7535\u5668\u884c\u4e1a"),(0,a.yg)("li",{parentName:"ul"},"STM32 + RTOS \u4e3b\u8981\u7528\u5728\u4e00\u4e9b\u5b9e\u65f6\u8981\u6c42\u6bd4\u8f83\u9ad8\u7684\u884c\u4e1a\uff1a\u822a\u7a7a\u822a\u5929\u7b49\uff0c\u8fd8\u6709\u7269\u8054\u7f51\u3001\u5de5\u4e1a\u63a7\u5236"),(0,a.yg)("li",{parentName:"ul"},"ARM + Linux\u4e3b\u8981\u7528\u5728\u6d88\u8d39\u7535\u5b50\u9886\u57df\uff1a\u624b\u673a\u3001\u5e73\u677f\u3001\u667a\u80fd\u624b\u8868\u3001\u667a\u80fd\u97f3\u7bb1\u7b49"))),(0,a.yg)("li",{parentName:"ol"},"=====\u6309\u7167\u7cfb\u5217\u5212\u5206\uff1a",(0,a.yg)("ol",{parentName:"li"},(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("strong",{parentName:"li"},"\u5fae\u63a7\u5236\u5668\u7cfb\u5217\uff1a8051, MSP 430 ,\xa0"),"STM32 F0-3( ARM Cortext M0 - M3\u7cfb\u5217\uff09\u7b49"),(0,a.yg)("li",{parentName:"ol"},"\u4e3b\u8981\u7279\u70b9\u6ca1\u6709",(0,a.yg)("em",{parentName:"li"},"\u5185\u5b58\u7ba1\u7406\u5355\u5143"),"\uff0c\u4e0d\u80fd\u8fd0\u884clinux \u8fd9\u7c7b\u6709\u7740\u865a\u62df\u5185\u5b58\u7684\u64cd\u4f5c\u7cfb\u7edf\uff0c\u53ea\u80fd\u8fd0\u884c\u88f8\u673a\u7a0b\u5e8f\u6216\u662fucOS\u4e00\u7c7b\u7684\u5b9e\u65f6\u64cd\u4f5c\u7cfb\u7edf\u3002\u4e3b\u8981\u5de5\u4f5c\u5c31\u662f\u5916\u8bbe\u9a71\u52a8\u5f00\u53d1\uff08\u6bd4\u5982\u5199\u4e2a\u7f16\u7801\u5668\u7684\u9a71\u52a8\uff0c\u6db2\u6676\u7684\u9a71\u52a8\uff0cusb\u7684\u9a71\u52a8\uff09\u548c\u57fa\u4e8e\u9a71\u52a8\u7684\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\uff0c\u5982\u63a7\u5236\u7c7b\u548c\u7b80\u5355\u7684\u56fe\u50cf\u5904\u7406\u529f\u80fd\u3002"),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("strong",{parentName:"li"},"\u5fae\u5904\u7406\u5668\u7cfb\u5217"),"\uff1a ARM Cortex A\u7cfb\u5217\u7684\u5904\u7406\u5668"),(0,a.yg)("li",{parentName:"ol"},"\u6709",(0,a.yg)("em",{parentName:"li"},"\u5185\u5b58\u7ba1\u7406\u5355\u5143MMU"),",\u53ef\u4ee5\u8fd0\u884clinux\u7a0b\u5e8f\uff0c\u5f00\u53d1\u5176\u5b9e\u548c\u5728windows pc\u4e0a\u5199\u7a0b\u5e8f\u662f\u4e00\u6837\u7684\uff0c\u53ea\u662f\u7531\u4e8earm\u7f16\u8bd1\u6162\uff0c\u4e00\u822c\u4f1a\u9009\u5728\u5728PC\u4e0a\u7528\u9488\u5bf9ARM\u7279\u5b9a\u7f16\u8bd1\u5668\u53bb\u7f16\u8bd1\u51fa\u7a0b\u5e8f\u653e\u5728ARM\u4e0a\u8fd0\u884c\uff0c\u5c31\u662f\u4ea4\u53c9\u7f16\u8bd1\u3002\u8fd9\u91cc\u6d89\u53ca\u5230\u7684\u9a71\u52a8\u5f00\u53d1\u6bd4\u8f83\u590d\u6742\uff0c\u4e00\u822c\u4f1a\u9075\u5faalinux\u5b9a\u4e49\u7684\u89c4\u5219\u53bb\u5199\u3002")))))))}c.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6427],{5680:(e,t,r)=>{r.d(t,{xA:()=>y,yg:()=>g});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),u=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},y=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,y=i(e,["components","mdxType","originalType","parentName"]),s=u(r),m=a,g=s["".concat(p,".").concat(m)]||s[m]||c[m]||o;return r?n.createElement(g,l(l({ref:t},y),{},{components:r})):n.createElement(g,l({ref:t},y))}));function g(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=m;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:a,l[1]=i;for(var u=2;u{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>c,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var n=r(8168),a=(r(6540),r(5680));const o={},l=void 0,i={unversionedId:"study/hard/\u786c\u4ef6\u5f00\u53d1\u548c\u5d4c\u5165\u5f0f\u5f00\u53d1",id:"study/hard/\u786c\u4ef6\u5f00\u53d1\u548c\u5d4c\u5165\u5f0f\u5f00\u53d1",title:"\u786c\u4ef6\u5f00\u53d1\u548c\u5d4c\u5165\u5f0f\u5f00\u53d1",description:"1. \u5d4c\u5165\u5f0flinux \u548c \u7528stm32\u8fdb\u884c\u7684\u5d4c\u5165\u5f0f\u5f00\u53d1 \u8fd9\u4e24\u8005\u4e4b\u95f4\u6709\u4ec0\u4e48\u5173\u8054\u6027\u5417\uff1f",source:"@site/docs/study/hard/\u786c\u4ef6\u5f00\u53d1\u548c\u5d4c\u5165\u5f0f\u5f00\u53d1.md",sourceDirName:"study/hard",slug:"/study/hard/\u786c\u4ef6\u5f00\u53d1\u548c\u5d4c\u5165\u5f0f\u5f00\u53d1",permalink:"/docs/study/hard/\u786c\u4ef6\u5f00\u53d1\u548c\u5d4c\u5165\u5f0f\u5f00\u53d1",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u5d4c\u5165\u5f0f_\u5355\u7247\u673a",permalink:"/docs/study/hard/\u5d4c\u5165\u5f0f_\u5355\u7247\u673a"},next:{title:"\u8def\u7531\u5668\u548c\u4ea4\u6362\u673a\u7684\u533a\u522b",permalink:"/docs/study/hard/\u8def\u7531\u5668\u548c\u4ea4\u6362\u673a\u7684\u533a\u522b"}},p={},u=[],y={toc:u},s="wrapper";function c(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},y,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"https://www.zhihu.com/question/53880054/answer/164501004"},"\u5d4c\u5165\u5f0flinux \u548c \u7528stm32\u8fdb\u884c\u7684\u5d4c\u5165\u5f0f\u5f00\u53d1 \u8fd9\u4e24\u8005\u4e4b\u95f4\u6709\u4ec0\u4e48\u5173\u8054\u6027\u5417\uff1f"),(0,a.yg)("ol",{parentName:"li"},(0,a.yg)("li",{parentName:"ol"},"=====\u57fa\u4e8eSTM32\u7684\u5f00\u53d1\u5c5e\u4e8e\u5fae\u63a7\u5236\u5668\u5f00\u53d1\u9886\u57df\uff0c\u4e3b\u8981\u5f00\u53d1\u5de5\u5177\u662f",(0,a.yg)("strong",{parentName:"li"},"keil"),"\u6216",(0,a.yg)("strong",{parentName:"li"},"IAR"),"\uff0c\u8fd9\u79cd\u5f00\u53d1\u66f4\u51c6\u786e\u7684\u8bf4\u6cd5\u662f",(0,a.yg)("strong",{parentName:"li"},"\u5355\u7247\u673a\u5f00\u53d1"),"\u6216\u8005\u786c\u4ef6\u5f00\u53d1\uff1b"),(0,a.yg)("li",{parentName:"ol"},"\u5d4c\u5165\u5f0f\u5f00\u53d1\uff0c\u5f00\u53d1\u73af\u5883\u662f",(0,a.yg)("strong",{parentName:"li"},"\u57fa\u4e8eLinux\u64cd\u4f5c\u7cfb\u7edf"),"\uff0c\u8fd9\u79cd\u5f00\u53d1\u4e00\u822c\u4f1a\u5206\u4e3a\u51e0\u4e2a\u5c42\u6b21\uff1a\u9a71\u52a8\u5f00\u53d1\u3001\u64cd\u4f5c\u7cfb\u7edf\u5c42\u5f00\u53d1\u3001\u5e94\u7528\u5c42\u5f00\u53d1\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u5982\u679c\u73a9\u8fc7Arduino\u548c\u6811\u8393\u6d3e\uff0c\u90a3\u4e48\u8fd9\u4e2a\u5c31\u5f88\u597d\u7406\u89e3\u4e86\u3002STM32\u5f00\u53d1\u548cArduino\u662f\u540c\u4e00\u4e2a\u5c42\u6b21\uff0c\u5904\u4e8e\u5fae\u63a7\u5236\u5668\u7ea7\u522b\uff1b\u5d4c\u5165\u5f0fLinux\u5f00\u53d1\u548c\u6811\u8393\u6d3e\u4e00\u4e2a\u5c42\u6b21\uff0c\u5c5e\u4e8e\u5fae\u5904\u7406\u5668\u7ea7\u522b\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u5355\u7247\u673a\u5f00\u53d1\u4e3b\u8981\u5728\u4e8e",(0,a.yg)("strong",{parentName:"li"},"\u63a7\u5236"),"\u3001",(0,a.yg)("strong",{parentName:"li"},"\u68c0\u6d4b"),"\u548c",(0,a.yg)("strong",{parentName:"li"},"\u4f20\u8f93"),"\u6570\u636e\uff0c\u6bd4\u5982\u63a7\u5236\u7ee7\u7535\u5668\u5f00\u5173\u4ee5\u63a7\u5236\u95e8\u9501\uff0c\u68c0\u6d4b\u6e29\u6e7f\u5ea6\u4e0a\u4f20\u6570\u636e\u5230\u7f51\u5173\u3002\u800c\u5904\u7406\u5668\u9664\u4e86\u53ef\u4ee5\u505a\u5355\u7247\u673a\u7684\u4e8b\uff0c\u8fd8\u53ef\u4ee5\u5904\u7406\u97f3\u89c6\u9891\u7b49",(0,a.yg)("strong",{parentName:"li"},"\u8ba1\u7b97\u91cf"),"\u5f88\u5927\u7684\u4efb\u52a1\uff0c\u6709",(0,a.yg)("strong",{parentName:"li"},"\u6587\u4ef6\u7ba1\u7406\u7cfb\u7edf"),"\u4e5f\u6709",(0,a.yg)("strong",{parentName:"li"},"\u66f4\u591a\u7684\u5b58\u50a8\u7a7a\u95f4"),"\uff0c\u4ee5\u53ca\u8be5\u5e73\u53f0\u6240\u63d0\u4f9b\u7684\u300c",(0,a.yg)("strong",{parentName:"li"},"\u5f00\u5c01\u5373\u7528"),"\u300d\u7684\u5de5\u5177\uff08\u5373\u5b89\u88c5\u540e\u5c31\u53ef\u4ee5\u76f4\u63a5\u4f7f\u7528\uff09\uff0c\u6bd4\u5982\u5728\u6811\u8393\u6d3e\u4e0a\u8fd0\u884c\u4e00\u4e2a\u4eba\u8138\u68c0\u6d4b\u7cfb\u7edf\u662f\u6ca1\u95ee\u9898\u7684\uff0c\u5728\u6811\u8393\u6d3e\u4e0a\u642d\u5efaWeb\u7f51\u7ad9\u4e5f\u662f\u5f88\u65b9\u4fbf\u7684\u3002"),(0,a.yg)("li",{parentName:"ol"},"=====\u5d4c\u5165\u5f0f\u5f00\u53d1\uff0c\u4e3b\u8981\u6709\u4e09\u6761\u6280\u672f\u8def\u7ebf\uff1a",(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},"51\u5355\u7247\u673a"),(0,a.yg)("li",{parentName:"ul"},"STM32 + RTOS"),(0,a.yg)("li",{parentName:"ul"},"ARM + Linux\xa0 \xa0\xa0"),(0,a.yg)("li",{parentName:"ul"},"51\u5355\u7247\u673a\u4e3b\u8981\u7528\u5728\u4e00\u4e9b\u63a7\u5236\u7b80\u5355\u7684\u7535\u8def\u3001\u7535\u5668\u884c\u4e1a"),(0,a.yg)("li",{parentName:"ul"},"STM32 + RTOS \u4e3b\u8981\u7528\u5728\u4e00\u4e9b\u5b9e\u65f6\u8981\u6c42\u6bd4\u8f83\u9ad8\u7684\u884c\u4e1a\uff1a\u822a\u7a7a\u822a\u5929\u7b49\uff0c\u8fd8\u6709\u7269\u8054\u7f51\u3001\u5de5\u4e1a\u63a7\u5236"),(0,a.yg)("li",{parentName:"ul"},"ARM + Linux\u4e3b\u8981\u7528\u5728\u6d88\u8d39\u7535\u5b50\u9886\u57df\uff1a\u624b\u673a\u3001\u5e73\u677f\u3001\u667a\u80fd\u624b\u8868\u3001\u667a\u80fd\u97f3\u7bb1\u7b49"))),(0,a.yg)("li",{parentName:"ol"},"=====\u6309\u7167\u7cfb\u5217\u5212\u5206\uff1a",(0,a.yg)("ol",{parentName:"li"},(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("strong",{parentName:"li"},"\u5fae\u63a7\u5236\u5668\u7cfb\u5217\uff1a8051, MSP 430 ,\xa0"),"STM32 F0-3( ARM Cortext M0 - M3\u7cfb\u5217\uff09\u7b49"),(0,a.yg)("li",{parentName:"ol"},"\u4e3b\u8981\u7279\u70b9\u6ca1\u6709",(0,a.yg)("em",{parentName:"li"},"\u5185\u5b58\u7ba1\u7406\u5355\u5143"),"\uff0c\u4e0d\u80fd\u8fd0\u884clinux \u8fd9\u7c7b\u6709\u7740\u865a\u62df\u5185\u5b58\u7684\u64cd\u4f5c\u7cfb\u7edf\uff0c\u53ea\u80fd\u8fd0\u884c\u88f8\u673a\u7a0b\u5e8f\u6216\u662fucOS\u4e00\u7c7b\u7684\u5b9e\u65f6\u64cd\u4f5c\u7cfb\u7edf\u3002\u4e3b\u8981\u5de5\u4f5c\u5c31\u662f\u5916\u8bbe\u9a71\u52a8\u5f00\u53d1\uff08\u6bd4\u5982\u5199\u4e2a\u7f16\u7801\u5668\u7684\u9a71\u52a8\uff0c\u6db2\u6676\u7684\u9a71\u52a8\uff0cusb\u7684\u9a71\u52a8\uff09\u548c\u57fa\u4e8e\u9a71\u52a8\u7684\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\uff0c\u5982\u63a7\u5236\u7c7b\u548c\u7b80\u5355\u7684\u56fe\u50cf\u5904\u7406\u529f\u80fd\u3002"),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("strong",{parentName:"li"},"\u5fae\u5904\u7406\u5668\u7cfb\u5217"),"\uff1a ARM Cortex A\u7cfb\u5217\u7684\u5904\u7406\u5668"),(0,a.yg)("li",{parentName:"ol"},"\u6709",(0,a.yg)("em",{parentName:"li"},"\u5185\u5b58\u7ba1\u7406\u5355\u5143MMU"),",\u53ef\u4ee5\u8fd0\u884clinux\u7a0b\u5e8f\uff0c\u5f00\u53d1\u5176\u5b9e\u548c\u5728windows pc\u4e0a\u5199\u7a0b\u5e8f\u662f\u4e00\u6837\u7684\uff0c\u53ea\u662f\u7531\u4e8earm\u7f16\u8bd1\u6162\uff0c\u4e00\u822c\u4f1a\u9009\u5728\u5728PC\u4e0a\u7528\u9488\u5bf9ARM\u7279\u5b9a\u7f16\u8bd1\u5668\u53bb\u7f16\u8bd1\u51fa\u7a0b\u5e8f\u653e\u5728ARM\u4e0a\u8fd0\u884c\uff0c\u5c31\u662f\u4ea4\u53c9\u7f16\u8bd1\u3002\u8fd9\u91cc\u6d89\u53ca\u5230\u7684\u9a71\u52a8\u5f00\u53d1\u6bd4\u8f83\u590d\u6742\uff0c\u4e00\u822c\u4f1a\u9075\u5faalinux\u5b9a\u4e49\u7684\u89c4\u5219\u53bb\u5199\u3002")))))))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5b270517.e4eb019e.js b/assets/js/5b270517.e33ff50f.js similarity index 98% rename from assets/js/5b270517.e4eb019e.js rename to assets/js/5b270517.e33ff50f.js index 316de5570..16a8af0d9 100644 --- a/assets/js/5b270517.e4eb019e.js +++ b/assets/js/5b270517.e33ff50f.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5006],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),s=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},p=function(e){var t=s(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=s(r),y=o,f=u["".concat(l,".").concat(y)]||u[y]||d[y]||a;return r?n.createElement(f,c(c({ref:t},p),{},{components:r})):n.createElement(f,c({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=y;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[u]="string"==typeof e?e:o,c[1]=i;for(var s=2;s{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>s});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,i={unversionedId:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TimescaleDB",id:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TimescaleDB",title:"TimescaleDB",description:"\u57fa\u672c\u4fe1\u606f",source:"@site/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TimescaleDB.md",sourceDirName:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93",slug:"/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TimescaleDB",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TimescaleDB",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"OpenTSDB",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/OpenTSDB"},next:{title:"\u6982\u8ff0",permalink:"/docs/study/program/"}},l={},s=[{value:"\u57fa\u672c\u4fe1\u606f",id:"\u57fa\u672c\u4fe1\u606f",level:3}],p={toc:s},u="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u57fa\u672c\u4fe1\u606f"},"\u57fa\u672c\u4fe1\u606f"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},"\u57fa\u4e8e\u5173\u7cfb\u578b\u6570\u636e\u5e93\u7684\u65f6\u95f4\u5e8f\u5217\u6570\u636e\u5e93"),(0,o.yg)("li",{parentName:"ol"},"\u63a5\u53e3\uff1aSQL")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5006],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),s=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},p=function(e){var t=s(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=s(r),y=o,f=u["".concat(l,".").concat(y)]||u[y]||d[y]||a;return r?n.createElement(f,c(c({ref:t},p),{},{components:r})):n.createElement(f,c({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=y;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[u]="string"==typeof e?e:o,c[1]=i;for(var s=2;s{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>s});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,i={unversionedId:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TimescaleDB",id:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TimescaleDB",title:"TimescaleDB",description:"\u57fa\u672c\u4fe1\u606f",source:"@site/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TimescaleDB.md",sourceDirName:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93",slug:"/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TimescaleDB",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TimescaleDB",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"OpenTSDB",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/OpenTSDB"},next:{title:"\u6982\u8ff0",permalink:"/docs/study/program/"}},l={},s=[{value:"\u57fa\u672c\u4fe1\u606f",id:"\u57fa\u672c\u4fe1\u606f",level:3}],p={toc:s},u="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u57fa\u672c\u4fe1\u606f"},"\u57fa\u672c\u4fe1\u606f"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},"\u57fa\u4e8e\u5173\u7cfb\u578b\u6570\u636e\u5e93\u7684\u65f6\u95f4\u5e8f\u5217\u6570\u636e\u5e93"),(0,o.yg)("li",{parentName:"ol"},"\u63a5\u53e3\uff1aSQL")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5b89160d.ca3041cc.js b/assets/js/5b89160d.705cd254.js similarity index 98% rename from assets/js/5b89160d.ca3041cc.js rename to assets/js/5b89160d.705cd254.js index d55e3bb3f..b3ed1cce2 100644 --- a/assets/js/5b89160d.ca3041cc.js +++ b/assets/js/5b89160d.705cd254.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2202],{5680:(e,t,r)=>{r.d(t,{xA:()=>l,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var u=n.createContext({}),p=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},l=function(e){var t=p(e.components);return n.createElement(u.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,u=e.parentName,l=a(e,["components","mdxType","originalType","parentName"]),s=p(r),y=o,f=s["".concat(u,".").concat(y)]||s[y]||d[y]||i;return r?n.createElement(f,c(c({ref:t},l),{},{components:r})):n.createElement(f,c({ref:t},l))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,c=new Array(i);c[0]=y;var a={};for(var u in t)hasOwnProperty.call(t,u)&&(a[u]=t[u]);a.originalType=e,a[s]="string"==typeof e?e:o,c[1]=a;for(var p=2;p{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>c,default:()=>d,frontMatter:()=>i,metadata:()=>a,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const i={},c="ThingsCloud",a={unversionedId:"study/competitive/ThingsCloud",id:"study/competitive/ThingsCloud",title:"ThingsCloud",description:"\u53c2\u8003\uff0c\u53c2\u8003\uff0c\u7edd\u5bf9\u53ef\u4ee5\u53c2\u8003\u3002",source:"@site/docs/study/competitive/ThingsCloud.md",sourceDirName:"study/competitive",slug:"/study/competitive/ThingsCloud",permalink:"/docs/study/competitive/ThingsCloud",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"TP-LINK",permalink:"/docs/study/competitive/TP-LINK"},next:{title:"\u7269\u8054\u7f51\u5e73\u53f0\u5c42\u6982\u8ff0",permalink:"/docs/study/competitive/\u7269\u8054\u7f51\u5e73\u53f0\u5c42\u6982\u8ff0"}},u={},p=[],l={toc:p},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"thingscloud"},"ThingsCloud"),(0,o.yg)("p",null,"\u53c2\u8003\uff0c\u53c2\u8003\uff0c\u7edd\u5bf9\u53ef\u4ee5\u53c2\u8003\u3002"),(0,o.yg)("p",null,(0,o.yg)("a",{parentName:"p",href:"https://www.thingscloud.xyz/"},"\u5b98\u65b9\u7f51\u7ad9")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2202],{5680:(e,t,r)=>{r.d(t,{xA:()=>l,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var u=n.createContext({}),p=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},l=function(e){var t=p(e.components);return n.createElement(u.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,u=e.parentName,l=a(e,["components","mdxType","originalType","parentName"]),s=p(r),y=o,f=s["".concat(u,".").concat(y)]||s[y]||d[y]||i;return r?n.createElement(f,c(c({ref:t},l),{},{components:r})):n.createElement(f,c({ref:t},l))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,c=new Array(i);c[0]=y;var a={};for(var u in t)hasOwnProperty.call(t,u)&&(a[u]=t[u]);a.originalType=e,a[s]="string"==typeof e?e:o,c[1]=a;for(var p=2;p{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>c,default:()=>d,frontMatter:()=>i,metadata:()=>a,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const i={},c="ThingsCloud",a={unversionedId:"study/competitive/ThingsCloud",id:"study/competitive/ThingsCloud",title:"ThingsCloud",description:"\u53c2\u8003\uff0c\u53c2\u8003\uff0c\u7edd\u5bf9\u53ef\u4ee5\u53c2\u8003\u3002",source:"@site/docs/study/competitive/ThingsCloud.md",sourceDirName:"study/competitive",slug:"/study/competitive/ThingsCloud",permalink:"/docs/study/competitive/ThingsCloud",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"TP-LINK",permalink:"/docs/study/competitive/TP-LINK"},next:{title:"\u7269\u8054\u7f51\u5e73\u53f0\u5c42\u6982\u8ff0",permalink:"/docs/study/competitive/\u7269\u8054\u7f51\u5e73\u53f0\u5c42\u6982\u8ff0"}},u={},p=[],l={toc:p},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"thingscloud"},"ThingsCloud"),(0,o.yg)("p",null,"\u53c2\u8003\uff0c\u53c2\u8003\uff0c\u7edd\u5bf9\u53ef\u4ee5\u53c2\u8003\u3002"),(0,o.yg)("p",null,(0,o.yg)("a",{parentName:"p",href:"https://www.thingscloud.xyz/"},"\u5b98\u65b9\u7f51\u7ad9")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5ca6a2d2.f1a3fbd5.js b/assets/js/5ca6a2d2.2e6a9a6c.js similarity index 99% rename from assets/js/5ca6a2d2.f1a3fbd5.js rename to assets/js/5ca6a2d2.2e6a9a6c.js index 3162f81aa..a60043444 100644 --- a/assets/js/5ca6a2d2.f1a3fbd5.js +++ b/assets/js/5ca6a2d2.2e6a9a6c.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2189],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>g});var n=r(6540);function l(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(l[r]=e[r]);return l}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(l[r]=e[r])}return l}var s=n.createContext({}),d=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},p=function(e){var t=d(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var r=e.components,l=e.mdxType,i=e.originalType,s=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),u=d(r),c=l,g=u["".concat(s,".").concat(c)]||u[c]||y[c]||i;return r?n.createElement(g,a(a({ref:t},p),{},{components:r})):n.createElement(g,a({ref:t},p))}));function g(e,t){var r=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var i=r.length,a=new Array(i);a[0]=c;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[u]="string"==typeof e?e:l,a[1]=o;for(var d=2;d{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>a,default:()=>y,frontMatter:()=>i,metadata:()=>o,toc:()=>d});var n=r(8168),l=(r(6540),r(5680));const i={},a=void 0,o={unversionedId:"study/db/NoSQL/Redis",id:"study/db/NoSQL/Redis",title:"Redis",description:"Redis \u662f\u4ec0\u4e48",source:"@site/docs/study/db/NoSQL/Redis.md",sourceDirName:"study/db/NoSQL",slug:"/study/db/NoSQL/Redis",permalink:"/docs/study/db/NoSQL/Redis",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"MongoDB",permalink:"/docs/study/db/NoSQL/MongoDB"},next:{title:"\u7efc\u5408\u6982\u8ff0",permalink:"/docs/study/db/OLAP/\u7efc\u5408\u6982\u8ff0"}},s={},d=[{value:"Redis \u662f\u4ec0\u4e48",id:"redis-\u662f\u4ec0\u4e48",level:3},{value:"Redis \u6570\u636e\u7ed3\u6784",id:"redis-\u6570\u636e\u7ed3\u6784",level:3},{value:"Redis \u6301\u4e45\u5316",id:"redis-\u6301\u4e45\u5316",level:3},{value:"\u56db\u79cd\u6a21\u5f0f",id:"\u56db\u79cd\u6a21\u5f0f",level:3},{value:"\u5355\u673a",id:"\u5355\u673a",level:4},{value:"\u4e3b\u4ece",id:"\u4e3b\u4ece",level:4},{value:"\u54e8\u5175",id:"\u54e8\u5175",level:4},{value:"\u96c6\u7fa4",id:"\u96c6\u7fa4",level:4},{value:"\u53c2\u8003\u8d44\u6599",id:"\u53c2\u8003\u8d44\u6599",level:3}],p={toc:d},u="wrapper";function y(e){let{components:t,...r}=e;return(0,l.yg)(u,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,l.yg)("h3",{id:"redis-\u662f\u4ec0\u4e48"},"Redis \u662f\u4ec0\u4e48"),(0,l.yg)("p",null,"redis \u662f\u4e00\u4e2a\u5f00\u6e90\u7684\u3001\u4f7f\u7528 C \u8bed\u8a00\u7f16\u5199\u7684\u3001\u652f\u6301\u7f51\u7edc\u4ea4\u4e92\u7684\u3001\u53ef\u57fa\u4e8e\u5185\u5b58\u4e5f\u53ef\u6301\u4e45\u5316\u7684 Key-Value \u6570\u636e\u5e93\u3002",(0,l.yg)("a",{parentName:"p",href:"https://redis.io"},"\u5b98\u7f51"),"\u3002"),(0,l.yg)("p",null,"\u76ee\u524d\uff0cVmware \u5728\u8d44\u52a9\u7740 redis \u9879\u76ee\u7684\u5f00\u53d1\u548c\u7ef4\u62a4\u3002"),(0,l.yg)("p",null,"redis \u7684\u4f5c\u8005\uff0c\u4ed6\u53eb Salvatore Sanfilippo\uff0c\u7f51\u540d\u662f antirez\uff0c\u53bb\u4ed6\u7684\u535a\u5ba2\u901b\u901b\uff0c\u5730\u5740\u662f antirez.com\uff0c\u5f53\u7136\u4e5f\u53ef\u4ee5\u53bb follow \u4ed6\u7684 github\uff0c\u5730\u5740\u662f",(0,l.yg)("a",{parentName:"p",href:"http://github.com/antirez"},"http://github.com/antirez"),"\u3002"),(0,l.yg)("p",null,"Redis \u662f K-V \u5b58\u50a8\u7684\u5178\u578b\u4ee3\u8868\uff0c\u5b83\u662f\u4e00\u6b3e\u5f00\u6e90\uff08\u57fa\u4e8e BSD \u8bb8\u53ef\uff09\u7684\u9ad8\u6027\u80fd K-V \u7f13\u5b58\u548c\u5b58\u50a8\u7cfb\u7edf\u3002Redis \u7684 Value \u662f\u5177\u4f53\u7684\u6570\u636e\u7ed3\u6784\uff0c\u5305\u62ec string\u3001hash\u3001list\u3001set\u3001sorted set\u3001bitmap \u548c hyperloglog\uff0c\u6240\u4ee5\u5e38\u5e38\u88ab\u79f0\u4e3a\u6570\u636e\u7ed3\u6784\u670d\u52a1\u5668\u3002"),(0,l.yg)("h3",{id:"redis-\u6570\u636e\u7ed3\u6784"},"Redis \u6570\u636e\u7ed3\u6784"),(0,l.yg)("p",null,"redis \u662f\u4e00\u79cd\u9ad8\u7ea7\u7684 key:value \u5b58\u50a8\u7cfb\u7edf\uff0c\u5176\u4e2d value \u652f\u6301\u4e94\u79cd\u6570\u636e\u7c7b\u578b\uff1a"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u5b57\u7b26\u4e32\uff08strings\uff09"),(0,l.yg)("li",{parentName:"ol"},"\u5b57\u7b26\u4e32\u5217\u8868\uff08lists\uff09"),(0,l.yg)("li",{parentName:"ol"},"\u5b57\u7b26\u4e32\u96c6\u5408\uff08sets\uff09"),(0,l.yg)("li",{parentName:"ol"},"\u6709\u5e8f\u5b57\u7b26\u4e32\u96c6\u5408\uff08sorted sets\uff09"),(0,l.yg)("li",{parentName:"ol"},"\u54c8\u5e0c\uff08hashes\uff09",(0,l.yg)("ol",{parentName:"li"},(0,l.yg)("li",{parentName:"ol"},"hashes \u5b58\u7684\u662f\u5b57\u7b26\u4e32\u548c\u5b57\u7b26\u4e32\u503c\u4e4b\u95f4\u7684\u6620\u5c04\uff0c\u6bd4\u5982\u4e00\u4e2a\u7528\u6237\u8981\u5b58\u50a8\u5176\u5168\u540d\u3001\u59d3\u6c0f\u3001\u5e74\u9f84\u7b49\u7b49\uff0c\u5c31\u5f88\u9002\u5408\u4f7f\u7528\u54c8\u5e0c\u3002")))),(0,l.yg)("p",null,"key \u7684\u547d\u540d\u89c4\u5219\uff1a"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"key \u4e0d\u8981\u592a\u957f\uff0c\u5c3d\u91cf\u4e0d\u8981\u8d85\u8fc7 1024 \u5b57\u8282\uff0c\u8fd9\u4e0d\u4ec5\u6d88\u8017\u5185\u5b58\uff0c\u800c\u4e14\u4f1a\u964d\u4f4e\u67e5\u627e\u7684\u6548\u7387\uff1b"),(0,l.yg)("li",{parentName:"ol"},"key \u4e5f\u4e0d\u8981\u592a\u77ed\uff0c\u592a\u77ed\u7684\u8bdd\uff0ckey \u7684\u53ef\u8bfb\u6027\u4f1a\u964d\u4f4e\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u5728\u4e00\u4e2a\u9879\u76ee\u4e2d\uff0ckey \u6700\u597d\u4f7f\u7528\u7edf\u4e00\u7684\u547d\u540d\u6a21\u5f0f\uff0c\u4f8b\u5982 user:10000:passwd\u3002")),(0,l.yg)("h3",{id:"redis-\u6301\u4e45\u5316"},"Redis \u6301\u4e45\u5316"),(0,l.yg)("p",null,"redis \u63d0\u4f9b\u4e86\u4e24\u79cd\u6301\u4e45\u5316\u7684\u65b9\u5f0f\uff0c\u5206\u522b\u662f RDB\uff08Redis DataBase\uff09\u548c AOF\uff08Append Only File\uff09\u3002"),(0,l.yg)("p",null,"RDB\uff0c\u7b80\u800c\u8a00\u4e4b\uff0c\u5c31\u662f\u5728\u4e0d\u540c\u7684\u65f6\u95f4\u70b9\uff0c\u5c06 redis \u5b58\u50a8\u7684\u6570\u636e\u751f\u6210\u5feb\u7167\u5e76\u5b58\u50a8\u5230\u78c1\u76d8\u7b49\u4ecb\u8d28\u4e0a\uff1b\nAOF\uff0c\u5219\u662f\u6362\u4e86\u4e00\u4e2a\u89d2\u5ea6\u6765\u5b9e\u73b0\u6301\u4e45\u5316\uff0c\u90a3\u5c31\u662f\u5c06 redis \u6267\u884c\u8fc7\u7684\u6240\u6709\u5199\u6307\u4ee4\u8bb0\u5f55\u4e0b\u6765\uff0c\u5728\u4e0b\u6b21 redis \u91cd\u65b0\u542f\u52a8\u65f6\uff0c\u53ea\u8981\u628a\u8fd9\u4e9b\u5199\u6307\u4ee4\u4ece\u524d\u5230\u540e\u518d\u91cd\u590d\u6267\u884c\u4e00\u904d\uff0c\u5c31\u53ef\u4ee5\u5b9e\u73b0\u6570\u636e\u6062\u590d\u4e86\u3002"),(0,l.yg)("p",null,"\u5176\u5b9e RDB \u548c AOF \u4e24\u79cd\u65b9\u5f0f\u4e5f\u53ef\u4ee5\u540c\u65f6\u4f7f\u7528\uff0c\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\uff0c\u5982\u679c redis \u91cd\u542f\u7684\u8bdd\uff0c\u5219\u4f1a\u4f18\u5148\u91c7\u7528 AOF \u65b9\u5f0f\u6765\u8fdb\u884c\u6570\u636e\u6062\u590d\uff0c\u8fd9\u662f\u56e0\u4e3a AOF \u65b9\u5f0f\u7684\u6570\u636e\u6062\u590d\u5b8c\u6574\u5ea6\u66f4\u9ad8\u3002"),(0,l.yg)("p",null,"\u5982\u679c\u4f60\u6ca1\u6709\u6570\u636e\u6301\u4e45\u5316\u7684\u9700\u6c42\uff0c\u4e5f\u5b8c\u5168\u53ef\u4ee5\u5173\u95ed RDB \u548c AOF \u65b9\u5f0f\uff0c\u8fd9\u6837\u7684\u8bdd\uff0credis \u5c06\u53d8\u6210\u4e00\u4e2a\u7eaf\u5185\u5b58\u6570\u636e\u5e93\uff0c\u5c31\u50cf memcache \u4e00\u6837\u3002"),(0,l.yg)("h3",{id:"\u56db\u79cd\u6a21\u5f0f"},"\u56db\u79cd\u6a21\u5f0f"),(0,l.yg)("p",null,(0,l.yg)("a",{parentName:"p",href:"https://baijiahao.baidu.com/s?id=1761339110124241069&wfr=spider&for=pc"},"\u6df1\u5165\u7406\u89e3Redis\u7684\u5355\u673a\u3001\u4e3b\u4ece\u3001\u54e8\u5175\u3001\u96c6\u7fa4\u56db\u79cd\u6a21\u5f0f")),(0,l.yg)("h4",{id:"\u5355\u673a"},"\u5355\u673a"),(0,l.yg)("h4",{id:"\u4e3b\u4ece"},"\u4e3b\u4ece"),(0,l.yg)("p",null,"\u50cf MySQL \u4e00\u6837\uff0credis \u662f\u652f\u6301\u4e3b\u4ece\u540c\u6b65\u7684\uff0c\u800c\u4e14\u4e5f\u652f\u6301\u4e00\u4e3b\u591a\u4ece\u4ee5\u53ca\u591a\u7ea7\u4ece\u7ed3\u6784\u3002"),(0,l.yg)("p",null,"\u4e3b\u4ece\u7ed3\u6784\uff0c\u4e00\u662f\u4e3a\u4e86\u7eaf\u7cb9\u7684\u5197\u4f59\u5907\u4efd\uff0c\u4e8c\u662f\u4e3a\u4e86\u63d0\u5347\u8bfb\u6027\u80fd\uff0c\u6bd4\u5982\u5f88\u6d88\u8017\u6027\u80fd\u7684 SORT \u5c31\u53ef\u4ee5\u7531\u4ece\u670d\u52a1\u5668\u6765\u627f\u62c5\u3002"),(0,l.yg)("p",null,"redis \u7684\u4e3b\u4ece\u540c\u6b65\u662f\u5f02\u6b65\u8fdb\u884c\u7684\uff0c\u8fd9\u610f\u5473\u7740\u4e3b\u4ece\u540c\u6b65\u4e0d\u4f1a\u5f71\u54cd\u4e3b\u903b\u8f91\uff0c\u4e5f\u4e0d\u4f1a\u964d\u4f4e redis \u7684\u5904\u7406\u6027\u80fd\u3002"),(0,l.yg)("p",null,"\u4e3b\u4ece\u67b6\u6784\u4e2d\uff0c\u53ef\u4ee5\u8003\u8651\u5173\u95ed\u4e3b\u670d\u52a1\u5668\u7684\u6570\u636e\u6301\u4e45\u5316\u529f\u80fd\uff0c\u53ea\u8ba9\u4ece\u670d\u52a1\u5668\u8fdb\u884c\u6301\u4e45\u5316\uff0c\u8fd9\u6837\u53ef\u4ee5\u63d0\u9ad8\u4e3b\u670d\u52a1\u5668\u7684\u5904\u7406\u6027\u80fd\u3002"),(0,l.yg)("p",null,"\u5728\u4e3b\u4ece\u67b6\u6784\u4e2d\uff0c\u4ece\u670d\u52a1\u5668\u901a\u5e38\u88ab\u8bbe\u7f6e\u4e3a\u53ea\u8bfb\u6a21\u5f0f\uff0c\u8fd9\u6837\u53ef\u4ee5\u907f\u514d\u4ece\u670d\u52a1\u5668\u7684\u6570\u636e\u88ab\u8bef\u4fee\u6539\u3002\u4f46\u662f\u4ece\u670d\u52a1\u5668\u4ecd\u7136\u53ef\u4ee5\u63a5\u53d7 CONFIG \u7b49\u6307\u4ee4\uff0c\u6240\u4ee5\u8fd8\u662f\u4e0d\u5e94\u8be5\u5c06\u4ece\u670d\u52a1\u5668\u76f4\u63a5\u66b4\u9732\u5230\u4e0d\u5b89\u5168\u7684\u7f51\u7edc\u73af\u5883\u4e2d\u3002\u5982\u679c\u5fc5\u987b\u5982\u6b64\uff0c\u90a3\u53ef\u4ee5\u8003\u8651\u7ed9\u91cd\u8981\u6307\u4ee4\u8fdb\u884c\u91cd\u547d\u540d\uff0c\u6765\u907f\u514d\u547d\u4ee4\u88ab\u5916\u4eba\u8bef\u6267\u884c\u3002"),(0,l.yg)("h4",{id:"\u54e8\u5175"},"\u54e8\u5175"),(0,l.yg)("h4",{id:"\u96c6\u7fa4"},"\u96c6\u7fa4"),(0,l.yg)("h3",{id:"\u53c2\u8003\u8d44\u6599"},"\u53c2\u8003\u8d44\u6599"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/523368070"},"\u5f20\u5f66\u98de-Redis 6 \u4e2d\u7684\u591a\u7ebf\u7a0b\u5b9e\u73b0\u65b9\u5f0f\u6bd4\u6211\u9884\u671f\u7684\u8981\u5dee")),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/512502929"},"\u5f20\u5f66\u98de-\u6df1\u5ea6\u89e3\u6790\u5355\u7ebf\u7a0b\u7684 Redis \u5982\u4f55\u505a\u5230\u6bcf\u79d2\u6570\u4e07 QPS \u7684\u8d85\u9ad8\u5904\u7406\u80fd\u529b\uff01"))))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2189],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>g});var n=r(6540);function l(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(l[r]=e[r]);return l}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(l[r]=e[r])}return l}var s=n.createContext({}),d=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},p=function(e){var t=d(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var r=e.components,l=e.mdxType,i=e.originalType,s=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),u=d(r),c=l,g=u["".concat(s,".").concat(c)]||u[c]||y[c]||i;return r?n.createElement(g,a(a({ref:t},p),{},{components:r})):n.createElement(g,a({ref:t},p))}));function g(e,t){var r=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var i=r.length,a=new Array(i);a[0]=c;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[u]="string"==typeof e?e:l,a[1]=o;for(var d=2;d{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>a,default:()=>y,frontMatter:()=>i,metadata:()=>o,toc:()=>d});var n=r(8168),l=(r(6540),r(5680));const i={},a=void 0,o={unversionedId:"study/db/NoSQL/Redis",id:"study/db/NoSQL/Redis",title:"Redis",description:"Redis \u662f\u4ec0\u4e48",source:"@site/docs/study/db/NoSQL/Redis.md",sourceDirName:"study/db/NoSQL",slug:"/study/db/NoSQL/Redis",permalink:"/docs/study/db/NoSQL/Redis",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"MongoDB",permalink:"/docs/study/db/NoSQL/MongoDB"},next:{title:"\u7efc\u5408\u6982\u8ff0",permalink:"/docs/study/db/OLAP/\u7efc\u5408\u6982\u8ff0"}},s={},d=[{value:"Redis \u662f\u4ec0\u4e48",id:"redis-\u662f\u4ec0\u4e48",level:3},{value:"Redis \u6570\u636e\u7ed3\u6784",id:"redis-\u6570\u636e\u7ed3\u6784",level:3},{value:"Redis \u6301\u4e45\u5316",id:"redis-\u6301\u4e45\u5316",level:3},{value:"\u56db\u79cd\u6a21\u5f0f",id:"\u56db\u79cd\u6a21\u5f0f",level:3},{value:"\u5355\u673a",id:"\u5355\u673a",level:4},{value:"\u4e3b\u4ece",id:"\u4e3b\u4ece",level:4},{value:"\u54e8\u5175",id:"\u54e8\u5175",level:4},{value:"\u96c6\u7fa4",id:"\u96c6\u7fa4",level:4},{value:"\u53c2\u8003\u8d44\u6599",id:"\u53c2\u8003\u8d44\u6599",level:3}],p={toc:d},u="wrapper";function y(e){let{components:t,...r}=e;return(0,l.yg)(u,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,l.yg)("h3",{id:"redis-\u662f\u4ec0\u4e48"},"Redis \u662f\u4ec0\u4e48"),(0,l.yg)("p",null,"redis \u662f\u4e00\u4e2a\u5f00\u6e90\u7684\u3001\u4f7f\u7528 C \u8bed\u8a00\u7f16\u5199\u7684\u3001\u652f\u6301\u7f51\u7edc\u4ea4\u4e92\u7684\u3001\u53ef\u57fa\u4e8e\u5185\u5b58\u4e5f\u53ef\u6301\u4e45\u5316\u7684 Key-Value \u6570\u636e\u5e93\u3002",(0,l.yg)("a",{parentName:"p",href:"https://redis.io"},"\u5b98\u7f51"),"\u3002"),(0,l.yg)("p",null,"\u76ee\u524d\uff0cVmware \u5728\u8d44\u52a9\u7740 redis \u9879\u76ee\u7684\u5f00\u53d1\u548c\u7ef4\u62a4\u3002"),(0,l.yg)("p",null,"redis \u7684\u4f5c\u8005\uff0c\u4ed6\u53eb Salvatore Sanfilippo\uff0c\u7f51\u540d\u662f antirez\uff0c\u53bb\u4ed6\u7684\u535a\u5ba2\u901b\u901b\uff0c\u5730\u5740\u662f antirez.com\uff0c\u5f53\u7136\u4e5f\u53ef\u4ee5\u53bb follow \u4ed6\u7684 github\uff0c\u5730\u5740\u662f",(0,l.yg)("a",{parentName:"p",href:"http://github.com/antirez"},"http://github.com/antirez"),"\u3002"),(0,l.yg)("p",null,"Redis \u662f K-V \u5b58\u50a8\u7684\u5178\u578b\u4ee3\u8868\uff0c\u5b83\u662f\u4e00\u6b3e\u5f00\u6e90\uff08\u57fa\u4e8e BSD \u8bb8\u53ef\uff09\u7684\u9ad8\u6027\u80fd K-V \u7f13\u5b58\u548c\u5b58\u50a8\u7cfb\u7edf\u3002Redis \u7684 Value \u662f\u5177\u4f53\u7684\u6570\u636e\u7ed3\u6784\uff0c\u5305\u62ec string\u3001hash\u3001list\u3001set\u3001sorted set\u3001bitmap \u548c hyperloglog\uff0c\u6240\u4ee5\u5e38\u5e38\u88ab\u79f0\u4e3a\u6570\u636e\u7ed3\u6784\u670d\u52a1\u5668\u3002"),(0,l.yg)("h3",{id:"redis-\u6570\u636e\u7ed3\u6784"},"Redis \u6570\u636e\u7ed3\u6784"),(0,l.yg)("p",null,"redis \u662f\u4e00\u79cd\u9ad8\u7ea7\u7684 key:value \u5b58\u50a8\u7cfb\u7edf\uff0c\u5176\u4e2d value \u652f\u6301\u4e94\u79cd\u6570\u636e\u7c7b\u578b\uff1a"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u5b57\u7b26\u4e32\uff08strings\uff09"),(0,l.yg)("li",{parentName:"ol"},"\u5b57\u7b26\u4e32\u5217\u8868\uff08lists\uff09"),(0,l.yg)("li",{parentName:"ol"},"\u5b57\u7b26\u4e32\u96c6\u5408\uff08sets\uff09"),(0,l.yg)("li",{parentName:"ol"},"\u6709\u5e8f\u5b57\u7b26\u4e32\u96c6\u5408\uff08sorted sets\uff09"),(0,l.yg)("li",{parentName:"ol"},"\u54c8\u5e0c\uff08hashes\uff09",(0,l.yg)("ol",{parentName:"li"},(0,l.yg)("li",{parentName:"ol"},"hashes \u5b58\u7684\u662f\u5b57\u7b26\u4e32\u548c\u5b57\u7b26\u4e32\u503c\u4e4b\u95f4\u7684\u6620\u5c04\uff0c\u6bd4\u5982\u4e00\u4e2a\u7528\u6237\u8981\u5b58\u50a8\u5176\u5168\u540d\u3001\u59d3\u6c0f\u3001\u5e74\u9f84\u7b49\u7b49\uff0c\u5c31\u5f88\u9002\u5408\u4f7f\u7528\u54c8\u5e0c\u3002")))),(0,l.yg)("p",null,"key \u7684\u547d\u540d\u89c4\u5219\uff1a"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"key \u4e0d\u8981\u592a\u957f\uff0c\u5c3d\u91cf\u4e0d\u8981\u8d85\u8fc7 1024 \u5b57\u8282\uff0c\u8fd9\u4e0d\u4ec5\u6d88\u8017\u5185\u5b58\uff0c\u800c\u4e14\u4f1a\u964d\u4f4e\u67e5\u627e\u7684\u6548\u7387\uff1b"),(0,l.yg)("li",{parentName:"ol"},"key \u4e5f\u4e0d\u8981\u592a\u77ed\uff0c\u592a\u77ed\u7684\u8bdd\uff0ckey \u7684\u53ef\u8bfb\u6027\u4f1a\u964d\u4f4e\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u5728\u4e00\u4e2a\u9879\u76ee\u4e2d\uff0ckey \u6700\u597d\u4f7f\u7528\u7edf\u4e00\u7684\u547d\u540d\u6a21\u5f0f\uff0c\u4f8b\u5982 user:10000:passwd\u3002")),(0,l.yg)("h3",{id:"redis-\u6301\u4e45\u5316"},"Redis \u6301\u4e45\u5316"),(0,l.yg)("p",null,"redis \u63d0\u4f9b\u4e86\u4e24\u79cd\u6301\u4e45\u5316\u7684\u65b9\u5f0f\uff0c\u5206\u522b\u662f RDB\uff08Redis DataBase\uff09\u548c AOF\uff08Append Only File\uff09\u3002"),(0,l.yg)("p",null,"RDB\uff0c\u7b80\u800c\u8a00\u4e4b\uff0c\u5c31\u662f\u5728\u4e0d\u540c\u7684\u65f6\u95f4\u70b9\uff0c\u5c06 redis \u5b58\u50a8\u7684\u6570\u636e\u751f\u6210\u5feb\u7167\u5e76\u5b58\u50a8\u5230\u78c1\u76d8\u7b49\u4ecb\u8d28\u4e0a\uff1b\nAOF\uff0c\u5219\u662f\u6362\u4e86\u4e00\u4e2a\u89d2\u5ea6\u6765\u5b9e\u73b0\u6301\u4e45\u5316\uff0c\u90a3\u5c31\u662f\u5c06 redis \u6267\u884c\u8fc7\u7684\u6240\u6709\u5199\u6307\u4ee4\u8bb0\u5f55\u4e0b\u6765\uff0c\u5728\u4e0b\u6b21 redis \u91cd\u65b0\u542f\u52a8\u65f6\uff0c\u53ea\u8981\u628a\u8fd9\u4e9b\u5199\u6307\u4ee4\u4ece\u524d\u5230\u540e\u518d\u91cd\u590d\u6267\u884c\u4e00\u904d\uff0c\u5c31\u53ef\u4ee5\u5b9e\u73b0\u6570\u636e\u6062\u590d\u4e86\u3002"),(0,l.yg)("p",null,"\u5176\u5b9e RDB \u548c AOF \u4e24\u79cd\u65b9\u5f0f\u4e5f\u53ef\u4ee5\u540c\u65f6\u4f7f\u7528\uff0c\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\uff0c\u5982\u679c redis \u91cd\u542f\u7684\u8bdd\uff0c\u5219\u4f1a\u4f18\u5148\u91c7\u7528 AOF \u65b9\u5f0f\u6765\u8fdb\u884c\u6570\u636e\u6062\u590d\uff0c\u8fd9\u662f\u56e0\u4e3a AOF \u65b9\u5f0f\u7684\u6570\u636e\u6062\u590d\u5b8c\u6574\u5ea6\u66f4\u9ad8\u3002"),(0,l.yg)("p",null,"\u5982\u679c\u4f60\u6ca1\u6709\u6570\u636e\u6301\u4e45\u5316\u7684\u9700\u6c42\uff0c\u4e5f\u5b8c\u5168\u53ef\u4ee5\u5173\u95ed RDB \u548c AOF \u65b9\u5f0f\uff0c\u8fd9\u6837\u7684\u8bdd\uff0credis \u5c06\u53d8\u6210\u4e00\u4e2a\u7eaf\u5185\u5b58\u6570\u636e\u5e93\uff0c\u5c31\u50cf memcache \u4e00\u6837\u3002"),(0,l.yg)("h3",{id:"\u56db\u79cd\u6a21\u5f0f"},"\u56db\u79cd\u6a21\u5f0f"),(0,l.yg)("p",null,(0,l.yg)("a",{parentName:"p",href:"https://baijiahao.baidu.com/s?id=1761339110124241069&wfr=spider&for=pc"},"\u6df1\u5165\u7406\u89e3Redis\u7684\u5355\u673a\u3001\u4e3b\u4ece\u3001\u54e8\u5175\u3001\u96c6\u7fa4\u56db\u79cd\u6a21\u5f0f")),(0,l.yg)("h4",{id:"\u5355\u673a"},"\u5355\u673a"),(0,l.yg)("h4",{id:"\u4e3b\u4ece"},"\u4e3b\u4ece"),(0,l.yg)("p",null,"\u50cf MySQL \u4e00\u6837\uff0credis \u662f\u652f\u6301\u4e3b\u4ece\u540c\u6b65\u7684\uff0c\u800c\u4e14\u4e5f\u652f\u6301\u4e00\u4e3b\u591a\u4ece\u4ee5\u53ca\u591a\u7ea7\u4ece\u7ed3\u6784\u3002"),(0,l.yg)("p",null,"\u4e3b\u4ece\u7ed3\u6784\uff0c\u4e00\u662f\u4e3a\u4e86\u7eaf\u7cb9\u7684\u5197\u4f59\u5907\u4efd\uff0c\u4e8c\u662f\u4e3a\u4e86\u63d0\u5347\u8bfb\u6027\u80fd\uff0c\u6bd4\u5982\u5f88\u6d88\u8017\u6027\u80fd\u7684 SORT \u5c31\u53ef\u4ee5\u7531\u4ece\u670d\u52a1\u5668\u6765\u627f\u62c5\u3002"),(0,l.yg)("p",null,"redis \u7684\u4e3b\u4ece\u540c\u6b65\u662f\u5f02\u6b65\u8fdb\u884c\u7684\uff0c\u8fd9\u610f\u5473\u7740\u4e3b\u4ece\u540c\u6b65\u4e0d\u4f1a\u5f71\u54cd\u4e3b\u903b\u8f91\uff0c\u4e5f\u4e0d\u4f1a\u964d\u4f4e redis \u7684\u5904\u7406\u6027\u80fd\u3002"),(0,l.yg)("p",null,"\u4e3b\u4ece\u67b6\u6784\u4e2d\uff0c\u53ef\u4ee5\u8003\u8651\u5173\u95ed\u4e3b\u670d\u52a1\u5668\u7684\u6570\u636e\u6301\u4e45\u5316\u529f\u80fd\uff0c\u53ea\u8ba9\u4ece\u670d\u52a1\u5668\u8fdb\u884c\u6301\u4e45\u5316\uff0c\u8fd9\u6837\u53ef\u4ee5\u63d0\u9ad8\u4e3b\u670d\u52a1\u5668\u7684\u5904\u7406\u6027\u80fd\u3002"),(0,l.yg)("p",null,"\u5728\u4e3b\u4ece\u67b6\u6784\u4e2d\uff0c\u4ece\u670d\u52a1\u5668\u901a\u5e38\u88ab\u8bbe\u7f6e\u4e3a\u53ea\u8bfb\u6a21\u5f0f\uff0c\u8fd9\u6837\u53ef\u4ee5\u907f\u514d\u4ece\u670d\u52a1\u5668\u7684\u6570\u636e\u88ab\u8bef\u4fee\u6539\u3002\u4f46\u662f\u4ece\u670d\u52a1\u5668\u4ecd\u7136\u53ef\u4ee5\u63a5\u53d7 CONFIG \u7b49\u6307\u4ee4\uff0c\u6240\u4ee5\u8fd8\u662f\u4e0d\u5e94\u8be5\u5c06\u4ece\u670d\u52a1\u5668\u76f4\u63a5\u66b4\u9732\u5230\u4e0d\u5b89\u5168\u7684\u7f51\u7edc\u73af\u5883\u4e2d\u3002\u5982\u679c\u5fc5\u987b\u5982\u6b64\uff0c\u90a3\u53ef\u4ee5\u8003\u8651\u7ed9\u91cd\u8981\u6307\u4ee4\u8fdb\u884c\u91cd\u547d\u540d\uff0c\u6765\u907f\u514d\u547d\u4ee4\u88ab\u5916\u4eba\u8bef\u6267\u884c\u3002"),(0,l.yg)("h4",{id:"\u54e8\u5175"},"\u54e8\u5175"),(0,l.yg)("h4",{id:"\u96c6\u7fa4"},"\u96c6\u7fa4"),(0,l.yg)("h3",{id:"\u53c2\u8003\u8d44\u6599"},"\u53c2\u8003\u8d44\u6599"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/523368070"},"\u5f20\u5f66\u98de-Redis 6 \u4e2d\u7684\u591a\u7ebf\u7a0b\u5b9e\u73b0\u65b9\u5f0f\u6bd4\u6211\u9884\u671f\u7684\u8981\u5dee")),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/512502929"},"\u5f20\u5f66\u98de-\u6df1\u5ea6\u89e3\u6790\u5355\u7ebf\u7a0b\u7684 Redis \u5982\u4f55\u505a\u5230\u6bcf\u79d2\u6570\u4e07 QPS \u7684\u8d85\u9ad8\u5904\u7406\u80fd\u529b\uff01"))))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5d0c646c.46b0bfa5.js b/assets/js/5d0c646c.ef82c2a2.js similarity index 98% rename from assets/js/5d0c646c.46b0bfa5.js rename to assets/js/5d0c646c.ef82c2a2.js index 801dec0ef..063c92625 100644 --- a/assets/js/5d0c646c.46b0bfa5.js +++ b/assets/js/5d0c646c.ef82c2a2.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4080],{5680:(e,t,r)=>{r.d(t,{xA:()=>l,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function s(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var i=n.createContext({}),u=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):s(s({},t),e)),r},l=function(e){var t=u(e.components);return n.createElement(i.Provider,{value:t},e.children)},p="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),p=u(r),d=o,f=p["".concat(i,".").concat(d)]||p[d]||y[d]||a;return r?n.createElement(f,s(s({ref:t},l),{},{components:r})):n.createElement(f,s({ref:t},l))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,s=new Array(a);s[0]=d;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[p]="string"==typeof e?e:o,s[1]=c;for(var u=2;u{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>s,default:()=>y,frontMatter:()=>a,metadata:()=>c,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={},s="\u5185\u5b58\u7ba1\u7406",c={unversionedId:"study/system/\u5185\u5b58\u7ba1\u7406",id:"study/system/\u5185\u5b58\u7ba1\u7406",title:"\u5185\u5b58\u7ba1\u7406",description:"\u53c2\u8003",source:"@site/docs/study/system/\u5185\u5b58\u7ba1\u7406.md",sourceDirName:"study/system",slug:"/study/system/\u5185\u5b58\u7ba1\u7406",permalink:"/docs/study/system/\u5185\u5b58\u7ba1\u7406",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"yum-dnf",permalink:"/docs/study/system/yum-dnf"},next:{title:"\u53ef\u6267\u884c\u7a0b\u5e8f\u5728\u64cd\u4f5c\u7cfb\u7edf\u4e0b\u7684\u8fd0\u884c\u539f\u7406\u5206\u6790",permalink:"/docs/study/system/\u53ef\u6267\u884c\u7a0b\u5e8f\u8fd0\u884c\u539f\u7406\u5206\u6790"}},i={},u=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],l={toc:u},p="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(p,(0,n.A)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u5185\u5b58\u7ba1\u7406"},"\u5185\u5b58\u7ba1\u7406"),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/455772416"},"\u77e5\u4e4e-\u4ece\u5185\u5b58\u7ba1\u7406\u539f\u7406\uff0c\u7aa5\u63a2 OS \u5185\u5b58\u7ba1\u7406\u673a\u5236"))))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4080],{5680:(e,t,r)=>{r.d(t,{xA:()=>l,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function s(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var i=n.createContext({}),u=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):s(s({},t),e)),r},l=function(e){var t=u(e.components);return n.createElement(i.Provider,{value:t},e.children)},p="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),p=u(r),d=o,f=p["".concat(i,".").concat(d)]||p[d]||y[d]||a;return r?n.createElement(f,s(s({ref:t},l),{},{components:r})):n.createElement(f,s({ref:t},l))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,s=new Array(a);s[0]=d;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[p]="string"==typeof e?e:o,s[1]=c;for(var u=2;u{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>s,default:()=>y,frontMatter:()=>a,metadata:()=>c,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={},s="\u5185\u5b58\u7ba1\u7406",c={unversionedId:"study/system/\u5185\u5b58\u7ba1\u7406",id:"study/system/\u5185\u5b58\u7ba1\u7406",title:"\u5185\u5b58\u7ba1\u7406",description:"\u53c2\u8003",source:"@site/docs/study/system/\u5185\u5b58\u7ba1\u7406.md",sourceDirName:"study/system",slug:"/study/system/\u5185\u5b58\u7ba1\u7406",permalink:"/docs/study/system/\u5185\u5b58\u7ba1\u7406",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"yum-dnf",permalink:"/docs/study/system/yum-dnf"},next:{title:"\u53ef\u6267\u884c\u7a0b\u5e8f\u5728\u64cd\u4f5c\u7cfb\u7edf\u4e0b\u7684\u8fd0\u884c\u539f\u7406\u5206\u6790",permalink:"/docs/study/system/\u53ef\u6267\u884c\u7a0b\u5e8f\u8fd0\u884c\u539f\u7406\u5206\u6790"}},i={},u=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],l={toc:u},p="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(p,(0,n.A)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u5185\u5b58\u7ba1\u7406"},"\u5185\u5b58\u7ba1\u7406"),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/455772416"},"\u77e5\u4e4e-\u4ece\u5185\u5b58\u7ba1\u7406\u539f\u7406\uff0c\u7aa5\u63a2 OS \u5185\u5b58\u7ba1\u7406\u673a\u5236"))))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5d4ec3d4.fbc1fa68.js b/assets/js/5d4ec3d4.25f0fa19.js similarity index 98% rename from assets/js/5d4ec3d4.fbc1fa68.js rename to assets/js/5d4ec3d4.25f0fa19.js index 4989ddb7f..3d47afcc4 100644 --- a/assets/js/5d4ec3d4.fbc1fa68.js +++ b/assets/js/5d4ec3d4.25f0fa19.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8295],{5680:(e,t,r)=>{r.d(t,{xA:()=>d,yg:()=>y});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),s=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},d=function(e){var t=s(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},g=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),u=s(r),g=a,y=u["".concat(l,".").concat(g)]||u[g]||p[g]||o;return r?n.createElement(y,i(i({ref:t},d),{},{components:r})):n.createElement(y,i({ref:t},d))}));function y(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=g;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[u]="string"==typeof e?e:a,i[1]=c;for(var s=2;s{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>o,metadata:()=>c,toc:()=>s});var n=r(8168),a=(r(6540),r(5680));const o={},i=void 0,c={unversionedId:"study/back/\u6570\u636e\u5e93\u76f8\u5173/log4jdbc",id:"study/back/\u6570\u636e\u5e93\u76f8\u5173/log4jdbc",title:"log4jdbc",description:"log4jdbc is a Java JDBC driver that can log SQL and/or JDBC calls (and optionally SQL timing information) for other JDBC drivers using the Simple Logging Facade For Java (SLF4J) logging system.",source:"@site/docs/study/back/\u6570\u636e\u5e93\u76f8\u5173/log4jdbc.md",sourceDirName:"study/back/\u6570\u636e\u5e93\u76f8\u5173",slug:"/study/back/\u6570\u636e\u5e93\u76f8\u5173/log4jdbc",permalink:"/docs/study/back/\u6570\u636e\u5e93\u76f8\u5173/log4jdbc",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"MyBatis",permalink:"/docs/study/back/\u6570\u636e\u5e93\u76f8\u5173/MyBatis"},next:{title:"\u9519\u8bef\u6392\u9664\u96c6\u9526",permalink:"/docs/study/back/\u9519\u8bef\u6392\u9664\u96c6\u9526"}},l={},s=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],d={toc:s},u="wrapper";function p(e){let{components:t,...r}=e;return(0,a.yg)(u,(0,n.A)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("p",null,"log4jdbc is a Java JDBC driver that can log SQL and/or JDBC calls (and optionally SQL timing information) for other JDBC drivers using the Simple Logging Facade For Java (SLF4J) logging system."),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://github.com/arthurblake/log4jdbc"},"GitHub-log4jdbc")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://blog.csdn.net/weixin_42272869/article/details/124477592"},"Java - log4jdbc \u4f7f\u7528\u4e0e\u539f\u7406\u4ecb\u7ecd\uff08SQL/\u65e5\u5fd7\u76d1\u63a7\uff09"))))}p.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8295],{5680:(e,t,r)=>{r.d(t,{xA:()=>d,yg:()=>y});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),s=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},d=function(e){var t=s(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},g=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),u=s(r),g=a,y=u["".concat(l,".").concat(g)]||u[g]||p[g]||o;return r?n.createElement(y,i(i({ref:t},d),{},{components:r})):n.createElement(y,i({ref:t},d))}));function y(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=g;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[u]="string"==typeof e?e:a,i[1]=c;for(var s=2;s{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>o,metadata:()=>c,toc:()=>s});var n=r(8168),a=(r(6540),r(5680));const o={},i=void 0,c={unversionedId:"study/back/\u6570\u636e\u5e93\u76f8\u5173/log4jdbc",id:"study/back/\u6570\u636e\u5e93\u76f8\u5173/log4jdbc",title:"log4jdbc",description:"log4jdbc is a Java JDBC driver that can log SQL and/or JDBC calls (and optionally SQL timing information) for other JDBC drivers using the Simple Logging Facade For Java (SLF4J) logging system.",source:"@site/docs/study/back/\u6570\u636e\u5e93\u76f8\u5173/log4jdbc.md",sourceDirName:"study/back/\u6570\u636e\u5e93\u76f8\u5173",slug:"/study/back/\u6570\u636e\u5e93\u76f8\u5173/log4jdbc",permalink:"/docs/study/back/\u6570\u636e\u5e93\u76f8\u5173/log4jdbc",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"MyBatis",permalink:"/docs/study/back/\u6570\u636e\u5e93\u76f8\u5173/MyBatis"},next:{title:"\u9519\u8bef\u6392\u9664\u96c6\u9526",permalink:"/docs/study/back/\u9519\u8bef\u6392\u9664\u96c6\u9526"}},l={},s=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],d={toc:s},u="wrapper";function p(e){let{components:t,...r}=e;return(0,a.yg)(u,(0,n.A)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("p",null,"log4jdbc is a Java JDBC driver that can log SQL and/or JDBC calls (and optionally SQL timing information) for other JDBC drivers using the Simple Logging Facade For Java (SLF4J) logging system."),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://github.com/arthurblake/log4jdbc"},"GitHub-log4jdbc")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://blog.csdn.net/weixin_42272869/article/details/124477592"},"Java - log4jdbc \u4f7f\u7528\u4e0e\u539f\u7406\u4ecb\u7ecd\uff08SQL/\u65e5\u5fd7\u76d1\u63a7\uff09"))))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5e266219.5ae846d6.js b/assets/js/5e266219.214696cf.js similarity index 98% rename from assets/js/5e266219.5ae846d6.js rename to assets/js/5e266219.214696cf.js index 5426429b7..fb6cbbdfb 100644 --- a/assets/js/5e266219.5ae846d6.js +++ b/assets/js/5e266219.214696cf.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5731],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>g});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),s=p(r),y=o,g=s["".concat(l,".").concat(y)]||s[y]||d[y]||a;return r?n.createElement(g,c(c({ref:t},u),{},{components:r})):n.createElement(g,c({ref:t},u))}));function g(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=y;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[s]="string"==typeof e?e:o,c[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,i={unversionedId:"study/program/GIT/GIT-\u5e38\u7528\u547d\u4ee4",id:"study/program/GIT/GIT-\u5e38\u7528\u547d\u4ee4",title:"GIT-\u5e38\u7528\u547d\u4ee4",description:"clone",source:"@site/docs/study/program/GIT/GIT-\u5e38\u7528\u547d\u4ee4.md",sourceDirName:"study/program/GIT",slug:"/study/program/GIT/GIT-\u5e38\u7528\u547d\u4ee4",permalink:"/docs/study/program/GIT/GIT-\u5e38\u7528\u547d\u4ee4",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Erlang",permalink:"/docs/study/program/Erlang/"},next:{title:"GitHub Desktop",permalink:"/docs/study/program/GIT/GitHubDesktop"}},l={},p=[{value:"clone",id:"clone",level:3},{value:"\u628a\u975e\u5fc5\u8981\u6587\u4ef6\u5df2\u7ecf\u4e0a\u4f20\u5230 git\uff0c\u5982\u4f55\u5904\u7406",id:"\u628a\u975e\u5fc5\u8981\u6587\u4ef6\u5df2\u7ecf\u4e0a\u4f20\u5230-git\u5982\u4f55\u5904\u7406",level:3}],u={toc:p},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"clone"},"clone"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-shell"},"#\u7528\u6237\u540d\u5982\u679c\u643a\u5e26@\u9700\u8981\u4f7f\u7528%40\u66ff\u6362\ngit clone https://\u7528\u6237\u540d:\u5bc6\u7801@git.coding.net/sample/HelloWorld.git\n")),(0,o.yg)("h3",{id:"\u628a\u975e\u5fc5\u8981\u6587\u4ef6\u5df2\u7ecf\u4e0a\u4f20\u5230-git\u5982\u4f55\u5904\u7406"},"\u628a\u975e\u5fc5\u8981\u6587\u4ef6\u5df2\u7ecf\u4e0a\u4f20\u5230 git\uff0c\u5982\u4f55\u5904\u7406"),(0,o.yg)("p",null,"\u5148\u589e\u52a0\u5230.gitignore\uff0c\u7136\u540e\u5220\u9664\u672c\u5730\u7f13\u5b58\uff0c\u518d\u4e0a\u4f20\u5230\u8fdc\u7a0b\u4ed3\u5e93\ngit rm --cached .xxx\ngit rm-r --cached .yyy"))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5731],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>g});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),s=p(r),y=o,g=s["".concat(l,".").concat(y)]||s[y]||d[y]||a;return r?n.createElement(g,c(c({ref:t},u),{},{components:r})):n.createElement(g,c({ref:t},u))}));function g(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=y;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[s]="string"==typeof e?e:o,c[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,i={unversionedId:"study/program/GIT/GIT-\u5e38\u7528\u547d\u4ee4",id:"study/program/GIT/GIT-\u5e38\u7528\u547d\u4ee4",title:"GIT-\u5e38\u7528\u547d\u4ee4",description:"clone",source:"@site/docs/study/program/GIT/GIT-\u5e38\u7528\u547d\u4ee4.md",sourceDirName:"study/program/GIT",slug:"/study/program/GIT/GIT-\u5e38\u7528\u547d\u4ee4",permalink:"/docs/study/program/GIT/GIT-\u5e38\u7528\u547d\u4ee4",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Erlang",permalink:"/docs/study/program/Erlang/"},next:{title:"GitHub Desktop",permalink:"/docs/study/program/GIT/GitHubDesktop"}},l={},p=[{value:"clone",id:"clone",level:3},{value:"\u628a\u975e\u5fc5\u8981\u6587\u4ef6\u5df2\u7ecf\u4e0a\u4f20\u5230 git\uff0c\u5982\u4f55\u5904\u7406",id:"\u628a\u975e\u5fc5\u8981\u6587\u4ef6\u5df2\u7ecf\u4e0a\u4f20\u5230-git\u5982\u4f55\u5904\u7406",level:3}],u={toc:p},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"clone"},"clone"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-shell"},"#\u7528\u6237\u540d\u5982\u679c\u643a\u5e26@\u9700\u8981\u4f7f\u7528%40\u66ff\u6362\ngit clone https://\u7528\u6237\u540d:\u5bc6\u7801@git.coding.net/sample/HelloWorld.git\n")),(0,o.yg)("h3",{id:"\u628a\u975e\u5fc5\u8981\u6587\u4ef6\u5df2\u7ecf\u4e0a\u4f20\u5230-git\u5982\u4f55\u5904\u7406"},"\u628a\u975e\u5fc5\u8981\u6587\u4ef6\u5df2\u7ecf\u4e0a\u4f20\u5230 git\uff0c\u5982\u4f55\u5904\u7406"),(0,o.yg)("p",null,"\u5148\u589e\u52a0\u5230.gitignore\uff0c\u7136\u540e\u5220\u9664\u672c\u5730\u7f13\u5b58\uff0c\u518d\u4e0a\u4f20\u5230\u8fdc\u7a0b\u4ed3\u5e93\ngit rm --cached .xxx\ngit rm-r --cached .yyy"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5f2eed60.4965f123.js b/assets/js/5f2eed60.4f1bcaa2.js similarity index 98% rename from assets/js/5f2eed60.4965f123.js rename to assets/js/5f2eed60.4f1bcaa2.js index 10a1e1f2c..683cdc614 100644 --- a/assets/js/5f2eed60.4965f123.js +++ b/assets/js/5f2eed60.4f1bcaa2.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2168],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>d});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),c=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=c(e.components);return n.createElement(p.Provider,{value:t},e.children)},f="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,l=e.originalType,p=e.parentName,u=o(e,["components","mdxType","originalType","parentName"]),f=c(r),y=a,d=f["".concat(p,".").concat(y)]||f[y]||s[y]||l;return r?n.createElement(d,i(i({ref:t},u),{},{components:r})):n.createElement(d,i({ref:t},u))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=r.length,i=new Array(l);i[0]=y;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[f]="string"==typeof e?e:a,i[1]=o;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>s,frontMatter:()=>l,metadata:()=>o,toc:()=>c});var n=r(8168),a=(r(6540),r(5680));const l={},i=void 0,o={unversionedId:"study/net/\u7f51\u7edc\u541e\u5410\u91cf\u6d4b\u91cf\u5de5\u5177",id:"study/net/\u7f51\u7edc\u541e\u5410\u91cf\u6d4b\u91cf\u5de5\u5177",title:"\u7f51\u7edc\u541e\u5410\u91cf\u6d4b\u91cf\u5de5\u5177",description:"iperf3",source:"@site/docs/study/net/\u7f51\u7edc\u541e\u5410\u91cf\u6d4b\u91cf\u5de5\u5177.md",sourceDirName:"study/net",slug:"/study/net/\u7f51\u7edc\u541e\u5410\u91cf\u6d4b\u91cf\u5de5\u5177",permalink:"/docs/study/net/\u7f51\u7edc\u541e\u5410\u91cf\u6d4b\u91cf\u5de5\u5177",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u6293\u5305\u5de5\u5177",permalink:"/docs/study/net/\u6293\u5305\u5de5\u5177"},next:{title:"ASN.1",permalink:"/docs/study/encryption/ASN.1"}},p={},c=[{value:"iperf3",id:"iperf3",level:3},{value:"netperf",id:"netperf",level:3},{value:"qperf",id:"qperf",level:3}],u={toc:c},f="wrapper";function s(e){let{components:t,...r}=e;return(0,a.yg)(f,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"iperf3"},"iperf3"),(0,a.yg)("p",null,"iPerf3 \u662f\u4e00\u79cd\u7528\u4e8e\u4e3b\u52a8\u6d4b\u91cf IP \u7f51\u7edc\u4e0a\u53ef\u5b9e\u73b0\u7684\u6700\u5927\u5e26\u5bbd\u7684\u5de5\u5177\u3002\u5b83\u652f\u6301\u8c03\u6574\u4e0e\u5b9a\u65f6\u3001\u7f13\u51b2\u533a\u548c\u534f\u8bae\uff08TCP\u3001UDP\u3001\u5e26\u6709 IPv4 \u548c IPv6 \u7684 SCTP\uff09\u76f8\u5173\u7684\u5404\u79cd\u53c2\u6570\u3002\u5bf9\u4e8e\u6bcf\u4e2a\u6d4b\u8bd5\uff0c\u5b83\u90fd\u4f1a\u62a5\u544a\u5e26\u5bbd\u3001\u635f\u8017\u548c\u5176\u4ed6\u53c2\u6570\u3002\u8fd9\u662f\u4e00\u4e2a\u65b0\u7684\u5b9e\u73b0\uff0c\u4e0e\u539f\u59cb iPerf \u4e0d\u5171\u4eab\u4ee3\u7801\uff0c\u4e5f\u4e0d\u5411\u540e\u517c\u5bb9\u3002"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://iperf.fr/"},"\u5b98\u7f51")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/585534080?utm_id=0"},"\u77e5\u4e4e-iperf3 \u547d\u4ee4\u7b80\u4ecb"))),(0,a.yg)("h3",{id:"netperf"},"netperf"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://github.com/HewlettPackard/netperf"},"github-netperf")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://blog.csdn.net/lsc_2019/article/details/118577155"},"netperf \u7684\u5b89\u88c5\u3001\u6027\u80fd\u6d4b\u8bd5\u3001\u53c2\u6570\u3001\u542f\u52a8\u62a5\u9519\u7684\u5751\u3001\u5b9e\u4f8b"))),(0,a.yg)("h3",{id:"qperf"},"qperf"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://www.python100.com/html/109443.html"},"\u6df1\u5165\u5256\u6790 qperf\uff1a\u7f51\u7edc\u6027\u80fd\u57fa\u51c6\u6d4b\u8bd5\u5de5\u5177"))))}s.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2168],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>d});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),c=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=c(e.components);return n.createElement(p.Provider,{value:t},e.children)},f="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,l=e.originalType,p=e.parentName,u=o(e,["components","mdxType","originalType","parentName"]),f=c(r),y=a,d=f["".concat(p,".").concat(y)]||f[y]||s[y]||l;return r?n.createElement(d,i(i({ref:t},u),{},{components:r})):n.createElement(d,i({ref:t},u))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=r.length,i=new Array(l);i[0]=y;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[f]="string"==typeof e?e:a,i[1]=o;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>s,frontMatter:()=>l,metadata:()=>o,toc:()=>c});var n=r(8168),a=(r(6540),r(5680));const l={},i=void 0,o={unversionedId:"study/net/\u7f51\u7edc\u541e\u5410\u91cf\u6d4b\u91cf\u5de5\u5177",id:"study/net/\u7f51\u7edc\u541e\u5410\u91cf\u6d4b\u91cf\u5de5\u5177",title:"\u7f51\u7edc\u541e\u5410\u91cf\u6d4b\u91cf\u5de5\u5177",description:"iperf3",source:"@site/docs/study/net/\u7f51\u7edc\u541e\u5410\u91cf\u6d4b\u91cf\u5de5\u5177.md",sourceDirName:"study/net",slug:"/study/net/\u7f51\u7edc\u541e\u5410\u91cf\u6d4b\u91cf\u5de5\u5177",permalink:"/docs/study/net/\u7f51\u7edc\u541e\u5410\u91cf\u6d4b\u91cf\u5de5\u5177",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u6293\u5305\u5de5\u5177",permalink:"/docs/study/net/\u6293\u5305\u5de5\u5177"},next:{title:"ASN.1",permalink:"/docs/study/encryption/ASN.1"}},p={},c=[{value:"iperf3",id:"iperf3",level:3},{value:"netperf",id:"netperf",level:3},{value:"qperf",id:"qperf",level:3}],u={toc:c},f="wrapper";function s(e){let{components:t,...r}=e;return(0,a.yg)(f,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"iperf3"},"iperf3"),(0,a.yg)("p",null,"iPerf3 \u662f\u4e00\u79cd\u7528\u4e8e\u4e3b\u52a8\u6d4b\u91cf IP \u7f51\u7edc\u4e0a\u53ef\u5b9e\u73b0\u7684\u6700\u5927\u5e26\u5bbd\u7684\u5de5\u5177\u3002\u5b83\u652f\u6301\u8c03\u6574\u4e0e\u5b9a\u65f6\u3001\u7f13\u51b2\u533a\u548c\u534f\u8bae\uff08TCP\u3001UDP\u3001\u5e26\u6709 IPv4 \u548c IPv6 \u7684 SCTP\uff09\u76f8\u5173\u7684\u5404\u79cd\u53c2\u6570\u3002\u5bf9\u4e8e\u6bcf\u4e2a\u6d4b\u8bd5\uff0c\u5b83\u90fd\u4f1a\u62a5\u544a\u5e26\u5bbd\u3001\u635f\u8017\u548c\u5176\u4ed6\u53c2\u6570\u3002\u8fd9\u662f\u4e00\u4e2a\u65b0\u7684\u5b9e\u73b0\uff0c\u4e0e\u539f\u59cb iPerf \u4e0d\u5171\u4eab\u4ee3\u7801\uff0c\u4e5f\u4e0d\u5411\u540e\u517c\u5bb9\u3002"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://iperf.fr/"},"\u5b98\u7f51")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/585534080?utm_id=0"},"\u77e5\u4e4e-iperf3 \u547d\u4ee4\u7b80\u4ecb"))),(0,a.yg)("h3",{id:"netperf"},"netperf"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://github.com/HewlettPackard/netperf"},"github-netperf")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://blog.csdn.net/lsc_2019/article/details/118577155"},"netperf \u7684\u5b89\u88c5\u3001\u6027\u80fd\u6d4b\u8bd5\u3001\u53c2\u6570\u3001\u542f\u52a8\u62a5\u9519\u7684\u5751\u3001\u5b9e\u4f8b"))),(0,a.yg)("h3",{id:"qperf"},"qperf"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://www.python100.com/html/109443.html"},"\u6df1\u5165\u5256\u6790 qperf\uff1a\u7f51\u7edc\u6027\u80fd\u57fa\u51c6\u6d4b\u8bd5\u5de5\u5177"))))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5f897b5c.76b666ac.js b/assets/js/5f897b5c.1809de10.js similarity index 98% rename from assets/js/5f897b5c.76b666ac.js rename to assets/js/5f897b5c.1809de10.js index 63d3ff496..75c9cc803 100644 --- a/assets/js/5f897b5c.76b666ac.js +++ b/assets/js/5f897b5c.1809de10.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[184],{5680:(e,t,r)=>{r.d(t,{xA:()=>c,yg:()=>m});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),u=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},c=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),s=u(r),d=o,m=s["".concat(p,".").concat(d)]||s[d]||y[d]||a;return r?n.createElement(m,l(l({ref:t},c),{},{components:r})):n.createElement(m,l({ref:t},c))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=d;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:o,l[1]=i;for(var u=2;u{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>y,frontMatter:()=>a,metadata:()=>i,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={},l=void 0,i={unversionedId:"study/program/GIT/PR\u548cMR",id:"study/program/GIT/PR\u548cMR",title:"PR\u548cMR",description:"\u7b80\u4ecb",source:"@site/docs/study/program/GIT/PR\u548cMR.md",sourceDirName:"study/program/GIT",slug:"/study/program/GIT/PR\u548cMR",permalink:"/docs/study/program/GIT/PR\u548cMR",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"GitHub Desktop",permalink:"/docs/study/program/GIT/GitHubDesktop"},next:{title:"Golang",permalink:"/docs/study/program/Golang/"}},p={},u=[{value:"\u7b80\u4ecb",id:"\u7b80\u4ecb",level:3},{value:"GitHub\u7684Fork-PR\u6a21\u5f0f",id:"github\u7684fork-pr\u6a21\u5f0f",level:3},{value:"Gitlab\u7684MR\u6a21\u5f0f",id:"gitlab\u7684mr\u6a21\u5f0f",level:3}],c={toc:u},s="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u7b80\u4ecb"},"\u7b80\u4ecb"),(0,o.yg)("p",null,"\u6211\u4eec\u77e5\u9053Git\u534f\u4f5c\u4e2d\u6700\u91cd\u8981\u7684\u4e00\u4e2a\u6b65\u9aa4\u662fPull Requests\uff08\u7b80\u79f0PR,Gitlab\u4e2d\u4e5f\u53ebMerge requests\uff0cMR\uff09,PR\u548cMR\u8fd9\u4e24\u4e2a\u64cd\u4f5c\u7684\u76ee\u7684\u662f\u4e00\u4e2a\u610f\u601d\uff0c\u53ea\u4e0d\u8fc7PR\u662fGitHub\u7684\u4f7f\u7528\u65b9\u6cd5\uff0cMR\u662fGitlab\u7684\u7684\u4f7f\u7528\u65b9\u6cd5\u3002"),(0,o.yg)("h3",{id:"github\u7684fork-pr\u6a21\u5f0f"},"GitHub\u7684Fork-PR\u6a21\u5f0f"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},"\u9996\u5148fork\u4e00\u4e2a\u5de5\u7a0b"),(0,o.yg)("li",{parentName:"ol"},"\u4fee\u6539\u4ee3\u7801\u5e76\u63d0\u4ea4PR\u8bf7\u6c42"),(0,o.yg)("li",{parentName:"ol"},"\u5f00\u6e90\u4f5c\u8005review\u4ee3\u7801\uff0c\u5e76\u6839\u636e\u60c5\u51b5PR\u8bf7\u6c42")),(0,o.yg)("h3",{id:"gitlab\u7684mr\u6a21\u5f0f"},"Gitlab\u7684MR\u6a21\u5f0f"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},"\u4e00\u822cMR\u5230\u7684\u5206\u652f\u90fd\u662fmaster\uff0cmaster\u662f\u53d7\u4fdd\u62a4\u7684\uff0c\u666e\u901a\u5f00\u53d1\u8005\u662f\u6ca1\u6709\u6743\u9650push\u7684\uff1b"),(0,o.yg)("li",{parentName:"ol"},"\u666e\u901a\u5f00\u53d1\u8005\u63d0\u4ea4MR\u8bf7\u6c42\uff1b"),(0,o.yg)("li",{parentName:"ol"},"\u4e3b\u5f00\u53d1\u4eba\u5458review\u4ee3\u7801\uff0c\u5e76\u6839\u636e\u60c5\u51b5\u540c\u610f\u5408\u5e76\u8bf7\u6c42")))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[184],{5680:(e,t,r)=>{r.d(t,{xA:()=>c,yg:()=>m});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),u=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},c=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),s=u(r),d=o,m=s["".concat(p,".").concat(d)]||s[d]||y[d]||a;return r?n.createElement(m,l(l({ref:t},c),{},{components:r})):n.createElement(m,l({ref:t},c))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=d;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:o,l[1]=i;for(var u=2;u{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>y,frontMatter:()=>a,metadata:()=>i,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={},l=void 0,i={unversionedId:"study/program/GIT/PR\u548cMR",id:"study/program/GIT/PR\u548cMR",title:"PR\u548cMR",description:"\u7b80\u4ecb",source:"@site/docs/study/program/GIT/PR\u548cMR.md",sourceDirName:"study/program/GIT",slug:"/study/program/GIT/PR\u548cMR",permalink:"/docs/study/program/GIT/PR\u548cMR",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"GitHub Desktop",permalink:"/docs/study/program/GIT/GitHubDesktop"},next:{title:"Golang",permalink:"/docs/study/program/Golang/"}},p={},u=[{value:"\u7b80\u4ecb",id:"\u7b80\u4ecb",level:3},{value:"GitHub\u7684Fork-PR\u6a21\u5f0f",id:"github\u7684fork-pr\u6a21\u5f0f",level:3},{value:"Gitlab\u7684MR\u6a21\u5f0f",id:"gitlab\u7684mr\u6a21\u5f0f",level:3}],c={toc:u},s="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u7b80\u4ecb"},"\u7b80\u4ecb"),(0,o.yg)("p",null,"\u6211\u4eec\u77e5\u9053Git\u534f\u4f5c\u4e2d\u6700\u91cd\u8981\u7684\u4e00\u4e2a\u6b65\u9aa4\u662fPull Requests\uff08\u7b80\u79f0PR,Gitlab\u4e2d\u4e5f\u53ebMerge requests\uff0cMR\uff09,PR\u548cMR\u8fd9\u4e24\u4e2a\u64cd\u4f5c\u7684\u76ee\u7684\u662f\u4e00\u4e2a\u610f\u601d\uff0c\u53ea\u4e0d\u8fc7PR\u662fGitHub\u7684\u4f7f\u7528\u65b9\u6cd5\uff0cMR\u662fGitlab\u7684\u7684\u4f7f\u7528\u65b9\u6cd5\u3002"),(0,o.yg)("h3",{id:"github\u7684fork-pr\u6a21\u5f0f"},"GitHub\u7684Fork-PR\u6a21\u5f0f"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},"\u9996\u5148fork\u4e00\u4e2a\u5de5\u7a0b"),(0,o.yg)("li",{parentName:"ol"},"\u4fee\u6539\u4ee3\u7801\u5e76\u63d0\u4ea4PR\u8bf7\u6c42"),(0,o.yg)("li",{parentName:"ol"},"\u5f00\u6e90\u4f5c\u8005review\u4ee3\u7801\uff0c\u5e76\u6839\u636e\u60c5\u51b5PR\u8bf7\u6c42")),(0,o.yg)("h3",{id:"gitlab\u7684mr\u6a21\u5f0f"},"Gitlab\u7684MR\u6a21\u5f0f"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},"\u4e00\u822cMR\u5230\u7684\u5206\u652f\u90fd\u662fmaster\uff0cmaster\u662f\u53d7\u4fdd\u62a4\u7684\uff0c\u666e\u901a\u5f00\u53d1\u8005\u662f\u6ca1\u6709\u6743\u9650push\u7684\uff1b"),(0,o.yg)("li",{parentName:"ol"},"\u666e\u901a\u5f00\u53d1\u8005\u63d0\u4ea4MR\u8bf7\u6c42\uff1b"),(0,o.yg)("li",{parentName:"ol"},"\u4e3b\u5f00\u53d1\u4eba\u5458review\u4ee3\u7801\uff0c\u5e76\u6839\u636e\u60c5\u51b5\u540c\u610f\u5408\u5e76\u8bf7\u6c42")))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/61127ee0.8d7ef7d6.js b/assets/js/61127ee0.4d6c2b6c.js similarity index 99% rename from assets/js/61127ee0.8d7ef7d6.js rename to assets/js/61127ee0.4d6c2b6c.js index b972eda02..0b9058a78 100644 --- a/assets/js/61127ee0.8d7ef7d6.js +++ b/assets/js/61127ee0.4d6c2b6c.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5218],{5680:(e,n,l)=>{l.d(n,{xA:()=>p,yg:()=>d});var a=l(6540);function r(e,n,l){return n in e?Object.defineProperty(e,n,{value:l,enumerable:!0,configurable:!0,writable:!0}):e[n]=l,e}function t(e,n){var l=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),l.push.apply(l,a)}return l}function o(e){for(var n=1;n=0||(r[l]=e[l]);return r}(e,n);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,l)&&(r[l]=e[l])}return r}var s=a.createContext({}),g=function(e){var n=a.useContext(s),l=n;return e&&(l="function"==typeof e?e(n):o(o({},n),e)),l},p=function(e){var n=g(e.components);return a.createElement(s.Provider,{value:n},e.children)},c="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},y=a.forwardRef((function(e,n){var l=e.components,r=e.mdxType,t=e.originalType,s=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),c=g(l),y=r,d=c["".concat(s,".").concat(y)]||c[y]||u[y]||t;return l?a.createElement(d,o(o({ref:n},p),{},{components:l})):a.createElement(d,o({ref:n},p))}));function d(e,n){var l=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var t=l.length,o=new Array(t);o[0]=y;var i={};for(var s in n)hasOwnProperty.call(n,s)&&(i[s]=n[s]);i.originalType=e,i[c]="string"==typeof e?e:r,o[1]=i;for(var g=2;g{l.r(n),l.d(n,{assets:()=>s,contentTitle:()=>o,default:()=>u,frontMatter:()=>t,metadata:()=>i,toc:()=>g});var a=l(8168),r=(l(6540),l(5680));const t={sidebar_position:2},o=void 0,i={unversionedId:"study/back/\u9ad8\u5e76\u53d1API",id:"study/back/\u9ad8\u5e76\u53d1API",title:"\u9ad8\u5e76\u53d1API",description:"\u603b\u7ed3",source:"@site/docs/study/back/\u9ad8\u5e76\u53d1API.md",sourceDirName:"study/back",slug:"/study/back/\u9ad8\u5e76\u53d1API",permalink:"/docs/study/back/\u9ad8\u5e76\u53d1API",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"studySidebar",previous:{title:"Zookeeper",permalink:"/docs/study/back/Zookeeper"},next:{title:"API \u7f51\u5173",permalink:"/docs/study/back/API\u7f51\u5173/"}},s={},g=[{value:"\u603b\u7ed3",id:"\u603b\u7ed3",level:3},{value:"wrk\u64cd\u4f5c",id:"wrk\u64cd\u4f5c",level:3},{value:"Nginx\u7edf\u8ba1\u8bbf\u95ee\u91cf",id:"nginx\u7edf\u8ba1\u8bbf\u95ee\u91cf",level:3},{value:"\u6839\u636e\u8bbf\u95eeIP\u7edf\u8ba1UV",id:"\u6839\u636e\u8bbf\u95eeip\u7edf\u8ba1uv",level:4},{value:"\u6839\u636e\u8bbf\u95eeURL\u7edf\u8ba1PV",id:"\u6839\u636e\u8bbf\u95eeurl\u7edf\u8ba1pv",level:4},{value:"\u6839\u636e\u8bbf\u95eeURL\u7edf\u8ba1QPS",id:"\u6839\u636e\u8bbf\u95eeurl\u7edf\u8ba1qps",level:4},{value:"\u67e5\u8be2\u8bbf\u95ee\u6700\u9891\u7e41\u7684URL",id:"\u67e5\u8be2\u8bbf\u95ee\u6700\u9891\u7e41\u7684url",level:4},{value:"\u67e5\u8be2\u8bbf\u95ee\u6700\u9891\u7e41\u7684IP",id:"\u67e5\u8be2\u8bbf\u95ee\u6700\u9891\u7e41\u7684ip",level:4},{value:"\u6839\u636e\u65f6\u95f4\u6bb5\u7edf\u8ba1\u67e5\u770b\u65e5\u5fd7",id:"\u6839\u636e\u65f6\u95f4\u6bb5\u7edf\u8ba1\u67e5\u770b\u65e5\u5fd7",level:4},{value:"\u67d0\u4e2a\u65f6\u95f4\u6bb5\u8bbf\u95ee\u603b\u6b21\u6570",id:"\u67d0\u4e2a\u65f6\u95f4\u6bb5\u8bbf\u95ee\u603b\u6b21\u6570",level:4},{value:"\u67e5\u770b\u8bbf\u95ee\u6700\u9891\u7e41\u7684\u524d5\u4e2aIP\uff0c\u5e76\u5217\u51fa\u8bbf\u95ee\u6b21\u6570",id:"\u67e5\u770b\u8bbf\u95ee\u6700\u9891\u7e41\u7684\u524d5\u4e2aip\u5e76\u5217\u51fa\u8bbf\u95ee\u6b21\u6570",level:4},{value:"\u7edf\u8ba1\u72b6\u6001\u7801\u4e3a200\u6b21\u6570",id:"\u7edf\u8ba1\u72b6\u6001\u7801\u4e3a200\u6b21\u6570",level:4},{value:"\u7edf\u8ba1\u72b6\u6001\u7801\u4e0d\u662f200\u7684\u6b21\u6570",id:"\u7edf\u8ba1\u72b6\u6001\u7801\u4e0d\u662f200\u7684\u6b21\u6570",level:4},{value:"\u67e5\u770b404\u9519\u8bef\u7801\u7684\u8bf7\u6c42",id:"\u67e5\u770b404\u9519\u8bef\u7801\u7684\u8bf7\u6c42",level:4},{value:"\u6bcf\u96945\u5206\u949f\u8bbf\u95ee\u6b21\u6570\u5217\u8868",id:"\u6bcf\u96945\u5206\u949f\u8bbf\u95ee\u6b21\u6570\u5217\u8868",level:4},{value:"\u67e5\u8be2\u67d0\u4e2aIP\u7684\u8be6\u7ec6\u8bbf\u95ee\u60c5\u51b5,\u6309\u8bbf\u95ee\u9891\u7387\u6392\u5e8f",id:"\u67e5\u8be2\u67d0\u4e2aip\u7684\u8be6\u7ec6\u8bbf\u95ee\u60c5\u51b5\u6309\u8bbf\u95ee\u9891\u7387\u6392\u5e8f",level:4},{value:"\u7edf\u8ba1\u6bcf\u79d2\u7684\u8bf7\u6c42\u6570,top100\u7684\u65f6\u95f4\u70b9(\u7cbe\u786e\u5230\u79d2)",id:"\u7edf\u8ba1\u6bcf\u79d2\u7684\u8bf7\u6c42\u6570top100\u7684\u65f6\u95f4\u70b9\u7cbe\u786e\u5230\u79d2",level:4},{value:"\u7edf\u8ba1\u6bcf\u5206\u949f\u7684\u8bf7\u6c42\u6570,top100\u7684\u65f6\u95f4\u70b9(\u7cbe\u786e\u5230\u5206\u949f)",id:"\u7edf\u8ba1\u6bcf\u5206\u949f\u7684\u8bf7\u6c42\u6570top100\u7684\u65f6\u95f4\u70b9\u7cbe\u786e\u5230\u5206\u949f",level:4},{value:"\u7edf\u8ba1\u6bcf\u5c0f\u65f6\u7684\u8bf7\u6c42\u6570,top100\u7684\u65f6\u95f4\u70b9(\u7cbe\u786e\u5230\u5c0f\u65f6)",id:"\u7edf\u8ba1\u6bcf\u5c0f\u65f6\u7684\u8bf7\u6c42\u6570top100\u7684\u65f6\u95f4\u70b9\u7cbe\u786e\u5230\u5c0f\u65f6",level:4},{value:"\u5176\u4ed6\uff0c\u672a\u5206\u7c7b",id:"\u5176\u4ed6\u672a\u5206\u7c7b",level:4},{value:"\u540d\u8bcd\u89e3\u91ca",id:"\u540d\u8bcd\u89e3\u91ca",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],p={toc:g},c="wrapper";function u(e){let{components:n,...l}=e;return(0,r.yg)(c,(0,a.A)({},p,l,{components:n,mdxType:"MDXLayout"}),(0,r.yg)("h3",{id:"\u603b\u7ed3"},"\u603b\u7ed3"),(0,r.yg)("ol",null,(0,r.yg)("li",{parentName:"ol"},"\u5355\u673a\u767e\u4e07QPS\u7684Nginx\u662f\u6ca1\u6709\u95ee\u9898\u7684\uff0c\u5177\u4f53\u80fd\u5230\u591a\u5c11\uff0c\u53d7\u9650\u4e8e\uff1a",(0,r.yg)("ol",{parentName:"li"},(0,r.yg)("li",{parentName:"ol"},"\u670d\u52a1\u5668\u7684CPU\u6570\u91cf\u3001\u5185\u5b58\u5927\u5c0f\u3001\u78c1\u76d8\u6027\u80fd\uff1b"),(0,r.yg)("li",{parentName:"ol"},"\u670d\u52a1\u5668Linux\u7684\u914d\u7f6e"),(0,r.yg)("li",{parentName:"ol"},"Nginx\u7684\u53c2\u6570\u914d\u7f6e"),(0,r.yg)("li",{parentName:"ol"},"\u7f51\u5361\u7684\u914d\u7f6e\u3001\u8def\u7531\u5668\u7684\u914d\u7f6e\u3001\u4ea4\u6362\u673a\u7684\u914d\u7f6e"))),(0,r.yg)("li",{parentName:"ol"},"\u5355\u673aTomcat\u53d7\u9650\u4e8eJVM\u548cweb\u6846\u67b6\u7b49\u539f\u56e0\uff0c\u4e5f\u5c31\u6700\u591a1\u4e07\u5de6\u53f3\u7684QPS\uff1b",(0,r.yg)("ol",{parentName:"li"},(0,r.yg)("li",{parentName:"ol"},"\u5982\u679c\u9700\u8981\u7b80\u5355\u67e5\u8be2\u6570\u636e\u5e93\u7684\uff0c\u4e5f\u5c312~3K\u7684QPS\uff1b"),(0,r.yg)("li",{parentName:"ol"},"\u5982\u679c\u9700\u8981\u6570\u636e\u5e93\u4e8b\u52a1\u64cd\u4f5c\u7684\uff0c\u4e5f\u5c31100~150\u7684QPS\uff1b"))),(0,r.yg)("li",{parentName:"ol"},"\u4ec0\u4e48\u65f6\u5019\u9700\u8981\u6c34\u5e73\u62d3\u5c55QPS"),(0,r.yg)("li",{parentName:"ol"},"HTTP\u538b\u6d4b\u5de5\u5177\u4e4bwrk\uff1b",(0,r.yg)("ol",{parentName:"li"},(0,r.yg)("li",{parentName:"ol"},(0,r.yg)("a",{parentName:"li",href:"https://www.jianshu.com/p/ac185e01cc30"},"HTTP\u538b\u6d4b\u5de5\u5177\u4e4bwrk")),(0,r.yg)("li",{parentName:"ol"},(0,r.yg)("a",{parentName:"li",href:"https://www.cnblogs.com/quanxiaoha/p/10661650.html"},"\u6027\u80fd\u6d4b\u8bd5\u5de5\u5177wrk\u4f7f\u7528\u6559\u7a0b")))),(0,r.yg)("li",{parentName:"ol"},"\u4e00\u822c\u6765\u8bf4\uff0c\u4e0d\u4e00\u5b9a\u5f88\u51c6\u786e\uff0c\u53c2\u8003\uff1a",(0,r.yg)("ol",{parentName:"li"},(0,r.yg)("li",{parentName:"ol"},"2C4G\u673a\u5668\u5355\u673a\u4e00\u822c1000QPS\u3002"),(0,r.yg)("li",{parentName:"ol"},"8C8G\u673a\u5668\u5355\u673a\u53ef\u627f\u53d77000QPS\u3002")))),(0,r.yg)("h3",{id:"wrk\u64cd\u4f5c"},"wrk\u64cd\u4f5c"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'#scripts/post.lua\nvim post.lua\n#\nwrk.method = "POST"\nwrk.body = \'{"domain":"xxx.xxx.xxx"}\'\nwrk.headers["Content-Type"] = "application/json"\n#\n./wrk -t4 -c1000 -d5s -s /root/code/wrk/scripts/post.lua {\u5177\u4f53\u7684URL}\n')),(0,r.yg)("h3",{id:"nginx\u7edf\u8ba1\u8bbf\u95ee\u91cf"},"Nginx\u7edf\u8ba1\u8bbf\u95ee\u91cf"),(0,r.yg)("h4",{id:"\u6839\u636e\u8bbf\u95eeip\u7edf\u8ba1uv"},"\u6839\u636e\u8bbf\u95eeIP\u7edf\u8ba1UV"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"# \u6839\u636e\u8bbf\u95eeIP\u7edf\u8ba1UV\ncat /mnt/docker/tomcat/logs/{\u5177\u4f53\u7684nginx log} \\\n| grep \"21/May/2020\" | awk '{print $1}' \\\n|sort | uniq -c |wc -l\n")),(0,r.yg)("h4",{id:"\u6839\u636e\u8bbf\u95eeurl\u7edf\u8ba1pv"},"\u6839\u636e\u8bbf\u95eeURL\u7edf\u8ba1PV"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"# \u6839\u636e\u8bbf\u95eeURL\u7edf\u8ba1PV\ncat /mnt/docker/tomcat/logs/{\u5177\u4f53\u7684nginx log\u6587\u4ef6} \\\n| grep \"21/May/2020\" \\\n| awk '{print $7}' |wc -l\n")),(0,r.yg)("h4",{id:"\u6839\u636e\u8bbf\u95eeurl\u7edf\u8ba1qps"},"\u6839\u636e\u8bbf\u95eeURL\u7edf\u8ba1QPS"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"# \u6839\u636e\u8bbf\u95eeURL\u7edf\u8ba1QPS\ncat /mnt/docker/tomcat/logs/{\u5177\u4f53\u7684nginx log\u6587\u4ef6} \\\n| grep \"21/May/2020:16:39:\" \\\n| awk '{print $7}' |wc -l\n")),(0,r.yg)("h4",{id:"\u67e5\u8be2\u8bbf\u95ee\u6700\u9891\u7e41\u7684url"},"\u67e5\u8be2\u8bbf\u95ee\u6700\u9891\u7e41\u7684URL"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"# \u67e5\u8be2\u8bbf\u95ee\u6700\u9891\u7e41\u7684URL\ncat /usr/local/nginx/logs/access.log \\\n| grep \"29/Feb/2020\" | awk '{print $7}' \\\n|sort | uniq -c |sort -n -k 1 -r|more\n")),(0,r.yg)("h4",{id:"\u67e5\u8be2\u8bbf\u95ee\u6700\u9891\u7e41\u7684ip"},"\u67e5\u8be2\u8bbf\u95ee\u6700\u9891\u7e41\u7684IP"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"# \u67e5\u8be2\u8bbf\u95ee\u6700\u9891\u7e41\u7684IP\ncat /mnt/docker/tomcat/logs/{\u5177\u4f53\u7684nginx log\u6587\u4ef6} \\\n| grep \"12/May/2020\" | awk '{print $1}' \\\n|sort | uniq -c |sort -n -k 1 -r|more\n")),(0,r.yg)("h4",{id:"\u6839\u636e\u65f6\u95f4\u6bb5\u7edf\u8ba1\u67e5\u770b\u65e5\u5fd7"},"\u6839\u636e\u65f6\u95f4\u6bb5\u7edf\u8ba1\u67e5\u770b\u65e5\u5fd7"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"# \u6839\u636e\u65f6\u95f4\u6bb5\u7edf\u8ba1\u67e5\u770b\u65e5\u5fd7\ncat /usr/local/nginx/logs/access.log \\\n| sed -n '/14\\/Mar\\/2015/,/14\\/Mar\\/2020/p'|more\n")),(0,r.yg)("h4",{id:"\u67d0\u4e2a\u65f6\u95f4\u6bb5\u8bbf\u95ee\u603b\u6b21\u6570"},"\u67d0\u4e2a\u65f6\u95f4\u6bb5\u8bbf\u95ee\u603b\u6b21\u6570"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"# \u67d0\u4e2a\u65f6\u95f4\u6bb5\u8bbf\u95ee\u603b\u6b21\u6570\ncat /usr/local/nginx/logs/access.log \\\n| grep -E '16\\/Feb\\/2020:1[2-9]|29\\/Feb\\/2020:2[0-3]'| wc -\n")),(0,r.yg)("h4",{id:"\u67e5\u770b\u8bbf\u95ee\u6700\u9891\u7e41\u7684\u524d5\u4e2aip\u5e76\u5217\u51fa\u8bbf\u95ee\u6b21\u6570"},"\u67e5\u770b\u8bbf\u95ee\u6700\u9891\u7e41\u7684\u524d5\u4e2aIP\uff0c\u5e76\u5217\u51fa\u8bbf\u95ee\u6b21\u6570"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"#\u67e5\u770b\u8bbf\u95ee\u6700\u9891\u7e41\u7684\u524d5\u4e2aIP\uff0c\u5e76\u5217\u51fa\u8bbf\u95ee\u6b21\u6570\ncat /usr/local/nginx/logs/access.log \\\n| grep \"29/Feb/2020\" | awk '{print $1}'|sort -n|uniq -c| sort -rn| head -5\n")),(0,r.yg)("h4",{id:"\u7edf\u8ba1\u72b6\u6001\u7801\u4e3a200\u6b21\u6570"},"\u7edf\u8ba1\u72b6\u6001\u7801\u4e3a200\u6b21\u6570"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"# \u7edf\u8ba1\u72b6\u6001\u7801\u4e3a200\u6b21\u6570\ncat /usr/local/nginx/logs/access.log \\\n| grep \"29/Feb/2020\" | awk '{if($9 == 200) print $9}'|wc -l\n")),(0,r.yg)("h4",{id:"\u7edf\u8ba1\u72b6\u6001\u7801\u4e0d\u662f200\u7684\u6b21\u6570"},"\u7edf\u8ba1\u72b6\u6001\u7801\u4e0d\u662f200\u7684\u6b21\u6570"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"#\u7edf\u8ba1\u72b6\u6001\u7801\u4e0d\u662f200\u7684\u6b21\u6570\ncat /usr/local/nginx/logs/access.log \\\n| grep \"29/Feb/2020\" | awk '{if($9 != 200) print }'|less\n")),(0,r.yg)("h4",{id:"\u67e5\u770b404\u9519\u8bef\u7801\u7684\u8bf7\u6c42"},"\u67e5\u770b404\u9519\u8bef\u7801\u7684\u8bf7\u6c42"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'#\u67e5\u770b404\u9519\u8bef\u7801\u7684\u8bf7\u6c42\ncat /usr/local/nginx/logs/access.log \\\n| grep "29/Feb/2020" | grep "404"|less\n')),(0,r.yg)("h4",{id:"\u6bcf\u96945\u5206\u949f\u8bbf\u95ee\u6b21\u6570\u5217\u8868"},"\u6bcf\u96945\u5206\u949f\u8bbf\u95ee\u6b21\u6570\u5217\u8868"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'#\u6bcf\u96945\u5206\u949f\u8bbf\u95ee\u6b21\u6570\u5217\u8868\ncat /usr/local/nginx/logs/access.log \\\n| grep "29/Feb/2020" \\\n| awk -F: \'{a[$2":"($3-$3%5)]++}END\\\n{for(i in a){split(i,t);print i" \u81f3",t[1]":"t[2]+4," \\\n\u8bbf\u95ee "a[i] " \u6b21" | "sort -t: -k1n -k2n"}}\'\n')),(0,r.yg)("h4",{id:"\u67e5\u8be2\u67d0\u4e2aip\u7684\u8be6\u7ec6\u8bbf\u95ee\u60c5\u51b5\u6309\u8bbf\u95ee\u9891\u7387\u6392\u5e8f"},"\u67e5\u8be2\u67d0\u4e2aIP\u7684\u8be6\u7ec6\u8bbf\u95ee\u60c5\u51b5,\u6309\u8bbf\u95ee\u9891\u7387\u6392\u5e8f"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"#\u67e5\u8be2\u67d0\u4e2aIP\u7684\u8be6\u7ec6\u8bbf\u95ee\u60c5\u51b5,\u6309\u8bbf\u95ee\u9891\u7387\u6392\u5e8f\ncat /usr/local/nginx/logs/access.log \\\n| grep \"29/Feb/2020\" | grep '122.4.22.242' \\\n| awk '{print $7}'|sort |uniq -c |sort -rn |head -n 100\n")),(0,r.yg)("h4",{id:"\u7edf\u8ba1\u6bcf\u79d2\u7684\u8bf7\u6c42\u6570top100\u7684\u65f6\u95f4\u70b9\u7cbe\u786e\u5230\u79d2"},"\u7edf\u8ba1\u6bcf\u79d2\u7684\u8bf7\u6c42\u6570,top100\u7684\u65f6\u95f4\u70b9(\u7cbe\u786e\u5230\u79d2)"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"#\u7edf\u8ba1\u6bcf\u79d2\u7684\u8bf7\u6c42\u6570,top100\u7684\u65f6\u95f4\u70b9(\u7cbe\u786e\u5230\u79d2)\ncat /usr/local/nginx/logs/access.log \\\n| grep \"29/Feb/2020\" | awk '{print $4}' \\\n|cut -c 14-21|sort|uniq -c|sort -nr|head -n 100\n")),(0,r.yg)("h4",{id:"\u7edf\u8ba1\u6bcf\u5206\u949f\u7684\u8bf7\u6c42\u6570top100\u7684\u65f6\u95f4\u70b9\u7cbe\u786e\u5230\u5206\u949f"},"\u7edf\u8ba1\u6bcf\u5206\u949f\u7684\u8bf7\u6c42\u6570,top100\u7684\u65f6\u95f4\u70b9(\u7cbe\u786e\u5230\u5206\u949f)"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"#\u7edf\u8ba1\u6bcf\u5206\u949f\u7684\u8bf7\u6c42\u6570,top100\u7684\u65f6\u95f4\u70b9(\u7cbe\u786e\u5230\u5206\u949f)\ncat /usr/local/nginx/logs/access.log \\\n| grep \"29/Feb/2020\" | awk '{print $4}' \\\n|cut -c 14-18|sort|uniq -c|sort -nr|head -n 100\n")),(0,r.yg)("h4",{id:"\u7edf\u8ba1\u6bcf\u5c0f\u65f6\u7684\u8bf7\u6c42\u6570top100\u7684\u65f6\u95f4\u70b9\u7cbe\u786e\u5230\u5c0f\u65f6"},"\u7edf\u8ba1\u6bcf\u5c0f\u65f6\u7684\u8bf7\u6c42\u6570,top100\u7684\u65f6\u95f4\u70b9(\u7cbe\u786e\u5230\u5c0f\u65f6)"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"#\u7edf\u8ba1\u6bcf\u5c0f\u65f6\u7684\u8bf7\u6c42\u6570,top100\u7684\u65f6\u95f4\u70b9(\u7cbe\u786e\u5230\u5c0f\u65f6)\ncat /mnt/docker/tomcat/logs/{\u5177\u4f53\u7684nginx log\u6587\u4ef6} \\\n| grep \"21/May/2020\" | awk '{print $4}' \\\n|cut -c 14-15|sort|uniq -c|sort -nr|head -n 100\n")),(0,r.yg)("h4",{id:"\u5176\u4ed6\u672a\u5206\u7c7b"},"\u5176\u4ed6\uff0c\u672a\u5206\u7c7b"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'\n##\u6027\u80fd\u5206\u6790\n#\u5728nginx log\u4e2d\u6700\u540e\u4e00\u4e2a\u5b57\u6bb5\u52a0\u5165$request_time\n#\u5217\u51fa\u4f20\u8f93\u65f6\u95f4\u8d85\u8fc7 3 \u79d2\u7684\u9875\u9762\uff0c\u663e\u793a\u524d20\u6761\ncat /usr/local/nginx/logs/access.log | grep "29/Feb/2020" \\\n| awk \'($NF > 3){print $7}\'|sort -n|uniq -c|sort -nr|head -20\n\n##TCP\u8fde\u63a5\u7edf\u8ba1\n#\u67e5\u770b\u5f53\u524dTCP\u8fde\u63a5\u6570\nnetstat -tan | grep "ESTABLISHED" | grep ":80" | wc -l\n#\u7528tcpdump\u55c5\u63a280\u7aef\u53e3\u7684\u8bbf\u95ee\u770b\u770b\u8c01\u6700\u9ad8\ntcpdump -i eth0 -tnn dst port 80 -c 1000 \\\n| awk -F"." \'{print $1"."$2"."$3"."$4}\' | sort | uniq -c | sort -nr\n\n')),(0,r.yg)("h3",{id:"\u540d\u8bcd\u89e3\u91ca"},"\u540d\u8bcd\u89e3\u91ca"),(0,r.yg)("ol",null,(0,r.yg)("li",{parentName:"ol"},"PV\uff08Page View\uff09\u8bbf\u95ee\u91cf, \u5373\u9875\u9762\u6d4f\u89c8\u91cf\u6216\u70b9\u51fb\u91cf\uff0c\u8861\u91cf\u7f51\u7ad9\u7528\u6237\u8bbf\u95ee\u7684\u7f51\u9875\u6570\u91cf\uff1b\u5728\u4e00\u5b9a\u7edf\u8ba1\u5468\u671f\u5185\u7528\u6237\u6bcf\u6253\u5f00\u6216\u5237\u65b0\u4e00\u4e2a\u9875\u9762\u5c31\u8bb0\u5f551\u6b21\uff0c\u591a\u6b21\u6253\u5f00\u6216\u5237\u65b0\u540c\u4e00\u9875\u9762\u5219\u6d4f\u89c8\u91cf\u7d2f\u8ba1\u3002"),(0,r.yg)("li",{parentName:"ol"},"UV\uff08Unique Visitor\uff09\u72ec\u7acb\u8bbf\u5ba2\uff0c\u7edf\u8ba11\u5929\u5185\u8bbf\u95ee\u67d0\u7ad9\u70b9\u7684\u7528\u6237\u6570(\u4ee5cookie\u4e3a\u4f9d\u636e);\u8bbf\u95ee\u7f51\u7ad9\u7684\u4e00\u53f0\u7535\u8111\u5ba2\u6237\u7aef\u4e3a\u4e00\u4e2a\u8bbf\u5ba2\u3002\u53ef\u4ee5\u7406\u89e3\u6210\u8bbf\u95ee\u67d0\u7f51\u7ad9\u7684\u7535\u8111\u7684\u6570\u91cf\u3002\u7f51\u7ad9\u5224\u65ad\u6765\u8bbf\u7535\u8111\u7684\u8eab\u4efd\u662f\u901a\u8fc7\u6765\u8bbf\u7535\u8111\u7684cookies\u5b9e\u73b0\u7684\u3002\u5982\u679c\u66f4\u6362\u4e86IP\u540e\u4f46\u4e0d\u6e05\u9664cookies\uff0c\u518d\u8bbf\u95ee\u76f8\u540c\u7f51\u7ad9\uff0c\u8be5\u7f51\u7ad9\u7684\u7edf\u8ba1\u4e2dUV\u6570\u662f\u4e0d\u53d8\u7684\u3002\u5982\u679c\u7528\u6237\u4e0d\u4fdd\u5b58cookies\u8bbf\u95ee\u3001\u6e05\u9664\u4e86cookies\u6216\u8005\u66f4\u6362\u8bbe\u5907\u8bbf\u95ee\uff0c\u8ba1\u6570\u4f1a\u52a01\u300200:00-24:00\u5185\u76f8\u540c\u7684\u5ba2\u6237\u7aef\u591a\u6b21\u8bbf\u95ee\u53ea\u8ba1\u4e3a1\u4e2a\u8bbf\u5ba2\u3002"),(0,r.yg)("li",{parentName:"ol"},"IP\uff08Internet Protocol\uff09\u72ec\u7acbIP\u6570\uff0c\u662f\u63071\u5929\u5185\u591a\u5c11\u4e2a\u72ec\u7acb\u7684IP\u6d4f\u89c8\u4e86\u9875\u9762\uff0c\u5373\u7edf\u8ba1\u4e0d\u540c\u7684IP\u6d4f\u89c8\u7528\u6237\u6570\u91cf\u3002\u540c\u4e00IP\u4e0d\u7ba1\u8bbf\u95ee\u4e86\u51e0\u4e2a\u9875\u9762\uff0c\u72ec\u7acbIP\u6570\u5747\u4e3a1\uff1b\u4e0d\u540c\u7684IP\u6d4f\u89c8\u9875\u9762\uff0c\u8ba1\u6570\u4f1a\u52a01\u3002 IP\u662f\u57fa\u4e8e\u7528\u6237\u5e7f\u57df\u7f51IP\u5730\u5740\u6765\u533a\u5206\u4e0d\u540c\u7684\u8bbf\u95ee\u8005\u7684\uff0c\u6240\u4ee5\uff0c\u591a\u4e2a\u7528\u6237\uff08\u591a\u4e2a\u5c40\u57df\u7f51IP\uff09\u5728\u540c\u4e00\u4e2a\u8def\u7531\u5668\uff08\u540c\u4e00\u4e2a\u5e7f\u57df\u7f51IP\uff09\u5185\u4e0a\u7f51\uff0c\u53ef\u80fd\u88ab\u8bb0\u5f55\u4e3a\u4e00\u4e2a\u72ec\u7acbIP\u8bbf\u95ee\u8005\u3002\u5982\u679c\u7528\u6237\u4e0d\u65ad\u66f4\u6362IP\uff0c\u5219\u6709\u53ef\u80fd\u88ab\u591a\u6b21\u7edf\u8ba1\u3002"),(0,r.yg)("li",{parentName:"ol"},"\u4f1a\u8bdd\u6b21\u6570\uff08\u7f51\u7ad9\u8bbf\u95ee\u91cf\uff09Session\uff0c\u4f1a\u8bdd\u662f\u6307\u5728\u6307\u5b9a\u7684\u65f6\u95f4\u6bb5\u5185\u5728\u60a8\u7684\u7f51\u7ad9\u4e0a\u53d1\u751f\u7684\u4e00\u7cfb\u5217\u4e92\u52a8\uff0c\u6240\u4ee5\u4f1a\u8bdd\u6b21\u6570\u662f\u4e00\u6bb5\u65f6\u95f4\u5185\u7528\u6237\u5411\u60a8\u7684\u7f51\u7ad9\u53d1\u8d77\u7684\u4f1a\u8bdd\uff08Session\uff09\u603b\u6570\u91cf\u3002\u4e00\u6b21\u4f1a\u8bdd\u4f1a\u6d4f\u89c8\u4e00\u4e2a\u6216\u591a\u4e2a\u9875\u9762")),(0,r.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,r.yg)("ol",null,(0,r.yg)("li",{parentName:"ol"},(0,r.yg)("a",{parentName:"li",href:"https://www.cnblogs.com/wunaozai/p/6073731.html"},"Nginx \u5355\u673a\u767e\u4e07QPS\u73af\u5883\u642d\u5efa"))))}u.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5218],{5680:(e,n,l)=>{l.d(n,{xA:()=>p,yg:()=>d});var a=l(6540);function r(e,n,l){return n in e?Object.defineProperty(e,n,{value:l,enumerable:!0,configurable:!0,writable:!0}):e[n]=l,e}function t(e,n){var l=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),l.push.apply(l,a)}return l}function o(e){for(var n=1;n=0||(r[l]=e[l]);return r}(e,n);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,l)&&(r[l]=e[l])}return r}var s=a.createContext({}),g=function(e){var n=a.useContext(s),l=n;return e&&(l="function"==typeof e?e(n):o(o({},n),e)),l},p=function(e){var n=g(e.components);return a.createElement(s.Provider,{value:n},e.children)},c="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},y=a.forwardRef((function(e,n){var l=e.components,r=e.mdxType,t=e.originalType,s=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),c=g(l),y=r,d=c["".concat(s,".").concat(y)]||c[y]||u[y]||t;return l?a.createElement(d,o(o({ref:n},p),{},{components:l})):a.createElement(d,o({ref:n},p))}));function d(e,n){var l=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var t=l.length,o=new Array(t);o[0]=y;var i={};for(var s in n)hasOwnProperty.call(n,s)&&(i[s]=n[s]);i.originalType=e,i[c]="string"==typeof e?e:r,o[1]=i;for(var g=2;g{l.r(n),l.d(n,{assets:()=>s,contentTitle:()=>o,default:()=>u,frontMatter:()=>t,metadata:()=>i,toc:()=>g});var a=l(8168),r=(l(6540),l(5680));const t={sidebar_position:2},o=void 0,i={unversionedId:"study/back/\u9ad8\u5e76\u53d1API",id:"study/back/\u9ad8\u5e76\u53d1API",title:"\u9ad8\u5e76\u53d1API",description:"\u603b\u7ed3",source:"@site/docs/study/back/\u9ad8\u5e76\u53d1API.md",sourceDirName:"study/back",slug:"/study/back/\u9ad8\u5e76\u53d1API",permalink:"/docs/study/back/\u9ad8\u5e76\u53d1API",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"studySidebar",previous:{title:"Zookeeper",permalink:"/docs/study/back/Zookeeper"},next:{title:"API \u7f51\u5173",permalink:"/docs/study/back/API\u7f51\u5173/"}},s={},g=[{value:"\u603b\u7ed3",id:"\u603b\u7ed3",level:3},{value:"wrk\u64cd\u4f5c",id:"wrk\u64cd\u4f5c",level:3},{value:"Nginx\u7edf\u8ba1\u8bbf\u95ee\u91cf",id:"nginx\u7edf\u8ba1\u8bbf\u95ee\u91cf",level:3},{value:"\u6839\u636e\u8bbf\u95eeIP\u7edf\u8ba1UV",id:"\u6839\u636e\u8bbf\u95eeip\u7edf\u8ba1uv",level:4},{value:"\u6839\u636e\u8bbf\u95eeURL\u7edf\u8ba1PV",id:"\u6839\u636e\u8bbf\u95eeurl\u7edf\u8ba1pv",level:4},{value:"\u6839\u636e\u8bbf\u95eeURL\u7edf\u8ba1QPS",id:"\u6839\u636e\u8bbf\u95eeurl\u7edf\u8ba1qps",level:4},{value:"\u67e5\u8be2\u8bbf\u95ee\u6700\u9891\u7e41\u7684URL",id:"\u67e5\u8be2\u8bbf\u95ee\u6700\u9891\u7e41\u7684url",level:4},{value:"\u67e5\u8be2\u8bbf\u95ee\u6700\u9891\u7e41\u7684IP",id:"\u67e5\u8be2\u8bbf\u95ee\u6700\u9891\u7e41\u7684ip",level:4},{value:"\u6839\u636e\u65f6\u95f4\u6bb5\u7edf\u8ba1\u67e5\u770b\u65e5\u5fd7",id:"\u6839\u636e\u65f6\u95f4\u6bb5\u7edf\u8ba1\u67e5\u770b\u65e5\u5fd7",level:4},{value:"\u67d0\u4e2a\u65f6\u95f4\u6bb5\u8bbf\u95ee\u603b\u6b21\u6570",id:"\u67d0\u4e2a\u65f6\u95f4\u6bb5\u8bbf\u95ee\u603b\u6b21\u6570",level:4},{value:"\u67e5\u770b\u8bbf\u95ee\u6700\u9891\u7e41\u7684\u524d5\u4e2aIP\uff0c\u5e76\u5217\u51fa\u8bbf\u95ee\u6b21\u6570",id:"\u67e5\u770b\u8bbf\u95ee\u6700\u9891\u7e41\u7684\u524d5\u4e2aip\u5e76\u5217\u51fa\u8bbf\u95ee\u6b21\u6570",level:4},{value:"\u7edf\u8ba1\u72b6\u6001\u7801\u4e3a200\u6b21\u6570",id:"\u7edf\u8ba1\u72b6\u6001\u7801\u4e3a200\u6b21\u6570",level:4},{value:"\u7edf\u8ba1\u72b6\u6001\u7801\u4e0d\u662f200\u7684\u6b21\u6570",id:"\u7edf\u8ba1\u72b6\u6001\u7801\u4e0d\u662f200\u7684\u6b21\u6570",level:4},{value:"\u67e5\u770b404\u9519\u8bef\u7801\u7684\u8bf7\u6c42",id:"\u67e5\u770b404\u9519\u8bef\u7801\u7684\u8bf7\u6c42",level:4},{value:"\u6bcf\u96945\u5206\u949f\u8bbf\u95ee\u6b21\u6570\u5217\u8868",id:"\u6bcf\u96945\u5206\u949f\u8bbf\u95ee\u6b21\u6570\u5217\u8868",level:4},{value:"\u67e5\u8be2\u67d0\u4e2aIP\u7684\u8be6\u7ec6\u8bbf\u95ee\u60c5\u51b5,\u6309\u8bbf\u95ee\u9891\u7387\u6392\u5e8f",id:"\u67e5\u8be2\u67d0\u4e2aip\u7684\u8be6\u7ec6\u8bbf\u95ee\u60c5\u51b5\u6309\u8bbf\u95ee\u9891\u7387\u6392\u5e8f",level:4},{value:"\u7edf\u8ba1\u6bcf\u79d2\u7684\u8bf7\u6c42\u6570,top100\u7684\u65f6\u95f4\u70b9(\u7cbe\u786e\u5230\u79d2)",id:"\u7edf\u8ba1\u6bcf\u79d2\u7684\u8bf7\u6c42\u6570top100\u7684\u65f6\u95f4\u70b9\u7cbe\u786e\u5230\u79d2",level:4},{value:"\u7edf\u8ba1\u6bcf\u5206\u949f\u7684\u8bf7\u6c42\u6570,top100\u7684\u65f6\u95f4\u70b9(\u7cbe\u786e\u5230\u5206\u949f)",id:"\u7edf\u8ba1\u6bcf\u5206\u949f\u7684\u8bf7\u6c42\u6570top100\u7684\u65f6\u95f4\u70b9\u7cbe\u786e\u5230\u5206\u949f",level:4},{value:"\u7edf\u8ba1\u6bcf\u5c0f\u65f6\u7684\u8bf7\u6c42\u6570,top100\u7684\u65f6\u95f4\u70b9(\u7cbe\u786e\u5230\u5c0f\u65f6)",id:"\u7edf\u8ba1\u6bcf\u5c0f\u65f6\u7684\u8bf7\u6c42\u6570top100\u7684\u65f6\u95f4\u70b9\u7cbe\u786e\u5230\u5c0f\u65f6",level:4},{value:"\u5176\u4ed6\uff0c\u672a\u5206\u7c7b",id:"\u5176\u4ed6\u672a\u5206\u7c7b",level:4},{value:"\u540d\u8bcd\u89e3\u91ca",id:"\u540d\u8bcd\u89e3\u91ca",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],p={toc:g},c="wrapper";function u(e){let{components:n,...l}=e;return(0,r.yg)(c,(0,a.A)({},p,l,{components:n,mdxType:"MDXLayout"}),(0,r.yg)("h3",{id:"\u603b\u7ed3"},"\u603b\u7ed3"),(0,r.yg)("ol",null,(0,r.yg)("li",{parentName:"ol"},"\u5355\u673a\u767e\u4e07QPS\u7684Nginx\u662f\u6ca1\u6709\u95ee\u9898\u7684\uff0c\u5177\u4f53\u80fd\u5230\u591a\u5c11\uff0c\u53d7\u9650\u4e8e\uff1a",(0,r.yg)("ol",{parentName:"li"},(0,r.yg)("li",{parentName:"ol"},"\u670d\u52a1\u5668\u7684CPU\u6570\u91cf\u3001\u5185\u5b58\u5927\u5c0f\u3001\u78c1\u76d8\u6027\u80fd\uff1b"),(0,r.yg)("li",{parentName:"ol"},"\u670d\u52a1\u5668Linux\u7684\u914d\u7f6e"),(0,r.yg)("li",{parentName:"ol"},"Nginx\u7684\u53c2\u6570\u914d\u7f6e"),(0,r.yg)("li",{parentName:"ol"},"\u7f51\u5361\u7684\u914d\u7f6e\u3001\u8def\u7531\u5668\u7684\u914d\u7f6e\u3001\u4ea4\u6362\u673a\u7684\u914d\u7f6e"))),(0,r.yg)("li",{parentName:"ol"},"\u5355\u673aTomcat\u53d7\u9650\u4e8eJVM\u548cweb\u6846\u67b6\u7b49\u539f\u56e0\uff0c\u4e5f\u5c31\u6700\u591a1\u4e07\u5de6\u53f3\u7684QPS\uff1b",(0,r.yg)("ol",{parentName:"li"},(0,r.yg)("li",{parentName:"ol"},"\u5982\u679c\u9700\u8981\u7b80\u5355\u67e5\u8be2\u6570\u636e\u5e93\u7684\uff0c\u4e5f\u5c312~3K\u7684QPS\uff1b"),(0,r.yg)("li",{parentName:"ol"},"\u5982\u679c\u9700\u8981\u6570\u636e\u5e93\u4e8b\u52a1\u64cd\u4f5c\u7684\uff0c\u4e5f\u5c31100~150\u7684QPS\uff1b"))),(0,r.yg)("li",{parentName:"ol"},"\u4ec0\u4e48\u65f6\u5019\u9700\u8981\u6c34\u5e73\u62d3\u5c55QPS"),(0,r.yg)("li",{parentName:"ol"},"HTTP\u538b\u6d4b\u5de5\u5177\u4e4bwrk\uff1b",(0,r.yg)("ol",{parentName:"li"},(0,r.yg)("li",{parentName:"ol"},(0,r.yg)("a",{parentName:"li",href:"https://www.jianshu.com/p/ac185e01cc30"},"HTTP\u538b\u6d4b\u5de5\u5177\u4e4bwrk")),(0,r.yg)("li",{parentName:"ol"},(0,r.yg)("a",{parentName:"li",href:"https://www.cnblogs.com/quanxiaoha/p/10661650.html"},"\u6027\u80fd\u6d4b\u8bd5\u5de5\u5177wrk\u4f7f\u7528\u6559\u7a0b")))),(0,r.yg)("li",{parentName:"ol"},"\u4e00\u822c\u6765\u8bf4\uff0c\u4e0d\u4e00\u5b9a\u5f88\u51c6\u786e\uff0c\u53c2\u8003\uff1a",(0,r.yg)("ol",{parentName:"li"},(0,r.yg)("li",{parentName:"ol"},"2C4G\u673a\u5668\u5355\u673a\u4e00\u822c1000QPS\u3002"),(0,r.yg)("li",{parentName:"ol"},"8C8G\u673a\u5668\u5355\u673a\u53ef\u627f\u53d77000QPS\u3002")))),(0,r.yg)("h3",{id:"wrk\u64cd\u4f5c"},"wrk\u64cd\u4f5c"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'#scripts/post.lua\nvim post.lua\n#\nwrk.method = "POST"\nwrk.body = \'{"domain":"xxx.xxx.xxx"}\'\nwrk.headers["Content-Type"] = "application/json"\n#\n./wrk -t4 -c1000 -d5s -s /root/code/wrk/scripts/post.lua {\u5177\u4f53\u7684URL}\n')),(0,r.yg)("h3",{id:"nginx\u7edf\u8ba1\u8bbf\u95ee\u91cf"},"Nginx\u7edf\u8ba1\u8bbf\u95ee\u91cf"),(0,r.yg)("h4",{id:"\u6839\u636e\u8bbf\u95eeip\u7edf\u8ba1uv"},"\u6839\u636e\u8bbf\u95eeIP\u7edf\u8ba1UV"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"# \u6839\u636e\u8bbf\u95eeIP\u7edf\u8ba1UV\ncat /mnt/docker/tomcat/logs/{\u5177\u4f53\u7684nginx log} \\\n| grep \"21/May/2020\" | awk '{print $1}' \\\n|sort | uniq -c |wc -l\n")),(0,r.yg)("h4",{id:"\u6839\u636e\u8bbf\u95eeurl\u7edf\u8ba1pv"},"\u6839\u636e\u8bbf\u95eeURL\u7edf\u8ba1PV"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"# \u6839\u636e\u8bbf\u95eeURL\u7edf\u8ba1PV\ncat /mnt/docker/tomcat/logs/{\u5177\u4f53\u7684nginx log\u6587\u4ef6} \\\n| grep \"21/May/2020\" \\\n| awk '{print $7}' |wc -l\n")),(0,r.yg)("h4",{id:"\u6839\u636e\u8bbf\u95eeurl\u7edf\u8ba1qps"},"\u6839\u636e\u8bbf\u95eeURL\u7edf\u8ba1QPS"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"# \u6839\u636e\u8bbf\u95eeURL\u7edf\u8ba1QPS\ncat /mnt/docker/tomcat/logs/{\u5177\u4f53\u7684nginx log\u6587\u4ef6} \\\n| grep \"21/May/2020:16:39:\" \\\n| awk '{print $7}' |wc -l\n")),(0,r.yg)("h4",{id:"\u67e5\u8be2\u8bbf\u95ee\u6700\u9891\u7e41\u7684url"},"\u67e5\u8be2\u8bbf\u95ee\u6700\u9891\u7e41\u7684URL"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"# \u67e5\u8be2\u8bbf\u95ee\u6700\u9891\u7e41\u7684URL\ncat /usr/local/nginx/logs/access.log \\\n| grep \"29/Feb/2020\" | awk '{print $7}' \\\n|sort | uniq -c |sort -n -k 1 -r|more\n")),(0,r.yg)("h4",{id:"\u67e5\u8be2\u8bbf\u95ee\u6700\u9891\u7e41\u7684ip"},"\u67e5\u8be2\u8bbf\u95ee\u6700\u9891\u7e41\u7684IP"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"# \u67e5\u8be2\u8bbf\u95ee\u6700\u9891\u7e41\u7684IP\ncat /mnt/docker/tomcat/logs/{\u5177\u4f53\u7684nginx log\u6587\u4ef6} \\\n| grep \"12/May/2020\" | awk '{print $1}' \\\n|sort | uniq -c |sort -n -k 1 -r|more\n")),(0,r.yg)("h4",{id:"\u6839\u636e\u65f6\u95f4\u6bb5\u7edf\u8ba1\u67e5\u770b\u65e5\u5fd7"},"\u6839\u636e\u65f6\u95f4\u6bb5\u7edf\u8ba1\u67e5\u770b\u65e5\u5fd7"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"# \u6839\u636e\u65f6\u95f4\u6bb5\u7edf\u8ba1\u67e5\u770b\u65e5\u5fd7\ncat /usr/local/nginx/logs/access.log \\\n| sed -n '/14\\/Mar\\/2015/,/14\\/Mar\\/2020/p'|more\n")),(0,r.yg)("h4",{id:"\u67d0\u4e2a\u65f6\u95f4\u6bb5\u8bbf\u95ee\u603b\u6b21\u6570"},"\u67d0\u4e2a\u65f6\u95f4\u6bb5\u8bbf\u95ee\u603b\u6b21\u6570"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"# \u67d0\u4e2a\u65f6\u95f4\u6bb5\u8bbf\u95ee\u603b\u6b21\u6570\ncat /usr/local/nginx/logs/access.log \\\n| grep -E '16\\/Feb\\/2020:1[2-9]|29\\/Feb\\/2020:2[0-3]'| wc -\n")),(0,r.yg)("h4",{id:"\u67e5\u770b\u8bbf\u95ee\u6700\u9891\u7e41\u7684\u524d5\u4e2aip\u5e76\u5217\u51fa\u8bbf\u95ee\u6b21\u6570"},"\u67e5\u770b\u8bbf\u95ee\u6700\u9891\u7e41\u7684\u524d5\u4e2aIP\uff0c\u5e76\u5217\u51fa\u8bbf\u95ee\u6b21\u6570"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"#\u67e5\u770b\u8bbf\u95ee\u6700\u9891\u7e41\u7684\u524d5\u4e2aIP\uff0c\u5e76\u5217\u51fa\u8bbf\u95ee\u6b21\u6570\ncat /usr/local/nginx/logs/access.log \\\n| grep \"29/Feb/2020\" | awk '{print $1}'|sort -n|uniq -c| sort -rn| head -5\n")),(0,r.yg)("h4",{id:"\u7edf\u8ba1\u72b6\u6001\u7801\u4e3a200\u6b21\u6570"},"\u7edf\u8ba1\u72b6\u6001\u7801\u4e3a200\u6b21\u6570"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"# \u7edf\u8ba1\u72b6\u6001\u7801\u4e3a200\u6b21\u6570\ncat /usr/local/nginx/logs/access.log \\\n| grep \"29/Feb/2020\" | awk '{if($9 == 200) print $9}'|wc -l\n")),(0,r.yg)("h4",{id:"\u7edf\u8ba1\u72b6\u6001\u7801\u4e0d\u662f200\u7684\u6b21\u6570"},"\u7edf\u8ba1\u72b6\u6001\u7801\u4e0d\u662f200\u7684\u6b21\u6570"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"#\u7edf\u8ba1\u72b6\u6001\u7801\u4e0d\u662f200\u7684\u6b21\u6570\ncat /usr/local/nginx/logs/access.log \\\n| grep \"29/Feb/2020\" | awk '{if($9 != 200) print }'|less\n")),(0,r.yg)("h4",{id:"\u67e5\u770b404\u9519\u8bef\u7801\u7684\u8bf7\u6c42"},"\u67e5\u770b404\u9519\u8bef\u7801\u7684\u8bf7\u6c42"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'#\u67e5\u770b404\u9519\u8bef\u7801\u7684\u8bf7\u6c42\ncat /usr/local/nginx/logs/access.log \\\n| grep "29/Feb/2020" | grep "404"|less\n')),(0,r.yg)("h4",{id:"\u6bcf\u96945\u5206\u949f\u8bbf\u95ee\u6b21\u6570\u5217\u8868"},"\u6bcf\u96945\u5206\u949f\u8bbf\u95ee\u6b21\u6570\u5217\u8868"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'#\u6bcf\u96945\u5206\u949f\u8bbf\u95ee\u6b21\u6570\u5217\u8868\ncat /usr/local/nginx/logs/access.log \\\n| grep "29/Feb/2020" \\\n| awk -F: \'{a[$2":"($3-$3%5)]++}END\\\n{for(i in a){split(i,t);print i" \u81f3",t[1]":"t[2]+4," \\\n\u8bbf\u95ee "a[i] " \u6b21" | "sort -t: -k1n -k2n"}}\'\n')),(0,r.yg)("h4",{id:"\u67e5\u8be2\u67d0\u4e2aip\u7684\u8be6\u7ec6\u8bbf\u95ee\u60c5\u51b5\u6309\u8bbf\u95ee\u9891\u7387\u6392\u5e8f"},"\u67e5\u8be2\u67d0\u4e2aIP\u7684\u8be6\u7ec6\u8bbf\u95ee\u60c5\u51b5,\u6309\u8bbf\u95ee\u9891\u7387\u6392\u5e8f"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"#\u67e5\u8be2\u67d0\u4e2aIP\u7684\u8be6\u7ec6\u8bbf\u95ee\u60c5\u51b5,\u6309\u8bbf\u95ee\u9891\u7387\u6392\u5e8f\ncat /usr/local/nginx/logs/access.log \\\n| grep \"29/Feb/2020\" | grep '122.4.22.242' \\\n| awk '{print $7}'|sort |uniq -c |sort -rn |head -n 100\n")),(0,r.yg)("h4",{id:"\u7edf\u8ba1\u6bcf\u79d2\u7684\u8bf7\u6c42\u6570top100\u7684\u65f6\u95f4\u70b9\u7cbe\u786e\u5230\u79d2"},"\u7edf\u8ba1\u6bcf\u79d2\u7684\u8bf7\u6c42\u6570,top100\u7684\u65f6\u95f4\u70b9(\u7cbe\u786e\u5230\u79d2)"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"#\u7edf\u8ba1\u6bcf\u79d2\u7684\u8bf7\u6c42\u6570,top100\u7684\u65f6\u95f4\u70b9(\u7cbe\u786e\u5230\u79d2)\ncat /usr/local/nginx/logs/access.log \\\n| grep \"29/Feb/2020\" | awk '{print $4}' \\\n|cut -c 14-21|sort|uniq -c|sort -nr|head -n 100\n")),(0,r.yg)("h4",{id:"\u7edf\u8ba1\u6bcf\u5206\u949f\u7684\u8bf7\u6c42\u6570top100\u7684\u65f6\u95f4\u70b9\u7cbe\u786e\u5230\u5206\u949f"},"\u7edf\u8ba1\u6bcf\u5206\u949f\u7684\u8bf7\u6c42\u6570,top100\u7684\u65f6\u95f4\u70b9(\u7cbe\u786e\u5230\u5206\u949f)"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"#\u7edf\u8ba1\u6bcf\u5206\u949f\u7684\u8bf7\u6c42\u6570,top100\u7684\u65f6\u95f4\u70b9(\u7cbe\u786e\u5230\u5206\u949f)\ncat /usr/local/nginx/logs/access.log \\\n| grep \"29/Feb/2020\" | awk '{print $4}' \\\n|cut -c 14-18|sort|uniq -c|sort -nr|head -n 100\n")),(0,r.yg)("h4",{id:"\u7edf\u8ba1\u6bcf\u5c0f\u65f6\u7684\u8bf7\u6c42\u6570top100\u7684\u65f6\u95f4\u70b9\u7cbe\u786e\u5230\u5c0f\u65f6"},"\u7edf\u8ba1\u6bcf\u5c0f\u65f6\u7684\u8bf7\u6c42\u6570,top100\u7684\u65f6\u95f4\u70b9(\u7cbe\u786e\u5230\u5c0f\u65f6)"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"#\u7edf\u8ba1\u6bcf\u5c0f\u65f6\u7684\u8bf7\u6c42\u6570,top100\u7684\u65f6\u95f4\u70b9(\u7cbe\u786e\u5230\u5c0f\u65f6)\ncat /mnt/docker/tomcat/logs/{\u5177\u4f53\u7684nginx log\u6587\u4ef6} \\\n| grep \"21/May/2020\" | awk '{print $4}' \\\n|cut -c 14-15|sort|uniq -c|sort -nr|head -n 100\n")),(0,r.yg)("h4",{id:"\u5176\u4ed6\u672a\u5206\u7c7b"},"\u5176\u4ed6\uff0c\u672a\u5206\u7c7b"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'\n##\u6027\u80fd\u5206\u6790\n#\u5728nginx log\u4e2d\u6700\u540e\u4e00\u4e2a\u5b57\u6bb5\u52a0\u5165$request_time\n#\u5217\u51fa\u4f20\u8f93\u65f6\u95f4\u8d85\u8fc7 3 \u79d2\u7684\u9875\u9762\uff0c\u663e\u793a\u524d20\u6761\ncat /usr/local/nginx/logs/access.log | grep "29/Feb/2020" \\\n| awk \'($NF > 3){print $7}\'|sort -n|uniq -c|sort -nr|head -20\n\n##TCP\u8fde\u63a5\u7edf\u8ba1\n#\u67e5\u770b\u5f53\u524dTCP\u8fde\u63a5\u6570\nnetstat -tan | grep "ESTABLISHED" | grep ":80" | wc -l\n#\u7528tcpdump\u55c5\u63a280\u7aef\u53e3\u7684\u8bbf\u95ee\u770b\u770b\u8c01\u6700\u9ad8\ntcpdump -i eth0 -tnn dst port 80 -c 1000 \\\n| awk -F"." \'{print $1"."$2"."$3"."$4}\' | sort | uniq -c | sort -nr\n\n')),(0,r.yg)("h3",{id:"\u540d\u8bcd\u89e3\u91ca"},"\u540d\u8bcd\u89e3\u91ca"),(0,r.yg)("ol",null,(0,r.yg)("li",{parentName:"ol"},"PV\uff08Page View\uff09\u8bbf\u95ee\u91cf, \u5373\u9875\u9762\u6d4f\u89c8\u91cf\u6216\u70b9\u51fb\u91cf\uff0c\u8861\u91cf\u7f51\u7ad9\u7528\u6237\u8bbf\u95ee\u7684\u7f51\u9875\u6570\u91cf\uff1b\u5728\u4e00\u5b9a\u7edf\u8ba1\u5468\u671f\u5185\u7528\u6237\u6bcf\u6253\u5f00\u6216\u5237\u65b0\u4e00\u4e2a\u9875\u9762\u5c31\u8bb0\u5f551\u6b21\uff0c\u591a\u6b21\u6253\u5f00\u6216\u5237\u65b0\u540c\u4e00\u9875\u9762\u5219\u6d4f\u89c8\u91cf\u7d2f\u8ba1\u3002"),(0,r.yg)("li",{parentName:"ol"},"UV\uff08Unique Visitor\uff09\u72ec\u7acb\u8bbf\u5ba2\uff0c\u7edf\u8ba11\u5929\u5185\u8bbf\u95ee\u67d0\u7ad9\u70b9\u7684\u7528\u6237\u6570(\u4ee5cookie\u4e3a\u4f9d\u636e);\u8bbf\u95ee\u7f51\u7ad9\u7684\u4e00\u53f0\u7535\u8111\u5ba2\u6237\u7aef\u4e3a\u4e00\u4e2a\u8bbf\u5ba2\u3002\u53ef\u4ee5\u7406\u89e3\u6210\u8bbf\u95ee\u67d0\u7f51\u7ad9\u7684\u7535\u8111\u7684\u6570\u91cf\u3002\u7f51\u7ad9\u5224\u65ad\u6765\u8bbf\u7535\u8111\u7684\u8eab\u4efd\u662f\u901a\u8fc7\u6765\u8bbf\u7535\u8111\u7684cookies\u5b9e\u73b0\u7684\u3002\u5982\u679c\u66f4\u6362\u4e86IP\u540e\u4f46\u4e0d\u6e05\u9664cookies\uff0c\u518d\u8bbf\u95ee\u76f8\u540c\u7f51\u7ad9\uff0c\u8be5\u7f51\u7ad9\u7684\u7edf\u8ba1\u4e2dUV\u6570\u662f\u4e0d\u53d8\u7684\u3002\u5982\u679c\u7528\u6237\u4e0d\u4fdd\u5b58cookies\u8bbf\u95ee\u3001\u6e05\u9664\u4e86cookies\u6216\u8005\u66f4\u6362\u8bbe\u5907\u8bbf\u95ee\uff0c\u8ba1\u6570\u4f1a\u52a01\u300200:00-24:00\u5185\u76f8\u540c\u7684\u5ba2\u6237\u7aef\u591a\u6b21\u8bbf\u95ee\u53ea\u8ba1\u4e3a1\u4e2a\u8bbf\u5ba2\u3002"),(0,r.yg)("li",{parentName:"ol"},"IP\uff08Internet Protocol\uff09\u72ec\u7acbIP\u6570\uff0c\u662f\u63071\u5929\u5185\u591a\u5c11\u4e2a\u72ec\u7acb\u7684IP\u6d4f\u89c8\u4e86\u9875\u9762\uff0c\u5373\u7edf\u8ba1\u4e0d\u540c\u7684IP\u6d4f\u89c8\u7528\u6237\u6570\u91cf\u3002\u540c\u4e00IP\u4e0d\u7ba1\u8bbf\u95ee\u4e86\u51e0\u4e2a\u9875\u9762\uff0c\u72ec\u7acbIP\u6570\u5747\u4e3a1\uff1b\u4e0d\u540c\u7684IP\u6d4f\u89c8\u9875\u9762\uff0c\u8ba1\u6570\u4f1a\u52a01\u3002 IP\u662f\u57fa\u4e8e\u7528\u6237\u5e7f\u57df\u7f51IP\u5730\u5740\u6765\u533a\u5206\u4e0d\u540c\u7684\u8bbf\u95ee\u8005\u7684\uff0c\u6240\u4ee5\uff0c\u591a\u4e2a\u7528\u6237\uff08\u591a\u4e2a\u5c40\u57df\u7f51IP\uff09\u5728\u540c\u4e00\u4e2a\u8def\u7531\u5668\uff08\u540c\u4e00\u4e2a\u5e7f\u57df\u7f51IP\uff09\u5185\u4e0a\u7f51\uff0c\u53ef\u80fd\u88ab\u8bb0\u5f55\u4e3a\u4e00\u4e2a\u72ec\u7acbIP\u8bbf\u95ee\u8005\u3002\u5982\u679c\u7528\u6237\u4e0d\u65ad\u66f4\u6362IP\uff0c\u5219\u6709\u53ef\u80fd\u88ab\u591a\u6b21\u7edf\u8ba1\u3002"),(0,r.yg)("li",{parentName:"ol"},"\u4f1a\u8bdd\u6b21\u6570\uff08\u7f51\u7ad9\u8bbf\u95ee\u91cf\uff09Session\uff0c\u4f1a\u8bdd\u662f\u6307\u5728\u6307\u5b9a\u7684\u65f6\u95f4\u6bb5\u5185\u5728\u60a8\u7684\u7f51\u7ad9\u4e0a\u53d1\u751f\u7684\u4e00\u7cfb\u5217\u4e92\u52a8\uff0c\u6240\u4ee5\u4f1a\u8bdd\u6b21\u6570\u662f\u4e00\u6bb5\u65f6\u95f4\u5185\u7528\u6237\u5411\u60a8\u7684\u7f51\u7ad9\u53d1\u8d77\u7684\u4f1a\u8bdd\uff08Session\uff09\u603b\u6570\u91cf\u3002\u4e00\u6b21\u4f1a\u8bdd\u4f1a\u6d4f\u89c8\u4e00\u4e2a\u6216\u591a\u4e2a\u9875\u9762")),(0,r.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,r.yg)("ol",null,(0,r.yg)("li",{parentName:"ol"},(0,r.yg)("a",{parentName:"li",href:"https://www.cnblogs.com/wunaozai/p/6073731.html"},"Nginx \u5355\u673a\u767e\u4e07QPS\u73af\u5883\u642d\u5efa"))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/62465e63.2e9e0896.js b/assets/js/62465e63.d6d29435.js similarity index 98% rename from assets/js/62465e63.2e9e0896.js rename to assets/js/62465e63.d6d29435.js index 23671cb94..96d68c697 100644 --- a/assets/js/62465e63.2e9e0896.js +++ b/assets/js/62465e63.d6d29435.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1746],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),u=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},s=function(e){var t=u(e.components);return n.createElement(c.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),d=u(r),y=o,f=d["".concat(c,".").concat(y)]||d[y]||p[y]||a;return r?n.createElement(f,l(l({ref:t},s),{},{components:r})):n.createElement(f,l({ref:t},s))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=y;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[d]="string"==typeof e?e:o,l[1]=i;for(var u=2;u{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>p,frontMatter:()=>a,metadata:()=>i,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={},l=void 0,i={unversionedId:"study/db/OLAP/ClickHouse",id:"study/db/OLAP/ClickHouse",title:"ClickHouse",description:"Clickhouse\u662fYandex\u5f00\u6e90\u7684\u4e00\u4e2a\u7528\u4e8e\u5b9e\u65f6\u6570\u636e\u5206\u6790\u7684\u6570\u636e\u5e93\uff0c\u4e00\u5f00\u59cb\u5c31\u7528\u5728yandex\u5185\u90e8\u7684\u591a\u4e2a\u6570\u636e\u5206\u6790\u4e1a\u52a1\u4e0a\u3002\u8981\u4ecb\u7ecdclickhouse\uff0c\u8fd8\u662f\u9700\u8981\u5148\u4ecb\u7ecd\u4e00\u4e0byandex\u3002Clickhouse\u4e3a\u4ec0\u4e48\u4f1a\u51fa\u73b0\uff0c\u5176\u5b9e\u548cyandex\u7684\u4e1a\u52a1\u5173\u7cfb\u975e\u5e38\u5927\u3002Yandex\u662f\u4fc4\u7f57\u65af\u6700\u5927\u7684\u641c\u7d22\u5f15\u64ce\uff0c\u4f1a\u6709\u5f88\u591a\u6570\u636e\u5206\u6790\u7684\u4e1a\u52a1\uff0c\u5176\u4e2d\u6570\u636e\u91cf\u6700\u5927\u7684\u4e1a\u52a1\uff0c\u5c31\u662fYandex.Metrica\uff0c\u8fd9\u662f\u4e00\u4e2a\u548c\u767e\u5ea6\u7edf\u8ba1\u7c7b\u4f3c\u7684\u7f51\u7ad9\u6570\u636e\u5206\u6790\u670d\u52a1\uff0c\u6570\u636e\u91cf\u4e5f\u4ec5\u6b21\u4e8egoogle analysis\u3002\u81ea\u4eceClickhouse\u5f00\u6e90\u540e\uff0c\u5728\u56fd\u5185\u5916\u7684\u5f88\u591a\u516c\u53f8\u7684\u7ebf\u4e0a\u4e1a\u52a1\u90fd\u5df2\u7ecf\u5f00\u59cb\u4f7f\u7528\u3002",source:"@site/docs/study/db/OLAP/ClickHouse.md",sourceDirName:"study/db/OLAP",slug:"/study/db/OLAP/ClickHouse",permalink:"/docs/study/db/OLAP/ClickHouse",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u7efc\u5408\u6982\u8ff0",permalink:"/docs/study/db/OLAP/\u7efc\u5408\u6982\u8ff0"},next:{title:"Kylin",permalink:"/docs/study/db/OLAP/Kylin"}},c={},u=[{value:"\u6982\u8ff0",id:"\u6982\u8ff0",level:3}],s={toc:u},d="wrapper";function p(e){let{components:t,...r}=e;return(0,o.yg)(d,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"Clickhouse\u662fYandex\u5f00\u6e90\u7684\u4e00\u4e2a\u7528\u4e8e\u5b9e\u65f6\u6570\u636e\u5206\u6790\u7684\u6570\u636e\u5e93\uff0c\u4e00\u5f00\u59cb\u5c31\u7528\u5728yandex\u5185\u90e8\u7684\u591a\u4e2a\u6570\u636e\u5206\u6790\u4e1a\u52a1\u4e0a\u3002\u8981\u4ecb\u7ecdclickhouse\uff0c\u8fd8\u662f\u9700\u8981\u5148\u4ecb\u7ecd\u4e00\u4e0byandex\u3002Clickhouse\u4e3a\u4ec0\u4e48\u4f1a\u51fa\u73b0\uff0c\u5176\u5b9e\u548cyandex\u7684\u4e1a\u52a1\u5173\u7cfb\u975e\u5e38\u5927\u3002Yandex\u662f\u4fc4\u7f57\u65af\u6700\u5927\u7684\u641c\u7d22\u5f15\u64ce\uff0c\u4f1a\u6709\u5f88\u591a\u6570\u636e\u5206\u6790\u7684\u4e1a\u52a1\uff0c\u5176\u4e2d\u6570\u636e\u91cf\u6700\u5927\u7684\u4e1a\u52a1\uff0c\u5c31\u662fYandex.Metrica\uff0c\u8fd9\u662f\u4e00\u4e2a\u548c\u767e\u5ea6\u7edf\u8ba1\u7c7b\u4f3c\u7684\u7f51\u7ad9\u6570\u636e\u5206\u6790\u670d\u52a1\uff0c\u6570\u636e\u91cf\u4e5f\u4ec5\u6b21\u4e8egoogle analysis\u3002\u81ea\u4eceClickhouse\u5f00\u6e90\u540e\uff0c\u5728\u56fd\u5185\u5916\u7684\u5f88\u591a\u516c\u53f8\u7684\u7ebf\u4e0a\u4e1a\u52a1\u90fd\u5df2\u7ecf\u5f00\u59cb\u4f7f\u7528\u3002"),(0,o.yg)("h3",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,o.yg)("p",null,"Clickhouse\u662f\u6781\u5176\u9002\u5408OLAP\uff08\u8054\u673a\u5206\u6790\u5904\u7406\uff09\u95ee\u9898\u7684\u4e00\u4e2a\u6570\u636e\u5e93\u3002\u8fd9\u7c7b\u95ee\u9898\u6709\u5982\u4e0b\u4e00\u4e9b\u7279\u70b9\uff1a"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"\u8bf7\u6c42\u4ee5\u8bfb\u4e3a\u4e3b\uff0c\u6570\u636e\u6dfb\u52a0\u3001\u66f4\u65b0\u4e00\u822c\u4ee5\u6279\u91cf\u7684\u5f62\u5f0f\u8fdb\u884c\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u8868\u53ef\u4ee5\u5f88\u5bbd\uff0c\u4f46\u662f\u5b9e\u9645\u67e5\u8be2\u65f6\u53ea\u4f1a\u7528\u5230\u6709\u9650\u7684\u51e0\u5217\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u5217\u503c\u8f83\u5c0f\uff0c\u4e00\u822c\u662f\u6570\u5b57\u6216\u8005\u77ed\u5b57\u7b26\u4e32;"),(0,o.yg)("li",{parentName:"ul"},"\u67e5\u8be2\u7ed3\u679c\u96c6\u7684\u5927\u5c0f\u663e\u8457\u5c0f\u4e8e\u6e90\u6570\u636e\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u4e8b\u52a1\u5904\u7406\u9700\u6c42\u8f83\u5f31")))}p.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1746],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),u=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},s=function(e){var t=u(e.components);return n.createElement(c.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),d=u(r),y=o,f=d["".concat(c,".").concat(y)]||d[y]||p[y]||a;return r?n.createElement(f,l(l({ref:t},s),{},{components:r})):n.createElement(f,l({ref:t},s))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=y;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[d]="string"==typeof e?e:o,l[1]=i;for(var u=2;u{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>p,frontMatter:()=>a,metadata:()=>i,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={},l=void 0,i={unversionedId:"study/db/OLAP/ClickHouse",id:"study/db/OLAP/ClickHouse",title:"ClickHouse",description:"Clickhouse\u662fYandex\u5f00\u6e90\u7684\u4e00\u4e2a\u7528\u4e8e\u5b9e\u65f6\u6570\u636e\u5206\u6790\u7684\u6570\u636e\u5e93\uff0c\u4e00\u5f00\u59cb\u5c31\u7528\u5728yandex\u5185\u90e8\u7684\u591a\u4e2a\u6570\u636e\u5206\u6790\u4e1a\u52a1\u4e0a\u3002\u8981\u4ecb\u7ecdclickhouse\uff0c\u8fd8\u662f\u9700\u8981\u5148\u4ecb\u7ecd\u4e00\u4e0byandex\u3002Clickhouse\u4e3a\u4ec0\u4e48\u4f1a\u51fa\u73b0\uff0c\u5176\u5b9e\u548cyandex\u7684\u4e1a\u52a1\u5173\u7cfb\u975e\u5e38\u5927\u3002Yandex\u662f\u4fc4\u7f57\u65af\u6700\u5927\u7684\u641c\u7d22\u5f15\u64ce\uff0c\u4f1a\u6709\u5f88\u591a\u6570\u636e\u5206\u6790\u7684\u4e1a\u52a1\uff0c\u5176\u4e2d\u6570\u636e\u91cf\u6700\u5927\u7684\u4e1a\u52a1\uff0c\u5c31\u662fYandex.Metrica\uff0c\u8fd9\u662f\u4e00\u4e2a\u548c\u767e\u5ea6\u7edf\u8ba1\u7c7b\u4f3c\u7684\u7f51\u7ad9\u6570\u636e\u5206\u6790\u670d\u52a1\uff0c\u6570\u636e\u91cf\u4e5f\u4ec5\u6b21\u4e8egoogle analysis\u3002\u81ea\u4eceClickhouse\u5f00\u6e90\u540e\uff0c\u5728\u56fd\u5185\u5916\u7684\u5f88\u591a\u516c\u53f8\u7684\u7ebf\u4e0a\u4e1a\u52a1\u90fd\u5df2\u7ecf\u5f00\u59cb\u4f7f\u7528\u3002",source:"@site/docs/study/db/OLAP/ClickHouse.md",sourceDirName:"study/db/OLAP",slug:"/study/db/OLAP/ClickHouse",permalink:"/docs/study/db/OLAP/ClickHouse",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u7efc\u5408\u6982\u8ff0",permalink:"/docs/study/db/OLAP/\u7efc\u5408\u6982\u8ff0"},next:{title:"Kylin",permalink:"/docs/study/db/OLAP/Kylin"}},c={},u=[{value:"\u6982\u8ff0",id:"\u6982\u8ff0",level:3}],s={toc:u},d="wrapper";function p(e){let{components:t,...r}=e;return(0,o.yg)(d,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"Clickhouse\u662fYandex\u5f00\u6e90\u7684\u4e00\u4e2a\u7528\u4e8e\u5b9e\u65f6\u6570\u636e\u5206\u6790\u7684\u6570\u636e\u5e93\uff0c\u4e00\u5f00\u59cb\u5c31\u7528\u5728yandex\u5185\u90e8\u7684\u591a\u4e2a\u6570\u636e\u5206\u6790\u4e1a\u52a1\u4e0a\u3002\u8981\u4ecb\u7ecdclickhouse\uff0c\u8fd8\u662f\u9700\u8981\u5148\u4ecb\u7ecd\u4e00\u4e0byandex\u3002Clickhouse\u4e3a\u4ec0\u4e48\u4f1a\u51fa\u73b0\uff0c\u5176\u5b9e\u548cyandex\u7684\u4e1a\u52a1\u5173\u7cfb\u975e\u5e38\u5927\u3002Yandex\u662f\u4fc4\u7f57\u65af\u6700\u5927\u7684\u641c\u7d22\u5f15\u64ce\uff0c\u4f1a\u6709\u5f88\u591a\u6570\u636e\u5206\u6790\u7684\u4e1a\u52a1\uff0c\u5176\u4e2d\u6570\u636e\u91cf\u6700\u5927\u7684\u4e1a\u52a1\uff0c\u5c31\u662fYandex.Metrica\uff0c\u8fd9\u662f\u4e00\u4e2a\u548c\u767e\u5ea6\u7edf\u8ba1\u7c7b\u4f3c\u7684\u7f51\u7ad9\u6570\u636e\u5206\u6790\u670d\u52a1\uff0c\u6570\u636e\u91cf\u4e5f\u4ec5\u6b21\u4e8egoogle analysis\u3002\u81ea\u4eceClickhouse\u5f00\u6e90\u540e\uff0c\u5728\u56fd\u5185\u5916\u7684\u5f88\u591a\u516c\u53f8\u7684\u7ebf\u4e0a\u4e1a\u52a1\u90fd\u5df2\u7ecf\u5f00\u59cb\u4f7f\u7528\u3002"),(0,o.yg)("h3",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,o.yg)("p",null,"Clickhouse\u662f\u6781\u5176\u9002\u5408OLAP\uff08\u8054\u673a\u5206\u6790\u5904\u7406\uff09\u95ee\u9898\u7684\u4e00\u4e2a\u6570\u636e\u5e93\u3002\u8fd9\u7c7b\u95ee\u9898\u6709\u5982\u4e0b\u4e00\u4e9b\u7279\u70b9\uff1a"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"\u8bf7\u6c42\u4ee5\u8bfb\u4e3a\u4e3b\uff0c\u6570\u636e\u6dfb\u52a0\u3001\u66f4\u65b0\u4e00\u822c\u4ee5\u6279\u91cf\u7684\u5f62\u5f0f\u8fdb\u884c\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u8868\u53ef\u4ee5\u5f88\u5bbd\uff0c\u4f46\u662f\u5b9e\u9645\u67e5\u8be2\u65f6\u53ea\u4f1a\u7528\u5230\u6709\u9650\u7684\u51e0\u5217\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u5217\u503c\u8f83\u5c0f\uff0c\u4e00\u822c\u662f\u6570\u5b57\u6216\u8005\u77ed\u5b57\u7b26\u4e32;"),(0,o.yg)("li",{parentName:"ul"},"\u67e5\u8be2\u7ed3\u679c\u96c6\u7684\u5927\u5c0f\u663e\u8457\u5c0f\u4e8e\u6e90\u6570\u636e\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u4e8b\u52a1\u5904\u7406\u9700\u6c42\u8f83\u5f31")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/62781bcd.96f71929.js b/assets/js/62781bcd.b25aa34a.js similarity index 99% rename from assets/js/62781bcd.96f71929.js rename to assets/js/62781bcd.b25aa34a.js index d88130415..36d7a3811 100644 --- a/assets/js/62781bcd.96f71929.js +++ b/assets/js/62781bcd.b25aa34a.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3806],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>g});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var i=n.createContext({}),c=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},u=function(e){var t=c(e.components);return n.createElement(i.Provider,{value:t},e.children)},y="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,u=p(e,["components","mdxType","originalType","parentName"]),y=c(r),m=o,g=y["".concat(i,".").concat(m)]||y[m]||s[m]||a;return r?n.createElement(g,l(l({ref:t},u),{},{components:r})):n.createElement(g,l({ref:t},u))}));function g(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=m;var p={};for(var i in t)hasOwnProperty.call(t,i)&&(p[i]=t[i]);p.originalType=e,p[y]="string"==typeof e?e:o,l[1]=p;for(var c=2;c{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>s,frontMatter:()=>a,metadata:()=>p,toc:()=>c});var n=r(8168),o=(r(6540),r(5680));const a={},l=void 0,p={unversionedId:"study/competitive/\u7269\u8054\u7f51\u5e73\u53f0\u5c42\u6982\u8ff0",id:"study/competitive/\u7269\u8054\u7f51\u5e73\u53f0\u5c42\u6982\u8ff0",title:"\u7269\u8054\u7f51\u5e73\u53f0\u5c42\u6982\u8ff0",description:"\u5728\u5927\u4f17\u719f\u77e5\u7684\u7269\u8054\u7f51\u611f\u77e5\u5c42\u3001\u7f51\u7edc\u5c42\u3001\u5e73\u53f0\u5c42\u3001\u5e94\u7528\u5c42\u56db\u5927\u5c42\u6b21\u91cc\uff0c\u5e73\u53f0\u5c42\u5c06\u4f5c\u4e3a\u7269\u8054\u7f51\u4ece\u8bbe\u5907\u8fde\u63a5\u5230\u573a\u666f\u5e94\u7528\u7684\u5173\u952e\u201c\u6865\u6881\u201d\u800c\u53d1\u6325\u4f5c\u7528\u3002",source:"@site/docs/study/competitive/\u7269\u8054\u7f51\u5e73\u53f0\u5c42\u6982\u8ff0.md",sourceDirName:"study/competitive",slug:"/study/competitive/\u7269\u8054\u7f51\u5e73\u53f0\u5c42\u6982\u8ff0",permalink:"/docs/study/competitive/\u7269\u8054\u7f51\u5e73\u53f0\u5c42\u6982\u8ff0",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"ThingsCloud",permalink:"/docs/study/competitive/ThingsCloud"},next:{title:"index",permalink:"/docs/study/system/"}},i={},c=[],u={toc:c},y="wrapper";function s(e){let{components:t,...r}=e;return(0,o.yg)(y,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"\u5728\u5927\u4f17\u719f\u77e5\u7684\u7269\u8054\u7f51\u611f\u77e5\u5c42\u3001\u7f51\u7edc\u5c42\u3001\u5e73\u53f0\u5c42\u3001\u5e94\u7528\u5c42\u56db\u5927\u5c42\u6b21\u91cc\uff0c\u5e73\u53f0\u5c42\u5c06\u4f5c\u4e3a\u7269\u8054\u7f51\u4ece\u8bbe\u5907\u8fde\u63a5\u5230\u573a\u666f\u5e94\u7528\u7684\u5173\u952e\u201c\u6865\u6881\u201d\u800c\u53d1\u6325\u4f5c\u7528\u3002"),(0,o.yg)("p",null,"\u7269\u8054\u7f51\u5e73\u53f0\u662f\u4e00\u6b3e\u63d0\u4f9b\u4e30\u5bcc\u529f\u80fd\u7ec4\u5408\u7684\u5546\u4e1a\u8f6f\u4ef6\u4ea7\u54c1\uff0c\u4e3b\u8981\u4f53\u73b0\u5728\uff1a"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},"\u8d1f\u8d23\u7269\u8054\u7f51\u8bbe\u5907\u7684\u8fde\u63a5\u4e0e\u7ba1\u7406\uff1b"),(0,o.yg)("li",{parentName:"ol"},"\u8d1f\u8d23\u7269\u8054\u7f51\u6570\u636e\u7684\u8bbf\u95ee\u3001\u6444\u53d6\u4e0e\u5b58\u50a8\uff1b"),(0,o.yg)("li",{parentName:"ol"},"\u5bf9\u6570\u636e\u7684\u53ef\u89c6\u5316\u4e0e\u5206\u6790\uff1b"),(0,o.yg)("li",{parentName:"ol"},"\u4f5c\u4e3a\u7269\u8054\u7f51\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u548c\u96c6\u6210\u7684\u5de5\u5177\u3002")),(0,o.yg)("p",null,"\u751a\u81f3\u8fd8\u6709\u89c2\u70b9\u8ba4\u4e3a\uff0c\u7269\u8054\u7f51\u672a\u6765\u4e00\u5b9a\u662f\u5e73\u53f0\u4e3a\u738b\u3002\u5c24\u5176\u968f\u7740\u6570\u636e\u91cf\u5267\u589e\u3001\u7528\u6237\u5bf9\u8ba1\u7b97\u80fd\u529b\u7684\u9700\u6c42\u8d8a\u6765\u8d8a\u5927\uff0c\u5177\u6709\u5f3a\u5927\u63a5\u5165\u4e0e\u8fd0\u7ef4\u7ba1\u7406\u80fd\u529b\u7684\u4e91\u5e73\u53f0\u5c06\u662f\u4f01\u4e1a\u6253\u9020\u54c1\u724c\u7684\u91cd\u8981\u5173\u952e\u3002"),(0,o.yg)("p",null,"\u7269\u8054\u7f51\u5e73\u53f0\u88ab\u8ba4\u4e3a\u662f\u63a8\u52a8\u7269\u8054\u7f51\u5927\u89c4\u6a21\u8fde\u63a5\u7684\u57fa\u7840\u8f6f\u4ef6\uff0c\u662f\u4fc3\u8fdb IoT \u9879\u76ee\u89c4\u6a21\u843d\u5730\u7684\u5173\u952e\u57fa\u7840\u8bbe\u65bd\uff0c\u662f\u5168\u7403\u7269\u8054\u7f51\u4f01\u4e1a\u4e89\u593a\u53d1\u529b\u7684\u6218\u7565\u9ad8\u5730\u3002"),(0,o.yg)("p",null,"\u7269\u8054\u7f51\u5e73\u53f0\u5c5e\u4e8e\u4e91\u8ba1\u7b97\u4e09\u79cd\u670d\u52a1\u6a21\u578b\uff08IaaS\u3001PaaS\u3001SaaS\uff09\u4e2d PaaS \u5c42\u7684\u4e00\u90e8\u5206\uff0c\u8d77\u6e90\u4e8e\u7269\u8054\u7f51\u4e2d\u95f4\u4ef6\u7684\u5f62\u5f0f\uff0c\u5176\u76ee\u7684\u662f\u5728\u786c\u4ef6\u5c42\u548c\u5e94\u7528\u5c42\u4e4b\u95f4\u8d77\u5230\u4e2d\u4ecb\u4f5c\u7528\uff0c\u7ba1\u7406\u4e8c\u8005\u4e4b\u95f4\u7684\u6240\u6709\u4ea4\u4e92\u3002"),(0,o.yg)("p",null,"\u7269\u8054\u7f51\u5e73\u53f0\u4f01\u4e1a\u8f83\u9ad8\u9891\u5730\u63d0\u5230 4 \u5927\u529f\u80fd\uff0c\u5206\u522b\u662f",(0,o.yg)("strong",{parentName:"p"},"\u8fde\u63a5\u7ba1\u7406"),"\u3001",(0,o.yg)("strong",{parentName:"p"},"\u8bbe\u5907\u7ba1\u7406"),"\u3001",(0,o.yg)("strong",{parentName:"p"},"\u5e94\u7528\u5f00\u53d1"),"\u3001",(0,o.yg)("strong",{parentName:"p"},"\u6570\u636e\u5206\u6790"),"\u3002"),(0,o.yg)("p",null,"\u8fde\u63a5\u7ba1\u7406\u662f\u57fa\u7840\u3001\u8bbe\u5907\u7ba1\u7406\u662f\u6838\u5fc3\u3001\u5e94\u7528\u5f00\u53d1\u662f\u4ef7\u503c\u4f53\u73b0\u3001\u6570\u636e\u5206\u6790\u662f\u5e94\u7528\u6f5c\u80fd\u3001\u5b89\u5168\u662f\u91cd\u8981\u4fdd\u969c\u3002"),(0,o.yg)("p",null,"\u4ece\u6839\u672c\u4e0a\u7406\u89e3\uff0c\u7269\u8054\u7f51\u5e73\u53f0\u73a9\u5bb6\u7684",(0,o.yg)("strong",{parentName:"p"},(0,o.yg)("em",{parentName:"strong"},"\u7ecf\u8425\u7b56\u7565")),"\u4e3b\u8981\u53ef\u5206\u4e3a\u4e24\u70b9\uff1a"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"\u4e00\u79cd\u662f\u6a2a\u5411\u7684\uff0c\u4e13\u95e8\u505a\u6cdb\u884c\u4e1a\u7684\u8fde\u63a5\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u53e6\u4e00\u79cd\u662f\u7eb5\u5411\u7684\uff0c\u6301\u7eed\u5728\u5782\u76f4\u9886\u57df\u6316\u6398\u6df1\u8015\u3002")),(0,o.yg)("p",null,"\u6784\u7b51\u82af\u7aef\u8fb9\u7f51\u4e91\u5168\u6808\u7269\u8054\u7f51\u4ea7\u54c1\u548c\u89e3\u51b3\u65b9\u6848\u3002\u5728\u7f51\u7edc\u4fa7\uff0c\u9664\u4e86\u5927\u5bb6\u6bd4\u8f83\u719f\u6089\u7684 2\u30013\u30014G\u30015G \u5916\uff0c\u534e\u4e3a\u8fd8\u5728\u63a8\u8fdb NB-IoT\u3001eLTE \u7b49\u7269\u8054\u7f51\u7f51\u7edc\u7684\u5efa\u8bbe\uff0c\u4e3a\u4ea7\u4e1a\u9886\u57df\u4e07\u7269\u4e92\u8054\u51c6\u5907\u597d\u7f51\u7edc\u3002"),(0,o.yg)("p",null,"\u8bbe\u5907\u63a5\u5165\u670d\u52a1\u5b9e\u73b0\u591a\uff08\u4ebf\u7ea7\u8054\u63a5\u3001\u767e\u4e07\u5e76\u53d1\uff09\u3001\u5feb\uff08\u5c0f\u65f6\u7ea7\u63a5\u5165\u3001\u5206\u949f\u7ea7\u5b89\u88c5\u90e8\u7f72\uff09\u3001\u597d\uff08\u9ad8\u5b89\u5168\u9ad8\u53ef\u9760\uff09\u3001\u7701\uff08\u4f4e\u529f\u8017\u3001\u4f4e\u6210\u672c\uff09\u7684\u8bbe\u5907\u4e0a\u4e91\u63a5\u5165\uff1b\u6570\u636e\u5206\u6790\u670d\u52a1\u5b9e\u73b0\u5f00\u7bb1\u5373\u7528\u7684\u4e00\u7ad9\u5f0f\u6570\u636e\u5904\u7406 & \u5206\u6790\uff0c\u4e3a\u5f00\u53d1\u8005\u63d0\u4f9b\u7269\u8054\u7f51\u5b9e\u65f6\u5206\u6790\u3001\u65f6\u9700\u5206\u6790\u3001\u79bb\u7ebf\u5206\u6790\uff0c\u5feb\u901f\u6316\u6398\u7269\u8054\u7f51\u6570\u636e\u7684\u4ef7\u503c\u3002"),(0,o.yg)("p",null,"\u7269\u8054\u7f51\u5e73\u53f0\u5c42\u4e3b\u8981\u6709\u4e09\u79cd\u5ba2\u6237\uff1a\u8bbe\u5907\u751f\u4ea7\u5382\u5bb6\u3001\u5de5\u4e1a\u73b0\u573a\uff08\u8bbe\u5907\u7528\u6237\uff09\u3001\u5782\u76f4\u884c\u4e1a\u7269\u8054\u7f51\u89e3\u51b3\u65b9\u6848\u5546\u3002"),(0,o.yg)("p",null,"\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u5904\u4e8e\u7269\u8054\u7f51\u56db\u4e2a\u903b\u8f91\u5c42\uff08\u611f\u77e5\u5c42\u3001\u7f51\u7edc\u5c42\u3001\u5e73\u53f0\u5c42\u3001\u5e94\u7528\u5c42\uff09\u4e2d\u5904\u4e8e\u5e73\u53f0\u5c42\u8fd9\u4e00\u73af\uff0c\u5e73\u53f0\u5c42\u4e8e\u7269\u8054\u7f51\u7684\u4f5c\u7528\u5728\u4e8e\u6536\u96c6\u3001\u5904\u7406\u6570\u636e\u7b49\u3002\u6211\u4eec\u53ef\u6839\u636e\u4e91\u5e73\u53f0\u7684\u529f\u80fd\u5c06\u5176\u5206\u4e3aCMP\u3001DMP\u3001AEP\u548cBAP\u7b49\u56db\u4e2a\u5e73\u53f0\u3002\u5230\u76ee\u524d\u4e3a\u6b62\u8fd8\u6ca1\u6709\u4e00\u5bb6\u516c\u53f8\u53ef\u5728\u4e1a\u52a1\u4e0a\u6db5\u76d6\u56db\u4e2a\u5b50\u5e73\u53f0\uff0c\u6bcf\u4e2a\u516c\u53f8\u6709\u5404\u81ea\u64c5\u957f\u9886\u57df \u548c\u72ec\u7279\u4f18\u52bf\u3002"))}s.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3806],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>g});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var i=n.createContext({}),c=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},u=function(e){var t=c(e.components);return n.createElement(i.Provider,{value:t},e.children)},y="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,u=p(e,["components","mdxType","originalType","parentName"]),y=c(r),m=o,g=y["".concat(i,".").concat(m)]||y[m]||s[m]||a;return r?n.createElement(g,l(l({ref:t},u),{},{components:r})):n.createElement(g,l({ref:t},u))}));function g(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=m;var p={};for(var i in t)hasOwnProperty.call(t,i)&&(p[i]=t[i]);p.originalType=e,p[y]="string"==typeof e?e:o,l[1]=p;for(var c=2;c{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>s,frontMatter:()=>a,metadata:()=>p,toc:()=>c});var n=r(8168),o=(r(6540),r(5680));const a={},l=void 0,p={unversionedId:"study/competitive/\u7269\u8054\u7f51\u5e73\u53f0\u5c42\u6982\u8ff0",id:"study/competitive/\u7269\u8054\u7f51\u5e73\u53f0\u5c42\u6982\u8ff0",title:"\u7269\u8054\u7f51\u5e73\u53f0\u5c42\u6982\u8ff0",description:"\u5728\u5927\u4f17\u719f\u77e5\u7684\u7269\u8054\u7f51\u611f\u77e5\u5c42\u3001\u7f51\u7edc\u5c42\u3001\u5e73\u53f0\u5c42\u3001\u5e94\u7528\u5c42\u56db\u5927\u5c42\u6b21\u91cc\uff0c\u5e73\u53f0\u5c42\u5c06\u4f5c\u4e3a\u7269\u8054\u7f51\u4ece\u8bbe\u5907\u8fde\u63a5\u5230\u573a\u666f\u5e94\u7528\u7684\u5173\u952e\u201c\u6865\u6881\u201d\u800c\u53d1\u6325\u4f5c\u7528\u3002",source:"@site/docs/study/competitive/\u7269\u8054\u7f51\u5e73\u53f0\u5c42\u6982\u8ff0.md",sourceDirName:"study/competitive",slug:"/study/competitive/\u7269\u8054\u7f51\u5e73\u53f0\u5c42\u6982\u8ff0",permalink:"/docs/study/competitive/\u7269\u8054\u7f51\u5e73\u53f0\u5c42\u6982\u8ff0",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"ThingsCloud",permalink:"/docs/study/competitive/ThingsCloud"},next:{title:"index",permalink:"/docs/study/system/"}},i={},c=[],u={toc:c},y="wrapper";function s(e){let{components:t,...r}=e;return(0,o.yg)(y,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"\u5728\u5927\u4f17\u719f\u77e5\u7684\u7269\u8054\u7f51\u611f\u77e5\u5c42\u3001\u7f51\u7edc\u5c42\u3001\u5e73\u53f0\u5c42\u3001\u5e94\u7528\u5c42\u56db\u5927\u5c42\u6b21\u91cc\uff0c\u5e73\u53f0\u5c42\u5c06\u4f5c\u4e3a\u7269\u8054\u7f51\u4ece\u8bbe\u5907\u8fde\u63a5\u5230\u573a\u666f\u5e94\u7528\u7684\u5173\u952e\u201c\u6865\u6881\u201d\u800c\u53d1\u6325\u4f5c\u7528\u3002"),(0,o.yg)("p",null,"\u7269\u8054\u7f51\u5e73\u53f0\u662f\u4e00\u6b3e\u63d0\u4f9b\u4e30\u5bcc\u529f\u80fd\u7ec4\u5408\u7684\u5546\u4e1a\u8f6f\u4ef6\u4ea7\u54c1\uff0c\u4e3b\u8981\u4f53\u73b0\u5728\uff1a"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},"\u8d1f\u8d23\u7269\u8054\u7f51\u8bbe\u5907\u7684\u8fde\u63a5\u4e0e\u7ba1\u7406\uff1b"),(0,o.yg)("li",{parentName:"ol"},"\u8d1f\u8d23\u7269\u8054\u7f51\u6570\u636e\u7684\u8bbf\u95ee\u3001\u6444\u53d6\u4e0e\u5b58\u50a8\uff1b"),(0,o.yg)("li",{parentName:"ol"},"\u5bf9\u6570\u636e\u7684\u53ef\u89c6\u5316\u4e0e\u5206\u6790\uff1b"),(0,o.yg)("li",{parentName:"ol"},"\u4f5c\u4e3a\u7269\u8054\u7f51\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u548c\u96c6\u6210\u7684\u5de5\u5177\u3002")),(0,o.yg)("p",null,"\u751a\u81f3\u8fd8\u6709\u89c2\u70b9\u8ba4\u4e3a\uff0c\u7269\u8054\u7f51\u672a\u6765\u4e00\u5b9a\u662f\u5e73\u53f0\u4e3a\u738b\u3002\u5c24\u5176\u968f\u7740\u6570\u636e\u91cf\u5267\u589e\u3001\u7528\u6237\u5bf9\u8ba1\u7b97\u80fd\u529b\u7684\u9700\u6c42\u8d8a\u6765\u8d8a\u5927\uff0c\u5177\u6709\u5f3a\u5927\u63a5\u5165\u4e0e\u8fd0\u7ef4\u7ba1\u7406\u80fd\u529b\u7684\u4e91\u5e73\u53f0\u5c06\u662f\u4f01\u4e1a\u6253\u9020\u54c1\u724c\u7684\u91cd\u8981\u5173\u952e\u3002"),(0,o.yg)("p",null,"\u7269\u8054\u7f51\u5e73\u53f0\u88ab\u8ba4\u4e3a\u662f\u63a8\u52a8\u7269\u8054\u7f51\u5927\u89c4\u6a21\u8fde\u63a5\u7684\u57fa\u7840\u8f6f\u4ef6\uff0c\u662f\u4fc3\u8fdb IoT \u9879\u76ee\u89c4\u6a21\u843d\u5730\u7684\u5173\u952e\u57fa\u7840\u8bbe\u65bd\uff0c\u662f\u5168\u7403\u7269\u8054\u7f51\u4f01\u4e1a\u4e89\u593a\u53d1\u529b\u7684\u6218\u7565\u9ad8\u5730\u3002"),(0,o.yg)("p",null,"\u7269\u8054\u7f51\u5e73\u53f0\u5c5e\u4e8e\u4e91\u8ba1\u7b97\u4e09\u79cd\u670d\u52a1\u6a21\u578b\uff08IaaS\u3001PaaS\u3001SaaS\uff09\u4e2d PaaS \u5c42\u7684\u4e00\u90e8\u5206\uff0c\u8d77\u6e90\u4e8e\u7269\u8054\u7f51\u4e2d\u95f4\u4ef6\u7684\u5f62\u5f0f\uff0c\u5176\u76ee\u7684\u662f\u5728\u786c\u4ef6\u5c42\u548c\u5e94\u7528\u5c42\u4e4b\u95f4\u8d77\u5230\u4e2d\u4ecb\u4f5c\u7528\uff0c\u7ba1\u7406\u4e8c\u8005\u4e4b\u95f4\u7684\u6240\u6709\u4ea4\u4e92\u3002"),(0,o.yg)("p",null,"\u7269\u8054\u7f51\u5e73\u53f0\u4f01\u4e1a\u8f83\u9ad8\u9891\u5730\u63d0\u5230 4 \u5927\u529f\u80fd\uff0c\u5206\u522b\u662f",(0,o.yg)("strong",{parentName:"p"},"\u8fde\u63a5\u7ba1\u7406"),"\u3001",(0,o.yg)("strong",{parentName:"p"},"\u8bbe\u5907\u7ba1\u7406"),"\u3001",(0,o.yg)("strong",{parentName:"p"},"\u5e94\u7528\u5f00\u53d1"),"\u3001",(0,o.yg)("strong",{parentName:"p"},"\u6570\u636e\u5206\u6790"),"\u3002"),(0,o.yg)("p",null,"\u8fde\u63a5\u7ba1\u7406\u662f\u57fa\u7840\u3001\u8bbe\u5907\u7ba1\u7406\u662f\u6838\u5fc3\u3001\u5e94\u7528\u5f00\u53d1\u662f\u4ef7\u503c\u4f53\u73b0\u3001\u6570\u636e\u5206\u6790\u662f\u5e94\u7528\u6f5c\u80fd\u3001\u5b89\u5168\u662f\u91cd\u8981\u4fdd\u969c\u3002"),(0,o.yg)("p",null,"\u4ece\u6839\u672c\u4e0a\u7406\u89e3\uff0c\u7269\u8054\u7f51\u5e73\u53f0\u73a9\u5bb6\u7684",(0,o.yg)("strong",{parentName:"p"},(0,o.yg)("em",{parentName:"strong"},"\u7ecf\u8425\u7b56\u7565")),"\u4e3b\u8981\u53ef\u5206\u4e3a\u4e24\u70b9\uff1a"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"\u4e00\u79cd\u662f\u6a2a\u5411\u7684\uff0c\u4e13\u95e8\u505a\u6cdb\u884c\u4e1a\u7684\u8fde\u63a5\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u53e6\u4e00\u79cd\u662f\u7eb5\u5411\u7684\uff0c\u6301\u7eed\u5728\u5782\u76f4\u9886\u57df\u6316\u6398\u6df1\u8015\u3002")),(0,o.yg)("p",null,"\u6784\u7b51\u82af\u7aef\u8fb9\u7f51\u4e91\u5168\u6808\u7269\u8054\u7f51\u4ea7\u54c1\u548c\u89e3\u51b3\u65b9\u6848\u3002\u5728\u7f51\u7edc\u4fa7\uff0c\u9664\u4e86\u5927\u5bb6\u6bd4\u8f83\u719f\u6089\u7684 2\u30013\u30014G\u30015G \u5916\uff0c\u534e\u4e3a\u8fd8\u5728\u63a8\u8fdb NB-IoT\u3001eLTE \u7b49\u7269\u8054\u7f51\u7f51\u7edc\u7684\u5efa\u8bbe\uff0c\u4e3a\u4ea7\u4e1a\u9886\u57df\u4e07\u7269\u4e92\u8054\u51c6\u5907\u597d\u7f51\u7edc\u3002"),(0,o.yg)("p",null,"\u8bbe\u5907\u63a5\u5165\u670d\u52a1\u5b9e\u73b0\u591a\uff08\u4ebf\u7ea7\u8054\u63a5\u3001\u767e\u4e07\u5e76\u53d1\uff09\u3001\u5feb\uff08\u5c0f\u65f6\u7ea7\u63a5\u5165\u3001\u5206\u949f\u7ea7\u5b89\u88c5\u90e8\u7f72\uff09\u3001\u597d\uff08\u9ad8\u5b89\u5168\u9ad8\u53ef\u9760\uff09\u3001\u7701\uff08\u4f4e\u529f\u8017\u3001\u4f4e\u6210\u672c\uff09\u7684\u8bbe\u5907\u4e0a\u4e91\u63a5\u5165\uff1b\u6570\u636e\u5206\u6790\u670d\u52a1\u5b9e\u73b0\u5f00\u7bb1\u5373\u7528\u7684\u4e00\u7ad9\u5f0f\u6570\u636e\u5904\u7406 & \u5206\u6790\uff0c\u4e3a\u5f00\u53d1\u8005\u63d0\u4f9b\u7269\u8054\u7f51\u5b9e\u65f6\u5206\u6790\u3001\u65f6\u9700\u5206\u6790\u3001\u79bb\u7ebf\u5206\u6790\uff0c\u5feb\u901f\u6316\u6398\u7269\u8054\u7f51\u6570\u636e\u7684\u4ef7\u503c\u3002"),(0,o.yg)("p",null,"\u7269\u8054\u7f51\u5e73\u53f0\u5c42\u4e3b\u8981\u6709\u4e09\u79cd\u5ba2\u6237\uff1a\u8bbe\u5907\u751f\u4ea7\u5382\u5bb6\u3001\u5de5\u4e1a\u73b0\u573a\uff08\u8bbe\u5907\u7528\u6237\uff09\u3001\u5782\u76f4\u884c\u4e1a\u7269\u8054\u7f51\u89e3\u51b3\u65b9\u6848\u5546\u3002"),(0,o.yg)("p",null,"\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u5904\u4e8e\u7269\u8054\u7f51\u56db\u4e2a\u903b\u8f91\u5c42\uff08\u611f\u77e5\u5c42\u3001\u7f51\u7edc\u5c42\u3001\u5e73\u53f0\u5c42\u3001\u5e94\u7528\u5c42\uff09\u4e2d\u5904\u4e8e\u5e73\u53f0\u5c42\u8fd9\u4e00\u73af\uff0c\u5e73\u53f0\u5c42\u4e8e\u7269\u8054\u7f51\u7684\u4f5c\u7528\u5728\u4e8e\u6536\u96c6\u3001\u5904\u7406\u6570\u636e\u7b49\u3002\u6211\u4eec\u53ef\u6839\u636e\u4e91\u5e73\u53f0\u7684\u529f\u80fd\u5c06\u5176\u5206\u4e3aCMP\u3001DMP\u3001AEP\u548cBAP\u7b49\u56db\u4e2a\u5e73\u53f0\u3002\u5230\u76ee\u524d\u4e3a\u6b62\u8fd8\u6ca1\u6709\u4e00\u5bb6\u516c\u53f8\u53ef\u5728\u4e1a\u52a1\u4e0a\u6db5\u76d6\u56db\u4e2a\u5b50\u5e73\u53f0\uff0c\u6bcf\u4e2a\u516c\u53f8\u6709\u5404\u81ea\u64c5\u957f\u9886\u57df \u548c\u72ec\u7279\u4f18\u52bf\u3002"))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6360ef06.ac828409.js b/assets/js/6360ef06.861b4d47.js similarity index 99% rename from assets/js/6360ef06.ac828409.js rename to assets/js/6360ef06.861b4d47.js index ab91eb26f..1c8c8c215 100644 --- a/assets/js/6360ef06.ac828409.js +++ b/assets/js/6360ef06.861b4d47.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5543],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>m});var a=r(6540);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function l(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var y=a.createContext({}),s=function(e){var t=a.useContext(y),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},u=function(e){var t=s(e.components);return a.createElement(y.Provider,{value:t},e.children)},c="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,i=e.originalType,y=e.parentName,u=o(e,["components","mdxType","originalType","parentName"]),c=s(r),d=n,m=c["".concat(y,".").concat(d)]||c[d]||p[d]||i;return r?a.createElement(m,l(l({ref:t},u),{},{components:r})):a.createElement(m,l({ref:t},u))}));function m(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=r.length,l=new Array(i);l[0]=d;var o={};for(var y in t)hasOwnProperty.call(t,y)&&(o[y]=t[y]);o.originalType=e,o[c]="string"==typeof e?e:n,l[1]=o;for(var s=2;s{r.r(t),r.d(t,{assets:()=>y,contentTitle:()=>l,default:()=>p,frontMatter:()=>i,metadata:()=>o,toc:()=>s});var a=r(8168),n=(r(6540),r(5680));const i={},l=void 0,o={unversionedId:"study/back/\u6570\u636e\u5e93\u76f8\u5173/JPA-MyBatis",id:"study/back/\u6570\u636e\u5e93\u76f8\u5173/JPA-MyBatis",title:"JPA-MyBatis",description:"JPA",source:"@site/docs/study/back/\u6570\u636e\u5e93\u76f8\u5173/JPA-MyBatis.md",sourceDirName:"study/back/\u6570\u636e\u5e93\u76f8\u5173",slug:"/study/back/\u6570\u636e\u5e93\u76f8\u5173/JPA-MyBatis",permalink:"/docs/study/back/\u6570\u636e\u5e93\u76f8\u5173/JPA-MyBatis",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u9632\u8303\u6f0f\u6d1e\u653b\u51fb",permalink:"/docs/study/back/\u4fe1\u606f\u5b89\u5168/\u9632\u8303\u6f0f\u6d1e\u653b\u51fb"},next:{title:"Java\u6570\u636e\u5e93\u8fde\u63a5\u6c60",permalink:"/docs/study/back/\u6570\u636e\u5e93\u76f8\u5173/Java\u6570\u636e\u5e93\u8fde\u63a5\u6c60"}},y={},s=[{value:"JPA",id:"jpa",level:3},{value:"MyBatis",id:"mybatis",level:3},{value:"\u4e24\u8005\u5bf9\u6bd4",id:"\u4e24\u8005\u5bf9\u6bd4",level:3},{value:"\u603b\u7ed3",id:"\u603b\u7ed3",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],u={toc:s},c="wrapper";function p(e){let{components:t,...r}=e;return(0,n.yg)(c,(0,a.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.yg)("h3",{id:"jpa"},"JPA"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},"JPA \u662f Java Persistence API \u7684\u7b80\u79f0\uff0c\u4e2d\u6587\u540d Java \u6301\u4e45\u5c42 API \u3002"),(0,n.yg)("li",{parentName:"ul"},"\u662f Java EE 5.0 \u5e73\u53f0\u6807\u51c6\u7684 ORM \u89c4\u8303\uff0c\u4f7f\u5f97\u5e94\u7528\u7a0b\u5e8f\u4ee5\u7edf\u4e00\u7684\u65b9\u5f0f\u8bbf\u95ee\u6301\u4e45\u5c42\u3002\u65e2\u7136\u662f\u89c4\u8303\uff0c\u90a3\u80af\u5b9a\u5c31\u9700\u8981\u6280\u672f\u6765\u5b9e\u73b0\u8fd9\u4e2a\u89c4\u8303\uff0c\u6240\u4ee5 Hibernate3.2+\u3001TopLink 10.1.3 \u4ee5\u53ca OpenJPA \u90fd\u63d0\u4f9b\u4e86 JPA \u7684\u5b9e\u73b0\u3002")),(0,n.yg)("h3",{id:"mybatis"},"MyBatis"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},"MyBatis \u662f\u652f\u6301\u666e\u901a SQL \u67e5\u8be2\uff0c\u5b58\u50a8\u8fc7\u7a0b\u548c\u9ad8\u7ea7\u6620\u5c04\u7684\u4f18\u79c0\u6301\u4e45\u5c42\u6846\u67b6\u3002"),(0,n.yg)("li",{parentName:"ul"},"MyBatis \u6d88\u9664\u4e86\u51e0\u4e4e\u6240\u6709\u7684 JDBC \u4ee3\u7801\u548c\u53c2\u6570\u7684\u624b\u5de5\u8bbe\u7f6e\u4ee5\u53ca\u7ed3\u679c\u96c6\u7684\u68c0\u7d22\u3002"),(0,n.yg)("li",{parentName:"ul"},"MyBatis \u4f7f\u7528\u7b80\u5355\u7684 XML \u6216\u6ce8\u89e3\u7528\u4e8e\u914d\u7f6e\u548c\u539f\u59cb\u6620\u5c04\uff0c\u5c06\u63a5\u53e3\u548c Java \u7684 POJOs\uff08Plain Ordinary Java Objects\uff0c\u666e\u901a\u7684 Java \u5bf9\u8c61\uff09\u6620\u5c04\u6210\u6570\u636e\u5e93\u4e2d\u7684\u8bb0\u5f55\u3002")),(0,n.yg)("h3",{id:"\u4e24\u8005\u5bf9\u6bd4"},"\u4e24\u8005\u5bf9\u6bd4"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},"MyBatis \u6ca1\u6709\u5b9e\u73b0 JPA \u89c4\u8303\uff0c\u5c5e\u4e8e\u534a\u81ea\u52a8 ORM \u6620\u5c04\u5de5\u5177\uff0c\u5728 MyBatis \u4e2d\uff0c\u7a0b\u5e8f\u5458\u9700\u8981\u81ea\u5df1\u7f16\u5199 Sql \u8bed\u53e5\u3002"),(0,n.yg)("li",{parentName:"ul"},"JPA \u662f Repository\uff0cMyBatis \u662f Mapper\u3002"),(0,n.yg)("li",{parentName:"ul"},"MyBatis \u652f\u6301\u5b9a\u5236\u5316 SQL\u3001\u5b58\u50a8\u8fc7\u7a0b\u4ee5\u53ca\u9ad8\u7ea7\u6620\u5c04\u3002JPA \u4ec5\u652f\u6301\u7b80\u5355\u7684\u6620\u5c04\uff0c\u5b83\u6620\u5c04\u5b9e\u4f53\u7c7b\u5c5e\u6027\u5230\u6570\u636e\u5e93\u8868\u7684\u5b57\u6bb5\u4e0a\u3002"),(0,n.yg)("li",{parentName:"ul"},"MyBatis \u9700\u8981\u624b\u52a8\u8fdb\u884c\u5206\u9875\uff0c\u800c JPA \u53ef\u4ee5\u4f7f\u7528\u6846\u67b6\u81ea\u5e26\u7684\u5206\u9875\u673a\u5236\u3002")),(0,n.yg)("h3",{id:"\u603b\u7ed3"},"\u603b\u7ed3"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},"JPA \u5bf9\u4e8e\u5355\u8868\u7684\u7b80\u5355\u67e5\u8be2\u786e\u5b9e\u7b80\u5355\u65b9\u4fbf\u53c8\u5b9e\u7528\u3002"),(0,n.yg)("li",{parentName:"ul"},"mybatis ,\u53ea\u80fd\u8bf4\u5bf9\u4e8e\u591a\u8868\u67e5\u8be2\u786e\u5b9e\u662f\u6bd4\u8f83\u652f\u6301\u3002\u5c24\u5176\u662f\u5728\u4e1a\u52a1\u903b\u8f91\u591a\u662f\u591a\u8868\u5173\u8054\u7684\u60c5\u51b5\u4e0b\uff0cmybatis \u7edd\u5bf9\u6bd4 jpa \u8981\u66f4\u52a0\u9002\u5408\u3002\u65e0\u8bba\u662f\u4ee5\u540e\u7684\u7ef4\u62a4\u8fd8\u662f\u4e1a\u52a1\u7684\u53d8\u66f4\u90fd\u65b9\u4fbf\u4e0d\u5c11\u3002")),(0,n.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("a",{parentName:"li",href:"https://blog.csdn.net/weixin_49794051/article/details/111903009"},"CSDN-\u9c7c\u548c\u718a\u638c\u517c\u5f97\uff1a\u540c\u65f6\u4f7f\u7528 JPA \u548c Mybatis"))))}p.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5543],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>m});var a=r(6540);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function l(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var y=a.createContext({}),s=function(e){var t=a.useContext(y),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},u=function(e){var t=s(e.components);return a.createElement(y.Provider,{value:t},e.children)},c="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,i=e.originalType,y=e.parentName,u=o(e,["components","mdxType","originalType","parentName"]),c=s(r),d=n,m=c["".concat(y,".").concat(d)]||c[d]||p[d]||i;return r?a.createElement(m,l(l({ref:t},u),{},{components:r})):a.createElement(m,l({ref:t},u))}));function m(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=r.length,l=new Array(i);l[0]=d;var o={};for(var y in t)hasOwnProperty.call(t,y)&&(o[y]=t[y]);o.originalType=e,o[c]="string"==typeof e?e:n,l[1]=o;for(var s=2;s{r.r(t),r.d(t,{assets:()=>y,contentTitle:()=>l,default:()=>p,frontMatter:()=>i,metadata:()=>o,toc:()=>s});var a=r(8168),n=(r(6540),r(5680));const i={},l=void 0,o={unversionedId:"study/back/\u6570\u636e\u5e93\u76f8\u5173/JPA-MyBatis",id:"study/back/\u6570\u636e\u5e93\u76f8\u5173/JPA-MyBatis",title:"JPA-MyBatis",description:"JPA",source:"@site/docs/study/back/\u6570\u636e\u5e93\u76f8\u5173/JPA-MyBatis.md",sourceDirName:"study/back/\u6570\u636e\u5e93\u76f8\u5173",slug:"/study/back/\u6570\u636e\u5e93\u76f8\u5173/JPA-MyBatis",permalink:"/docs/study/back/\u6570\u636e\u5e93\u76f8\u5173/JPA-MyBatis",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u9632\u8303\u6f0f\u6d1e\u653b\u51fb",permalink:"/docs/study/back/\u4fe1\u606f\u5b89\u5168/\u9632\u8303\u6f0f\u6d1e\u653b\u51fb"},next:{title:"Java\u6570\u636e\u5e93\u8fde\u63a5\u6c60",permalink:"/docs/study/back/\u6570\u636e\u5e93\u76f8\u5173/Java\u6570\u636e\u5e93\u8fde\u63a5\u6c60"}},y={},s=[{value:"JPA",id:"jpa",level:3},{value:"MyBatis",id:"mybatis",level:3},{value:"\u4e24\u8005\u5bf9\u6bd4",id:"\u4e24\u8005\u5bf9\u6bd4",level:3},{value:"\u603b\u7ed3",id:"\u603b\u7ed3",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],u={toc:s},c="wrapper";function p(e){let{components:t,...r}=e;return(0,n.yg)(c,(0,a.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.yg)("h3",{id:"jpa"},"JPA"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},"JPA \u662f Java Persistence API \u7684\u7b80\u79f0\uff0c\u4e2d\u6587\u540d Java \u6301\u4e45\u5c42 API \u3002"),(0,n.yg)("li",{parentName:"ul"},"\u662f Java EE 5.0 \u5e73\u53f0\u6807\u51c6\u7684 ORM \u89c4\u8303\uff0c\u4f7f\u5f97\u5e94\u7528\u7a0b\u5e8f\u4ee5\u7edf\u4e00\u7684\u65b9\u5f0f\u8bbf\u95ee\u6301\u4e45\u5c42\u3002\u65e2\u7136\u662f\u89c4\u8303\uff0c\u90a3\u80af\u5b9a\u5c31\u9700\u8981\u6280\u672f\u6765\u5b9e\u73b0\u8fd9\u4e2a\u89c4\u8303\uff0c\u6240\u4ee5 Hibernate3.2+\u3001TopLink 10.1.3 \u4ee5\u53ca OpenJPA \u90fd\u63d0\u4f9b\u4e86 JPA \u7684\u5b9e\u73b0\u3002")),(0,n.yg)("h3",{id:"mybatis"},"MyBatis"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},"MyBatis \u662f\u652f\u6301\u666e\u901a SQL \u67e5\u8be2\uff0c\u5b58\u50a8\u8fc7\u7a0b\u548c\u9ad8\u7ea7\u6620\u5c04\u7684\u4f18\u79c0\u6301\u4e45\u5c42\u6846\u67b6\u3002"),(0,n.yg)("li",{parentName:"ul"},"MyBatis \u6d88\u9664\u4e86\u51e0\u4e4e\u6240\u6709\u7684 JDBC \u4ee3\u7801\u548c\u53c2\u6570\u7684\u624b\u5de5\u8bbe\u7f6e\u4ee5\u53ca\u7ed3\u679c\u96c6\u7684\u68c0\u7d22\u3002"),(0,n.yg)("li",{parentName:"ul"},"MyBatis \u4f7f\u7528\u7b80\u5355\u7684 XML \u6216\u6ce8\u89e3\u7528\u4e8e\u914d\u7f6e\u548c\u539f\u59cb\u6620\u5c04\uff0c\u5c06\u63a5\u53e3\u548c Java \u7684 POJOs\uff08Plain Ordinary Java Objects\uff0c\u666e\u901a\u7684 Java \u5bf9\u8c61\uff09\u6620\u5c04\u6210\u6570\u636e\u5e93\u4e2d\u7684\u8bb0\u5f55\u3002")),(0,n.yg)("h3",{id:"\u4e24\u8005\u5bf9\u6bd4"},"\u4e24\u8005\u5bf9\u6bd4"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},"MyBatis \u6ca1\u6709\u5b9e\u73b0 JPA \u89c4\u8303\uff0c\u5c5e\u4e8e\u534a\u81ea\u52a8 ORM \u6620\u5c04\u5de5\u5177\uff0c\u5728 MyBatis \u4e2d\uff0c\u7a0b\u5e8f\u5458\u9700\u8981\u81ea\u5df1\u7f16\u5199 Sql \u8bed\u53e5\u3002"),(0,n.yg)("li",{parentName:"ul"},"JPA \u662f Repository\uff0cMyBatis \u662f Mapper\u3002"),(0,n.yg)("li",{parentName:"ul"},"MyBatis \u652f\u6301\u5b9a\u5236\u5316 SQL\u3001\u5b58\u50a8\u8fc7\u7a0b\u4ee5\u53ca\u9ad8\u7ea7\u6620\u5c04\u3002JPA \u4ec5\u652f\u6301\u7b80\u5355\u7684\u6620\u5c04\uff0c\u5b83\u6620\u5c04\u5b9e\u4f53\u7c7b\u5c5e\u6027\u5230\u6570\u636e\u5e93\u8868\u7684\u5b57\u6bb5\u4e0a\u3002"),(0,n.yg)("li",{parentName:"ul"},"MyBatis \u9700\u8981\u624b\u52a8\u8fdb\u884c\u5206\u9875\uff0c\u800c JPA \u53ef\u4ee5\u4f7f\u7528\u6846\u67b6\u81ea\u5e26\u7684\u5206\u9875\u673a\u5236\u3002")),(0,n.yg)("h3",{id:"\u603b\u7ed3"},"\u603b\u7ed3"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},"JPA \u5bf9\u4e8e\u5355\u8868\u7684\u7b80\u5355\u67e5\u8be2\u786e\u5b9e\u7b80\u5355\u65b9\u4fbf\u53c8\u5b9e\u7528\u3002"),(0,n.yg)("li",{parentName:"ul"},"mybatis ,\u53ea\u80fd\u8bf4\u5bf9\u4e8e\u591a\u8868\u67e5\u8be2\u786e\u5b9e\u662f\u6bd4\u8f83\u652f\u6301\u3002\u5c24\u5176\u662f\u5728\u4e1a\u52a1\u903b\u8f91\u591a\u662f\u591a\u8868\u5173\u8054\u7684\u60c5\u51b5\u4e0b\uff0cmybatis \u7edd\u5bf9\u6bd4 jpa \u8981\u66f4\u52a0\u9002\u5408\u3002\u65e0\u8bba\u662f\u4ee5\u540e\u7684\u7ef4\u62a4\u8fd8\u662f\u4e1a\u52a1\u7684\u53d8\u66f4\u90fd\u65b9\u4fbf\u4e0d\u5c11\u3002")),(0,n.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("a",{parentName:"li",href:"https://blog.csdn.net/weixin_49794051/article/details/111903009"},"CSDN-\u9c7c\u548c\u718a\u638c\u517c\u5f97\uff1a\u540c\u65f6\u4f7f\u7528 JPA \u548c Mybatis"))))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/64c9ca80.c9db806a.js b/assets/js/64c9ca80.c39c9465.js similarity index 98% rename from assets/js/64c9ca80.c9db806a.js rename to assets/js/64c9ca80.c39c9465.js index 8ad3db819..5695d8e70 100644 --- a/assets/js/64c9ca80.c9db806a.js +++ b/assets/js/64c9ca80.c39c9465.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7021],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),i=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},s=function(e){var t=i(e.components);return n.createElement(p.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),u=i(r),m=o,y=u["".concat(p,".").concat(m)]||u[m]||d[m]||a;return r?n.createElement(y,c(c({ref:t},s),{},{components:r})):n.createElement(y,c({ref:t},s))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=m;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[u]="string"==typeof e?e:o,c[1]=l;for(var i=2;i{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>l,toc:()=>i});var n=r(8168),o=(r(6540),r(5680));const a={},c="\u8fbe\u68a6\u6570\u636e\u5e93",l={unversionedId:"study/db/SQL/\u8fbe\u68a6",id:"study/db/SQL/\u8fbe\u68a6",title:"\u8fbe\u68a6\u6570\u636e\u5e93",description:"\u4e3a\u4e86\u4fdd\u8bc1\u6570\u636e\u5e93\u7cfb\u7edf\u7684\u5b89\u5168\u6027\uff0cDM \u6570\u636e\u5e93\u91c7\u7528\u201c\u4e09\u6743\u5206\u7acb\u201d\u6216\u201c\u56db\u6743\u5206\u7acb\u201d\u7684\u5b89\u5168\u673a\u5236\uff0c\u201c\u4e09\u6743\u5206\u7acb\u201d\u65f6\u7cfb\u7edf\u5185\u7f6e\u4e09\u79cd\u7cfb\u7edf\u7ba1\u7406\u5458\uff0c\u5305\u62ec\u6570\u636e\u5e93\u7ba1\u7406\u5458\u3001\u6570\u636e\u5e93\u5b89\u5168\u5458\u548c\u6570\u636e\u5e93\u5ba1\u8ba1\u5458\uff0c\u201c\u56db\u6743\u5206\u7acb\u201d\u65f6\u65b0\u589e\u4e86\u4e00\u7c7b\u7528\u6237\uff0c\u79f0\u4e3a\u6570\u636e\u5e93\u5bf9\u8c61\u64cd\u4f5c\u5458\u3002\u5b83\u4eec\u5404\u53f8\u5176\u804c\uff0c\u4e92\u76f8\u5236\u7ea6\uff0c\u6709\u6548\u5730\u907f\u514d\u4e86\u5c06\u6240\u6709\u6743\u9650\u96c6\u4e2d\u4e8e\u4e00\u4eba\u7684\u98ce\u9669\uff0c\u4fdd\u8bc1\u4e86\u7cfb\u7edf\u7684\u5b89\u5168\u6027\u3002",source:"@site/docs/study/db/SQL/\u8fbe\u68a6.md",sourceDirName:"study/db/SQL",slug:"/study/db/SQL/\u8fbe\u68a6",permalink:"/docs/study/db/SQL/\u8fbe\u68a6",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"PostgreSQL",permalink:"/docs/study/db/SQL/PostgreSQL"},next:{title:"\u7efc\u5408\u6982\u8ff0",permalink:"/docs/study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/\u7efc\u5408\u6982\u8ff0"}},p={},i=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],s={toc:i},u="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u8fbe\u68a6\u6570\u636e\u5e93"},"\u8fbe\u68a6\u6570\u636e\u5e93"),(0,o.yg)("p",null,"\u4e3a\u4e86\u4fdd\u8bc1\u6570\u636e\u5e93\u7cfb\u7edf\u7684\u5b89\u5168\u6027\uff0cDM \u6570\u636e\u5e93\u91c7\u7528\u201c\u4e09\u6743\u5206\u7acb\u201d\u6216\u201c\u56db\u6743\u5206\u7acb\u201d\u7684\u5b89\u5168\u673a\u5236\uff0c\u201c\u4e09\u6743\u5206\u7acb\u201d\u65f6\u7cfb\u7edf\u5185\u7f6e\u4e09\u79cd\u7cfb\u7edf\u7ba1\u7406\u5458\uff0c\u5305\u62ec\u6570\u636e\u5e93\u7ba1\u7406\u5458\u3001\u6570\u636e\u5e93\u5b89\u5168\u5458\u548c\u6570\u636e\u5e93\u5ba1\u8ba1\u5458\uff0c\u201c\u56db\u6743\u5206\u7acb\u201d\u65f6\u65b0\u589e\u4e86\u4e00\u7c7b\u7528\u6237\uff0c\u79f0\u4e3a\u6570\u636e\u5e93\u5bf9\u8c61\u64cd\u4f5c\u5458\u3002\u5b83\u4eec\u5404\u53f8\u5176\u804c\uff0c\u4e92\u76f8\u5236\u7ea6\uff0c\u6709\u6548\u5730\u907f\u514d\u4e86\u5c06\u6240\u6709\u6743\u9650\u96c6\u4e2d\u4e8e\u4e00\u4eba\u7684\u98ce\u9669\uff0c\u4fdd\u8bc1\u4e86\u7cfb\u7edf\u7684\u5b89\u5168\u6027\u3002"),(0,o.yg)("p",null,"\u9700\u8981\u8bf4\u660e\u7684\u662f\uff0c\u5728 DM \u6570\u636e\u5e93\u4e2d\u6709\u4e00\u4e2a\u7279\u6b8a\u7684\u9884\u5b9a\u4e49\u7528\u6237\u201cSYS\u201d\uff0c\u6b64\u7528\u6237\u4ec5\u7528\u4e8e\u4fdd\u5b58\u7cfb\u7edf\u5185\u90e8\u5bf9\u8c61\uff0c\u5e76\u975e\u6570\u636e\u5e93\u7ba1\u7406\u5458\uff0c\u4e5f\u65e0\u6cd5\u8fdb\u884c\u767b\u5f55\u3002"),(0,o.yg)("p",null,"\u4e09\u6743\u5206\u7acb\u7684\u7528\u6237\u8bbe\u8ba1\u7684\u539f\u5b50\uff0c\u53c2\u8003",(0,o.yg)("a",{parentName:"p",href:"https://eco.dameng.com/document/dm/zh-cn/pm/system-administrator.html"},"https://eco.dameng.com/document/dm/zh-cn/pm/system-administrator.html")),(0,o.yg)("p",null,"\u5b98\u7f51 ",(0,o.yg)("a",{parentName:"p",href:"https://www.dameng.com/"},"https://www.dameng.com/")),(0,o.yg)("p",null,"\u5bf9\u6807\u7684\u662fOracle"),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://www.dameng.com/DM8.html"},"DM8\u5b98\u65b9\u4ecb\u7ecd")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://eco.dameng.com/document/dm/zh-cn/pm/index.html"},"DM8\u5b98\u65b9\u6280\u672f\u6587\u6863"))))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7021],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),i=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},s=function(e){var t=i(e.components);return n.createElement(p.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),u=i(r),m=o,y=u["".concat(p,".").concat(m)]||u[m]||d[m]||a;return r?n.createElement(y,c(c({ref:t},s),{},{components:r})):n.createElement(y,c({ref:t},s))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=m;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[u]="string"==typeof e?e:o,c[1]=l;for(var i=2;i{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>l,toc:()=>i});var n=r(8168),o=(r(6540),r(5680));const a={},c="\u8fbe\u68a6\u6570\u636e\u5e93",l={unversionedId:"study/db/SQL/\u8fbe\u68a6",id:"study/db/SQL/\u8fbe\u68a6",title:"\u8fbe\u68a6\u6570\u636e\u5e93",description:"\u4e3a\u4e86\u4fdd\u8bc1\u6570\u636e\u5e93\u7cfb\u7edf\u7684\u5b89\u5168\u6027\uff0cDM \u6570\u636e\u5e93\u91c7\u7528\u201c\u4e09\u6743\u5206\u7acb\u201d\u6216\u201c\u56db\u6743\u5206\u7acb\u201d\u7684\u5b89\u5168\u673a\u5236\uff0c\u201c\u4e09\u6743\u5206\u7acb\u201d\u65f6\u7cfb\u7edf\u5185\u7f6e\u4e09\u79cd\u7cfb\u7edf\u7ba1\u7406\u5458\uff0c\u5305\u62ec\u6570\u636e\u5e93\u7ba1\u7406\u5458\u3001\u6570\u636e\u5e93\u5b89\u5168\u5458\u548c\u6570\u636e\u5e93\u5ba1\u8ba1\u5458\uff0c\u201c\u56db\u6743\u5206\u7acb\u201d\u65f6\u65b0\u589e\u4e86\u4e00\u7c7b\u7528\u6237\uff0c\u79f0\u4e3a\u6570\u636e\u5e93\u5bf9\u8c61\u64cd\u4f5c\u5458\u3002\u5b83\u4eec\u5404\u53f8\u5176\u804c\uff0c\u4e92\u76f8\u5236\u7ea6\uff0c\u6709\u6548\u5730\u907f\u514d\u4e86\u5c06\u6240\u6709\u6743\u9650\u96c6\u4e2d\u4e8e\u4e00\u4eba\u7684\u98ce\u9669\uff0c\u4fdd\u8bc1\u4e86\u7cfb\u7edf\u7684\u5b89\u5168\u6027\u3002",source:"@site/docs/study/db/SQL/\u8fbe\u68a6.md",sourceDirName:"study/db/SQL",slug:"/study/db/SQL/\u8fbe\u68a6",permalink:"/docs/study/db/SQL/\u8fbe\u68a6",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"PostgreSQL",permalink:"/docs/study/db/SQL/PostgreSQL"},next:{title:"\u7efc\u5408\u6982\u8ff0",permalink:"/docs/study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/\u7efc\u5408\u6982\u8ff0"}},p={},i=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],s={toc:i},u="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u8fbe\u68a6\u6570\u636e\u5e93"},"\u8fbe\u68a6\u6570\u636e\u5e93"),(0,o.yg)("p",null,"\u4e3a\u4e86\u4fdd\u8bc1\u6570\u636e\u5e93\u7cfb\u7edf\u7684\u5b89\u5168\u6027\uff0cDM \u6570\u636e\u5e93\u91c7\u7528\u201c\u4e09\u6743\u5206\u7acb\u201d\u6216\u201c\u56db\u6743\u5206\u7acb\u201d\u7684\u5b89\u5168\u673a\u5236\uff0c\u201c\u4e09\u6743\u5206\u7acb\u201d\u65f6\u7cfb\u7edf\u5185\u7f6e\u4e09\u79cd\u7cfb\u7edf\u7ba1\u7406\u5458\uff0c\u5305\u62ec\u6570\u636e\u5e93\u7ba1\u7406\u5458\u3001\u6570\u636e\u5e93\u5b89\u5168\u5458\u548c\u6570\u636e\u5e93\u5ba1\u8ba1\u5458\uff0c\u201c\u56db\u6743\u5206\u7acb\u201d\u65f6\u65b0\u589e\u4e86\u4e00\u7c7b\u7528\u6237\uff0c\u79f0\u4e3a\u6570\u636e\u5e93\u5bf9\u8c61\u64cd\u4f5c\u5458\u3002\u5b83\u4eec\u5404\u53f8\u5176\u804c\uff0c\u4e92\u76f8\u5236\u7ea6\uff0c\u6709\u6548\u5730\u907f\u514d\u4e86\u5c06\u6240\u6709\u6743\u9650\u96c6\u4e2d\u4e8e\u4e00\u4eba\u7684\u98ce\u9669\uff0c\u4fdd\u8bc1\u4e86\u7cfb\u7edf\u7684\u5b89\u5168\u6027\u3002"),(0,o.yg)("p",null,"\u9700\u8981\u8bf4\u660e\u7684\u662f\uff0c\u5728 DM \u6570\u636e\u5e93\u4e2d\u6709\u4e00\u4e2a\u7279\u6b8a\u7684\u9884\u5b9a\u4e49\u7528\u6237\u201cSYS\u201d\uff0c\u6b64\u7528\u6237\u4ec5\u7528\u4e8e\u4fdd\u5b58\u7cfb\u7edf\u5185\u90e8\u5bf9\u8c61\uff0c\u5e76\u975e\u6570\u636e\u5e93\u7ba1\u7406\u5458\uff0c\u4e5f\u65e0\u6cd5\u8fdb\u884c\u767b\u5f55\u3002"),(0,o.yg)("p",null,"\u4e09\u6743\u5206\u7acb\u7684\u7528\u6237\u8bbe\u8ba1\u7684\u539f\u5b50\uff0c\u53c2\u8003",(0,o.yg)("a",{parentName:"p",href:"https://eco.dameng.com/document/dm/zh-cn/pm/system-administrator.html"},"https://eco.dameng.com/document/dm/zh-cn/pm/system-administrator.html")),(0,o.yg)("p",null,"\u5b98\u7f51 ",(0,o.yg)("a",{parentName:"p",href:"https://www.dameng.com/"},"https://www.dameng.com/")),(0,o.yg)("p",null,"\u5bf9\u6807\u7684\u662fOracle"),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://www.dameng.com/DM8.html"},"DM8\u5b98\u65b9\u4ecb\u7ecd")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://eco.dameng.com/document/dm/zh-cn/pm/index.html"},"DM8\u5b98\u65b9\u6280\u672f\u6587\u6863"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/65c56656.8225f00e.js b/assets/js/65c56656.e6f0696a.js similarity index 99% rename from assets/js/65c56656.8225f00e.js rename to assets/js/65c56656.e6f0696a.js index 65876e2fb..e47193a95 100644 --- a/assets/js/65c56656.8225f00e.js +++ b/assets/js/65c56656.e6f0696a.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7269],{5680:(e,t,n)=>{n.d(t,{xA:()=>c,yg:()=>s});var r=n(6540);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var u=r.createContext({}),p=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=p(e.components);return r.createElement(u.Provider,{value:t},e.children)},y="mdxType",g={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,l=e.originalType,u=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),y=p(n),m=a,s=y["".concat(u,".").concat(m)]||y[m]||g[m]||l;return n?r.createElement(s,i(i({ref:t},c),{},{components:n})):r.createElement(s,i({ref:t},c))}));function s(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=n.length,i=new Array(l);i[0]=m;var o={};for(var u in t)hasOwnProperty.call(t,u)&&(o[u]=t[u]);o.originalType=e,o[y]="string"==typeof e?e:a,i[1]=o;for(var p=2;p{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>g,frontMatter:()=>l,metadata:()=>o,toc:()=>p});var r=n(8168),a=(n(6540),n(5680));const l={sidebar_position:4},i="\u79fb\u52a8\u7aef",o={unversionedId:"xuanxing/fe/\u79fb\u52a8\u7aef",id:"xuanxing/fe/\u79fb\u52a8\u7aef",title:"\u79fb\u52a8\u7aef",description:"\u5728\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u4e0a\uff0c\u79fb\u52a8\u7aef\u65b9\u9762\uff0c\u9996\u9009\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\uff0c\u5982\u679c\u6709\u5916\u8d38\u9700\u6c42\uff0c\u53ef\u4ee5\u589e\u52a0 APP \u548c Mobile WEB\u3002",source:"@site/docs/xuanxing/fe/4-\u79fb\u52a8\u7aef.md",sourceDirName:"xuanxing/fe",slug:"/xuanxing/fe/\u79fb\u52a8\u7aef",permalink:"/docs/xuanxing/fe/\u79fb\u52a8\u7aef",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"xuanxingSidebar",previous:{title:"\u7528\u6237\u7aef+\u7ba1\u7406\u7aef",permalink:"/docs/xuanxing/fe/\u7528\u6237\u7aef\u7ba1\u7406\u7aef"},next:{title:"\u7ec4\u6001\u7f16\u8f91\u5668/\u5927\u5c4f\u7f16\u8f91\u5668",permalink:"/docs/xuanxing/fe/\u7ec4\u6001+\u5927\u5c4f\u7f16\u8f91\u5668"}},u={},p=[{value:"\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\u6280\u672f\u9009\u578b",id:"\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\u6280\u672f\u9009\u578b",level:3},{value:"Mobile WEB \u6280\u672f\u9009\u578b",id:"mobile-web-\u6280\u672f\u9009\u578b",level:3},{value:"APP \u6280\u672f\u9009\u578b",id:"app-\u6280\u672f\u9009\u578b",level:3},{value:"\u6700\u7ec8\uff0c\u6280\u672f\u9009\u578b\u4e2a\u4eba\u63a8\u8350\uff1a",id:"\u6700\u7ec8\u6280\u672f\u9009\u578b\u4e2a\u4eba\u63a8\u8350",level:3}],c={toc:p},y="wrapper";function g(e){let{components:t,...n}=e;return(0,a.yg)(y,(0,r.A)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"\u79fb\u52a8\u7aef"},"\u79fb\u52a8\u7aef"),(0,a.yg)("p",null,"\u5728\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u4e0a\uff0c\u79fb\u52a8\u7aef\u65b9\u9762\uff0c\u9996\u9009",(0,a.yg)("strong",{parentName:"p"},"\u5fae\u4fe1\u5c0f\u7a0b\u5e8f"),"\uff0c\u5982\u679c\u6709\u5916\u8d38\u9700\u6c42\uff0c\u53ef\u4ee5\u589e\u52a0 APP \u548c Mobile WEB\u3002"),(0,a.yg)("h3",{id:"\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\u6280\u672f\u9009\u578b"},"\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\u6280\u672f\u9009\u578b"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"Vant"),(0,a.yg)("li",{parentName:"ul"},"uni-app")),(0,a.yg)("h3",{id:"mobile-web-\u6280\u672f\u9009\u578b"},"Mobile WEB \u6280\u672f\u9009\u578b"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"Vant")),(0,a.yg)("h3",{id:"app-\u6280\u672f\u9009\u578b"},"APP \u6280\u672f\u9009\u578b"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u539f\u751f\u5f00\u53d1\uff1a\u6548\u679c\u3001\u4f53\u9a8c\u662f\u6700\u597d\u7684\uff0c\u4f46\u662f\u5f00\u53d1\u6210\u672c\u9ad8\uff0c\u4e14\u65e0\u6cd5\u505a\u5230\u70ed\u66f4\u65b0\uff0c\u4e0d\u8de8\u5e73\u53f0\uff1b"),(0,a.yg)("li",{parentName:"ul"},"H5+\u539f\u751f\uff1a\u8fd9\u5c31\u662f\u5178\u578b\u7684\u6df7\u5408\u5f00\u53d1\uff0c\u7b80\u5355\u529f\u80fd\u4f7f\u7528 H5,\u590d\u6742\u529f\u80fd\u4f7f\u7528\u539f\u751f\uff0c\u53ef\u9009\u7684\u6846\u67b6\u6709\uff1a",(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},"Cordova\u3001Ionic\u3001uni-app"),(0,a.yg)("li",{parentName:"ul"},"H5 \u90e8\u5206\u53ef\u4ee5\u505a\u70ed\u66f4\u65b0"))),(0,a.yg)("li",{parentName:"ul"},"JS \u5f00\u53d1+\u539f\u751f\u6e32\u67d3:",(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},"React Native\u3001Weex\u3001\u5feb\u5e94\u7528\u3001uni-app"),(0,a.yg)("li",{parentName:"ul"},"Weex \u662f\u963f\u91cc\u51fa\u7684"),(0,a.yg)("li",{parentName:"ul"},"React Native \u548c Weex \u7684\u6e32\u67d3/\u6392\u7248\u5f15\u64ce\u662f\u96c6\u6210\u5230\u6846\u67b6\u4e2d\u7684\uff0c\u6bcf\u4e00\u4e2a APP \u90fd\u9700\u8981\u6253\u5305\u4e00\u4efd\uff0c\u5b89\u88c5\u5305\u4f53\u79ef\u8f83\u5927\uff1b\u800c\u5feb\u5e94\u7528\u6e32\u67d3/\u6392\u7248\u5f15\u64ce\u662f\u96c6\u6210\u5230 ROM \u4e2d\u7684\uff0c\u5e94\u7528\u4e2d\u65e0\u9700\u6253\u5305\uff0c\u5b89\u88c5\u5305\u4f53\u79ef\u5c0f\uff0c\u6b63\u56e0\u5982\u6b64\uff0c\u5feb\u5e94\u7528\u624d\u80fd\u5728\u4fdd\u8bc1\u6027\u80fd\u7684\u540c\u65f6\u505a\u5230\u5feb\u901f\u5206\u53d1\u3002"),(0,a.yg)("li",{parentName:"ul"},"uni-app \u652f\u6301 webview+\u90e8\u5206 weex \u53cc\u91cd\u6e32\u67d3"),(0,a.yg)("li",{parentName:"ul"},"\u53ef\u4ee5\u505a\u70ed\u66f4\u65b0\uff0c\u4f46\u662f\u6b64\u79cd\u65b9\u5f0f\u6253\u51fa\u7684\u5305\u5b9e\u5728\u662f\u6709\u70b9\u5927\uff1b"),(0,a.yg)("li",{parentName:"ul"},"uni-app \u652f\u6301 webview+\u90e8\u5206 weex \u53cc\u91cd\u6e32\u67d3"))),(0,a.yg)("li",{parentName:"ul"},"\u81ea\u7ed8 UI+\u539f\u751f\uff1a",(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},"QT for mobile\u3001Flutter"),(0,a.yg)("li",{parentName:"ul"},"Flutter \u6587\u6863\u8fd8\u662f\u4e0d\u9519\u7684")))),(0,a.yg)("h3",{id:"\u6700\u7ec8\u6280\u672f\u9009\u578b\u4e2a\u4eba\u63a8\u8350"},"\u6700\u7ec8\uff0c\u6280\u672f\u9009\u578b\u4e2a\u4eba\u63a8\u8350\uff1a"),(0,a.yg)("p",null,"\u4ee5\u4e0a\u6765\u770b\uff0c"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u8ffd\u6c42\u5feb\u901f\uff0c\u4f7f\u7528 uni-app"),(0,a.yg)("li",{parentName:"ul"},"\u8ffd\u6c42\u53ef\u7ef4\u62a4\uff0c\u5c0f\u7a0b\u5e8f\u4f7f\u7528 Vant/TDesign\uff0cAPP \u9009\u62e9 Flutter")))}g.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7269],{5680:(e,t,n)=>{n.d(t,{xA:()=>c,yg:()=>s});var r=n(6540);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var u=r.createContext({}),p=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=p(e.components);return r.createElement(u.Provider,{value:t},e.children)},y="mdxType",g={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,l=e.originalType,u=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),y=p(n),m=a,s=y["".concat(u,".").concat(m)]||y[m]||g[m]||l;return n?r.createElement(s,i(i({ref:t},c),{},{components:n})):r.createElement(s,i({ref:t},c))}));function s(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=n.length,i=new Array(l);i[0]=m;var o={};for(var u in t)hasOwnProperty.call(t,u)&&(o[u]=t[u]);o.originalType=e,o[y]="string"==typeof e?e:a,i[1]=o;for(var p=2;p{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>g,frontMatter:()=>l,metadata:()=>o,toc:()=>p});var r=n(8168),a=(n(6540),n(5680));const l={sidebar_position:4},i="\u79fb\u52a8\u7aef",o={unversionedId:"xuanxing/fe/\u79fb\u52a8\u7aef",id:"xuanxing/fe/\u79fb\u52a8\u7aef",title:"\u79fb\u52a8\u7aef",description:"\u5728\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u4e0a\uff0c\u79fb\u52a8\u7aef\u65b9\u9762\uff0c\u9996\u9009\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\uff0c\u5982\u679c\u6709\u5916\u8d38\u9700\u6c42\uff0c\u53ef\u4ee5\u589e\u52a0 APP \u548c Mobile WEB\u3002",source:"@site/docs/xuanxing/fe/4-\u79fb\u52a8\u7aef.md",sourceDirName:"xuanxing/fe",slug:"/xuanxing/fe/\u79fb\u52a8\u7aef",permalink:"/docs/xuanxing/fe/\u79fb\u52a8\u7aef",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"xuanxingSidebar",previous:{title:"\u7528\u6237\u7aef+\u7ba1\u7406\u7aef",permalink:"/docs/xuanxing/fe/\u7528\u6237\u7aef\u7ba1\u7406\u7aef"},next:{title:"\u7ec4\u6001\u7f16\u8f91\u5668/\u5927\u5c4f\u7f16\u8f91\u5668",permalink:"/docs/xuanxing/fe/\u7ec4\u6001+\u5927\u5c4f\u7f16\u8f91\u5668"}},u={},p=[{value:"\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\u6280\u672f\u9009\u578b",id:"\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\u6280\u672f\u9009\u578b",level:3},{value:"Mobile WEB \u6280\u672f\u9009\u578b",id:"mobile-web-\u6280\u672f\u9009\u578b",level:3},{value:"APP \u6280\u672f\u9009\u578b",id:"app-\u6280\u672f\u9009\u578b",level:3},{value:"\u6700\u7ec8\uff0c\u6280\u672f\u9009\u578b\u4e2a\u4eba\u63a8\u8350\uff1a",id:"\u6700\u7ec8\u6280\u672f\u9009\u578b\u4e2a\u4eba\u63a8\u8350",level:3}],c={toc:p},y="wrapper";function g(e){let{components:t,...n}=e;return(0,a.yg)(y,(0,r.A)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"\u79fb\u52a8\u7aef"},"\u79fb\u52a8\u7aef"),(0,a.yg)("p",null,"\u5728\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u4e0a\uff0c\u79fb\u52a8\u7aef\u65b9\u9762\uff0c\u9996\u9009",(0,a.yg)("strong",{parentName:"p"},"\u5fae\u4fe1\u5c0f\u7a0b\u5e8f"),"\uff0c\u5982\u679c\u6709\u5916\u8d38\u9700\u6c42\uff0c\u53ef\u4ee5\u589e\u52a0 APP \u548c Mobile WEB\u3002"),(0,a.yg)("h3",{id:"\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\u6280\u672f\u9009\u578b"},"\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\u6280\u672f\u9009\u578b"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"Vant"),(0,a.yg)("li",{parentName:"ul"},"uni-app")),(0,a.yg)("h3",{id:"mobile-web-\u6280\u672f\u9009\u578b"},"Mobile WEB \u6280\u672f\u9009\u578b"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"Vant")),(0,a.yg)("h3",{id:"app-\u6280\u672f\u9009\u578b"},"APP \u6280\u672f\u9009\u578b"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u539f\u751f\u5f00\u53d1\uff1a\u6548\u679c\u3001\u4f53\u9a8c\u662f\u6700\u597d\u7684\uff0c\u4f46\u662f\u5f00\u53d1\u6210\u672c\u9ad8\uff0c\u4e14\u65e0\u6cd5\u505a\u5230\u70ed\u66f4\u65b0\uff0c\u4e0d\u8de8\u5e73\u53f0\uff1b"),(0,a.yg)("li",{parentName:"ul"},"H5+\u539f\u751f\uff1a\u8fd9\u5c31\u662f\u5178\u578b\u7684\u6df7\u5408\u5f00\u53d1\uff0c\u7b80\u5355\u529f\u80fd\u4f7f\u7528 H5,\u590d\u6742\u529f\u80fd\u4f7f\u7528\u539f\u751f\uff0c\u53ef\u9009\u7684\u6846\u67b6\u6709\uff1a",(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},"Cordova\u3001Ionic\u3001uni-app"),(0,a.yg)("li",{parentName:"ul"},"H5 \u90e8\u5206\u53ef\u4ee5\u505a\u70ed\u66f4\u65b0"))),(0,a.yg)("li",{parentName:"ul"},"JS \u5f00\u53d1+\u539f\u751f\u6e32\u67d3:",(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},"React Native\u3001Weex\u3001\u5feb\u5e94\u7528\u3001uni-app"),(0,a.yg)("li",{parentName:"ul"},"Weex \u662f\u963f\u91cc\u51fa\u7684"),(0,a.yg)("li",{parentName:"ul"},"React Native \u548c Weex \u7684\u6e32\u67d3/\u6392\u7248\u5f15\u64ce\u662f\u96c6\u6210\u5230\u6846\u67b6\u4e2d\u7684\uff0c\u6bcf\u4e00\u4e2a APP \u90fd\u9700\u8981\u6253\u5305\u4e00\u4efd\uff0c\u5b89\u88c5\u5305\u4f53\u79ef\u8f83\u5927\uff1b\u800c\u5feb\u5e94\u7528\u6e32\u67d3/\u6392\u7248\u5f15\u64ce\u662f\u96c6\u6210\u5230 ROM \u4e2d\u7684\uff0c\u5e94\u7528\u4e2d\u65e0\u9700\u6253\u5305\uff0c\u5b89\u88c5\u5305\u4f53\u79ef\u5c0f\uff0c\u6b63\u56e0\u5982\u6b64\uff0c\u5feb\u5e94\u7528\u624d\u80fd\u5728\u4fdd\u8bc1\u6027\u80fd\u7684\u540c\u65f6\u505a\u5230\u5feb\u901f\u5206\u53d1\u3002"),(0,a.yg)("li",{parentName:"ul"},"uni-app \u652f\u6301 webview+\u90e8\u5206 weex \u53cc\u91cd\u6e32\u67d3"),(0,a.yg)("li",{parentName:"ul"},"\u53ef\u4ee5\u505a\u70ed\u66f4\u65b0\uff0c\u4f46\u662f\u6b64\u79cd\u65b9\u5f0f\u6253\u51fa\u7684\u5305\u5b9e\u5728\u662f\u6709\u70b9\u5927\uff1b"),(0,a.yg)("li",{parentName:"ul"},"uni-app \u652f\u6301 webview+\u90e8\u5206 weex \u53cc\u91cd\u6e32\u67d3"))),(0,a.yg)("li",{parentName:"ul"},"\u81ea\u7ed8 UI+\u539f\u751f\uff1a",(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},"QT for mobile\u3001Flutter"),(0,a.yg)("li",{parentName:"ul"},"Flutter \u6587\u6863\u8fd8\u662f\u4e0d\u9519\u7684")))),(0,a.yg)("h3",{id:"\u6700\u7ec8\u6280\u672f\u9009\u578b\u4e2a\u4eba\u63a8\u8350"},"\u6700\u7ec8\uff0c\u6280\u672f\u9009\u578b\u4e2a\u4eba\u63a8\u8350\uff1a"),(0,a.yg)("p",null,"\u4ee5\u4e0a\u6765\u770b\uff0c"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u8ffd\u6c42\u5feb\u901f\uff0c\u4f7f\u7528 uni-app"),(0,a.yg)("li",{parentName:"ul"},"\u8ffd\u6c42\u53ef\u7ef4\u62a4\uff0c\u5c0f\u7a0b\u5e8f\u4f7f\u7528 Vant/TDesign\uff0cAPP \u9009\u62e9 Flutter")))}g.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/67e91227.1af35cd9.js b/assets/js/67e91227.f3d66ef3.js similarity index 98% rename from assets/js/67e91227.1af35cd9.js rename to assets/js/67e91227.f3d66ef3.js index 6b45d9cde..b492287a2 100644 --- a/assets/js/67e91227.1af35cd9.js +++ b/assets/js/67e91227.f3d66ef3.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9376],{5680:(e,r,t)=>{t.d(r,{xA:()=>m,yg:()=>d});var n=t(6540);function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function l(e){for(var r=1;r=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var c=n.createContext({}),p=function(e){var r=n.useContext(c),t=r;return e&&(t="function"==typeof e?e(r):l(l({},r),e)),t},m=function(e){var r=p(e.components);return n.createElement(c.Provider,{value:r},e.children)},u="mdxType",s={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},y=n.forwardRef((function(e,r){var t=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,m=i(e,["components","mdxType","originalType","parentName"]),u=p(t),y=a,d=u["".concat(c,".").concat(y)]||u[y]||s[y]||o;return t?n.createElement(d,l(l({ref:r},m),{},{components:t})):n.createElement(d,l({ref:r},m))}));function d(e,r){var t=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var o=t.length,l=new Array(o);l[0]=y;var i={};for(var c in r)hasOwnProperty.call(r,c)&&(i[c]=r[c]);i.originalType=e,i[u]="string"==typeof e?e:a,l[1]=i;for(var p=2;p{t.r(r),t.d(r,{assets:()=>c,contentTitle:()=>l,default:()=>s,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var n=t(8168),a=(t(6540),t(5680));const o={},l="make",i={unversionedId:"study/program/C/make",id:"study/program/C/make",title:"make",description:"make \u662f\u4e00\u6761\u8ba1\u7b97\u673a\u6307\u4ee4\uff0c\u662f\u5728\u5b89\u88c5\u6709 GNU Make \u7684\u8ba1\u7b97\u673a\u4e0a\u7684\u53ef\u6267\u884c\u6307\u4ee4\u3002\u8be5\u6307\u4ee4\u662f\u8bfb\u5165\u4e00\u4e2a\u540d\u4e3a makefile \u7684\u6587\u4ef6\uff0c\u7136\u540e\u6267\u884c\u8fd9\u4e2a\u6587\u4ef6\u4e2d\u6307\u5b9a\u7684\u6307\u4ee4\u3002",source:"@site/docs/study/program/C/make.md",sourceDirName:"study/program/C",slug:"/study/program/C/make",permalink:"/docs/study/program/C/make",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"extern-c",permalink:"/docs/study/program/C/extern-c"},next:{title:"pragma",permalink:"/docs/study/program/C/pragma"}},c={},p=[{value:"make \u7684\u4e00\u4e9b\u5e38\u7528\u53c2\u6570",id:"make-\u7684\u4e00\u4e9b\u5e38\u7528\u53c2\u6570",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],m={toc:p},u="wrapper";function s(e){let{components:r,...t}=e;return(0,a.yg)(u,(0,n.A)({},m,t,{components:r,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"make"},"make"),(0,a.yg)("p",null,"make \u662f\u4e00\u6761\u8ba1\u7b97\u673a\u6307\u4ee4\uff0c\u662f\u5728\u5b89\u88c5\u6709 GNU Make \u7684\u8ba1\u7b97\u673a\u4e0a\u7684\u53ef\u6267\u884c\u6307\u4ee4\u3002\u8be5\u6307\u4ee4\u662f\u8bfb\u5165\u4e00\u4e2a\u540d\u4e3a makefile \u7684\u6587\u4ef6\uff0c\u7136\u540e\u6267\u884c\u8fd9\u4e2a\u6587\u4ef6\u4e2d\u6307\u5b9a\u7684\u6307\u4ee4\u3002"),(0,a.yg)("h3",{id:"make-\u7684\u4e00\u4e9b\u5e38\u7528\u53c2\u6570"},"make \u7684\u4e00\u4e9b\u5e38\u7528\u53c2\u6570"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"make \uff1a\u6839\u636e Makefile \u7f16\u8bd1\u6e90\u4ee3\u7801\uff0c\u8fde\u63a5\uff0c\u751f\u6210\u76ee\u6807\u6587\u4ef6\uff0c\u53ef\u6267\u884c\u6587\u4ef6\u3002"),(0,a.yg)("li",{parentName:"ul"},"make install \uff1a\u5b89\u88c5\u7f16\u8bd1\u597d\u7684\u7a0b\u5e8f\u548c\u5e93\uff0c\u5934\u6587\u4ef6\u5230\u7cfb\u7edf\u4e2d,\u4e00\u822c\u4e3a/usr/local/bin \u76ee\u5f55\u3002"),(0,a.yg)("li",{parentName:"ul"},"make clean : \u6e05\u9664\u4e0a\u6b21\u7684 make \u547d\u4ee4\u6240\u4ea7\u751f\u7684 object \u6587\u4ef6\uff08\u540e\u7f00\u4e3a\u201c.o\u201d\u7684\u6587\u4ef6\uff09\u53ca\u53ef\u6267\u884c\u6587\u4ef6\u3002\uff08make \u7684\u53cd\u5411\u64cd\u4f5c\uff09")),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://baike.baidu.com/item/make/17067703"},"\u767e\u5ea6\u767e\u79d1-make"))))}s.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9376],{5680:(e,r,t)=>{t.d(r,{xA:()=>m,yg:()=>d});var n=t(6540);function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function l(e){for(var r=1;r=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var c=n.createContext({}),p=function(e){var r=n.useContext(c),t=r;return e&&(t="function"==typeof e?e(r):l(l({},r),e)),t},m=function(e){var r=p(e.components);return n.createElement(c.Provider,{value:r},e.children)},u="mdxType",s={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},y=n.forwardRef((function(e,r){var t=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,m=i(e,["components","mdxType","originalType","parentName"]),u=p(t),y=a,d=u["".concat(c,".").concat(y)]||u[y]||s[y]||o;return t?n.createElement(d,l(l({ref:r},m),{},{components:t})):n.createElement(d,l({ref:r},m))}));function d(e,r){var t=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var o=t.length,l=new Array(o);l[0]=y;var i={};for(var c in r)hasOwnProperty.call(r,c)&&(i[c]=r[c]);i.originalType=e,i[u]="string"==typeof e?e:a,l[1]=i;for(var p=2;p{t.r(r),t.d(r,{assets:()=>c,contentTitle:()=>l,default:()=>s,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var n=t(8168),a=(t(6540),t(5680));const o={},l="make",i={unversionedId:"study/program/C/make",id:"study/program/C/make",title:"make",description:"make \u662f\u4e00\u6761\u8ba1\u7b97\u673a\u6307\u4ee4\uff0c\u662f\u5728\u5b89\u88c5\u6709 GNU Make \u7684\u8ba1\u7b97\u673a\u4e0a\u7684\u53ef\u6267\u884c\u6307\u4ee4\u3002\u8be5\u6307\u4ee4\u662f\u8bfb\u5165\u4e00\u4e2a\u540d\u4e3a makefile \u7684\u6587\u4ef6\uff0c\u7136\u540e\u6267\u884c\u8fd9\u4e2a\u6587\u4ef6\u4e2d\u6307\u5b9a\u7684\u6307\u4ee4\u3002",source:"@site/docs/study/program/C/make.md",sourceDirName:"study/program/C",slug:"/study/program/C/make",permalink:"/docs/study/program/C/make",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"extern-c",permalink:"/docs/study/program/C/extern-c"},next:{title:"pragma",permalink:"/docs/study/program/C/pragma"}},c={},p=[{value:"make \u7684\u4e00\u4e9b\u5e38\u7528\u53c2\u6570",id:"make-\u7684\u4e00\u4e9b\u5e38\u7528\u53c2\u6570",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],m={toc:p},u="wrapper";function s(e){let{components:r,...t}=e;return(0,a.yg)(u,(0,n.A)({},m,t,{components:r,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"make"},"make"),(0,a.yg)("p",null,"make \u662f\u4e00\u6761\u8ba1\u7b97\u673a\u6307\u4ee4\uff0c\u662f\u5728\u5b89\u88c5\u6709 GNU Make \u7684\u8ba1\u7b97\u673a\u4e0a\u7684\u53ef\u6267\u884c\u6307\u4ee4\u3002\u8be5\u6307\u4ee4\u662f\u8bfb\u5165\u4e00\u4e2a\u540d\u4e3a makefile \u7684\u6587\u4ef6\uff0c\u7136\u540e\u6267\u884c\u8fd9\u4e2a\u6587\u4ef6\u4e2d\u6307\u5b9a\u7684\u6307\u4ee4\u3002"),(0,a.yg)("h3",{id:"make-\u7684\u4e00\u4e9b\u5e38\u7528\u53c2\u6570"},"make \u7684\u4e00\u4e9b\u5e38\u7528\u53c2\u6570"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"make \uff1a\u6839\u636e Makefile \u7f16\u8bd1\u6e90\u4ee3\u7801\uff0c\u8fde\u63a5\uff0c\u751f\u6210\u76ee\u6807\u6587\u4ef6\uff0c\u53ef\u6267\u884c\u6587\u4ef6\u3002"),(0,a.yg)("li",{parentName:"ul"},"make install \uff1a\u5b89\u88c5\u7f16\u8bd1\u597d\u7684\u7a0b\u5e8f\u548c\u5e93\uff0c\u5934\u6587\u4ef6\u5230\u7cfb\u7edf\u4e2d,\u4e00\u822c\u4e3a/usr/local/bin \u76ee\u5f55\u3002"),(0,a.yg)("li",{parentName:"ul"},"make clean : \u6e05\u9664\u4e0a\u6b21\u7684 make \u547d\u4ee4\u6240\u4ea7\u751f\u7684 object \u6587\u4ef6\uff08\u540e\u7f00\u4e3a\u201c.o\u201d\u7684\u6587\u4ef6\uff09\u53ca\u53ef\u6267\u884c\u6587\u4ef6\u3002\uff08make \u7684\u53cd\u5411\u64cd\u4f5c\uff09")),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://baike.baidu.com/item/make/17067703"},"\u767e\u5ea6\u767e\u79d1-make"))))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/68202b49.a71e5b4f.js b/assets/js/68202b49.64d11bdb.js similarity index 98% rename from assets/js/68202b49.a71e5b4f.js rename to assets/js/68202b49.64d11bdb.js index 15d593206..c4525959f 100644 --- a/assets/js/68202b49.a71e5b4f.js +++ b/assets/js/68202b49.64d11bdb.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8302],{5680:(e,r,n)=>{n.d(r,{xA:()=>d,yg:()=>y});var t=n(6540);function o(e,r,n){return r in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n,e}function a(e,r){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r&&(t=t.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),n.push.apply(n,t)}return n}function i(e){for(var r=1;r=0||(o[n]=e[n]);return o}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var c=t.createContext({}),p=function(e){var r=t.useContext(c),n=r;return e&&(n="function"==typeof e?e(r):i(i({},r),e)),n},d=function(e){var r=p(e.components);return t.createElement(c.Provider,{value:r},e.children)},u="mdxType",s={inlineCode:"code",wrapper:function(e){var r=e.children;return t.createElement(t.Fragment,{},r)}},f=t.forwardRef((function(e,r){var n=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),u=p(n),f=o,y=u["".concat(c,".").concat(f)]||u[f]||s[f]||a;return n?t.createElement(y,i(i({ref:r},d),{},{components:n})):t.createElement(y,i({ref:r},d))}));function y(e,r){var n=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=f;var l={};for(var c in r)hasOwnProperty.call(r,c)&&(l[c]=r[c]);l.originalType=e,l[u]="string"==typeof e?e:o,i[1]=l;for(var p=2;p{n.r(r),n.d(r,{assets:()=>c,contentTitle:()=>i,default:()=>s,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var t=n(8168),o=(n(6540),n(5680));const a={},i=void 0,l={unversionedId:"study/docker/Dockerfile\u4f7f\u7528\u8be6\u89e3",id:"study/docker/Dockerfile\u4f7f\u7528\u8be6\u89e3",title:"Dockerfile\u4f7f\u7528\u8be6\u89e3",description:"\u5b98\u65b9\u53c2\u8003\u6587\u6863",source:"@site/docs/study/docker/Dockerfile\u4f7f\u7528\u8be6\u89e3.md",sourceDirName:"study/docker",slug:"/study/docker/Dockerfile\u4f7f\u7528\u8be6\u89e3",permalink:"/docs/study/docker/Dockerfile\u4f7f\u7528\u8be6\u89e3",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Docker Swarm",permalink:"/docs/study/docker/Docker-swarm"},next:{title:"Docker\u7684\u4f7f\u7528\u603b\u7ed3",permalink:"/docs/study/docker/Docker\u7684\u4f7f\u7528\u603b\u7ed3"}},c={},p=[{value:"\u5b98\u65b9\u53c2\u8003\u6587\u6863",id:"\u5b98\u65b9\u53c2\u8003\u6587\u6863",level:3},{value:"SpringBoot Dockerfile \u793a\u4f8b",id:"springboot-dockerfile-\u793a\u4f8b",level:3},{value:"\u793a\u4f8b 1",id:"\u793a\u4f8b-1",level:4},{value:"\u793a\u4f8b 2",id:"\u793a\u4f8b-2",level:4},{value:"\u53c2\u8003\u6587\u6863",id:"\u53c2\u8003\u6587\u6863",level:3}],d={toc:p},u="wrapper";function s(e){let{components:r,...n}=e;return(0,o.yg)(u,(0,t.A)({},d,n,{components:r,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u5b98\u65b9\u53c2\u8003\u6587\u6863"},"\u5b98\u65b9\u53c2\u8003\u6587\u6863"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://docs.docker.com/reference/dockerfile/"},"\u5b98\u65b9\u53c2\u8003\u6587\u6863-\u82f1\u6587\u7248\u672c"))),(0,o.yg)("h3",{id:"springboot-dockerfile-\u793a\u4f8b"},"SpringBoot Dockerfile \u793a\u4f8b"),(0,o.yg)("h4",{id:"\u793a\u4f8b-1"},"\u793a\u4f8b 1"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-shell"},"# JDK17\u73af\u5883\nFROM ubuntu:23.10 as ujdk17\nWORKDIR /root/jdk\nADD jdk-17_linux-x64_bin.tar.gz ./\nENV JAVA_HOME=/root/jdk/jdk-17.0.8\nENV PATH=$JAVA_HOME/bin:$PATH\nRUN java --version\n# \u76f4\u63a5\u8fd0\u884cSpringBoot Jar\u5305\u6a21\u5f0f\nFROM ujdk17 as xxx\nWORKDIR /root/application\nARG JAR_FILE=target/*.jar\nCOPY ${JAR_FILE} application.jar\nEXPOSE 8080\nENTRYPOINT java -jar application.jarca\n")),(0,o.yg)("h4",{id:"\u793a\u4f8b-2"},"\u793a\u4f8b 2"),(0,o.yg)("p",null,"\u6ca1\u6709\u6210\u529f\uff01\uff01(\u539f\u56e0\u662f SpringBoot \u7684\u7248\u672c\u7528\u7684\u662f 3.0.3)"),(0,o.yg)("p",null,"\u6210\u529f\uff01\uff01(\u539f\u56e0\u662f SpringBoot \u7684\u7248\u672c\u7528\u7684\u662f 3.2.3)"),(0,o.yg)("p",null,"\u4e00\u5b9a\u8981\u770b\u6e05 SpringBoot \u7684\u7248\u672c\u53f7\uff0c\u5dee\u5f02\u8fd8\u662f\u5f88\u5927\u7684"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-shell"},'# JDK17\u73af\u5883\nFROM ubuntu:23.10 as ujdk17\nWORKDIR /root/jdk\nADD jdk-17_linux-x64_bin.tar.gz ./\nENV JAVA_HOME=/root/jdk/jdk-17.0.8\nENV PATH=$JAVA_HOME/bin:$PATH\nRUN java --version\n# \u6784\u5efa\u73af\u5883 \u4e3b\u8981\u662f\u60f3\u5229\u7528Docker\u7684\u5206\u5c42\u7f13\u5b58\u6982\u5ff5\u8fbe\u5230\u5feb\u901f\u6784\u5efa\u7684\u76ee\u7684 jarmode\u6a21\u5f0f\nFROM ujdk17 as builder\nWORKDIR /root/application\nARG JAR_FILE=target/*.jar\nCOPY ${JAR_FILE} application.jar\nRUN java -Djarmode=layertools -jar application.jar extract\n# jarmode\u6a21\u5f0f\u542f\u52a8\nFROM ujdk17 as xxx\nWORKDIR /root/application\nCOPY --from=builder /root/application/dependencies/ ./\nCOPY --from=builder /root/application/spring-boot-loader/ ./\nCOPY --from=builder /root/application/snapshot-dependencies/ ./\nCOPY --from=builder /root/application/application/ ./\nEXPOSE 8080\nENTRYPOINT ["java", "org.springframework.boot.loader.launch.JarLauncher"]\n')),(0,o.yg)("h3",{id:"\u53c2\u8003\u6587\u6863"},"\u53c2\u8003\u6587\u6863"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://www.jianshu.com/p/4508784f6ddc"},"\u7b80\u4e66-Dockerfile \u8be6\u89e3\uff08\u8d85\u8be6\u7ec6\uff09"))))}s.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8302],{5680:(e,r,n)=>{n.d(r,{xA:()=>d,yg:()=>y});var t=n(6540);function o(e,r,n){return r in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n,e}function a(e,r){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r&&(t=t.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),n.push.apply(n,t)}return n}function i(e){for(var r=1;r=0||(o[n]=e[n]);return o}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var c=t.createContext({}),p=function(e){var r=t.useContext(c),n=r;return e&&(n="function"==typeof e?e(r):i(i({},r),e)),n},d=function(e){var r=p(e.components);return t.createElement(c.Provider,{value:r},e.children)},u="mdxType",s={inlineCode:"code",wrapper:function(e){var r=e.children;return t.createElement(t.Fragment,{},r)}},f=t.forwardRef((function(e,r){var n=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),u=p(n),f=o,y=u["".concat(c,".").concat(f)]||u[f]||s[f]||a;return n?t.createElement(y,i(i({ref:r},d),{},{components:n})):t.createElement(y,i({ref:r},d))}));function y(e,r){var n=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=f;var l={};for(var c in r)hasOwnProperty.call(r,c)&&(l[c]=r[c]);l.originalType=e,l[u]="string"==typeof e?e:o,i[1]=l;for(var p=2;p{n.r(r),n.d(r,{assets:()=>c,contentTitle:()=>i,default:()=>s,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var t=n(8168),o=(n(6540),n(5680));const a={},i=void 0,l={unversionedId:"study/docker/Dockerfile\u4f7f\u7528\u8be6\u89e3",id:"study/docker/Dockerfile\u4f7f\u7528\u8be6\u89e3",title:"Dockerfile\u4f7f\u7528\u8be6\u89e3",description:"\u5b98\u65b9\u53c2\u8003\u6587\u6863",source:"@site/docs/study/docker/Dockerfile\u4f7f\u7528\u8be6\u89e3.md",sourceDirName:"study/docker",slug:"/study/docker/Dockerfile\u4f7f\u7528\u8be6\u89e3",permalink:"/docs/study/docker/Dockerfile\u4f7f\u7528\u8be6\u89e3",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Docker Swarm",permalink:"/docs/study/docker/Docker-swarm"},next:{title:"Docker\u7684\u4f7f\u7528\u603b\u7ed3",permalink:"/docs/study/docker/Docker\u7684\u4f7f\u7528\u603b\u7ed3"}},c={},p=[{value:"\u5b98\u65b9\u53c2\u8003\u6587\u6863",id:"\u5b98\u65b9\u53c2\u8003\u6587\u6863",level:3},{value:"SpringBoot Dockerfile \u793a\u4f8b",id:"springboot-dockerfile-\u793a\u4f8b",level:3},{value:"\u793a\u4f8b 1",id:"\u793a\u4f8b-1",level:4},{value:"\u793a\u4f8b 2",id:"\u793a\u4f8b-2",level:4},{value:"\u53c2\u8003\u6587\u6863",id:"\u53c2\u8003\u6587\u6863",level:3}],d={toc:p},u="wrapper";function s(e){let{components:r,...n}=e;return(0,o.yg)(u,(0,t.A)({},d,n,{components:r,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u5b98\u65b9\u53c2\u8003\u6587\u6863"},"\u5b98\u65b9\u53c2\u8003\u6587\u6863"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://docs.docker.com/reference/dockerfile/"},"\u5b98\u65b9\u53c2\u8003\u6587\u6863-\u82f1\u6587\u7248\u672c"))),(0,o.yg)("h3",{id:"springboot-dockerfile-\u793a\u4f8b"},"SpringBoot Dockerfile \u793a\u4f8b"),(0,o.yg)("h4",{id:"\u793a\u4f8b-1"},"\u793a\u4f8b 1"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-shell"},"# JDK17\u73af\u5883\nFROM ubuntu:23.10 as ujdk17\nWORKDIR /root/jdk\nADD jdk-17_linux-x64_bin.tar.gz ./\nENV JAVA_HOME=/root/jdk/jdk-17.0.8\nENV PATH=$JAVA_HOME/bin:$PATH\nRUN java --version\n# \u76f4\u63a5\u8fd0\u884cSpringBoot Jar\u5305\u6a21\u5f0f\nFROM ujdk17 as xxx\nWORKDIR /root/application\nARG JAR_FILE=target/*.jar\nCOPY ${JAR_FILE} application.jar\nEXPOSE 8080\nENTRYPOINT java -jar application.jarca\n")),(0,o.yg)("h4",{id:"\u793a\u4f8b-2"},"\u793a\u4f8b 2"),(0,o.yg)("p",null,"\u6ca1\u6709\u6210\u529f\uff01\uff01(\u539f\u56e0\u662f SpringBoot \u7684\u7248\u672c\u7528\u7684\u662f 3.0.3)"),(0,o.yg)("p",null,"\u6210\u529f\uff01\uff01(\u539f\u56e0\u662f SpringBoot \u7684\u7248\u672c\u7528\u7684\u662f 3.2.3)"),(0,o.yg)("p",null,"\u4e00\u5b9a\u8981\u770b\u6e05 SpringBoot \u7684\u7248\u672c\u53f7\uff0c\u5dee\u5f02\u8fd8\u662f\u5f88\u5927\u7684"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-shell"},'# JDK17\u73af\u5883\nFROM ubuntu:23.10 as ujdk17\nWORKDIR /root/jdk\nADD jdk-17_linux-x64_bin.tar.gz ./\nENV JAVA_HOME=/root/jdk/jdk-17.0.8\nENV PATH=$JAVA_HOME/bin:$PATH\nRUN java --version\n# \u6784\u5efa\u73af\u5883 \u4e3b\u8981\u662f\u60f3\u5229\u7528Docker\u7684\u5206\u5c42\u7f13\u5b58\u6982\u5ff5\u8fbe\u5230\u5feb\u901f\u6784\u5efa\u7684\u76ee\u7684 jarmode\u6a21\u5f0f\nFROM ujdk17 as builder\nWORKDIR /root/application\nARG JAR_FILE=target/*.jar\nCOPY ${JAR_FILE} application.jar\nRUN java -Djarmode=layertools -jar application.jar extract\n# jarmode\u6a21\u5f0f\u542f\u52a8\nFROM ujdk17 as xxx\nWORKDIR /root/application\nCOPY --from=builder /root/application/dependencies/ ./\nCOPY --from=builder /root/application/spring-boot-loader/ ./\nCOPY --from=builder /root/application/snapshot-dependencies/ ./\nCOPY --from=builder /root/application/application/ ./\nEXPOSE 8080\nENTRYPOINT ["java", "org.springframework.boot.loader.launch.JarLauncher"]\n')),(0,o.yg)("h3",{id:"\u53c2\u8003\u6587\u6863"},"\u53c2\u8003\u6587\u6863"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://www.jianshu.com/p/4508784f6ddc"},"\u7b80\u4e66-Dockerfile \u8be6\u89e3\uff08\u8d85\u8be6\u7ec6\uff09"))))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/68699a4c.ba00d9ee.js b/assets/js/68699a4c.7610f53d.js similarity index 98% rename from assets/js/68699a4c.ba00d9ee.js rename to assets/js/68699a4c.7610f53d.js index 404c45ad1..e11e1a8a5 100644 --- a/assets/js/68699a4c.ba00d9ee.js +++ b/assets/js/68699a4c.7610f53d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[695],{5680:(e,r,t)=>{t.d(r,{xA:()=>l,yg:()=>y});var n=t(6540);function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function p(e){for(var r=1;r=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var c=n.createContext({}),i=function(e){var r=n.useContext(c),t=r;return e&&(t="function"==typeof e?e(r):p(p({},r),e)),t},l=function(e){var r=i(e.components);return n.createElement(c.Provider,{value:r},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},d=n.forwardRef((function(e,r){var t=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),m=i(t),d=a,y=m["".concat(c,".").concat(d)]||m[d]||u[d]||o;return t?n.createElement(y,p(p({ref:r},l),{},{components:t})):n.createElement(y,p({ref:r},l))}));function y(e,r){var t=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var o=t.length,p=new Array(o);p[0]=d;var s={};for(var c in r)hasOwnProperty.call(r,c)&&(s[c]=r[c]);s.originalType=e,s[m]="string"==typeof e?e:a,p[1]=s;for(var i=2;i{t.r(r),t.d(r,{assets:()=>c,contentTitle:()=>p,default:()=>u,frontMatter:()=>o,metadata:()=>s,toc:()=>i});var n=t(8168),a=(t(6540),t(5680));const o={},p=void 0,s={unversionedId:"study/program/JS/npm",id:"study/program/JS/npm",title:"npm",description:"npmjs",source:"@site/docs/study/program/JS/npm.md",sourceDirName:"study/program/JS",slug:"/study/program/JS/npm",permalink:"/docs/study/program/JS/npm",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u5e38\u7528\u7684\u6846\u67b6",permalink:"/docs/study/program/Golang/\u5e38\u7528\u7684\u6846\u67b6"},next:{title:"npx",permalink:"/docs/study/program/JS/npx"}},c={},i=[{value:"\u5b89\u88c5cnpm (\u56fd\u5185\u6dd8\u5b9d\u955c\u50cf\u6e90),\u4e3b\u8981\u7528\u4e8e\u67d0\u4e9b\u5305\u6216\u547d\u4ee4\u7a0b\u5e8f\u4e0b\u8f7d\u4e0d\u4e0b\u6765\u7684\u60c5\u51b5",id:"\u5b89\u88c5cnpm-\u56fd\u5185\u6dd8\u5b9d\u955c\u50cf\u6e90\u4e3b\u8981\u7528\u4e8e\u67d0\u4e9b\u5305\u6216\u547d\u4ee4\u7a0b\u5e8f\u4e0b\u8f7d\u4e0d\u4e0b\u6765\u7684\u60c5\u51b5",level:4},{value:"node-sass",id:"node-sass",level:3}],l={toc:i},m="wrapper";function u(e){let{components:r,...o}=e;return(0,a.yg)(m,(0,n.A)({},l,o,{components:r,mdxType:"MDXLayout"}),(0,a.yg)("p",null,(0,a.yg)("a",{parentName:"p",href:"https://www.npmjs.com/"},"npmjs")),(0,a.yg)("h4",{id:"\u5b89\u88c5cnpm-\u56fd\u5185\u6dd8\u5b9d\u955c\u50cf\u6e90\u4e3b\u8981\u7528\u4e8e\u67d0\u4e9b\u5305\u6216\u547d\u4ee4\u7a0b\u5e8f\u4e0b\u8f7d\u4e0d\u4e0b\u6765\u7684\u60c5\u51b5"},"\u5b89\u88c5cnpm (\u56fd\u5185\u6dd8\u5b9d\u955c\u50cf\u6e90),\u4e3b\u8981\u7528\u4e8e\u67d0\u4e9b\u5305\u6216\u547d\u4ee4\u7a0b\u5e8f\u4e0b\u8f7d\u4e0d\u4e0b\u6765\u7684\u60c5\u51b5"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"# \u76f4\u63a5\u6309\u7167cnpm\nnpm install cnpm -g --registry=https://registry.npm.taobao.org\n\n# \u53e6\u4e00\u79cd\u65b9\u5f0f\nnpm install -g mirror-config-china --registry=https://registry.npmmirror.com\nnpm install node-sass\n")),(0,a.yg)("h3",{id:"node-sass"},"node-sass"),(0,a.yg)("p",null,"\u6ce8\u610f\u4e0d\u540c\u7684node\u7248\u672c\uff0c\u8981\u6c42\u7684node-sass\u7248\u672c\u4e0d\u4e00\u6837\uff0c\u5b58\u5728\u4e00\u5b9a\u7684\u517c\u5bb9\u95ee\u9898\uff1a\n",(0,a.yg)("img",{alt:"image.png",src:t(6747).A,width:"948",height:"836"})))}u.isMDXComponent=!0},6747:(e,r,t)=>{t.d(r,{A:()=>n});const n=t.p+"assets/images/image-e92e78d715ae90026be6844331682aa0.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[695],{5680:(e,r,t)=>{t.d(r,{xA:()=>l,yg:()=>y});var n=t(6540);function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function p(e){for(var r=1;r=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var c=n.createContext({}),i=function(e){var r=n.useContext(c),t=r;return e&&(t="function"==typeof e?e(r):p(p({},r),e)),t},l=function(e){var r=i(e.components);return n.createElement(c.Provider,{value:r},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},d=n.forwardRef((function(e,r){var t=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),m=i(t),d=a,y=m["".concat(c,".").concat(d)]||m[d]||u[d]||o;return t?n.createElement(y,p(p({ref:r},l),{},{components:t})):n.createElement(y,p({ref:r},l))}));function y(e,r){var t=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var o=t.length,p=new Array(o);p[0]=d;var s={};for(var c in r)hasOwnProperty.call(r,c)&&(s[c]=r[c]);s.originalType=e,s[m]="string"==typeof e?e:a,p[1]=s;for(var i=2;i{t.r(r),t.d(r,{assets:()=>c,contentTitle:()=>p,default:()=>u,frontMatter:()=>o,metadata:()=>s,toc:()=>i});var n=t(8168),a=(t(6540),t(5680));const o={},p=void 0,s={unversionedId:"study/program/JS/npm",id:"study/program/JS/npm",title:"npm",description:"npmjs",source:"@site/docs/study/program/JS/npm.md",sourceDirName:"study/program/JS",slug:"/study/program/JS/npm",permalink:"/docs/study/program/JS/npm",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u5e38\u7528\u7684\u6846\u67b6",permalink:"/docs/study/program/Golang/\u5e38\u7528\u7684\u6846\u67b6"},next:{title:"npx",permalink:"/docs/study/program/JS/npx"}},c={},i=[{value:"\u5b89\u88c5cnpm (\u56fd\u5185\u6dd8\u5b9d\u955c\u50cf\u6e90),\u4e3b\u8981\u7528\u4e8e\u67d0\u4e9b\u5305\u6216\u547d\u4ee4\u7a0b\u5e8f\u4e0b\u8f7d\u4e0d\u4e0b\u6765\u7684\u60c5\u51b5",id:"\u5b89\u88c5cnpm-\u56fd\u5185\u6dd8\u5b9d\u955c\u50cf\u6e90\u4e3b\u8981\u7528\u4e8e\u67d0\u4e9b\u5305\u6216\u547d\u4ee4\u7a0b\u5e8f\u4e0b\u8f7d\u4e0d\u4e0b\u6765\u7684\u60c5\u51b5",level:4},{value:"node-sass",id:"node-sass",level:3}],l={toc:i},m="wrapper";function u(e){let{components:r,...o}=e;return(0,a.yg)(m,(0,n.A)({},l,o,{components:r,mdxType:"MDXLayout"}),(0,a.yg)("p",null,(0,a.yg)("a",{parentName:"p",href:"https://www.npmjs.com/"},"npmjs")),(0,a.yg)("h4",{id:"\u5b89\u88c5cnpm-\u56fd\u5185\u6dd8\u5b9d\u955c\u50cf\u6e90\u4e3b\u8981\u7528\u4e8e\u67d0\u4e9b\u5305\u6216\u547d\u4ee4\u7a0b\u5e8f\u4e0b\u8f7d\u4e0d\u4e0b\u6765\u7684\u60c5\u51b5"},"\u5b89\u88c5cnpm (\u56fd\u5185\u6dd8\u5b9d\u955c\u50cf\u6e90),\u4e3b\u8981\u7528\u4e8e\u67d0\u4e9b\u5305\u6216\u547d\u4ee4\u7a0b\u5e8f\u4e0b\u8f7d\u4e0d\u4e0b\u6765\u7684\u60c5\u51b5"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"# \u76f4\u63a5\u6309\u7167cnpm\nnpm install cnpm -g --registry=https://registry.npm.taobao.org\n\n# \u53e6\u4e00\u79cd\u65b9\u5f0f\nnpm install -g mirror-config-china --registry=https://registry.npmmirror.com\nnpm install node-sass\n")),(0,a.yg)("h3",{id:"node-sass"},"node-sass"),(0,a.yg)("p",null,"\u6ce8\u610f\u4e0d\u540c\u7684node\u7248\u672c\uff0c\u8981\u6c42\u7684node-sass\u7248\u672c\u4e0d\u4e00\u6837\uff0c\u5b58\u5728\u4e00\u5b9a\u7684\u517c\u5bb9\u95ee\u9898\uff1a\n",(0,a.yg)("img",{alt:"image.png",src:t(6747).A,width:"948",height:"836"})))}u.isMDXComponent=!0},6747:(e,r,t)=>{t.d(r,{A:()=>n});const n=t.p+"assets/images/image-e92e78d715ae90026be6844331682aa0.png"}}]); \ No newline at end of file diff --git a/assets/js/6b91e1af.6ff87f1d.js b/assets/js/6b91e1af.502ff697.js similarity index 98% rename from assets/js/6b91e1af.6ff87f1d.js rename to assets/js/6b91e1af.502ff697.js index e11d5864f..d732973f1 100644 --- a/assets/js/6b91e1af.6ff87f1d.js +++ b/assets/js/6b91e1af.502ff697.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6902],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function s(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),i=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):s(s({},t),e)),r},u=function(e){var t=i(e.components);return n.createElement(c.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),d=i(r),y=a,f=d["".concat(c,".").concat(y)]||d[y]||p[y]||o;return r?n.createElement(f,s(s({ref:t},u),{},{components:r})):n.createElement(f,s({ref:t},u))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,s=new Array(o);s[0]=y;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[d]="string"==typeof e?e:a,s[1]=l;for(var i=2;i{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>p,frontMatter:()=>o,metadata:()=>l,toc:()=>i});var n=r(8168),a=(r(6540),r(5680));const o={},s=void 0,l={unversionedId:"study/db/NoSQL/Cassandra",id:"study/db/NoSQL/Cassandra",title:"Cassandra",description:"\u7b80\u4ecb",source:"@site/docs/study/db/NoSQL/Cassandra.md",sourceDirName:"study/db/NoSQL",slug:"/study/db/NoSQL/Cassandra",permalink:"/docs/study/db/NoSQL/Cassandra",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"TiDB",permalink:"/docs/study/db/NewSQL/TiDB"},next:{title:"Etcd",permalink:"/docs/study/db/NoSQL/Etcd"}},c={},i=[{value:"\u7b80\u4ecb",id:"\u7b80\u4ecb",level:3}],u={toc:i},d="wrapper";function p(e){let{components:t,...r}=e;return(0,a.yg)(d,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u7b80\u4ecb"},"\u7b80\u4ecb"),(0,a.yg)("p",null,"Apache Cassandra \u662f\u4e00\u5957\u5f00\u6e90\u5206\u5e03\u5f0f Key-Value \u5b58\u50a8\u7cfb\u7edf\u3002\u5b83\u6700\u521d\u7531 Facebook \u5f00\u53d1\uff0c\u7528\u4e8e\u50a8\u5b58\u7279\u522b\u5927\u7684\u6570\u636e\u3002"),(0,a.yg)("p",null,"\u4e3b\u8981\u7279\u6027\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u5206\u5e03\u5f0f"),(0,a.yg)("li",{parentName:"ul"},"\u57fa\u4e8ecolumn\u7684\u7ed3\u6784\u5316"),(0,a.yg)("li",{parentName:"ul"},"\u9ad8\u4f38\u7f29\u6027")),(0,a.yg)("p",null,"Cassandra \u7684\u4e3b\u8981\u7279\u70b9\u5c31\u662f\u5b83\u4e0d\u662f\u4e00\u4e2a\u6570\u636e\u5e93\uff0c\u800c\u662f\u7531\u4e00\u5806\u6570\u636e\u5e93\u8282\u70b9\u5171\u540c\u6784\u6210\u7684\u4e00\u4e2a\u5206\u5e03\u5f0f\u7f51\u7edc\u670d\u52a1\uff0c\u5bf9 Cassandra \u7684\u4e00\u4e2a\u5199\u64cd\u4f5c\uff0c\u4f1a\u88ab\u590d\u5236\u5230\u5176\u4ed6\u8282\u70b9\u4e0a\u53bb\uff0c\u5bf9 Cassandra \u7684\u8bfb\u64cd\u4f5c\uff0c\u4e5f\u4f1a\u88ab\u8def\u7531\u5230\u67d0\u4e2a\u8282\u70b9\u4e0a\u9762\u53bb\u8bfb\u53d6\u3002\u5bf9\u4e8e\u4e00\u4e2a Cassandra \u7fa4\u96c6\u6765\u8bf4\uff0c\u6269\u5c55\u6027\u80fd \u662f\u6bd4\u8f83\u7b80\u5355\u7684\u4e8b\u60c5\uff0c\u53ea\u7ba1\u5728\u7fa4\u96c6\u91cc\u9762\u6dfb\u52a0\u8282\u70b9\u5c31\u53ef\u4ee5\u4e86\u3002"),(0,a.yg)("p",null,"Cassandra \u662f\u4e00\u4e2a\u6df7\u5408\u578b\u7684\u975e\u5173\u7cfb\u7684\u6570\u636e\u5e93\uff0c\u7c7b\u4f3c\u4e8e Google \u7684 BigTable\u3002\u5176\u4e3b\u8981\u529f\u80fd\u6bd4 Dynomite\uff08\u5206\u5e03\u5f0f\u7684 Key-Value \u5b58 \u50a8\u7cfb\u7edf\uff09\u66f4\u4e30\u5bcc\uff0c\u4f46\u652f\u6301\u5ea6\u5374\u4e0d\u5982\u6587\u6863\u5b58\u50a8 MongoDB\uff08\u4ecb\u4e8e\u5173\u7cfb\u6570\u636e\u5e93\u548c\u975e\u5173\u7cfb\u6570\u636e\u5e93\u4e4b\u95f4\u7684\u5f00\u6e90\u4ea7\u54c1\uff0c\u662f\u975e\u5173\u7cfb\u6570\u636e\u5e93\u5f53\u4e2d\u529f\u80fd\u6700\u4e30\u5bcc\uff0c\u6700\u50cf\u5173\u7cfb\u6570\u636e\u5e93 \u7684\u3002\u652f\u6301\u7684\u6570\u636e\u7ed3\u6784\u975e\u5e38\u677e\u6563\uff0c\u662f\u7c7b\u4f3c json \u7684 bjson \u683c\u5f0f\uff0c\u56e0\u6b64\u53ef\u4ee5\u5b58\u50a8\u6bd4\u8f83\u590d\u6742\u7684\u6570\u636e\u7c7b\u578b\u3002\uff09Cassandra \u6700\u521d\u7531 Facebook \u5f00\u53d1\uff0c\u540e\u8f6c\u53d8\u6210\u4e86\u5f00\u6e90\u9879\u76ee\u3002\u5b83\u662f\u4e00\u4e2a\u7f51\u7edc\u793e\u4ea4\u4e91\u8ba1\u7b97\u65b9\u9762\u7406\u60f3\u7684\u6570\u636e\u5e93\u3002\u4ee5 Amazon \u4e13\u6709\u7684\u5b8c\u5168\u5206\u5e03\u5f0f\u7684 Dynamo \u4e3a\u57fa\u7840\uff0c\u7ed3\u5408\u4e86 Google BigTable \u57fa\u4e8e\u5217\u65cf\uff08Column Family\uff09\u7684\u6570\u636e\u6a21\u578b\u3002P2P \u53bb\u4e2d\u5fc3\u5316\u7684\u5b58\u50a8\u3002\u5f88\u591a\u65b9\u9762\u90fd\u53ef\u4ee5\u79f0\u4e4b\u4e3a Dynamo 2.0\u3002"),(0,a.yg)("p",null,(0,a.yg)("a",{parentName:"p",href:"http://www.cassandra.com.cn/"},"\u4e2d\u6587\u5b98\u7f51\u5730\u5740")))}p.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6902],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function s(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),i=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):s(s({},t),e)),r},u=function(e){var t=i(e.components);return n.createElement(c.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),d=i(r),y=a,f=d["".concat(c,".").concat(y)]||d[y]||p[y]||o;return r?n.createElement(f,s(s({ref:t},u),{},{components:r})):n.createElement(f,s({ref:t},u))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,s=new Array(o);s[0]=y;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[d]="string"==typeof e?e:a,s[1]=l;for(var i=2;i{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>p,frontMatter:()=>o,metadata:()=>l,toc:()=>i});var n=r(8168),a=(r(6540),r(5680));const o={},s=void 0,l={unversionedId:"study/db/NoSQL/Cassandra",id:"study/db/NoSQL/Cassandra",title:"Cassandra",description:"\u7b80\u4ecb",source:"@site/docs/study/db/NoSQL/Cassandra.md",sourceDirName:"study/db/NoSQL",slug:"/study/db/NoSQL/Cassandra",permalink:"/docs/study/db/NoSQL/Cassandra",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"TiDB",permalink:"/docs/study/db/NewSQL/TiDB"},next:{title:"Etcd",permalink:"/docs/study/db/NoSQL/Etcd"}},c={},i=[{value:"\u7b80\u4ecb",id:"\u7b80\u4ecb",level:3}],u={toc:i},d="wrapper";function p(e){let{components:t,...r}=e;return(0,a.yg)(d,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u7b80\u4ecb"},"\u7b80\u4ecb"),(0,a.yg)("p",null,"Apache Cassandra \u662f\u4e00\u5957\u5f00\u6e90\u5206\u5e03\u5f0f Key-Value \u5b58\u50a8\u7cfb\u7edf\u3002\u5b83\u6700\u521d\u7531 Facebook \u5f00\u53d1\uff0c\u7528\u4e8e\u50a8\u5b58\u7279\u522b\u5927\u7684\u6570\u636e\u3002"),(0,a.yg)("p",null,"\u4e3b\u8981\u7279\u6027\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u5206\u5e03\u5f0f"),(0,a.yg)("li",{parentName:"ul"},"\u57fa\u4e8ecolumn\u7684\u7ed3\u6784\u5316"),(0,a.yg)("li",{parentName:"ul"},"\u9ad8\u4f38\u7f29\u6027")),(0,a.yg)("p",null,"Cassandra \u7684\u4e3b\u8981\u7279\u70b9\u5c31\u662f\u5b83\u4e0d\u662f\u4e00\u4e2a\u6570\u636e\u5e93\uff0c\u800c\u662f\u7531\u4e00\u5806\u6570\u636e\u5e93\u8282\u70b9\u5171\u540c\u6784\u6210\u7684\u4e00\u4e2a\u5206\u5e03\u5f0f\u7f51\u7edc\u670d\u52a1\uff0c\u5bf9 Cassandra \u7684\u4e00\u4e2a\u5199\u64cd\u4f5c\uff0c\u4f1a\u88ab\u590d\u5236\u5230\u5176\u4ed6\u8282\u70b9\u4e0a\u53bb\uff0c\u5bf9 Cassandra \u7684\u8bfb\u64cd\u4f5c\uff0c\u4e5f\u4f1a\u88ab\u8def\u7531\u5230\u67d0\u4e2a\u8282\u70b9\u4e0a\u9762\u53bb\u8bfb\u53d6\u3002\u5bf9\u4e8e\u4e00\u4e2a Cassandra \u7fa4\u96c6\u6765\u8bf4\uff0c\u6269\u5c55\u6027\u80fd \u662f\u6bd4\u8f83\u7b80\u5355\u7684\u4e8b\u60c5\uff0c\u53ea\u7ba1\u5728\u7fa4\u96c6\u91cc\u9762\u6dfb\u52a0\u8282\u70b9\u5c31\u53ef\u4ee5\u4e86\u3002"),(0,a.yg)("p",null,"Cassandra \u662f\u4e00\u4e2a\u6df7\u5408\u578b\u7684\u975e\u5173\u7cfb\u7684\u6570\u636e\u5e93\uff0c\u7c7b\u4f3c\u4e8e Google \u7684 BigTable\u3002\u5176\u4e3b\u8981\u529f\u80fd\u6bd4 Dynomite\uff08\u5206\u5e03\u5f0f\u7684 Key-Value \u5b58 \u50a8\u7cfb\u7edf\uff09\u66f4\u4e30\u5bcc\uff0c\u4f46\u652f\u6301\u5ea6\u5374\u4e0d\u5982\u6587\u6863\u5b58\u50a8 MongoDB\uff08\u4ecb\u4e8e\u5173\u7cfb\u6570\u636e\u5e93\u548c\u975e\u5173\u7cfb\u6570\u636e\u5e93\u4e4b\u95f4\u7684\u5f00\u6e90\u4ea7\u54c1\uff0c\u662f\u975e\u5173\u7cfb\u6570\u636e\u5e93\u5f53\u4e2d\u529f\u80fd\u6700\u4e30\u5bcc\uff0c\u6700\u50cf\u5173\u7cfb\u6570\u636e\u5e93 \u7684\u3002\u652f\u6301\u7684\u6570\u636e\u7ed3\u6784\u975e\u5e38\u677e\u6563\uff0c\u662f\u7c7b\u4f3c json \u7684 bjson \u683c\u5f0f\uff0c\u56e0\u6b64\u53ef\u4ee5\u5b58\u50a8\u6bd4\u8f83\u590d\u6742\u7684\u6570\u636e\u7c7b\u578b\u3002\uff09Cassandra \u6700\u521d\u7531 Facebook \u5f00\u53d1\uff0c\u540e\u8f6c\u53d8\u6210\u4e86\u5f00\u6e90\u9879\u76ee\u3002\u5b83\u662f\u4e00\u4e2a\u7f51\u7edc\u793e\u4ea4\u4e91\u8ba1\u7b97\u65b9\u9762\u7406\u60f3\u7684\u6570\u636e\u5e93\u3002\u4ee5 Amazon \u4e13\u6709\u7684\u5b8c\u5168\u5206\u5e03\u5f0f\u7684 Dynamo \u4e3a\u57fa\u7840\uff0c\u7ed3\u5408\u4e86 Google BigTable \u57fa\u4e8e\u5217\u65cf\uff08Column Family\uff09\u7684\u6570\u636e\u6a21\u578b\u3002P2P \u53bb\u4e2d\u5fc3\u5316\u7684\u5b58\u50a8\u3002\u5f88\u591a\u65b9\u9762\u90fd\u53ef\u4ee5\u79f0\u4e4b\u4e3a Dynamo 2.0\u3002"),(0,a.yg)("p",null,(0,a.yg)("a",{parentName:"p",href:"http://www.cassandra.com.cn/"},"\u4e2d\u6587\u5b98\u7f51\u5730\u5740")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6bfc7002.29c1b97a.js b/assets/js/6bfc7002.885c7667.js similarity index 98% rename from assets/js/6bfc7002.29c1b97a.js rename to assets/js/6bfc7002.885c7667.js index fb9c2cebe..f1efdb3c2 100644 --- a/assets/js/6bfc7002.29c1b97a.js +++ b/assets/js/6bfc7002.885c7667.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7165],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},l="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),l=p(r),y=o,f=l["".concat(s,".").concat(y)]||l[y]||d[y]||a;return r?n.createElement(f,i(i({ref:t},u),{},{components:r})):n.createElement(f,i({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=y;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[l]="string"==typeof e?e:o,i[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={sidebar_position:1},i="\u6982\u8ff0",c={unversionedId:"study/devops/index",id:"study/devops/index",title:"\u6982\u8ff0",description:"\u8f6f\u4ef6\u5f00\u53d1 + \u7cfb\u7edf\u8fd0\u7ef4",source:"@site/docs/study/devops/index.md",sourceDirName:"study/devops",slug:"/study/devops/",permalink:"/docs/study/devops/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"\u8de8\u5e73\u53f0\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u6846\u67b6",permalink:"/docs/study/program/\u8de8\u5e73\u53f0\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u6846\u67b6"},next:{title:"API\u7684\u8bf7\u6c42\u91cf\u5206\u6790",permalink:"/docs/study/devops/API\u7684\u8bf7\u6c42\u91cf\u5206\u6790"}},s={},p=[],u={toc:p},l="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(l,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,o.yg)("p",null,"\u8f6f\u4ef6\u5f00\u53d1 + \u7cfb\u7edf\u8fd0\u7ef4"),(0,o.yg)("p",null,"\u7ad9\u5728\u5f00\u53d1\u7684\u89d2\u5ea6\uff0c\u4e00\u4e9b\u5e38\u7528\u7684\u8fd0\u7ef4\u624b\u6bb5\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7165],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},l="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),l=p(r),y=o,f=l["".concat(s,".").concat(y)]||l[y]||d[y]||a;return r?n.createElement(f,i(i({ref:t},u),{},{components:r})):n.createElement(f,i({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=y;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[l]="string"==typeof e?e:o,i[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={sidebar_position:1},i="\u6982\u8ff0",c={unversionedId:"study/devops/index",id:"study/devops/index",title:"\u6982\u8ff0",description:"\u8f6f\u4ef6\u5f00\u53d1 + \u7cfb\u7edf\u8fd0\u7ef4",source:"@site/docs/study/devops/index.md",sourceDirName:"study/devops",slug:"/study/devops/",permalink:"/docs/study/devops/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"\u8de8\u5e73\u53f0\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u6846\u67b6",permalink:"/docs/study/program/\u8de8\u5e73\u53f0\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u6846\u67b6"},next:{title:"API\u7684\u8bf7\u6c42\u91cf\u5206\u6790",permalink:"/docs/study/devops/API\u7684\u8bf7\u6c42\u91cf\u5206\u6790"}},s={},p=[],u={toc:p},l="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(l,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,o.yg)("p",null,"\u8f6f\u4ef6\u5f00\u53d1 + \u7cfb\u7edf\u8fd0\u7ef4"),(0,o.yg)("p",null,"\u7ad9\u5728\u5f00\u53d1\u7684\u89d2\u5ea6\uff0c\u4e00\u4e9b\u5e38\u7528\u7684\u8fd0\u7ef4\u624b\u6bb5\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6c0bce26.2fe608bb.js b/assets/js/6c0bce26.d115ccbc.js similarity index 98% rename from assets/js/6c0bce26.2fe608bb.js rename to assets/js/6c0bce26.d115ccbc.js index 614acf62f..8a08e05d1 100644 --- a/assets/js/6c0bce26.2fe608bb.js +++ b/assets/js/6c0bce26.d115ccbc.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1980],{5680:(e,r,n)=>{n.d(r,{xA:()=>u,yg:()=>v});var t=n(6540);function o(e,r,n){return r in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n,e}function a(e,r){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r&&(t=t.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),n.push.apply(n,t)}return n}function i(e){for(var r=1;r=0||(o[n]=e[n]);return o}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var c=t.createContext({}),p=function(e){var r=t.useContext(c),n=r;return e&&(n="function"==typeof e?e(r):i(i({},r),e)),n},u=function(e){var r=p(e.components);return t.createElement(c.Provider,{value:r},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var r=e.children;return t.createElement(t.Fragment,{},r)}},g=t.forwardRef((function(e,r){var n=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),s=p(n),g=o,v=s["".concat(c,".").concat(g)]||s[g]||d[g]||a;return n?t.createElement(v,i(i({ref:r},u),{},{components:n})):t.createElement(v,i({ref:r},u))}));function v(e,r){var n=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=g;var l={};for(var c in r)hasOwnProperty.call(r,c)&&(l[c]=r[c]);l.originalType=e,l[s]="string"==typeof e?e:o,i[1]=l;for(var p=2;p{n.r(r),n.d(r,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var t=n(8168),o=(n(6540),n(5680));const a={},i=void 0,l={unversionedId:"study/back/maven/\u6784\u5efaDocker",id:"study/back/maven/\u6784\u5efaDocker",title:"\u6784\u5efaDocker",description:"\u6784\u5efa Java SpringBoot Docker \u955c\u50cf",source:"@site/docs/study/back/maven/\u6784\u5efaDocker.md",sourceDirName:"study/back/maven",slug:"/study/back/maven/\u6784\u5efaDocker",permalink:"/docs/study/back/maven/\u6784\u5efaDocker",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u5e38\u7528\u53c2\u6570",permalink:"/docs/study/back/maven/\u5e38\u7528\u53c2\u6570"},next:{title:"Kafka",permalink:"/docs/study/back/mq/Kafka"}},c={},p=[{value:"\u6784\u5efa Java SpringBoot Docker \u955c\u50cf",id:"\u6784\u5efa-java-springboot-docker-\u955c\u50cf",level:3},{value:"\u6700\u4e3a\u539f\u59cb\u7684\u65b9\u5f0f",id:"\u6700\u4e3a\u539f\u59cb\u7684\u65b9\u5f0f",level:4},{value:"spring-boot-maven-plugin",id:"spring-boot-maven-plugin",level:4},{value:"jib-maven-plugin",id:"jib-maven-plugin",level:4},{value:"dockerfle-maven-plugin",id:"dockerfle-maven-plugin",level:4}],u={toc:p},s="wrapper";function d(e){let{components:r,...n}=e;return(0,o.yg)(s,(0,t.A)({},u,n,{components:r,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u6784\u5efa-java-springboot-docker-\u955c\u50cf"},"\u6784\u5efa Java SpringBoot Docker \u955c\u50cf"),(0,o.yg)("h4",{id:"\u6700\u4e3a\u539f\u59cb\u7684\u65b9\u5f0f"},"\u6700\u4e3a\u539f\u59cb\u7684\u65b9\u5f0f"),(0,o.yg)("p",null,"\u4e5f\u5c31\u662f\u4f7f\u7528 Docker \u7684\u6253\u5305\u547d\u4ee4\u53bb\u6253\u5305"),(0,o.yg)("h4",{id:"spring-boot-maven-plugin"},"spring-boot-maven-plugin"),(0,o.yg)("p",null,"SpringBoot \u81ea\u5df1\u5185\u7f6e\u4e86\u4e00\u4e2a Docker \u955c\u50cf\u6253\u5305\u5de5\u5177\uff0c\u5728 spring-boot-starter-parent \u4e2d\uff0c\u6211\u4eec\u65e0\u9700\u591a\u4f59\u7684\u8bbe\u7f6e\u3002"),(0,o.yg)("p",null,"\u4f18\u70b9\uff1a\u4e0d\u9700\u8981\u5199 DockerFile\uff0cSpring \u5efa\u8bae\u7684\u5b89\u5168\u3001\u5185\u5b58\u3001\u6027\u80fd\u7b49\u95ee\u9898\u90fd\u4e0d\u9700\u8981\u7ba1\u3002"),(0,o.yg)("h4",{id:"jib-maven-plugin"},"jib-maven-plugin"),(0,o.yg)("p",null,"\u6765\u81ea Google \u7684\u4e00\u6b3e\u6253\u5305\u63d2\u4ef6\u3002"),(0,o.yg)("p",null,"\u4f18\u70b9\uff1a\u4e0d\u9700\u8981\u672c\u5730\u5b89\u88c5 Docker\uff0c\u4e5f\u4e0d\u9700\u8981\u5199 DockerFile\uff0cJib \u53ef\u4ee5\u76f4\u63a5\u63a8\u9001\u5230\u6307\u5b9a\u7684 Docker \u4ed3\u5e93\u3002"),(0,o.yg)("h4",{id:"dockerfle-maven-plugin"},"dockerfle-maven-plugin"),(0,o.yg)("p",null,"\u9700\u8981\u5199 DockerFile \u4e5f\u9700\u8981\u672c\u5730 Docker \u73af\u5883\uff0c\u4f46\u662f\u6070\u6070\u662f\u6700\u597d\u7528\u7684\uff0c\u6700\u7a33\u5b9a\u7684\uff0c\u6700\u81ea\u7531\u628a\u63a7\u7684\u3002"),(0,o.yg)("p",null,"\u4f18\u70b9\uff1a\u7a33\u5b9a\uff0c\u4e0d\u53d7\u7f51\u7edc\u9650\u5236\uff0cDockerFile \u81ea\u5df1\u5199\uff0c\u81ea\u7531\u5ea6\u5f88\u9ad8\uff0c\u60f3\u600e\u4e48\u6539\u600e\u4e48\u6539\uff0c\u4e2a\u4eba\u63a8\u8350\u8fd9\u4e2a\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1980],{5680:(e,r,n)=>{n.d(r,{xA:()=>u,yg:()=>v});var t=n(6540);function o(e,r,n){return r in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n,e}function a(e,r){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r&&(t=t.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),n.push.apply(n,t)}return n}function i(e){for(var r=1;r=0||(o[n]=e[n]);return o}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var c=t.createContext({}),p=function(e){var r=t.useContext(c),n=r;return e&&(n="function"==typeof e?e(r):i(i({},r),e)),n},u=function(e){var r=p(e.components);return t.createElement(c.Provider,{value:r},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var r=e.children;return t.createElement(t.Fragment,{},r)}},g=t.forwardRef((function(e,r){var n=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),s=p(n),g=o,v=s["".concat(c,".").concat(g)]||s[g]||d[g]||a;return n?t.createElement(v,i(i({ref:r},u),{},{components:n})):t.createElement(v,i({ref:r},u))}));function v(e,r){var n=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=g;var l={};for(var c in r)hasOwnProperty.call(r,c)&&(l[c]=r[c]);l.originalType=e,l[s]="string"==typeof e?e:o,i[1]=l;for(var p=2;p{n.r(r),n.d(r,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var t=n(8168),o=(n(6540),n(5680));const a={},i=void 0,l={unversionedId:"study/back/maven/\u6784\u5efaDocker",id:"study/back/maven/\u6784\u5efaDocker",title:"\u6784\u5efaDocker",description:"\u6784\u5efa Java SpringBoot Docker \u955c\u50cf",source:"@site/docs/study/back/maven/\u6784\u5efaDocker.md",sourceDirName:"study/back/maven",slug:"/study/back/maven/\u6784\u5efaDocker",permalink:"/docs/study/back/maven/\u6784\u5efaDocker",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u5e38\u7528\u53c2\u6570",permalink:"/docs/study/back/maven/\u5e38\u7528\u53c2\u6570"},next:{title:"Kafka",permalink:"/docs/study/back/mq/Kafka"}},c={},p=[{value:"\u6784\u5efa Java SpringBoot Docker \u955c\u50cf",id:"\u6784\u5efa-java-springboot-docker-\u955c\u50cf",level:3},{value:"\u6700\u4e3a\u539f\u59cb\u7684\u65b9\u5f0f",id:"\u6700\u4e3a\u539f\u59cb\u7684\u65b9\u5f0f",level:4},{value:"spring-boot-maven-plugin",id:"spring-boot-maven-plugin",level:4},{value:"jib-maven-plugin",id:"jib-maven-plugin",level:4},{value:"dockerfle-maven-plugin",id:"dockerfle-maven-plugin",level:4}],u={toc:p},s="wrapper";function d(e){let{components:r,...n}=e;return(0,o.yg)(s,(0,t.A)({},u,n,{components:r,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u6784\u5efa-java-springboot-docker-\u955c\u50cf"},"\u6784\u5efa Java SpringBoot Docker \u955c\u50cf"),(0,o.yg)("h4",{id:"\u6700\u4e3a\u539f\u59cb\u7684\u65b9\u5f0f"},"\u6700\u4e3a\u539f\u59cb\u7684\u65b9\u5f0f"),(0,o.yg)("p",null,"\u4e5f\u5c31\u662f\u4f7f\u7528 Docker \u7684\u6253\u5305\u547d\u4ee4\u53bb\u6253\u5305"),(0,o.yg)("h4",{id:"spring-boot-maven-plugin"},"spring-boot-maven-plugin"),(0,o.yg)("p",null,"SpringBoot \u81ea\u5df1\u5185\u7f6e\u4e86\u4e00\u4e2a Docker \u955c\u50cf\u6253\u5305\u5de5\u5177\uff0c\u5728 spring-boot-starter-parent \u4e2d\uff0c\u6211\u4eec\u65e0\u9700\u591a\u4f59\u7684\u8bbe\u7f6e\u3002"),(0,o.yg)("p",null,"\u4f18\u70b9\uff1a\u4e0d\u9700\u8981\u5199 DockerFile\uff0cSpring \u5efa\u8bae\u7684\u5b89\u5168\u3001\u5185\u5b58\u3001\u6027\u80fd\u7b49\u95ee\u9898\u90fd\u4e0d\u9700\u8981\u7ba1\u3002"),(0,o.yg)("h4",{id:"jib-maven-plugin"},"jib-maven-plugin"),(0,o.yg)("p",null,"\u6765\u81ea Google \u7684\u4e00\u6b3e\u6253\u5305\u63d2\u4ef6\u3002"),(0,o.yg)("p",null,"\u4f18\u70b9\uff1a\u4e0d\u9700\u8981\u672c\u5730\u5b89\u88c5 Docker\uff0c\u4e5f\u4e0d\u9700\u8981\u5199 DockerFile\uff0cJib \u53ef\u4ee5\u76f4\u63a5\u63a8\u9001\u5230\u6307\u5b9a\u7684 Docker \u4ed3\u5e93\u3002"),(0,o.yg)("h4",{id:"dockerfle-maven-plugin"},"dockerfle-maven-plugin"),(0,o.yg)("p",null,"\u9700\u8981\u5199 DockerFile \u4e5f\u9700\u8981\u672c\u5730 Docker \u73af\u5883\uff0c\u4f46\u662f\u6070\u6070\u662f\u6700\u597d\u7528\u7684\uff0c\u6700\u7a33\u5b9a\u7684\uff0c\u6700\u81ea\u7531\u628a\u63a7\u7684\u3002"),(0,o.yg)("p",null,"\u4f18\u70b9\uff1a\u7a33\u5b9a\uff0c\u4e0d\u53d7\u7f51\u7edc\u9650\u5236\uff0cDockerFile \u81ea\u5df1\u5199\uff0c\u81ea\u7531\u5ea6\u5f88\u9ad8\uff0c\u60f3\u600e\u4e48\u6539\u600e\u4e48\u6539\uff0c\u4e2a\u4eba\u63a8\u8350\u8fd9\u4e2a\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6c9e9146.3f988669.js b/assets/js/6c9e9146.c5e4e932.js similarity index 98% rename from assets/js/6c9e9146.3f988669.js rename to assets/js/6c9e9146.c5e4e932.js index 23308a8d1..0d0896849 100644 --- a/assets/js/6c9e9146.3f988669.js +++ b/assets/js/6c9e9146.c5e4e932.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5464],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),l=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=l(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),u=l(r),y=o,f=u["".concat(s,".").concat(y)]||u[y]||d[y]||a;return r?n.createElement(f,i(i({ref:t},p),{},{components:r})):n.createElement(f,i({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=y;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[u]="string"==typeof e?e:o,i[1]=c;for(var l=2;l{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var n=r(8168),o=(r(6540),r(5680));const a={},i=void 0,c={unversionedId:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/KairosDB",id:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/KairosDB",title:"KairosDB",description:"\u57fa\u672c\u4fe1\u606f",source:"@site/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/KairosDB.md",sourceDirName:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93",slug:"/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/KairosDB",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/KairosDB",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Druid",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Druid"},next:{title:"OpenTSDB",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/OpenTSDB"}},s={},l=[],p={toc:l},u="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"\u57fa\u672c\u4fe1\u606f")),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},"\u7f16\u7a0b\u8bed\u8a00\uff1aJava"),(0,o.yg)("li",{parentName:"ol"},"\u5f00\u6e90\uff1a\u662f\uff0c\u4ed6\u662fOpenTSDB\u7684fork\uff0c\u4e0d\u8fc7\u5b58\u50a8\u7cfb\u7edf\u7528\u7684\u662fCassandra"),(0,o.yg)("li",{parentName:"ol"},"\u5b58\u50a8\u65b9\u6848\uff1aCassandra\uff0cCassandra \u662f\u4e00\u4e2a\u6bd4\u8f83\u6d41\u884c\u7684NoSQL\u6570\u636e\u5e93\uff0c\u5f88\u591a\u5f00\u6e90\u8f6f\u4ef6\u57fa\u4e8e\u6b64\u6570\u636e\u5e93\u3002"),(0,o.yg)("li",{parentName:"ol"},"\u63a5\u53e3\uff1aRestful API")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5464],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),l=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=l(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),u=l(r),y=o,f=u["".concat(s,".").concat(y)]||u[y]||d[y]||a;return r?n.createElement(f,i(i({ref:t},p),{},{components:r})):n.createElement(f,i({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=y;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[u]="string"==typeof e?e:o,i[1]=c;for(var l=2;l{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var n=r(8168),o=(r(6540),r(5680));const a={},i=void 0,c={unversionedId:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/KairosDB",id:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/KairosDB",title:"KairosDB",description:"\u57fa\u672c\u4fe1\u606f",source:"@site/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/KairosDB.md",sourceDirName:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93",slug:"/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/KairosDB",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/KairosDB",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Druid",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Druid"},next:{title:"OpenTSDB",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/OpenTSDB"}},s={},l=[],p={toc:l},u="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"\u57fa\u672c\u4fe1\u606f")),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},"\u7f16\u7a0b\u8bed\u8a00\uff1aJava"),(0,o.yg)("li",{parentName:"ol"},"\u5f00\u6e90\uff1a\u662f\uff0c\u4ed6\u662fOpenTSDB\u7684fork\uff0c\u4e0d\u8fc7\u5b58\u50a8\u7cfb\u7edf\u7528\u7684\u662fCassandra"),(0,o.yg)("li",{parentName:"ol"},"\u5b58\u50a8\u65b9\u6848\uff1aCassandra\uff0cCassandra \u662f\u4e00\u4e2a\u6bd4\u8f83\u6d41\u884c\u7684NoSQL\u6570\u636e\u5e93\uff0c\u5f88\u591a\u5f00\u6e90\u8f6f\u4ef6\u57fa\u4e8e\u6b64\u6570\u636e\u5e93\u3002"),(0,o.yg)("li",{parentName:"ol"},"\u63a5\u53e3\uff1aRestful API")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6cce85b2.a94972e8.js b/assets/js/6cce85b2.474c3b81.js similarity index 98% rename from assets/js/6cce85b2.a94972e8.js rename to assets/js/6cce85b2.474c3b81.js index 84cfb6a5f..d979432ca 100644 --- a/assets/js/6cce85b2.a94972e8.js +++ b/assets/js/6cce85b2.474c3b81.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2039],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function u(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),l=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):u(u({},t),e)),r},p=function(e){var t=l(e.components);return n.createElement(c.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),s=l(r),y=a,f=s["".concat(c,".").concat(y)]||s[y]||d[y]||o;return r?n.createElement(f,u(u({ref:t},p),{},{components:r})):n.createElement(f,u({ref:t},p))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,u=new Array(o);u[0]=y;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[s]="string"==typeof e?e:a,u[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>u,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>l});var n=r(8168),a=(r(6540),r(5680));const o={},u="Lua",i={unversionedId:"study/program/Lua/index",id:"study/program/Lua/index",title:"Lua",description:"\u5b66\u4e60\u8d44\u6599",source:"@site/docs/study/program/Lua/index.md",sourceDirName:"study/program/Lua",slug:"/study/program/Lua/",permalink:"/docs/study/program/Lua/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Kotlin",permalink:"/docs/study/program/Kotlin/"},next:{title:"Rust",permalink:"/docs/study/program/Rust/"}},c={},l=[{value:"\u5b66\u4e60\u8d44\u6599",id:"\u5b66\u4e60\u8d44\u6599",level:3}],p={toc:l},s="wrapper";function d(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"lua"},"Lua"),(0,a.yg)("h3",{id:"\u5b66\u4e60\u8d44\u6599"},"\u5b66\u4e60\u8d44\u6599"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://www.junmajinlong.com/lua/index/"},"Lua \u7b14\u8bb0\u7cfb\u5217"))))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2039],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function u(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),l=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):u(u({},t),e)),r},p=function(e){var t=l(e.components);return n.createElement(c.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),s=l(r),y=a,f=s["".concat(c,".").concat(y)]||s[y]||d[y]||o;return r?n.createElement(f,u(u({ref:t},p),{},{components:r})):n.createElement(f,u({ref:t},p))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,u=new Array(o);u[0]=y;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[s]="string"==typeof e?e:a,u[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>u,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>l});var n=r(8168),a=(r(6540),r(5680));const o={},u="Lua",i={unversionedId:"study/program/Lua/index",id:"study/program/Lua/index",title:"Lua",description:"\u5b66\u4e60\u8d44\u6599",source:"@site/docs/study/program/Lua/index.md",sourceDirName:"study/program/Lua",slug:"/study/program/Lua/",permalink:"/docs/study/program/Lua/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Kotlin",permalink:"/docs/study/program/Kotlin/"},next:{title:"Rust",permalink:"/docs/study/program/Rust/"}},c={},l=[{value:"\u5b66\u4e60\u8d44\u6599",id:"\u5b66\u4e60\u8d44\u6599",level:3}],p={toc:l},s="wrapper";function d(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"lua"},"Lua"),(0,a.yg)("h3",{id:"\u5b66\u4e60\u8d44\u6599"},"\u5b66\u4e60\u8d44\u6599"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://www.junmajinlong.com/lua/index/"},"Lua \u7b14\u8bb0\u7cfb\u5217"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6de29db3.df7732ec.js b/assets/js/6de29db3.50405f2f.js similarity index 98% rename from assets/js/6de29db3.df7732ec.js rename to assets/js/6de29db3.50405f2f.js index 3b2f12f66..f71bdd4a6 100644 --- a/assets/js/6de29db3.df7732ec.js +++ b/assets/js/6de29db3.50405f2f.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3066],{5680:(e,r,t)=>{t.d(r,{xA:()=>p,yg:()=>g});var n=t(6540);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function i(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function a(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var c=n.createContext({}),l=function(e){var r=n.useContext(c),t=r;return e&&(t="function"==typeof e?e(r):a(a({},r),e)),t},p=function(e){var r=l(e.components);return n.createElement(c.Provider,{value:r},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},y=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,i=e.originalType,c=e.parentName,p=u(e,["components","mdxType","originalType","parentName"]),s=l(t),y=o,g=s["".concat(c,".").concat(y)]||s[y]||d[y]||i;return t?n.createElement(g,a(a({ref:r},p),{},{components:t})):n.createElement(g,a({ref:r},p))}));function g(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var i=t.length,a=new Array(i);a[0]=y;var u={};for(var c in r)hasOwnProperty.call(r,c)&&(u[c]=r[c]);u.originalType=e,u[s]="string"==typeof e?e:o,a[1]=u;for(var l=2;l{t.r(r),t.d(r,{assets:()=>c,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>u,toc:()=>l});var n=t(8168),o=(t(6540),t(5680));const i={},a=void 0,u={unversionedId:"study/back/spring/@Resource@Autowired",id:"study/back/spring/@Resource@Autowired",title:"@Resource@Autowired",description:"@Autowired \u548c @Resource \u90fd\u662f\u7528\u6765\u5b9e\u73b0\u4f9d\u8d56\u6ce8\u5165\u7684\u6ce8\u89e3\uff08\u5728 Spring/Spring Boot \u9879\u76ee\u4e2d\uff09\uff0c\u4f46\u4e8c\u8005\u5374\u6709\u7740 5 \u70b9\u4e0d\u540c\uff1a",source:"@site/docs/study/back/spring/@Resource@Autowired.md",sourceDirName:"study/back/spring",slug:"/study/back/spring/@Resource@Autowired",permalink:"/docs/study/back/spring/@Resource@Autowired",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"@Configuration",permalink:"/docs/study/back/spring/@Configuration"},next:{title:"Spring AOP",permalink:"/docs/study/back/spring/SpringAOP"}},c={},l=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],p={toc:l},s="wrapper";function d(e){let{components:r,...t}=e;return(0,o.yg)(s,(0,n.A)({},p,t,{components:r,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"@Autowired \u548c @Resource \u90fd\u662f\u7528\u6765\u5b9e\u73b0\u4f9d\u8d56\u6ce8\u5165\u7684\u6ce8\u89e3\uff08\u5728 Spring/Spring Boot \u9879\u76ee\u4e2d\uff09\uff0c\u4f46\u4e8c\u8005\u5374\u6709\u7740 5 \u70b9\u4e0d\u540c\uff1a"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"\u6765\u6e90\u4e0d\u540c\uff1a@Autowired \u6765\u81ea Spring \u6846\u67b6\uff0c\u800c @Resource \u6765\u81ea\u4e8e\uff08Java\uff09JSR-250\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u4f9d\u8d56\u67e5\u627e\u7684\u987a\u5e8f\u4e0d\u540c\uff1a@Autowired \u5148\u6839\u636e\u7c7b\u578b\u518d\u6839\u636e\u540d\u79f0\u67e5\u8be2\uff0c\u800c @Resource \u5148\u6839\u636e\u540d\u79f0\u518d\u6839\u636e\u7c7b\u578b\u67e5\u8be2\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u652f\u6301\u7684\u53c2\u6570\u4e0d\u540c\uff1a@Autowired \u53ea\u652f\u6301\u8bbe\u7f6e 1 \u4e2a\u53c2\u6570\uff0c\u800c @Resource \u652f\u6301\u8bbe\u7f6e 7 \u4e2a\u53c2\u6570\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u4f9d\u8d56\u6ce8\u5165\u7684\u7528\u6cd5\u652f\u6301\u4e0d\u540c\uff1a@Autowired \u65e2\u652f\u6301\u6784\u9020\u65b9\u6cd5\u6ce8\u5165\uff0c\u53c8\u652f\u6301\u5c5e\u6027\u6ce8\u5165\u548c Setter \u6ce8\u5165\uff0c\u800c @Resource \u53ea\u652f\u6301\u5c5e\u6027\u6ce8\u5165\u548c Setter \u6ce8\u5165\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u7f16\u8bd1\u5668 IDEA \u7684\u63d0\u793a\u4e0d\u540c\uff1a\u5f53\u6ce8\u5165 Mapper \u5bf9\u8c61\u65f6\uff0c\u4f7f\u7528 @Autowired \u6ce8\u89e3\u7f16\u8bd1\u5668\u4f1a\u63d0\u793a\u9519\u8bef\uff0c\u800c\u4f7f\u7528 @Resource \u6ce8\u89e3\u5219\u4e0d\u4f1a\u63d0\u793a\u9519\u8bef\u3002")),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://blog.csdn.net/xhbzl/article/details/126765893"},"CSDN-@Autowired \u548c@Resource \u5230\u5e95\u6709\u4ec0\u4e48\u533a\u522b"))))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3066],{5680:(e,r,t)=>{t.d(r,{xA:()=>p,yg:()=>g});var n=t(6540);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function i(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function a(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var c=n.createContext({}),l=function(e){var r=n.useContext(c),t=r;return e&&(t="function"==typeof e?e(r):a(a({},r),e)),t},p=function(e){var r=l(e.components);return n.createElement(c.Provider,{value:r},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},y=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,i=e.originalType,c=e.parentName,p=u(e,["components","mdxType","originalType","parentName"]),s=l(t),y=o,g=s["".concat(c,".").concat(y)]||s[y]||d[y]||i;return t?n.createElement(g,a(a({ref:r},p),{},{components:t})):n.createElement(g,a({ref:r},p))}));function g(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var i=t.length,a=new Array(i);a[0]=y;var u={};for(var c in r)hasOwnProperty.call(r,c)&&(u[c]=r[c]);u.originalType=e,u[s]="string"==typeof e?e:o,a[1]=u;for(var l=2;l{t.r(r),t.d(r,{assets:()=>c,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>u,toc:()=>l});var n=t(8168),o=(t(6540),t(5680));const i={},a=void 0,u={unversionedId:"study/back/spring/@Resource@Autowired",id:"study/back/spring/@Resource@Autowired",title:"@Resource@Autowired",description:"@Autowired \u548c @Resource \u90fd\u662f\u7528\u6765\u5b9e\u73b0\u4f9d\u8d56\u6ce8\u5165\u7684\u6ce8\u89e3\uff08\u5728 Spring/Spring Boot \u9879\u76ee\u4e2d\uff09\uff0c\u4f46\u4e8c\u8005\u5374\u6709\u7740 5 \u70b9\u4e0d\u540c\uff1a",source:"@site/docs/study/back/spring/@Resource@Autowired.md",sourceDirName:"study/back/spring",slug:"/study/back/spring/@Resource@Autowired",permalink:"/docs/study/back/spring/@Resource@Autowired",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"@Configuration",permalink:"/docs/study/back/spring/@Configuration"},next:{title:"Spring AOP",permalink:"/docs/study/back/spring/SpringAOP"}},c={},l=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],p={toc:l},s="wrapper";function d(e){let{components:r,...t}=e;return(0,o.yg)(s,(0,n.A)({},p,t,{components:r,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"@Autowired \u548c @Resource \u90fd\u662f\u7528\u6765\u5b9e\u73b0\u4f9d\u8d56\u6ce8\u5165\u7684\u6ce8\u89e3\uff08\u5728 Spring/Spring Boot \u9879\u76ee\u4e2d\uff09\uff0c\u4f46\u4e8c\u8005\u5374\u6709\u7740 5 \u70b9\u4e0d\u540c\uff1a"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"\u6765\u6e90\u4e0d\u540c\uff1a@Autowired \u6765\u81ea Spring \u6846\u67b6\uff0c\u800c @Resource \u6765\u81ea\u4e8e\uff08Java\uff09JSR-250\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u4f9d\u8d56\u67e5\u627e\u7684\u987a\u5e8f\u4e0d\u540c\uff1a@Autowired \u5148\u6839\u636e\u7c7b\u578b\u518d\u6839\u636e\u540d\u79f0\u67e5\u8be2\uff0c\u800c @Resource \u5148\u6839\u636e\u540d\u79f0\u518d\u6839\u636e\u7c7b\u578b\u67e5\u8be2\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u652f\u6301\u7684\u53c2\u6570\u4e0d\u540c\uff1a@Autowired \u53ea\u652f\u6301\u8bbe\u7f6e 1 \u4e2a\u53c2\u6570\uff0c\u800c @Resource \u652f\u6301\u8bbe\u7f6e 7 \u4e2a\u53c2\u6570\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u4f9d\u8d56\u6ce8\u5165\u7684\u7528\u6cd5\u652f\u6301\u4e0d\u540c\uff1a@Autowired \u65e2\u652f\u6301\u6784\u9020\u65b9\u6cd5\u6ce8\u5165\uff0c\u53c8\u652f\u6301\u5c5e\u6027\u6ce8\u5165\u548c Setter \u6ce8\u5165\uff0c\u800c @Resource \u53ea\u652f\u6301\u5c5e\u6027\u6ce8\u5165\u548c Setter \u6ce8\u5165\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u7f16\u8bd1\u5668 IDEA \u7684\u63d0\u793a\u4e0d\u540c\uff1a\u5f53\u6ce8\u5165 Mapper \u5bf9\u8c61\u65f6\uff0c\u4f7f\u7528 @Autowired \u6ce8\u89e3\u7f16\u8bd1\u5668\u4f1a\u63d0\u793a\u9519\u8bef\uff0c\u800c\u4f7f\u7528 @Resource \u6ce8\u89e3\u5219\u4e0d\u4f1a\u63d0\u793a\u9519\u8bef\u3002")),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://blog.csdn.net/xhbzl/article/details/126765893"},"CSDN-@Autowired \u548c@Resource \u5230\u5e95\u6709\u4ec0\u4e48\u533a\u522b"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/72b2f356.a35af79a.js b/assets/js/72b2f356.a49e096d.js similarity index 98% rename from assets/js/72b2f356.a35af79a.js rename to assets/js/72b2f356.a49e096d.js index 60ae6505e..f3ec00e40 100644 --- a/assets/js/72b2f356.a35af79a.js +++ b/assets/js/72b2f356.a49e096d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2700],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),p=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(c.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),s=p(r),y=o,f=s["".concat(c,".").concat(y)]||s[y]||d[y]||a;return r?n.createElement(f,i(i({ref:t},u),{},{components:r})):n.createElement(f,i({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=y;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[s]="string"==typeof e?e:o,i[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={},i="Kotlin",l={unversionedId:"study/program/Kotlin/index",id:"study/program/Kotlin/index",title:"Kotlin",description:"Kotlin\uff08\u79d1\u7279\u6797\uff09\u662f\u4e00\u4e2a\u7528\u4e8e\u73b0\u4ee3\u591a\u5e73\u53f0\u5e94\u7528\u7684\u9759\u6001\u7f16\u7a0b\u8bed\u8a00\uff0c\u7531 JetBrains \u5f00\u53d1\u3002",source:"@site/docs/study/program/Kotlin/index.md",sourceDirName:"study/program/Kotlin",slug:"/study/program/Kotlin/",permalink:"/docs/study/program/Kotlin/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"nrm",permalink:"/docs/study/program/JS/nrm"},next:{title:"Lua",permalink:"/docs/study/program/Lua/"}},c={},p=[],u={toc:p},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"kotlin"},"Kotlin"),(0,o.yg)("p",null,"Kotlin\uff08\u79d1\u7279\u6797\uff09\u662f\u4e00\u4e2a\u7528\u4e8e\u73b0\u4ee3\u591a\u5e73\u53f0\u5e94\u7528\u7684\u9759\u6001\u7f16\u7a0b\u8bed\u8a00\uff0c\u7531 JetBrains \u5f00\u53d1\u3002"),(0,o.yg)("p",null,"Kotlin \u53ef\u4ee5\u7f16\u8bd1\u6210 Java \u5b57\u8282\u7801\uff0c\u4e5f\u53ef\u4ee5\u7f16\u8bd1\u6210 JavaScript\uff0c\u65b9\u4fbf\u5728\u6ca1\u6709 JVM \u7684\u8bbe\u5907\u4e0a\u8fd0\u884c\u3002\u9664\u6b64\u4e4b\u5916 Kotlin \u8fd8\u53ef\u4ee5\u7f16\u8bd1\u6210\u4e8c\u8fdb\u5236\u4ee3\u7801\u76f4\u63a5\u8fd0\u884c\u5728\u673a\u5668\u4e0a\uff08\u4f8b\u5982\u5d4c\u5165\u5f0f\u8bbe\u5907\u6216 iOS\uff09\u3002"),(0,o.yg)("p",null,"Kotlin \u5df2\u6b63\u5f0f\u6210\u4e3a Android \u5b98\u65b9\u652f\u6301\u5f00\u53d1\u8bed\u8a00\u3002"),(0,o.yg)("p",null,(0,o.yg)("a",{parentName:"p",href:"https://kotlinlang.org/"},"\u5b98\u65b9\u7f51\u7ad9")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2700],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),p=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(c.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),s=p(r),y=o,f=s["".concat(c,".").concat(y)]||s[y]||d[y]||a;return r?n.createElement(f,i(i({ref:t},u),{},{components:r})):n.createElement(f,i({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=y;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[s]="string"==typeof e?e:o,i[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={},i="Kotlin",l={unversionedId:"study/program/Kotlin/index",id:"study/program/Kotlin/index",title:"Kotlin",description:"Kotlin\uff08\u79d1\u7279\u6797\uff09\u662f\u4e00\u4e2a\u7528\u4e8e\u73b0\u4ee3\u591a\u5e73\u53f0\u5e94\u7528\u7684\u9759\u6001\u7f16\u7a0b\u8bed\u8a00\uff0c\u7531 JetBrains \u5f00\u53d1\u3002",source:"@site/docs/study/program/Kotlin/index.md",sourceDirName:"study/program/Kotlin",slug:"/study/program/Kotlin/",permalink:"/docs/study/program/Kotlin/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"nrm",permalink:"/docs/study/program/JS/nrm"},next:{title:"Lua",permalink:"/docs/study/program/Lua/"}},c={},p=[],u={toc:p},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"kotlin"},"Kotlin"),(0,o.yg)("p",null,"Kotlin\uff08\u79d1\u7279\u6797\uff09\u662f\u4e00\u4e2a\u7528\u4e8e\u73b0\u4ee3\u591a\u5e73\u53f0\u5e94\u7528\u7684\u9759\u6001\u7f16\u7a0b\u8bed\u8a00\uff0c\u7531 JetBrains \u5f00\u53d1\u3002"),(0,o.yg)("p",null,"Kotlin \u53ef\u4ee5\u7f16\u8bd1\u6210 Java \u5b57\u8282\u7801\uff0c\u4e5f\u53ef\u4ee5\u7f16\u8bd1\u6210 JavaScript\uff0c\u65b9\u4fbf\u5728\u6ca1\u6709 JVM \u7684\u8bbe\u5907\u4e0a\u8fd0\u884c\u3002\u9664\u6b64\u4e4b\u5916 Kotlin \u8fd8\u53ef\u4ee5\u7f16\u8bd1\u6210\u4e8c\u8fdb\u5236\u4ee3\u7801\u76f4\u63a5\u8fd0\u884c\u5728\u673a\u5668\u4e0a\uff08\u4f8b\u5982\u5d4c\u5165\u5f0f\u8bbe\u5907\u6216 iOS\uff09\u3002"),(0,o.yg)("p",null,"Kotlin \u5df2\u6b63\u5f0f\u6210\u4e3a Android \u5b98\u65b9\u652f\u6301\u5f00\u53d1\u8bed\u8a00\u3002"),(0,o.yg)("p",null,(0,o.yg)("a",{parentName:"p",href:"https://kotlinlang.org/"},"\u5b98\u65b9\u7f51\u7ad9")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/73162314.ccda7320.js b/assets/js/73162314.5c49cc87.js similarity index 99% rename from assets/js/73162314.ccda7320.js rename to assets/js/73162314.5c49cc87.js index f123ef21f..bd05995de 100644 --- a/assets/js/73162314.ccda7320.js +++ b/assets/js/73162314.5c49cc87.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6898],{5680:(e,n,l)=>{l.d(n,{xA:()=>y,yg:()=>g});var a=l(6540);function t(e,n,l){return n in e?Object.defineProperty(e,n,{value:l,enumerable:!0,configurable:!0,writable:!0}):e[n]=l,e}function r(e,n){var l=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),l.push.apply(l,a)}return l}function o(e){for(var n=1;n=0||(t[l]=e[l]);return t}(e,n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,l)&&(t[l]=e[l])}return t}var s=a.createContext({}),u=function(e){var n=a.useContext(s),l=n;return e&&(l="function"==typeof e?e(n):o(o({},n),e)),l},y=function(e){var n=u(e.components);return a.createElement(s.Provider,{value:n},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},_=a.forwardRef((function(e,n){var l=e.components,t=e.mdxType,r=e.originalType,s=e.parentName,y=i(e,["components","mdxType","originalType","parentName"]),c=u(l),_=t,g=c["".concat(s,".").concat(_)]||c[_]||d[_]||r;return l?a.createElement(g,o(o({ref:n},y),{},{components:l})):a.createElement(g,o({ref:n},y))}));function g(e,n){var l=arguments,t=n&&n.mdxType;if("string"==typeof e||t){var r=l.length,o=new Array(r);o[0]=_;var i={};for(var s in n)hasOwnProperty.call(n,s)&&(i[s]=n[s]);i.originalType=e,i[c]="string"==typeof e?e:t,o[1]=i;for(var u=2;u{l.r(n),l.d(n,{assets:()=>s,contentTitle:()=>o,default:()=>d,frontMatter:()=>r,metadata:()=>i,toc:()=>u});var a=l(8168),t=(l(6540),l(5680));const r={},o=void 0,i={unversionedId:"study/db/SQL/MySQL",id:"study/db/SQL/MySQL",title:"MySQL",description:"\u7248\u672c\u9009\u62e9",source:"@site/docs/study/db/SQL/MySQL.md",sourceDirName:"study/db/SQL",slug:"/study/db/SQL/MySQL",permalink:"/docs/study/db/SQL/MySQL",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"MySQL \u7b14\u8bb0",permalink:"/docs/study/db/SQL/MySQL-\u7b14\u8bb0"},next:{title:"OpenGauss",permalink:"/docs/study/db/SQL/OpenGauss"}},s={},u=[{value:"\u7248\u672c\u9009\u62e9",id:"\u7248\u672c\u9009\u62e9",level:3},{value:"\u4fee\u6539\u65f6\u533a",id:"\u4fee\u6539\u65f6\u533a",level:3},{value:"\u521b\u5efa\u7528\u6237\u5e76\u6388\u6743",id:"\u521b\u5efa\u7528\u6237\u5e76\u6388\u6743",level:3},{value:"\u5185\u5b58\u5206\u914d",id:"\u5185\u5b58\u5206\u914d",level:3},{value:"\u5171\u4eab\u5185\u5b58",id:"\u5171\u4eab\u5185\u5b58",level:4},{value:"Session \u79c1\u6709\u5185\u5b58",id:"session-\u79c1\u6709\u5185\u5b58",level:4},{value:"\u5982\u4f55\u8bbe\u7f6e",id:"\u5982\u4f55\u8bbe\u7f6e",level:4},{value:"\u67e5\u8be2\u4f18\u5316",id:"\u67e5\u8be2\u4f18\u5316",level:3},{value:"\u5197\u4f59\u7d22\u5f15",id:"\u5197\u4f59\u7d22\u5f15",level:3},{value:"\u5b58\u50a8\u5f15\u64ce",id:"\u5b58\u50a8\u5f15\u64ce",level:3},{value:"MyISAM\u548cInnoDB\u533a\u522b",id:"myisam\u548cinnodb\u533a\u522b",level:3},{value:"\u4e50\u89c2\u9501\u4e0e\u60b2\u89c2\u9501\u7684\u533a\u522b",id:"\u4e50\u89c2\u9501\u4e0e\u60b2\u89c2\u9501\u7684\u533a\u522b",level:3},{value:"\u60b2\u89c2\u9501",id:"\u60b2\u89c2\u9501",level:4},{value:"\u4e50\u89c2\u9501",id:"\u4e50\u89c2\u9501",level:4},{value:"\u4e24\u79cd\u9501\u7684\u4f7f\u7528\u573a\u666f",id:"\u4e24\u79cd\u9501\u7684\u4f7f\u7528\u573a\u666f",level:4},{value:"\u65e5\u5fd7\u76f8\u5173/Binlog\u7b49",id:"\u65e5\u5fd7\u76f8\u5173binlog\u7b49",level:3},{value:"Binlog\u5f55\u5165\u683c\u5f0f",id:"binlog\u5f55\u5165\u683c\u5f0f",level:4},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:4},{value:"\u5360\u7528\u78c1\u76d8\u5927\u5c0f/\u6570\u636e\u5927\u5c0f/\u7d22\u5f15\u5927\u5c0f",id:"\u5360\u7528\u78c1\u76d8\u5927\u5c0f\u6570\u636e\u5927\u5c0f\u7d22\u5f15\u5927\u5c0f",level:3},{value:"\u4f18\u5316",id:"\u4f18\u5316",level:3}],y={toc:u},c="wrapper";function d(e){let{components:n,...l}=e;return(0,t.yg)(c,(0,a.A)({},y,l,{components:n,mdxType:"MDXLayout"}),(0,t.yg)("h3",{id:"\u7248\u672c\u9009\u62e9"},"\u7248\u672c\u9009\u62e9"),(0,t.yg)("p",null,"\u5f53\u524d\u6bd4\u8f83\u7a33\u5b9a\u7248\u672c\u662f5.6\u30015.7\u548c8.0\uff0c\u5982\u679c\u662f\u65b0\u9879\u76ee\u5f53\u7136\u662f\u75288.0\uff1b6.0\u5c31\u662f\u4e2a\u5e9f\u5f03\u7248\u672c\uff0c7.x\u662fNDB Cluster\u7248\uff1b"),(0,t.yg)("p",null,"mysql8.0\u7684\u4e3b\u8981\u65b0\u7279\u6027\uff1a"),(0,t.yg)("ol",null,(0,t.yg)("li",{parentName:"ol"},"hash join\uff1b")),(0,t.yg)("h3",{id:"\u4fee\u6539\u65f6\u533a"},"\u4fee\u6539\u65f6\u533a"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},"docker exec -it mysql02 bash\ncd /etc/mysql/mysql.conf.d\necho \"default-time_zone = '+8:00'\" >> mysqld.cnf\nexit\ndocker restart mysql02\n")),(0,t.yg)("h3",{id:"\u521b\u5efa\u7528\u6237\u5e76\u6388\u6743"},"\u521b\u5efa\u7528\u6237\u5e76\u6388\u6743"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},"-- \u521b\u5efa\u7528\u6237\ncreate user 'xx'@'%' identified by 'xx';\n-- \u6388\u6743\u67d0\u4e2a\u8868\u7684\u67e5\u8be2\u548c\u589e\u52a0\u6743\u9650\ngrant SELECT,INSERT on newcloud.elk_user_func_flow_for_user_op_for_res to 'xx'@'%';\n-- \u5220\u9664\u7528\u6237\ndrop user 'xx'@'%';\n-- \u67e5\u770b\u67d0\u4e2a\u7528\u6237\u7684\u6388\u6743\u4fe1\u606f\nshow grants for 'cloudExtend'@'%'; \n--\nflush privileges;\n")),(0,t.yg)("h3",{id:"\u5185\u5b58\u5206\u914d"},"\u5185\u5b58\u5206\u914d"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-sql"},"-- \u67e5\u8be2\u5171\u4eab\u5185\u5b58\u4f7f\u7528\u60c5\u51b5 \u5355\u4f4d\u662fByte\nshow variables where variable_name in (\n'innodb_buffer_pool_size','innodb_log_buffer_size','innodb_additional_mem_pool_size','key_buffer_size','query_cache_size'\n);\n-- InnoDB \u7f13\u51b2\u6c60\u5212\u5206\u4e3a\u7684\u533a\u57df\u6570\nshow variables like 'innodb_buffer_pool_instances'\n-- \u67e5\u8be2session\u79c1\u6709\u5185\u6d4b\u4f7f\u7528\u60c5\u51b5 \u5355\u4f4d\u662fByte\nshow variables where variable_name in (\n'read_buffer_size','read_rnd_buffer_size','sort_buffer_size','join_buffer_size','binlog_cache_size','tmp_table_size'\n);\n")),(0,t.yg)("p",null,"MySQL \u7684\u5185\u5b58\u5927\u4f53\u53ef\u4ee5\u5206\u4e3a\u5171\u4eab\u5185\u5b58\u548c session \u79c1\u6709\u5185\u5b58\u4e24\u90e8\u5206\uff0c\u4e0b\u9762\u5c06\u8be6\u7ec6\u4ecb\u7ecd\u5404\u90e8\u5206\u7684\u6784\u6210\u3002"),(0,t.yg)("h4",{id:"\u5171\u4eab\u5185\u5b58"},"\u5171\u4eab\u5185\u5b58"),(0,t.yg)("p",null,"\u53c2\u6570\u8bf4\u660e\uff1a"),(0,t.yg)("ul",null,(0,t.yg)("li",{parentName:"ul"},"innodb_buffer_pool\n\u8be5\u90e8\u5206\u7f13\u5b58\u662f Innodb \u5f15\u64ce\u6700\u91cd\u8981\u7684\u7f13\u5b58\u533a\u57df\uff0c\u662f\u901a\u8fc7\u5185\u5b58\u6765\u5f25\u8865\u7269\u7406\u6570\u636e\u6587\u4ef6\u7684\u91cd\u8981\u624b\u6bb5\u3002\u5176\u4e2d\u4e3b\u8981\u5305\u542b\u6570\u636e\u9875\u3001\u7d22\u5f15\u9875\u3001undo \u9875\u3001insert buffer\u3001\u81ea\u9002\u5e94\u54c8\u5e0c\u7d22\u5f15\u3001\u9501\u4fe1\u606f\u4ee5\u53ca\u6570\u636e\u5b57\u5178\u7b49\u4fe1\u606f\u3002\u5728\u8fdb\u884c SQL \u8bfb\u548c\u5199\u7684\u64cd\u4f5c\u65f6\uff0c\u9996\u5148\u5e76\u4e0d\u662f\u5bf9\u7269\u7406\u6570\u636e\u6587\u4ef6\u64cd\u4f5c\uff0c\u800c\u662f\u5148\u5bf9 buffer_pool \u8fdb\u884c\u64cd\u4f5c\uff0c\u7136\u540e\u518d\u901a\u8fc7 checkpoint \u7b49\u673a\u5236\u5199\u56de\u6570\u636e\u6587\u4ef6\u3002\u8be5\u7a7a\u95f4\u7684\u4f18\u70b9\u662f\u53ef\u4ee5\u63d0\u5347\u6570\u636e\u5e93\u7684\u6027\u80fd\u3001\u52a0\u5feb SQL \u8fd0\u884c\u901f\u5ea6\uff0c\u7f3a\u70b9\u662f\u6545\u969c\u6062\u590d\u901f\u5ea6\u8f83\u6162\u3002"),(0,t.yg)("li",{parentName:"ul"},"innodb_log_buffer\n\u8be5\u90e8\u5206\u4e3b\u8981\u5b58\u653e redo log \u7684\u4fe1\u606f\uff0c\u5728 RDS \u4e0a\u4f1a\u8bbe\u7f6e 1 M \u7684\u5927\u5c0f\u3002InnoDB \u4f1a\u9996\u5148\u5c06 redo log \u5199\u5728\u8fd9\u91cc\uff0c\u7136\u540e\u6309\u7167\u4e00\u5b9a\u9891\u7387\u5c06\u5176\u5237\u65b0\u56de\u91cd\u505a\u65e5\u5fd7\u6587\u4ef6\u4e2d\u3002\u8be5\u7a7a\u95f4\u4e0d\u9700\u8981\u592a\u5927\uff0c\u56e0\u4e3a\u4e00\u822c\u60c5\u51b5\u4e0b\u8be5\u90e8\u5206\u7f13\u5b58\u4f1a\u4ee5\u8f83\u5feb\u9891\u7387\u5237\u65b0\u81f3 redo log\uff08Master Thread \u4f1a\u6bcf\u79d2\u5237\u65b0\u3001\u4e8b\u52a1\u63d0\u4ea4\u65f6\u4f1a\u5237\u65b0\u3001\u5176\u7a7a\u95f4\u5c11\u4e8e 1/2 \u65f6\u540c\u6837\u4f1a\u5237\u65b0\uff09\u3002"),(0,t.yg)("li",{parentName:"ul"},"innodb_additional_mem_pool\n\u8be5\u90e8\u5206\u4e3b\u8981\u5b58\u653e InnoDB \u5185\u7684\u4e00\u4e9b\u6570\u636e\u7ed3\u6784\uff0c\u5728 RDS \u4e2d\u7edf\u4e00\u8bbe\u7f6e\u4e3a 2 M\u3002\u901a\u5e38\u662f\u5728 buffer_pool \u4e2d\u7533\u8bf7\u5185\u5b58\u7684\u65f6\u5019\u8fd8\u9700\u8981\u5728\u989d\u5916\u5185\u5b58\u4e2d\u7533\u8bf7\u7a7a\u95f4\u5b58\u50a8\u8be5\u5bf9\u8c61\u7684\u7ed3\u6784\u4fe1\u606f\u3002\u8be5\u5927\u5c0f\u4e3b\u8981\u4e0e\u8868\u6570\u91cf\u6709\u5173\uff0c\u8868\u6570\u91cf\u8d8a\u5927\u9700\u8981\u66f4\u5927\u7684\u7a7a\u95f4\u3002"),(0,t.yg)("li",{parentName:"ul"},"key_buffer\n\u8be5\u90e8\u5206\u662f MyISAM \u8868\u7684\u91cd\u8981\u7f13\u5b58\u533a\u57df\uff0c\u6240\u6709\u5b9e\u4f8b\u7edf\u4e00\u4e3a 16 M\u3002\u8be5\u90e8\u5206\u4e3b\u8981\u5b58\u653e MyISAM \u8868\u7684\u952e\u3002MyISAM \u8868\u4e0d\u540c\u4e8e InnoDB \u8868\uff0c\u5176\u7f13\u5b58\u7684\u7d22\u5f15\u7f13\u5b58\u662f\u653e\u5728 key_buffer \u4e2d\u7684\uff0c\u800c\u6570\u636e\u7f13\u5b58\u5219\u5b58\u50a8\u4e8e\u64cd\u4f5c\u7cfb\u7edf\u7684\u5185\u5b58\u4e2d\u3002RDS \u7684\u7cfb\u7edf\u662f MyISAM \u5f15\u64ce\u7684\uff0c\u56e0\u6b64\u5728 RDS \u4e2d\u662f\u7ed9\u4e88\u8be5\u90e8\u5206\u4e00\u5b9a\u91cf\u7684\u7a7a\u95f4\u7684\u3002"),(0,t.yg)("li",{parentName:"ul"},"query_cache\n\u8be5\u90e8\u5206\u662f\u5bf9\u67e5\u8be2\u7ed3\u679c\u505a\u7f13\u5b58\u4ee5\u51cf\u5c11\u89e3\u6790 SQL \u548c\u6267\u884c SQL \u7684\u82b1\u9500\uff0c\u5728 RDS \u4e0a\u5173\u95ed\u4e86\u8be5\u90e8\u5206\u7684\u7f13\u5b58\u3002\u4e3b\u8981\u9002\u5408\u4e8e\u8bfb\u591a\u5199\u5c11\u7684\u5e94\u7528\u573a\u666f\uff0c\u56e0\u4e3a\u5b83\u662f\u6309\u7167 SQL \u8bed\u53e5\u7684 hash \u503c\u8fdb\u884c\u7f13\u5b58\u7684\uff0c\u5f53\u8868\u6570\u636e\u53d1\u751f\u53d8\u5316\u540e\u5373\u5931\u6548\u3002")),(0,t.yg)("h4",{id:"session-\u79c1\u6709\u5185\u5b58"},"Session \u79c1\u6709\u5185\u5b58"),(0,t.yg)("p",null,"\u5171\u4eab\u5185\u5b58\u4e2d\u4ecb\u7ecd\u7684\u5185\u5b58\u7a7a\u95f4\u662f\u5b9e\u4f8b\u521b\u5efa\u65f6\u5373\u5206\u914d\u7684\u5185\u5b58\u7a7a\u95f4\uff0c\u5e76\u4e14\u662f\u6240\u6709\u8fde\u63a5\u5171\u4eab\u7684\u3002"),(0,t.yg)("p",null,"\u53c2\u6570\u8bf4\u660e\uff1a"),(0,t.yg)("ul",null,(0,t.yg)("li",{parentName:"ul"},"read_buffer&read_rnd_buffer\n\u5206\u522b\u5b58\u653e\u4e86\u5bf9\u987a\u5e8f\u548c\u968f\u673a\u626b\u63cf\uff08\u4f8b\u5982\u6309\u7167\u6392\u5e8f\u7684\u987a\u5e8f\u8bbf\u95ee\uff09\u7684\u7f13\u5b58\uff0cRDS \u7ed9\u6bcf\u4e2a session \u8bbe\u7f6e 256 K \u7684\u5927\u5c0f\u3002\u5f53 thread \u8fdb\u884c\u987a\u5e8f\u6216\u968f\u673a\u626b\u63cf\u6570\u636e\u65f6\u4f1a\u9996\u5148\u626b\u63cf\u8be5 buffer \u7a7a\u95f4\u4ee5\u907f\u514d\u66f4\u591a\u7684\u7269\u7406\u8bfb\u3002"),(0,t.yg)("li",{parentName:"ul"},"sort_buffer\n\u9700\u8981\u6267\u884c order by \u548c group by \u7684 SQL \u90fd\u4f1a\u5206\u914d sort_buffer\uff0c\u7528\u4e8e\u5b58\u50a8\u6392\u5e8f\u7684\u4e2d\u95f4\u7ed3\u679c\uff0c\u5728 RDS \u4e0a\u8bbe\u7f6e 256 K\u3002\u5728\u6392\u5e8f\u8fc7\u7a0b\u4e2d\uff0c\u82e5\u5b58\u50a8\u91cf\u5927\u4e8e sort_buffer_size\uff0c\u5219\u4f1a\u5728\u78c1\u76d8\u751f\u6210\u4e34\u65f6\u8868\u4ee5\u5b8c\u6210\u64cd\u4f5c\u3002\u5728 Linux \u7cfb\u7edf\u4e2d\uff0c\u5f53\u5206\u914d\u7a7a\u95f4\u5927\u4e8e 2 M \u65f6\u4f1a\u4f7f\u7528 mmap() \u800c\u4e0d\u662f malloc() \u6765\u8fdb\u884c\u5185\u5b58\u5206\u914d\uff0c\u5bfc\u81f4\u6548\u7387\u964d\u4f4e\u3002"),(0,t.yg)("li",{parentName:"ul"},"join_buffer\nMySQL \u4ec5\u652f\u6301 nest loop \u7684 join \u7b97\u6cd5\uff0cRDS \u8bbe\u7f6e 256 K \u7684\u5927\u5c0f\u3002\u5904\u7406\u903b\u8f91\u662f\u9a71\u52a8\u8868\u7684\u4e00\u884c\u548c\u975e\u9a71\u52a8\u8868\u8054\u5408\u67e5\u627e\uff0c\u8fd9\u65f6\u5c31\u53ef\u4ee5\u5c06\u975e\u9a71\u52a8\u8868\u653e\u5165 join_buffer\uff0c\u4e0d\u9700\u8981\u8bbf\u95ee\u62e5\u6709\u5e76\u53d1\u4fdd\u62a4\u673a\u5236\u7684 buffer_pool\u3002"),(0,t.yg)("li",{parentName:"ul"},"binlog_cache\n\u8be5\u533a\u57df\u7528\u6765\u7f13\u5b58\u8be5 thread \u7684 binlog \u65e5\u5fd7\uff0cRDS \u8bbe\u7f6e 256 K \u7684\u5927\u5c0f\u3002\u5728\u4e00\u4e2a\u4e8b\u52a1\u8fd8\u6ca1\u6709 commit \u4e4b\u524d\u4f1a\u5148\u5c06\u5176\u65e5\u5fd7\u5b58\u50a8\u4e8e binlog_cache \u4e2d\uff0c\u7b49\u5230\u4e8b\u52a1 commit \u540e\u4f1a\u5c06\u5176 binlog \u5237\u56de\u78c1\u76d8\u4e0a\u7684 binlog \u6587\u4ef6\u4ee5\u6301\u4e45\u5316\u3002"),(0,t.yg)("li",{parentName:"ul"},"tmp_table\n\u4e0d\u540c\u4e8e\u4e0a\u9762\u5404\u4e2a session \u5c42\u6b21\u7684 buffer\uff0c\u8fd9\u4e2a\u53c2\u6570\u53ef\u4ee5\u5728\u63a7\u5236\u53f0\u4e0a\u4fee\u6539\u3002\u8be5\u53c2\u6570\u662f\u6307\u7528\u6237\u5185\u5b58\u4e34\u65f6\u8868\u7684\u5927\u5c0f\uff0c\u5982\u679c\u8be5 thread \u521b\u5efa\u7684\u4e34\u65f6\u8868\u8d85\u8fc7\u5b83\u8bbe\u7f6e\u7684\u5927\u5c0f\u4f1a\u628a\u4e34\u65f6\u8868\u8f6c\u6362\u4e3a\u78c1\u76d8\u4e0a\u7684\u4e00\u5f20 MyISAM \u4e34\u65f6\u8868\u3002\u5982\u679c\u7528\u6237\u5728\u6267\u884c\u4e8b\u52a1\u65f6\u9047\u5230\u7c7b\u4f3c\u5982\u4e0b\u8fd9\u6837\u7684\u9519\u8bef\uff0c\u53ef\u4ee5\u8003\u8651\u589e\u5927 tmp_table \u7684\u503c\u3002")),(0,t.yg)("h4",{id:"\u5982\u4f55\u8bbe\u7f6e"},"\u5982\u4f55\u8bbe\u7f6e"),(0,t.yg)("p",null,"\u9488\u5bf9\u5f53\u524dMySQL\u4f01\u4e1a\u7528\u6237\u7684\u5b9e\u9645\u73af\u5883\uff08\u5927\u5185\u5b58\uff09\uff1a"),(0,t.yg)("ol",null,(0,t.yg)("li",{parentName:"ol"},"\u5728\u4e13\u7528\u6570\u636e\u5e93\u670d\u52a1\u5668\u4e0a\uff0c\u53ef\u4ee5\u5c06innodb_buffer_pool_size\u8bbe\u7f6e\u4e3a\u8ba1\u7b97\u673a\u7269\u7406\u5185\u5b58\u5927\u5c0f\u768480\uff05;"),(0,t.yg)("li",{parentName:"ol"},"\u5728innodb_buffer_pool_size\u8bbe\u7f6e\u6bd4\u8f83\u5927\u7684\u60c5\u51b5\u4e0b\uff0c\u53ef\u4ee5\u5c06innodb_buffer_pool_instances\u7684\u503c\u8bbe\u7f6e\u4e3a8-16\uff0c\u4fdd\u8bc1\u4e00\u4e2apool 10G\u4ee5\u4e0a\u3002")),(0,t.yg)("p",null,"\uff08\u6ce8\u610finnodb_buffer_pool_size\u5fc5\u987b\u4e3a\xa0innodb_buffer_pool_instances \u7684\u500d\u6570\uff09"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},"#\u901a\u8fc7SQL\u4fee\u6539 \u91cd\u542f\u540e\u5931\u6548 2G\nset global innodb_buffer_pool_size = 2147483648\n\n#\u4fee\u6539my.cnf\u914d\u7f6e \u9700\u8981\u91cd\u542f\ninnodb_buffer_pool_size = 2147483648\ninnodb_buffer_pool_size = 2G\ninnodb_buffer_pool_size = 2048M\n")),(0,t.yg)("h3",{id:"\u67e5\u8be2\u4f18\u5316"},"\u67e5\u8be2\u4f18\u5316"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-sql"},"#\n-- \u67e5\u8be2\u7f13\u5b58\nshow variables where variable_name in (\n'have_query_cache','query_cache_limit','query_cache_min_res_unit','query_cache_size','query_cache_type','query_cache_wlock_invalidate'\n);\n")),(0,t.yg)("ol",null,(0,t.yg)("li",{parentName:"ol"},"have_query_cache\uff1a\u5f53\u524d\u7684MYSQL\u7248\u672c\u662f\u5426\u652f\u6301\u201c\u67e5\u8be2\u7f13\u5b58\u201d\u529f\u80fd\u3002"),(0,t.yg)("li",{parentName:"ol"},"query_cache_min_res_unit\uff1a\u67e5\u8be2\u7f13\u5b58\u5206\u914d\u7684\u6700\u5c0f\u5757\uff08\u5b57\u8282\uff09\u3002\u9ed8\u8ba4\u503c\u662f4096\uff084KB\uff09\u3002\u5f53\u67e5\u8be2\u8fdb\u884c\u65f6\uff0cMySQL\u628a\u67e5\u8be2\u7ed3\u679c\u4fdd\u5b58\u5728query cache\uff0c\u4f46\u662f\u5982\u679c\u4fdd\u5b58\u7684\u7ed3\u679c\u6bd4\u8f83\u5927\uff0c\u8d85\u8fc7\u4e86query_cache_min_res_unit\u7684\u503c\uff0c\u8fd9\u65f6\u5019MySQL\u5c06\u4e00\u8fb9\u68c0\u7d22\u7ed3\u679c\uff0c\u4e00\u8fb9\u8fdb\u884c\u4fdd\u5b58\u7ed3\u679c\u3002\u4ed6\u4fdd\u5b58\u7ed3\u679c\u4e5f\u662f\u6309\u9ed8\u8ba4\u5927\u5c0f\u5148\u5206\u914d\u4e00\u5757\u7a7a\u95f4\uff0c\u5982\u679c\u4e0d\u591f\uff0c\u53c8\u8981\u7533\u8bf7\u65b0\u7684\u7a7a\u95f4\u7ed9\u4ed6\u3002\u5982\u679c\u67e5\u8be2\u7ed3\u679c\u6bd4\u8f83\u5c0f\uff0c\u9ed8\u8ba4\u7684query_cache_min_res_unit\u53ef\u80fd\u9020\u6210\u5927\u91cf\u7684\u5185\u5b58\u788e\u7247\uff0c\u5982\u679c\u67e5\u8be2\u7ed3\u679c\u6bd4\u8f83\u5927\uff0c\u9ed8\u8ba4\u7684query_cache_min_res_unit\u53c8\u4e0d\u591f\uff0c\u5bfc\u81f4\u4e00\u76f4\u5206\u914d\u5757\u7a7a\u95f4\uff0c\u6240\u4ee5\u53ef\u4ee5\u6839\u636e\u5b9e\u9645\u9700\u6c42\uff0c\u8c03\u8282query_cache_min_res_unit\u7684\u5927\u5c0f\u3002\u6ce8\uff1a\u5982\u679c\u4e0a\u9762\u8bf4\u7684\u5185\u5bb9\u6709\u70b9\u5f2f\u5f2f\u7ed5\uff0c\u90a3\u4e3e\u4e2a\u73b0\u5b9e\u751f\u6d3b\u4e2d\u7684\u4f8b\u5b50\uff0c\u6bd4\u5982\u54b1\u73b0\u5728\u8981\u7ed9\u8fd0\u52a8\u5458\u9001\u6c34\uff0c\u9ed8\u8ba4\u7684\u662f500ml\u7684\u74f6\u5b50\uff0c\u5982\u679c\u8fc7\u6765\u7684\u662f\u5c11\u5e74\u8fd0\u52a8\u5458\uff0c\u53ef\u80fd500ml\u592a\u5927\u4e86\uff0c\u4ed6\u4eec\u559d\u4e0d\u5b8c\uff0c\u9020\u6210\u4e86\u6d6a\u8d39\uff0c\u90a3\u6211\u4eec\u5c31\u53ef\u4ee5\u9009\u62e9300ml\u7684\u74f6\u5b50\uff0c\u5982\u679c\u8fc7\u6765\u7684\u662f\u6210\u5e74\u8fd0\u52a8\u5458\uff0c\u53ef\u80fd500ml\u4e0d\u591f\uff0c\u90a3\u4ed6\u4eec\u4e00\u74f6\u559d\u5b8c\u4e86\uff0c\u53c8\u5f00\u4e00\u74f6\uff0c\u76f4\u63a5\u4e0d\u6e34\u4e3a\u6b62\u3002\u90a3\u4e48\u90a3\u6837\u5f00\u74f6\u5b50\u4e5f\u8981\u65f6\u95f4\uff0c\u6211\u4eec\u5c31\u53ef\u4ee5\u9009\u62e91000ml\u7684\u74f6\u5b50\u3002"),(0,t.yg)("li",{parentName:"ol"},"query_cache_size\uff1a\u4e3a\u7f13\u5b58\u67e5\u8be2\u7ed3\u679c\u5206\u914d\u7684\u603b\u5185\u5b58\u3002"),(0,t.yg)("li",{parentName:"ol"},"query_cache_type\uff1a\u9ed8\u8ba4\u4e3aon\u3002"),(0,t.yg)("li",{parentName:"ol"},"query_cache_wlock_invalidate\uff1a\u5982\u679c\u8be5\u8868\u88ab\u9501\u4f4f\uff0c\u662f\u5426\u8fd4\u56de\u7f13\u5b58\u4e2d\u7684\u6570\u636e\uff0c\u9ed8\u8ba4\u662f\u5173\u95ed\u7684\u3002")),(0,t.yg)("p",null,"MYSQL\u7684\u67e5\u8be2\u7f13\u5b58\u5b9e\u8d28\u4e0a\u662f\u7f13\u5b58SQL\u7684hash\u503c\u548c\u8be5SQL\u7684\u67e5\u8be2\u7ed3\u679c\uff0c\u5982\u679c\u8fd0\u884c\u76f8\u540c\u7684SQL,\u670d\u52a1\u5668\u76f4\u63a5\u4ece\u7f13\u5b58\u4e2d\u53bb\u6389\u7ed3\u679c\uff0c\u800c\u4e0d\u518d\u53bb\u89e3\u6790\uff0c\u4f18\u5316\uff0c\u5bfb\u627e\u6700\u4f4e\u6210\u672c\u7684\u6267\u884c\u8ba1\u5212\u7b49\u4e00\u7cfb\u5217\u64cd\u4f5c\uff0c\u5927\u5927\u63d0\u5347\u4e86\u67e5\u8be2\u901f\u5ea6\u3002\n\u4f46\u662f\u4e07\u4e8b\u6709\u5229\u4e5f\u6709\u5f0a\u3002"),(0,t.yg)("ul",null,(0,t.yg)("li",{parentName:"ul"},"\u7b2c\u4e00\u4e2a\u5f0a\u7aef\u5c31\u662f\u5982\u679c\u8868\u7684\u6570\u636e\u6709\u4e00\u6761\u53d1\u751f\u53d8\u5316\uff0c\u90a3\u4e48\u7f13\u5b58\u597d\u7684\u7ed3\u679c\u5c06\u5168\u90e8\u4e0d\u518d\u6709\u6548\u3002\u8fd9\u5bf9\u4e8e\u9891\u7e41\u66f4\u65b0\u7684\u8868\uff0c\u67e5\u8be2\u7f13\u5b58\u662f\u4e0d\u9002\u5408\u7684\u3002"),(0,t.yg)("li",{parentName:"ul"},"\u7b2c\u4e8c\u4e2a\u5f0a\u7aef\u5c31\u662f\u7f13\u5b58\u673a\u5236\u662f\u901a\u8fc7\u5bf9SQL\u7684hash\uff0c\u5f97\u51fa\u7684\u503c\u4e3akey\uff0c\u67e5\u8be2\u7ed3\u679c\u4e3avalue\u6765\u5b58\u653e\u7684\uff0c\u90a3\u4e48\u5c31\u610f\u5473\u7740SQL\u5fc5\u987b\u5b8c\u5b8c\u5168\u5168\u4e00\u6a21\u4e00\u6837\uff0c\u5426\u5219\u5c31\u547d\u4e0d\u4e2d\u7f13\u5b58\u3002")),(0,t.yg)("p",null,"\u9ed8\u8ba4query_cache_type\u8bbe\u7f6e\u4e3aOFF\uff0c\u5176\u5b9e\u7f51\u4e0a\u8d44\u6599\u548c\u5404\u5927\u4e91\u5382\u5546\u63d0\u4f9b\u7684\u4e91\u670d\u52a1\u5668\u90fd\u662f\u5c06\u8fd9\u4e2a\u529f\u80fd\u5173\u95ed\u7684\uff0c\u4ece\u4e0a\u9762\u7684\u539f\u7406\u6765\u770b\uff0c\u5728\u4e00\u822c\u60c5\u51b5\u4e0b\uff0c\u4ed6\u7684\u5f0a\u7aef\u5927\u4e8e\u4f18\u70b9\u3002"),(0,t.yg)("h3",{id:"\u5197\u4f59\u7d22\u5f15"},"\u5197\u4f59\u7d22\u5f15"),(0,t.yg)("p",null,"\u5197\u4f59\u7d22\u5f15\u6307\u7684\u662f\u7d22\u5f15\u7684\u529f\u80fd\u76f8\u540c\uff0c\u80fd\u591f\u547d\u4e2d\u5c31\u80af\u5b9a\u80fd\u547d\u4e2d \uff0c\u90a3\u4e48\u5c31\u662f\u5197\u4f59\u7d22\u5f15\u5982\uff08name,city \uff09\u548c\uff08name \uff09\u8fd9\u4e24\u4e2a\u7d22\u5f15\u5c31\u662f\u5197\u4f59\u7d22\u5f15\uff0c\u80fd\u591f\u547d\u4e2d\u540e\u8005\u7684\u67e5\u8be2\u80af\u5b9a\u662f\u80fd\u591f\u547d\u4e2d\u524d\u8005\u7684 \u5728\u5927\u591a\u6570\u60c5\u51b5\u4e0b\uff0c\u90fd\u5e94\u8be5\u5c3d\u91cf\u6269\u5c55\u5df2\u6709\u7684\u7d22\u5f15\u800c\u4e0d\u662f\u521b\u5efa\u65b0\u7d22\u5f15\u3002\nMySQLS.7 \u7248\u672c\u540e\uff0c\u53ef\u4ee5\u901a\u8fc7\u67e5\u8be2 sys \u5e93\u7684 schema_redundant_indexes \u8868\u6765\u67e5\u770b\u5197\u4f59\u7d22\u5f15\u3002"),(0,t.yg)("h3",{id:"\u5b58\u50a8\u5f15\u64ce"},"\u5b58\u50a8\u5f15\u64ce"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-sql"},"-- \u67e5\u8be2\u5f53\u524d\u6570\u636e\u5e93\u670d\u52a1\u5668\u652f\u6301\u7684\u5b58\u50a8\u5f15\u64ce\u5217\u8868\nshow engines;\n-- \u67e5\u770b\u9ed8\u8ba4\u7684\u5b58\u50a8\u5f15\u64ce\nshow variables like '%storage_engine%';\n-- \u67e5\u770b\u8868\u7684\u5b58\u50a8\u5f15\u64ce\u53ca\u5176\u4ed6\u76f8\u5173\u4fe1\u606f\nshow table status like \"table_name\";\n")),(0,t.yg)("h3",{id:"myisam\u548cinnodb\u533a\u522b"},"MyISAM\u548cInnoDB\u533a\u522b"),(0,t.yg)("p",null,"MyISAM\u662fMySQL\u7684\u9ed8\u8ba4\u6570\u636e\u5e93\u5f15\u64ce\uff085.5\u7248\u4e4b\u524d\uff09\u3002\u867d\u7136\u6027\u80fd\u6781\u4f73\uff0c\u800c\u4e14\u63d0\u4f9b\u4e86\u5927\u91cf\u7684\u7279\u6027\uff0c\u5305\u62ec\u5168\u6587\u7d22\u5f15\u3001\u538b\u7f29\u3001\u7a7a\u95f4\u51fd\u6570\u7b49\uff0c\u4f46MyISAM\u4e0d\u652f\u6301\u4e8b\u52a1\u548c\u884c\u7ea7\u9501\uff0c\u800c\u4e14\u6700\u5927\u7684\u7f3a\u9677\u5c31\u662f\u5d29\u6e83\u540e\u65e0\u6cd5\u5b89\u5168\u6062\u590d\u3002\u4e0d\u8fc7\uff0c5.5\u7248\u672c\u4e4b\u540e\uff0cMySQL\u5f15\u5165\u4e86InnoDB\uff08\u4e8b\u52a1\u6027\u6570\u636e\u5e93\u5f15\u64ce\uff09\uff0cMySQL 5.5\u7248\u672c\u540e\u9ed8\u8ba4\u7684\u5b58\u50a8\u5f15\u64ce\u4e3aInnoDB\u3002\n\u5927\u591a\u6570\u65f6\u5019\u6211\u4eec\u4f7f\u7528\u7684\u90fd\u662f InnoDB \u5b58\u50a8\u5f15\u64ce\uff0c\u4f46\u662f\u5728\u67d0\u4e9b\u60c5\u51b5\u4e0b\u4f7f\u7528 MyISAM \u4e5f\u662f\u5408\u9002\u7684\u6bd4\u5982\u8bfb\u5bc6\u96c6\u7684\u60c5\u51b5\u4e0b\u3002\uff08\u5982\u679c\u4f60\u4e0d\u4ecb\u610f MyISAM \u5d29\u6e83\u56de\u590d\u95ee\u9898\u7684\u8bdd\uff09\u3002"),(0,t.yg)("p",null,"\u4e24\u8005\u7684\u5bf9\u6bd4\uff1a"),(0,t.yg)("ol",null,(0,t.yg)("li",{parentName:"ol"},"\u662f\u5426\u652f\u6301\u884c\u7ea7\u9501: MyISAM \u53ea\u6709\u8868\u7ea7\u9501(table-level locking)\uff0c\u800cInnoDB \u652f\u6301\u884c\u7ea7\u9501(row-level locking)\u548c\u8868\u7ea7\u9501,\u9ed8\u8ba4\u4e3a\u884c\u7ea7\u9501\u3002"),(0,t.yg)("li",{parentName:"ol"},"\u662f\u5426\u652f\u6301\u4e8b\u52a1\u548c\u5d29\u6e83\u540e\u7684\u5b89\u5168\u6062\u590d\uff1aMyISAM\u5f3a\u8c03\u7684\u662f\u6027\u80fd\uff0c\u6bcf\u6b21\u67e5\u8be2\u5177\u6709\u539f\u5b50\u6027,\u5176\u6267\u884c\u6bd4InnoDB\u7c7b\u578b\u66f4\u5feb\uff0c\u4f46\u662f\u4e0d\u63d0\u4f9b\u4e8b\u52a1\u652f\u6301\u3002\u4f46\u662fInnoDB\u63d0\u4f9b\u4e8b\u52a1\u652f\u6301\u4e8b\u52a1\uff0c\u5916\u90e8\u952e\u7b49\u9ad8\u7ea7\u6570\u636e\u5e93\u529f\u80fd\u3002\u5177\u6709\u4e8b\u52a1(commit)\u3001\u56de\u6eda(rollback)\u548c\u5d29\u6e83\u4fee\u590d\u80fd\u529b(crash recovery capabilities)\u7684\u4e8b\u52a1\u5b89\u5168(transaction-safe (ACID compliant))\u578b\u8868\u3002"),(0,t.yg)("li",{parentName:"ol"},"\u662f\u5426\u652f\u6301\u5916\u952e\uff1aMyISAM\u4e0d\u652f\u6301\uff0c\u800cInnoDB\u652f\u6301\u3002"),(0,t.yg)("li",{parentName:"ol"},"\u662f\u5426\u652f\u6301MVCC\uff1a\u4ec5 InnoDB \u652f\u6301\u3002\u5e94\u5bf9\u9ad8\u5e76\u53d1\u4e8b\u52a1, MVCC\u6bd4\u5355\u7eaf\u7684\u52a0\u9501\u66f4\u9ad8\u6548;MVCC\u53ea\u5728 READ COMMITTED\u548c REPEATABLE READ\u4e24\u4e2a\u9694\u79bb\u7ea7\u522b\u4e0b\u5de5\u4f5c;MVCC\u53ef\u4ee5\u4f7f\u7528 \u4e50\u89c2(optimistic)\u9501 \u548c \u60b2\u89c2(pessimistic)\u9501\u6765\u5b9e\u73b0;\u5404\u6570\u636e\u5e93\u4e2dMVCC\u5b9e\u73b0\u5e76\u4e0d\u7edf\u4e00\u3002"),(0,t.yg)("li",{parentName:"ol"},"......")),(0,t.yg)("p",null,"\u300aMySQL\u9ad8\u6027\u80fd\u300b\u4e0a\u9762\u6709\u4e00\u53e5\u8bdd\u8fd9\u6837\u5199\u5230:"),(0,t.yg)("blockquote",null,(0,t.yg)("p",{parentName:"blockquote"},"\u4e0d\u8981\u8f7b\u6613\u76f8\u4fe1\u201cMyISAM\u6bd4InnoDB\u5feb\u201d\u4e4b\u7c7b\u7684\u7ecf\u9a8c\u4e4b\u8c08\uff0c\u8fd9\u4e2a\u7ed3\u8bba\u5f80\u5f80\u4e0d\u662f\u7edd\u5bf9\u7684\u3002\u5728\u5f88\u591a\u6211\u4eec\u5df2\u77e5\u573a\u666f\u4e2d\uff0cInnoDB\u7684\u901f\u5ea6\u90fd\u53ef\u4ee5\u8ba9MyISAM\u671b\u5c18\u83ab\u53ca\uff0c\u5c24\u5176\u662f\u7528\u5230\u4e86\u805a\u7c07\u7d22\u5f15\uff0c\u6216\u8005\u9700\u8981\u8bbf\u95ee\u7684\u6570\u636e\u90fd\u53ef\u4ee5\u653e\u5165\u5185\u5b58\u7684\u5e94\u7528\u3002")),(0,t.yg)("p",null,"\u4e00\u822c\u60c5\u51b5\u4e0b\u6211\u4eec\u9009\u62e9 InnoDB \u90fd\u662f\u6ca1\u6709\u95ee\u9898\u7684\uff0c\u4f46\u662f\u67d0\u4e8b\u60c5\u51b5\u4e0b\u4f60\u5e76\u4e0d\u5728\u4e4e\u53ef\u6269\u5c55\u80fd\u529b\u548c\u5e76\u53d1\u80fd\u529b\uff0c\u4e5f\u4e0d\u9700\u8981\u4e8b\u52a1\u652f\u6301\uff0c\u4e5f\u4e0d\u5728\u4e4e\u5d29\u6e83\u540e\u7684\u5b89\u5168\u6062\u590d\u95ee\u9898\u7684\u8bdd\uff0c\u9009\u62e9MyISAM\u4e5f\u662f\u4e00\u4e2a\u4e0d\u9519\u7684\u9009\u62e9\u3002\u4f46\u662f\u4e00\u822c\u60c5\u51b5\u4e0b\uff0c\u6211\u4eec\u90fd\u662f\u9700\u8981\u8003\u8651\u5230\u8fd9\u4e9b\u95ee\u9898\u7684\u3002"),(0,t.yg)("h3",{id:"\u4e50\u89c2\u9501\u4e0e\u60b2\u89c2\u9501\u7684\u533a\u522b"},"\u4e50\u89c2\u9501\u4e0e\u60b2\u89c2\u9501\u7684\u533a\u522b"),(0,t.yg)("h4",{id:""}),(0,t.yg)("h4",{id:"\u60b2\u89c2\u9501"},"\u60b2\u89c2\u9501"),(0,t.yg)("p",null,"\u603b\u662f\u5047\u8bbe\u6700\u574f\u7684\u60c5\u51b5\uff0c\u6bcf\u6b21\u53bb\u62ff\u6570\u636e\u7684\u65f6\u5019\u90fd\u8ba4\u4e3a\u522b\u4eba\u4f1a\u4fee\u6539\uff0c\u6240\u4ee5\u6bcf\u6b21\u5728\u62ff\u6570\u636e\u7684\u65f6\u5019\u90fd\u4f1a\u4e0a\u9501\uff0c\u8fd9\u6837\u522b\u4eba\u60f3\u62ff\u8fd9\u4e2a\u6570\u636e\u5c31\u4f1a\u963b\u585e\u76f4\u5230\u5b83\u62ff\u5230\u9501\uff08\u5171\u4eab\u8d44\u6e90\u6bcf\u6b21\u53ea\u7ed9\u4e00\u4e2a\u7ebf\u7a0b\u4f7f\u7528\uff0c\u5176\u5b83\u7ebf\u7a0b\u963b\u585e\uff0c\u7528\u5b8c\u540e\u518d\u628a\u8d44\u6e90\u8f6c\u8ba9\u7ed9\u5176\u5b83\u7ebf\u7a0b\uff09\u3002\u4f20\u7edf\u7684\u5173\u7cfb\u578b\u6570\u636e\u5e93\u91cc\u8fb9\u5c31\u7528\u5230\u4e86\u5f88\u591a\u8fd9\u79cd\u9501\u673a\u5236\uff0c\u6bd4\u5982\u884c\u9501\uff0c\u8868\u9501\u7b49\uff0c\u8bfb\u9501\uff0c\u5199\u9501\u7b49\uff0c\u90fd\u662f\u5728\u505a\u64cd\u4f5c\u4e4b\u524d\u5148\u4e0a\u9501\u3002Java\u4e2dsynchronized\u548cReentrantLock\u7b49\u72ec\u5360\u9501\u5c31\u662f\u60b2\u89c2\u9501\u601d\u60f3\u7684\u5b9e\u73b0\u3002"),(0,t.yg)("h4",{id:"\u4e50\u89c2\u9501"},"\u4e50\u89c2\u9501"),(0,t.yg)("p",null,"\u603b\u662f\u5047\u8bbe\u6700\u597d\u7684\u60c5\u51b5\uff0c\u6bcf\u6b21\u53bb\u62ff\u6570\u636e\u7684\u65f6\u5019\u90fd\u8ba4\u4e3a\u522b\u4eba\u4e0d\u4f1a\u4fee\u6539\uff0c\u6240\u4ee5\u4e0d\u4f1a\u4e0a\u9501\uff0c\u4f46\u662f\u5728\u66f4\u65b0\u7684\u65f6\u5019\u4f1a\u5224\u65ad\u4e00\u4e0b\u5728\u6b64\u671f\u95f4\u522b\u4eba\u6709\u6ca1\u6709\u53bb\u66f4\u65b0\u8fd9\u4e2a\u6570\u636e\uff0c\u53ef\u4ee5\u4f7f\u7528\u7248\u672c\u53f7\u673a\u5236\u548cCAS\u7b97\u6cd5\u5b9e\u73b0\u3002\u4e50\u89c2\u9501\u9002\u7528\u4e8e\u591a\u8bfb\u7684\u5e94\u7528\u7c7b\u578b\uff0c\u8fd9\u6837\u53ef\u4ee5\u63d0\u9ad8\u541e\u5410\u91cf\uff0c\u50cf\u6570\u636e\u5e93\u63d0\u4f9b\u7684\u7c7b\u4f3c\u4e8ewrite_condition\u673a\u5236\uff0c\u5176\u5b9e\u90fd\u662f\u63d0\u4f9b\u7684\u4e50\u89c2\u9501\u3002\u5728Java\u4e2djava.util.concurrent.atomic\u5305\u4e0b\u9762\u7684\u539f\u5b50\u53d8\u91cf\u7c7b\u5c31\u662f\u4f7f\u7528\u4e86\u4e50\u89c2\u9501\u7684\u4e00\u79cd\u5b9e\u73b0\u65b9\u5f0fCAS\u5b9e\u73b0\u7684\u3002"),(0,t.yg)("h4",{id:"\u4e24\u79cd\u9501\u7684\u4f7f\u7528\u573a\u666f"},"\u4e24\u79cd\u9501\u7684\u4f7f\u7528\u573a\u666f"),(0,t.yg)("p",null,"\u4ece\u4e0a\u9762\u5bf9\u4e24\u79cd\u9501\u7684\u4ecb\u7ecd\uff0c\u6211\u4eec\u77e5\u9053\u4e24\u79cd\u9501\u5404\u6709\u4f18\u7f3a\u70b9\uff0c\u4e0d\u53ef\u8ba4\u4e3a\u4e00\u79cd\u597d\u4e8e\u53e6\u4e00\u79cd\uff0c\u50cf\u4e50\u89c2\u9501\u9002\u7528\u4e8e\u5199\u6bd4\u8f83\u5c11\u7684\u60c5\u51b5\u4e0b\uff08\u591a\u8bfb\u573a\u666f\uff09\uff0c\u5373\u51b2\u7a81\u771f\u7684\u5f88\u5c11\u53d1\u751f\u7684\u65f6\u5019\uff0c\u8fd9\u6837\u53ef\u4ee5\u7701\u53bb\u4e86\u9501\u7684\u5f00\u9500\uff0c\u52a0\u5927\u4e86\u7cfb\u7edf\u7684\u6574\u4e2a\u541e\u5410\u91cf\u3002\u4f46\u5982\u679c\u662f\u591a\u5199\u7684\u60c5\u51b5\uff0c\u4e00\u822c\u4f1a\u7ecf\u5e38\u4ea7\u751f\u51b2\u7a81\uff0c\u8fd9\u5c31\u4f1a\u5bfc\u81f4\u4e0a\u5c42\u5e94\u7528\u4f1a\u4e0d\u65ad\u7684\u8fdb\u884cretry\uff0c\u8fd9\u6837\u53cd\u5012\u662f\u964d\u4f4e\u4e86\u6027\u80fd\uff0c\u6240\u4ee5\u4e00\u822c\u591a\u5199\u7684\u573a\u666f\u4e0b\u7528\u60b2\u89c2\u9501\u5c31\u6bd4\u8f83\u5408\u9002\u3002"),(0,t.yg)("h3",{id:"\u65e5\u5fd7\u76f8\u5173binlog\u7b49"},"\u65e5\u5fd7\u76f8\u5173/Binlog\u7b49"),(0,t.yg)("h4",{id:"binlog\u5f55\u5165\u683c\u5f0f"},"Binlog\u5f55\u5165\u683c\u5f0f"),(0,t.yg)("ul",null,(0,t.yg)("li",{parentName:"ul"},"\u6709\u4e09\u79cd\u683c\u5f0f\uff0cstatement\uff0crow\u548cmixed\u3002",(0,t.yg)("ul",{parentName:"li"},(0,t.yg)("li",{parentName:"ul"},"statement\u6a21\u5f0f\u4e0b\uff0c\u6bcf\u4e00\u6761\u4f1a\u4fee\u6539\u6570\u636e\u7684sql\u90fd\u4f1a\u8bb0\u5f55\u5728binlog\u4e2d\u3002\u4e0d\u9700\u8981\u8bb0\u5f55\u6bcf\u4e00\u884c\u7684\u53d8\u5316\uff0c\u51cf\u5c11\u4e86binlog\u65e5\u5fd7\u91cf\uff0c\u8282\u7ea6\u4e86IO\uff0c\u63d0\u9ad8\u6027\u80fd\u3002\u7531\u4e8esql\u7684\u6267\u884c\u662f\u6709\u4e0a\u4e0b\u6587\u7684\uff0c\u56e0\u6b64\u5728\u4fdd\u5b58\u7684\u65f6\u5019\u9700\u8981\u4fdd\u5b58\u76f8\u5173\u7684\u4fe1\u606f\uff0c\u540c\u65f6\u8fd8\u6709\u4e00\u4e9b\u4f7f\u7528\u4e86\u51fd\u6570\u4e4b\u7c7b\u7684\u8bed\u53e5\u65e0\u6cd5\u88ab\u8bb0\u5f55\u590d\u5236\u3002"),(0,t.yg)("li",{parentName:"ul"},"row\u7ea7\u522b\u4e0b\uff0c\u4e0d\u8bb0\u5f55sql\u8bed\u53e5\u4e0a\u4e0b\u6587\u76f8\u5173\u4fe1\u606f\uff0c\u4ec5\u4fdd\u5b58\u54ea\u6761\u8bb0\u5f55\u88ab\u4fee\u6539\u3002\u8bb0\u5f55\u5355\u5143\u4e3a\u6bcf\u4e00\u884c\u7684\u6539\u52a8\uff0c\u57fa\u672c\u662f\u53ef\u4ee5\u5168\u90e8\u8bb0\u4e0b\u6765\u4f46\u662f\u7531\u4e8e\u5f88\u591a\u64cd\u4f5c\uff0c\u4f1a\u5bfc\u81f4\u5927\u91cf\u884c\u7684\u6539\u52a8(\u6bd4\u5982alter table)\uff0c\u56e0\u6b64\u8fd9\u79cd\u6a21\u5f0f\u7684\u6587\u4ef6\u4fdd\u5b58\u7684\u4fe1\u606f\u592a\u591a\uff0c\u65e5\u5fd7\u91cf\u592a\u5927\u3002"),(0,t.yg)("li",{parentName:"ul"},"mixed\uff0c\u4e00\u79cd\u6298\u4e2d\u7684\u65b9\u6848\uff0c\u666e\u901a\u64cd\u4f5c\u4f7f\u7528statement\u8bb0\u5f55\uff0c\u5f53\u65e0\u6cd5\u4f7f\u7528statement\u7684\u65f6\u5019\u4f7f\u7528row\u3002"))),(0,t.yg)("li",{parentName:"ul"},"\u6b64\u5916\uff0c\u65b0\u7248\u7684MySQL\u4e2d\u5bf9row\u7ea7\u522b\u4e5f\u505a\u4e86\u4e00\u4e9b\u4f18\u5316\uff0c\u5f53\u8868\u7ed3\u6784\u53d1\u751f\u53d8\u5316\u7684\u65f6\u5019\uff0c\u4f1a\u8bb0\u5f55\u8bed\u53e5\u800c\u4e0d\u662f\u9010\u884c\u8bb0\u5f55\u3002")),(0,t.yg)("h4",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,t.yg)("ol",null,(0,t.yg)("li",{parentName:"ol"},(0,t.yg)("a",{parentName:"li",href:"https://blog.csdn.net/horses/article/details/106053399?utm_medium=distribute.pc_category.none-task-blog-hot-10.nonecase&depth_1-utm_source=distribute.pc_category.none-task-blog-hot-10.nonecase&request_id="},"MySQL \u670d\u52a1\u5668\u4e2d\u7684 6 \u79cd\u65e5\u5fd7\u7c7b\u578b"))),(0,t.yg)("h3",{id:"\u5360\u7528\u78c1\u76d8\u5927\u5c0f\u6570\u636e\u5927\u5c0f\u7d22\u5f15\u5927\u5c0f"},"\u5360\u7528\u78c1\u76d8\u5927\u5c0f/\u6570\u636e\u5927\u5c0f/\u7d22\u5f15\u5927\u5c0f"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-sql"},"-- \u67e5\u770b\u6240\u6709\u6570\u636e\u5e93\u6570\u636e\u5927\u5c0f\u548c\u7d22\u5f15\u5927\u5c0f\nselect TABLE_SCHEMA, \nconcat(truncate(sum(data_length)/1024/1024,2),' MB') as data_size,\nsum(data_length) as data_size_B,\nconcat(truncate(sum(index_length)/1024/1024,2),'MB') as index_size,\nsum(index_length) as index_size_B\nfrom information_schema.tables\ngroup by TABLE_SCHEMA\norder by data_size_B desc;\n\n-- \u67e5\u770b\u67d0\u4e2a\u6570\u636e\u5e93\u6240\u6709\u6570\u636e\u8868\u6570\u636e\u5927\u5c0f\u548c\u7d22\u5f15\u5927\u5c0f\nselect TABLE_NAME, \nconcat(truncate(sum(data_length)/1024/1024,2),' MB') as data_size,\nsum(data_length) as data_size_B,\nconcat(truncate(sum(index_length)/1024/1024,2),'MB') as index_size,\nsum(index_length) as index_size_B\nfrom information_schema.tables\n where TABLE_SCHEMA = 'newcloud'\ngroup by TABLE_NAME\norder by data_size_B desc;\n\n-- \u67e5\u770b\u67d0\u4e2a\u6570\u636e\u5e93\u67d0\u4e2a\u6570\u636e\u8868\u6570\u636e\u5927\u5c0f\u548c\u7d22\u5f15\u5927\u5c0f\nselect TABLE_NAME, \nconcat(truncate(sum(data_length)/1024/1024,2),' MB') as data_size,\nsum(data_length) as data_size_B,\nconcat(truncate(sum(index_length)/1024/1024,2),'MB') as index_size,\nsum(index_length) as index_size_B\nfrom information_schema.tables\nwhere TABLE_SCHEMA = 'newcloud'\nand table_name='log_err_flow'\ngroup by TABLE_NAME\norder by data_size_B desc;\n")),(0,t.yg)("h3",{id:"\u4f18\u5316"},"\u4f18\u5316"),(0,t.yg)("ol",null,(0,t.yg)("li",{parentName:"ol"},(0,t.yg)("a",{parentName:"li",href:"https://cloud.tencent.com/developer/article/1580260"},"\u7a0b\u5e8f\u5458\u8fdb\u9636\u5fc5\u8bfb\uff0c\u4e07\u5b57\u603b\u7ed3Mysql\u4f18\u5316\u7cbe\u534e\u7bc7"))))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6898],{5680:(e,n,l)=>{l.d(n,{xA:()=>y,yg:()=>g});var a=l(6540);function t(e,n,l){return n in e?Object.defineProperty(e,n,{value:l,enumerable:!0,configurable:!0,writable:!0}):e[n]=l,e}function r(e,n){var l=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),l.push.apply(l,a)}return l}function o(e){for(var n=1;n=0||(t[l]=e[l]);return t}(e,n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,l)&&(t[l]=e[l])}return t}var s=a.createContext({}),u=function(e){var n=a.useContext(s),l=n;return e&&(l="function"==typeof e?e(n):o(o({},n),e)),l},y=function(e){var n=u(e.components);return a.createElement(s.Provider,{value:n},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},_=a.forwardRef((function(e,n){var l=e.components,t=e.mdxType,r=e.originalType,s=e.parentName,y=i(e,["components","mdxType","originalType","parentName"]),c=u(l),_=t,g=c["".concat(s,".").concat(_)]||c[_]||d[_]||r;return l?a.createElement(g,o(o({ref:n},y),{},{components:l})):a.createElement(g,o({ref:n},y))}));function g(e,n){var l=arguments,t=n&&n.mdxType;if("string"==typeof e||t){var r=l.length,o=new Array(r);o[0]=_;var i={};for(var s in n)hasOwnProperty.call(n,s)&&(i[s]=n[s]);i.originalType=e,i[c]="string"==typeof e?e:t,o[1]=i;for(var u=2;u{l.r(n),l.d(n,{assets:()=>s,contentTitle:()=>o,default:()=>d,frontMatter:()=>r,metadata:()=>i,toc:()=>u});var a=l(8168),t=(l(6540),l(5680));const r={},o=void 0,i={unversionedId:"study/db/SQL/MySQL",id:"study/db/SQL/MySQL",title:"MySQL",description:"\u7248\u672c\u9009\u62e9",source:"@site/docs/study/db/SQL/MySQL.md",sourceDirName:"study/db/SQL",slug:"/study/db/SQL/MySQL",permalink:"/docs/study/db/SQL/MySQL",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"MySQL \u7b14\u8bb0",permalink:"/docs/study/db/SQL/MySQL-\u7b14\u8bb0"},next:{title:"OpenGauss",permalink:"/docs/study/db/SQL/OpenGauss"}},s={},u=[{value:"\u7248\u672c\u9009\u62e9",id:"\u7248\u672c\u9009\u62e9",level:3},{value:"\u4fee\u6539\u65f6\u533a",id:"\u4fee\u6539\u65f6\u533a",level:3},{value:"\u521b\u5efa\u7528\u6237\u5e76\u6388\u6743",id:"\u521b\u5efa\u7528\u6237\u5e76\u6388\u6743",level:3},{value:"\u5185\u5b58\u5206\u914d",id:"\u5185\u5b58\u5206\u914d",level:3},{value:"\u5171\u4eab\u5185\u5b58",id:"\u5171\u4eab\u5185\u5b58",level:4},{value:"Session \u79c1\u6709\u5185\u5b58",id:"session-\u79c1\u6709\u5185\u5b58",level:4},{value:"\u5982\u4f55\u8bbe\u7f6e",id:"\u5982\u4f55\u8bbe\u7f6e",level:4},{value:"\u67e5\u8be2\u4f18\u5316",id:"\u67e5\u8be2\u4f18\u5316",level:3},{value:"\u5197\u4f59\u7d22\u5f15",id:"\u5197\u4f59\u7d22\u5f15",level:3},{value:"\u5b58\u50a8\u5f15\u64ce",id:"\u5b58\u50a8\u5f15\u64ce",level:3},{value:"MyISAM\u548cInnoDB\u533a\u522b",id:"myisam\u548cinnodb\u533a\u522b",level:3},{value:"\u4e50\u89c2\u9501\u4e0e\u60b2\u89c2\u9501\u7684\u533a\u522b",id:"\u4e50\u89c2\u9501\u4e0e\u60b2\u89c2\u9501\u7684\u533a\u522b",level:3},{value:"\u60b2\u89c2\u9501",id:"\u60b2\u89c2\u9501",level:4},{value:"\u4e50\u89c2\u9501",id:"\u4e50\u89c2\u9501",level:4},{value:"\u4e24\u79cd\u9501\u7684\u4f7f\u7528\u573a\u666f",id:"\u4e24\u79cd\u9501\u7684\u4f7f\u7528\u573a\u666f",level:4},{value:"\u65e5\u5fd7\u76f8\u5173/Binlog\u7b49",id:"\u65e5\u5fd7\u76f8\u5173binlog\u7b49",level:3},{value:"Binlog\u5f55\u5165\u683c\u5f0f",id:"binlog\u5f55\u5165\u683c\u5f0f",level:4},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:4},{value:"\u5360\u7528\u78c1\u76d8\u5927\u5c0f/\u6570\u636e\u5927\u5c0f/\u7d22\u5f15\u5927\u5c0f",id:"\u5360\u7528\u78c1\u76d8\u5927\u5c0f\u6570\u636e\u5927\u5c0f\u7d22\u5f15\u5927\u5c0f",level:3},{value:"\u4f18\u5316",id:"\u4f18\u5316",level:3}],y={toc:u},c="wrapper";function d(e){let{components:n,...l}=e;return(0,t.yg)(c,(0,a.A)({},y,l,{components:n,mdxType:"MDXLayout"}),(0,t.yg)("h3",{id:"\u7248\u672c\u9009\u62e9"},"\u7248\u672c\u9009\u62e9"),(0,t.yg)("p",null,"\u5f53\u524d\u6bd4\u8f83\u7a33\u5b9a\u7248\u672c\u662f5.6\u30015.7\u548c8.0\uff0c\u5982\u679c\u662f\u65b0\u9879\u76ee\u5f53\u7136\u662f\u75288.0\uff1b6.0\u5c31\u662f\u4e2a\u5e9f\u5f03\u7248\u672c\uff0c7.x\u662fNDB Cluster\u7248\uff1b"),(0,t.yg)("p",null,"mysql8.0\u7684\u4e3b\u8981\u65b0\u7279\u6027\uff1a"),(0,t.yg)("ol",null,(0,t.yg)("li",{parentName:"ol"},"hash join\uff1b")),(0,t.yg)("h3",{id:"\u4fee\u6539\u65f6\u533a"},"\u4fee\u6539\u65f6\u533a"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},"docker exec -it mysql02 bash\ncd /etc/mysql/mysql.conf.d\necho \"default-time_zone = '+8:00'\" >> mysqld.cnf\nexit\ndocker restart mysql02\n")),(0,t.yg)("h3",{id:"\u521b\u5efa\u7528\u6237\u5e76\u6388\u6743"},"\u521b\u5efa\u7528\u6237\u5e76\u6388\u6743"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},"-- \u521b\u5efa\u7528\u6237\ncreate user 'xx'@'%' identified by 'xx';\n-- \u6388\u6743\u67d0\u4e2a\u8868\u7684\u67e5\u8be2\u548c\u589e\u52a0\u6743\u9650\ngrant SELECT,INSERT on newcloud.elk_user_func_flow_for_user_op_for_res to 'xx'@'%';\n-- \u5220\u9664\u7528\u6237\ndrop user 'xx'@'%';\n-- \u67e5\u770b\u67d0\u4e2a\u7528\u6237\u7684\u6388\u6743\u4fe1\u606f\nshow grants for 'cloudExtend'@'%'; \n--\nflush privileges;\n")),(0,t.yg)("h3",{id:"\u5185\u5b58\u5206\u914d"},"\u5185\u5b58\u5206\u914d"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-sql"},"-- \u67e5\u8be2\u5171\u4eab\u5185\u5b58\u4f7f\u7528\u60c5\u51b5 \u5355\u4f4d\u662fByte\nshow variables where variable_name in (\n'innodb_buffer_pool_size','innodb_log_buffer_size','innodb_additional_mem_pool_size','key_buffer_size','query_cache_size'\n);\n-- InnoDB \u7f13\u51b2\u6c60\u5212\u5206\u4e3a\u7684\u533a\u57df\u6570\nshow variables like 'innodb_buffer_pool_instances'\n-- \u67e5\u8be2session\u79c1\u6709\u5185\u6d4b\u4f7f\u7528\u60c5\u51b5 \u5355\u4f4d\u662fByte\nshow variables where variable_name in (\n'read_buffer_size','read_rnd_buffer_size','sort_buffer_size','join_buffer_size','binlog_cache_size','tmp_table_size'\n);\n")),(0,t.yg)("p",null,"MySQL \u7684\u5185\u5b58\u5927\u4f53\u53ef\u4ee5\u5206\u4e3a\u5171\u4eab\u5185\u5b58\u548c session \u79c1\u6709\u5185\u5b58\u4e24\u90e8\u5206\uff0c\u4e0b\u9762\u5c06\u8be6\u7ec6\u4ecb\u7ecd\u5404\u90e8\u5206\u7684\u6784\u6210\u3002"),(0,t.yg)("h4",{id:"\u5171\u4eab\u5185\u5b58"},"\u5171\u4eab\u5185\u5b58"),(0,t.yg)("p",null,"\u53c2\u6570\u8bf4\u660e\uff1a"),(0,t.yg)("ul",null,(0,t.yg)("li",{parentName:"ul"},"innodb_buffer_pool\n\u8be5\u90e8\u5206\u7f13\u5b58\u662f Innodb \u5f15\u64ce\u6700\u91cd\u8981\u7684\u7f13\u5b58\u533a\u57df\uff0c\u662f\u901a\u8fc7\u5185\u5b58\u6765\u5f25\u8865\u7269\u7406\u6570\u636e\u6587\u4ef6\u7684\u91cd\u8981\u624b\u6bb5\u3002\u5176\u4e2d\u4e3b\u8981\u5305\u542b\u6570\u636e\u9875\u3001\u7d22\u5f15\u9875\u3001undo \u9875\u3001insert buffer\u3001\u81ea\u9002\u5e94\u54c8\u5e0c\u7d22\u5f15\u3001\u9501\u4fe1\u606f\u4ee5\u53ca\u6570\u636e\u5b57\u5178\u7b49\u4fe1\u606f\u3002\u5728\u8fdb\u884c SQL \u8bfb\u548c\u5199\u7684\u64cd\u4f5c\u65f6\uff0c\u9996\u5148\u5e76\u4e0d\u662f\u5bf9\u7269\u7406\u6570\u636e\u6587\u4ef6\u64cd\u4f5c\uff0c\u800c\u662f\u5148\u5bf9 buffer_pool \u8fdb\u884c\u64cd\u4f5c\uff0c\u7136\u540e\u518d\u901a\u8fc7 checkpoint \u7b49\u673a\u5236\u5199\u56de\u6570\u636e\u6587\u4ef6\u3002\u8be5\u7a7a\u95f4\u7684\u4f18\u70b9\u662f\u53ef\u4ee5\u63d0\u5347\u6570\u636e\u5e93\u7684\u6027\u80fd\u3001\u52a0\u5feb SQL \u8fd0\u884c\u901f\u5ea6\uff0c\u7f3a\u70b9\u662f\u6545\u969c\u6062\u590d\u901f\u5ea6\u8f83\u6162\u3002"),(0,t.yg)("li",{parentName:"ul"},"innodb_log_buffer\n\u8be5\u90e8\u5206\u4e3b\u8981\u5b58\u653e redo log \u7684\u4fe1\u606f\uff0c\u5728 RDS \u4e0a\u4f1a\u8bbe\u7f6e 1 M \u7684\u5927\u5c0f\u3002InnoDB \u4f1a\u9996\u5148\u5c06 redo log \u5199\u5728\u8fd9\u91cc\uff0c\u7136\u540e\u6309\u7167\u4e00\u5b9a\u9891\u7387\u5c06\u5176\u5237\u65b0\u56de\u91cd\u505a\u65e5\u5fd7\u6587\u4ef6\u4e2d\u3002\u8be5\u7a7a\u95f4\u4e0d\u9700\u8981\u592a\u5927\uff0c\u56e0\u4e3a\u4e00\u822c\u60c5\u51b5\u4e0b\u8be5\u90e8\u5206\u7f13\u5b58\u4f1a\u4ee5\u8f83\u5feb\u9891\u7387\u5237\u65b0\u81f3 redo log\uff08Master Thread \u4f1a\u6bcf\u79d2\u5237\u65b0\u3001\u4e8b\u52a1\u63d0\u4ea4\u65f6\u4f1a\u5237\u65b0\u3001\u5176\u7a7a\u95f4\u5c11\u4e8e 1/2 \u65f6\u540c\u6837\u4f1a\u5237\u65b0\uff09\u3002"),(0,t.yg)("li",{parentName:"ul"},"innodb_additional_mem_pool\n\u8be5\u90e8\u5206\u4e3b\u8981\u5b58\u653e InnoDB \u5185\u7684\u4e00\u4e9b\u6570\u636e\u7ed3\u6784\uff0c\u5728 RDS \u4e2d\u7edf\u4e00\u8bbe\u7f6e\u4e3a 2 M\u3002\u901a\u5e38\u662f\u5728 buffer_pool \u4e2d\u7533\u8bf7\u5185\u5b58\u7684\u65f6\u5019\u8fd8\u9700\u8981\u5728\u989d\u5916\u5185\u5b58\u4e2d\u7533\u8bf7\u7a7a\u95f4\u5b58\u50a8\u8be5\u5bf9\u8c61\u7684\u7ed3\u6784\u4fe1\u606f\u3002\u8be5\u5927\u5c0f\u4e3b\u8981\u4e0e\u8868\u6570\u91cf\u6709\u5173\uff0c\u8868\u6570\u91cf\u8d8a\u5927\u9700\u8981\u66f4\u5927\u7684\u7a7a\u95f4\u3002"),(0,t.yg)("li",{parentName:"ul"},"key_buffer\n\u8be5\u90e8\u5206\u662f MyISAM \u8868\u7684\u91cd\u8981\u7f13\u5b58\u533a\u57df\uff0c\u6240\u6709\u5b9e\u4f8b\u7edf\u4e00\u4e3a 16 M\u3002\u8be5\u90e8\u5206\u4e3b\u8981\u5b58\u653e MyISAM \u8868\u7684\u952e\u3002MyISAM \u8868\u4e0d\u540c\u4e8e InnoDB \u8868\uff0c\u5176\u7f13\u5b58\u7684\u7d22\u5f15\u7f13\u5b58\u662f\u653e\u5728 key_buffer \u4e2d\u7684\uff0c\u800c\u6570\u636e\u7f13\u5b58\u5219\u5b58\u50a8\u4e8e\u64cd\u4f5c\u7cfb\u7edf\u7684\u5185\u5b58\u4e2d\u3002RDS \u7684\u7cfb\u7edf\u662f MyISAM \u5f15\u64ce\u7684\uff0c\u56e0\u6b64\u5728 RDS \u4e2d\u662f\u7ed9\u4e88\u8be5\u90e8\u5206\u4e00\u5b9a\u91cf\u7684\u7a7a\u95f4\u7684\u3002"),(0,t.yg)("li",{parentName:"ul"},"query_cache\n\u8be5\u90e8\u5206\u662f\u5bf9\u67e5\u8be2\u7ed3\u679c\u505a\u7f13\u5b58\u4ee5\u51cf\u5c11\u89e3\u6790 SQL \u548c\u6267\u884c SQL \u7684\u82b1\u9500\uff0c\u5728 RDS \u4e0a\u5173\u95ed\u4e86\u8be5\u90e8\u5206\u7684\u7f13\u5b58\u3002\u4e3b\u8981\u9002\u5408\u4e8e\u8bfb\u591a\u5199\u5c11\u7684\u5e94\u7528\u573a\u666f\uff0c\u56e0\u4e3a\u5b83\u662f\u6309\u7167 SQL \u8bed\u53e5\u7684 hash \u503c\u8fdb\u884c\u7f13\u5b58\u7684\uff0c\u5f53\u8868\u6570\u636e\u53d1\u751f\u53d8\u5316\u540e\u5373\u5931\u6548\u3002")),(0,t.yg)("h4",{id:"session-\u79c1\u6709\u5185\u5b58"},"Session \u79c1\u6709\u5185\u5b58"),(0,t.yg)("p",null,"\u5171\u4eab\u5185\u5b58\u4e2d\u4ecb\u7ecd\u7684\u5185\u5b58\u7a7a\u95f4\u662f\u5b9e\u4f8b\u521b\u5efa\u65f6\u5373\u5206\u914d\u7684\u5185\u5b58\u7a7a\u95f4\uff0c\u5e76\u4e14\u662f\u6240\u6709\u8fde\u63a5\u5171\u4eab\u7684\u3002"),(0,t.yg)("p",null,"\u53c2\u6570\u8bf4\u660e\uff1a"),(0,t.yg)("ul",null,(0,t.yg)("li",{parentName:"ul"},"read_buffer&read_rnd_buffer\n\u5206\u522b\u5b58\u653e\u4e86\u5bf9\u987a\u5e8f\u548c\u968f\u673a\u626b\u63cf\uff08\u4f8b\u5982\u6309\u7167\u6392\u5e8f\u7684\u987a\u5e8f\u8bbf\u95ee\uff09\u7684\u7f13\u5b58\uff0cRDS \u7ed9\u6bcf\u4e2a session \u8bbe\u7f6e 256 K \u7684\u5927\u5c0f\u3002\u5f53 thread \u8fdb\u884c\u987a\u5e8f\u6216\u968f\u673a\u626b\u63cf\u6570\u636e\u65f6\u4f1a\u9996\u5148\u626b\u63cf\u8be5 buffer \u7a7a\u95f4\u4ee5\u907f\u514d\u66f4\u591a\u7684\u7269\u7406\u8bfb\u3002"),(0,t.yg)("li",{parentName:"ul"},"sort_buffer\n\u9700\u8981\u6267\u884c order by \u548c group by \u7684 SQL \u90fd\u4f1a\u5206\u914d sort_buffer\uff0c\u7528\u4e8e\u5b58\u50a8\u6392\u5e8f\u7684\u4e2d\u95f4\u7ed3\u679c\uff0c\u5728 RDS \u4e0a\u8bbe\u7f6e 256 K\u3002\u5728\u6392\u5e8f\u8fc7\u7a0b\u4e2d\uff0c\u82e5\u5b58\u50a8\u91cf\u5927\u4e8e sort_buffer_size\uff0c\u5219\u4f1a\u5728\u78c1\u76d8\u751f\u6210\u4e34\u65f6\u8868\u4ee5\u5b8c\u6210\u64cd\u4f5c\u3002\u5728 Linux \u7cfb\u7edf\u4e2d\uff0c\u5f53\u5206\u914d\u7a7a\u95f4\u5927\u4e8e 2 M \u65f6\u4f1a\u4f7f\u7528 mmap() \u800c\u4e0d\u662f malloc() \u6765\u8fdb\u884c\u5185\u5b58\u5206\u914d\uff0c\u5bfc\u81f4\u6548\u7387\u964d\u4f4e\u3002"),(0,t.yg)("li",{parentName:"ul"},"join_buffer\nMySQL \u4ec5\u652f\u6301 nest loop \u7684 join \u7b97\u6cd5\uff0cRDS \u8bbe\u7f6e 256 K \u7684\u5927\u5c0f\u3002\u5904\u7406\u903b\u8f91\u662f\u9a71\u52a8\u8868\u7684\u4e00\u884c\u548c\u975e\u9a71\u52a8\u8868\u8054\u5408\u67e5\u627e\uff0c\u8fd9\u65f6\u5c31\u53ef\u4ee5\u5c06\u975e\u9a71\u52a8\u8868\u653e\u5165 join_buffer\uff0c\u4e0d\u9700\u8981\u8bbf\u95ee\u62e5\u6709\u5e76\u53d1\u4fdd\u62a4\u673a\u5236\u7684 buffer_pool\u3002"),(0,t.yg)("li",{parentName:"ul"},"binlog_cache\n\u8be5\u533a\u57df\u7528\u6765\u7f13\u5b58\u8be5 thread \u7684 binlog \u65e5\u5fd7\uff0cRDS \u8bbe\u7f6e 256 K \u7684\u5927\u5c0f\u3002\u5728\u4e00\u4e2a\u4e8b\u52a1\u8fd8\u6ca1\u6709 commit \u4e4b\u524d\u4f1a\u5148\u5c06\u5176\u65e5\u5fd7\u5b58\u50a8\u4e8e binlog_cache \u4e2d\uff0c\u7b49\u5230\u4e8b\u52a1 commit \u540e\u4f1a\u5c06\u5176 binlog \u5237\u56de\u78c1\u76d8\u4e0a\u7684 binlog \u6587\u4ef6\u4ee5\u6301\u4e45\u5316\u3002"),(0,t.yg)("li",{parentName:"ul"},"tmp_table\n\u4e0d\u540c\u4e8e\u4e0a\u9762\u5404\u4e2a session \u5c42\u6b21\u7684 buffer\uff0c\u8fd9\u4e2a\u53c2\u6570\u53ef\u4ee5\u5728\u63a7\u5236\u53f0\u4e0a\u4fee\u6539\u3002\u8be5\u53c2\u6570\u662f\u6307\u7528\u6237\u5185\u5b58\u4e34\u65f6\u8868\u7684\u5927\u5c0f\uff0c\u5982\u679c\u8be5 thread \u521b\u5efa\u7684\u4e34\u65f6\u8868\u8d85\u8fc7\u5b83\u8bbe\u7f6e\u7684\u5927\u5c0f\u4f1a\u628a\u4e34\u65f6\u8868\u8f6c\u6362\u4e3a\u78c1\u76d8\u4e0a\u7684\u4e00\u5f20 MyISAM \u4e34\u65f6\u8868\u3002\u5982\u679c\u7528\u6237\u5728\u6267\u884c\u4e8b\u52a1\u65f6\u9047\u5230\u7c7b\u4f3c\u5982\u4e0b\u8fd9\u6837\u7684\u9519\u8bef\uff0c\u53ef\u4ee5\u8003\u8651\u589e\u5927 tmp_table \u7684\u503c\u3002")),(0,t.yg)("h4",{id:"\u5982\u4f55\u8bbe\u7f6e"},"\u5982\u4f55\u8bbe\u7f6e"),(0,t.yg)("p",null,"\u9488\u5bf9\u5f53\u524dMySQL\u4f01\u4e1a\u7528\u6237\u7684\u5b9e\u9645\u73af\u5883\uff08\u5927\u5185\u5b58\uff09\uff1a"),(0,t.yg)("ol",null,(0,t.yg)("li",{parentName:"ol"},"\u5728\u4e13\u7528\u6570\u636e\u5e93\u670d\u52a1\u5668\u4e0a\uff0c\u53ef\u4ee5\u5c06innodb_buffer_pool_size\u8bbe\u7f6e\u4e3a\u8ba1\u7b97\u673a\u7269\u7406\u5185\u5b58\u5927\u5c0f\u768480\uff05;"),(0,t.yg)("li",{parentName:"ol"},"\u5728innodb_buffer_pool_size\u8bbe\u7f6e\u6bd4\u8f83\u5927\u7684\u60c5\u51b5\u4e0b\uff0c\u53ef\u4ee5\u5c06innodb_buffer_pool_instances\u7684\u503c\u8bbe\u7f6e\u4e3a8-16\uff0c\u4fdd\u8bc1\u4e00\u4e2apool 10G\u4ee5\u4e0a\u3002")),(0,t.yg)("p",null,"\uff08\u6ce8\u610finnodb_buffer_pool_size\u5fc5\u987b\u4e3a\xa0innodb_buffer_pool_instances \u7684\u500d\u6570\uff09"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},"#\u901a\u8fc7SQL\u4fee\u6539 \u91cd\u542f\u540e\u5931\u6548 2G\nset global innodb_buffer_pool_size = 2147483648\n\n#\u4fee\u6539my.cnf\u914d\u7f6e \u9700\u8981\u91cd\u542f\ninnodb_buffer_pool_size = 2147483648\ninnodb_buffer_pool_size = 2G\ninnodb_buffer_pool_size = 2048M\n")),(0,t.yg)("h3",{id:"\u67e5\u8be2\u4f18\u5316"},"\u67e5\u8be2\u4f18\u5316"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-sql"},"#\n-- \u67e5\u8be2\u7f13\u5b58\nshow variables where variable_name in (\n'have_query_cache','query_cache_limit','query_cache_min_res_unit','query_cache_size','query_cache_type','query_cache_wlock_invalidate'\n);\n")),(0,t.yg)("ol",null,(0,t.yg)("li",{parentName:"ol"},"have_query_cache\uff1a\u5f53\u524d\u7684MYSQL\u7248\u672c\u662f\u5426\u652f\u6301\u201c\u67e5\u8be2\u7f13\u5b58\u201d\u529f\u80fd\u3002"),(0,t.yg)("li",{parentName:"ol"},"query_cache_min_res_unit\uff1a\u67e5\u8be2\u7f13\u5b58\u5206\u914d\u7684\u6700\u5c0f\u5757\uff08\u5b57\u8282\uff09\u3002\u9ed8\u8ba4\u503c\u662f4096\uff084KB\uff09\u3002\u5f53\u67e5\u8be2\u8fdb\u884c\u65f6\uff0cMySQL\u628a\u67e5\u8be2\u7ed3\u679c\u4fdd\u5b58\u5728query cache\uff0c\u4f46\u662f\u5982\u679c\u4fdd\u5b58\u7684\u7ed3\u679c\u6bd4\u8f83\u5927\uff0c\u8d85\u8fc7\u4e86query_cache_min_res_unit\u7684\u503c\uff0c\u8fd9\u65f6\u5019MySQL\u5c06\u4e00\u8fb9\u68c0\u7d22\u7ed3\u679c\uff0c\u4e00\u8fb9\u8fdb\u884c\u4fdd\u5b58\u7ed3\u679c\u3002\u4ed6\u4fdd\u5b58\u7ed3\u679c\u4e5f\u662f\u6309\u9ed8\u8ba4\u5927\u5c0f\u5148\u5206\u914d\u4e00\u5757\u7a7a\u95f4\uff0c\u5982\u679c\u4e0d\u591f\uff0c\u53c8\u8981\u7533\u8bf7\u65b0\u7684\u7a7a\u95f4\u7ed9\u4ed6\u3002\u5982\u679c\u67e5\u8be2\u7ed3\u679c\u6bd4\u8f83\u5c0f\uff0c\u9ed8\u8ba4\u7684query_cache_min_res_unit\u53ef\u80fd\u9020\u6210\u5927\u91cf\u7684\u5185\u5b58\u788e\u7247\uff0c\u5982\u679c\u67e5\u8be2\u7ed3\u679c\u6bd4\u8f83\u5927\uff0c\u9ed8\u8ba4\u7684query_cache_min_res_unit\u53c8\u4e0d\u591f\uff0c\u5bfc\u81f4\u4e00\u76f4\u5206\u914d\u5757\u7a7a\u95f4\uff0c\u6240\u4ee5\u53ef\u4ee5\u6839\u636e\u5b9e\u9645\u9700\u6c42\uff0c\u8c03\u8282query_cache_min_res_unit\u7684\u5927\u5c0f\u3002\u6ce8\uff1a\u5982\u679c\u4e0a\u9762\u8bf4\u7684\u5185\u5bb9\u6709\u70b9\u5f2f\u5f2f\u7ed5\uff0c\u90a3\u4e3e\u4e2a\u73b0\u5b9e\u751f\u6d3b\u4e2d\u7684\u4f8b\u5b50\uff0c\u6bd4\u5982\u54b1\u73b0\u5728\u8981\u7ed9\u8fd0\u52a8\u5458\u9001\u6c34\uff0c\u9ed8\u8ba4\u7684\u662f500ml\u7684\u74f6\u5b50\uff0c\u5982\u679c\u8fc7\u6765\u7684\u662f\u5c11\u5e74\u8fd0\u52a8\u5458\uff0c\u53ef\u80fd500ml\u592a\u5927\u4e86\uff0c\u4ed6\u4eec\u559d\u4e0d\u5b8c\uff0c\u9020\u6210\u4e86\u6d6a\u8d39\uff0c\u90a3\u6211\u4eec\u5c31\u53ef\u4ee5\u9009\u62e9300ml\u7684\u74f6\u5b50\uff0c\u5982\u679c\u8fc7\u6765\u7684\u662f\u6210\u5e74\u8fd0\u52a8\u5458\uff0c\u53ef\u80fd500ml\u4e0d\u591f\uff0c\u90a3\u4ed6\u4eec\u4e00\u74f6\u559d\u5b8c\u4e86\uff0c\u53c8\u5f00\u4e00\u74f6\uff0c\u76f4\u63a5\u4e0d\u6e34\u4e3a\u6b62\u3002\u90a3\u4e48\u90a3\u6837\u5f00\u74f6\u5b50\u4e5f\u8981\u65f6\u95f4\uff0c\u6211\u4eec\u5c31\u53ef\u4ee5\u9009\u62e91000ml\u7684\u74f6\u5b50\u3002"),(0,t.yg)("li",{parentName:"ol"},"query_cache_size\uff1a\u4e3a\u7f13\u5b58\u67e5\u8be2\u7ed3\u679c\u5206\u914d\u7684\u603b\u5185\u5b58\u3002"),(0,t.yg)("li",{parentName:"ol"},"query_cache_type\uff1a\u9ed8\u8ba4\u4e3aon\u3002"),(0,t.yg)("li",{parentName:"ol"},"query_cache_wlock_invalidate\uff1a\u5982\u679c\u8be5\u8868\u88ab\u9501\u4f4f\uff0c\u662f\u5426\u8fd4\u56de\u7f13\u5b58\u4e2d\u7684\u6570\u636e\uff0c\u9ed8\u8ba4\u662f\u5173\u95ed\u7684\u3002")),(0,t.yg)("p",null,"MYSQL\u7684\u67e5\u8be2\u7f13\u5b58\u5b9e\u8d28\u4e0a\u662f\u7f13\u5b58SQL\u7684hash\u503c\u548c\u8be5SQL\u7684\u67e5\u8be2\u7ed3\u679c\uff0c\u5982\u679c\u8fd0\u884c\u76f8\u540c\u7684SQL,\u670d\u52a1\u5668\u76f4\u63a5\u4ece\u7f13\u5b58\u4e2d\u53bb\u6389\u7ed3\u679c\uff0c\u800c\u4e0d\u518d\u53bb\u89e3\u6790\uff0c\u4f18\u5316\uff0c\u5bfb\u627e\u6700\u4f4e\u6210\u672c\u7684\u6267\u884c\u8ba1\u5212\u7b49\u4e00\u7cfb\u5217\u64cd\u4f5c\uff0c\u5927\u5927\u63d0\u5347\u4e86\u67e5\u8be2\u901f\u5ea6\u3002\n\u4f46\u662f\u4e07\u4e8b\u6709\u5229\u4e5f\u6709\u5f0a\u3002"),(0,t.yg)("ul",null,(0,t.yg)("li",{parentName:"ul"},"\u7b2c\u4e00\u4e2a\u5f0a\u7aef\u5c31\u662f\u5982\u679c\u8868\u7684\u6570\u636e\u6709\u4e00\u6761\u53d1\u751f\u53d8\u5316\uff0c\u90a3\u4e48\u7f13\u5b58\u597d\u7684\u7ed3\u679c\u5c06\u5168\u90e8\u4e0d\u518d\u6709\u6548\u3002\u8fd9\u5bf9\u4e8e\u9891\u7e41\u66f4\u65b0\u7684\u8868\uff0c\u67e5\u8be2\u7f13\u5b58\u662f\u4e0d\u9002\u5408\u7684\u3002"),(0,t.yg)("li",{parentName:"ul"},"\u7b2c\u4e8c\u4e2a\u5f0a\u7aef\u5c31\u662f\u7f13\u5b58\u673a\u5236\u662f\u901a\u8fc7\u5bf9SQL\u7684hash\uff0c\u5f97\u51fa\u7684\u503c\u4e3akey\uff0c\u67e5\u8be2\u7ed3\u679c\u4e3avalue\u6765\u5b58\u653e\u7684\uff0c\u90a3\u4e48\u5c31\u610f\u5473\u7740SQL\u5fc5\u987b\u5b8c\u5b8c\u5168\u5168\u4e00\u6a21\u4e00\u6837\uff0c\u5426\u5219\u5c31\u547d\u4e0d\u4e2d\u7f13\u5b58\u3002")),(0,t.yg)("p",null,"\u9ed8\u8ba4query_cache_type\u8bbe\u7f6e\u4e3aOFF\uff0c\u5176\u5b9e\u7f51\u4e0a\u8d44\u6599\u548c\u5404\u5927\u4e91\u5382\u5546\u63d0\u4f9b\u7684\u4e91\u670d\u52a1\u5668\u90fd\u662f\u5c06\u8fd9\u4e2a\u529f\u80fd\u5173\u95ed\u7684\uff0c\u4ece\u4e0a\u9762\u7684\u539f\u7406\u6765\u770b\uff0c\u5728\u4e00\u822c\u60c5\u51b5\u4e0b\uff0c\u4ed6\u7684\u5f0a\u7aef\u5927\u4e8e\u4f18\u70b9\u3002"),(0,t.yg)("h3",{id:"\u5197\u4f59\u7d22\u5f15"},"\u5197\u4f59\u7d22\u5f15"),(0,t.yg)("p",null,"\u5197\u4f59\u7d22\u5f15\u6307\u7684\u662f\u7d22\u5f15\u7684\u529f\u80fd\u76f8\u540c\uff0c\u80fd\u591f\u547d\u4e2d\u5c31\u80af\u5b9a\u80fd\u547d\u4e2d \uff0c\u90a3\u4e48\u5c31\u662f\u5197\u4f59\u7d22\u5f15\u5982\uff08name,city \uff09\u548c\uff08name \uff09\u8fd9\u4e24\u4e2a\u7d22\u5f15\u5c31\u662f\u5197\u4f59\u7d22\u5f15\uff0c\u80fd\u591f\u547d\u4e2d\u540e\u8005\u7684\u67e5\u8be2\u80af\u5b9a\u662f\u80fd\u591f\u547d\u4e2d\u524d\u8005\u7684 \u5728\u5927\u591a\u6570\u60c5\u51b5\u4e0b\uff0c\u90fd\u5e94\u8be5\u5c3d\u91cf\u6269\u5c55\u5df2\u6709\u7684\u7d22\u5f15\u800c\u4e0d\u662f\u521b\u5efa\u65b0\u7d22\u5f15\u3002\nMySQLS.7 \u7248\u672c\u540e\uff0c\u53ef\u4ee5\u901a\u8fc7\u67e5\u8be2 sys \u5e93\u7684 schema_redundant_indexes \u8868\u6765\u67e5\u770b\u5197\u4f59\u7d22\u5f15\u3002"),(0,t.yg)("h3",{id:"\u5b58\u50a8\u5f15\u64ce"},"\u5b58\u50a8\u5f15\u64ce"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-sql"},"-- \u67e5\u8be2\u5f53\u524d\u6570\u636e\u5e93\u670d\u52a1\u5668\u652f\u6301\u7684\u5b58\u50a8\u5f15\u64ce\u5217\u8868\nshow engines;\n-- \u67e5\u770b\u9ed8\u8ba4\u7684\u5b58\u50a8\u5f15\u64ce\nshow variables like '%storage_engine%';\n-- \u67e5\u770b\u8868\u7684\u5b58\u50a8\u5f15\u64ce\u53ca\u5176\u4ed6\u76f8\u5173\u4fe1\u606f\nshow table status like \"table_name\";\n")),(0,t.yg)("h3",{id:"myisam\u548cinnodb\u533a\u522b"},"MyISAM\u548cInnoDB\u533a\u522b"),(0,t.yg)("p",null,"MyISAM\u662fMySQL\u7684\u9ed8\u8ba4\u6570\u636e\u5e93\u5f15\u64ce\uff085.5\u7248\u4e4b\u524d\uff09\u3002\u867d\u7136\u6027\u80fd\u6781\u4f73\uff0c\u800c\u4e14\u63d0\u4f9b\u4e86\u5927\u91cf\u7684\u7279\u6027\uff0c\u5305\u62ec\u5168\u6587\u7d22\u5f15\u3001\u538b\u7f29\u3001\u7a7a\u95f4\u51fd\u6570\u7b49\uff0c\u4f46MyISAM\u4e0d\u652f\u6301\u4e8b\u52a1\u548c\u884c\u7ea7\u9501\uff0c\u800c\u4e14\u6700\u5927\u7684\u7f3a\u9677\u5c31\u662f\u5d29\u6e83\u540e\u65e0\u6cd5\u5b89\u5168\u6062\u590d\u3002\u4e0d\u8fc7\uff0c5.5\u7248\u672c\u4e4b\u540e\uff0cMySQL\u5f15\u5165\u4e86InnoDB\uff08\u4e8b\u52a1\u6027\u6570\u636e\u5e93\u5f15\u64ce\uff09\uff0cMySQL 5.5\u7248\u672c\u540e\u9ed8\u8ba4\u7684\u5b58\u50a8\u5f15\u64ce\u4e3aInnoDB\u3002\n\u5927\u591a\u6570\u65f6\u5019\u6211\u4eec\u4f7f\u7528\u7684\u90fd\u662f InnoDB \u5b58\u50a8\u5f15\u64ce\uff0c\u4f46\u662f\u5728\u67d0\u4e9b\u60c5\u51b5\u4e0b\u4f7f\u7528 MyISAM \u4e5f\u662f\u5408\u9002\u7684\u6bd4\u5982\u8bfb\u5bc6\u96c6\u7684\u60c5\u51b5\u4e0b\u3002\uff08\u5982\u679c\u4f60\u4e0d\u4ecb\u610f MyISAM \u5d29\u6e83\u56de\u590d\u95ee\u9898\u7684\u8bdd\uff09\u3002"),(0,t.yg)("p",null,"\u4e24\u8005\u7684\u5bf9\u6bd4\uff1a"),(0,t.yg)("ol",null,(0,t.yg)("li",{parentName:"ol"},"\u662f\u5426\u652f\u6301\u884c\u7ea7\u9501: MyISAM \u53ea\u6709\u8868\u7ea7\u9501(table-level locking)\uff0c\u800cInnoDB \u652f\u6301\u884c\u7ea7\u9501(row-level locking)\u548c\u8868\u7ea7\u9501,\u9ed8\u8ba4\u4e3a\u884c\u7ea7\u9501\u3002"),(0,t.yg)("li",{parentName:"ol"},"\u662f\u5426\u652f\u6301\u4e8b\u52a1\u548c\u5d29\u6e83\u540e\u7684\u5b89\u5168\u6062\u590d\uff1aMyISAM\u5f3a\u8c03\u7684\u662f\u6027\u80fd\uff0c\u6bcf\u6b21\u67e5\u8be2\u5177\u6709\u539f\u5b50\u6027,\u5176\u6267\u884c\u6bd4InnoDB\u7c7b\u578b\u66f4\u5feb\uff0c\u4f46\u662f\u4e0d\u63d0\u4f9b\u4e8b\u52a1\u652f\u6301\u3002\u4f46\u662fInnoDB\u63d0\u4f9b\u4e8b\u52a1\u652f\u6301\u4e8b\u52a1\uff0c\u5916\u90e8\u952e\u7b49\u9ad8\u7ea7\u6570\u636e\u5e93\u529f\u80fd\u3002\u5177\u6709\u4e8b\u52a1(commit)\u3001\u56de\u6eda(rollback)\u548c\u5d29\u6e83\u4fee\u590d\u80fd\u529b(crash recovery capabilities)\u7684\u4e8b\u52a1\u5b89\u5168(transaction-safe (ACID compliant))\u578b\u8868\u3002"),(0,t.yg)("li",{parentName:"ol"},"\u662f\u5426\u652f\u6301\u5916\u952e\uff1aMyISAM\u4e0d\u652f\u6301\uff0c\u800cInnoDB\u652f\u6301\u3002"),(0,t.yg)("li",{parentName:"ol"},"\u662f\u5426\u652f\u6301MVCC\uff1a\u4ec5 InnoDB \u652f\u6301\u3002\u5e94\u5bf9\u9ad8\u5e76\u53d1\u4e8b\u52a1, MVCC\u6bd4\u5355\u7eaf\u7684\u52a0\u9501\u66f4\u9ad8\u6548;MVCC\u53ea\u5728 READ COMMITTED\u548c REPEATABLE READ\u4e24\u4e2a\u9694\u79bb\u7ea7\u522b\u4e0b\u5de5\u4f5c;MVCC\u53ef\u4ee5\u4f7f\u7528 \u4e50\u89c2(optimistic)\u9501 \u548c \u60b2\u89c2(pessimistic)\u9501\u6765\u5b9e\u73b0;\u5404\u6570\u636e\u5e93\u4e2dMVCC\u5b9e\u73b0\u5e76\u4e0d\u7edf\u4e00\u3002"),(0,t.yg)("li",{parentName:"ol"},"......")),(0,t.yg)("p",null,"\u300aMySQL\u9ad8\u6027\u80fd\u300b\u4e0a\u9762\u6709\u4e00\u53e5\u8bdd\u8fd9\u6837\u5199\u5230:"),(0,t.yg)("blockquote",null,(0,t.yg)("p",{parentName:"blockquote"},"\u4e0d\u8981\u8f7b\u6613\u76f8\u4fe1\u201cMyISAM\u6bd4InnoDB\u5feb\u201d\u4e4b\u7c7b\u7684\u7ecf\u9a8c\u4e4b\u8c08\uff0c\u8fd9\u4e2a\u7ed3\u8bba\u5f80\u5f80\u4e0d\u662f\u7edd\u5bf9\u7684\u3002\u5728\u5f88\u591a\u6211\u4eec\u5df2\u77e5\u573a\u666f\u4e2d\uff0cInnoDB\u7684\u901f\u5ea6\u90fd\u53ef\u4ee5\u8ba9MyISAM\u671b\u5c18\u83ab\u53ca\uff0c\u5c24\u5176\u662f\u7528\u5230\u4e86\u805a\u7c07\u7d22\u5f15\uff0c\u6216\u8005\u9700\u8981\u8bbf\u95ee\u7684\u6570\u636e\u90fd\u53ef\u4ee5\u653e\u5165\u5185\u5b58\u7684\u5e94\u7528\u3002")),(0,t.yg)("p",null,"\u4e00\u822c\u60c5\u51b5\u4e0b\u6211\u4eec\u9009\u62e9 InnoDB \u90fd\u662f\u6ca1\u6709\u95ee\u9898\u7684\uff0c\u4f46\u662f\u67d0\u4e8b\u60c5\u51b5\u4e0b\u4f60\u5e76\u4e0d\u5728\u4e4e\u53ef\u6269\u5c55\u80fd\u529b\u548c\u5e76\u53d1\u80fd\u529b\uff0c\u4e5f\u4e0d\u9700\u8981\u4e8b\u52a1\u652f\u6301\uff0c\u4e5f\u4e0d\u5728\u4e4e\u5d29\u6e83\u540e\u7684\u5b89\u5168\u6062\u590d\u95ee\u9898\u7684\u8bdd\uff0c\u9009\u62e9MyISAM\u4e5f\u662f\u4e00\u4e2a\u4e0d\u9519\u7684\u9009\u62e9\u3002\u4f46\u662f\u4e00\u822c\u60c5\u51b5\u4e0b\uff0c\u6211\u4eec\u90fd\u662f\u9700\u8981\u8003\u8651\u5230\u8fd9\u4e9b\u95ee\u9898\u7684\u3002"),(0,t.yg)("h3",{id:"\u4e50\u89c2\u9501\u4e0e\u60b2\u89c2\u9501\u7684\u533a\u522b"},"\u4e50\u89c2\u9501\u4e0e\u60b2\u89c2\u9501\u7684\u533a\u522b"),(0,t.yg)("h4",{id:""}),(0,t.yg)("h4",{id:"\u60b2\u89c2\u9501"},"\u60b2\u89c2\u9501"),(0,t.yg)("p",null,"\u603b\u662f\u5047\u8bbe\u6700\u574f\u7684\u60c5\u51b5\uff0c\u6bcf\u6b21\u53bb\u62ff\u6570\u636e\u7684\u65f6\u5019\u90fd\u8ba4\u4e3a\u522b\u4eba\u4f1a\u4fee\u6539\uff0c\u6240\u4ee5\u6bcf\u6b21\u5728\u62ff\u6570\u636e\u7684\u65f6\u5019\u90fd\u4f1a\u4e0a\u9501\uff0c\u8fd9\u6837\u522b\u4eba\u60f3\u62ff\u8fd9\u4e2a\u6570\u636e\u5c31\u4f1a\u963b\u585e\u76f4\u5230\u5b83\u62ff\u5230\u9501\uff08\u5171\u4eab\u8d44\u6e90\u6bcf\u6b21\u53ea\u7ed9\u4e00\u4e2a\u7ebf\u7a0b\u4f7f\u7528\uff0c\u5176\u5b83\u7ebf\u7a0b\u963b\u585e\uff0c\u7528\u5b8c\u540e\u518d\u628a\u8d44\u6e90\u8f6c\u8ba9\u7ed9\u5176\u5b83\u7ebf\u7a0b\uff09\u3002\u4f20\u7edf\u7684\u5173\u7cfb\u578b\u6570\u636e\u5e93\u91cc\u8fb9\u5c31\u7528\u5230\u4e86\u5f88\u591a\u8fd9\u79cd\u9501\u673a\u5236\uff0c\u6bd4\u5982\u884c\u9501\uff0c\u8868\u9501\u7b49\uff0c\u8bfb\u9501\uff0c\u5199\u9501\u7b49\uff0c\u90fd\u662f\u5728\u505a\u64cd\u4f5c\u4e4b\u524d\u5148\u4e0a\u9501\u3002Java\u4e2dsynchronized\u548cReentrantLock\u7b49\u72ec\u5360\u9501\u5c31\u662f\u60b2\u89c2\u9501\u601d\u60f3\u7684\u5b9e\u73b0\u3002"),(0,t.yg)("h4",{id:"\u4e50\u89c2\u9501"},"\u4e50\u89c2\u9501"),(0,t.yg)("p",null,"\u603b\u662f\u5047\u8bbe\u6700\u597d\u7684\u60c5\u51b5\uff0c\u6bcf\u6b21\u53bb\u62ff\u6570\u636e\u7684\u65f6\u5019\u90fd\u8ba4\u4e3a\u522b\u4eba\u4e0d\u4f1a\u4fee\u6539\uff0c\u6240\u4ee5\u4e0d\u4f1a\u4e0a\u9501\uff0c\u4f46\u662f\u5728\u66f4\u65b0\u7684\u65f6\u5019\u4f1a\u5224\u65ad\u4e00\u4e0b\u5728\u6b64\u671f\u95f4\u522b\u4eba\u6709\u6ca1\u6709\u53bb\u66f4\u65b0\u8fd9\u4e2a\u6570\u636e\uff0c\u53ef\u4ee5\u4f7f\u7528\u7248\u672c\u53f7\u673a\u5236\u548cCAS\u7b97\u6cd5\u5b9e\u73b0\u3002\u4e50\u89c2\u9501\u9002\u7528\u4e8e\u591a\u8bfb\u7684\u5e94\u7528\u7c7b\u578b\uff0c\u8fd9\u6837\u53ef\u4ee5\u63d0\u9ad8\u541e\u5410\u91cf\uff0c\u50cf\u6570\u636e\u5e93\u63d0\u4f9b\u7684\u7c7b\u4f3c\u4e8ewrite_condition\u673a\u5236\uff0c\u5176\u5b9e\u90fd\u662f\u63d0\u4f9b\u7684\u4e50\u89c2\u9501\u3002\u5728Java\u4e2djava.util.concurrent.atomic\u5305\u4e0b\u9762\u7684\u539f\u5b50\u53d8\u91cf\u7c7b\u5c31\u662f\u4f7f\u7528\u4e86\u4e50\u89c2\u9501\u7684\u4e00\u79cd\u5b9e\u73b0\u65b9\u5f0fCAS\u5b9e\u73b0\u7684\u3002"),(0,t.yg)("h4",{id:"\u4e24\u79cd\u9501\u7684\u4f7f\u7528\u573a\u666f"},"\u4e24\u79cd\u9501\u7684\u4f7f\u7528\u573a\u666f"),(0,t.yg)("p",null,"\u4ece\u4e0a\u9762\u5bf9\u4e24\u79cd\u9501\u7684\u4ecb\u7ecd\uff0c\u6211\u4eec\u77e5\u9053\u4e24\u79cd\u9501\u5404\u6709\u4f18\u7f3a\u70b9\uff0c\u4e0d\u53ef\u8ba4\u4e3a\u4e00\u79cd\u597d\u4e8e\u53e6\u4e00\u79cd\uff0c\u50cf\u4e50\u89c2\u9501\u9002\u7528\u4e8e\u5199\u6bd4\u8f83\u5c11\u7684\u60c5\u51b5\u4e0b\uff08\u591a\u8bfb\u573a\u666f\uff09\uff0c\u5373\u51b2\u7a81\u771f\u7684\u5f88\u5c11\u53d1\u751f\u7684\u65f6\u5019\uff0c\u8fd9\u6837\u53ef\u4ee5\u7701\u53bb\u4e86\u9501\u7684\u5f00\u9500\uff0c\u52a0\u5927\u4e86\u7cfb\u7edf\u7684\u6574\u4e2a\u541e\u5410\u91cf\u3002\u4f46\u5982\u679c\u662f\u591a\u5199\u7684\u60c5\u51b5\uff0c\u4e00\u822c\u4f1a\u7ecf\u5e38\u4ea7\u751f\u51b2\u7a81\uff0c\u8fd9\u5c31\u4f1a\u5bfc\u81f4\u4e0a\u5c42\u5e94\u7528\u4f1a\u4e0d\u65ad\u7684\u8fdb\u884cretry\uff0c\u8fd9\u6837\u53cd\u5012\u662f\u964d\u4f4e\u4e86\u6027\u80fd\uff0c\u6240\u4ee5\u4e00\u822c\u591a\u5199\u7684\u573a\u666f\u4e0b\u7528\u60b2\u89c2\u9501\u5c31\u6bd4\u8f83\u5408\u9002\u3002"),(0,t.yg)("h3",{id:"\u65e5\u5fd7\u76f8\u5173binlog\u7b49"},"\u65e5\u5fd7\u76f8\u5173/Binlog\u7b49"),(0,t.yg)("h4",{id:"binlog\u5f55\u5165\u683c\u5f0f"},"Binlog\u5f55\u5165\u683c\u5f0f"),(0,t.yg)("ul",null,(0,t.yg)("li",{parentName:"ul"},"\u6709\u4e09\u79cd\u683c\u5f0f\uff0cstatement\uff0crow\u548cmixed\u3002",(0,t.yg)("ul",{parentName:"li"},(0,t.yg)("li",{parentName:"ul"},"statement\u6a21\u5f0f\u4e0b\uff0c\u6bcf\u4e00\u6761\u4f1a\u4fee\u6539\u6570\u636e\u7684sql\u90fd\u4f1a\u8bb0\u5f55\u5728binlog\u4e2d\u3002\u4e0d\u9700\u8981\u8bb0\u5f55\u6bcf\u4e00\u884c\u7684\u53d8\u5316\uff0c\u51cf\u5c11\u4e86binlog\u65e5\u5fd7\u91cf\uff0c\u8282\u7ea6\u4e86IO\uff0c\u63d0\u9ad8\u6027\u80fd\u3002\u7531\u4e8esql\u7684\u6267\u884c\u662f\u6709\u4e0a\u4e0b\u6587\u7684\uff0c\u56e0\u6b64\u5728\u4fdd\u5b58\u7684\u65f6\u5019\u9700\u8981\u4fdd\u5b58\u76f8\u5173\u7684\u4fe1\u606f\uff0c\u540c\u65f6\u8fd8\u6709\u4e00\u4e9b\u4f7f\u7528\u4e86\u51fd\u6570\u4e4b\u7c7b\u7684\u8bed\u53e5\u65e0\u6cd5\u88ab\u8bb0\u5f55\u590d\u5236\u3002"),(0,t.yg)("li",{parentName:"ul"},"row\u7ea7\u522b\u4e0b\uff0c\u4e0d\u8bb0\u5f55sql\u8bed\u53e5\u4e0a\u4e0b\u6587\u76f8\u5173\u4fe1\u606f\uff0c\u4ec5\u4fdd\u5b58\u54ea\u6761\u8bb0\u5f55\u88ab\u4fee\u6539\u3002\u8bb0\u5f55\u5355\u5143\u4e3a\u6bcf\u4e00\u884c\u7684\u6539\u52a8\uff0c\u57fa\u672c\u662f\u53ef\u4ee5\u5168\u90e8\u8bb0\u4e0b\u6765\u4f46\u662f\u7531\u4e8e\u5f88\u591a\u64cd\u4f5c\uff0c\u4f1a\u5bfc\u81f4\u5927\u91cf\u884c\u7684\u6539\u52a8(\u6bd4\u5982alter table)\uff0c\u56e0\u6b64\u8fd9\u79cd\u6a21\u5f0f\u7684\u6587\u4ef6\u4fdd\u5b58\u7684\u4fe1\u606f\u592a\u591a\uff0c\u65e5\u5fd7\u91cf\u592a\u5927\u3002"),(0,t.yg)("li",{parentName:"ul"},"mixed\uff0c\u4e00\u79cd\u6298\u4e2d\u7684\u65b9\u6848\uff0c\u666e\u901a\u64cd\u4f5c\u4f7f\u7528statement\u8bb0\u5f55\uff0c\u5f53\u65e0\u6cd5\u4f7f\u7528statement\u7684\u65f6\u5019\u4f7f\u7528row\u3002"))),(0,t.yg)("li",{parentName:"ul"},"\u6b64\u5916\uff0c\u65b0\u7248\u7684MySQL\u4e2d\u5bf9row\u7ea7\u522b\u4e5f\u505a\u4e86\u4e00\u4e9b\u4f18\u5316\uff0c\u5f53\u8868\u7ed3\u6784\u53d1\u751f\u53d8\u5316\u7684\u65f6\u5019\uff0c\u4f1a\u8bb0\u5f55\u8bed\u53e5\u800c\u4e0d\u662f\u9010\u884c\u8bb0\u5f55\u3002")),(0,t.yg)("h4",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,t.yg)("ol",null,(0,t.yg)("li",{parentName:"ol"},(0,t.yg)("a",{parentName:"li",href:"https://blog.csdn.net/horses/article/details/106053399?utm_medium=distribute.pc_category.none-task-blog-hot-10.nonecase&depth_1-utm_source=distribute.pc_category.none-task-blog-hot-10.nonecase&request_id="},"MySQL \u670d\u52a1\u5668\u4e2d\u7684 6 \u79cd\u65e5\u5fd7\u7c7b\u578b"))),(0,t.yg)("h3",{id:"\u5360\u7528\u78c1\u76d8\u5927\u5c0f\u6570\u636e\u5927\u5c0f\u7d22\u5f15\u5927\u5c0f"},"\u5360\u7528\u78c1\u76d8\u5927\u5c0f/\u6570\u636e\u5927\u5c0f/\u7d22\u5f15\u5927\u5c0f"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-sql"},"-- \u67e5\u770b\u6240\u6709\u6570\u636e\u5e93\u6570\u636e\u5927\u5c0f\u548c\u7d22\u5f15\u5927\u5c0f\nselect TABLE_SCHEMA, \nconcat(truncate(sum(data_length)/1024/1024,2),' MB') as data_size,\nsum(data_length) as data_size_B,\nconcat(truncate(sum(index_length)/1024/1024,2),'MB') as index_size,\nsum(index_length) as index_size_B\nfrom information_schema.tables\ngroup by TABLE_SCHEMA\norder by data_size_B desc;\n\n-- \u67e5\u770b\u67d0\u4e2a\u6570\u636e\u5e93\u6240\u6709\u6570\u636e\u8868\u6570\u636e\u5927\u5c0f\u548c\u7d22\u5f15\u5927\u5c0f\nselect TABLE_NAME, \nconcat(truncate(sum(data_length)/1024/1024,2),' MB') as data_size,\nsum(data_length) as data_size_B,\nconcat(truncate(sum(index_length)/1024/1024,2),'MB') as index_size,\nsum(index_length) as index_size_B\nfrom information_schema.tables\n where TABLE_SCHEMA = 'newcloud'\ngroup by TABLE_NAME\norder by data_size_B desc;\n\n-- \u67e5\u770b\u67d0\u4e2a\u6570\u636e\u5e93\u67d0\u4e2a\u6570\u636e\u8868\u6570\u636e\u5927\u5c0f\u548c\u7d22\u5f15\u5927\u5c0f\nselect TABLE_NAME, \nconcat(truncate(sum(data_length)/1024/1024,2),' MB') as data_size,\nsum(data_length) as data_size_B,\nconcat(truncate(sum(index_length)/1024/1024,2),'MB') as index_size,\nsum(index_length) as index_size_B\nfrom information_schema.tables\nwhere TABLE_SCHEMA = 'newcloud'\nand table_name='log_err_flow'\ngroup by TABLE_NAME\norder by data_size_B desc;\n")),(0,t.yg)("h3",{id:"\u4f18\u5316"},"\u4f18\u5316"),(0,t.yg)("ol",null,(0,t.yg)("li",{parentName:"ol"},(0,t.yg)("a",{parentName:"li",href:"https://cloud.tencent.com/developer/article/1580260"},"\u7a0b\u5e8f\u5458\u8fdb\u9636\u5fc5\u8bfb\uff0c\u4e07\u5b57\u603b\u7ed3Mysql\u4f18\u5316\u7cbe\u534e\u7bc7"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/74adc76f.fcbcb610.js b/assets/js/74adc76f.f1f48d11.js similarity index 98% rename from assets/js/74adc76f.fcbcb610.js rename to assets/js/74adc76f.f1f48d11.js index f81b1b334..da861440c 100644 --- a/assets/js/74adc76f.fcbcb610.js +++ b/assets/js/74adc76f.f1f48d11.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1399],{5680:(e,t,n)=>{n.d(t,{xA:()=>p,yg:()=>y});var r=n(6540);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),u=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=u(e.components);return r.createElement(l.Provider,{value:t},e.children)},s="mdxType",f={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),s=u(n),d=a,y=s["".concat(l,".").concat(d)]||s[d]||f[d]||o;return n?r.createElement(y,i(i({ref:t},p),{},{components:n})):r.createElement(y,i({ref:t},p))}));function y(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=d;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[s]="string"==typeof e?e:a,i[1]=c;for(var u=2;u{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>f,frontMatter:()=>o,metadata:()=>c,toc:()=>u});var r=n(8168),a=(n(6540),n(5680));const o={sidebar_position:1},i="\u6982\u8ff0",c={unversionedId:"xuanxing/back/index",id:"xuanxing/back/index",title:"\u6982\u8ff0",description:"\u4e3b\u8981\u4f7f\u7528 Java\uff0c\u4e2d\u95f4\u4ef6\u53ef\u96c6\u6210\u6216\u72ec\u7acb\u90e8\u7f72\u3002",source:"@site/docs/xuanxing/back/index.md",sourceDirName:"xuanxing/back",slug:"/xuanxing/back/",permalink:"/docs/xuanxing/back/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"xuanxingSidebar",previous:{title:"\u7ec4\u6001\u7f16\u8f91\u5668/\u5927\u5c4f\u7f16\u8f91\u5668",permalink:"/docs/xuanxing/fe/\u7ec4\u6001+\u5927\u5c4f\u7f16\u8f91\u5668"},next:{title:"\u6982\u8ff0",permalink:"/docs/xuanxing/devops/"}},l={},u=[],p={toc:u},s="wrapper";function f(e){let{components:t,...n}=e;return(0,a.yg)(s,(0,r.A)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,a.yg)("p",null,"\u4e3b\u8981\u4f7f\u7528 Java\uff0c\u4e2d\u95f4\u4ef6\u53ef\u96c6\u6210\u6216\u72ec\u7acb\u90e8\u7f72\u3002"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"MQTT Broker \u91c7\u7528 hivemq \u96c6\u6210"),(0,a.yg)("li",{parentName:"ul"},"redis"),(0,a.yg)("li",{parentName:"ul"},"mysql"),(0,a.yg)("li",{parentName:"ul"},"kafka"),(0,a.yg)("li",{parentName:"ul"},"influxdb")))}f.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1399],{5680:(e,t,n)=>{n.d(t,{xA:()=>p,yg:()=>y});var r=n(6540);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),u=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=u(e.components);return r.createElement(l.Provider,{value:t},e.children)},s="mdxType",f={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),s=u(n),d=a,y=s["".concat(l,".").concat(d)]||s[d]||f[d]||o;return n?r.createElement(y,i(i({ref:t},p),{},{components:n})):r.createElement(y,i({ref:t},p))}));function y(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=d;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[s]="string"==typeof e?e:a,i[1]=c;for(var u=2;u{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>f,frontMatter:()=>o,metadata:()=>c,toc:()=>u});var r=n(8168),a=(n(6540),n(5680));const o={sidebar_position:1},i="\u6982\u8ff0",c={unversionedId:"xuanxing/back/index",id:"xuanxing/back/index",title:"\u6982\u8ff0",description:"\u4e3b\u8981\u4f7f\u7528 Java\uff0c\u4e2d\u95f4\u4ef6\u53ef\u96c6\u6210\u6216\u72ec\u7acb\u90e8\u7f72\u3002",source:"@site/docs/xuanxing/back/index.md",sourceDirName:"xuanxing/back",slug:"/xuanxing/back/",permalink:"/docs/xuanxing/back/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"xuanxingSidebar",previous:{title:"\u7ec4\u6001\u7f16\u8f91\u5668/\u5927\u5c4f\u7f16\u8f91\u5668",permalink:"/docs/xuanxing/fe/\u7ec4\u6001+\u5927\u5c4f\u7f16\u8f91\u5668"},next:{title:"\u6982\u8ff0",permalink:"/docs/xuanxing/devops/"}},l={},u=[],p={toc:u},s="wrapper";function f(e){let{components:t,...n}=e;return(0,a.yg)(s,(0,r.A)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,a.yg)("p",null,"\u4e3b\u8981\u4f7f\u7528 Java\uff0c\u4e2d\u95f4\u4ef6\u53ef\u96c6\u6210\u6216\u72ec\u7acb\u90e8\u7f72\u3002"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"MQTT Broker \u91c7\u7528 hivemq \u96c6\u6210"),(0,a.yg)("li",{parentName:"ul"},"redis"),(0,a.yg)("li",{parentName:"ul"},"mysql"),(0,a.yg)("li",{parentName:"ul"},"kafka"),(0,a.yg)("li",{parentName:"ul"},"influxdb")))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/75219fff.9970b0e0.js b/assets/js/75219fff.b99b318c.js similarity index 98% rename from assets/js/75219fff.9970b0e0.js rename to assets/js/75219fff.b99b318c.js index aa73e002f..45c0e97ac 100644 --- a/assets/js/75219fff.9970b0e0.js +++ b/assets/js/75219fff.b99b318c.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3213],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>m});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),s=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=s(e.components);return n.createElement(l.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=s(r),f=o,m=p["".concat(l,".").concat(f)]||p[f]||d[f]||a;return r?n.createElement(m,c(c({ref:t},u),{},{components:r})):n.createElement(m,c({ref:t},u))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=f;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[p]="string"==typeof e?e:o,c[1]=i;for(var s=2;s{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>s});var n=r(8168),o=(r(6540),r(5680));const a={},c="\u4e0b\u8f7d\u56fe\u7247",i={unversionedId:"study/fe/\u4e0b\u8f7d\u56fe\u7247",id:"study/fe/\u4e0b\u8f7d\u56fe\u7247",title:"\u4e0b\u8f7d\u56fe\u7247",description:"",source:"@site/docs/study/fe/\u4e0b\u8f7d\u56fe\u7247.md",sourceDirName:"study/fe",slug:"/study/fe/\u4e0b\u8f7d\u56fe\u7247",permalink:"/docs/study/fe/\u4e0b\u8f7d\u56fe\u7247",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"mqtt.js",permalink:"/docs/study/fe/mqtt.js"},next:{title:"\u4f4e\u4ee3\u7801\u53ef\u89c6\u5316\u5e73\u53f0",permalink:"/docs/study/fe/\u4f4e\u4ee3\u7801\u53ef\u89c6\u5316\u5e73\u53f0"}},l={},s=[],u={toc:s},p="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(p,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u4e0b\u8f7d\u56fe\u7247"},"\u4e0b\u8f7d\u56fe\u7247"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-javascript"},'function download(src, name) {\n var $a = document.createElement("a");\n $a.setAttribute("href", src);\n $a.setAttribute("download", name);\n var evObj = document.createEvent("MouseEvents");\n evObj.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, true, false, 0, null);\n $a.dispatchEvent(evObj);\n}\ndocument.querySelectorAll(".wrap-card:nth-child(15) img.icon").forEach((item, i) => {\n if (i >= 120 && i < 130) {\n console.log(item.src);\n download(item.src, item.src.split("/").slice(-1)[0]);\n }\n});\ndocument.querySelectorAll(".chart img").forEach((item, i) => {\n console.log(i);\n if (i >= 30 && i < 40) {\n console.log(item.src);\n download(item.src, item.src.split("/").slice(-1)[0]);\n }\n});\n')))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3213],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>m});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),s=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=s(e.components);return n.createElement(l.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=s(r),f=o,m=p["".concat(l,".").concat(f)]||p[f]||d[f]||a;return r?n.createElement(m,c(c({ref:t},u),{},{components:r})):n.createElement(m,c({ref:t},u))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=f;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[p]="string"==typeof e?e:o,c[1]=i;for(var s=2;s{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>s});var n=r(8168),o=(r(6540),r(5680));const a={},c="\u4e0b\u8f7d\u56fe\u7247",i={unversionedId:"study/fe/\u4e0b\u8f7d\u56fe\u7247",id:"study/fe/\u4e0b\u8f7d\u56fe\u7247",title:"\u4e0b\u8f7d\u56fe\u7247",description:"",source:"@site/docs/study/fe/\u4e0b\u8f7d\u56fe\u7247.md",sourceDirName:"study/fe",slug:"/study/fe/\u4e0b\u8f7d\u56fe\u7247",permalink:"/docs/study/fe/\u4e0b\u8f7d\u56fe\u7247",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"mqtt.js",permalink:"/docs/study/fe/mqtt.js"},next:{title:"\u4f4e\u4ee3\u7801\u53ef\u89c6\u5316\u5e73\u53f0",permalink:"/docs/study/fe/\u4f4e\u4ee3\u7801\u53ef\u89c6\u5316\u5e73\u53f0"}},l={},s=[],u={toc:s},p="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(p,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u4e0b\u8f7d\u56fe\u7247"},"\u4e0b\u8f7d\u56fe\u7247"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-javascript"},'function download(src, name) {\n var $a = document.createElement("a");\n $a.setAttribute("href", src);\n $a.setAttribute("download", name);\n var evObj = document.createEvent("MouseEvents");\n evObj.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, true, false, 0, null);\n $a.dispatchEvent(evObj);\n}\ndocument.querySelectorAll(".wrap-card:nth-child(15) img.icon").forEach((item, i) => {\n if (i >= 120 && i < 130) {\n console.log(item.src);\n download(item.src, item.src.split("/").slice(-1)[0]);\n }\n});\ndocument.querySelectorAll(".chart img").forEach((item, i) => {\n console.log(i);\n if (i >= 30 && i < 40) {\n console.log(item.src);\n download(item.src, item.src.split("/").slice(-1)[0]);\n }\n});\n')))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/795941ce.ac4c5e96.js b/assets/js/795941ce.fe823bff.js similarity index 98% rename from assets/js/795941ce.ac4c5e96.js rename to assets/js/795941ce.fe823bff.js index 0624bc101..694083ab2 100644 --- a/assets/js/795941ce.ac4c5e96.js +++ b/assets/js/795941ce.fe823bff.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4968],{5680:(e,t,r)=>{r.d(t,{xA:()=>l,yg:()=>f});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function p(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var p=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),s=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},l=function(e){var t=s(e.components);return n.createElement(i.Provider,{value:t},e.children)},u="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,p=e.originalType,i=e.parentName,l=o(e,["components","mdxType","originalType","parentName"]),u=s(r),d=a,f=u["".concat(i,".").concat(d)]||u[d]||y[d]||p;return r?n.createElement(f,c(c({ref:t},l),{},{components:r})):n.createElement(f,c({ref:t},l))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var p=r.length,c=new Array(p);c[0]=d;var o={};for(var i in t)hasOwnProperty.call(t,i)&&(o[i]=t[i]);o.originalType=e,o[u]="string"==typeof e?e:a,c[1]=o;for(var s=2;s{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>c,default:()=>y,frontMatter:()=>p,metadata:()=>o,toc:()=>s});var n=r(8168),a=(r(6540),r(5680));const p={},c="Apache APISIX",o={unversionedId:"study/back/API\u7f51\u5173/APISIX",id:"study/back/API\u7f51\u5173/APISIX",title:"Apache APISIX",description:"Apache APISIX \u662f\u4e00\u4e2a\u52a8\u6001\u3001\u5b9e\u65f6\u3001\u9ad8\u6027\u80fd\u7684\u4e91\u539f\u751f API \u7f51\u5173\uff0c\u63d0\u4f9b\u4e86\u8d1f\u8f7d\u5747\u8861\u3001\u52a8\u6001\u4e0a\u6e38\u3001\u7070\u5ea6\u53d1\u5e03\u3001\u670d\u52a1\u7194\u65ad\u3001\u8eab\u4efd\u8ba4\u8bc1\u3001\u53ef\u89c2\u6d4b\u6027\u7b49\u4e30\u5bcc\u7684\u6d41\u91cf\u7ba1\u7406\u529f\u80fd\u3002",source:"@site/docs/study/back/API\u7f51\u5173/APISIX.md",sourceDirName:"study/back/API\u7f51\u5173",slug:"/study/back/API\u7f51\u5173/APISIX",permalink:"/docs/study/back/API\u7f51\u5173/APISIX",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"API \u7f51\u5173",permalink:"/docs/study/back/API\u7f51\u5173/"},next:{title:"Maven",permalink:"/docs/study/back/IEDA/Maven"}},i={},s=[{value:"APISIX \u6240\u5c55\u73b0\u51fa\u7684\u6027\u80fd\u5982\u4f55\uff1f",id:"apisix-\u6240\u5c55\u73b0\u51fa\u7684\u6027\u80fd\u5982\u4f55",level:3}],l={toc:s},u="wrapper";function y(e){let{components:t,...r}=e;return(0,a.yg)(u,(0,n.A)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"apache-apisix"},"Apache APISIX"),(0,a.yg)("p",null,"Apache APISIX \u662f\u4e00\u4e2a\u52a8\u6001\u3001\u5b9e\u65f6\u3001\u9ad8\u6027\u80fd\u7684\u4e91\u539f\u751f API \u7f51\u5173\uff0c\u63d0\u4f9b\u4e86\u8d1f\u8f7d\u5747\u8861\u3001\u52a8\u6001\u4e0a\u6e38\u3001\u7070\u5ea6\u53d1\u5e03\u3001\u670d\u52a1\u7194\u65ad\u3001\u8eab\u4efd\u8ba4\u8bc1\u3001\u53ef\u89c2\u6d4b\u6027\u7b49\u4e30\u5bcc\u7684\u6d41\u91cf\u7ba1\u7406\u529f\u80fd\u3002"),(0,a.yg)("p",null,(0,a.yg)("a",{parentName:"p",href:"https://apisix.apache.org/zh/"},"\u5b98\u65b9\u7f51\u7ad9")),(0,a.yg)("p",null,(0,a.yg)("a",{parentName:"p",href:"https://apisix.apache.org/zh/docs/apisix/getting-started/README/"},"\u5b98\u65b9\u6587\u6863")),(0,a.yg)("p",null,"\u57fa\u4e8e ",(0,a.yg)("a",{parentName:"p",href:"https://openresty.org/cn/"},"OpenResty")," \u548c ",(0,a.yg)("a",{parentName:"p",href:"https://etcd.io/"},"etcd")),(0,a.yg)("h3",{id:"apisix-\u6240\u5c55\u73b0\u51fa\u7684\u6027\u80fd\u5982\u4f55"},"APISIX \u6240\u5c55\u73b0\u51fa\u7684\u6027\u80fd\u5982\u4f55\uff1f"),(0,a.yg)("p",null,"\u4e0e\u5176\u5b83 API \u7f51\u5173\u76f8\u6bd4\uff0cApache APISIX \u63d0\u4f9b\u4e86\u66f4\u597d\u7684\u6027\u80fd\uff0c\u5176\u5355\u6838 QPS \u9ad8\u8fbe 18,000\uff0c\u5e73\u5747\u5ef6\u8fdf\u4ec5\u4e3a 0.2 ms\u3002"),(0,a.yg)("p",null,"\u5982\u679c\u60a8\u60f3\u83b7\u53d6\u6027\u80fd\u57fa\u51c6\u6d4b\u8bd5\u7684\u5177\u4f53\u7ed3\u679c\uff0c\u8bf7\u67e5\u770b ",(0,a.yg)("a",{parentName:"p",href:"https://apisix.apache.org/zh/docs/apisix/benchmark/"},"benchmark"),"\u3002"))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4968],{5680:(e,t,r)=>{r.d(t,{xA:()=>l,yg:()=>f});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function p(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var p=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),s=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},l=function(e){var t=s(e.components);return n.createElement(i.Provider,{value:t},e.children)},u="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,p=e.originalType,i=e.parentName,l=o(e,["components","mdxType","originalType","parentName"]),u=s(r),d=a,f=u["".concat(i,".").concat(d)]||u[d]||y[d]||p;return r?n.createElement(f,c(c({ref:t},l),{},{components:r})):n.createElement(f,c({ref:t},l))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var p=r.length,c=new Array(p);c[0]=d;var o={};for(var i in t)hasOwnProperty.call(t,i)&&(o[i]=t[i]);o.originalType=e,o[u]="string"==typeof e?e:a,c[1]=o;for(var s=2;s{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>c,default:()=>y,frontMatter:()=>p,metadata:()=>o,toc:()=>s});var n=r(8168),a=(r(6540),r(5680));const p={},c="Apache APISIX",o={unversionedId:"study/back/API\u7f51\u5173/APISIX",id:"study/back/API\u7f51\u5173/APISIX",title:"Apache APISIX",description:"Apache APISIX \u662f\u4e00\u4e2a\u52a8\u6001\u3001\u5b9e\u65f6\u3001\u9ad8\u6027\u80fd\u7684\u4e91\u539f\u751f API \u7f51\u5173\uff0c\u63d0\u4f9b\u4e86\u8d1f\u8f7d\u5747\u8861\u3001\u52a8\u6001\u4e0a\u6e38\u3001\u7070\u5ea6\u53d1\u5e03\u3001\u670d\u52a1\u7194\u65ad\u3001\u8eab\u4efd\u8ba4\u8bc1\u3001\u53ef\u89c2\u6d4b\u6027\u7b49\u4e30\u5bcc\u7684\u6d41\u91cf\u7ba1\u7406\u529f\u80fd\u3002",source:"@site/docs/study/back/API\u7f51\u5173/APISIX.md",sourceDirName:"study/back/API\u7f51\u5173",slug:"/study/back/API\u7f51\u5173/APISIX",permalink:"/docs/study/back/API\u7f51\u5173/APISIX",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"API \u7f51\u5173",permalink:"/docs/study/back/API\u7f51\u5173/"},next:{title:"Maven",permalink:"/docs/study/back/IEDA/Maven"}},i={},s=[{value:"APISIX \u6240\u5c55\u73b0\u51fa\u7684\u6027\u80fd\u5982\u4f55\uff1f",id:"apisix-\u6240\u5c55\u73b0\u51fa\u7684\u6027\u80fd\u5982\u4f55",level:3}],l={toc:s},u="wrapper";function y(e){let{components:t,...r}=e;return(0,a.yg)(u,(0,n.A)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"apache-apisix"},"Apache APISIX"),(0,a.yg)("p",null,"Apache APISIX \u662f\u4e00\u4e2a\u52a8\u6001\u3001\u5b9e\u65f6\u3001\u9ad8\u6027\u80fd\u7684\u4e91\u539f\u751f API \u7f51\u5173\uff0c\u63d0\u4f9b\u4e86\u8d1f\u8f7d\u5747\u8861\u3001\u52a8\u6001\u4e0a\u6e38\u3001\u7070\u5ea6\u53d1\u5e03\u3001\u670d\u52a1\u7194\u65ad\u3001\u8eab\u4efd\u8ba4\u8bc1\u3001\u53ef\u89c2\u6d4b\u6027\u7b49\u4e30\u5bcc\u7684\u6d41\u91cf\u7ba1\u7406\u529f\u80fd\u3002"),(0,a.yg)("p",null,(0,a.yg)("a",{parentName:"p",href:"https://apisix.apache.org/zh/"},"\u5b98\u65b9\u7f51\u7ad9")),(0,a.yg)("p",null,(0,a.yg)("a",{parentName:"p",href:"https://apisix.apache.org/zh/docs/apisix/getting-started/README/"},"\u5b98\u65b9\u6587\u6863")),(0,a.yg)("p",null,"\u57fa\u4e8e ",(0,a.yg)("a",{parentName:"p",href:"https://openresty.org/cn/"},"OpenResty")," \u548c ",(0,a.yg)("a",{parentName:"p",href:"https://etcd.io/"},"etcd")),(0,a.yg)("h3",{id:"apisix-\u6240\u5c55\u73b0\u51fa\u7684\u6027\u80fd\u5982\u4f55"},"APISIX \u6240\u5c55\u73b0\u51fa\u7684\u6027\u80fd\u5982\u4f55\uff1f"),(0,a.yg)("p",null,"\u4e0e\u5176\u5b83 API \u7f51\u5173\u76f8\u6bd4\uff0cApache APISIX \u63d0\u4f9b\u4e86\u66f4\u597d\u7684\u6027\u80fd\uff0c\u5176\u5355\u6838 QPS \u9ad8\u8fbe 18,000\uff0c\u5e73\u5747\u5ef6\u8fdf\u4ec5\u4e3a 0.2 ms\u3002"),(0,a.yg)("p",null,"\u5982\u679c\u60a8\u60f3\u83b7\u53d6\u6027\u80fd\u57fa\u51c6\u6d4b\u8bd5\u7684\u5177\u4f53\u7ed3\u679c\uff0c\u8bf7\u67e5\u770b ",(0,a.yg)("a",{parentName:"p",href:"https://apisix.apache.org/zh/docs/apisix/benchmark/"},"benchmark"),"\u3002"))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7a58d7fa.9e3ddda1.js b/assets/js/7a58d7fa.74cd9703.js similarity index 99% rename from assets/js/7a58d7fa.9e3ddda1.js rename to assets/js/7a58d7fa.74cd9703.js index 6f68338dc..2ecd68b2c 100644 --- a/assets/js/7a58d7fa.9e3ddda1.js +++ b/assets/js/7a58d7fa.74cd9703.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7484],{5680:(e,r,t)=>{t.d(r,{xA:()=>s,yg:()=>y});var n=t(6540);function i(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function a(e){for(var r=1;r=0||(i[t]=e[t]);return i}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}var p=n.createContext({}),c=function(e){var r=n.useContext(p),t=r;return e&&(t="function"==typeof e?e(r):a(a({},r),e)),t},s=function(e){var r=c(e.components);return n.createElement(p.Provider,{value:r},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},m=n.forwardRef((function(e,r){var t=e.components,i=e.mdxType,o=e.originalType,p=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),d=c(t),m=i,y=d["".concat(p,".").concat(m)]||d[m]||u[m]||o;return t?n.createElement(y,a(a({ref:r},s),{},{components:t})):n.createElement(y,a({ref:r},s))}));function y(e,r){var t=arguments,i=r&&r.mdxType;if("string"==typeof e||i){var o=t.length,a=new Array(o);a[0]=m;var l={};for(var p in r)hasOwnProperty.call(r,p)&&(l[p]=r[p]);l.originalType=e,l[d]="string"==typeof e?e:i,a[1]=l;for(var c=2;c{t.r(r),t.d(r,{assets:()=>p,contentTitle:()=>a,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var n=t(8168),i=(t(6540),t(5680));const o={},a=void 0,l={unversionedId:"study/program/C/MFC-WinForm-WPF-DotNet\u7b49",id:"study/program/C/MFC-WinForm-WPF-DotNet\u7b49",title:"MFC-WinForm-WPF-DotNet\u7b49",description:"MFC",source:"@site/docs/study/program/C/MFC-WinForm-WPF-DotNet\u7b49.md",sourceDirName:"study/program/C",slug:"/study/program/C/MFC-WinForm-WPF-DotNet\u7b49",permalink:"/docs/study/program/C/MFC-WinForm-WPF-DotNet\u7b49",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"C\u8bed\u8a00\u6807\u51c6\u5e93",permalink:"/docs/study/program/C/C\u8bed\u8a00\u6807\u51c6\u5e93"},next:{title:"cmake",permalink:"/docs/study/program/C/cmake"}},p={},c=[{value:"MFC",id:"mfc",level:3},{value:"WinForm",id:"winform",level:3},{value:"WPF",id:"wpf",level:3},{value:"DirectX",id:"directx",level:3},{value:".NET",id:"net",level:3},{value:".NET core",id:"net-core",level:3},{value:"UWP",id:"uwp",level:3},{value:"C#",id:"c",level:3},{value:"Delphi",id:"delphi",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],s={toc:c},d="wrapper";function u(e){let{components:r,...t}=e;return(0,i.yg)(d,(0,n.A)({},s,t,{components:r,mdxType:"MDXLayout"}),(0,i.yg)("h3",{id:"mfc"},"MFC"),(0,i.yg)("p",null,"MFC(Microsoft Foundation Classes)\uff0c\u662f\u5fae\u8f6f\u516c\u53f8\u63d0\u4f9b\u7684\u4e00\u4e2a\u7c7b\u5e93\uff08class libraries\uff09\uff0c\u4ee5 C++\u7c7b\u7684\u5f62\u5f0f\u5c01\u88c5\u4e86 Windows \u7684 API\uff0c\u5e76\u4e14\u5305\u542b\u4e00\u4e2a\u5e94\u7528\u7a0b\u5e8f\u6846\u67b6\uff0c\u4ee5\u51cf\u5c11\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u4eba\u5458\u7684\u5de5\u4f5c\u91cf\u3002\u5176\u4e2d\u5305\u542b\u7684\u7c7b\u5305\u542b\u5927\u91cf Windows \u53e5\u67c4\u5c01\u88c5\u7c7b\u548c\u5f88\u591a Windows \u7684\u5185\u5efa\u63a7\u4ef6\u548c\u7ec4\u4ef6\u7684\u5c01\u88c5\u7c7b\u3002"),(0,i.yg)("h3",{id:"winform"},"WinForm"),(0,i.yg)("p",null,"Windows Form\uff0c\u7b80\u79f0 WinForm \u662f\u5fae\u8f6f .NET \u5e73\u53f0 \u4e0b\u7528\u4e8e\u5f00\u53d1\u201c\u56fe\u5f62\u754c\u9762\u201d\u5e94\u7528\u7a0b\u5e8f\u7684\u7ec4\u4ef6\u3002"),(0,i.yg)("h3",{id:"wpf"},"WPF"),(0,i.yg)("p",null,"WPF\uff08Windows Presentation Foundation\uff09\u662f\u5fae\u8f6f\u63a8\u51fa\u7684\u57fa\u4e8e Windows \u7684\u7528\u6237\u754c\u9762\u6846\u67b6\uff0c\u5c5e\u4e8e.NET Framework 3.0 \u7684\u4e00\u90e8\u5206\u3002\u5b83\u63d0\u4f9b\u4e86\u7edf\u4e00\u7684\u7f16\u7a0b\u6a21\u578b\u3001\u8bed\u8a00\u548c\u6846\u67b6\uff0c\u771f\u6b63\u505a\u5230\u4e86\u5206\u79bb\u754c\u9762\u8bbe\u8ba1\u4eba\u5458\u4e0e\u5f00\u53d1\u4eba\u5458\u7684\u5de5\u4f5c\uff1b\u540c\u65f6\u5b83\u63d0\u4f9b\u4e86\u5168\u65b0\u7684\u591a\u5a92\u4f53\u4ea4\u4e92\u7528\u6237\u56fe\u5f62\u754c\u9762\u3002"),(0,i.yg)("h3",{id:"directx"},"DirectX"),(0,i.yg)("p",null,"DirectX\uff08Direct eXtension\uff0c\u7b80\u79f0 DX\uff09\u662f\u7531\u5fae\u8f6f\u516c\u53f8\u521b\u5efa\u7684\u591a\u5a92\u4f53\u7f16\u7a0b\u63a5\u53e3\uff0c\u662f\u4e00\u79cd\u5e94\u7528\u7a0b\u5e8f\u63a5\u53e3\uff08API\uff09\u3002DirectX \u53ef\u4ee5\u8ba9\u4ee5 windows \u4e3a\u5e73\u53f0\u7684\u6e38\u620f\u6216\u591a\u5a92\u4f53\u7a0b\u5e8f\u83b7\u5f97\u66f4\u9ad8\u7684\u6267\u884c\u6548\u7387\uff0c\u52a0\u5f3a 3D \u56fe\u5f62\u548c\u58f0\u97f3\u6548\u679c\uff0c\u5e76\u63d0\u4f9b\u8bbe\u8ba1\u4eba\u5458\u4e00\u4e2a\u5171\u540c\u7684\u786c\u4ef6\u9a71\u52a8\u6807\u51c6\uff0c\u8ba9\u6e38\u620f\u5f00\u53d1\u8005\u4e0d\u5fc5\u4e3a\u6bcf\u4e00\u54c1\u724c\u7684\u786c\u4ef6\u6765\u5199\u4e0d\u540c\u7684\u9a71\u52a8\u7a0b\u5e8f\uff0c\u4e5f\u964d\u4f4e\u7528\u6237\u5b89\u88c5\u53ca\u8bbe\u7f6e\u786c\u4ef6\u7684\u590d\u6742\u5ea6\u3002DirectX \u5df2\u88ab\u5e7f\u6cdb\u4f7f\u7528\u4e8e Microsoft Windows\u3001Microsoft XBOX\u3001Microsoft XBOX 360 \u548c Microsoft XBOX ONE \u7535\u5b50\u6e38\u620f\u5f00\u53d1\u3002"),(0,i.yg)("h3",{id:"net"},".NET"),(0,i.yg)("p",null,".NET \u662f\u4e00\u79cd\u7528\u4e8e\u6784\u5efa\u591a\u79cd\u5e94\u7528\u7684\u514d\u8d39\u5f00\u6e90\u5f00\u53d1\u5e73\u53f0\uff0c\u53ef\u4ee5\u4f7f\u7528 C#\u3001F#\u6216 Visual Basic \u7f16\u5199.NET \u5e94\u7528\u3002 .NET \u7528\u4e8e\u751f\u6210\u591a\u79cd\u7c7b\u578b\u7684\u5e94\u7528\u7a0b\u5e8f\u548c\u5e93\u5f00\u53d1 Web \u5e94\u7528\u3001Web API \u548c\u5fae\u670d\u52a1\u3001\u4e91\u4e2d\u7684\u65e0\u670d\u52a1\u5668\u51fd\u6570\u3001\u4e91\u539f\u751f\u5e94\u7528\u3001\u79fb\u52a8\u5e94\u7528\u3001\u684c\u9762\u5e94\u7528\u3001Windows WPF\u3001Windows \u7a97\u4f53\u3001\u901a\u7528 Windows \u5e73\u53f0 (UWP)\u3001\u6e38\u620f\u3001\u7269\u8054\u7f51 (IoT)\u3001\u673a\u5668\u5b66\u4e60\u3001\u63a7\u5236\u53f0\u5e94\u7528\u3001Windows \u670d\u52a1\u3002.NET \u7c7b\u5e93\u5728\u4e0d\u540c\u5e94\u7528\u548c\u5e94\u7528\u7c7b\u578b\u4e2d\u5171\u4eab\u529f\u80fd\uff0c\u65e0\u8bba\u6784\u5efa\u54ea\u79cd\u7c7b\u578b\u7684\u5e94\u7528\uff0c\u4ee3\u7801\u548c\u9879\u76ee\u6587\u4ef6\u770b\u8d77\u6765\u90fd\u4e00\u6837\uff0c\u53ef\u4ee5\u8bbf\u95ee\u6bcf\u4e2a\u5e94\u7528\u7684\u76f8\u540c\u8fd0\u884c\u65f6\u3001API \u548c\u8bed\u8a00\u529f\u80fd\u3002"),(0,i.yg)("h3",{id:"net-core"},".NET core"),(0,i.yg)("p",null,".NET Core \u662f\u9002\u7528\u4e8e Windows\u3001Linux \u548c macOS \u7684\u514d\u8d39\u3001\u5f00\u6e90\u6258\u7ba1\u7684\u8ba1\u7b97\u673a\u8f6f\u4ef6\u6846\u67b6\uff0c\u662f\u5fae\u8f6f\u5f00\u53d1\u7684\u7b2c\u4e00\u4e2a\u5b98\u65b9\u7248\u672c\uff0c\u5177\u6709\u8de8\u5e73\u53f0\u80fd\u529b\u7684\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u6846\u67b6 (Application Framework)\uff0c\u672a\u6765\u4e5f\u5c06\u4f1a\u652f\u6301 FreeBSD \u4e0e Alpine \u5e73\u53f0\uff0c\u4e5f\u662f\u5fae\u8f6f\u5728\u4e00\u5f00\u59cb\u53d1\u5c55\u65f6\u5c31\u5f00\u6e90\u7684\u8f6f\u4ef6\u5e73\u53f0 \uff0c\u5b83\u7ecf\u5e38\u4e5f\u4f1a\u62ff\u6765\u548c\u73b0\u6709\u7684\u5f00\u6e90 .NET \u5e73\u53f0 Mono \u6bd4\u8f83\u3002"),(0,i.yg)("h3",{id:"uwp"},"UWP"),(0,i.yg)("p",null,"UWP \u5373 Windows 10 \u4e2d\u7684 Universal Windows Platform \u7b80\u79f0\u3002\u5373 Windows \u901a\u7528\u5e94\u7528\u5e73\u53f0\uff0c\u5728 Windows 10 Mobile/Surface\uff08Windows \u5e73\u677f\u7535\u8111\uff09/PC/Xbox/HoloLens \u7b49\u5e73\u53f0\u4e0a\u8fd0\u884c\uff0cuwp \u4e0d\u540c\u4e8e\u4f20\u7edf pc \u4e0a\u7684 exe \u5e94\u7528\uff0c\u4e5f\u8ddf\u53ea\u9002\u7528\u4e8e\u624b\u673a\u7aef\u7684 app \u6709\u672c\u8d28\u533a\u522b\u3002\u5b83\u5e76\u4e0d\u662f\u4e3a\u67d0\u4e00\u4e2a\u7ec8\u7aef\u800c\u8bbe\u8ba1\uff0c\u800c\u662f\u53ef\u4ee5\u5728\u6240\u6709 Windows10 \u8bbe\u5907\u4e0a\u8fd0\u884c\u3002"),(0,i.yg)("h3",{id:"c"},"C#"),(0,i.yg)("p",null,"C#\u662f\u5fae\u8f6f\u516c\u53f8\u53d1\u5e03\u7684\u4e00\u79cd\u7531 C \u548c C++\u884d\u751f\u51fa\u6765\u7684\u9762\u5411\u5bf9\u8c61\u7684\u7f16\u7a0b\u8bed\u8a00\u3001\u8fd0\u884c\u4e8e.NET Framework \u548c.NET Core(\u5b8c\u5168\u5f00\u6e90\uff0c\u8de8\u5e73\u53f0)\u4e4b\u4e0a\u7684\u9ad8\u7ea7\u7a0b\u5e8f\u8bbe\u8ba1\u8bed\u8a00\u3002"),(0,i.yg)("p",null,"C#\u662f\u7531 C \u548c C++\u884d\u751f\u51fa\u6765\u7684\u4e00\u79cd\u5b89\u5168\u7684\u3001\u7a33\u5b9a\u7684\u3001\u7b80\u5355\u7684\u3001\u4f18\u96c5\u7684\u9762\u5411\u5bf9\u8c61\u7f16\u7a0b\u8bed\u8a00\u3002\u5b83\u5728\u7ee7\u627f C \u548c C++\u5f3a\u5927\u529f\u80fd\u7684\u540c\u65f6\u53bb\u6389\u4e86\u4e00\u4e9b\u5b83\u4eec\u7684\u590d\u6742\u7279\u6027\uff08\u4f8b\u5982\u6ca1\u6709\u5b8f\u4ee5\u53ca\u4e0d\u5141\u8bb8\u591a\u91cd\u7ee7\u627f\uff09\u3002C#\u7efc\u5408\u4e86 VB \u7b80\u5355\u7684\u53ef\u89c6\u5316\u64cd\u4f5c\u548c C++\u7684\u9ad8\u8fd0\u884c\u6548\u7387\uff0c\u4ee5\u5176\u5f3a\u5927\u7684\u64cd\u4f5c\u80fd\u529b\u3001\u4f18\u96c5\u7684\u8bed\u6cd5\u98ce\u683c\u3001\u521b\u65b0\u7684\u8bed\u8a00\u7279\u6027\u548c\u4fbf\u6377\u7684\u9762\u5411\u7ec4\u4ef6\u7f16\u7a0b\u7684\u652f\u6301\u6210\u4e3a.NET \u5f00\u53d1\u7684\u9996\u9009\u8bed\u8a00\u3002"),(0,i.yg)("h3",{id:"delphi"},"Delphi"),(0,i.yg)("p",null,"Delphi\uff0c\u662f Windows \u5e73\u53f0\u4e0b\u8457\u540d\u7684\u5feb\u901f\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u5de5\u5177(Rapid Application Development\uff0c\u7b80\u79f0 RAD)\u3002\u5b83\u7684\u524d\u8eab\uff0c\u5373\u662f DOS \u65f6\u4ee3\u76db\u884c\u4e00\u65f6\u7684\u201cBorlandTurbo Pascal\u201d\uff0c\u6700\u65e9\u7684\u7248\u672c\u7531\u7f8e\u56fd Borland\uff08\u5b9d\u5170\uff09\u516c\u53f8\u4e8e 1995 \u5e74\u5f00\u53d1\u3002\u4e3b\u521b\u8005\u4e3a Anders Hejlsberg\u3002\u7ecf\u8fc7\u6570\u5e74\u7684\u53d1\u5c55\uff0c\u6b64\u4ea7\u54c1\u4e5f\u8f6c\u79fb\u81f3 Embarcadero \u516c\u53f8\u65d7\u4e0b\u3002Delphi \u662f\u4e00\u4e2a\u96c6\u6210\u5f00\u53d1\u73af\u5883\uff08IDE\uff09\uff0c\u4f7f\u7528\u7684\u6838\u5fc3\u662f\u7531\u4f20\u7edf Pascal \u8bed\u8a00\u53d1\u5c55\u800c\u6765\u7684 Object Pascal\uff0c\u4ee5\u56fe\u5f62\u7528\u6237\u754c\u9762\u4e3a\u5f00\u53d1\u73af\u5883\uff0c\u900f\u8fc7 IDE\u3001VCL \u5de5\u5177\u4e0e\u7f16\u8bd1\u5668\uff0c\u914d\u5408\u8fde\u7ed3\u6570\u636e\u5e93\u7684\u529f\u80fd\uff0c\u6784\u6210\u4e00\u4e2a\u4ee5\u9762\u5411\u5bf9\u8c61\u7a0b\u5e8f\u8bbe\u8ba1\u4e3a\u4e2d\u5fc3\u7684\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u5de5\u5177\u3002",(0,i.yg)("strong",{parentName:"p"},(0,i.yg)("em",{parentName:"strong"},"\u5df2\u6ca1\u843d\uff0c\u73b0\u5728\u5f88\u5c11\u6709\u4eba\u7528\u4e86"))),(0,i.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("a",{parentName:"li",href:"https://baike.baidu.com/item/MFC/2236974"},"\u767e\u5ea6\u767e\u79d1-MFC")),(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("a",{parentName:"li",href:"https://baike.baidu.com/item/WPF/5299594"},"\u767e\u5ea6\u767e\u79d1-WPF")),(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("a",{parentName:"li",href:"https://baike.baidu.com/item/DirectX/314119"},"\u767e\u5ea6\u767e\u79d1-DirectX")),(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("a",{parentName:"li",href:"https://baike.baidu.com/item/.NET/156737"},"\u767e\u5ea6\u767e\u79d1-.NET")),(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("a",{parentName:"li",href:"https://baike.baidu.com/item/.net%20core"},"\u767e\u5ea6\u767e\u79d1-.NET core")),(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("a",{parentName:"li",href:"https://baike.baidu.com/item/Universal%20Windows%20Platform/23796796"},"\u767e\u5ea6\u767e\u79d1-UWP")),(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("a",{parentName:"li",href:"https://baike.baidu.com/item/C%23/195147"},"\u767e\u5ea6\u767e\u79d1-C#"))))}u.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7484],{5680:(e,r,t)=>{t.d(r,{xA:()=>s,yg:()=>y});var n=t(6540);function i(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function a(e){for(var r=1;r=0||(i[t]=e[t]);return i}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}var p=n.createContext({}),c=function(e){var r=n.useContext(p),t=r;return e&&(t="function"==typeof e?e(r):a(a({},r),e)),t},s=function(e){var r=c(e.components);return n.createElement(p.Provider,{value:r},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},m=n.forwardRef((function(e,r){var t=e.components,i=e.mdxType,o=e.originalType,p=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),d=c(t),m=i,y=d["".concat(p,".").concat(m)]||d[m]||u[m]||o;return t?n.createElement(y,a(a({ref:r},s),{},{components:t})):n.createElement(y,a({ref:r},s))}));function y(e,r){var t=arguments,i=r&&r.mdxType;if("string"==typeof e||i){var o=t.length,a=new Array(o);a[0]=m;var l={};for(var p in r)hasOwnProperty.call(r,p)&&(l[p]=r[p]);l.originalType=e,l[d]="string"==typeof e?e:i,a[1]=l;for(var c=2;c{t.r(r),t.d(r,{assets:()=>p,contentTitle:()=>a,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var n=t(8168),i=(t(6540),t(5680));const o={},a=void 0,l={unversionedId:"study/program/C/MFC-WinForm-WPF-DotNet\u7b49",id:"study/program/C/MFC-WinForm-WPF-DotNet\u7b49",title:"MFC-WinForm-WPF-DotNet\u7b49",description:"MFC",source:"@site/docs/study/program/C/MFC-WinForm-WPF-DotNet\u7b49.md",sourceDirName:"study/program/C",slug:"/study/program/C/MFC-WinForm-WPF-DotNet\u7b49",permalink:"/docs/study/program/C/MFC-WinForm-WPF-DotNet\u7b49",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"C\u8bed\u8a00\u6807\u51c6\u5e93",permalink:"/docs/study/program/C/C\u8bed\u8a00\u6807\u51c6\u5e93"},next:{title:"cmake",permalink:"/docs/study/program/C/cmake"}},p={},c=[{value:"MFC",id:"mfc",level:3},{value:"WinForm",id:"winform",level:3},{value:"WPF",id:"wpf",level:3},{value:"DirectX",id:"directx",level:3},{value:".NET",id:"net",level:3},{value:".NET core",id:"net-core",level:3},{value:"UWP",id:"uwp",level:3},{value:"C#",id:"c",level:3},{value:"Delphi",id:"delphi",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],s={toc:c},d="wrapper";function u(e){let{components:r,...t}=e;return(0,i.yg)(d,(0,n.A)({},s,t,{components:r,mdxType:"MDXLayout"}),(0,i.yg)("h3",{id:"mfc"},"MFC"),(0,i.yg)("p",null,"MFC(Microsoft Foundation Classes)\uff0c\u662f\u5fae\u8f6f\u516c\u53f8\u63d0\u4f9b\u7684\u4e00\u4e2a\u7c7b\u5e93\uff08class libraries\uff09\uff0c\u4ee5 C++\u7c7b\u7684\u5f62\u5f0f\u5c01\u88c5\u4e86 Windows \u7684 API\uff0c\u5e76\u4e14\u5305\u542b\u4e00\u4e2a\u5e94\u7528\u7a0b\u5e8f\u6846\u67b6\uff0c\u4ee5\u51cf\u5c11\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u4eba\u5458\u7684\u5de5\u4f5c\u91cf\u3002\u5176\u4e2d\u5305\u542b\u7684\u7c7b\u5305\u542b\u5927\u91cf Windows \u53e5\u67c4\u5c01\u88c5\u7c7b\u548c\u5f88\u591a Windows \u7684\u5185\u5efa\u63a7\u4ef6\u548c\u7ec4\u4ef6\u7684\u5c01\u88c5\u7c7b\u3002"),(0,i.yg)("h3",{id:"winform"},"WinForm"),(0,i.yg)("p",null,"Windows Form\uff0c\u7b80\u79f0 WinForm \u662f\u5fae\u8f6f .NET \u5e73\u53f0 \u4e0b\u7528\u4e8e\u5f00\u53d1\u201c\u56fe\u5f62\u754c\u9762\u201d\u5e94\u7528\u7a0b\u5e8f\u7684\u7ec4\u4ef6\u3002"),(0,i.yg)("h3",{id:"wpf"},"WPF"),(0,i.yg)("p",null,"WPF\uff08Windows Presentation Foundation\uff09\u662f\u5fae\u8f6f\u63a8\u51fa\u7684\u57fa\u4e8e Windows \u7684\u7528\u6237\u754c\u9762\u6846\u67b6\uff0c\u5c5e\u4e8e.NET Framework 3.0 \u7684\u4e00\u90e8\u5206\u3002\u5b83\u63d0\u4f9b\u4e86\u7edf\u4e00\u7684\u7f16\u7a0b\u6a21\u578b\u3001\u8bed\u8a00\u548c\u6846\u67b6\uff0c\u771f\u6b63\u505a\u5230\u4e86\u5206\u79bb\u754c\u9762\u8bbe\u8ba1\u4eba\u5458\u4e0e\u5f00\u53d1\u4eba\u5458\u7684\u5de5\u4f5c\uff1b\u540c\u65f6\u5b83\u63d0\u4f9b\u4e86\u5168\u65b0\u7684\u591a\u5a92\u4f53\u4ea4\u4e92\u7528\u6237\u56fe\u5f62\u754c\u9762\u3002"),(0,i.yg)("h3",{id:"directx"},"DirectX"),(0,i.yg)("p",null,"DirectX\uff08Direct eXtension\uff0c\u7b80\u79f0 DX\uff09\u662f\u7531\u5fae\u8f6f\u516c\u53f8\u521b\u5efa\u7684\u591a\u5a92\u4f53\u7f16\u7a0b\u63a5\u53e3\uff0c\u662f\u4e00\u79cd\u5e94\u7528\u7a0b\u5e8f\u63a5\u53e3\uff08API\uff09\u3002DirectX \u53ef\u4ee5\u8ba9\u4ee5 windows \u4e3a\u5e73\u53f0\u7684\u6e38\u620f\u6216\u591a\u5a92\u4f53\u7a0b\u5e8f\u83b7\u5f97\u66f4\u9ad8\u7684\u6267\u884c\u6548\u7387\uff0c\u52a0\u5f3a 3D \u56fe\u5f62\u548c\u58f0\u97f3\u6548\u679c\uff0c\u5e76\u63d0\u4f9b\u8bbe\u8ba1\u4eba\u5458\u4e00\u4e2a\u5171\u540c\u7684\u786c\u4ef6\u9a71\u52a8\u6807\u51c6\uff0c\u8ba9\u6e38\u620f\u5f00\u53d1\u8005\u4e0d\u5fc5\u4e3a\u6bcf\u4e00\u54c1\u724c\u7684\u786c\u4ef6\u6765\u5199\u4e0d\u540c\u7684\u9a71\u52a8\u7a0b\u5e8f\uff0c\u4e5f\u964d\u4f4e\u7528\u6237\u5b89\u88c5\u53ca\u8bbe\u7f6e\u786c\u4ef6\u7684\u590d\u6742\u5ea6\u3002DirectX \u5df2\u88ab\u5e7f\u6cdb\u4f7f\u7528\u4e8e Microsoft Windows\u3001Microsoft XBOX\u3001Microsoft XBOX 360 \u548c Microsoft XBOX ONE \u7535\u5b50\u6e38\u620f\u5f00\u53d1\u3002"),(0,i.yg)("h3",{id:"net"},".NET"),(0,i.yg)("p",null,".NET \u662f\u4e00\u79cd\u7528\u4e8e\u6784\u5efa\u591a\u79cd\u5e94\u7528\u7684\u514d\u8d39\u5f00\u6e90\u5f00\u53d1\u5e73\u53f0\uff0c\u53ef\u4ee5\u4f7f\u7528 C#\u3001F#\u6216 Visual Basic \u7f16\u5199.NET \u5e94\u7528\u3002 .NET \u7528\u4e8e\u751f\u6210\u591a\u79cd\u7c7b\u578b\u7684\u5e94\u7528\u7a0b\u5e8f\u548c\u5e93\u5f00\u53d1 Web \u5e94\u7528\u3001Web API \u548c\u5fae\u670d\u52a1\u3001\u4e91\u4e2d\u7684\u65e0\u670d\u52a1\u5668\u51fd\u6570\u3001\u4e91\u539f\u751f\u5e94\u7528\u3001\u79fb\u52a8\u5e94\u7528\u3001\u684c\u9762\u5e94\u7528\u3001Windows WPF\u3001Windows \u7a97\u4f53\u3001\u901a\u7528 Windows \u5e73\u53f0 (UWP)\u3001\u6e38\u620f\u3001\u7269\u8054\u7f51 (IoT)\u3001\u673a\u5668\u5b66\u4e60\u3001\u63a7\u5236\u53f0\u5e94\u7528\u3001Windows \u670d\u52a1\u3002.NET \u7c7b\u5e93\u5728\u4e0d\u540c\u5e94\u7528\u548c\u5e94\u7528\u7c7b\u578b\u4e2d\u5171\u4eab\u529f\u80fd\uff0c\u65e0\u8bba\u6784\u5efa\u54ea\u79cd\u7c7b\u578b\u7684\u5e94\u7528\uff0c\u4ee3\u7801\u548c\u9879\u76ee\u6587\u4ef6\u770b\u8d77\u6765\u90fd\u4e00\u6837\uff0c\u53ef\u4ee5\u8bbf\u95ee\u6bcf\u4e2a\u5e94\u7528\u7684\u76f8\u540c\u8fd0\u884c\u65f6\u3001API \u548c\u8bed\u8a00\u529f\u80fd\u3002"),(0,i.yg)("h3",{id:"net-core"},".NET core"),(0,i.yg)("p",null,".NET Core \u662f\u9002\u7528\u4e8e Windows\u3001Linux \u548c macOS \u7684\u514d\u8d39\u3001\u5f00\u6e90\u6258\u7ba1\u7684\u8ba1\u7b97\u673a\u8f6f\u4ef6\u6846\u67b6\uff0c\u662f\u5fae\u8f6f\u5f00\u53d1\u7684\u7b2c\u4e00\u4e2a\u5b98\u65b9\u7248\u672c\uff0c\u5177\u6709\u8de8\u5e73\u53f0\u80fd\u529b\u7684\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u6846\u67b6 (Application Framework)\uff0c\u672a\u6765\u4e5f\u5c06\u4f1a\u652f\u6301 FreeBSD \u4e0e Alpine \u5e73\u53f0\uff0c\u4e5f\u662f\u5fae\u8f6f\u5728\u4e00\u5f00\u59cb\u53d1\u5c55\u65f6\u5c31\u5f00\u6e90\u7684\u8f6f\u4ef6\u5e73\u53f0 \uff0c\u5b83\u7ecf\u5e38\u4e5f\u4f1a\u62ff\u6765\u548c\u73b0\u6709\u7684\u5f00\u6e90 .NET \u5e73\u53f0 Mono \u6bd4\u8f83\u3002"),(0,i.yg)("h3",{id:"uwp"},"UWP"),(0,i.yg)("p",null,"UWP \u5373 Windows 10 \u4e2d\u7684 Universal Windows Platform \u7b80\u79f0\u3002\u5373 Windows \u901a\u7528\u5e94\u7528\u5e73\u53f0\uff0c\u5728 Windows 10 Mobile/Surface\uff08Windows \u5e73\u677f\u7535\u8111\uff09/PC/Xbox/HoloLens \u7b49\u5e73\u53f0\u4e0a\u8fd0\u884c\uff0cuwp \u4e0d\u540c\u4e8e\u4f20\u7edf pc \u4e0a\u7684 exe \u5e94\u7528\uff0c\u4e5f\u8ddf\u53ea\u9002\u7528\u4e8e\u624b\u673a\u7aef\u7684 app \u6709\u672c\u8d28\u533a\u522b\u3002\u5b83\u5e76\u4e0d\u662f\u4e3a\u67d0\u4e00\u4e2a\u7ec8\u7aef\u800c\u8bbe\u8ba1\uff0c\u800c\u662f\u53ef\u4ee5\u5728\u6240\u6709 Windows10 \u8bbe\u5907\u4e0a\u8fd0\u884c\u3002"),(0,i.yg)("h3",{id:"c"},"C#"),(0,i.yg)("p",null,"C#\u662f\u5fae\u8f6f\u516c\u53f8\u53d1\u5e03\u7684\u4e00\u79cd\u7531 C \u548c C++\u884d\u751f\u51fa\u6765\u7684\u9762\u5411\u5bf9\u8c61\u7684\u7f16\u7a0b\u8bed\u8a00\u3001\u8fd0\u884c\u4e8e.NET Framework \u548c.NET Core(\u5b8c\u5168\u5f00\u6e90\uff0c\u8de8\u5e73\u53f0)\u4e4b\u4e0a\u7684\u9ad8\u7ea7\u7a0b\u5e8f\u8bbe\u8ba1\u8bed\u8a00\u3002"),(0,i.yg)("p",null,"C#\u662f\u7531 C \u548c C++\u884d\u751f\u51fa\u6765\u7684\u4e00\u79cd\u5b89\u5168\u7684\u3001\u7a33\u5b9a\u7684\u3001\u7b80\u5355\u7684\u3001\u4f18\u96c5\u7684\u9762\u5411\u5bf9\u8c61\u7f16\u7a0b\u8bed\u8a00\u3002\u5b83\u5728\u7ee7\u627f C \u548c C++\u5f3a\u5927\u529f\u80fd\u7684\u540c\u65f6\u53bb\u6389\u4e86\u4e00\u4e9b\u5b83\u4eec\u7684\u590d\u6742\u7279\u6027\uff08\u4f8b\u5982\u6ca1\u6709\u5b8f\u4ee5\u53ca\u4e0d\u5141\u8bb8\u591a\u91cd\u7ee7\u627f\uff09\u3002C#\u7efc\u5408\u4e86 VB \u7b80\u5355\u7684\u53ef\u89c6\u5316\u64cd\u4f5c\u548c C++\u7684\u9ad8\u8fd0\u884c\u6548\u7387\uff0c\u4ee5\u5176\u5f3a\u5927\u7684\u64cd\u4f5c\u80fd\u529b\u3001\u4f18\u96c5\u7684\u8bed\u6cd5\u98ce\u683c\u3001\u521b\u65b0\u7684\u8bed\u8a00\u7279\u6027\u548c\u4fbf\u6377\u7684\u9762\u5411\u7ec4\u4ef6\u7f16\u7a0b\u7684\u652f\u6301\u6210\u4e3a.NET \u5f00\u53d1\u7684\u9996\u9009\u8bed\u8a00\u3002"),(0,i.yg)("h3",{id:"delphi"},"Delphi"),(0,i.yg)("p",null,"Delphi\uff0c\u662f Windows \u5e73\u53f0\u4e0b\u8457\u540d\u7684\u5feb\u901f\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u5de5\u5177(Rapid Application Development\uff0c\u7b80\u79f0 RAD)\u3002\u5b83\u7684\u524d\u8eab\uff0c\u5373\u662f DOS \u65f6\u4ee3\u76db\u884c\u4e00\u65f6\u7684\u201cBorlandTurbo Pascal\u201d\uff0c\u6700\u65e9\u7684\u7248\u672c\u7531\u7f8e\u56fd Borland\uff08\u5b9d\u5170\uff09\u516c\u53f8\u4e8e 1995 \u5e74\u5f00\u53d1\u3002\u4e3b\u521b\u8005\u4e3a Anders Hejlsberg\u3002\u7ecf\u8fc7\u6570\u5e74\u7684\u53d1\u5c55\uff0c\u6b64\u4ea7\u54c1\u4e5f\u8f6c\u79fb\u81f3 Embarcadero \u516c\u53f8\u65d7\u4e0b\u3002Delphi \u662f\u4e00\u4e2a\u96c6\u6210\u5f00\u53d1\u73af\u5883\uff08IDE\uff09\uff0c\u4f7f\u7528\u7684\u6838\u5fc3\u662f\u7531\u4f20\u7edf Pascal \u8bed\u8a00\u53d1\u5c55\u800c\u6765\u7684 Object Pascal\uff0c\u4ee5\u56fe\u5f62\u7528\u6237\u754c\u9762\u4e3a\u5f00\u53d1\u73af\u5883\uff0c\u900f\u8fc7 IDE\u3001VCL \u5de5\u5177\u4e0e\u7f16\u8bd1\u5668\uff0c\u914d\u5408\u8fde\u7ed3\u6570\u636e\u5e93\u7684\u529f\u80fd\uff0c\u6784\u6210\u4e00\u4e2a\u4ee5\u9762\u5411\u5bf9\u8c61\u7a0b\u5e8f\u8bbe\u8ba1\u4e3a\u4e2d\u5fc3\u7684\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u5de5\u5177\u3002",(0,i.yg)("strong",{parentName:"p"},(0,i.yg)("em",{parentName:"strong"},"\u5df2\u6ca1\u843d\uff0c\u73b0\u5728\u5f88\u5c11\u6709\u4eba\u7528\u4e86"))),(0,i.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("a",{parentName:"li",href:"https://baike.baidu.com/item/MFC/2236974"},"\u767e\u5ea6\u767e\u79d1-MFC")),(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("a",{parentName:"li",href:"https://baike.baidu.com/item/WPF/5299594"},"\u767e\u5ea6\u767e\u79d1-WPF")),(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("a",{parentName:"li",href:"https://baike.baidu.com/item/DirectX/314119"},"\u767e\u5ea6\u767e\u79d1-DirectX")),(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("a",{parentName:"li",href:"https://baike.baidu.com/item/.NET/156737"},"\u767e\u5ea6\u767e\u79d1-.NET")),(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("a",{parentName:"li",href:"https://baike.baidu.com/item/.net%20core"},"\u767e\u5ea6\u767e\u79d1-.NET core")),(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("a",{parentName:"li",href:"https://baike.baidu.com/item/Universal%20Windows%20Platform/23796796"},"\u767e\u5ea6\u767e\u79d1-UWP")),(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("a",{parentName:"li",href:"https://baike.baidu.com/item/C%23/195147"},"\u767e\u5ea6\u767e\u79d1-C#"))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7c0c45cc.643a00a0.js b/assets/js/7c0c45cc.519f0122.js similarity index 99% rename from assets/js/7c0c45cc.643a00a0.js rename to assets/js/7c0c45cc.519f0122.js index ed420fb04..24d396ea1 100644 --- a/assets/js/7c0c45cc.643a00a0.js +++ b/assets/js/7c0c45cc.519f0122.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1521],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>y});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),i=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},p=function(e){var t=i(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",f={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),u=i(r),d=a,y=u["".concat(l,".").concat(d)]||u[d]||f[d]||o;return r?n.createElement(y,c(c({ref:t},p),{},{components:r})):n.createElement(y,c({ref:t},p))}));function y(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,c=new Array(o);c[0]=d;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[u]="string"==typeof e?e:a,c[1]=s;for(var i=2;i{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>f,frontMatter:()=>o,metadata:()=>s,toc:()=>i});var n=r(8168),a=(r(6540),r(5680));const o={},c=void 0,s={unversionedId:"study/back/mq/Kafka",id:"study/back/mq/Kafka",title:"Kafka",description:"\u7b80\u4ecb",source:"@site/docs/study/back/mq/Kafka.md",sourceDirName:"study/back/mq",slug:"/study/back/mq/Kafka",permalink:"/docs/study/back/mq/Kafka",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u6784\u5efaDocker",permalink:"/docs/study/back/maven/\u6784\u5efaDocker"},next:{title:"MQTT broker",permalink:"/docs/study/back/mq/MQTT broker"}},l={},i=[{value:"\u7b80\u4ecb",id:"\u7b80\u4ecb",level:3},{value:"\u5e38\u89c1\u4f7f\u7528\u573a\u666f",id:"\u5e38\u89c1\u4f7f\u7528\u573a\u666f",level:3},{value:"\u5e38\u7528\u547d\u4ee4",id:"\u5e38\u7528\u547d\u4ee4",level:3}],p={toc:i},u="wrapper";function f(e){let{components:t,...r}=e;return(0,a.yg)(u,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u7b80\u4ecb"},"\u7b80\u4ecb"),(0,a.yg)("p",null,"kafka \u6700\u65b0\u5b9a\u4e49\u4e3a\uff1a\u5206\u5e03\u5f0f\u6d41\u5f0f\u5e73\u53f0\uff0c\u800c\u4e0d\u662f\u5355\u7eaf\u7684\u6d88\u606f\u7cfb\u7edf\uff0c\u66f4\u5177\u6709\u6301\u4e45\u5316\u3001\u6d41\u5904\u7406\u7684\u7279\u70b9\uff1b\u4e3b\u8981\u5904\u7406\u4e24\u7c7b\u5e94\u7528\uff1a\u5b9e\u65f6\u6d41\u6570\u636e\u7ba1\u9053\u548c\u5b9e\u65f6\u6d41\u5e94\u7528\u7a0b\u5e8f\u3002"),(0,a.yg)("p",null,"\u5b9e\u65f6\u6d41\u6570\u636e\u7ba1\u9053\uff1a\u4e3e\u4e2a\u4f8b\u5b50 Kafka+ELK \u5904\u7406\u65e5\u5fd7\uff1b\n\u5b9e\u65f6\u6d41\u5e94\u7528\u7a0b\u5e8f\uff1a\u4e3e\u4e2a\u4f8b\u5b50 Kafka+\u62a5\u8b66\u6a21\u5757 APP\uff1b\n\u6301\u4e45\u5316\uff0c\u53ef\u4ee5\u4f5c\u4e3a\u5b58\u50a8\u7cfb\u7edf\uff0c\u6bcf\u4e2a\u6d88\u8d39\u8005\u5bf9\u6bcf\u4e2a topic \u90fd\u6709\u4e00\u4e2a offset \u6765\u8bb0\u5f55\u4e0a\u6b21\u6d88\u8d39\u7684\u4f4d\u7f6e\uff1b"),(0,a.yg)("h3",{id:"\u5e38\u89c1\u4f7f\u7528\u573a\u666f"},"\u5e38\u89c1\u4f7f\u7528\u573a\u666f"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"\u6d88\u606f\uff0c\u53ef\u4ee5\u5ab2\u7f8e ActiveMQ \u548c RabbitMQ\uff1b"),(0,a.yg)("li",{parentName:"ol"},"\u7f51\u7ad9\u6d3b\u52a8\u8ddf\u8e2a\uff0c\u6570\u636e>>Kafka>>ELK/Hbase/Hadoop\uff1b"),(0,a.yg)("li",{parentName:"ol"},"\u5ea6\u91cf\uff0c\u8fd0\u8425\u76d1\u63a7\u6570\u636e\uff1b"),(0,a.yg)("li",{parentName:"ol"},"\u65e5\u5fd7\u805a\u5408\uff0cKafka+ELK\uff1b"),(0,a.yg)("li",{parentName:"ol"},"\u6d41\u5904\u7406\uff0c\u4ece 0.10 \u5f00\u59cb\uff0cKafka Streams \u662f\u4e00\u4e2a\u8f7b\u91cf\u7ea7\u4f46\u529f\u80fd\u5f3a\u5927\u7684\u6d41\u5904\u7406\u5e93\uff1b")),(0,a.yg)("h3",{id:"\u5e38\u7528\u547d\u4ee4"},"\u5e38\u7528\u547d\u4ee4"),(0,a.yg)("p",null,"\u53c2\u8003 ",(0,a.yg)("a",{parentName:"p",href:"https://kafka.apache.org/quickstart"},"quickstart")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"# \u8fdb\u7a0b+kafka\u542f\u52a8\u65b9\u5f0f\ntar -xzf kafka_2.13-3.7.0.tgz\ncd kafka_2.13-3.7.0\n#\nnohup bin/zookeeper-server-start.sh config/zookeeper.properties > /dev/null 2>&1 &\n#\nnohup bin/kafka-server-start.sh config/server.properties > /dev/null 2>&1 &\n#\nnohup ./chongqing.sh > /dev/null 2&>1 &\n")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},'#!/bin/sh\necho -e "\u5faa\u73af\u5904\u7406 ..."\nwhile [ 1 ]\ndo\necho \'{"cloudID":"DcqcCcspgExtXcKp","orgID":1,"serviceCloudID":"HwygExtXcKp","serviceDirectoryID":"xc-kp_basicencryption_dataencryptioin_1","usedPercent":"30%","csID":6802687148295450000,"configNum":10,"serviceUsed":150,"serviceTotal":500,"serviceSpecification":50,"serviceCountUnit":"Mb/s"}\' | ./bin/kafka-console-producer.sh --bootstrap-server localhost:9092 --topic quickstart-events\nsleep 10s\ndone\n')),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"# \u67e5\u770btopic\u5217\u8868\n./bin/kafka-topics.sh --list --bootstrap-server localhost:9092\n# \u521b\u5efatopic\n./bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --topic xxx\n# \u521b\u5efa\u751f\u4ea7\u8005\n./bin/kafka-console-producer.sh --bootstrap-server localhost:9092 --topic jiot.cloud\n./bin/kafka-console-producer.sh --bootstrap-server localhost:9092 --topic quickstart-events\n# \u521b\u5efa\u6d88\u8d39\u8005\n./bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 \\\n--topic quickstart-events \\\n--from-beginning\n")))}f.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1521],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>y});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),i=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},p=function(e){var t=i(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",f={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),u=i(r),d=a,y=u["".concat(l,".").concat(d)]||u[d]||f[d]||o;return r?n.createElement(y,c(c({ref:t},p),{},{components:r})):n.createElement(y,c({ref:t},p))}));function y(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,c=new Array(o);c[0]=d;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[u]="string"==typeof e?e:a,c[1]=s;for(var i=2;i{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>f,frontMatter:()=>o,metadata:()=>s,toc:()=>i});var n=r(8168),a=(r(6540),r(5680));const o={},c=void 0,s={unversionedId:"study/back/mq/Kafka",id:"study/back/mq/Kafka",title:"Kafka",description:"\u7b80\u4ecb",source:"@site/docs/study/back/mq/Kafka.md",sourceDirName:"study/back/mq",slug:"/study/back/mq/Kafka",permalink:"/docs/study/back/mq/Kafka",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u6784\u5efaDocker",permalink:"/docs/study/back/maven/\u6784\u5efaDocker"},next:{title:"MQTT broker",permalink:"/docs/study/back/mq/MQTT broker"}},l={},i=[{value:"\u7b80\u4ecb",id:"\u7b80\u4ecb",level:3},{value:"\u5e38\u89c1\u4f7f\u7528\u573a\u666f",id:"\u5e38\u89c1\u4f7f\u7528\u573a\u666f",level:3},{value:"\u5e38\u7528\u547d\u4ee4",id:"\u5e38\u7528\u547d\u4ee4",level:3}],p={toc:i},u="wrapper";function f(e){let{components:t,...r}=e;return(0,a.yg)(u,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u7b80\u4ecb"},"\u7b80\u4ecb"),(0,a.yg)("p",null,"kafka \u6700\u65b0\u5b9a\u4e49\u4e3a\uff1a\u5206\u5e03\u5f0f\u6d41\u5f0f\u5e73\u53f0\uff0c\u800c\u4e0d\u662f\u5355\u7eaf\u7684\u6d88\u606f\u7cfb\u7edf\uff0c\u66f4\u5177\u6709\u6301\u4e45\u5316\u3001\u6d41\u5904\u7406\u7684\u7279\u70b9\uff1b\u4e3b\u8981\u5904\u7406\u4e24\u7c7b\u5e94\u7528\uff1a\u5b9e\u65f6\u6d41\u6570\u636e\u7ba1\u9053\u548c\u5b9e\u65f6\u6d41\u5e94\u7528\u7a0b\u5e8f\u3002"),(0,a.yg)("p",null,"\u5b9e\u65f6\u6d41\u6570\u636e\u7ba1\u9053\uff1a\u4e3e\u4e2a\u4f8b\u5b50 Kafka+ELK \u5904\u7406\u65e5\u5fd7\uff1b\n\u5b9e\u65f6\u6d41\u5e94\u7528\u7a0b\u5e8f\uff1a\u4e3e\u4e2a\u4f8b\u5b50 Kafka+\u62a5\u8b66\u6a21\u5757 APP\uff1b\n\u6301\u4e45\u5316\uff0c\u53ef\u4ee5\u4f5c\u4e3a\u5b58\u50a8\u7cfb\u7edf\uff0c\u6bcf\u4e2a\u6d88\u8d39\u8005\u5bf9\u6bcf\u4e2a topic \u90fd\u6709\u4e00\u4e2a offset \u6765\u8bb0\u5f55\u4e0a\u6b21\u6d88\u8d39\u7684\u4f4d\u7f6e\uff1b"),(0,a.yg)("h3",{id:"\u5e38\u89c1\u4f7f\u7528\u573a\u666f"},"\u5e38\u89c1\u4f7f\u7528\u573a\u666f"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"\u6d88\u606f\uff0c\u53ef\u4ee5\u5ab2\u7f8e ActiveMQ \u548c RabbitMQ\uff1b"),(0,a.yg)("li",{parentName:"ol"},"\u7f51\u7ad9\u6d3b\u52a8\u8ddf\u8e2a\uff0c\u6570\u636e>>Kafka>>ELK/Hbase/Hadoop\uff1b"),(0,a.yg)("li",{parentName:"ol"},"\u5ea6\u91cf\uff0c\u8fd0\u8425\u76d1\u63a7\u6570\u636e\uff1b"),(0,a.yg)("li",{parentName:"ol"},"\u65e5\u5fd7\u805a\u5408\uff0cKafka+ELK\uff1b"),(0,a.yg)("li",{parentName:"ol"},"\u6d41\u5904\u7406\uff0c\u4ece 0.10 \u5f00\u59cb\uff0cKafka Streams \u662f\u4e00\u4e2a\u8f7b\u91cf\u7ea7\u4f46\u529f\u80fd\u5f3a\u5927\u7684\u6d41\u5904\u7406\u5e93\uff1b")),(0,a.yg)("h3",{id:"\u5e38\u7528\u547d\u4ee4"},"\u5e38\u7528\u547d\u4ee4"),(0,a.yg)("p",null,"\u53c2\u8003 ",(0,a.yg)("a",{parentName:"p",href:"https://kafka.apache.org/quickstart"},"quickstart")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"# \u8fdb\u7a0b+kafka\u542f\u52a8\u65b9\u5f0f\ntar -xzf kafka_2.13-3.7.0.tgz\ncd kafka_2.13-3.7.0\n#\nnohup bin/zookeeper-server-start.sh config/zookeeper.properties > /dev/null 2>&1 &\n#\nnohup bin/kafka-server-start.sh config/server.properties > /dev/null 2>&1 &\n#\nnohup ./chongqing.sh > /dev/null 2&>1 &\n")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},'#!/bin/sh\necho -e "\u5faa\u73af\u5904\u7406 ..."\nwhile [ 1 ]\ndo\necho \'{"cloudID":"DcqcCcspgExtXcKp","orgID":1,"serviceCloudID":"HwygExtXcKp","serviceDirectoryID":"xc-kp_basicencryption_dataencryptioin_1","usedPercent":"30%","csID":6802687148295450000,"configNum":10,"serviceUsed":150,"serviceTotal":500,"serviceSpecification":50,"serviceCountUnit":"Mb/s"}\' | ./bin/kafka-console-producer.sh --bootstrap-server localhost:9092 --topic quickstart-events\nsleep 10s\ndone\n')),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"# \u67e5\u770btopic\u5217\u8868\n./bin/kafka-topics.sh --list --bootstrap-server localhost:9092\n# \u521b\u5efatopic\n./bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --topic xxx\n# \u521b\u5efa\u751f\u4ea7\u8005\n./bin/kafka-console-producer.sh --bootstrap-server localhost:9092 --topic jiot.cloud\n./bin/kafka-console-producer.sh --bootstrap-server localhost:9092 --topic quickstart-events\n# \u521b\u5efa\u6d88\u8d39\u8005\n./bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 \\\n--topic quickstart-events \\\n--from-beginning\n")))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7c66c59a.4c8280f8.js b/assets/js/7c66c59a.f3c3d8d5.js similarity index 99% rename from assets/js/7c66c59a.4c8280f8.js rename to assets/js/7c66c59a.f3c3d8d5.js index 510fea5c9..26ceaa8a1 100644 --- a/assets/js/7c66c59a.4c8280f8.js +++ b/assets/js/7c66c59a.f3c3d8d5.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5599],{5680:(e,t,n)=>{n.d(t,{xA:()=>u,yg:()=>g});var r=n(6540);function s(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(s[n]=e[n]);return s}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}var p=r.createContext({}),c=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},u=function(e){var t=c(e.components);return r.createElement(p.Provider,{value:t},e.children)},i="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,s=e.mdxType,a=e.originalType,p=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),i=c(n),d=s,g=i["".concat(p,".").concat(d)]||i[d]||y[d]||a;return n?r.createElement(g,o(o({ref:t},u),{},{components:n})):r.createElement(g,o({ref:t},u))}));function g(e,t){var n=arguments,s=t&&t.mdxType;if("string"==typeof e||s){var a=n.length,o=new Array(a);o[0]=d;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[i]="string"==typeof e?e:s,o[1]=l;for(var c=2;c{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>y,frontMatter:()=>a,metadata:()=>l,toc:()=>c});var r=n(8168),s=(n(6540),n(5680));const a={},o="ssh",l={unversionedId:"study/devops/ssh",id:"study/devops/ssh",title:"ssh",description:"ssh\u8fde\u63a5\u4e0d\u4e0a",source:"@site/docs/study/devops/ssh.md",sourceDirName:"study/devops",slug:"/study/devops/ssh",permalink:"/docs/study/devops/ssh",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"jar\u8fd0\u7ef4-\u76d1\u63a7",permalink:"/docs/study/devops/jar\u8fd0\u7ef4-\u76d1\u63a7"},next:{title:"\u94fe\u8def\u8ffd\u8e2a\u76d1\u63a7",permalink:"/docs/study/devops/\u94fe\u8def\u8ffd\u8e2a\u76d1\u63a7"}},p={},c=[{value:"ssh\u8fde\u63a5\u4e0d\u4e0a",id:"ssh\u8fde\u63a5\u4e0d\u4e0a",level:3},{value:"\u914d\u7f6essh\u514d\u5bc6\u767b\u5f55",id:"\u914d\u7f6essh\u514d\u5bc6\u767b\u5f55",level:3}],u={toc:c},i="wrapper";function y(e){let{components:t,...n}=e;return(0,s.yg)(i,(0,r.A)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,s.yg)("h1",{id:"ssh"},"ssh"),(0,s.yg)("h3",{id:"ssh\u8fde\u63a5\u4e0d\u4e0a"},"ssh\u8fde\u63a5\u4e0d\u4e0a"),(0,s.yg)("p",null,"\u73b0\u573a\u63cf\u8ff0\uff1a"),(0,s.yg)("p",null,"\u4f7f\u7528ssh ",(0,s.yg)("a",{parentName:"p",href:"mailto:ccsp@10.0.120.44"},"ccsp@10.0.120.44")," \u547d\u4ee4\u540e\uff0c\u8fc7\u4e86\u5f88\u4e45\u624d\u8fd4\u56de"),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-shell"},"Connection closed by 10.0.120.44 port 22\n")),(0,s.yg)("p",null,"\u6709\u7684\u670d\u52a1\u5668\u662f\u53ef\u4ee5\uff0c\u5f53\u65f6\u8fde\u63a5\u4e0d\u4e0a\u7684\u8fd9\u4e2a\u670d\u52a1\u5668\u662fUbuntu\uff0c10.0.120.44\u6240\u5728\u64cd\u4f5c\u7cfb\u7edf\u662f\u6b27\u62c9\u3002"),(0,s.yg)("p",null,"\u89e3\u51b3\u65b9\u6848\uff1a"),(0,s.yg)("p",null,"\u6211\u4e00\u5ea6\u6000\u7591\u662fssh\u7684\u95ee\u9898\uff0c\u56e0\u4e3a\u6709\u7684\u670d\u52a1\u5668\u80fd\u591f\u6b63\u5e38\u7684\u8fde\u63a5\uff0c\u800c\u4e14\u7528\u81ea\u5df1\u7684windows\u5ba2\u6237\u7aef\u90fd\u662f\u53ef\u4ee5\u6b63\u5e38\u8fde\u63a5\u7684\u3002"),(0,s.yg)("p",null,"\u4f7f\u7528\u547d\u4ee4 "),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-shell"},"ssh -v ccsp@10.0.120.44\n")),(0,s.yg)("p",null,"\u8f93\u51fa\u6253\u5370\u65e5\u5fd7\uff0c\u53d1\u73b0\u4e86\u4e00\u70b9\u8e2a\u8ff9\uff0c"),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-shell"},"debug1: Unspecified GSS failure. Minor code may provide more information\nNo Kerberos credentials available (default cache: FILE:/tmp/krb5cc_994)\n")),(0,s.yg)("p",null,(0,s.yg)("strong",{parentName:"p"},(0,s.yg)("em",{parentName:"strong"},"\u89e3\u51b3\u65b9\u6848"))),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-shell"},"ssh -v -o GSSAPIAuthentication=no ccsp@10.0.120.44\n")),(0,s.yg)("p",null,"\u589e\u52a0\u53c2\u6570 \u7981\u7528GSSAPIAuthentication"),(0,s.yg)("p",null,"\u539f\u56e0\u662fclient\u548cserver\u7684ssh\u7248\u672c\u662f\u4e0d\u4e00\u81f4\u7684\uff0cclient\u7684\u7248\u672c\u6709\u70b9\u4f4e\u3002"),(0,s.yg)("h3",{id:"\u914d\u7f6essh\u514d\u5bc6\u767b\u5f55"},"\u914d\u7f6essh\u514d\u5bc6\u767b\u5f55"),(0,s.yg)("p",null,"\u914d\u7f6eSSH\u514d\u5bc6\u767b\u5f55\u7684\u6b65\u9aa4\u5982\u4e0b\uff1a"),(0,s.yg)("p",null,"\u751f\u6210SSH\u5bc6\u94a5\u5bf9\u3002\u5728\u672c\u5730\u8ba1\u7b97\u673a\u7684\u7ec8\u7aef\u6216\u547d\u4ee4\u63d0\u793a\u7b26\u4e2d\u6267\u884c\u4ee5\u4e0b\u547d\u4ee4\u6765\u751f\u6210SSH\u5bc6\u94a5\u5bf9\uff1assh-keygen -t rsa\uff0c\u8fd9\u5c06\u521b\u5efa\u4e00\u4e2a\u79c1\u94a5\uff08id_rsa\uff09\u548c\u4e00\u4e2a\u516c\u94a5\uff08id_rsa.pub\uff09\u3002"),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-shell"},"#\nssh-keygen -t rsa\n#\nssh-copy-id username@remote_host\n# \u7279\u6b8a\u7aef\u53e3\nssh-copy-id -p 10212 username@remote_host\n#\n")),(0,s.yg)("p",null,"\u5c06\u516c\u94a5\u590d\u5236\u5230\u76ee\u6807\u670d\u52a1\u5668\u3002\u4f7f\u7528ssh-copy-id\u547d\u4ee4\u5c06\u516c\u94a5\u590d\u5236\u5230\u8fdc\u7a0b\u670d\u52a1\u5668\u4e0a\uff0c\u4f8b\u5982ssh-copy-id username@remote_host\uff0c\u5176\u4e2dusername\u662f\u8fdc\u7a0b\u670d\u52a1\u5668\u7684\u7528\u6237\u540d\uff0cremote_host\u662f\u8fdc\u7a0b\u670d\u52a1\u5668\u7684\u5730\u5740\u6216\u57df\u540d\u3002"),(0,s.yg)("p",null,"\u6d4b\u8bd5\u514d\u5bc6\u767b\u5f55\u3002\u5728\u672c\u5730\u8ba1\u7b97\u673a\u4e0a\u6267\u884cssh\u547d\u4ee4\uff0c\u65e0\u9700\u8f93\u5165\u5bc6\u7801\uff0c\u4f8b\u5982ssh username@remote_host\uff0c\u5982\u679c\u4e00\u5207\u6b63\u5e38\uff0c\u5219\u8868\u793aSSH\u514d\u5bc6\u767b\u5f55\u5df2\u6210\u529f\u914d\u7f6e\u3002"),(0,s.yg)("p",null,"\u6b64\u5916\uff0c\u5728\u76ee\u6807\u670d\u52a1\u5668\u4e0a\uff0c\u53ef\u80fd\u9700\u8981\u914d\u7f6eSSH\u670d\u52a1\u4ee5\u5141\u8bb8\u514d\u5bc6\u767b\u5f55\uff0c\u8fd9\u901a\u5e38\u6d89\u53ca\u7f16\u8f91/etc/ssh/sshd_config\u6587\u4ef6\uff0c\u5e76\u6dfb\u52a0RSAAuthentication\ue6ea\u548cPubkeyAuthentication\u9009\u9879\uff0c\u5e76\u91cd\u542fSSH\u670d\u52a1\u3002"))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5599],{5680:(e,t,n)=>{n.d(t,{xA:()=>u,yg:()=>g});var r=n(6540);function s(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(s[n]=e[n]);return s}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}var p=r.createContext({}),c=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},u=function(e){var t=c(e.components);return r.createElement(p.Provider,{value:t},e.children)},i="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,s=e.mdxType,a=e.originalType,p=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),i=c(n),d=s,g=i["".concat(p,".").concat(d)]||i[d]||y[d]||a;return n?r.createElement(g,o(o({ref:t},u),{},{components:n})):r.createElement(g,o({ref:t},u))}));function g(e,t){var n=arguments,s=t&&t.mdxType;if("string"==typeof e||s){var a=n.length,o=new Array(a);o[0]=d;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[i]="string"==typeof e?e:s,o[1]=l;for(var c=2;c{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>y,frontMatter:()=>a,metadata:()=>l,toc:()=>c});var r=n(8168),s=(n(6540),n(5680));const a={},o="ssh",l={unversionedId:"study/devops/ssh",id:"study/devops/ssh",title:"ssh",description:"ssh\u8fde\u63a5\u4e0d\u4e0a",source:"@site/docs/study/devops/ssh.md",sourceDirName:"study/devops",slug:"/study/devops/ssh",permalink:"/docs/study/devops/ssh",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"jar\u8fd0\u7ef4-\u76d1\u63a7",permalink:"/docs/study/devops/jar\u8fd0\u7ef4-\u76d1\u63a7"},next:{title:"\u94fe\u8def\u8ffd\u8e2a\u76d1\u63a7",permalink:"/docs/study/devops/\u94fe\u8def\u8ffd\u8e2a\u76d1\u63a7"}},p={},c=[{value:"ssh\u8fde\u63a5\u4e0d\u4e0a",id:"ssh\u8fde\u63a5\u4e0d\u4e0a",level:3},{value:"\u914d\u7f6essh\u514d\u5bc6\u767b\u5f55",id:"\u914d\u7f6essh\u514d\u5bc6\u767b\u5f55",level:3}],u={toc:c},i="wrapper";function y(e){let{components:t,...n}=e;return(0,s.yg)(i,(0,r.A)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,s.yg)("h1",{id:"ssh"},"ssh"),(0,s.yg)("h3",{id:"ssh\u8fde\u63a5\u4e0d\u4e0a"},"ssh\u8fde\u63a5\u4e0d\u4e0a"),(0,s.yg)("p",null,"\u73b0\u573a\u63cf\u8ff0\uff1a"),(0,s.yg)("p",null,"\u4f7f\u7528ssh ",(0,s.yg)("a",{parentName:"p",href:"mailto:ccsp@10.0.120.44"},"ccsp@10.0.120.44")," \u547d\u4ee4\u540e\uff0c\u8fc7\u4e86\u5f88\u4e45\u624d\u8fd4\u56de"),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-shell"},"Connection closed by 10.0.120.44 port 22\n")),(0,s.yg)("p",null,"\u6709\u7684\u670d\u52a1\u5668\u662f\u53ef\u4ee5\uff0c\u5f53\u65f6\u8fde\u63a5\u4e0d\u4e0a\u7684\u8fd9\u4e2a\u670d\u52a1\u5668\u662fUbuntu\uff0c10.0.120.44\u6240\u5728\u64cd\u4f5c\u7cfb\u7edf\u662f\u6b27\u62c9\u3002"),(0,s.yg)("p",null,"\u89e3\u51b3\u65b9\u6848\uff1a"),(0,s.yg)("p",null,"\u6211\u4e00\u5ea6\u6000\u7591\u662fssh\u7684\u95ee\u9898\uff0c\u56e0\u4e3a\u6709\u7684\u670d\u52a1\u5668\u80fd\u591f\u6b63\u5e38\u7684\u8fde\u63a5\uff0c\u800c\u4e14\u7528\u81ea\u5df1\u7684windows\u5ba2\u6237\u7aef\u90fd\u662f\u53ef\u4ee5\u6b63\u5e38\u8fde\u63a5\u7684\u3002"),(0,s.yg)("p",null,"\u4f7f\u7528\u547d\u4ee4 "),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-shell"},"ssh -v ccsp@10.0.120.44\n")),(0,s.yg)("p",null,"\u8f93\u51fa\u6253\u5370\u65e5\u5fd7\uff0c\u53d1\u73b0\u4e86\u4e00\u70b9\u8e2a\u8ff9\uff0c"),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-shell"},"debug1: Unspecified GSS failure. Minor code may provide more information\nNo Kerberos credentials available (default cache: FILE:/tmp/krb5cc_994)\n")),(0,s.yg)("p",null,(0,s.yg)("strong",{parentName:"p"},(0,s.yg)("em",{parentName:"strong"},"\u89e3\u51b3\u65b9\u6848"))),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-shell"},"ssh -v -o GSSAPIAuthentication=no ccsp@10.0.120.44\n")),(0,s.yg)("p",null,"\u589e\u52a0\u53c2\u6570 \u7981\u7528GSSAPIAuthentication"),(0,s.yg)("p",null,"\u539f\u56e0\u662fclient\u548cserver\u7684ssh\u7248\u672c\u662f\u4e0d\u4e00\u81f4\u7684\uff0cclient\u7684\u7248\u672c\u6709\u70b9\u4f4e\u3002"),(0,s.yg)("h3",{id:"\u914d\u7f6essh\u514d\u5bc6\u767b\u5f55"},"\u914d\u7f6essh\u514d\u5bc6\u767b\u5f55"),(0,s.yg)("p",null,"\u914d\u7f6eSSH\u514d\u5bc6\u767b\u5f55\u7684\u6b65\u9aa4\u5982\u4e0b\uff1a"),(0,s.yg)("p",null,"\u751f\u6210SSH\u5bc6\u94a5\u5bf9\u3002\u5728\u672c\u5730\u8ba1\u7b97\u673a\u7684\u7ec8\u7aef\u6216\u547d\u4ee4\u63d0\u793a\u7b26\u4e2d\u6267\u884c\u4ee5\u4e0b\u547d\u4ee4\u6765\u751f\u6210SSH\u5bc6\u94a5\u5bf9\uff1assh-keygen -t rsa\uff0c\u8fd9\u5c06\u521b\u5efa\u4e00\u4e2a\u79c1\u94a5\uff08id_rsa\uff09\u548c\u4e00\u4e2a\u516c\u94a5\uff08id_rsa.pub\uff09\u3002"),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-shell"},"#\nssh-keygen -t rsa\n#\nssh-copy-id username@remote_host\n# \u7279\u6b8a\u7aef\u53e3\nssh-copy-id -p 10212 username@remote_host\n#\n")),(0,s.yg)("p",null,"\u5c06\u516c\u94a5\u590d\u5236\u5230\u76ee\u6807\u670d\u52a1\u5668\u3002\u4f7f\u7528ssh-copy-id\u547d\u4ee4\u5c06\u516c\u94a5\u590d\u5236\u5230\u8fdc\u7a0b\u670d\u52a1\u5668\u4e0a\uff0c\u4f8b\u5982ssh-copy-id username@remote_host\uff0c\u5176\u4e2dusername\u662f\u8fdc\u7a0b\u670d\u52a1\u5668\u7684\u7528\u6237\u540d\uff0cremote_host\u662f\u8fdc\u7a0b\u670d\u52a1\u5668\u7684\u5730\u5740\u6216\u57df\u540d\u3002"),(0,s.yg)("p",null,"\u6d4b\u8bd5\u514d\u5bc6\u767b\u5f55\u3002\u5728\u672c\u5730\u8ba1\u7b97\u673a\u4e0a\u6267\u884cssh\u547d\u4ee4\uff0c\u65e0\u9700\u8f93\u5165\u5bc6\u7801\uff0c\u4f8b\u5982ssh username@remote_host\uff0c\u5982\u679c\u4e00\u5207\u6b63\u5e38\uff0c\u5219\u8868\u793aSSH\u514d\u5bc6\u767b\u5f55\u5df2\u6210\u529f\u914d\u7f6e\u3002"),(0,s.yg)("p",null,"\u6b64\u5916\uff0c\u5728\u76ee\u6807\u670d\u52a1\u5668\u4e0a\uff0c\u53ef\u80fd\u9700\u8981\u914d\u7f6eSSH\u670d\u52a1\u4ee5\u5141\u8bb8\u514d\u5bc6\u767b\u5f55\uff0c\u8fd9\u901a\u5e38\u6d89\u53ca\u7f16\u8f91/etc/ssh/sshd_config\u6587\u4ef6\uff0c\u5e76\u6dfb\u52a0RSAAuthentication\ue6ea\u548cPubkeyAuthentication\u9009\u9879\uff0c\u5e76\u91cd\u542fSSH\u670d\u52a1\u3002"))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7f32d532.b835f723.js b/assets/js/7f32d532.8f07cf33.js similarity index 98% rename from assets/js/7f32d532.b835f723.js rename to assets/js/7f32d532.8f07cf33.js index a43e7e8f6..7bde416c1 100644 --- a/assets/js/7f32d532.b835f723.js +++ b/assets/js/7f32d532.8f07cf33.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6349],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>d});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},m="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),m=p(r),y=a,d=m["".concat(l,".").concat(y)]||m[y]||s[y]||o;return r?n.createElement(d,c(c({ref:t},u),{},{components:r})):n.createElement(d,c({ref:t},u))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,c=new Array(o);c[0]=y;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[m]="string"==typeof e?e:a,c[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>s,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var n=r(8168),a=(r(6540),r(5680));const o={},c=void 0,i={unversionedId:"study/program/C/cmake",id:"study/program/C/cmake",title:"cmake",description:"cmake \u4ecb\u7ecd",source:"@site/docs/study/program/C/cmake.md",sourceDirName:"study/program/C",slug:"/study/program/C/cmake",permalink:"/docs/study/program/C/cmake",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"MFC-WinForm-WPF-DotNet\u7b49",permalink:"/docs/study/program/C/MFC-WinForm-WPF-DotNet\u7b49"},next:{title:"extern-c",permalink:"/docs/study/program/C/extern-c"}},l={},p=[{value:"cmake \u4ecb\u7ecd",id:"cmake-\u4ecb\u7ecd",level:3}],u={toc:p},m="wrapper";function s(e){let{components:t,...r}=e;return(0,a.yg)(m,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"cmake-\u4ecb\u7ecd"},"cmake \u4ecb\u7ecd"),(0,a.yg)("p",null,"\u4f60\u6216\u8bb8\u542c\u8fc7\u597d\u51e0\u79cd Make \u5de5\u5177\uff0c\u4f8b\u5982 GNU Make \uff0cQT \u7684 qmake \uff0c\u5fae\u8f6f\u7684 MS nmake\uff0cBSD Make\uff08pmake\uff09\uff0cMakepp\uff0c\u7b49\u7b49\u3002\u8fd9\u4e9b Make \u5de5\u5177\u9075\u5faa\u7740\u4e0d\u540c\u7684\u89c4\u8303\u548c\u6807\u51c6\uff0c\u6240\u6267\u884c\u7684 Makefile \u683c\u5f0f\u4e5f\u5343\u5dee\u4e07\u522b\u3002\u8fd9\u6837\u5c31\u5e26\u6765\u4e86\u4e00\u4e2a\u4e25\u5cfb\u7684\u95ee\u9898\uff1a\u5982\u679c\u8f6f\u4ef6\u60f3\u8de8\u5e73\u53f0\uff0c\u5fc5\u987b\u8981\u4fdd\u8bc1\u80fd\u591f\u5728\u4e0d\u540c\u5e73\u53f0\u7f16\u8bd1\u3002\u800c\u5982\u679c\u4f7f\u7528\u4e0a\u9762\u7684 Make \u5de5\u5177\uff0c\u5c31\u5f97\u4e3a\u6bcf\u4e00\u79cd\u6807\u51c6\u5199\u4e00\u6b21 Makefile \uff0c\u8fd9\u5c06\u662f\u4e00\u4ef6\u8ba9\u4eba\u6293\u72c2\u7684\u5de5\u4f5c\u3002"),(0,a.yg)("p",null,"CMake \u5c31\u662f\u9488\u5bf9\u4e0a\u9762\u95ee\u9898\u6240\u8bbe\u8ba1\u7684\u5de5\u5177\uff1a\u5b83\u9996\u5148\u5141\u8bb8\u5f00\u53d1\u8005\u7f16\u5199\u4e00\u79cd\u5e73\u53f0\u65e0\u5173\u7684 CMakeList.txt \u6587\u4ef6\u6765\u5b9a\u5236\u6574\u4e2a\u7f16\u8bd1\u6d41\u7a0b\uff0c\u7136\u540e\u518d\u6839\u636e\u76ee\u6807\u7528\u6237\u7684\u5e73\u53f0\u8fdb\u4e00\u6b65\u751f\u6210\u6240\u9700\u7684\u672c\u5730\u5316 Makefile \u548c\u5de5\u7a0b\u6587\u4ef6\uff0c\u5982 Unix \u7684 Makefile \u6216 Windows \u7684 Visual Studio \u5de5\u7a0b\u3002\u4ece\u800c\u505a\u5230\u201cWrite once, run everywhere\u201d\u3002\u663e\u7136\uff0cCMake \u662f\u4e00\u4e2a\u6bd4\u4e0a\u8ff0\u51e0\u79cd make \u66f4\u9ad8\u7ea7\u7684\u7f16\u8bd1\u914d\u7f6e\u5de5\u5177\u3002\u4e00\u4e9b\u4f7f\u7528 CMake \u4f5c\u4e3a\u9879\u76ee\u67b6\u6784\u7cfb\u7edf\u7684\u77e5\u540d\u5f00\u6e90\u9879\u76ee\u6709 VTK\u3001ITK\u3001KDE\u3001OpenCV\u3001OSG \u7b49 \u3002"),(0,a.yg)("p",null,"\u5728 linux \u5e73\u53f0\u4e0b\u4f7f\u7528 CMake \u751f\u6210 Makefile \u5e76\u7f16\u8bd1\u7684\u6d41\u7a0b\u5982\u4e0b\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u5199 CMake \u914d\u7f6e\u6587\u4ef6 CMakeLists.txt \u3002"),(0,a.yg)("li",{parentName:"ul"},"\u6267\u884c\u547d\u4ee4 cmake PATH \u6216\u8005 ccmake PATH \u751f\u6210 Makefile\uff08ccmake \u548c cmake \u7684\u533a\u522b\u5728\u4e8e\u524d\u8005\u63d0\u4f9b\u4e86\u4e00\u4e2a\u4ea4\u4e92\u5f0f\u7684\u754c\u9762\uff09\u3002\u5176\u4e2d\uff0c PATH \u662f CMakeLists.txt \u6240\u5728\u7684\u76ee\u5f55\u3002"),(0,a.yg)("li",{parentName:"ul"},"\u4f7f\u7528 make \u547d\u4ee4\u8fdb\u884c\u7f16\u8bd1\u3002")))}s.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6349],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>d});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},m="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),m=p(r),y=a,d=m["".concat(l,".").concat(y)]||m[y]||s[y]||o;return r?n.createElement(d,c(c({ref:t},u),{},{components:r})):n.createElement(d,c({ref:t},u))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,c=new Array(o);c[0]=y;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[m]="string"==typeof e?e:a,c[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>s,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var n=r(8168),a=(r(6540),r(5680));const o={},c=void 0,i={unversionedId:"study/program/C/cmake",id:"study/program/C/cmake",title:"cmake",description:"cmake \u4ecb\u7ecd",source:"@site/docs/study/program/C/cmake.md",sourceDirName:"study/program/C",slug:"/study/program/C/cmake",permalink:"/docs/study/program/C/cmake",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"MFC-WinForm-WPF-DotNet\u7b49",permalink:"/docs/study/program/C/MFC-WinForm-WPF-DotNet\u7b49"},next:{title:"extern-c",permalink:"/docs/study/program/C/extern-c"}},l={},p=[{value:"cmake \u4ecb\u7ecd",id:"cmake-\u4ecb\u7ecd",level:3}],u={toc:p},m="wrapper";function s(e){let{components:t,...r}=e;return(0,a.yg)(m,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"cmake-\u4ecb\u7ecd"},"cmake \u4ecb\u7ecd"),(0,a.yg)("p",null,"\u4f60\u6216\u8bb8\u542c\u8fc7\u597d\u51e0\u79cd Make \u5de5\u5177\uff0c\u4f8b\u5982 GNU Make \uff0cQT \u7684 qmake \uff0c\u5fae\u8f6f\u7684 MS nmake\uff0cBSD Make\uff08pmake\uff09\uff0cMakepp\uff0c\u7b49\u7b49\u3002\u8fd9\u4e9b Make \u5de5\u5177\u9075\u5faa\u7740\u4e0d\u540c\u7684\u89c4\u8303\u548c\u6807\u51c6\uff0c\u6240\u6267\u884c\u7684 Makefile \u683c\u5f0f\u4e5f\u5343\u5dee\u4e07\u522b\u3002\u8fd9\u6837\u5c31\u5e26\u6765\u4e86\u4e00\u4e2a\u4e25\u5cfb\u7684\u95ee\u9898\uff1a\u5982\u679c\u8f6f\u4ef6\u60f3\u8de8\u5e73\u53f0\uff0c\u5fc5\u987b\u8981\u4fdd\u8bc1\u80fd\u591f\u5728\u4e0d\u540c\u5e73\u53f0\u7f16\u8bd1\u3002\u800c\u5982\u679c\u4f7f\u7528\u4e0a\u9762\u7684 Make \u5de5\u5177\uff0c\u5c31\u5f97\u4e3a\u6bcf\u4e00\u79cd\u6807\u51c6\u5199\u4e00\u6b21 Makefile \uff0c\u8fd9\u5c06\u662f\u4e00\u4ef6\u8ba9\u4eba\u6293\u72c2\u7684\u5de5\u4f5c\u3002"),(0,a.yg)("p",null,"CMake \u5c31\u662f\u9488\u5bf9\u4e0a\u9762\u95ee\u9898\u6240\u8bbe\u8ba1\u7684\u5de5\u5177\uff1a\u5b83\u9996\u5148\u5141\u8bb8\u5f00\u53d1\u8005\u7f16\u5199\u4e00\u79cd\u5e73\u53f0\u65e0\u5173\u7684 CMakeList.txt \u6587\u4ef6\u6765\u5b9a\u5236\u6574\u4e2a\u7f16\u8bd1\u6d41\u7a0b\uff0c\u7136\u540e\u518d\u6839\u636e\u76ee\u6807\u7528\u6237\u7684\u5e73\u53f0\u8fdb\u4e00\u6b65\u751f\u6210\u6240\u9700\u7684\u672c\u5730\u5316 Makefile \u548c\u5de5\u7a0b\u6587\u4ef6\uff0c\u5982 Unix \u7684 Makefile \u6216 Windows \u7684 Visual Studio \u5de5\u7a0b\u3002\u4ece\u800c\u505a\u5230\u201cWrite once, run everywhere\u201d\u3002\u663e\u7136\uff0cCMake \u662f\u4e00\u4e2a\u6bd4\u4e0a\u8ff0\u51e0\u79cd make \u66f4\u9ad8\u7ea7\u7684\u7f16\u8bd1\u914d\u7f6e\u5de5\u5177\u3002\u4e00\u4e9b\u4f7f\u7528 CMake \u4f5c\u4e3a\u9879\u76ee\u67b6\u6784\u7cfb\u7edf\u7684\u77e5\u540d\u5f00\u6e90\u9879\u76ee\u6709 VTK\u3001ITK\u3001KDE\u3001OpenCV\u3001OSG \u7b49 \u3002"),(0,a.yg)("p",null,"\u5728 linux \u5e73\u53f0\u4e0b\u4f7f\u7528 CMake \u751f\u6210 Makefile \u5e76\u7f16\u8bd1\u7684\u6d41\u7a0b\u5982\u4e0b\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u5199 CMake \u914d\u7f6e\u6587\u4ef6 CMakeLists.txt \u3002"),(0,a.yg)("li",{parentName:"ul"},"\u6267\u884c\u547d\u4ee4 cmake PATH \u6216\u8005 ccmake PATH \u751f\u6210 Makefile\uff08ccmake \u548c cmake \u7684\u533a\u522b\u5728\u4e8e\u524d\u8005\u63d0\u4f9b\u4e86\u4e00\u4e2a\u4ea4\u4e92\u5f0f\u7684\u754c\u9762\uff09\u3002\u5176\u4e2d\uff0c PATH \u662f CMakeLists.txt \u6240\u5728\u7684\u76ee\u5f55\u3002"),(0,a.yg)("li",{parentName:"ul"},"\u4f7f\u7528 make \u547d\u4ee4\u8fdb\u884c\u7f16\u8bd1\u3002")))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/80403a0b.16116f75.js b/assets/js/80403a0b.037e6f78.js similarity index 99% rename from assets/js/80403a0b.16116f75.js rename to assets/js/80403a0b.037e6f78.js index 1c4412755..15dee1b66 100644 --- a/assets/js/80403a0b.16116f75.js +++ b/assets/js/80403a0b.037e6f78.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1197],{5680:(e,l,n)=>{n.d(l,{xA:()=>o,yg:()=>d});var t=n(6540);function a(e,l,n){return l in e?Object.defineProperty(e,l,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[l]=n,e}function r(e,l){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);l&&(t=t.filter((function(l){return Object.getOwnPropertyDescriptor(e,l).enumerable}))),n.push.apply(n,t)}return n}function g(e){for(var l=1;l=0||(a[n]=e[n]);return a}(e,l);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var i=t.createContext({}),y=function(e){var l=t.useContext(i),n=l;return e&&(n="function"==typeof e?e(l):g(g({},l),e)),n},o=function(e){var l=y(e.components);return t.createElement(i.Provider,{value:l},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var l=e.children;return t.createElement(t.Fragment,{},l)}},s=t.forwardRef((function(e,l){var n=e.components,a=e.mdxType,r=e.originalType,i=e.parentName,o=p(e,["components","mdxType","originalType","parentName"]),u=y(n),s=a,d=u["".concat(i,".").concat(s)]||u[s]||c[s]||r;return n?t.createElement(d,g(g({ref:l},o),{},{components:n})):t.createElement(d,g({ref:l},o))}));function d(e,l){var n=arguments,a=l&&l.mdxType;if("string"==typeof e||a){var r=n.length,g=new Array(r);g[0]=s;var p={};for(var i in l)hasOwnProperty.call(l,i)&&(p[i]=l[i]);p.originalType=e,p[u]="string"==typeof e?e:a,g[1]=p;for(var y=2;y{n.r(l),n.d(l,{assets:()=>i,contentTitle:()=>g,default:()=>c,frontMatter:()=>r,metadata:()=>p,toc:()=>y});var t=n(8168),a=(n(6540),n(5680));const r={},g=void 0,p={unversionedId:"study/encryption/\u8bfb\u4e66\u7b14\u8bb0-\u56fe\u89e3\u5bc6\u7801\u6280\u672f",id:"study/encryption/\u8bfb\u4e66\u7b14\u8bb0-\u56fe\u89e3\u5bc6\u7801\u6280\u672f",title:"\u8bfb\u4e66\u7b14\u8bb0-\u56fe\u89e3\u5bc6\u7801\u6280\u672f",description:"\u5bc6\u7801\u5b66\u5bb6\u7684\u5de5\u5177\u7bb1",source:"@site/docs/study/encryption/\u8bfb\u4e66\u7b14\u8bb0-\u56fe\u89e3\u5bc6\u7801\u6280\u672f.md",sourceDirName:"study/encryption",slug:"/study/encryption/\u8bfb\u4e66\u7b14\u8bb0-\u56fe\u89e3\u5bc6\u7801\u6280\u672f",permalink:"/docs/study/encryption/\u8bfb\u4e66\u7b14\u8bb0-\u56fe\u89e3\u5bc6\u7801\u6280\u672f",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u884c\u4e1a\u5206\u6790",permalink:"/docs/study/encryption/\u884c\u4e1a\u5206\u6790"},next:{title:"\u975e\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3",permalink:"/docs/study/encryption/\u975e\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3"}},i={},y=[{value:"\u5bc6\u7801\u5b66\u5bb6\u7684\u5de5\u5177\u7bb1",id:"\u5bc6\u7801\u5b66\u5bb6\u7684\u5de5\u5177\u7bb1",level:3},{value:"\u516c\u94a5\u5bc6\u7801\u4e2d",id:"\u516c\u94a5\u5bc6\u7801\u4e2d",level:3},{value:"\u5355\u5411\u6563\u5217\u51fd\u6570",id:"\u5355\u5411\u6563\u5217\u51fd\u6570",level:3},{value:"\u6d88\u606f\u8ba4\u8bc1\u7801",id:"\u6d88\u606f\u8ba4\u8bc1\u7801",level:3},{value:"\u6570\u5b57\u7b7e\u540d-\u6d88\u606f\u5230\u5e95\u662f\u8c01\u5199\u7684\u3002",id:"\u6570\u5b57\u7b7e\u540d-\u6d88\u606f\u5230\u5e95\u662f\u8c01\u5199\u7684",level:3},{value:"\u8bc1\u4e66-\u4e3a\u516c\u94a5\u52a0\u4e0a\u6570\u5b57\u7b7e\u540d",id:"\u8bc1\u4e66-\u4e3a\u516c\u94a5\u52a0\u4e0a\u6570\u5b57\u7b7e\u540d",level:3},{value:"\u968f\u673a\u6570-\u4e0d\u53ef\u9884\u6d4b\u6027\u7684\u6e90\u6cc9",id:"\u968f\u673a\u6570-\u4e0d\u53ef\u9884\u6d4b\u6027\u7684\u6e90\u6cc9",level:3},{value:"SSL/TLS",id:"ssltls",level:3}],o={toc:y},u="wrapper";function c(e){let{components:l,...r}=e;return(0,a.yg)(u,(0,t.A)({},o,r,{components:l,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u5bc6\u7801\u5b66\u5bb6\u7684\u5de5\u5177\u7bb1"},"\u5bc6\u7801\u5b66\u5bb6\u7684\u5de5\u5177\u7bb1"),(0,a.yg)("p",null,"\u5305\u62ec\uff1a"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"\u5bf9\u79f0\u52a0\u5bc6\uff0c\u52a0\u5bc6\u548c\u89e3\u5bc6\u7684\u79d8\u94a5\u662f\u4e00\u6837\u7684\uff1b"),(0,a.yg)("li",{parentName:"ol"},"\u975e\u5bf9\u79f0\u52a0\u5bc6\uff0c\u52a0\u5bc6\u548c\u89e3\u5bc6\u7684\u79d8\u94a5\u662f\u4e0d\u4e00\u6837\u7684\uff1b"),(0,a.yg)("li",{parentName:"ol"},"\u5355\u9879\u6563\u5217\u51fd\u6570\uff0c\u5c31\u662f\u54c8\u5e0c\uff1b"),(0,a.yg)("li",{parentName:"ol"},"\u6d88\u606f\u8ba4\u8bc1\u7801\uff1b"),(0,a.yg)("li",{parentName:"ol"},"\u6570\u5b57\u7b7e\u540d\uff1b"),(0,a.yg)("li",{parentName:"ol"},"\u4f2a\u968f\u673a\u6570\u751f\u6210\u5668\uff1b")),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"image.png",src:n(7539).A,width:"750",height:"585"})),(0,a.yg)("p",null,"\u51ef\u6492\u5bc6\u7801\u52a0\u5bc6\uff1a\u662f\u901a\u8fc7\u5c06\u660e\u6587\u4e2d\u6240\u4f7f\u7528\u7684\u5b57\u6bcd\u8868\u6309\u7167\u4e00\u5b9a\u7684\u5b57\u6570\u201c\u5e73\u79fb\u201d\u6765\u8fdb\u884c\u52a0\u5bc6\u7684\u3002\n\u7b80\u5355\u66ff\u6362\u52a0\u5bc6\uff1a\u662f\u5c06\u660e\u6587\u4e2d\u6240\u6709\u4f7f\u7528\u7684\u5b57\u6bcd\u66ff\u6362\u6210\u53e6\u4e00\u5957\u5b57\u6bcd\u8868\u7684\u5bc6\u7801\u3002"),(0,a.yg)("p",null,"\u4e00\u79cd\u5bc6\u7801\u80fd\u591f\u4f7f\u7528\u7684\u201c\u6240\u6709\u79d8\u94a5\u7684\u96c6\u5408\u201d\u79f0\u4e3a\u79d8\u94a5\u7a7a\u95f4\u3002"),(0,a.yg)("p",null,"\u867d\u7136\u7528\u66b4\u529b\u7834\u89e3\u5f88\u96be\u7834\u89e3\u7b80\u5355\u66ff\u6362\u5bc6\u7801\uff0c\u4f46\u4f7f\u7528\u88ab\u79f0\u4e3a\u9891\u7387\u5206\u6790\u7684\u5bc6\u7801\u7834\u8bd1\u65b9\u6cd5\uff0c\u5c31\u80fd\u591f\u7834\u8bd1\u7b80\u5355\u66ff\u6362\u5bc6\u7801\u3002\u6240\u8c13\u7684\u9891\u7387\u5206\u6790\u662f\u6307\u5bf9\u5bc6\u6587\u4e2d\u51fa\u73b0\u7684\u5b57\u6bcd\u6b21\u6570\u8fdb\u884c\u7edf\u8ba1\uff0c\u7136\u540e\u6839\u636e\u7ecf\u9a8c\u5c1d\u8bd5\u53bb\u89e3\u8bfb\u7b80\u5355\u66ff\u6362\u7684\u542b\u4e49\u3002\u4ece\u516c\u5143\u524d\u5f00\u59cb\uff0c\u7b80\u5355\u66ff\u6362\u5bc6\u7801\u5728\u51e0\u767e\u5e74\u7684\u65f6\u95f4\u91cc\u4e00\u76f4\u88ab\u7528\u4e8e\u79d8\u5bc6\u901a\u4fe1\u3002\u7136\u800c\u5728\u963f\u62c9\u4f2f\u5b66\u8005\u53d1\u660e\u9891\u7387\u5206\u6790\u6cd5\u4e4b\u540e\uff0c\u8fd9\u79cd\u5bc6\u7801\u5f88\u5bb9\u6613\u5c31\u88ab\u7834\u8bd1\u4e86\u3002"),(0,a.yg)("p",null,"\u5c06\u5bc6\u7801\u7b97\u6cd5\u548c\u79d8\u94a5\u5206\u5f00\u8003\u8651\uff0c\u5c31\u89e3\u51b3\u4e86\u5e0c\u671b\u91cd\u590d\u4f7f\u7528\uff0c\u4f46\u91cd\u590d\u4f7f\u7528\u4f1a\u589e\u52a0\u98ce\u9669\u8fd9\u4e2a\u96be\u9898\u3002"),(0,a.yg)("p",null,"XOR=\u5f02\u6216"),(0,a.yg)("p",null,"DES\u300b\u4e09\u91cd DES"),(0,a.yg)("p",null,"AES \u6240\u4f7f\u7528\u7684\u5bc6\u7801\u7b97\u6cd5\u662f\u6bd4\u5229\u65f6\u5bc6\u7801\u5b66\u5bb6\u5f00\u53d1\u7684 R'ijndael\u3002"),(0,a.yg)("p",null,"\u4e00\u822c\u6765\u8bf4\uff0c\u6211\u4eec\u4e0d\u5e94\u8be5\u4f7f\u7528\u4efb\u4f55\u81ea\u5236\u7684\u5bc6\u7801\u7b97\u6cd5\uff0c\u800c\u662f\u5e94\u8be5\u4f7f\u7528 AES\u3002\u56e0\u4e3a AES \u5728\u5176\u9009\u5b9a\u8fc7\u7a0b\u4e2d\uff0c\u7ecf\u8fc7\u4e86\u5168\u4e16\u754c\u5bc6\u7801\u5b66\u5bb6\u7684\u6240\u8fdb\u884c\u7684\u9ad8\u54c1\u8d28\u7684\u9a8c\u8bc1\u5de5\uff0c\u800c\u5bf9\u4e8e\u81ea\u5236\u7684\u5bc6\u7801\u7b97\u6cd5\u5219\u5f88\u96be\u8fdb\u884c\u8fd9\u6837\u7684\u9a8c\u8bc1\u3002"),(0,a.yg)("p",null,"\u5bc6\u7801\u7b97\u6cd5\u53ef\u4ee5\u5206\u4e3a\u5206\u7ec4\u5bc6\u7801\u548c\u6d41\u5bc6\u7801\u4e24\u79cd\uff1b\u5206\u7ec4\u5bc6\u7801\u662f\u6bcf\u6b21\u53ea\u80fd\u5904\u7406\u7279\u5b9a\u957f\u5ea6\u7684\u4e00\u5757\u6570\u636e\u7684\u4e00\u7c7b\u5bc6\u7801\u7b97\u6cd5\uff0c\u8fd9\u91cc\u7684\u4e00\u5757\u5c31\u6210\u4e3a\u5206\u7ec4\u3002\u523a\u732c\u4e00\u4e2a\u5206\u7ec4\u7684\u6bd4\u7279\u6570\u5c31\u79f0\u4e3a\u5206\u7ec4\u957f\u5ea6\u3002\u4f8b\u5982 DES \u548c\u4e09\u91cd DES \u7684\u5206\u7ec4\u957f\u5ea6\u90fd\u662f 64 \u6bd4\u7279\u3002\u8fd9\u4e9b\u5bc6\u7801\u7b97\u6cd5\u4e00\u6b21\u53ea\u80fd\u52a0\u5bc6 64 \u6bd4\u7279\u7684\u660e\u6587\uff0c\u5e76\u751f\u6210 64 \u6bd4\u7279\u7684\u5bc6\u6587\u3002AES \u7684\u5206\u7ec4\u957f\u5ea6\u53ef\u4ee5\u4ece 128 \u6bd4\u7279\u3001192 \u6bd4\u7279\u548c 256 \u6bd4\u7279\u4e2d\u8fdb\u884c\u9009\u62e9\u3002"),(0,a.yg)("p",null,"\u6d41\u5bc6\u7801\u662f\u5bf9\u6570\u636e\u6d41\u8fdb\u884c\u8fde\u7eed\u5904\u7406\u7684\u4e00\u7c7b\u5bc6\u7801\u7b97\u6cd5\u3002\u6d41\u5bc6\u7801\u4e2d\u4e00\u822c\u4ee5 1 \u6bd4\u7279\u30018 \u6bd4\u7279\u6216 32 \u6bd4\u7279\u4e3a\u5355\u4f4d\u8fdb\u884c\u52a0\u5bc6\u548c\u89e3\u5bc6\u3002"),(0,a.yg)("p",null,"\u5728\u5bf9\u79f0\u5bc6\u7801\u4e2d\u6240\u4ecb\u7ecd\u7684\u7b97\u6cd5\u4e2d\uff0c\u53ea\u6709\u4e00\u6b21\u6027\u5bc6\u7801\u672c\u5c5e\u4e8e\u6d41\u5bc6\u7801\uff0c\u800c DES\u3001\u4e09\u91cd DES\u3001AES \u7b49\u5927\u591a\u6570\u5bf9\u79f0\u5bc6\u7801\u7b97\u6cd5\u90fd\u5c5e\u4e8e\u5206\u7ec4\u5bc6\u7801\u3002"),(0,a.yg)("p",null,"\u5206\u7ec4\u5bc6\u7801\u7b97\u6cd5\u53ea\u80fd\u52a0\u5bc6\u56fa\u5b9a\u957f\u5ea6\u7684\u5206\u7ec4\uff0c\u4f46\u662f\u6211\u4eec\u9700\u8981\u52a0\u5bc6\u7684\u5bc6\u6587\u957f\u5ea6\u53ef\u80fd\u4f1a\u8d85\u8fc7\u5206\u7ec4\u5bc6\u7801\u7684\u5206\u7ec4\u957f\u5ea6\uff0c\u8fd9\u65f6\u5c31\u9700\u8981\u5bf9\u5206\u7ec4\u5bc6\u7801\u7b97\u6cd5\u8fdb\u884c\u8fed\u4ee3\uff0c\u4ee5\u4fbf\u8bb2\u4e00\u6bb5\u5f88\u957f\u7684\u660e\u6587\u5168\u90e8\u52a0\u5bc6\u3002\u800c\u8fed\u4ee3\u7684\u65b9\u6cd5\u5c31\u6210\u4e3a\u5206\u7ec4\u5bc6\u7801\u7684\u6a21\u5f0f\u3002\u6a21\u5f0f\u6709\u5f88\u591a\u79cd\u7c7b\uff0c\u4e3b\u8981\u6709\uff1a"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"ECB \u6a21\u5f0f\uff0c\u7535\u5b50\u5bc6\u7801\u672c\u6a21\u5f0f\uff1b\u5c06\u660e\u6587\u5206\u7ec4\u52a0\u5bc6\u4e4b\u540e\u7684\u7ed3\u679c\u76f4\u63a5\u6210\u4e3a\u5bc6\u6587\u5206\u7ec4\uff1b\u6a21\u5f0f\u7b80\u5355\uff0c\u901a\u5e38\u4e0d\u4f1a\u88ab\u4f7f\u7528\uff1b"),(0,a.yg)("li",{parentName:"ol"},"CBC \u6a21\u5f0f\uff0c\u5bc6\u7801\u5206\u7ec4\u94fe\u63a5\u6a21\u5f0f\uff1b\u786e\u4fdd\u4e92\u8054\u7f51\u5b89\u5168\u7684\u901a\u4fe1\u534f\u8bae\u4e4b\u4e00 IPsec\uff0c\u5c31\u662f\u4f7f\u7528 CBC \u6a21\u5f0f\u6765\u786e\u4fdd\u901a\u4fe1\u673a\u5bc6\u6027\u7684\uff0c\u5982\u4f7f\u7528 CBC \u6a21\u5f0f\u4e09\u91cd DES \u7684 3DES-CBC \u4ee5\u53ca CBC \u6a21\u5f0f AES \u7684 AES-CBC \u7b49\u3002"),(0,a.yg)("li",{parentName:"ol"},"CFB \u6a21\u5f0f\uff0c\u5bc6\u6587\u53cd\u9988\u6a21\u5f0f\uff1b"),(0,a.yg)("li",{parentName:"ol"},"OFB \u6a21\u5f0f\uff0c\u8f93\u51fa\u53cd\u9988\u6a21\u5f0f\uff1b"),(0,a.yg)("li",{parentName:"ol"},"CTR \u6a21\u5f0f\uff0c\u8ba1\u6570\u5668\u6a21\u5f0f\uff1b")),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"image.png",src:n(6954).A,width:"750",height:"831"})),(0,a.yg)("p",null,"\u5728\u5bf9\u79f0\u5bc6\u7801\u4e2d\uff0c\u7531\u4e8e\u52a0\u5bc6\u548c\u89e3\u5bc6\u7684\u79d8\u94a5\u662f\u76f8\u540c\u7684\uff0c\u56e0\u6b64\u5fc5\u987b\u5411\u63a5\u6536\u8005\u4f69\u677e\u79d8\u94a5\u3002\u7528\u4e8e\u89e3\u5bc6\u7684\u79d8\u94a5\u5fc5\u987b\u88ab\u914d\u9001\u7ed9\u63a5\u6536\u8005\uff0c\u8fd9\u4e00\u95ee\u9898\u88ab\u79f0\u4e3a\u79d8\u94a5\u914d\u9001\u95ee\u9898\u3002\u5982\u679c\u4f7f\u7528\u516c\u94a5\u5bc6\u7801\uff0c\u5219\u65e0\u9700\u5411\u63a5\u6536\u8005\u4f69\u677e\u7528\u4e8e\u89e3\u5bc6\u7684\u79d8\u94a5\uff0c\u8fd9\u6837\u5c31\u89e3\u51b3\u4e86\u79d8\u94a5\u914d\u9001\u95ee\u9898\u3002\u53ef\u4ee5\u8bf4\u516c\u94a5\u5bc6\u7801\u662f\u5bc6\u7801\u5b66\u5386\u53f2\u4e0a\u6700\u4f1f\u5927\u7684\u53d1\u660e\u3002"),(0,a.yg)("h3",{id:"\u516c\u94a5\u5bc6\u7801\u4e2d"},"\u516c\u94a5\u5bc6\u7801\u4e2d"),(0,a.yg)("p",null,"\u52a0\u5bc6\u79d8\u94a5\u4e00\u822c\u662f\u516c\u5f00\u7684\u3002\u6b63\u5f0f\u7531\u4e8e\u52a0\u5bc6\u79d8\u94a5\u662f\u53ef\u4ee5\u4efb\u610f\u516c\u5f00\uff0c\u56e0\u6b64\u8be5\u79d8\u94a5\u88ab\u79f0\u4e3a\u516c\u94a5\u3002\u76f8\u5bf9\u7684\uff0c\u89e3\u5bc6\u79d8\u94a5\u662f\u7edd\u5bf9\u4e0d\u80fd\u516c\u5f00\u7684\uff0c\u8fd9\u4e2a\u79d8\u94a5\u53ea\u80fd\u7531\u4f60\u81ea\u5df1\u6765\u4f7f\u7528\uff0c\u56e0\u6b64\u6210\u4e3a\u79c1\u94a5\u3002\u79d8\u94a5\u5bf9\u4e2d\u7684\u4e24\u4e2a\u79d8\u94a5\u4e4b\u95f4\u5177\u6709\u975e\u5e38\u5bc6\u5207\u7684\u5173\u7cfb-\u6570\u5b66\u4e0a\u7684\u5173\u7cfb-\u56e0\u6b64\u516c\u94a5\u548c\u79c1\u94a5\u662f\u4e0d\u80fd\u5206\u522b\u72ec\u7acb\u751f\u6210\u7684\u3002"),(0,a.yg)("p",null,"RSA \u53ef\u4ee5\u8bf4\u662f\u73b0\u5728\u516c\u94a5\u5bc6\u7801\u7684\u4e8b\u5b9e\u6807\u51c6\u3002"),(0,a.yg)("p",null,"\u516c\u94a5\u5bc6\u7801\u65e0\u6cd5\u89e3\u51b3\u7684\u95ee\u9898\uff1a"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"\u516c\u94a5\u662f\u5426\u5408\u6cd5\u7684\u95ee\u9898\uff0c\u4e5f\u5c31\u662f\u516c\u94a5\u8ba4\u8bc1\u95ee\u9898\uff0c\u56e0\u4e3a\u5b58\u5728\u4e2d\u95f4\u4eba\u66ff\u6362\u516c\u94a5\u7684\u95ee\u9898\uff1b"),(0,a.yg)("li",{parentName:"ol"},"\u4ed6\u7684\u5904\u7406\u901f\u5ea6\u53ea\u6709\u5bf9\u79f0\u5bc6\u7801\u7684\u51e0\u767e\u5206\u4e4b\u4e00\uff1b")),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"image.png",src:n(830).A,width:"1968",height:"520"})),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"image.png",src:n(9313).A,width:"1962",height:"582"})),(0,a.yg)("p",null,"\u5bf9\u79f0\u5bc6\u7801\u901a\u8fc7\u5c06\u660e\u6587\u8f6c\u6362\u6210\u590d\u6742\u7684\u5f62\u5f0f\u6765\u4fdd\u8bc1\u5176\u673a\u5bc6\u6027\uff0c\u76f8\u5bf9\u7684\uff0c\u516c\u94a5\u5bc6\u7801\u5219\u662f\u57fa\u4e8e\u6570\u5b66\u4e0a\u7684\u56f0\u96be\u7684\u95ee\u9898\u6765\u4fdd\u8bc1\u673a\u5bc6\u6027\u7684\u3002\u4f8b\u5982 RSA \u5c31\u5229\u7528\u4e86\u5927\u6574\u6570\u7684\u8d28\u56e0\u6570\u5206\u89e3\u95ee\u9898\u7684\u56f0\u96be\u5ea6\u3002\u56e0\u6b64\uff0c\u5bf9\u79f0\u5bc6\u7801\u548c\u516c\u94a5\u5bc6\u7801\u6e90\u4e8e\u4e24\u79cd\u6839\u672c\u4e0d\u540c\u7684\u601d\u8def\u3002"),(0,a.yg)("p",null,"\u6df7\u5408\u5bc6\u7801\u7cfb\u7edf\uff0c\u7528\u5bf9\u79f0\u5bc6\u7801\u63d0\u9ad8\u901f\u5ea6\uff0c\u7528\u516c\u94a5\u5bc6\u7801\u6765\u5305\u542b\u4f1a\u8bdd\u79d8\u94a5\u3002\u4f1a\u8bdd\u79d8\u94a5\u662f\u5bf9\u79f0\u5bc6\u7801\u7684\u79d8\u94a5\uff0c\u540c\u65f6\u4e5f\u662f\u516c\u94a5\u5bc6\u7801\u7684\u660e\u6587\u3002"),(0,a.yg)("h3",{id:"\u5355\u5411\u6563\u5217\u51fd\u6570"},"\u5355\u5411\u6563\u5217\u51fd\u6570"),(0,a.yg)("p",null,"\u5c31\u662f\u4e00\u79cd\u91c7\u96c6\u6587\u4ef6\u6307\u7eb9\u7684\u6280\u672f\uff0c\u5355\u5411\u6563\u5217\u51fd\u6570\u6709\u4e00\u4e2a\u8f93\u5165\u548c\u4e00\u4e2a\u8f93\u51fa\uff0c\u5176\u4e2d\u8f93\u5165\u6210\u4e3a\u6d88\u606f\uff0c\u8f93\u51fa\u6210\u4e3a\u6563\u5217\u503c\u3002\u5355\u5411\u6563\u5217\u51fd\u6570\u53ef\u4ee5\u6839\u636e\u6d88\u606f\u7684\u5185\u5bb9\u8ba1\u7b97\u51fa\u6563\u5217\u503c\uff0c\u800c\u6563\u5217\u503c\u5c31\u53ef\u4ee5\u88ab\u7528\u6765\u68c0\u67e5\u6d88\u606f\u7684\u5b8c\u6574\u6027\u3002"),(0,a.yg)("p",null,"\u6563\u5217\u503c\u7684\u957f\u5ea6\u548c\u6d88\u606f\u7684\u957f\u5ea6\u65e0\u5173\u3002\u65e0\u8bba\u6d88\u606f\u662f 1 \u6bd4\u7279\u8fd8\u662f 100MB\uff0c\u751a\u81f3\u662f 100GB\uff0c\u5355\u5411\u6563\u5217\u51fd\u6570\u6597\u6e56\u81ea\u5df1\u7b97\u51fa\u56fa\u5b9a\u957f\u5ea6\u7684\u6563\u5217\u503c\u3002\u4ee5 SHA-1 \u5355\u5411\u6563\u5217\u51fd\u6570\u4e3a\u4f8b\uff0c\u4ed6\u6240\u8ba1\u7b97\u51fa\u7684\u6563\u5217\u503c\u7684\u957f\u5ea6\u6c38\u8fdc\u662f 160 \u6bd4\u7279\uff0820 \u5b57\u8282\uff09\u3002"),(0,a.yg)("p",null,"\u5355\u5411\u6563\u5217\u51fd\u6570\u4e5f\u79f0\u4e3a\u6d88\u606f\u6458\u8981\u51fd\u6570\uff0c\u54c8\u5e0c\u51fd\u6570\u6216\u8005\u6742\u51d1\u51fd\u6570\u3002\u8f93\u5165\u5355\u5411\u6563\u5217\u51fd\u6570\u7684\u6d88\u606f\u4e5f\u79f0\u4e3a\u539f\u50cf\u3002\u5355\u5411\u6563\u5217\u51fd\u6570\u8f93\u51fa\u7684\u6563\u5217\u503c\u4e5f\u79f0\u4e3a\u6d88\u606f\u6458\u8981\u6216\u8005\u6307\u7eb9\u3002\u5b8c\u6574\u6027\u4e5f\u79f0\u4e3a\u4e00\u81f4\u6027\u3002"),(0,a.yg)("p",null,"\u5355\u5411\u6563\u5217\u51fd\u6570\u7684\u5b9e\u9645\u5e94\u7528\uff1a\u57fa\u4e8e\u53e3\u4ee4\u7684\u52a0\u5bc6\u3001\u6d88\u606f\u8ba4\u8bc1\u7801\u3001\u6570\u5b57\u7b7e\u540d\u3001\u4f2a\u968f\u673a\u6570\u751f\u6210\u5668\u3001\u4e00\u6b21\u6027\u53e3\u4ee4\u3002"),(0,a.yg)("p",null,"\u51e0\u79cd\u5355\u5411\u6563\u5217\u51fd\u6570\uff1a"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"MD4\uff0c\u6d88\u606f\u6458\u8981 Message Digest 4\uff0c\u5df2\u7ecf\u627e\u5230\u6563\u5217\u78b0\u649e\u7684\u65b9\u6cd5\uff0c\u5df2\u4e0d\u5b89\u5168\uff1b"),(0,a.yg)("li",{parentName:"ol"},"MD5\uff0c\u5f3a\u6297\u78b0\u649e\u6027\u5df2\u88ab\u653b\u7834\uff0c\u5df2\u4e0d\u5b89\u5168\u3002"),(0,a.yg)("li",{parentName:"ol"},"SHA-1\uff0c\u5df2\u88ab\u653b\u7834\uff1b"),(0,a.yg)("li",{parentName:"ol"},"SHA-2\uff0c\u5305\u62ec SHA-256\u3001SHA-384\u3001SHA-512\uff0c\u5c1a\u672a\u88ab\u653b\u7834\uff1b"),(0,a.yg)("li",{parentName:"ol"},"RIPEMD\uff0c\u5df2\u88ab\u653b\u7834\uff1b"),(0,a.yg)("li",{parentName:"ol"},"RIPEMD-160\uff0c\u5c1a\u672a\u88ab\u653b\u7834\uff1b")),(0,a.yg)("p",null,"\u5355\u5411\u6563\u5217\u51fd\u6570\u65e0\u6cd5\u89e3\u51b3\u7684\u95ee\u9898\uff1a\u5355\u5411\u6563\u5217\u51fd\u6570\u80fd\u591f\u8fa8\u522b\u51fa\u201c\u7be1\u6539\u201d\uff0c\u4f46\u65e0\u6cd5\u8fa8\u522b\u51fa\u201c\u4f2a\u88c5\u201d\u3002"),(0,a.yg)("h3",{id:"\u6d88\u606f\u8ba4\u8bc1\u7801"},"\u6d88\u606f\u8ba4\u8bc1\u7801"),(0,a.yg)("p",null,"\u662f\u4e00\u79cd\u786e\u8ba4\u5b8c\u6574\u6027\u5e76\u8fdb\u884c\u8ba4\u8bc1\u7684\u6280\u672f\uff0c\u53d6\u4e09\u4e2a\u5355\u8bcd\u7684\u9996\u5b57\u6bcd\uff0c\u7b80\u79f0 MAC\u3002\u6d88\u606f\u8ba4\u8bc1\u7801\u7684\u8f93\u5165\u5305\u62ec\u4efb\u610f\u957f\u5ea6\u7684\u6d88\u606f\u548c\u4e00\u4e2a\u53d1\u9001\u8005\u4e0e\u63a5\u6536\u8005\u4e4b\u95f4\u5171\u4eab\u7684\u79d8\u94a5\uff0c\u4ed6\u53ef\u4ee5\u8f93\u51fa\u56fa\u5b9a\u957f\u5ea6\u7684\u6570\u636e\uff0c\u8fd9\u4e2a\u6570\u636e\u79f0\u4e3a MAC \u503c\u3002\u6d88\u606f\u8ba4\u8bc1\u7801\u6709\u5f88\u591a\u5b9e\u73b0\u65b9\u6cd5\uff0c\u5927\u5bb6\u53ef\u4ee5\u6682\u4e14\u8fd9\u6837\u7406\u89e3\uff1a\u6d88\u606f\u8ba4\u8bc1\u7801\u662f\u4e00\u79cd\u4e0e\u79d8\u94a5\u76f8\u5173\u8054\u7684\u5355\u5411\u6563\u5217\u51fd\u6570\u3002"),(0,a.yg)("p",null,"\u51e0\u4e2a\u6d88\u606f\u8ba4\u8bc1\u7801\u5728\u73b0\u5b9e\u4e16\u754c\u4e2d\u5e94\u7528\u7684\u5b9e\u4f8b\uff0c"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"SWIFT\uff0c\u73af\u7403\u94f6\u884c\u91d1\u878d\u7535\u4fe1\u534f\u4f1a\uff0c\u662f\u4e00\u4e2a\u4e3a\u56fd\u9645\u94f6\u884c\u95f4\u7684\u4ea4\u6613\u4fdd\u9a7e\u62a4\u822a\u7684\u7ec4\u7ec7\uff1b\u7528\u7684\u5c31\u662f\u6d88\u606f\u8ba4\u8bc1\u7801\uff0c\u6d88\u606f\u8ba4\u8bc1\u7801\u7684\u79d8\u94a5\u662f\u901a\u8fc7\u4eba\u6765\u8fdb\u884c\u914d\u9001\u7684\u3002"),(0,a.yg)("li",{parentName:"ol"},"IPSec"),(0,a.yg)("li",{parentName:"ol"},"SSL/TLS")),(0,a.yg)("p",null,"\u6d88\u606f\u8ba4\u8bc1\u7801\u6709\u5f88\u591a\u5b9e\u73b0\u65b9\u5f0f\uff0c"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"\u4f7f\u7528 SHA-1\u3001MD5 \u4e4b\u7c7b\u7684\u5355\u5411\u6563\u5217\u51fd\u6570\u53ef\u4ee5\u5b9e\u73b0\u6d88\u606f\u8ba4\u8bc1\u7801\uff0c\u6210\u4e3a HMAC\uff1b"),(0,a.yg)("li",{parentName:"ol"},"\u4f7f\u7528\u5206\u7ec4\u5bc6\u7801\u5b9e\u73b0\uff0c\u4f8b\u5982 DES\u3001AES"),(0,a.yg)("li",{parentName:"ol"},"\u4f7f\u7528\u6d41\u5bc6\u7801\u548c\u516c\u94a5\u5bc6\u7801\u7b49\uff1b")),(0,a.yg)("p",null,"\u6d88\u606f\u8ba4\u8bc1\u7801\u65e0\u6cd5\u89e3\u51b3\u7684\u95ee\u9898\uff0c\u5305\u62ec\u201c\u5bf9\u7b2c\u4e09\u65b9\u8bc1\u660e\u201d\u548c\u201c\u9632\u6b62\u5426\u8ba4\u201d\u3002"),(0,a.yg)("h3",{id:"\u6570\u5b57\u7b7e\u540d-\u6d88\u606f\u5230\u5e95\u662f\u8c01\u5199\u7684"},"\u6570\u5b57\u7b7e\u540d-\u6d88\u606f\u5230\u5e95\u662f\u8c01\u5199\u7684\u3002"),(0,a.yg)("p",null,"\u6570\u5b57\u7b7e\u540d\u662f\u4e00\u79cd\u5c06\u76f8\u5f53\u4e8e\u73b0\u5b9e\u4e16\u754c\u4e2d\u7684\u7b7e\u7ae0\u3001\u7b7e\u5b57\u7684\u529f\u80fd\u5728\u8ba1\u7b97\u673a\u4e16\u754c\u4e2d\u8fdb\u884c\u5b9e\u73b0\u7684\u6280\u672f\u3002\u4f7f\u7528\u6570\u5b57\u7b7e\u540d\u53ef\u4ee5\u8bc6\u522b\u7be1\u6539\u548c\u4f2a\u88c5\uff0c\u8fd8\u53ef\u9632\u6b62\u5426\u8ba4\u3002"),(0,a.yg)("p",null,"\u5b9e\u9645\u4e0a\uff0c\u6570\u5b57\u7b7e\u540d\u548c\u516c\u94a5\u5bc6\u7801\u6709\u7740\u975e\u5e38\u7d27\u5bc6\u7684\u8054\u7cfb\uff0c\u7b80\u800c\u8a00\u4e4b\uff0c\u6570\u5b57\u7b7e\u540d\u5c31\u662f\u901a\u8fc7\u8bb2\u516c\u94a5\u5bc6\u7801\u201c\u53cd\u8fc7\u6765\u7528\u201d\u800c\u5b9e\u73b0\u7684\u3002"),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"image.png",src:n(8184).A,width:"1946",height:"486"})),(0,a.yg)("p",null,"\u6570\u5b57\u7b7e\u540d\u7684\u4f5c\u7528\u672c\u6765\u5c31\u4e0d\u662f\u4fdd\u8bc1\u673a\u5bc6\u6027\u7684\uff0c\u800c\u662f\u88ab\u7528\u4e8e\u4ee3\u8868\u4e00\u79cd\u53ea\u6709\u6301\u6709\u8be5\u79d8\u94a5\u7684\u4eba\u624d\u80fd\u591f\u751f\u6210\u4fe1\u606f\u3002"),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"image.png",src:n(3795).A,width:"750",height:"383"})),(0,a.yg)("p",null,"\u5bf9\u79f0\u5bc6\u7801\u7684\u79d8\u94a5\u662f\u673a\u5bc6\u6027\u7684\u7cbe\u534e\uff0c\u5355\u5411\u6563\u5217\u51fd\u6570\u7684\u6563\u5217\u503c\u662f\u5b8c\u6574\u6027\u7684\u7cbe\u534e\u3002"),(0,a.yg)("h3",{id:"\u8bc1\u4e66-\u4e3a\u516c\u94a5\u52a0\u4e0a\u6570\u5b57\u7b7e\u540d"},"\u8bc1\u4e66-\u4e3a\u516c\u94a5\u52a0\u4e0a\u6570\u5b57\u7b7e\u540d"),(0,a.yg)("p",null,"\u8bc1\u4e66\u662f\u7531\u8ba4\u8bc1\u673a\u6784\u9881\u53d1\u7684\uff0c\u4f7f\u7528\u8005\u9700\u8981\u5bf9\u8bc1\u4e66\u8fdb\u884c\u9a8c\u8bc1\uff0c\u56e0\u6b64\u5982\u679c\u8bc1\u4e66\u7684\u683c\u5f0f\u5343\u5947\u767e\u602a\u90a3\u5c31\u4e0d\u65b9\u4fbf\u4e86\uff0c\u4e8e\u662f\uff0c\u4eba\u4eec\u5236\u5b9a\u4e86\u8bc1\u4e66\u7684\u6807\u51c6\u89c4\u8303\uff0c\u4f7f\u7528\u6700\u5e7f\u6cdb\u7684\u662f X.509 \u89c4\u8303\u3002"),(0,a.yg)("p",null,"\u516c\u94a5\u57fa\u7840\u8bbe\u65bd PKI \u662f\u4e3a\u4e86\u80fd\u591f\u6709\u6548\u5730\u8fd0\u7528\u516c\u94a5\u800c\u5236\u5b9a\u7684\u4e00\u4e9b\u5217\u89c4\u8303\u548c\u89c4\u683c\u7684\u603b\u79f0\u3002\u516c\u94a5\u57fa\u7840\u8bbe\u65bd\u4e00\u822c\u6839\u636e\u5176\u5e94\u7528\u7f29\u5199\u800c\u7b80\u79f0\u4e3a PKI\u3002"),(0,a.yg)("p",null,"\u8bf7\u8bb0\u4f4f\uff0c\u4f7f\u7528\u516c\u5f00\u7684\u6280\u672f\u548c\u628a\u81ea\u5df1\u7684\u6280\u672f\u516c\u5f00\u662f\u4e24\u7801\u4e8b\u3002\u91c7\u7528\u5df2\u7ecf\u516c\u5f00\u7684\uff0c\u5e76\u79ef\u7d2f\u4e86\u5927\u91cf\u6210\u679c\u7684\u6280\u672f\u662f\u6b63\u786e\u7684\u51b3\u5b9a\uff0c\u7136\u800c\u5e76\u4e0d\u9700\u8981\u5c06\u81ea\u5df1\u516c\u53f8\u6240\u91c7\u7528\u7684\u6280\u672f\u4e0a\u7684\u7ec6\u8282\u516c\u5f00\u51fa\u6765\u3002\u6211\u4eec\u62ff\u5458\u5de5\u8bbf\u95ee\u516c\u53f8\u5185\u90e8\u7f51\u7edc\u7684\u65b9\u6cd5\u4e3a\u4f8b\u3002\u9a8c\u8bc1\u5458\u5de5\u7684\u5408\u6cd5\u8eab\u4efd\u53ef\u4ee5\u91c7\u7528\u516c\u5f00\u7684\uff0c\u79ef\u7d2f\u4e86\u5927\u91cf\u6210\u679c\u7684\u6280\u672f\uff0c\u4f46\u662f\u6211\u4eec\u5e76\u4e0d\u9700\u8981\u5c06\u8fd9\u4e9b\u7ec6\u8282\u516c\u5f00\u51fa\u6765\uff0c\u800c\u662f\u53ea\u8981\u544a\u8bc9\u76f8\u5173\u7684\u5458\u5de5\u5c31\u53ef\u4ee5\u4e86\u3002\u8fd9\u6837\u6211\u4eec\u5c31\u53ef\u4ee5\u5c06\u81ea\u5df1\u7684\u98ce\u9669\u63a7\u5236\u5230\u6700\u5c0f\uff0c\u4e07\u4e00\u6709\u4eba\u6076\u610f\u8bb2\u6280\u672f\u7684\u8be6\u7ec6\u4fe1\u606f\u516c\u5f00\u51fa\u6765\uff0c\u4e5f\u4e0d\u4f1a\u4ea7\u751f\u4e25\u91cd\u7684\u95ee\u9898\uff0c\u56e0\u4e3a\u6211\u4eec\u6240\u4f7f\u7528\u7684\u6280\u672f\u539f\u672c\u5c31\u662f\u516c\u5f00\u7684\u3002\u53cd\u8fc7\u6765\u8bf4\uff0c\u5982\u679c\u6211\u4eec\u4f7f\u7528\u7684\u6280\u672f\u662f\u4f9d\u9760\u5bf9\u7ec6\u8282\u7684\u4fdd\u5bc6\u6765\u4fdd\u8bc1\u5b89\u5168\u7684\uff0c\u90a3\u4e48\u4e00\u65e6\u6709\u4eba\u6076\u610f\u6cc4\u6f0f\u6280\u672f\u7ec6\u8282\uff0c\u5c31\u4f1a\u9020\u6210\u4e25\u91cd\u7684\u95ee\u9898\u3002"),(0,a.yg)("p",null,"\u6709\u9650\u7fa4\u7684\u79bb\u6563\u5bf9\u6570\u95ee\u9898\u7684\u590d\u6742\u5ea6\u6b63\u5f0f\u652f\u6491 Diffie-Hellman \u79d8\u94a5\u4ea4\u6362\u7b97\u6cd5\u7684\u57fa\u7840\u3002"),(0,a.yg)("h3",{id:"\u968f\u673a\u6570-\u4e0d\u53ef\u9884\u6d4b\u6027\u7684\u6e90\u6cc9"},"\u968f\u673a\u6570-\u4e0d\u53ef\u9884\u6d4b\u6027\u7684\u6e90\u6cc9"),(0,a.yg)("p",null,"\u6211\u4eec\u5c06\u968f\u673a\u6570\u7684\u6027\u8d28\u5206\u4e3a\u4ee5\u4e0b\u4e09\u7c7b\uff1a"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"\u968f\u673a\u6027\uff0c\u4e0d\u5b58\u5728\u7edf\u8ba1\u5b66\u504f\u5dee\uff0c\u662f\u5b8c\u5168\u6742\u4e71\u7684\u6570\u5217\uff1b"),(0,a.yg)("li",{parentName:"ol"},"\u4e0d\u53ef\u9884\u6d4b\u6027\uff0c\u4e0d\u80fd\u4ece\u8fc7\u53bb\u7684\u6570\u5217\u63a8\u6d4b\u51fa\u4e0b\u4e00\u4e2a\u51fa\u73b0\u7684\u6570\uff1b"),(0,a.yg)("li",{parentName:"ol"},"\u4e0d\u53ef\u91cd\u73b0\u6027\uff0c\u9664\u975e\u5c06\u6570\u5217\u672c\u8eab\u4fdd\u5b58\u4e0b\u6765\uff0c\u5426\u5219\u4e0d\u80fd\u91cd\u73b0\u76f8\u540c\u7684\u6570\u5217\uff1b")),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"image.png",src:n(1882).A,width:"750",height:"474"})),(0,a.yg)("p",null,"\u4ec5\u9760\u8f6f\u4ef6\u662f\u65e0\u6cd5\u751f\u6210\u51fa\u5177\u5907\u4e0d\u53ef\u91cd\u73b0\u6027\u7684\u968f\u673a\u6570\u5217\u7684\u3002\u8f6f\u4ef6\u53ea\u80fd\u751f\u6210\u4f2a\u968f\u673a\u6570\u5217\uff0c\u8fd9\u662f\u56e0\u4e3a\u8fd0\u884c\u8f6f\u4ef6\u7684\u8ba1\u7b97\u673a\u672c\u8eab\u5177\u5907\u4f18\u5148\u7684\u5185\u90e8\u72b6\u6001\u3002\u800c\u5728\u5185\u90e8\u72b6\u6001\u76f8\u540c\u7684\u6761\u4ef6\u4e0b\uff0c\u8f6f\u4ef6\u5fc5\u7136\u53ea\u80fd\u751f\u6210\u76f8\u540c\u7684\u6570\uff0c\u56e0\u4e3a\u8f6f\u4ef6\u6240\u751f\u6210\u7684\u6570\u5217\u5728\u67d0\u4e2a\u65f6\u523b\u4e00\u5b9a\u4f1a\u51fa\u73b0\u91cd\u590d\u3002\u9996\u6b21\u51fa\u73b0\u91cd\u590d\u4e4b\u524d\u7684\u6570\u5217\u957f\u5ea6\u79f0\u4e3a\u5468\u671f\uff0c\u5bf9\u4e8e\u8f6f\u4ef6\u6240\u751f\u6210\u7684\u6570\u5217\uff0c\u5176\u5468\u671f\u5fc5\u5b9a\u662f\u6709\u9650\u7684\u3002\u5f53\u7136\uff0c\u8fd9\u4e2a\u5468\u671f\u53ef\u80fd\u4f1a\u5f88\u957f\uff0c\u4f46\u603b\u5f52\u662f\u6709\u9650\u7684\u3002\u51e1\u662f\u5177\u6709\u5468\u671f\u7684\u6570\u5217\uff0c\u90fd\u4e0d\u5177\u5907\u4e0d\u53ef\u91cd\u73b0\u6027\u3002"),(0,a.yg)("p",null,"\u968f\u673a\u6570\u53ef\u4ee5\u901a\u8fc7\u786c\u4ef6\u6765\u751f\u6210\uff0c\u4e5f\u53ef\u4ee5\u901a\u8fc7\u8f6f\u4ef6\u6765\u751f\u6210\u3002\n\u901a\u8fc7\u786c\u4ef6\u751f\u6210\u7684\u968f\u673a\u6570\u5217\uff0c\u662f\u6839\u636e\u4f20\u611f\u5668\u6536\u96c6\u7684\u70ed\u91cf\u3001\u58f0\u97f3\u7684\u53d8\u5316\u7b49\u4e8b\u5b9e\u4e0a\u65e0\u6cd5\u9884\u6d4b\u548c\u91cd\u73b0\u7684\u81ea\u7136\u73b0\u8c61\u4fe1\u606f\u6765\u751f\u6210\u7684\u3002\u50cf\u8fd9\u6837\u7684\u786c\u4ef6\u8bbe\u5907\u5c31\u6210\u4e3a\u968f\u673a\u6570\u751f\u6210\u5668\u3002\n\u800c\u53ef\u4ee5\u751f\u6210\u968f\u673a\u6570\u7684\u8f6f\u4ef6\u5219\u79f0\u4e3a\u4f2a\u968f\u673a\u6570\u751f\u6210\u5668\u3002\u56e0\u4e3a\u4ec5\u9760\u8f6f\u4ef6\u65e0\u6cd5\u751f\u6210\u771f\u968f\u673a\u6570\uff0c\u56e0\u6b64\u8981\u52a0\u4e0a\u4e00\u4e2a\u4f2a\u5b57\u3002"),(0,a.yg)("p",null,"\u4e00\u4e9b\u5177\u4f53\u7684\u4f2a\u968f\u673a\u6570\u751f\u6210\u5668\uff1a"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"\u4e71\u6765\u7684\u65b9\u6cd5\uff0c\u4e0d\u884c\uff0c\u4e0d\u5177\u5907\u4e0d\u53ef\u9884\u6d4b\u6027\uff1b"),(0,a.yg)("li",{parentName:"ol"},"\u7ebf\u6027\u540c\u4f59\u6cd5\uff0c\u662f\u4e00\u79cd\u5e94\u7528\u975e\u5e38\u5e7f\u6cdb\u7684\u4f2a\u968f\u673a\u6570\u751f\u6210\u5668\u7b97\u6cd5\uff0c\u5f88\u591a\u9884\u7814\u7684\u968f\u673a\u6570\u51fd\u6570\u90fd\u662f\u7528\u7684\u4ed6\uff0c\u4f8b\u5982 js\u3001java\uff0c\u7136\u800c\u4ed6\u4e0d\u80fd\u7528\u4e8e\u5bc6\u7801\u6280\u672f\u3002\u4e0d\u5177\u5907\u4e0d\u53ef\u9884\u6d4b\u6027\uff1b"),(0,a.yg)("li",{parentName:"ol"},"\u5355\u5411\u6563\u5217\u51fd\u6570\u6cd5\uff0c\u5177\u5907\u4e0d\u53ef\u9884\u6d4b\u6027\uff1b"),(0,a.yg)("li",{parentName:"ol"},"\u5bc6\u7801\u6cd5\uff0c\u5177\u5907\u4e0d\u53ef\u9884\u6d4b\u6027\uff0c\u65e2\u53ef\u4ee5\u4f7f\u7528 AES \u7b49\u5bf9\u79f0\u5bc6\u7801\uff0c\u4e5f\u53ef\u4ee5\u4f7f\u7528 RSA \u7b49\u516c\u94a5\u5bc6\u7801\uff1b")),(0,a.yg)("p",null,"\u4f2a\u968f\u673a\u6570\u7684\u79cd\u5b50\u548c\u5bc6\u7801\u7684\u79d8\u94a5\u540c\u7b49\u91cd\u8981\u3002\u5982\u679c\u653b\u51fb\u8005\u77e5\u9053\u4e86\u4f2a\u968f\u673a\u6570\u7684\u79cd\u5b50\uff0c\u90a3\u4e48\u4ed6\u5c31\u80fd\u591f\u77e5\u9053\u8fd9\u4e2a\u4f2a\u968f\u673a\u6570\u751f\u6210\u5668\u6240\u751f\u6210\u7684\u5168\u90e8\u4f2a\u968f\u673a\u6570\u6570\u5217\u3002\u56e0\u4e3a\u4f2a\u968f\u673a\u6570\u7684\u79cd\u5b50\u4e0d\u53ef\u80fd\u88ab\u653b\u51fb\u8005\u77e5\u9053\u3002\u8981\u907f\u514d\u79cd\u5b50\u88ab\u653b\u51fb\u8005\u77e5\u9053\uff0c\u6211\u4eec\u9700\u8981\u4f7f\u7528\u5177\u5907\u4e0d\u53ef\u91cd\u73b0\u6027\u7684\u771f\u968f\u673a\u6570\u4f5c\u4e3a\u79cd\u5b50\u3002"),(0,a.yg)("p",null,"PGP-\u5bc6\u7801\u6280\u672f\u7684\u5b8c\u7f8e\u7ec4\u5408"),(0,a.yg)("h3",{id:"ssltls"},"SSL/TLS"),(0,a.yg)("p",null,"\u4e3a\u4e86\u66f4\u5b89\u5168\u7684\u901a\u4fe1\uff0c\u662f\u4e16\u754c\u4e0a\u5e94\u7528\u6700\u5e7f\u6cdb\u7684\u5bc6\u7801\u901a\u4fe1\u65b9\u6cd5\u3002"),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"image.png",src:n(9005).A,width:"750",height:"725"})))}c.isMDXComponent=!0},830:(e,l,n)=>{n.d(l,{A:()=>t});const t=n.p+"assets/images/3-1cd22ce575e5572824bd4c8ad4099377.png"},9313:(e,l,n)=>{n.d(l,{A:()=>t});const t=n.p+"assets/images/4-b7ba21080fe3004db7495ee55cbcf227.png"},8184:(e,l,n)=>{n.d(l,{A:()=>t});const t=n.p+"assets/images/5-180f1157571f0dc0cd0daf2b1fe5c9c4.png"},3795:(e,l,n)=>{n.d(l,{A:()=>t});const t=n.p+"assets/images/6-04cf67c1d3f54bc82262926c7e27388d.png"},1882:(e,l,n)=>{n.d(l,{A:()=>t});const t=n.p+"assets/images/7-88db62490bde176557c35427f36fc908.png"},9005:(e,l,n)=>{n.d(l,{A:()=>t});const t=n.p+"assets/images/8-699fd9ac60c91e226b2029ed1e184f2c.png"},6954:(e,l,n)=>{n.d(l,{A:()=>t});const t=n.p+"assets/images/model-694c6958c5a4ee8c940e3b4236a68518.png"},7539:(e,l,n)=>{n.d(l,{A:()=>t});const t=n.p+"assets/images/tool-d0ca9efb9b22f41c3fd8b98e6420074a.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1197],{5680:(e,l,n)=>{n.d(l,{xA:()=>o,yg:()=>d});var t=n(6540);function a(e,l,n){return l in e?Object.defineProperty(e,l,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[l]=n,e}function r(e,l){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);l&&(t=t.filter((function(l){return Object.getOwnPropertyDescriptor(e,l).enumerable}))),n.push.apply(n,t)}return n}function g(e){for(var l=1;l=0||(a[n]=e[n]);return a}(e,l);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var i=t.createContext({}),y=function(e){var l=t.useContext(i),n=l;return e&&(n="function"==typeof e?e(l):g(g({},l),e)),n},o=function(e){var l=y(e.components);return t.createElement(i.Provider,{value:l},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var l=e.children;return t.createElement(t.Fragment,{},l)}},s=t.forwardRef((function(e,l){var n=e.components,a=e.mdxType,r=e.originalType,i=e.parentName,o=p(e,["components","mdxType","originalType","parentName"]),u=y(n),s=a,d=u["".concat(i,".").concat(s)]||u[s]||c[s]||r;return n?t.createElement(d,g(g({ref:l},o),{},{components:n})):t.createElement(d,g({ref:l},o))}));function d(e,l){var n=arguments,a=l&&l.mdxType;if("string"==typeof e||a){var r=n.length,g=new Array(r);g[0]=s;var p={};for(var i in l)hasOwnProperty.call(l,i)&&(p[i]=l[i]);p.originalType=e,p[u]="string"==typeof e?e:a,g[1]=p;for(var y=2;y{n.r(l),n.d(l,{assets:()=>i,contentTitle:()=>g,default:()=>c,frontMatter:()=>r,metadata:()=>p,toc:()=>y});var t=n(8168),a=(n(6540),n(5680));const r={},g=void 0,p={unversionedId:"study/encryption/\u8bfb\u4e66\u7b14\u8bb0-\u56fe\u89e3\u5bc6\u7801\u6280\u672f",id:"study/encryption/\u8bfb\u4e66\u7b14\u8bb0-\u56fe\u89e3\u5bc6\u7801\u6280\u672f",title:"\u8bfb\u4e66\u7b14\u8bb0-\u56fe\u89e3\u5bc6\u7801\u6280\u672f",description:"\u5bc6\u7801\u5b66\u5bb6\u7684\u5de5\u5177\u7bb1",source:"@site/docs/study/encryption/\u8bfb\u4e66\u7b14\u8bb0-\u56fe\u89e3\u5bc6\u7801\u6280\u672f.md",sourceDirName:"study/encryption",slug:"/study/encryption/\u8bfb\u4e66\u7b14\u8bb0-\u56fe\u89e3\u5bc6\u7801\u6280\u672f",permalink:"/docs/study/encryption/\u8bfb\u4e66\u7b14\u8bb0-\u56fe\u89e3\u5bc6\u7801\u6280\u672f",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u884c\u4e1a\u5206\u6790",permalink:"/docs/study/encryption/\u884c\u4e1a\u5206\u6790"},next:{title:"\u975e\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3",permalink:"/docs/study/encryption/\u975e\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3"}},i={},y=[{value:"\u5bc6\u7801\u5b66\u5bb6\u7684\u5de5\u5177\u7bb1",id:"\u5bc6\u7801\u5b66\u5bb6\u7684\u5de5\u5177\u7bb1",level:3},{value:"\u516c\u94a5\u5bc6\u7801\u4e2d",id:"\u516c\u94a5\u5bc6\u7801\u4e2d",level:3},{value:"\u5355\u5411\u6563\u5217\u51fd\u6570",id:"\u5355\u5411\u6563\u5217\u51fd\u6570",level:3},{value:"\u6d88\u606f\u8ba4\u8bc1\u7801",id:"\u6d88\u606f\u8ba4\u8bc1\u7801",level:3},{value:"\u6570\u5b57\u7b7e\u540d-\u6d88\u606f\u5230\u5e95\u662f\u8c01\u5199\u7684\u3002",id:"\u6570\u5b57\u7b7e\u540d-\u6d88\u606f\u5230\u5e95\u662f\u8c01\u5199\u7684",level:3},{value:"\u8bc1\u4e66-\u4e3a\u516c\u94a5\u52a0\u4e0a\u6570\u5b57\u7b7e\u540d",id:"\u8bc1\u4e66-\u4e3a\u516c\u94a5\u52a0\u4e0a\u6570\u5b57\u7b7e\u540d",level:3},{value:"\u968f\u673a\u6570-\u4e0d\u53ef\u9884\u6d4b\u6027\u7684\u6e90\u6cc9",id:"\u968f\u673a\u6570-\u4e0d\u53ef\u9884\u6d4b\u6027\u7684\u6e90\u6cc9",level:3},{value:"SSL/TLS",id:"ssltls",level:3}],o={toc:y},u="wrapper";function c(e){let{components:l,...r}=e;return(0,a.yg)(u,(0,t.A)({},o,r,{components:l,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u5bc6\u7801\u5b66\u5bb6\u7684\u5de5\u5177\u7bb1"},"\u5bc6\u7801\u5b66\u5bb6\u7684\u5de5\u5177\u7bb1"),(0,a.yg)("p",null,"\u5305\u62ec\uff1a"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"\u5bf9\u79f0\u52a0\u5bc6\uff0c\u52a0\u5bc6\u548c\u89e3\u5bc6\u7684\u79d8\u94a5\u662f\u4e00\u6837\u7684\uff1b"),(0,a.yg)("li",{parentName:"ol"},"\u975e\u5bf9\u79f0\u52a0\u5bc6\uff0c\u52a0\u5bc6\u548c\u89e3\u5bc6\u7684\u79d8\u94a5\u662f\u4e0d\u4e00\u6837\u7684\uff1b"),(0,a.yg)("li",{parentName:"ol"},"\u5355\u9879\u6563\u5217\u51fd\u6570\uff0c\u5c31\u662f\u54c8\u5e0c\uff1b"),(0,a.yg)("li",{parentName:"ol"},"\u6d88\u606f\u8ba4\u8bc1\u7801\uff1b"),(0,a.yg)("li",{parentName:"ol"},"\u6570\u5b57\u7b7e\u540d\uff1b"),(0,a.yg)("li",{parentName:"ol"},"\u4f2a\u968f\u673a\u6570\u751f\u6210\u5668\uff1b")),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"image.png",src:n(7539).A,width:"750",height:"585"})),(0,a.yg)("p",null,"\u51ef\u6492\u5bc6\u7801\u52a0\u5bc6\uff1a\u662f\u901a\u8fc7\u5c06\u660e\u6587\u4e2d\u6240\u4f7f\u7528\u7684\u5b57\u6bcd\u8868\u6309\u7167\u4e00\u5b9a\u7684\u5b57\u6570\u201c\u5e73\u79fb\u201d\u6765\u8fdb\u884c\u52a0\u5bc6\u7684\u3002\n\u7b80\u5355\u66ff\u6362\u52a0\u5bc6\uff1a\u662f\u5c06\u660e\u6587\u4e2d\u6240\u6709\u4f7f\u7528\u7684\u5b57\u6bcd\u66ff\u6362\u6210\u53e6\u4e00\u5957\u5b57\u6bcd\u8868\u7684\u5bc6\u7801\u3002"),(0,a.yg)("p",null,"\u4e00\u79cd\u5bc6\u7801\u80fd\u591f\u4f7f\u7528\u7684\u201c\u6240\u6709\u79d8\u94a5\u7684\u96c6\u5408\u201d\u79f0\u4e3a\u79d8\u94a5\u7a7a\u95f4\u3002"),(0,a.yg)("p",null,"\u867d\u7136\u7528\u66b4\u529b\u7834\u89e3\u5f88\u96be\u7834\u89e3\u7b80\u5355\u66ff\u6362\u5bc6\u7801\uff0c\u4f46\u4f7f\u7528\u88ab\u79f0\u4e3a\u9891\u7387\u5206\u6790\u7684\u5bc6\u7801\u7834\u8bd1\u65b9\u6cd5\uff0c\u5c31\u80fd\u591f\u7834\u8bd1\u7b80\u5355\u66ff\u6362\u5bc6\u7801\u3002\u6240\u8c13\u7684\u9891\u7387\u5206\u6790\u662f\u6307\u5bf9\u5bc6\u6587\u4e2d\u51fa\u73b0\u7684\u5b57\u6bcd\u6b21\u6570\u8fdb\u884c\u7edf\u8ba1\uff0c\u7136\u540e\u6839\u636e\u7ecf\u9a8c\u5c1d\u8bd5\u53bb\u89e3\u8bfb\u7b80\u5355\u66ff\u6362\u7684\u542b\u4e49\u3002\u4ece\u516c\u5143\u524d\u5f00\u59cb\uff0c\u7b80\u5355\u66ff\u6362\u5bc6\u7801\u5728\u51e0\u767e\u5e74\u7684\u65f6\u95f4\u91cc\u4e00\u76f4\u88ab\u7528\u4e8e\u79d8\u5bc6\u901a\u4fe1\u3002\u7136\u800c\u5728\u963f\u62c9\u4f2f\u5b66\u8005\u53d1\u660e\u9891\u7387\u5206\u6790\u6cd5\u4e4b\u540e\uff0c\u8fd9\u79cd\u5bc6\u7801\u5f88\u5bb9\u6613\u5c31\u88ab\u7834\u8bd1\u4e86\u3002"),(0,a.yg)("p",null,"\u5c06\u5bc6\u7801\u7b97\u6cd5\u548c\u79d8\u94a5\u5206\u5f00\u8003\u8651\uff0c\u5c31\u89e3\u51b3\u4e86\u5e0c\u671b\u91cd\u590d\u4f7f\u7528\uff0c\u4f46\u91cd\u590d\u4f7f\u7528\u4f1a\u589e\u52a0\u98ce\u9669\u8fd9\u4e2a\u96be\u9898\u3002"),(0,a.yg)("p",null,"XOR=\u5f02\u6216"),(0,a.yg)("p",null,"DES\u300b\u4e09\u91cd DES"),(0,a.yg)("p",null,"AES \u6240\u4f7f\u7528\u7684\u5bc6\u7801\u7b97\u6cd5\u662f\u6bd4\u5229\u65f6\u5bc6\u7801\u5b66\u5bb6\u5f00\u53d1\u7684 R'ijndael\u3002"),(0,a.yg)("p",null,"\u4e00\u822c\u6765\u8bf4\uff0c\u6211\u4eec\u4e0d\u5e94\u8be5\u4f7f\u7528\u4efb\u4f55\u81ea\u5236\u7684\u5bc6\u7801\u7b97\u6cd5\uff0c\u800c\u662f\u5e94\u8be5\u4f7f\u7528 AES\u3002\u56e0\u4e3a AES \u5728\u5176\u9009\u5b9a\u8fc7\u7a0b\u4e2d\uff0c\u7ecf\u8fc7\u4e86\u5168\u4e16\u754c\u5bc6\u7801\u5b66\u5bb6\u7684\u6240\u8fdb\u884c\u7684\u9ad8\u54c1\u8d28\u7684\u9a8c\u8bc1\u5de5\uff0c\u800c\u5bf9\u4e8e\u81ea\u5236\u7684\u5bc6\u7801\u7b97\u6cd5\u5219\u5f88\u96be\u8fdb\u884c\u8fd9\u6837\u7684\u9a8c\u8bc1\u3002"),(0,a.yg)("p",null,"\u5bc6\u7801\u7b97\u6cd5\u53ef\u4ee5\u5206\u4e3a\u5206\u7ec4\u5bc6\u7801\u548c\u6d41\u5bc6\u7801\u4e24\u79cd\uff1b\u5206\u7ec4\u5bc6\u7801\u662f\u6bcf\u6b21\u53ea\u80fd\u5904\u7406\u7279\u5b9a\u957f\u5ea6\u7684\u4e00\u5757\u6570\u636e\u7684\u4e00\u7c7b\u5bc6\u7801\u7b97\u6cd5\uff0c\u8fd9\u91cc\u7684\u4e00\u5757\u5c31\u6210\u4e3a\u5206\u7ec4\u3002\u523a\u732c\u4e00\u4e2a\u5206\u7ec4\u7684\u6bd4\u7279\u6570\u5c31\u79f0\u4e3a\u5206\u7ec4\u957f\u5ea6\u3002\u4f8b\u5982 DES \u548c\u4e09\u91cd DES \u7684\u5206\u7ec4\u957f\u5ea6\u90fd\u662f 64 \u6bd4\u7279\u3002\u8fd9\u4e9b\u5bc6\u7801\u7b97\u6cd5\u4e00\u6b21\u53ea\u80fd\u52a0\u5bc6 64 \u6bd4\u7279\u7684\u660e\u6587\uff0c\u5e76\u751f\u6210 64 \u6bd4\u7279\u7684\u5bc6\u6587\u3002AES \u7684\u5206\u7ec4\u957f\u5ea6\u53ef\u4ee5\u4ece 128 \u6bd4\u7279\u3001192 \u6bd4\u7279\u548c 256 \u6bd4\u7279\u4e2d\u8fdb\u884c\u9009\u62e9\u3002"),(0,a.yg)("p",null,"\u6d41\u5bc6\u7801\u662f\u5bf9\u6570\u636e\u6d41\u8fdb\u884c\u8fde\u7eed\u5904\u7406\u7684\u4e00\u7c7b\u5bc6\u7801\u7b97\u6cd5\u3002\u6d41\u5bc6\u7801\u4e2d\u4e00\u822c\u4ee5 1 \u6bd4\u7279\u30018 \u6bd4\u7279\u6216 32 \u6bd4\u7279\u4e3a\u5355\u4f4d\u8fdb\u884c\u52a0\u5bc6\u548c\u89e3\u5bc6\u3002"),(0,a.yg)("p",null,"\u5728\u5bf9\u79f0\u5bc6\u7801\u4e2d\u6240\u4ecb\u7ecd\u7684\u7b97\u6cd5\u4e2d\uff0c\u53ea\u6709\u4e00\u6b21\u6027\u5bc6\u7801\u672c\u5c5e\u4e8e\u6d41\u5bc6\u7801\uff0c\u800c DES\u3001\u4e09\u91cd DES\u3001AES \u7b49\u5927\u591a\u6570\u5bf9\u79f0\u5bc6\u7801\u7b97\u6cd5\u90fd\u5c5e\u4e8e\u5206\u7ec4\u5bc6\u7801\u3002"),(0,a.yg)("p",null,"\u5206\u7ec4\u5bc6\u7801\u7b97\u6cd5\u53ea\u80fd\u52a0\u5bc6\u56fa\u5b9a\u957f\u5ea6\u7684\u5206\u7ec4\uff0c\u4f46\u662f\u6211\u4eec\u9700\u8981\u52a0\u5bc6\u7684\u5bc6\u6587\u957f\u5ea6\u53ef\u80fd\u4f1a\u8d85\u8fc7\u5206\u7ec4\u5bc6\u7801\u7684\u5206\u7ec4\u957f\u5ea6\uff0c\u8fd9\u65f6\u5c31\u9700\u8981\u5bf9\u5206\u7ec4\u5bc6\u7801\u7b97\u6cd5\u8fdb\u884c\u8fed\u4ee3\uff0c\u4ee5\u4fbf\u8bb2\u4e00\u6bb5\u5f88\u957f\u7684\u660e\u6587\u5168\u90e8\u52a0\u5bc6\u3002\u800c\u8fed\u4ee3\u7684\u65b9\u6cd5\u5c31\u6210\u4e3a\u5206\u7ec4\u5bc6\u7801\u7684\u6a21\u5f0f\u3002\u6a21\u5f0f\u6709\u5f88\u591a\u79cd\u7c7b\uff0c\u4e3b\u8981\u6709\uff1a"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"ECB \u6a21\u5f0f\uff0c\u7535\u5b50\u5bc6\u7801\u672c\u6a21\u5f0f\uff1b\u5c06\u660e\u6587\u5206\u7ec4\u52a0\u5bc6\u4e4b\u540e\u7684\u7ed3\u679c\u76f4\u63a5\u6210\u4e3a\u5bc6\u6587\u5206\u7ec4\uff1b\u6a21\u5f0f\u7b80\u5355\uff0c\u901a\u5e38\u4e0d\u4f1a\u88ab\u4f7f\u7528\uff1b"),(0,a.yg)("li",{parentName:"ol"},"CBC \u6a21\u5f0f\uff0c\u5bc6\u7801\u5206\u7ec4\u94fe\u63a5\u6a21\u5f0f\uff1b\u786e\u4fdd\u4e92\u8054\u7f51\u5b89\u5168\u7684\u901a\u4fe1\u534f\u8bae\u4e4b\u4e00 IPsec\uff0c\u5c31\u662f\u4f7f\u7528 CBC \u6a21\u5f0f\u6765\u786e\u4fdd\u901a\u4fe1\u673a\u5bc6\u6027\u7684\uff0c\u5982\u4f7f\u7528 CBC \u6a21\u5f0f\u4e09\u91cd DES \u7684 3DES-CBC \u4ee5\u53ca CBC \u6a21\u5f0f AES \u7684 AES-CBC \u7b49\u3002"),(0,a.yg)("li",{parentName:"ol"},"CFB \u6a21\u5f0f\uff0c\u5bc6\u6587\u53cd\u9988\u6a21\u5f0f\uff1b"),(0,a.yg)("li",{parentName:"ol"},"OFB \u6a21\u5f0f\uff0c\u8f93\u51fa\u53cd\u9988\u6a21\u5f0f\uff1b"),(0,a.yg)("li",{parentName:"ol"},"CTR \u6a21\u5f0f\uff0c\u8ba1\u6570\u5668\u6a21\u5f0f\uff1b")),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"image.png",src:n(6954).A,width:"750",height:"831"})),(0,a.yg)("p",null,"\u5728\u5bf9\u79f0\u5bc6\u7801\u4e2d\uff0c\u7531\u4e8e\u52a0\u5bc6\u548c\u89e3\u5bc6\u7684\u79d8\u94a5\u662f\u76f8\u540c\u7684\uff0c\u56e0\u6b64\u5fc5\u987b\u5411\u63a5\u6536\u8005\u4f69\u677e\u79d8\u94a5\u3002\u7528\u4e8e\u89e3\u5bc6\u7684\u79d8\u94a5\u5fc5\u987b\u88ab\u914d\u9001\u7ed9\u63a5\u6536\u8005\uff0c\u8fd9\u4e00\u95ee\u9898\u88ab\u79f0\u4e3a\u79d8\u94a5\u914d\u9001\u95ee\u9898\u3002\u5982\u679c\u4f7f\u7528\u516c\u94a5\u5bc6\u7801\uff0c\u5219\u65e0\u9700\u5411\u63a5\u6536\u8005\u4f69\u677e\u7528\u4e8e\u89e3\u5bc6\u7684\u79d8\u94a5\uff0c\u8fd9\u6837\u5c31\u89e3\u51b3\u4e86\u79d8\u94a5\u914d\u9001\u95ee\u9898\u3002\u53ef\u4ee5\u8bf4\u516c\u94a5\u5bc6\u7801\u662f\u5bc6\u7801\u5b66\u5386\u53f2\u4e0a\u6700\u4f1f\u5927\u7684\u53d1\u660e\u3002"),(0,a.yg)("h3",{id:"\u516c\u94a5\u5bc6\u7801\u4e2d"},"\u516c\u94a5\u5bc6\u7801\u4e2d"),(0,a.yg)("p",null,"\u52a0\u5bc6\u79d8\u94a5\u4e00\u822c\u662f\u516c\u5f00\u7684\u3002\u6b63\u5f0f\u7531\u4e8e\u52a0\u5bc6\u79d8\u94a5\u662f\u53ef\u4ee5\u4efb\u610f\u516c\u5f00\uff0c\u56e0\u6b64\u8be5\u79d8\u94a5\u88ab\u79f0\u4e3a\u516c\u94a5\u3002\u76f8\u5bf9\u7684\uff0c\u89e3\u5bc6\u79d8\u94a5\u662f\u7edd\u5bf9\u4e0d\u80fd\u516c\u5f00\u7684\uff0c\u8fd9\u4e2a\u79d8\u94a5\u53ea\u80fd\u7531\u4f60\u81ea\u5df1\u6765\u4f7f\u7528\uff0c\u56e0\u6b64\u6210\u4e3a\u79c1\u94a5\u3002\u79d8\u94a5\u5bf9\u4e2d\u7684\u4e24\u4e2a\u79d8\u94a5\u4e4b\u95f4\u5177\u6709\u975e\u5e38\u5bc6\u5207\u7684\u5173\u7cfb-\u6570\u5b66\u4e0a\u7684\u5173\u7cfb-\u56e0\u6b64\u516c\u94a5\u548c\u79c1\u94a5\u662f\u4e0d\u80fd\u5206\u522b\u72ec\u7acb\u751f\u6210\u7684\u3002"),(0,a.yg)("p",null,"RSA \u53ef\u4ee5\u8bf4\u662f\u73b0\u5728\u516c\u94a5\u5bc6\u7801\u7684\u4e8b\u5b9e\u6807\u51c6\u3002"),(0,a.yg)("p",null,"\u516c\u94a5\u5bc6\u7801\u65e0\u6cd5\u89e3\u51b3\u7684\u95ee\u9898\uff1a"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"\u516c\u94a5\u662f\u5426\u5408\u6cd5\u7684\u95ee\u9898\uff0c\u4e5f\u5c31\u662f\u516c\u94a5\u8ba4\u8bc1\u95ee\u9898\uff0c\u56e0\u4e3a\u5b58\u5728\u4e2d\u95f4\u4eba\u66ff\u6362\u516c\u94a5\u7684\u95ee\u9898\uff1b"),(0,a.yg)("li",{parentName:"ol"},"\u4ed6\u7684\u5904\u7406\u901f\u5ea6\u53ea\u6709\u5bf9\u79f0\u5bc6\u7801\u7684\u51e0\u767e\u5206\u4e4b\u4e00\uff1b")),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"image.png",src:n(830).A,width:"1968",height:"520"})),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"image.png",src:n(9313).A,width:"1962",height:"582"})),(0,a.yg)("p",null,"\u5bf9\u79f0\u5bc6\u7801\u901a\u8fc7\u5c06\u660e\u6587\u8f6c\u6362\u6210\u590d\u6742\u7684\u5f62\u5f0f\u6765\u4fdd\u8bc1\u5176\u673a\u5bc6\u6027\uff0c\u76f8\u5bf9\u7684\uff0c\u516c\u94a5\u5bc6\u7801\u5219\u662f\u57fa\u4e8e\u6570\u5b66\u4e0a\u7684\u56f0\u96be\u7684\u95ee\u9898\u6765\u4fdd\u8bc1\u673a\u5bc6\u6027\u7684\u3002\u4f8b\u5982 RSA \u5c31\u5229\u7528\u4e86\u5927\u6574\u6570\u7684\u8d28\u56e0\u6570\u5206\u89e3\u95ee\u9898\u7684\u56f0\u96be\u5ea6\u3002\u56e0\u6b64\uff0c\u5bf9\u79f0\u5bc6\u7801\u548c\u516c\u94a5\u5bc6\u7801\u6e90\u4e8e\u4e24\u79cd\u6839\u672c\u4e0d\u540c\u7684\u601d\u8def\u3002"),(0,a.yg)("p",null,"\u6df7\u5408\u5bc6\u7801\u7cfb\u7edf\uff0c\u7528\u5bf9\u79f0\u5bc6\u7801\u63d0\u9ad8\u901f\u5ea6\uff0c\u7528\u516c\u94a5\u5bc6\u7801\u6765\u5305\u542b\u4f1a\u8bdd\u79d8\u94a5\u3002\u4f1a\u8bdd\u79d8\u94a5\u662f\u5bf9\u79f0\u5bc6\u7801\u7684\u79d8\u94a5\uff0c\u540c\u65f6\u4e5f\u662f\u516c\u94a5\u5bc6\u7801\u7684\u660e\u6587\u3002"),(0,a.yg)("h3",{id:"\u5355\u5411\u6563\u5217\u51fd\u6570"},"\u5355\u5411\u6563\u5217\u51fd\u6570"),(0,a.yg)("p",null,"\u5c31\u662f\u4e00\u79cd\u91c7\u96c6\u6587\u4ef6\u6307\u7eb9\u7684\u6280\u672f\uff0c\u5355\u5411\u6563\u5217\u51fd\u6570\u6709\u4e00\u4e2a\u8f93\u5165\u548c\u4e00\u4e2a\u8f93\u51fa\uff0c\u5176\u4e2d\u8f93\u5165\u6210\u4e3a\u6d88\u606f\uff0c\u8f93\u51fa\u6210\u4e3a\u6563\u5217\u503c\u3002\u5355\u5411\u6563\u5217\u51fd\u6570\u53ef\u4ee5\u6839\u636e\u6d88\u606f\u7684\u5185\u5bb9\u8ba1\u7b97\u51fa\u6563\u5217\u503c\uff0c\u800c\u6563\u5217\u503c\u5c31\u53ef\u4ee5\u88ab\u7528\u6765\u68c0\u67e5\u6d88\u606f\u7684\u5b8c\u6574\u6027\u3002"),(0,a.yg)("p",null,"\u6563\u5217\u503c\u7684\u957f\u5ea6\u548c\u6d88\u606f\u7684\u957f\u5ea6\u65e0\u5173\u3002\u65e0\u8bba\u6d88\u606f\u662f 1 \u6bd4\u7279\u8fd8\u662f 100MB\uff0c\u751a\u81f3\u662f 100GB\uff0c\u5355\u5411\u6563\u5217\u51fd\u6570\u6597\u6e56\u81ea\u5df1\u7b97\u51fa\u56fa\u5b9a\u957f\u5ea6\u7684\u6563\u5217\u503c\u3002\u4ee5 SHA-1 \u5355\u5411\u6563\u5217\u51fd\u6570\u4e3a\u4f8b\uff0c\u4ed6\u6240\u8ba1\u7b97\u51fa\u7684\u6563\u5217\u503c\u7684\u957f\u5ea6\u6c38\u8fdc\u662f 160 \u6bd4\u7279\uff0820 \u5b57\u8282\uff09\u3002"),(0,a.yg)("p",null,"\u5355\u5411\u6563\u5217\u51fd\u6570\u4e5f\u79f0\u4e3a\u6d88\u606f\u6458\u8981\u51fd\u6570\uff0c\u54c8\u5e0c\u51fd\u6570\u6216\u8005\u6742\u51d1\u51fd\u6570\u3002\u8f93\u5165\u5355\u5411\u6563\u5217\u51fd\u6570\u7684\u6d88\u606f\u4e5f\u79f0\u4e3a\u539f\u50cf\u3002\u5355\u5411\u6563\u5217\u51fd\u6570\u8f93\u51fa\u7684\u6563\u5217\u503c\u4e5f\u79f0\u4e3a\u6d88\u606f\u6458\u8981\u6216\u8005\u6307\u7eb9\u3002\u5b8c\u6574\u6027\u4e5f\u79f0\u4e3a\u4e00\u81f4\u6027\u3002"),(0,a.yg)("p",null,"\u5355\u5411\u6563\u5217\u51fd\u6570\u7684\u5b9e\u9645\u5e94\u7528\uff1a\u57fa\u4e8e\u53e3\u4ee4\u7684\u52a0\u5bc6\u3001\u6d88\u606f\u8ba4\u8bc1\u7801\u3001\u6570\u5b57\u7b7e\u540d\u3001\u4f2a\u968f\u673a\u6570\u751f\u6210\u5668\u3001\u4e00\u6b21\u6027\u53e3\u4ee4\u3002"),(0,a.yg)("p",null,"\u51e0\u79cd\u5355\u5411\u6563\u5217\u51fd\u6570\uff1a"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"MD4\uff0c\u6d88\u606f\u6458\u8981 Message Digest 4\uff0c\u5df2\u7ecf\u627e\u5230\u6563\u5217\u78b0\u649e\u7684\u65b9\u6cd5\uff0c\u5df2\u4e0d\u5b89\u5168\uff1b"),(0,a.yg)("li",{parentName:"ol"},"MD5\uff0c\u5f3a\u6297\u78b0\u649e\u6027\u5df2\u88ab\u653b\u7834\uff0c\u5df2\u4e0d\u5b89\u5168\u3002"),(0,a.yg)("li",{parentName:"ol"},"SHA-1\uff0c\u5df2\u88ab\u653b\u7834\uff1b"),(0,a.yg)("li",{parentName:"ol"},"SHA-2\uff0c\u5305\u62ec SHA-256\u3001SHA-384\u3001SHA-512\uff0c\u5c1a\u672a\u88ab\u653b\u7834\uff1b"),(0,a.yg)("li",{parentName:"ol"},"RIPEMD\uff0c\u5df2\u88ab\u653b\u7834\uff1b"),(0,a.yg)("li",{parentName:"ol"},"RIPEMD-160\uff0c\u5c1a\u672a\u88ab\u653b\u7834\uff1b")),(0,a.yg)("p",null,"\u5355\u5411\u6563\u5217\u51fd\u6570\u65e0\u6cd5\u89e3\u51b3\u7684\u95ee\u9898\uff1a\u5355\u5411\u6563\u5217\u51fd\u6570\u80fd\u591f\u8fa8\u522b\u51fa\u201c\u7be1\u6539\u201d\uff0c\u4f46\u65e0\u6cd5\u8fa8\u522b\u51fa\u201c\u4f2a\u88c5\u201d\u3002"),(0,a.yg)("h3",{id:"\u6d88\u606f\u8ba4\u8bc1\u7801"},"\u6d88\u606f\u8ba4\u8bc1\u7801"),(0,a.yg)("p",null,"\u662f\u4e00\u79cd\u786e\u8ba4\u5b8c\u6574\u6027\u5e76\u8fdb\u884c\u8ba4\u8bc1\u7684\u6280\u672f\uff0c\u53d6\u4e09\u4e2a\u5355\u8bcd\u7684\u9996\u5b57\u6bcd\uff0c\u7b80\u79f0 MAC\u3002\u6d88\u606f\u8ba4\u8bc1\u7801\u7684\u8f93\u5165\u5305\u62ec\u4efb\u610f\u957f\u5ea6\u7684\u6d88\u606f\u548c\u4e00\u4e2a\u53d1\u9001\u8005\u4e0e\u63a5\u6536\u8005\u4e4b\u95f4\u5171\u4eab\u7684\u79d8\u94a5\uff0c\u4ed6\u53ef\u4ee5\u8f93\u51fa\u56fa\u5b9a\u957f\u5ea6\u7684\u6570\u636e\uff0c\u8fd9\u4e2a\u6570\u636e\u79f0\u4e3a MAC \u503c\u3002\u6d88\u606f\u8ba4\u8bc1\u7801\u6709\u5f88\u591a\u5b9e\u73b0\u65b9\u6cd5\uff0c\u5927\u5bb6\u53ef\u4ee5\u6682\u4e14\u8fd9\u6837\u7406\u89e3\uff1a\u6d88\u606f\u8ba4\u8bc1\u7801\u662f\u4e00\u79cd\u4e0e\u79d8\u94a5\u76f8\u5173\u8054\u7684\u5355\u5411\u6563\u5217\u51fd\u6570\u3002"),(0,a.yg)("p",null,"\u51e0\u4e2a\u6d88\u606f\u8ba4\u8bc1\u7801\u5728\u73b0\u5b9e\u4e16\u754c\u4e2d\u5e94\u7528\u7684\u5b9e\u4f8b\uff0c"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"SWIFT\uff0c\u73af\u7403\u94f6\u884c\u91d1\u878d\u7535\u4fe1\u534f\u4f1a\uff0c\u662f\u4e00\u4e2a\u4e3a\u56fd\u9645\u94f6\u884c\u95f4\u7684\u4ea4\u6613\u4fdd\u9a7e\u62a4\u822a\u7684\u7ec4\u7ec7\uff1b\u7528\u7684\u5c31\u662f\u6d88\u606f\u8ba4\u8bc1\u7801\uff0c\u6d88\u606f\u8ba4\u8bc1\u7801\u7684\u79d8\u94a5\u662f\u901a\u8fc7\u4eba\u6765\u8fdb\u884c\u914d\u9001\u7684\u3002"),(0,a.yg)("li",{parentName:"ol"},"IPSec"),(0,a.yg)("li",{parentName:"ol"},"SSL/TLS")),(0,a.yg)("p",null,"\u6d88\u606f\u8ba4\u8bc1\u7801\u6709\u5f88\u591a\u5b9e\u73b0\u65b9\u5f0f\uff0c"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"\u4f7f\u7528 SHA-1\u3001MD5 \u4e4b\u7c7b\u7684\u5355\u5411\u6563\u5217\u51fd\u6570\u53ef\u4ee5\u5b9e\u73b0\u6d88\u606f\u8ba4\u8bc1\u7801\uff0c\u6210\u4e3a HMAC\uff1b"),(0,a.yg)("li",{parentName:"ol"},"\u4f7f\u7528\u5206\u7ec4\u5bc6\u7801\u5b9e\u73b0\uff0c\u4f8b\u5982 DES\u3001AES"),(0,a.yg)("li",{parentName:"ol"},"\u4f7f\u7528\u6d41\u5bc6\u7801\u548c\u516c\u94a5\u5bc6\u7801\u7b49\uff1b")),(0,a.yg)("p",null,"\u6d88\u606f\u8ba4\u8bc1\u7801\u65e0\u6cd5\u89e3\u51b3\u7684\u95ee\u9898\uff0c\u5305\u62ec\u201c\u5bf9\u7b2c\u4e09\u65b9\u8bc1\u660e\u201d\u548c\u201c\u9632\u6b62\u5426\u8ba4\u201d\u3002"),(0,a.yg)("h3",{id:"\u6570\u5b57\u7b7e\u540d-\u6d88\u606f\u5230\u5e95\u662f\u8c01\u5199\u7684"},"\u6570\u5b57\u7b7e\u540d-\u6d88\u606f\u5230\u5e95\u662f\u8c01\u5199\u7684\u3002"),(0,a.yg)("p",null,"\u6570\u5b57\u7b7e\u540d\u662f\u4e00\u79cd\u5c06\u76f8\u5f53\u4e8e\u73b0\u5b9e\u4e16\u754c\u4e2d\u7684\u7b7e\u7ae0\u3001\u7b7e\u5b57\u7684\u529f\u80fd\u5728\u8ba1\u7b97\u673a\u4e16\u754c\u4e2d\u8fdb\u884c\u5b9e\u73b0\u7684\u6280\u672f\u3002\u4f7f\u7528\u6570\u5b57\u7b7e\u540d\u53ef\u4ee5\u8bc6\u522b\u7be1\u6539\u548c\u4f2a\u88c5\uff0c\u8fd8\u53ef\u9632\u6b62\u5426\u8ba4\u3002"),(0,a.yg)("p",null,"\u5b9e\u9645\u4e0a\uff0c\u6570\u5b57\u7b7e\u540d\u548c\u516c\u94a5\u5bc6\u7801\u6709\u7740\u975e\u5e38\u7d27\u5bc6\u7684\u8054\u7cfb\uff0c\u7b80\u800c\u8a00\u4e4b\uff0c\u6570\u5b57\u7b7e\u540d\u5c31\u662f\u901a\u8fc7\u8bb2\u516c\u94a5\u5bc6\u7801\u201c\u53cd\u8fc7\u6765\u7528\u201d\u800c\u5b9e\u73b0\u7684\u3002"),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"image.png",src:n(8184).A,width:"1946",height:"486"})),(0,a.yg)("p",null,"\u6570\u5b57\u7b7e\u540d\u7684\u4f5c\u7528\u672c\u6765\u5c31\u4e0d\u662f\u4fdd\u8bc1\u673a\u5bc6\u6027\u7684\uff0c\u800c\u662f\u88ab\u7528\u4e8e\u4ee3\u8868\u4e00\u79cd\u53ea\u6709\u6301\u6709\u8be5\u79d8\u94a5\u7684\u4eba\u624d\u80fd\u591f\u751f\u6210\u4fe1\u606f\u3002"),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"image.png",src:n(3795).A,width:"750",height:"383"})),(0,a.yg)("p",null,"\u5bf9\u79f0\u5bc6\u7801\u7684\u79d8\u94a5\u662f\u673a\u5bc6\u6027\u7684\u7cbe\u534e\uff0c\u5355\u5411\u6563\u5217\u51fd\u6570\u7684\u6563\u5217\u503c\u662f\u5b8c\u6574\u6027\u7684\u7cbe\u534e\u3002"),(0,a.yg)("h3",{id:"\u8bc1\u4e66-\u4e3a\u516c\u94a5\u52a0\u4e0a\u6570\u5b57\u7b7e\u540d"},"\u8bc1\u4e66-\u4e3a\u516c\u94a5\u52a0\u4e0a\u6570\u5b57\u7b7e\u540d"),(0,a.yg)("p",null,"\u8bc1\u4e66\u662f\u7531\u8ba4\u8bc1\u673a\u6784\u9881\u53d1\u7684\uff0c\u4f7f\u7528\u8005\u9700\u8981\u5bf9\u8bc1\u4e66\u8fdb\u884c\u9a8c\u8bc1\uff0c\u56e0\u6b64\u5982\u679c\u8bc1\u4e66\u7684\u683c\u5f0f\u5343\u5947\u767e\u602a\u90a3\u5c31\u4e0d\u65b9\u4fbf\u4e86\uff0c\u4e8e\u662f\uff0c\u4eba\u4eec\u5236\u5b9a\u4e86\u8bc1\u4e66\u7684\u6807\u51c6\u89c4\u8303\uff0c\u4f7f\u7528\u6700\u5e7f\u6cdb\u7684\u662f X.509 \u89c4\u8303\u3002"),(0,a.yg)("p",null,"\u516c\u94a5\u57fa\u7840\u8bbe\u65bd PKI \u662f\u4e3a\u4e86\u80fd\u591f\u6709\u6548\u5730\u8fd0\u7528\u516c\u94a5\u800c\u5236\u5b9a\u7684\u4e00\u4e9b\u5217\u89c4\u8303\u548c\u89c4\u683c\u7684\u603b\u79f0\u3002\u516c\u94a5\u57fa\u7840\u8bbe\u65bd\u4e00\u822c\u6839\u636e\u5176\u5e94\u7528\u7f29\u5199\u800c\u7b80\u79f0\u4e3a PKI\u3002"),(0,a.yg)("p",null,"\u8bf7\u8bb0\u4f4f\uff0c\u4f7f\u7528\u516c\u5f00\u7684\u6280\u672f\u548c\u628a\u81ea\u5df1\u7684\u6280\u672f\u516c\u5f00\u662f\u4e24\u7801\u4e8b\u3002\u91c7\u7528\u5df2\u7ecf\u516c\u5f00\u7684\uff0c\u5e76\u79ef\u7d2f\u4e86\u5927\u91cf\u6210\u679c\u7684\u6280\u672f\u662f\u6b63\u786e\u7684\u51b3\u5b9a\uff0c\u7136\u800c\u5e76\u4e0d\u9700\u8981\u5c06\u81ea\u5df1\u516c\u53f8\u6240\u91c7\u7528\u7684\u6280\u672f\u4e0a\u7684\u7ec6\u8282\u516c\u5f00\u51fa\u6765\u3002\u6211\u4eec\u62ff\u5458\u5de5\u8bbf\u95ee\u516c\u53f8\u5185\u90e8\u7f51\u7edc\u7684\u65b9\u6cd5\u4e3a\u4f8b\u3002\u9a8c\u8bc1\u5458\u5de5\u7684\u5408\u6cd5\u8eab\u4efd\u53ef\u4ee5\u91c7\u7528\u516c\u5f00\u7684\uff0c\u79ef\u7d2f\u4e86\u5927\u91cf\u6210\u679c\u7684\u6280\u672f\uff0c\u4f46\u662f\u6211\u4eec\u5e76\u4e0d\u9700\u8981\u5c06\u8fd9\u4e9b\u7ec6\u8282\u516c\u5f00\u51fa\u6765\uff0c\u800c\u662f\u53ea\u8981\u544a\u8bc9\u76f8\u5173\u7684\u5458\u5de5\u5c31\u53ef\u4ee5\u4e86\u3002\u8fd9\u6837\u6211\u4eec\u5c31\u53ef\u4ee5\u5c06\u81ea\u5df1\u7684\u98ce\u9669\u63a7\u5236\u5230\u6700\u5c0f\uff0c\u4e07\u4e00\u6709\u4eba\u6076\u610f\u8bb2\u6280\u672f\u7684\u8be6\u7ec6\u4fe1\u606f\u516c\u5f00\u51fa\u6765\uff0c\u4e5f\u4e0d\u4f1a\u4ea7\u751f\u4e25\u91cd\u7684\u95ee\u9898\uff0c\u56e0\u4e3a\u6211\u4eec\u6240\u4f7f\u7528\u7684\u6280\u672f\u539f\u672c\u5c31\u662f\u516c\u5f00\u7684\u3002\u53cd\u8fc7\u6765\u8bf4\uff0c\u5982\u679c\u6211\u4eec\u4f7f\u7528\u7684\u6280\u672f\u662f\u4f9d\u9760\u5bf9\u7ec6\u8282\u7684\u4fdd\u5bc6\u6765\u4fdd\u8bc1\u5b89\u5168\u7684\uff0c\u90a3\u4e48\u4e00\u65e6\u6709\u4eba\u6076\u610f\u6cc4\u6f0f\u6280\u672f\u7ec6\u8282\uff0c\u5c31\u4f1a\u9020\u6210\u4e25\u91cd\u7684\u95ee\u9898\u3002"),(0,a.yg)("p",null,"\u6709\u9650\u7fa4\u7684\u79bb\u6563\u5bf9\u6570\u95ee\u9898\u7684\u590d\u6742\u5ea6\u6b63\u5f0f\u652f\u6491 Diffie-Hellman \u79d8\u94a5\u4ea4\u6362\u7b97\u6cd5\u7684\u57fa\u7840\u3002"),(0,a.yg)("h3",{id:"\u968f\u673a\u6570-\u4e0d\u53ef\u9884\u6d4b\u6027\u7684\u6e90\u6cc9"},"\u968f\u673a\u6570-\u4e0d\u53ef\u9884\u6d4b\u6027\u7684\u6e90\u6cc9"),(0,a.yg)("p",null,"\u6211\u4eec\u5c06\u968f\u673a\u6570\u7684\u6027\u8d28\u5206\u4e3a\u4ee5\u4e0b\u4e09\u7c7b\uff1a"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"\u968f\u673a\u6027\uff0c\u4e0d\u5b58\u5728\u7edf\u8ba1\u5b66\u504f\u5dee\uff0c\u662f\u5b8c\u5168\u6742\u4e71\u7684\u6570\u5217\uff1b"),(0,a.yg)("li",{parentName:"ol"},"\u4e0d\u53ef\u9884\u6d4b\u6027\uff0c\u4e0d\u80fd\u4ece\u8fc7\u53bb\u7684\u6570\u5217\u63a8\u6d4b\u51fa\u4e0b\u4e00\u4e2a\u51fa\u73b0\u7684\u6570\uff1b"),(0,a.yg)("li",{parentName:"ol"},"\u4e0d\u53ef\u91cd\u73b0\u6027\uff0c\u9664\u975e\u5c06\u6570\u5217\u672c\u8eab\u4fdd\u5b58\u4e0b\u6765\uff0c\u5426\u5219\u4e0d\u80fd\u91cd\u73b0\u76f8\u540c\u7684\u6570\u5217\uff1b")),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"image.png",src:n(1882).A,width:"750",height:"474"})),(0,a.yg)("p",null,"\u4ec5\u9760\u8f6f\u4ef6\u662f\u65e0\u6cd5\u751f\u6210\u51fa\u5177\u5907\u4e0d\u53ef\u91cd\u73b0\u6027\u7684\u968f\u673a\u6570\u5217\u7684\u3002\u8f6f\u4ef6\u53ea\u80fd\u751f\u6210\u4f2a\u968f\u673a\u6570\u5217\uff0c\u8fd9\u662f\u56e0\u4e3a\u8fd0\u884c\u8f6f\u4ef6\u7684\u8ba1\u7b97\u673a\u672c\u8eab\u5177\u5907\u4f18\u5148\u7684\u5185\u90e8\u72b6\u6001\u3002\u800c\u5728\u5185\u90e8\u72b6\u6001\u76f8\u540c\u7684\u6761\u4ef6\u4e0b\uff0c\u8f6f\u4ef6\u5fc5\u7136\u53ea\u80fd\u751f\u6210\u76f8\u540c\u7684\u6570\uff0c\u56e0\u4e3a\u8f6f\u4ef6\u6240\u751f\u6210\u7684\u6570\u5217\u5728\u67d0\u4e2a\u65f6\u523b\u4e00\u5b9a\u4f1a\u51fa\u73b0\u91cd\u590d\u3002\u9996\u6b21\u51fa\u73b0\u91cd\u590d\u4e4b\u524d\u7684\u6570\u5217\u957f\u5ea6\u79f0\u4e3a\u5468\u671f\uff0c\u5bf9\u4e8e\u8f6f\u4ef6\u6240\u751f\u6210\u7684\u6570\u5217\uff0c\u5176\u5468\u671f\u5fc5\u5b9a\u662f\u6709\u9650\u7684\u3002\u5f53\u7136\uff0c\u8fd9\u4e2a\u5468\u671f\u53ef\u80fd\u4f1a\u5f88\u957f\uff0c\u4f46\u603b\u5f52\u662f\u6709\u9650\u7684\u3002\u51e1\u662f\u5177\u6709\u5468\u671f\u7684\u6570\u5217\uff0c\u90fd\u4e0d\u5177\u5907\u4e0d\u53ef\u91cd\u73b0\u6027\u3002"),(0,a.yg)("p",null,"\u968f\u673a\u6570\u53ef\u4ee5\u901a\u8fc7\u786c\u4ef6\u6765\u751f\u6210\uff0c\u4e5f\u53ef\u4ee5\u901a\u8fc7\u8f6f\u4ef6\u6765\u751f\u6210\u3002\n\u901a\u8fc7\u786c\u4ef6\u751f\u6210\u7684\u968f\u673a\u6570\u5217\uff0c\u662f\u6839\u636e\u4f20\u611f\u5668\u6536\u96c6\u7684\u70ed\u91cf\u3001\u58f0\u97f3\u7684\u53d8\u5316\u7b49\u4e8b\u5b9e\u4e0a\u65e0\u6cd5\u9884\u6d4b\u548c\u91cd\u73b0\u7684\u81ea\u7136\u73b0\u8c61\u4fe1\u606f\u6765\u751f\u6210\u7684\u3002\u50cf\u8fd9\u6837\u7684\u786c\u4ef6\u8bbe\u5907\u5c31\u6210\u4e3a\u968f\u673a\u6570\u751f\u6210\u5668\u3002\n\u800c\u53ef\u4ee5\u751f\u6210\u968f\u673a\u6570\u7684\u8f6f\u4ef6\u5219\u79f0\u4e3a\u4f2a\u968f\u673a\u6570\u751f\u6210\u5668\u3002\u56e0\u4e3a\u4ec5\u9760\u8f6f\u4ef6\u65e0\u6cd5\u751f\u6210\u771f\u968f\u673a\u6570\uff0c\u56e0\u6b64\u8981\u52a0\u4e0a\u4e00\u4e2a\u4f2a\u5b57\u3002"),(0,a.yg)("p",null,"\u4e00\u4e9b\u5177\u4f53\u7684\u4f2a\u968f\u673a\u6570\u751f\u6210\u5668\uff1a"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"\u4e71\u6765\u7684\u65b9\u6cd5\uff0c\u4e0d\u884c\uff0c\u4e0d\u5177\u5907\u4e0d\u53ef\u9884\u6d4b\u6027\uff1b"),(0,a.yg)("li",{parentName:"ol"},"\u7ebf\u6027\u540c\u4f59\u6cd5\uff0c\u662f\u4e00\u79cd\u5e94\u7528\u975e\u5e38\u5e7f\u6cdb\u7684\u4f2a\u968f\u673a\u6570\u751f\u6210\u5668\u7b97\u6cd5\uff0c\u5f88\u591a\u9884\u7814\u7684\u968f\u673a\u6570\u51fd\u6570\u90fd\u662f\u7528\u7684\u4ed6\uff0c\u4f8b\u5982 js\u3001java\uff0c\u7136\u800c\u4ed6\u4e0d\u80fd\u7528\u4e8e\u5bc6\u7801\u6280\u672f\u3002\u4e0d\u5177\u5907\u4e0d\u53ef\u9884\u6d4b\u6027\uff1b"),(0,a.yg)("li",{parentName:"ol"},"\u5355\u5411\u6563\u5217\u51fd\u6570\u6cd5\uff0c\u5177\u5907\u4e0d\u53ef\u9884\u6d4b\u6027\uff1b"),(0,a.yg)("li",{parentName:"ol"},"\u5bc6\u7801\u6cd5\uff0c\u5177\u5907\u4e0d\u53ef\u9884\u6d4b\u6027\uff0c\u65e2\u53ef\u4ee5\u4f7f\u7528 AES \u7b49\u5bf9\u79f0\u5bc6\u7801\uff0c\u4e5f\u53ef\u4ee5\u4f7f\u7528 RSA \u7b49\u516c\u94a5\u5bc6\u7801\uff1b")),(0,a.yg)("p",null,"\u4f2a\u968f\u673a\u6570\u7684\u79cd\u5b50\u548c\u5bc6\u7801\u7684\u79d8\u94a5\u540c\u7b49\u91cd\u8981\u3002\u5982\u679c\u653b\u51fb\u8005\u77e5\u9053\u4e86\u4f2a\u968f\u673a\u6570\u7684\u79cd\u5b50\uff0c\u90a3\u4e48\u4ed6\u5c31\u80fd\u591f\u77e5\u9053\u8fd9\u4e2a\u4f2a\u968f\u673a\u6570\u751f\u6210\u5668\u6240\u751f\u6210\u7684\u5168\u90e8\u4f2a\u968f\u673a\u6570\u6570\u5217\u3002\u56e0\u4e3a\u4f2a\u968f\u673a\u6570\u7684\u79cd\u5b50\u4e0d\u53ef\u80fd\u88ab\u653b\u51fb\u8005\u77e5\u9053\u3002\u8981\u907f\u514d\u79cd\u5b50\u88ab\u653b\u51fb\u8005\u77e5\u9053\uff0c\u6211\u4eec\u9700\u8981\u4f7f\u7528\u5177\u5907\u4e0d\u53ef\u91cd\u73b0\u6027\u7684\u771f\u968f\u673a\u6570\u4f5c\u4e3a\u79cd\u5b50\u3002"),(0,a.yg)("p",null,"PGP-\u5bc6\u7801\u6280\u672f\u7684\u5b8c\u7f8e\u7ec4\u5408"),(0,a.yg)("h3",{id:"ssltls"},"SSL/TLS"),(0,a.yg)("p",null,"\u4e3a\u4e86\u66f4\u5b89\u5168\u7684\u901a\u4fe1\uff0c\u662f\u4e16\u754c\u4e0a\u5e94\u7528\u6700\u5e7f\u6cdb\u7684\u5bc6\u7801\u901a\u4fe1\u65b9\u6cd5\u3002"),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"image.png",src:n(9005).A,width:"750",height:"725"})))}c.isMDXComponent=!0},830:(e,l,n)=>{n.d(l,{A:()=>t});const t=n.p+"assets/images/3-1cd22ce575e5572824bd4c8ad4099377.png"},9313:(e,l,n)=>{n.d(l,{A:()=>t});const t=n.p+"assets/images/4-b7ba21080fe3004db7495ee55cbcf227.png"},8184:(e,l,n)=>{n.d(l,{A:()=>t});const t=n.p+"assets/images/5-180f1157571f0dc0cd0daf2b1fe5c9c4.png"},3795:(e,l,n)=>{n.d(l,{A:()=>t});const t=n.p+"assets/images/6-04cf67c1d3f54bc82262926c7e27388d.png"},1882:(e,l,n)=>{n.d(l,{A:()=>t});const t=n.p+"assets/images/7-88db62490bde176557c35427f36fc908.png"},9005:(e,l,n)=>{n.d(l,{A:()=>t});const t=n.p+"assets/images/8-699fd9ac60c91e226b2029ed1e184f2c.png"},6954:(e,l,n)=>{n.d(l,{A:()=>t});const t=n.p+"assets/images/model-694c6958c5a4ee8c940e3b4236a68518.png"},7539:(e,l,n)=>{n.d(l,{A:()=>t});const t=n.p+"assets/images/tool-d0ca9efb9b22f41c3fd8b98e6420074a.png"}}]); \ No newline at end of file diff --git a/assets/js/817aa27b.b523675b.js b/assets/js/817aa27b.7871b478.js similarity index 99% rename from assets/js/817aa27b.b523675b.js rename to assets/js/817aa27b.7871b478.js index 567b97ef0..24264eb79 100644 --- a/assets/js/817aa27b.b523675b.js +++ b/assets/js/817aa27b.7871b478.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4632],{5680:(e,n,o)=>{o.d(n,{xA:()=>p,yg:()=>s});var t=o(6540);function l(e,n,o){return n in e?Object.defineProperty(e,n,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[n]=o,e}function a(e,n){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n&&(t=t.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),o.push.apply(o,t)}return o}function r(e){for(var n=1;n=0||(l[o]=e[o]);return l}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(l[o]=e[o])}return l}var g=t.createContext({}),u=function(e){var n=t.useContext(g),o=n;return e&&(o="function"==typeof e?e(n):r(r({},n),e)),o},p=function(e){var n=u(e.components);return t.createElement(g.Provider,{value:n},e.children)},d="mdxType",c={inlineCode:"code",wrapper:function(e){var n=e.children;return t.createElement(t.Fragment,{},n)}},y=t.forwardRef((function(e,n){var o=e.components,l=e.mdxType,a=e.originalType,g=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),d=u(o),y=l,s=d["".concat(g,".").concat(y)]||d[y]||c[y]||a;return o?t.createElement(s,r(r({ref:n},p),{},{components:o})):t.createElement(s,r({ref:n},p))}));function s(e,n){var o=arguments,l=n&&n.mdxType;if("string"==typeof e||l){var a=o.length,r=new Array(a);r[0]=y;var i={};for(var g in n)hasOwnProperty.call(n,g)&&(i[g]=n[g]);i.originalType=e,i[d]="string"==typeof e?e:l,r[1]=i;for(var u=2;u{o.r(n),o.d(n,{assets:()=>g,contentTitle:()=>r,default:()=>c,frontMatter:()=>a,metadata:()=>i,toc:()=>u});var t=o(8168),l=(o(6540),o(5680));const a={},r=void 0,i={unversionedId:"study/db/NoSQL/MongoDB",id:"study/db/NoSQL/MongoDB",title:"MongoDB",description:"MongoDB",source:"@site/docs/study/db/NoSQL/MongoDB.md",sourceDirName:"study/db/NoSQL",slug:"/study/db/NoSQL/MongoDB",permalink:"/docs/study/db/NoSQL/MongoDB",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Ignite",permalink:"/docs/study/db/NoSQL/Ignite"},next:{title:"Redis",permalink:"/docs/study/db/NoSQL/Redis"}},g={},u=[{value:"MongoDB",id:"mongodb",level:3},{value:"\u6587\u6863\u6570\u636e\u5e93",id:"\u6587\u6863\u6570\u636e\u5e93",level:3},{value:"\u9002\u7528\u573a\u666f",id:"\u9002\u7528\u573a\u666f",level:3},{value:"\u4e0d\u9002\u7528\u573a\u666f",id:"\u4e0d\u9002\u7528\u573a\u666f",level:3},{value:"\u6982\u5ff5",id:"\u6982\u5ff5",level:3},{value:"db",id:"db",level:4},{value:"collection",id:"collection",level:4},{value:"document",id:"document",level:4},{value:"\u96c6\u7fa4\u6982\u5ff5",id:"\u96c6\u7fa4\u6982\u5ff5",level:3},{value:"mongostat",id:"mongostat",level:3},{value:"mongotop",id:"mongotop",level:3},{value:"\u5907\u4efd/\u6062\u590d",id:"\u5907\u4efd\u6062\u590d",level:3},{value:"\u5206\u9875\u67e5\u8be2",id:"\u5206\u9875\u67e5\u8be2",level:3},{value:"\u65b9\u6848\u4e00",id:"\u65b9\u6848\u4e00",level:4},{value:"\u65b9\u6848\u4e8c",id:"\u65b9\u6848\u4e8c",level:4},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],p={toc:u},d="wrapper";function c(e){let{components:n,...o}=e;return(0,l.yg)(d,(0,t.A)({},p,o,{components:n,mdxType:"MDXLayout"}),(0,l.yg)("h3",{id:"mongodb"},"MongoDB"),(0,l.yg)("p",null,"MongoDB\u662f\u4e00\u4e2a\u4ecb\u4e8e\u5173\u7cfb\u6570\u636e\u5e93\u548c\u975e\u5173\u7cfb\u6570\u636e\u5e93\u4e4b\u95f4\u7684\u4ea7\u54c1\uff0c\u662f\u975e\u5173\u7cfb\u6570\u636e\u5e93\u5f53\u4e2d\u529f\u80fd\u6700\u4e30\u5bcc\uff0c\u6700\u50cf\u5173\u7cfb\u6570\u636e\u5e93\u7684\u3002\u4ed6\u652f\u6301\u7684\u6570\u636e\u7ed3\u6784\u975e\u5e38\u677e\u6563\uff0c\u662f\u7c7b\u4f3cjson\u7684bson\u683c\u5f0f\uff0c\u56e0\u6b64\u53ef\u4ee5\u5b58\u50a8\u6bd4\u8f83\u590d\u6742\u7684\u6570\u636e\u7c7b\u578b\u3002Mongo\u6700\u5927\u7684\u7279\u70b9\u662f\u4ed6\u652f\u6301\u7684\u67e5\u8be2\u8bed\u8a00\u975e\u5e38\u5f3a\u5927\uff0c\u5176\u8bed\u6cd5\u6709\u70b9\u7c7b\u4f3c\u4e8e\u9762\u5411\u5bf9\u8c61\u7684\u67e5\u8be2\u8bed\u8a00\uff0c\u51e0\u4e4e\u53ef\u4ee5\u5b9e\u73b0\u7c7b\u4f3c\u5173\u7cfb\u6570\u636e\u5e93\u5355\u8868\u67e5\u8be2\u7684\u7edd\u5927\u90e8\u5206\u529f\u80fd\uff0c\u800c\u4e14\u8fd8\u652f\u6301\u5bf9\u6570\u636e\u5efa\u7acb\u7d22\u5f15\u3002"),(0,l.yg)("p",null,"Mongo\u662f\u4e00\u4e2a\u9ad8\u6027\u80fd\uff0c\u5f00\u6e90\uff0c\u65e0\u6a21\u5f0f\u7684\u6587\u6863\u578b\u6570\u636e\u5e93\uff0c\u5b83\u5728\u8bb8\u591a\u573a\u666f\u4e0b\u53ef\u7528\u4e8e\u66ff\u4ee3\u4f20\u7edf\u7684\u5173\u7cfb\u578b\u6570\u636e\u5e93\u6216\u952e/\u503c\u5b58\u50a8\u65b9\u5f0f\u3002"),(0,l.yg)("p",null,"MongoDB Version4+\u5f00\u59cb\u539f\u751f\u652f\u6301\u4e8b\u52a1\uff1b\u8c8c\u4f3c\u53ef\u4ee5\u66ff\u6362\u5173\u7cfb\u6570\u636e\u5e93\uff0c\u4f46\u662f\u8fd9\u80fd\u884c\u4e48\uff1f",(0,l.yg)("a",{parentName:"p",href:"https://www.cnblogs.com/ExMan/p/9565125.html"},"\u5343\u4e07\u522b\u7528MongoDB\uff1f\u771f\u7684\u5417\uff1f\uff01")," \xa0\u6211\u5bf9\u6b64\u6301\u4fdd\u7559\u610f\u89c1\u3002"),(0,l.yg)("p",null,(0,l.yg)("strong",{parentName:"p"},"\u4e0d\u8981\u4e3a\u4e86\u4f7f\u7528MongoDB\u800c\u4f7f\u7528MongoDB\uff0c\u4e00\u5b9a\u8981\u597d\u597d\u5206\u6790\uff0c\u4e3b\u8981\u7cbe\u529b\u5e94\u8be5\u653e\u5728\u4f7f\u7528Msql\u7b49\u5173\u7cfb\u578b\u6570\u636e\u5e93\u4e0a\uff0c\u5f53\u5173\u7cfb\u578b\u6570\u636e\u5e93\u662f\u5728\u65e0\u6cd5\u6ee1\u8db3\u6216\u8005\u5b9e\u73b0\u8f83\u590d\u6742\u65f6\uff0c\u518d\u53bb\u8003\u8651\u8fd9\u4e2a\u7ec6\u5206\u573a\u666fMongoDB\u662f\u5426\u5408\u9002\u3002")),(0,l.yg)("h3",{id:"\u6587\u6863\u6570\u636e\u5e93"},"\u6587\u6863\u6570\u636e\u5e93"),(0,l.yg)("p",null,"\u4e3a\u4e86\u89e3\u51b3\u5173\u7cfb\u6570\u636e\u5e93 schema \u5e26\u6765\u7684\u95ee\u9898\uff0c\u6587\u6863\u6570\u636e\u5e93\u5e94\u8fd0\u800c\u751f\u3002\u6587\u6863\u6570\u636e\u5e93\u6700\u5927\u7684\u7279\u70b9\u5c31\u662f no-schema\uff0c\u53ef\u4ee5\u5b58\u50a8\u548c\u8bfb\u53d6\u4efb\u610f\u7684\u6570\u636e\u3002\u76ee\u524d\u7edd\u5927\u90e8\u5206\u6587\u6863\u6570\u636e\u5e93\u5b58\u50a8\u7684\u6570\u636e\u683c\u5f0f\u662f JSON\uff08\u6216\u8005 BSON\uff09\uff0c\u56e0\u4e3a JSON \u6570\u636e\u662f\u81ea\u63cf\u8ff0\u7684\uff0c\u65e0\u987b\u5728\u4f7f\u7528\u524d\u5b9a\u4e49\u5b57\u6bb5\uff0c\u8bfb\u53d6\u4e00\u4e2a JSON \u4e2d\u4e0d\u5b58\u5728\u7684\u5b57\u6bb5\u4e5f\u4e0d\u4f1a\u5bfc\u81f4 SQL \u90a3\u6837\u7684\u8bed\u6cd5\u9519\u8bef\u3002"),(0,l.yg)("p",null,"\u6587\u6863\u6570\u636e\u5e93\u7684 no-schema \u7279\u6027\uff0c\u7ed9\u4e1a\u52a1\u5f00\u53d1\u5e26\u6765\u4e86\u51e0\u4e2a\u660e\u663e\u7684\u4f18\u52bf\u3002"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u65b0\u589e\u5b57\u6bb5\u7b80\u5355"),(0,l.yg)("li",{parentName:"ul"},"\u5386\u53f2\u6570\u636e\u4e0d\u4f1a\u51fa\u9519"),(0,l.yg)("li",{parentName:"ul"},"\u53ef\u4ee5\u5f88\u5bb9\u6613\u5b58\u50a8\u590d\u6742\u6570\u636e")),(0,l.yg)("p",null,"\u6587\u6863\u6570\u636e\u5e93 no-schema \u7684\u7279\u6027\u5e26\u6765\u7684\u8fd9\u4e9b\u4f18\u52bf\u4e5f\u662f\u6709\u4ee3\u4ef7\u7684\uff0c\u6700\u4e3b\u8981\u7684\u4ee3\u4ef7\u5c31\u662f\u4e0d\u652f\u6301\u4e8b\u52a1\u3002\u6587\u6863\u6570\u636e\u5e93\u53e6\u5916\u4e00\u4e2a\u7f3a\u70b9\u5c31\u662f\u65e0\u6cd5\u5b9e\u73b0\u5173\u7cfb\u6570\u636e\u5e93\u7684 join \u64cd\u4f5c\u3002"),(0,l.yg)("h3",{id:"\u9002\u7528\u573a\u666f"},"\u9002\u7528\u573a\u666f"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u7f51\u7ad9\u5b9e\u65f6\u6570\u636e\u5904\u7406\u3002\u5b83\u975e\u5e38\u9002\u5408\u5b9e\u65f6\u7684\u63d2\u5165\u3001\u66f4\u65b0\u4e0e\u67e5\u8be2\uff0c\u5e76\u5177\u5907\u7f51\u7ad9\u5b9e\u65f6\u6570\u636e\u5b58\u50a8\u6240\u9700\u7684\u590d\u5236\u53ca\u9ad8\u5ea6\u4f38\u7f29\u6027\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u7f13\u5b58\u3002\u7531\u4e8e\u6027\u80fd\u5f88\u9ad8\uff0c\u5b83\u9002\u5408\u4f5c\u4e3a\u4fe1\u606f\u57fa\u7840\u8bbe\u65bd\u7684\u7f13\u5b58\u5c42\u3002\u5728\u7cfb\u7edf\u91cd\u542f\u4e4b\u540e\uff0c\u7531\u5b83\u642d\u5efa\u7684\u6301\u4e45\u5316\u7f13\u5b58\u5c42\u53ef\u4ee5\u907f\u514d\u4e0b\u5c42\u7684\u6570\u636e\u6e90\u8fc7\u8f7d\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u9ad8\u4f38\u7f29\u6027\u9ad8\u53ef\u7528\u7684\u573a\u666f\u3002MongoDB\u4f7f\u7528\u5206\u7247\u6c34\u5e73\u7f29\u653e\uff0c\u5e76\u4e14\u53ef\u4ee5\u8fd0\u884c\u5728\u591a\u4e2a\u670d\u52a1\u5668\u4e0a\uff0c\u5e73\u8861\u8d1f\u8f7d\u6216\u590d\u5236\u6570\u636e\uff0c\u4ee5\u4fbf\u5728\u786c\u4ef6\u51fa\u73b0\u6545\u969c\u65f6\u4fdd\u6301\u7cfb\u7edf\u6b63\u5e38\u8fd0\u884c\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u6d77\u91cf\u6570\u636e\u3002")),(0,l.yg)("h3",{id:"\u4e0d\u9002\u7528\u573a\u666f"},"\u4e0d\u9002\u7528\u573a\u666f"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u8981\u6c42\u9ad8\u5ea6\u4e8b\u52a1\u6027\u7684\u7cfb\u7edf\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u4f20\u7edf\u7684\u5546\u4e1a\u667a\u80fd\u5e94\u7528\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u590d\u6742\u7684\u8de8\u6587\u6863\uff08\u8868\uff09\u7ea7\u8054\u67e5\u8be2\u3002")),(0,l.yg)("h3",{id:"\u6982\u5ff5"},"\u6982\u5ff5"),(0,l.yg)("h4",{id:"db"},"db"),(0,l.yg)("p",null,"\u6709\u4e00\u4e9b\u6570\u636e\u5e93\u540d\u662f\u4fdd\u7559\u7684\uff0c\u53ef\u4ee5\u76f4\u63a5\u8bbf\u95ee\u8fd9\u4e9b\u6709\u7279\u6b8a\u4f5c\u7528\u7684\u6570\u636e\u5e93\u3002"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("strong",{parentName:"li"},"admin"),'\uff1a \u4ece\u6743\u9650\u7684\u89d2\u5ea6\u6765\u770b\uff0c\u8fd9\u662f"root"\u6570\u636e\u5e93\u3002\u8981\u662f\u5c06\u4e00\u4e2a\u7528\u6237\u6dfb\u52a0\u5230\u8fd9\u4e2a\u6570\u636e\u5e93\uff0c\u8fd9\u4e2a\u7528\u6237\u81ea\u52a8\u7ee7\u627f\u6240\u6709\u6570\u636e\u5e93\u7684\u6743\u9650\u3002\u4e00\u4e9b\u7279\u5b9a\u7684\u670d\u52a1\u5668\u7aef\u547d\u4ee4\u4e5f\u53ea\u80fd\u4ece\u8fd9\u4e2a\u6570\u636e\u5e93\u8fd0\u884c\uff0c\u6bd4\u5982\u5217\u51fa\u6240\u6709\u7684\u6570\u636e\u5e93\u6216\u8005\u5173\u95ed\u670d\u52a1\u5668\u3002'),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("strong",{parentName:"li"},"local:")," \u8fd9\u4e2a\u6570\u636e\u6c38\u8fdc\u4e0d\u4f1a\u88ab\u590d\u5236\uff0c\u53ef\u4ee5\u7528\u6765\u5b58\u50a8\u9650\u4e8e\u672c\u5730\u5355\u53f0\u670d\u52a1\u5668\u7684\u4efb\u610f\u96c6\u5408"),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("strong",{parentName:"li"},"config"),": \u5f53Mongo\u7528\u4e8e\u5206\u7247\u8bbe\u7f6e\u65f6\uff0cconfig\u6570\u636e\u5e93\u5728\u5185\u90e8\u4f7f\u7528\uff0c\u7528\u4e8e\u4fdd\u5b58\u5206\u7247\u7684\u76f8\u5173\u4fe1\u606f\u3002")),(0,l.yg)("h4",{id:"collection"},"collection"),(0,l.yg)("p",null,"\u6570\u636e\u5e93\u8868/\u96c6\u5408\n\u96c6\u5408\u5c31\u662f MongoDB \u6587\u6863\u7ec4\uff0c\u7c7b\u4f3c\u4e8e RDBMS \uff08\u5173\u7cfb\u6570\u636e\u5e93\u7ba1\u7406\u7cfb\u7edf\uff1aRelational Database Management System)\u4e2d\u7684\u8868\u683c\u3002\n\u96c6\u5408\u5b58\u5728\u4e8e\u6570\u636e\u5e93\u4e2d\uff0c\u96c6\u5408\u6ca1\u6709\u56fa\u5b9a\u7684\u7ed3\u6784\uff0c\u8fd9\u610f\u5473\u7740\u4f60\u5728\u5bf9\u96c6\u5408\u53ef\u4ee5\u63d2\u5165\u4e0d\u540c\u683c\u5f0f\u548c\u7c7b\u578b\u7684\u6570\u636e\uff0c\u4f46\u901a\u5e38\u60c5\u51b5\u4e0b\u6211\u4eec\u63d2\u5165\u96c6\u5408\u7684\u6570\u636e\u90fd\u4f1a\u6709\u4e00\u5b9a\u7684\u5173\u8054\u6027\u3002"),(0,l.yg)("h4",{id:"document"},"document"),(0,l.yg)("p",null,"\u6570\u636e\u8bb0\u5f55\u884c/\u6587\u6863\n\u6587\u6863\u662f\u4e00\u7ec4\u952e\u503c(key-value)\u5bf9(\u5373 BSON)\u3002MongoDB \u7684\u6587\u6863\u4e0d\u9700\u8981\u8bbe\u7f6e\u76f8\u540c\u7684\u5b57\u6bb5\uff0c\u5e76\u4e14\u76f8\u540c\u7684\u5b57\u6bb5\u4e0d\u9700\u8981\u76f8\u540c\u7684\u6570\u636e\u7c7b\u578b\uff0c\u8fd9\u4e0e\u5173\u7cfb\u578b\u6570\u636e\u5e93\u6709\u5f88\u5927\u7684\u533a\u522b\uff0c\u4e5f\u662f MongoDB \u975e\u5e38\u7a81\u51fa\u7684\u7279\u70b9\u3002"),(0,l.yg)("h3",{id:"\u96c6\u7fa4\u6982\u5ff5"},"\u96c6\u7fa4\u6982\u5ff5"),(0,l.yg)("p",null,"mongodb\u96c6\u7fa4\u6709\u4e09\u79cd\u6a21\u5f0f\uff0c\u4e3b\u4ece\u6a21\u5f0f\uff0c\u526f\u672c\u96c6\u6a21\u5f0f\u3001sharding\u5206\u7247\u6a21\u5f0f\u3002\u4e3b\u4ece\u6a21\u5f0f\u5b98\u7f51\u4e5f\u4e0d\u518d\u63a8\u8350\u4e0a\u751f\u4ea7\u73af\u5883\uff0c\u4e3b\u8981\u662f\u5b89\u5168\u6027\u592a\u4f4e\u3002\u526f\u672c\u96c6\u548csharding\u6a21\u5f0f\u76ee\u524d\u662f\u7528\u7684\u6700\u5e7f\u7684\u65b9\u6848\uff0c\u901a\u5e38\u8fd92\u79cd\u65b9\u6848\u7684\u9009\u62e9\u901a\u8fc7\u6570\u636e\u91cf\u548c\u5e76\u53d1\u6570\u6765\u6743\u8861\u3002\u5728GB\u7ea7\u522b\u7684\u57fa\u672c\u4e0a\u526f\u672c\u96c6\u65b9\u6848\u53ef\u6ee1\u8db3\uff0cTB\u7ea7\u522b\u6216\u4ee5\u4e0a\u91c7\u7528sharding\u6a21\u5f0f\uff0c\u89e3\u51b3\u5355\u673a\u5bb9\u91cf\u548c\u5355\u673a\u5e76\u53d1\u80fd\u529b\u3002\n\u8fd9\u4e24\u79cd\u65e2\u6709\u81ea\u5df1\u7684\u4f18\u52bf\u4e5f\u6709\u81ea\u5df1\u7684\u7f3a\u70b9\uff0c\u6bd4\u5982sharding\u6a21\u5f0f\u5206\u7247\u8d8a\u591a\uff0c\u6027\u80fd\u81ea\u7136\u4e0b\u964d\u8d8a\u591a\u3002"),(0,l.yg)("p",null,(0,l.yg)("strong",{parentName:"p"},"\u4e0d\u662f\u6240\u7528\u7684\u4f7f\u7528\u573a\u666f\u90fd\u5fc5\u987b\u4e0a\u96c6\u7fa4\uff0c\u8981\u56e0\u5730\u5236\u5b9c\u3002")),(0,l.yg)("h3",{id:"mongostat"},"mongostat"),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-shell"},"#\nmongostat -u admin -p Aa0123 --authenticationDatabase=admin\n")),(0,l.yg)("h3",{id:"mongotop"},"mongotop"),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-shell"},"#\nmongotop -u admin -p Aa0123 --authenticationDatabase=admin\n")),(0,l.yg)("h3",{id:"\u5907\u4efd\u6062\u590d"},"\u5907\u4efd/\u6062\u590d"),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-shell"},"#\u5907\u4efd\u6240\u6709\u8868\nmongodump -h 172.18.92.170 --port 27017 -u \u7528\u6237\u540d -p \u5bc6\u7801 -o /usr/local/mongodb/bak/\n\n#\u6062\u590d\u6240\u6709\u8868\nmongorestore --port 27017 -u \u7528\u6237\u540d -p \u5bc6\u7801 --authenticationDatabase admin /usr/local/mongodb/bak/\n")),(0,l.yg)("h3",{id:"\u5206\u9875\u67e5\u8be2"},"\u5206\u9875\u67e5\u8be2"),(0,l.yg)("p",null,"mongo\u7684\u5206\u9875\u76f8\u5173\u529f\u80fd\u6027\u80fd\u8f83\u5dee\uff0c\u9488\u5bf9\u8fd9\u4e2a\u95ee\u9898\u7ecf\u8fc7\u7814\u7a76\u53d1\u73b0\u5728\u5206\u9875\u4e2dskip\u6570\u503c\u8d8a\u5927\u6027\u80fd\u5c31\u8d8a\u4f4e\uff0c\u7b26\u5408\u6761\u4ef6\u7684\u6570\u636e\u8d8a\u591acount\u6027\u80fd\u5c31\u8d8a\u4f4e\u3002\u9488\u5bf9\u8fd92\u4e2a\u95ee\u9898\u6211\u4eec\u8fdb\u884c\u4e86\u8be6\u7ec6\u7684\u6d4b\u8bd5\uff0c\u5171\u603b\u7ed3\u51fa2\u79cd\u6548\u679c\u4e0d\u9519\u7684\u65b9\u6848\u3002"),(0,l.yg)("h4",{id:"\u65b9\u6848\u4e00"},"\u65b9\u6848\u4e00"),(0,l.yg)("p",null,"\u4f7f\u7528Top N\u7684\u65b9\u5f0f\u9650\u5236\u68c0\u7d22\u6570\u91cf\u6700\u59275000\u6761\uff0c\u4f8b\u5982\u7edf\u8ba1\u7b26\u5408\u6761\u4ef6\u7684\u62a5\u8b66\u8bb0\u5f55\u6761\u6570\uff1a"),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-javascript"},'db.AlarmHistory.find({\n "did": {$in: [\n "10000000000000001000"\n ]},\n "createTime":{ "$gte":1636949672, "$lt":1637381672}\n}).limit(5000).count(true);\n')),(0,l.yg)("p",null,"\u901a\u8fc7limit(5000)\u9650\u5236\u7edf\u8ba1\u6700\u5927\u503c\u5373\u4e3a5000\uff0c\u4ece\u800c\u63d0\u9ad8\u4e86count\u6548\u7387\uff0c\u4f46\u4e5f\u6709\u4e00\u4e9b\u5c40\u9650\u6027\u5c31\u662f\u53ea\u80fd\u7edf\u8ba1\u7b26\u5408\u6761\u4ef6\u7684\u6700\u540e5000\u6761\u6570\u636e\uff0c\u800c\u4e0d\u662f\u7b26\u5408\u6761\u4ef6\u7684\u5168\u90e8\u6570\u636e\u3002"),(0,l.yg)("h4",{id:"\u65b9\u6848\u4e8c"},"\u65b9\u6848\u4e8c"),(0,l.yg)("p",null,"\u901a\u8fc7\u52a0\u8f7d\u66f4\u591a\u7684\u65b9\u5f0f\u5206\u9875\uff0c\u5373\u67e5\u8be2\u4e0b\u4e00\u9875\u65f6\u9700\u8981\u4f20\u9012\u5f53\u524d\u9875\u7684\u6700\u540e\u4e00\u6761\u6570\u636e\u7684\u5e8f\u53f7\uff0c\u8fd9\u6837\u5c31\u7ed5\u8fc7count\u7edf\u8ba1\uff0c\u4f46\u8fd9\u79cd\u65b9\u5f0f\u7684\u5f0a\u7aef\u5728\u4e8e\u9875\u9762\u4e0d\u4f1a\u663e\u793a\u603b\u5171\u591a\u5c11\u6761\u6570\u636e\u3001\u5171\u5206\u591a\u5c11\u9875\u7b49\u6570\u636e\u3002"),(0,l.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},(0,l.yg)("a",{parentName:"li",href:"https://www.runoob.com/mongodb/mongodb-tutorial.html"},"MongoDB\u6559\u7a0b"))))}c.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4632],{5680:(e,n,o)=>{o.d(n,{xA:()=>p,yg:()=>s});var t=o(6540);function l(e,n,o){return n in e?Object.defineProperty(e,n,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[n]=o,e}function a(e,n){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n&&(t=t.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),o.push.apply(o,t)}return o}function r(e){for(var n=1;n=0||(l[o]=e[o]);return l}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(l[o]=e[o])}return l}var g=t.createContext({}),u=function(e){var n=t.useContext(g),o=n;return e&&(o="function"==typeof e?e(n):r(r({},n),e)),o},p=function(e){var n=u(e.components);return t.createElement(g.Provider,{value:n},e.children)},d="mdxType",c={inlineCode:"code",wrapper:function(e){var n=e.children;return t.createElement(t.Fragment,{},n)}},y=t.forwardRef((function(e,n){var o=e.components,l=e.mdxType,a=e.originalType,g=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),d=u(o),y=l,s=d["".concat(g,".").concat(y)]||d[y]||c[y]||a;return o?t.createElement(s,r(r({ref:n},p),{},{components:o})):t.createElement(s,r({ref:n},p))}));function s(e,n){var o=arguments,l=n&&n.mdxType;if("string"==typeof e||l){var a=o.length,r=new Array(a);r[0]=y;var i={};for(var g in n)hasOwnProperty.call(n,g)&&(i[g]=n[g]);i.originalType=e,i[d]="string"==typeof e?e:l,r[1]=i;for(var u=2;u{o.r(n),o.d(n,{assets:()=>g,contentTitle:()=>r,default:()=>c,frontMatter:()=>a,metadata:()=>i,toc:()=>u});var t=o(8168),l=(o(6540),o(5680));const a={},r=void 0,i={unversionedId:"study/db/NoSQL/MongoDB",id:"study/db/NoSQL/MongoDB",title:"MongoDB",description:"MongoDB",source:"@site/docs/study/db/NoSQL/MongoDB.md",sourceDirName:"study/db/NoSQL",slug:"/study/db/NoSQL/MongoDB",permalink:"/docs/study/db/NoSQL/MongoDB",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Ignite",permalink:"/docs/study/db/NoSQL/Ignite"},next:{title:"Redis",permalink:"/docs/study/db/NoSQL/Redis"}},g={},u=[{value:"MongoDB",id:"mongodb",level:3},{value:"\u6587\u6863\u6570\u636e\u5e93",id:"\u6587\u6863\u6570\u636e\u5e93",level:3},{value:"\u9002\u7528\u573a\u666f",id:"\u9002\u7528\u573a\u666f",level:3},{value:"\u4e0d\u9002\u7528\u573a\u666f",id:"\u4e0d\u9002\u7528\u573a\u666f",level:3},{value:"\u6982\u5ff5",id:"\u6982\u5ff5",level:3},{value:"db",id:"db",level:4},{value:"collection",id:"collection",level:4},{value:"document",id:"document",level:4},{value:"\u96c6\u7fa4\u6982\u5ff5",id:"\u96c6\u7fa4\u6982\u5ff5",level:3},{value:"mongostat",id:"mongostat",level:3},{value:"mongotop",id:"mongotop",level:3},{value:"\u5907\u4efd/\u6062\u590d",id:"\u5907\u4efd\u6062\u590d",level:3},{value:"\u5206\u9875\u67e5\u8be2",id:"\u5206\u9875\u67e5\u8be2",level:3},{value:"\u65b9\u6848\u4e00",id:"\u65b9\u6848\u4e00",level:4},{value:"\u65b9\u6848\u4e8c",id:"\u65b9\u6848\u4e8c",level:4},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],p={toc:u},d="wrapper";function c(e){let{components:n,...o}=e;return(0,l.yg)(d,(0,t.A)({},p,o,{components:n,mdxType:"MDXLayout"}),(0,l.yg)("h3",{id:"mongodb"},"MongoDB"),(0,l.yg)("p",null,"MongoDB\u662f\u4e00\u4e2a\u4ecb\u4e8e\u5173\u7cfb\u6570\u636e\u5e93\u548c\u975e\u5173\u7cfb\u6570\u636e\u5e93\u4e4b\u95f4\u7684\u4ea7\u54c1\uff0c\u662f\u975e\u5173\u7cfb\u6570\u636e\u5e93\u5f53\u4e2d\u529f\u80fd\u6700\u4e30\u5bcc\uff0c\u6700\u50cf\u5173\u7cfb\u6570\u636e\u5e93\u7684\u3002\u4ed6\u652f\u6301\u7684\u6570\u636e\u7ed3\u6784\u975e\u5e38\u677e\u6563\uff0c\u662f\u7c7b\u4f3cjson\u7684bson\u683c\u5f0f\uff0c\u56e0\u6b64\u53ef\u4ee5\u5b58\u50a8\u6bd4\u8f83\u590d\u6742\u7684\u6570\u636e\u7c7b\u578b\u3002Mongo\u6700\u5927\u7684\u7279\u70b9\u662f\u4ed6\u652f\u6301\u7684\u67e5\u8be2\u8bed\u8a00\u975e\u5e38\u5f3a\u5927\uff0c\u5176\u8bed\u6cd5\u6709\u70b9\u7c7b\u4f3c\u4e8e\u9762\u5411\u5bf9\u8c61\u7684\u67e5\u8be2\u8bed\u8a00\uff0c\u51e0\u4e4e\u53ef\u4ee5\u5b9e\u73b0\u7c7b\u4f3c\u5173\u7cfb\u6570\u636e\u5e93\u5355\u8868\u67e5\u8be2\u7684\u7edd\u5927\u90e8\u5206\u529f\u80fd\uff0c\u800c\u4e14\u8fd8\u652f\u6301\u5bf9\u6570\u636e\u5efa\u7acb\u7d22\u5f15\u3002"),(0,l.yg)("p",null,"Mongo\u662f\u4e00\u4e2a\u9ad8\u6027\u80fd\uff0c\u5f00\u6e90\uff0c\u65e0\u6a21\u5f0f\u7684\u6587\u6863\u578b\u6570\u636e\u5e93\uff0c\u5b83\u5728\u8bb8\u591a\u573a\u666f\u4e0b\u53ef\u7528\u4e8e\u66ff\u4ee3\u4f20\u7edf\u7684\u5173\u7cfb\u578b\u6570\u636e\u5e93\u6216\u952e/\u503c\u5b58\u50a8\u65b9\u5f0f\u3002"),(0,l.yg)("p",null,"MongoDB Version4+\u5f00\u59cb\u539f\u751f\u652f\u6301\u4e8b\u52a1\uff1b\u8c8c\u4f3c\u53ef\u4ee5\u66ff\u6362\u5173\u7cfb\u6570\u636e\u5e93\uff0c\u4f46\u662f\u8fd9\u80fd\u884c\u4e48\uff1f",(0,l.yg)("a",{parentName:"p",href:"https://www.cnblogs.com/ExMan/p/9565125.html"},"\u5343\u4e07\u522b\u7528MongoDB\uff1f\u771f\u7684\u5417\uff1f\uff01")," \xa0\u6211\u5bf9\u6b64\u6301\u4fdd\u7559\u610f\u89c1\u3002"),(0,l.yg)("p",null,(0,l.yg)("strong",{parentName:"p"},"\u4e0d\u8981\u4e3a\u4e86\u4f7f\u7528MongoDB\u800c\u4f7f\u7528MongoDB\uff0c\u4e00\u5b9a\u8981\u597d\u597d\u5206\u6790\uff0c\u4e3b\u8981\u7cbe\u529b\u5e94\u8be5\u653e\u5728\u4f7f\u7528Msql\u7b49\u5173\u7cfb\u578b\u6570\u636e\u5e93\u4e0a\uff0c\u5f53\u5173\u7cfb\u578b\u6570\u636e\u5e93\u662f\u5728\u65e0\u6cd5\u6ee1\u8db3\u6216\u8005\u5b9e\u73b0\u8f83\u590d\u6742\u65f6\uff0c\u518d\u53bb\u8003\u8651\u8fd9\u4e2a\u7ec6\u5206\u573a\u666fMongoDB\u662f\u5426\u5408\u9002\u3002")),(0,l.yg)("h3",{id:"\u6587\u6863\u6570\u636e\u5e93"},"\u6587\u6863\u6570\u636e\u5e93"),(0,l.yg)("p",null,"\u4e3a\u4e86\u89e3\u51b3\u5173\u7cfb\u6570\u636e\u5e93 schema \u5e26\u6765\u7684\u95ee\u9898\uff0c\u6587\u6863\u6570\u636e\u5e93\u5e94\u8fd0\u800c\u751f\u3002\u6587\u6863\u6570\u636e\u5e93\u6700\u5927\u7684\u7279\u70b9\u5c31\u662f no-schema\uff0c\u53ef\u4ee5\u5b58\u50a8\u548c\u8bfb\u53d6\u4efb\u610f\u7684\u6570\u636e\u3002\u76ee\u524d\u7edd\u5927\u90e8\u5206\u6587\u6863\u6570\u636e\u5e93\u5b58\u50a8\u7684\u6570\u636e\u683c\u5f0f\u662f JSON\uff08\u6216\u8005 BSON\uff09\uff0c\u56e0\u4e3a JSON \u6570\u636e\u662f\u81ea\u63cf\u8ff0\u7684\uff0c\u65e0\u987b\u5728\u4f7f\u7528\u524d\u5b9a\u4e49\u5b57\u6bb5\uff0c\u8bfb\u53d6\u4e00\u4e2a JSON \u4e2d\u4e0d\u5b58\u5728\u7684\u5b57\u6bb5\u4e5f\u4e0d\u4f1a\u5bfc\u81f4 SQL \u90a3\u6837\u7684\u8bed\u6cd5\u9519\u8bef\u3002"),(0,l.yg)("p",null,"\u6587\u6863\u6570\u636e\u5e93\u7684 no-schema \u7279\u6027\uff0c\u7ed9\u4e1a\u52a1\u5f00\u53d1\u5e26\u6765\u4e86\u51e0\u4e2a\u660e\u663e\u7684\u4f18\u52bf\u3002"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u65b0\u589e\u5b57\u6bb5\u7b80\u5355"),(0,l.yg)("li",{parentName:"ul"},"\u5386\u53f2\u6570\u636e\u4e0d\u4f1a\u51fa\u9519"),(0,l.yg)("li",{parentName:"ul"},"\u53ef\u4ee5\u5f88\u5bb9\u6613\u5b58\u50a8\u590d\u6742\u6570\u636e")),(0,l.yg)("p",null,"\u6587\u6863\u6570\u636e\u5e93 no-schema \u7684\u7279\u6027\u5e26\u6765\u7684\u8fd9\u4e9b\u4f18\u52bf\u4e5f\u662f\u6709\u4ee3\u4ef7\u7684\uff0c\u6700\u4e3b\u8981\u7684\u4ee3\u4ef7\u5c31\u662f\u4e0d\u652f\u6301\u4e8b\u52a1\u3002\u6587\u6863\u6570\u636e\u5e93\u53e6\u5916\u4e00\u4e2a\u7f3a\u70b9\u5c31\u662f\u65e0\u6cd5\u5b9e\u73b0\u5173\u7cfb\u6570\u636e\u5e93\u7684 join \u64cd\u4f5c\u3002"),(0,l.yg)("h3",{id:"\u9002\u7528\u573a\u666f"},"\u9002\u7528\u573a\u666f"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u7f51\u7ad9\u5b9e\u65f6\u6570\u636e\u5904\u7406\u3002\u5b83\u975e\u5e38\u9002\u5408\u5b9e\u65f6\u7684\u63d2\u5165\u3001\u66f4\u65b0\u4e0e\u67e5\u8be2\uff0c\u5e76\u5177\u5907\u7f51\u7ad9\u5b9e\u65f6\u6570\u636e\u5b58\u50a8\u6240\u9700\u7684\u590d\u5236\u53ca\u9ad8\u5ea6\u4f38\u7f29\u6027\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u7f13\u5b58\u3002\u7531\u4e8e\u6027\u80fd\u5f88\u9ad8\uff0c\u5b83\u9002\u5408\u4f5c\u4e3a\u4fe1\u606f\u57fa\u7840\u8bbe\u65bd\u7684\u7f13\u5b58\u5c42\u3002\u5728\u7cfb\u7edf\u91cd\u542f\u4e4b\u540e\uff0c\u7531\u5b83\u642d\u5efa\u7684\u6301\u4e45\u5316\u7f13\u5b58\u5c42\u53ef\u4ee5\u907f\u514d\u4e0b\u5c42\u7684\u6570\u636e\u6e90\u8fc7\u8f7d\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u9ad8\u4f38\u7f29\u6027\u9ad8\u53ef\u7528\u7684\u573a\u666f\u3002MongoDB\u4f7f\u7528\u5206\u7247\u6c34\u5e73\u7f29\u653e\uff0c\u5e76\u4e14\u53ef\u4ee5\u8fd0\u884c\u5728\u591a\u4e2a\u670d\u52a1\u5668\u4e0a\uff0c\u5e73\u8861\u8d1f\u8f7d\u6216\u590d\u5236\u6570\u636e\uff0c\u4ee5\u4fbf\u5728\u786c\u4ef6\u51fa\u73b0\u6545\u969c\u65f6\u4fdd\u6301\u7cfb\u7edf\u6b63\u5e38\u8fd0\u884c\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u6d77\u91cf\u6570\u636e\u3002")),(0,l.yg)("h3",{id:"\u4e0d\u9002\u7528\u573a\u666f"},"\u4e0d\u9002\u7528\u573a\u666f"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u8981\u6c42\u9ad8\u5ea6\u4e8b\u52a1\u6027\u7684\u7cfb\u7edf\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u4f20\u7edf\u7684\u5546\u4e1a\u667a\u80fd\u5e94\u7528\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u590d\u6742\u7684\u8de8\u6587\u6863\uff08\u8868\uff09\u7ea7\u8054\u67e5\u8be2\u3002")),(0,l.yg)("h3",{id:"\u6982\u5ff5"},"\u6982\u5ff5"),(0,l.yg)("h4",{id:"db"},"db"),(0,l.yg)("p",null,"\u6709\u4e00\u4e9b\u6570\u636e\u5e93\u540d\u662f\u4fdd\u7559\u7684\uff0c\u53ef\u4ee5\u76f4\u63a5\u8bbf\u95ee\u8fd9\u4e9b\u6709\u7279\u6b8a\u4f5c\u7528\u7684\u6570\u636e\u5e93\u3002"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("strong",{parentName:"li"},"admin"),'\uff1a \u4ece\u6743\u9650\u7684\u89d2\u5ea6\u6765\u770b\uff0c\u8fd9\u662f"root"\u6570\u636e\u5e93\u3002\u8981\u662f\u5c06\u4e00\u4e2a\u7528\u6237\u6dfb\u52a0\u5230\u8fd9\u4e2a\u6570\u636e\u5e93\uff0c\u8fd9\u4e2a\u7528\u6237\u81ea\u52a8\u7ee7\u627f\u6240\u6709\u6570\u636e\u5e93\u7684\u6743\u9650\u3002\u4e00\u4e9b\u7279\u5b9a\u7684\u670d\u52a1\u5668\u7aef\u547d\u4ee4\u4e5f\u53ea\u80fd\u4ece\u8fd9\u4e2a\u6570\u636e\u5e93\u8fd0\u884c\uff0c\u6bd4\u5982\u5217\u51fa\u6240\u6709\u7684\u6570\u636e\u5e93\u6216\u8005\u5173\u95ed\u670d\u52a1\u5668\u3002'),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("strong",{parentName:"li"},"local:")," \u8fd9\u4e2a\u6570\u636e\u6c38\u8fdc\u4e0d\u4f1a\u88ab\u590d\u5236\uff0c\u53ef\u4ee5\u7528\u6765\u5b58\u50a8\u9650\u4e8e\u672c\u5730\u5355\u53f0\u670d\u52a1\u5668\u7684\u4efb\u610f\u96c6\u5408"),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("strong",{parentName:"li"},"config"),": \u5f53Mongo\u7528\u4e8e\u5206\u7247\u8bbe\u7f6e\u65f6\uff0cconfig\u6570\u636e\u5e93\u5728\u5185\u90e8\u4f7f\u7528\uff0c\u7528\u4e8e\u4fdd\u5b58\u5206\u7247\u7684\u76f8\u5173\u4fe1\u606f\u3002")),(0,l.yg)("h4",{id:"collection"},"collection"),(0,l.yg)("p",null,"\u6570\u636e\u5e93\u8868/\u96c6\u5408\n\u96c6\u5408\u5c31\u662f MongoDB \u6587\u6863\u7ec4\uff0c\u7c7b\u4f3c\u4e8e RDBMS \uff08\u5173\u7cfb\u6570\u636e\u5e93\u7ba1\u7406\u7cfb\u7edf\uff1aRelational Database Management System)\u4e2d\u7684\u8868\u683c\u3002\n\u96c6\u5408\u5b58\u5728\u4e8e\u6570\u636e\u5e93\u4e2d\uff0c\u96c6\u5408\u6ca1\u6709\u56fa\u5b9a\u7684\u7ed3\u6784\uff0c\u8fd9\u610f\u5473\u7740\u4f60\u5728\u5bf9\u96c6\u5408\u53ef\u4ee5\u63d2\u5165\u4e0d\u540c\u683c\u5f0f\u548c\u7c7b\u578b\u7684\u6570\u636e\uff0c\u4f46\u901a\u5e38\u60c5\u51b5\u4e0b\u6211\u4eec\u63d2\u5165\u96c6\u5408\u7684\u6570\u636e\u90fd\u4f1a\u6709\u4e00\u5b9a\u7684\u5173\u8054\u6027\u3002"),(0,l.yg)("h4",{id:"document"},"document"),(0,l.yg)("p",null,"\u6570\u636e\u8bb0\u5f55\u884c/\u6587\u6863\n\u6587\u6863\u662f\u4e00\u7ec4\u952e\u503c(key-value)\u5bf9(\u5373 BSON)\u3002MongoDB \u7684\u6587\u6863\u4e0d\u9700\u8981\u8bbe\u7f6e\u76f8\u540c\u7684\u5b57\u6bb5\uff0c\u5e76\u4e14\u76f8\u540c\u7684\u5b57\u6bb5\u4e0d\u9700\u8981\u76f8\u540c\u7684\u6570\u636e\u7c7b\u578b\uff0c\u8fd9\u4e0e\u5173\u7cfb\u578b\u6570\u636e\u5e93\u6709\u5f88\u5927\u7684\u533a\u522b\uff0c\u4e5f\u662f MongoDB \u975e\u5e38\u7a81\u51fa\u7684\u7279\u70b9\u3002"),(0,l.yg)("h3",{id:"\u96c6\u7fa4\u6982\u5ff5"},"\u96c6\u7fa4\u6982\u5ff5"),(0,l.yg)("p",null,"mongodb\u96c6\u7fa4\u6709\u4e09\u79cd\u6a21\u5f0f\uff0c\u4e3b\u4ece\u6a21\u5f0f\uff0c\u526f\u672c\u96c6\u6a21\u5f0f\u3001sharding\u5206\u7247\u6a21\u5f0f\u3002\u4e3b\u4ece\u6a21\u5f0f\u5b98\u7f51\u4e5f\u4e0d\u518d\u63a8\u8350\u4e0a\u751f\u4ea7\u73af\u5883\uff0c\u4e3b\u8981\u662f\u5b89\u5168\u6027\u592a\u4f4e\u3002\u526f\u672c\u96c6\u548csharding\u6a21\u5f0f\u76ee\u524d\u662f\u7528\u7684\u6700\u5e7f\u7684\u65b9\u6848\uff0c\u901a\u5e38\u8fd92\u79cd\u65b9\u6848\u7684\u9009\u62e9\u901a\u8fc7\u6570\u636e\u91cf\u548c\u5e76\u53d1\u6570\u6765\u6743\u8861\u3002\u5728GB\u7ea7\u522b\u7684\u57fa\u672c\u4e0a\u526f\u672c\u96c6\u65b9\u6848\u53ef\u6ee1\u8db3\uff0cTB\u7ea7\u522b\u6216\u4ee5\u4e0a\u91c7\u7528sharding\u6a21\u5f0f\uff0c\u89e3\u51b3\u5355\u673a\u5bb9\u91cf\u548c\u5355\u673a\u5e76\u53d1\u80fd\u529b\u3002\n\u8fd9\u4e24\u79cd\u65e2\u6709\u81ea\u5df1\u7684\u4f18\u52bf\u4e5f\u6709\u81ea\u5df1\u7684\u7f3a\u70b9\uff0c\u6bd4\u5982sharding\u6a21\u5f0f\u5206\u7247\u8d8a\u591a\uff0c\u6027\u80fd\u81ea\u7136\u4e0b\u964d\u8d8a\u591a\u3002"),(0,l.yg)("p",null,(0,l.yg)("strong",{parentName:"p"},"\u4e0d\u662f\u6240\u7528\u7684\u4f7f\u7528\u573a\u666f\u90fd\u5fc5\u987b\u4e0a\u96c6\u7fa4\uff0c\u8981\u56e0\u5730\u5236\u5b9c\u3002")),(0,l.yg)("h3",{id:"mongostat"},"mongostat"),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-shell"},"#\nmongostat -u admin -p Aa0123 --authenticationDatabase=admin\n")),(0,l.yg)("h3",{id:"mongotop"},"mongotop"),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-shell"},"#\nmongotop -u admin -p Aa0123 --authenticationDatabase=admin\n")),(0,l.yg)("h3",{id:"\u5907\u4efd\u6062\u590d"},"\u5907\u4efd/\u6062\u590d"),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-shell"},"#\u5907\u4efd\u6240\u6709\u8868\nmongodump -h 172.18.92.170 --port 27017 -u \u7528\u6237\u540d -p \u5bc6\u7801 -o /usr/local/mongodb/bak/\n\n#\u6062\u590d\u6240\u6709\u8868\nmongorestore --port 27017 -u \u7528\u6237\u540d -p \u5bc6\u7801 --authenticationDatabase admin /usr/local/mongodb/bak/\n")),(0,l.yg)("h3",{id:"\u5206\u9875\u67e5\u8be2"},"\u5206\u9875\u67e5\u8be2"),(0,l.yg)("p",null,"mongo\u7684\u5206\u9875\u76f8\u5173\u529f\u80fd\u6027\u80fd\u8f83\u5dee\uff0c\u9488\u5bf9\u8fd9\u4e2a\u95ee\u9898\u7ecf\u8fc7\u7814\u7a76\u53d1\u73b0\u5728\u5206\u9875\u4e2dskip\u6570\u503c\u8d8a\u5927\u6027\u80fd\u5c31\u8d8a\u4f4e\uff0c\u7b26\u5408\u6761\u4ef6\u7684\u6570\u636e\u8d8a\u591acount\u6027\u80fd\u5c31\u8d8a\u4f4e\u3002\u9488\u5bf9\u8fd92\u4e2a\u95ee\u9898\u6211\u4eec\u8fdb\u884c\u4e86\u8be6\u7ec6\u7684\u6d4b\u8bd5\uff0c\u5171\u603b\u7ed3\u51fa2\u79cd\u6548\u679c\u4e0d\u9519\u7684\u65b9\u6848\u3002"),(0,l.yg)("h4",{id:"\u65b9\u6848\u4e00"},"\u65b9\u6848\u4e00"),(0,l.yg)("p",null,"\u4f7f\u7528Top N\u7684\u65b9\u5f0f\u9650\u5236\u68c0\u7d22\u6570\u91cf\u6700\u59275000\u6761\uff0c\u4f8b\u5982\u7edf\u8ba1\u7b26\u5408\u6761\u4ef6\u7684\u62a5\u8b66\u8bb0\u5f55\u6761\u6570\uff1a"),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-javascript"},'db.AlarmHistory.find({\n "did": {$in: [\n "10000000000000001000"\n ]},\n "createTime":{ "$gte":1636949672, "$lt":1637381672}\n}).limit(5000).count(true);\n')),(0,l.yg)("p",null,"\u901a\u8fc7limit(5000)\u9650\u5236\u7edf\u8ba1\u6700\u5927\u503c\u5373\u4e3a5000\uff0c\u4ece\u800c\u63d0\u9ad8\u4e86count\u6548\u7387\uff0c\u4f46\u4e5f\u6709\u4e00\u4e9b\u5c40\u9650\u6027\u5c31\u662f\u53ea\u80fd\u7edf\u8ba1\u7b26\u5408\u6761\u4ef6\u7684\u6700\u540e5000\u6761\u6570\u636e\uff0c\u800c\u4e0d\u662f\u7b26\u5408\u6761\u4ef6\u7684\u5168\u90e8\u6570\u636e\u3002"),(0,l.yg)("h4",{id:"\u65b9\u6848\u4e8c"},"\u65b9\u6848\u4e8c"),(0,l.yg)("p",null,"\u901a\u8fc7\u52a0\u8f7d\u66f4\u591a\u7684\u65b9\u5f0f\u5206\u9875\uff0c\u5373\u67e5\u8be2\u4e0b\u4e00\u9875\u65f6\u9700\u8981\u4f20\u9012\u5f53\u524d\u9875\u7684\u6700\u540e\u4e00\u6761\u6570\u636e\u7684\u5e8f\u53f7\uff0c\u8fd9\u6837\u5c31\u7ed5\u8fc7count\u7edf\u8ba1\uff0c\u4f46\u8fd9\u79cd\u65b9\u5f0f\u7684\u5f0a\u7aef\u5728\u4e8e\u9875\u9762\u4e0d\u4f1a\u663e\u793a\u603b\u5171\u591a\u5c11\u6761\u6570\u636e\u3001\u5171\u5206\u591a\u5c11\u9875\u7b49\u6570\u636e\u3002"),(0,l.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},(0,l.yg)("a",{parentName:"li",href:"https://www.runoob.com/mongodb/mongodb-tutorial.html"},"MongoDB\u6559\u7a0b"))))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/826108d9.045ca77a.js b/assets/js/826108d9.3d2a574d.js similarity index 98% rename from assets/js/826108d9.045ca77a.js rename to assets/js/826108d9.3d2a574d.js index 536887e11..fa937bc72 100644 --- a/assets/js/826108d9.045ca77a.js +++ b/assets/js/826108d9.3d2a574d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7671],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},l="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,s=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),l=p(r),y=o,f=l["".concat(s,".").concat(y)]||l[y]||d[y]||i;return r?n.createElement(f,a(a({ref:t},u),{},{components:r})):n.createElement(f,a({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=y;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[l]="string"==typeof e?e:o,a[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>c,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const i={sidebar_position:1},a="\u6982\u8ff0",c={unversionedId:"study/think/index",id:"study/think/index",title:"\u6982\u8ff0",description:"\u8de8\u8d8a\u7f16\u7a0b\u8bed\u8a00\u7684\u4e00\u4e9b\u5957\u8def\u3002",source:"@site/docs/study/think/index.md",sourceDirName:"study/think",slug:"/study/think/",permalink:"/docs/study/think/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"\u901a\u4fe1\u6a21\u7ec4",permalink:"/docs/study/hard/\u901a\u4fe1\u6a21\u7ec4"},next:{title:"\u8bbe\u8ba1\u6a21\u5f0f",permalink:"/docs/study/think/\u8bbe\u8ba1\u6a21\u5f0f"}},s={},p=[],u={toc:p},l="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(l,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,o.yg)("p",null,"\u8de8\u8d8a\u7f16\u7a0b\u8bed\u8a00\u7684\u4e00\u4e9b\u5957\u8def\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7671],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},l="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,s=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),l=p(r),y=o,f=l["".concat(s,".").concat(y)]||l[y]||d[y]||i;return r?n.createElement(f,a(a({ref:t},u),{},{components:r})):n.createElement(f,a({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=y;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[l]="string"==typeof e?e:o,a[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>c,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const i={sidebar_position:1},a="\u6982\u8ff0",c={unversionedId:"study/think/index",id:"study/think/index",title:"\u6982\u8ff0",description:"\u8de8\u8d8a\u7f16\u7a0b\u8bed\u8a00\u7684\u4e00\u4e9b\u5957\u8def\u3002",source:"@site/docs/study/think/index.md",sourceDirName:"study/think",slug:"/study/think/",permalink:"/docs/study/think/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"\u901a\u4fe1\u6a21\u7ec4",permalink:"/docs/study/hard/\u901a\u4fe1\u6a21\u7ec4"},next:{title:"\u8bbe\u8ba1\u6a21\u5f0f",permalink:"/docs/study/think/\u8bbe\u8ba1\u6a21\u5f0f"}},s={},p=[],u={toc:p},l="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(l,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,o.yg)("p",null,"\u8de8\u8d8a\u7f16\u7a0b\u8bed\u8a00\u7684\u4e00\u4e9b\u5957\u8def\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8303fa10.a92d1772.js b/assets/js/8303fa10.d5c53bd3.js similarity index 98% rename from assets/js/8303fa10.a92d1772.js rename to assets/js/8303fa10.d5c53bd3.js index 275925f28..c81fce623 100644 --- a/assets/js/8303fa10.a92d1772.js +++ b/assets/js/8303fa10.d5c53bd3.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8723],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),u=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),s=u(r),y=o,f=s["".concat(l,".").concat(y)]||s[y]||d[y]||a;return r?n.createElement(f,i(i({ref:t},p),{},{components:r})):n.createElement(f,i({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=y;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[s]="string"==typeof e?e:o,i[1]=c;for(var u=2;u{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={},i="\u4eba\u5de5\u667a\u80fd",c={unversionedId:"study/ai/index",id:"study/ai/index",title:"\u4eba\u5de5\u667a\u80fd",description:"LLM",source:"@site/docs/study/ai/index.md",sourceDirName:"study/ai",slug:"/study/ai/",permalink:"/docs/study/ai/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u975e\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3",permalink:"/docs/study/encryption/\u975e\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3"},next:{title:"\u5b57\u8282\u5e8f Big Endian Little Endian",permalink:"/docs/study/other/\u5b57\u8282\u5e8f"}},l={},u=[{value:"LLM",id:"llm",level:3}],p={toc:u},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u4eba\u5de5\u667a\u80fd"},"\u4eba\u5de5\u667a\u80fd"),(0,o.yg)("h3",{id:"llm"},"LLM"),(0,o.yg)("p",null,"\u5927\u8bed\u8a00\u6a21\u578b Large Language Models\uff0c\u4eba\u7c7b\u8981\u8d70\u5411\u4eba\u5de5\u667a\u80fd\u65f6\u4ee3\uff0c\u79bb\u4e0d\u5f00 LLM \u7684\u53d1\u5c55\uff0c\u6216\u8005\u8bf4\uff0cLLM \u662f\u901a\u5f80 AI \u65f6\u4ee3\u7684\u6838\u5fc3\u9014\u5f84\u3002"),(0,o.yg)("p",null,"ChatGPT \u662f\u6700\u77e5\u540d\u7684 LLM \u6848\u4f8b\uff0cLLM \u7684\u53d1\u5c55\u53c8\u79bb\u4e0d\u5f00\u673a\u5668\u5b66\u4e60\u3001\u795e\u7ecf\u7f51\u7edc\u3001\u6df1\u5ea6\u5b66\u4e60\u7b49\u6280\u672f\u7684\u7a81\u7834\u3002\u5927\u8bed\u8a00\u6a21\u578b\u7684\u5173\u952e\u4e4b\u4e00\u662f\u4e00\u4e2a\u201c\u5927\u201d\u5b57\uff0c\u8bad\u7ec3\u7684\u6570\u636e\u975e\u5e38\u591a\uff0c\u582a\u79f0\u6d77\u91cf\uff0c\u5982 ChatGPT \u5c31\u5305\u542b\u4e86 8000 \u4ebf\u4ee5\u4e0a\u7684\u6570\u636e\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8723],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),u=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),s=u(r),y=o,f=s["".concat(l,".").concat(y)]||s[y]||d[y]||a;return r?n.createElement(f,i(i({ref:t},p),{},{components:r})):n.createElement(f,i({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=y;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[s]="string"==typeof e?e:o,i[1]=c;for(var u=2;u{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={},i="\u4eba\u5de5\u667a\u80fd",c={unversionedId:"study/ai/index",id:"study/ai/index",title:"\u4eba\u5de5\u667a\u80fd",description:"LLM",source:"@site/docs/study/ai/index.md",sourceDirName:"study/ai",slug:"/study/ai/",permalink:"/docs/study/ai/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u975e\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3",permalink:"/docs/study/encryption/\u975e\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3"},next:{title:"\u5b57\u8282\u5e8f Big Endian Little Endian",permalink:"/docs/study/other/\u5b57\u8282\u5e8f"}},l={},u=[{value:"LLM",id:"llm",level:3}],p={toc:u},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u4eba\u5de5\u667a\u80fd"},"\u4eba\u5de5\u667a\u80fd"),(0,o.yg)("h3",{id:"llm"},"LLM"),(0,o.yg)("p",null,"\u5927\u8bed\u8a00\u6a21\u578b Large Language Models\uff0c\u4eba\u7c7b\u8981\u8d70\u5411\u4eba\u5de5\u667a\u80fd\u65f6\u4ee3\uff0c\u79bb\u4e0d\u5f00 LLM \u7684\u53d1\u5c55\uff0c\u6216\u8005\u8bf4\uff0cLLM \u662f\u901a\u5f80 AI \u65f6\u4ee3\u7684\u6838\u5fc3\u9014\u5f84\u3002"),(0,o.yg)("p",null,"ChatGPT \u662f\u6700\u77e5\u540d\u7684 LLM \u6848\u4f8b\uff0cLLM \u7684\u53d1\u5c55\u53c8\u79bb\u4e0d\u5f00\u673a\u5668\u5b66\u4e60\u3001\u795e\u7ecf\u7f51\u7edc\u3001\u6df1\u5ea6\u5b66\u4e60\u7b49\u6280\u672f\u7684\u7a81\u7834\u3002\u5927\u8bed\u8a00\u6a21\u578b\u7684\u5173\u952e\u4e4b\u4e00\u662f\u4e00\u4e2a\u201c\u5927\u201d\u5b57\uff0c\u8bad\u7ec3\u7684\u6570\u636e\u975e\u5e38\u591a\uff0c\u582a\u79f0\u6d77\u91cf\uff0c\u5982 ChatGPT \u5c31\u5305\u542b\u4e86 8000 \u4ebf\u4ee5\u4e0a\u7684\u6570\u636e\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8497e197.17aca05f.js b/assets/js/8497e197.259bf307.js similarity index 99% rename from assets/js/8497e197.17aca05f.js rename to assets/js/8497e197.259bf307.js index cfff52642..987dcee25 100644 --- a/assets/js/8497e197.17aca05f.js +++ b/assets/js/8497e197.259bf307.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7441],{5680:(e,t,n)=>{n.d(t,{xA:()=>p,yg:()=>g});var r=n(6540);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var c=r.createContext({}),s=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},p=function(e){var t=s(e.components);return r.createElement(c.Provider,{value:t},e.children)},u="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,l=e.originalType,c=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=s(n),d=o,g=u["".concat(c,".").concat(d)]||u[d]||y[d]||l;return n?r.createElement(g,a(a({ref:t},p),{},{components:n})):r.createElement(g,a({ref:t},p))}));function g(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var l=n.length,a=new Array(l);a[0]=d;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[u]="string"==typeof e?e:o,a[1]=i;for(var s=2;s{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>y,frontMatter:()=>l,metadata:()=>i,toc:()=>s});var r=n(8168),o=(n(6540),n(5680));const l={},a=void 0,i={unversionedId:"study/encryption/\u6d88\u606f\u6458\u8981\u7b97\u6cd5\u603b\u7ed3",id:"study/encryption/\u6d88\u606f\u6458\u8981\u7b97\u6cd5\u603b\u7ed3",title:"\u6d88\u606f\u6458\u8981\u7b97\u6cd5\u603b\u7ed3",description:"\u6d88\u606f\u6458\u8981\uff08Message Digest\uff09\u53c8\u79f0\u4e3a\u6570\u5b57\u6458\u8981\uff08Digital Digest\uff09\u3002\u5b83\u662f\u4e00\u4e2a\u552f\u4e00\u5bf9\u5e94\u4e00\u4e2a\u6d88\u606f\u6216\u6587\u672c\u7684\u56fa\u5b9a\u957f\u5ea6\u7684\u503c\uff0c\u5b83\u7531\u4e00\u4e2a\u5355\u5411 Hash \u52a0\u5bc6\u51fd\u6570\u5bf9\u6d88\u606f\u8fdb\u884c\u4f5c\u7528\u800c\u4ea7\u751f\u3002\u5982\u679c\u6d88\u606f\u5728\u9014\u4e2d\u6539\u53d8\u4e86\uff0c\u5219\u63a5\u6536\u8005\u901a\u8fc7\u5bf9\u6536\u5230\u6d88\u606f\u7684\u65b0\u4ea7\u751f\u7684\u6458\u8981\u4e0e\u539f\u6458\u8981\u6bd4\u8f83\uff0c\u5c31\u53ef\u77e5\u9053\u6d88\u606f\u662f\u5426\u88ab\u6539\u53d8\u4e86\u3002\u56e0\u6b64\u6d88\u606f\u6458\u8981\u4fdd\u8bc1\u4e86\u6d88\u606f\u7684\u5b8c\u6574\u6027\u3002",source:"@site/docs/study/encryption/\u6d88\u606f\u6458\u8981\u7b97\u6cd5\u603b\u7ed3.md",sourceDirName:"study/encryption",slug:"/study/encryption/\u6d88\u606f\u6458\u8981\u7b97\u6cd5\u603b\u7ed3",permalink:"/docs/study/encryption/\u6d88\u606f\u6458\u8981\u7b97\u6cd5\u603b\u7ed3",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u6570\u5b57\u8bc1\u4e66",permalink:"/docs/study/encryption/\u6570\u5b57\u8bc1\u4e66"},next:{title:"\u7b49\u4fdd\u548c\u5bc6\u8bc4",permalink:"/docs/study/encryption/\u7b49\u4fdd_\u5bc6\u8bc4"}},c={},s=[{value:"MD5",id:"md5",level:3},{value:"SHA",id:"sha",level:3},{value:"MAC",id:"mac",level:3}],p={toc:s},u="wrapper";function y(e){let{components:t,...n}=e;return(0,o.yg)(u,(0,r.A)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"\u6d88\u606f\u6458\u8981\uff08Message Digest\uff09\u53c8\u79f0\u4e3a\u6570\u5b57\u6458\u8981\uff08Digital Digest\uff09\u3002\u5b83\u662f\u4e00\u4e2a\u552f\u4e00\u5bf9\u5e94\u4e00\u4e2a\u6d88\u606f\u6216\u6587\u672c\u7684\u56fa\u5b9a\u957f\u5ea6\u7684\u503c\uff0c\u5b83\u7531\u4e00\u4e2a\u5355\u5411 Hash \u52a0\u5bc6\u51fd\u6570\u5bf9\u6d88\u606f\u8fdb\u884c\u4f5c\u7528\u800c\u4ea7\u751f\u3002\u5982\u679c\u6d88\u606f\u5728\u9014\u4e2d\u6539\u53d8\u4e86\uff0c\u5219\u63a5\u6536\u8005\u901a\u8fc7\u5bf9\u6536\u5230\u6d88\u606f\u7684\u65b0\u4ea7\u751f\u7684\u6458\u8981\u4e0e\u539f\u6458\u8981\u6bd4\u8f83\uff0c\u5c31\u53ef\u77e5\u9053\u6d88\u606f\u662f\u5426\u88ab\u6539\u53d8\u4e86\u3002\u56e0\u6b64\u6d88\u606f\u6458\u8981\u4fdd\u8bc1\u4e86\u6d88\u606f\u7684\u5b8c\u6574\u6027\u3002"),(0,o.yg)("p",null,'\u6d88\u606f\u6458\u8981\u91c7\u7528\u5355\u5411 Hash \u51fd\u6570\u5c06\u9700\u52a0\u5bc6\u7684\u660e\u6587"\u6458\u8981"\u6210\u4e00\u4e32\u56fa\u5b9a\u4f4d\u6570\uff08\u5982 128bit\uff09\u7684\u5bc6\u6587\uff0c\u8fd9\u4e00\u4e32\u5bc6\u6587\u4ea6\u79f0\u4e3a\u6570\u5b57\u6307\u7eb9\uff08Finger Print\uff09\uff0c\u5b83\u6709\u56fa\u5b9a\u7684\u957f\u5ea6\uff0c\u4e14\u4e0d\u540c\u7684\u660e\u6587\u6458\u8981\u6210\u5bc6\u6587\uff0c\u5176\u7ed3\u679c\u603b\u662f\u4e0d\u540c\u7684\uff0c\u800c\u540c\u6837\u7684\u660e\u6587\u5176\u6458\u8981\u5fc5\u5b9a\u4e00\u81f4\u3002\u8fd9\u6837\u8fd9\u4e32\u6458\u8981\u4fbf\u53ef\u6210\u4e3a\u9a8c\u8bc1\u660e\u6587\u662f\u5426\u662f\u201c\u771f\u8eab\u201d\u7684\u201c\u6307\u7eb9\u201d\u4e86\u3002'),(0,o.yg)("p",null,"\u6d88\u606f\u6458\u8981\u5177\u6709\u4e0d\u53ef\u9006\u6027\uff0c\u5728\u6d88\u606f\u6458\u8981\u751f\u6210\u8fc7\u7a0b\u4e2d\uff0c\u4f1a\u4e22\u5931\u5f88\u591a\u539f\u6587\u7684\u4fe1\u606f\uff0c\u800c\u4e14\u65e0\u6cd5\u627e\u56de\u3002\u4e00\u4e2a\u597d\u7684\u6458\u8981\u7b97\u6cd5\uff0c\u662f\u6781\u96be\u4ea7\u751f Hash \u78b0\u649e\u7684\uff0c\u4e5f\u5c31\u662f\u627e\u5230\u53e6\u4e00\u6bb5\u660e\u6587\u7ecf\u8ba1\u7b97\u540e\u4ea7\u751f\u76f8\u540c\u7684\u6458\u8981\u3002"),(0,o.yg)("h3",{id:"md5"},"MD5"),(0,o.yg)("p",null,"MD \u662f\u5e94\u7528\u975e\u5e38\u5e7f\u6cdb\u7684\u4e00\u4e2a\u7b97\u6cd5\u5bb6\u65cf\uff0c\u5c24\u5176\u662f MD5\uff08Message-Digest Algorithm 5\uff0c\u6d88\u606f\u6458\u8981\u7b97\u6cd5\u7248\u672c 5\uff09\uff0c\u5b83\u7531 MD2\u3001MD3\u3001MD4 \u53d1\u5c55\u800c\u6765\uff0c\u7531 Ron Rivest\uff08RSA \u516c\u53f8\uff09\u5728 1992 \u5e74\u63d0\u51fa\uff0c\u76ee\u524d\u88ab\u5e7f\u6cdb\u5e94\u7528\u4e8e\u6570\u636e\u5b8c\u6574\u6027\u6821\u9a8c\u3001\u6570\u636e\uff08\u6d88\u606f\uff09\u6458\u8981\u3001\u6570\u636e\u52a0\u5bc6\u7b49\u3002MD2\u3001MD4\u3001MD5 \u90fd\u4ea7\u751f 16 \u5b57\u8282\uff08128 \u4f4d\uff09\u7684\u6821\u9a8c\u503c\uff0c\u4e00\u822c\u7528 32 \u4f4d\u5341\u516d\u8fdb\u5236\u6570\u8868\u793a\u3002MD2 \u7684\u7b97\u6cd5\u8f83\u6162\u4f46\u76f8\u5bf9\u5b89\u5168\uff0cMD4 \u901f\u5ea6\u5f88\u5feb\uff0c\u4f46\u5b89\u5168\u6027\u4e0b\u964d\uff0cMD5 \u6bd4 MD4 \u66f4\u5b89\u5168\u3001\u901f\u5ea6\u66f4\u5feb\u3002"),(0,o.yg)("p",null,"\u76ee\u524d\u5728\u4e92\u8054\u7f51\u4e0a\u8fdb\u884c\u5927\u6587\u4ef6\u4f20\u8f93\u65f6\uff0c\u90fd\u8981\u5f97\u7528 MD5 \u7b97\u6cd5\u4ea7\u751f\u4e00\u4e2a\u4e0e\u6587\u4ef6\u5339\u914d\u7684\u3001\u5b58\u50a8 MD5 \u503c\u7684\u6587\u672c\u6587\u4ef6\uff08\u540e\u7f00\u540d\u4e3a .md5 \u6216.md5sum\uff09\uff0c\u8fd9\u6837\u63a5\u6536\u8005\u5728\u63a5\u6536\u5230\u6587\u4ef6\u540e\uff0c\u5c31\u53ef\u4ee5\u5229\u7528\u4e0e SFV \u7c7b\u4f3c\u7684\u65b9\u6cd5\u6765\u68c0\u67e5\u6587\u4ef6\u5b8c\u6574\u6027\uff0c\u76ee\u524d\u7edd\u5927\u591a\u6570\u5927\u578b\u8f6f\u4ef6\u516c\u53f8\u6216\u5f00\u6e90\u7ec4\u7ec7\u90fd\u662f\u4ee5\u8fd9\u79cd\u65b9\u5f0f\u6765\u6821\u9a8c\u6570\u636e\u5b8c\u6574\u6027\uff0c\u800c\u4e14\u90e8\u5206\u64cd\u4f5c\u7cfb\u7edf\u4e5f\u4f7f\u7528\u6b64\u7b97\u6cd5\u6765\u5bf9\u7528\u6237\u5bc6\u7801\u8fdb\u884c\u52a0\u5bc6\uff0c\u53e6\u5916\uff0c\u5b83\u4e5f\u662f\u76ee\u524d\u8ba1\u7b97\u673a\u72af\u7f6a\u4e2d\u6570\u636e\u53d6\u8bc1\u7684\u6700\u5e38\u7528\u7b97\u6cd5\u3002\u4e0e MD5 \u76f8\u5173\u7684\u5de5\u5177\u6709\u5f88\u591a\uff0c\u5982 WinMD5 \u7b49\u3002"),(0,o.yg)("h3",{id:"sha"},"SHA"),(0,o.yg)("p",null,"SHA\uff08Secure Hash Algorithm\uff09\u662f\u7531\u7f8e\u56fd\u4e13\u95e8\u5236\u5b9a\u5bc6\u7801\u7b97\u6cd5\u7684\u6807\u51c6\u673a\u6784\u2014\u2014\u7f8e\u56fd\u56fd\u5bb6\u6807\u51c6\u6280\u672f\u7814\u7a76\u9662\uff08NIST\uff09\u5236\u5b9a\u7684\uff0cSHA \u7cfb\u5217\u7b97\u6cd5\u7684\u6458\u8981\u957f\u5ea6\u5206\u522b\u4e3a\uff1aSHA-1 \u4e3a 20 \u5b57\u8282\uff08160 \u4f4d\uff09\u3001SHA-224 \u4e3a 32 \u5b57\u8282\uff08224 \u4f4d\uff09\u3001SHA-256 \u4e3a 32 \u5b57\u8282\uff08256 \u4f4d\uff09\u3001SHA-384 \u4e3a 48 \u5b57\u8282\uff08384 \u4f4d\uff09\u3001SHA-512 \u4e3a 64 \u5b57\u8282\uff08512 \u4f4d\uff09\uff0c\u7531\u4e8e\u5b83\u4ea7\u751f\u7684\u6570\u636e\u6458\u8981\u7684\u957f\u5ea6\u66f4\u957f\uff0c\u56e0\u6b64\u66f4\u96be\u4ee5\u53d1\u751f\u78b0\u649e\uff0c\u56e0\u6b64\u8f83\u4e4b MD5 \u66f4\u4e3a\u5b89\u5168\uff0c\u5b83\u662f\u672a\u6765\u6570\u636e\u6458\u8981\u7b97\u6cd5\u7684\u53d1\u5c55\u65b9\u5411\u3002\u7531\u4e8e SHA \u7cfb\u5217\u7b97\u6cd5\u7684\u6570\u636e\u6458\u8981\u957f\u5ea6\u8f83\u957f\uff0c\u56e0\u6b64\u5176\u8fd0\u7b97\u901f\u5ea6\u4e0e MD5 \u76f8\u6bd4\uff0c\u4e5f\u76f8\u5bf9\u8f83\u6162\u3002"),(0,o.yg)("p",null,"\u76ee\u524d SHA1 \u7684\u5e94\u7528\u8f83\u4e3a\u5e7f\u6cdb\uff0c\u4e3b\u8981\u5e94\u7528\u4e8e CA \u548c\u6570\u5b57\u8bc1\u4e66\u4e2d\uff0c\u53e6\u5916\u5728\u76ee\u524d\u4e92\u8054\u7f51\u4e2d\u6d41\u884c\u7684 BT \u8f6f\u4ef6\u4e2d\uff0c\u4e5f\u662f\u4f7f\u7528 SHA1 \u6765\u8fdb\u884c\u6587\u4ef6\u6821\u9a8c\u7684\u3002"),(0,o.yg)("h3",{id:"mac"},"MAC"),(0,o.yg)("p",null,"MAC \u7b97\u6cd5 (Message Authentication Codes \u6d88\u606f\u8ba4\u8bc1\u7801\u7b97\u6cd5) \u542b\u6709\u5bc6\u94a5\u7684\u6563\u5217\u51fd\u6570\u7b97\u6cd5\uff0c\u517c\u5bb9\u4e86 MD \u548c SHA \u7b97\u6cd5\u7684\u7279\u6027\uff0c\u5e76\u5728\u6b64\u57fa\u7840\u4e0a\u52a0\u4e0a\u4e86\u5bc6\u94a5\u3002\u56e0\u6b64 MAC \u7b97\u6cd5\u4e5f\u7ecf\u5e38\u88ab\u79f0\u4f5c HMAC \u7b97\u6cd5\u3002\u6d88\u606f\u7684\u6563\u5217\u503c\u7531\u53ea\u6709\u901a\u4fe1\u53cc\u65b9\u77e5\u9053\u7684\u5bc6\u94a5\u6765\u63a7\u5236\u3002\u6b64\u65f6 Hash \u503c\u79f0\u4f5c MAC\u3002"),(0,o.yg)("p",null,"\u7ecf\u8fc7 MAC \u7b97\u6cd5\u5f97\u5230\u7684\u6458\u8981\u503c\u4e5f\u53ef\u4ee5\u4f7f\u7528\u5341\u516d\u8fdb\u5236\u7f16\u7801\u8868\u793a\uff0c\u5176\u6458\u8981\u503c\u5f97\u957f\u5ea6\u4e0e\u5b9e\u73b0\u7b97\u6cd5\u7684\u6458\u8981\u503c\u957f\u5ea6\u76f8\u540c\u3002\u4f8b\u5982 HmacSHA \u7b97\u6cd5\u5f97\u5230\u7684\u6458\u8981\u957f\u5ea6\u5c31\u662f SHA1 \u7b97\u6cd5\u5f97\u5230\u7684\u6458\u8981\u957f\u5ea6\uff0c\u90fd\u662f 160 \u4f4d\u4e8c\u8fdb\u5236\u6570\uff0c\u6362\u7b97\u6210\u5341\u516d\u8fdb\u5236\u7684\u7f16\u7801\u4e3a 40 \u4f4d\u3002"),(0,o.yg)("p",null,"\u6d41\u7a0b\u5206\u6790\uff1a"),(0,o.yg)("p",null,"\u7532\u4e59\u53cc\u65b9\u8fdb\u884c\u6570\u636e\u4ea4\u6362\u53ef\u4ee5\u91c7\u53d6\u5982\u4e0b\u6d41\u7a0b\uff1a"),(0,o.yg)("p",null,"1.\u7532\u65b9\u5411\u4e59\u65b9\u516c\u5e03\u6458\u8981\u7b97\u6cd5\uff08\u5c31\u662f\u6307\u5b9a\u8981\u4f7f\u7528\u7684\u6458\u8981\u7b97\u6cd5\u540d\uff09"),(0,o.yg)("p",null,"2.\u7532\u4e59\u53cc\u65b9\u6309\u7167\u7ea6\u5b9a\u6784\u9020\u5bc6\u94a5\uff0c\u53cc\u65b9\u62e5\u6709\u76f8\u540c\u7684\u5bc6\u94a5\uff08\u4e00\u822c\u662f\u4e00\u65b9\u6784\u9020\u5bc6\u94a5\u540e\u901a\u77e5\u53e6\u5916\u4e00\u65b9\uff0c\u6b64\u8fc7\u7a0b\u4e0d\u9700\u8981\u901a\u8fc7\u7a0b\u5e8f\u5b9e\u73b0\uff0c\u5c31\u662f\u53cc\u65b9\u7ea6\u5b9a\u4e2a\u5b57\u7b26\u4e32\uff0c\u4f46\u662f\u8fd9\u4e2a\u5b57\u7b26\u4e32\u53ef\u4e0d\u662f\u968f\u4fbf\u8bbe\u5b9a\u7684\uff0c\u4e5f\u662f\u901a\u8fc7\u76f8\u5173\u7b97\u6cd5\u83b7\u53d6\u7684\uff09"),(0,o.yg)("p",null,"3.\u7532\u65b9\u4f7f\u7528\u5bc6\u94a5\u5bf9\u6d88\u606f\u505a\u6458\u8981\u5904\u7406\uff0c\u7136\u540e\u5c06\u6d88\u606f\u548c\u751f\u6210\u7684\u6458\u8981\u6d88\u606f\u4e00\u540c\u53d1\u9001\u7ed9\u4e59\u65b9"),(0,o.yg)("p",null,"4.\u4e59\u65b9\u6536\u5230\u6d88\u606f\u540e\uff0c\u4f7f\u7528\u7532\u65b9\u5df2\u7ecf\u516c\u5e03\u7684\u6458\u8981\u7b97\u6cd5+\u7ea6\u5b9a\u597d\u7684\u5bc6\u94a5 \u5bf9\u6536\u5230\u7684\u6d88\u606f\u8fdb\u884c\u6458\u8981\u5904\u7406\u3002\u7136\u540e\u6bd4\u5bf9\u81ea\u5df1\u7684\u6458\u8981\u6d88\u606f\u548c\u7532\u65b9\u53d1\u8fc7\u6765\u7684\u6458\u8981\u6d88\u606f\u3002\u7504\u522b\u6d88\u606f\u662f\u5426\u662f\u7532\u65b9\u53d1\u9001\u8fc7\u6765\u7684\u3002"))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7441],{5680:(e,t,n)=>{n.d(t,{xA:()=>p,yg:()=>g});var r=n(6540);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var c=r.createContext({}),s=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},p=function(e){var t=s(e.components);return r.createElement(c.Provider,{value:t},e.children)},u="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,l=e.originalType,c=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=s(n),d=o,g=u["".concat(c,".").concat(d)]||u[d]||y[d]||l;return n?r.createElement(g,a(a({ref:t},p),{},{components:n})):r.createElement(g,a({ref:t},p))}));function g(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var l=n.length,a=new Array(l);a[0]=d;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[u]="string"==typeof e?e:o,a[1]=i;for(var s=2;s{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>y,frontMatter:()=>l,metadata:()=>i,toc:()=>s});var r=n(8168),o=(n(6540),n(5680));const l={},a=void 0,i={unversionedId:"study/encryption/\u6d88\u606f\u6458\u8981\u7b97\u6cd5\u603b\u7ed3",id:"study/encryption/\u6d88\u606f\u6458\u8981\u7b97\u6cd5\u603b\u7ed3",title:"\u6d88\u606f\u6458\u8981\u7b97\u6cd5\u603b\u7ed3",description:"\u6d88\u606f\u6458\u8981\uff08Message Digest\uff09\u53c8\u79f0\u4e3a\u6570\u5b57\u6458\u8981\uff08Digital Digest\uff09\u3002\u5b83\u662f\u4e00\u4e2a\u552f\u4e00\u5bf9\u5e94\u4e00\u4e2a\u6d88\u606f\u6216\u6587\u672c\u7684\u56fa\u5b9a\u957f\u5ea6\u7684\u503c\uff0c\u5b83\u7531\u4e00\u4e2a\u5355\u5411 Hash \u52a0\u5bc6\u51fd\u6570\u5bf9\u6d88\u606f\u8fdb\u884c\u4f5c\u7528\u800c\u4ea7\u751f\u3002\u5982\u679c\u6d88\u606f\u5728\u9014\u4e2d\u6539\u53d8\u4e86\uff0c\u5219\u63a5\u6536\u8005\u901a\u8fc7\u5bf9\u6536\u5230\u6d88\u606f\u7684\u65b0\u4ea7\u751f\u7684\u6458\u8981\u4e0e\u539f\u6458\u8981\u6bd4\u8f83\uff0c\u5c31\u53ef\u77e5\u9053\u6d88\u606f\u662f\u5426\u88ab\u6539\u53d8\u4e86\u3002\u56e0\u6b64\u6d88\u606f\u6458\u8981\u4fdd\u8bc1\u4e86\u6d88\u606f\u7684\u5b8c\u6574\u6027\u3002",source:"@site/docs/study/encryption/\u6d88\u606f\u6458\u8981\u7b97\u6cd5\u603b\u7ed3.md",sourceDirName:"study/encryption",slug:"/study/encryption/\u6d88\u606f\u6458\u8981\u7b97\u6cd5\u603b\u7ed3",permalink:"/docs/study/encryption/\u6d88\u606f\u6458\u8981\u7b97\u6cd5\u603b\u7ed3",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u6570\u5b57\u8bc1\u4e66",permalink:"/docs/study/encryption/\u6570\u5b57\u8bc1\u4e66"},next:{title:"\u7b49\u4fdd\u548c\u5bc6\u8bc4",permalink:"/docs/study/encryption/\u7b49\u4fdd_\u5bc6\u8bc4"}},c={},s=[{value:"MD5",id:"md5",level:3},{value:"SHA",id:"sha",level:3},{value:"MAC",id:"mac",level:3}],p={toc:s},u="wrapper";function y(e){let{components:t,...n}=e;return(0,o.yg)(u,(0,r.A)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"\u6d88\u606f\u6458\u8981\uff08Message Digest\uff09\u53c8\u79f0\u4e3a\u6570\u5b57\u6458\u8981\uff08Digital Digest\uff09\u3002\u5b83\u662f\u4e00\u4e2a\u552f\u4e00\u5bf9\u5e94\u4e00\u4e2a\u6d88\u606f\u6216\u6587\u672c\u7684\u56fa\u5b9a\u957f\u5ea6\u7684\u503c\uff0c\u5b83\u7531\u4e00\u4e2a\u5355\u5411 Hash \u52a0\u5bc6\u51fd\u6570\u5bf9\u6d88\u606f\u8fdb\u884c\u4f5c\u7528\u800c\u4ea7\u751f\u3002\u5982\u679c\u6d88\u606f\u5728\u9014\u4e2d\u6539\u53d8\u4e86\uff0c\u5219\u63a5\u6536\u8005\u901a\u8fc7\u5bf9\u6536\u5230\u6d88\u606f\u7684\u65b0\u4ea7\u751f\u7684\u6458\u8981\u4e0e\u539f\u6458\u8981\u6bd4\u8f83\uff0c\u5c31\u53ef\u77e5\u9053\u6d88\u606f\u662f\u5426\u88ab\u6539\u53d8\u4e86\u3002\u56e0\u6b64\u6d88\u606f\u6458\u8981\u4fdd\u8bc1\u4e86\u6d88\u606f\u7684\u5b8c\u6574\u6027\u3002"),(0,o.yg)("p",null,'\u6d88\u606f\u6458\u8981\u91c7\u7528\u5355\u5411 Hash \u51fd\u6570\u5c06\u9700\u52a0\u5bc6\u7684\u660e\u6587"\u6458\u8981"\u6210\u4e00\u4e32\u56fa\u5b9a\u4f4d\u6570\uff08\u5982 128bit\uff09\u7684\u5bc6\u6587\uff0c\u8fd9\u4e00\u4e32\u5bc6\u6587\u4ea6\u79f0\u4e3a\u6570\u5b57\u6307\u7eb9\uff08Finger Print\uff09\uff0c\u5b83\u6709\u56fa\u5b9a\u7684\u957f\u5ea6\uff0c\u4e14\u4e0d\u540c\u7684\u660e\u6587\u6458\u8981\u6210\u5bc6\u6587\uff0c\u5176\u7ed3\u679c\u603b\u662f\u4e0d\u540c\u7684\uff0c\u800c\u540c\u6837\u7684\u660e\u6587\u5176\u6458\u8981\u5fc5\u5b9a\u4e00\u81f4\u3002\u8fd9\u6837\u8fd9\u4e32\u6458\u8981\u4fbf\u53ef\u6210\u4e3a\u9a8c\u8bc1\u660e\u6587\u662f\u5426\u662f\u201c\u771f\u8eab\u201d\u7684\u201c\u6307\u7eb9\u201d\u4e86\u3002'),(0,o.yg)("p",null,"\u6d88\u606f\u6458\u8981\u5177\u6709\u4e0d\u53ef\u9006\u6027\uff0c\u5728\u6d88\u606f\u6458\u8981\u751f\u6210\u8fc7\u7a0b\u4e2d\uff0c\u4f1a\u4e22\u5931\u5f88\u591a\u539f\u6587\u7684\u4fe1\u606f\uff0c\u800c\u4e14\u65e0\u6cd5\u627e\u56de\u3002\u4e00\u4e2a\u597d\u7684\u6458\u8981\u7b97\u6cd5\uff0c\u662f\u6781\u96be\u4ea7\u751f Hash \u78b0\u649e\u7684\uff0c\u4e5f\u5c31\u662f\u627e\u5230\u53e6\u4e00\u6bb5\u660e\u6587\u7ecf\u8ba1\u7b97\u540e\u4ea7\u751f\u76f8\u540c\u7684\u6458\u8981\u3002"),(0,o.yg)("h3",{id:"md5"},"MD5"),(0,o.yg)("p",null,"MD \u662f\u5e94\u7528\u975e\u5e38\u5e7f\u6cdb\u7684\u4e00\u4e2a\u7b97\u6cd5\u5bb6\u65cf\uff0c\u5c24\u5176\u662f MD5\uff08Message-Digest Algorithm 5\uff0c\u6d88\u606f\u6458\u8981\u7b97\u6cd5\u7248\u672c 5\uff09\uff0c\u5b83\u7531 MD2\u3001MD3\u3001MD4 \u53d1\u5c55\u800c\u6765\uff0c\u7531 Ron Rivest\uff08RSA \u516c\u53f8\uff09\u5728 1992 \u5e74\u63d0\u51fa\uff0c\u76ee\u524d\u88ab\u5e7f\u6cdb\u5e94\u7528\u4e8e\u6570\u636e\u5b8c\u6574\u6027\u6821\u9a8c\u3001\u6570\u636e\uff08\u6d88\u606f\uff09\u6458\u8981\u3001\u6570\u636e\u52a0\u5bc6\u7b49\u3002MD2\u3001MD4\u3001MD5 \u90fd\u4ea7\u751f 16 \u5b57\u8282\uff08128 \u4f4d\uff09\u7684\u6821\u9a8c\u503c\uff0c\u4e00\u822c\u7528 32 \u4f4d\u5341\u516d\u8fdb\u5236\u6570\u8868\u793a\u3002MD2 \u7684\u7b97\u6cd5\u8f83\u6162\u4f46\u76f8\u5bf9\u5b89\u5168\uff0cMD4 \u901f\u5ea6\u5f88\u5feb\uff0c\u4f46\u5b89\u5168\u6027\u4e0b\u964d\uff0cMD5 \u6bd4 MD4 \u66f4\u5b89\u5168\u3001\u901f\u5ea6\u66f4\u5feb\u3002"),(0,o.yg)("p",null,"\u76ee\u524d\u5728\u4e92\u8054\u7f51\u4e0a\u8fdb\u884c\u5927\u6587\u4ef6\u4f20\u8f93\u65f6\uff0c\u90fd\u8981\u5f97\u7528 MD5 \u7b97\u6cd5\u4ea7\u751f\u4e00\u4e2a\u4e0e\u6587\u4ef6\u5339\u914d\u7684\u3001\u5b58\u50a8 MD5 \u503c\u7684\u6587\u672c\u6587\u4ef6\uff08\u540e\u7f00\u540d\u4e3a .md5 \u6216.md5sum\uff09\uff0c\u8fd9\u6837\u63a5\u6536\u8005\u5728\u63a5\u6536\u5230\u6587\u4ef6\u540e\uff0c\u5c31\u53ef\u4ee5\u5229\u7528\u4e0e SFV \u7c7b\u4f3c\u7684\u65b9\u6cd5\u6765\u68c0\u67e5\u6587\u4ef6\u5b8c\u6574\u6027\uff0c\u76ee\u524d\u7edd\u5927\u591a\u6570\u5927\u578b\u8f6f\u4ef6\u516c\u53f8\u6216\u5f00\u6e90\u7ec4\u7ec7\u90fd\u662f\u4ee5\u8fd9\u79cd\u65b9\u5f0f\u6765\u6821\u9a8c\u6570\u636e\u5b8c\u6574\u6027\uff0c\u800c\u4e14\u90e8\u5206\u64cd\u4f5c\u7cfb\u7edf\u4e5f\u4f7f\u7528\u6b64\u7b97\u6cd5\u6765\u5bf9\u7528\u6237\u5bc6\u7801\u8fdb\u884c\u52a0\u5bc6\uff0c\u53e6\u5916\uff0c\u5b83\u4e5f\u662f\u76ee\u524d\u8ba1\u7b97\u673a\u72af\u7f6a\u4e2d\u6570\u636e\u53d6\u8bc1\u7684\u6700\u5e38\u7528\u7b97\u6cd5\u3002\u4e0e MD5 \u76f8\u5173\u7684\u5de5\u5177\u6709\u5f88\u591a\uff0c\u5982 WinMD5 \u7b49\u3002"),(0,o.yg)("h3",{id:"sha"},"SHA"),(0,o.yg)("p",null,"SHA\uff08Secure Hash Algorithm\uff09\u662f\u7531\u7f8e\u56fd\u4e13\u95e8\u5236\u5b9a\u5bc6\u7801\u7b97\u6cd5\u7684\u6807\u51c6\u673a\u6784\u2014\u2014\u7f8e\u56fd\u56fd\u5bb6\u6807\u51c6\u6280\u672f\u7814\u7a76\u9662\uff08NIST\uff09\u5236\u5b9a\u7684\uff0cSHA \u7cfb\u5217\u7b97\u6cd5\u7684\u6458\u8981\u957f\u5ea6\u5206\u522b\u4e3a\uff1aSHA-1 \u4e3a 20 \u5b57\u8282\uff08160 \u4f4d\uff09\u3001SHA-224 \u4e3a 32 \u5b57\u8282\uff08224 \u4f4d\uff09\u3001SHA-256 \u4e3a 32 \u5b57\u8282\uff08256 \u4f4d\uff09\u3001SHA-384 \u4e3a 48 \u5b57\u8282\uff08384 \u4f4d\uff09\u3001SHA-512 \u4e3a 64 \u5b57\u8282\uff08512 \u4f4d\uff09\uff0c\u7531\u4e8e\u5b83\u4ea7\u751f\u7684\u6570\u636e\u6458\u8981\u7684\u957f\u5ea6\u66f4\u957f\uff0c\u56e0\u6b64\u66f4\u96be\u4ee5\u53d1\u751f\u78b0\u649e\uff0c\u56e0\u6b64\u8f83\u4e4b MD5 \u66f4\u4e3a\u5b89\u5168\uff0c\u5b83\u662f\u672a\u6765\u6570\u636e\u6458\u8981\u7b97\u6cd5\u7684\u53d1\u5c55\u65b9\u5411\u3002\u7531\u4e8e SHA \u7cfb\u5217\u7b97\u6cd5\u7684\u6570\u636e\u6458\u8981\u957f\u5ea6\u8f83\u957f\uff0c\u56e0\u6b64\u5176\u8fd0\u7b97\u901f\u5ea6\u4e0e MD5 \u76f8\u6bd4\uff0c\u4e5f\u76f8\u5bf9\u8f83\u6162\u3002"),(0,o.yg)("p",null,"\u76ee\u524d SHA1 \u7684\u5e94\u7528\u8f83\u4e3a\u5e7f\u6cdb\uff0c\u4e3b\u8981\u5e94\u7528\u4e8e CA \u548c\u6570\u5b57\u8bc1\u4e66\u4e2d\uff0c\u53e6\u5916\u5728\u76ee\u524d\u4e92\u8054\u7f51\u4e2d\u6d41\u884c\u7684 BT \u8f6f\u4ef6\u4e2d\uff0c\u4e5f\u662f\u4f7f\u7528 SHA1 \u6765\u8fdb\u884c\u6587\u4ef6\u6821\u9a8c\u7684\u3002"),(0,o.yg)("h3",{id:"mac"},"MAC"),(0,o.yg)("p",null,"MAC \u7b97\u6cd5 (Message Authentication Codes \u6d88\u606f\u8ba4\u8bc1\u7801\u7b97\u6cd5) \u542b\u6709\u5bc6\u94a5\u7684\u6563\u5217\u51fd\u6570\u7b97\u6cd5\uff0c\u517c\u5bb9\u4e86 MD \u548c SHA \u7b97\u6cd5\u7684\u7279\u6027\uff0c\u5e76\u5728\u6b64\u57fa\u7840\u4e0a\u52a0\u4e0a\u4e86\u5bc6\u94a5\u3002\u56e0\u6b64 MAC \u7b97\u6cd5\u4e5f\u7ecf\u5e38\u88ab\u79f0\u4f5c HMAC \u7b97\u6cd5\u3002\u6d88\u606f\u7684\u6563\u5217\u503c\u7531\u53ea\u6709\u901a\u4fe1\u53cc\u65b9\u77e5\u9053\u7684\u5bc6\u94a5\u6765\u63a7\u5236\u3002\u6b64\u65f6 Hash \u503c\u79f0\u4f5c MAC\u3002"),(0,o.yg)("p",null,"\u7ecf\u8fc7 MAC \u7b97\u6cd5\u5f97\u5230\u7684\u6458\u8981\u503c\u4e5f\u53ef\u4ee5\u4f7f\u7528\u5341\u516d\u8fdb\u5236\u7f16\u7801\u8868\u793a\uff0c\u5176\u6458\u8981\u503c\u5f97\u957f\u5ea6\u4e0e\u5b9e\u73b0\u7b97\u6cd5\u7684\u6458\u8981\u503c\u957f\u5ea6\u76f8\u540c\u3002\u4f8b\u5982 HmacSHA \u7b97\u6cd5\u5f97\u5230\u7684\u6458\u8981\u957f\u5ea6\u5c31\u662f SHA1 \u7b97\u6cd5\u5f97\u5230\u7684\u6458\u8981\u957f\u5ea6\uff0c\u90fd\u662f 160 \u4f4d\u4e8c\u8fdb\u5236\u6570\uff0c\u6362\u7b97\u6210\u5341\u516d\u8fdb\u5236\u7684\u7f16\u7801\u4e3a 40 \u4f4d\u3002"),(0,o.yg)("p",null,"\u6d41\u7a0b\u5206\u6790\uff1a"),(0,o.yg)("p",null,"\u7532\u4e59\u53cc\u65b9\u8fdb\u884c\u6570\u636e\u4ea4\u6362\u53ef\u4ee5\u91c7\u53d6\u5982\u4e0b\u6d41\u7a0b\uff1a"),(0,o.yg)("p",null,"1.\u7532\u65b9\u5411\u4e59\u65b9\u516c\u5e03\u6458\u8981\u7b97\u6cd5\uff08\u5c31\u662f\u6307\u5b9a\u8981\u4f7f\u7528\u7684\u6458\u8981\u7b97\u6cd5\u540d\uff09"),(0,o.yg)("p",null,"2.\u7532\u4e59\u53cc\u65b9\u6309\u7167\u7ea6\u5b9a\u6784\u9020\u5bc6\u94a5\uff0c\u53cc\u65b9\u62e5\u6709\u76f8\u540c\u7684\u5bc6\u94a5\uff08\u4e00\u822c\u662f\u4e00\u65b9\u6784\u9020\u5bc6\u94a5\u540e\u901a\u77e5\u53e6\u5916\u4e00\u65b9\uff0c\u6b64\u8fc7\u7a0b\u4e0d\u9700\u8981\u901a\u8fc7\u7a0b\u5e8f\u5b9e\u73b0\uff0c\u5c31\u662f\u53cc\u65b9\u7ea6\u5b9a\u4e2a\u5b57\u7b26\u4e32\uff0c\u4f46\u662f\u8fd9\u4e2a\u5b57\u7b26\u4e32\u53ef\u4e0d\u662f\u968f\u4fbf\u8bbe\u5b9a\u7684\uff0c\u4e5f\u662f\u901a\u8fc7\u76f8\u5173\u7b97\u6cd5\u83b7\u53d6\u7684\uff09"),(0,o.yg)("p",null,"3.\u7532\u65b9\u4f7f\u7528\u5bc6\u94a5\u5bf9\u6d88\u606f\u505a\u6458\u8981\u5904\u7406\uff0c\u7136\u540e\u5c06\u6d88\u606f\u548c\u751f\u6210\u7684\u6458\u8981\u6d88\u606f\u4e00\u540c\u53d1\u9001\u7ed9\u4e59\u65b9"),(0,o.yg)("p",null,"4.\u4e59\u65b9\u6536\u5230\u6d88\u606f\u540e\uff0c\u4f7f\u7528\u7532\u65b9\u5df2\u7ecf\u516c\u5e03\u7684\u6458\u8981\u7b97\u6cd5+\u7ea6\u5b9a\u597d\u7684\u5bc6\u94a5 \u5bf9\u6536\u5230\u7684\u6d88\u606f\u8fdb\u884c\u6458\u8981\u5904\u7406\u3002\u7136\u540e\u6bd4\u5bf9\u81ea\u5df1\u7684\u6458\u8981\u6d88\u606f\u548c\u7532\u65b9\u53d1\u8fc7\u6765\u7684\u6458\u8981\u6d88\u606f\u3002\u7504\u522b\u6d88\u606f\u662f\u5426\u662f\u7532\u65b9\u53d1\u9001\u8fc7\u6765\u7684\u3002"))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/84ea7d53.7dd21578.js b/assets/js/84ea7d53.c3cd7483.js similarity index 99% rename from assets/js/84ea7d53.7dd21578.js rename to assets/js/84ea7d53.c3cd7483.js index d0e6c7a40..5910e84d7 100644 --- a/assets/js/84ea7d53.7dd21578.js +++ b/assets/js/84ea7d53.c3cd7483.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[0],{5680:(e,t,n)=>{n.d(t,{xA:()=>y,yg:()=>m});var a=n(6540);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function p(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var g=a.createContext({}),u=function(e){var t=a.useContext(g),n=t;return e&&(n="function"==typeof e?e(t):p(p({},t),e)),n},y=function(e){var t=u(e.components);return a.createElement(g.Provider,{value:t},e.children)},o="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,l=e.originalType,g=e.parentName,y=i(e,["components","mdxType","originalType","parentName"]),o=u(n),c=r,m=o["".concat(g,".").concat(c)]||o[c]||d[c]||l;return n?a.createElement(m,p(p({ref:t},y),{},{components:n})):a.createElement(m,p({ref:t},y))}));function m(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=n.length,p=new Array(l);p[0]=c;var i={};for(var g in t)hasOwnProperty.call(t,g)&&(i[g]=t[g]);i.originalType=e,i[o]="string"==typeof e?e:r,p[1]=i;for(var u=2;u{n.r(t),n.d(t,{assets:()=>g,contentTitle:()=>p,default:()=>d,frontMatter:()=>l,metadata:()=>i,toc:()=>u});var a=n(8168),r=(n(6540),n(5680));const l={},p=void 0,i={unversionedId:"study/net/vpn",id:"study/net/vpn",title:"vpn",description:"\u7b80\u4ecb",source:"@site/docs/study/net/vpn.md",sourceDirName:"study/net",slug:"/study/net/vpn",permalink:"/docs/study/net/vpn",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"tuntap",permalink:"/docs/study/net/tuntap"},next:{title:"\u4ee3\u7406",permalink:"/docs/study/net/\u4ee3\u7406"}},g={},u=[{value:"\u7b80\u4ecb",id:"\u7b80\u4ecb",level:3},{value:"\u5206\u7c7b",id:"\u5206\u7c7b",level:3},{value:"\u6309 VPN \u7684\u534f\u8bae\u5206\u7c7b",id:"\u6309-vpn-\u7684\u534f\u8bae\u5206\u7c7b",level:4},{value:"\u5206\u7c7b\u6bd4\u8f83",id:"\u5206\u7c7b\u6bd4\u8f83",level:4},{value:"OpenVPN",id:"openvpn",level:3},{value:"PPTP",id:"pptp",level:3},{value:"L2TP",id:"l2tp",level:3},{value:"IKEv2/IPSec",id:"ikev2ipsec",level:3},{value:"SSTP",id:"sstp",level:3},{value:"WireGuard",id:"wireguard",level:3},{value:"Shadowsocks",id:"shadowsocks",level:3},{value:"\u5bf9\u6bd4",id:"\u5bf9\u6bd4",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],y={toc:u},o="wrapper";function d(e){let{components:t,...l}=e;return(0,r.yg)(o,(0,a.A)({},y,l,{components:t,mdxType:"MDXLayout"}),(0,r.yg)("h3",{id:"\u7b80\u4ecb"},"\u7b80\u4ecb"),(0,r.yg)("p",null,"\u865a\u62df\u4e13\u7528\u7f51\u7edc(VPN)\u7684\u529f\u80fd\u662f\uff1a\u5728\u516c\u7528\u7f51\u7edc\u4e0a\u5efa\u7acb\u4e13\u7528\u7f51\u7edc\uff0c\u8fdb\u884c\u52a0\u5bc6\u901a\u8baf\u3002\u5728\u4f01\u4e1a\u7f51\u7edc\u4e2d\u6709\u5e7f\u6cdb\u5e94\u7528\u3002VPN \u7f51\u5173\u901a\u8fc7\u5bf9\u6570\u636e\u5305\u7684\u52a0\u5bc6\u548c\u6570\u636e\u5305\u76ee\u6807\u5730\u5740\u7684\u8f6c\u6362\u5b9e\u73b0\u8fdc\u7a0b\u8bbf\u95ee\u3002VPN \u53ef\u901a\u8fc7\u670d\u52a1\u5668\u3001\u786c\u4ef6\u3001\u8f6f\u4ef6\u7b49\u591a\u79cd\u65b9\u5f0f\u5b9e\u73b0\u3002"),(0,r.yg)("p",null,"VPN \u5c5e\u4e8e\u8fdc\u7a0b\u8bbf\u95ee\u6280\u672f\uff0c\u7b80\u5355\u5730\u8bf4\u5c31\u662f\u5229\u7528\u516c\u7528\u7f51\u7edc\u67b6\u8bbe\u4e13\u7528\u7f51\u7edc\u3002\u4f8b\u5982\u67d0\u516c\u53f8\u5458\u5de5\u51fa\u5dee\u5230\u5916\u5730\uff0c\u4ed6\u60f3\u8bbf\u95ee\u4f01\u4e1a\u5185\u7f51\u7684\u670d\u52a1\u5668\u8d44\u6e90\uff0c\u8fd9\u79cd\u8bbf\u95ee\u5c31\u5c5e\u4e8e\u8fdc\u7a0b\u8bbf\u95ee\u3002"),(0,r.yg)("p",null,"\u8ba9\u5916\u5730\u5458\u5de5\u8bbf\u95ee\u5230\u5185\u7f51\u8d44\u6e90\uff0c\u5229\u7528 VPN \u7684\u89e3\u51b3\u65b9\u6cd5\u5c31\u662f\u5728\u5185\u7f51\u4e2d\u67b6\u8bbe\u4e00\u53f0 VPN \u670d\u52a1\u5668\u3002\u5916\u5730\u5458\u5de5\u5728\u5f53\u5730\u8fde\u4e0a\u4e92\u8054\u7f51\u540e\uff0c\u901a\u8fc7\u4e92\u8054\u7f51\u8fde\u63a5 VPN \u670d\u52a1\u5668\uff0c\u7136\u540e\u901a\u8fc7 VPN \u670d\u52a1\u5668\u8fdb\u5165\u4f01\u4e1a\u5185\u7f51\u3002\u4e3a\u4e86\u4fdd\u8bc1\u6570\u636e\u5b89\u5168\uff0cVPN \u670d\u52a1\u5668\u548c\u5ba2\u6237\u673a\u4e4b\u95f4\u7684\u901a\u8baf\u6570\u636e\u90fd\u8fdb\u884c\u4e86\u52a0\u5bc6\u5904\u7406\u3002\u6709\u4e86\u6570\u636e\u52a0\u5bc6\uff0c\u5c31\u53ef\u4ee5\u8ba4\u4e3a\u6570\u636e\u662f\u5728\u4e00\u6761\u4e13\u7528\u7684\u6570\u636e\u94fe\u8def\u4e0a\u8fdb\u884c\u5b89\u5168\u4f20\u8f93\uff0c\u5c31\u5982\u540c\u4e13\u95e8\u67b6\u8bbe\u4e86\u4e00\u4e2a\u4e13\u7528\u7f51\u7edc\u4e00\u6837\uff0c\u4f46\u5b9e\u9645\u4e0a VPN \u4f7f\u7528\u7684\u662f\u4e92\u8054\u7f51\u4e0a\u7684\u516c\u7528\u94fe\u8def\uff0c\u56e0\u6b64 VPN \u79f0\u4e3a\u865a\u62df\u4e13\u7528\u7f51\u7edc\uff0c\u5176\u5b9e\u8d28\u4e0a\u5c31\u662f\u5229\u7528\u52a0\u5bc6\u6280\u672f\u5728\u516c\u7f51\u4e0a\u5c01\u88c5\u51fa\u4e00\u4e2a\u6570\u636e\u901a\u8baf\u96a7\u9053\u3002\u6709\u4e86 VPN \u6280\u672f\uff0c\u7528\u6237\u65e0\u8bba\u662f\u5728\u5916\u5730\u51fa\u5dee\u8fd8\u662f\u5728\u5bb6\u4e2d\u529e\u516c\uff0c\u53ea\u8981\u80fd\u4e0a\u4e92\u8054\u7f51\u5c31\u80fd\u5229\u7528 VPN \u8bbf\u95ee\u5185\u7f51\u8d44\u6e90\uff0c\u8fd9\u5c31\u662f VPN \u5728\u4f01\u4e1a\u4e2d\u5e94\u7528\u5f97\u5982\u6b64\u5e7f\u6cdb\u7684\u539f\u56e0\u3002"),(0,r.yg)("h3",{id:"\u5206\u7c7b"},"\u5206\u7c7b"),(0,r.yg)("h4",{id:"\u6309-vpn-\u7684\u534f\u8bae\u5206\u7c7b"},"\u6309 VPN \u7684\u534f\u8bae\u5206\u7c7b"),(0,r.yg)("p",null,"VPN \u7684\u96a7\u9053\u534f\u8bae\u4e3b\u8981\u6709\u4e09\u79cd\uff0cPPTP\u3001L2TP \u548c IPSec\uff0c\u5176\u4e2d PPTP \u548c L2TP \u534f\u8bae\u5de5\u4f5c\u5728 OSI \u6a21\u578b\u7684\u7b2c\u4e8c\u5c42\uff0c\u53c8\u79f0\u4e3a\u4e8c\u5c42\u96a7\u9053\u534f\u8bae\uff1bIPSec \u662f\u7b2c\u4e09\u5c42\u96a7\u9053\u534f\u8bae\u3002"),(0,r.yg)("p",null,(0,r.yg)("img",{alt:"OSI \u6a21\u578b",src:n(6323).A,width:"640",height:"273"})),(0,r.yg)("h4",{id:"\u5206\u7c7b\u6bd4\u8f83"},"\u5206\u7c7b\u6bd4\u8f83"),(0,r.yg)("table",null,(0,r.yg)("thead",{parentName:"table"},(0,r.yg)("tr",{parentName:"thead"},(0,r.yg)("th",{parentName:"tr",align:null},"VPN \u5206\u7c7b"),(0,r.yg)("th",{parentName:"tr",align:null},"\u901f\u5ea6"),(0,r.yg)("th",{parentName:"tr",align:null},"\u5b89\u5168"),(0,r.yg)("th",{parentName:"tr",align:null},"\u52a0\u5bc6"))),(0,r.yg)("tbody",{parentName:"table"},(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},"OpenVPN"),(0,r.yg)("td",{parentName:"tr",align:null},"\u826f"),(0,r.yg)("td",{parentName:"tr",align:null},"\u4f18"),(0,r.yg)("td",{parentName:"tr",align:null},"\u4f18")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},"PPTP"),(0,r.yg)("td",{parentName:"tr",align:null},"\u826f"),(0,r.yg)("td",{parentName:"tr",align:null},"\u5dee"),(0,r.yg)("td",{parentName:"tr",align:null},"\u5dee")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},"L2TP"),(0,r.yg)("td",{parentName:"tr",align:null},"\u826f"),(0,r.yg)("td",{parentName:"tr",align:null},"\u5dee"),(0,r.yg)("td",{parentName:"tr",align:null},"\u5dee\uff08\u9664\u975e\u548c IPSec \u914d\u5408\uff09")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},"IKEv2/IPSec"),(0,r.yg)("td",{parentName:"tr",align:null},"\u826f"),(0,r.yg)("td",{parentName:"tr",align:null},"\u4f18"),(0,r.yg)("td",{parentName:"tr",align:null},"\u4f18")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},"SSTP"),(0,r.yg)("td",{parentName:"tr",align:null},"\u5dee"),(0,r.yg)("td",{parentName:"tr",align:null},"\u5dee"),(0,r.yg)("td",{parentName:"tr",align:null},"\u826f")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},"WireGuard"),(0,r.yg)("td",{parentName:"tr",align:null},"\u4f18"),(0,r.yg)("td",{parentName:"tr",align:null},"\u4f18"),(0,r.yg)("td",{parentName:"tr",align:null},"\u4f18")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},"Shadowsocks"),(0,r.yg)("td",{parentName:"tr",align:null},"\u826f"),(0,r.yg)("td",{parentName:"tr",align:null},"\u826f"),(0,r.yg)("td",{parentName:"tr",align:null},"\u826f")))),(0,r.yg)("h3",{id:"openvpn"},"OpenVPN"),(0,r.yg)("p",null,"OpenVPN \u662f\u4e00\u4e2a\u57fa\u4e8e OpenSSL \u5e93\u7684",(0,r.yg)("strong",{parentName:"p"},(0,r.yg)("em",{parentName:"strong"},"\u5e94\u7528\u5c42"))," VPN \u5b9e\u73b0\u3002\u548c\u4f20\u7edf VPN \u76f8\u6bd4\uff0c\u5b83\u7684\u4f18\u70b9\u662f\u7b80\u5355\u6613\u7528\u3002"),(0,r.yg)("p",null,"OpenVpn \u7684\u6280\u672f\u6838\u5fc3\u662f\u865a\u62df\u7f51\u5361\uff0c\u5176\u6b21\u662f SSL \u534f\u8bae\u5b9e\u73b0\u3002"),(0,r.yg)("p",null,"\u5bf9\u865a\u62df\u7f51\u5361\u53ca\u5176\u5728 OpenVpn \u7684\u4e2d\u7684\u5de5\u4f5c\u673a\u7406\u8fdb\u884c\u4ecb\u7ecd\uff1a"),(0,r.yg)("p",null,"\u865a\u62df\u7f51\u5361\u662f\u4f7f\u7528\u7f51\u7edc\u5e95\u5c42\u7f16\u7a0b\u6280\u672f\u5b9e\u73b0\u7684\u4e00\u4e2a\u9a71\u52a8\u8f6f\u4ef6\uff0c\u5b89\u88c5\u540e\u5728\u4e3b\u673a\u4e0a\u591a\u51fa\u73b0\u4e00\u4e2a\u7f51\u5361\uff0c\u53ef\u4ee5\u50cf\u5176\u5b83\u7f51\u5361\u4e00\u6837\u8fdb\u884c\u914d\u7f6e\u3002\u670d\u52a1\u7a0b\u5e8f\u53ef\u4ee5\u5728\u5e94\u7528\u5c42\u6253\u5f00\u865a\u62df\u7f51\u5361\uff0c\u5982\u679c\u5e94\u7528\u8f6f\u4ef6\uff08\u5982 IE\uff09\u5411\u865a\u62df\u7f51\u5361\u53d1\u9001\u6570\u636e\uff0c\u5219\u670d\u52a1\u7a0b\u5e8f\u53ef\u4ee5\u8bfb\u53d6\u5230\u8be5\u6570\u636e\uff0c\u5982\u679c\u670d\u52a1\u7a0b\u5e8f\u5199\u5408\u9002\u7684\u6570\u636e\u5230\u865a\u62df\u7f51\u5361\uff0c\u5e94\u7528\u8f6f\u4ef6\u4e5f\u53ef\u4ee5\u63a5\u6536\u5f97\u5230\u3002\u865a\u62df\u7f51\u5361\u5728\u5f88\u591a\u7684\u64cd\u4f5c\u7cfb\u7edf\u4e0b\u90fd\u6709\u76f8\u5e94\u7684\u5b9e\u73b0\uff0c\u8fd9\u4e5f\u662f OpenVpn \u80fd\u591f\u8de8\u5e73\u53f0\u4e00\u4e2a\u5f88\u91cd\u8981\u7684\u7406\u7531\u3002"),(0,r.yg)("p",null,"\u5728 OpenVpn \u4e2d\uff0c\u5982\u679c\u7528\u6237\u8bbf\u95ee\u4e00\u4e2a\u8fdc\u7a0b\u7684\u865a\u62df\u5730\u5740\uff08\u5c5e\u4e8e\u865a\u62df\u7f51\u5361\u914d\u7528\u7684\u5730\u5740\u7cfb\u5217\uff0c\u533a\u522b\u4e8e\u771f\u5b9e\u5730\u5740\uff09\uff0c\u5219\u64cd\u4f5c\u7cfb\u7edf\u4f1a\u901a\u8fc7\u8def\u7531\u673a\u5236\u5c06\u6570\u636e\u5305\uff08TUN \u6a21\u5f0f\uff09\u6216\u6570\u636e\u5e27\uff08TAP \u6a21\u5f0f\uff09\u53d1\u9001\u5230\u865a\u62df\u7f51\u5361\u4e0a\uff0c\u670d\u52a1\u7a0b\u5e8f\u63a5\u6536\u8be5\u6570\u636e\u5e76\u8fdb\u884c\u76f8\u5e94\u7684\u5904\u7406\u540e\uff0c\u901a\u8fc7 SOCKET \u4ece\u5916\u7f51\u4e0a\u53d1\u9001\u51fa\u53bb\uff0c\u8fdc\u7a0b\u670d\u52a1\u7a0b\u5e8f\u901a\u8fc7 SOCKET \u4ece\u5916\u7f51\u4e0a\u63a5\u6536\u6570\u636e\uff0c\u5e76\u8fdb\u884c\u76f8\u5e94\u7684\u5904\u7406\u540e\uff0c\u53d1\u9001\u7ed9\u865a\u62df\u7f51\u5361\uff0c\u5219\u5e94\u7528\u8f6f\u4ef6\u53ef\u4ee5\u63a5\u6536\u5230\uff0c\u5b8c\u6210\u4e86\u4e00\u4e2a\u5355\u5411\u4f20\u8f93\u7684\u8fc7\u7a0b\uff0c\u53cd\u4e4b\u4ea6\u7136\u3002"),(0,r.yg)("p",null,(0,r.yg)("a",{parentName:"p",href:"https://community.openvpn.net/openvpn"},"https://community.openvpn.net/openvpn")),(0,r.yg)("p",null,(0,r.yg)("a",{parentName:"p",href:"https://pritunl.com/"},"https://pritunl.com/")),(0,r.yg)("h3",{id:"pptp"},"PPTP"),(0,r.yg)("p",null,"\u7531\u5fae\u8f6f\u548c\u5176\u4ed6\u516c\u53f8\u4e8e 1999 \u5e74\u5f00\u53d1\uff0c\u5e94\u7528\u975e\u5e38\u5e7f\u6cdb\uff0c\u4f46\u662f\u73b0\u5728\u57fa\u672c\u88ab\u8ba4\u4e3a\u662f\u4e0d\u5b89\u5168\u7684\u3001\u8fc7\u65f6\u7684\u3002"),(0,r.yg)("h3",{id:"l2tp"},"L2TP"),(0,r.yg)("p",null,"\u7b2c\u4e8c\u5c42\u96a7\u9053\u534f\u8bae\u5927\u7ea6\u4e0e PPTP \u540c\u65f6\u5f00\u53d1\u3002\u4f5c\u4e3a\u4e00\u79cd\u96a7\u9053\u534f\u8bae\uff0c\u5b83\u672c\u8eab\u4e0d\u52a0\u5bc6\u6570\u636e\uff0c\u56e0\u6b64\u901a\u5e38\u4e0e IPSec \u914d\u5bf9\u3002\u8fd9\u79cd\u6a21\u5757\u5316\u4f7f\u5b83\u80fd\u591f\u5229\u7528 AES \u52a0\u5bc6\u3002"),(0,r.yg)("p",null,"\u548c PPTP \u5dee\u4e0d\u591a\uff0c\u5e94\u7528\u4e5f\u5f88\u5e7f\u6cdb\uff0c\u4f46\u662f\u5b58\u5728\u4e00\u5b9a\u7684\u9632\u706b\u5899\u95ee\u9898\u3002"),(0,r.yg)("h3",{id:"ikev2ipsec"},"IKEv2/IPSec"),(0,r.yg)("p",null,"\u601d\u79d1\u548c\u5fae\u8f6f\u5f00\u53d1\uff0c\u4e5f\u6709\u5f88\u591a\u5f00\u6e90\u7248\u672c\uff0c\u5bf9\u79fb\u52a8\u7aef\u652f\u6301\u66f4\u52a0\u53cb\u597d\u4e00\u4e9b\u3002"),(0,r.yg)("h3",{id:"sstp"},"SSTP"),(0,r.yg)("p",null,"\u662f\u5fae\u8f6f\u5f00\u53d1\u7528\u4e8e\u66ff\u4ee3 PPTP \u7684\u65b0\u534f\u8bae\uff0c\u4f46\u662f\u4e0d\u662f\u5f00\u6e90\u7684\u3002"),(0,r.yg)("h3",{id:"wireguard"},"WireGuard"),(0,r.yg)("p",null,"WireGuard \u662f\u6700\u65b0\u7684\uff0c\u4e8e 2016 \u5e74\u5f00\u53d1\u3002\u4ed6\u7684\u4ee3\u7801\u91cf\u975e\u5e38\u5c0f\uff0c\u53ea\u6709 4K\uff0c\u4ee3\u7801\u91cf\u5c0f\uff0c\u610f\u5473\u7740\u597d\u7ef4\u62a4\u4ee5\u53ca\u5bb9\u6613\u53d1\u73b0\u95ee\u9898\u3002\u5f00\u6e90\u3002"),(0,r.yg)("p",null,"\u53c8\u5feb\u53c8\u5b89\u5168\uff0c\u4f46\u662f\u5bf9\u64cd\u4f5c\u7cfb\u7edf\u7684\u7248\u672c\u8981\u6c42\u8f83\u9ad8\u3002"),(0,r.yg)("h3",{id:"shadowsocks"},"Shadowsocks"),(0,r.yg)("p",null,"Shadowsocks \u662f\u4e00\u4e2a\u514d\u8d39\u7684\u5f00\u6e90\u52a0\u5bc6\u534f\u8bae\u9879\u76ee\u3002\u5b83\u57fa\u4e8e SOCKS5 \u4ee3\u7406\uff0c\u5373 SOCKS \u534f\u8bae\u7684\u7b2c\u4e94\u4e2a\u7248\u672c\uff0c\u7528\u4e8e\u901a\u8fc7\u4ee3\u7406\u8def\u7531\u60a8\u7684\u6d41\u91cf\u3002"),(0,r.yg)("p",null,"Shadowsocks \u65e8\u5728\u63d0\u4f9b\u8fd9\u79cd\u52a0\u5bc6\uff0c\u56e0\u4e3a\u5b83\u7684\u76ee\u7684\u53ea\u6709\u4e00\u4e2a\uff1a\u7ed5\u8fc7\u4e2d\u56fd\u9632\u706b\u957f\u57ce\u3002"),(0,r.yg)("h3",{id:"\u5bf9\u6bd4"},"\u5bf9\u6bd4"),(0,r.yg)("p",null,"IPSec \u534f\u8bae\u5de5\u4f5c\u5728 OSI \u6a21\u578b\u7684\u7b2c\u4e09\u5c42\uff0c\u4f7f\u5176\u5728\u5355\u72ec\u4f7f\u7528\u65f6\u9002\u4e8e\u4fdd\u62a4\u57fa\u4e8e TCP \u6216 UDP \u7684\u534f\u8bae\uff08\u5982\u5b89\u5168\u5957\u63a5\u5b50\u5c42\uff08SSL\uff09\u5c31\u4e0d\u80fd\u4fdd\u62a4 UDP \u5c42\u7684\u901a\u4fe1\u6d41\uff09\u3002\u8fd9\u5c31\u610f\u5473\u7740\uff0c\u4e0e\u4f20\u8f93\u5c42\u6216\u66f4\u9ad8\u5c42\u7684\u534f\u8bae\u76f8\u6bd4\uff0cIPSec \u534f\u8bae\u5fc5\u987b\u5904\u7406\u53ef\u9760\u6027\u548c\u5206\u7247\u7684\u95ee\u9898\uff0c\u8fd9\u540c\u65f6\u4e5f\u589e\u52a0\u4e86\u5b83\u7684\u590d\u6742\u6027\u548c\u5904\u7406\u5f00\u9500\u3002\u76f8\u5bf9\u800c\u8a00\uff0cSSL/TLS \u4f9d\u9760\u66f4\u9ad8\u5c42\u7684 TCP\uff08OSI \u7684\u7b2c\u56db\u5c42\uff09\u6765\u7ba1\u7406\u53ef\u9760\u6027\u548c\u5206\u7247\u3002"),(0,r.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("a",{parentName:"li",href:"https://baike.baidu.com/item/%E8%99%9A%E6%8B%9F%E4%B8%93%E7%94%A8%E7%BD%91%E7%BB%9C/8747869?fromtitle=VPN&fromid=382304&fr=aladdin#reference-2"},"\u767e\u5ea6\u767e\u79d1-VPN")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("a",{parentName:"li",href:"https://baike.baidu.com/item/OpenVPN/10718662?fr=aladdin"},"\u767e\u5ea6\u767e\u79d1-OpenVPN")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("a",{parentName:"li",href:"https://www.w3cschool.cn/completemessageformat/"},"w3cshool-\u62a5\u6587\u683c\u5f0f\u5927\u5168"))))}d.isMDXComponent=!0},6323:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/images/osi-795934f0caf8f9ab1c108a754fd16564.webp"}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[0],{5680:(e,t,n)=>{n.d(t,{xA:()=>y,yg:()=>m});var a=n(6540);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function p(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var g=a.createContext({}),u=function(e){var t=a.useContext(g),n=t;return e&&(n="function"==typeof e?e(t):p(p({},t),e)),n},y=function(e){var t=u(e.components);return a.createElement(g.Provider,{value:t},e.children)},o="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,l=e.originalType,g=e.parentName,y=i(e,["components","mdxType","originalType","parentName"]),o=u(n),c=r,m=o["".concat(g,".").concat(c)]||o[c]||d[c]||l;return n?a.createElement(m,p(p({ref:t},y),{},{components:n})):a.createElement(m,p({ref:t},y))}));function m(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=n.length,p=new Array(l);p[0]=c;var i={};for(var g in t)hasOwnProperty.call(t,g)&&(i[g]=t[g]);i.originalType=e,i[o]="string"==typeof e?e:r,p[1]=i;for(var u=2;u{n.r(t),n.d(t,{assets:()=>g,contentTitle:()=>p,default:()=>d,frontMatter:()=>l,metadata:()=>i,toc:()=>u});var a=n(8168),r=(n(6540),n(5680));const l={},p=void 0,i={unversionedId:"study/net/vpn",id:"study/net/vpn",title:"vpn",description:"\u7b80\u4ecb",source:"@site/docs/study/net/vpn.md",sourceDirName:"study/net",slug:"/study/net/vpn",permalink:"/docs/study/net/vpn",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"tuntap",permalink:"/docs/study/net/tuntap"},next:{title:"\u4ee3\u7406",permalink:"/docs/study/net/\u4ee3\u7406"}},g={},u=[{value:"\u7b80\u4ecb",id:"\u7b80\u4ecb",level:3},{value:"\u5206\u7c7b",id:"\u5206\u7c7b",level:3},{value:"\u6309 VPN \u7684\u534f\u8bae\u5206\u7c7b",id:"\u6309-vpn-\u7684\u534f\u8bae\u5206\u7c7b",level:4},{value:"\u5206\u7c7b\u6bd4\u8f83",id:"\u5206\u7c7b\u6bd4\u8f83",level:4},{value:"OpenVPN",id:"openvpn",level:3},{value:"PPTP",id:"pptp",level:3},{value:"L2TP",id:"l2tp",level:3},{value:"IKEv2/IPSec",id:"ikev2ipsec",level:3},{value:"SSTP",id:"sstp",level:3},{value:"WireGuard",id:"wireguard",level:3},{value:"Shadowsocks",id:"shadowsocks",level:3},{value:"\u5bf9\u6bd4",id:"\u5bf9\u6bd4",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],y={toc:u},o="wrapper";function d(e){let{components:t,...l}=e;return(0,r.yg)(o,(0,a.A)({},y,l,{components:t,mdxType:"MDXLayout"}),(0,r.yg)("h3",{id:"\u7b80\u4ecb"},"\u7b80\u4ecb"),(0,r.yg)("p",null,"\u865a\u62df\u4e13\u7528\u7f51\u7edc(VPN)\u7684\u529f\u80fd\u662f\uff1a\u5728\u516c\u7528\u7f51\u7edc\u4e0a\u5efa\u7acb\u4e13\u7528\u7f51\u7edc\uff0c\u8fdb\u884c\u52a0\u5bc6\u901a\u8baf\u3002\u5728\u4f01\u4e1a\u7f51\u7edc\u4e2d\u6709\u5e7f\u6cdb\u5e94\u7528\u3002VPN \u7f51\u5173\u901a\u8fc7\u5bf9\u6570\u636e\u5305\u7684\u52a0\u5bc6\u548c\u6570\u636e\u5305\u76ee\u6807\u5730\u5740\u7684\u8f6c\u6362\u5b9e\u73b0\u8fdc\u7a0b\u8bbf\u95ee\u3002VPN \u53ef\u901a\u8fc7\u670d\u52a1\u5668\u3001\u786c\u4ef6\u3001\u8f6f\u4ef6\u7b49\u591a\u79cd\u65b9\u5f0f\u5b9e\u73b0\u3002"),(0,r.yg)("p",null,"VPN \u5c5e\u4e8e\u8fdc\u7a0b\u8bbf\u95ee\u6280\u672f\uff0c\u7b80\u5355\u5730\u8bf4\u5c31\u662f\u5229\u7528\u516c\u7528\u7f51\u7edc\u67b6\u8bbe\u4e13\u7528\u7f51\u7edc\u3002\u4f8b\u5982\u67d0\u516c\u53f8\u5458\u5de5\u51fa\u5dee\u5230\u5916\u5730\uff0c\u4ed6\u60f3\u8bbf\u95ee\u4f01\u4e1a\u5185\u7f51\u7684\u670d\u52a1\u5668\u8d44\u6e90\uff0c\u8fd9\u79cd\u8bbf\u95ee\u5c31\u5c5e\u4e8e\u8fdc\u7a0b\u8bbf\u95ee\u3002"),(0,r.yg)("p",null,"\u8ba9\u5916\u5730\u5458\u5de5\u8bbf\u95ee\u5230\u5185\u7f51\u8d44\u6e90\uff0c\u5229\u7528 VPN \u7684\u89e3\u51b3\u65b9\u6cd5\u5c31\u662f\u5728\u5185\u7f51\u4e2d\u67b6\u8bbe\u4e00\u53f0 VPN \u670d\u52a1\u5668\u3002\u5916\u5730\u5458\u5de5\u5728\u5f53\u5730\u8fde\u4e0a\u4e92\u8054\u7f51\u540e\uff0c\u901a\u8fc7\u4e92\u8054\u7f51\u8fde\u63a5 VPN \u670d\u52a1\u5668\uff0c\u7136\u540e\u901a\u8fc7 VPN \u670d\u52a1\u5668\u8fdb\u5165\u4f01\u4e1a\u5185\u7f51\u3002\u4e3a\u4e86\u4fdd\u8bc1\u6570\u636e\u5b89\u5168\uff0cVPN \u670d\u52a1\u5668\u548c\u5ba2\u6237\u673a\u4e4b\u95f4\u7684\u901a\u8baf\u6570\u636e\u90fd\u8fdb\u884c\u4e86\u52a0\u5bc6\u5904\u7406\u3002\u6709\u4e86\u6570\u636e\u52a0\u5bc6\uff0c\u5c31\u53ef\u4ee5\u8ba4\u4e3a\u6570\u636e\u662f\u5728\u4e00\u6761\u4e13\u7528\u7684\u6570\u636e\u94fe\u8def\u4e0a\u8fdb\u884c\u5b89\u5168\u4f20\u8f93\uff0c\u5c31\u5982\u540c\u4e13\u95e8\u67b6\u8bbe\u4e86\u4e00\u4e2a\u4e13\u7528\u7f51\u7edc\u4e00\u6837\uff0c\u4f46\u5b9e\u9645\u4e0a VPN \u4f7f\u7528\u7684\u662f\u4e92\u8054\u7f51\u4e0a\u7684\u516c\u7528\u94fe\u8def\uff0c\u56e0\u6b64 VPN \u79f0\u4e3a\u865a\u62df\u4e13\u7528\u7f51\u7edc\uff0c\u5176\u5b9e\u8d28\u4e0a\u5c31\u662f\u5229\u7528\u52a0\u5bc6\u6280\u672f\u5728\u516c\u7f51\u4e0a\u5c01\u88c5\u51fa\u4e00\u4e2a\u6570\u636e\u901a\u8baf\u96a7\u9053\u3002\u6709\u4e86 VPN \u6280\u672f\uff0c\u7528\u6237\u65e0\u8bba\u662f\u5728\u5916\u5730\u51fa\u5dee\u8fd8\u662f\u5728\u5bb6\u4e2d\u529e\u516c\uff0c\u53ea\u8981\u80fd\u4e0a\u4e92\u8054\u7f51\u5c31\u80fd\u5229\u7528 VPN \u8bbf\u95ee\u5185\u7f51\u8d44\u6e90\uff0c\u8fd9\u5c31\u662f VPN \u5728\u4f01\u4e1a\u4e2d\u5e94\u7528\u5f97\u5982\u6b64\u5e7f\u6cdb\u7684\u539f\u56e0\u3002"),(0,r.yg)("h3",{id:"\u5206\u7c7b"},"\u5206\u7c7b"),(0,r.yg)("h4",{id:"\u6309-vpn-\u7684\u534f\u8bae\u5206\u7c7b"},"\u6309 VPN \u7684\u534f\u8bae\u5206\u7c7b"),(0,r.yg)("p",null,"VPN \u7684\u96a7\u9053\u534f\u8bae\u4e3b\u8981\u6709\u4e09\u79cd\uff0cPPTP\u3001L2TP \u548c IPSec\uff0c\u5176\u4e2d PPTP \u548c L2TP \u534f\u8bae\u5de5\u4f5c\u5728 OSI \u6a21\u578b\u7684\u7b2c\u4e8c\u5c42\uff0c\u53c8\u79f0\u4e3a\u4e8c\u5c42\u96a7\u9053\u534f\u8bae\uff1bIPSec \u662f\u7b2c\u4e09\u5c42\u96a7\u9053\u534f\u8bae\u3002"),(0,r.yg)("p",null,(0,r.yg)("img",{alt:"OSI \u6a21\u578b",src:n(6323).A,width:"640",height:"273"})),(0,r.yg)("h4",{id:"\u5206\u7c7b\u6bd4\u8f83"},"\u5206\u7c7b\u6bd4\u8f83"),(0,r.yg)("table",null,(0,r.yg)("thead",{parentName:"table"},(0,r.yg)("tr",{parentName:"thead"},(0,r.yg)("th",{parentName:"tr",align:null},"VPN \u5206\u7c7b"),(0,r.yg)("th",{parentName:"tr",align:null},"\u901f\u5ea6"),(0,r.yg)("th",{parentName:"tr",align:null},"\u5b89\u5168"),(0,r.yg)("th",{parentName:"tr",align:null},"\u52a0\u5bc6"))),(0,r.yg)("tbody",{parentName:"table"},(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},"OpenVPN"),(0,r.yg)("td",{parentName:"tr",align:null},"\u826f"),(0,r.yg)("td",{parentName:"tr",align:null},"\u4f18"),(0,r.yg)("td",{parentName:"tr",align:null},"\u4f18")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},"PPTP"),(0,r.yg)("td",{parentName:"tr",align:null},"\u826f"),(0,r.yg)("td",{parentName:"tr",align:null},"\u5dee"),(0,r.yg)("td",{parentName:"tr",align:null},"\u5dee")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},"L2TP"),(0,r.yg)("td",{parentName:"tr",align:null},"\u826f"),(0,r.yg)("td",{parentName:"tr",align:null},"\u5dee"),(0,r.yg)("td",{parentName:"tr",align:null},"\u5dee\uff08\u9664\u975e\u548c IPSec \u914d\u5408\uff09")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},"IKEv2/IPSec"),(0,r.yg)("td",{parentName:"tr",align:null},"\u826f"),(0,r.yg)("td",{parentName:"tr",align:null},"\u4f18"),(0,r.yg)("td",{parentName:"tr",align:null},"\u4f18")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},"SSTP"),(0,r.yg)("td",{parentName:"tr",align:null},"\u5dee"),(0,r.yg)("td",{parentName:"tr",align:null},"\u5dee"),(0,r.yg)("td",{parentName:"tr",align:null},"\u826f")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},"WireGuard"),(0,r.yg)("td",{parentName:"tr",align:null},"\u4f18"),(0,r.yg)("td",{parentName:"tr",align:null},"\u4f18"),(0,r.yg)("td",{parentName:"tr",align:null},"\u4f18")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},"Shadowsocks"),(0,r.yg)("td",{parentName:"tr",align:null},"\u826f"),(0,r.yg)("td",{parentName:"tr",align:null},"\u826f"),(0,r.yg)("td",{parentName:"tr",align:null},"\u826f")))),(0,r.yg)("h3",{id:"openvpn"},"OpenVPN"),(0,r.yg)("p",null,"OpenVPN \u662f\u4e00\u4e2a\u57fa\u4e8e OpenSSL \u5e93\u7684",(0,r.yg)("strong",{parentName:"p"},(0,r.yg)("em",{parentName:"strong"},"\u5e94\u7528\u5c42"))," VPN \u5b9e\u73b0\u3002\u548c\u4f20\u7edf VPN \u76f8\u6bd4\uff0c\u5b83\u7684\u4f18\u70b9\u662f\u7b80\u5355\u6613\u7528\u3002"),(0,r.yg)("p",null,"OpenVpn \u7684\u6280\u672f\u6838\u5fc3\u662f\u865a\u62df\u7f51\u5361\uff0c\u5176\u6b21\u662f SSL \u534f\u8bae\u5b9e\u73b0\u3002"),(0,r.yg)("p",null,"\u5bf9\u865a\u62df\u7f51\u5361\u53ca\u5176\u5728 OpenVpn \u7684\u4e2d\u7684\u5de5\u4f5c\u673a\u7406\u8fdb\u884c\u4ecb\u7ecd\uff1a"),(0,r.yg)("p",null,"\u865a\u62df\u7f51\u5361\u662f\u4f7f\u7528\u7f51\u7edc\u5e95\u5c42\u7f16\u7a0b\u6280\u672f\u5b9e\u73b0\u7684\u4e00\u4e2a\u9a71\u52a8\u8f6f\u4ef6\uff0c\u5b89\u88c5\u540e\u5728\u4e3b\u673a\u4e0a\u591a\u51fa\u73b0\u4e00\u4e2a\u7f51\u5361\uff0c\u53ef\u4ee5\u50cf\u5176\u5b83\u7f51\u5361\u4e00\u6837\u8fdb\u884c\u914d\u7f6e\u3002\u670d\u52a1\u7a0b\u5e8f\u53ef\u4ee5\u5728\u5e94\u7528\u5c42\u6253\u5f00\u865a\u62df\u7f51\u5361\uff0c\u5982\u679c\u5e94\u7528\u8f6f\u4ef6\uff08\u5982 IE\uff09\u5411\u865a\u62df\u7f51\u5361\u53d1\u9001\u6570\u636e\uff0c\u5219\u670d\u52a1\u7a0b\u5e8f\u53ef\u4ee5\u8bfb\u53d6\u5230\u8be5\u6570\u636e\uff0c\u5982\u679c\u670d\u52a1\u7a0b\u5e8f\u5199\u5408\u9002\u7684\u6570\u636e\u5230\u865a\u62df\u7f51\u5361\uff0c\u5e94\u7528\u8f6f\u4ef6\u4e5f\u53ef\u4ee5\u63a5\u6536\u5f97\u5230\u3002\u865a\u62df\u7f51\u5361\u5728\u5f88\u591a\u7684\u64cd\u4f5c\u7cfb\u7edf\u4e0b\u90fd\u6709\u76f8\u5e94\u7684\u5b9e\u73b0\uff0c\u8fd9\u4e5f\u662f OpenVpn \u80fd\u591f\u8de8\u5e73\u53f0\u4e00\u4e2a\u5f88\u91cd\u8981\u7684\u7406\u7531\u3002"),(0,r.yg)("p",null,"\u5728 OpenVpn \u4e2d\uff0c\u5982\u679c\u7528\u6237\u8bbf\u95ee\u4e00\u4e2a\u8fdc\u7a0b\u7684\u865a\u62df\u5730\u5740\uff08\u5c5e\u4e8e\u865a\u62df\u7f51\u5361\u914d\u7528\u7684\u5730\u5740\u7cfb\u5217\uff0c\u533a\u522b\u4e8e\u771f\u5b9e\u5730\u5740\uff09\uff0c\u5219\u64cd\u4f5c\u7cfb\u7edf\u4f1a\u901a\u8fc7\u8def\u7531\u673a\u5236\u5c06\u6570\u636e\u5305\uff08TUN \u6a21\u5f0f\uff09\u6216\u6570\u636e\u5e27\uff08TAP \u6a21\u5f0f\uff09\u53d1\u9001\u5230\u865a\u62df\u7f51\u5361\u4e0a\uff0c\u670d\u52a1\u7a0b\u5e8f\u63a5\u6536\u8be5\u6570\u636e\u5e76\u8fdb\u884c\u76f8\u5e94\u7684\u5904\u7406\u540e\uff0c\u901a\u8fc7 SOCKET \u4ece\u5916\u7f51\u4e0a\u53d1\u9001\u51fa\u53bb\uff0c\u8fdc\u7a0b\u670d\u52a1\u7a0b\u5e8f\u901a\u8fc7 SOCKET \u4ece\u5916\u7f51\u4e0a\u63a5\u6536\u6570\u636e\uff0c\u5e76\u8fdb\u884c\u76f8\u5e94\u7684\u5904\u7406\u540e\uff0c\u53d1\u9001\u7ed9\u865a\u62df\u7f51\u5361\uff0c\u5219\u5e94\u7528\u8f6f\u4ef6\u53ef\u4ee5\u63a5\u6536\u5230\uff0c\u5b8c\u6210\u4e86\u4e00\u4e2a\u5355\u5411\u4f20\u8f93\u7684\u8fc7\u7a0b\uff0c\u53cd\u4e4b\u4ea6\u7136\u3002"),(0,r.yg)("p",null,(0,r.yg)("a",{parentName:"p",href:"https://community.openvpn.net/openvpn"},"https://community.openvpn.net/openvpn")),(0,r.yg)("p",null,(0,r.yg)("a",{parentName:"p",href:"https://pritunl.com/"},"https://pritunl.com/")),(0,r.yg)("h3",{id:"pptp"},"PPTP"),(0,r.yg)("p",null,"\u7531\u5fae\u8f6f\u548c\u5176\u4ed6\u516c\u53f8\u4e8e 1999 \u5e74\u5f00\u53d1\uff0c\u5e94\u7528\u975e\u5e38\u5e7f\u6cdb\uff0c\u4f46\u662f\u73b0\u5728\u57fa\u672c\u88ab\u8ba4\u4e3a\u662f\u4e0d\u5b89\u5168\u7684\u3001\u8fc7\u65f6\u7684\u3002"),(0,r.yg)("h3",{id:"l2tp"},"L2TP"),(0,r.yg)("p",null,"\u7b2c\u4e8c\u5c42\u96a7\u9053\u534f\u8bae\u5927\u7ea6\u4e0e PPTP \u540c\u65f6\u5f00\u53d1\u3002\u4f5c\u4e3a\u4e00\u79cd\u96a7\u9053\u534f\u8bae\uff0c\u5b83\u672c\u8eab\u4e0d\u52a0\u5bc6\u6570\u636e\uff0c\u56e0\u6b64\u901a\u5e38\u4e0e IPSec \u914d\u5bf9\u3002\u8fd9\u79cd\u6a21\u5757\u5316\u4f7f\u5b83\u80fd\u591f\u5229\u7528 AES \u52a0\u5bc6\u3002"),(0,r.yg)("p",null,"\u548c PPTP \u5dee\u4e0d\u591a\uff0c\u5e94\u7528\u4e5f\u5f88\u5e7f\u6cdb\uff0c\u4f46\u662f\u5b58\u5728\u4e00\u5b9a\u7684\u9632\u706b\u5899\u95ee\u9898\u3002"),(0,r.yg)("h3",{id:"ikev2ipsec"},"IKEv2/IPSec"),(0,r.yg)("p",null,"\u601d\u79d1\u548c\u5fae\u8f6f\u5f00\u53d1\uff0c\u4e5f\u6709\u5f88\u591a\u5f00\u6e90\u7248\u672c\uff0c\u5bf9\u79fb\u52a8\u7aef\u652f\u6301\u66f4\u52a0\u53cb\u597d\u4e00\u4e9b\u3002"),(0,r.yg)("h3",{id:"sstp"},"SSTP"),(0,r.yg)("p",null,"\u662f\u5fae\u8f6f\u5f00\u53d1\u7528\u4e8e\u66ff\u4ee3 PPTP \u7684\u65b0\u534f\u8bae\uff0c\u4f46\u662f\u4e0d\u662f\u5f00\u6e90\u7684\u3002"),(0,r.yg)("h3",{id:"wireguard"},"WireGuard"),(0,r.yg)("p",null,"WireGuard \u662f\u6700\u65b0\u7684\uff0c\u4e8e 2016 \u5e74\u5f00\u53d1\u3002\u4ed6\u7684\u4ee3\u7801\u91cf\u975e\u5e38\u5c0f\uff0c\u53ea\u6709 4K\uff0c\u4ee3\u7801\u91cf\u5c0f\uff0c\u610f\u5473\u7740\u597d\u7ef4\u62a4\u4ee5\u53ca\u5bb9\u6613\u53d1\u73b0\u95ee\u9898\u3002\u5f00\u6e90\u3002"),(0,r.yg)("p",null,"\u53c8\u5feb\u53c8\u5b89\u5168\uff0c\u4f46\u662f\u5bf9\u64cd\u4f5c\u7cfb\u7edf\u7684\u7248\u672c\u8981\u6c42\u8f83\u9ad8\u3002"),(0,r.yg)("h3",{id:"shadowsocks"},"Shadowsocks"),(0,r.yg)("p",null,"Shadowsocks \u662f\u4e00\u4e2a\u514d\u8d39\u7684\u5f00\u6e90\u52a0\u5bc6\u534f\u8bae\u9879\u76ee\u3002\u5b83\u57fa\u4e8e SOCKS5 \u4ee3\u7406\uff0c\u5373 SOCKS \u534f\u8bae\u7684\u7b2c\u4e94\u4e2a\u7248\u672c\uff0c\u7528\u4e8e\u901a\u8fc7\u4ee3\u7406\u8def\u7531\u60a8\u7684\u6d41\u91cf\u3002"),(0,r.yg)("p",null,"Shadowsocks \u65e8\u5728\u63d0\u4f9b\u8fd9\u79cd\u52a0\u5bc6\uff0c\u56e0\u4e3a\u5b83\u7684\u76ee\u7684\u53ea\u6709\u4e00\u4e2a\uff1a\u7ed5\u8fc7\u4e2d\u56fd\u9632\u706b\u957f\u57ce\u3002"),(0,r.yg)("h3",{id:"\u5bf9\u6bd4"},"\u5bf9\u6bd4"),(0,r.yg)("p",null,"IPSec \u534f\u8bae\u5de5\u4f5c\u5728 OSI \u6a21\u578b\u7684\u7b2c\u4e09\u5c42\uff0c\u4f7f\u5176\u5728\u5355\u72ec\u4f7f\u7528\u65f6\u9002\u4e8e\u4fdd\u62a4\u57fa\u4e8e TCP \u6216 UDP \u7684\u534f\u8bae\uff08\u5982\u5b89\u5168\u5957\u63a5\u5b50\u5c42\uff08SSL\uff09\u5c31\u4e0d\u80fd\u4fdd\u62a4 UDP \u5c42\u7684\u901a\u4fe1\u6d41\uff09\u3002\u8fd9\u5c31\u610f\u5473\u7740\uff0c\u4e0e\u4f20\u8f93\u5c42\u6216\u66f4\u9ad8\u5c42\u7684\u534f\u8bae\u76f8\u6bd4\uff0cIPSec \u534f\u8bae\u5fc5\u987b\u5904\u7406\u53ef\u9760\u6027\u548c\u5206\u7247\u7684\u95ee\u9898\uff0c\u8fd9\u540c\u65f6\u4e5f\u589e\u52a0\u4e86\u5b83\u7684\u590d\u6742\u6027\u548c\u5904\u7406\u5f00\u9500\u3002\u76f8\u5bf9\u800c\u8a00\uff0cSSL/TLS \u4f9d\u9760\u66f4\u9ad8\u5c42\u7684 TCP\uff08OSI \u7684\u7b2c\u56db\u5c42\uff09\u6765\u7ba1\u7406\u53ef\u9760\u6027\u548c\u5206\u7247\u3002"),(0,r.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("a",{parentName:"li",href:"https://baike.baidu.com/item/%E8%99%9A%E6%8B%9F%E4%B8%93%E7%94%A8%E7%BD%91%E7%BB%9C/8747869?fromtitle=VPN&fromid=382304&fr=aladdin#reference-2"},"\u767e\u5ea6\u767e\u79d1-VPN")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("a",{parentName:"li",href:"https://baike.baidu.com/item/OpenVPN/10718662?fr=aladdin"},"\u767e\u5ea6\u767e\u79d1-OpenVPN")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("a",{parentName:"li",href:"https://www.w3cschool.cn/completemessageformat/"},"w3cshool-\u62a5\u6587\u683c\u5f0f\u5927\u5168"))))}d.isMDXComponent=!0},6323:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/images/osi-795934f0caf8f9ab1c108a754fd16564.webp"}}]); \ No newline at end of file diff --git a/assets/js/89a98191.64ebcfef.js b/assets/js/89a98191.48b42cfe.js similarity index 99% rename from assets/js/89a98191.64ebcfef.js rename to assets/js/89a98191.48b42cfe.js index c5b241582..64e0a35f3 100644 --- a/assets/js/89a98191.64ebcfef.js +++ b/assets/js/89a98191.48b42cfe.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3991],{5680:(e,n,t)=>{t.d(n,{xA:()=>c,yg:()=>y});var r=t(6540);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function o(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var l=r.createContext({}),p=function(e){var n=r.useContext(l),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},c=function(e){var n=p(e.components);return r.createElement(l.Provider,{value:n},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},h=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,i=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),u=p(t),h=a,y=u["".concat(l,".").concat(h)]||u[h]||d[h]||i;return t?r.createElement(y,o(o({ref:n},c),{},{components:t})):r.createElement(y,o({ref:n},c))}));function y(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var i=t.length,o=new Array(i);o[0]=h;var s={};for(var l in n)hasOwnProperty.call(n,l)&&(s[l]=n[l]);s.originalType=e,s[u]="string"==typeof e?e:a,o[1]=s;for(var p=2;p{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>s,toc:()=>p});var r=t(8168),a=(t(6540),t(5680));const i={},o=void 0,s={unversionedId:"study/net/OpenVPN",id:"study/net/OpenVPN",title:"OpenVPN",description:"\u914d\u7f6e",source:"@site/docs/study/net/OpenVPN.md",sourceDirName:"study/net",slug:"/study/net/OpenVPN",permalink:"/docs/study/net/OpenVPN",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"MacOS\u7f16\u8bd1OpenVPN",permalink:"/docs/study/net/MacOS\u7f16\u8bd1OpenVPN"},next:{title:"SNMP",permalink:"/docs/study/net/SNMP"}},l={},p=[{value:"\u914d\u7f6e",id:"\u914d\u7f6e",level:3},{value:"\u811a\u672c",id:"\u811a\u672c",level:3},{value:"server.conf",id:"serverconf",level:3},{value:"\u914d\u7f6e IP \u8f6c\u53d1\u529f\u80fd",id:"\u914d\u7f6e-ip-\u8f6c\u53d1\u529f\u80fd",level:3},{value:"client.ovpn",id:"clientovpn",level:3},{value:"\u751f\u6210\u5ba2\u6237\u7aef\u8bc1\u4e66",id:"\u751f\u6210\u5ba2\u6237\u7aef\u8bc1\u4e66",level:3},{value:"\u914d\u7f6e\u4e0d\u540c\u7684\u5ba2\u6237\u7aef\u542f\u7528\u4e0d\u540c\u7684\u5b50\u7f51",id:"\u914d\u7f6e\u4e0d\u540c\u7684\u5ba2\u6237\u7aef\u542f\u7528\u4e0d\u540c\u7684\u5b50\u7f51",level:3},{value:"topology",id:"topology",level:3},{value:"tun \u6a21\u5f0f\uff1a",id:"tun-\u6a21\u5f0f",level:4},{value:"tap \u6a21\u5f0f\uff1a",id:"tap-\u6a21\u5f0f",level:4},{value:"\u811a\u672c\u521b\u5efa client",id:"\u811a\u672c\u521b\u5efa-client",level:3},{value:"\u7ba1\u7406\u7aef\u63a5\u53e3",id:"\u7ba1\u7406\u7aef\u63a5\u53e3",level:3},{value:"\u5305\u8fc7\u6ee4",id:"\u5305\u8fc7\u6ee4",level:3},{value:"\u95ee\u9898\uff1a\u8fde\u63a5\u6210\u529f\u540e\uff0c\u5ba2\u6237\u7aef\u65e0\u6cd5\u6b63\u5e38\u8bbf\u95ee\u5176\u4ed6\u7f51\u7ad9",id:"\u95ee\u9898\u8fde\u63a5\u6210\u529f\u540e\u5ba2\u6237\u7aef\u65e0\u6cd5\u6b63\u5e38\u8bbf\u95ee\u5176\u4ed6\u7f51\u7ad9",level:3},{value:"\u95ee\u9898\uff1atcpdump \u76d1\u542c\u4e0d\u4e86 tun0",id:"\u95ee\u9898tcpdump-\u76d1\u542c\u4e0d\u4e86-tun0",level:3}],c={toc:p},u="wrapper";function d(e){let{components:n,...t}=e;return(0,a.yg)(u,(0,r.A)({},c,t,{components:n,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u914d\u7f6e"},"\u914d\u7f6e"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://blog.csdn.net/sinat_27690807/article/details/118482528"},"OpenVPN \u4e2d server.conf \u548c client.conf \u914d\u7f6e\u6587\u4ef6\u8be6\u89e3")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://www.linuxfly.org/post/86/"},"\u6df1\u5165 openvpn \u914d\u7f6e-\u6709\u6848\u4f8b")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://blog.51cto.com/icenycmh/1867641"},"openvpn2.3.12 \u5b89\u88c5\u4e0e easy-rsa3 \u7684\u4f7f\u7528")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://blog.51cto.com/songky/2115052?articleABtest=1"},"\u963f\u91cc\u4e91\u670d\u52a1\u5668\u914d\u7f6e CentOS7.4+OpenVPN-2.4.5+easy-rsa-3.0")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://bajie.dev/zh-cn/posts/20211018-openvpn_limit_bandwidth/"},"OpenVPN \u9650\u5236\u6d41\u91cf\u5e26\u5bbd-\u7f51\u5361\u7ea7\u522b\u9650\u5236")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://www.ilxqx.com/archives/jie-jue-openvpn-ke-hu-duan-suo-you-wang-luo-quan-zou-vpn-de-wen-ti"},"\u89e3\u51b3 OpenVPN \u5ba2\u6237\u7aef\u6240\u6709\u7f51\u7edc\u5168\u8d70 VPN \u7684\u95ee\u9898,server.conf \u548c client.conf \u914d\u7f6e\u6587\u4ef6\u8be6\u89e3")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://build.openvpn.net/man/openvpn-2.6/openvpn.8.html"},"openvpn \u5b98\u65b9\u547d\u4ee4\u884c\u6587\u6863")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://www.junmajinlong.com/virtual/network/data_flow_about_openvpn/"},"\u901a\u8fc7 openvpn \u5206\u6790 tun \u5b9e\u73b0\u96a7\u9053\u7684\u6570\u636e\u6d41\u7a0b"))),(0,a.yg)("h3",{id:"\u811a\u672c"},"\u811a\u672c"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"# \u5b89\u88c5\nyum install openvpn\nyum install easy-rsa\n\n# \u51c6\u5907\u76ee\u5f55 \u6ce8\u610f\u7248\u672c\u53f7 \u9700\u8981\u81ea\u884c\u66f4\u6539\ncp /usr/share/doc/openvpn-2.4.5/sample/sample-config-files/server.conf /etc/openvpn\ncp -r /usr/share/easy-rsa/ /etc/openvpn\ncp /usr/share/doc/easy-rsa-3.0.3/vars.example easy-rsa/3.0/vars\n\n# \u521d\u59cb\u5316pki\ncd /etc/openvpn/easy-rsa/3.0\n./easyrsa init-pki\n\n# \u521b\u5efaca\uff0c\u8bb0\u4f4fca\u5bc6\u7801\n./easyrsa build-ca\n\n# \u521b\u5efaDiffie-Hellman\uff0c\u786e\u4fddkey\u7a7f\u8d8a\u4e0d\u5b89\u5168\u7f51\u7edc\n./easyrsa gen-dh\n# \u751f\u6210\u9632\u653b\u51fbkey\u6587\u4ef6\nopenvpn --genkey --secret ta.key\n\n# \u521b\u5efa\u670d\u52a1\u5668\u8bc1\u4e66 \u6ce8\u610f\u540d\u5b57\u4e3avpnserver \u53ef\u4ee5\u66f4\u6539\n./easyrsa gen-req vpnserver nopass\n# \u7b7e\u7ea6\u670d\u52a1\u7aef\u8bc1\u4e66 \u6ce8\u610f\u540d\u5b57\u4e3avpnserver\n./easyrsa sign server vpnserver\n\n# \u5c06\u670d\u52a1\u5668\u8bc1\u4e66\u6574\u7406\u5230\u4e00\u8d77\ncd /etc/openvpn/\nmkdir pki\ncd pki\n/usr/bin/cp -rf ../easy-rsa/3.0/ta.key ./\n/usr/bin/cp -rf ../easy-rsa/3.0/pki/ca.crt ./\n/usr/bin/cp -rf ../easy-rsa/3.0/pki/dh.pem ./\n/usr/bin/cp -rf ../easy-rsa/3.0/pki/issued/vpnserver.crt ./\n/usr/bin/cp -rf ../easy-rsa/3.0/pki/private/vpnserver.key ./\n# \u5c06\u5ba2\u6237\u7aef\u6240\u9700\u8bc1\u4e66\u6574\u7406\u5230\u4e00\u8d77\nmkdir /etc/openvpn/client\ncd /etc/openvpn/client\n/usr/bin/cp -rf ../easy-rsa/3.0/ta.key ./\n/usr/bin/cp -rf ../easy-rsa/3.0/pki/ca.crt ./\n/usr/bin/cp -rf ../easy-rsa/3.0/pki/issued/client001.crt ./\n/usr/bin/cp -rf ../easy-rsa/3.0/pki/private/client001.key ./\n\n# \u542f\u52a8 \u505c\u6b62 \u72b6\u6001\nsystemctl start openvpn@server\nsystemctl stop openvpn@server\nsystemctl status openvpn@server\nsystemctl restart openvpn@server\n")),(0,a.yg)("h3",{id:"serverconf"},"server.conf"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},'#################################################\n# Sample OpenVPN 2.0 config file for #\n# multi-client server. #\n# #\n# This file is for the server side #\n# of a many-clients <-> one-server #\n# OpenVPN configuration. #\n# #\n# OpenVPN also supports #\n# single-machine <-> single-machine #\n# configurations (See the Examples page #\n# on the web site for more info). #\n# #\n# This config should work on Windows #\n# or Linux/BSD systems. Remember on #\n# Windows to quote pathnames and use #\n# double backslashes, e.g.: #\n# "C:\\\\Program Files\\\\OpenVPN\\\\config\\\\foo.key" #\n# #\n# Comments are preceded with \'#\' or \';\' #\n#################################################\n\n# Which local IP address should OpenVPN\n# listen on? (optional)\n;local a.b.c.d\n\n# Which TCP/UDP port should OpenVPN listen on?\n# If you want to run multiple OpenVPN instances\n# on the same machine, use a different port\n# number for each one. You will need to\n# open up this port on your firewall.\nport 1194\n\n# TCP or UDP server?\n;proto tcp\nproto udp\n\n# "dev tun" will create a routed IP tunnel,\n# "dev tap" will create an ethernet tunnel.\n# Use "dev tap0" if you are ethernet bridging\n# and have precreated a tap0 virtual interface\n# and bridged it with your ethernet interface.\n# If you want to control access policies\n# over the VPN, you must create firewall\n# rules for the the TUN/TAP interface.\n# On non-Windows systems, you can give\n# an explicit unit number, such as tun0.\n# On Windows, use "dev-node" for this.\n# On most systems, the VPN will not function\n# unless you partially or fully disable\n# the firewall for the TUN/TAP interface.\n;dev tap\ndev tun\n\n# Windows needs the TAP-Win32 adapter name\n# from the Network Connections panel if you\n# have more than one. On XP SP2 or higher,\n# you may need to selectively disable the\n# Windows firewall for the TAP adapter.\n# Non-Windows systems usually don\'t need this.\n;dev-node MyTap\n\n# SSL/TLS root certificate (ca), certificate\n# (cert), and private key (key). Each client\n# and the server must have their own cert and\n# key file. The server and all clients will\n# use the same ca file.\n#\n# See the "easy-rsa" directory for a series\n# of scripts for generating RSA certificates\n# and private keys. Remember to use\n# a unique Common Name for the server\n# and each of the client certificates.\n#\n# Any X509 key management system can be used.\n# OpenVPN can also use a PKCS #12 formatted key file\n# (see "pkcs12" directive in man page).\nca /etc/openvpn/pki/ca.crt\ncert /etc/openvpn/pki/vpnserver.crt\nkey /etc/openvpn/pki/vpnserver.key # This file should be kept secret\n\n# Diffie hellman parameters.\n# Generate your own with:\n# openssl dhparam -out dh2048.pem 2048\ndh /etc/openvpn/pki/dh.pem\n\n# Network topology\n# Should be subnet (addressing via IP)\n# unless Windows clients v2.0.9 and lower have to\n# be supported (then net30, i.e. a /30 per client)\n# Defaults to net30 (not recommended)\n;topology subnet\n\n# Configure server mode and supply a VPN subnet\n# for OpenVPN to draw client addresses from.\n# The server will take 10.8.0.1 for itself,\n# the rest will be made available to clients.\n# Each client will be able to reach the server\n# on 10.8.0.1. Comment this line out if you are\n# ethernet bridging. See the man page for more info.\nserver 10.8.0.0 255.255.255.0\n\n# Maintain a record of client <-> virtual IP address\n# associations in this file. If OpenVPN goes down or\n# is restarted, reconnecting clients can be assigned\n# the same virtual IP address from the pool that was\n# previously assigned.\nifconfig-pool-persist ipp.txt\n\n# Configure server mode for ethernet bridging.\n# You must first use your OS\'s bridging capability\n# to bridge the TAP interface with the ethernet\n# NIC interface. Then you must manually set the\n# IP/netmask on the bridge interface, here we\n# assume 10.8.0.4/255.255.255.0. Finally we\n# must set aside an IP range in this subnet\n# (start=10.8.0.50 end=10.8.0.100) to allocate\n# to connecting clients. Leave this line commented\n# out unless you are ethernet bridging.\n;server-bridge 10.8.0.4 255.255.255.0 10.8.0.50 10.8.0.100\n\n# Configure server mode for ethernet bridging\n# using a DHCP-proxy, where clients talk\n# to the OpenVPN server-side DHCP server\n# to receive their IP address allocation\n# and DNS server addresses. You must first use\n# your OS\'s bridging capability to bridge the TAP\n# interface with the ethernet NIC interface.\n# Note: this mode only works on clients (such as\n# Windows), where the client-side TAP adapter is\n# bound to a DHCP client.\n;server-bridge\n\n# Push routes to the client to allow it\n# to reach other private subnets behind\n# the server. Remember that these\n# private subnets will also need\n# to know to route the OpenVPN client\n# address pool (10.8.0.0/255.255.255.0)\n# back to the OpenVPN server.\n;push "route 192.168.10.0 255.255.255.0"\n;push "route 192.168.20.0 255.255.255.0"\n\n# To assign specific IP addresses to specific\n# clients or if a connecting client has a private\n# subnet behind it that should also have VPN access,\n# use the subdirectory "ccd" for client-specific\n# configuration files (see man page for more info).\n\n# EXAMPLE: Suppose the client\n# having the certificate common name "Thelonious"\n# also has a small subnet behind his connecting\n# machine, such as 192.168.40.128/255.255.255.248.\n# First, uncomment out these lines:\n;client-config-dir ccd\n;route 192.168.40.128 255.255.255.248\n# Then create a file ccd/Thelonious with this line:\n# iroute 192.168.40.128 255.255.255.248\n# This will allow Thelonious\' private subnet to\n# access the VPN. This example will only work\n# if you are routing, not bridging, i.e. you are\n# using "dev tun" and "server" directives.\n\n# EXAMPLE: Suppose you want to give\n# Thelonious a fixed VPN IP address of 10.9.0.1.\n# First uncomment out these lines:\n;client-config-dir ccd\n;route 10.9.0.0 255.255.255.252\n# Then add this line to ccd/Thelonious:\n# ifconfig-push 10.9.0.1 10.9.0.2\n\n# Suppose that you want to enable different\n# firewall access policies for different groups\n# of clients. There are two methods:\n# (1) Run multiple OpenVPN daemons, one for each\n# group, and firewall the TUN/TAP interface\n# for each group/daemon appropriately.\n# (2) (Advanced) Create a script to dynamically\n# modify the firewall in response to access\n# from different clients. See man\n# page for more info on learn-address script.\n;learn-address ./script\n\n# If enabled, this directive will configure\n# all clients to redirect their default\n# network gateway through the VPN, causing\n# all IP traffic such as web browsing and\n# and DNS lookups to go through the VPN\n# (The OpenVPN server machine may need to NAT\n# or bridge the TUN/TAP interface to the internet\n# in order for this to work properly).\n;push "redirect-gateway def1 bypass-dhcp"\n\n# Certain Windows-specific network settings\n# can be pushed to clients, such as DNS\n# or WINS server addresses. CAVEAT:\n# http://openvpn.net/faq.html#dhcpcaveats\n# The addresses below refer to the public\n# DNS servers provided by opendns.com.\n;push "dhcp-option DNS 208.67.222.222"\n;push "dhcp-option DNS 208.67.220.220"\npush "dhcp-option DNS 8.8.8.8"\n\n# Uncomment this directive to allow different\n# clients to be able to "see" each other.\n# By default, clients will only see the server.\n# To force clients to only see the server, you\n# will also need to appropriately firewall the\n# server\'s TUN/TAP interface.\nclient-to-client\n\n# Uncomment this directive if multiple clients\n# might connect with the same certificate/key\n# files or common names. This is recommended\n# only for testing purposes. For production use,\n# each client should have its own certificate/key\n# pair.\n#\n# IF YOU HAVE NOT GENERATED INDIVIDUAL\n# CERTIFICATE/KEY PAIRS FOR EACH CLIENT,\n# EACH HAVING ITS OWN UNIQUE "COMMON NAME",\n# UNCOMMENT THIS LINE OUT.\n;duplicate-cn\n\n# The keepalive directive causes ping-like\n# messages to be sent back and forth over\n# the link so that each side knows when\n# the other side has gone down.\n# Ping every 10 seconds, assume that remote\n# peer is down if no ping received during\n# a 120 second time period.\nkeepalive 10 120\n\n# For extra security beyond that provided\n# by SSL/TLS, create an "HMAC firewall"\n# to help block DoS attacks and UDP port flooding.\n#\n# Generate with:\n# openvpn --genkey --secret ta.key\n#\n# The server and each client must have\n# a copy of this key.\n# The second parameter should be \'0\'\n# on the server and \'1\' on the clients.\ntls-auth /etc/openvpn/pki/ta.key 0 # This file is secret\n\n# Select a cryptographic cipher.\n# This config item must be copied to\n# the client config file as well.\n# Note that v2.4 client/server will automatically\n# negotiate AES-256-GCM in TLS mode.\n# See also the ncp-cipher option in the manpage\ncipher AES-256-CBC\n\n# Enable compression on the VPN link and push the\n# option to the client (v2.4+ only, for earlier\n# versions see below)\n;compress lz4-v2\n;push "compress lz4-v2"\n\n# For compression compatible with older clients use comp-lzo\n# If you enable it here, you must also\n# enable it in the client config file.\ncomp-lzo\n\n# The maximum number of concurrently connected\n# clients we want to allow.\nmax-clients 999\n\n# It\'s a good idea to reduce the OpenVPN\n# daemon\'s privileges after initialization.\n#\n# You can uncomment this out on\n# non-Windows systems.\n;user nobody\n;group nobody\n\n# The persist options will try to avoid\n# accessing certain resources on restart\n# that may no longer be accessible because\n# of the privilege downgrade.\npersist-key\npersist-tun\n\n# Output a short status file showing\n# current connections, truncated\n# and rewritten every minute.\nstatus openvpn-status.log\n\n# By default, log messages will go to the syslog (or\n# on Windows, if running as a service, they will go to\n# the "\\Program Files\\OpenVPN\\log" directory).\n# Use log or log-append to override this default.\n# "log" will truncate the log file on OpenVPN startup,\n# while "log-append" will append to it. Use one\n# or the other (but not both).\n;log openvpn.log\n;log-append openvpn.log\n\n# Set the appropriate level of log\n# file verbosity.\n#\n# 0 is silent, except for fatal errors\n# 4 is reasonable for general usage\n# 5 and 6 can help to debug connection problems\n# 9 is extremely verbose\nverb 3\n\n# Silence repeating messages. At most 20\n# sequential messages of the same message\n# category will be output to the log.\n;mute 20\n\n# Notify the client that when the server restarts so it\n# can automatically reconnect.\nexplicit-exit-notify 1\n')),(0,a.yg)("h3",{id:"\u914d\u7f6e-ip-\u8f6c\u53d1\u529f\u80fd"},"\u914d\u7f6e IP \u8f6c\u53d1\u529f\u80fd"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"# \u67e5\u8be2\nsysctl net.ipv4.ip_forward\n# \u8bbe\u7f6e\necho 'net.ipv4.ip_forward = 1' >/etc/sysctl.conf\nsysctl -p\n")),(0,a.yg)("p",null,"\u53c2\u8003",(0,a.yg)("a",{parentName:"p",href:"https://blog.csdn.net/wangqiaowq/article/details/131802323"},"net.ipv4.ip_forward")),(0,a.yg)("h3",{id:"clientovpn"},"client.ovpn"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"# \u76f8\u5f53\u4e8e pull tls-client\nclient\n#\ndev tun\n#\nproto udp\n# \u8fde\u63a5\u8fdc\u7a0bopenvpn server\uff0c\u53ef\u4ee5\u6709\u591a\u4e2a\uff0c\u4f46\u540c\u65f6\u8fde\u63a5\u53ea\u6709\u4e00\u4e2a\nremote 60.204.171.251 1194\nresolv-retry infinite\nnobind\npersist-key\npersist-tun\n#\nca ca.crt\ncert client001.crt\nkey client001.key\ntls-auth ta.key 1\n#\ncomp-lzo\n# \u65e5\u5fd7\u5bb9\u6613\u7ea7\u522b\nverb 3\n")),(0,a.yg)("h3",{id:"\u751f\u6210\u5ba2\u6237\u7aef\u8bc1\u4e66"},"\u751f\u6210\u5ba2\u6237\u7aef\u8bc1\u4e66"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"cd /etc/openvpn/easy-rsa/3.0/\n./easyrsa build-client-full client003\n/usr/bin/cp -rf /etc/openvpn/easy-rsa/3.0/pki/issued/client003.crt /etc/openvpn/client\n/usr/bin/cp -rf /etc/openvpn/easy-rsa/3.0/pki/private/client003.key /etc/openvpn/client\n")),(0,a.yg)("h3",{id:"\u914d\u7f6e\u4e0d\u540c\u7684\u5ba2\u6237\u7aef\u542f\u7528\u4e0d\u540c\u7684\u5b50\u7f51"},"\u914d\u7f6e\u4e0d\u540c\u7684\u5ba2\u6237\u7aef\u542f\u7528\u4e0d\u540c\u7684\u5b50\u7f51"),(0,a.yg)("p",null,"\u4fee\u6539 server.conf \u6587\u4ef6"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"# \u542f\u7528ccd \u589e\u52a0\u4e24\u4e2a\u5b50\u7f51\u8def\u7531\nclient-config-dir ccd\n;route 10.9.0.0 255.255.255.252\nroute 10.9.0.0 255.255.255.0\nroute 10.9.1.0 255.255.255.0\n# \u4fee\u6539topology\u4e3asubnet\ntopology subnet\n")),(0,a.yg)("h3",{id:"topology"},"topology"),(0,a.yg)("h4",{id:"tun-\u6a21\u5f0f"},"tun \u6a21\u5f0f\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"subnet\uff1a"),(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"a. \u4ece pool \u4e2d\u9009\u62e9\u4e00\u4e2a ip \u4f5c\u4e3a client \u7684\u865a\u62df\u7f51\u5361 ip\uff1b")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"b. \u5c06\u81ea\u5df1\u7684\u5b50\u7f51\u63a9\u7801\u4f5c\u4e3a client \u7684\u5b50\u7f51\u63a9\u7801\u3002")))),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"p2p\uff1a"),(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"a.\u4ece pool \u4e2d\u9009\u62e9\u4e00\u4e2a ip \u4f5c\u4e3a client \u7684\u865a\u62df\u7f51\u5361 ip\uff1b")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"b.\u5c06\u81ea\u5df1\u7684\u5b9e\u9645\u865a\u62df\u7f51\u5361 ip \u4f5c\u4e3a client \u7684\u5bf9\u7aef ip\u3002")))),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"net30\uff1a"),(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"a.\u4ece pool \u4e2d\u9009\u62e9 4 \u4e2a\u63a9\u7801\u4e3a 30 \u7684 ip\uff0c\u5c06\u4e2d\u95f4\u4e24\u4e2a ip \u4e2d\u7684\u5927\u8005\u4f5c\u4e3a client \u7684\u865a\u62df\u7f51\u5361 ip\uff1b")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"b.\u5c06\u5c0f\u8005\u4f5c\u4e3a client \u7684\u5bf9\u7aef ip\u3002"))))),(0,a.yg)("h4",{id:"tap-\u6a21\u5f0f"},"tap \u6a21\u5f0f\uff1a"),(0,a.yg)("p",null,"\u5b8c\u5168\u6309\u7167 tun \u6a21\u5f0f\u7684 1 \u6765\u5206\u914d\u3002"),(0,a.yg)("h3",{id:"\u811a\u672c\u521b\u5efa-client"},"\u811a\u672c\u521b\u5efa client"),(0,a.yg)("p",null,"\u811a\u672c\u521b\u5efa client\uff0c\u81ea\u52a8\u8f93\u5165 ca \u5bc6\u7801\uff0c"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},'#!/usr/bin/expect\n\nset timeout 30\n\nspawn ./easyrsa build-client-full client014 nopass\nexpect "pass"\nsend "weichuang"\nsend "\\n"\ninteract\n')),(0,a.yg)("h3",{id:"\u7ba1\u7406\u7aef\u63a5\u53e3"},"\u7ba1\u7406\u7aef\u63a5\u53e3"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://openvpn.net/community-resources/management-interface/"},"\u5b98\u65b9\u7ba1\u7406\u7aef\u63a5\u53e3\u4f7f\u7528\u6587\u6863"))),(0,a.yg)("h3",{id:"\u5305\u8fc7\u6ee4"},"\u5305\u8fc7\u6ee4"),(0,a.yg)("p",null,"\u53ef\u5b9e\u73b0\u7b80\u5355\u7684\u9632\u706b\u5899\u63a7\u5236"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://backreference.org/2010/06/18/openvpns-built-in-packet-filter/"},"openvpn \u5185\u7f6e\u5305\u8fc7\u6ee4\u975e\u5b98\u65b9\u6280\u672f\u6587\u6863"))),(0,a.yg)("h3",{id:"\u95ee\u9898\u8fde\u63a5\u6210\u529f\u540e\u5ba2\u6237\u7aef\u65e0\u6cd5\u6b63\u5e38\u8bbf\u95ee\u5176\u4ed6\u7f51\u7ad9"},"\u95ee\u9898\uff1a\u8fde\u63a5\u6210\u529f\u540e\uff0c\u5ba2\u6237\u7aef\u65e0\u6cd5\u6b63\u5e38\u8bbf\u95ee\u5176\u4ed6\u7f51\u7ad9"),(0,a.yg)("p",null,"\u5c06 server.conf \u7684"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},';push "redirect-gateway def1 bypass-dhcp"\n')),(0,a.yg)("p",null,"\u6ce8\u91ca\u6389"),(0,a.yg)("h3",{id:"\u95ee\u9898tcpdump-\u76d1\u542c\u4e0d\u4e86-tun0"},"\u95ee\u9898\uff1atcpdump \u76d1\u542c\u4e0d\u4e86 tun0"),(0,a.yg)("p",null,"\u5982\u679c\u5f00\u542f\u4e86 client-to-client\uff0c\u6d41\u91cf\u662f\u4e0d\u8d70 tun \u7684\u7684\u3002"),(0,a.yg)("p",null,"\u53ef\u4ee5\u53c2\u8003",(0,a.yg)("a",{parentName:"p",href:"https://serverfault.com/questions/1052645/openvpn-server-not-showing-traffic-using-tcpdump"},"openvpn server not showing traffic using tcpdump")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3991],{5680:(e,n,t)=>{t.d(n,{xA:()=>c,yg:()=>y});var r=t(6540);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function o(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var l=r.createContext({}),p=function(e){var n=r.useContext(l),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},c=function(e){var n=p(e.components);return r.createElement(l.Provider,{value:n},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},h=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,i=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),u=p(t),h=a,y=u["".concat(l,".").concat(h)]||u[h]||d[h]||i;return t?r.createElement(y,o(o({ref:n},c),{},{components:t})):r.createElement(y,o({ref:n},c))}));function y(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var i=t.length,o=new Array(i);o[0]=h;var s={};for(var l in n)hasOwnProperty.call(n,l)&&(s[l]=n[l]);s.originalType=e,s[u]="string"==typeof e?e:a,o[1]=s;for(var p=2;p{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>s,toc:()=>p});var r=t(8168),a=(t(6540),t(5680));const i={},o=void 0,s={unversionedId:"study/net/OpenVPN",id:"study/net/OpenVPN",title:"OpenVPN",description:"\u914d\u7f6e",source:"@site/docs/study/net/OpenVPN.md",sourceDirName:"study/net",slug:"/study/net/OpenVPN",permalink:"/docs/study/net/OpenVPN",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"MacOS\u7f16\u8bd1OpenVPN",permalink:"/docs/study/net/MacOS\u7f16\u8bd1OpenVPN"},next:{title:"SNMP",permalink:"/docs/study/net/SNMP"}},l={},p=[{value:"\u914d\u7f6e",id:"\u914d\u7f6e",level:3},{value:"\u811a\u672c",id:"\u811a\u672c",level:3},{value:"server.conf",id:"serverconf",level:3},{value:"\u914d\u7f6e IP \u8f6c\u53d1\u529f\u80fd",id:"\u914d\u7f6e-ip-\u8f6c\u53d1\u529f\u80fd",level:3},{value:"client.ovpn",id:"clientovpn",level:3},{value:"\u751f\u6210\u5ba2\u6237\u7aef\u8bc1\u4e66",id:"\u751f\u6210\u5ba2\u6237\u7aef\u8bc1\u4e66",level:3},{value:"\u914d\u7f6e\u4e0d\u540c\u7684\u5ba2\u6237\u7aef\u542f\u7528\u4e0d\u540c\u7684\u5b50\u7f51",id:"\u914d\u7f6e\u4e0d\u540c\u7684\u5ba2\u6237\u7aef\u542f\u7528\u4e0d\u540c\u7684\u5b50\u7f51",level:3},{value:"topology",id:"topology",level:3},{value:"tun \u6a21\u5f0f\uff1a",id:"tun-\u6a21\u5f0f",level:4},{value:"tap \u6a21\u5f0f\uff1a",id:"tap-\u6a21\u5f0f",level:4},{value:"\u811a\u672c\u521b\u5efa client",id:"\u811a\u672c\u521b\u5efa-client",level:3},{value:"\u7ba1\u7406\u7aef\u63a5\u53e3",id:"\u7ba1\u7406\u7aef\u63a5\u53e3",level:3},{value:"\u5305\u8fc7\u6ee4",id:"\u5305\u8fc7\u6ee4",level:3},{value:"\u95ee\u9898\uff1a\u8fde\u63a5\u6210\u529f\u540e\uff0c\u5ba2\u6237\u7aef\u65e0\u6cd5\u6b63\u5e38\u8bbf\u95ee\u5176\u4ed6\u7f51\u7ad9",id:"\u95ee\u9898\u8fde\u63a5\u6210\u529f\u540e\u5ba2\u6237\u7aef\u65e0\u6cd5\u6b63\u5e38\u8bbf\u95ee\u5176\u4ed6\u7f51\u7ad9",level:3},{value:"\u95ee\u9898\uff1atcpdump \u76d1\u542c\u4e0d\u4e86 tun0",id:"\u95ee\u9898tcpdump-\u76d1\u542c\u4e0d\u4e86-tun0",level:3}],c={toc:p},u="wrapper";function d(e){let{components:n,...t}=e;return(0,a.yg)(u,(0,r.A)({},c,t,{components:n,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u914d\u7f6e"},"\u914d\u7f6e"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://blog.csdn.net/sinat_27690807/article/details/118482528"},"OpenVPN \u4e2d server.conf \u548c client.conf \u914d\u7f6e\u6587\u4ef6\u8be6\u89e3")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://www.linuxfly.org/post/86/"},"\u6df1\u5165 openvpn \u914d\u7f6e-\u6709\u6848\u4f8b")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://blog.51cto.com/icenycmh/1867641"},"openvpn2.3.12 \u5b89\u88c5\u4e0e easy-rsa3 \u7684\u4f7f\u7528")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://blog.51cto.com/songky/2115052?articleABtest=1"},"\u963f\u91cc\u4e91\u670d\u52a1\u5668\u914d\u7f6e CentOS7.4+OpenVPN-2.4.5+easy-rsa-3.0")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://bajie.dev/zh-cn/posts/20211018-openvpn_limit_bandwidth/"},"OpenVPN \u9650\u5236\u6d41\u91cf\u5e26\u5bbd-\u7f51\u5361\u7ea7\u522b\u9650\u5236")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://www.ilxqx.com/archives/jie-jue-openvpn-ke-hu-duan-suo-you-wang-luo-quan-zou-vpn-de-wen-ti"},"\u89e3\u51b3 OpenVPN \u5ba2\u6237\u7aef\u6240\u6709\u7f51\u7edc\u5168\u8d70 VPN \u7684\u95ee\u9898,server.conf \u548c client.conf \u914d\u7f6e\u6587\u4ef6\u8be6\u89e3")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://build.openvpn.net/man/openvpn-2.6/openvpn.8.html"},"openvpn \u5b98\u65b9\u547d\u4ee4\u884c\u6587\u6863")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://www.junmajinlong.com/virtual/network/data_flow_about_openvpn/"},"\u901a\u8fc7 openvpn \u5206\u6790 tun \u5b9e\u73b0\u96a7\u9053\u7684\u6570\u636e\u6d41\u7a0b"))),(0,a.yg)("h3",{id:"\u811a\u672c"},"\u811a\u672c"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"# \u5b89\u88c5\nyum install openvpn\nyum install easy-rsa\n\n# \u51c6\u5907\u76ee\u5f55 \u6ce8\u610f\u7248\u672c\u53f7 \u9700\u8981\u81ea\u884c\u66f4\u6539\ncp /usr/share/doc/openvpn-2.4.5/sample/sample-config-files/server.conf /etc/openvpn\ncp -r /usr/share/easy-rsa/ /etc/openvpn\ncp /usr/share/doc/easy-rsa-3.0.3/vars.example easy-rsa/3.0/vars\n\n# \u521d\u59cb\u5316pki\ncd /etc/openvpn/easy-rsa/3.0\n./easyrsa init-pki\n\n# \u521b\u5efaca\uff0c\u8bb0\u4f4fca\u5bc6\u7801\n./easyrsa build-ca\n\n# \u521b\u5efaDiffie-Hellman\uff0c\u786e\u4fddkey\u7a7f\u8d8a\u4e0d\u5b89\u5168\u7f51\u7edc\n./easyrsa gen-dh\n# \u751f\u6210\u9632\u653b\u51fbkey\u6587\u4ef6\nopenvpn --genkey --secret ta.key\n\n# \u521b\u5efa\u670d\u52a1\u5668\u8bc1\u4e66 \u6ce8\u610f\u540d\u5b57\u4e3avpnserver \u53ef\u4ee5\u66f4\u6539\n./easyrsa gen-req vpnserver nopass\n# \u7b7e\u7ea6\u670d\u52a1\u7aef\u8bc1\u4e66 \u6ce8\u610f\u540d\u5b57\u4e3avpnserver\n./easyrsa sign server vpnserver\n\n# \u5c06\u670d\u52a1\u5668\u8bc1\u4e66\u6574\u7406\u5230\u4e00\u8d77\ncd /etc/openvpn/\nmkdir pki\ncd pki\n/usr/bin/cp -rf ../easy-rsa/3.0/ta.key ./\n/usr/bin/cp -rf ../easy-rsa/3.0/pki/ca.crt ./\n/usr/bin/cp -rf ../easy-rsa/3.0/pki/dh.pem ./\n/usr/bin/cp -rf ../easy-rsa/3.0/pki/issued/vpnserver.crt ./\n/usr/bin/cp -rf ../easy-rsa/3.0/pki/private/vpnserver.key ./\n# \u5c06\u5ba2\u6237\u7aef\u6240\u9700\u8bc1\u4e66\u6574\u7406\u5230\u4e00\u8d77\nmkdir /etc/openvpn/client\ncd /etc/openvpn/client\n/usr/bin/cp -rf ../easy-rsa/3.0/ta.key ./\n/usr/bin/cp -rf ../easy-rsa/3.0/pki/ca.crt ./\n/usr/bin/cp -rf ../easy-rsa/3.0/pki/issued/client001.crt ./\n/usr/bin/cp -rf ../easy-rsa/3.0/pki/private/client001.key ./\n\n# \u542f\u52a8 \u505c\u6b62 \u72b6\u6001\nsystemctl start openvpn@server\nsystemctl stop openvpn@server\nsystemctl status openvpn@server\nsystemctl restart openvpn@server\n")),(0,a.yg)("h3",{id:"serverconf"},"server.conf"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},'#################################################\n# Sample OpenVPN 2.0 config file for #\n# multi-client server. #\n# #\n# This file is for the server side #\n# of a many-clients <-> one-server #\n# OpenVPN configuration. #\n# #\n# OpenVPN also supports #\n# single-machine <-> single-machine #\n# configurations (See the Examples page #\n# on the web site for more info). #\n# #\n# This config should work on Windows #\n# or Linux/BSD systems. Remember on #\n# Windows to quote pathnames and use #\n# double backslashes, e.g.: #\n# "C:\\\\Program Files\\\\OpenVPN\\\\config\\\\foo.key" #\n# #\n# Comments are preceded with \'#\' or \';\' #\n#################################################\n\n# Which local IP address should OpenVPN\n# listen on? (optional)\n;local a.b.c.d\n\n# Which TCP/UDP port should OpenVPN listen on?\n# If you want to run multiple OpenVPN instances\n# on the same machine, use a different port\n# number for each one. You will need to\n# open up this port on your firewall.\nport 1194\n\n# TCP or UDP server?\n;proto tcp\nproto udp\n\n# "dev tun" will create a routed IP tunnel,\n# "dev tap" will create an ethernet tunnel.\n# Use "dev tap0" if you are ethernet bridging\n# and have precreated a tap0 virtual interface\n# and bridged it with your ethernet interface.\n# If you want to control access policies\n# over the VPN, you must create firewall\n# rules for the the TUN/TAP interface.\n# On non-Windows systems, you can give\n# an explicit unit number, such as tun0.\n# On Windows, use "dev-node" for this.\n# On most systems, the VPN will not function\n# unless you partially or fully disable\n# the firewall for the TUN/TAP interface.\n;dev tap\ndev tun\n\n# Windows needs the TAP-Win32 adapter name\n# from the Network Connections panel if you\n# have more than one. On XP SP2 or higher,\n# you may need to selectively disable the\n# Windows firewall for the TAP adapter.\n# Non-Windows systems usually don\'t need this.\n;dev-node MyTap\n\n# SSL/TLS root certificate (ca), certificate\n# (cert), and private key (key). Each client\n# and the server must have their own cert and\n# key file. The server and all clients will\n# use the same ca file.\n#\n# See the "easy-rsa" directory for a series\n# of scripts for generating RSA certificates\n# and private keys. Remember to use\n# a unique Common Name for the server\n# and each of the client certificates.\n#\n# Any X509 key management system can be used.\n# OpenVPN can also use a PKCS #12 formatted key file\n# (see "pkcs12" directive in man page).\nca /etc/openvpn/pki/ca.crt\ncert /etc/openvpn/pki/vpnserver.crt\nkey /etc/openvpn/pki/vpnserver.key # This file should be kept secret\n\n# Diffie hellman parameters.\n# Generate your own with:\n# openssl dhparam -out dh2048.pem 2048\ndh /etc/openvpn/pki/dh.pem\n\n# Network topology\n# Should be subnet (addressing via IP)\n# unless Windows clients v2.0.9 and lower have to\n# be supported (then net30, i.e. a /30 per client)\n# Defaults to net30 (not recommended)\n;topology subnet\n\n# Configure server mode and supply a VPN subnet\n# for OpenVPN to draw client addresses from.\n# The server will take 10.8.0.1 for itself,\n# the rest will be made available to clients.\n# Each client will be able to reach the server\n# on 10.8.0.1. Comment this line out if you are\n# ethernet bridging. See the man page for more info.\nserver 10.8.0.0 255.255.255.0\n\n# Maintain a record of client <-> virtual IP address\n# associations in this file. If OpenVPN goes down or\n# is restarted, reconnecting clients can be assigned\n# the same virtual IP address from the pool that was\n# previously assigned.\nifconfig-pool-persist ipp.txt\n\n# Configure server mode for ethernet bridging.\n# You must first use your OS\'s bridging capability\n# to bridge the TAP interface with the ethernet\n# NIC interface. Then you must manually set the\n# IP/netmask on the bridge interface, here we\n# assume 10.8.0.4/255.255.255.0. Finally we\n# must set aside an IP range in this subnet\n# (start=10.8.0.50 end=10.8.0.100) to allocate\n# to connecting clients. Leave this line commented\n# out unless you are ethernet bridging.\n;server-bridge 10.8.0.4 255.255.255.0 10.8.0.50 10.8.0.100\n\n# Configure server mode for ethernet bridging\n# using a DHCP-proxy, where clients talk\n# to the OpenVPN server-side DHCP server\n# to receive their IP address allocation\n# and DNS server addresses. You must first use\n# your OS\'s bridging capability to bridge the TAP\n# interface with the ethernet NIC interface.\n# Note: this mode only works on clients (such as\n# Windows), where the client-side TAP adapter is\n# bound to a DHCP client.\n;server-bridge\n\n# Push routes to the client to allow it\n# to reach other private subnets behind\n# the server. Remember that these\n# private subnets will also need\n# to know to route the OpenVPN client\n# address pool (10.8.0.0/255.255.255.0)\n# back to the OpenVPN server.\n;push "route 192.168.10.0 255.255.255.0"\n;push "route 192.168.20.0 255.255.255.0"\n\n# To assign specific IP addresses to specific\n# clients or if a connecting client has a private\n# subnet behind it that should also have VPN access,\n# use the subdirectory "ccd" for client-specific\n# configuration files (see man page for more info).\n\n# EXAMPLE: Suppose the client\n# having the certificate common name "Thelonious"\n# also has a small subnet behind his connecting\n# machine, such as 192.168.40.128/255.255.255.248.\n# First, uncomment out these lines:\n;client-config-dir ccd\n;route 192.168.40.128 255.255.255.248\n# Then create a file ccd/Thelonious with this line:\n# iroute 192.168.40.128 255.255.255.248\n# This will allow Thelonious\' private subnet to\n# access the VPN. This example will only work\n# if you are routing, not bridging, i.e. you are\n# using "dev tun" and "server" directives.\n\n# EXAMPLE: Suppose you want to give\n# Thelonious a fixed VPN IP address of 10.9.0.1.\n# First uncomment out these lines:\n;client-config-dir ccd\n;route 10.9.0.0 255.255.255.252\n# Then add this line to ccd/Thelonious:\n# ifconfig-push 10.9.0.1 10.9.0.2\n\n# Suppose that you want to enable different\n# firewall access policies for different groups\n# of clients. There are two methods:\n# (1) Run multiple OpenVPN daemons, one for each\n# group, and firewall the TUN/TAP interface\n# for each group/daemon appropriately.\n# (2) (Advanced) Create a script to dynamically\n# modify the firewall in response to access\n# from different clients. See man\n# page for more info on learn-address script.\n;learn-address ./script\n\n# If enabled, this directive will configure\n# all clients to redirect their default\n# network gateway through the VPN, causing\n# all IP traffic such as web browsing and\n# and DNS lookups to go through the VPN\n# (The OpenVPN server machine may need to NAT\n# or bridge the TUN/TAP interface to the internet\n# in order for this to work properly).\n;push "redirect-gateway def1 bypass-dhcp"\n\n# Certain Windows-specific network settings\n# can be pushed to clients, such as DNS\n# or WINS server addresses. CAVEAT:\n# http://openvpn.net/faq.html#dhcpcaveats\n# The addresses below refer to the public\n# DNS servers provided by opendns.com.\n;push "dhcp-option DNS 208.67.222.222"\n;push "dhcp-option DNS 208.67.220.220"\npush "dhcp-option DNS 8.8.8.8"\n\n# Uncomment this directive to allow different\n# clients to be able to "see" each other.\n# By default, clients will only see the server.\n# To force clients to only see the server, you\n# will also need to appropriately firewall the\n# server\'s TUN/TAP interface.\nclient-to-client\n\n# Uncomment this directive if multiple clients\n# might connect with the same certificate/key\n# files or common names. This is recommended\n# only for testing purposes. For production use,\n# each client should have its own certificate/key\n# pair.\n#\n# IF YOU HAVE NOT GENERATED INDIVIDUAL\n# CERTIFICATE/KEY PAIRS FOR EACH CLIENT,\n# EACH HAVING ITS OWN UNIQUE "COMMON NAME",\n# UNCOMMENT THIS LINE OUT.\n;duplicate-cn\n\n# The keepalive directive causes ping-like\n# messages to be sent back and forth over\n# the link so that each side knows when\n# the other side has gone down.\n# Ping every 10 seconds, assume that remote\n# peer is down if no ping received during\n# a 120 second time period.\nkeepalive 10 120\n\n# For extra security beyond that provided\n# by SSL/TLS, create an "HMAC firewall"\n# to help block DoS attacks and UDP port flooding.\n#\n# Generate with:\n# openvpn --genkey --secret ta.key\n#\n# The server and each client must have\n# a copy of this key.\n# The second parameter should be \'0\'\n# on the server and \'1\' on the clients.\ntls-auth /etc/openvpn/pki/ta.key 0 # This file is secret\n\n# Select a cryptographic cipher.\n# This config item must be copied to\n# the client config file as well.\n# Note that v2.4 client/server will automatically\n# negotiate AES-256-GCM in TLS mode.\n# See also the ncp-cipher option in the manpage\ncipher AES-256-CBC\n\n# Enable compression on the VPN link and push the\n# option to the client (v2.4+ only, for earlier\n# versions see below)\n;compress lz4-v2\n;push "compress lz4-v2"\n\n# For compression compatible with older clients use comp-lzo\n# If you enable it here, you must also\n# enable it in the client config file.\ncomp-lzo\n\n# The maximum number of concurrently connected\n# clients we want to allow.\nmax-clients 999\n\n# It\'s a good idea to reduce the OpenVPN\n# daemon\'s privileges after initialization.\n#\n# You can uncomment this out on\n# non-Windows systems.\n;user nobody\n;group nobody\n\n# The persist options will try to avoid\n# accessing certain resources on restart\n# that may no longer be accessible because\n# of the privilege downgrade.\npersist-key\npersist-tun\n\n# Output a short status file showing\n# current connections, truncated\n# and rewritten every minute.\nstatus openvpn-status.log\n\n# By default, log messages will go to the syslog (or\n# on Windows, if running as a service, they will go to\n# the "\\Program Files\\OpenVPN\\log" directory).\n# Use log or log-append to override this default.\n# "log" will truncate the log file on OpenVPN startup,\n# while "log-append" will append to it. Use one\n# or the other (but not both).\n;log openvpn.log\n;log-append openvpn.log\n\n# Set the appropriate level of log\n# file verbosity.\n#\n# 0 is silent, except for fatal errors\n# 4 is reasonable for general usage\n# 5 and 6 can help to debug connection problems\n# 9 is extremely verbose\nverb 3\n\n# Silence repeating messages. At most 20\n# sequential messages of the same message\n# category will be output to the log.\n;mute 20\n\n# Notify the client that when the server restarts so it\n# can automatically reconnect.\nexplicit-exit-notify 1\n')),(0,a.yg)("h3",{id:"\u914d\u7f6e-ip-\u8f6c\u53d1\u529f\u80fd"},"\u914d\u7f6e IP \u8f6c\u53d1\u529f\u80fd"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"# \u67e5\u8be2\nsysctl net.ipv4.ip_forward\n# \u8bbe\u7f6e\necho 'net.ipv4.ip_forward = 1' >/etc/sysctl.conf\nsysctl -p\n")),(0,a.yg)("p",null,"\u53c2\u8003",(0,a.yg)("a",{parentName:"p",href:"https://blog.csdn.net/wangqiaowq/article/details/131802323"},"net.ipv4.ip_forward")),(0,a.yg)("h3",{id:"clientovpn"},"client.ovpn"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"# \u76f8\u5f53\u4e8e pull tls-client\nclient\n#\ndev tun\n#\nproto udp\n# \u8fde\u63a5\u8fdc\u7a0bopenvpn server\uff0c\u53ef\u4ee5\u6709\u591a\u4e2a\uff0c\u4f46\u540c\u65f6\u8fde\u63a5\u53ea\u6709\u4e00\u4e2a\nremote 60.204.171.251 1194\nresolv-retry infinite\nnobind\npersist-key\npersist-tun\n#\nca ca.crt\ncert client001.crt\nkey client001.key\ntls-auth ta.key 1\n#\ncomp-lzo\n# \u65e5\u5fd7\u5bb9\u6613\u7ea7\u522b\nverb 3\n")),(0,a.yg)("h3",{id:"\u751f\u6210\u5ba2\u6237\u7aef\u8bc1\u4e66"},"\u751f\u6210\u5ba2\u6237\u7aef\u8bc1\u4e66"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"cd /etc/openvpn/easy-rsa/3.0/\n./easyrsa build-client-full client003\n/usr/bin/cp -rf /etc/openvpn/easy-rsa/3.0/pki/issued/client003.crt /etc/openvpn/client\n/usr/bin/cp -rf /etc/openvpn/easy-rsa/3.0/pki/private/client003.key /etc/openvpn/client\n")),(0,a.yg)("h3",{id:"\u914d\u7f6e\u4e0d\u540c\u7684\u5ba2\u6237\u7aef\u542f\u7528\u4e0d\u540c\u7684\u5b50\u7f51"},"\u914d\u7f6e\u4e0d\u540c\u7684\u5ba2\u6237\u7aef\u542f\u7528\u4e0d\u540c\u7684\u5b50\u7f51"),(0,a.yg)("p",null,"\u4fee\u6539 server.conf \u6587\u4ef6"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"# \u542f\u7528ccd \u589e\u52a0\u4e24\u4e2a\u5b50\u7f51\u8def\u7531\nclient-config-dir ccd\n;route 10.9.0.0 255.255.255.252\nroute 10.9.0.0 255.255.255.0\nroute 10.9.1.0 255.255.255.0\n# \u4fee\u6539topology\u4e3asubnet\ntopology subnet\n")),(0,a.yg)("h3",{id:"topology"},"topology"),(0,a.yg)("h4",{id:"tun-\u6a21\u5f0f"},"tun \u6a21\u5f0f\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"subnet\uff1a"),(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"a. \u4ece pool \u4e2d\u9009\u62e9\u4e00\u4e2a ip \u4f5c\u4e3a client \u7684\u865a\u62df\u7f51\u5361 ip\uff1b")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"b. \u5c06\u81ea\u5df1\u7684\u5b50\u7f51\u63a9\u7801\u4f5c\u4e3a client \u7684\u5b50\u7f51\u63a9\u7801\u3002")))),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"p2p\uff1a"),(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"a.\u4ece pool \u4e2d\u9009\u62e9\u4e00\u4e2a ip \u4f5c\u4e3a client \u7684\u865a\u62df\u7f51\u5361 ip\uff1b")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"b.\u5c06\u81ea\u5df1\u7684\u5b9e\u9645\u865a\u62df\u7f51\u5361 ip \u4f5c\u4e3a client \u7684\u5bf9\u7aef ip\u3002")))),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"net30\uff1a"),(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"a.\u4ece pool \u4e2d\u9009\u62e9 4 \u4e2a\u63a9\u7801\u4e3a 30 \u7684 ip\uff0c\u5c06\u4e2d\u95f4\u4e24\u4e2a ip \u4e2d\u7684\u5927\u8005\u4f5c\u4e3a client \u7684\u865a\u62df\u7f51\u5361 ip\uff1b")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"b.\u5c06\u5c0f\u8005\u4f5c\u4e3a client \u7684\u5bf9\u7aef ip\u3002"))))),(0,a.yg)("h4",{id:"tap-\u6a21\u5f0f"},"tap \u6a21\u5f0f\uff1a"),(0,a.yg)("p",null,"\u5b8c\u5168\u6309\u7167 tun \u6a21\u5f0f\u7684 1 \u6765\u5206\u914d\u3002"),(0,a.yg)("h3",{id:"\u811a\u672c\u521b\u5efa-client"},"\u811a\u672c\u521b\u5efa client"),(0,a.yg)("p",null,"\u811a\u672c\u521b\u5efa client\uff0c\u81ea\u52a8\u8f93\u5165 ca \u5bc6\u7801\uff0c"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},'#!/usr/bin/expect\n\nset timeout 30\n\nspawn ./easyrsa build-client-full client014 nopass\nexpect "pass"\nsend "weichuang"\nsend "\\n"\ninteract\n')),(0,a.yg)("h3",{id:"\u7ba1\u7406\u7aef\u63a5\u53e3"},"\u7ba1\u7406\u7aef\u63a5\u53e3"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://openvpn.net/community-resources/management-interface/"},"\u5b98\u65b9\u7ba1\u7406\u7aef\u63a5\u53e3\u4f7f\u7528\u6587\u6863"))),(0,a.yg)("h3",{id:"\u5305\u8fc7\u6ee4"},"\u5305\u8fc7\u6ee4"),(0,a.yg)("p",null,"\u53ef\u5b9e\u73b0\u7b80\u5355\u7684\u9632\u706b\u5899\u63a7\u5236"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://backreference.org/2010/06/18/openvpns-built-in-packet-filter/"},"openvpn \u5185\u7f6e\u5305\u8fc7\u6ee4\u975e\u5b98\u65b9\u6280\u672f\u6587\u6863"))),(0,a.yg)("h3",{id:"\u95ee\u9898\u8fde\u63a5\u6210\u529f\u540e\u5ba2\u6237\u7aef\u65e0\u6cd5\u6b63\u5e38\u8bbf\u95ee\u5176\u4ed6\u7f51\u7ad9"},"\u95ee\u9898\uff1a\u8fde\u63a5\u6210\u529f\u540e\uff0c\u5ba2\u6237\u7aef\u65e0\u6cd5\u6b63\u5e38\u8bbf\u95ee\u5176\u4ed6\u7f51\u7ad9"),(0,a.yg)("p",null,"\u5c06 server.conf \u7684"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},';push "redirect-gateway def1 bypass-dhcp"\n')),(0,a.yg)("p",null,"\u6ce8\u91ca\u6389"),(0,a.yg)("h3",{id:"\u95ee\u9898tcpdump-\u76d1\u542c\u4e0d\u4e86-tun0"},"\u95ee\u9898\uff1atcpdump \u76d1\u542c\u4e0d\u4e86 tun0"),(0,a.yg)("p",null,"\u5982\u679c\u5f00\u542f\u4e86 client-to-client\uff0c\u6d41\u91cf\u662f\u4e0d\u8d70 tun \u7684\u7684\u3002"),(0,a.yg)("p",null,"\u53ef\u4ee5\u53c2\u8003",(0,a.yg)("a",{parentName:"p",href:"https://serverfault.com/questions/1052645/openvpn-server-not-showing-traffic-using-tcpdump"},"openvpn server not showing traffic using tcpdump")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8a1a07c4.8782edfd.js b/assets/js/8a1a07c4.26cb9082.js similarity index 98% rename from assets/js/8a1a07c4.8782edfd.js rename to assets/js/8a1a07c4.26cb9082.js index f4c82a7f1..1af6783fe 100644 --- a/assets/js/8a1a07c4.8782edfd.js +++ b/assets/js/8a1a07c4.26cb9082.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9726],{5680:(e,t,r)=>{r.d(t,{xA:()=>l,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),u=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},l=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,c=e.originalType,p=e.parentName,l=i(e,["components","mdxType","originalType","parentName"]),s=u(r),d=o,f=s["".concat(p,".").concat(d)]||s[d]||y[d]||c;return r?n.createElement(f,a(a({ref:t},l),{},{components:r})):n.createElement(f,a({ref:t},l))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var c=r.length,a=new Array(c);a[0]=d;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:o,a[1]=i;for(var u=2;u{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>a,default:()=>y,frontMatter:()=>c,metadata:()=>i,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const c={},a="HSM",i={unversionedId:"study/encryption/HSM",id:"study/encryption/HSM",title:"HSM",description:"HSM \u52a0\u5bc6\u673a\u539f\u7406",source:"@site/docs/study/encryption/HSM.md",sourceDirName:"study/encryption",slug:"/study/encryption/HSM",permalink:"/docs/study/encryption/HSM",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"ASN.1",permalink:"/docs/study/encryption/ASN.1"},next:{title:"PKI",permalink:"/docs/study/encryption/PKI"}},p={},u=[],l={toc:u},s="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"hsm"},"HSM"),(0,o.yg)("p",null,"HSM \u52a0\u5bc6\u673a\u539f\u7406"),(0,o.yg)("p",null,"\u786c\u4ef6\u5b89\u5168\u6a21\u5757\uff08HSM\uff09\u662f\u4e00\u79cd\u7269\u7406\u8bbe\u5907\uff0c\u8bbe\u8ba1\u7528\u4e8e\u5b89\u5168\u5730\u7ba1\u7406\u3001\u5904\u7406\u548c\u5b58\u50a8\u52a0\u5bc6\u5bc6\u94a5\u548c\u6570\u5b57\u8bc1\u4e66\u3002HSM\u5e7f\u6cdb\u5e94\u7528\u4e8e\u9700\u8981\u9ad8\u5b89\u5168\u6027\u7684\u573a\u666f\uff0c\u5982\u91d1\u878d\u670d\u52a1\u3001\u6570\u636e\u4fdd\u62a4\u3001\u4f01\u4e1a\u5b89\u5168\u4ee5\u53ca\u653f\u5e9c\u548c\u519b\u4e8b\u9886\u57df\u3002HSM\u63d0\u4f9b\u4e86\u4e00\u79cd\u6bd4\u8f6f\u4ef6\u5b58\u50a8\u5bc6\u94a5\u66f4\u5b89\u5168\u7684\u65b9\u5f0f\uff0c\u56e0\u4e3a\u5bc6\u94a5\u6750\u6599\u4ece\u4e0d\u4ee5\u672a\u52a0\u5bc6\u5f62\u5f0f\u79bb\u5f00\u6a21\u5757\u3002"),(0,o.yg)("p",null,"VSM \u865a\u62df\u5bc6\u7801\u673a"))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9726],{5680:(e,t,r)=>{r.d(t,{xA:()=>l,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),u=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},l=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,c=e.originalType,p=e.parentName,l=i(e,["components","mdxType","originalType","parentName"]),s=u(r),d=o,f=s["".concat(p,".").concat(d)]||s[d]||y[d]||c;return r?n.createElement(f,a(a({ref:t},l),{},{components:r})):n.createElement(f,a({ref:t},l))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var c=r.length,a=new Array(c);a[0]=d;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:o,a[1]=i;for(var u=2;u{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>a,default:()=>y,frontMatter:()=>c,metadata:()=>i,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const c={},a="HSM",i={unversionedId:"study/encryption/HSM",id:"study/encryption/HSM",title:"HSM",description:"HSM \u52a0\u5bc6\u673a\u539f\u7406",source:"@site/docs/study/encryption/HSM.md",sourceDirName:"study/encryption",slug:"/study/encryption/HSM",permalink:"/docs/study/encryption/HSM",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"ASN.1",permalink:"/docs/study/encryption/ASN.1"},next:{title:"PKI",permalink:"/docs/study/encryption/PKI"}},p={},u=[],l={toc:u},s="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"hsm"},"HSM"),(0,o.yg)("p",null,"HSM \u52a0\u5bc6\u673a\u539f\u7406"),(0,o.yg)("p",null,"\u786c\u4ef6\u5b89\u5168\u6a21\u5757\uff08HSM\uff09\u662f\u4e00\u79cd\u7269\u7406\u8bbe\u5907\uff0c\u8bbe\u8ba1\u7528\u4e8e\u5b89\u5168\u5730\u7ba1\u7406\u3001\u5904\u7406\u548c\u5b58\u50a8\u52a0\u5bc6\u5bc6\u94a5\u548c\u6570\u5b57\u8bc1\u4e66\u3002HSM\u5e7f\u6cdb\u5e94\u7528\u4e8e\u9700\u8981\u9ad8\u5b89\u5168\u6027\u7684\u573a\u666f\uff0c\u5982\u91d1\u878d\u670d\u52a1\u3001\u6570\u636e\u4fdd\u62a4\u3001\u4f01\u4e1a\u5b89\u5168\u4ee5\u53ca\u653f\u5e9c\u548c\u519b\u4e8b\u9886\u57df\u3002HSM\u63d0\u4f9b\u4e86\u4e00\u79cd\u6bd4\u8f6f\u4ef6\u5b58\u50a8\u5bc6\u94a5\u66f4\u5b89\u5168\u7684\u65b9\u5f0f\uff0c\u56e0\u4e3a\u5bc6\u94a5\u6750\u6599\u4ece\u4e0d\u4ee5\u672a\u52a0\u5bc6\u5f62\u5f0f\u79bb\u5f00\u6a21\u5757\u3002"),(0,o.yg)("p",null,"VSM \u865a\u62df\u5bc6\u7801\u673a"))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8ac6cabb.48b06724.js b/assets/js/8ac6cabb.caaf6c92.js similarity index 99% rename from assets/js/8ac6cabb.48b06724.js rename to assets/js/8ac6cabb.caaf6c92.js index 6bf985709..f2bf27c4b 100644 --- a/assets/js/8ac6cabb.48b06724.js +++ b/assets/js/8ac6cabb.caaf6c92.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1821],{5680:(e,t,n)=>{n.d(t,{xA:()=>p,yg:()=>A});var r=n(6540);function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t=0||(l[n]=e[n]);return l}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}var u=r.createContext({}),c=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(u.Provider,{value:t},e.children)},y="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},P=r.forwardRef((function(e,t){var n=e.components,l=e.mdxType,o=e.originalType,u=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),y=c(n),P=l,A=y["".concat(u,".").concat(P)]||y[P]||s[P]||o;return n?r.createElement(A,a(a({ref:t},p),{},{components:n})):r.createElement(A,a({ref:t},p))}));function A(e,t){var n=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var o=n.length,a=new Array(o);a[0]=P;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[y]="string"==typeof e?e:l,a[1]=i;for(var c=2;c{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>a,default:()=>s,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var r=n(8168),l=(n(6540),n(5680));const o={},a=void 0,i={unversionedId:"study/think/\u67b6\u6784/CAP\u7406\u8bba",id:"study/think/\u67b6\u6784/CAP\u7406\u8bba",title:"CAP\u7406\u8bba",description:"\u7406\u8bba\u77e5\u8bc6",source:"@site/docs/study/think/\u67b6\u6784/CAP\u7406\u8bba.md",sourceDirName:"study/think/\u67b6\u6784",slug:"/study/think/\u67b6\u6784/CAP\u7406\u8bba",permalink:"/docs/study/think/\u67b6\u6784/CAP\u7406\u8bba",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u67b6\u6784",permalink:"/docs/study/think/\u67b6\u6784/"},next:{title:"\u5f02\u5730\u591a\u6d3b\u67b6\u6784",permalink:"/docs/study/think/\u67b6\u6784/\u5f02\u5730\u591a\u6d3b\u67b6\u6784"}},u={},c=[{value:"\u7406\u8bba\u77e5\u8bc6",id:"\u7406\u8bba\u77e5\u8bc6",level:3},{value:"\u4e2a\u4eba\u7406\u89e3",id:"\u4e2a\u4eba\u7406\u89e3",level:3}],p={toc:c},y="wrapper";function s(e){let{components:t,...n}=e;return(0,l.yg)(y,(0,r.A)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,l.yg)("h3",{id:"\u7406\u8bba\u77e5\u8bc6"},"\u7406\u8bba\u77e5\u8bc6"),(0,l.yg)("p",null,"\u5728\u4e00\u4e2a\u5206\u5e03\u5f0f\u7cfb\u7edf\uff08\u6307\u4e92\u76f8\u8fde\u63a5\u5e76\u5171\u4eab\u6570\u636e\u7684\u8282\u70b9\u7684\u96c6\u5408\uff09\u4e2d\uff0c\u5f53\u6d89\u53ca\u8bfb\u5199\u64cd\u4f5c\u65f6\uff0c\u53ea\u80fd\u4fdd\u8bc1\u4e00\u81f4\u6027\uff08Consistence\uff09\u3001\u53ef\u7528\u6027\uff08Availability\uff09\u3001\u5206\u533a\u5bb9\u9519\u6027\uff08Partition Tolerance\uff09\u4e09\u8005\u4e2d\u7684\u4e24\u4e2a\uff0c\u53e6\u5916\u4e00\u4e2a\u5fc5\u987b\u88ab\u727a\u7272\u3002"),(0,l.yg)("p",null,"\u5206\u5e03\u5f0f\u7cfb\u7edf\u5e76\u4e0d\u4e00\u5b9a\u4f1a\u4e92\u8054\u548c\u5171\u4eab\u6570\u636e\u3002\u6700\u7b80\u5355\u7684\u4f8b\u5982 Memcache \u7684\u96c6\u7fa4\uff0c\u76f8\u4e92\u4e4b\u95f4\u5c31\u6ca1\u6709\u8fde\u63a5\u548c\u5171\u4eab\u6570\u636e\uff0c\u56e0\u6b64 Memcache \u96c6\u7fa4\u8fd9\u7c7b\u5206\u5e03\u5f0f\u7cfb\u7edf\u5c31\u4e0d\u7b26\u5408 CAP \u7406\u8bba\u63a2\u8ba8\u7684\u5bf9\u8c61\uff1b\u800c MySQL \u96c6\u7fa4\u5c31\u662f\u4e92\u8054\u548c\u8fdb\u884c\u6570\u636e\u590d\u5236\u7684\uff0c\u56e0\u6b64\u662f CAP \u7406\u8bba\u63a2\u8ba8\u7684\u5bf9\u8c61\u3002"),(0,l.yg)("p",null,"CAP \u5173\u6ce8\u7684\u662f\u5bf9\u6570\u636e\u7684\u8bfb\u5199\u64cd\u4f5c\uff0c\u800c\u4e0d\u662f\u5206\u5e03\u5f0f\u7cfb\u7edf\u7684\u6240\u6709\u529f\u80fd\u3002\u4f8b\u5982\uff0cZooKeeper \u7684\u9009\u4e3e\u673a\u5236\u5c31\u4e0d\u662f CAP \u63a2\u8ba8\u7684\u5bf9\u8c61\u3002"),(0,l.yg)("p",null,"\u4e00\u81f4\u6027\uff08Consistency\uff09\uff0c\u5bf9\u67d0\u4e2a\u6307\u5b9a\u7684\u5ba2\u6237\u7aef\u6765\u8bf4\uff0c\u8bfb\u64cd\u4f5c\u4fdd\u8bc1\u80fd\u591f\u8fd4\u56de\u6700\u65b0\u7684\u5199\u64cd\u4f5c\u7ed3\u679c\u3002"),(0,l.yg)("p",null,"\u53ef\u7528\u6027\uff08Availability\uff09\uff0c\u975e\u6545\u969c\u7684\u8282\u70b9\u5728\u5408\u7406\u7684\u65f6\u95f4\u5185\u8fd4\u56de\u5408\u7406\u7684\u54cd\u5e94\uff08\u4e0d\u662f\u9519\u8bef\u548c\u8d85\u65f6\u7684\u54cd\u5e94\uff09\u3002"),(0,l.yg)("p",null,"\u5206\u533a\u5bb9\u5fcd\u6027\uff08Partition Tolerance\uff09\uff0c\u5f53\u51fa\u73b0\u7f51\u7edc\u5206\u533a\u540e\uff0c\u7cfb\u7edf\u80fd\u591f\u7ee7\u7eed\u201c\u5c65\u884c\u804c\u8d23\u201d\u3002"),(0,l.yg)("p",null,"\u867d\u7136 CAP \u7406\u8bba\u5b9a\u4e49\u662f\u4e09\u4e2a\u8981\u7d20\u4e2d\u53ea\u80fd\u53d6\u4e24\u4e2a\uff0c\u4f46\u653e\u5230\u5206\u5e03\u5f0f\u73af\u5883\u4e0b\u6765\u601d\u8003\uff0c\u6211\u4eec\u4f1a\u53d1\u73b0\u5fc5\u987b\u9009\u62e9 P\uff08\u5206\u533a\u5bb9\u5fcd\uff09\u8981\u7d20\uff0c\u56e0\u4e3a\u7f51\u7edc\u672c\u8eab\u65e0\u6cd5\u505a\u5230 100% \u53ef\u9760\uff0c\u6709\u53ef\u80fd\u51fa\u6545\u969c\uff0c\u6240\u4ee5\u5206\u533a\u662f\u4e00\u4e2a\u5fc5\u7136\u7684\u73b0\u8c61\u3002\u5982\u679c\u6211\u4eec\u9009\u62e9\u4e86 CA \u800c\u653e\u5f03\u4e86 P\uff0c\u90a3\u4e48\u5f53\u53d1\u751f\u5206\u533a\u73b0\u8c61\u65f6\uff0c\u4e3a\u4e86\u4fdd\u8bc1 C\uff0c\u7cfb\u7edf\u9700\u8981\u7981\u6b62\u5199\u5165\uff0c\u5f53\u6709\u5199\u5165\u8bf7\u6c42\u65f6\uff0c\u7cfb\u7edf\u8fd4\u56de error\uff08\u4f8b\u5982\uff0c\u5f53\u524d\u7cfb\u7edf\u4e0d\u5141\u8bb8\u5199\u5165\uff09\uff0c\u8fd9\u53c8\u548c A \u51b2\u7a81\u4e86\uff0c\u56e0\u4e3a A \u8981\u6c42\u8fd4\u56de no error \u548c no timeout\u3002\u56e0\u6b64\uff0c\u5206\u5e03\u5f0f\u7cfb\u7edf\u7406\u8bba\u4e0a\u4e0d\u53ef\u80fd\u9009\u62e9 CA \u67b6\u6784\uff0c\u53ea\u80fd\u9009\u62e9 CP \u6216\u8005 AP \u67b6\u6784\u3002"),(0,l.yg)("p",null," Paxos\u7b97\u6cd5\u672c\u8eab\u80fd\u63d0\u4f9b\u7684\u662f\uff0c\u53ef\u9760\u7684\u6700\u7ec8\u4e00\u81f4\u6027\u4fdd\u8bc1\u3002\u5982\u6709\u8db3\u591f\u7684\u9694\u79bb\u6027\u63aa\u65bd\uff0c\u4e2d\u95f4\u72b6\u6001\u7684\u65e0\u6cd5\u88ab\u5ba2\u6237\u7aef\u8bfb\u53d6\uff0c\u5219\u53ef\u4ee5\u8fbe\u5230\u5f3a\u4e00\u81f4\u6027\uff0c\u8fd9\u79cd\u5c5e\u4e8eCP\u67b6\u6784\u3002\u5176\u5b83\u60c5\u51b5\uff0c\u5c31\u662fAP\u67b6\u6784\u3002 "),(0,l.yg)("p",null,"CAP\u5b9a\u7406\u5b58\u5728\u4e0d\u5c11\u5751\u70b9\uff0c\u7406\u89e3\u8d77\u6765\u5f88\u662f\u4ee4\u4eba\u8d39\u89e3\u3002\n1\u3001\u9002\u7528\u573a\u666f\u3002\u5206\u5e03\u5f0f\u7cfb\u7edf\u6709\u5f88\u591a\u7c7b\u578b\uff0c\u6709\u5f02\u6784\u7684\uff0c\u6bd4\u5982\u8282\u70b9\u4e4b\u95f4\u662f\u4e0a\u4e0b\u6e38\u4f9d\u8d56\u7684\u5173\u7cfb\uff0c\u6709\u540c\u6784\u7684\uff0c\u6bd4\u5982\u5206\u533a/\u5206\u7247\u578b\u7684\u3001\u526f\u672c\u578b\u7684\uff08\u4e3b\u4ece\u3001\u591a\u4e3b\uff09\u3002CAP\u5b9a\u7406\u7684\u9002\u7528\u573a\u666f\u662f\u526f\u672c\u578b\u7684\u8fd9\u79cd\u3002\n2\u3001\u4e00\u81f4\u6027\u7684\u6982\u5ff5\uff0c\u4ece\u5f3a\u5230\u5f31\uff0c\u7ebf\u6027\u4e00\u81f4\u6027\u3001\u987a\u5e8f\u4e00\u81f4\u6027\u3001\u56e0\u679c\u4e00\u81f4\u6027\u3001\u5355\u8c03\u4e00\u81f4\u6027\u3001\u6700\u7ec8\u4e00\u81f4\u6027\uff0cCAP\u4e2d\u7684\u4e00\u81f4\u6027\u5e94\u8be5\u662f\u6307\u7ebf\u6027\u4e00\u81f4\u6027\u3002\n3\u3001CAP\u4e2d\u7684\u4e00\u81f4\u6027\uff0c\u4e0eACID\u4e2d\u7684\u4e00\u81f4\u6027\u7684\u533a\u522b\u3002\u4e8b\u52a1\u4e2d\u7684\u4e00\u81f4\u6027\uff0c\u662f\u6307\u6ee1\u8db3\u5b8c\u6574\u6027\u7ea6\u675f\u6761\u4ef6\uff0cCAP\u4e2d\u7684\u4e00\u81f4\u6027\uff0c\u662f\u6307\u8bfb\u5199\u4e00\u81f4\u6027\u3002\n4\u3001CAP\u4e2d\u7684\u53ef\u7528\u6027\uff0c\u4e0e\u6211\u4eec\u5e38\u8bf4\u7684\u9ad8\u53ef\u7528\u7684\u533a\u522b\u3002\u6bd4\u5982HBase\u3001MongoDB\u5c5e\u4e8eCP\u67b6\u6784\uff0cCassandra\u3001CounchDB\u5c5e\u4e8eAP\u7cfb\u7edf\uff0c\u80fd\u8bf4\u540e\u8005\u6bd4\u524d\u8005\u66f4\u9ad8\u53ef\u7528\u4e48\uff1f\u5e94\u8be5\u4e0d\u662f\u3002CAP\u4e2d\u7684\u53ef\u7528\u6027\uff0c\u662f\u6307\u5728\u67d0\u4e00\u6b21\u8bfb\u64cd\u4f5c\u4e2d\uff0c\u5373\u4fbf\u53d1\u73b0\u4e0d\u4e00\u81f4\uff0c\u4e5f\u8981\u8fd4\u56de\u54cd\u5e94\uff0c\u5373\u5728\u5408\u7406\u65f6\u95f4\u5185\u8fd4\u56de\u5408\u7406\u54cd\u5e94\u3002\u6211\u4eec\u5e38\u8bf4\u7684\u9ad8\u53ef\u7528\uff0c\u662f\u6307\u90e8\u5206\u5b9e\u4f8b\u6302\u4e86\uff0c\u80fd\u81ea\u52a8\u6458\u9664\uff0c\u5e76\u7531\u5176\u5b83\u5b9e\u4f8b\u7ee7\u7eed\u63d0\u4f9b\u670d\u52a1\uff0c\u5173\u952e\u662f\u5197\u4f59\u3002\n5\u3001\u54ea\u4e9b\u60c5\u51b5\u5c5e\u4e8e\u7f51\u7edc\u5206\u533a\u3002\u7f51\u7edc\u6545\u969c\u9020\u6210\u7684\u5206\u533a\uff0c\u5c5e\u4e8e\u3002\u8282\u70b9\u5e94\u7528\u51fa\u73b0\u95ee\u9898\u5bfc\u81f4\u8d85\u65f6\uff0c\u5c5e\u4e8e\u3002\u8282\u70b9\u5b95\u673a\u6216\u786c\u4ef6\u6545\u969c\uff0c\u4e0d\u5c5e\u4e8e\u3002"),(0,l.yg)("p",null,"CAP \u5173\u6ce8\u7684\u7c92\u5ea6\u662f\u6570\u636e\uff0c\u800c\u4e0d\u662f\u6574\u4e2a\u7cfb\u7edf\u3002\u6240\u4ee5\u5728 CAP \u7406\u8bba\u843d\u5730\u5b9e\u8df5\u65f6\uff0c\u6211\u4eec\u9700\u8981\u5c06\u7cfb\u7edf\u5185\u7684\u6570\u636e\u6309\u7167\u4e0d\u540c\u7684\u5e94\u7528\u573a\u666f\u548c\u8981\u6c42\u8fdb\u884c\u5206\u7c7b\uff0c\u6bcf\u7c7b\u6570\u636e\u9009\u62e9\u4e0d\u540c\u7684\u7b56\u7565\uff08CP \u8fd8\u662f AP\uff09\uff0c\u800c\u4e0d\u662f\u76f4\u63a5\u9650\u5b9a\u6574\u4e2a\u7cfb\u7edf\u6240\u6709\u6570\u636e\u90fd\u662f\u540c\u4e00\u7b56\u7565\u3002"),(0,l.yg)("p",null,"CAP \u662f\u5ffd\u7565\u7f51\u7edc\u5ef6\u8fdf\u7684\u3002"),(0,l.yg)("p",null,"\u6b63\u5e38\u8fd0\u884c\u60c5\u51b5\u4e0b\uff0c\u4e0d\u5b58\u5728 CP \u548c AP \u7684\u9009\u62e9\uff0c\u53ef\u4ee5\u540c\u65f6\u6ee1\u8db3 CA\u3002"),(0,l.yg)("p",null,"\u653e\u5f03\u5e76\u4e0d\u7b49\u4e8e\u4ec0\u4e48\u90fd\u4e0d\u505a\uff0c\u9700\u8981\u4e3a\u5206\u533a\u6062\u590d\u540e\u505a\u51c6\u5907\u3002"),(0,l.yg)("p",null,"ACID \u4e2d\u7684 A\uff08Atomicity\uff09\u548c CAP \u4e2d\u7684 A\uff08Availability\uff09\u610f\u4e49\u5b8c\u5168\u4e0d\u540c\uff0c\u800c ACID \u4e2d\u7684 C \u548c CAP \u4e2d\u7684 C \u540d\u79f0\u867d\u7136\u90fd\u662f\u4e00\u81f4\u6027\uff0c\u4f46\u542b\u4e49\u4e5f\u5b8c\u5168\u4e0d\u4e00\u6837\u3002ACID \u4e2d\u7684 C \u662f\u6307\u6570\u636e\u5e93\u7684\u6570\u636e\u5b8c\u6574\u6027\uff0c\u800c CAP \u4e2d\u7684 C \u662f\u6307\u5206\u5e03\u5f0f\u8282\u70b9\u4e2d\u7684\u6570\u636e\u4e00\u81f4\u6027\u3002\u518d\u7ed3\u5408 ACID \u7684\u5e94\u7528\u573a\u666f\u662f\u6570\u636e\u5e93\u4e8b\u52a1\uff0cCAP \u5173\u6ce8\u7684\u662f\u5206\u5e03\u5f0f\u7cfb\u7edf\u6570\u636e\u8bfb\u5199\u8fd9\u4e2a\u5dee\u5f02\u70b9\u6765\u770b\uff0c\u5176\u5b9e CAP \u548c ACID \u7684\u5bf9\u6bd4\u5c31\u7c7b\u4f3c\u5173\u516c\u6218\u79e6\u743c\uff0c\u867d\u7136\u5173\u516c\u548c\u79e6\u743c\u90fd\u662f\u6b66\u5c06\uff0c\u4f46\u5176\u5b9e\u6ca1\u6709\u592a\u591a\u53ef\u6bd4\u6027\u3002"),(0,l.yg)("p",null,"BASE \u662f\u6307\u57fa\u672c\u53ef\u7528\uff08Basically Available\uff09\u3001\u8f6f\u72b6\u6001\uff08 Soft State\uff09\u3001\u6700\u7ec8\u4e00\u81f4\u6027\uff08 Eventual Consistency\uff09\uff0c\u6838\u5fc3\u601d\u60f3\u662f\u5373\u4f7f\u65e0\u6cd5\u505a\u5230\u5f3a\u4e00\u81f4\u6027\uff08CAP \u7684\u4e00\u81f4\u6027\u5c31\u662f\u5f3a\u4e00\u81f4\u6027\uff09\uff0c\u4f46\u5e94\u7528\u53ef\u4ee5\u91c7\u7528\u9002\u5408\u7684\u65b9\u5f0f\u8fbe\u5230\u6700\u7ec8\u4e00\u81f4\u6027\u3002"),(0,l.yg)("p",null,"BASE \u7406\u8bba\u672c\u8d28\u4e0a\u662f\u5bf9 CAP \u7684\u5ef6\u4f38\u548c\u8865\u5145\uff0c\u66f4\u5177\u4f53\u5730\u8bf4\uff0c\u662f\u5bf9 CAP \u4e2d AP \u65b9\u6848\u7684\u4e00\u4e2a\u8865\u5145\u3002CAP \u7406\u8bba\u662f\u5ffd\u7565\u5ef6\u65f6\u7684\uff0c\u800c\u5b9e\u9645\u5e94\u7528\u4e2d\u5ef6\u65f6\u662f\u65e0\u6cd5\u907f\u514d\u7684\u3002AP \u65b9\u6848\u4e2d\u727a\u7272\u4e00\u81f4\u6027\u53ea\u662f\u6307\u5206\u533a\u671f\u95f4\uff0c\u800c\u4e0d\u662f\u6c38\u8fdc\u653e\u5f03\u4e00\u81f4\u6027\u3002"),(0,l.yg)("h3",{id:"\u4e2a\u4eba\u7406\u89e3"},"\u4e2a\u4eba\u7406\u89e3"),(0,l.yg)("p",null,"\u8bbe\u8ba1\u5206\u5e03\u5f0f\u7cfb\u7edf\u7684\u4e24\u5927\u521d\u8877\uff1a\u6a2a\u5411\u6269\u5c55\uff08scalability\uff09\u548c\u9ad8\u53ef\u7528\u6027\uff08availability\uff09\u3002\u201c\u6a2a\u5411\u6269\u5c55\u201d\u662f\u4e3a\u4e86\u89e3\u51b3\u5355\u70b9\u74f6\u9888\u95ee\u9898\uff0c\u8fdb\u800c\u4fdd\u8bc1\u9ad8\u5e76\u53d1\u91cf\u4e0b\u7684\u300c\u53ef\u7528\u6027\u300d\uff1b\u201c\u9ad8\u53ef\u7528\u6027\u201d\u662f\u4e3a\u4e86\u89e3\u51b3\u5355\u70b9\u6545\u969c\uff08SPOF\uff09\u95ee\u9898\uff0c\u8fdb\u800c\u4fdd\u8bc1\u90e8\u5206\u8282\u70b9\u6545\u969c\u65f6\u7684\u300c\u53ef\u7528\u6027\u300d\u3002\u7531\u6b64\u53ef\u4ee5\u770b\u51fa\uff0c\u5206\u5e03\u5f0f\u7cfb\u7edf\u7684\u6838\u5fc3\u8bc9\u6c42\u5c31\u662f\u300c\u53ef\u7528\u6027\u300d\u3002\u8fd9\u4e2a\u300c\u53ef\u7528\u6027\u300d\u6b63\u662f CAP \u4e2d\u7684 A\uff1a\u7528\u6237\u8bbf\u95ee\u7cfb\u7edf\u65f6\uff0c\u53ef\u4ee5\u5728\u5408\u7406\u7684\u65f6\u95f4\u5185\u5f97\u5230\u5408\u7406\u7684\u54cd\u5e94\u3002 "),(0,l.yg)("p",null,"\u4e3a\u4e86\u4fdd\u8bc1\u300c\u53ef\u7528\u6027\u300d\uff0c\u4e00\u4e2a\u5206\u5e03\u5f0f\u7cfb\u7edf\u901a\u5e38\u7531\u591a\u4e2a\u8282\u70b9\u7ec4\u6210\u3002\u8fd9\u4e9b\u8282\u70b9\u5404\u81ea\u7ef4\u62a4\u4e00\u4efd\u6570\u636e\uff0c\u4f46\u662f\u4e0d\u7ba1\u7528\u6237\u8bbf\u95ee\u5230\u54ea\u4e2a\u8282\u70b9\uff0c\u539f\u5219\u4e0a\u90fd\u5e94\u8be5\u8bfb\u53d6\u5230\u76f8\u540c\u7684\u6570\u636e\u3002\u4e3a\u4e86\u8fbe\u5230\u8fd9\u4e2a\u6548\u679c\uff0c\u4e00\u4e2a\u8282\u70b9\u6536\u5230\u5199\u5165\u8bf7\u6c42\u66f4\u65b0\u81ea\u5df1\u7684\u6570\u636e\u540e\uff0c\u5fc5\u987b\u5c06\u6570\u636e\u540c\u6b65\u5230\u5176\u4ed6\u8282\u70b9\uff0c\u4ee5\u4fdd\u8bc1\u5404\u4e2a\u8282\u70b9\u7684\u6570\u636e\u300c\u4e00\u81f4\u6027\u300d\u3002\u8fd9\u4e2a\u300c\u4e00\u81f4\u6027\u300d\u6b63\u662f CAP \u4e2d\u7684 C\uff1a\u7528\u6237\u8bbf\u95ee\u7cfb\u7edf\u65f6\uff0c\u53ef\u4ee5\u8bfb\u53d6\u5230\u6700\u8fd1\u5199\u5165\u7684\u6570\u636e\u3002 "),(0,l.yg)("p",null,"\u9700\u8981\u6ce8\u610f\u7684\u662f\uff1aCAP \u5e76\u6ca1\u6709\u8003\u8651\u6570\u636e\u540c\u6b65\u7684\u8017\u65f6\uff0c\u6240\u4ee5\u73b0\u5b9e\u4e2d\u7684\u5206\u5e03\u5f0f\u7cfb\u7edf\uff0c\u7406\u8bba\u4e0a\u65e0\u6cd5\u4fdd\u8bc1\u4efb\u4f55\u65f6\u523b\u7684\u7edd\u5bf9\u300c\u4e00\u81f4\u6027\u300d\uff1b\u4e0d\u540c\u4e1a\u52a1\u7cfb\u7edf\u5bf9\u4e0a\u8ff0\u8017\u65f6\u7684\u654f\u611f\u5ea6\u4e0d\u540c\u3002 "),(0,l.yg)("p",null,"\u5206\u5e03\u5f0f\u7cfb\u7edf\u4e2d\uff0c\u8282\u70b9\u4e4b\u95f4\u7684\u6570\u636e\u540c\u6b65\u662f\u57fa\u4e8e\u7f51\u7edc\u7684\u3002\u7531\u4e8e\u7f51\u7edc\u672c\u8eab\u56fa\u6709\u7684\u4e0d\u53ef\u9760\u5c5e\u6027\uff0c\u6781\u7aef\u60c5\u51b5\u4e0b\u4f1a\u51fa\u73b0\u7f51\u7edc\u4e0d\u53ef\u7528\u7684\u60c5\u51b5\uff0c\u8fdb\u800c\u5c06\u7f51\u7edc\u4e24\u7aef\u7684\u8282\u70b9\u5b64\u7acb\u5f00\u6765\uff0c\u8fd9\u5c31\u662f\u6240\u8c13\u7684\u201c\u7f51\u7edc\u5206\u533a\u201d\u73b0\u8c61\u3002\u201c\u7f51\u7edc\u5206\u533a\u201d\u7406\u8bba\u4e0a\u662f\u65e0\u6cd5\u907f\u514d\u7684\uff0c\u867d\u7136\u5b9e\u9645\u53d1\u751f\u7684\u6982\u7387\u8f83\u4f4e\u3001\u65f6\u957f\u8f83\u77ed\u3002\u6ca1\u6709\u53d1\u751f\u201c\u7f51\u7edc\u5206\u533a\u201d\u65f6\uff0c\u7cfb\u7edf\u53ef\u4ee5\u505a\u5230\u540c\u65f6\u4fdd\u8bc1\u300c\u4e00\u81f4\u6027\u300d\u548c\u300c\u53ef\u7528\u6027\u300d\u3002 "),(0,l.yg)("p",null,"\u53d1\u751f\u201c\u7f51\u7edc\u5206\u533a\u201d\u65f6\uff0c\u7cfb\u7edf\u4e2d\u591a\u4e2a\u8282\u70b9\u7684\u6570\u636e\u4e00\u5b9a\u662f\u4e0d\u4e00\u81f4\u7684\uff0c\u4f46\u662f\u53ef\u4ee5\u9009\u62e9\u5bf9\u7528\u6237\u8868\u73b0\u51fa\u300c\u4e00\u81f4\u6027\u300d\uff0c\u4ee3\u4ef7\u662f\u727a\u7272\u300c\u53ef\u7528\u6027\u300d\uff1a\u5c06\u672a\u80fd\u540c\u6b65\u5f97\u5230\u65b0\u6570\u636e\u7684\u90e8\u5206\u8282\u70b9\u7f6e\u4e3a\u201c\u4e0d\u53ef\u7528\u72b6\u6001\u201d\uff0c\u8bbf\u95ee\u5230\u8fd9\u4e9b\u8282\u70b9\u7684\u7528\u6237\u663e\u7136\u611f\u77e5\u5230\u7cfb\u7edf\u662f\u4e0d\u53ef\u7528\u7684\u3002\u53d1\u751f\u201c\u7f51\u7edc\u5206\u533a\u201d\u65f6\uff0c\u7cfb\u7edf\u4e5f\u53ef\u4ee5\u9009\u62e9\u300c\u53ef\u7528\u6027\u300d\uff0c\u6b64\u65f6\u7cfb\u7edf\u4e2d\u5404\u4e2a\u8282\u70b9\u90fd\u662f\u53ef\u7528\u7684\uff0c\u53ea\u662f\u8fd4\u56de\u7ed9\u7528\u6237\u7684\u6570\u636e\u662f\u4e0d\u4e00\u81f4\u7684\u3002\u8fd9\u91cc\u7684\u9009\u62e9\uff0c\u5c31\u662f CAP \u4e2d\u7684 P\u3002 "),(0,l.yg)("p",null,"\u5206\u5e03\u5f0f\u7cfb\u7edf\u7406\u8bba\u4e0a\u4e00\u5b9a\u4f1a\u5b58\u5728 P\uff0c\u6240\u4ee5\u7406\u8bba\u4e0a\u53ea\u80fd\u505a\u5230 CP \u6216 AP\u3002\u5982\u679c\u5957\u7528 CAP \u4e2d\u79bb\u6563\u7684 C/A/P \u7684\u6982\u5ff5\uff0c\u7406\u8bba\u4e0a\u6ca1\u6709 P \u7684\u53ea\u53ef\u80fd\u662f\u5355\u70b9\uff08\u5b50\uff09\u7cfb\u7edf\uff0c\u6240\u4ee5\u7406\u8bba\u4e0a\u53ef\u4ee5\u505a\u5230 CA\u3002\u4f46\u662f\u5355\u70b9\uff08\u5b50\uff09\u7cfb\u7edf\u5e76\u4e0d\u662f\u5206\u5e03\u5f0f\u7cfb\u7edf\uff0c\u6240\u4ee5\u5176\u5b9e\u5e76\u4e0d\u5728 CAP \u7406\u8bba\u7684\u63cf\u8ff0\u8303\u56f4\u5185\u3002"))}s.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1821],{5680:(e,t,n)=>{n.d(t,{xA:()=>p,yg:()=>A});var r=n(6540);function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t=0||(l[n]=e[n]);return l}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}var u=r.createContext({}),c=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(u.Provider,{value:t},e.children)},y="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},P=r.forwardRef((function(e,t){var n=e.components,l=e.mdxType,o=e.originalType,u=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),y=c(n),P=l,A=y["".concat(u,".").concat(P)]||y[P]||s[P]||o;return n?r.createElement(A,a(a({ref:t},p),{},{components:n})):r.createElement(A,a({ref:t},p))}));function A(e,t){var n=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var o=n.length,a=new Array(o);a[0]=P;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[y]="string"==typeof e?e:l,a[1]=i;for(var c=2;c{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>a,default:()=>s,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var r=n(8168),l=(n(6540),n(5680));const o={},a=void 0,i={unversionedId:"study/think/\u67b6\u6784/CAP\u7406\u8bba",id:"study/think/\u67b6\u6784/CAP\u7406\u8bba",title:"CAP\u7406\u8bba",description:"\u7406\u8bba\u77e5\u8bc6",source:"@site/docs/study/think/\u67b6\u6784/CAP\u7406\u8bba.md",sourceDirName:"study/think/\u67b6\u6784",slug:"/study/think/\u67b6\u6784/CAP\u7406\u8bba",permalink:"/docs/study/think/\u67b6\u6784/CAP\u7406\u8bba",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u67b6\u6784",permalink:"/docs/study/think/\u67b6\u6784/"},next:{title:"\u5f02\u5730\u591a\u6d3b\u67b6\u6784",permalink:"/docs/study/think/\u67b6\u6784/\u5f02\u5730\u591a\u6d3b\u67b6\u6784"}},u={},c=[{value:"\u7406\u8bba\u77e5\u8bc6",id:"\u7406\u8bba\u77e5\u8bc6",level:3},{value:"\u4e2a\u4eba\u7406\u89e3",id:"\u4e2a\u4eba\u7406\u89e3",level:3}],p={toc:c},y="wrapper";function s(e){let{components:t,...n}=e;return(0,l.yg)(y,(0,r.A)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,l.yg)("h3",{id:"\u7406\u8bba\u77e5\u8bc6"},"\u7406\u8bba\u77e5\u8bc6"),(0,l.yg)("p",null,"\u5728\u4e00\u4e2a\u5206\u5e03\u5f0f\u7cfb\u7edf\uff08\u6307\u4e92\u76f8\u8fde\u63a5\u5e76\u5171\u4eab\u6570\u636e\u7684\u8282\u70b9\u7684\u96c6\u5408\uff09\u4e2d\uff0c\u5f53\u6d89\u53ca\u8bfb\u5199\u64cd\u4f5c\u65f6\uff0c\u53ea\u80fd\u4fdd\u8bc1\u4e00\u81f4\u6027\uff08Consistence\uff09\u3001\u53ef\u7528\u6027\uff08Availability\uff09\u3001\u5206\u533a\u5bb9\u9519\u6027\uff08Partition Tolerance\uff09\u4e09\u8005\u4e2d\u7684\u4e24\u4e2a\uff0c\u53e6\u5916\u4e00\u4e2a\u5fc5\u987b\u88ab\u727a\u7272\u3002"),(0,l.yg)("p",null,"\u5206\u5e03\u5f0f\u7cfb\u7edf\u5e76\u4e0d\u4e00\u5b9a\u4f1a\u4e92\u8054\u548c\u5171\u4eab\u6570\u636e\u3002\u6700\u7b80\u5355\u7684\u4f8b\u5982 Memcache \u7684\u96c6\u7fa4\uff0c\u76f8\u4e92\u4e4b\u95f4\u5c31\u6ca1\u6709\u8fde\u63a5\u548c\u5171\u4eab\u6570\u636e\uff0c\u56e0\u6b64 Memcache \u96c6\u7fa4\u8fd9\u7c7b\u5206\u5e03\u5f0f\u7cfb\u7edf\u5c31\u4e0d\u7b26\u5408 CAP \u7406\u8bba\u63a2\u8ba8\u7684\u5bf9\u8c61\uff1b\u800c MySQL \u96c6\u7fa4\u5c31\u662f\u4e92\u8054\u548c\u8fdb\u884c\u6570\u636e\u590d\u5236\u7684\uff0c\u56e0\u6b64\u662f CAP \u7406\u8bba\u63a2\u8ba8\u7684\u5bf9\u8c61\u3002"),(0,l.yg)("p",null,"CAP \u5173\u6ce8\u7684\u662f\u5bf9\u6570\u636e\u7684\u8bfb\u5199\u64cd\u4f5c\uff0c\u800c\u4e0d\u662f\u5206\u5e03\u5f0f\u7cfb\u7edf\u7684\u6240\u6709\u529f\u80fd\u3002\u4f8b\u5982\uff0cZooKeeper \u7684\u9009\u4e3e\u673a\u5236\u5c31\u4e0d\u662f CAP \u63a2\u8ba8\u7684\u5bf9\u8c61\u3002"),(0,l.yg)("p",null,"\u4e00\u81f4\u6027\uff08Consistency\uff09\uff0c\u5bf9\u67d0\u4e2a\u6307\u5b9a\u7684\u5ba2\u6237\u7aef\u6765\u8bf4\uff0c\u8bfb\u64cd\u4f5c\u4fdd\u8bc1\u80fd\u591f\u8fd4\u56de\u6700\u65b0\u7684\u5199\u64cd\u4f5c\u7ed3\u679c\u3002"),(0,l.yg)("p",null,"\u53ef\u7528\u6027\uff08Availability\uff09\uff0c\u975e\u6545\u969c\u7684\u8282\u70b9\u5728\u5408\u7406\u7684\u65f6\u95f4\u5185\u8fd4\u56de\u5408\u7406\u7684\u54cd\u5e94\uff08\u4e0d\u662f\u9519\u8bef\u548c\u8d85\u65f6\u7684\u54cd\u5e94\uff09\u3002"),(0,l.yg)("p",null,"\u5206\u533a\u5bb9\u5fcd\u6027\uff08Partition Tolerance\uff09\uff0c\u5f53\u51fa\u73b0\u7f51\u7edc\u5206\u533a\u540e\uff0c\u7cfb\u7edf\u80fd\u591f\u7ee7\u7eed\u201c\u5c65\u884c\u804c\u8d23\u201d\u3002"),(0,l.yg)("p",null,"\u867d\u7136 CAP \u7406\u8bba\u5b9a\u4e49\u662f\u4e09\u4e2a\u8981\u7d20\u4e2d\u53ea\u80fd\u53d6\u4e24\u4e2a\uff0c\u4f46\u653e\u5230\u5206\u5e03\u5f0f\u73af\u5883\u4e0b\u6765\u601d\u8003\uff0c\u6211\u4eec\u4f1a\u53d1\u73b0\u5fc5\u987b\u9009\u62e9 P\uff08\u5206\u533a\u5bb9\u5fcd\uff09\u8981\u7d20\uff0c\u56e0\u4e3a\u7f51\u7edc\u672c\u8eab\u65e0\u6cd5\u505a\u5230 100% \u53ef\u9760\uff0c\u6709\u53ef\u80fd\u51fa\u6545\u969c\uff0c\u6240\u4ee5\u5206\u533a\u662f\u4e00\u4e2a\u5fc5\u7136\u7684\u73b0\u8c61\u3002\u5982\u679c\u6211\u4eec\u9009\u62e9\u4e86 CA \u800c\u653e\u5f03\u4e86 P\uff0c\u90a3\u4e48\u5f53\u53d1\u751f\u5206\u533a\u73b0\u8c61\u65f6\uff0c\u4e3a\u4e86\u4fdd\u8bc1 C\uff0c\u7cfb\u7edf\u9700\u8981\u7981\u6b62\u5199\u5165\uff0c\u5f53\u6709\u5199\u5165\u8bf7\u6c42\u65f6\uff0c\u7cfb\u7edf\u8fd4\u56de error\uff08\u4f8b\u5982\uff0c\u5f53\u524d\u7cfb\u7edf\u4e0d\u5141\u8bb8\u5199\u5165\uff09\uff0c\u8fd9\u53c8\u548c A \u51b2\u7a81\u4e86\uff0c\u56e0\u4e3a A \u8981\u6c42\u8fd4\u56de no error \u548c no timeout\u3002\u56e0\u6b64\uff0c\u5206\u5e03\u5f0f\u7cfb\u7edf\u7406\u8bba\u4e0a\u4e0d\u53ef\u80fd\u9009\u62e9 CA \u67b6\u6784\uff0c\u53ea\u80fd\u9009\u62e9 CP \u6216\u8005 AP \u67b6\u6784\u3002"),(0,l.yg)("p",null," Paxos\u7b97\u6cd5\u672c\u8eab\u80fd\u63d0\u4f9b\u7684\u662f\uff0c\u53ef\u9760\u7684\u6700\u7ec8\u4e00\u81f4\u6027\u4fdd\u8bc1\u3002\u5982\u6709\u8db3\u591f\u7684\u9694\u79bb\u6027\u63aa\u65bd\uff0c\u4e2d\u95f4\u72b6\u6001\u7684\u65e0\u6cd5\u88ab\u5ba2\u6237\u7aef\u8bfb\u53d6\uff0c\u5219\u53ef\u4ee5\u8fbe\u5230\u5f3a\u4e00\u81f4\u6027\uff0c\u8fd9\u79cd\u5c5e\u4e8eCP\u67b6\u6784\u3002\u5176\u5b83\u60c5\u51b5\uff0c\u5c31\u662fAP\u67b6\u6784\u3002 "),(0,l.yg)("p",null,"CAP\u5b9a\u7406\u5b58\u5728\u4e0d\u5c11\u5751\u70b9\uff0c\u7406\u89e3\u8d77\u6765\u5f88\u662f\u4ee4\u4eba\u8d39\u89e3\u3002\n1\u3001\u9002\u7528\u573a\u666f\u3002\u5206\u5e03\u5f0f\u7cfb\u7edf\u6709\u5f88\u591a\u7c7b\u578b\uff0c\u6709\u5f02\u6784\u7684\uff0c\u6bd4\u5982\u8282\u70b9\u4e4b\u95f4\u662f\u4e0a\u4e0b\u6e38\u4f9d\u8d56\u7684\u5173\u7cfb\uff0c\u6709\u540c\u6784\u7684\uff0c\u6bd4\u5982\u5206\u533a/\u5206\u7247\u578b\u7684\u3001\u526f\u672c\u578b\u7684\uff08\u4e3b\u4ece\u3001\u591a\u4e3b\uff09\u3002CAP\u5b9a\u7406\u7684\u9002\u7528\u573a\u666f\u662f\u526f\u672c\u578b\u7684\u8fd9\u79cd\u3002\n2\u3001\u4e00\u81f4\u6027\u7684\u6982\u5ff5\uff0c\u4ece\u5f3a\u5230\u5f31\uff0c\u7ebf\u6027\u4e00\u81f4\u6027\u3001\u987a\u5e8f\u4e00\u81f4\u6027\u3001\u56e0\u679c\u4e00\u81f4\u6027\u3001\u5355\u8c03\u4e00\u81f4\u6027\u3001\u6700\u7ec8\u4e00\u81f4\u6027\uff0cCAP\u4e2d\u7684\u4e00\u81f4\u6027\u5e94\u8be5\u662f\u6307\u7ebf\u6027\u4e00\u81f4\u6027\u3002\n3\u3001CAP\u4e2d\u7684\u4e00\u81f4\u6027\uff0c\u4e0eACID\u4e2d\u7684\u4e00\u81f4\u6027\u7684\u533a\u522b\u3002\u4e8b\u52a1\u4e2d\u7684\u4e00\u81f4\u6027\uff0c\u662f\u6307\u6ee1\u8db3\u5b8c\u6574\u6027\u7ea6\u675f\u6761\u4ef6\uff0cCAP\u4e2d\u7684\u4e00\u81f4\u6027\uff0c\u662f\u6307\u8bfb\u5199\u4e00\u81f4\u6027\u3002\n4\u3001CAP\u4e2d\u7684\u53ef\u7528\u6027\uff0c\u4e0e\u6211\u4eec\u5e38\u8bf4\u7684\u9ad8\u53ef\u7528\u7684\u533a\u522b\u3002\u6bd4\u5982HBase\u3001MongoDB\u5c5e\u4e8eCP\u67b6\u6784\uff0cCassandra\u3001CounchDB\u5c5e\u4e8eAP\u7cfb\u7edf\uff0c\u80fd\u8bf4\u540e\u8005\u6bd4\u524d\u8005\u66f4\u9ad8\u53ef\u7528\u4e48\uff1f\u5e94\u8be5\u4e0d\u662f\u3002CAP\u4e2d\u7684\u53ef\u7528\u6027\uff0c\u662f\u6307\u5728\u67d0\u4e00\u6b21\u8bfb\u64cd\u4f5c\u4e2d\uff0c\u5373\u4fbf\u53d1\u73b0\u4e0d\u4e00\u81f4\uff0c\u4e5f\u8981\u8fd4\u56de\u54cd\u5e94\uff0c\u5373\u5728\u5408\u7406\u65f6\u95f4\u5185\u8fd4\u56de\u5408\u7406\u54cd\u5e94\u3002\u6211\u4eec\u5e38\u8bf4\u7684\u9ad8\u53ef\u7528\uff0c\u662f\u6307\u90e8\u5206\u5b9e\u4f8b\u6302\u4e86\uff0c\u80fd\u81ea\u52a8\u6458\u9664\uff0c\u5e76\u7531\u5176\u5b83\u5b9e\u4f8b\u7ee7\u7eed\u63d0\u4f9b\u670d\u52a1\uff0c\u5173\u952e\u662f\u5197\u4f59\u3002\n5\u3001\u54ea\u4e9b\u60c5\u51b5\u5c5e\u4e8e\u7f51\u7edc\u5206\u533a\u3002\u7f51\u7edc\u6545\u969c\u9020\u6210\u7684\u5206\u533a\uff0c\u5c5e\u4e8e\u3002\u8282\u70b9\u5e94\u7528\u51fa\u73b0\u95ee\u9898\u5bfc\u81f4\u8d85\u65f6\uff0c\u5c5e\u4e8e\u3002\u8282\u70b9\u5b95\u673a\u6216\u786c\u4ef6\u6545\u969c\uff0c\u4e0d\u5c5e\u4e8e\u3002"),(0,l.yg)("p",null,"CAP \u5173\u6ce8\u7684\u7c92\u5ea6\u662f\u6570\u636e\uff0c\u800c\u4e0d\u662f\u6574\u4e2a\u7cfb\u7edf\u3002\u6240\u4ee5\u5728 CAP \u7406\u8bba\u843d\u5730\u5b9e\u8df5\u65f6\uff0c\u6211\u4eec\u9700\u8981\u5c06\u7cfb\u7edf\u5185\u7684\u6570\u636e\u6309\u7167\u4e0d\u540c\u7684\u5e94\u7528\u573a\u666f\u548c\u8981\u6c42\u8fdb\u884c\u5206\u7c7b\uff0c\u6bcf\u7c7b\u6570\u636e\u9009\u62e9\u4e0d\u540c\u7684\u7b56\u7565\uff08CP \u8fd8\u662f AP\uff09\uff0c\u800c\u4e0d\u662f\u76f4\u63a5\u9650\u5b9a\u6574\u4e2a\u7cfb\u7edf\u6240\u6709\u6570\u636e\u90fd\u662f\u540c\u4e00\u7b56\u7565\u3002"),(0,l.yg)("p",null,"CAP \u662f\u5ffd\u7565\u7f51\u7edc\u5ef6\u8fdf\u7684\u3002"),(0,l.yg)("p",null,"\u6b63\u5e38\u8fd0\u884c\u60c5\u51b5\u4e0b\uff0c\u4e0d\u5b58\u5728 CP \u548c AP \u7684\u9009\u62e9\uff0c\u53ef\u4ee5\u540c\u65f6\u6ee1\u8db3 CA\u3002"),(0,l.yg)("p",null,"\u653e\u5f03\u5e76\u4e0d\u7b49\u4e8e\u4ec0\u4e48\u90fd\u4e0d\u505a\uff0c\u9700\u8981\u4e3a\u5206\u533a\u6062\u590d\u540e\u505a\u51c6\u5907\u3002"),(0,l.yg)("p",null,"ACID \u4e2d\u7684 A\uff08Atomicity\uff09\u548c CAP \u4e2d\u7684 A\uff08Availability\uff09\u610f\u4e49\u5b8c\u5168\u4e0d\u540c\uff0c\u800c ACID \u4e2d\u7684 C \u548c CAP \u4e2d\u7684 C \u540d\u79f0\u867d\u7136\u90fd\u662f\u4e00\u81f4\u6027\uff0c\u4f46\u542b\u4e49\u4e5f\u5b8c\u5168\u4e0d\u4e00\u6837\u3002ACID \u4e2d\u7684 C \u662f\u6307\u6570\u636e\u5e93\u7684\u6570\u636e\u5b8c\u6574\u6027\uff0c\u800c CAP \u4e2d\u7684 C \u662f\u6307\u5206\u5e03\u5f0f\u8282\u70b9\u4e2d\u7684\u6570\u636e\u4e00\u81f4\u6027\u3002\u518d\u7ed3\u5408 ACID \u7684\u5e94\u7528\u573a\u666f\u662f\u6570\u636e\u5e93\u4e8b\u52a1\uff0cCAP \u5173\u6ce8\u7684\u662f\u5206\u5e03\u5f0f\u7cfb\u7edf\u6570\u636e\u8bfb\u5199\u8fd9\u4e2a\u5dee\u5f02\u70b9\u6765\u770b\uff0c\u5176\u5b9e CAP \u548c ACID \u7684\u5bf9\u6bd4\u5c31\u7c7b\u4f3c\u5173\u516c\u6218\u79e6\u743c\uff0c\u867d\u7136\u5173\u516c\u548c\u79e6\u743c\u90fd\u662f\u6b66\u5c06\uff0c\u4f46\u5176\u5b9e\u6ca1\u6709\u592a\u591a\u53ef\u6bd4\u6027\u3002"),(0,l.yg)("p",null,"BASE \u662f\u6307\u57fa\u672c\u53ef\u7528\uff08Basically Available\uff09\u3001\u8f6f\u72b6\u6001\uff08 Soft State\uff09\u3001\u6700\u7ec8\u4e00\u81f4\u6027\uff08 Eventual Consistency\uff09\uff0c\u6838\u5fc3\u601d\u60f3\u662f\u5373\u4f7f\u65e0\u6cd5\u505a\u5230\u5f3a\u4e00\u81f4\u6027\uff08CAP \u7684\u4e00\u81f4\u6027\u5c31\u662f\u5f3a\u4e00\u81f4\u6027\uff09\uff0c\u4f46\u5e94\u7528\u53ef\u4ee5\u91c7\u7528\u9002\u5408\u7684\u65b9\u5f0f\u8fbe\u5230\u6700\u7ec8\u4e00\u81f4\u6027\u3002"),(0,l.yg)("p",null,"BASE \u7406\u8bba\u672c\u8d28\u4e0a\u662f\u5bf9 CAP \u7684\u5ef6\u4f38\u548c\u8865\u5145\uff0c\u66f4\u5177\u4f53\u5730\u8bf4\uff0c\u662f\u5bf9 CAP \u4e2d AP \u65b9\u6848\u7684\u4e00\u4e2a\u8865\u5145\u3002CAP \u7406\u8bba\u662f\u5ffd\u7565\u5ef6\u65f6\u7684\uff0c\u800c\u5b9e\u9645\u5e94\u7528\u4e2d\u5ef6\u65f6\u662f\u65e0\u6cd5\u907f\u514d\u7684\u3002AP \u65b9\u6848\u4e2d\u727a\u7272\u4e00\u81f4\u6027\u53ea\u662f\u6307\u5206\u533a\u671f\u95f4\uff0c\u800c\u4e0d\u662f\u6c38\u8fdc\u653e\u5f03\u4e00\u81f4\u6027\u3002"),(0,l.yg)("h3",{id:"\u4e2a\u4eba\u7406\u89e3"},"\u4e2a\u4eba\u7406\u89e3"),(0,l.yg)("p",null,"\u8bbe\u8ba1\u5206\u5e03\u5f0f\u7cfb\u7edf\u7684\u4e24\u5927\u521d\u8877\uff1a\u6a2a\u5411\u6269\u5c55\uff08scalability\uff09\u548c\u9ad8\u53ef\u7528\u6027\uff08availability\uff09\u3002\u201c\u6a2a\u5411\u6269\u5c55\u201d\u662f\u4e3a\u4e86\u89e3\u51b3\u5355\u70b9\u74f6\u9888\u95ee\u9898\uff0c\u8fdb\u800c\u4fdd\u8bc1\u9ad8\u5e76\u53d1\u91cf\u4e0b\u7684\u300c\u53ef\u7528\u6027\u300d\uff1b\u201c\u9ad8\u53ef\u7528\u6027\u201d\u662f\u4e3a\u4e86\u89e3\u51b3\u5355\u70b9\u6545\u969c\uff08SPOF\uff09\u95ee\u9898\uff0c\u8fdb\u800c\u4fdd\u8bc1\u90e8\u5206\u8282\u70b9\u6545\u969c\u65f6\u7684\u300c\u53ef\u7528\u6027\u300d\u3002\u7531\u6b64\u53ef\u4ee5\u770b\u51fa\uff0c\u5206\u5e03\u5f0f\u7cfb\u7edf\u7684\u6838\u5fc3\u8bc9\u6c42\u5c31\u662f\u300c\u53ef\u7528\u6027\u300d\u3002\u8fd9\u4e2a\u300c\u53ef\u7528\u6027\u300d\u6b63\u662f CAP \u4e2d\u7684 A\uff1a\u7528\u6237\u8bbf\u95ee\u7cfb\u7edf\u65f6\uff0c\u53ef\u4ee5\u5728\u5408\u7406\u7684\u65f6\u95f4\u5185\u5f97\u5230\u5408\u7406\u7684\u54cd\u5e94\u3002 "),(0,l.yg)("p",null,"\u4e3a\u4e86\u4fdd\u8bc1\u300c\u53ef\u7528\u6027\u300d\uff0c\u4e00\u4e2a\u5206\u5e03\u5f0f\u7cfb\u7edf\u901a\u5e38\u7531\u591a\u4e2a\u8282\u70b9\u7ec4\u6210\u3002\u8fd9\u4e9b\u8282\u70b9\u5404\u81ea\u7ef4\u62a4\u4e00\u4efd\u6570\u636e\uff0c\u4f46\u662f\u4e0d\u7ba1\u7528\u6237\u8bbf\u95ee\u5230\u54ea\u4e2a\u8282\u70b9\uff0c\u539f\u5219\u4e0a\u90fd\u5e94\u8be5\u8bfb\u53d6\u5230\u76f8\u540c\u7684\u6570\u636e\u3002\u4e3a\u4e86\u8fbe\u5230\u8fd9\u4e2a\u6548\u679c\uff0c\u4e00\u4e2a\u8282\u70b9\u6536\u5230\u5199\u5165\u8bf7\u6c42\u66f4\u65b0\u81ea\u5df1\u7684\u6570\u636e\u540e\uff0c\u5fc5\u987b\u5c06\u6570\u636e\u540c\u6b65\u5230\u5176\u4ed6\u8282\u70b9\uff0c\u4ee5\u4fdd\u8bc1\u5404\u4e2a\u8282\u70b9\u7684\u6570\u636e\u300c\u4e00\u81f4\u6027\u300d\u3002\u8fd9\u4e2a\u300c\u4e00\u81f4\u6027\u300d\u6b63\u662f CAP \u4e2d\u7684 C\uff1a\u7528\u6237\u8bbf\u95ee\u7cfb\u7edf\u65f6\uff0c\u53ef\u4ee5\u8bfb\u53d6\u5230\u6700\u8fd1\u5199\u5165\u7684\u6570\u636e\u3002 "),(0,l.yg)("p",null,"\u9700\u8981\u6ce8\u610f\u7684\u662f\uff1aCAP \u5e76\u6ca1\u6709\u8003\u8651\u6570\u636e\u540c\u6b65\u7684\u8017\u65f6\uff0c\u6240\u4ee5\u73b0\u5b9e\u4e2d\u7684\u5206\u5e03\u5f0f\u7cfb\u7edf\uff0c\u7406\u8bba\u4e0a\u65e0\u6cd5\u4fdd\u8bc1\u4efb\u4f55\u65f6\u523b\u7684\u7edd\u5bf9\u300c\u4e00\u81f4\u6027\u300d\uff1b\u4e0d\u540c\u4e1a\u52a1\u7cfb\u7edf\u5bf9\u4e0a\u8ff0\u8017\u65f6\u7684\u654f\u611f\u5ea6\u4e0d\u540c\u3002 "),(0,l.yg)("p",null,"\u5206\u5e03\u5f0f\u7cfb\u7edf\u4e2d\uff0c\u8282\u70b9\u4e4b\u95f4\u7684\u6570\u636e\u540c\u6b65\u662f\u57fa\u4e8e\u7f51\u7edc\u7684\u3002\u7531\u4e8e\u7f51\u7edc\u672c\u8eab\u56fa\u6709\u7684\u4e0d\u53ef\u9760\u5c5e\u6027\uff0c\u6781\u7aef\u60c5\u51b5\u4e0b\u4f1a\u51fa\u73b0\u7f51\u7edc\u4e0d\u53ef\u7528\u7684\u60c5\u51b5\uff0c\u8fdb\u800c\u5c06\u7f51\u7edc\u4e24\u7aef\u7684\u8282\u70b9\u5b64\u7acb\u5f00\u6765\uff0c\u8fd9\u5c31\u662f\u6240\u8c13\u7684\u201c\u7f51\u7edc\u5206\u533a\u201d\u73b0\u8c61\u3002\u201c\u7f51\u7edc\u5206\u533a\u201d\u7406\u8bba\u4e0a\u662f\u65e0\u6cd5\u907f\u514d\u7684\uff0c\u867d\u7136\u5b9e\u9645\u53d1\u751f\u7684\u6982\u7387\u8f83\u4f4e\u3001\u65f6\u957f\u8f83\u77ed\u3002\u6ca1\u6709\u53d1\u751f\u201c\u7f51\u7edc\u5206\u533a\u201d\u65f6\uff0c\u7cfb\u7edf\u53ef\u4ee5\u505a\u5230\u540c\u65f6\u4fdd\u8bc1\u300c\u4e00\u81f4\u6027\u300d\u548c\u300c\u53ef\u7528\u6027\u300d\u3002 "),(0,l.yg)("p",null,"\u53d1\u751f\u201c\u7f51\u7edc\u5206\u533a\u201d\u65f6\uff0c\u7cfb\u7edf\u4e2d\u591a\u4e2a\u8282\u70b9\u7684\u6570\u636e\u4e00\u5b9a\u662f\u4e0d\u4e00\u81f4\u7684\uff0c\u4f46\u662f\u53ef\u4ee5\u9009\u62e9\u5bf9\u7528\u6237\u8868\u73b0\u51fa\u300c\u4e00\u81f4\u6027\u300d\uff0c\u4ee3\u4ef7\u662f\u727a\u7272\u300c\u53ef\u7528\u6027\u300d\uff1a\u5c06\u672a\u80fd\u540c\u6b65\u5f97\u5230\u65b0\u6570\u636e\u7684\u90e8\u5206\u8282\u70b9\u7f6e\u4e3a\u201c\u4e0d\u53ef\u7528\u72b6\u6001\u201d\uff0c\u8bbf\u95ee\u5230\u8fd9\u4e9b\u8282\u70b9\u7684\u7528\u6237\u663e\u7136\u611f\u77e5\u5230\u7cfb\u7edf\u662f\u4e0d\u53ef\u7528\u7684\u3002\u53d1\u751f\u201c\u7f51\u7edc\u5206\u533a\u201d\u65f6\uff0c\u7cfb\u7edf\u4e5f\u53ef\u4ee5\u9009\u62e9\u300c\u53ef\u7528\u6027\u300d\uff0c\u6b64\u65f6\u7cfb\u7edf\u4e2d\u5404\u4e2a\u8282\u70b9\u90fd\u662f\u53ef\u7528\u7684\uff0c\u53ea\u662f\u8fd4\u56de\u7ed9\u7528\u6237\u7684\u6570\u636e\u662f\u4e0d\u4e00\u81f4\u7684\u3002\u8fd9\u91cc\u7684\u9009\u62e9\uff0c\u5c31\u662f CAP \u4e2d\u7684 P\u3002 "),(0,l.yg)("p",null,"\u5206\u5e03\u5f0f\u7cfb\u7edf\u7406\u8bba\u4e0a\u4e00\u5b9a\u4f1a\u5b58\u5728 P\uff0c\u6240\u4ee5\u7406\u8bba\u4e0a\u53ea\u80fd\u505a\u5230 CP \u6216 AP\u3002\u5982\u679c\u5957\u7528 CAP \u4e2d\u79bb\u6563\u7684 C/A/P \u7684\u6982\u5ff5\uff0c\u7406\u8bba\u4e0a\u6ca1\u6709 P \u7684\u53ea\u53ef\u80fd\u662f\u5355\u70b9\uff08\u5b50\uff09\u7cfb\u7edf\uff0c\u6240\u4ee5\u7406\u8bba\u4e0a\u53ef\u4ee5\u505a\u5230 CA\u3002\u4f46\u662f\u5355\u70b9\uff08\u5b50\uff09\u7cfb\u7edf\u5e76\u4e0d\u662f\u5206\u5e03\u5f0f\u7cfb\u7edf\uff0c\u6240\u4ee5\u5176\u5b9e\u5e76\u4e0d\u5728 CAP \u7406\u8bba\u7684\u63cf\u8ff0\u8303\u56f4\u5185\u3002"))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8b59d635.04d7277d.js b/assets/js/8b59d635.00f2a92e.js similarity index 99% rename from assets/js/8b59d635.04d7277d.js rename to assets/js/8b59d635.00f2a92e.js index 7e63a2a1e..309136f2d 100644 --- a/assets/js/8b59d635.04d7277d.js +++ b/assets/js/8b59d635.00f2a92e.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2041],{5680:(e,l,t)=>{t.d(l,{xA:()=>g,yg:()=>c});var n=t(6540);function r(e,l,t){return l in e?Object.defineProperty(e,l,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[l]=t,e}function a(e,l){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);l&&(n=n.filter((function(l){return Object.getOwnPropertyDescriptor(e,l).enumerable}))),t.push.apply(t,n)}return t}function u(e){for(var l=1;l=0||(r[t]=e[t]);return r}(e,l);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var y=n.createContext({}),p=function(e){var l=n.useContext(y),t=l;return e&&(t="function"==typeof e?e(l):u(u({},l),e)),t},g=function(e){var l=p(e.components);return n.createElement(y.Provider,{value:l},e.children)},o="mdxType",m={inlineCode:"code",wrapper:function(e){var l=e.children;return n.createElement(n.Fragment,{},l)}},d=n.forwardRef((function(e,l){var t=e.components,r=e.mdxType,a=e.originalType,y=e.parentName,g=i(e,["components","mdxType","originalType","parentName"]),o=p(t),d=r,c=o["".concat(y,".").concat(d)]||o[d]||m[d]||a;return t?n.createElement(c,u(u({ref:l},g),{},{components:t})):n.createElement(c,u({ref:l},g))}));function c(e,l){var t=arguments,r=l&&l.mdxType;if("string"==typeof e||r){var a=t.length,u=new Array(a);u[0]=d;var i={};for(var y in l)hasOwnProperty.call(l,y)&&(i[y]=l[y]);i.originalType=e,i[o]="string"==typeof e?e:r,u[1]=i;for(var p=2;p{t.r(l),t.d(l,{assets:()=>y,contentTitle:()=>u,default:()=>m,frontMatter:()=>a,metadata:()=>i,toc:()=>p});var n=t(8168),r=(t(6540),t(5680));const a={},u=void 0,i={unversionedId:"study/think/\u4ee3\u7801\u8bc4\u5ba1/\u4ee3\u7801\u5ba1\u67e5\u95ee\u9898\u624b\u518c",id:"study/think/\u4ee3\u7801\u8bc4\u5ba1/\u4ee3\u7801\u5ba1\u67e5\u95ee\u9898\u624b\u518c",title:"\u4ee3\u7801\u5ba1\u67e5\u95ee\u9898\u624b\u518c",description:"\u6bcf\u59295\u70b9\u4e4b\u540e\u82b110\u5206\u949f\u7684\u65f6\u95f4\u5ba1\u67e5\u4e00\u4e0b\u522b\u4eba\u7684\u4ee3\u7801\uff0c\u5e76\u548c\u4ee3\u7801\u4f5c\u8005\u6c9f\u901a\uff1b",source:"@site/docs/study/think/\u4ee3\u7801\u8bc4\u5ba1/\u4ee3\u7801\u5ba1\u67e5\u95ee\u9898\u624b\u518c.md",sourceDirName:"study/think/\u4ee3\u7801\u8bc4\u5ba1",slug:"/study/think/\u4ee3\u7801\u8bc4\u5ba1/\u4ee3\u7801\u5ba1\u67e5\u95ee\u9898\u624b\u518c",permalink:"/docs/study/think/\u4ee3\u7801\u8bc4\u5ba1/\u4ee3\u7801\u5ba1\u67e5\u95ee\u9898\u624b\u518c",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Gerrit\u4ee3\u7801\u8bc4\u5ba1\u5de5\u5177",permalink:"/docs/study/think/\u4ee3\u7801\u8bc4\u5ba1/Gerrit\u4ee3\u7801\u8bc4\u5ba1\u5de5\u5177"},next:{title:"\u5b9e\u65f6\u8ba1\u7b97Storm+Flink",permalink:"/docs/study/think/\u5b9e\u65f6\u8ba1\u7b97Storm+Flink"}},y={},p=[{value:"\u4ee3\u7801\u4f5c\u8005\u5e94\u8be5\u5173\u6ce8\u7684\u5217\u8868",id:"\u4ee3\u7801\u4f5c\u8005\u5e94\u8be5\u5173\u6ce8\u7684\u5217\u8868",level:3},{value:"\u4ee3\u7801\u5ba1\u67e5\u8005\u5e94\u8be5\u5173\u6ce8\u7684\u5217\u8868",id:"\u4ee3\u7801\u5ba1\u67e5\u8005\u5e94\u8be5\u5173\u6ce8\u7684\u5217\u8868",level:3},{value:"\u5b9e\u73b0",id:"\u5b9e\u73b0",level:4},{value:"\u903b\u8f91\u9519\u8bef\u6216Bug",id:"\u903b\u8f91\u9519\u8bef\u6216bug",level:4},{value:"\u9519\u8bef\u5904\u7406\u548c\u65e5\u5fd7",id:"\u9519\u8bef\u5904\u7406\u548c\u65e5\u5fd7",level:4},{value:"\u53ef\u7528\u6027\u548c\u53ef\u8bbf\u95ee\u6027",id:"\u53ef\u7528\u6027\u548c\u53ef\u8bbf\u95ee\u6027",level:4},{value:"\u6d4b\u8bd5\u4e0e\u53ef\u6d4b\u8bd5\u6027",id:"\u6d4b\u8bd5\u4e0e\u53ef\u6d4b\u8bd5\u6027",level:4},{value:"\u4f9d\u8d56",id:"\u4f9d\u8d56",level:4},{value:"\u5b89\u5168\u548c\u9690\u79c1\u6570\u636e",id:"\u5b89\u5168\u548c\u9690\u79c1\u6570\u636e",level:4},{value:"\u6027\u80fd",id:"\u6027\u80fd",level:4},{value:"\u53ef\u8bfb\u6027",id:"\u53ef\u8bfb\u6027",level:4},{value:"\u4e13\u5bb6\u610f\u89c1",id:"\u4e13\u5bb6\u610f\u89c1",level:4},{value:"\u4ee3\u7801\u98ce\u683c\u548c\u7ea6\u5b9a",id:"\u4ee3\u7801\u98ce\u683c\u548c\u7ea6\u5b9a",level:4},{value:"\u5c3d\u53ef\u80fd\u81ea\u52a8\u5316",id:"\u5c3d\u53ef\u80fd\u81ea\u52a8\u5316",level:4}],g={toc:p},o="wrapper";function m(e){let{components:l,...t}=e;return(0,r.yg)(o,(0,n.A)({},g,t,{components:l,mdxType:"MDXLayout"}),(0,r.yg)("p",null,"\u6bcf\u59295\u70b9\u4e4b\u540e\u82b110\u5206\u949f\u7684\u65f6\u95f4\u5ba1\u67e5\u4e00\u4e0b\u522b\u4eba\u7684\u4ee3\u7801\uff0c\u5e76\u548c\u4ee3\u7801\u4f5c\u8005\u6c9f\u901a\uff1b\n\u9605\u8bfb\u522b\u4eba\u7684\u4ee3\u7801\u662f\u4e00\u79cd\u5f88\u91cd\u8981\u7684\u80fd\u529b\u3002\n\u4ece3\u67082\u53f7\u5f00\u59cb\uff0c\u6bcf\u5929\u7684\u65e5\u62a5\u52a0\u4e0a\u4e00\u4e2a\u5185\u5bb9\uff1a\u4ee3\u7801\u5ba1\u6838\u5185\u5bb9\u603b\u7ed3\uff0c\u4f8b\u5982\uff1a\u9605\u8bfb\u4e86\u3010\u738b\u4e16\u8d85\u3011\u7684\u3010\u6dfb\u52a0\u8bbe\u5907\u3011\u76f8\u5173\u4ee3\u7801\uff0c\u53d1\u73b0\u6709\u4e2a\u547d\u540d\u3010xxx\u3011\u4e0d\u662f\u5f88\u5408\u89c4\u8303\uff0c\u548c\u4ed6\u6c9f\u901a\u8fc7\u540e\uff0cxxx\uff1b\n\u8c01\u6765\u9605\u8bfb\u8c01\u7684\u4ee3\u7801\uff0c\u5404\u81ea\u7ec4\u957f\u5b9a\u4e00\u4e0b\u3002"),(0,r.yg)("p",null,"\u8001\u4eba\u9605\u8bfb\u65b0\u4eba\u7684\u4ee3\u7801\uff0c\u80fd\u591f\u66f4\u660e\u786e\u7684\u77e5\u6653\u65b0\u4eba\u5bf9\u529f\u80fd\u5b9e\u73b0\u7684\u7406\u89e3\u662f\u5426\u5230\u4f4d\uff0c\u8001\u4eba\u662f\u5426\u628a\u4efb\u52a1\u8bf4\u660e\u767d\u4e86\u3002\n\u65b0\u4eba\u9605\u8bfb\u8001\u4eba\u7684\u4ee3\u7801\uff0c\u80fd\u591f\u66f4\u660e\u786e\u7684\u77e5\u6653\u5f53\u524d\u9879\u76ee\u7684\u89c4\u8303\u3001\u6d41\u7a0b\u7b49\u3002\n\u9ad8\u7ea7\u5f00\u53d1\u9605\u8bfb\u521d\u4e2d\u7ea7\u5f00\u53d1\u7684\u4ee3\u7801\uff0c\u80fd\u591f\u67e5\u7f3a\u8865\u6f0f\uff0c\u907f\u514d\u5b89\u5168\u98ce\u9669\uff1b\n\u521d\u4e2d\u7ea7\u5f00\u53d1\u4e50\u961f\u9ad8\u7ea7\u5f00\u53d1\u7684\u4ee3\u7801\uff0c\u80fd\u591f\u5b66\u5230\u66f4\u591a\u4ee3\u7801\u7ecf\u9a8c\u3001\u601d\u60f3\u3001\u610f\u8bc6\u3002"),(0,r.yg)("p",null,"\u4ee3\u7801\u5ba1\u67e5\u5217\u8868\uff0c\u662f\u4ee3\u7801\u5ba1\u67e5\u7684\u660e\u786e\u89c4\u5219\u548c\u6307\u5bfc\u624b\u518c\uff0c\u5b83\u53ef\u4ee5\u4f7f\u4ee3\u7801\u5ba1\u67e5\u4e3a\u4f60\u7684\u56e2\u961f\u5e26\u6765\u66f4\u591a\u597d\u5904\uff0c\u5e76\u4e14\u80fd\u591f\u663e\u8457\u63d0\u5347\u4ee3\u7801\u5ba1\u67e5\u7684\u901f\u5ea6\u3002\u7814\u7a76\u8868\u660e\uff0c\u4f7f\u7528\u4ee3\u7801\u5ba1\u67e5\u5217\u8868\u7684\u5ba1\u9605\u8005\u7684\u8868\u73b0\u8981\u4f18\u4e8e\u4e0d\u4f7f\u7528\u7684\u5ba1\u9605\u8005\u3002\u6240\u4ee5\u4e0d\u7ba1\u4f60\u662f\u65b0\u624b\u5f00\u53d1\u8005\u8fd8\u662f\u7ecf\u9a8c\u4e30\u5bcc\u7684\u5f00\u53d1\u8005\uff0c\u5f00\u59cb\u8003\u8651\u4f7f\u7528\u4ee3\u7801\u5ba1\u67e5\u5217\u8868\u5427\u3002"),(0,r.yg)("h3",{id:"\u4ee3\u7801\u4f5c\u8005\u5e94\u8be5\u5173\u6ce8\u7684\u5217\u8868"},"\u4ee3\u7801\u4f5c\u8005\u5e94\u8be5\u5173\u6ce8\u7684\u5217\u8868"),(0,r.yg)("p",null,"\u4f5c\u4e3a\u4ee3\u7801\u7684\u4f5c\u8005\uff0c\u4f60\u5e94\u8be5\u4fdd\u8bc1\uff1a"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"\u4ee3\u7801\u7f16\u8bd1\u6210\u529f\u5e76\u4e14\u901a\u8fc7\u9759\u6001\u68c0\u67e5\uff08\u6ca1\u6709\u8b66\u544a\uff09"),(0,r.yg)("li",{parentName:"ul"},"\u4ee3\u7801\u901a\u8fc7\u6240\u6709\u7684\u6d4b\u8bd5\uff08\u5355\u5143\u6d4b\u8bd5\u3001\u96c6\u6210\u6d4b\u8bd5\u548c\u7cfb\u7edf\u6d4b\u8bd5\uff09"),(0,r.yg)("li",{parentName:"ul"},"\u4f60\u5df2\u7ecf\u4ed4\u7ec6\u68c0\u67e5\u4e86\u62fc\u5199\u9519\u8bef\uff0c\u5e76\u505a\u4e86\u5904\u7406\uff08\u6ce8\u91ca\u3001todo\u7b49\uff09"),(0,r.yg)("li",{parentName:"ul"},"\u6982\u8ff0\u4ee3\u7801\u4fee\u6539\u7684\u539f\u56e0\u4ee5\u53ca\u4fee\u6539\u4e86\u54ea\u4e9b\u5730\u65b9")),(0,r.yg)("p",null,"\u9664\u6b64\u4e4b\u5916\uff0c\u4f5c\u4e3a\u4ee3\u7801\u4f5c\u8005\uff0c\u4e5f\u5e94\u8be5\u5728\u63d0\u4ea4\u5ba1\u67e5\u4e4b\u524d\uff0c\u6309\u7167\u5ba1\u67e5\u8005\u7684\u5217\u8868\u5bf9\u81ea\u5df1\u7684\u4ee3\u7801\u8fdb\u884c\u5ba1\u67e5\u3002"),(0,r.yg)("h3",{id:"\u4ee3\u7801\u5ba1\u67e5\u8005\u5e94\u8be5\u5173\u6ce8\u7684\u5217\u8868"},"\u4ee3\u7801\u5ba1\u67e5\u8005\u5e94\u8be5\u5173\u6ce8\u7684\u5217\u8868"),(0,r.yg)("p",null,"\u4f5c\u4e3a\u4ee3\u7801\u5ba1\u67e5\u8005\uff0c\u4f60\u7684\u4efb\u52a1\u662f\u5bfb\u627e\u6700\u91cd\u8981\u7684\u95ee\u9898\u3002\u8bc4\u8bba\u4f1a\u5bf9\u4ee3\u7801\u7684\u7ed3\u6784\u6027\u6216\u903b\u8f91\u6027\u95ee\u9898\u66f4\u6709\u4ef7\u503c\uff0c\u5373\u4f7f\u6709\u65f6\u5019\u4f1a\u663e\u5f97\u6311\u5254\u3002\u4f60\u5e94\u8be5\u77e5\u9053\u4ec0\u4e48\u662f\u597d\u7684\u4ee3\u7801\u53cd\u9988\u3002\u53e6\u5916\u9700\u8981\u6ce8\u610f\uff0c\u6700\u597d\u7684\u4ee3\u7801\u5ba1\u67e5\u53cd\u9988\u4e0d\u662f\u70b9\u8bc4\uff0c\u800c\u662f\u5efa\u8bae\u3002\u6240\u4ee5\u4e0d\u8981\u8bf4\u201c\u53d8\u91cf\u540d\u79f0\u5e94\u8be5\u662fremoveObject\u201c\uff0c\u6700\u597d\u8bf4\u201d\u8c03\u7528\u53d8\u91cfremoveObject\u600e\u4e48\u6837\uff1f\u201c\u3002\n\u4e0b\u9762\u8fd9\u4efd\u5217\u8868\u8db3\u591f\u5e2e\u52a9\u4f60\u63d0\u51fa\u597d\u7684\u4ee3\u7801\u5ba1\u67e5\u53cd\u9988\u4e86\u3002"),(0,r.yg)("h4",{id:"\u5b9e\u73b0"},"\u5b9e\u73b0"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"\u6b64\u4ee3\u7801\u66f4\u6539\u4f1a\u6267\u884c\u5b83\u5e94\u8be5\u505a\u7684\u4e8b\u60c5\u5417\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u8fd9\u79cd\u89e3\u51b3\u65b9\u6cd5\u662f\u6700\u7b80\u5355\u7684\u5417\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u8fd9\u4e2a\u66f4\u6539\u6709\u5f15\u5165\u4e00\u4e9b\u4e0d\u9700\u8981\u7684\u7f16\u8bd1\u65f6\u6216\u8fd0\u884c\u65f6\u7684\u4f9d\u8d56\u5417\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u662f\u5426\u4f7f\u7528\u4e86\u4e0d\u5e94\u8be5\u4f7f\u7528\u7684\u6846\u67b6\u3001API\u3001\u5e93\u3001\u670d\u52a1\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u662f\u5426\u5b58\u5728\u53ef\u4ee5\u63d0\u5347\u89e3\u51b3\u65b9\u6cd5\u7684\u672a\u4f7f\u7528\u7684\u6846\u67b6\u3001API\u3001\u5e93\u3001\u670d\u52a1\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u4ee3\u7801\u662f\u5426\u5904\u4e8e\u6b63\u786e\u7684\u62bd\u8c61\u7ea7\u522b\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u4ee3\u7801\u7684\u6a21\u5757\u5316\u505a\u7684\u662f\u5426\u8db3\u591f\u597d\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u4f60\u662f\u5426\u6709\u5176\u4ed6\u7684\u89e3\u51b3\u65b9\u6848\uff0c\u8be5\u65b9\u6848\u5728\u4ee3\u7801\u53ef\u7ef4\u62a4\u6027\u3001\u53ef\u8bfb\u6027\u3001\u6027\u80fd\u3001\u5b89\u5168\u65b9\u9762\u8868\u73b0\u66f4\u597d\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u662f\u5426\u5df2\u7ecf\u5b58\u5728\u7c7b\u4f3c\u529f\u80fd\u7684\u51fd\u6570\uff1f\u5982\u679c\u6709\uff0c\u4e3a\u4ec0\u4e48\u4e0d\u590d\u7528\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u662f\u5426\u6709\u6700\u4f73\u5b9e\u8df5\u3001\u8bbe\u8ba1\u6a21\u5f0f\u6216\u7279\u5b9a\u8bed\u8a00\u6a21\u5f0f\u53ef\u4ee5\u4f18\u5316\u4ee3\u7801\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u4ee3\u7801\u662f\u5426\u9075\u5faa\u9762\u5411\u5bf9\u8c61\u7684\u5206\u6790\u548c\u8bbe\u8ba1\u539f\u5219\uff0c\u4f8b\u5982\u5355\u4e00\u8d23\u4efb\u539f\u5219\uff0c\u5f00\u95ed\u539f\u5219\uff0c\u91cc\u6c0f\u66ff\u6362\u539f\u5219\uff0c\u63a5\u53e3\u9694\u79bb\uff0c\u4f9d\u8d56\u6ce8\u5165\uff1f")),(0,r.yg)("h4",{id:"\u903b\u8f91\u9519\u8bef\u6216bug"},"\u903b\u8f91\u9519\u8bef\u6216Bug"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"\u4f60\u80fd\u60f3\u5230\u4ee3\u7801\u4e0d\u6309\u9884\u671f\u8fd0\u884c\u7684\u4efb\u4f55\u7528\u4f8b\u5417\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u4f60\u80fd\u60f3\u5230\u4efb\u4f55\u53ef\u80fd\u7834\u574f\u4ee3\u7801\u7684\u8f93\u5165\u6216\u5916\u90e8\u4e8b\u4ef6\u5417\uff1f")),(0,r.yg)("h4",{id:"\u9519\u8bef\u5904\u7406\u548c\u65e5\u5fd7"},"\u9519\u8bef\u5904\u7406\u548c\u65e5\u5fd7"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"\u9519\u8bef\u90fd\u88ab\u6b63\u786e\u5904\u7406\u4e86\u5417\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u662f\u5426\u6709\u9700\u8981\u589e\u52a0\u6216\u5220\u9664\u7684\u65e5\u5fd7/debug\u4fe1\u606f\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u9519\u8bef\u6d88\u606f\u5bf9\u7528\u6237\u662f\u5426\u53cb\u597d\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u662f\u5426\u6709\u8db3\u591f\u7684\u65e5\u5fd7\uff0c\u5b83\u4eec\u7684\u7f16\u5199\u65b9\u5f0f\u662f\u5426\u662f\u6613\u4e8e\u8c03\u8bd5\u7684\uff1f")),(0,r.yg)("h4",{id:"\u53ef\u7528\u6027\u548c\u53ef\u8bbf\u95ee\u6027"},"\u53ef\u7528\u6027\u548c\u53ef\u8bbf\u95ee\u6027"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"\u4ece\u53ef\u7528\u6027\u89d2\u5ea6\u51fa\u53d1\uff0c\u6240\u63d0\u51fa\u7684\u89e3\u51b3\u65b9\u6848\u662f\u5426\u8bbe\u8ba1\u5408\u7406\uff1f"),(0,r.yg)("li",{parentName:"ul"},"API\u6587\u6863\u662f\u5426\u8db3\u591f\u597d\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u63d0\u51fa\u7684\u89e3\u51b3\u65b9\u6848\u662f\u5426\u5177\u5907\u53ef\u8bbf\u95ee\u6027\uff1f"),(0,r.yg)("li",{parentName:"ul"},"API/UI\u662f\u5426\u76f4\u89c2\u6613\u7528\uff1f")),(0,r.yg)("h4",{id:"\u6d4b\u8bd5\u4e0e\u53ef\u6d4b\u8bd5\u6027"},"\u6d4b\u8bd5\u4e0e\u53ef\u6d4b\u8bd5\u6027"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"\u4ee3\u7801\u662f\u5426\u8fbe\u5230\u53ef\u6d4b\u8bd5\u6807\u51c6\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u662f\u5426\u6709\u8db3\u591f\u7684\u81ea\u52a8\u5316\u6d4b\u8bd5\uff08\u5355\u5143\u6d4b\u8bd5/\u96c6\u6210\u6d4b\u8bd5/\u7cfb\u7edf\u6d4b\u8bd5\uff09\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u73b0\u6709\u6d4b\u8bd5\u662f\u5426\u5408\u7406\u8986\u76d6\u4ee3\u7801\u53d8\u66f4\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u662f\u5426\u6709\u989d\u5916\u7684\u6d4b\u8bd5\u7528\u4f8b\u3001\u8f93\u5165\u6216\u8fb9\u754c\u7528\u4f8b\u4ee5\u4f9b\u6d4b\u8bd5\uff1f")),(0,r.yg)("h4",{id:"\u4f9d\u8d56"},"\u4f9d\u8d56"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"\u5982\u679c\u8fd9\u4e2a\u4fee\u6539\u9700\u8981\u66f4\u65b0\u4ee3\u7801\u4ee5\u5916\u7684\u6587\u4ef6\uff0c\u4f8b\u5982\u66f4\u65b0\u6587\u6863\uff0c\u914d\u7f6e\uff0creadme\u6587\u4ef6\u3002\u662f\u5426\u5b8c\u6210\u4e86\u8fd9\u4e9b\u66f4\u65b0\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u8fd9\u4e2a\u4fee\u6539\u662f\u5426\u4f1a\u5bf9\u7cfb\u7edf\u5176\u4ed6\u5730\u65b9\u9020\u6210\u5f71\u54cd\uff1f\u662f\u5426\u80fd\u540e\u5411\u540e\u517c\u5bb9\uff1f")),(0,r.yg)("h4",{id:"\u5b89\u5168\u548c\u9690\u79c1\u6570\u636e"},"\u5b89\u5168\u548c\u9690\u79c1\u6570\u636e"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"\u8fd9\u6bb5\u4ee3\u7801\u662f\u5426\u6253\u5f00\u8f6f\u4ef6\u7684\u5b89\u5168\u6f0f\u6d1e\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u6743\u9650\u548c\u8eab\u4efd\u9a8c\u8bc1\u662f\u5426\u88ab\u6b63\u786e\u5904\u7406\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u662f\u5426\u5b89\u5168\u5904\u7406\u4e86\u654f\u611f\u6570\u636e\uff0c\u4f8b\u5982\u7528\u6237\u6570\u636e\u3001\u4fe1\u7528\u5361\u4fe1\u606f\u7b49\uff1f\u662f\u5426\u6b63\u786e\u4f7f\u7528\u52a0\u5bc6\u65b9\u6cd5\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u4ee3\u7801\u66f4\u6539\u662f\u5426\u663e\u9732\u4e86\u4e00\u4e9b\u79c1\u5bc6\u4fe1\u606f\uff08\u5982\u79d8\u94a5\uff0c\u7528\u6237\u540d\u7b49\uff09\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u5982\u679c\u4ee3\u7801\u5904\u7406\u7528\u6237\u8f93\u5165\uff0c\u662f\u5426\u89e3\u51b3\u4e86\u8de8\u7ad9\u70b9\u811a\u672c\uff0cSQL\u6ce8\u5165\u7b49\u5b89\u5168\u6f0f\u6d1e\uff0c\u662f\u5426\u8fdb\u884c\u4e86\u8f93\u5165\u6e05\u6d17\u548c\u9a8c\u8bc1\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u4ece\u5916\u90e8API\u6216\u5e93\u4e2d\u83b7\u5f97\u7684\u6570\u636e\u662f\u5426\u8fdb\u884c\u4e86\u76f8\u5e94\u7684\u68c0\u67e5\uff1f")),(0,r.yg)("h4",{id:"\u6027\u80fd"},"\u6027\u80fd"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"\u8fd9\u6bb5\u4ee3\u7801\u4fee\u6539\u662f\u5426\u4f1a\u5bf9\u7cfb\u7edf\u6027\u80fd\u4ea7\u751f\u8d1f\u9762\u5f71\u54cd\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u662f\u5426\u53ef\u4ee5\u8fdb\u4e00\u6b65\u63d0\u5347\u4ee3\u7801\u6027\u80fd\uff1f")),(0,r.yg)("h4",{id:"\u53ef\u8bfb\u6027"},"\u53ef\u8bfb\u6027"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"\u4ee3\u7801\u662f\u5426\u5bb9\u6613\u7406\u89e3\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u54ea\u4e00\u90e8\u5206\u4f7f\u4f60\u56f0\u60d1\uff0c\u4e3a\u4ec0\u4e48\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u53ef\u4ee5\u901a\u8fc7\u51cf\u5c0f\u65b9\u6cd5\u6765\u63d0\u9ad8\u4ee3\u7801\u53ef\u8bfb\u6027\u5417\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u53ef\u4ee5\u901a\u8fc7\u4f7f\u7528\u4e0d\u540c\u7684\u51fd\u6570/\u65b9\u6cd5\u6216\u53d8\u91cf\u540d\u79f0\u6765\u63d0\u5347\u4ee3\u7801\u53ef\u8bfb\u6027\u5417\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u4ee3\u7801\u662f\u5426\u5b58\u653e\u5728\u6b63\u786e\u7684\u6587\u4ef6/\u76ee\u5f55/\u5305\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u4f60\u662f\u5426\u8ba4\u4e3a\u65b9\u6cd5\u5e94\u8be5\u91cd\u6784\u4ee5\u62e5\u6709\u66f4\u76f4\u89c2\u7684\u63a7\u5236\u6d41\u7a0b\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u6570\u636e\u6d41\u662f\u5426\u53ef\u7406\u89e3\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u662f\u5426\u6709\u591a\u4f59\u7684\u6ce8\u91ca\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u67d0\u4e9b\u6ce8\u91ca\u662f\u5426\u53ef\u4ee5\u66f4\u597d\u7684\u4f20\u8fbe\u4fe1\u606f\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u662f\u5426\u66f4\u591a\u7684\u6ce8\u91ca\u4f1a\u4f7f\u4f60\u7684\u4ee3\u7801\u66f4\u5bb9\u6613\u7406\u89e3\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u662f\u5426\u53ef\u4ee5\u79fb\u9664\u4e00\u4e9b\u6ce8\u91ca\uff0c\u901a\u8fc7\u63d0\u5347\u4ee3\u7801\u53ef\u8bfb\u6027\u6765\u7406\u89e3\u4ee3\u7801\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u662f\u5426\u5b58\u5728\u6ce8\u91ca\u6389\u7684\u4ee3\u7801\uff1f")),(0,r.yg)("h4",{id:"\u4e13\u5bb6\u610f\u89c1"},"\u4e13\u5bb6\u610f\u89c1"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"\u4f60\u662f\u5426\u8ba4\u4e3a\u7279\u5b9a\u4e13\u5bb6\uff08\u5982\u5b89\u5168\u4e13\u5bb6\u6216\u53ef\u7528\u6027\u4e13\u5bb6\uff09\u5e94\u8be5\u5148\u68c0\u67e5\u4ee3\u7801\uff0c\u7136\u540e\u518d\u63d0\u4ea4\u4ee3\u7801\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u8fd9\u4e2a\u4ee3\u7801\u4fee\u6539\u4f1a\u5f71\u54cd\u5176\u4ed6\u56e2\u961f\u5417\uff1f\u4ed6\u4eec\u4e5f\u5e94\u8be5\u53d1\u8868\u610f\u89c1\u5417\uff1f")),(0,r.yg)("h4",{id:"\u4ee3\u7801\u98ce\u683c\u548c\u7ea6\u5b9a"},"\u4ee3\u7801\u98ce\u683c\u548c\u7ea6\u5b9a"),(0,r.yg)("p",null,"\u60a8\u7684\u56e2\u961f\u6216\u516c\u53f8\u5fc5\u987b\u62e5\u6709\u6e05\u6670\u7684\u7f16\u7801\u98ce\u683c\u6307\u5357\uff0c\u8fd9\u4e00\u70b9\u5f88\u91cd\u8981\u3002\u56e0\u4e3a\u8fd9\u662f\u5728\u4ee3\u7801\u5e93\u4e2d\u5b9e\u65bd\u552f\u4e00\u6027\u7684\u552f\u4e00\u65b9\u6cd5\u3002\u5e76\u4e14\u4e00\u81f4\u6027\u4f1a\u4f7f\u4ee3\u7801\u5ba1\u67e5\u66f4\u5feb\uff0c\u4f7f\u4eba\u4eec\u53ef\u4ee5\u8f7b\u677e\u5730\u66f4\u6539\u9879\u76ee\uff0c\u5e76\u4fdd\u6301\u60a8\u4ee3\u7801\u7684\u53ef\u8bfb\u6027\u548c\u53ef\u7ef4\u62a4\u6027\u3002Google\u662f\u505a\u5230\u8fd9\u4e00\u70b9\u7684\u5f88\u597d\u7684\u4f8b\u5b50\uff0c\u65e0\u7591\uff0c\u8fd9\u4f7fGoogle\u53ef\u4ee5\u8fdb\u884c\u5feb\u901f\u7684\u4ee3\u7801\u5ba1\u67e5\u3002\u9996\u5148\uff0c\u6211\u5efa\u8bae\u4f7f\u7528\u73b0\u6210\u7684\u7f16\u7801\u6837\u5f0f\u6765\u652f\u6301Google\u63d0\u4f9b\u7684\u591a\u79cd\u8bed\u8a00\u3002\u8bbe\u5b9a\u57fa\u672c\u89c4\u5219\u5f88\u91cd\u8981\uff0c\u4f46\u8981\u786e\u4fdd\u4e00\u52b3\u6c38\u9038\u3002\u4e0d\u8981\u6301\u7eed\u4e89\u8bba\u3002"),(0,r.yg)("h4",{id:"\u5c3d\u53ef\u80fd\u81ea\u52a8\u5316"},"\u5c3d\u53ef\u80fd\u81ea\u52a8\u5316"),(0,r.yg)("p",null,"\u786e\u5b9a\u4e86\u4ee3\u7801\u98ce\u683c\u4ee5\u540e\uff0c\u8bf7\u82b1\u4e00\u4e9b\u65f6\u95f4\u6b63\u786e\u5b89\u88c5\u548c\u914d\u7f6e\u5de5\u5177\uff0c\u4ee5\u4fbf\u4e00\u952e\u683c\u5f0f\u5316\u4ee3\u7801\u3002\u53e6\u5916\u8fd8\u6709\u5f88\u591a\u4e8b\u60c5\u53ef\u4ee5\u505a\u3002\u4f8b\u5982\u4f7f\u7528\u9759\u6001\u68c0\u67e5\u6765\u4ee3\u66ff\u90e8\u5206\u4eba\u5de5\u5ba1\u6838\u3002\u8fd9\u662f\u503c\u5f97\u4e3a\u4e4b\u52aa\u529b\u7684\u3002"))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2041],{5680:(e,l,t)=>{t.d(l,{xA:()=>g,yg:()=>c});var n=t(6540);function r(e,l,t){return l in e?Object.defineProperty(e,l,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[l]=t,e}function a(e,l){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);l&&(n=n.filter((function(l){return Object.getOwnPropertyDescriptor(e,l).enumerable}))),t.push.apply(t,n)}return t}function u(e){for(var l=1;l=0||(r[t]=e[t]);return r}(e,l);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var y=n.createContext({}),p=function(e){var l=n.useContext(y),t=l;return e&&(t="function"==typeof e?e(l):u(u({},l),e)),t},g=function(e){var l=p(e.components);return n.createElement(y.Provider,{value:l},e.children)},o="mdxType",m={inlineCode:"code",wrapper:function(e){var l=e.children;return n.createElement(n.Fragment,{},l)}},d=n.forwardRef((function(e,l){var t=e.components,r=e.mdxType,a=e.originalType,y=e.parentName,g=i(e,["components","mdxType","originalType","parentName"]),o=p(t),d=r,c=o["".concat(y,".").concat(d)]||o[d]||m[d]||a;return t?n.createElement(c,u(u({ref:l},g),{},{components:t})):n.createElement(c,u({ref:l},g))}));function c(e,l){var t=arguments,r=l&&l.mdxType;if("string"==typeof e||r){var a=t.length,u=new Array(a);u[0]=d;var i={};for(var y in l)hasOwnProperty.call(l,y)&&(i[y]=l[y]);i.originalType=e,i[o]="string"==typeof e?e:r,u[1]=i;for(var p=2;p{t.r(l),t.d(l,{assets:()=>y,contentTitle:()=>u,default:()=>m,frontMatter:()=>a,metadata:()=>i,toc:()=>p});var n=t(8168),r=(t(6540),t(5680));const a={},u=void 0,i={unversionedId:"study/think/\u4ee3\u7801\u8bc4\u5ba1/\u4ee3\u7801\u5ba1\u67e5\u95ee\u9898\u624b\u518c",id:"study/think/\u4ee3\u7801\u8bc4\u5ba1/\u4ee3\u7801\u5ba1\u67e5\u95ee\u9898\u624b\u518c",title:"\u4ee3\u7801\u5ba1\u67e5\u95ee\u9898\u624b\u518c",description:"\u6bcf\u59295\u70b9\u4e4b\u540e\u82b110\u5206\u949f\u7684\u65f6\u95f4\u5ba1\u67e5\u4e00\u4e0b\u522b\u4eba\u7684\u4ee3\u7801\uff0c\u5e76\u548c\u4ee3\u7801\u4f5c\u8005\u6c9f\u901a\uff1b",source:"@site/docs/study/think/\u4ee3\u7801\u8bc4\u5ba1/\u4ee3\u7801\u5ba1\u67e5\u95ee\u9898\u624b\u518c.md",sourceDirName:"study/think/\u4ee3\u7801\u8bc4\u5ba1",slug:"/study/think/\u4ee3\u7801\u8bc4\u5ba1/\u4ee3\u7801\u5ba1\u67e5\u95ee\u9898\u624b\u518c",permalink:"/docs/study/think/\u4ee3\u7801\u8bc4\u5ba1/\u4ee3\u7801\u5ba1\u67e5\u95ee\u9898\u624b\u518c",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Gerrit\u4ee3\u7801\u8bc4\u5ba1\u5de5\u5177",permalink:"/docs/study/think/\u4ee3\u7801\u8bc4\u5ba1/Gerrit\u4ee3\u7801\u8bc4\u5ba1\u5de5\u5177"},next:{title:"\u5b9e\u65f6\u8ba1\u7b97Storm+Flink",permalink:"/docs/study/think/\u5b9e\u65f6\u8ba1\u7b97Storm+Flink"}},y={},p=[{value:"\u4ee3\u7801\u4f5c\u8005\u5e94\u8be5\u5173\u6ce8\u7684\u5217\u8868",id:"\u4ee3\u7801\u4f5c\u8005\u5e94\u8be5\u5173\u6ce8\u7684\u5217\u8868",level:3},{value:"\u4ee3\u7801\u5ba1\u67e5\u8005\u5e94\u8be5\u5173\u6ce8\u7684\u5217\u8868",id:"\u4ee3\u7801\u5ba1\u67e5\u8005\u5e94\u8be5\u5173\u6ce8\u7684\u5217\u8868",level:3},{value:"\u5b9e\u73b0",id:"\u5b9e\u73b0",level:4},{value:"\u903b\u8f91\u9519\u8bef\u6216Bug",id:"\u903b\u8f91\u9519\u8bef\u6216bug",level:4},{value:"\u9519\u8bef\u5904\u7406\u548c\u65e5\u5fd7",id:"\u9519\u8bef\u5904\u7406\u548c\u65e5\u5fd7",level:4},{value:"\u53ef\u7528\u6027\u548c\u53ef\u8bbf\u95ee\u6027",id:"\u53ef\u7528\u6027\u548c\u53ef\u8bbf\u95ee\u6027",level:4},{value:"\u6d4b\u8bd5\u4e0e\u53ef\u6d4b\u8bd5\u6027",id:"\u6d4b\u8bd5\u4e0e\u53ef\u6d4b\u8bd5\u6027",level:4},{value:"\u4f9d\u8d56",id:"\u4f9d\u8d56",level:4},{value:"\u5b89\u5168\u548c\u9690\u79c1\u6570\u636e",id:"\u5b89\u5168\u548c\u9690\u79c1\u6570\u636e",level:4},{value:"\u6027\u80fd",id:"\u6027\u80fd",level:4},{value:"\u53ef\u8bfb\u6027",id:"\u53ef\u8bfb\u6027",level:4},{value:"\u4e13\u5bb6\u610f\u89c1",id:"\u4e13\u5bb6\u610f\u89c1",level:4},{value:"\u4ee3\u7801\u98ce\u683c\u548c\u7ea6\u5b9a",id:"\u4ee3\u7801\u98ce\u683c\u548c\u7ea6\u5b9a",level:4},{value:"\u5c3d\u53ef\u80fd\u81ea\u52a8\u5316",id:"\u5c3d\u53ef\u80fd\u81ea\u52a8\u5316",level:4}],g={toc:p},o="wrapper";function m(e){let{components:l,...t}=e;return(0,r.yg)(o,(0,n.A)({},g,t,{components:l,mdxType:"MDXLayout"}),(0,r.yg)("p",null,"\u6bcf\u59295\u70b9\u4e4b\u540e\u82b110\u5206\u949f\u7684\u65f6\u95f4\u5ba1\u67e5\u4e00\u4e0b\u522b\u4eba\u7684\u4ee3\u7801\uff0c\u5e76\u548c\u4ee3\u7801\u4f5c\u8005\u6c9f\u901a\uff1b\n\u9605\u8bfb\u522b\u4eba\u7684\u4ee3\u7801\u662f\u4e00\u79cd\u5f88\u91cd\u8981\u7684\u80fd\u529b\u3002\n\u4ece3\u67082\u53f7\u5f00\u59cb\uff0c\u6bcf\u5929\u7684\u65e5\u62a5\u52a0\u4e0a\u4e00\u4e2a\u5185\u5bb9\uff1a\u4ee3\u7801\u5ba1\u6838\u5185\u5bb9\u603b\u7ed3\uff0c\u4f8b\u5982\uff1a\u9605\u8bfb\u4e86\u3010\u738b\u4e16\u8d85\u3011\u7684\u3010\u6dfb\u52a0\u8bbe\u5907\u3011\u76f8\u5173\u4ee3\u7801\uff0c\u53d1\u73b0\u6709\u4e2a\u547d\u540d\u3010xxx\u3011\u4e0d\u662f\u5f88\u5408\u89c4\u8303\uff0c\u548c\u4ed6\u6c9f\u901a\u8fc7\u540e\uff0cxxx\uff1b\n\u8c01\u6765\u9605\u8bfb\u8c01\u7684\u4ee3\u7801\uff0c\u5404\u81ea\u7ec4\u957f\u5b9a\u4e00\u4e0b\u3002"),(0,r.yg)("p",null,"\u8001\u4eba\u9605\u8bfb\u65b0\u4eba\u7684\u4ee3\u7801\uff0c\u80fd\u591f\u66f4\u660e\u786e\u7684\u77e5\u6653\u65b0\u4eba\u5bf9\u529f\u80fd\u5b9e\u73b0\u7684\u7406\u89e3\u662f\u5426\u5230\u4f4d\uff0c\u8001\u4eba\u662f\u5426\u628a\u4efb\u52a1\u8bf4\u660e\u767d\u4e86\u3002\n\u65b0\u4eba\u9605\u8bfb\u8001\u4eba\u7684\u4ee3\u7801\uff0c\u80fd\u591f\u66f4\u660e\u786e\u7684\u77e5\u6653\u5f53\u524d\u9879\u76ee\u7684\u89c4\u8303\u3001\u6d41\u7a0b\u7b49\u3002\n\u9ad8\u7ea7\u5f00\u53d1\u9605\u8bfb\u521d\u4e2d\u7ea7\u5f00\u53d1\u7684\u4ee3\u7801\uff0c\u80fd\u591f\u67e5\u7f3a\u8865\u6f0f\uff0c\u907f\u514d\u5b89\u5168\u98ce\u9669\uff1b\n\u521d\u4e2d\u7ea7\u5f00\u53d1\u4e50\u961f\u9ad8\u7ea7\u5f00\u53d1\u7684\u4ee3\u7801\uff0c\u80fd\u591f\u5b66\u5230\u66f4\u591a\u4ee3\u7801\u7ecf\u9a8c\u3001\u601d\u60f3\u3001\u610f\u8bc6\u3002"),(0,r.yg)("p",null,"\u4ee3\u7801\u5ba1\u67e5\u5217\u8868\uff0c\u662f\u4ee3\u7801\u5ba1\u67e5\u7684\u660e\u786e\u89c4\u5219\u548c\u6307\u5bfc\u624b\u518c\uff0c\u5b83\u53ef\u4ee5\u4f7f\u4ee3\u7801\u5ba1\u67e5\u4e3a\u4f60\u7684\u56e2\u961f\u5e26\u6765\u66f4\u591a\u597d\u5904\uff0c\u5e76\u4e14\u80fd\u591f\u663e\u8457\u63d0\u5347\u4ee3\u7801\u5ba1\u67e5\u7684\u901f\u5ea6\u3002\u7814\u7a76\u8868\u660e\uff0c\u4f7f\u7528\u4ee3\u7801\u5ba1\u67e5\u5217\u8868\u7684\u5ba1\u9605\u8005\u7684\u8868\u73b0\u8981\u4f18\u4e8e\u4e0d\u4f7f\u7528\u7684\u5ba1\u9605\u8005\u3002\u6240\u4ee5\u4e0d\u7ba1\u4f60\u662f\u65b0\u624b\u5f00\u53d1\u8005\u8fd8\u662f\u7ecf\u9a8c\u4e30\u5bcc\u7684\u5f00\u53d1\u8005\uff0c\u5f00\u59cb\u8003\u8651\u4f7f\u7528\u4ee3\u7801\u5ba1\u67e5\u5217\u8868\u5427\u3002"),(0,r.yg)("h3",{id:"\u4ee3\u7801\u4f5c\u8005\u5e94\u8be5\u5173\u6ce8\u7684\u5217\u8868"},"\u4ee3\u7801\u4f5c\u8005\u5e94\u8be5\u5173\u6ce8\u7684\u5217\u8868"),(0,r.yg)("p",null,"\u4f5c\u4e3a\u4ee3\u7801\u7684\u4f5c\u8005\uff0c\u4f60\u5e94\u8be5\u4fdd\u8bc1\uff1a"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"\u4ee3\u7801\u7f16\u8bd1\u6210\u529f\u5e76\u4e14\u901a\u8fc7\u9759\u6001\u68c0\u67e5\uff08\u6ca1\u6709\u8b66\u544a\uff09"),(0,r.yg)("li",{parentName:"ul"},"\u4ee3\u7801\u901a\u8fc7\u6240\u6709\u7684\u6d4b\u8bd5\uff08\u5355\u5143\u6d4b\u8bd5\u3001\u96c6\u6210\u6d4b\u8bd5\u548c\u7cfb\u7edf\u6d4b\u8bd5\uff09"),(0,r.yg)("li",{parentName:"ul"},"\u4f60\u5df2\u7ecf\u4ed4\u7ec6\u68c0\u67e5\u4e86\u62fc\u5199\u9519\u8bef\uff0c\u5e76\u505a\u4e86\u5904\u7406\uff08\u6ce8\u91ca\u3001todo\u7b49\uff09"),(0,r.yg)("li",{parentName:"ul"},"\u6982\u8ff0\u4ee3\u7801\u4fee\u6539\u7684\u539f\u56e0\u4ee5\u53ca\u4fee\u6539\u4e86\u54ea\u4e9b\u5730\u65b9")),(0,r.yg)("p",null,"\u9664\u6b64\u4e4b\u5916\uff0c\u4f5c\u4e3a\u4ee3\u7801\u4f5c\u8005\uff0c\u4e5f\u5e94\u8be5\u5728\u63d0\u4ea4\u5ba1\u67e5\u4e4b\u524d\uff0c\u6309\u7167\u5ba1\u67e5\u8005\u7684\u5217\u8868\u5bf9\u81ea\u5df1\u7684\u4ee3\u7801\u8fdb\u884c\u5ba1\u67e5\u3002"),(0,r.yg)("h3",{id:"\u4ee3\u7801\u5ba1\u67e5\u8005\u5e94\u8be5\u5173\u6ce8\u7684\u5217\u8868"},"\u4ee3\u7801\u5ba1\u67e5\u8005\u5e94\u8be5\u5173\u6ce8\u7684\u5217\u8868"),(0,r.yg)("p",null,"\u4f5c\u4e3a\u4ee3\u7801\u5ba1\u67e5\u8005\uff0c\u4f60\u7684\u4efb\u52a1\u662f\u5bfb\u627e\u6700\u91cd\u8981\u7684\u95ee\u9898\u3002\u8bc4\u8bba\u4f1a\u5bf9\u4ee3\u7801\u7684\u7ed3\u6784\u6027\u6216\u903b\u8f91\u6027\u95ee\u9898\u66f4\u6709\u4ef7\u503c\uff0c\u5373\u4f7f\u6709\u65f6\u5019\u4f1a\u663e\u5f97\u6311\u5254\u3002\u4f60\u5e94\u8be5\u77e5\u9053\u4ec0\u4e48\u662f\u597d\u7684\u4ee3\u7801\u53cd\u9988\u3002\u53e6\u5916\u9700\u8981\u6ce8\u610f\uff0c\u6700\u597d\u7684\u4ee3\u7801\u5ba1\u67e5\u53cd\u9988\u4e0d\u662f\u70b9\u8bc4\uff0c\u800c\u662f\u5efa\u8bae\u3002\u6240\u4ee5\u4e0d\u8981\u8bf4\u201c\u53d8\u91cf\u540d\u79f0\u5e94\u8be5\u662fremoveObject\u201c\uff0c\u6700\u597d\u8bf4\u201d\u8c03\u7528\u53d8\u91cfremoveObject\u600e\u4e48\u6837\uff1f\u201c\u3002\n\u4e0b\u9762\u8fd9\u4efd\u5217\u8868\u8db3\u591f\u5e2e\u52a9\u4f60\u63d0\u51fa\u597d\u7684\u4ee3\u7801\u5ba1\u67e5\u53cd\u9988\u4e86\u3002"),(0,r.yg)("h4",{id:"\u5b9e\u73b0"},"\u5b9e\u73b0"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"\u6b64\u4ee3\u7801\u66f4\u6539\u4f1a\u6267\u884c\u5b83\u5e94\u8be5\u505a\u7684\u4e8b\u60c5\u5417\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u8fd9\u79cd\u89e3\u51b3\u65b9\u6cd5\u662f\u6700\u7b80\u5355\u7684\u5417\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u8fd9\u4e2a\u66f4\u6539\u6709\u5f15\u5165\u4e00\u4e9b\u4e0d\u9700\u8981\u7684\u7f16\u8bd1\u65f6\u6216\u8fd0\u884c\u65f6\u7684\u4f9d\u8d56\u5417\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u662f\u5426\u4f7f\u7528\u4e86\u4e0d\u5e94\u8be5\u4f7f\u7528\u7684\u6846\u67b6\u3001API\u3001\u5e93\u3001\u670d\u52a1\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u662f\u5426\u5b58\u5728\u53ef\u4ee5\u63d0\u5347\u89e3\u51b3\u65b9\u6cd5\u7684\u672a\u4f7f\u7528\u7684\u6846\u67b6\u3001API\u3001\u5e93\u3001\u670d\u52a1\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u4ee3\u7801\u662f\u5426\u5904\u4e8e\u6b63\u786e\u7684\u62bd\u8c61\u7ea7\u522b\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u4ee3\u7801\u7684\u6a21\u5757\u5316\u505a\u7684\u662f\u5426\u8db3\u591f\u597d\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u4f60\u662f\u5426\u6709\u5176\u4ed6\u7684\u89e3\u51b3\u65b9\u6848\uff0c\u8be5\u65b9\u6848\u5728\u4ee3\u7801\u53ef\u7ef4\u62a4\u6027\u3001\u53ef\u8bfb\u6027\u3001\u6027\u80fd\u3001\u5b89\u5168\u65b9\u9762\u8868\u73b0\u66f4\u597d\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u662f\u5426\u5df2\u7ecf\u5b58\u5728\u7c7b\u4f3c\u529f\u80fd\u7684\u51fd\u6570\uff1f\u5982\u679c\u6709\uff0c\u4e3a\u4ec0\u4e48\u4e0d\u590d\u7528\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u662f\u5426\u6709\u6700\u4f73\u5b9e\u8df5\u3001\u8bbe\u8ba1\u6a21\u5f0f\u6216\u7279\u5b9a\u8bed\u8a00\u6a21\u5f0f\u53ef\u4ee5\u4f18\u5316\u4ee3\u7801\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u4ee3\u7801\u662f\u5426\u9075\u5faa\u9762\u5411\u5bf9\u8c61\u7684\u5206\u6790\u548c\u8bbe\u8ba1\u539f\u5219\uff0c\u4f8b\u5982\u5355\u4e00\u8d23\u4efb\u539f\u5219\uff0c\u5f00\u95ed\u539f\u5219\uff0c\u91cc\u6c0f\u66ff\u6362\u539f\u5219\uff0c\u63a5\u53e3\u9694\u79bb\uff0c\u4f9d\u8d56\u6ce8\u5165\uff1f")),(0,r.yg)("h4",{id:"\u903b\u8f91\u9519\u8bef\u6216bug"},"\u903b\u8f91\u9519\u8bef\u6216Bug"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"\u4f60\u80fd\u60f3\u5230\u4ee3\u7801\u4e0d\u6309\u9884\u671f\u8fd0\u884c\u7684\u4efb\u4f55\u7528\u4f8b\u5417\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u4f60\u80fd\u60f3\u5230\u4efb\u4f55\u53ef\u80fd\u7834\u574f\u4ee3\u7801\u7684\u8f93\u5165\u6216\u5916\u90e8\u4e8b\u4ef6\u5417\uff1f")),(0,r.yg)("h4",{id:"\u9519\u8bef\u5904\u7406\u548c\u65e5\u5fd7"},"\u9519\u8bef\u5904\u7406\u548c\u65e5\u5fd7"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"\u9519\u8bef\u90fd\u88ab\u6b63\u786e\u5904\u7406\u4e86\u5417\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u662f\u5426\u6709\u9700\u8981\u589e\u52a0\u6216\u5220\u9664\u7684\u65e5\u5fd7/debug\u4fe1\u606f\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u9519\u8bef\u6d88\u606f\u5bf9\u7528\u6237\u662f\u5426\u53cb\u597d\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u662f\u5426\u6709\u8db3\u591f\u7684\u65e5\u5fd7\uff0c\u5b83\u4eec\u7684\u7f16\u5199\u65b9\u5f0f\u662f\u5426\u662f\u6613\u4e8e\u8c03\u8bd5\u7684\uff1f")),(0,r.yg)("h4",{id:"\u53ef\u7528\u6027\u548c\u53ef\u8bbf\u95ee\u6027"},"\u53ef\u7528\u6027\u548c\u53ef\u8bbf\u95ee\u6027"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"\u4ece\u53ef\u7528\u6027\u89d2\u5ea6\u51fa\u53d1\uff0c\u6240\u63d0\u51fa\u7684\u89e3\u51b3\u65b9\u6848\u662f\u5426\u8bbe\u8ba1\u5408\u7406\uff1f"),(0,r.yg)("li",{parentName:"ul"},"API\u6587\u6863\u662f\u5426\u8db3\u591f\u597d\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u63d0\u51fa\u7684\u89e3\u51b3\u65b9\u6848\u662f\u5426\u5177\u5907\u53ef\u8bbf\u95ee\u6027\uff1f"),(0,r.yg)("li",{parentName:"ul"},"API/UI\u662f\u5426\u76f4\u89c2\u6613\u7528\uff1f")),(0,r.yg)("h4",{id:"\u6d4b\u8bd5\u4e0e\u53ef\u6d4b\u8bd5\u6027"},"\u6d4b\u8bd5\u4e0e\u53ef\u6d4b\u8bd5\u6027"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"\u4ee3\u7801\u662f\u5426\u8fbe\u5230\u53ef\u6d4b\u8bd5\u6807\u51c6\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u662f\u5426\u6709\u8db3\u591f\u7684\u81ea\u52a8\u5316\u6d4b\u8bd5\uff08\u5355\u5143\u6d4b\u8bd5/\u96c6\u6210\u6d4b\u8bd5/\u7cfb\u7edf\u6d4b\u8bd5\uff09\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u73b0\u6709\u6d4b\u8bd5\u662f\u5426\u5408\u7406\u8986\u76d6\u4ee3\u7801\u53d8\u66f4\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u662f\u5426\u6709\u989d\u5916\u7684\u6d4b\u8bd5\u7528\u4f8b\u3001\u8f93\u5165\u6216\u8fb9\u754c\u7528\u4f8b\u4ee5\u4f9b\u6d4b\u8bd5\uff1f")),(0,r.yg)("h4",{id:"\u4f9d\u8d56"},"\u4f9d\u8d56"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"\u5982\u679c\u8fd9\u4e2a\u4fee\u6539\u9700\u8981\u66f4\u65b0\u4ee3\u7801\u4ee5\u5916\u7684\u6587\u4ef6\uff0c\u4f8b\u5982\u66f4\u65b0\u6587\u6863\uff0c\u914d\u7f6e\uff0creadme\u6587\u4ef6\u3002\u662f\u5426\u5b8c\u6210\u4e86\u8fd9\u4e9b\u66f4\u65b0\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u8fd9\u4e2a\u4fee\u6539\u662f\u5426\u4f1a\u5bf9\u7cfb\u7edf\u5176\u4ed6\u5730\u65b9\u9020\u6210\u5f71\u54cd\uff1f\u662f\u5426\u80fd\u540e\u5411\u540e\u517c\u5bb9\uff1f")),(0,r.yg)("h4",{id:"\u5b89\u5168\u548c\u9690\u79c1\u6570\u636e"},"\u5b89\u5168\u548c\u9690\u79c1\u6570\u636e"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"\u8fd9\u6bb5\u4ee3\u7801\u662f\u5426\u6253\u5f00\u8f6f\u4ef6\u7684\u5b89\u5168\u6f0f\u6d1e\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u6743\u9650\u548c\u8eab\u4efd\u9a8c\u8bc1\u662f\u5426\u88ab\u6b63\u786e\u5904\u7406\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u662f\u5426\u5b89\u5168\u5904\u7406\u4e86\u654f\u611f\u6570\u636e\uff0c\u4f8b\u5982\u7528\u6237\u6570\u636e\u3001\u4fe1\u7528\u5361\u4fe1\u606f\u7b49\uff1f\u662f\u5426\u6b63\u786e\u4f7f\u7528\u52a0\u5bc6\u65b9\u6cd5\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u4ee3\u7801\u66f4\u6539\u662f\u5426\u663e\u9732\u4e86\u4e00\u4e9b\u79c1\u5bc6\u4fe1\u606f\uff08\u5982\u79d8\u94a5\uff0c\u7528\u6237\u540d\u7b49\uff09\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u5982\u679c\u4ee3\u7801\u5904\u7406\u7528\u6237\u8f93\u5165\uff0c\u662f\u5426\u89e3\u51b3\u4e86\u8de8\u7ad9\u70b9\u811a\u672c\uff0cSQL\u6ce8\u5165\u7b49\u5b89\u5168\u6f0f\u6d1e\uff0c\u662f\u5426\u8fdb\u884c\u4e86\u8f93\u5165\u6e05\u6d17\u548c\u9a8c\u8bc1\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u4ece\u5916\u90e8API\u6216\u5e93\u4e2d\u83b7\u5f97\u7684\u6570\u636e\u662f\u5426\u8fdb\u884c\u4e86\u76f8\u5e94\u7684\u68c0\u67e5\uff1f")),(0,r.yg)("h4",{id:"\u6027\u80fd"},"\u6027\u80fd"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"\u8fd9\u6bb5\u4ee3\u7801\u4fee\u6539\u662f\u5426\u4f1a\u5bf9\u7cfb\u7edf\u6027\u80fd\u4ea7\u751f\u8d1f\u9762\u5f71\u54cd\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u662f\u5426\u53ef\u4ee5\u8fdb\u4e00\u6b65\u63d0\u5347\u4ee3\u7801\u6027\u80fd\uff1f")),(0,r.yg)("h4",{id:"\u53ef\u8bfb\u6027"},"\u53ef\u8bfb\u6027"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"\u4ee3\u7801\u662f\u5426\u5bb9\u6613\u7406\u89e3\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u54ea\u4e00\u90e8\u5206\u4f7f\u4f60\u56f0\u60d1\uff0c\u4e3a\u4ec0\u4e48\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u53ef\u4ee5\u901a\u8fc7\u51cf\u5c0f\u65b9\u6cd5\u6765\u63d0\u9ad8\u4ee3\u7801\u53ef\u8bfb\u6027\u5417\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u53ef\u4ee5\u901a\u8fc7\u4f7f\u7528\u4e0d\u540c\u7684\u51fd\u6570/\u65b9\u6cd5\u6216\u53d8\u91cf\u540d\u79f0\u6765\u63d0\u5347\u4ee3\u7801\u53ef\u8bfb\u6027\u5417\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u4ee3\u7801\u662f\u5426\u5b58\u653e\u5728\u6b63\u786e\u7684\u6587\u4ef6/\u76ee\u5f55/\u5305\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u4f60\u662f\u5426\u8ba4\u4e3a\u65b9\u6cd5\u5e94\u8be5\u91cd\u6784\u4ee5\u62e5\u6709\u66f4\u76f4\u89c2\u7684\u63a7\u5236\u6d41\u7a0b\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u6570\u636e\u6d41\u662f\u5426\u53ef\u7406\u89e3\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u662f\u5426\u6709\u591a\u4f59\u7684\u6ce8\u91ca\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u67d0\u4e9b\u6ce8\u91ca\u662f\u5426\u53ef\u4ee5\u66f4\u597d\u7684\u4f20\u8fbe\u4fe1\u606f\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u662f\u5426\u66f4\u591a\u7684\u6ce8\u91ca\u4f1a\u4f7f\u4f60\u7684\u4ee3\u7801\u66f4\u5bb9\u6613\u7406\u89e3\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u662f\u5426\u53ef\u4ee5\u79fb\u9664\u4e00\u4e9b\u6ce8\u91ca\uff0c\u901a\u8fc7\u63d0\u5347\u4ee3\u7801\u53ef\u8bfb\u6027\u6765\u7406\u89e3\u4ee3\u7801\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u662f\u5426\u5b58\u5728\u6ce8\u91ca\u6389\u7684\u4ee3\u7801\uff1f")),(0,r.yg)("h4",{id:"\u4e13\u5bb6\u610f\u89c1"},"\u4e13\u5bb6\u610f\u89c1"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"\u4f60\u662f\u5426\u8ba4\u4e3a\u7279\u5b9a\u4e13\u5bb6\uff08\u5982\u5b89\u5168\u4e13\u5bb6\u6216\u53ef\u7528\u6027\u4e13\u5bb6\uff09\u5e94\u8be5\u5148\u68c0\u67e5\u4ee3\u7801\uff0c\u7136\u540e\u518d\u63d0\u4ea4\u4ee3\u7801\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u8fd9\u4e2a\u4ee3\u7801\u4fee\u6539\u4f1a\u5f71\u54cd\u5176\u4ed6\u56e2\u961f\u5417\uff1f\u4ed6\u4eec\u4e5f\u5e94\u8be5\u53d1\u8868\u610f\u89c1\u5417\uff1f")),(0,r.yg)("h4",{id:"\u4ee3\u7801\u98ce\u683c\u548c\u7ea6\u5b9a"},"\u4ee3\u7801\u98ce\u683c\u548c\u7ea6\u5b9a"),(0,r.yg)("p",null,"\u60a8\u7684\u56e2\u961f\u6216\u516c\u53f8\u5fc5\u987b\u62e5\u6709\u6e05\u6670\u7684\u7f16\u7801\u98ce\u683c\u6307\u5357\uff0c\u8fd9\u4e00\u70b9\u5f88\u91cd\u8981\u3002\u56e0\u4e3a\u8fd9\u662f\u5728\u4ee3\u7801\u5e93\u4e2d\u5b9e\u65bd\u552f\u4e00\u6027\u7684\u552f\u4e00\u65b9\u6cd5\u3002\u5e76\u4e14\u4e00\u81f4\u6027\u4f1a\u4f7f\u4ee3\u7801\u5ba1\u67e5\u66f4\u5feb\uff0c\u4f7f\u4eba\u4eec\u53ef\u4ee5\u8f7b\u677e\u5730\u66f4\u6539\u9879\u76ee\uff0c\u5e76\u4fdd\u6301\u60a8\u4ee3\u7801\u7684\u53ef\u8bfb\u6027\u548c\u53ef\u7ef4\u62a4\u6027\u3002Google\u662f\u505a\u5230\u8fd9\u4e00\u70b9\u7684\u5f88\u597d\u7684\u4f8b\u5b50\uff0c\u65e0\u7591\uff0c\u8fd9\u4f7fGoogle\u53ef\u4ee5\u8fdb\u884c\u5feb\u901f\u7684\u4ee3\u7801\u5ba1\u67e5\u3002\u9996\u5148\uff0c\u6211\u5efa\u8bae\u4f7f\u7528\u73b0\u6210\u7684\u7f16\u7801\u6837\u5f0f\u6765\u652f\u6301Google\u63d0\u4f9b\u7684\u591a\u79cd\u8bed\u8a00\u3002\u8bbe\u5b9a\u57fa\u672c\u89c4\u5219\u5f88\u91cd\u8981\uff0c\u4f46\u8981\u786e\u4fdd\u4e00\u52b3\u6c38\u9038\u3002\u4e0d\u8981\u6301\u7eed\u4e89\u8bba\u3002"),(0,r.yg)("h4",{id:"\u5c3d\u53ef\u80fd\u81ea\u52a8\u5316"},"\u5c3d\u53ef\u80fd\u81ea\u52a8\u5316"),(0,r.yg)("p",null,"\u786e\u5b9a\u4e86\u4ee3\u7801\u98ce\u683c\u4ee5\u540e\uff0c\u8bf7\u82b1\u4e00\u4e9b\u65f6\u95f4\u6b63\u786e\u5b89\u88c5\u548c\u914d\u7f6e\u5de5\u5177\uff0c\u4ee5\u4fbf\u4e00\u952e\u683c\u5f0f\u5316\u4ee3\u7801\u3002\u53e6\u5916\u8fd8\u6709\u5f88\u591a\u4e8b\u60c5\u53ef\u4ee5\u505a\u3002\u4f8b\u5982\u4f7f\u7528\u9759\u6001\u68c0\u67e5\u6765\u4ee3\u66ff\u90e8\u5206\u4eba\u5de5\u5ba1\u6838\u3002\u8fd9\u662f\u503c\u5f97\u4e3a\u4e4b\u52aa\u529b\u7684\u3002"))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8b70c8d9.f748a378.js b/assets/js/8b70c8d9.b7375323.js similarity index 98% rename from assets/js/8b70c8d9.f748a378.js rename to assets/js/8b70c8d9.b7375323.js index c3f3ad7d0..c813d989b 100644 --- a/assets/js/8b70c8d9.f748a378.js +++ b/assets/js/8b70c8d9.b7375323.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3108],{5680:(e,t,r)=>{r.d(t,{xA:()=>l,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function p(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),s=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):p(p({},t),e)),r},l=function(e){var t=s(e.components);return n.createElement(c.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,l=i(e,["components","mdxType","originalType","parentName"]),u=s(r),m=o,f=u["".concat(c,".").concat(m)]||u[m]||d[m]||a;return r?n.createElement(f,p(p({ref:t},l),{},{components:r})):n.createElement(f,p({ref:t},l))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,p=new Array(a);p[0]=m;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[u]="string"==typeof e?e:o,p[1]=i;for(var s=2;s{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>p,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>s});var n=r(8168),o=(r(6540),r(5680));const a={},p="GitHub Desktop",i={unversionedId:"study/program/GIT/GitHubDesktop",id:"study/program/GIT/GitHubDesktop",title:"GitHub Desktop",description:"\u6211\u4e00\u822c\u662f\u4f7f\u7528\u8fd9\u4e2a\u5de5\u5177\uff0c\u4f46\u662f\u6709\u4e00\u6b21\u66f4\u65b0\u4e4b\u540e\uff0c\u62a5\u9519\u5982\u4e0b",source:"@site/docs/study/program/GIT/GitHubDesktop.md",sourceDirName:"study/program/GIT",slug:"/study/program/GIT/GitHubDesktop",permalink:"/docs/study/program/GIT/GitHubDesktop",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"GIT-\u5e38\u7528\u547d\u4ee4",permalink:"/docs/study/program/GIT/GIT-\u5e38\u7528\u547d\u4ee4"},next:{title:"PR\u548cMR",permalink:"/docs/study/program/GIT/PR\u548cMR"}},c={},s=[],l={toc:s},u="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"github-desktop"},"GitHub Desktop"),(0,o.yg)("p",null,"\u6211\u4e00\u822c\u662f\u4f7f\u7528\u8fd9\u4e2a\u5de5\u5177\uff0c\u4f46\u662f\u6709\u4e00\u6b21\u66f4\u65b0\u4e4b\u540e\uff0c\u62a5\u9519\u5982\u4e0b"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-shell"},"ERROR: Couldn't connect to 127.0.0.1:49196 - Please make sure you don't have an antivirus or firewall blocking this connection. (10013): fatal: could not read Username for 'http://10.0.8.45': terminal prompts disabled\n")),(0,o.yg)("p",null,"\u89e3\u51b3\u65b9\u5f0f\uff1a"),(0,o.yg)("p",null,"\u627e\u5230.git\u6587\u4ef6\u5939\uff0c\u4e0b\u9762\u6709\u4e2aconfig\u6587\u4ef6\uff0c\u627e\u5230\u5982\u4e0b\uff0c\u589e\u52a0\u7528\u6237\u540d\u548c\u5bc6\u7801"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-shell"},'[remote "origin"]\n url = http://{\u7528\u6237\u540d}:{\u589e\u52a0}@10.0.8.45/ccsp/vuemanagementplatform.git\n fetch = +refs/heads/*:refs/remotes/origin/*\n')))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3108],{5680:(e,t,r)=>{r.d(t,{xA:()=>l,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function p(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),s=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):p(p({},t),e)),r},l=function(e){var t=s(e.components);return n.createElement(c.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,l=i(e,["components","mdxType","originalType","parentName"]),u=s(r),m=o,f=u["".concat(c,".").concat(m)]||u[m]||d[m]||a;return r?n.createElement(f,p(p({ref:t},l),{},{components:r})):n.createElement(f,p({ref:t},l))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,p=new Array(a);p[0]=m;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[u]="string"==typeof e?e:o,p[1]=i;for(var s=2;s{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>p,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>s});var n=r(8168),o=(r(6540),r(5680));const a={},p="GitHub Desktop",i={unversionedId:"study/program/GIT/GitHubDesktop",id:"study/program/GIT/GitHubDesktop",title:"GitHub Desktop",description:"\u6211\u4e00\u822c\u662f\u4f7f\u7528\u8fd9\u4e2a\u5de5\u5177\uff0c\u4f46\u662f\u6709\u4e00\u6b21\u66f4\u65b0\u4e4b\u540e\uff0c\u62a5\u9519\u5982\u4e0b",source:"@site/docs/study/program/GIT/GitHubDesktop.md",sourceDirName:"study/program/GIT",slug:"/study/program/GIT/GitHubDesktop",permalink:"/docs/study/program/GIT/GitHubDesktop",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"GIT-\u5e38\u7528\u547d\u4ee4",permalink:"/docs/study/program/GIT/GIT-\u5e38\u7528\u547d\u4ee4"},next:{title:"PR\u548cMR",permalink:"/docs/study/program/GIT/PR\u548cMR"}},c={},s=[],l={toc:s},u="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"github-desktop"},"GitHub Desktop"),(0,o.yg)("p",null,"\u6211\u4e00\u822c\u662f\u4f7f\u7528\u8fd9\u4e2a\u5de5\u5177\uff0c\u4f46\u662f\u6709\u4e00\u6b21\u66f4\u65b0\u4e4b\u540e\uff0c\u62a5\u9519\u5982\u4e0b"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-shell"},"ERROR: Couldn't connect to 127.0.0.1:49196 - Please make sure you don't have an antivirus or firewall blocking this connection. (10013): fatal: could not read Username for 'http://10.0.8.45': terminal prompts disabled\n")),(0,o.yg)("p",null,"\u89e3\u51b3\u65b9\u5f0f\uff1a"),(0,o.yg)("p",null,"\u627e\u5230.git\u6587\u4ef6\u5939\uff0c\u4e0b\u9762\u6709\u4e2aconfig\u6587\u4ef6\uff0c\u627e\u5230\u5982\u4e0b\uff0c\u589e\u52a0\u7528\u6237\u540d\u548c\u5bc6\u7801"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-shell"},'[remote "origin"]\n url = http://{\u7528\u6237\u540d}:{\u589e\u52a0}@10.0.8.45/ccsp/vuemanagementplatform.git\n fetch = +refs/heads/*:refs/remotes/origin/*\n')))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8cc20a8d.54f2cca8.js b/assets/js/8cc20a8d.25e38ce2.js similarity index 98% rename from assets/js/8cc20a8d.54f2cca8.js rename to assets/js/8cc20a8d.25e38ce2.js index 8282df793..b3bc524df 100644 --- a/assets/js/8cc20a8d.54f2cca8.js +++ b/assets/js/8cc20a8d.25e38ce2.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3338],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),s=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=s(e.components);return n.createElement(i.Provider,{value:t},e.children)},l="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,u=p(e,["components","mdxType","originalType","parentName"]),l=s(r),y=a,f=l["".concat(i,".").concat(y)]||l[y]||d[y]||o;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,c=new Array(o);c[0]=y;var p={};for(var i in t)hasOwnProperty.call(t,i)&&(p[i]=t[i]);p.originalType=e,p[l]="string"==typeof e?e:a,c[1]=p;for(var s=2;s{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>c,default:()=>d,frontMatter:()=>o,metadata:()=>p,toc:()=>s});var n=r(8168),a=(r(6540),r(5680));const o={},c=void 0,p={unversionedId:"study/hard/\u8def\u7531\u5668\u548c\u4ea4\u6362\u673a\u7684\u533a\u522b",id:"study/hard/\u8def\u7531\u5668\u548c\u4ea4\u6362\u673a\u7684\u533a\u522b",title:"\u8def\u7531\u5668\u548c\u4ea4\u6362\u673a\u7684\u533a\u522b",description:"\u8def\u7531\u5668\u548c\u4ea4\u6362\u673a\u7684\u4e0d\u540c\u4e4b\u5904\u6709\u54ea\u4e9b\uff1f",source:"@site/docs/study/hard/\u8def\u7531\u5668\u548c\u4ea4\u6362\u673a\u7684\u533a\u522b.md",sourceDirName:"study/hard",slug:"/study/hard/\u8def\u7531\u5668\u548c\u4ea4\u6362\u673a\u7684\u533a\u522b",permalink:"/docs/study/hard/\u8def\u7531\u5668\u548c\u4ea4\u6362\u673a\u7684\u533a\u522b",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u786c\u4ef6\u5f00\u53d1\u548c\u5d4c\u5165\u5f0f\u5f00\u53d1",permalink:"/docs/study/hard/\u786c\u4ef6\u5f00\u53d1\u548c\u5d4c\u5165\u5f0f\u5f00\u53d1"},next:{title:"\u901a\u4fe1\u6a21\u7ec4",permalink:"/docs/study/hard/\u901a\u4fe1\u6a21\u7ec4"}},i={},s=[],u={toc:s},l="wrapper";function d(e){let{components:t,...r}=e;return(0,a.yg)(l,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("p",null,(0,a.yg)("a",{parentName:"p",href:"https://www.zhihu.com/question/20465477"},(0,a.yg)("strong",{parentName:"a"},"\u8def\u7531\u5668\u548c\u4ea4\u6362\u673a\u7684\u4e0d\u540c\u4e4b\u5904\u6709\u54ea\u4e9b\uff1f"))),(0,a.yg)("p",null,(0,a.yg)("strong",{parentName:"p"},"\u5de5\u4f5c\u5c42\u6b21\u4e0d\u540c\uff1a"),"\n\u4ea4\u6362\u673a\u4e3b\u8981\u5de5\u4f5c\u5728\u6570\u636e\u94fe\u8def\u5c42\uff08\u7b2c\u4e8c\u5c42\uff09\n\u8def\u7531\u5668\u5de5\u4f5c\u5728\u7f51\u7edc\u5c42\uff08\u7b2c\u4e09\u5c42\uff09\u3002\n",(0,a.yg)("strong",{parentName:"p"},"\u8f6c\u53d1\u4f9d\u636e\u4e0d\u540c\uff1a"),"\n\u4ea4\u6362\u673a\u8f6c\u53d1\u6240\u4f9d\u636e\u7684\u5bf9\u8c61\u65f6\uff1aMAC\u5730\u5740\u3002\uff08\u7269\u7406\u5730\u5740\uff09\n\u8def\u7531\u8f6c\u53d1\u6240\u4f9d\u636e\u7684\u5bf9\u8c61\u662f\uff1aIP\u5730\u5740\u3002\uff08\u7f51\u7edc\u5730\u5740\uff09\n",(0,a.yg)("strong",{parentName:"p"},"\u4e3b\u8981\u529f\u80fd\u4e0d\u540c\uff1a"),"\n\u4ea4\u6362\u673a\u4e3b\u8981\u7528\u4e8e\u7ec4\u5efa\u5c40\u57df\u7f51\uff0c\n\u800c\u8def\u7531\u4e3b\u8981\u529f\u80fd\u662f\u5c06\u7531\u4ea4\u6362\u673a\u7ec4\u597d\u7684\u5c40\u57df\u7f51\u76f8\u4e92\u8fde\u63a5\u8d77\u6765\uff0c\u6216\u8005\u63a5\u5165Internet\u3002\n\u4ea4\u6362\u673a\u80fd\u505a\u7684\uff0c\u8def\u7531\u90fd\u80fd\u505a\u3002\n\u4ea4\u6362\u673a\u4e0d\u80fd\u5206\u5272\u5e7f\u64ad\u57df\uff0c\u8def\u7531\u53ef\u4ee5\u3002\n\u8def\u7531\u8fd8\u53ef\u4ee5\u63d0\u4f9b\u9632\u706b\u5899\u7684\u529f\u80fd\u3002\n\u8def\u7531\u914d\u7f6e\u6bd4\u4ea4\u6362\u673a\u590d\u6742\u3002\n",(0,a.yg)("strong",{parentName:"p"},"\u4ef7\u683c\u4e0d\u540c"),"\n\u4ea4\u6362\u673a\u662f\u770b\u95e8\u5927\u7237\uff0c\u8def\u7531\u662f\u90ae\u5dee\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3338],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),s=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=s(e.components);return n.createElement(i.Provider,{value:t},e.children)},l="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,u=p(e,["components","mdxType","originalType","parentName"]),l=s(r),y=a,f=l["".concat(i,".").concat(y)]||l[y]||d[y]||o;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,c=new Array(o);c[0]=y;var p={};for(var i in t)hasOwnProperty.call(t,i)&&(p[i]=t[i]);p.originalType=e,p[l]="string"==typeof e?e:a,c[1]=p;for(var s=2;s{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>c,default:()=>d,frontMatter:()=>o,metadata:()=>p,toc:()=>s});var n=r(8168),a=(r(6540),r(5680));const o={},c=void 0,p={unversionedId:"study/hard/\u8def\u7531\u5668\u548c\u4ea4\u6362\u673a\u7684\u533a\u522b",id:"study/hard/\u8def\u7531\u5668\u548c\u4ea4\u6362\u673a\u7684\u533a\u522b",title:"\u8def\u7531\u5668\u548c\u4ea4\u6362\u673a\u7684\u533a\u522b",description:"\u8def\u7531\u5668\u548c\u4ea4\u6362\u673a\u7684\u4e0d\u540c\u4e4b\u5904\u6709\u54ea\u4e9b\uff1f",source:"@site/docs/study/hard/\u8def\u7531\u5668\u548c\u4ea4\u6362\u673a\u7684\u533a\u522b.md",sourceDirName:"study/hard",slug:"/study/hard/\u8def\u7531\u5668\u548c\u4ea4\u6362\u673a\u7684\u533a\u522b",permalink:"/docs/study/hard/\u8def\u7531\u5668\u548c\u4ea4\u6362\u673a\u7684\u533a\u522b",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u786c\u4ef6\u5f00\u53d1\u548c\u5d4c\u5165\u5f0f\u5f00\u53d1",permalink:"/docs/study/hard/\u786c\u4ef6\u5f00\u53d1\u548c\u5d4c\u5165\u5f0f\u5f00\u53d1"},next:{title:"\u901a\u4fe1\u6a21\u7ec4",permalink:"/docs/study/hard/\u901a\u4fe1\u6a21\u7ec4"}},i={},s=[],u={toc:s},l="wrapper";function d(e){let{components:t,...r}=e;return(0,a.yg)(l,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("p",null,(0,a.yg)("a",{parentName:"p",href:"https://www.zhihu.com/question/20465477"},(0,a.yg)("strong",{parentName:"a"},"\u8def\u7531\u5668\u548c\u4ea4\u6362\u673a\u7684\u4e0d\u540c\u4e4b\u5904\u6709\u54ea\u4e9b\uff1f"))),(0,a.yg)("p",null,(0,a.yg)("strong",{parentName:"p"},"\u5de5\u4f5c\u5c42\u6b21\u4e0d\u540c\uff1a"),"\n\u4ea4\u6362\u673a\u4e3b\u8981\u5de5\u4f5c\u5728\u6570\u636e\u94fe\u8def\u5c42\uff08\u7b2c\u4e8c\u5c42\uff09\n\u8def\u7531\u5668\u5de5\u4f5c\u5728\u7f51\u7edc\u5c42\uff08\u7b2c\u4e09\u5c42\uff09\u3002\n",(0,a.yg)("strong",{parentName:"p"},"\u8f6c\u53d1\u4f9d\u636e\u4e0d\u540c\uff1a"),"\n\u4ea4\u6362\u673a\u8f6c\u53d1\u6240\u4f9d\u636e\u7684\u5bf9\u8c61\u65f6\uff1aMAC\u5730\u5740\u3002\uff08\u7269\u7406\u5730\u5740\uff09\n\u8def\u7531\u8f6c\u53d1\u6240\u4f9d\u636e\u7684\u5bf9\u8c61\u662f\uff1aIP\u5730\u5740\u3002\uff08\u7f51\u7edc\u5730\u5740\uff09\n",(0,a.yg)("strong",{parentName:"p"},"\u4e3b\u8981\u529f\u80fd\u4e0d\u540c\uff1a"),"\n\u4ea4\u6362\u673a\u4e3b\u8981\u7528\u4e8e\u7ec4\u5efa\u5c40\u57df\u7f51\uff0c\n\u800c\u8def\u7531\u4e3b\u8981\u529f\u80fd\u662f\u5c06\u7531\u4ea4\u6362\u673a\u7ec4\u597d\u7684\u5c40\u57df\u7f51\u76f8\u4e92\u8fde\u63a5\u8d77\u6765\uff0c\u6216\u8005\u63a5\u5165Internet\u3002\n\u4ea4\u6362\u673a\u80fd\u505a\u7684\uff0c\u8def\u7531\u90fd\u80fd\u505a\u3002\n\u4ea4\u6362\u673a\u4e0d\u80fd\u5206\u5272\u5e7f\u64ad\u57df\uff0c\u8def\u7531\u53ef\u4ee5\u3002\n\u8def\u7531\u8fd8\u53ef\u4ee5\u63d0\u4f9b\u9632\u706b\u5899\u7684\u529f\u80fd\u3002\n\u8def\u7531\u914d\u7f6e\u6bd4\u4ea4\u6362\u673a\u590d\u6742\u3002\n",(0,a.yg)("strong",{parentName:"p"},"\u4ef7\u683c\u4e0d\u540c"),"\n\u4ea4\u6362\u673a\u662f\u770b\u95e8\u5927\u7237\uff0c\u8def\u7531\u662f\u90ae\u5dee\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8d7693a3.914c5c91.js b/assets/js/8d7693a3.7aed3b76.js similarity index 99% rename from assets/js/8d7693a3.914c5c91.js rename to assets/js/8d7693a3.7aed3b76.js index fb695ac1c..6b5c78f97 100644 --- a/assets/js/8d7693a3.914c5c91.js +++ b/assets/js/8d7693a3.7aed3b76.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4116],{5680:(e,l,t)=>{t.d(l,{xA:()=>s,yg:()=>d});var n=t(6540);function r(e,l,t){return l in e?Object.defineProperty(e,l,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[l]=t,e}function u(e,l){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);l&&(n=n.filter((function(l){return Object.getOwnPropertyDescriptor(e,l).enumerable}))),t.push.apply(t,n)}return t}function o(e){for(var l=1;l=0||(r[t]=e[t]);return r}(e,l);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var p=n.createContext({}),a=function(e){var l=n.useContext(p),t=l;return e&&(t="function"==typeof e?e(l):o(o({},l),e)),t},s=function(e){var l=a(e.components);return n.createElement(p.Provider,{value:l},e.children)},c="mdxType",y={inlineCode:"code",wrapper:function(e){var l=e.children;return n.createElement(n.Fragment,{},l)}},O=n.forwardRef((function(e,l){var t=e.components,r=e.mdxType,u=e.originalType,p=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),c=a(t),O=r,d=c["".concat(p,".").concat(O)]||c[O]||y[O]||u;return t?n.createElement(d,o(o({ref:l},s),{},{components:t})):n.createElement(d,o({ref:l},s))}));function d(e,l){var t=arguments,r=l&&l.mdxType;if("string"==typeof e||r){var u=t.length,o=new Array(u);o[0]=O;var i={};for(var p in l)hasOwnProperty.call(l,p)&&(i[p]=l[p]);i.originalType=e,i[c]="string"==typeof e?e:r,o[1]=i;for(var a=2;a{t.r(l),t.d(l,{assets:()=>p,contentTitle:()=>o,default:()=>y,frontMatter:()=>u,metadata:()=>i,toc:()=>a});var n=t(8168),r=(t(6540),t(5680));const u={},o="\u64cd\u4f5c\u7cfb\u7edf IO \u77e5\u8bc6",i={unversionedId:"study/system/IO",id:"study/system/IO",title:"\u64cd\u4f5c\u7cfb\u7edf IO \u77e5\u8bc6",description:"I/O\uff08Input/Output\uff09\u6a21\u578b\u662f\u8ba1\u7b97\u673a\u79d1\u5b66\u4e2d\u7684\u4e00\u4e2a\u5173\u952e\u6982\u5ff5\uff0c\u5b83\u6d89\u53ca\u5230\u5982\u4f55\u8fdb\u884c\u8f93\u5165\u548c\u8f93\u51fa\u64cd\u4f5c\uff0c\u800c\u8fd9\u5728\u8ba1\u7b97\u673a\u5e94\u7528\u4e2d\u662f\u4e0d\u53ef\u6216\u7f3a\u7684\u4e00\u90e8\u5206\u3002\u5728\u4e0d\u540c\u7684\u5e94\u7528\u573a\u666f\u4e0b\uff0c\u9009\u62e9\u6b63\u786e\u7684 I/O \u6a21\u578b\u662f\u81f3\u5173\u91cd\u8981\u7684\uff0c\u56e0\u4e3a\u5b83\u4f1a\u5f71\u54cd\u5230\u5e94\u7528\u7a0b\u5e8f\u7684\u6027\u80fd\u548c\u54cd\u5e94\u6027\u3002",source:"@site/docs/study/system/IO.md",sourceDirName:"study/system",slug:"/study/system/IO",permalink:"/docs/study/system/IO",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"CPU\u7ebf\u7a0b\u5e76\u53d1",permalink:"/docs/study/system/CPU\u7ebf\u7a0b\u5e76\u53d1"},next:{title:"Open\u6b27\u62c9",permalink:"/docs/study/system/Open\u6b27\u62c9"}},p={},a=[{value:"\u963b\u585e IO",id:"\u963b\u585e-io",level:3},{value:"\u975e\u963b\u585e IO",id:"\u975e\u963b\u585e-io",level:3},{value:"\u4fe1\u53f7\u9a71\u52a8 I/O",id:"\u4fe1\u53f7\u9a71\u52a8-io",level:4},{value:"\u5f02\u6b65 I/O",id:"\u5f02\u6b65-io",level:4},{value:"IO \u591a\u8def\u590d\u7528\u51fd\u6570",id:"io-\u591a\u8def\u590d\u7528\u51fd\u6570",level:3},{value:"select",id:"select",level:4},{value:"poll",id:"poll",level:4},{value:"epoll",id:"epoll",level:4},{value:"kqueue",id:"kqueue",level:4},{value:"\u4e3a\u4ec0\u4e48 epoll,kqueue \u6bd4 select \u9ad8\u7ea7\uff1f",id:"\u4e3a\u4ec0\u4e48-epollkqueue-\u6bd4-select-\u9ad8\u7ea7",level:4}],s={toc:a},c="wrapper";function y(e){let{components:l,...t}=e;return(0,r.yg)(c,(0,n.A)({},s,t,{components:l,mdxType:"MDXLayout"}),(0,r.yg)("h1",{id:"\u64cd\u4f5c\u7cfb\u7edf-io-\u77e5\u8bc6"},"\u64cd\u4f5c\u7cfb\u7edf IO \u77e5\u8bc6"),(0,r.yg)("p",null,"I/O\uff08Input/Output\uff09\u6a21\u578b\u662f\u8ba1\u7b97\u673a\u79d1\u5b66\u4e2d\u7684\u4e00\u4e2a\u5173\u952e\u6982\u5ff5\uff0c\u5b83\u6d89\u53ca\u5230\u5982\u4f55\u8fdb\u884c\u8f93\u5165\u548c\u8f93\u51fa\u64cd\u4f5c\uff0c\u800c\u8fd9\u5728\u8ba1\u7b97\u673a\u5e94\u7528\u4e2d\u662f\u4e0d\u53ef\u6216\u7f3a\u7684\u4e00\u90e8\u5206\u3002\u5728\u4e0d\u540c\u7684\u5e94\u7528\u573a\u666f\u4e0b\uff0c\u9009\u62e9\u6b63\u786e\u7684 I/O \u6a21\u578b\u662f\u81f3\u5173\u91cd\u8981\u7684\uff0c\u56e0\u4e3a\u5b83\u4f1a\u5f71\u54cd\u5230\u5e94\u7528\u7a0b\u5e8f\u7684\u6027\u80fd\u548c\u54cd\u5e94\u6027\u3002"),(0,r.yg)("h3",{id:"\u963b\u585e-io"},"\u963b\u585e IO"),(0,r.yg)("p",null,"\u963b\u585e I/O \u6a21\u578b\u4e0e\u540c\u6b65 I/O \u6a21\u578b\u76f8\u4f3c\uff0c\u5b83\u4e5f\u9700\u8981\u5e94\u7528\u7a0b\u5e8f\u7b49\u5f85 I/O \u64cd\u4f5c\u5b8c\u6210\u3002\u963b\u585e I/O \u9002\u7528\u4e8e\u7b80\u5355\u7684\u5e94\u7528\uff0c\u4f46\u53ef\u80fd\u5bfc\u81f4\u6027\u80fd\u95ee\u9898\uff0c\u56e0\u4e3a\u5e94\u7528\u7a0b\u5e8f\u4f1a\u5728\u7b49\u5f85\u64cd\u4f5c\u5b8c\u6210\u65f6\u88ab\u963b\u585e\u3002"),(0,r.yg)("h3",{id:"\u975e\u963b\u585e-io"},"\u975e\u963b\u585e IO"),(0,r.yg)("p",null,"\u975e\u963b\u585e I/O \u6a21\u578b\u5141\u8bb8\u5e94\u7528\u7a0b\u5e8f\u53d1\u8d77 I/O \u64cd\u4f5c\u540e\u7ee7\u7eed\u6267\u884c\u5176\u4ed6\u4efb\u52a1\uff0c\u800c\u4e0d\u5fc5\u7b49\u5f85\u64cd\u4f5c\u5b8c\u6210\u3002\u8fd9\u79cd\u6a21\u578b\u9002\u7528\u4e8e\u9700\u8981\u540c\u65f6\u5904\u7406\u591a\u4e2a\u901a\u9053\u7684\u5e94\u7528\u3002"),(0,r.yg)("p",null,'\u53e6\u4e00\u4e2a\u91cd\u8981\u7684\u6982\u5ff5\u662f"I/O \u591a\u8def\u590d\u7528"\uff08I/O Multiplexing\uff09\u3002I/O \u591a\u8def\u590d\u7528\u662f\u4e00\u79cd\u9ad8\u6548\u5904\u7406\u591a\u4e2a I/O \u64cd\u4f5c\u7684\u6a21\u578b\uff0c\u5b83\u5141\u8bb8\u5e94\u7528\u7a0b\u5e8f\u540c\u65f6\u76d1\u89c6\u591a\u4e2a\u6587\u4ef6\u63cf\u8ff0\u7b26\uff08sockets\u3001\u6587\u4ef6\u3001\u7ba1\u9053\u7b49\uff09\u4ee5\u68c0\u6d4b\u5b83\u4eec\u662f\u5426\u51c6\u5907\u597d\u8fdb\u884c I/O \u64cd\u4f5c\u3002\u8fd9\u53ef\u4ee5\u6709\u6548\u5730\u51cf\u5c11\u7ebf\u7a0b\u6570\u91cf\uff0c\u4ece\u800c\u63d0\u9ad8\u6027\u80fd\u548c\u8d44\u6e90\u5229\u7528\u7387\u3002\u5728 Java \u4e2d\uff0cI/O \u591a\u8def\u590d\u7528\u901a\u5e38\u901a\u8fc7 java.nio.channels.Selector \u7c7b\u6765\u5b9e\u73b0\u3002'),(0,r.yg)("p",null,'I/O \u591a\u8def\u590d\u7528\u975e\u5e38\u9002\u5408\u9700\u8981\u540c\u65f6\u5904\u7406\u591a\u4e2a\u901a\u9053\u7684\u5e94\u7528\uff0c\u5982\u9ad8\u6027\u80fd\u7f51\u7edc\u670d\u52a1\u5668\u3002\u5b83\u53ef\u4ee5\u51cf\u5c11\u7ebf\u7a0b\u6570\u91cf\uff0c\u63d0\u9ad8\u5e94\u7528\u7a0b\u5e8f\u7684\u6027\u80fd\u548c\u53ef\u4f38\u7f29\u6027\u3002\u5728\u9009\u62e9 I/O \u6a21\u578b\u65f6\uff0c\u5e94\u8be5\u8003\u8651\u5e94\u7528\u7a0b\u5e8f\u7684\u5177\u4f53\u9700\u6c42\u548c\u6027\u80fd\u8981\u6c42\uff0cI/O \u591a\u8def\u590d\u7528\u662f\u4e00\u4e2a\u91cd\u8981\u7684\u9009\u62e9\u4e4b\u4e00\u3002\u8fd8\u6709\u4e24\u4e2a\u91cd\u8981\u7684\u6982\u5ff5\u662f"\u4fe1\u53f7\u9a71\u52a8 I/O"\uff08Signal Driven I/O\uff09\u548c"\u5f02\u6b65 I/O"\u3002\u8fd9\u4e24\u79cd I/O \u6a21\u578b\u5728\u67d0\u4e9b\u60c5\u51b5\u4e0b\u53ef\u4ee5\u63d0\u4f9b\u66f4\u9ad8\u7684\u6027\u80fd\u548c\u6548\u7387\u3002'),(0,r.yg)("h4",{id:"\u4fe1\u53f7\u9a71\u52a8-io"},"\u4fe1\u53f7\u9a71\u52a8 I/O"),(0,r.yg)("p",null,"\u4fe1\u53f7\u9a71\u52a8 I/O \u662f\u4e00\u79cd\u975e\u963b\u585e I/O \u7684\u53d8\u4f53\uff0c\u5b83\u4f7f\u7528\u4fe1\u53f7\u901a\u77e5\u5e94\u7528\u7a0b\u5e8f\u6587\u4ef6\u63cf\u8ff0\u7b26\u5df2\u51c6\u5907\u597d\u8fdb\u884c I/O \u64cd\u4f5c\u3002\u8fd9\u79cd\u6a21\u578b\u5728\u7c7b Unix \u7cfb\u7edf\u4e2d\u975e\u5e38\u5e38\u89c1\uff0c\u901a\u5e38\u4e0e\u5f02\u6b65 I/O \u7ed3\u5408\u4f7f\u7528\u3002\u5728 Java \u4e2d\uff0c\u6211\u4eec\u53ef\u4ee5\u4f7f\u7528 java.nio.channels.AsynchronousChannel \u6765\u5b9e\u73b0\u4fe1\u53f7\u9a71\u52a8 I/O\u3002"),(0,r.yg)("p",null,"\u56de\u8c03\uff1b"),(0,r.yg)("h4",{id:"\u5f02\u6b65-io"},"\u5f02\u6b65 I/O"),(0,r.yg)("p",null,'\u5f02\u6b65 I/O \u6a21\u578b\u4e5f\u79f0\u4e3a"\u771f\u6b63\u7684\u5f02\u6b65 I/O"\uff0c\u5b83\u5141\u8bb8\u5e94\u7528\u7a0b\u5e8f\u53d1\u8d77 I/O \u64cd\u4f5c\u540e\u7ee7\u7eed\u6267\u884c\u5176\u4ed6\u4efb\u52a1\uff0c\u800c\u4e0d\u9700\u8981\u7b49\u5f85\u64cd\u4f5c\u5b8c\u6210\u3002\u5f02\u6b65 I/O \u4e0e\u4fe1\u53f7\u9a71\u52a8 I/O \u4e0d\u540c\uff0c\u56e0\u4e3a\u5b83\u4e0d\u4f1a\u4f7f\u7528\u56de\u8c03\u51fd\u6570\uff0c\u800c\u662f\u4f7f\u7528\u4e8b\u4ef6\u9a71\u52a8\u7684\u65b9\u5f0f\u6765\u901a\u77e5 I/O \u64cd\u4f5c\u7684\u5b8c\u6210\u3002'),(0,r.yg)("h3",{id:"io-\u591a\u8def\u590d\u7528\u51fd\u6570"},"IO \u591a\u8def\u590d\u7528\u51fd\u6570"),(0,r.yg)("h4",{id:"select"},"select"),(0,r.yg)("p",null,"\u53ef\u5728\u4e0d\u540c\u5e73\u53f0\uff08\u5305\u62ec Unix\u3001Linux \u548c Windows\uff09\u4e0a\u4f7f\u7528\u3002\u7531\u4e8e\u5176\u53ef\u79fb\u690d\u6027\uff0cselect \u662f\u4e00\u79cd\u901a\u7528\u7684 I/O \u591a\u8def\u590d\u7528\u65b9\u6cd5\u3002"),(0,r.yg)("h4",{id:"poll"},"poll"),(0,r.yg)("p",null,"poll \u4e5f\u662f\u76f8\u5bf9\u53ef\u79fb\u690d\u7684\uff0c\u4f46\u5e76\u975e\u5728\u6240\u6709\u64cd\u4f5c\u7cfb\u7edf\u4e0a\u90fd\u5f97\u5230\u5e7f\u6cdb\u652f\u6301\u3002\u5b83\u5728\u5927\u591a\u6570 Unix \u7cfb\u7edf\u4e0a\u53ef\u7528\uff0c\u4f46\u5728 Windows \u4e0a\u7684\u652f\u6301\u8f83\u5f31\u3002"),(0,r.yg)("p",null,"\u603b\u7684\u6765\u8bf4\uff0cpoll \u5728\u6027\u80fd\u548c\u53ef\u8bfb\u6027\u65b9\u9762\u76f8\u5bf9\u4f18\u4e8e select\uff0c\u7279\u522b\u662f\u5728\u5904\u7406\u5927\u91cf\u6587\u4ef6\u63cf\u8ff0\u7b26\u65f6\u3002\u4f46\u9009\u62e9\u4f7f\u7528\u54ea\u79cd\u65b9\u6cd5\u8fd8\u53d6\u51b3\u4e8e\u5e94\u7528\u7a0b\u5e8f\u7684\u9700\u6c42\u548c\u76ee\u6807\u5e73\u53f0\u7684\u652f\u6301\u3002\u5728\u5927\u591a\u6570\u60c5\u51b5\u4e0b\uff0cepoll \u548c kqueue \u4e5f\u662f\u66f4\u9ad8\u6027\u80fd\u7684\u66ff\u4ee3\u65b9\u6848\uff0c\u7279\u522b\u9002\u7528\u4e8e\u5927\u89c4\u6a21\u5e76\u53d1\u7684\u5e94\u7528\u3002"),(0,r.yg)("p",null,"\u662f\u4e00\u79cd\u6700\u65e9\u51fa\u73b0\u5728 Unix \u7cfb\u7edf\u4e2d\u7684\u591a\u8def\u590d\u7528\u673a\u5236\u3002poll \u7b49\u5f85\u591a\u4e2a\u6587\u4ef6\u63cf\u8ff0\u7b26\u4e2d\u7684\u4e00\u4e2a\u6216\u591a\u4e2a\u53d8\u4e3a\u53ef\u8bfb\uff0c\u53ef\u5199\u6216\u5f02\u5e38\u3002\u4f46 poll \u5728\u5927\u91cf\u6587\u4ef6\u63cf\u8ff0\u7b26\u7684\u60c5\u51b5\u4e0b\u6027\u80fd\u53ef\u80fd\u4e0d\u5982 epoll \u6216 kqueue \u597d\u3002"),(0,r.yg)("h4",{id:"epoll"},"epoll"),(0,r.yg)("p",null,"\u662f\u4e00\u79cd\u4e8b\u4ef6\u901a\u77e5\u673a\u5236\uff0c\u6700\u65e9\u51fa\u73b0\u5728 Linux \u4e2d\u3002\u5b83\u5141\u8bb8\u8fdb\u7a0b\u76d1\u89c6\u5927\u91cf\u6587\u4ef6\u63cf\u8ff0\u7b26\u4e0a\u7684\u4e8b\u4ef6\u3002epoll \u901a\u5e38\u7528\u4e8e\u9ad8\u5e76\u53d1\u7684\u7f51\u7edc\u5e94\u7528\u7a0b\u5e8f\uff0c\u56e0\u4e3a\u5b83\u5728\u6587\u4ef6\u63cf\u8ff0\u7b26\u6570\u91cf\u975e\u5e38\u591a\u7684\u60c5\u51b5\u4e0b\u6027\u80fd\u8868\u73b0\u826f\u597d\u3002"),(0,r.yg)("h4",{id:"kqueue"},"kqueue"),(0,r.yg)("p",null,"\u662f BSD \u548c macOS \u7b49 Unix-like \u64cd\u4f5c\u7cfb\u7edf\u4e2d\u7684\u4e00\u79cd\u4e8b\u4ef6\u901a\u77e5\u673a\u5236\u3002\u5b83\u53ef\u4ee5\u76d1\u89c6\u6587\u4ef6\u63cf\u8ff0\u7b26\u3001\u8fdb\u7a0b\u3001\u4fe1\u53f7\u3001\u4ee5\u53ca\u5176\u4ed6\u5404\u79cd\u4e8b\u4ef6\u3002kqueue \u901a\u5e38\u88ab\u7528\u4e8e\u5f00\u53d1\u9ad8\u6027\u80fd\u7684\u670d\u52a1\u5668\u5e94\u7528\u548c\u7f51\u7edc\u5e94\u7528\u3002"),(0,r.yg)("h4",{id:"\u4e3a\u4ec0\u4e48-epollkqueue-\u6bd4-select-\u9ad8\u7ea7"},"\u4e3a\u4ec0\u4e48 epoll,kqueue \u6bd4 select \u9ad8\u7ea7\uff1f"),(0,r.yg)("p",null,"epoll \u548c kqueue \u6bd4 select \u9ad8\u7ea7\u7684\u539f\u56e0\u5728\u4e8e\u5b83\u4eec\u5728\u5904\u7406\u9ad8\u5e76\u53d1 I/O \u65f6\u5177\u6709\u66f4\u597d\u7684\u6027\u80fd\u548c\u6269\u5c55\u6027\u3002\u4ee5\u4e0b\u662f\u4e00\u4e9b\u4e3b\u8981\u539f\u56e0\uff1a"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"\u9ad8\u6548\u7684\u4e8b\u4ef6\u901a\u77e5\u673a\u5236\uff1aepoll \u548c kqueue \u4f7f\u7528\u4e8b\u4ef6\u901a\u77e5\u673a\u5236\uff0c\u800c\u4e0d\u662f select \u7684\u8f6e\u8be2\u65b9\u5f0f\u3002\u8fd9\u610f\u5473\u7740\u5f53\u6709 I/O \u4e8b\u4ef6\u51c6\u5907\u597d\u65f6\uff0c\u5185\u6838\u4f1a\u4e3b\u52a8\u901a\u77e5\u5e94\u7528\u7a0b\u5e8f\uff0c\u800c\u4e0d\u9700\u8981\u5e94\u7528\u7a0b\u5e8f\u4e0d\u65ad\u67e5\u8be2\u54ea\u4e9b\u6587\u4ef6\u63cf\u8ff0\u7b26\u51c6\u5907\u597d\u3002\u8fd9\u51cf\u5c11\u4e86\u4e0d\u5fc5\u8981\u7684\u4e0a\u4e0b\u6587\u5207\u6362\uff0c\u63d0\u9ad8\u4e86\u6027\u80fd\u3002"),(0,r.yg)("li",{parentName:"ul"},"\u652f\u6301\u5927\u6570\u91cf\u7684\u6587\u4ef6\u63cf\u8ff0\u7b26\uff1aselect \u5728\u5904\u7406\u5927\u91cf\u6587\u4ef6\u63cf\u8ff0\u7b26\u65f6\u6027\u80fd\u4e0b\u964d\u660e\u663e\uff0c\u56e0\u4e3a\u5b83\u4f7f\u7528\u4f4d\u56fe\u7684\u65b9\u5f0f\u6765\u8868\u793a\u6587\u4ef6\u63cf\u8ff0\u7b26\uff0c\u5f53\u6587\u4ef6\u63cf\u8ff0\u7b26\u6570\u91cf\u5f88\u5927\u65f6\uff0c\u9700\u8981\u7ef4\u62a4\u5927\u91cf\u7684\u4f4d\u56fe\uff0c\u800c\u4e14\u4f1a\u6709\u5f88\u591a\u65e0\u6548\u7684\u67e5\u8be2\u3002epoll \u548c kqueue \u4f7f\u7528\u57fa\u4e8e\u4e8b\u4ef6\u7684\u673a\u5236\uff0c\u4e0d\u4f1a\u53d7\u5230\u6587\u4ef6\u63cf\u8ff0\u7b26\u6570\u91cf\u7684\u9650\u5236\uff0c\u56e0\u6b64\u9002\u7528\u4e8e\u9ad8\u5e76\u53d1\u573a\u666f\u3002"),(0,r.yg)("li",{parentName:"ul"},"\u66f4\u5c11\u7684\u7cfb\u7edf\u8c03\u7528\uff1aselect \u9700\u8981\u9891\u7e41\u8c03\u7528\u7cfb\u7edf\u8c03\u7528\u6765\u67e5\u8be2\u6587\u4ef6\u63cf\u8ff0\u7b26\u7684\u72b6\u6001\uff0c\u8fd9\u589e\u52a0\u4e86\u7cfb\u7edf\u8c03\u7528\u7684\u5f00\u9500\u3002epoll \u548c kqueue \u7684\u4e8b\u4ef6\u901a\u77e5\u673a\u5236\u51cf\u5c11\u4e86\u4e0d\u5fc5\u8981\u7684\u7cfb\u7edf\u8c03\u7528\uff0c\u4ece\u800c\u63d0\u9ad8\u4e86\u6027\u80fd\u3002"),(0,r.yg)("li",{parentName:"ul"},"\u652f\u6301\u8fb9\u6cbf\u89e6\u53d1\uff08Edge-Triggered\uff09\uff1aepoll \u548c kqueue \u652f\u6301\u8fb9\u6cbf\u89e6\u53d1\u6a21\u5f0f\uff0c\u8fd9\u610f\u5473\u7740\u53ea\u6709\u5728\u6587\u4ef6\u63cf\u8ff0\u7b26\u72b6\u6001\u53d1\u751f\u53d8\u5316\u65f6\u624d\u4f1a\u89e6\u53d1\u4e8b\u4ef6\u901a\u77e5\uff0c\u800c\u4e0d\u662f\u5728\u6570\u636e\u53ef\u8bfb\u6216\u53ef\u5199\u65f6\u90fd\u4f1a\u89e6\u53d1\u3002\u8fd9\u4f7f\u5f97\u5e94\u7528\u7a0b\u5e8f\u53ef\u4ee5\u66f4\u7cbe\u786e\u5730\u63a7\u5236\u4e8b\u4ef6\u5904\u7406\uff0c\u51cf\u5c11\u4e86\u4e0d\u5fc5\u8981\u7684\u5904\u7406\u5f00\u9500\u3002"),(0,r.yg)("li",{parentName:"ul"},"\u66f4\u7075\u6d3b\u7684\u4e8b\u4ef6\u7ba1\u7406\uff1aepoll \u548c kqueue \u5141\u8bb8\u5e94\u7528\u7a0b\u5e8f\u4e3a\u6bcf\u4e2a\u6587\u4ef6\u63cf\u8ff0\u7b26\u8bbe\u7f6e\u4e0d\u540c\u7684\u4e8b\u4ef6\u7c7b\u578b\uff0c\u800c select \u4e2d\u6240\u6709\u6587\u4ef6\u63cf\u8ff0\u7b26\u53ea\u80fd\u76d1\u89c6\u76f8\u540c\u7c7b\u578b\u7684\u4e8b\u4ef6\u3002\u8fd9\u4f7f\u5f97 epoll \u548c kqueue \u66f4\u7075\u6d3b\uff0c\u9002\u7528\u4e8e\u66f4\u591a\u7684\u5e94\u7528\u573a\u666f\u3002")),(0,r.yg)("p",null,"\u603b\u7684\u6765\u8bf4\uff0cepoll \u548c kqueue \u5728\u9ad8\u5e76\u53d1 I/O \u573a\u666f\u4e2d\u8868\u73b0\u66f4\u51fa\u8272\uff0c\u63d0\u4f9b\u66f4\u9ad8\u7684\u6027\u80fd\u548c\u66f4\u597d\u7684\u53ef\u6269\u5c55\u6027\uff0c\u56e0\u6b64\u88ab\u8ba4\u4e3a\u6bd4 select \u9ad8\u7ea7\u3002\u4f46\u9700\u8981\u6ce8\u610f\u7684\u662f\uff0cepoll \u9002\u7528\u4e8e Linux \u7cfb\u7edf\uff0c\u800c kqueue \u9002\u7528\u4e8e BSD \u7cfb\u7edf\uff08\u5982 macOS \u548c FreeBSD\uff09\uff0c\u56e0\u6b64\u9009\u62e9\u54ea\u79cd\u53d6\u51b3\u4e8e\u5e94\u7528\u7a0b\u5e8f\u7684\u90e8\u7f72\u73af\u5883\u3002"))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4116],{5680:(e,l,t)=>{t.d(l,{xA:()=>s,yg:()=>d});var n=t(6540);function r(e,l,t){return l in e?Object.defineProperty(e,l,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[l]=t,e}function u(e,l){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);l&&(n=n.filter((function(l){return Object.getOwnPropertyDescriptor(e,l).enumerable}))),t.push.apply(t,n)}return t}function o(e){for(var l=1;l=0||(r[t]=e[t]);return r}(e,l);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var p=n.createContext({}),a=function(e){var l=n.useContext(p),t=l;return e&&(t="function"==typeof e?e(l):o(o({},l),e)),t},s=function(e){var l=a(e.components);return n.createElement(p.Provider,{value:l},e.children)},c="mdxType",y={inlineCode:"code",wrapper:function(e){var l=e.children;return n.createElement(n.Fragment,{},l)}},O=n.forwardRef((function(e,l){var t=e.components,r=e.mdxType,u=e.originalType,p=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),c=a(t),O=r,d=c["".concat(p,".").concat(O)]||c[O]||y[O]||u;return t?n.createElement(d,o(o({ref:l},s),{},{components:t})):n.createElement(d,o({ref:l},s))}));function d(e,l){var t=arguments,r=l&&l.mdxType;if("string"==typeof e||r){var u=t.length,o=new Array(u);o[0]=O;var i={};for(var p in l)hasOwnProperty.call(l,p)&&(i[p]=l[p]);i.originalType=e,i[c]="string"==typeof e?e:r,o[1]=i;for(var a=2;a{t.r(l),t.d(l,{assets:()=>p,contentTitle:()=>o,default:()=>y,frontMatter:()=>u,metadata:()=>i,toc:()=>a});var n=t(8168),r=(t(6540),t(5680));const u={},o="\u64cd\u4f5c\u7cfb\u7edf IO \u77e5\u8bc6",i={unversionedId:"study/system/IO",id:"study/system/IO",title:"\u64cd\u4f5c\u7cfb\u7edf IO \u77e5\u8bc6",description:"I/O\uff08Input/Output\uff09\u6a21\u578b\u662f\u8ba1\u7b97\u673a\u79d1\u5b66\u4e2d\u7684\u4e00\u4e2a\u5173\u952e\u6982\u5ff5\uff0c\u5b83\u6d89\u53ca\u5230\u5982\u4f55\u8fdb\u884c\u8f93\u5165\u548c\u8f93\u51fa\u64cd\u4f5c\uff0c\u800c\u8fd9\u5728\u8ba1\u7b97\u673a\u5e94\u7528\u4e2d\u662f\u4e0d\u53ef\u6216\u7f3a\u7684\u4e00\u90e8\u5206\u3002\u5728\u4e0d\u540c\u7684\u5e94\u7528\u573a\u666f\u4e0b\uff0c\u9009\u62e9\u6b63\u786e\u7684 I/O \u6a21\u578b\u662f\u81f3\u5173\u91cd\u8981\u7684\uff0c\u56e0\u4e3a\u5b83\u4f1a\u5f71\u54cd\u5230\u5e94\u7528\u7a0b\u5e8f\u7684\u6027\u80fd\u548c\u54cd\u5e94\u6027\u3002",source:"@site/docs/study/system/IO.md",sourceDirName:"study/system",slug:"/study/system/IO",permalink:"/docs/study/system/IO",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"CPU\u7ebf\u7a0b\u5e76\u53d1",permalink:"/docs/study/system/CPU\u7ebf\u7a0b\u5e76\u53d1"},next:{title:"Open\u6b27\u62c9",permalink:"/docs/study/system/Open\u6b27\u62c9"}},p={},a=[{value:"\u963b\u585e IO",id:"\u963b\u585e-io",level:3},{value:"\u975e\u963b\u585e IO",id:"\u975e\u963b\u585e-io",level:3},{value:"\u4fe1\u53f7\u9a71\u52a8 I/O",id:"\u4fe1\u53f7\u9a71\u52a8-io",level:4},{value:"\u5f02\u6b65 I/O",id:"\u5f02\u6b65-io",level:4},{value:"IO \u591a\u8def\u590d\u7528\u51fd\u6570",id:"io-\u591a\u8def\u590d\u7528\u51fd\u6570",level:3},{value:"select",id:"select",level:4},{value:"poll",id:"poll",level:4},{value:"epoll",id:"epoll",level:4},{value:"kqueue",id:"kqueue",level:4},{value:"\u4e3a\u4ec0\u4e48 epoll,kqueue \u6bd4 select \u9ad8\u7ea7\uff1f",id:"\u4e3a\u4ec0\u4e48-epollkqueue-\u6bd4-select-\u9ad8\u7ea7",level:4}],s={toc:a},c="wrapper";function y(e){let{components:l,...t}=e;return(0,r.yg)(c,(0,n.A)({},s,t,{components:l,mdxType:"MDXLayout"}),(0,r.yg)("h1",{id:"\u64cd\u4f5c\u7cfb\u7edf-io-\u77e5\u8bc6"},"\u64cd\u4f5c\u7cfb\u7edf IO \u77e5\u8bc6"),(0,r.yg)("p",null,"I/O\uff08Input/Output\uff09\u6a21\u578b\u662f\u8ba1\u7b97\u673a\u79d1\u5b66\u4e2d\u7684\u4e00\u4e2a\u5173\u952e\u6982\u5ff5\uff0c\u5b83\u6d89\u53ca\u5230\u5982\u4f55\u8fdb\u884c\u8f93\u5165\u548c\u8f93\u51fa\u64cd\u4f5c\uff0c\u800c\u8fd9\u5728\u8ba1\u7b97\u673a\u5e94\u7528\u4e2d\u662f\u4e0d\u53ef\u6216\u7f3a\u7684\u4e00\u90e8\u5206\u3002\u5728\u4e0d\u540c\u7684\u5e94\u7528\u573a\u666f\u4e0b\uff0c\u9009\u62e9\u6b63\u786e\u7684 I/O \u6a21\u578b\u662f\u81f3\u5173\u91cd\u8981\u7684\uff0c\u56e0\u4e3a\u5b83\u4f1a\u5f71\u54cd\u5230\u5e94\u7528\u7a0b\u5e8f\u7684\u6027\u80fd\u548c\u54cd\u5e94\u6027\u3002"),(0,r.yg)("h3",{id:"\u963b\u585e-io"},"\u963b\u585e IO"),(0,r.yg)("p",null,"\u963b\u585e I/O \u6a21\u578b\u4e0e\u540c\u6b65 I/O \u6a21\u578b\u76f8\u4f3c\uff0c\u5b83\u4e5f\u9700\u8981\u5e94\u7528\u7a0b\u5e8f\u7b49\u5f85 I/O \u64cd\u4f5c\u5b8c\u6210\u3002\u963b\u585e I/O \u9002\u7528\u4e8e\u7b80\u5355\u7684\u5e94\u7528\uff0c\u4f46\u53ef\u80fd\u5bfc\u81f4\u6027\u80fd\u95ee\u9898\uff0c\u56e0\u4e3a\u5e94\u7528\u7a0b\u5e8f\u4f1a\u5728\u7b49\u5f85\u64cd\u4f5c\u5b8c\u6210\u65f6\u88ab\u963b\u585e\u3002"),(0,r.yg)("h3",{id:"\u975e\u963b\u585e-io"},"\u975e\u963b\u585e IO"),(0,r.yg)("p",null,"\u975e\u963b\u585e I/O \u6a21\u578b\u5141\u8bb8\u5e94\u7528\u7a0b\u5e8f\u53d1\u8d77 I/O \u64cd\u4f5c\u540e\u7ee7\u7eed\u6267\u884c\u5176\u4ed6\u4efb\u52a1\uff0c\u800c\u4e0d\u5fc5\u7b49\u5f85\u64cd\u4f5c\u5b8c\u6210\u3002\u8fd9\u79cd\u6a21\u578b\u9002\u7528\u4e8e\u9700\u8981\u540c\u65f6\u5904\u7406\u591a\u4e2a\u901a\u9053\u7684\u5e94\u7528\u3002"),(0,r.yg)("p",null,'\u53e6\u4e00\u4e2a\u91cd\u8981\u7684\u6982\u5ff5\u662f"I/O \u591a\u8def\u590d\u7528"\uff08I/O Multiplexing\uff09\u3002I/O \u591a\u8def\u590d\u7528\u662f\u4e00\u79cd\u9ad8\u6548\u5904\u7406\u591a\u4e2a I/O \u64cd\u4f5c\u7684\u6a21\u578b\uff0c\u5b83\u5141\u8bb8\u5e94\u7528\u7a0b\u5e8f\u540c\u65f6\u76d1\u89c6\u591a\u4e2a\u6587\u4ef6\u63cf\u8ff0\u7b26\uff08sockets\u3001\u6587\u4ef6\u3001\u7ba1\u9053\u7b49\uff09\u4ee5\u68c0\u6d4b\u5b83\u4eec\u662f\u5426\u51c6\u5907\u597d\u8fdb\u884c I/O \u64cd\u4f5c\u3002\u8fd9\u53ef\u4ee5\u6709\u6548\u5730\u51cf\u5c11\u7ebf\u7a0b\u6570\u91cf\uff0c\u4ece\u800c\u63d0\u9ad8\u6027\u80fd\u548c\u8d44\u6e90\u5229\u7528\u7387\u3002\u5728 Java \u4e2d\uff0cI/O \u591a\u8def\u590d\u7528\u901a\u5e38\u901a\u8fc7 java.nio.channels.Selector \u7c7b\u6765\u5b9e\u73b0\u3002'),(0,r.yg)("p",null,'I/O \u591a\u8def\u590d\u7528\u975e\u5e38\u9002\u5408\u9700\u8981\u540c\u65f6\u5904\u7406\u591a\u4e2a\u901a\u9053\u7684\u5e94\u7528\uff0c\u5982\u9ad8\u6027\u80fd\u7f51\u7edc\u670d\u52a1\u5668\u3002\u5b83\u53ef\u4ee5\u51cf\u5c11\u7ebf\u7a0b\u6570\u91cf\uff0c\u63d0\u9ad8\u5e94\u7528\u7a0b\u5e8f\u7684\u6027\u80fd\u548c\u53ef\u4f38\u7f29\u6027\u3002\u5728\u9009\u62e9 I/O \u6a21\u578b\u65f6\uff0c\u5e94\u8be5\u8003\u8651\u5e94\u7528\u7a0b\u5e8f\u7684\u5177\u4f53\u9700\u6c42\u548c\u6027\u80fd\u8981\u6c42\uff0cI/O \u591a\u8def\u590d\u7528\u662f\u4e00\u4e2a\u91cd\u8981\u7684\u9009\u62e9\u4e4b\u4e00\u3002\u8fd8\u6709\u4e24\u4e2a\u91cd\u8981\u7684\u6982\u5ff5\u662f"\u4fe1\u53f7\u9a71\u52a8 I/O"\uff08Signal Driven I/O\uff09\u548c"\u5f02\u6b65 I/O"\u3002\u8fd9\u4e24\u79cd I/O \u6a21\u578b\u5728\u67d0\u4e9b\u60c5\u51b5\u4e0b\u53ef\u4ee5\u63d0\u4f9b\u66f4\u9ad8\u7684\u6027\u80fd\u548c\u6548\u7387\u3002'),(0,r.yg)("h4",{id:"\u4fe1\u53f7\u9a71\u52a8-io"},"\u4fe1\u53f7\u9a71\u52a8 I/O"),(0,r.yg)("p",null,"\u4fe1\u53f7\u9a71\u52a8 I/O \u662f\u4e00\u79cd\u975e\u963b\u585e I/O \u7684\u53d8\u4f53\uff0c\u5b83\u4f7f\u7528\u4fe1\u53f7\u901a\u77e5\u5e94\u7528\u7a0b\u5e8f\u6587\u4ef6\u63cf\u8ff0\u7b26\u5df2\u51c6\u5907\u597d\u8fdb\u884c I/O \u64cd\u4f5c\u3002\u8fd9\u79cd\u6a21\u578b\u5728\u7c7b Unix \u7cfb\u7edf\u4e2d\u975e\u5e38\u5e38\u89c1\uff0c\u901a\u5e38\u4e0e\u5f02\u6b65 I/O \u7ed3\u5408\u4f7f\u7528\u3002\u5728 Java \u4e2d\uff0c\u6211\u4eec\u53ef\u4ee5\u4f7f\u7528 java.nio.channels.AsynchronousChannel \u6765\u5b9e\u73b0\u4fe1\u53f7\u9a71\u52a8 I/O\u3002"),(0,r.yg)("p",null,"\u56de\u8c03\uff1b"),(0,r.yg)("h4",{id:"\u5f02\u6b65-io"},"\u5f02\u6b65 I/O"),(0,r.yg)("p",null,'\u5f02\u6b65 I/O \u6a21\u578b\u4e5f\u79f0\u4e3a"\u771f\u6b63\u7684\u5f02\u6b65 I/O"\uff0c\u5b83\u5141\u8bb8\u5e94\u7528\u7a0b\u5e8f\u53d1\u8d77 I/O \u64cd\u4f5c\u540e\u7ee7\u7eed\u6267\u884c\u5176\u4ed6\u4efb\u52a1\uff0c\u800c\u4e0d\u9700\u8981\u7b49\u5f85\u64cd\u4f5c\u5b8c\u6210\u3002\u5f02\u6b65 I/O \u4e0e\u4fe1\u53f7\u9a71\u52a8 I/O \u4e0d\u540c\uff0c\u56e0\u4e3a\u5b83\u4e0d\u4f1a\u4f7f\u7528\u56de\u8c03\u51fd\u6570\uff0c\u800c\u662f\u4f7f\u7528\u4e8b\u4ef6\u9a71\u52a8\u7684\u65b9\u5f0f\u6765\u901a\u77e5 I/O \u64cd\u4f5c\u7684\u5b8c\u6210\u3002'),(0,r.yg)("h3",{id:"io-\u591a\u8def\u590d\u7528\u51fd\u6570"},"IO \u591a\u8def\u590d\u7528\u51fd\u6570"),(0,r.yg)("h4",{id:"select"},"select"),(0,r.yg)("p",null,"\u53ef\u5728\u4e0d\u540c\u5e73\u53f0\uff08\u5305\u62ec Unix\u3001Linux \u548c Windows\uff09\u4e0a\u4f7f\u7528\u3002\u7531\u4e8e\u5176\u53ef\u79fb\u690d\u6027\uff0cselect \u662f\u4e00\u79cd\u901a\u7528\u7684 I/O \u591a\u8def\u590d\u7528\u65b9\u6cd5\u3002"),(0,r.yg)("h4",{id:"poll"},"poll"),(0,r.yg)("p",null,"poll \u4e5f\u662f\u76f8\u5bf9\u53ef\u79fb\u690d\u7684\uff0c\u4f46\u5e76\u975e\u5728\u6240\u6709\u64cd\u4f5c\u7cfb\u7edf\u4e0a\u90fd\u5f97\u5230\u5e7f\u6cdb\u652f\u6301\u3002\u5b83\u5728\u5927\u591a\u6570 Unix \u7cfb\u7edf\u4e0a\u53ef\u7528\uff0c\u4f46\u5728 Windows \u4e0a\u7684\u652f\u6301\u8f83\u5f31\u3002"),(0,r.yg)("p",null,"\u603b\u7684\u6765\u8bf4\uff0cpoll \u5728\u6027\u80fd\u548c\u53ef\u8bfb\u6027\u65b9\u9762\u76f8\u5bf9\u4f18\u4e8e select\uff0c\u7279\u522b\u662f\u5728\u5904\u7406\u5927\u91cf\u6587\u4ef6\u63cf\u8ff0\u7b26\u65f6\u3002\u4f46\u9009\u62e9\u4f7f\u7528\u54ea\u79cd\u65b9\u6cd5\u8fd8\u53d6\u51b3\u4e8e\u5e94\u7528\u7a0b\u5e8f\u7684\u9700\u6c42\u548c\u76ee\u6807\u5e73\u53f0\u7684\u652f\u6301\u3002\u5728\u5927\u591a\u6570\u60c5\u51b5\u4e0b\uff0cepoll \u548c kqueue \u4e5f\u662f\u66f4\u9ad8\u6027\u80fd\u7684\u66ff\u4ee3\u65b9\u6848\uff0c\u7279\u522b\u9002\u7528\u4e8e\u5927\u89c4\u6a21\u5e76\u53d1\u7684\u5e94\u7528\u3002"),(0,r.yg)("p",null,"\u662f\u4e00\u79cd\u6700\u65e9\u51fa\u73b0\u5728 Unix \u7cfb\u7edf\u4e2d\u7684\u591a\u8def\u590d\u7528\u673a\u5236\u3002poll \u7b49\u5f85\u591a\u4e2a\u6587\u4ef6\u63cf\u8ff0\u7b26\u4e2d\u7684\u4e00\u4e2a\u6216\u591a\u4e2a\u53d8\u4e3a\u53ef\u8bfb\uff0c\u53ef\u5199\u6216\u5f02\u5e38\u3002\u4f46 poll \u5728\u5927\u91cf\u6587\u4ef6\u63cf\u8ff0\u7b26\u7684\u60c5\u51b5\u4e0b\u6027\u80fd\u53ef\u80fd\u4e0d\u5982 epoll \u6216 kqueue \u597d\u3002"),(0,r.yg)("h4",{id:"epoll"},"epoll"),(0,r.yg)("p",null,"\u662f\u4e00\u79cd\u4e8b\u4ef6\u901a\u77e5\u673a\u5236\uff0c\u6700\u65e9\u51fa\u73b0\u5728 Linux \u4e2d\u3002\u5b83\u5141\u8bb8\u8fdb\u7a0b\u76d1\u89c6\u5927\u91cf\u6587\u4ef6\u63cf\u8ff0\u7b26\u4e0a\u7684\u4e8b\u4ef6\u3002epoll \u901a\u5e38\u7528\u4e8e\u9ad8\u5e76\u53d1\u7684\u7f51\u7edc\u5e94\u7528\u7a0b\u5e8f\uff0c\u56e0\u4e3a\u5b83\u5728\u6587\u4ef6\u63cf\u8ff0\u7b26\u6570\u91cf\u975e\u5e38\u591a\u7684\u60c5\u51b5\u4e0b\u6027\u80fd\u8868\u73b0\u826f\u597d\u3002"),(0,r.yg)("h4",{id:"kqueue"},"kqueue"),(0,r.yg)("p",null,"\u662f BSD \u548c macOS \u7b49 Unix-like \u64cd\u4f5c\u7cfb\u7edf\u4e2d\u7684\u4e00\u79cd\u4e8b\u4ef6\u901a\u77e5\u673a\u5236\u3002\u5b83\u53ef\u4ee5\u76d1\u89c6\u6587\u4ef6\u63cf\u8ff0\u7b26\u3001\u8fdb\u7a0b\u3001\u4fe1\u53f7\u3001\u4ee5\u53ca\u5176\u4ed6\u5404\u79cd\u4e8b\u4ef6\u3002kqueue \u901a\u5e38\u88ab\u7528\u4e8e\u5f00\u53d1\u9ad8\u6027\u80fd\u7684\u670d\u52a1\u5668\u5e94\u7528\u548c\u7f51\u7edc\u5e94\u7528\u3002"),(0,r.yg)("h4",{id:"\u4e3a\u4ec0\u4e48-epollkqueue-\u6bd4-select-\u9ad8\u7ea7"},"\u4e3a\u4ec0\u4e48 epoll,kqueue \u6bd4 select \u9ad8\u7ea7\uff1f"),(0,r.yg)("p",null,"epoll \u548c kqueue \u6bd4 select \u9ad8\u7ea7\u7684\u539f\u56e0\u5728\u4e8e\u5b83\u4eec\u5728\u5904\u7406\u9ad8\u5e76\u53d1 I/O \u65f6\u5177\u6709\u66f4\u597d\u7684\u6027\u80fd\u548c\u6269\u5c55\u6027\u3002\u4ee5\u4e0b\u662f\u4e00\u4e9b\u4e3b\u8981\u539f\u56e0\uff1a"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"\u9ad8\u6548\u7684\u4e8b\u4ef6\u901a\u77e5\u673a\u5236\uff1aepoll \u548c kqueue \u4f7f\u7528\u4e8b\u4ef6\u901a\u77e5\u673a\u5236\uff0c\u800c\u4e0d\u662f select \u7684\u8f6e\u8be2\u65b9\u5f0f\u3002\u8fd9\u610f\u5473\u7740\u5f53\u6709 I/O \u4e8b\u4ef6\u51c6\u5907\u597d\u65f6\uff0c\u5185\u6838\u4f1a\u4e3b\u52a8\u901a\u77e5\u5e94\u7528\u7a0b\u5e8f\uff0c\u800c\u4e0d\u9700\u8981\u5e94\u7528\u7a0b\u5e8f\u4e0d\u65ad\u67e5\u8be2\u54ea\u4e9b\u6587\u4ef6\u63cf\u8ff0\u7b26\u51c6\u5907\u597d\u3002\u8fd9\u51cf\u5c11\u4e86\u4e0d\u5fc5\u8981\u7684\u4e0a\u4e0b\u6587\u5207\u6362\uff0c\u63d0\u9ad8\u4e86\u6027\u80fd\u3002"),(0,r.yg)("li",{parentName:"ul"},"\u652f\u6301\u5927\u6570\u91cf\u7684\u6587\u4ef6\u63cf\u8ff0\u7b26\uff1aselect \u5728\u5904\u7406\u5927\u91cf\u6587\u4ef6\u63cf\u8ff0\u7b26\u65f6\u6027\u80fd\u4e0b\u964d\u660e\u663e\uff0c\u56e0\u4e3a\u5b83\u4f7f\u7528\u4f4d\u56fe\u7684\u65b9\u5f0f\u6765\u8868\u793a\u6587\u4ef6\u63cf\u8ff0\u7b26\uff0c\u5f53\u6587\u4ef6\u63cf\u8ff0\u7b26\u6570\u91cf\u5f88\u5927\u65f6\uff0c\u9700\u8981\u7ef4\u62a4\u5927\u91cf\u7684\u4f4d\u56fe\uff0c\u800c\u4e14\u4f1a\u6709\u5f88\u591a\u65e0\u6548\u7684\u67e5\u8be2\u3002epoll \u548c kqueue \u4f7f\u7528\u57fa\u4e8e\u4e8b\u4ef6\u7684\u673a\u5236\uff0c\u4e0d\u4f1a\u53d7\u5230\u6587\u4ef6\u63cf\u8ff0\u7b26\u6570\u91cf\u7684\u9650\u5236\uff0c\u56e0\u6b64\u9002\u7528\u4e8e\u9ad8\u5e76\u53d1\u573a\u666f\u3002"),(0,r.yg)("li",{parentName:"ul"},"\u66f4\u5c11\u7684\u7cfb\u7edf\u8c03\u7528\uff1aselect \u9700\u8981\u9891\u7e41\u8c03\u7528\u7cfb\u7edf\u8c03\u7528\u6765\u67e5\u8be2\u6587\u4ef6\u63cf\u8ff0\u7b26\u7684\u72b6\u6001\uff0c\u8fd9\u589e\u52a0\u4e86\u7cfb\u7edf\u8c03\u7528\u7684\u5f00\u9500\u3002epoll \u548c kqueue \u7684\u4e8b\u4ef6\u901a\u77e5\u673a\u5236\u51cf\u5c11\u4e86\u4e0d\u5fc5\u8981\u7684\u7cfb\u7edf\u8c03\u7528\uff0c\u4ece\u800c\u63d0\u9ad8\u4e86\u6027\u80fd\u3002"),(0,r.yg)("li",{parentName:"ul"},"\u652f\u6301\u8fb9\u6cbf\u89e6\u53d1\uff08Edge-Triggered\uff09\uff1aepoll \u548c kqueue \u652f\u6301\u8fb9\u6cbf\u89e6\u53d1\u6a21\u5f0f\uff0c\u8fd9\u610f\u5473\u7740\u53ea\u6709\u5728\u6587\u4ef6\u63cf\u8ff0\u7b26\u72b6\u6001\u53d1\u751f\u53d8\u5316\u65f6\u624d\u4f1a\u89e6\u53d1\u4e8b\u4ef6\u901a\u77e5\uff0c\u800c\u4e0d\u662f\u5728\u6570\u636e\u53ef\u8bfb\u6216\u53ef\u5199\u65f6\u90fd\u4f1a\u89e6\u53d1\u3002\u8fd9\u4f7f\u5f97\u5e94\u7528\u7a0b\u5e8f\u53ef\u4ee5\u66f4\u7cbe\u786e\u5730\u63a7\u5236\u4e8b\u4ef6\u5904\u7406\uff0c\u51cf\u5c11\u4e86\u4e0d\u5fc5\u8981\u7684\u5904\u7406\u5f00\u9500\u3002"),(0,r.yg)("li",{parentName:"ul"},"\u66f4\u7075\u6d3b\u7684\u4e8b\u4ef6\u7ba1\u7406\uff1aepoll \u548c kqueue \u5141\u8bb8\u5e94\u7528\u7a0b\u5e8f\u4e3a\u6bcf\u4e2a\u6587\u4ef6\u63cf\u8ff0\u7b26\u8bbe\u7f6e\u4e0d\u540c\u7684\u4e8b\u4ef6\u7c7b\u578b\uff0c\u800c select \u4e2d\u6240\u6709\u6587\u4ef6\u63cf\u8ff0\u7b26\u53ea\u80fd\u76d1\u89c6\u76f8\u540c\u7c7b\u578b\u7684\u4e8b\u4ef6\u3002\u8fd9\u4f7f\u5f97 epoll \u548c kqueue \u66f4\u7075\u6d3b\uff0c\u9002\u7528\u4e8e\u66f4\u591a\u7684\u5e94\u7528\u573a\u666f\u3002")),(0,r.yg)("p",null,"\u603b\u7684\u6765\u8bf4\uff0cepoll \u548c kqueue \u5728\u9ad8\u5e76\u53d1 I/O \u573a\u666f\u4e2d\u8868\u73b0\u66f4\u51fa\u8272\uff0c\u63d0\u4f9b\u66f4\u9ad8\u7684\u6027\u80fd\u548c\u66f4\u597d\u7684\u53ef\u6269\u5c55\u6027\uff0c\u56e0\u6b64\u88ab\u8ba4\u4e3a\u6bd4 select \u9ad8\u7ea7\u3002\u4f46\u9700\u8981\u6ce8\u610f\u7684\u662f\uff0cepoll \u9002\u7528\u4e8e Linux \u7cfb\u7edf\uff0c\u800c kqueue \u9002\u7528\u4e8e BSD \u7cfb\u7edf\uff08\u5982 macOS \u548c FreeBSD\uff09\uff0c\u56e0\u6b64\u9009\u62e9\u54ea\u79cd\u53d6\u51b3\u4e8e\u5e94\u7528\u7a0b\u5e8f\u7684\u90e8\u7f72\u73af\u5883\u3002"))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8dc1e402.fa5cf5a8.js b/assets/js/8dc1e402.02e6634b.js similarity index 99% rename from assets/js/8dc1e402.fa5cf5a8.js rename to assets/js/8dc1e402.02e6634b.js index 309e76707..472667f9b 100644 --- a/assets/js/8dc1e402.fa5cf5a8.js +++ b/assets/js/8dc1e402.02e6634b.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5902],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>m});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),i=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},p=function(e){var t=i(e.components);return n.createElement(c.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,p=u(e,["components","mdxType","originalType","parentName"]),s=i(r),d=a,m=s["".concat(c,".").concat(d)]||s[d]||y[d]||o;return r?n.createElement(m,l(l({ref:t},p),{},{components:r})):n.createElement(m,l({ref:t},p))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=d;var u={};for(var c in t)hasOwnProperty.call(t,c)&&(u[c]=t[c]);u.originalType=e,u[s]="string"==typeof e?e:a,l[1]=u;for(var i=2;i{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>y,frontMatter:()=>o,metadata:()=>u,toc:()=>i});var n=r(8168),a=(r(6540),r(5680));const o={},l="Oauth2",u={unversionedId:"study/back/\u4fe1\u606f\u5b89\u5168/Oauth2",id:"study/back/\u4fe1\u606f\u5b89\u5168/Oauth2",title:"Oauth2",description:"Oauth2 \u662f\u76ee\u524d\u6700\u6d41\u884c\u7684\u6388\u6743\u673a\u5236\uff0c\u7528\u6765\u6388\u6743\u7b2c\u4e09\u65b9\u5e94\u7528\uff0c\u83b7\u53d6\u7528\u6237\u6570\u636e\u3002",source:"@site/docs/study/back/\u4fe1\u606f\u5b89\u5168/Oauth2.md",sourceDirName:"study/back/\u4fe1\u606f\u5b89\u5168",slug:"/study/back/\u4fe1\u606f\u5b89\u5168/Oauth2",permalink:"/docs/study/back/\u4fe1\u606f\u5b89\u5168/Oauth2",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u5fae\u670d\u52a1",permalink:"/docs/study/back/springcloud/\u5fae\u670d\u52a1"},next:{title:"\u8ba4\u8bc1",permalink:"/docs/study/back/\u4fe1\u606f\u5b89\u5168/\u8ba4\u8bc1"}},c={},i=[{value:"Oauth2 \u56db\u79cd\u8ba4\u8bc1\u65b9\u5f0f",id:"oauth2-\u56db\u79cd\u8ba4\u8bc1\u65b9\u5f0f",level:3},{value:"\u53c2\u8003\u6587\u6863",id:"\u53c2\u8003\u6587\u6863",level:3}],p={toc:i},s="wrapper";function y(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"oauth2"},"Oauth2"),(0,a.yg)("p",null,"Oauth2 \u662f\u76ee\u524d\u6700\u6d41\u884c\u7684\u6388\u6743\u673a\u5236\uff0c\u7528\u6765\u6388\u6743\u7b2c\u4e09\u65b9\u5e94\u7528\uff0c\u83b7\u53d6\u7528\u6237\u6570\u636e\u3002"),(0,a.yg)("p",null,"Oauth2 \u6709\u56db\u79cd\u89d2\u8272\uff0c\u4e00\u4e2a\u662f\u5ba2\u6237\u7aef\uff0c\u4e00\u4e2a\u662f\u8d44\u6e90\u6240\u6709\u8005\uff0c\u4e00\u4e2a\u662f\u6388\u6743\u670d\u52a1\u5668\uff0c\u8fd8\u6709\u4e00\u4e2a\u662f\u8d44\u6e90\u670d\u52a1\u5668\u3002"),(0,a.yg)("h3",{id:"oauth2-\u56db\u79cd\u8ba4\u8bc1\u65b9\u5f0f"},"Oauth2 \u56db\u79cd\u8ba4\u8bc1\u65b9\u5f0f"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u6388\u6743\u7801\u6a21\u5f0f\uff08authorization code\uff09\uff1a\u8981\u6388\u6743\uff0c\u540c\u610f\uff0c\u7ed9\u6388\u6743\u7801\uff0c\u62ff\u6388\u6743\u7801\u8981\u4ee4\u724c"),(0,a.yg)("li",{parentName:"ul"},"\u7b80\u5316\u6a21\u5f0f\uff08\u9690\u85cf\u6a21\u5f0f\uff09\uff08implicit\uff09\uff1a\u8981\u6388\u6743\uff0c\u540c\u610f\uff0c\u76f4\u63a5\u62ff\u4ee4\u724c\uff0c",(0,a.yg)("strong",{parentName:"li"},(0,a.yg)("em",{parentName:"strong"},"\u4e00\u822c\u662f\u7b2c\u4e09\u65b9\u5e94\u7528\u53ea\u6709\u524d\u7aef"))),(0,a.yg)("li",{parentName:"ul"},"\u5bc6\u7801\u6a21\u5f0f\uff08resource owner password credentials\uff09\uff0c\u8981\u6388\u6743\uff0c\u76f4\u63a5\u7ed9\u7528\u6237\u540d\u548c\u5bc6\u7801\uff0c",(0,a.yg)("strong",{parentName:"li"},(0,a.yg)("em",{parentName:"strong"},"\u53ca\u5176\u4fe1\u4efb\uff0c\u5f88\u5c11\u7528\u5230"))),(0,a.yg)("li",{parentName:"ul"},"\u5ba2\u6237\u7aef\u6a21\u5f0f\uff08client credentials\uff09\uff0c\u8981\u6388\u6743\uff0c\u76f4\u63a5\u7ed9\u4ee4\u724c\uff1b",(0,a.yg)("strong",{parentName:"li"},(0,a.yg)("em",{parentName:"strong"},"\u4e00\u822c\u662f\u7b2c\u4e09\u65b9\u5e94\u7528\u7684\u540e\u7aef\uff0c\u540c\u65f6\u652f\u6301\u5f88\u591a\u81ea\u5df1\u7684\u7528\u6237")))),(0,a.yg)("p",null,"\u4e0d\u7ba1\u662f\u54ea\u4e00\u79cd\u6388\u6743\u65b9\u5f0f\uff0c\u7b2c\u4e09\u65b9\u5e94\u7528\u7533\u8bf7\u4ee4\u724c\u4e4b\u524d\uff0c\u90fd\u5fc5\u987b\u5148\u5230\u7cfb\u7edf\u5907\u6848\uff0c\u8bf4\u660e\u81ea\u5df1\u7684\u8eab\u4efd\uff0c\u7136\u540e\u62ff\u5230\u4e24\u4e2a\u8eab\u4efd\u7684\u8bc6\u522b\u7801\uff0c\u5ba2\u6237\u7aef\u548c\u5ba2\u6237\u7aef\u5bc6\u94a5\uff0c\u8fd9\u662f\u9632\u6b62\u5bc6\u94a5\u88ab\u6ee5\u7528\uff0c\u6ca1\u6709\u5907\u6848\u8fc7\u7684\u7b2c\u4e09\u65b9\u7684\u5e94\u7528\uff0c\u662f\u4e0d\u4f1a\u62ff\u5230\u4ee4\u724c\u7684"),(0,a.yg)("h3",{id:"\u53c2\u8003\u6587\u6863"},"\u53c2\u8003\u6587\u6863"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://blog.csdn.net/m0_53151031/article/details/123737336"},"CSDN-\u524d\u8a00\u6280\u672f\u4e4b Oauth2 \u5168\u65b9\u9762\u4ecb\u7ecd"))))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5902],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>m});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),i=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},p=function(e){var t=i(e.components);return n.createElement(c.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,p=u(e,["components","mdxType","originalType","parentName"]),s=i(r),d=a,m=s["".concat(c,".").concat(d)]||s[d]||y[d]||o;return r?n.createElement(m,l(l({ref:t},p),{},{components:r})):n.createElement(m,l({ref:t},p))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=d;var u={};for(var c in t)hasOwnProperty.call(t,c)&&(u[c]=t[c]);u.originalType=e,u[s]="string"==typeof e?e:a,l[1]=u;for(var i=2;i{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>y,frontMatter:()=>o,metadata:()=>u,toc:()=>i});var n=r(8168),a=(r(6540),r(5680));const o={},l="Oauth2",u={unversionedId:"study/back/\u4fe1\u606f\u5b89\u5168/Oauth2",id:"study/back/\u4fe1\u606f\u5b89\u5168/Oauth2",title:"Oauth2",description:"Oauth2 \u662f\u76ee\u524d\u6700\u6d41\u884c\u7684\u6388\u6743\u673a\u5236\uff0c\u7528\u6765\u6388\u6743\u7b2c\u4e09\u65b9\u5e94\u7528\uff0c\u83b7\u53d6\u7528\u6237\u6570\u636e\u3002",source:"@site/docs/study/back/\u4fe1\u606f\u5b89\u5168/Oauth2.md",sourceDirName:"study/back/\u4fe1\u606f\u5b89\u5168",slug:"/study/back/\u4fe1\u606f\u5b89\u5168/Oauth2",permalink:"/docs/study/back/\u4fe1\u606f\u5b89\u5168/Oauth2",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u5fae\u670d\u52a1",permalink:"/docs/study/back/springcloud/\u5fae\u670d\u52a1"},next:{title:"\u8ba4\u8bc1",permalink:"/docs/study/back/\u4fe1\u606f\u5b89\u5168/\u8ba4\u8bc1"}},c={},i=[{value:"Oauth2 \u56db\u79cd\u8ba4\u8bc1\u65b9\u5f0f",id:"oauth2-\u56db\u79cd\u8ba4\u8bc1\u65b9\u5f0f",level:3},{value:"\u53c2\u8003\u6587\u6863",id:"\u53c2\u8003\u6587\u6863",level:3}],p={toc:i},s="wrapper";function y(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"oauth2"},"Oauth2"),(0,a.yg)("p",null,"Oauth2 \u662f\u76ee\u524d\u6700\u6d41\u884c\u7684\u6388\u6743\u673a\u5236\uff0c\u7528\u6765\u6388\u6743\u7b2c\u4e09\u65b9\u5e94\u7528\uff0c\u83b7\u53d6\u7528\u6237\u6570\u636e\u3002"),(0,a.yg)("p",null,"Oauth2 \u6709\u56db\u79cd\u89d2\u8272\uff0c\u4e00\u4e2a\u662f\u5ba2\u6237\u7aef\uff0c\u4e00\u4e2a\u662f\u8d44\u6e90\u6240\u6709\u8005\uff0c\u4e00\u4e2a\u662f\u6388\u6743\u670d\u52a1\u5668\uff0c\u8fd8\u6709\u4e00\u4e2a\u662f\u8d44\u6e90\u670d\u52a1\u5668\u3002"),(0,a.yg)("h3",{id:"oauth2-\u56db\u79cd\u8ba4\u8bc1\u65b9\u5f0f"},"Oauth2 \u56db\u79cd\u8ba4\u8bc1\u65b9\u5f0f"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u6388\u6743\u7801\u6a21\u5f0f\uff08authorization code\uff09\uff1a\u8981\u6388\u6743\uff0c\u540c\u610f\uff0c\u7ed9\u6388\u6743\u7801\uff0c\u62ff\u6388\u6743\u7801\u8981\u4ee4\u724c"),(0,a.yg)("li",{parentName:"ul"},"\u7b80\u5316\u6a21\u5f0f\uff08\u9690\u85cf\u6a21\u5f0f\uff09\uff08implicit\uff09\uff1a\u8981\u6388\u6743\uff0c\u540c\u610f\uff0c\u76f4\u63a5\u62ff\u4ee4\u724c\uff0c",(0,a.yg)("strong",{parentName:"li"},(0,a.yg)("em",{parentName:"strong"},"\u4e00\u822c\u662f\u7b2c\u4e09\u65b9\u5e94\u7528\u53ea\u6709\u524d\u7aef"))),(0,a.yg)("li",{parentName:"ul"},"\u5bc6\u7801\u6a21\u5f0f\uff08resource owner password credentials\uff09\uff0c\u8981\u6388\u6743\uff0c\u76f4\u63a5\u7ed9\u7528\u6237\u540d\u548c\u5bc6\u7801\uff0c",(0,a.yg)("strong",{parentName:"li"},(0,a.yg)("em",{parentName:"strong"},"\u53ca\u5176\u4fe1\u4efb\uff0c\u5f88\u5c11\u7528\u5230"))),(0,a.yg)("li",{parentName:"ul"},"\u5ba2\u6237\u7aef\u6a21\u5f0f\uff08client credentials\uff09\uff0c\u8981\u6388\u6743\uff0c\u76f4\u63a5\u7ed9\u4ee4\u724c\uff1b",(0,a.yg)("strong",{parentName:"li"},(0,a.yg)("em",{parentName:"strong"},"\u4e00\u822c\u662f\u7b2c\u4e09\u65b9\u5e94\u7528\u7684\u540e\u7aef\uff0c\u540c\u65f6\u652f\u6301\u5f88\u591a\u81ea\u5df1\u7684\u7528\u6237")))),(0,a.yg)("p",null,"\u4e0d\u7ba1\u662f\u54ea\u4e00\u79cd\u6388\u6743\u65b9\u5f0f\uff0c\u7b2c\u4e09\u65b9\u5e94\u7528\u7533\u8bf7\u4ee4\u724c\u4e4b\u524d\uff0c\u90fd\u5fc5\u987b\u5148\u5230\u7cfb\u7edf\u5907\u6848\uff0c\u8bf4\u660e\u81ea\u5df1\u7684\u8eab\u4efd\uff0c\u7136\u540e\u62ff\u5230\u4e24\u4e2a\u8eab\u4efd\u7684\u8bc6\u522b\u7801\uff0c\u5ba2\u6237\u7aef\u548c\u5ba2\u6237\u7aef\u5bc6\u94a5\uff0c\u8fd9\u662f\u9632\u6b62\u5bc6\u94a5\u88ab\u6ee5\u7528\uff0c\u6ca1\u6709\u5907\u6848\u8fc7\u7684\u7b2c\u4e09\u65b9\u7684\u5e94\u7528\uff0c\u662f\u4e0d\u4f1a\u62ff\u5230\u4ee4\u724c\u7684"),(0,a.yg)("h3",{id:"\u53c2\u8003\u6587\u6863"},"\u53c2\u8003\u6587\u6863"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://blog.csdn.net/m0_53151031/article/details/123737336"},"CSDN-\u524d\u8a00\u6280\u672f\u4e4b Oauth2 \u5168\u65b9\u9762\u4ecb\u7ecd"))))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8f9566ba.e191767a.js b/assets/js/8f9566ba.d7dfe29e.js similarity index 99% rename from assets/js/8f9566ba.e191767a.js rename to assets/js/8f9566ba.d7dfe29e.js index a259e091d..e052abef1 100644 --- a/assets/js/8f9566ba.e191767a.js +++ b/assets/js/8f9566ba.d7dfe29e.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1312],{5680:(e,a,r)=>{r.d(a,{xA:()=>p,yg:()=>g});var t=r(6540);function l(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}function i(e,a){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);a&&(t=t.filter((function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable}))),r.push.apply(r,t)}return r}function n(e){for(var a=1;a=0||(l[r]=e[r]);return l}(e,a);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(l[r]=e[r])}return l}var d=t.createContext({}),s=function(e){var a=t.useContext(d),r=a;return e&&(r="function"==typeof e?e(a):n(n({},a),e)),r},p=function(e){var a=s(e.components);return t.createElement(d.Provider,{value:a},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var a=e.children;return t.createElement(t.Fragment,{},a)}},j=t.forwardRef((function(e,a){var r=e.components,l=e.mdxType,i=e.originalType,d=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),u=s(r),j=l,g=u["".concat(d,".").concat(j)]||u[j]||c[j]||i;return r?t.createElement(g,n(n({ref:a},p),{},{components:r})):t.createElement(g,n({ref:a},p))}));function g(e,a){var r=arguments,l=a&&a.mdxType;if("string"==typeof e||l){var i=r.length,n=new Array(i);n[0]=j;var o={};for(var d in a)hasOwnProperty.call(a,d)&&(o[d]=a[d]);o.originalType=e,o[u]="string"==typeof e?e:l,n[1]=o;for(var s=2;s{r.r(a),r.d(a,{assets:()=>d,contentTitle:()=>n,default:()=>c,frontMatter:()=>i,metadata:()=>o,toc:()=>s});var t=r(8168),l=(r(6540),r(5680));const i={},n="JDK17-bin",o={unversionedId:"study/program/JAVA/JDK17-bin",id:"study/program/JAVA/JDK17-bin",title:"JDK17-bin",description:"jar",source:"@site/docs/study/program/JAVA/JDK17-bin.md",sourceDirName:"study/program/JAVA",slug:"/study/program/JAVA/JDK17-bin",permalink:"/docs/study/program/JAVA/JDK17-bin",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Guice",permalink:"/docs/study/program/JAVA/Guice"},next:{title:"JDK17",permalink:"/docs/study/program/JAVA/JDK17"}},d={},s=[{value:"jar",id:"jar",level:3},{value:"jarsigner",id:"jarsigner",level:3},{value:"java",id:"java",level:3},{value:"javac",id:"javac",level:3},{value:"javadoc",id:"javadoc",level:3},{value:"javap",id:"javap",level:3},{value:"jcmd",id:"jcmd",level:3},{value:"jconsole",id:"jconsole",level:3},{value:"jdb",id:"jdb",level:3},{value:"jdeprscan",id:"jdeprscan",level:3},{value:"jdeps",id:"jdeps",level:3},{value:"jfr",id:"jfr",level:3},{value:"jhsdb",id:"jhsdb",level:3},{value:"jimage",id:"jimage",level:3},{value:"jinfo",id:"jinfo",level:3},{value:"jlink",id:"jlink",level:3},{value:"jmap",id:"jmap",level:3},{value:"jmod",id:"jmod",level:3},{value:"jpakcage",id:"jpakcage",level:3},{value:"jps",id:"jps",level:3},{value:"jrunscript",id:"jrunscript",level:3},{value:"jshell",id:"jshell",level:3},{value:"jstack",id:"jstack",level:3},{value:"jstat",id:"jstat",level:3},{value:"jstatd",id:"jstatd",level:3},{value:"keytool",id:"keytool",level:3},{value:"rmiregistry",id:"rmiregistry",level:3},{value:"serialver",id:"serialver",level:3},{value:"\u5176\u4ed6\u5206\u6790\u5de5\u5177",id:"\u5176\u4ed6\u5206\u6790\u5de5\u5177",level:3}],p={toc:s},u="wrapper";function c(e){let{components:a,...r}=e;return(0,l.yg)(u,(0,t.A)({},p,r,{components:a,mdxType:"MDXLayout"}),(0,l.yg)("h1",{id:"jdk17-bin"},"JDK17-bin"),(0,l.yg)("h3",{id:"jar"},"jar"),(0,l.yg)("p",null,"\u64cd\u4f5c jar \u6587\u4ef6\uff0c\u5305\u62ec\u65b0\u5efa\u3001\u67e5\u770b\u5185\u5bb9\u3001\u89e3\u538b\u3001\u6dfb\u52a0\u6587\u4ef6\u7b49"),(0,l.yg)("h3",{id:"jarsigner"},"jarsigner"),(0,l.yg)("p",null,"jarsigner \u547d\u4ee4\u662f Java \u5f00\u53d1\u5de5\u5177\u4e2d\u7528\u4e8e\u5bf9 JAR \u6587\u4ef6\u8fdb\u884c\u7b7e\u540d\u7684\u91cd\u8981\u5de5\u5177\u4e4b\u4e00\u3002\u5b83\u901a\u8fc7\u6570\u5b57\u7b7e\u540d\u5b9e\u73b0\u8eab\u4efd\u9a8c\u8bc1\u548c\u4fdd\u8bc1\u5e94\u7528\u7a0b\u5e8f\u7684\u5b8c\u6574\u6027\uff0c\u63d0\u4f9b\u4e86\u5e94\u7528\u7a0b\u5e8f\u53d1\u5e03\u548c\u5206\u53d1\u7684\u5b89\u5168\u6027\u3002\u4f46\u5b83\u4e5f\u5f15\u5165\u4e86\u989d\u5916\u7684\u590d\u6742\u6027\u548c\u4e00\u4e9b\u64cd\u4f5c\u6b65\u9aa4\u3002\u901a\u8fc7\u7406\u89e3\u548c\u6b63\u786e\u4f7f\u7528 jarsigner\uff0c\u53ef\u4ee5\u63d0\u9ad8 Java \u5e94\u7528\u7a0b\u5e8f\u7684\u5b89\u5168\u6027\u548c\u7528\u6237\u7684\u4fe1\u4efb\u5ea6\u3002"),(0,l.yg)("p",null,"\u603b\u7684\u6765\u8bf4\uff0cjarsigner \u4e3a Java \u5e94\u7528\u7a0b\u5e8f\u63d0\u4f9b\u4e86\u4e00\u79cd\u6709\u6548\u7684\u65b9\u5f0f\u6765\u9a8c\u8bc1\u5e94\u7528\u7a0b\u5e8f\u7684\u6765\u6e90\u548c\u5b8c\u6574\u6027\uff0c\u5e2e\u52a9\u5efa\u7acb\u7528\u6237\u548c\u5f00\u53d1\u8005\u4e4b\u95f4\u7684\u4fe1\u4efb\u5173\u7cfb\u3002"),(0,l.yg)("h3",{id:"java"},"java"),(0,l.yg)("h3",{id:"javac"},"javac"),(0,l.yg)("h3",{id:"javadoc"},"javadoc"),(0,l.yg)("h3",{id:"javap"},"javap"),(0,l.yg)("h3",{id:"jcmd"},"jcmd"),(0,l.yg)("h3",{id:"jconsole"},"jconsole"),(0,l.yg)("p",null,"jconsole \u63d0\u4f9b\u4e86\u53ef\u89c6\u5316\u7684\u65b9\u5f0f\u6765\u83b7\u53d6\u6709\u5173 Java \u5e94\u7528\u7a0b\u5e8f\u7684\u5404\u79cd\u4fe1\u606f\uff0c\u5305\u62ec\u5185\u5b58\u4f7f\u7528\u60c5\u51b5\u3001\u7ebf\u7a0b\u6d3b\u52a8\u3001GC \u884c\u4e3a\u7b49\u91cd\u8981\u6307\u6807\u3002\u5b83\u8fd8\u5141\u8bb8\u8fdc\u7a0b\u8fde\u63a5\u5230\u8fd0\u884c\u4e2d\u7684 Java \u8fdb\u7a0b\uff0c\u63d0\u4f9b\u5bf9\u8fdc\u7a0b\u5e94\u7528\u7a0b\u5e8f\u7684\u76d1\u63a7\u548c\u7ba1\u7406\u80fd\u529b\u3002"),(0,l.yg)("h3",{id:"jdb"},"jdb"),(0,l.yg)("h3",{id:"jdeprscan"},"jdeprscan"),(0,l.yg)("h3",{id:"jdeps"},"jdeps"),(0,l.yg)("h3",{id:"jfr"},"jfr"),(0,l.yg)("h3",{id:"jhsdb"},"jhsdb"),(0,l.yg)("h3",{id:"jimage"},"jimage"),(0,l.yg)("h3",{id:"jinfo"},"jinfo"),(0,l.yg)("p",null,"Java Configuration Info \uff1a\u67e5\u770b\u914d\u7f6e\u53c2\u6570\u4fe1\u606f\uff0c\u652f\u6301\u90e8\u5206\u53c2\u6570\u8fd0\u884c\u65f6\u4fee\u6539"),(0,l.yg)("h3",{id:"jlink"},"jlink"),(0,l.yg)("h3",{id:"jmap"},"jmap"),(0,l.yg)("p",null,"Java Memory Map \uff1a\u5206\u6790\u5806\u5185\u5b58\u5de5\u5177\uff0c\u5bfc\u51fa dump \u5806\u5185\u5b58\u5feb\u7167"),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-shell"},"jmap -dump:live,format=b,file=heap.bin \n")),(0,l.yg)("h3",{id:"jmod"},"jmod"),(0,l.yg)("h3",{id:"jpakcage"},"jpakcage"),(0,l.yg)("h3",{id:"jps"},"jps"),(0,l.yg)("p",null,"JVM Process status tool\uff1aJVM \u8fdb\u7a0b\u72b6\u6001\u5de5\u5177\uff0c\u67e5\u770b\u8fdb\u7a0b\u57fa\u672c\u4fe1\u606f"),(0,l.yg)("p",null,"\u7528\u7684\u4e0d\u591a"),(0,l.yg)("h3",{id:"jrunscript"},"jrunscript"),(0,l.yg)("h3",{id:"jshell"},"jshell"),(0,l.yg)("h3",{id:"jstack"},"jstack"),(0,l.yg)("p",null,"Java Stack Trace \uff1aJava \u5806\u6808\u8ddf\u8e2a\u5de5\u5177"),(0,l.yg)("p",null,"\u53ef\u4ee5\u751f\u6210 JVM \u5f53\u524d\u65f6\u523b\u7684\u7ebf\u7a0b\u5feb\u7167\uff0c\u751f\u6210\u7ebf\u7a0b\u5feb\u7167\u7684\u4e3b\u8981\u76ee\u7684\u662f\u5b9a\u4f4d\u7ebf\u7a0b\u51fa\u73b0\u957f\u65f6\u95f4\u505c\u987f\u7684\u539f\u56e0\uff0c\u5982\u7ebf\u7a0b\u95f4\u6b7b\u9501\u3001\u6b7b\u5faa\u73af\u3001\u8bf7\u6c42\u5916\u90e8\u8d44\u6e90\u5bfc\u81f4\u7684\u957f\u65f6\u95f4\u7b49\u5f85\u7b49\u3002"),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-shell"},"jstack -l {PID} > jstack-dump.log\n")),(0,l.yg)("p",null,"\u7136\u540e \u653e\u5230 ",(0,l.yg)("a",{parentName:"p",href:"https://fastthread.io/"},"fastthread.io")," \u5206\u6790"),(0,l.yg)("h3",{id:"jstat"},"jstat"),(0,l.yg)("p",null,"JVM statistics monitoring tool \uff1a JVM \u7edf\u8ba1\u76d1\u63a7\u5de5\u5177\uff0c\u67e5\u770b\u5806\uff0cGC \u8be6\u7ec6\u4fe1\u606f"),(0,l.yg)("p",null,"\u5148\u7528\u4ed6\u5206\u6790 GC \u95ee\u9898\uff0c\u5305\u62ec GC \u6b21\u6570\u3001GC \u65f6\u95f4\u3001GC \u539f\u56e0\u3001GC \u524d\u540e\u5806\u5185\u5b58\u53d8\u5316"),(0,l.yg)("h3",{id:"jstatd"},"jstatd"),(0,l.yg)("h3",{id:"keytool"},"keytool"),(0,l.yg)("h3",{id:"rmiregistry"},"rmiregistry"),(0,l.yg)("h3",{id:"serialver"},"serialver"),(0,l.yg)("h3",{id:"\u5176\u4ed6\u5206\u6790\u5de5\u5177"},"\u5176\u4ed6\u5206\u6790\u5de5\u5177"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://visualvm.github.io/"},"VisualVM")," \u8fdc\u7a0b\u9700\u8981\u914d\u5408 jstatd \u4f7f\u7528"),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://gceasy.io/"},"GCEasy\uff1a\u514d\u8d39 GC \u65e5\u5fd7\u53ef\u89c6\u5316\u5206\u6790 Web \u5de5\u5177")),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://eclipse.dev/mat/downloads.php"},"Eclipse MAT\uff1aMemory Analyzer Tool \u53ef\u89c6\u5316\u5185\u5b58\u5206\u6790\u5de5\u5177")),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://github.com/chewiebug/GCViewer"},"GCViewer\uff1a\u5f00\u6e90\u7684 GC \u65e5\u5fd7\u5206\u6790\u5de5\u5177")),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://github.com/alibaba/arthas/blob/master/README_CN.md"}," Alibaba Arthas\uff1a\u7ebf\u4e0a Java \u7a0b\u5e8f\u8bca\u65ad\u5de5\u5177\uff0c\u529f\u80fd\u975e\u5e38\u5f3a\u5927"))))}c.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1312],{5680:(e,a,r)=>{r.d(a,{xA:()=>p,yg:()=>g});var t=r(6540);function l(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}function i(e,a){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);a&&(t=t.filter((function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable}))),r.push.apply(r,t)}return r}function n(e){for(var a=1;a=0||(l[r]=e[r]);return l}(e,a);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(l[r]=e[r])}return l}var d=t.createContext({}),s=function(e){var a=t.useContext(d),r=a;return e&&(r="function"==typeof e?e(a):n(n({},a),e)),r},p=function(e){var a=s(e.components);return t.createElement(d.Provider,{value:a},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var a=e.children;return t.createElement(t.Fragment,{},a)}},j=t.forwardRef((function(e,a){var r=e.components,l=e.mdxType,i=e.originalType,d=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),u=s(r),j=l,g=u["".concat(d,".").concat(j)]||u[j]||c[j]||i;return r?t.createElement(g,n(n({ref:a},p),{},{components:r})):t.createElement(g,n({ref:a},p))}));function g(e,a){var r=arguments,l=a&&a.mdxType;if("string"==typeof e||l){var i=r.length,n=new Array(i);n[0]=j;var o={};for(var d in a)hasOwnProperty.call(a,d)&&(o[d]=a[d]);o.originalType=e,o[u]="string"==typeof e?e:l,n[1]=o;for(var s=2;s{r.r(a),r.d(a,{assets:()=>d,contentTitle:()=>n,default:()=>c,frontMatter:()=>i,metadata:()=>o,toc:()=>s});var t=r(8168),l=(r(6540),r(5680));const i={},n="JDK17-bin",o={unversionedId:"study/program/JAVA/JDK17-bin",id:"study/program/JAVA/JDK17-bin",title:"JDK17-bin",description:"jar",source:"@site/docs/study/program/JAVA/JDK17-bin.md",sourceDirName:"study/program/JAVA",slug:"/study/program/JAVA/JDK17-bin",permalink:"/docs/study/program/JAVA/JDK17-bin",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Guice",permalink:"/docs/study/program/JAVA/Guice"},next:{title:"JDK17",permalink:"/docs/study/program/JAVA/JDK17"}},d={},s=[{value:"jar",id:"jar",level:3},{value:"jarsigner",id:"jarsigner",level:3},{value:"java",id:"java",level:3},{value:"javac",id:"javac",level:3},{value:"javadoc",id:"javadoc",level:3},{value:"javap",id:"javap",level:3},{value:"jcmd",id:"jcmd",level:3},{value:"jconsole",id:"jconsole",level:3},{value:"jdb",id:"jdb",level:3},{value:"jdeprscan",id:"jdeprscan",level:3},{value:"jdeps",id:"jdeps",level:3},{value:"jfr",id:"jfr",level:3},{value:"jhsdb",id:"jhsdb",level:3},{value:"jimage",id:"jimage",level:3},{value:"jinfo",id:"jinfo",level:3},{value:"jlink",id:"jlink",level:3},{value:"jmap",id:"jmap",level:3},{value:"jmod",id:"jmod",level:3},{value:"jpakcage",id:"jpakcage",level:3},{value:"jps",id:"jps",level:3},{value:"jrunscript",id:"jrunscript",level:3},{value:"jshell",id:"jshell",level:3},{value:"jstack",id:"jstack",level:3},{value:"jstat",id:"jstat",level:3},{value:"jstatd",id:"jstatd",level:3},{value:"keytool",id:"keytool",level:3},{value:"rmiregistry",id:"rmiregistry",level:3},{value:"serialver",id:"serialver",level:3},{value:"\u5176\u4ed6\u5206\u6790\u5de5\u5177",id:"\u5176\u4ed6\u5206\u6790\u5de5\u5177",level:3}],p={toc:s},u="wrapper";function c(e){let{components:a,...r}=e;return(0,l.yg)(u,(0,t.A)({},p,r,{components:a,mdxType:"MDXLayout"}),(0,l.yg)("h1",{id:"jdk17-bin"},"JDK17-bin"),(0,l.yg)("h3",{id:"jar"},"jar"),(0,l.yg)("p",null,"\u64cd\u4f5c jar \u6587\u4ef6\uff0c\u5305\u62ec\u65b0\u5efa\u3001\u67e5\u770b\u5185\u5bb9\u3001\u89e3\u538b\u3001\u6dfb\u52a0\u6587\u4ef6\u7b49"),(0,l.yg)("h3",{id:"jarsigner"},"jarsigner"),(0,l.yg)("p",null,"jarsigner \u547d\u4ee4\u662f Java \u5f00\u53d1\u5de5\u5177\u4e2d\u7528\u4e8e\u5bf9 JAR \u6587\u4ef6\u8fdb\u884c\u7b7e\u540d\u7684\u91cd\u8981\u5de5\u5177\u4e4b\u4e00\u3002\u5b83\u901a\u8fc7\u6570\u5b57\u7b7e\u540d\u5b9e\u73b0\u8eab\u4efd\u9a8c\u8bc1\u548c\u4fdd\u8bc1\u5e94\u7528\u7a0b\u5e8f\u7684\u5b8c\u6574\u6027\uff0c\u63d0\u4f9b\u4e86\u5e94\u7528\u7a0b\u5e8f\u53d1\u5e03\u548c\u5206\u53d1\u7684\u5b89\u5168\u6027\u3002\u4f46\u5b83\u4e5f\u5f15\u5165\u4e86\u989d\u5916\u7684\u590d\u6742\u6027\u548c\u4e00\u4e9b\u64cd\u4f5c\u6b65\u9aa4\u3002\u901a\u8fc7\u7406\u89e3\u548c\u6b63\u786e\u4f7f\u7528 jarsigner\uff0c\u53ef\u4ee5\u63d0\u9ad8 Java \u5e94\u7528\u7a0b\u5e8f\u7684\u5b89\u5168\u6027\u548c\u7528\u6237\u7684\u4fe1\u4efb\u5ea6\u3002"),(0,l.yg)("p",null,"\u603b\u7684\u6765\u8bf4\uff0cjarsigner \u4e3a Java \u5e94\u7528\u7a0b\u5e8f\u63d0\u4f9b\u4e86\u4e00\u79cd\u6709\u6548\u7684\u65b9\u5f0f\u6765\u9a8c\u8bc1\u5e94\u7528\u7a0b\u5e8f\u7684\u6765\u6e90\u548c\u5b8c\u6574\u6027\uff0c\u5e2e\u52a9\u5efa\u7acb\u7528\u6237\u548c\u5f00\u53d1\u8005\u4e4b\u95f4\u7684\u4fe1\u4efb\u5173\u7cfb\u3002"),(0,l.yg)("h3",{id:"java"},"java"),(0,l.yg)("h3",{id:"javac"},"javac"),(0,l.yg)("h3",{id:"javadoc"},"javadoc"),(0,l.yg)("h3",{id:"javap"},"javap"),(0,l.yg)("h3",{id:"jcmd"},"jcmd"),(0,l.yg)("h3",{id:"jconsole"},"jconsole"),(0,l.yg)("p",null,"jconsole \u63d0\u4f9b\u4e86\u53ef\u89c6\u5316\u7684\u65b9\u5f0f\u6765\u83b7\u53d6\u6709\u5173 Java \u5e94\u7528\u7a0b\u5e8f\u7684\u5404\u79cd\u4fe1\u606f\uff0c\u5305\u62ec\u5185\u5b58\u4f7f\u7528\u60c5\u51b5\u3001\u7ebf\u7a0b\u6d3b\u52a8\u3001GC \u884c\u4e3a\u7b49\u91cd\u8981\u6307\u6807\u3002\u5b83\u8fd8\u5141\u8bb8\u8fdc\u7a0b\u8fde\u63a5\u5230\u8fd0\u884c\u4e2d\u7684 Java \u8fdb\u7a0b\uff0c\u63d0\u4f9b\u5bf9\u8fdc\u7a0b\u5e94\u7528\u7a0b\u5e8f\u7684\u76d1\u63a7\u548c\u7ba1\u7406\u80fd\u529b\u3002"),(0,l.yg)("h3",{id:"jdb"},"jdb"),(0,l.yg)("h3",{id:"jdeprscan"},"jdeprscan"),(0,l.yg)("h3",{id:"jdeps"},"jdeps"),(0,l.yg)("h3",{id:"jfr"},"jfr"),(0,l.yg)("h3",{id:"jhsdb"},"jhsdb"),(0,l.yg)("h3",{id:"jimage"},"jimage"),(0,l.yg)("h3",{id:"jinfo"},"jinfo"),(0,l.yg)("p",null,"Java Configuration Info \uff1a\u67e5\u770b\u914d\u7f6e\u53c2\u6570\u4fe1\u606f\uff0c\u652f\u6301\u90e8\u5206\u53c2\u6570\u8fd0\u884c\u65f6\u4fee\u6539"),(0,l.yg)("h3",{id:"jlink"},"jlink"),(0,l.yg)("h3",{id:"jmap"},"jmap"),(0,l.yg)("p",null,"Java Memory Map \uff1a\u5206\u6790\u5806\u5185\u5b58\u5de5\u5177\uff0c\u5bfc\u51fa dump \u5806\u5185\u5b58\u5feb\u7167"),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-shell"},"jmap -dump:live,format=b,file=heap.bin \n")),(0,l.yg)("h3",{id:"jmod"},"jmod"),(0,l.yg)("h3",{id:"jpakcage"},"jpakcage"),(0,l.yg)("h3",{id:"jps"},"jps"),(0,l.yg)("p",null,"JVM Process status tool\uff1aJVM \u8fdb\u7a0b\u72b6\u6001\u5de5\u5177\uff0c\u67e5\u770b\u8fdb\u7a0b\u57fa\u672c\u4fe1\u606f"),(0,l.yg)("p",null,"\u7528\u7684\u4e0d\u591a"),(0,l.yg)("h3",{id:"jrunscript"},"jrunscript"),(0,l.yg)("h3",{id:"jshell"},"jshell"),(0,l.yg)("h3",{id:"jstack"},"jstack"),(0,l.yg)("p",null,"Java Stack Trace \uff1aJava \u5806\u6808\u8ddf\u8e2a\u5de5\u5177"),(0,l.yg)("p",null,"\u53ef\u4ee5\u751f\u6210 JVM \u5f53\u524d\u65f6\u523b\u7684\u7ebf\u7a0b\u5feb\u7167\uff0c\u751f\u6210\u7ebf\u7a0b\u5feb\u7167\u7684\u4e3b\u8981\u76ee\u7684\u662f\u5b9a\u4f4d\u7ebf\u7a0b\u51fa\u73b0\u957f\u65f6\u95f4\u505c\u987f\u7684\u539f\u56e0\uff0c\u5982\u7ebf\u7a0b\u95f4\u6b7b\u9501\u3001\u6b7b\u5faa\u73af\u3001\u8bf7\u6c42\u5916\u90e8\u8d44\u6e90\u5bfc\u81f4\u7684\u957f\u65f6\u95f4\u7b49\u5f85\u7b49\u3002"),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-shell"},"jstack -l {PID} > jstack-dump.log\n")),(0,l.yg)("p",null,"\u7136\u540e \u653e\u5230 ",(0,l.yg)("a",{parentName:"p",href:"https://fastthread.io/"},"fastthread.io")," \u5206\u6790"),(0,l.yg)("h3",{id:"jstat"},"jstat"),(0,l.yg)("p",null,"JVM statistics monitoring tool \uff1a JVM \u7edf\u8ba1\u76d1\u63a7\u5de5\u5177\uff0c\u67e5\u770b\u5806\uff0cGC \u8be6\u7ec6\u4fe1\u606f"),(0,l.yg)("p",null,"\u5148\u7528\u4ed6\u5206\u6790 GC \u95ee\u9898\uff0c\u5305\u62ec GC \u6b21\u6570\u3001GC \u65f6\u95f4\u3001GC \u539f\u56e0\u3001GC \u524d\u540e\u5806\u5185\u5b58\u53d8\u5316"),(0,l.yg)("h3",{id:"jstatd"},"jstatd"),(0,l.yg)("h3",{id:"keytool"},"keytool"),(0,l.yg)("h3",{id:"rmiregistry"},"rmiregistry"),(0,l.yg)("h3",{id:"serialver"},"serialver"),(0,l.yg)("h3",{id:"\u5176\u4ed6\u5206\u6790\u5de5\u5177"},"\u5176\u4ed6\u5206\u6790\u5de5\u5177"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://visualvm.github.io/"},"VisualVM")," \u8fdc\u7a0b\u9700\u8981\u914d\u5408 jstatd \u4f7f\u7528"),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://gceasy.io/"},"GCEasy\uff1a\u514d\u8d39 GC \u65e5\u5fd7\u53ef\u89c6\u5316\u5206\u6790 Web \u5de5\u5177")),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://eclipse.dev/mat/downloads.php"},"Eclipse MAT\uff1aMemory Analyzer Tool \u53ef\u89c6\u5316\u5185\u5b58\u5206\u6790\u5de5\u5177")),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://github.com/chewiebug/GCViewer"},"GCViewer\uff1a\u5f00\u6e90\u7684 GC \u65e5\u5fd7\u5206\u6790\u5de5\u5177")),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://github.com/alibaba/arthas/blob/master/README_CN.md"}," Alibaba Arthas\uff1a\u7ebf\u4e0a Java \u7a0b\u5e8f\u8bca\u65ad\u5de5\u5177\uff0c\u529f\u80fd\u975e\u5e38\u5f3a\u5927"))))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8fdf64da.bbdc61a6.js b/assets/js/8fdf64da.7f7d11bd.js similarity index 98% rename from assets/js/8fdf64da.bbdc61a6.js rename to assets/js/8fdf64da.7f7d11bd.js index bdd1b3dec..ffd7c96fd 100644 --- a/assets/js/8fdf64da.bbdc61a6.js +++ b/assets/js/8fdf64da.7f7d11bd.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[748],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),s=p(r),y=a,f=s["".concat(l,".").concat(y)]||s[y]||d[y]||o;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,c=new Array(o);c[0]=y;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[s]="string"==typeof e?e:a,c[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var n=r(8168),a=(r(6540),r(5680));const o={},c="API \u7f51\u5173",i={unversionedId:"study/back/API\u7f51\u5173/index",id:"study/back/API\u7f51\u5173/index",title:"API \u7f51\u5173",description:"\u53c2\u8003",source:"@site/docs/study/back/API\u7f51\u5173/index.md",sourceDirName:"study/back/API\u7f51\u5173",slug:"/study/back/API\u7f51\u5173/",permalink:"/docs/study/back/API\u7f51\u5173/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u9ad8\u5e76\u53d1API",permalink:"/docs/study/back/\u9ad8\u5e76\u53d1API"},next:{title:"Apache APISIX",permalink:"/docs/study/back/API\u7f51\u5173/APISIX"}},l={},p=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],u={toc:p},s="wrapper";function d(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"api-\u7f51\u5173"},"API \u7f51\u5173"),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://www.cnblogs.com/2YSP/p/14223892.html"},"\u535a\u5ba2\u56ed-\u5982\u4f55\u8bbe\u8ba1\u4e00\u4e2a\u9ad8\u6027\u80fd\u7f51\u5173"))))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[748],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),s=p(r),y=a,f=s["".concat(l,".").concat(y)]||s[y]||d[y]||o;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,c=new Array(o);c[0]=y;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[s]="string"==typeof e?e:a,c[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var n=r(8168),a=(r(6540),r(5680));const o={},c="API \u7f51\u5173",i={unversionedId:"study/back/API\u7f51\u5173/index",id:"study/back/API\u7f51\u5173/index",title:"API \u7f51\u5173",description:"\u53c2\u8003",source:"@site/docs/study/back/API\u7f51\u5173/index.md",sourceDirName:"study/back/API\u7f51\u5173",slug:"/study/back/API\u7f51\u5173/",permalink:"/docs/study/back/API\u7f51\u5173/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u9ad8\u5e76\u53d1API",permalink:"/docs/study/back/\u9ad8\u5e76\u53d1API"},next:{title:"Apache APISIX",permalink:"/docs/study/back/API\u7f51\u5173/APISIX"}},l={},p=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],u={toc:p},s="wrapper";function d(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"api-\u7f51\u5173"},"API \u7f51\u5173"),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://www.cnblogs.com/2YSP/p/14223892.html"},"\u535a\u5ba2\u56ed-\u5982\u4f55\u8bbe\u8ba1\u4e00\u4e2a\u9ad8\u6027\u80fd\u7f51\u5173"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9062da7c.24a339cc.js b/assets/js/9062da7c.0d6a871e.js similarity index 98% rename from assets/js/9062da7c.24a339cc.js rename to assets/js/9062da7c.0d6a871e.js index 76a24d2a8..40bf73995 100644 --- a/assets/js/9062da7c.24a339cc.js +++ b/assets/js/9062da7c.0d6a871e.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9063],{5680:(e,r,t)=>{t.d(r,{xA:()=>d,yg:()=>m});var n=t(6540);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function s(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function c(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var l=n.createContext({}),i=function(e){var r=n.useContext(l),t=r;return e&&(t="function"==typeof e?e(r):c(c({},r),e)),t},d=function(e){var r=i(e.components);return n.createElement(l.Provider,{value:r},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},y=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,s=e.originalType,l=e.parentName,d=a(e,["components","mdxType","originalType","parentName"]),u=i(t),y=o,m=u["".concat(l,".").concat(y)]||u[y]||p[y]||s;return t?n.createElement(m,c(c({ref:r},d),{},{components:t})):n.createElement(m,c({ref:r},d))}));function m(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var s=t.length,c=new Array(s);c[0]=y;var a={};for(var l in r)hasOwnProperty.call(r,l)&&(a[l]=r[l]);a.originalType=e,a[u]="string"==typeof e?e:o,c[1]=a;for(var i=2;i{t.r(r),t.d(r,{assets:()=>l,contentTitle:()=>c,default:()=>p,frontMatter:()=>s,metadata:()=>a,toc:()=>i});var n=t(8168),o=(t(6540),t(5680));const s={},c="docker-mysql",a={unversionedId:"study/docker/docker-mysql",id:"study/docker/docker-mysql",title:"docker-mysql",description:"",source:"@site/docs/study/docker/docker-mysql.md",sourceDirName:"study/docker",slug:"/study/docker/docker-mysql",permalink:"/docs/study/docker/docker-mysql",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"docker-linux",permalink:"/docs/study/docker/docker-linux"},next:{title:"\u6982\u8ff0",permalink:"/docs/study/competitive/"}},l={},i=[],d={toc:i},u="wrapper";function p(e){let{components:r,...t}=e;return(0,o.yg)(u,(0,n.A)({},d,t,{components:r,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"docker-mysql"},"docker-mysql"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-shell"},"# \u5982\u679c\u8fd8\u6ca1\u5b89\u88c5docker\u670d\u52a1\u7684\u8bdd(centos)\nyum install docker\n# \u5982\u679c\u8fd8\u6ca1\u542f\u52a8docker\u670d\u52a1\u7684\u8bdd\nsystemctl start docker\n#\ndocker pull mysql:8.0.33\n# \u7eaf\u7cb9\u5b66\u4e60\u4f7f\u7528\ndocker run -d \\\n-p 13306:3306 \\\n--privileged=true \\\n-e TZ=Asia/Shanghai \\\n-e MYSQL_ROOT_PASSWORD=Aa0123 \\\n--name mysql-study \\\nmysql:8.0.33\n\n\ndocker exec -it mysql-study bash\n\nmysql -u root -p\n\nuse mysql\nupdate user set authentication_string ='' where user = 'root';\nflush privileges;\nALTER user 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'Aa0123';\nALTER user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Aa0123';\nflush privileges;\n\n\ndocker stop mysql-study\ndocker rm mysql-study\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9063],{5680:(e,r,t)=>{t.d(r,{xA:()=>d,yg:()=>m});var n=t(6540);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function s(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function c(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var l=n.createContext({}),i=function(e){var r=n.useContext(l),t=r;return e&&(t="function"==typeof e?e(r):c(c({},r),e)),t},d=function(e){var r=i(e.components);return n.createElement(l.Provider,{value:r},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},y=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,s=e.originalType,l=e.parentName,d=a(e,["components","mdxType","originalType","parentName"]),u=i(t),y=o,m=u["".concat(l,".").concat(y)]||u[y]||p[y]||s;return t?n.createElement(m,c(c({ref:r},d),{},{components:t})):n.createElement(m,c({ref:r},d))}));function m(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var s=t.length,c=new Array(s);c[0]=y;var a={};for(var l in r)hasOwnProperty.call(r,l)&&(a[l]=r[l]);a.originalType=e,a[u]="string"==typeof e?e:o,c[1]=a;for(var i=2;i{t.r(r),t.d(r,{assets:()=>l,contentTitle:()=>c,default:()=>p,frontMatter:()=>s,metadata:()=>a,toc:()=>i});var n=t(8168),o=(t(6540),t(5680));const s={},c="docker-mysql",a={unversionedId:"study/docker/docker-mysql",id:"study/docker/docker-mysql",title:"docker-mysql",description:"",source:"@site/docs/study/docker/docker-mysql.md",sourceDirName:"study/docker",slug:"/study/docker/docker-mysql",permalink:"/docs/study/docker/docker-mysql",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"docker-linux",permalink:"/docs/study/docker/docker-linux"},next:{title:"\u6982\u8ff0",permalink:"/docs/study/competitive/"}},l={},i=[],d={toc:i},u="wrapper";function p(e){let{components:r,...t}=e;return(0,o.yg)(u,(0,n.A)({},d,t,{components:r,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"docker-mysql"},"docker-mysql"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-shell"},"# \u5982\u679c\u8fd8\u6ca1\u5b89\u88c5docker\u670d\u52a1\u7684\u8bdd(centos)\nyum install docker\n# \u5982\u679c\u8fd8\u6ca1\u542f\u52a8docker\u670d\u52a1\u7684\u8bdd\nsystemctl start docker\n#\ndocker pull mysql:8.0.33\n# \u7eaf\u7cb9\u5b66\u4e60\u4f7f\u7528\ndocker run -d \\\n-p 13306:3306 \\\n--privileged=true \\\n-e TZ=Asia/Shanghai \\\n-e MYSQL_ROOT_PASSWORD=Aa0123 \\\n--name mysql-study \\\nmysql:8.0.33\n\n\ndocker exec -it mysql-study bash\n\nmysql -u root -p\n\nuse mysql\nupdate user set authentication_string ='' where user = 'root';\nflush privileges;\nALTER user 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'Aa0123';\nALTER user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Aa0123';\nflush privileges;\n\n\ndocker stop mysql-study\ndocker rm mysql-study\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/90f76576.b3dae0e2.js b/assets/js/90f76576.c482fe87.js similarity index 98% rename from assets/js/90f76576.b3dae0e2.js rename to assets/js/90f76576.c482fe87.js index 9921cf8b2..7ca829404 100644 --- a/assets/js/90f76576.b3dae0e2.js +++ b/assets/js/90f76576.c482fe87.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1149],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),s=p(r),d=o,f=s["".concat(l,".").concat(d)]||s[d]||y[d]||a;return r?n.createElement(f,i(i({ref:t},u),{},{components:r})):n.createElement(f,i({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=d;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[s]="string"==typeof e?e:o,i[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>y,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={},i=void 0,c={unversionedId:"study/encryption/\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3",id:"study/encryption/\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3",title:"\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3",description:"\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3",source:"@site/docs/study/encryption/\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3.md",sourceDirName:"study/encryption",slug:"/study/encryption/\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3",permalink:"/docs/study/encryption/\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u5bf9\u79f0\u52a0\u5bc6-\u5206\u7ec4\u5bc6\u7801\u7684\u6a21\u5f0f",permalink:"/docs/study/encryption/\u5bf9\u79f0\u52a0\u5bc6-\u5206\u7ec4\u5bc6\u7801\u7684\u6a21\u5f0f"},next:{title:"\u6570\u5b57\u8bc1\u4e66",permalink:"/docs/study/encryption/\u6570\u5b57\u8bc1\u4e66"}},l={},p=[{value:"\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3",id:"\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3",level:3}],u={toc:p},s="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3"},"\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"DES\uff0c\u5df2\u88ab\u7834\u89e3\uff0c\u4e0d\u5efa\u8bae\u4f7f\u7528\uff0c\u662f\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u7684\u57fa\u77f3\uff0c\u5177\u6709\u5b66\u4e60\u4ef7\u503c"),(0,o.yg)("li",{parentName:"ul"},"3DES\uff0c\u65e9\u4e8e AES \u51fa\u73b0\uff0c\u7528\u6765\u4ee3\u66ff DES\uff0c\u8ba1\u7b97\u79d8\u94a5\u65f6\u95f4\u592a\u957f\uff0c\u52a0\u5bc6\u6548\u7387\u4e0d\u9ad8\uff0c\u6240\u4ee5\u57fa\u672c\u4e0d\u5728\u4f7f\u7528\uff0c\u9664\u975e\u4e00\u4e9b\u8001\u7684\u7cfb\u7edf\u517c\u5bb9"),(0,o.yg)("li",{parentName:"ul"},"AES\uff0c\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u4e2d\u6027\u80fd\u6700\u9ad8\u7684\uff0c\u901f\u5ea6\u5feb\uff0c\u5b89\u5168\u7ea7\u522b\u9ad8\uff0c\u662f\u73b0\u5728\u6700\u6d41\u884c\u7684\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\uff0cRijndael \u7b97\u6cd5\u662f AES \u7b97\u6cd5\u7684\u57fa\u7840\uff0cAES \u7b97\u6cd5\u662f Rijndael \u7b97\u6cd5\u7684\u4e00\u4e2a\u5177\u4f53\u5b9e\u73b0\uff0cAES \u7b97\u6cd5\u6709 5 \u79cd\u5bc6\u94a5\u957f\u5ea6\uff0c\u5206\u522b\u662f 128 \u4f4d\uff0c192 \u4f4d\uff0c256 \u4f4d"),(0,o.yg)("li",{parentName:"ul"},"IDEA\uff0c\u5e38\u7528\u7684\u7535\u5b50\u90ae\u4ef6\u52a0\u5bc6\u7b97\u6cd5"),(0,o.yg)("li",{parentName:"ul"},"PBE\uff0c\u4e0d\u63a8\u8350\u4f7f\u7528")))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1149],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),s=p(r),d=o,f=s["".concat(l,".").concat(d)]||s[d]||y[d]||a;return r?n.createElement(f,i(i({ref:t},u),{},{components:r})):n.createElement(f,i({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=d;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[s]="string"==typeof e?e:o,i[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>y,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={},i=void 0,c={unversionedId:"study/encryption/\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3",id:"study/encryption/\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3",title:"\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3",description:"\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3",source:"@site/docs/study/encryption/\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3.md",sourceDirName:"study/encryption",slug:"/study/encryption/\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3",permalink:"/docs/study/encryption/\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u5bf9\u79f0\u52a0\u5bc6-\u5206\u7ec4\u5bc6\u7801\u7684\u6a21\u5f0f",permalink:"/docs/study/encryption/\u5bf9\u79f0\u52a0\u5bc6-\u5206\u7ec4\u5bc6\u7801\u7684\u6a21\u5f0f"},next:{title:"\u6570\u5b57\u8bc1\u4e66",permalink:"/docs/study/encryption/\u6570\u5b57\u8bc1\u4e66"}},l={},p=[{value:"\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3",id:"\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3",level:3}],u={toc:p},s="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3"},"\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"DES\uff0c\u5df2\u88ab\u7834\u89e3\uff0c\u4e0d\u5efa\u8bae\u4f7f\u7528\uff0c\u662f\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u7684\u57fa\u77f3\uff0c\u5177\u6709\u5b66\u4e60\u4ef7\u503c"),(0,o.yg)("li",{parentName:"ul"},"3DES\uff0c\u65e9\u4e8e AES \u51fa\u73b0\uff0c\u7528\u6765\u4ee3\u66ff DES\uff0c\u8ba1\u7b97\u79d8\u94a5\u65f6\u95f4\u592a\u957f\uff0c\u52a0\u5bc6\u6548\u7387\u4e0d\u9ad8\uff0c\u6240\u4ee5\u57fa\u672c\u4e0d\u5728\u4f7f\u7528\uff0c\u9664\u975e\u4e00\u4e9b\u8001\u7684\u7cfb\u7edf\u517c\u5bb9"),(0,o.yg)("li",{parentName:"ul"},"AES\uff0c\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u4e2d\u6027\u80fd\u6700\u9ad8\u7684\uff0c\u901f\u5ea6\u5feb\uff0c\u5b89\u5168\u7ea7\u522b\u9ad8\uff0c\u662f\u73b0\u5728\u6700\u6d41\u884c\u7684\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\uff0cRijndael \u7b97\u6cd5\u662f AES \u7b97\u6cd5\u7684\u57fa\u7840\uff0cAES \u7b97\u6cd5\u662f Rijndael \u7b97\u6cd5\u7684\u4e00\u4e2a\u5177\u4f53\u5b9e\u73b0\uff0cAES \u7b97\u6cd5\u6709 5 \u79cd\u5bc6\u94a5\u957f\u5ea6\uff0c\u5206\u522b\u662f 128 \u4f4d\uff0c192 \u4f4d\uff0c256 \u4f4d"),(0,o.yg)("li",{parentName:"ul"},"IDEA\uff0c\u5e38\u7528\u7684\u7535\u5b50\u90ae\u4ef6\u52a0\u5bc6\u7b97\u6cd5"),(0,o.yg)("li",{parentName:"ul"},"PBE\uff0c\u4e0d\u63a8\u8350\u4f7f\u7528")))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/916bb7d8.64a906f4.js b/assets/js/916bb7d8.9a833032.js similarity index 98% rename from assets/js/916bb7d8.64a906f4.js rename to assets/js/916bb7d8.9a833032.js index 144058ad4..cf6621601 100644 --- a/assets/js/916bb7d8.64a906f4.js +++ b/assets/js/916bb7d8.9a833032.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4056],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),l=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),s=l(r),d=o,f=s["".concat(p,".").concat(d)]||s[d]||y[d]||a;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=d;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:o,c[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>c,default:()=>y,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var n=r(8168),o=(r(6540),r(5680));const a={},c="\u5bc6\u7801\u54c8\u5e0c\u7b97\u6cd5",i={unversionedId:"study/encryption/\u5bc6\u7801\u54c8\u5e0c\u7b97\u6cd5\u603b\u7ed3",id:"study/encryption/\u5bc6\u7801\u54c8\u5e0c\u7b97\u6cd5\u603b\u7ed3",title:"\u5bc6\u7801\u54c8\u5e0c\u7b97\u6cd5",description:"\u9488\u5bf9\u5bc6\u7801\u5b58\u50a8\u7684\u52a0\u5bc6\u7b97\u6cd5",source:"@site/docs/study/encryption/\u5bc6\u7801\u54c8\u5e0c\u7b97\u6cd5\u603b\u7ed3.md",sourceDirName:"study/encryption",slug:"/study/encryption/\u5bc6\u7801\u54c8\u5e0c\u7b97\u6cd5\u603b\u7ed3",permalink:"/docs/study/encryption/\u5bc6\u7801\u54c8\u5e0c\u7b97\u6cd5\u603b\u7ed3",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u52a0\u89e3\u5bc6\u670d\u52a1",permalink:"/docs/study/encryption/\u52a0\u89e3\u5bc6\u670d\u52a1"},next:{title:"\u5bf9\u79f0\u52a0\u5bc6-\u5206\u7ec4\u5bc6\u7801\u7684\u6a21\u5f0f",permalink:"/docs/study/encryption/\u5bf9\u79f0\u52a0\u5bc6-\u5206\u7ec4\u5bc6\u7801\u7684\u6a21\u5f0f"}},p={},l=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],u={toc:l},s="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u5bc6\u7801\u54c8\u5e0c\u7b97\u6cd5"},"\u5bc6\u7801\u54c8\u5e0c\u7b97\u6cd5"),(0,o.yg)("p",null,"\u9488\u5bf9\u5bc6\u7801\u5b58\u50a8\u7684\u52a0\u5bc6\u7b97\u6cd5"),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/410896683"},"\u77e5\u4e4e-\u5bc6\u7801\u5b66\u7cfb\u5217\u4e4b:bcrypt \u52a0\u5bc6\u7b97\u6cd5\u8be6\u89e3"))))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4056],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),l=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),s=l(r),d=o,f=s["".concat(p,".").concat(d)]||s[d]||y[d]||a;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=d;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:o,c[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>c,default:()=>y,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var n=r(8168),o=(r(6540),r(5680));const a={},c="\u5bc6\u7801\u54c8\u5e0c\u7b97\u6cd5",i={unversionedId:"study/encryption/\u5bc6\u7801\u54c8\u5e0c\u7b97\u6cd5\u603b\u7ed3",id:"study/encryption/\u5bc6\u7801\u54c8\u5e0c\u7b97\u6cd5\u603b\u7ed3",title:"\u5bc6\u7801\u54c8\u5e0c\u7b97\u6cd5",description:"\u9488\u5bf9\u5bc6\u7801\u5b58\u50a8\u7684\u52a0\u5bc6\u7b97\u6cd5",source:"@site/docs/study/encryption/\u5bc6\u7801\u54c8\u5e0c\u7b97\u6cd5\u603b\u7ed3.md",sourceDirName:"study/encryption",slug:"/study/encryption/\u5bc6\u7801\u54c8\u5e0c\u7b97\u6cd5\u603b\u7ed3",permalink:"/docs/study/encryption/\u5bc6\u7801\u54c8\u5e0c\u7b97\u6cd5\u603b\u7ed3",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u52a0\u89e3\u5bc6\u670d\u52a1",permalink:"/docs/study/encryption/\u52a0\u89e3\u5bc6\u670d\u52a1"},next:{title:"\u5bf9\u79f0\u52a0\u5bc6-\u5206\u7ec4\u5bc6\u7801\u7684\u6a21\u5f0f",permalink:"/docs/study/encryption/\u5bf9\u79f0\u52a0\u5bc6-\u5206\u7ec4\u5bc6\u7801\u7684\u6a21\u5f0f"}},p={},l=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],u={toc:l},s="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u5bc6\u7801\u54c8\u5e0c\u7b97\u6cd5"},"\u5bc6\u7801\u54c8\u5e0c\u7b97\u6cd5"),(0,o.yg)("p",null,"\u9488\u5bf9\u5bc6\u7801\u5b58\u50a8\u7684\u52a0\u5bc6\u7b97\u6cd5"),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/410896683"},"\u77e5\u4e4e-\u5bc6\u7801\u5b66\u7cfb\u5217\u4e4b:bcrypt \u52a0\u5bc6\u7b97\u6cd5\u8be6\u89e3"))))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/917fe9d9.617ecd0b.js b/assets/js/917fe9d9.5c92e351.js similarity index 98% rename from assets/js/917fe9d9.617ecd0b.js rename to assets/js/917fe9d9.5c92e351.js index 9f3afa2bb..746c4b0e4 100644 --- a/assets/js/917fe9d9.617ecd0b.js +++ b/assets/js/917fe9d9.5c92e351.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3353],{5680:(e,t,r)=>{r.d(t,{xA:()=>l,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function s(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var u=n.createContext({}),i=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):s(s({},t),e)),r},l=function(e){var t=i(e.components);return n.createElement(u.Provider,{value:t},e.children)},y="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},p=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,u=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),y=i(r),p=o,f=y["".concat(u,".").concat(p)]||y[p]||d[p]||a;return r?n.createElement(f,s(s({ref:t},l),{},{components:r})):n.createElement(f,s({ref:t},l))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,s=new Array(a);s[0]=p;var c={};for(var u in t)hasOwnProperty.call(t,u)&&(c[u]=t[u]);c.originalType=e,c[y]="string"==typeof e?e:o,s[1]=c;for(var i=2;i{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>s,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>i});var n=r(8168),o=(r(6540),r(5680));const a={},s=void 0,c={unversionedId:"study/system/yum-dnf",id:"study/system/yum-dnf",title:"yum-dnf",description:"yum",source:"@site/docs/study/system/yum-dnf.md",sourceDirName:"study/system",slug:"/study/system/yum-dnf",permalink:"/docs/study/system/yum-dnf",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"shell\u7f16\u7a0b\u667aexpect",permalink:"/docs/study/system/shell\u7f16\u7a0b\u667aexpect"},next:{title:"\u5185\u5b58\u7ba1\u7406",permalink:"/docs/study/system/\u5185\u5b58\u7ba1\u7406"}},u={},i=[{value:"yum",id:"yum",level:3},{value:"dnf",id:"dnf",level:3}],l={toc:i},y="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(y,(0,n.A)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"yum"},"yum"),(0,o.yg)("h3",{id:"dnf"},"dnf"))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3353],{5680:(e,t,r)=>{r.d(t,{xA:()=>l,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function s(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var u=n.createContext({}),i=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):s(s({},t),e)),r},l=function(e){var t=i(e.components);return n.createElement(u.Provider,{value:t},e.children)},y="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},p=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,u=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),y=i(r),p=o,f=y["".concat(u,".").concat(p)]||y[p]||d[p]||a;return r?n.createElement(f,s(s({ref:t},l),{},{components:r})):n.createElement(f,s({ref:t},l))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,s=new Array(a);s[0]=p;var c={};for(var u in t)hasOwnProperty.call(t,u)&&(c[u]=t[u]);c.originalType=e,c[y]="string"==typeof e?e:o,s[1]=c;for(var i=2;i{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>s,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>i});var n=r(8168),o=(r(6540),r(5680));const a={},s=void 0,c={unversionedId:"study/system/yum-dnf",id:"study/system/yum-dnf",title:"yum-dnf",description:"yum",source:"@site/docs/study/system/yum-dnf.md",sourceDirName:"study/system",slug:"/study/system/yum-dnf",permalink:"/docs/study/system/yum-dnf",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"shell\u7f16\u7a0b\u667aexpect",permalink:"/docs/study/system/shell\u7f16\u7a0b\u667aexpect"},next:{title:"\u5185\u5b58\u7ba1\u7406",permalink:"/docs/study/system/\u5185\u5b58\u7ba1\u7406"}},u={},i=[{value:"yum",id:"yum",level:3},{value:"dnf",id:"dnf",level:3}],l={toc:i},y="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(y,(0,n.A)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"yum"},"yum"),(0,o.yg)("h3",{id:"dnf"},"dnf"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.283bb44c.js b/assets/js/935f2afb.212b0314.js similarity index 63% rename from assets/js/935f2afb.283bb44c.js rename to assets/js/935f2afb.212b0314.js index f2bb8ac7a..e2557145d 100644 --- a/assets/js/935f2afb.283bb44c.js +++ b/assets/js/935f2afb.212b0314.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8581],{5610:d=>{d.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"studySidebar":[{"type":"link","label":"\u5b66\u65e0\u6b62\u5883","href":"/docs/study/","docId":"study/index"},{"type":"category","label":"\u524d\u7aef","items":[{"type":"link","label":"\u6982\u8ff0","href":"/docs/study/fe/","docId":"study/fe/index"},{"type":"link","label":"\u524d\u7aef\u6a21\u5757\u5316","href":"/docs/study/fe/\u524d\u7aef\u6a21\u5757\u5316","docId":"study/fe/\u524d\u7aef\u6a21\u5757\u5316"},{"type":"link","label":"ARMS\u524d\u7aef\u76d1\u63a7","href":"/docs/study/fe/ARMS\u524d\u7aef\u76d1\u63a7","docId":"study/fe/ARMS\u524d\u7aef\u76d1\u63a7"},{"type":"link","label":"Flutter\u5f00\u53d1\u95ee\u9898\u8bb0\u5f55","href":"/docs/study/fe/Flutter\u5f00\u53d1\u95ee\u9898\u8bb0\u5f55","docId":"study/fe/Flutter\u5f00\u53d1\u95ee\u9898\u8bb0\u5f55"},{"type":"link","label":"TypeScript\u8bed\u6cd5\u56fe","href":"/docs/study/fe/TypeScript\u8bed\u6cd5\u56fe","docId":"study/fe/TypeScript\u8bed\u6cd5\u56fe"},{"type":"link","label":"WebGL","href":"/docs/study/fe/WebGL","docId":"study/fe/WebGL"},{"type":"link","label":"mqtt.js","href":"/docs/study/fe/mqtt.js","docId":"study/fe/mqtt.js"},{"type":"link","label":"\u4e0b\u8f7d\u56fe\u7247","href":"/docs/study/fe/\u4e0b\u8f7d\u56fe\u7247","docId":"study/fe/\u4e0b\u8f7d\u56fe\u7247"},{"type":"link","label":"\u4f4e\u4ee3\u7801\u53ef\u89c6\u5316\u5e73\u53f0","href":"/docs/study/fe/\u4f4e\u4ee3\u7801\u53ef\u89c6\u5316\u5e73\u53f0","docId":"study/fe/\u4f4e\u4ee3\u7801\u53ef\u89c6\u5316\u5e73\u53f0"}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u540e\u7aef","items":[{"type":"link","label":"\u6982\u8ff0","href":"/docs/study/back/","docId":"study/back/index"},{"type":"link","label":"Zookeeper","href":"/docs/study/back/Zookeeper","docId":"study/back/Zookeeper"},{"type":"link","label":"\u9ad8\u5e76\u53d1API","href":"/docs/study/back/\u9ad8\u5e76\u53d1API","docId":"study/back/\u9ad8\u5e76\u53d1API"},{"type":"category","label":"API \u7f51\u5173","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Apache APISIX","href":"/docs/study/back/API\u7f51\u5173/APISIX","docId":"study/back/API\u7f51\u5173/APISIX"}],"href":"/docs/study/back/API\u7f51\u5173/"},{"type":"category","label":"IEDA","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Maven","href":"/docs/study/back/IEDA/Maven","docId":"study/back/IEDA/Maven"},{"type":"link","label":"encoding","href":"/docs/study/back/IEDA/encoding","docId":"study/back/IEDA/encoding"},{"type":"link","label":"File and Code Templates","href":"/docs/study/back/IEDA/fileandcodetemplates","docId":"study/back/IEDA/fileandcodetemplates"},{"type":"link","label":"Save Action","href":"/docs/study/back/IEDA/save-action","docId":"study/back/IEDA/save-action"}]},{"type":"link","label":"POST\u7f16\u7801\u683c\u5f0f","href":"/docs/study/back/POST\u7f16\u7801\u683c\u5f0f","docId":"study/back/POST\u7f16\u7801\u683c\u5f0f"},{"type":"link","label":"WSL","href":"/docs/study/back/WSL","docId":"study/back/WSL"},{"type":"category","label":"maven","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"pom\u6587\u4ef6\u4e2d\u7684scope\u6807\u7b7e","href":"/docs/study/back/maven/pom\u6587\u4ef6\u4e2d\u7684scope\u6807\u7b7e","docId":"study/back/maven/pom\u6587\u4ef6\u4e2d\u7684scope\u6807\u7b7e"},{"type":"link","label":"mvnw","href":"/docs/study/back/maven/mvnw","docId":"study/back/maven/mvnw"},{"type":"link","label":"\u5e38\u7528\u53c2\u6570","href":"/docs/study/back/maven/\u5e38\u7528\u53c2\u6570","docId":"study/back/maven/\u5e38\u7528\u53c2\u6570"},{"type":"link","label":"\u6784\u5efaDocker","href":"/docs/study/back/maven/\u6784\u5efaDocker","docId":"study/back/maven/\u6784\u5efaDocker"}]},{"type":"category","label":"mq","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Kafka","href":"/docs/study/back/mq/Kafka","docId":"study/back/mq/Kafka"},{"type":"link","label":"MQTT broker","href":"/docs/study/back/mq/MQTT broker","docId":"study/back/mq/MQTT broker"},{"type":"link","label":"MQ\u5b9e\u73b0\u5bf9\u6bd4","href":"/docs/study/back/mq/MQ\u5b9e\u73b0\u5bf9\u6bd4","docId":"study/back/mq/MQ\u5b9e\u73b0\u5bf9\u6bd4"},{"type":"link","label":"RocketMQ","href":"/docs/study/back/mq/RocketMQ","docId":"study/back/mq/RocketMQ"}]},{"type":"category","label":"spring","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"@Configuration","href":"/docs/study/back/spring/@Configuration","docId":"study/back/spring/@Configuration"},{"type":"link","label":"@Resource@Autowired","href":"/docs/study/back/spring/@Resource@Autowired","docId":"study/back/spring/@Resource@Autowired"},{"type":"link","label":"Spring AOP","href":"/docs/study/back/spring/SpringAOP","docId":"study/back/spring/SpringAOP"},{"type":"link","label":"Spring Boot","href":"/docs/study/back/spring/SpringBoot","docId":"study/back/spring/SpringBoot"},{"type":"link","label":"Spirng Framework","href":"/docs/study/back/spring/SpringFramework","docId":"study/back/spring/SpringFramework"},{"type":"link","label":"Spring Security","href":"/docs/study/back/spring/SpringSecurity","docId":"study/back/spring/SpringSecurity"},{"type":"link","label":"Spring\u751f\u547d\u5468\u671f\u63a5\u53e3","href":"/docs/study/back/spring/Spring\u751f\u547d\u5468\u671f\u63a5\u53e3","docId":"study/back/spring/Spring\u751f\u547d\u5468\u671f\u63a5\u53e3"}]},{"type":"category","label":"springcloud","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"SpringCloud\u4e94\u5927\u7ec4\u4ef6","href":"/docs/study/back/springcloud/SpringCloud\u4e94\u5927\u7ec4\u4ef6","docId":"study/back/springcloud/SpringCloud\u4e94\u5927\u7ec4\u4ef6"},{"type":"link","label":"nacos","href":"/docs/study/back/springcloud/nacos","docId":"study/back/springcloud/nacos"},{"type":"link","label":"\u5fae\u670d\u52a1","href":"/docs/study/back/springcloud/\u5fae\u670d\u52a1","docId":"study/back/springcloud/\u5fae\u670d\u52a1"}]},{"type":"category","label":"\u4fe1\u606f\u5b89\u5168","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Oauth2","href":"/docs/study/back/\u4fe1\u606f\u5b89\u5168/Oauth2","docId":"study/back/\u4fe1\u606f\u5b89\u5168/Oauth2"},{"type":"link","label":"\u8ba4\u8bc1","href":"/docs/study/back/\u4fe1\u606f\u5b89\u5168/\u8ba4\u8bc1","docId":"study/back/\u4fe1\u606f\u5b89\u5168/\u8ba4\u8bc1"},{"type":"link","label":"\u9632\u8303\u6f0f\u6d1e\u653b\u51fb","href":"/docs/study/back/\u4fe1\u606f\u5b89\u5168/\u9632\u8303\u6f0f\u6d1e\u653b\u51fb","docId":"study/back/\u4fe1\u606f\u5b89\u5168/\u9632\u8303\u6f0f\u6d1e\u653b\u51fb"}]},{"type":"category","label":"\u6570\u636e\u5e93\u76f8\u5173","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"JPA-MyBatis","href":"/docs/study/back/\u6570\u636e\u5e93\u76f8\u5173/JPA-MyBatis","docId":"study/back/\u6570\u636e\u5e93\u76f8\u5173/JPA-MyBatis"},{"type":"link","label":"Java\u6570\u636e\u5e93\u8fde\u63a5\u6c60","href":"/docs/study/back/\u6570\u636e\u5e93\u76f8\u5173/Java\u6570\u636e\u5e93\u8fde\u63a5\u6c60","docId":"study/back/\u6570\u636e\u5e93\u76f8\u5173/Java\u6570\u636e\u5e93\u8fde\u63a5\u6c60"},{"type":"link","label":"MyBatis","href":"/docs/study/back/\u6570\u636e\u5e93\u76f8\u5173/MyBatis","docId":"study/back/\u6570\u636e\u5e93\u76f8\u5173/MyBatis"},{"type":"link","label":"log4jdbc","href":"/docs/study/back/\u6570\u636e\u5e93\u76f8\u5173/log4jdbc","docId":"study/back/\u6570\u636e\u5e93\u76f8\u5173/log4jdbc"}]},{"type":"link","label":"\u9519\u8bef\u6392\u9664\u96c6\u9526","href":"/docs/study/back/\u9519\u8bef\u6392\u9664\u96c6\u9526","docId":"study/back/\u9519\u8bef\u6392\u9664\u96c6\u9526"}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u6570\u636e\u5e93","items":[{"type":"link","label":"\u6982\u8ff0","href":"/docs/study/db/","docId":"study/db/index"},{"type":"link","label":"\u7efc\u5408","href":"/docs/study/db/\u7efc\u5408","docId":"study/db/\u7efc\u5408"},{"type":"category","label":"NewSQL","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"TiDB","href":"/docs/study/db/NewSQL/TiDB","docId":"study/db/NewSQL/TiDB"}]},{"type":"category","label":"NoSQL","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Cassandra","href":"/docs/study/db/NoSQL/Cassandra","docId":"study/db/NoSQL/Cassandra"},{"type":"link","label":"Etcd","href":"/docs/study/db/NoSQL/Etcd","docId":"study/db/NoSQL/Etcd"},{"type":"link","label":"Hadoop","href":"/docs/study/db/NoSQL/Hadoop","docId":"study/db/NoSQL/Hadoop"},{"type":"link","label":"Hbase","href":"/docs/study/db/NoSQL/Hbase","docId":"study/db/NoSQL/Hbase"},{"type":"link","label":"Ignite","href":"/docs/study/db/NoSQL/Ignite","docId":"study/db/NoSQL/Ignite"},{"type":"link","label":"MongoDB","href":"/docs/study/db/NoSQL/MongoDB","docId":"study/db/NoSQL/MongoDB"},{"type":"link","label":"Redis","href":"/docs/study/db/NoSQL/Redis","docId":"study/db/NoSQL/Redis"}]},{"type":"category","label":"OLAP","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\u7efc\u5408\u6982\u8ff0","href":"/docs/study/db/OLAP/\u7efc\u5408\u6982\u8ff0","docId":"study/db/OLAP/\u7efc\u5408\u6982\u8ff0"},{"type":"link","label":"ClickHouse","href":"/docs/study/db/OLAP/ClickHouse","docId":"study/db/OLAP/ClickHouse"},{"type":"link","label":"Kylin","href":"/docs/study/db/OLAP/Kylin","docId":"study/db/OLAP/Kylin"},{"type":"link","label":"StarRocks","href":"/docs/study/db/OLAP/StarRocks","docId":"study/db/OLAP/StarRocks"}]},{"type":"category","label":"SQL","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\u7efc\u5408\u6982\u8ff0","href":"/docs/study/db/SQL/\u7efc\u5408\u6982\u8ff0","docId":"study/db/SQL/\u7efc\u5408\u6982\u8ff0"},{"type":"link","label":"MariaDB","href":"/docs/study/db/SQL/MariaDB","docId":"study/db/SQL/MariaDB"},{"type":"link","label":"MySQL \u7b14\u8bb0","href":"/docs/study/db/SQL/MySQL-\u7b14\u8bb0","docId":"study/db/SQL/MySQL-\u7b14\u8bb0"},{"type":"link","label":"MySQL","href":"/docs/study/db/SQL/MySQL","docId":"study/db/SQL/MySQL"},{"type":"link","label":"OpenGauss","href":"/docs/study/db/SQL/OpenGauss","docId":"study/db/SQL/OpenGauss"},{"type":"link","label":"PostgreSQL","href":"/docs/study/db/SQL/PostgreSQL","docId":"study/db/SQL/PostgreSQL"},{"type":"link","label":"\u8fbe\u68a6\u6570\u636e\u5e93","href":"/docs/study/db/SQL/\u8fbe\u68a6","docId":"study/db/SQL/\u8fbe\u68a6"}]},{"type":"category","label":"\u5168\u6587\u641c\u7d22\u5f15\u64ce","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\u7efc\u5408\u6982\u8ff0","href":"/docs/study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/\u7efc\u5408\u6982\u8ff0","docId":"study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/\u7efc\u5408\u6982\u8ff0"},{"type":"link","label":"Elasticsearch","href":"/docs/study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/Elasticsearch","docId":"study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/Elasticsearch"}]},{"type":"category","label":"\u65f6\u5e8f\u6570\u636e\u5e93","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"InfluxDB","href":"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/InfluxDB","docId":"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/InfluxDB"},{"type":"link","label":"TDengine","href":"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TDengine","docId":"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TDengine"},{"type":"link","label":"Apache IoTDB","href":"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Apache IoTDB","docId":"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Apache IoTDB"},{"type":"link","label":"Druid","href":"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Druid","docId":"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Druid"},{"type":"link","label":"KairosDB","href":"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/KairosDB","docId":"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/KairosDB"},{"type":"link","label":"OpenTSDB","href":"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/OpenTSDB","docId":"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/OpenTSDB"},{"type":"link","label":"TimescaleDB","href":"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TimescaleDB","docId":"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TimescaleDB"}]}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u7f16\u7a0b\u8bed\u8a00/\u5de5\u5177","items":[{"type":"link","label":"\u6982\u8ff0","href":"/docs/study/program/","docId":"study/program/index"},{"type":"category","label":"Java","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"GC","href":"/docs/study/program/JAVA/GC","docId":"study/program/JAVA/GC"},{"type":"link","label":"GraalVM","href":"/docs/study/program/JAVA/GraalVM","docId":"study/program/JAVA/GraalVM"},{"type":"link","label":"Guice","href":"/docs/study/program/JAVA/Guice","docId":"study/program/JAVA/Guice"},{"type":"link","label":"JDK17-bin","href":"/docs/study/program/JAVA/JDK17-bin","docId":"study/program/JAVA/JDK17-bin"},{"type":"link","label":"JDK17","href":"/docs/study/program/JAVA/JDK17","docId":"study/program/JAVA/JDK17"},{"type":"link","label":"JDK21","href":"/docs/study/program/JAVA/JDK21","docId":"study/program/JAVA/JDK21"},{"type":"link","label":"JDK8","href":"/docs/study/program/JAVA/JDK8","docId":"study/program/JAVA/JDK8"},{"type":"link","label":"JNI","href":"/docs/study/program/JAVA/JNI","docId":"study/program/JAVA/JNI"},{"type":"link","label":"Maven","href":"/docs/study/program/JAVA/Maven","docId":"study/program/JAVA/Maven"},{"type":"link","label":"OpenJ9","href":"/docs/study/program/JAVA/OepnJ9","docId":"study/program/JAVA/OepnJ9"},{"type":"link","label":"RxJava","href":"/docs/study/program/JAVA/RxJava","docId":"study/program/JAVA/RxJava"},{"type":"link","label":"Vert.x","href":"/docs/study/program/JAVA/Vert.x","docId":"study/program/JAVA/Vert.x"},{"type":"link","label":"\u4ee3\u7801\u751f\u6210","href":"/docs/study/program/JAVA/\u4ee3\u7801\u751f\u6210","docId":"study/program/JAVA/\u4ee3\u7801\u751f\u6210"},{"type":"link","label":"\u9501\uff08\u591a\u7ebf\u7a0b\uff09","href":"/docs/study/program/JAVA/\u9501","docId":"study/program/JAVA/\u9501"}],"href":"/docs/study/program/JAVA/"},{"type":"link","label":"ABIAPI","href":"/docs/study/program/ABIAPI","docId":"study/program/ABIAPI"},{"type":"category","label":"C C++ \u7f16\u7a0b\u8bed\u8a00","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"C\u8bed\u8a00\u6807\u51c6\u5e93","href":"/docs/study/program/C/C\u8bed\u8a00\u6807\u51c6\u5e93","docId":"study/program/C/C\u8bed\u8a00\u6807\u51c6\u5e93"},{"type":"link","label":"MFC-WinForm-WPF-DotNet\u7b49","href":"/docs/study/program/C/MFC-WinForm-WPF-DotNet\u7b49","docId":"study/program/C/MFC-WinForm-WPF-DotNet\u7b49"},{"type":"link","label":"cmake","href":"/docs/study/program/C/cmake","docId":"study/program/C/cmake"},{"type":"link","label":"extern-c","href":"/docs/study/program/C/extern-c","docId":"study/program/C/extern-c"},{"type":"link","label":"make","href":"/docs/study/program/C/make","docId":"study/program/C/make"},{"type":"link","label":"pragma","href":"/docs/study/program/C/pragma","docId":"study/program/C/pragma"},{"type":"link","label":"size_t-ptrdiff_t-intptr_t-uintptr_t","href":"/docs/study/program/C/size_t-ptrdiff_t-intptr_t-uintptr_t","docId":"study/program/C/size_t-ptrdiff_t-intptr_t-uintptr_t"},{"type":"link","label":"\u65b9\u6cd5\u5e93-\u9759\u6001\u5e93-\u52a8\u6001\u5e93-\u5171\u4eab\u5e93","href":"/docs/study/program/C/\u65b9\u6cd5\u5e93-\u9759\u6001\u5e93-\u52a8\u6001\u5e93-\u5171\u4eab\u5e93","docId":"study/program/C/\u65b9\u6cd5\u5e93-\u9759\u6001\u5e93-\u52a8\u6001\u5e93-\u5171\u4eab\u5e93"},{"type":"link","label":"\u6784\u5efa\u5de5\u5177","href":"/docs/study/program/C/\u6784\u5efa\u5de5\u5177","docId":"study/program/C/\u6784\u5efa\u5de5\u5177"},{"type":"link","label":"\u865a\u62df\u7f51\u5361","href":"/docs/study/program/C/\u865a\u62df\u7f51\u5361","docId":"study/program/C/\u865a\u62df\u7f51\u5361"}],"href":"/docs/study/program/C/"},{"type":"category","label":"C++","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"CGI","href":"/docs/study/program/CPP/CGI","docId":"study/program/CPP/CGI"},{"type":"link","label":"C++\u8fdb\u7a0b\u95f4\u901a\u4fe1","href":"/docs/study/program/CPP/CPP\u8fdb\u7a0b\u95f4\u901a\u4fe1","docId":"study/program/CPP/CPP\u8fdb\u7a0b\u95f4\u901a\u4fe1"}],"href":"/docs/study/program/CPP/"},{"type":"link","label":"CSharp","href":"/docs/study/program/CSharp/","docId":"study/program/CSharp/index"},{"type":"category","label":"Dart","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Flutter","href":"/docs/study/program/Dart/Flutter","docId":"study/program/Dart/Flutter"},{"type":"link","label":"Dart \u5b66\u4e60\u8d44\u6599","href":"/docs/study/program/Dart/\u5b66\u4e60\u8d44\u6599","docId":"study/program/Dart/\u5b66\u4e60\u8d44\u6599"}]},{"type":"category","label":"ETL","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"dataX","href":"/docs/study/program/ETL/dataX","docId":"study/program/ETL/dataX"},{"type":"link","label":"flume","href":"/docs/study/program/ETL/flume","docId":"study/program/ETL/flume"},{"type":"link","label":"kettle","href":"/docs/study/program/ETL/kettle","docId":"study/program/ETL/kettle"},{"type":"link","label":"sqoop","href":"/docs/study/program/ETL/sqoop","docId":"study/program/ETL/sqoop"}]},{"type":"link","label":"Erlang","href":"/docs/study/program/Erlang/","docId":"study/program/Erlang/index"},{"type":"category","label":"GIT","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"GIT-\u5e38\u7528\u547d\u4ee4","href":"/docs/study/program/GIT/GIT-\u5e38\u7528\u547d\u4ee4","docId":"study/program/GIT/GIT-\u5e38\u7528\u547d\u4ee4"},{"type":"link","label":"GitHub Desktop","href":"/docs/study/program/GIT/GitHubDesktop","docId":"study/program/GIT/GitHubDesktop"},{"type":"link","label":"PR\u548cMR","href":"/docs/study/program/GIT/PR\u548cMR","docId":"study/program/GIT/PR\u548cMR"}]},{"type":"category","label":"Golang","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Golang\u4f9d\u8d56\u5e93\u4ee3\u7406","href":"/docs/study/program/Golang/Golang\u4f9d\u8d56\u5e93\u4ee3\u7406","docId":"study/program/Golang/Golang\u4f9d\u8d56\u5e93\u4ee3\u7406"},{"type":"link","label":"\u5e38\u7528\u7684\u5de5\u5177","href":"/docs/study/program/Golang/\u5e38\u7528\u7684\u5de5\u5177","docId":"study/program/Golang/\u5e38\u7528\u7684\u5de5\u5177"},{"type":"link","label":"\u5e38\u7528\u7684\u6846\u67b6","href":"/docs/study/program/Golang/\u5e38\u7528\u7684\u6846\u67b6","docId":"study/program/Golang/\u5e38\u7528\u7684\u6846\u67b6"}],"href":"/docs/study/program/Golang/"},{"type":"category","label":"JS","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"npm","href":"/docs/study/program/JS/npm","docId":"study/program/JS/npm"},{"type":"link","label":"npx","href":"/docs/study/program/JS/npx","docId":"study/program/JS/npx"},{"type":"link","label":"nrm","href":"/docs/study/program/JS/nrm","docId":"study/program/JS/nrm"}]},{"type":"link","label":"Kotlin","href":"/docs/study/program/Kotlin/","docId":"study/program/Kotlin/index"},{"type":"link","label":"Lua","href":"/docs/study/program/Lua/","docId":"study/program/Lua/index"},{"type":"link","label":"Rust","href":"/docs/study/program/Rust/","docId":"study/program/Rust/index"},{"type":"link","label":"\u6280\u672f\u6587\u6863","href":"/docs/study/program/\u6280\u672f\u6587\u6863","docId":"study/program/\u6280\u672f\u6587\u6863"},{"type":"link","label":"\u7f16\u8bd1\u5668","href":"/docs/study/program/\u7f16\u8bd1\u5668","docId":"study/program/\u7f16\u8bd1\u5668"},{"type":"link","label":"\u8de8\u5e73\u53f0\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u6846\u67b6","href":"/docs/study/program/\u8de8\u5e73\u53f0\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u6846\u67b6","docId":"study/program/\u8de8\u5e73\u53f0\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u6846\u67b6"}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u7cfb\u7edf\u8fd0\u7ef4","items":[{"type":"link","label":"\u6982\u8ff0","href":"/docs/study/devops/","docId":"study/devops/index"},{"type":"link","label":"API\u7684\u8bf7\u6c42\u91cf\u5206\u6790","href":"/docs/study/devops/API\u7684\u8bf7\u6c42\u91cf\u5206\u6790","docId":"study/devops/API\u7684\u8bf7\u6c42\u91cf\u5206\u6790"},{"type":"link","label":"Linux\u53d1\u884c\u7248","href":"/docs/study/devops/Linux\u53d1\u884c\u7248","docId":"study/devops/Linux\u53d1\u884c\u7248"},{"type":"link","label":"Linux\u8fd0\u7ef4-\u5e38\u7528","href":"/docs/study/devops/Linux\u8fd0\u7ef4-\u5e38\u7528","docId":"study/devops/Linux\u8fd0\u7ef4-\u5e38\u7528"},{"type":"link","label":"Linux\u8fd0\u7ef4-\u76d1\u63a7\u6570\u636e","href":"/docs/study/devops/Linux\u8fd0\u7ef4-\u76d1\u63a7\u6570\u636e","docId":"study/devops/Linux\u8fd0\u7ef4-\u76d1\u63a7\u6570\u636e"},{"type":"link","label":"Linux\u8fd0\u7ef4-\u81ea\u542f","href":"/docs/study/devops/Linux\u8fd0\u7ef4-\u81ea\u542f","docId":"study/devops/Linux\u8fd0\u7ef4-\u81ea\u542f"},{"type":"link","label":"Linux\u8fd0\u7ef4-\u9ad8\u5e76\u53d1","href":"/docs/study/devops/Linux\u8fd0\u7ef4-\u9ad8\u5e76\u53d1","docId":"study/devops/Linux\u8fd0\u7ef4-\u9ad8\u5e76\u53d1"},{"type":"link","label":"SHELL","href":"/docs/study/devops/SHELL","docId":"study/devops/SHELL"},{"type":"link","label":"ansible","href":"/docs/study/devops/ansible","docId":"study/devops/ansible"},{"type":"link","label":"centos-nginx","href":"/docs/study/devops/centos-gninx-app","docId":"study/devops/centos-gninx-app"},{"type":"link","label":"centos-jdk17-app","href":"/docs/study/devops/centos-jdk17-app","docId":"study/devops/centos-jdk17-app"},{"type":"link","label":"jar\u8fd0\u7ef4-\u76d1\u63a7","href":"/docs/study/devops/jar\u8fd0\u7ef4-\u76d1\u63a7","docId":"study/devops/jar\u8fd0\u7ef4-\u76d1\u63a7"},{"type":"link","label":"ssh","href":"/docs/study/devops/ssh","docId":"study/devops/ssh"},{"type":"link","label":"\u94fe\u8def\u8ffd\u8e2a\u76d1\u63a7","href":"/docs/study/devops/\u94fe\u8def\u8ffd\u8e2a\u76d1\u63a7","docId":"study/devops/\u94fe\u8def\u8ffd\u8e2a\u76d1\u63a7"}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u786c\u4ef6/\u5d4c\u5165\u5f0f","items":[{"type":"link","label":"\u6982\u8ff0","href":"/docs/study/hard/","docId":"study/hard/index"},{"type":"link","label":"\u5d4c\u5165\u5f0f_\u5355\u7247\u673a","href":"/docs/study/hard/\u5d4c\u5165\u5f0f_\u5355\u7247\u673a","docId":"study/hard/\u5d4c\u5165\u5f0f_\u5355\u7247\u673a"},{"type":"link","label":"\u786c\u4ef6\u5f00\u53d1\u548c\u5d4c\u5165\u5f0f\u5f00\u53d1","href":"/docs/study/hard/\u786c\u4ef6\u5f00\u53d1\u548c\u5d4c\u5165\u5f0f\u5f00\u53d1","docId":"study/hard/\u786c\u4ef6\u5f00\u53d1\u548c\u5d4c\u5165\u5f0f\u5f00\u53d1"},{"type":"link","label":"\u8def\u7531\u5668\u548c\u4ea4\u6362\u673a\u7684\u533a\u522b","href":"/docs/study/hard/\u8def\u7531\u5668\u548c\u4ea4\u6362\u673a\u7684\u533a\u522b","docId":"study/hard/\u8def\u7531\u5668\u548c\u4ea4\u6362\u673a\u7684\u533a\u522b"},{"type":"link","label":"\u901a\u4fe1\u6a21\u7ec4","href":"/docs/study/hard/\u901a\u4fe1\u6a21\u7ec4","docId":"study/hard/\u901a\u4fe1\u6a21\u7ec4"}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u7f16\u7a0b\u601d\u60f3","items":[{"type":"link","label":"\u6982\u8ff0","href":"/docs/study/think/","docId":"study/think/index"},{"type":"link","label":"\u8bbe\u8ba1\u6a21\u5f0f","href":"/docs/study/think/\u8bbe\u8ba1\u6a21\u5f0f","docId":"study/think/\u8bbe\u8ba1\u6a21\u5f0f"},{"type":"link","label":"IT_CT_OT","href":"/docs/study/think/IT_CT_OT","docId":"study/think/IT_CT_OT"},{"type":"category","label":"\u4ee3\u7801\u8bc4\u5ba1","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Gerrit\u4ee3\u7801\u8bc4\u5ba1\u5de5\u5177","href":"/docs/study/think/\u4ee3\u7801\u8bc4\u5ba1/Gerrit\u4ee3\u7801\u8bc4\u5ba1\u5de5\u5177","docId":"study/think/\u4ee3\u7801\u8bc4\u5ba1/Gerrit\u4ee3\u7801\u8bc4\u5ba1\u5de5\u5177"},{"type":"link","label":"\u4ee3\u7801\u5ba1\u67e5\u95ee\u9898\u624b\u518c","href":"/docs/study/think/\u4ee3\u7801\u8bc4\u5ba1/\u4ee3\u7801\u5ba1\u67e5\u95ee\u9898\u624b\u518c","docId":"study/think/\u4ee3\u7801\u8bc4\u5ba1/\u4ee3\u7801\u5ba1\u67e5\u95ee\u9898\u624b\u518c"}]},{"type":"link","label":"\u5b9e\u65f6\u8ba1\u7b97Storm+Flink","href":"/docs/study/think/\u5b9e\u65f6\u8ba1\u7b97Storm+Flink","docId":"study/think/\u5b9e\u65f6\u8ba1\u7b97Storm+Flink"},{"type":"link","label":"\u5e76\u53d1\u6a21\u578b","href":"/docs/study/think/\u5e76\u53d1\u6a21\u578b","docId":"study/think/\u5e76\u53d1\u6a21\u578b"},{"type":"category","label":"\u67b6\u6784","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"CAP\u7406\u8bba","href":"/docs/study/think/\u67b6\u6784/CAP\u7406\u8bba","docId":"study/think/\u67b6\u6784/CAP\u7406\u8bba"},{"type":"link","label":"\u5f02\u5730\u591a\u6d3b\u67b6\u6784","href":"/docs/study/think/\u67b6\u6784/\u5f02\u5730\u591a\u6d3b\u67b6\u6784","docId":"study/think/\u67b6\u6784/\u5f02\u5730\u591a\u6d3b\u67b6\u6784"},{"type":"link","label":"\u6280\u672f\u4e2d\u53f0","href":"/docs/study/think/\u67b6\u6784/\u6280\u672f\u4e2d\u53f0","docId":"study/think/\u67b6\u6784/\u6280\u672f\u4e2d\u53f0"},{"type":"link","label":"\u67b6\u6784\u56fe\u793a\u4f8b","href":"/docs/study/think/\u67b6\u6784/\u67b6\u6784\u56fe\u793a\u4f8b","docId":"study/think/\u67b6\u6784/\u67b6\u6784\u56fe\u793a\u4f8b"},{"type":"link","label":"\u8d1f\u8f7d\u5747\u8861","href":"/docs/study/think/\u67b6\u6784/\u8d1f\u8f7d\u5747\u8861","docId":"study/think/\u67b6\u6784/\u8d1f\u8f7d\u5747\u8861"},{"type":"link","label":"\u9ad8\u6027\u80fd\u67b6\u6784\u6a21\u5f0f","href":"/docs/study/think/\u67b6\u6784/\u9ad8\u6027\u80fd\u67b6\u6784\u6a21\u5f0f","docId":"study/think/\u67b6\u6784/\u9ad8\u6027\u80fd\u67b6\u6784\u6a21\u5f0f"}],"href":"/docs/study/think/\u67b6\u6784/"},{"type":"category","label":"\u6982\u5ff5\u6a21\u578b","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Actor Model","href":"/docs/study/think/\u6982\u5ff5\u6a21\u578b/Actor Model","docId":"study/think/\u6982\u5ff5\u6a21\u578b/Actor Model"},{"type":"link","label":"Proactor","href":"/docs/study/think/\u6982\u5ff5\u6a21\u578b/Proactor","docId":"study/think/\u6982\u5ff5\u6a21\u578b/Proactor"},{"type":"link","label":"Reactor\u6a21\u5f0f\u53cd\u5e94\u5806\u6a21\u5f0f","href":"/docs/study/think/\u6982\u5ff5\u6a21\u578b/Reactor\u6a21\u5f0f\u53cd\u5e94\u5806\u6a21\u5f0f","docId":"study/think/\u6982\u5ff5\u6a21\u578b/Reactor\u6a21\u5f0f\u53cd\u5e94\u5806\u6a21\u5f0f"}]},{"type":"category","label":"\u7f13\u5b58","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\u5206\u5e03\u5f0f\u7f13\u5b58","href":"/docs/study/think/\u7f13\u5b58/\u5206\u5e03\u5f0f\u7f13\u5b58","docId":"study/think/\u7f13\u5b58/\u5206\u5e03\u5f0f\u7f13\u5b58"}],"href":"/docs/study/think/\u7f13\u5b58/"},{"type":"link","label":"\u8c08\u5de5\u4f5c\u5fc3\u5f97","href":"/docs/study/think/\u8c08\u5de5\u4f5c\u5fc3\u5f97","docId":"study/think/\u8c08\u5de5\u4f5c\u5fc3\u5f97"},{"type":"link","label":"\u9650\u6d41","href":"/docs/study/think/\u9650\u6d41","docId":"study/think/\u9650\u6d41"},{"type":"link","label":"\u9886\u57df\u9a71\u52a8\u8bbe\u8ba1DDD","href":"/docs/study/think/\u9886\u57df\u9a71\u52a8\u8bbe\u8ba1DDD","docId":"study/think/\u9886\u57df\u9a71\u52a8\u8bbe\u8ba1DDD"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Docker","items":[{"type":"link","label":"\u6982\u8ff0","href":"/docs/study/docker/","docId":"study/docker/index"},{"type":"link","label":"Docker Compose","href":"/docs/study/docker/Docker-compose","docId":"study/docker/Docker-compose"},{"type":"link","label":"Docker Swarm","href":"/docs/study/docker/Docker-swarm","docId":"study/docker/Docker-swarm"},{"type":"link","label":"Dockerfile\u4f7f\u7528\u8be6\u89e3","href":"/docs/study/docker/Dockerfile\u4f7f\u7528\u8be6\u89e3","docId":"study/docker/Dockerfile\u4f7f\u7528\u8be6\u89e3"},{"type":"link","label":"Docker\u7684\u4f7f\u7528\u603b\u7ed3","href":"/docs/study/docker/Docker\u7684\u4f7f\u7528\u603b\u7ed3","docId":"study/docker/Docker\u7684\u4f7f\u7528\u603b\u7ed3"},{"type":"link","label":"docker-kafka","href":"/docs/study/docker/docker-kafka","docId":"study/docker/docker-kafka"},{"type":"link","label":"docker-linux","href":"/docs/study/docker/docker-linux","docId":"study/docker/docker-linux"},{"type":"link","label":"docker-mysql","href":"/docs/study/docker/docker-mysql","docId":"study/docker/docker-mysql"}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u7ade\u54c1\u5206\u6790","items":[{"type":"link","label":"\u6982\u8ff0","href":"/docs/study/competitive/","docId":"study/competitive/index"},{"type":"link","label":"\u5de5\u4e1a\u4e92\u8054\u7f51\u63a2\u7a76","href":"/docs/study/competitive/\u5de5\u4e1a\u4e92\u8054\u7f51\u63a2\u7a76","docId":"study/competitive/\u5de5\u4e1a\u4e92\u8054\u7f51\u63a2\u7a76"},{"type":"link","label":"CMP-DMP-AEP-BAP","href":"/docs/study/competitive/CMP-DMP-AEP-BAP","docId":"study/competitive/CMP-DMP-AEP-BAP"},{"type":"link","label":"TP-LINK","href":"/docs/study/competitive/TP-LINK","docId":"study/competitive/TP-LINK"},{"type":"link","label":"ThingsCloud","href":"/docs/study/competitive/ThingsCloud","docId":"study/competitive/ThingsCloud"},{"type":"link","label":"\u7269\u8054\u7f51\u5e73\u53f0\u5c42\u6982\u8ff0","href":"/docs/study/competitive/\u7269\u8054\u7f51\u5e73\u53f0\u5c42\u6982\u8ff0","docId":"study/competitive/\u7269\u8054\u7f51\u5e73\u53f0\u5c42\u6982\u8ff0"}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u64cd\u4f5c\u7cfb\u7edf","items":[{"type":"link","label":"index","href":"/docs/study/system/","docId":"study/system/index"},{"type":"link","label":"CPU\u7ebf\u7a0b\u5e76\u53d1","href":"/docs/study/system/CPU\u7ebf\u7a0b\u5e76\u53d1","docId":"study/system/CPU\u7ebf\u7a0b\u5e76\u53d1"},{"type":"link","label":"\u64cd\u4f5c\u7cfb\u7edf IO \u77e5\u8bc6","href":"/docs/study/system/IO","docId":"study/system/IO"},{"type":"link","label":"Open\u6b27\u62c9","href":"/docs/study/system/Open\u6b27\u62c9","docId":"study/system/Open\u6b27\u62c9"},{"type":"link","label":"openWRT","href":"/docs/study/system/openWRT","docId":"study/system/openWRT"},{"type":"link","label":"shell\u7f16\u7a0b\u667aexpect","href":"/docs/study/system/shell\u7f16\u7a0b\u667aexpect","docId":"study/system/shell\u7f16\u7a0b\u667aexpect"},{"type":"link","label":"yum-dnf","href":"/docs/study/system/yum-dnf","docId":"study/system/yum-dnf"},{"type":"link","label":"\u5185\u5b58\u7ba1\u7406","href":"/docs/study/system/\u5185\u5b58\u7ba1\u7406","docId":"study/system/\u5185\u5b58\u7ba1\u7406"},{"type":"link","label":"\u53ef\u6267\u884c\u7a0b\u5e8f\u5728\u64cd\u4f5c\u7cfb\u7edf\u4e0b\u7684\u8fd0\u884c\u539f\u7406\u5206\u6790","href":"/docs/study/system/\u53ef\u6267\u884c\u7a0b\u5e8f\u8fd0\u884c\u539f\u7406\u5206\u6790","docId":"study/system/\u53ef\u6267\u884c\u7a0b\u5e8f\u8fd0\u884c\u539f\u7406\u5206\u6790"},{"type":"link","label":"\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838","href":"/docs/study/system/\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838","docId":"study/system/\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838"},{"type":"link","label":"\u7a0b\u5e8f\u8c03\u8bd5","href":"/docs/study/system/\u7a0b\u5e8f\u8c03\u8bd5","docId":"study/system/\u7a0b\u5e8f\u8c03\u8bd5"}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u7f51\u7edc","items":[{"type":"link","label":"IPV6","href":"/docs/study/net/IPV6","docId":"study/net/IPV6"},{"type":"link","label":"MacOS\u7f16\u8bd1OpenVPN","href":"/docs/study/net/MacOS\u7f16\u8bd1OpenVPN","docId":"study/net/MacOS\u7f16\u8bd1OpenVPN"},{"type":"link","label":"OpenVPN","href":"/docs/study/net/OpenVPN","docId":"study/net/OpenVPN"},{"type":"link","label":"SNMP","href":"/docs/study/net/SNMP","docId":"study/net/SNMP"},{"type":"link","label":"TCP","href":"/docs/study/net/TCP","docId":"study/net/TCP"},{"type":"link","label":"UDP","href":"/docs/study/net/UDP","docId":"study/net/UDP"},{"type":"link","label":"VLAN-VXLAN","href":"/docs/study/net/VLAN-VXLAN","docId":"study/net/VLAN-VXLAN"},{"type":"link","label":"Linux ip \u547d\u4ee4","href":"/docs/study/net/ip","docId":"study/net/ip"},{"type":"link","label":"Linux iptables \u9632\u706b\u5899","href":"/docs/study/net/iptables","docId":"study/net/iptables"},{"type":"link","label":"Linux netns","href":"/docs/study/net/netns","docId":"study/net/netns"},{"type":"link","label":"P2P \u7f51\u7edc NAT \u7a7f\u900f\u539f\u7406(\u6253\u6d1e\u65b9\u6848)","href":"/docs/study/net/p2p","docId":"study/net/p2p"},{"type":"link","label":"unix pfctl \u9632\u706b\u5899","href":"/docs/study/net/pfctl\u9632\u706b\u5899","docId":"study/net/pfctl\u9632\u706b\u5899"},{"type":"link","label":"Linux tc","href":"/docs/study/net/tc","docId":"study/net/tc"},{"type":"link","label":"tuntap","href":"/docs/study/net/tuntap","docId":"study/net/tuntap"},{"type":"link","label":"vpn","href":"/docs/study/net/vpn","docId":"study/net/vpn"},{"type":"link","label":"\u4ee3\u7406","href":"/docs/study/net/\u4ee3\u7406","docId":"study/net/\u4ee3\u7406"},{"type":"link","label":"\u5185\u7f51\u7a7f\u900f","href":"/docs/study/net/\u5185\u7f51\u7a7f\u900f","docId":"study/net/\u5185\u7f51\u7a7f\u900f"},{"type":"link","label":"\u5c40\u57df\u7f51IP\u5730\u5740\u8303\u56f4","href":"/docs/study/net/\u5c40\u57df\u7f51IP\u5730\u5740\u8303\u56f4","docId":"study/net/\u5c40\u57df\u7f51IP\u5730\u5740\u8303\u56f4"},{"type":"link","label":"\u5f02\u5730\u7ec4\u7f51","href":"/docs/study/net/\u5f02\u5730\u7ec4\u7f51","docId":"study/net/\u5f02\u5730\u7ec4\u7f51"},{"type":"link","label":"\u6293\u5305\u5de5\u5177","href":"/docs/study/net/\u6293\u5305\u5de5\u5177","docId":"study/net/\u6293\u5305\u5de5\u5177"},{"type":"link","label":"\u7f51\u7edc\u541e\u5410\u91cf\u6d4b\u91cf\u5de5\u5177","href":"/docs/study/net/\u7f51\u7edc\u541e\u5410\u91cf\u6d4b\u91cf\u5de5\u5177","docId":"study/net/\u7f51\u7edc\u541e\u5410\u91cf\u6d4b\u91cf\u5de5\u5177"}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u52a0\u89e3\u5bc6","items":[{"type":"link","label":"ASN.1","href":"/docs/study/encryption/ASN.1","docId":"study/encryption/ASN.1"},{"type":"link","label":"HSM","href":"/docs/study/encryption/HSM","docId":"study/encryption/HSM"},{"type":"link","label":"PKI","href":"/docs/study/encryption/PKI","docId":"study/encryption/PKI"},{"type":"link","label":"SSL TLS HTTPS","href":"/docs/study/encryption/SSL_TLS","docId":"study/encryption/SSL_TLS"},{"type":"link","label":"\u52a0\u89e3\u5bc6","href":"/docs/study/encryption/","docId":"study/encryption/index"},{"type":"link","label":"\u4e2d\u56fd\u5546\u7528\u5bc6\u7801\u7b97\u6cd5","href":"/docs/study/encryption/\u4e2d\u56fd\u5546\u7528\u5bc6\u7801\u7b97\u6cd5","docId":"study/encryption/\u4e2d\u56fd\u5546\u7528\u5bc6\u7801\u7b97\u6cd5"},{"type":"link","label":"\u52a0\u89e3\u5bc6\u670d\u52a1","href":"/docs/study/encryption/\u52a0\u89e3\u5bc6\u670d\u52a1","docId":"study/encryption/\u52a0\u89e3\u5bc6\u670d\u52a1"},{"type":"link","label":"\u5bc6\u7801\u54c8\u5e0c\u7b97\u6cd5","href":"/docs/study/encryption/\u5bc6\u7801\u54c8\u5e0c\u7b97\u6cd5\u603b\u7ed3","docId":"study/encryption/\u5bc6\u7801\u54c8\u5e0c\u7b97\u6cd5\u603b\u7ed3"},{"type":"link","label":"\u5bf9\u79f0\u52a0\u5bc6-\u5206\u7ec4\u5bc6\u7801\u7684\u6a21\u5f0f","href":"/docs/study/encryption/\u5bf9\u79f0\u52a0\u5bc6-\u5206\u7ec4\u5bc6\u7801\u7684\u6a21\u5f0f","docId":"study/encryption/\u5bf9\u79f0\u52a0\u5bc6-\u5206\u7ec4\u5bc6\u7801\u7684\u6a21\u5f0f"},{"type":"link","label":"\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3","href":"/docs/study/encryption/\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3","docId":"study/encryption/\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3"},{"type":"link","label":"\u6570\u5b57\u8bc1\u4e66","href":"/docs/study/encryption/\u6570\u5b57\u8bc1\u4e66","docId":"study/encryption/\u6570\u5b57\u8bc1\u4e66"},{"type":"link","label":"\u6d88\u606f\u6458\u8981\u7b97\u6cd5\u603b\u7ed3","href":"/docs/study/encryption/\u6d88\u606f\u6458\u8981\u7b97\u6cd5\u603b\u7ed3","docId":"study/encryption/\u6d88\u606f\u6458\u8981\u7b97\u6cd5\u603b\u7ed3"},{"type":"link","label":"\u7b49\u4fdd\u548c\u5bc6\u8bc4","href":"/docs/study/encryption/\u7b49\u4fdd_\u5bc6\u8bc4","docId":"study/encryption/\u7b49\u4fdd_\u5bc6\u8bc4"},{"type":"link","label":"\u884c\u4e1a\u5206\u6790","href":"/docs/study/encryption/\u884c\u4e1a\u5206\u6790","docId":"study/encryption/\u884c\u4e1a\u5206\u6790"},{"type":"link","label":"\u8bfb\u4e66\u7b14\u8bb0-\u56fe\u89e3\u5bc6\u7801\u6280\u672f","href":"/docs/study/encryption/\u8bfb\u4e66\u7b14\u8bb0-\u56fe\u89e3\u5bc6\u7801\u6280\u672f","docId":"study/encryption/\u8bfb\u4e66\u7b14\u8bb0-\u56fe\u89e3\u5bc6\u7801\u6280\u672f"},{"type":"link","label":"\u975e\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3","href":"/docs/study/encryption/\u975e\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3","docId":"study/encryption/\u975e\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3"}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u4eba\u5de5\u667a\u80fd","items":[{"type":"link","label":"\u4eba\u5de5\u667a\u80fd","href":"/docs/study/ai/","docId":"study/ai/index"}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u5176\u4ed6","items":[{"type":"link","label":"\u5b57\u8282\u5e8f Big Endian Little Endian","href":"/docs/study/other/\u5b57\u8282\u5e8f","docId":"study/other/\u5b57\u8282\u5e8f"},{"type":"link","label":"\u6807\u51c6\u540d\u79f0\u7f29\u5199","href":"/docs/study/other/\u6807\u51c6\u540d\u79f0\u7f29\u5199","docId":"study/other/\u6807\u51c6\u540d\u79f0\u7f29\u5199"}],"collapsed":true,"collapsible":true}],"xuanxingSidebar":[{"type":"link","label":"\u7efc\u8ff0","href":"/docs/xuanxing/","docId":"xuanxing/index"},{"type":"category","label":"\u524d\u7aef","items":[{"type":"link","label":"\u6982\u8ff0","href":"/docs/xuanxing/fe/","docId":"xuanxing/fe/index"},{"type":"link","label":"\u5b98\u7f51","href":"/docs/xuanxing/fe/\u5b98\u7f51","docId":"xuanxing/fe/\u5b98\u7f51"},{"type":"link","label":"\u7528\u6237\u7aef+\u7ba1\u7406\u7aef","href":"/docs/xuanxing/fe/\u7528\u6237\u7aef\u7ba1\u7406\u7aef","docId":"xuanxing/fe/\u7528\u6237\u7aef\u7ba1\u7406\u7aef"},{"type":"link","label":"\u79fb\u52a8\u7aef","href":"/docs/xuanxing/fe/\u79fb\u52a8\u7aef","docId":"xuanxing/fe/\u79fb\u52a8\u7aef"},{"type":"link","label":"\u7ec4\u6001\u7f16\u8f91\u5668/\u5927\u5c4f\u7f16\u8f91\u5668","href":"/docs/xuanxing/fe/\u7ec4\u6001+\u5927\u5c4f\u7f16\u8f91\u5668","docId":"xuanxing/fe/\u7ec4\u6001+\u5927\u5c4f\u7f16\u8f91\u5668"}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u540e\u7aef","items":[{"type":"link","label":"\u6982\u8ff0","href":"/docs/xuanxing/back/","docId":"xuanxing/back/index"}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u8fd0\u7ef4","items":[{"type":"link","label":"\u6982\u8ff0","href":"/docs/xuanxing/devops/","docId":"xuanxing/devops/index"}],"collapsed":true,"collapsible":true},{"type":"category","label":"ThingsBoard","items":[{"type":"link","label":"\u7efc\u8ff0","href":"/docs/xuanxing/thingsboard/","docId":"xuanxing/thingsboard/index"},{"type":"link","label":"\u5982\u4f55\u4f7f\u7528","href":"/docs/xuanxing/thingsboard/\u5982\u4f55\u4f7f\u7528","docId":"xuanxing/thingsboard/\u5982\u4f55\u4f7f\u7528"},{"type":"link","label":"\u6e90\u7801\u7ed3\u6784","href":"/docs/xuanxing/thingsboard/\u6e90\u7801\u7ed3\u6784","docId":"xuanxing/thingsboard/\u6e90\u7801\u7ed3\u6784"}],"collapsed":true,"collapsible":true}],"iotCloudSidebar":[{"type":"link","label":"\u6982\u8ff0","href":"/docs/iotcloud/","docId":"iotcloud/index"},{"type":"category","label":"\u8bbe\u5907\u63a5\u5165","items":[{"type":"link","label":"\u6982\u8ff0","href":"/docs/iotcloud/connect/","docId":"iotcloud/connect/index"},{"type":"link","label":"MQTT \u8bbe\u5907\u63a5\u5165","href":"/docs/iotcloud/connect/mqtt","docId":"iotcloud/connect/mqtt"},{"type":"link","label":"TCP \u8bbe\u5907\u63a5\u5165","href":"/docs/iotcloud/connect/tcp","docId":"iotcloud/connect/tcp"},{"type":"link","label":"HTTP \u8bbe\u5907\u63a5\u5165","href":"/docs/iotcloud/connect/http","docId":"iotcloud/connect/http"}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u8bbe\u5907\u7ba1\u7406","items":[{"type":"link","label":"\u6982\u8ff0","href":"/docs/iotcloud/devicemanager/","docId":"iotcloud/devicemanager/index"},{"type":"link","label":"\u8bbe\u5907\u7c7b\u578b\u7ba1\u7406","href":"/docs/iotcloud/devicemanager/device-type","docId":"iotcloud/devicemanager/device-type"},{"type":"link","label":"\u8bbe\u5907\u4fe1\u606f\u7ba1\u7406","href":"/docs/iotcloud/devicemanager/device-info","docId":"iotcloud/devicemanager/device-info"},{"type":"link","label":"\u8bbe\u5907\u5206\u7ec4\u7ba1\u7406","href":"/docs/iotcloud/devicemanager/device-group","docId":"iotcloud/devicemanager/device-group"}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u7528\u6237\u4e2d\u5fc3","items":[{"type":"link","label":"\u6982\u8ff0","href":"/docs/iotcloud/usercenter/","docId":"iotcloud/usercenter/index"},{"type":"link","label":"\u7528\u6237\u65e5\u5fd7","href":"/docs/iotcloud/usercenter/user-log","docId":"iotcloud/usercenter/user-log"},{"type":"link","label":"\u7528\u6237\u8bbe\u7f6e","href":"/docs/iotcloud/usercenter/user-settings","docId":"iotcloud/usercenter/user-settings"},{"type":"link","label":"RAM \u7528\u6237","href":"/docs/iotcloud/usercenter/system-user","docId":"iotcloud/usercenter/system-user"},{"type":"link","label":"\u5ba2\u6237\u7ba1\u7406","href":"/docs/iotcloud/usercenter/customer","docId":"iotcloud/usercenter/customer"}],"collapsed":true,"collapsible":true}]},"docs":{"iotcloud/alarmlinkage/index":{"id":"iotcloud/alarmlinkage/index","title":"\u6982\u8ff0","description":"\u62a5\u8b66\u8054\u52a8\u4e3b\u8981\u662f\u7ba1\u7406\u62a5\u8b66\u63a8\u9001\u548c\u62a5\u8b66\u8054\u7cfb\u4eba\u3002"},"iotcloud/connect/http":{"id":"iotcloud/connect/http","title":"HTTP \u8bbe\u5907\u63a5\u5165","description":"","sidebar":"iotCloudSidebar"},"iotcloud/connect/index":{"id":"iotcloud/connect/index","title":"\u6982\u8ff0","description":"\u8bbe\u5907\u63a5\u5165\u4e91\u5e73\u53f0\uff0c\u6700\u6838\u5fc3\u7684\u70b9\u662f\u63a5\u5165\u534f\u8bae\uff0c\u672c\u5e73\u53f0\u76ee\u524d\u652f\u6301\u6700\u6d41\u884c\u7684 MQTT\uff0c\u4f20\u7edf\u7684 TCP\uff0c\u4ee5\u53ca\u5904\u7406\u5f02\u6784\u7cfb\u7edf\u6216\u7b80\u5355\u4f7f\u7528\u7684 HTTP \u534f\u8bae\u3002","sidebar":"iotCloudSidebar"},"iotcloud/connect/mqtt":{"id":"iotcloud/connect/mqtt","title":"MQTT \u8bbe\u5907\u63a5\u5165","description":"\u6211\u89c9\u5f97\u5927\u6982\u5206\u4e24\u79cd\u6a21\u5f0f\uff1a","sidebar":"iotCloudSidebar"},"iotcloud/connect/tcp":{"id":"iotcloud/connect/tcp","title":"TCP \u8bbe\u5907\u63a5\u5165","description":"TCP \u63a5\u5165\u5e94\u8be5\u5c5e\u4e8e\u6700\u4e3a\u4f20\u7edf\u7684\u63a5\u5165\u65b9\u5f0f\uff0c\u534f\u8bae\u53ef\u4ee5\u91c7\u7528\u79c1\u6709\u534f\u8bae\u6216\u901a\u7528\u7684 Modbus \u7b49\u3002","sidebar":"iotCloudSidebar"},"iotcloud/devicemanager/device-group":{"id":"iotcloud/devicemanager/device-group","title":"\u8bbe\u5907\u5206\u7ec4\u7ba1\u7406","description":"\u4e3a\u4ec0\u4e48\u9700\u8981\u8bbe\u8ba1\u8bbe\u5907\u5206\u7ec4\u8fd9\u4e2a\u529f\u80fd\uff1f","sidebar":"iotCloudSidebar"},"iotcloud/devicemanager/device-info":{"id":"iotcloud/devicemanager/device-info","title":"\u8bbe\u5907\u4fe1\u606f\u7ba1\u7406","description":"","sidebar":"iotCloudSidebar"},"iotcloud/devicemanager/device-type":{"id":"iotcloud/devicemanager/device-type","title":"\u8bbe\u5907\u7c7b\u578b\u7ba1\u7406","description":"","sidebar":"iotCloudSidebar"},"iotcloud/devicemanager/index":{"id":"iotcloud/devicemanager/index","title":"\u6982\u8ff0","description":"\u8bbe\u5907\u7ba1\u7406\u7684\u5185\u5bb9\u5305\u62ec\u8bbe\u5907\u7c7b\u578b\u53ca\u5176\u9644\u5c5e\u529f\u80fd\u7684\u7ba1\u7406\u3001\u8bbe\u5907\u4fe1\u606f\u53ca\u5176\u9644\u5c5e\u529f\u80fd\u7684\u7ba1\u7406\u3001\u8bbe\u5907\u5206\u7ec4\u53ca\u5176\u9644\u5c5e\u529f\u80fd\u7684\u7ba1\u7406\u3002","sidebar":"iotCloudSidebar"},"iotcloud/index":{"id":"iotcloud/index","title":"\u6982\u8ff0","description":"\u6240\u6709\u7a0b\u5e8f\u7684\u4ee3\u7801\u5168\u90e8\u5f00\u6e90\uff0c\u514d\u8d39\u5546\u7528\uff0c\u4e0d\u53d7\u4efb\u4f55\u9650\u5236\uff0c\u81f4\u529b\u4e8e\u6253\u9020\u514d\u8d39\u3001\u5f00\u6e90\u3001\u6027\u80fd\u4f18\u5f02\u7684\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u751f\u6001\u3002","sidebar":"iotCloudSidebar"},"iotcloud/usercenter/customer":{"id":"iotcloud/usercenter/customer","title":"\u5ba2\u6237\u7ba1\u7406","description":"\u672c\u6587\u4e3a\u60a8\u4ecb\u7ecd \u5ba2\u6237 \u7684\u57fa\u672c\u6982\u5ff5\u3001\u4f7f\u7528\u6d41\u7a0b\u3001\u6700\u4f73\u5b9e\u8df5\u548c\u4f7f\u7528\u9650\u5236\u3002","sidebar":"iotCloudSidebar"},"iotcloud/usercenter/index":{"id":"iotcloud/usercenter/index","title":"\u6982\u8ff0","description":"\u7528\u6237\u4e2d\u5fc3\u5305\u62ec\uff1a\u5f53\u524d\u767b\u5f55\u7528\u6237\u7684\u7528\u6237\u65e5\u5fd7\uff0c\u6ce8\u518c\u7528\u6237\u53ca\u5176\u76f8\u5173\u529f\u80fd\u7684\u4fe1\u606f\u8bbe\u7f6e\uff0cRAM \u7528\u6237\u7684\u7ba1\u7406\uff0c\u5ba2\u6237\u7684\u7ba1\u7406\u3002","sidebar":"iotCloudSidebar"},"iotcloud/usercenter/system-user":{"id":"iotcloud/usercenter/system-user","title":"RAM \u7528\u6237","description":"\u672c\u6587\u4e3a\u60a8\u4ecb\u7ecd RAM\uff08Resource Access Management\uff09\u7528\u6237\u7684\u57fa\u672c\u6982\u5ff5\u3001\u4f7f\u7528\u6d41\u7a0b\u3001\u6700\u4f73\u5b9e\u8df5\u548c\u4f7f\u7528\u9650\u5236\u3002","sidebar":"iotCloudSidebar"},"iotcloud/usercenter/user-log":{"id":"iotcloud/usercenter/user-log","title":"\u7528\u6237\u65e5\u5fd7","description":"\u672c\u6587\u4e3a\u60a8\u4ecb\u7ecd \u7528\u6237\u65e5\u5fd7 \u7684\u57fa\u672c\u6982\u5ff5\u3001\u4f7f\u7528\u6d41\u7a0b\u3001\u6700\u4f73\u5b9e\u8df5\u548c\u4f7f\u7528\u9650\u5236\u3002","sidebar":"iotCloudSidebar"},"iotcloud/usercenter/user-settings":{"id":"iotcloud/usercenter/user-settings","title":"\u7528\u6237\u8bbe\u7f6e","description":"\u672c\u6587\u4e3a\u60a8\u4ecb\u7ecd \u7528\u6237\u8bbe\u7f6e \u7684\u57fa\u672c\u6982\u5ff5\u3001\u4f7f\u7528\u6d41\u7a0b\u3001\u6700\u4f73\u5b9e\u8df5\u548c\u4f7f\u7528\u9650\u5236\u3002","sidebar":"iotCloudSidebar"},"study/ai/index":{"id":"study/ai/index","title":"\u4eba\u5de5\u667a\u80fd","description":"LLM","sidebar":"studySidebar"},"study/back/API\u7f51\u5173/APISIX":{"id":"study/back/API\u7f51\u5173/APISIX","title":"Apache APISIX","description":"Apache APISIX \u662f\u4e00\u4e2a\u52a8\u6001\u3001\u5b9e\u65f6\u3001\u9ad8\u6027\u80fd\u7684\u4e91\u539f\u751f API \u7f51\u5173\uff0c\u63d0\u4f9b\u4e86\u8d1f\u8f7d\u5747\u8861\u3001\u52a8\u6001\u4e0a\u6e38\u3001\u7070\u5ea6\u53d1\u5e03\u3001\u670d\u52a1\u7194\u65ad\u3001\u8eab\u4efd\u8ba4\u8bc1\u3001\u53ef\u89c2\u6d4b\u6027\u7b49\u4e30\u5bcc\u7684\u6d41\u91cf\u7ba1\u7406\u529f\u80fd\u3002","sidebar":"studySidebar"},"study/back/API\u7f51\u5173/index":{"id":"study/back/API\u7f51\u5173/index","title":"API \u7f51\u5173","description":"\u53c2\u8003","sidebar":"studySidebar"},"study/back/IEDA/encoding":{"id":"study/back/IEDA/encoding","title":"encoding","description":"\u6ce8\u610f encoding \u7684\u914d\u7f6e","sidebar":"studySidebar"},"study/back/IEDA/fileandcodetemplates":{"id":"study/back/IEDA/fileandcodetemplates","title":"File and Code Templates","description":"File and Code Templates","sidebar":"studySidebar"},"study/back/IEDA/Maven":{"id":"study/back/IEDA/Maven","title":"Maven","description":"Maven \u5728 IDEA \u7684\u6700\u4f73\u914d\u7f6e","sidebar":"studySidebar"},"study/back/IEDA/save-action":{"id":"study/back/IEDA/save-action","title":"Save Action","description":"Save Action","sidebar":"studySidebar"},"study/back/index":{"id":"study/back/index","title":"\u6982\u8ff0","description":"\u540e\u7aef\u662f\u76f8\u5f53\u4e8e\u524d\u7aef\u6765\u8bf4\u7684\uff0c\u7528\u6237\u770b\u4e0d\u5230\u7684\u5185\u5bb9\u7edf\u4e00\u6210\u4e3a\u540e\u7aef\uff0c\u540e\u7aef\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\uff1a","sidebar":"studySidebar"},"study/back/maven/mvnw":{"id":"study/back/maven/mvnw","title":"mvnw","description":"- \u7b80\u4e66-mvnw \u4ecb\u7ecd","sidebar":"studySidebar"},"study/back/maven/pom\u6587\u4ef6\u4e2d\u7684scope\u6807\u7b7e":{"id":"study/back/maven/pom\u6587\u4ef6\u4e2d\u7684scope\u6807\u7b7e","title":"pom\u6587\u4ef6\u4e2d\u7684scope\u6807\u7b7e","description":"\u5206\u7c7b","sidebar":"studySidebar"},"study/back/maven/\u5e38\u7528\u53c2\u6570":{"id":"study/back/maven/\u5e38\u7528\u53c2\u6570","title":"\u5e38\u7528\u53c2\u6570","description":"\u8df3\u8fc7\u6d4b\u8bd5","sidebar":"studySidebar"},"study/back/maven/\u6784\u5efaDocker":{"id":"study/back/maven/\u6784\u5efaDocker","title":"\u6784\u5efaDocker","description":"\u6784\u5efa Java SpringBoot Docker \u955c\u50cf","sidebar":"studySidebar"},"study/back/mq/Kafka":{"id":"study/back/mq/Kafka","title":"Kafka","description":"\u7b80\u4ecb","sidebar":"studySidebar"},"study/back/mq/MQTT broker":{"id":"study/back/mq/MQTT broker","title":"MQTT broker","description":"EMQ EMQX","sidebar":"studySidebar"},"study/back/mq/MQ\u5b9e\u73b0\u5bf9\u6bd4":{"id":"study/back/mq/MQ\u5b9e\u73b0\u5bf9\u6bd4","title":"MQ\u5b9e\u73b0\u5bf9\u6bd4","description":"\u56db\u79cd MQ \u5b9e\u73b0\u5bf9\u6bd4","sidebar":"studySidebar"},"study/back/mq/RocketMQ":{"id":"study/back/mq/RocketMQ","title":"RocketMQ","description":"RocketMQ \u548c Kafka \u6709\u4ec0\u4e48\u533a\u522b\uff1f","sidebar":"studySidebar"},"study/back/POST\u7f16\u7801\u683c\u5f0f":{"id":"study/back/POST\u7f16\u7801\u683c\u5f0f","title":"POST\u7f16\u7801\u683c\u5f0f","description":"\u6982\u8ff0","sidebar":"studySidebar"},"study/back/spring/@Configuration":{"id":"study/back/spring/@Configuration","title":"@Configuration","description":"\u5728 Spring \u6846\u67b6\u4e2d\uff0c@Configuration \u6ce8\u89e3\u7528\u4e8e\u58f0\u660e\u4e00\u4e2a Java \u7c7b\u4f5c\u4e3a\u914d\u7f6e\u7c7b\uff0c\u5b83\u66ff\u4ee3\u4e86\u4f20\u7edf\u7684 XML \u914d\u7f6e\u65b9\u5f0f\u3002\u901a\u8fc7@Configuration \u6ce8\u89e3\u6807\u8bb0\u7684\u7c7b\u53ef\u4ee5\u5305\u542b@Bean \u6ce8\u89e3\uff0c\u7528\u4e8e\u5b9a\u4e49 Spring \u5bb9\u5668\u4e2d\u7684 Bean \u5bf9\u8c61\u3002","sidebar":"studySidebar"},"study/back/spring/@Resource@Autowired":{"id":"study/back/spring/@Resource@Autowired","title":"@Resource@Autowired","description":"@Autowired \u548c @Resource \u90fd\u662f\u7528\u6765\u5b9e\u73b0\u4f9d\u8d56\u6ce8\u5165\u7684\u6ce8\u89e3\uff08\u5728 Spring/Spring Boot \u9879\u76ee\u4e2d\uff09\uff0c\u4f46\u4e8c\u8005\u5374\u6709\u7740 5 \u70b9\u4e0d\u540c\uff1a","sidebar":"studySidebar"},"study/back/spring/SpringAOP":{"id":"study/back/spring/SpringAOP","title":"Spring AOP","description":"\u7b80\u4ecb","sidebar":"studySidebar"},"study/back/spring/SpringBoot":{"id":"study/back/spring/SpringBoot","title":"Spring Boot","description":"\u5e38\u770b\u6587\u6863","sidebar":"studySidebar"},"study/back/spring/SpringFramework":{"id":"study/back/spring/SpringFramework","title":"Spirng Framework","description":"\u5b98\u65b9\u53c2\u8003\u6587\u6863","sidebar":"studySidebar"},"study/back/spring/SpringSecurity":{"id":"study/back/spring/SpringSecurity","title":"Spring Security","description":"Spring Security \u662f\u4e00\u5957\u5b89\u5168\u6846\u67b6\uff0c\u53ef\u4ee5\u57fa\u4e8e RBAC\uff08\u57fa\u4e8e\u89d2\u8272\u7684\u6743\u9650\u63a7\u5236\uff09\u5bf9\u7528\u6237\u7684\u8bbf\u95ee\u6743\u9650\u8fdb\u884c\u63a7\u5236\uff0c","sidebar":"studySidebar"},"study/back/spring/Spring\u751f\u547d\u5468\u671f\u63a5\u53e3":{"id":"study/back/spring/Spring\u751f\u547d\u5468\u671f\u63a5\u53e3","title":"Spring\u751f\u547d\u5468\u671f\u63a5\u53e3","description":"InitializingBean","sidebar":"studySidebar"},"study/back/springcloud/nacos":{"id":"study/back/springcloud/nacos","title":"nacos","description":"\u4e00\u4e2a\u66f4\u6613\u4e8e\u6784\u5efa\u4e91\u539f\u751f\u5e94\u7528\u7684\u52a8\u6001\u670d\u52a1\u53d1\u73b0\u3001\u914d\u7f6e\u7ba1\u7406\u548c\u670d\u52a1\u7ba1\u7406\u5e73\u53f0","sidebar":"studySidebar"},"study/back/springcloud/SpringCloud\u4e94\u5927\u7ec4\u4ef6":{"id":"study/back/springcloud/SpringCloud\u4e94\u5927\u7ec4\u4ef6","title":"SpringCloud\u4e94\u5927\u7ec4\u4ef6","description":"image.png","sidebar":"studySidebar"},"study/back/springcloud/\u5fae\u670d\u52a1":{"id":"study/back/springcloud/\u5fae\u670d\u52a1","title":"\u5fae\u670d\u52a1","description":"\u5fae\u670d\u52a1\u662f\u5206\u5e03\u5f0f\u67b6\u6784\u7684\u4e00\u79cd\uff1b","sidebar":"studySidebar"},"study/back/WSL":{"id":"study/back/WSL","title":"WSL","description":"\u7528\u672c\u5730\u7684ssh\u547d\u4ee4\u8fde\u63a5WSL","sidebar":"studySidebar"},"study/back/Zookeeper":{"id":"study/back/Zookeeper","title":"Zookeeper","description":"Zookeeper\u6982\u8ff0","sidebar":"studySidebar"},"study/back/\u4fe1\u606f\u5b89\u5168/Oauth2":{"id":"study/back/\u4fe1\u606f\u5b89\u5168/Oauth2","title":"Oauth2","description":"Oauth2 \u662f\u76ee\u524d\u6700\u6d41\u884c\u7684\u6388\u6743\u673a\u5236\uff0c\u7528\u6765\u6388\u6743\u7b2c\u4e09\u65b9\u5e94\u7528\uff0c\u83b7\u53d6\u7528\u6237\u6570\u636e\u3002","sidebar":"studySidebar"},"study/back/\u4fe1\u606f\u5b89\u5168/\u8ba4\u8bc1":{"id":"study/back/\u4fe1\u606f\u5b89\u5168/\u8ba4\u8bc1","title":"\u8ba4\u8bc1","description":"\u53c2\u8003 Spring Security \u8ba4\u8bc1","sidebar":"studySidebar"},"study/back/\u4fe1\u606f\u5b89\u5168/\u9632\u8303\u6f0f\u6d1e\u653b\u51fb":{"id":"study/back/\u4fe1\u606f\u5b89\u5168/\u9632\u8303\u6f0f\u6d1e\u653b\u51fb","title":"\u9632\u8303\u6f0f\u6d1e\u653b\u51fb","description":"\u53c2\u8003 Spring Security \u9632\u8303\u6f0f\u6d1e\u653b\u51fb","sidebar":"studySidebar"},"study/back/\u6570\u636e\u5e93\u76f8\u5173/Java\u6570\u636e\u5e93\u8fde\u63a5\u6c60":{"id":"study/back/\u6570\u636e\u5e93\u76f8\u5173/Java\u6570\u636e\u5e93\u8fde\u63a5\u6c60","title":"Java\u6570\u636e\u5e93\u8fde\u63a5\u6c60","description":"Java \u6570\u636e\u5e93\u8fde\u63a5\u6c60","sidebar":"studySidebar"},"study/back/\u6570\u636e\u5e93\u76f8\u5173/JPA-MyBatis":{"id":"study/back/\u6570\u636e\u5e93\u76f8\u5173/JPA-MyBatis","title":"JPA-MyBatis","description":"JPA","sidebar":"studySidebar"},"study/back/\u6570\u636e\u5e93\u76f8\u5173/log4jdbc":{"id":"study/back/\u6570\u636e\u5e93\u76f8\u5173/log4jdbc","title":"log4jdbc","description":"log4jdbc is a Java JDBC driver that can log SQL and/or JDBC calls (and optionally SQL timing information) for other JDBC drivers using the Simple Logging Facade For Java (SLF4J) logging system.","sidebar":"studySidebar"},"study/back/\u6570\u636e\u5e93\u76f8\u5173/MyBatis":{"id":"study/back/\u6570\u636e\u5e93\u76f8\u5173/MyBatis","title":"MyBatis","description":"\u4e00\u4e9b\u7ecf\u5e38\u8bfb\u7684\u5b98\u65b9\u6587\u6863","sidebar":"studySidebar"},"study/back/\u9519\u8bef\u6392\u9664\u96c6\u9526":{"id":"study/back/\u9519\u8bef\u6392\u9664\u96c6\u9526","title":"\u9519\u8bef\u6392\u9664\u96c6\u9526","description":"\u5185\u5b58\u4e0d\u8db3\uff0c\u5bfc\u81f4\u4e0a\u4f20\u6587\u4ef6\u5931\u8d25","sidebar":"studySidebar"},"study/back/\u9ad8\u5e76\u53d1API":{"id":"study/back/\u9ad8\u5e76\u53d1API","title":"\u9ad8\u5e76\u53d1API","description":"\u603b\u7ed3","sidebar":"studySidebar"},"study/competitive/CMP-DMP-AEP-BAP":{"id":"study/competitive/CMP-DMP-AEP-BAP","title":"CMP-DMP-AEP-BAP","description":"\u7b80\u8ff0","sidebar":"studySidebar"},"study/competitive/index":{"id":"study/competitive/index","title":"\u6982\u8ff0","description":"\u7269\u8054\u7f51\u884c\u4e1a\u7684\u4e00\u4e9b\u4e1a\u52a1\u5206\u6790\u3001\u516c\u53f8\u5206\u6790\u3001\u884c\u4e1a\u5206\u6790\u3002","sidebar":"studySidebar"},"study/competitive/ThingsCloud":{"id":"study/competitive/ThingsCloud","title":"ThingsCloud","description":"\u53c2\u8003\uff0c\u53c2\u8003\uff0c\u7edd\u5bf9\u53ef\u4ee5\u53c2\u8003\u3002","sidebar":"studySidebar"},"study/competitive/TP-LINK":{"id":"study/competitive/TP-LINK","title":"TP-LINK","description":"SD-VPN","sidebar":"studySidebar"},"study/competitive/\u5de5\u4e1a\u4e92\u8054\u7f51\u63a2\u7a76":{"id":"study/competitive/\u5de5\u4e1a\u4e92\u8054\u7f51\u63a2\u7a76","title":"\u5de5\u4e1a\u4e92\u8054\u7f51\u63a2\u7a76","description":"\u5206\u7c7b\uff1a\u884c\u4e1a+\u573a\u666f+\u6a21\u5f0f","sidebar":"studySidebar"},"study/competitive/\u7269\u8054\u7f51\u5e73\u53f0\u5c42\u6982\u8ff0":{"id":"study/competitive/\u7269\u8054\u7f51\u5e73\u53f0\u5c42\u6982\u8ff0","title":"\u7269\u8054\u7f51\u5e73\u53f0\u5c42\u6982\u8ff0","description":"\u5728\u5927\u4f17\u719f\u77e5\u7684\u7269\u8054\u7f51\u611f\u77e5\u5c42\u3001\u7f51\u7edc\u5c42\u3001\u5e73\u53f0\u5c42\u3001\u5e94\u7528\u5c42\u56db\u5927\u5c42\u6b21\u91cc\uff0c\u5e73\u53f0\u5c42\u5c06\u4f5c\u4e3a\u7269\u8054\u7f51\u4ece\u8bbe\u5907\u8fde\u63a5\u5230\u573a\u666f\u5e94\u7528\u7684\u5173\u952e\u201c\u6865\u6881\u201d\u800c\u53d1\u6325\u4f5c\u7528\u3002","sidebar":"studySidebar"},"study/db/index":{"id":"study/db/index","title":"\u6982\u8ff0","description":"\u5b58\u50a8\u6570\u636e\u7684\u670d\u52a1\u7edf\u4e00\u6210\u4e3a\u6570\u636e\u5e93\uff0c\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\uff1a","sidebar":"studySidebar"},"study/db/NewSQL/TiDB":{"id":"study/db/NewSQL/TiDB","title":"TiDB","description":"\u80cc\u666f","sidebar":"studySidebar"},"study/db/NoSQL/Cassandra":{"id":"study/db/NoSQL/Cassandra","title":"Cassandra","description":"\u7b80\u4ecb","sidebar":"studySidebar"},"study/db/NoSQL/Etcd":{"id":"study/db/NoSQL/Etcd","title":"Etcd","description":"ETCD\u662fCoreOs\u516c\u53f8\u53d1\u5e03\u7684\u4e00\u4e2a\u5206\u5e03\u5f0f\u7684\u3001\u9ad8\u53ef\u7528\u7684\u3001key-value\u5b58\u50a8\u7684\u6570\u636e\u5e93\u3002\u57fa\u4e8eGo\u8bed\u8a00\u5b9e\u73b0\uff0ck8s\u4e2d\u4e5f\u4f7f\u7528\u4e86ETCD\u4f5c\u4e3a\u6570\u636e\u5e93\u3002\u4e3b\u8981\u7528\u4e8e\u5171\u4eab\u914d\u7f6e\u548c\u670d\u52a1\u53d1\u73b0\u3002\u76f8\u5bf9\u4e8ezookeeper\u91c7\u7528\u7684Paxos\uff0cETCD\u91c7\u7528\u7684\u662fRaft\u7b97\u6cd5\uff0c\u8be5\u7b97\u6cd5\u5177\u5907\u7684\u6027\u80fd\u66f4\u4f73\u3001\u6570\u636e\u4e00\u81f4\u6027\u5f3a\u7b49\u4f18\u70b9\u3002","sidebar":"studySidebar"},"study/db/NoSQL/Hadoop":{"id":"study/db/NoSQL/Hadoop","title":"Hadoop","description":"\u9000\u51fa\u5b89\u5168\u6a21\u5f0f","sidebar":"studySidebar"},"study/db/NoSQL/Hbase":{"id":"study/db/NoSQL/Hbase","title":"Hbase","description":"\u5217\u5f0f\u6570\u636e\u5e93","sidebar":"studySidebar"},"study/db/NoSQL/Ignite":{"id":"study/db/NoSQL/Ignite","title":"Ignite","description":"\u5b9a\u4e49","sidebar":"studySidebar"},"study/db/NoSQL/MongoDB":{"id":"study/db/NoSQL/MongoDB","title":"MongoDB","description":"MongoDB","sidebar":"studySidebar"},"study/db/NoSQL/Redis":{"id":"study/db/NoSQL/Redis","title":"Redis","description":"Redis \u662f\u4ec0\u4e48","sidebar":"studySidebar"},"study/db/OLAP/ClickHouse":{"id":"study/db/OLAP/ClickHouse","title":"ClickHouse","description":"Clickhouse\u662fYandex\u5f00\u6e90\u7684\u4e00\u4e2a\u7528\u4e8e\u5b9e\u65f6\u6570\u636e\u5206\u6790\u7684\u6570\u636e\u5e93\uff0c\u4e00\u5f00\u59cb\u5c31\u7528\u5728yandex\u5185\u90e8\u7684\u591a\u4e2a\u6570\u636e\u5206\u6790\u4e1a\u52a1\u4e0a\u3002\u8981\u4ecb\u7ecdclickhouse\uff0c\u8fd8\u662f\u9700\u8981\u5148\u4ecb\u7ecd\u4e00\u4e0byandex\u3002Clickhouse\u4e3a\u4ec0\u4e48\u4f1a\u51fa\u73b0\uff0c\u5176\u5b9e\u548cyandex\u7684\u4e1a\u52a1\u5173\u7cfb\u975e\u5e38\u5927\u3002Yandex\u662f\u4fc4\u7f57\u65af\u6700\u5927\u7684\u641c\u7d22\u5f15\u64ce\uff0c\u4f1a\u6709\u5f88\u591a\u6570\u636e\u5206\u6790\u7684\u4e1a\u52a1\uff0c\u5176\u4e2d\u6570\u636e\u91cf\u6700\u5927\u7684\u4e1a\u52a1\uff0c\u5c31\u662fYandex.Metrica\uff0c\u8fd9\u662f\u4e00\u4e2a\u548c\u767e\u5ea6\u7edf\u8ba1\u7c7b\u4f3c\u7684\u7f51\u7ad9\u6570\u636e\u5206\u6790\u670d\u52a1\uff0c\u6570\u636e\u91cf\u4e5f\u4ec5\u6b21\u4e8egoogle analysis\u3002\u81ea\u4eceClickhouse\u5f00\u6e90\u540e\uff0c\u5728\u56fd\u5185\u5916\u7684\u5f88\u591a\u516c\u53f8\u7684\u7ebf\u4e0a\u4e1a\u52a1\u90fd\u5df2\u7ecf\u5f00\u59cb\u4f7f\u7528\u3002","sidebar":"studySidebar"},"study/db/OLAP/Kylin":{"id":"study/db/OLAP/Kylin","title":"Kylin","description":"Apache Kylin\u2122\u662f\u4e00\u4e2a\u5f00\u6e90\u7684\u3001\u5206\u5e03\u5f0f\u7684\u5206\u6790\u578b\u6570\u636e\u4ed3\u5e93\uff0c\u63d0\u4f9bHadoop/Spark \u4e4b\u4e0a\u7684 SQL \u67e5\u8be2\u63a5\u53e3\u53ca\u591a\u7ef4\u5206\u6790\uff08OLAP\uff09\u80fd\u529b\u4ee5\u652f\u6301\u8d85\u5927\u89c4\u6a21\u6570\u636e\uff0c\u6700\u521d\u7531 eBay \u5f00\u53d1\u5e76\u8d21\u732e\u81f3\u5f00\u6e90\u793e\u533a\u3002\u5b83\u80fd\u5728\u4e9a\u79d2\u5185\u67e5\u8be2\u5de8\u5927\u7684\u8868\u3002","sidebar":"studySidebar"},"study/db/OLAP/StarRocks":{"id":"study/db/OLAP/StarRocks","title":"StarRocks","description":"\u80cc\u666f\u4fe1\u606f","sidebar":"studySidebar"},"study/db/OLAP/\u7efc\u5408\u6982\u8ff0":{"id":"study/db/OLAP/\u7efc\u5408\u6982\u8ff0","title":"\u7efc\u5408\u6982\u8ff0","description":"1. OLAP\u4e0eOLTP\u7684\u533a\u522b\uff1f","sidebar":"studySidebar"},"study/db/SQL/MariaDB":{"id":"study/db/SQL/MariaDB","title":"MariaDB","description":"MariaDB\u6570\u636e\u5e93\u7ba1\u7406\u7cfb\u7edf\u662fMySQL\u7684\u4e00\u4e2a\u5206\u652f\uff0c\u4e3b\u8981\u7531\u5f00\u6e90\u793e\u533a\u5728\u7ef4\u62a4\uff0c\u91c7\u7528GPL\u6388\u6743\u8bb8\u53ef\u3002\u5f00\u53d1\u8fd9\u4e2a\u5206\u652f\u7684\u539f\u56e0\u4e4b\u4e00\u662f\uff1a\u7532\u9aa8\u6587\u516c\u53f8\u6536\u8d2d\u4e86MySQL\u540e\uff0c\u6709\u5c06MySQL\u95ed\u6e90\u7684\u6f5c\u5728\u98ce\u9669\uff0c\u56e0\u6b64\u793e\u533a\u91c7\u7528\u5206\u652f\u7684\u65b9\u5f0f\u6765\u907f\u5f00\u8fd9\u4e2a\u98ce\u9669\u3002","sidebar":"studySidebar"},"study/db/SQL/MySQL":{"id":"study/db/SQL/MySQL","title":"MySQL","description":"\u7248\u672c\u9009\u62e9","sidebar":"studySidebar"},"study/db/SQL/MySQL-\u7b14\u8bb0":{"id":"study/db/SQL/MySQL-\u7b14\u8bb0","title":"MySQL \u7b14\u8bb0","description":"WITH \u67e5\u8be2","sidebar":"studySidebar"},"study/db/SQL/OpenGauss":{"id":"study/db/SQL/OpenGauss","title":"OpenGauss","description":"\u5b98\u7f51 https://opengauss.org/zh/","sidebar":"studySidebar"},"study/db/SQL/PostgreSQL":{"id":"study/db/SQL/PostgreSQL","title":"PostgreSQL","description":"\u7b80\u4ecb","sidebar":"studySidebar"},"study/db/SQL/\u7efc\u5408\u6982\u8ff0":{"id":"study/db/SQL/\u7efc\u5408\u6982\u8ff0","title":"\u7efc\u5408\u6982\u8ff0","description":"\u80cc\u666f","sidebar":"studySidebar"},"study/db/SQL/\u8fbe\u68a6":{"id":"study/db/SQL/\u8fbe\u68a6","title":"\u8fbe\u68a6\u6570\u636e\u5e93","description":"\u4e3a\u4e86\u4fdd\u8bc1\u6570\u636e\u5e93\u7cfb\u7edf\u7684\u5b89\u5168\u6027\uff0cDM \u6570\u636e\u5e93\u91c7\u7528\u201c\u4e09\u6743\u5206\u7acb\u201d\u6216\u201c\u56db\u6743\u5206\u7acb\u201d\u7684\u5b89\u5168\u673a\u5236\uff0c\u201c\u4e09\u6743\u5206\u7acb\u201d\u65f6\u7cfb\u7edf\u5185\u7f6e\u4e09\u79cd\u7cfb\u7edf\u7ba1\u7406\u5458\uff0c\u5305\u62ec\u6570\u636e\u5e93\u7ba1\u7406\u5458\u3001\u6570\u636e\u5e93\u5b89\u5168\u5458\u548c\u6570\u636e\u5e93\u5ba1\u8ba1\u5458\uff0c\u201c\u56db\u6743\u5206\u7acb\u201d\u65f6\u65b0\u589e\u4e86\u4e00\u7c7b\u7528\u6237\uff0c\u79f0\u4e3a\u6570\u636e\u5e93\u5bf9\u8c61\u64cd\u4f5c\u5458\u3002\u5b83\u4eec\u5404\u53f8\u5176\u804c\uff0c\u4e92\u76f8\u5236\u7ea6\uff0c\u6709\u6548\u5730\u907f\u514d\u4e86\u5c06\u6240\u6709\u6743\u9650\u96c6\u4e2d\u4e8e\u4e00\u4eba\u7684\u98ce\u9669\uff0c\u4fdd\u8bc1\u4e86\u7cfb\u7edf\u7684\u5b89\u5168\u6027\u3002","sidebar":"studySidebar"},"study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/Elasticsearch":{"id":"study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/Elasticsearch","title":"Elasticsearch","description":"ES\u7248\u672c","sidebar":"studySidebar"},"study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/\u7efc\u5408\u6982\u8ff0":{"id":"study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/\u7efc\u5408\u6982\u8ff0","title":"\u7efc\u5408\u6982\u8ff0","description":"\u4f20\u7edf\u7684\u5173\u7cfb\u578b\u6570\u636e\u5e93\u901a\u8fc7\u7d22\u5f15\u6765\u8fbe\u5230\u5feb\u901f\u67e5\u8be2\u7684\u76ee\u7684\uff0c\u4f46\u662f\u5728\u5168\u6587\u641c\u7d22\u7684\u4e1a\u52a1\u573a\u666f\u4e0b\uff0c\u7d22\u5f15\u4e5f\u65e0\u80fd\u4e3a\u529b\uff0c\u4e3b\u8981\u4f53\u73b0\u5728\uff1a","sidebar":"studySidebar"},"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Apache IoTDB":{"id":"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Apache IoTDB","title":"Apache IoTDB","description":"\u5b98\u65b9\u6587\u6863","sidebar":"studySidebar"},"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Druid":{"id":"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Druid","title":"Druid","description":"\u57fa\u672c\u4fe1\u606f","sidebar":"studySidebar"},"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/InfluxDB":{"id":"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/InfluxDB","title":"InfluxDB","description":"\u5b98\u65b9\u6587\u6863","sidebar":"studySidebar"},"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/KairosDB":{"id":"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/KairosDB","title":"KairosDB","description":"\u57fa\u672c\u4fe1\u606f","sidebar":"studySidebar"},"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/OpenTSDB":{"id":"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/OpenTSDB","title":"OpenTSDB","description":"\u57fa\u672c\u4fe1\u606f","sidebar":"studySidebar"},"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TDengine":{"id":"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TDengine","title":"TDengine","description":"\u5b98\u7f51","sidebar":"studySidebar"},"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TimescaleDB":{"id":"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TimescaleDB","title":"TimescaleDB","description":"\u57fa\u672c\u4fe1\u606f","sidebar":"studySidebar"},"study/db/\u7efc\u5408":{"id":"study/db/\u7efc\u5408","title":"\u7efc\u5408","description":"\u8f6f\u4ef6\u7cfb\u7edf\u6839\u636e\u5b58\u50a8\u7ed3\u6784\u7684\u5206\u7c7b","sidebar":"studySidebar"},"study/devops/ansible":{"id":"study/devops/ansible","title":"ansible","description":"\u5e38\u7528","sidebar":"studySidebar"},"study/devops/API\u7684\u8bf7\u6c42\u91cf\u5206\u6790":{"id":"study/devops/API\u7684\u8bf7\u6c42\u91cf\u5206\u6790","title":"API\u7684\u8bf7\u6c42\u91cf\u5206\u6790","description":"\u6570\u636e\u6d41\u5411","sidebar":"studySidebar"},"study/devops/centos-gninx-app":{"id":"study/devops/centos-gninx-app","title":"centos-nginx","description":"","sidebar":"studySidebar"},"study/devops/centos-jdk17-app":{"id":"study/devops/centos-jdk17-app","title":"centos-jdk17-app","description":"\u5b89\u88c5 jdk","sidebar":"studySidebar"},"study/devops/index":{"id":"study/devops/index","title":"\u6982\u8ff0","description":"\u8f6f\u4ef6\u5f00\u53d1 + \u7cfb\u7edf\u8fd0\u7ef4","sidebar":"studySidebar"},"study/devops/jar\u8fd0\u7ef4-\u76d1\u63a7":{"id":"study/devops/jar\u8fd0\u7ef4-\u76d1\u63a7","title":"jar\u8fd0\u7ef4-\u76d1\u63a7","description":"jstat","sidebar":"studySidebar"},"study/devops/Linux\u53d1\u884c\u7248":{"id":"study/devops/Linux\u53d1\u884c\u7248","title":"Linux\u53d1\u884c\u7248","description":"OpenEuler","sidebar":"studySidebar"},"study/devops/Linux\u8fd0\u7ef4-\u5e38\u7528":{"id":"study/devops/Linux\u8fd0\u7ef4-\u5e38\u7528","title":"Linux\u8fd0\u7ef4-\u5e38\u7528","description":"\u5185\u6838/\u53d1\u884c\u7248","sidebar":"studySidebar"},"study/devops/Linux\u8fd0\u7ef4-\u76d1\u63a7\u6570\u636e":{"id":"study/devops/Linux\u8fd0\u7ef4-\u76d1\u63a7\u6570\u636e","title":"Linux\u8fd0\u7ef4-\u76d1\u63a7\u6570\u636e","description":"\u7cfb\u7edf\u5e73\u5747\u8d1f\u8f7d\u548cCPU\u4f7f\u7528\u7387","sidebar":"studySidebar"},"study/devops/Linux\u8fd0\u7ef4-\u81ea\u542f":{"id":"study/devops/Linux\u8fd0\u7ef4-\u81ea\u542f","title":"Linux\u8fd0\u7ef4-\u81ea\u542f","description":"systemd\u548cinit\u662fLinux\u7cfb\u7edf\u4e2d\u7528\u4e8e\u542f\u52a8\u548c\u7ba1\u7406\u7cfb\u7edf\u7684\u4e24\u4e2a\u4e0d\u540c\u5de5\u5177\u3002","sidebar":"studySidebar"},"study/devops/Linux\u8fd0\u7ef4-\u9ad8\u5e76\u53d1":{"id":"study/devops/Linux\u8fd0\u7ef4-\u9ad8\u5e76\u53d1","title":"Linux\u8fd0\u7ef4-\u9ad8\u5e76\u53d1","description":"\u6700\u5927\u6587\u4ef6\u63cf\u8ff0\u7b26","sidebar":"studySidebar"},"study/devops/SHELL":{"id":"study/devops/SHELL","title":"SHELL","description":"SHELL\u811a\u672c\u53c2\u6570","sidebar":"studySidebar"},"study/devops/ssh":{"id":"study/devops/ssh","title":"ssh","description":"ssh\u8fde\u63a5\u4e0d\u4e0a","sidebar":"studySidebar"},"study/devops/\u94fe\u8def\u8ffd\u8e2a\u76d1\u63a7":{"id":"study/devops/\u94fe\u8def\u8ffd\u8e2a\u76d1\u63a7","title":"\u94fe\u8def\u8ffd\u8e2a\u76d1\u63a7","description":"jaeger","sidebar":"studySidebar"},"study/docker/Docker-compose":{"id":"study/docker/Docker-compose","title":"Docker Compose","description":"\u5b9a\u4e49","sidebar":"studySidebar"},"study/docker/docker-kafka":{"id":"study/docker/docker-kafka","title":"docker-kafka","description":"docker kafka","sidebar":"studySidebar"},"study/docker/docker-linux":{"id":"study/docker/docker-linux","title":"docker-linux","description":"alpine","sidebar":"studySidebar"},"study/docker/docker-mysql":{"id":"study/docker/docker-mysql","title":"docker-mysql","description":"","sidebar":"studySidebar"},"study/docker/Docker-swarm":{"id":"study/docker/Docker-swarm","title":"Docker Swarm","description":"Docker Compose \u662f\u4e00\u4e2a\u5728\u5355\u4e2a\u670d\u52a1\u5668\u6216\u4e3b\u673a\u4e0a\u521b\u5efa\u591a\u4e2a\u5bb9\u5668\u7684\u5de5\u5177","sidebar":"studySidebar"},"study/docker/Dockerfile\u4f7f\u7528\u8be6\u89e3":{"id":"study/docker/Dockerfile\u4f7f\u7528\u8be6\u89e3","title":"Dockerfile\u4f7f\u7528\u8be6\u89e3","description":"\u5b98\u65b9\u53c2\u8003\u6587\u6863","sidebar":"studySidebar"},"study/docker/Docker\u7684\u4f7f\u7528\u603b\u7ed3":{"id":"study/docker/Docker\u7684\u4f7f\u7528\u603b\u7ed3","title":"Docker\u7684\u4f7f\u7528\u603b\u7ed3","description":"1. Docker \u5b98\u65b9\u4ed3\u5e93 \xa0https://hub.docker.com","sidebar":"studySidebar"},"study/docker/index":{"id":"study/docker/index","title":"\u6982\u8ff0","description":"\u4e00\u79cd\u865a\u62df\u6280\u672f\u3002","sidebar":"studySidebar"},"study/encryption/ASN.1":{"id":"study/encryption/ASN.1","title":"ASN.1","description":"\u62bd\u8c61\u8bed\u6cd5\u6807\u8bb0\u3001","sidebar":"studySidebar"},"study/encryption/HSM":{"id":"study/encryption/HSM","title":"HSM","description":"HSM \u52a0\u5bc6\u673a\u539f\u7406","sidebar":"studySidebar"},"study/encryption/index":{"id":"study/encryption/index","title":"\u52a0\u89e3\u5bc6","description":"\u52a0\u5bc6\u548c\u89e3\u5bc6","sidebar":"studySidebar"},"study/encryption/PKI":{"id":"study/encryption/PKI","title":"PKI","description":"\u53c2\u8003","sidebar":"studySidebar"},"study/encryption/SSL_TLS":{"id":"study/encryption/SSL_TLS","title":"SSL TLS HTTPS","description":"\u4e3a\u4e86\u4fdd\u8bc1\u7f51\u7edc\u901a\u4fe1\u7684\u5b89\u5168\u6027\uff0c\u9700\u8981\u5bf9\u7f51\u7edc\u4e0a\u4f20\u9012\u7684\u6570\u636e\u8fdb\u884c\u52a0\u5bc6\u3002\u73b0\u5728\u4e3b\u6d41\u7684\u52a0\u5bc6\u65b9\u6cd5\u5c31\u662f SSL (Secure Socket Layer)\uff0cTLS (Transport Layer Security)\u3002\u540e\u8005\u6bd4\u524d\u8005\u8981\u65b0\u4e00\u4e9b\uff0c\u4e0d\u8fc7\u5728\u5f88\u591a\u573a\u5408\u8fd8\u662f\u7528 SSL \u6307\u4ee3 SSL \u548c TLS\u3002","sidebar":"studySidebar"},"study/encryption/\u4e2d\u56fd\u5546\u7528\u5bc6\u7801\u7b97\u6cd5":{"id":"study/encryption/\u4e2d\u56fd\u5546\u7528\u5bc6\u7801\u7b97\u6cd5","title":"\u4e2d\u56fd\u5546\u7528\u5bc6\u7801\u7b97\u6cd5","description":"\u7b80\u4ecb","sidebar":"studySidebar"},"study/encryption/\u52a0\u89e3\u5bc6\u670d\u52a1":{"id":"study/encryption/\u52a0\u89e3\u5bc6\u670d\u52a1","title":"\u52a0\u89e3\u5bc6\u670d\u52a1","description":"\u52a0\u89e3\u5bc6\u670d\u52a1","sidebar":"studySidebar"},"study/encryption/\u5bc6\u7801\u54c8\u5e0c\u7b97\u6cd5\u603b\u7ed3":{"id":"study/encryption/\u5bc6\u7801\u54c8\u5e0c\u7b97\u6cd5\u603b\u7ed3","title":"\u5bc6\u7801\u54c8\u5e0c\u7b97\u6cd5","description":"\u9488\u5bf9\u5bc6\u7801\u5b58\u50a8\u7684\u52a0\u5bc6\u7b97\u6cd5","sidebar":"studySidebar"},"study/encryption/\u5bf9\u79f0\u52a0\u5bc6-\u5206\u7ec4\u5bc6\u7801\u7684\u6a21\u5f0f":{"id":"study/encryption/\u5bf9\u79f0\u52a0\u5bc6-\u5206\u7ec4\u5bc6\u7801\u7684\u6a21\u5f0f","title":"\u5bf9\u79f0\u52a0\u5bc6-\u5206\u7ec4\u5bc6\u7801\u7684\u6a21\u5f0f","description":"DES\u30013DES \u548c AES \u90fd\u5c5e\u4e8e\u5206\u7ec4\u5bc6\u7801\uff0c\u5b83\u4eec\u53ea\u80fd\u52a0\u5bc6\u56fa\u5b9a\u957f\u5ea6\u7684\u660e\u6587\u3002\u5982\u679c\u9700\u8981\u52a0\u5bc6\u66f4\u957f\u7684\u660e\u6587\uff0c\u5c31\u9700\u8981\u5bf9\u5206\u7ec4\u5bc6\u7801\u8fdb\u884c\u8fed\u4ee3\uff0c\u800c\u5206\u7ec4\u5bc6\u7801\u7684\u8fed\u4ee3\u65b9\u6cd5\u79f0\u4e3a\u5206\u7ec4\u5bc6\u7801\u7684\u6a21\u5f0f\uff08Model\uff09\u3002\u7b80\u800c\u4e00\u53e5\u8bdd\uff1a\u5206\u7ec4\u5bc6\u7801\u7684\u6a21\u5f0f\uff0c\u5c31\u662f\u5206\u7ec4\u5bc6\u7801\u7684\u8fed\u4ee3\u65b9\u5f0f\u3002","sidebar":"studySidebar"},"study/encryption/\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3":{"id":"study/encryption/\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3","title":"\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3","description":"\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3","sidebar":"studySidebar"},"study/encryption/\u6570\u5b57\u8bc1\u4e66":{"id":"study/encryption/\u6570\u5b57\u8bc1\u4e66","title":"\u6570\u5b57\u8bc1\u4e66","description":"\u6570\u5b57\u8bc1\u4e66\u5c31\u662f\u4e92\u8054\u7f51\u901a\u8baf\u4e2d\u6807\u5fd7\u901a\u8baf\u5404\u65b9\u8eab\u4efd\u4fe1\u606f\u7684\u4e00\u4e32\u6570\u5b57\uff0c\u63d0\u4f9b\u4e86\u4e00\u79cd\u5728Internet\u4e0a\u9a8c\u8bc1\u901a\u4fe1\u5b9e\u4f53\u8eab\u4efd\u7684\u65b9\u5f0f\uff0c\u6570\u5b57\u8bc1\u4e66\u4e0d\u662f\u6570\u5b57\u8eab\u4efd\u8bc1\uff0c\u800c\u662f\u8eab\u4efd\u8ba4\u8bc1\u673a\u6784\u76d6\u5728\u6570\u5b57\u8eab\u4efd\u8bc1\u4e0a\u7684\u4e00\u4e2a\u7ae0\u6216\u5370\uff08\u6216\u8005\u8bf4\u52a0\u5728\u6570\u5b57\u8eab\u4efd\u8bc1\u4e0a\u7684\u4e00\u4e2a\u7b7e\u540d\uff09\u3002\u5b83\u662f\u7531\u6743\u5a01\u673a\u6784\u2014\u2014CA\u673a\u6784\uff0c\u53c8\u79f0\u4e3a\u8bc1\u4e66\u6388\u6743\uff08Certificate Authority\uff09\u4e2d\u5fc3\u53d1\u884c\u7684\uff0c\u4eba\u4eec\u53ef\u4ee5\u5728\u7f51\u4e0a\u7528\u5b83\u6765\u8bc6\u522b\u5bf9\u65b9\u7684\u8eab\u4efd\u3002","sidebar":"studySidebar"},"study/encryption/\u6d88\u606f\u6458\u8981\u7b97\u6cd5\u603b\u7ed3":{"id":"study/encryption/\u6d88\u606f\u6458\u8981\u7b97\u6cd5\u603b\u7ed3","title":"\u6d88\u606f\u6458\u8981\u7b97\u6cd5\u603b\u7ed3","description":"\u6d88\u606f\u6458\u8981\uff08Message Digest\uff09\u53c8\u79f0\u4e3a\u6570\u5b57\u6458\u8981\uff08Digital Digest\uff09\u3002\u5b83\u662f\u4e00\u4e2a\u552f\u4e00\u5bf9\u5e94\u4e00\u4e2a\u6d88\u606f\u6216\u6587\u672c\u7684\u56fa\u5b9a\u957f\u5ea6\u7684\u503c\uff0c\u5b83\u7531\u4e00\u4e2a\u5355\u5411 Hash \u52a0\u5bc6\u51fd\u6570\u5bf9\u6d88\u606f\u8fdb\u884c\u4f5c\u7528\u800c\u4ea7\u751f\u3002\u5982\u679c\u6d88\u606f\u5728\u9014\u4e2d\u6539\u53d8\u4e86\uff0c\u5219\u63a5\u6536\u8005\u901a\u8fc7\u5bf9\u6536\u5230\u6d88\u606f\u7684\u65b0\u4ea7\u751f\u7684\u6458\u8981\u4e0e\u539f\u6458\u8981\u6bd4\u8f83\uff0c\u5c31\u53ef\u77e5\u9053\u6d88\u606f\u662f\u5426\u88ab\u6539\u53d8\u4e86\u3002\u56e0\u6b64\u6d88\u606f\u6458\u8981\u4fdd\u8bc1\u4e86\u6d88\u606f\u7684\u5b8c\u6574\u6027\u3002","sidebar":"studySidebar"},"study/encryption/\u7b49\u4fdd_\u5bc6\u8bc4":{"id":"study/encryption/\u7b49\u4fdd_\u5bc6\u8bc4","title":"\u7b49\u4fdd\u548c\u5bc6\u8bc4","description":"\u201c\u7b49\u4fdd\u201d\u5373\u7f51\u7edc\u5b89\u5168\u7b49\u7ea7\u4fdd\u62a4\uff0c\u65e8\u5728\u901a\u8fc7\u4e0d\u540c\u5b89\u5168\u7b49\u7ea7\u7684\u7ba1\u7406\u548c\u6280\u672f\u63aa\u65bd\uff0c\u786e\u4fdd\u4fe1\u606f\u7cfb\u7edf\u7684\u5b89\u5168\u7a33\u5b9a\u8fd0\u884c\u3002\u6211\u56fd\u4e8e2017\u5e74\u9881\u5e03\u7684\u300a\u7f51\u7edc\u5b89\u5168\u6cd5\u300b\u4e2d\u7b2c\u4e8c\u5341\u4e00\u6761\u89c4\u5b9a\u201c\u56fd\u5bb6\u5b9e\u884c\u7f51\u7edc\u5b89\u5168\u7b49\u7ea7\u4fdd\u62a4\u5236\u5ea6\u201d\u3002\u6cd5\u5f8b\u8981\u6c42\u7f51\u7edc\u8fd0\u8425\u8005\u9700\u6309\u7167\u7f51\u7edc\u5b89\u5168\u7b49\u7ea7\u4fdd\u62a4\u5236\u5ea6\u8981\u6c42\uff0c\u5c65\u884c\u5236\u5b9a\u5b89\u5168\u7ba1\u7406\u5236\u5ea6\u3001\u91c7\u53d6\u9632\u8303\u6280\u672f\u63aa\u65bd\u3001\u76d1\u6d4b\u8bb0\u5f55\u7f51\u7edc\u72b6\u6001\u3001\u4fdd\u62a4\u6570\u636e\u5b89\u5168\u7b49\u591a\u9879\u4e49\u52a1\uff0c\u786e\u4fdd\u7f51\u7edc\u5b89\u5168\u7a33\u5b9a\u3002","sidebar":"studySidebar"},"study/encryption/\u884c\u4e1a\u5206\u6790":{"id":"study/encryption/\u884c\u4e1a\u5206\u6790","title":"\u884c\u4e1a\u5206\u6790","description":"\u516c\u53f8","sidebar":"studySidebar"},"study/encryption/\u8bfb\u4e66\u7b14\u8bb0-\u56fe\u89e3\u5bc6\u7801\u6280\u672f":{"id":"study/encryption/\u8bfb\u4e66\u7b14\u8bb0-\u56fe\u89e3\u5bc6\u7801\u6280\u672f","title":"\u8bfb\u4e66\u7b14\u8bb0-\u56fe\u89e3\u5bc6\u7801\u6280\u672f","description":"\u5bc6\u7801\u5b66\u5bb6\u7684\u5de5\u5177\u7bb1","sidebar":"studySidebar"},"study/encryption/\u975e\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3":{"id":"study/encryption/\u975e\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3","title":"\u975e\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3","description":"\u672c\u6587\u5c06\u8be6\u7ec6\u4ecb\u7ecd\u51e0\u79cd\u5e38\u89c1\u7684\u975e\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\uff0c\u5305\u62ec\u5b83\u4eec\u7684\u5de5\u4f5c\u539f\u7406\u3001\u4f18\u7f3a\u70b9\u548c\u5e94\u7528\u573a\u666f\u3002","sidebar":"studySidebar"},"study/fe/ARMS\u524d\u7aef\u76d1\u63a7":{"id":"study/fe/ARMS\u524d\u7aef\u76d1\u63a7","title":"ARMS\u524d\u7aef\u76d1\u63a7","description":"ARMS\u524d\u7aef\u76d1\u63a7\u4e13\u6ce8\u4e8e\u5bf9Web\u573a\u666f\u3001Weex\u573a\u666f\u548c\u5c0f\u7a0b\u5e8f\u573a\u666f\u7684\u76d1\u63a7\uff0c\u4ece\u9875\u9762\u6253\u5f00\u901f\u5ea6\uff08\u6d4b\u901f\uff09\u3001\u9875\u9762\u7a33\u5b9a\u6027\uff08JS\u8bca\u65ad\u9519\u8bef\uff09\u548c\u5916\u90e8\u670d\u52a1\u8c03\u7528\u6210\u529f\u7387\uff08API\uff09\u8fd9\u4e09\u4e2a\u65b9\u9762\u76d1\u6d4bWeb\u548c\u5c0f\u7a0b\u5e8f\u9875\u9762\u7684\u5065\u5eb7\u5ea6\u3002","sidebar":"studySidebar"},"study/fe/Flutter\u5f00\u53d1\u95ee\u9898\u8bb0\u5f55":{"id":"study/fe/Flutter\u5f00\u53d1\u95ee\u9898\u8bb0\u5f55","title":"Flutter\u5f00\u53d1\u95ee\u9898\u8bb0\u5f55","description":"\u8bb0\u5f55 Flutter \u5f00\u53d1\u7684\u4e00\u4e9b\u95ee\u9898\u3001\u7ecf\u9a8c","sidebar":"studySidebar"},"study/fe/index":{"id":"study/fe/index","title":"\u6982\u8ff0","description":"\u6240\u6709\u7528\u6237\u770b\u5230\u7684\u754c\u9762\uff0c\u7edf\u4e00\u6210\u4e3a\u524d\u7aef\uff0c\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\uff1a","sidebar":"studySidebar"},"study/fe/mqtt.js":{"id":"study/fe/mqtt.js","title":"mqtt.js","description":"\u4e0d\u8981\u4f7f\u7528 mqtt.js \u6362\u7528 precompiled-mqtt","sidebar":"studySidebar"},"study/fe/TypeScript\u8bed\u6cd5\u56fe":{"id":"study/fe/TypeScript\u8bed\u6cd5\u56fe","title":"TypeScript\u8bed\u6cd5\u56fe","description":"\u8bed\u6cd5\u56fe","sidebar":"studySidebar"},"study/fe/WebGL":{"id":"study/fe/WebGL","title":"WebGL","description":"\u6982\u8ff0","sidebar":"studySidebar"},"study/fe/\u4e0b\u8f7d\u56fe\u7247":{"id":"study/fe/\u4e0b\u8f7d\u56fe\u7247","title":"\u4e0b\u8f7d\u56fe\u7247","description":"","sidebar":"studySidebar"},"study/fe/\u4f4e\u4ee3\u7801\u53ef\u89c6\u5316\u5e73\u53f0":{"id":"study/fe/\u4f4e\u4ee3\u7801\u53ef\u89c6\u5316\u5e73\u53f0","title":"\u4f4e\u4ee3\u7801\u53ef\u89c6\u5316\u5e73\u53f0","description":"\u5f00\u6e90\u9879\u76ee","sidebar":"studySidebar"},"study/fe/\u524d\u7aef\u6a21\u5757\u5316":{"id":"study/fe/\u524d\u7aef\u6a21\u5757\u5316","title":"\u524d\u7aef\u6a21\u5757\u5316","description":"\u80cc\u666f","sidebar":"studySidebar"},"study/hard/index":{"id":"study/hard/index","title":"\u6982\u8ff0","description":"","sidebar":"studySidebar"},"study/hard/\u5d4c\u5165\u5f0f_\u5355\u7247\u673a":{"id":"study/hard/\u5d4c\u5165\u5f0f_\u5355\u7247\u673a","title":"\u5d4c\u5165\u5f0f_\u5355\u7247\u673a","description":"\u5d4c\u5165\u5f0f\u548c\u5355\u7247\u673a\u7684\u533a\u522b\u5230\u5e95\u662f\u4ec0\u4e48\u3002","sidebar":"studySidebar"},"study/hard/\u786c\u4ef6\u5f00\u53d1\u548c\u5d4c\u5165\u5f0f\u5f00\u53d1":{"id":"study/hard/\u786c\u4ef6\u5f00\u53d1\u548c\u5d4c\u5165\u5f0f\u5f00\u53d1","title":"\u786c\u4ef6\u5f00\u53d1\u548c\u5d4c\u5165\u5f0f\u5f00\u53d1","description":"1. \u5d4c\u5165\u5f0flinux \u548c \u7528stm32\u8fdb\u884c\u7684\u5d4c\u5165\u5f0f\u5f00\u53d1 \u8fd9\u4e24\u8005\u4e4b\u95f4\u6709\u4ec0\u4e48\u5173\u8054\u6027\u5417\uff1f","sidebar":"studySidebar"},"study/hard/\u8def\u7531\u5668\u548c\u4ea4\u6362\u673a\u7684\u533a\u522b":{"id":"study/hard/\u8def\u7531\u5668\u548c\u4ea4\u6362\u673a\u7684\u533a\u522b","title":"\u8def\u7531\u5668\u548c\u4ea4\u6362\u673a\u7684\u533a\u522b","description":"\u8def\u7531\u5668\u548c\u4ea4\u6362\u673a\u7684\u4e0d\u540c\u4e4b\u5904\u6709\u54ea\u4e9b\uff1f","sidebar":"studySidebar"},"study/hard/\u901a\u4fe1\u6a21\u7ec4":{"id":"study/hard/\u901a\u4fe1\u6a21\u7ec4","title":"\u901a\u4fe1\u6a21\u7ec4","description":"images","sidebar":"studySidebar"},"study/index":{"id":"study/index","title":"\u5b66\u65e0\u6b62\u5883","description":"\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u662f\u4e00\u4e2a\u4e0d\u65ad\u53d1\u5c55\u548c\u53d8\u5316\u7684\u9886\u57df\uff0c\u5b66\u65e0\u6b62\u5883\u3002\u968f\u7740\u6280\u672f\u548c\u5e02\u573a\u7684\u4e0d\u65ad\u53d8\u5316\uff0c\u6211\u4eec\u9700\u8981\u59cb\u7ec8\u4fdd\u6301\u654f\u9510\u7684\u89c2\u5bdf\u529b\u548c\u5b66\u4e60\u80fd\u529b\u3002","sidebar":"studySidebar"},"study/net/ip":{"id":"study/net/ip","title":"Linux ip \u547d\u4ee4","description":"ip \u547d\u4ee4\u6765\u81ea iproute \u8f6f\u4ef6\u5305\uff0c\u8f6f\u4ef6\u5305\u63d0\u4f9b\u4e86\u5f88\u591a\u547d\u4ee4\uff08rpm -ql iproute |grep bin\uff09\uff0c\u5982 ss \u547d\u4ee4\u3001bridge\uff0c\u8fd9\u4e9b\u547d\u4ee4\u53ef\u4ee5\u5b8c\u5168\u66ff\u4ee3 ifconfig\u3001netstat\u3001route \u7b49\u547d\u4ee4\u3002","sidebar":"studySidebar"},"study/net/iptables":{"id":"study/net/iptables","title":"Linux iptables \u9632\u706b\u5899","description":"","sidebar":"studySidebar"},"study/net/IPV6":{"id":"study/net/IPV6","title":"IPV6","description":"IPV6 \u8fde\u63a5\u6d4b\u8bd5","sidebar":"studySidebar"},"study/net/MacOS\u7f16\u8bd1OpenVPN":{"id":"study/net/MacOS\u7f16\u8bd1OpenVPN","title":"MacOS\u7f16\u8bd1OpenVPN","description":"cmake -DUNSUPPORTED_BUILDS=true ./","sidebar":"studySidebar"},"study/net/netns":{"id":"study/net/netns","title":"Linux netns","description":"\u53c2\u8003","sidebar":"studySidebar"},"study/net/OpenVPN":{"id":"study/net/OpenVPN","title":"OpenVPN","description":"\u914d\u7f6e","sidebar":"studySidebar"},"study/net/p2p":{"id":"study/net/p2p","title":"P2P \u7f51\u7edc NAT \u7a7f\u900f\u539f\u7406(\u6253\u6d1e\u65b9\u6848)","description":"\u53c2\u8003","sidebar":"studySidebar"},"study/net/pfctl\u9632\u706b\u5899":{"id":"study/net/pfctl\u9632\u706b\u5899","title":"unix pfctl \u9632\u706b\u5899","description":"iptables \u662f Linux \u4e0b\u7684\u9632\u706b\u5899\uff0c\u53ef\u4ee5\u8fdb\u884c\u6570\u636e\u5305\u7684\u8fc7\u6ee4\uff0c\u5728\u7f51\u7edc\u5c42\u8fdb\u884c\u6570\u636e\u7684\u8f6c\u53d1\u3001\u62e6\u622a\u6216\u4e22\u5f03\u7b49\uff0c\u4f7f\u7528\u975e\u5e38\u666e\u904d\uff0c\u529f\u80fd\u4e5f\u975e\u5e38\u5f3a\u5927\u3002\u4f46\u662f Mac \u4e0b\u6ca1\u6709 iptables\uff0c\u4e3a\u4e86\u5b9e\u73b0\u6d41\u91cf\u8f6c\u53d1\u548c\u8fc7\u6ee4\uff0c\u8981\u4f7f\u7528\u5230 Mac \u81ea\u5e26\u7684 PFctl\u3002PFctl \u5373 control the packet filter\uff0c\u662f Unix LIKE \u7cfb\u7edf\u4e0a\u8fdb\u884c TCP/IP \u6d41\u91cf\u8fc7\u6ee4\u548c\u7f51\u7edc\u5730\u5740\u8f6c\u6362\u7684\u7cfb\u7edf\uff0c\u4e5f\u80fd\u63d0\u4f9b\u6d41\u91cf\u6574\u5f62\u548c\u63a7\u5236\u7b49","sidebar":"studySidebar"},"study/net/SNMP":{"id":"study/net/SNMP","title":"SNMP","description":"\u53c2\u8003","sidebar":"studySidebar"},"study/net/tc":{"id":"study/net/tc","title":"Linux tc","description":"tc \u662f Linux \u7cfb\u7edf\u4e0b\u7684\u6d41\u91cf\u63a7\u5236\u5de5\u5177\uff0c\u5168\u79f0 Traffic Control\uff0c\u7528\u4e8e\u914d\u7f6e\u548c\u63a7\u5236\u7f51\u7edc\u6d41\u91cf\u3002\u5b83\u662f\u4e00\u4e2a\u5f3a\u5927\u7684\u5de5\u5177\uff0c\u53ef\u4ee5\u7528\u4e8e\u914d\u7f6e\u548c\u8c03\u6574\u5404\u79cd\u7f51\u7edc\u63a5\u53e3\u7684\u6d41\u91cf\u63a7\u5236\u53c2\u6570\uff0c\u5982\u5e26\u5bbd\u9650\u5236\u3001\u5ef6\u8fdf\u3001\u4e22\u5305\u7387\u7b49\u3002","sidebar":"studySidebar"},"study/net/TCP":{"id":"study/net/TCP","title":"TCP","description":"\u4e09\u6b21\u63e1\u624b\u56db\u6b21\u6325\u624b","sidebar":"studySidebar"},"study/net/tuntap":{"id":"study/net/tuntap","title":"tuntap","description":"Tun/Tap","sidebar":"studySidebar"},"study/net/UDP":{"id":"study/net/UDP","title":"UDP","description":"UDP","sidebar":"studySidebar"},"study/net/VLAN-VXLAN":{"id":"study/net/VLAN-VXLAN","title":"VLAN-VXLAN","description":"VLAN","sidebar":"studySidebar"},"study/net/vpn":{"id":"study/net/vpn","title":"vpn","description":"\u7b80\u4ecb","sidebar":"studySidebar"},"study/net/\u4ee3\u7406":{"id":"study/net/\u4ee3\u7406","title":"\u4ee3\u7406","description":"\u53c2\u8003","sidebar":"studySidebar"},"study/net/\u5185\u7f51\u7a7f\u900f":{"id":"study/net/\u5185\u7f51\u7a7f\u900f","title":"\u5185\u7f51\u7a7f\u900f","description":"\u5185\u7f51\u7a7f\u900f","sidebar":"studySidebar"},"study/net/\u5c40\u57df\u7f51IP\u5730\u5740\u8303\u56f4":{"id":"study/net/\u5c40\u57df\u7f51IP\u5730\u5740\u8303\u56f4","title":"\u5c40\u57df\u7f51IP\u5730\u5740\u8303\u56f4","description":"A \u7c7b\u5730\u5740","sidebar":"studySidebar"},"study/net/\u5f02\u5730\u7ec4\u7f51":{"id":"study/net/\u5f02\u5730\u7ec4\u7f51","title":"\u5f02\u5730\u7ec4\u7f51","description":"\u7f51\u7edc\u7c7b\u578b","sidebar":"studySidebar"},"study/net/\u6293\u5305\u5de5\u5177":{"id":"study/net/\u6293\u5305\u5de5\u5177","title":"\u6293\u5305\u5de5\u5177","description":"tcpdump","sidebar":"studySidebar"},"study/net/\u7f51\u7edc\u541e\u5410\u91cf\u6d4b\u91cf\u5de5\u5177":{"id":"study/net/\u7f51\u7edc\u541e\u5410\u91cf\u6d4b\u91cf\u5de5\u5177","title":"\u7f51\u7edc\u541e\u5410\u91cf\u6d4b\u91cf\u5de5\u5177","description":"iperf3","sidebar":"studySidebar"},"study/other/\u5b57\u8282\u5e8f":{"id":"study/other/\u5b57\u8282\u5e8f","title":"\u5b57\u8282\u5e8f Big Endian Little Endian","description":"\u5b57\u8282\u5e8f\uff0c\u4e5f\u5c31\u662f\u5b57\u8282\u7684\u987a\u5e8f\uff0c\u6307\u7684\u662f\u591a\u5b57\u8282\u7684\u6570\u636e\u5728\u5185\u5b58\u4e2d\u7684\u5b58\u653e\u987a\u5e8f\u3002","sidebar":"studySidebar"},"study/other/\u6807\u51c6\u540d\u79f0\u7f29\u5199":{"id":"study/other/\u6807\u51c6\u540d\u79f0\u7f29\u5199","title":"\u6807\u51c6\u540d\u79f0\u7f29\u5199","description":"\u56fd\u5185\u6807\u51c6","sidebar":"studySidebar"},"study/program/ABIAPI":{"id":"study/program/ABIAPI","title":"ABIAPI","description":"ABI","sidebar":"studySidebar"},"study/program/C/cmake":{"id":"study/program/C/cmake","title":"cmake","description":"cmake \u4ecb\u7ecd","sidebar":"studySidebar"},"study/program/C/C\u8bed\u8a00\u6807\u51c6\u5e93":{"id":"study/program/C/C\u8bed\u8a00\u6807\u51c6\u5e93","title":"C\u8bed\u8a00\u6807\u51c6\u5e93","description":"C \u8bed\u8a00\u6807\u51c6\u5e93","sidebar":"studySidebar"},"study/program/C/extern-c":{"id":"study/program/C/extern-c","title":"extern-c","description":"extern \\"C\\"","sidebar":"studySidebar"},"study/program/C/index":{"id":"study/program/C/index","title":"C C++ \u7f16\u7a0b\u8bed\u8a00","description":"\u53c2\u8003","sidebar":"studySidebar"},"study/program/C/make":{"id":"study/program/C/make","title":"make","description":"make \u662f\u4e00\u6761\u8ba1\u7b97\u673a\u6307\u4ee4\uff0c\u662f\u5728\u5b89\u88c5\u6709 GNU Make \u7684\u8ba1\u7b97\u673a\u4e0a\u7684\u53ef\u6267\u884c\u6307\u4ee4\u3002\u8be5\u6307\u4ee4\u662f\u8bfb\u5165\u4e00\u4e2a\u540d\u4e3a makefile \u7684\u6587\u4ef6\uff0c\u7136\u540e\u6267\u884c\u8fd9\u4e2a\u6587\u4ef6\u4e2d\u6307\u5b9a\u7684\u6307\u4ee4\u3002","sidebar":"studySidebar"},"study/program/C/MFC-WinForm-WPF-DotNet\u7b49":{"id":"study/program/C/MFC-WinForm-WPF-DotNet\u7b49","title":"MFC-WinForm-WPF-DotNet\u7b49","description":"MFC","sidebar":"studySidebar"},"study/program/C/pragma":{"id":"study/program/C/pragma","title":"pragma","description":"pragma","sidebar":"studySidebar"},"study/program/C/size_t-ptrdiff_t-intptr_t-uintptr_t":{"id":"study/program/C/size_t-ptrdiff_t-intptr_t-uintptr_t","title":"size_t-ptrdiff_t-intptr_t-uintptr_t","description":"- size_t","sidebar":"studySidebar"},"study/program/C/\u65b9\u6cd5\u5e93-\u9759\u6001\u5e93-\u52a8\u6001\u5e93-\u5171\u4eab\u5e93":{"id":"study/program/C/\u65b9\u6cd5\u5e93-\u9759\u6001\u5e93-\u52a8\u6001\u5e93-\u5171\u4eab\u5e93","title":"\u65b9\u6cd5\u5e93-\u9759\u6001\u5e93-\u52a8\u6001\u5e93-\u5171\u4eab\u5e93","description":"\u65b9\u6cd5\u5e93\u53ef\u4ee5\u5206\u4e3a\u4e24\u7c7b\uff1a","sidebar":"studySidebar"},"study/program/C/\u6784\u5efa\u5de5\u5177":{"id":"study/program/C/\u6784\u5efa\u5de5\u5177","title":"\u6784\u5efa\u5de5\u5177","description":"C \u8bed\u8a00\u6784\u5efa\u5de5\u5177","sidebar":"studySidebar"},"study/program/C/\u865a\u62df\u7f51\u5361":{"id":"study/program/C/\u865a\u62df\u7f51\u5361","title":"\u865a\u62df\u7f51\u5361","description":"TUN/TAP\uff08Linux\uff09","sidebar":"studySidebar"},"study/program/CPP/CGI":{"id":"study/program/CPP/CGI","title":"CGI","description":"\u53c2\u8003","sidebar":"studySidebar"},"study/program/CPP/CPP\u8fdb\u7a0b\u95f4\u901a\u4fe1":{"id":"study/program/CPP/CPP\u8fdb\u7a0b\u95f4\u901a\u4fe1","title":"C++\u8fdb\u7a0b\u95f4\u901a\u4fe1","description":"\u7ba1\u9053","sidebar":"studySidebar"},"study/program/CPP/index":{"id":"study/program/CPP/index","title":"C++","description":"C++\u6807\u51c6","sidebar":"studySidebar"},"study/program/CSharp/index":{"id":"study/program/CSharp/index","title":"CSharp","description":"C#\u662f\u5fae\u8f6f\u63a8\u51fa\u7684\u4e00\u79cd\u57fa\u4e8e.NET \u6846\u67b6\u7684\u3001\u9762\u5411\u5bf9\u8c61\u7684\u9ad8\u7ea7\u7f16\u7a0b\u8bed\u8a00\u3002","sidebar":"studySidebar"},"study/program/Dart/Flutter":{"id":"study/program/Dart/Flutter","title":"Flutter","description":"\u5e94\u7528\u56fe\u6807","sidebar":"studySidebar"},"study/program/Dart/\u5b66\u4e60\u8d44\u6599":{"id":"study/program/Dart/\u5b66\u4e60\u8d44\u6599","title":"Dart \u5b66\u4e60\u8d44\u6599","description":"\u7279\u70b9","sidebar":"studySidebar"},"study/program/Erlang/index":{"id":"study/program/Erlang/index","title":"Erlang","description":"\u7b80\u4ecb","sidebar":"studySidebar"},"study/program/ETL/dataX":{"id":"study/program/ETL/dataX","title":"dataX","description":"\u6982\u8ff0","sidebar":"studySidebar"},"study/program/ETL/flume":{"id":"study/program/ETL/flume","title":"flume","description":"Flume\u7684\u5b9a\u4e49","sidebar":"studySidebar"},"study/program/ETL/kettle":{"id":"study/program/ETL/kettle","title":"kettle","description":"ETL\uff08Extract-Transform-Load\u7684\u7f29\u5199\uff0c\u5373\u6570\u636e\u62bd\u53d6\u3001\u8f6c\u6362\u3001\u88c5\u8f7d\u7684\u8fc7\u7a0b\uff09\uff0c\u5bf9\u4e8e\u4f01\u4e1a\u6216\u884c\u4e1a\u5e94\u7528\u6765\u8bf4\uff0c\u6211\u4eec\u7ecf\u5e38\u4f1a\u9047\u5230\u5404\u79cd\u6570\u636e\u7684\u5904\u7406\uff0c\u8f6c\u6362\uff0c\u8fc1\u79fb\uff0c\u6240\u4ee5\u4e86\u89e3\u5e76\u638c\u63e1\u4e00\u79cdetl\u5de5\u5177\u7684\u4f7f\u7528\uff0c\u5fc5\u4e0d\u53ef\u5c11\u3002kettle\u662f\u7eafjava\u7f16\u5199\uff0c\u652f\u6301\u56fe\u5f62\u5316\u7684GUI\u8bbe\u8ba1\u754c\u9762\uff0c\u7136\u540e\u53ef\u4ee5\u4ee5\u5de5\u4f5c\u6d41\u7684\u5f62\u5f0f\u6d41\u8f6c\uff0c\u5728\u505a\u4e00\u4e9b\u7b80\u5355\u6216\u590d\u6742\u7684\u6570\u636e\u62bd\u53d6\u3001\u8d28\u91cf\u68c0\u6d4b\u3001\u6570\u636e\u6e05\u6d17\u3001\u6570\u636e\u8f6c\u6362\u3001\u6570\u636e\u8fc7\u6ee4\u7b49\u65b9\u9762\u6709\u7740\u6bd4\u8f83\u7a33\u5b9a\u7684\u8868\u73b0\uff0c\u5176\u4e2d\u6700\u4e3b\u8981\u7684\u6211\u4eec\u901a\u8fc7\u719f\u7ec3\u7684\u5e94\u7528\u5b83\uff0c\u51cf\u5c11\u4e86\u975e\u5e38\u591a\u7684\u7814\u53d1\u5de5\u4f5c\u91cf\uff0c\u63d0\u9ad8\u4e86\u6211\u4eec\u7684\u5de5\u4f5c\u6548\u7387\u3002","sidebar":"studySidebar"},"study/program/ETL/sqoop":{"id":"study/program/ETL/sqoop","title":"sqoop","description":"\u6982\u8ff0","sidebar":"studySidebar"},"study/program/GIT/GIT-\u5e38\u7528\u547d\u4ee4":{"id":"study/program/GIT/GIT-\u5e38\u7528\u547d\u4ee4","title":"GIT-\u5e38\u7528\u547d\u4ee4","description":"clone","sidebar":"studySidebar"},"study/program/GIT/GitHubDesktop":{"id":"study/program/GIT/GitHubDesktop","title":"GitHub Desktop","description":"\u6211\u4e00\u822c\u662f\u4f7f\u7528\u8fd9\u4e2a\u5de5\u5177\uff0c\u4f46\u662f\u6709\u4e00\u6b21\u66f4\u65b0\u4e4b\u540e\uff0c\u62a5\u9519\u5982\u4e0b","sidebar":"studySidebar"},"study/program/GIT/PR\u548cMR":{"id":"study/program/GIT/PR\u548cMR","title":"PR\u548cMR","description":"\u7b80\u4ecb","sidebar":"studySidebar"},"study/program/Golang/Golang\u4f9d\u8d56\u5e93\u4ee3\u7406":{"id":"study/program/Golang/Golang\u4f9d\u8d56\u5e93\u4ee3\u7406","title":"Golang\u4f9d\u8d56\u5e93\u4ee3\u7406","description":"\u811a\u672c","sidebar":"studySidebar"},"study/program/Golang/index":{"id":"study/program/Golang/index","title":"Golang","description":"Go \u8bed\u8a00\u8bbe\u8ba1\u521d\u8877","sidebar":"studySidebar"},"study/program/Golang/\u5e38\u7528\u7684\u5de5\u5177":{"id":"study/program/Golang/\u5e38\u7528\u7684\u5de5\u5177","title":"\u5e38\u7528\u7684\u5de5\u5177","description":"json-to-go","sidebar":"studySidebar"},"study/program/Golang/\u5e38\u7528\u7684\u6846\u67b6":{"id":"study/program/Golang/\u5e38\u7528\u7684\u6846\u67b6","title":"\u5e38\u7528\u7684\u6846\u67b6","description":"Gin","sidebar":"studySidebar"},"study/program/index":{"id":"study/program/index","title":"\u6982\u8ff0","description":"\u5199\u4ee3\u7801\u7528\u5230\u7684\u4e00\u5957\u89c4\u8303\u53ca\u5176\u5ef6\u4f38\u5de5\u5177\u3002","sidebar":"studySidebar"},"study/program/JAVA/GC":{"id":"study/program/JAVA/GC","title":"GC","description":"JVM \u4e2d\u5e38\u89c1\u7684\u5783\u573e\u6536\u96c6\u7b97\u6cd5","sidebar":"studySidebar"},"study/program/JAVA/GraalVM":{"id":"study/program/JAVA/GraalVM","title":"GraalVM","description":"\u5b98\u7f51","sidebar":"studySidebar"},"study/program/JAVA/Guice":{"id":"study/program/JAVA/Guice","title":"Guice","description":"\u80cc\u666f","sidebar":"studySidebar"},"study/program/JAVA/index":{"id":"study/program/JAVA/index","title":"Java","description":"\u4e00\u79cd\u4f7f\u7528\u975e\u5e38\u5e7f\u6cdb\u7684\u8de8\u5e73\u53f0\u7f16\u7a0b\u8bed\u8a00\u3002","sidebar":"studySidebar"},"study/program/JAVA/JDK17":{"id":"study/program/JAVA/JDK17","title":"JDK17","description":"\u9650\u5236\u7c7b\u7ee7\u627f sealed \u7c7b","sidebar":"studySidebar"},"study/program/JAVA/JDK17-bin":{"id":"study/program/JAVA/JDK17-bin","title":"JDK17-bin","description":"jar","sidebar":"studySidebar"},"study/program/JAVA/JDK21":{"id":"study/program/JAVA/JDK21","title":"JDK21","description":"\u865a\u62df\u7ebf\u7a0b","sidebar":"studySidebar"},"study/program/JAVA/JDK8":{"id":"study/program/JAVA/JDK8","title":"JDK8","description":"Optional","sidebar":"studySidebar"},"study/program/JAVA/JNI":{"id":"study/program/JAVA/JNI","title":"JNI","description":"Java Native Interface\uff0cJava \u672c\u5730\u63a5\u53e3","sidebar":"studySidebar"},"study/program/JAVA/Maven":{"id":"study/program/JAVA/Maven","title":"Maven","description":"\u7b80\u4ecb","sidebar":"studySidebar"},"study/program/JAVA/OepnJ9":{"id":"study/program/JAVA/OepnJ9","title":"OpenJ9","description":"https://eclipse.dev/openj9/","sidebar":"studySidebar"},"study/program/JAVA/RxJava":{"id":"study/program/JAVA/RxJava","title":"RxJava","description":"\u7b80\u4ecb","sidebar":"studySidebar"},"study/program/JAVA/Vert.x":{"id":"study/program/JAVA/Vert.x","title":"Vert.x","description":"\u7b80\u4ecb","sidebar":"studySidebar"},"study/program/JAVA/\u4ee3\u7801\u751f\u6210":{"id":"study/program/JAVA/\u4ee3\u7801\u751f\u6210","title":"\u4ee3\u7801\u751f\u6210","description":"Mapstruct","sidebar":"studySidebar"},"study/program/JAVA/\u9501":{"id":"study/program/JAVA/\u9501","title":"\u9501\uff08\u591a\u7ebf\u7a0b\uff09","description":"\u591a\u7ebf\u7a0b\u7f16\u7a0b\u5728\u73b0\u4ee3\u8f6f\u4ef6\u5f00\u53d1\u4e2d\u626e\u6f14\u7740\u81f3\u5173\u91cd\u8981\u7684\u89d2\u8272\u3002\u5b83\u4f7f\u6211\u4eec\u80fd\u591f\u6709\u6548\u5730\u5229\u7528\u591a\u6838\u5904\u7406\u5668\u548c\u63d0\u9ad8\u5e94\u7528\u7a0b\u5e8f\u7684\u6027\u80fd\u3002\u7136\u800c\uff0c\u591a\u7ebf\u7a0b\u7f16\u7a0b\u4e5f\u4f34\u968f\u7740\u4e00\u7cfb\u5217\u6311\u6218\uff0c\u5176\u4e2d\u6700\u91cd\u8981\u7684\u4e4b\u4e00\u5c31\u662f\u5904\u7406\u5171\u4eab\u8d44\u6e90\u7684\u7ebf\u7a0b\u5b89\u5168\u6027\u3002\u5728\u8fd9\u4e2a\u9886\u57df\uff0c\u9501\uff08Lock\uff09\u662f\u4e00\u4e2a\u5173\u952e\u7684\u6982\u5ff5\uff0c\u7528\u4e8e\u534f\u8c03\u7ebf\u7a0b\u4e4b\u95f4\u5bf9\u5171\u4eab\u8d44\u6e90\u7684\u8bbf\u95ee\u3002","sidebar":"studySidebar"},"study/program/JS/npm":{"id":"study/program/JS/npm","title":"npm","description":"npmjs","sidebar":"studySidebar"},"study/program/JS/npx":{"id":"study/program/JS/npx","title":"npx","description":"\u6982\u5ff5","sidebar":"studySidebar"},"study/program/JS/nrm":{"id":"study/program/JS/nrm","title":"nrm","description":"nrm \u662f\u4e00\u4e2a npm \u6e90\u7ba1\u7406\u5668\uff0c\u5141\u8bb8\u4f60\u5feb\u901f\u5730\u5728 npm\u6e90\u95f4\u5207\u6362\u3002","sidebar":"studySidebar"},"study/program/Kotlin/index":{"id":"study/program/Kotlin/index","title":"Kotlin","description":"Kotlin\uff08\u79d1\u7279\u6797\uff09\u662f\u4e00\u4e2a\u7528\u4e8e\u73b0\u4ee3\u591a\u5e73\u53f0\u5e94\u7528\u7684\u9759\u6001\u7f16\u7a0b\u8bed\u8a00\uff0c\u7531 JetBrains \u5f00\u53d1\u3002","sidebar":"studySidebar"},"study/program/Lua/index":{"id":"study/program/Lua/index","title":"Lua","description":"\u5b66\u4e60\u8d44\u6599","sidebar":"studySidebar"},"study/program/Rust/index":{"id":"study/program/Rust/index","title":"Rust","description":"\u4e00\u95e8\u8d4b\u4e88\u6bcf\u4e2a\u4eba\u6784\u5efa\u53ef\u9760\u4e14\u9ad8\u6548\u8f6f\u4ef6\u80fd\u529b\u7684\u8bed\u8a00\u3002","sidebar":"studySidebar"},"study/program/\u6280\u672f\u6587\u6863":{"id":"study/program/\u6280\u672f\u6587\u6863","title":"\u6280\u672f\u6587\u6863","description":"\u6280\u672f\u6587\u6863","sidebar":"studySidebar"},"study/program/\u7f16\u8bd1\u5668":{"id":"study/program/\u7f16\u8bd1\u5668","title":"\u7f16\u8bd1\u5668","description":"C/C++/Objective-C \u7b49\u7c7b C \u7f16\u8bd1\u5668","sidebar":"studySidebar"},"study/program/\u8de8\u5e73\u53f0\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u6846\u67b6":{"id":"study/program/\u8de8\u5e73\u53f0\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u6846\u67b6","title":"\u8de8\u5e73\u53f0\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u6846\u67b6","description":"Electron","sidebar":"studySidebar"},"study/system/CPU\u7ebf\u7a0b\u5e76\u53d1":{"id":"study/system/CPU\u7ebf\u7a0b\u5e76\u53d1","title":"CPU\u7ebf\u7a0b\u5e76\u53d1","description":"CPU \u7ebf\u7a0b \u8fdb\u7a0b \u5e76\u53d1 \u5e76\u884c","sidebar":"studySidebar"},"study/system/index":{"id":"study/system/index","title":"index","description":"\u5b66\u4e60\u8d44\u6599","sidebar":"studySidebar"},"study/system/IO":{"id":"study/system/IO","title":"\u64cd\u4f5c\u7cfb\u7edf IO \u77e5\u8bc6","description":"I/O\uff08Input/Output\uff09\u6a21\u578b\u662f\u8ba1\u7b97\u673a\u79d1\u5b66\u4e2d\u7684\u4e00\u4e2a\u5173\u952e\u6982\u5ff5\uff0c\u5b83\u6d89\u53ca\u5230\u5982\u4f55\u8fdb\u884c\u8f93\u5165\u548c\u8f93\u51fa\u64cd\u4f5c\uff0c\u800c\u8fd9\u5728\u8ba1\u7b97\u673a\u5e94\u7528\u4e2d\u662f\u4e0d\u53ef\u6216\u7f3a\u7684\u4e00\u90e8\u5206\u3002\u5728\u4e0d\u540c\u7684\u5e94\u7528\u573a\u666f\u4e0b\uff0c\u9009\u62e9\u6b63\u786e\u7684 I/O \u6a21\u578b\u662f\u81f3\u5173\u91cd\u8981\u7684\uff0c\u56e0\u4e3a\u5b83\u4f1a\u5f71\u54cd\u5230\u5e94\u7528\u7a0b\u5e8f\u7684\u6027\u80fd\u548c\u54cd\u5e94\u6027\u3002","sidebar":"studySidebar"},"study/system/openWRT":{"id":"study/system/openWRT","title":"openWRT","description":"\u53c2\u8003","sidebar":"studySidebar"},"study/system/Open\u6b27\u62c9":{"id":"study/system/Open\u6b27\u62c9","title":"Open\u6b27\u62c9","description":"\u5b57\u7b26\u96c6\u95ee\u9898","sidebar":"studySidebar"},"study/system/shell\u7f16\u7a0b\u667aexpect":{"id":"study/system/shell\u7f16\u7a0b\u667aexpect","title":"shell\u7f16\u7a0b\u667aexpect","description":"expect","sidebar":"studySidebar"},"study/system/yum-dnf":{"id":"study/system/yum-dnf","title":"yum-dnf","description":"yum","sidebar":"studySidebar"},"study/system/\u5185\u5b58\u7ba1\u7406":{"id":"study/system/\u5185\u5b58\u7ba1\u7406","title":"\u5185\u5b58\u7ba1\u7406","description":"\u53c2\u8003","sidebar":"studySidebar"},"study/system/\u53ef\u6267\u884c\u7a0b\u5e8f\u8fd0\u884c\u539f\u7406\u5206\u6790":{"id":"study/system/\u53ef\u6267\u884c\u7a0b\u5e8f\u8fd0\u884c\u539f\u7406\u5206\u6790","title":"\u53ef\u6267\u884c\u7a0b\u5e8f\u5728\u64cd\u4f5c\u7cfb\u7edf\u4e0b\u7684\u8fd0\u884c\u539f\u7406\u5206\u6790","description":"\u67b6\u6784\uff0c\u4ece\u4e0b\u5f80\u4e0a\u5206\u6790","sidebar":"studySidebar"},"study/system/\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838":{"id":"study/system/\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838","title":"\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838","description":"\u4ec0\u4e48\u662f\u5185\u6838","sidebar":"studySidebar"},"study/system/\u7a0b\u5e8f\u8c03\u8bd5":{"id":"study/system/\u7a0b\u5e8f\u8c03\u8bd5","title":"\u7a0b\u5e8f\u8c03\u8bd5","description":"strace","sidebar":"studySidebar"},"study/think/index":{"id":"study/think/index","title":"\u6982\u8ff0","description":"\u8de8\u8d8a\u7f16\u7a0b\u8bed\u8a00\u7684\u4e00\u4e9b\u5957\u8def\u3002","sidebar":"studySidebar"},"study/think/IT_CT_OT":{"id":"study/think/IT_CT_OT","title":"IT_CT_OT","description":"IT","sidebar":"studySidebar"},"study/think/\u4ee3\u7801\u8bc4\u5ba1/Gerrit\u4ee3\u7801\u8bc4\u5ba1\u5de5\u5177":{"id":"study/think/\u4ee3\u7801\u8bc4\u5ba1/Gerrit\u4ee3\u7801\u8bc4\u5ba1\u5de5\u5177","title":"Gerrit\u4ee3\u7801\u8bc4\u5ba1\u5de5\u5177","description":"\u53c2\u8003","sidebar":"studySidebar"},"study/think/\u4ee3\u7801\u8bc4\u5ba1/\u4ee3\u7801\u5ba1\u67e5\u95ee\u9898\u624b\u518c":{"id":"study/think/\u4ee3\u7801\u8bc4\u5ba1/\u4ee3\u7801\u5ba1\u67e5\u95ee\u9898\u624b\u518c","title":"\u4ee3\u7801\u5ba1\u67e5\u95ee\u9898\u624b\u518c","description":"\u6bcf\u59295\u70b9\u4e4b\u540e\u82b110\u5206\u949f\u7684\u65f6\u95f4\u5ba1\u67e5\u4e00\u4e0b\u522b\u4eba\u7684\u4ee3\u7801\uff0c\u5e76\u548c\u4ee3\u7801\u4f5c\u8005\u6c9f\u901a\uff1b","sidebar":"studySidebar"},"study/think/\u5b9e\u65f6\u8ba1\u7b97Storm+Flink":{"id":"study/think/\u5b9e\u65f6\u8ba1\u7b97Storm+Flink","title":"\u5b9e\u65f6\u8ba1\u7b97Storm+Flink","description":"\u5b9e\u65f6\u8ba1\u7b97","sidebar":"studySidebar"},"study/think/\u5e76\u53d1\u6a21\u578b":{"id":"study/think/\u5e76\u53d1\u6a21\u578b","title":"\u5e76\u53d1\u6a21\u578b","description":"\u4e1a\u754c\u5c06\u5982\u4f55\u5b9e\u73b0\u5e76\u53d1\u7f16\u7a0b\u603b\u7ed3\u5f52\u7eb3\u4e3a\u5404\u5f0f\u5404\u6837\u7684\u5e76\u53d1\u6a21\u578b\uff0c\u5e38\u89c1\u7684\u5e76\u53d1\u6a21\u578b\u6709\u4ee5\u4e0b\u51e0\u79cd\uff1a","sidebar":"studySidebar"},"study/think/\u67b6\u6784/CAP\u7406\u8bba":{"id":"study/think/\u67b6\u6784/CAP\u7406\u8bba","title":"CAP\u7406\u8bba","description":"\u7406\u8bba\u77e5\u8bc6","sidebar":"studySidebar"},"study/think/\u67b6\u6784/\u5f02\u5730\u591a\u6d3b\u67b6\u6784":{"id":"study/think/\u67b6\u6784/\u5f02\u5730\u591a\u6d3b\u67b6\u6784","title":"\u5f02\u5730\u591a\u6d3b\u67b6\u6784","description":"\u5e72\u8d27\uff5c\u641e\u61c2\u300c\u5f02\u5730\u591a\u6d3b\u300d\uff0c\u770b\u8fd9\u7bc7\u5c31\u591f\u4e86","sidebar":"studySidebar"},"study/think/\u67b6\u6784/\u6280\u672f\u4e2d\u53f0":{"id":"study/think/\u67b6\u6784/\u6280\u672f\u4e2d\u53f0","title":"\u6280\u672f\u4e2d\u53f0","description":"\u53c2\u8003","sidebar":"studySidebar"},"study/think/\u67b6\u6784/\u67b6\u6784":{"id":"study/think/\u67b6\u6784/\u67b6\u6784","title":"\u67b6\u6784","description":"\u5b9a\u4e49","sidebar":"studySidebar"},"study/think/\u67b6\u6784/\u67b6\u6784\u56fe\u793a\u4f8b":{"id":"study/think/\u67b6\u6784/\u67b6\u6784\u56fe\u793a\u4f8b","title":"\u67b6\u6784\u56fe\u793a\u4f8b","description":"image.png","sidebar":"studySidebar"},"study/think/\u67b6\u6784/\u8d1f\u8f7d\u5747\u8861":{"id":"study/think/\u67b6\u6784/\u8d1f\u8f7d\u5747\u8861","title":"\u8d1f\u8f7d\u5747\u8861","description":"DNS\u8d1f\u8f7d","sidebar":"studySidebar"},"study/think/\u67b6\u6784/\u9ad8\u6027\u80fd\u67b6\u6784\u6a21\u5f0f":{"id":"study/think/\u67b6\u6784/\u9ad8\u6027\u80fd\u67b6\u6784\u6a21\u5f0f","title":"\u9ad8\u6027\u80fd\u67b6\u6784\u6a21\u5f0f","description":"\u867d\u7136\u8fd1\u5341\u5e74\u6765\u5404\u79cd\u5b58\u50a8\u6280\u672f\u98de\u901f\u53d1\u5c55\uff0c\u4f46\u5173\u7cfb\u6570\u636e\u5e93\u7531\u4e8e\u5176 ACID \u7684\u7279\u6027\u548c\u529f\u80fd\u5f3a\u5927\u7684 SQL \u67e5\u8be2\uff0c\u76ee\u524d\u8fd8\u662f\u5404\u79cd\u4e1a\u52a1\u7cfb\u7edf\u4e2d\u5173\u952e\u548c\u6838\u5fc3\u7684\u5b58\u50a8\u7cfb\u7edf\uff0c\u5f88\u591a\u573a\u666f\u4e0b\u9ad8\u6027\u80fd\u7684\u8bbe\u8ba1\u6700\u6838\u5fc3\u7684\u90e8\u5206\u5c31\u662f\u5173\u7cfb\u6570\u636e\u5e93\u7684\u8bbe\u8ba1\u3002","sidebar":"studySidebar"},"study/think/\u6982\u5ff5\u6a21\u578b/Actor Model":{"id":"study/think/\u6982\u5ff5\u6a21\u578b/Actor Model","title":"Actor Model","description":"Actor\u6a21\u578b\u662f\u4e00\u4e2a\u6982\u5ff5\u6a21\u578b\uff0c\u7528\u4e8e\u5904\u7406\u5e76\u53d1\u8ba1\u7b97\u3002\u5b83\u5b9a\u4e49\u4e86\u4e00\u7cfb\u5217\u7cfb\u7edf\u7ec4\u4ef6\u5e94\u8be5\u5982\u4f55\u52a8\u4f5c\u548c\u4ea4\u4e92\u7684\u901a\u7528\u89c4\u5219\uff0c\u6700\u8457\u540d\u7684\u4f7f\u7528\u8fd9\u5957\u89c4\u5219\u7684\u7f16\u7a0b\u8bed\u8a00\u662fErlang\u3002","sidebar":"studySidebar"},"study/think/\u6982\u5ff5\u6a21\u578b/Proactor":{"id":"study/think/\u6982\u5ff5\u6a21\u578b/Proactor","title":"Proactor","description":"Reactor \u662f\u975e\u963b\u585e\u540c\u6b65\u7f51\u7edc\u6a21\u578b\uff0c\u56e0\u4e3a\u771f\u6b63\u7684 read \u548c send \u64cd\u4f5c\u90fd\u9700\u8981\u7528\u6237\u8fdb\u7a0b\u540c\u6b65\u64cd\u4f5c\u3002\u8fd9\u91cc\u7684\u201c\u540c\u6b65\u201d\u6307\u7528\u6237\u8fdb\u7a0b\u5728\u6267\u884c read \u548c send \u8fd9\u7c7b I/O \u64cd\u4f5c\u7684\u65f6\u5019\u662f\u540c\u6b65\u7684\uff0c\u5982\u679c\u628a I/O \u64cd\u4f5c\u6539\u4e3a\u5f02\u6b65\u5c31\u80fd\u591f\u8fdb\u4e00\u6b65\u63d0\u5347\u6027\u80fd\uff0c\u8fd9\u5c31\u662f\u5f02\u6b65\u7f51\u7edc\u6a21\u578b Proactor\u3002","sidebar":"studySidebar"},"study/think/\u6982\u5ff5\u6a21\u578b/Reactor\u6a21\u5f0f\u53cd\u5e94\u5806\u6a21\u5f0f":{"id":"study/think/\u6982\u5ff5\u6a21\u578b/Reactor\u6a21\u5f0f\u53cd\u5e94\u5806\u6a21\u5f0f","title":"Reactor\u6a21\u5f0f\u53cd\u5e94\u5806\u6a21\u5f0f","description":"5\u79cdI/O\u6a21\u578b\u6bd4\u8f83","sidebar":"studySidebar"},"study/think/\u7f13\u5b58/\u5206\u5e03\u5f0f\u7f13\u5b58":{"id":"study/think/\u7f13\u5b58/\u5206\u5e03\u5f0f\u7f13\u5b58","title":"\u5206\u5e03\u5f0f\u7f13\u5b58","description":"\u7f13\u5b58\u4f5c\u4e3a\u78c1\u76d8\u4ee5\u5916\u7684\u4e00\u79cd\u5b58\u50a8\u6570\u636e\u7684\u65b9\u5f0f\uff0c\u5b83\u6709\u7740\u6bd4\u78c1\u76d8\u66f4\u5feb\u7684\u5b58\u53d6\u6548\u7387\uff0c\u56e0\u6b64\uff0c\u53ef\u4ee5\u6709\u6548\u63d0\u9ad8\u7cfb\u7edf\u7684\u6027\u80fd\u3002\u5728\u5355\u4f53\u7cfb\u7edf\u4e2d\uff0c\u4e00\u822c\u4f1a\u7528\u5230\u672c\u5730\u7f13\u5b58\u3002\u4f46\u5728\u5206\u5e03\u5f0f\u7cfb\u7edf\u4e2d\uff0c\u672c\u5730\u7f13\u5b58\u5c31\u663e\u5f97\u4e0d\u591f\u7528\u4e86\uff0c\u8fd9\u65f6\u5f80\u5f80\u8981\u7528\u5230\u5206\u5e03\u5f0f\u7f13\u5b58\u3002","sidebar":"studySidebar"},"study/think/\u7f13\u5b58/\u7f13\u5b58":{"id":"study/think/\u7f13\u5b58/\u7f13\u5b58","title":"\u7f13\u5b58","description":"| | Ehcache | Redis |","sidebar":"studySidebar"},"study/think/\u8bbe\u8ba1\u6a21\u5f0f":{"id":"study/think/\u8bbe\u8ba1\u6a21\u5f0f","title":"\u8bbe\u8ba1\u6a21\u5f0f","description":"\u516d\u5927\u539f\u5219","sidebar":"studySidebar"},"study/think/\u8c08\u5de5\u4f5c\u5fc3\u5f97":{"id":"study/think/\u8c08\u5de5\u4f5c\u5fc3\u5f97","title":"\u8c08\u5de5\u4f5c\u5fc3\u5f97","description":"\u5236\u5b9a\u539f\u5219\uff1a\u624b\u4e2d\u65e0\u5200\uff0c\u4f46\u4f60\u7684\u5fc3\u4e2d\u8981\u6709\u5200","sidebar":"studySidebar"},"study/think/\u9650\u6d41":{"id":"study/think/\u9650\u6d41","title":"\u9650\u6d41","description":"\u524d\u8a00","sidebar":"studySidebar"},"study/think/\u9886\u57df\u9a71\u52a8\u8bbe\u8ba1DDD":{"id":"study/think/\u9886\u57df\u9a71\u52a8\u8bbe\u8ba1DDD","title":"\u9886\u57df\u9a71\u52a8\u8bbe\u8ba1DDD","description":"\u4ec0\u4e48\u662fDDD","sidebar":"studySidebar"},"xuanxing/back/index":{"id":"xuanxing/back/index","title":"\u6982\u8ff0","description":"\u4e3b\u8981\u4f7f\u7528 Java\uff0c\u4e2d\u95f4\u4ef6\u53ef\u96c6\u6210\u6216\u72ec\u7acb\u90e8\u7f72\u3002","sidebar":"xuanxingSidebar"},"xuanxing/devops/index":{"id":"xuanxing/devops/index","title":"\u6982\u8ff0","description":"\u4e00\u822c\u9700\u8981\u5305\u62ec\u5982\u4e0b\u5185\u5bb9\uff1a","sidebar":"xuanxingSidebar"},"xuanxing/fe/index":{"id":"xuanxing/fe/index","title":"\u6982\u8ff0","description":"\u524d\u7aef\u5927\u6982\u5305\u542b\u4ee5\u4e0b\u51e0\u4e2a\u65b9\u9762\uff1a","sidebar":"xuanxingSidebar"},"xuanxing/fe/\u5b98\u7f51":{"id":"xuanxing/fe/\u5b98\u7f51","title":"\u5b98\u7f51","description":"\u5b98\u7f51\u6bd4\u8f83\u504f\u7eaf\u5c55\u793a\uff0c\u5bf9SEO\u6709\u8981\u6c42\uff0c\u5bf9CMS\u6709\u8981\u6c42\uff0c\u5bf9\u90e8\u5206\u8fd0\u8425\u6709\u9700\u6c42\uff1b","sidebar":"xuanxingSidebar"},"xuanxing/fe/\u7528\u6237\u7aef\u7ba1\u7406\u7aef":{"id":"xuanxing/fe/\u7528\u6237\u7aef\u7ba1\u7406\u7aef","title":"\u7528\u6237\u7aef+\u7ba1\u7406\u7aef","description":"\u5728\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u4e0a\uff0c\u7528\u6237\u7aef\u548c\u7ba1\u7406\u7aef\u90fd\u662f\u504f\u4e2d\u540e\u53f0\u7684\u7ba1\u7406\u7cfb\u7edf\uff0c\u6240\u4ee5\u4ed6\u4eec\u4e24\u4e2a\u524d\u7aef\u7684\u6280\u672f\u9009\u578b\u4e0a\u5e94\u8be5\u662f\u7edf\u4e00\u7684\uff1b","sidebar":"xuanxingSidebar"},"xuanxing/fe/\u79fb\u52a8\u7aef":{"id":"xuanxing/fe/\u79fb\u52a8\u7aef","title":"\u79fb\u52a8\u7aef","description":"\u5728\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u4e0a\uff0c\u79fb\u52a8\u7aef\u65b9\u9762\uff0c\u9996\u9009\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\uff0c\u5982\u679c\u6709\u5916\u8d38\u9700\u6c42\uff0c\u53ef\u4ee5\u589e\u52a0 APP \u548c Mobile WEB\u3002","sidebar":"xuanxingSidebar"},"xuanxing/fe/\u7ec4\u6001+\u5927\u5c4f\u7f16\u8f91\u5668":{"id":"xuanxing/fe/\u7ec4\u6001+\u5927\u5c4f\u7f16\u8f91\u5668","title":"\u7ec4\u6001\u7f16\u8f91\u5668/\u5927\u5c4f\u7f16\u8f91\u5668","description":"\u5728\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u4e0a\uff0c\u7ec4\u6001\u7f16\u8f91\u5668\u548c\u5927\u5c4f\u7f16\u8f91\u5668\u90fd\u662f\u5c5e\u4e8e\u53ef\u89c6\u5316\u7f16\u8f91\u5668\u7684\u8303\u7574\u3002","sidebar":"xuanxingSidebar"},"xuanxing/index":{"id":"xuanxing/index","title":"\u7efc\u8ff0","description":"\u7efc\u5408\u8003\u8651","sidebar":"xuanxingSidebar"},"xuanxing/thingsboard/index":{"id":"xuanxing/thingsboard/index","title":"\u7efc\u8ff0","description":"thingsboard \u5e94\u8be5\u7b97\u662f\u9876\u7ea7\u7684\u5f00\u6e90\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u4e86\u3002\u4f46\u662f\uff0c\u7ecf\u6211\u7814\u7a76\uff0c\u4e0d\u662f\u5f88\u9002\u5408\u56fd\u5185\u7528\u6237\u3002\u4f46\u662f\u5374\u6709\u5f88\u591a\u5b66\u4e60\u548c\u501f\u9274\u7684\u5730\u65b9\uff0c\u4f8b\u5982\u89c4\u5219\u5f15\u64ce\u3002","sidebar":"xuanxingSidebar"},"xuanxing/thingsboard/\u5982\u4f55\u4f7f\u7528":{"id":"xuanxing/thingsboard/\u5982\u4f55\u4f7f\u7528","title":"\u5982\u4f55\u4f7f\u7528","description":"\u4e0a\u884c\u6d88\u606f","sidebar":"xuanxingSidebar"},"xuanxing/thingsboard/\u6e90\u7801\u7ed3\u6784":{"id":"xuanxing/thingsboard/\u6e90\u7801\u7ed3\u6784","title":"\u6e90\u7801\u7ed3\u6784","description":"swagger","sidebar":"xuanxingSidebar"}}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8581],{5610:d=>{d.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"studySidebar":[{"type":"link","label":"\u5b66\u65e0\u6b62\u5883","href":"/docs/study/","docId":"study/index"},{"type":"category","label":"\u524d\u7aef","items":[{"type":"link","label":"\u6982\u8ff0","href":"/docs/study/fe/","docId":"study/fe/index"},{"type":"link","label":"\u524d\u7aef\u6a21\u5757\u5316","href":"/docs/study/fe/\u524d\u7aef\u6a21\u5757\u5316","docId":"study/fe/\u524d\u7aef\u6a21\u5757\u5316"},{"type":"link","label":"ARMS\u524d\u7aef\u76d1\u63a7","href":"/docs/study/fe/ARMS\u524d\u7aef\u76d1\u63a7","docId":"study/fe/ARMS\u524d\u7aef\u76d1\u63a7"},{"type":"link","label":"Flutter\u5f00\u53d1\u95ee\u9898\u8bb0\u5f55","href":"/docs/study/fe/Flutter\u5f00\u53d1\u95ee\u9898\u8bb0\u5f55","docId":"study/fe/Flutter\u5f00\u53d1\u95ee\u9898\u8bb0\u5f55"},{"type":"link","label":"TypeScript\u8bed\u6cd5\u56fe","href":"/docs/study/fe/TypeScript\u8bed\u6cd5\u56fe","docId":"study/fe/TypeScript\u8bed\u6cd5\u56fe"},{"type":"link","label":"WebGL","href":"/docs/study/fe/WebGL","docId":"study/fe/WebGL"},{"type":"link","label":"mqtt.js","href":"/docs/study/fe/mqtt.js","docId":"study/fe/mqtt.js"},{"type":"link","label":"\u4e0b\u8f7d\u56fe\u7247","href":"/docs/study/fe/\u4e0b\u8f7d\u56fe\u7247","docId":"study/fe/\u4e0b\u8f7d\u56fe\u7247"},{"type":"link","label":"\u4f4e\u4ee3\u7801\u53ef\u89c6\u5316\u5e73\u53f0","href":"/docs/study/fe/\u4f4e\u4ee3\u7801\u53ef\u89c6\u5316\u5e73\u53f0","docId":"study/fe/\u4f4e\u4ee3\u7801\u53ef\u89c6\u5316\u5e73\u53f0"}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u540e\u7aef","items":[{"type":"link","label":"\u6982\u8ff0","href":"/docs/study/back/","docId":"study/back/index"},{"type":"link","label":"Zookeeper","href":"/docs/study/back/Zookeeper","docId":"study/back/Zookeeper"},{"type":"link","label":"\u9ad8\u5e76\u53d1API","href":"/docs/study/back/\u9ad8\u5e76\u53d1API","docId":"study/back/\u9ad8\u5e76\u53d1API"},{"type":"category","label":"API \u7f51\u5173","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Apache APISIX","href":"/docs/study/back/API\u7f51\u5173/APISIX","docId":"study/back/API\u7f51\u5173/APISIX"}],"href":"/docs/study/back/API\u7f51\u5173/"},{"type":"category","label":"IEDA","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Maven","href":"/docs/study/back/IEDA/Maven","docId":"study/back/IEDA/Maven"},{"type":"link","label":"encoding","href":"/docs/study/back/IEDA/encoding","docId":"study/back/IEDA/encoding"},{"type":"link","label":"File and Code Templates","href":"/docs/study/back/IEDA/fileandcodetemplates","docId":"study/back/IEDA/fileandcodetemplates"},{"type":"link","label":"Save Action","href":"/docs/study/back/IEDA/save-action","docId":"study/back/IEDA/save-action"}]},{"type":"link","label":"POST\u7f16\u7801\u683c\u5f0f","href":"/docs/study/back/POST\u7f16\u7801\u683c\u5f0f","docId":"study/back/POST\u7f16\u7801\u683c\u5f0f"},{"type":"link","label":"WSL","href":"/docs/study/back/WSL","docId":"study/back/WSL"},{"type":"category","label":"maven","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"pom\u6587\u4ef6\u4e2d\u7684scope\u6807\u7b7e","href":"/docs/study/back/maven/pom\u6587\u4ef6\u4e2d\u7684scope\u6807\u7b7e","docId":"study/back/maven/pom\u6587\u4ef6\u4e2d\u7684scope\u6807\u7b7e"},{"type":"link","label":"mvnw","href":"/docs/study/back/maven/mvnw","docId":"study/back/maven/mvnw"},{"type":"link","label":"\u5e38\u7528\u53c2\u6570","href":"/docs/study/back/maven/\u5e38\u7528\u53c2\u6570","docId":"study/back/maven/\u5e38\u7528\u53c2\u6570"},{"type":"link","label":"\u6784\u5efaDocker","href":"/docs/study/back/maven/\u6784\u5efaDocker","docId":"study/back/maven/\u6784\u5efaDocker"}]},{"type":"category","label":"mq","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Kafka","href":"/docs/study/back/mq/Kafka","docId":"study/back/mq/Kafka"},{"type":"link","label":"MQTT broker","href":"/docs/study/back/mq/MQTT broker","docId":"study/back/mq/MQTT broker"},{"type":"link","label":"MQ\u5b9e\u73b0\u5bf9\u6bd4","href":"/docs/study/back/mq/MQ\u5b9e\u73b0\u5bf9\u6bd4","docId":"study/back/mq/MQ\u5b9e\u73b0\u5bf9\u6bd4"},{"type":"link","label":"RocketMQ","href":"/docs/study/back/mq/RocketMQ","docId":"study/back/mq/RocketMQ"}]},{"type":"category","label":"spring","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"@Configuration","href":"/docs/study/back/spring/@Configuration","docId":"study/back/spring/@Configuration"},{"type":"link","label":"@Resource@Autowired","href":"/docs/study/back/spring/@Resource@Autowired","docId":"study/back/spring/@Resource@Autowired"},{"type":"link","label":"Spring AOP","href":"/docs/study/back/spring/SpringAOP","docId":"study/back/spring/SpringAOP"},{"type":"link","label":"Spring Boot","href":"/docs/study/back/spring/SpringBoot","docId":"study/back/spring/SpringBoot"},{"type":"link","label":"Spirng Framework","href":"/docs/study/back/spring/SpringFramework","docId":"study/back/spring/SpringFramework"},{"type":"link","label":"Spring Security","href":"/docs/study/back/spring/SpringSecurity","docId":"study/back/spring/SpringSecurity"},{"type":"link","label":"Spring\u751f\u547d\u5468\u671f\u63a5\u53e3","href":"/docs/study/back/spring/Spring\u751f\u547d\u5468\u671f\u63a5\u53e3","docId":"study/back/spring/Spring\u751f\u547d\u5468\u671f\u63a5\u53e3"}]},{"type":"category","label":"springcloud","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"SpringCloud\u4e94\u5927\u7ec4\u4ef6","href":"/docs/study/back/springcloud/SpringCloud\u4e94\u5927\u7ec4\u4ef6","docId":"study/back/springcloud/SpringCloud\u4e94\u5927\u7ec4\u4ef6"},{"type":"link","label":"nacos","href":"/docs/study/back/springcloud/nacos","docId":"study/back/springcloud/nacos"},{"type":"link","label":"\u5fae\u670d\u52a1","href":"/docs/study/back/springcloud/\u5fae\u670d\u52a1","docId":"study/back/springcloud/\u5fae\u670d\u52a1"}]},{"type":"category","label":"\u4fe1\u606f\u5b89\u5168","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Oauth2","href":"/docs/study/back/\u4fe1\u606f\u5b89\u5168/Oauth2","docId":"study/back/\u4fe1\u606f\u5b89\u5168/Oauth2"},{"type":"link","label":"\u8ba4\u8bc1","href":"/docs/study/back/\u4fe1\u606f\u5b89\u5168/\u8ba4\u8bc1","docId":"study/back/\u4fe1\u606f\u5b89\u5168/\u8ba4\u8bc1"},{"type":"link","label":"\u9632\u8303\u6f0f\u6d1e\u653b\u51fb","href":"/docs/study/back/\u4fe1\u606f\u5b89\u5168/\u9632\u8303\u6f0f\u6d1e\u653b\u51fb","docId":"study/back/\u4fe1\u606f\u5b89\u5168/\u9632\u8303\u6f0f\u6d1e\u653b\u51fb"}]},{"type":"category","label":"\u6570\u636e\u5e93\u76f8\u5173","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"JPA-MyBatis","href":"/docs/study/back/\u6570\u636e\u5e93\u76f8\u5173/JPA-MyBatis","docId":"study/back/\u6570\u636e\u5e93\u76f8\u5173/JPA-MyBatis"},{"type":"link","label":"Java\u6570\u636e\u5e93\u8fde\u63a5\u6c60","href":"/docs/study/back/\u6570\u636e\u5e93\u76f8\u5173/Java\u6570\u636e\u5e93\u8fde\u63a5\u6c60","docId":"study/back/\u6570\u636e\u5e93\u76f8\u5173/Java\u6570\u636e\u5e93\u8fde\u63a5\u6c60"},{"type":"link","label":"MyBatis","href":"/docs/study/back/\u6570\u636e\u5e93\u76f8\u5173/MyBatis","docId":"study/back/\u6570\u636e\u5e93\u76f8\u5173/MyBatis"},{"type":"link","label":"log4jdbc","href":"/docs/study/back/\u6570\u636e\u5e93\u76f8\u5173/log4jdbc","docId":"study/back/\u6570\u636e\u5e93\u76f8\u5173/log4jdbc"}]},{"type":"link","label":"\u9519\u8bef\u6392\u9664\u96c6\u9526","href":"/docs/study/back/\u9519\u8bef\u6392\u9664\u96c6\u9526","docId":"study/back/\u9519\u8bef\u6392\u9664\u96c6\u9526"}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u6570\u636e\u5e93","items":[{"type":"link","label":"\u6982\u8ff0","href":"/docs/study/db/","docId":"study/db/index"},{"type":"link","label":"\u7efc\u5408","href":"/docs/study/db/\u7efc\u5408","docId":"study/db/\u7efc\u5408"},{"type":"category","label":"NewSQL","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"TiDB","href":"/docs/study/db/NewSQL/TiDB","docId":"study/db/NewSQL/TiDB"}]},{"type":"category","label":"NoSQL","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Cassandra","href":"/docs/study/db/NoSQL/Cassandra","docId":"study/db/NoSQL/Cassandra"},{"type":"link","label":"Etcd","href":"/docs/study/db/NoSQL/Etcd","docId":"study/db/NoSQL/Etcd"},{"type":"link","label":"Hadoop","href":"/docs/study/db/NoSQL/Hadoop","docId":"study/db/NoSQL/Hadoop"},{"type":"link","label":"Hbase","href":"/docs/study/db/NoSQL/Hbase","docId":"study/db/NoSQL/Hbase"},{"type":"link","label":"Ignite","href":"/docs/study/db/NoSQL/Ignite","docId":"study/db/NoSQL/Ignite"},{"type":"link","label":"MongoDB","href":"/docs/study/db/NoSQL/MongoDB","docId":"study/db/NoSQL/MongoDB"},{"type":"link","label":"Redis","href":"/docs/study/db/NoSQL/Redis","docId":"study/db/NoSQL/Redis"}]},{"type":"category","label":"OLAP","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\u7efc\u5408\u6982\u8ff0","href":"/docs/study/db/OLAP/\u7efc\u5408\u6982\u8ff0","docId":"study/db/OLAP/\u7efc\u5408\u6982\u8ff0"},{"type":"link","label":"ClickHouse","href":"/docs/study/db/OLAP/ClickHouse","docId":"study/db/OLAP/ClickHouse"},{"type":"link","label":"Kylin","href":"/docs/study/db/OLAP/Kylin","docId":"study/db/OLAP/Kylin"},{"type":"link","label":"StarRocks","href":"/docs/study/db/OLAP/StarRocks","docId":"study/db/OLAP/StarRocks"}]},{"type":"category","label":"SQL","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\u7efc\u5408\u6982\u8ff0","href":"/docs/study/db/SQL/\u7efc\u5408\u6982\u8ff0","docId":"study/db/SQL/\u7efc\u5408\u6982\u8ff0"},{"type":"link","label":"MariaDB","href":"/docs/study/db/SQL/MariaDB","docId":"study/db/SQL/MariaDB"},{"type":"link","label":"MySQL \u7b14\u8bb0","href":"/docs/study/db/SQL/MySQL-\u7b14\u8bb0","docId":"study/db/SQL/MySQL-\u7b14\u8bb0"},{"type":"link","label":"MySQL","href":"/docs/study/db/SQL/MySQL","docId":"study/db/SQL/MySQL"},{"type":"link","label":"OpenGauss","href":"/docs/study/db/SQL/OpenGauss","docId":"study/db/SQL/OpenGauss"},{"type":"link","label":"PostgreSQL","href":"/docs/study/db/SQL/PostgreSQL","docId":"study/db/SQL/PostgreSQL"},{"type":"link","label":"\u8fbe\u68a6\u6570\u636e\u5e93","href":"/docs/study/db/SQL/\u8fbe\u68a6","docId":"study/db/SQL/\u8fbe\u68a6"}]},{"type":"category","label":"\u5168\u6587\u641c\u7d22\u5f15\u64ce","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\u7efc\u5408\u6982\u8ff0","href":"/docs/study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/\u7efc\u5408\u6982\u8ff0","docId":"study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/\u7efc\u5408\u6982\u8ff0"},{"type":"link","label":"Elasticsearch","href":"/docs/study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/Elasticsearch","docId":"study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/Elasticsearch"}]},{"type":"category","label":"\u65f6\u5e8f\u6570\u636e\u5e93","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"InfluxDB","href":"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/InfluxDB","docId":"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/InfluxDB"},{"type":"link","label":"TDengine","href":"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TDengine","docId":"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TDengine"},{"type":"link","label":"Apache IoTDB","href":"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Apache IoTDB","docId":"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Apache IoTDB"},{"type":"link","label":"Druid","href":"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Druid","docId":"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Druid"},{"type":"link","label":"KairosDB","href":"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/KairosDB","docId":"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/KairosDB"},{"type":"link","label":"OpenTSDB","href":"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/OpenTSDB","docId":"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/OpenTSDB"},{"type":"link","label":"TimescaleDB","href":"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TimescaleDB","docId":"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TimescaleDB"}]}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u7f16\u7a0b\u8bed\u8a00/\u5de5\u5177","items":[{"type":"link","label":"\u6982\u8ff0","href":"/docs/study/program/","docId":"study/program/index"},{"type":"category","label":"Java","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"GC","href":"/docs/study/program/JAVA/GC","docId":"study/program/JAVA/GC"},{"type":"link","label":"GraalVM","href":"/docs/study/program/JAVA/GraalVM","docId":"study/program/JAVA/GraalVM"},{"type":"link","label":"Guice","href":"/docs/study/program/JAVA/Guice","docId":"study/program/JAVA/Guice"},{"type":"link","label":"JDK17-bin","href":"/docs/study/program/JAVA/JDK17-bin","docId":"study/program/JAVA/JDK17-bin"},{"type":"link","label":"JDK17","href":"/docs/study/program/JAVA/JDK17","docId":"study/program/JAVA/JDK17"},{"type":"link","label":"JDK21","href":"/docs/study/program/JAVA/JDK21","docId":"study/program/JAVA/JDK21"},{"type":"link","label":"JDK8","href":"/docs/study/program/JAVA/JDK8","docId":"study/program/JAVA/JDK8"},{"type":"link","label":"JNI","href":"/docs/study/program/JAVA/JNI","docId":"study/program/JAVA/JNI"},{"type":"link","label":"Maven","href":"/docs/study/program/JAVA/Maven","docId":"study/program/JAVA/Maven"},{"type":"link","label":"OpenJ9","href":"/docs/study/program/JAVA/OepnJ9","docId":"study/program/JAVA/OepnJ9"},{"type":"link","label":"RxJava","href":"/docs/study/program/JAVA/RxJava","docId":"study/program/JAVA/RxJava"},{"type":"link","label":"Vert.x","href":"/docs/study/program/JAVA/Vert.x","docId":"study/program/JAVA/Vert.x"},{"type":"link","label":"\u4ee3\u7801\u751f\u6210","href":"/docs/study/program/JAVA/\u4ee3\u7801\u751f\u6210","docId":"study/program/JAVA/\u4ee3\u7801\u751f\u6210"},{"type":"link","label":"\u9501\uff08\u591a\u7ebf\u7a0b\uff09","href":"/docs/study/program/JAVA/\u9501","docId":"study/program/JAVA/\u9501"}],"href":"/docs/study/program/JAVA/"},{"type":"link","label":"ABIAPI","href":"/docs/study/program/ABIAPI","docId":"study/program/ABIAPI"},{"type":"category","label":"C C++ \u7f16\u7a0b\u8bed\u8a00","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"C\u8bed\u8a00\u6807\u51c6\u5e93","href":"/docs/study/program/C/C\u8bed\u8a00\u6807\u51c6\u5e93","docId":"study/program/C/C\u8bed\u8a00\u6807\u51c6\u5e93"},{"type":"link","label":"MFC-WinForm-WPF-DotNet\u7b49","href":"/docs/study/program/C/MFC-WinForm-WPF-DotNet\u7b49","docId":"study/program/C/MFC-WinForm-WPF-DotNet\u7b49"},{"type":"link","label":"cmake","href":"/docs/study/program/C/cmake","docId":"study/program/C/cmake"},{"type":"link","label":"extern-c","href":"/docs/study/program/C/extern-c","docId":"study/program/C/extern-c"},{"type":"link","label":"make","href":"/docs/study/program/C/make","docId":"study/program/C/make"},{"type":"link","label":"pragma","href":"/docs/study/program/C/pragma","docId":"study/program/C/pragma"},{"type":"link","label":"size_t-ptrdiff_t-intptr_t-uintptr_t","href":"/docs/study/program/C/size_t-ptrdiff_t-intptr_t-uintptr_t","docId":"study/program/C/size_t-ptrdiff_t-intptr_t-uintptr_t"},{"type":"link","label":"\u65b9\u6cd5\u5e93-\u9759\u6001\u5e93-\u52a8\u6001\u5e93-\u5171\u4eab\u5e93","href":"/docs/study/program/C/\u65b9\u6cd5\u5e93-\u9759\u6001\u5e93-\u52a8\u6001\u5e93-\u5171\u4eab\u5e93","docId":"study/program/C/\u65b9\u6cd5\u5e93-\u9759\u6001\u5e93-\u52a8\u6001\u5e93-\u5171\u4eab\u5e93"},{"type":"link","label":"\u6784\u5efa\u5de5\u5177","href":"/docs/study/program/C/\u6784\u5efa\u5de5\u5177","docId":"study/program/C/\u6784\u5efa\u5de5\u5177"},{"type":"link","label":"\u865a\u62df\u7f51\u5361","href":"/docs/study/program/C/\u865a\u62df\u7f51\u5361","docId":"study/program/C/\u865a\u62df\u7f51\u5361"}],"href":"/docs/study/program/C/"},{"type":"category","label":"C++","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"CGI","href":"/docs/study/program/CPP/CGI","docId":"study/program/CPP/CGI"},{"type":"link","label":"C++\u8fdb\u7a0b\u95f4\u901a\u4fe1","href":"/docs/study/program/CPP/CPP\u8fdb\u7a0b\u95f4\u901a\u4fe1","docId":"study/program/CPP/CPP\u8fdb\u7a0b\u95f4\u901a\u4fe1"}],"href":"/docs/study/program/CPP/"},{"type":"link","label":"CSharp","href":"/docs/study/program/CSharp/","docId":"study/program/CSharp/index"},{"type":"category","label":"Dart","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Flutter","href":"/docs/study/program/Dart/Flutter","docId":"study/program/Dart/Flutter"},{"type":"link","label":"Dart \u5b66\u4e60\u8d44\u6599","href":"/docs/study/program/Dart/\u5b66\u4e60\u8d44\u6599","docId":"study/program/Dart/\u5b66\u4e60\u8d44\u6599"}]},{"type":"category","label":"ETL","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"dataX","href":"/docs/study/program/ETL/dataX","docId":"study/program/ETL/dataX"},{"type":"link","label":"flume","href":"/docs/study/program/ETL/flume","docId":"study/program/ETL/flume"},{"type":"link","label":"kettle","href":"/docs/study/program/ETL/kettle","docId":"study/program/ETL/kettle"},{"type":"link","label":"sqoop","href":"/docs/study/program/ETL/sqoop","docId":"study/program/ETL/sqoop"}]},{"type":"link","label":"Erlang","href":"/docs/study/program/Erlang/","docId":"study/program/Erlang/index"},{"type":"category","label":"GIT","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"GIT-\u5e38\u7528\u547d\u4ee4","href":"/docs/study/program/GIT/GIT-\u5e38\u7528\u547d\u4ee4","docId":"study/program/GIT/GIT-\u5e38\u7528\u547d\u4ee4"},{"type":"link","label":"GitHub Desktop","href":"/docs/study/program/GIT/GitHubDesktop","docId":"study/program/GIT/GitHubDesktop"},{"type":"link","label":"PR\u548cMR","href":"/docs/study/program/GIT/PR\u548cMR","docId":"study/program/GIT/PR\u548cMR"}]},{"type":"category","label":"Golang","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Golang\u4f9d\u8d56\u5e93\u4ee3\u7406","href":"/docs/study/program/Golang/Golang\u4f9d\u8d56\u5e93\u4ee3\u7406","docId":"study/program/Golang/Golang\u4f9d\u8d56\u5e93\u4ee3\u7406"},{"type":"link","label":"\u5e38\u7528\u7684\u5de5\u5177","href":"/docs/study/program/Golang/\u5e38\u7528\u7684\u5de5\u5177","docId":"study/program/Golang/\u5e38\u7528\u7684\u5de5\u5177"},{"type":"link","label":"\u5e38\u7528\u7684\u6846\u67b6","href":"/docs/study/program/Golang/\u5e38\u7528\u7684\u6846\u67b6","docId":"study/program/Golang/\u5e38\u7528\u7684\u6846\u67b6"}],"href":"/docs/study/program/Golang/"},{"type":"category","label":"JS","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"npm","href":"/docs/study/program/JS/npm","docId":"study/program/JS/npm"},{"type":"link","label":"npx","href":"/docs/study/program/JS/npx","docId":"study/program/JS/npx"},{"type":"link","label":"nrm","href":"/docs/study/program/JS/nrm","docId":"study/program/JS/nrm"}]},{"type":"link","label":"Kotlin","href":"/docs/study/program/Kotlin/","docId":"study/program/Kotlin/index"},{"type":"link","label":"Lua","href":"/docs/study/program/Lua/","docId":"study/program/Lua/index"},{"type":"link","label":"Rust","href":"/docs/study/program/Rust/","docId":"study/program/Rust/index"},{"type":"link","label":"\u6280\u672f\u6587\u6863","href":"/docs/study/program/\u6280\u672f\u6587\u6863","docId":"study/program/\u6280\u672f\u6587\u6863"},{"type":"link","label":"\u7f16\u8bd1\u5668","href":"/docs/study/program/\u7f16\u8bd1\u5668","docId":"study/program/\u7f16\u8bd1\u5668"},{"type":"link","label":"\u8de8\u5e73\u53f0\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u6846\u67b6","href":"/docs/study/program/\u8de8\u5e73\u53f0\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u6846\u67b6","docId":"study/program/\u8de8\u5e73\u53f0\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u6846\u67b6"}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u7cfb\u7edf\u8fd0\u7ef4","items":[{"type":"link","label":"\u6982\u8ff0","href":"/docs/study/devops/","docId":"study/devops/index"},{"type":"link","label":"API\u7684\u8bf7\u6c42\u91cf\u5206\u6790","href":"/docs/study/devops/API\u7684\u8bf7\u6c42\u91cf\u5206\u6790","docId":"study/devops/API\u7684\u8bf7\u6c42\u91cf\u5206\u6790"},{"type":"link","label":"Linux\u53d1\u884c\u7248","href":"/docs/study/devops/Linux\u53d1\u884c\u7248","docId":"study/devops/Linux\u53d1\u884c\u7248"},{"type":"link","label":"Linux\u8fd0\u7ef4-\u5e38\u7528","href":"/docs/study/devops/Linux\u8fd0\u7ef4-\u5e38\u7528","docId":"study/devops/Linux\u8fd0\u7ef4-\u5e38\u7528"},{"type":"link","label":"Linux\u8fd0\u7ef4-\u76d1\u63a7\u6570\u636e","href":"/docs/study/devops/Linux\u8fd0\u7ef4-\u76d1\u63a7\u6570\u636e","docId":"study/devops/Linux\u8fd0\u7ef4-\u76d1\u63a7\u6570\u636e"},{"type":"link","label":"Linux\u8fd0\u7ef4-\u81ea\u542f","href":"/docs/study/devops/Linux\u8fd0\u7ef4-\u81ea\u542f","docId":"study/devops/Linux\u8fd0\u7ef4-\u81ea\u542f"},{"type":"link","label":"Linux\u8fd0\u7ef4-\u9ad8\u5e76\u53d1","href":"/docs/study/devops/Linux\u8fd0\u7ef4-\u9ad8\u5e76\u53d1","docId":"study/devops/Linux\u8fd0\u7ef4-\u9ad8\u5e76\u53d1"},{"type":"link","label":"SHELL","href":"/docs/study/devops/SHELL","docId":"study/devops/SHELL"},{"type":"link","label":"ansible","href":"/docs/study/devops/ansible","docId":"study/devops/ansible"},{"type":"link","label":"centos-nginx","href":"/docs/study/devops/centos-gninx-app","docId":"study/devops/centos-gninx-app"},{"type":"link","label":"centos-jdk17-app","href":"/docs/study/devops/centos-jdk17-app","docId":"study/devops/centos-jdk17-app"},{"type":"link","label":"jar\u8fd0\u7ef4-\u76d1\u63a7","href":"/docs/study/devops/jar\u8fd0\u7ef4-\u76d1\u63a7","docId":"study/devops/jar\u8fd0\u7ef4-\u76d1\u63a7"},{"type":"link","label":"ssh","href":"/docs/study/devops/ssh","docId":"study/devops/ssh"},{"type":"link","label":"\u94fe\u8def\u8ffd\u8e2a\u76d1\u63a7","href":"/docs/study/devops/\u94fe\u8def\u8ffd\u8e2a\u76d1\u63a7","docId":"study/devops/\u94fe\u8def\u8ffd\u8e2a\u76d1\u63a7"}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u786c\u4ef6/\u5d4c\u5165\u5f0f","items":[{"type":"link","label":"\u6982\u8ff0","href":"/docs/study/hard/","docId":"study/hard/index"},{"type":"link","label":"\u5d4c\u5165\u5f0f_\u5355\u7247\u673a","href":"/docs/study/hard/\u5d4c\u5165\u5f0f_\u5355\u7247\u673a","docId":"study/hard/\u5d4c\u5165\u5f0f_\u5355\u7247\u673a"},{"type":"link","label":"\u786c\u4ef6\u5f00\u53d1\u548c\u5d4c\u5165\u5f0f\u5f00\u53d1","href":"/docs/study/hard/\u786c\u4ef6\u5f00\u53d1\u548c\u5d4c\u5165\u5f0f\u5f00\u53d1","docId":"study/hard/\u786c\u4ef6\u5f00\u53d1\u548c\u5d4c\u5165\u5f0f\u5f00\u53d1"},{"type":"link","label":"\u8def\u7531\u5668\u548c\u4ea4\u6362\u673a\u7684\u533a\u522b","href":"/docs/study/hard/\u8def\u7531\u5668\u548c\u4ea4\u6362\u673a\u7684\u533a\u522b","docId":"study/hard/\u8def\u7531\u5668\u548c\u4ea4\u6362\u673a\u7684\u533a\u522b"},{"type":"link","label":"\u901a\u4fe1\u6a21\u7ec4","href":"/docs/study/hard/\u901a\u4fe1\u6a21\u7ec4","docId":"study/hard/\u901a\u4fe1\u6a21\u7ec4"}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u7f16\u7a0b\u601d\u60f3","items":[{"type":"link","label":"\u6982\u8ff0","href":"/docs/study/think/","docId":"study/think/index"},{"type":"link","label":"\u8bbe\u8ba1\u6a21\u5f0f","href":"/docs/study/think/\u8bbe\u8ba1\u6a21\u5f0f","docId":"study/think/\u8bbe\u8ba1\u6a21\u5f0f"},{"type":"link","label":"IT_CT_OT","href":"/docs/study/think/IT_CT_OT","docId":"study/think/IT_CT_OT"},{"type":"category","label":"\u4ee3\u7801\u8bc4\u5ba1","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Gerrit\u4ee3\u7801\u8bc4\u5ba1\u5de5\u5177","href":"/docs/study/think/\u4ee3\u7801\u8bc4\u5ba1/Gerrit\u4ee3\u7801\u8bc4\u5ba1\u5de5\u5177","docId":"study/think/\u4ee3\u7801\u8bc4\u5ba1/Gerrit\u4ee3\u7801\u8bc4\u5ba1\u5de5\u5177"},{"type":"link","label":"\u4ee3\u7801\u5ba1\u67e5\u95ee\u9898\u624b\u518c","href":"/docs/study/think/\u4ee3\u7801\u8bc4\u5ba1/\u4ee3\u7801\u5ba1\u67e5\u95ee\u9898\u624b\u518c","docId":"study/think/\u4ee3\u7801\u8bc4\u5ba1/\u4ee3\u7801\u5ba1\u67e5\u95ee\u9898\u624b\u518c"}]},{"type":"link","label":"\u5b9e\u65f6\u8ba1\u7b97Storm+Flink","href":"/docs/study/think/\u5b9e\u65f6\u8ba1\u7b97Storm+Flink","docId":"study/think/\u5b9e\u65f6\u8ba1\u7b97Storm+Flink"},{"type":"link","label":"\u5e76\u53d1\u6a21\u578b","href":"/docs/study/think/\u5e76\u53d1\u6a21\u578b","docId":"study/think/\u5e76\u53d1\u6a21\u578b"},{"type":"category","label":"\u67b6\u6784","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"CAP\u7406\u8bba","href":"/docs/study/think/\u67b6\u6784/CAP\u7406\u8bba","docId":"study/think/\u67b6\u6784/CAP\u7406\u8bba"},{"type":"link","label":"\u5f02\u5730\u591a\u6d3b\u67b6\u6784","href":"/docs/study/think/\u67b6\u6784/\u5f02\u5730\u591a\u6d3b\u67b6\u6784","docId":"study/think/\u67b6\u6784/\u5f02\u5730\u591a\u6d3b\u67b6\u6784"},{"type":"link","label":"\u6280\u672f\u4e2d\u53f0","href":"/docs/study/think/\u67b6\u6784/\u6280\u672f\u4e2d\u53f0","docId":"study/think/\u67b6\u6784/\u6280\u672f\u4e2d\u53f0"},{"type":"link","label":"\u67b6\u6784\u56fe\u793a\u4f8b","href":"/docs/study/think/\u67b6\u6784/\u67b6\u6784\u56fe\u793a\u4f8b","docId":"study/think/\u67b6\u6784/\u67b6\u6784\u56fe\u793a\u4f8b"},{"type":"link","label":"\u8d1f\u8f7d\u5747\u8861","href":"/docs/study/think/\u67b6\u6784/\u8d1f\u8f7d\u5747\u8861","docId":"study/think/\u67b6\u6784/\u8d1f\u8f7d\u5747\u8861"},{"type":"link","label":"\u9ad8\u6027\u80fd\u67b6\u6784\u6a21\u5f0f","href":"/docs/study/think/\u67b6\u6784/\u9ad8\u6027\u80fd\u67b6\u6784\u6a21\u5f0f","docId":"study/think/\u67b6\u6784/\u9ad8\u6027\u80fd\u67b6\u6784\u6a21\u5f0f"}],"href":"/docs/study/think/\u67b6\u6784/"},{"type":"category","label":"\u6982\u5ff5\u6a21\u578b","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Actor Model","href":"/docs/study/think/\u6982\u5ff5\u6a21\u578b/Actor Model","docId":"study/think/\u6982\u5ff5\u6a21\u578b/Actor Model"},{"type":"link","label":"Proactor","href":"/docs/study/think/\u6982\u5ff5\u6a21\u578b/Proactor","docId":"study/think/\u6982\u5ff5\u6a21\u578b/Proactor"},{"type":"link","label":"Reactor\u6a21\u5f0f\u53cd\u5e94\u5806\u6a21\u5f0f","href":"/docs/study/think/\u6982\u5ff5\u6a21\u578b/Reactor\u6a21\u5f0f\u53cd\u5e94\u5806\u6a21\u5f0f","docId":"study/think/\u6982\u5ff5\u6a21\u578b/Reactor\u6a21\u5f0f\u53cd\u5e94\u5806\u6a21\u5f0f"}]},{"type":"category","label":"\u7f13\u5b58","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\u5206\u5e03\u5f0f\u7f13\u5b58","href":"/docs/study/think/\u7f13\u5b58/\u5206\u5e03\u5f0f\u7f13\u5b58","docId":"study/think/\u7f13\u5b58/\u5206\u5e03\u5f0f\u7f13\u5b58"}],"href":"/docs/study/think/\u7f13\u5b58/"},{"type":"link","label":"\u8c08\u5de5\u4f5c\u5fc3\u5f97","href":"/docs/study/think/\u8c08\u5de5\u4f5c\u5fc3\u5f97","docId":"study/think/\u8c08\u5de5\u4f5c\u5fc3\u5f97"},{"type":"link","label":"\u9650\u6d41","href":"/docs/study/think/\u9650\u6d41","docId":"study/think/\u9650\u6d41"},{"type":"link","label":"\u9886\u57df\u9a71\u52a8\u8bbe\u8ba1DDD","href":"/docs/study/think/\u9886\u57df\u9a71\u52a8\u8bbe\u8ba1DDD","docId":"study/think/\u9886\u57df\u9a71\u52a8\u8bbe\u8ba1DDD"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Docker","items":[{"type":"link","label":"\u6982\u8ff0","href":"/docs/study/docker/","docId":"study/docker/index"},{"type":"link","label":"Docker Compose","href":"/docs/study/docker/Docker-compose","docId":"study/docker/Docker-compose"},{"type":"link","label":"Docker Swarm","href":"/docs/study/docker/Docker-swarm","docId":"study/docker/Docker-swarm"},{"type":"link","label":"Dockerfile\u4f7f\u7528\u8be6\u89e3","href":"/docs/study/docker/Dockerfile\u4f7f\u7528\u8be6\u89e3","docId":"study/docker/Dockerfile\u4f7f\u7528\u8be6\u89e3"},{"type":"link","label":"Docker\u7684\u4f7f\u7528\u603b\u7ed3","href":"/docs/study/docker/Docker\u7684\u4f7f\u7528\u603b\u7ed3","docId":"study/docker/Docker\u7684\u4f7f\u7528\u603b\u7ed3"},{"type":"link","label":"docker-kafka","href":"/docs/study/docker/docker-kafka","docId":"study/docker/docker-kafka"},{"type":"link","label":"docker-linux","href":"/docs/study/docker/docker-linux","docId":"study/docker/docker-linux"},{"type":"link","label":"docker-mysql","href":"/docs/study/docker/docker-mysql","docId":"study/docker/docker-mysql"}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u7ade\u54c1\u5206\u6790","items":[{"type":"link","label":"\u6982\u8ff0","href":"/docs/study/competitive/","docId":"study/competitive/index"},{"type":"link","label":"\u5de5\u4e1a\u4e92\u8054\u7f51\u63a2\u7a76","href":"/docs/study/competitive/\u5de5\u4e1a\u4e92\u8054\u7f51\u63a2\u7a76","docId":"study/competitive/\u5de5\u4e1a\u4e92\u8054\u7f51\u63a2\u7a76"},{"type":"link","label":"CMP-DMP-AEP-BAP","href":"/docs/study/competitive/CMP-DMP-AEP-BAP","docId":"study/competitive/CMP-DMP-AEP-BAP"},{"type":"link","label":"TP-LINK","href":"/docs/study/competitive/TP-LINK","docId":"study/competitive/TP-LINK"},{"type":"link","label":"ThingsCloud","href":"/docs/study/competitive/ThingsCloud","docId":"study/competitive/ThingsCloud"},{"type":"link","label":"\u7269\u8054\u7f51\u5e73\u53f0\u5c42\u6982\u8ff0","href":"/docs/study/competitive/\u7269\u8054\u7f51\u5e73\u53f0\u5c42\u6982\u8ff0","docId":"study/competitive/\u7269\u8054\u7f51\u5e73\u53f0\u5c42\u6982\u8ff0"}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u64cd\u4f5c\u7cfb\u7edf","items":[{"type":"link","label":"index","href":"/docs/study/system/","docId":"study/system/index"},{"type":"link","label":"CPU\u7ebf\u7a0b\u5e76\u53d1","href":"/docs/study/system/CPU\u7ebf\u7a0b\u5e76\u53d1","docId":"study/system/CPU\u7ebf\u7a0b\u5e76\u53d1"},{"type":"link","label":"\u64cd\u4f5c\u7cfb\u7edf IO \u77e5\u8bc6","href":"/docs/study/system/IO","docId":"study/system/IO"},{"type":"link","label":"Open\u6b27\u62c9","href":"/docs/study/system/Open\u6b27\u62c9","docId":"study/system/Open\u6b27\u62c9"},{"type":"link","label":"openWRT","href":"/docs/study/system/openWRT","docId":"study/system/openWRT"},{"type":"link","label":"shell\u7f16\u7a0b\u667aexpect","href":"/docs/study/system/shell\u7f16\u7a0b\u667aexpect","docId":"study/system/shell\u7f16\u7a0b\u667aexpect"},{"type":"link","label":"yum-dnf","href":"/docs/study/system/yum-dnf","docId":"study/system/yum-dnf"},{"type":"link","label":"\u5185\u5b58\u7ba1\u7406","href":"/docs/study/system/\u5185\u5b58\u7ba1\u7406","docId":"study/system/\u5185\u5b58\u7ba1\u7406"},{"type":"link","label":"\u53ef\u6267\u884c\u7a0b\u5e8f\u5728\u64cd\u4f5c\u7cfb\u7edf\u4e0b\u7684\u8fd0\u884c\u539f\u7406\u5206\u6790","href":"/docs/study/system/\u53ef\u6267\u884c\u7a0b\u5e8f\u8fd0\u884c\u539f\u7406\u5206\u6790","docId":"study/system/\u53ef\u6267\u884c\u7a0b\u5e8f\u8fd0\u884c\u539f\u7406\u5206\u6790"},{"type":"link","label":"\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838","href":"/docs/study/system/\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838","docId":"study/system/\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838"},{"type":"link","label":"\u7a0b\u5e8f\u8c03\u8bd5","href":"/docs/study/system/\u7a0b\u5e8f\u8c03\u8bd5","docId":"study/system/\u7a0b\u5e8f\u8c03\u8bd5"}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u7f51\u7edc","items":[{"type":"link","label":"IPV6","href":"/docs/study/net/IPV6","docId":"study/net/IPV6"},{"type":"link","label":"MacOS\u7f16\u8bd1OpenVPN","href":"/docs/study/net/MacOS\u7f16\u8bd1OpenVPN","docId":"study/net/MacOS\u7f16\u8bd1OpenVPN"},{"type":"link","label":"OpenVPN","href":"/docs/study/net/OpenVPN","docId":"study/net/OpenVPN"},{"type":"link","label":"SNMP","href":"/docs/study/net/SNMP","docId":"study/net/SNMP"},{"type":"link","label":"TCP","href":"/docs/study/net/TCP","docId":"study/net/TCP"},{"type":"link","label":"UDP","href":"/docs/study/net/UDP","docId":"study/net/UDP"},{"type":"link","label":"VLAN-VXLAN","href":"/docs/study/net/VLAN-VXLAN","docId":"study/net/VLAN-VXLAN"},{"type":"link","label":"Linux ip \u547d\u4ee4","href":"/docs/study/net/ip","docId":"study/net/ip"},{"type":"link","label":"Linux iptables \u9632\u706b\u5899","href":"/docs/study/net/iptables","docId":"study/net/iptables"},{"type":"link","label":"Linux netns","href":"/docs/study/net/netns","docId":"study/net/netns"},{"type":"link","label":"P2P \u7f51\u7edc NAT \u7a7f\u900f\u539f\u7406(\u6253\u6d1e\u65b9\u6848)","href":"/docs/study/net/p2p","docId":"study/net/p2p"},{"type":"link","label":"unix pfctl \u9632\u706b\u5899","href":"/docs/study/net/pfctl\u9632\u706b\u5899","docId":"study/net/pfctl\u9632\u706b\u5899"},{"type":"link","label":"Linux tc","href":"/docs/study/net/tc","docId":"study/net/tc"},{"type":"link","label":"tuntap","href":"/docs/study/net/tuntap","docId":"study/net/tuntap"},{"type":"link","label":"vpn","href":"/docs/study/net/vpn","docId":"study/net/vpn"},{"type":"link","label":"\u4ee3\u7406","href":"/docs/study/net/\u4ee3\u7406","docId":"study/net/\u4ee3\u7406"},{"type":"link","label":"\u5185\u7f51\u7a7f\u900f","href":"/docs/study/net/\u5185\u7f51\u7a7f\u900f","docId":"study/net/\u5185\u7f51\u7a7f\u900f"},{"type":"link","label":"\u5c40\u57df\u7f51IP\u5730\u5740\u8303\u56f4","href":"/docs/study/net/\u5c40\u57df\u7f51IP\u5730\u5740\u8303\u56f4","docId":"study/net/\u5c40\u57df\u7f51IP\u5730\u5740\u8303\u56f4"},{"type":"link","label":"\u5f02\u5730\u7ec4\u7f51","href":"/docs/study/net/\u5f02\u5730\u7ec4\u7f51","docId":"study/net/\u5f02\u5730\u7ec4\u7f51"},{"type":"link","label":"\u6293\u5305\u5de5\u5177","href":"/docs/study/net/\u6293\u5305\u5de5\u5177","docId":"study/net/\u6293\u5305\u5de5\u5177"},{"type":"link","label":"\u7f51\u7edc\u541e\u5410\u91cf\u6d4b\u91cf\u5de5\u5177","href":"/docs/study/net/\u7f51\u7edc\u541e\u5410\u91cf\u6d4b\u91cf\u5de5\u5177","docId":"study/net/\u7f51\u7edc\u541e\u5410\u91cf\u6d4b\u91cf\u5de5\u5177"}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u52a0\u89e3\u5bc6","items":[{"type":"link","label":"ASN.1","href":"/docs/study/encryption/ASN.1","docId":"study/encryption/ASN.1"},{"type":"link","label":"HSM","href":"/docs/study/encryption/HSM","docId":"study/encryption/HSM"},{"type":"link","label":"PKI","href":"/docs/study/encryption/PKI","docId":"study/encryption/PKI"},{"type":"link","label":"SSL TLS HTTPS","href":"/docs/study/encryption/SSL_TLS","docId":"study/encryption/SSL_TLS"},{"type":"link","label":"\u52a0\u89e3\u5bc6","href":"/docs/study/encryption/","docId":"study/encryption/index"},{"type":"link","label":"\u4e2d\u56fd\u5546\u7528\u5bc6\u7801\u7b97\u6cd5","href":"/docs/study/encryption/\u4e2d\u56fd\u5546\u7528\u5bc6\u7801\u7b97\u6cd5","docId":"study/encryption/\u4e2d\u56fd\u5546\u7528\u5bc6\u7801\u7b97\u6cd5"},{"type":"link","label":"\u52a0\u89e3\u5bc6\u670d\u52a1","href":"/docs/study/encryption/\u52a0\u89e3\u5bc6\u670d\u52a1","docId":"study/encryption/\u52a0\u89e3\u5bc6\u670d\u52a1"},{"type":"link","label":"\u5bc6\u7801\u54c8\u5e0c\u7b97\u6cd5","href":"/docs/study/encryption/\u5bc6\u7801\u54c8\u5e0c\u7b97\u6cd5\u603b\u7ed3","docId":"study/encryption/\u5bc6\u7801\u54c8\u5e0c\u7b97\u6cd5\u603b\u7ed3"},{"type":"link","label":"\u5bf9\u79f0\u52a0\u5bc6-\u5206\u7ec4\u5bc6\u7801\u7684\u6a21\u5f0f","href":"/docs/study/encryption/\u5bf9\u79f0\u52a0\u5bc6-\u5206\u7ec4\u5bc6\u7801\u7684\u6a21\u5f0f","docId":"study/encryption/\u5bf9\u79f0\u52a0\u5bc6-\u5206\u7ec4\u5bc6\u7801\u7684\u6a21\u5f0f"},{"type":"link","label":"\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3","href":"/docs/study/encryption/\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3","docId":"study/encryption/\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3"},{"type":"link","label":"\u6570\u5b57\u8bc1\u4e66","href":"/docs/study/encryption/\u6570\u5b57\u8bc1\u4e66","docId":"study/encryption/\u6570\u5b57\u8bc1\u4e66"},{"type":"link","label":"\u6d88\u606f\u6458\u8981\u7b97\u6cd5\u603b\u7ed3","href":"/docs/study/encryption/\u6d88\u606f\u6458\u8981\u7b97\u6cd5\u603b\u7ed3","docId":"study/encryption/\u6d88\u606f\u6458\u8981\u7b97\u6cd5\u603b\u7ed3"},{"type":"link","label":"\u7b49\u4fdd\u548c\u5bc6\u8bc4","href":"/docs/study/encryption/\u7b49\u4fdd_\u5bc6\u8bc4","docId":"study/encryption/\u7b49\u4fdd_\u5bc6\u8bc4"},{"type":"link","label":"\u884c\u4e1a\u5206\u6790","href":"/docs/study/encryption/\u884c\u4e1a\u5206\u6790","docId":"study/encryption/\u884c\u4e1a\u5206\u6790"},{"type":"link","label":"\u8bfb\u4e66\u7b14\u8bb0-\u56fe\u89e3\u5bc6\u7801\u6280\u672f","href":"/docs/study/encryption/\u8bfb\u4e66\u7b14\u8bb0-\u56fe\u89e3\u5bc6\u7801\u6280\u672f","docId":"study/encryption/\u8bfb\u4e66\u7b14\u8bb0-\u56fe\u89e3\u5bc6\u7801\u6280\u672f"},{"type":"link","label":"\u975e\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3","href":"/docs/study/encryption/\u975e\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3","docId":"study/encryption/\u975e\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3"}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u4eba\u5de5\u667a\u80fd","items":[{"type":"link","label":"\u4eba\u5de5\u667a\u80fd","href":"/docs/study/ai/","docId":"study/ai/index"}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u5176\u4ed6","items":[{"type":"link","label":"\u5b57\u8282\u5e8f Big Endian Little Endian","href":"/docs/study/other/\u5b57\u8282\u5e8f","docId":"study/other/\u5b57\u8282\u5e8f"},{"type":"link","label":"\u6807\u51c6\u540d\u79f0\u7f29\u5199","href":"/docs/study/other/\u6807\u51c6\u540d\u79f0\u7f29\u5199","docId":"study/other/\u6807\u51c6\u540d\u79f0\u7f29\u5199"}],"collapsed":true,"collapsible":true}],"xuanxingSidebar":[{"type":"link","label":"\u7efc\u8ff0","href":"/docs/xuanxing/","docId":"xuanxing/index"},{"type":"category","label":"\u524d\u7aef","items":[{"type":"link","label":"\u6982\u8ff0","href":"/docs/xuanxing/fe/","docId":"xuanxing/fe/index"},{"type":"link","label":"\u5b98\u7f51","href":"/docs/xuanxing/fe/\u5b98\u7f51","docId":"xuanxing/fe/\u5b98\u7f51"},{"type":"link","label":"\u7528\u6237\u7aef+\u7ba1\u7406\u7aef","href":"/docs/xuanxing/fe/\u7528\u6237\u7aef\u7ba1\u7406\u7aef","docId":"xuanxing/fe/\u7528\u6237\u7aef\u7ba1\u7406\u7aef"},{"type":"link","label":"\u79fb\u52a8\u7aef","href":"/docs/xuanxing/fe/\u79fb\u52a8\u7aef","docId":"xuanxing/fe/\u79fb\u52a8\u7aef"},{"type":"link","label":"\u7ec4\u6001\u7f16\u8f91\u5668/\u5927\u5c4f\u7f16\u8f91\u5668","href":"/docs/xuanxing/fe/\u7ec4\u6001+\u5927\u5c4f\u7f16\u8f91\u5668","docId":"xuanxing/fe/\u7ec4\u6001+\u5927\u5c4f\u7f16\u8f91\u5668"}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u540e\u7aef","items":[{"type":"link","label":"\u6982\u8ff0","href":"/docs/xuanxing/back/","docId":"xuanxing/back/index"}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u8fd0\u7ef4","items":[{"type":"link","label":"\u6982\u8ff0","href":"/docs/xuanxing/devops/","docId":"xuanxing/devops/index"}],"collapsed":true,"collapsible":true},{"type":"category","label":"ThingsBoard","items":[{"type":"link","label":"\u7efc\u8ff0","href":"/docs/xuanxing/thingsboard/","docId":"xuanxing/thingsboard/index"},{"type":"link","label":"\u5982\u4f55\u4f7f\u7528","href":"/docs/xuanxing/thingsboard/\u5982\u4f55\u4f7f\u7528","docId":"xuanxing/thingsboard/\u5982\u4f55\u4f7f\u7528"},{"type":"link","label":"\u6e90\u7801\u7ed3\u6784","href":"/docs/xuanxing/thingsboard/\u6e90\u7801\u7ed3\u6784","docId":"xuanxing/thingsboard/\u6e90\u7801\u7ed3\u6784"}],"collapsed":true,"collapsible":true}],"iotCloudSidebar":[{"type":"link","label":"\u6982\u8ff0","href":"/docs/iotcloud/","docId":"iotcloud/index"},{"type":"category","label":"\u8bbe\u5907\u63a5\u5165","items":[{"type":"link","label":"\u6982\u8ff0","href":"/docs/iotcloud/connect/","docId":"iotcloud/connect/index"},{"type":"link","label":"MQTT \u8bbe\u5907\u63a5\u5165","href":"/docs/iotcloud/connect/mqtt","docId":"iotcloud/connect/mqtt"},{"type":"link","label":"TCP \u8bbe\u5907\u63a5\u5165","href":"/docs/iotcloud/connect/tcp","docId":"iotcloud/connect/tcp"},{"type":"link","label":"HTTP \u8bbe\u5907\u63a5\u5165","href":"/docs/iotcloud/connect/http","docId":"iotcloud/connect/http"}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u8bbe\u5907\u7ba1\u7406","items":[{"type":"link","label":"\u6982\u8ff0","href":"/docs/iotcloud/devicemanager/","docId":"iotcloud/devicemanager/index"},{"type":"link","label":"\u8bbe\u5907\u7c7b\u578b\u7ba1\u7406","href":"/docs/iotcloud/devicemanager/device-type","docId":"iotcloud/devicemanager/device-type"},{"type":"link","label":"\u8bbe\u5907\u4fe1\u606f\u7ba1\u7406","href":"/docs/iotcloud/devicemanager/device-info","docId":"iotcloud/devicemanager/device-info"},{"type":"link","label":"\u8bbe\u5907\u5206\u7ec4\u7ba1\u7406","href":"/docs/iotcloud/devicemanager/device-group","docId":"iotcloud/devicemanager/device-group"}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u7528\u6237\u4e2d\u5fc3","items":[{"type":"link","label":"\u6982\u8ff0","href":"/docs/iotcloud/usercenter/","docId":"iotcloud/usercenter/index"},{"type":"link","label":"\u7528\u6237\u65e5\u5fd7","href":"/docs/iotcloud/usercenter/user-log","docId":"iotcloud/usercenter/user-log"},{"type":"link","label":"\u7528\u6237\u8bbe\u7f6e","href":"/docs/iotcloud/usercenter/user-settings","docId":"iotcloud/usercenter/user-settings"},{"type":"link","label":"RAM \u7528\u6237","href":"/docs/iotcloud/usercenter/system-user","docId":"iotcloud/usercenter/system-user"},{"type":"link","label":"\u5ba2\u6237\u7ba1\u7406","href":"/docs/iotcloud/usercenter/customer","docId":"iotcloud/usercenter/customer"}],"collapsed":true,"collapsible":true}]},"docs":{"iotcloud/alarmlinkage/index":{"id":"iotcloud/alarmlinkage/index","title":"\u6982\u8ff0","description":"\u62a5\u8b66\u8054\u52a8\u4e3b\u8981\u662f\u7ba1\u7406\u62a5\u8b66\u63a8\u9001\u548c\u62a5\u8b66\u8054\u7cfb\u4eba\u3002"},"iotcloud/connect/http":{"id":"iotcloud/connect/http","title":"HTTP \u8bbe\u5907\u63a5\u5165","description":"","sidebar":"iotCloudSidebar"},"iotcloud/connect/index":{"id":"iotcloud/connect/index","title":"\u6982\u8ff0","description":"\u8bbe\u5907\u63a5\u5165\u4e91\u5e73\u53f0\uff0c\u6700\u6838\u5fc3\u7684\u70b9\u662f\u63a5\u5165\u534f\u8bae\uff0c\u672c\u5e73\u53f0\u76ee\u524d\u652f\u6301\u6700\u6d41\u884c\u7684 MQTT\uff0c\u4f20\u7edf\u7684 TCP\uff0c\u4ee5\u53ca\u5904\u7406\u5f02\u6784\u7cfb\u7edf\u6216\u7b80\u5355\u4f7f\u7528\u7684 HTTP \u534f\u8bae\u3002","sidebar":"iotCloudSidebar"},"iotcloud/connect/mqtt":{"id":"iotcloud/connect/mqtt","title":"MQTT \u8bbe\u5907\u63a5\u5165","description":"\u6211\u89c9\u5f97\u5927\u6982\u5206\u4e24\u79cd\u6a21\u5f0f\uff1a","sidebar":"iotCloudSidebar"},"iotcloud/connect/tcp":{"id":"iotcloud/connect/tcp","title":"TCP \u8bbe\u5907\u63a5\u5165","description":"TCP \u63a5\u5165\u5e94\u8be5\u5c5e\u4e8e\u6700\u4e3a\u4f20\u7edf\u7684\u63a5\u5165\u65b9\u5f0f\uff0c\u534f\u8bae\u53ef\u4ee5\u91c7\u7528\u79c1\u6709\u534f\u8bae\u6216\u901a\u7528\u7684 Modbus \u7b49\u3002","sidebar":"iotCloudSidebar"},"iotcloud/devicemanager/device-group":{"id":"iotcloud/devicemanager/device-group","title":"\u8bbe\u5907\u5206\u7ec4\u7ba1\u7406","description":"\u4e3a\u4ec0\u4e48\u9700\u8981\u8bbe\u8ba1\u8bbe\u5907\u5206\u7ec4\u8fd9\u4e2a\u529f\u80fd\uff1f","sidebar":"iotCloudSidebar"},"iotcloud/devicemanager/device-info":{"id":"iotcloud/devicemanager/device-info","title":"\u8bbe\u5907\u4fe1\u606f\u7ba1\u7406","description":"","sidebar":"iotCloudSidebar"},"iotcloud/devicemanager/device-type":{"id":"iotcloud/devicemanager/device-type","title":"\u8bbe\u5907\u7c7b\u578b\u7ba1\u7406","description":"","sidebar":"iotCloudSidebar"},"iotcloud/devicemanager/index":{"id":"iotcloud/devicemanager/index","title":"\u6982\u8ff0","description":"\u8bbe\u5907\u7ba1\u7406\u7684\u5185\u5bb9\u5305\u62ec\u8bbe\u5907\u7c7b\u578b\u53ca\u5176\u9644\u5c5e\u529f\u80fd\u7684\u7ba1\u7406\u3001\u8bbe\u5907\u4fe1\u606f\u53ca\u5176\u9644\u5c5e\u529f\u80fd\u7684\u7ba1\u7406\u3001\u8bbe\u5907\u5206\u7ec4\u53ca\u5176\u9644\u5c5e\u529f\u80fd\u7684\u7ba1\u7406\u3002","sidebar":"iotCloudSidebar"},"iotcloud/index":{"id":"iotcloud/index","title":"\u6982\u8ff0","description":"\u6240\u6709\u7a0b\u5e8f\u7684\u4ee3\u7801\u5168\u90e8\u5f00\u6e90\uff0c\u514d\u8d39\u5546\u7528\uff0c\u4e0d\u53d7\u4efb\u4f55\u9650\u5236\uff0c\u81f4\u529b\u4e8e\u6253\u9020\u514d\u8d39\u3001\u5f00\u6e90\u3001\u6027\u80fd\u4f18\u5f02\u7684\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u751f\u6001\u3002","sidebar":"iotCloudSidebar"},"iotcloud/usercenter/customer":{"id":"iotcloud/usercenter/customer","title":"\u5ba2\u6237\u7ba1\u7406","description":"\u672c\u6587\u4e3a\u60a8\u4ecb\u7ecd \u5ba2\u6237 \u7684\u57fa\u672c\u6982\u5ff5\u3001\u4f7f\u7528\u6d41\u7a0b\u3001\u6700\u4f73\u5b9e\u8df5\u548c\u4f7f\u7528\u9650\u5236\u3002","sidebar":"iotCloudSidebar"},"iotcloud/usercenter/index":{"id":"iotcloud/usercenter/index","title":"\u6982\u8ff0","description":"\u7528\u6237\u4e2d\u5fc3\u5305\u62ec\uff1a\u5f53\u524d\u767b\u5f55\u7528\u6237\u7684\u7528\u6237\u65e5\u5fd7\uff0c\u6ce8\u518c\u7528\u6237\u53ca\u5176\u76f8\u5173\u529f\u80fd\u7684\u4fe1\u606f\u8bbe\u7f6e\uff0cRAM \u7528\u6237\u7684\u7ba1\u7406\uff0c\u5ba2\u6237\u7684\u7ba1\u7406\u3002","sidebar":"iotCloudSidebar"},"iotcloud/usercenter/system-user":{"id":"iotcloud/usercenter/system-user","title":"RAM \u7528\u6237","description":"\u672c\u6587\u4e3a\u60a8\u4ecb\u7ecd RAM\uff08Resource Access Management\uff09\u7528\u6237\u7684\u57fa\u672c\u6982\u5ff5\u3001\u4f7f\u7528\u6d41\u7a0b\u3001\u6700\u4f73\u5b9e\u8df5\u548c\u4f7f\u7528\u9650\u5236\u3002","sidebar":"iotCloudSidebar"},"iotcloud/usercenter/user-log":{"id":"iotcloud/usercenter/user-log","title":"\u7528\u6237\u65e5\u5fd7","description":"\u672c\u6587\u4e3a\u60a8\u4ecb\u7ecd \u7528\u6237\u65e5\u5fd7 \u7684\u57fa\u672c\u6982\u5ff5\u3001\u4f7f\u7528\u6d41\u7a0b\u3001\u6700\u4f73\u5b9e\u8df5\u548c\u4f7f\u7528\u9650\u5236\u3002","sidebar":"iotCloudSidebar"},"iotcloud/usercenter/user-settings":{"id":"iotcloud/usercenter/user-settings","title":"\u7528\u6237\u8bbe\u7f6e","description":"\u672c\u6587\u4e3a\u60a8\u4ecb\u7ecd \u7528\u6237\u8bbe\u7f6e \u7684\u57fa\u672c\u6982\u5ff5\u3001\u4f7f\u7528\u6d41\u7a0b\u3001\u6700\u4f73\u5b9e\u8df5\u548c\u4f7f\u7528\u9650\u5236\u3002","sidebar":"iotCloudSidebar"},"study/ai/index":{"id":"study/ai/index","title":"\u4eba\u5de5\u667a\u80fd","description":"LLM","sidebar":"studySidebar"},"study/back/API\u7f51\u5173/APISIX":{"id":"study/back/API\u7f51\u5173/APISIX","title":"Apache APISIX","description":"Apache APISIX \u662f\u4e00\u4e2a\u52a8\u6001\u3001\u5b9e\u65f6\u3001\u9ad8\u6027\u80fd\u7684\u4e91\u539f\u751f API \u7f51\u5173\uff0c\u63d0\u4f9b\u4e86\u8d1f\u8f7d\u5747\u8861\u3001\u52a8\u6001\u4e0a\u6e38\u3001\u7070\u5ea6\u53d1\u5e03\u3001\u670d\u52a1\u7194\u65ad\u3001\u8eab\u4efd\u8ba4\u8bc1\u3001\u53ef\u89c2\u6d4b\u6027\u7b49\u4e30\u5bcc\u7684\u6d41\u91cf\u7ba1\u7406\u529f\u80fd\u3002","sidebar":"studySidebar"},"study/back/API\u7f51\u5173/index":{"id":"study/back/API\u7f51\u5173/index","title":"API \u7f51\u5173","description":"\u53c2\u8003","sidebar":"studySidebar"},"study/back/IEDA/encoding":{"id":"study/back/IEDA/encoding","title":"encoding","description":"\u6ce8\u610f encoding \u7684\u914d\u7f6e","sidebar":"studySidebar"},"study/back/IEDA/fileandcodetemplates":{"id":"study/back/IEDA/fileandcodetemplates","title":"File and Code Templates","description":"File and Code Templates","sidebar":"studySidebar"},"study/back/IEDA/Maven":{"id":"study/back/IEDA/Maven","title":"Maven","description":"Maven \u5728 IDEA \u7684\u6700\u4f73\u914d\u7f6e","sidebar":"studySidebar"},"study/back/IEDA/save-action":{"id":"study/back/IEDA/save-action","title":"Save Action","description":"Save Action","sidebar":"studySidebar"},"study/back/index":{"id":"study/back/index","title":"\u6982\u8ff0","description":"\u540e\u7aef\u662f\u76f8\u5f53\u4e8e\u524d\u7aef\u6765\u8bf4\u7684\uff0c\u7528\u6237\u770b\u4e0d\u5230\u7684\u5185\u5bb9\u7edf\u4e00\u6210\u4e3a\u540e\u7aef\uff0c\u540e\u7aef\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\uff1a","sidebar":"studySidebar"},"study/back/maven/mvnw":{"id":"study/back/maven/mvnw","title":"mvnw","description":"- \u7b80\u4e66-mvnw \u4ecb\u7ecd","sidebar":"studySidebar"},"study/back/maven/pom\u6587\u4ef6\u4e2d\u7684scope\u6807\u7b7e":{"id":"study/back/maven/pom\u6587\u4ef6\u4e2d\u7684scope\u6807\u7b7e","title":"pom\u6587\u4ef6\u4e2d\u7684scope\u6807\u7b7e","description":"\u5206\u7c7b","sidebar":"studySidebar"},"study/back/maven/\u5e38\u7528\u53c2\u6570":{"id":"study/back/maven/\u5e38\u7528\u53c2\u6570","title":"\u5e38\u7528\u53c2\u6570","description":"\u8df3\u8fc7\u6d4b\u8bd5","sidebar":"studySidebar"},"study/back/maven/\u6784\u5efaDocker":{"id":"study/back/maven/\u6784\u5efaDocker","title":"\u6784\u5efaDocker","description":"\u6784\u5efa Java SpringBoot Docker \u955c\u50cf","sidebar":"studySidebar"},"study/back/mq/Kafka":{"id":"study/back/mq/Kafka","title":"Kafka","description":"\u7b80\u4ecb","sidebar":"studySidebar"},"study/back/mq/MQTT broker":{"id":"study/back/mq/MQTT broker","title":"MQTT broker","description":"EMQ EMQX","sidebar":"studySidebar"},"study/back/mq/MQ\u5b9e\u73b0\u5bf9\u6bd4":{"id":"study/back/mq/MQ\u5b9e\u73b0\u5bf9\u6bd4","title":"MQ\u5b9e\u73b0\u5bf9\u6bd4","description":"\u56db\u79cd MQ \u5b9e\u73b0\u5bf9\u6bd4","sidebar":"studySidebar"},"study/back/mq/RocketMQ":{"id":"study/back/mq/RocketMQ","title":"RocketMQ","description":"RocketMQ \u548c Kafka \u6709\u4ec0\u4e48\u533a\u522b\uff1f","sidebar":"studySidebar"},"study/back/POST\u7f16\u7801\u683c\u5f0f":{"id":"study/back/POST\u7f16\u7801\u683c\u5f0f","title":"POST\u7f16\u7801\u683c\u5f0f","description":"\u6982\u8ff0","sidebar":"studySidebar"},"study/back/spring/@Configuration":{"id":"study/back/spring/@Configuration","title":"@Configuration","description":"\u5728 Spring \u6846\u67b6\u4e2d\uff0c@Configuration \u6ce8\u89e3\u7528\u4e8e\u58f0\u660e\u4e00\u4e2a Java \u7c7b\u4f5c\u4e3a\u914d\u7f6e\u7c7b\uff0c\u5b83\u66ff\u4ee3\u4e86\u4f20\u7edf\u7684 XML \u914d\u7f6e\u65b9\u5f0f\u3002\u901a\u8fc7@Configuration \u6ce8\u89e3\u6807\u8bb0\u7684\u7c7b\u53ef\u4ee5\u5305\u542b@Bean \u6ce8\u89e3\uff0c\u7528\u4e8e\u5b9a\u4e49 Spring \u5bb9\u5668\u4e2d\u7684 Bean \u5bf9\u8c61\u3002","sidebar":"studySidebar"},"study/back/spring/@Resource@Autowired":{"id":"study/back/spring/@Resource@Autowired","title":"@Resource@Autowired","description":"@Autowired \u548c @Resource \u90fd\u662f\u7528\u6765\u5b9e\u73b0\u4f9d\u8d56\u6ce8\u5165\u7684\u6ce8\u89e3\uff08\u5728 Spring/Spring Boot \u9879\u76ee\u4e2d\uff09\uff0c\u4f46\u4e8c\u8005\u5374\u6709\u7740 5 \u70b9\u4e0d\u540c\uff1a","sidebar":"studySidebar"},"study/back/spring/SpringAOP":{"id":"study/back/spring/SpringAOP","title":"Spring AOP","description":"\u7b80\u4ecb","sidebar":"studySidebar"},"study/back/spring/SpringBoot":{"id":"study/back/spring/SpringBoot","title":"Spring Boot","description":"\u5e38\u770b\u6587\u6863","sidebar":"studySidebar"},"study/back/spring/SpringFramework":{"id":"study/back/spring/SpringFramework","title":"Spirng Framework","description":"\u5b98\u65b9\u53c2\u8003\u6587\u6863","sidebar":"studySidebar"},"study/back/spring/SpringSecurity":{"id":"study/back/spring/SpringSecurity","title":"Spring Security","description":"Spring Security \u662f\u4e00\u5957\u5b89\u5168\u6846\u67b6\uff0c\u53ef\u4ee5\u57fa\u4e8e RBAC\uff08\u57fa\u4e8e\u89d2\u8272\u7684\u6743\u9650\u63a7\u5236\uff09\u5bf9\u7528\u6237\u7684\u8bbf\u95ee\u6743\u9650\u8fdb\u884c\u63a7\u5236\uff0c","sidebar":"studySidebar"},"study/back/spring/Spring\u751f\u547d\u5468\u671f\u63a5\u53e3":{"id":"study/back/spring/Spring\u751f\u547d\u5468\u671f\u63a5\u53e3","title":"Spring\u751f\u547d\u5468\u671f\u63a5\u53e3","description":"InitializingBean","sidebar":"studySidebar"},"study/back/springcloud/nacos":{"id":"study/back/springcloud/nacos","title":"nacos","description":"\u4e00\u4e2a\u66f4\u6613\u4e8e\u6784\u5efa\u4e91\u539f\u751f\u5e94\u7528\u7684\u52a8\u6001\u670d\u52a1\u53d1\u73b0\u3001\u914d\u7f6e\u7ba1\u7406\u548c\u670d\u52a1\u7ba1\u7406\u5e73\u53f0","sidebar":"studySidebar"},"study/back/springcloud/SpringCloud\u4e94\u5927\u7ec4\u4ef6":{"id":"study/back/springcloud/SpringCloud\u4e94\u5927\u7ec4\u4ef6","title":"SpringCloud\u4e94\u5927\u7ec4\u4ef6","description":"image.png","sidebar":"studySidebar"},"study/back/springcloud/\u5fae\u670d\u52a1":{"id":"study/back/springcloud/\u5fae\u670d\u52a1","title":"\u5fae\u670d\u52a1","description":"\u5fae\u670d\u52a1\u662f\u5206\u5e03\u5f0f\u67b6\u6784\u7684\u4e00\u79cd\uff1b","sidebar":"studySidebar"},"study/back/WSL":{"id":"study/back/WSL","title":"WSL","description":"\u7528\u672c\u5730\u7684ssh\u547d\u4ee4\u8fde\u63a5WSL","sidebar":"studySidebar"},"study/back/Zookeeper":{"id":"study/back/Zookeeper","title":"Zookeeper","description":"Zookeeper\u6982\u8ff0","sidebar":"studySidebar"},"study/back/\u4fe1\u606f\u5b89\u5168/Oauth2":{"id":"study/back/\u4fe1\u606f\u5b89\u5168/Oauth2","title":"Oauth2","description":"Oauth2 \u662f\u76ee\u524d\u6700\u6d41\u884c\u7684\u6388\u6743\u673a\u5236\uff0c\u7528\u6765\u6388\u6743\u7b2c\u4e09\u65b9\u5e94\u7528\uff0c\u83b7\u53d6\u7528\u6237\u6570\u636e\u3002","sidebar":"studySidebar"},"study/back/\u4fe1\u606f\u5b89\u5168/\u8ba4\u8bc1":{"id":"study/back/\u4fe1\u606f\u5b89\u5168/\u8ba4\u8bc1","title":"\u8ba4\u8bc1","description":"\u53c2\u8003 Spring Security \u8ba4\u8bc1","sidebar":"studySidebar"},"study/back/\u4fe1\u606f\u5b89\u5168/\u9632\u8303\u6f0f\u6d1e\u653b\u51fb":{"id":"study/back/\u4fe1\u606f\u5b89\u5168/\u9632\u8303\u6f0f\u6d1e\u653b\u51fb","title":"\u9632\u8303\u6f0f\u6d1e\u653b\u51fb","description":"\u53c2\u8003 Spring Security \u9632\u8303\u6f0f\u6d1e\u653b\u51fb","sidebar":"studySidebar"},"study/back/\u6570\u636e\u5e93\u76f8\u5173/Java\u6570\u636e\u5e93\u8fde\u63a5\u6c60":{"id":"study/back/\u6570\u636e\u5e93\u76f8\u5173/Java\u6570\u636e\u5e93\u8fde\u63a5\u6c60","title":"Java\u6570\u636e\u5e93\u8fde\u63a5\u6c60","description":"Java \u6570\u636e\u5e93\u8fde\u63a5\u6c60","sidebar":"studySidebar"},"study/back/\u6570\u636e\u5e93\u76f8\u5173/JPA-MyBatis":{"id":"study/back/\u6570\u636e\u5e93\u76f8\u5173/JPA-MyBatis","title":"JPA-MyBatis","description":"JPA","sidebar":"studySidebar"},"study/back/\u6570\u636e\u5e93\u76f8\u5173/log4jdbc":{"id":"study/back/\u6570\u636e\u5e93\u76f8\u5173/log4jdbc","title":"log4jdbc","description":"log4jdbc is a Java JDBC driver that can log SQL and/or JDBC calls (and optionally SQL timing information) for other JDBC drivers using the Simple Logging Facade For Java (SLF4J) logging system.","sidebar":"studySidebar"},"study/back/\u6570\u636e\u5e93\u76f8\u5173/MyBatis":{"id":"study/back/\u6570\u636e\u5e93\u76f8\u5173/MyBatis","title":"MyBatis","description":"\u4e00\u4e9b\u7ecf\u5e38\u8bfb\u7684\u5b98\u65b9\u6587\u6863","sidebar":"studySidebar"},"study/back/\u9519\u8bef\u6392\u9664\u96c6\u9526":{"id":"study/back/\u9519\u8bef\u6392\u9664\u96c6\u9526","title":"\u9519\u8bef\u6392\u9664\u96c6\u9526","description":"\u5185\u5b58\u4e0d\u8db3\uff0c\u5bfc\u81f4\u4e0a\u4f20\u6587\u4ef6\u5931\u8d25","sidebar":"studySidebar"},"study/back/\u9ad8\u5e76\u53d1API":{"id":"study/back/\u9ad8\u5e76\u53d1API","title":"\u9ad8\u5e76\u53d1API","description":"\u603b\u7ed3","sidebar":"studySidebar"},"study/competitive/CMP-DMP-AEP-BAP":{"id":"study/competitive/CMP-DMP-AEP-BAP","title":"CMP-DMP-AEP-BAP","description":"\u7b80\u8ff0","sidebar":"studySidebar"},"study/competitive/index":{"id":"study/competitive/index","title":"\u6982\u8ff0","description":"\u7269\u8054\u7f51\u884c\u4e1a\u7684\u4e00\u4e9b\u4e1a\u52a1\u5206\u6790\u3001\u516c\u53f8\u5206\u6790\u3001\u884c\u4e1a\u5206\u6790\u3002","sidebar":"studySidebar"},"study/competitive/ThingsCloud":{"id":"study/competitive/ThingsCloud","title":"ThingsCloud","description":"\u53c2\u8003\uff0c\u53c2\u8003\uff0c\u7edd\u5bf9\u53ef\u4ee5\u53c2\u8003\u3002","sidebar":"studySidebar"},"study/competitive/TP-LINK":{"id":"study/competitive/TP-LINK","title":"TP-LINK","description":"SD-VPN","sidebar":"studySidebar"},"study/competitive/\u5de5\u4e1a\u4e92\u8054\u7f51\u63a2\u7a76":{"id":"study/competitive/\u5de5\u4e1a\u4e92\u8054\u7f51\u63a2\u7a76","title":"\u5de5\u4e1a\u4e92\u8054\u7f51\u63a2\u7a76","description":"\u5206\u7c7b\uff1a\u884c\u4e1a+\u573a\u666f+\u6a21\u5f0f","sidebar":"studySidebar"},"study/competitive/\u7269\u8054\u7f51\u5e73\u53f0\u5c42\u6982\u8ff0":{"id":"study/competitive/\u7269\u8054\u7f51\u5e73\u53f0\u5c42\u6982\u8ff0","title":"\u7269\u8054\u7f51\u5e73\u53f0\u5c42\u6982\u8ff0","description":"\u5728\u5927\u4f17\u719f\u77e5\u7684\u7269\u8054\u7f51\u611f\u77e5\u5c42\u3001\u7f51\u7edc\u5c42\u3001\u5e73\u53f0\u5c42\u3001\u5e94\u7528\u5c42\u56db\u5927\u5c42\u6b21\u91cc\uff0c\u5e73\u53f0\u5c42\u5c06\u4f5c\u4e3a\u7269\u8054\u7f51\u4ece\u8bbe\u5907\u8fde\u63a5\u5230\u573a\u666f\u5e94\u7528\u7684\u5173\u952e\u201c\u6865\u6881\u201d\u800c\u53d1\u6325\u4f5c\u7528\u3002","sidebar":"studySidebar"},"study/db/index":{"id":"study/db/index","title":"\u6982\u8ff0","description":"\u5b58\u50a8\u6570\u636e\u7684\u670d\u52a1\u7edf\u4e00\u6210\u4e3a\u6570\u636e\u5e93\uff0c\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\uff1a","sidebar":"studySidebar"},"study/db/NewSQL/TiDB":{"id":"study/db/NewSQL/TiDB","title":"TiDB","description":"\u80cc\u666f","sidebar":"studySidebar"},"study/db/NoSQL/Cassandra":{"id":"study/db/NoSQL/Cassandra","title":"Cassandra","description":"\u7b80\u4ecb","sidebar":"studySidebar"},"study/db/NoSQL/Etcd":{"id":"study/db/NoSQL/Etcd","title":"Etcd","description":"ETCD\u662fCoreOs\u516c\u53f8\u53d1\u5e03\u7684\u4e00\u4e2a\u5206\u5e03\u5f0f\u7684\u3001\u9ad8\u53ef\u7528\u7684\u3001key-value\u5b58\u50a8\u7684\u6570\u636e\u5e93\u3002\u57fa\u4e8eGo\u8bed\u8a00\u5b9e\u73b0\uff0ck8s\u4e2d\u4e5f\u4f7f\u7528\u4e86ETCD\u4f5c\u4e3a\u6570\u636e\u5e93\u3002\u4e3b\u8981\u7528\u4e8e\u5171\u4eab\u914d\u7f6e\u548c\u670d\u52a1\u53d1\u73b0\u3002\u76f8\u5bf9\u4e8ezookeeper\u91c7\u7528\u7684Paxos\uff0cETCD\u91c7\u7528\u7684\u662fRaft\u7b97\u6cd5\uff0c\u8be5\u7b97\u6cd5\u5177\u5907\u7684\u6027\u80fd\u66f4\u4f73\u3001\u6570\u636e\u4e00\u81f4\u6027\u5f3a\u7b49\u4f18\u70b9\u3002","sidebar":"studySidebar"},"study/db/NoSQL/Hadoop":{"id":"study/db/NoSQL/Hadoop","title":"Hadoop","description":"\u9000\u51fa\u5b89\u5168\u6a21\u5f0f","sidebar":"studySidebar"},"study/db/NoSQL/Hbase":{"id":"study/db/NoSQL/Hbase","title":"Hbase","description":"\u5217\u5f0f\u6570\u636e\u5e93","sidebar":"studySidebar"},"study/db/NoSQL/Ignite":{"id":"study/db/NoSQL/Ignite","title":"Ignite","description":"\u5b9a\u4e49","sidebar":"studySidebar"},"study/db/NoSQL/MongoDB":{"id":"study/db/NoSQL/MongoDB","title":"MongoDB","description":"MongoDB","sidebar":"studySidebar"},"study/db/NoSQL/Redis":{"id":"study/db/NoSQL/Redis","title":"Redis","description":"Redis \u662f\u4ec0\u4e48","sidebar":"studySidebar"},"study/db/OLAP/ClickHouse":{"id":"study/db/OLAP/ClickHouse","title":"ClickHouse","description":"Clickhouse\u662fYandex\u5f00\u6e90\u7684\u4e00\u4e2a\u7528\u4e8e\u5b9e\u65f6\u6570\u636e\u5206\u6790\u7684\u6570\u636e\u5e93\uff0c\u4e00\u5f00\u59cb\u5c31\u7528\u5728yandex\u5185\u90e8\u7684\u591a\u4e2a\u6570\u636e\u5206\u6790\u4e1a\u52a1\u4e0a\u3002\u8981\u4ecb\u7ecdclickhouse\uff0c\u8fd8\u662f\u9700\u8981\u5148\u4ecb\u7ecd\u4e00\u4e0byandex\u3002Clickhouse\u4e3a\u4ec0\u4e48\u4f1a\u51fa\u73b0\uff0c\u5176\u5b9e\u548cyandex\u7684\u4e1a\u52a1\u5173\u7cfb\u975e\u5e38\u5927\u3002Yandex\u662f\u4fc4\u7f57\u65af\u6700\u5927\u7684\u641c\u7d22\u5f15\u64ce\uff0c\u4f1a\u6709\u5f88\u591a\u6570\u636e\u5206\u6790\u7684\u4e1a\u52a1\uff0c\u5176\u4e2d\u6570\u636e\u91cf\u6700\u5927\u7684\u4e1a\u52a1\uff0c\u5c31\u662fYandex.Metrica\uff0c\u8fd9\u662f\u4e00\u4e2a\u548c\u767e\u5ea6\u7edf\u8ba1\u7c7b\u4f3c\u7684\u7f51\u7ad9\u6570\u636e\u5206\u6790\u670d\u52a1\uff0c\u6570\u636e\u91cf\u4e5f\u4ec5\u6b21\u4e8egoogle analysis\u3002\u81ea\u4eceClickhouse\u5f00\u6e90\u540e\uff0c\u5728\u56fd\u5185\u5916\u7684\u5f88\u591a\u516c\u53f8\u7684\u7ebf\u4e0a\u4e1a\u52a1\u90fd\u5df2\u7ecf\u5f00\u59cb\u4f7f\u7528\u3002","sidebar":"studySidebar"},"study/db/OLAP/Kylin":{"id":"study/db/OLAP/Kylin","title":"Kylin","description":"Apache Kylin\u2122\u662f\u4e00\u4e2a\u5f00\u6e90\u7684\u3001\u5206\u5e03\u5f0f\u7684\u5206\u6790\u578b\u6570\u636e\u4ed3\u5e93\uff0c\u63d0\u4f9bHadoop/Spark \u4e4b\u4e0a\u7684 SQL \u67e5\u8be2\u63a5\u53e3\u53ca\u591a\u7ef4\u5206\u6790\uff08OLAP\uff09\u80fd\u529b\u4ee5\u652f\u6301\u8d85\u5927\u89c4\u6a21\u6570\u636e\uff0c\u6700\u521d\u7531 eBay \u5f00\u53d1\u5e76\u8d21\u732e\u81f3\u5f00\u6e90\u793e\u533a\u3002\u5b83\u80fd\u5728\u4e9a\u79d2\u5185\u67e5\u8be2\u5de8\u5927\u7684\u8868\u3002","sidebar":"studySidebar"},"study/db/OLAP/StarRocks":{"id":"study/db/OLAP/StarRocks","title":"StarRocks","description":"\u80cc\u666f\u4fe1\u606f","sidebar":"studySidebar"},"study/db/OLAP/\u7efc\u5408\u6982\u8ff0":{"id":"study/db/OLAP/\u7efc\u5408\u6982\u8ff0","title":"\u7efc\u5408\u6982\u8ff0","description":"1. OLAP\u4e0eOLTP\u7684\u533a\u522b\uff1f","sidebar":"studySidebar"},"study/db/SQL/MariaDB":{"id":"study/db/SQL/MariaDB","title":"MariaDB","description":"MariaDB\u6570\u636e\u5e93\u7ba1\u7406\u7cfb\u7edf\u662fMySQL\u7684\u4e00\u4e2a\u5206\u652f\uff0c\u4e3b\u8981\u7531\u5f00\u6e90\u793e\u533a\u5728\u7ef4\u62a4\uff0c\u91c7\u7528GPL\u6388\u6743\u8bb8\u53ef\u3002\u5f00\u53d1\u8fd9\u4e2a\u5206\u652f\u7684\u539f\u56e0\u4e4b\u4e00\u662f\uff1a\u7532\u9aa8\u6587\u516c\u53f8\u6536\u8d2d\u4e86MySQL\u540e\uff0c\u6709\u5c06MySQL\u95ed\u6e90\u7684\u6f5c\u5728\u98ce\u9669\uff0c\u56e0\u6b64\u793e\u533a\u91c7\u7528\u5206\u652f\u7684\u65b9\u5f0f\u6765\u907f\u5f00\u8fd9\u4e2a\u98ce\u9669\u3002","sidebar":"studySidebar"},"study/db/SQL/MySQL":{"id":"study/db/SQL/MySQL","title":"MySQL","description":"\u7248\u672c\u9009\u62e9","sidebar":"studySidebar"},"study/db/SQL/MySQL-\u7b14\u8bb0":{"id":"study/db/SQL/MySQL-\u7b14\u8bb0","title":"MySQL \u7b14\u8bb0","description":"WITH \u67e5\u8be2","sidebar":"studySidebar"},"study/db/SQL/OpenGauss":{"id":"study/db/SQL/OpenGauss","title":"OpenGauss","description":"\u5b98\u7f51 https://opengauss.org/zh/","sidebar":"studySidebar"},"study/db/SQL/PostgreSQL":{"id":"study/db/SQL/PostgreSQL","title":"PostgreSQL","description":"\u7b80\u4ecb","sidebar":"studySidebar"},"study/db/SQL/\u7efc\u5408\u6982\u8ff0":{"id":"study/db/SQL/\u7efc\u5408\u6982\u8ff0","title":"\u7efc\u5408\u6982\u8ff0","description":"\u80cc\u666f","sidebar":"studySidebar"},"study/db/SQL/\u8fbe\u68a6":{"id":"study/db/SQL/\u8fbe\u68a6","title":"\u8fbe\u68a6\u6570\u636e\u5e93","description":"\u4e3a\u4e86\u4fdd\u8bc1\u6570\u636e\u5e93\u7cfb\u7edf\u7684\u5b89\u5168\u6027\uff0cDM \u6570\u636e\u5e93\u91c7\u7528\u201c\u4e09\u6743\u5206\u7acb\u201d\u6216\u201c\u56db\u6743\u5206\u7acb\u201d\u7684\u5b89\u5168\u673a\u5236\uff0c\u201c\u4e09\u6743\u5206\u7acb\u201d\u65f6\u7cfb\u7edf\u5185\u7f6e\u4e09\u79cd\u7cfb\u7edf\u7ba1\u7406\u5458\uff0c\u5305\u62ec\u6570\u636e\u5e93\u7ba1\u7406\u5458\u3001\u6570\u636e\u5e93\u5b89\u5168\u5458\u548c\u6570\u636e\u5e93\u5ba1\u8ba1\u5458\uff0c\u201c\u56db\u6743\u5206\u7acb\u201d\u65f6\u65b0\u589e\u4e86\u4e00\u7c7b\u7528\u6237\uff0c\u79f0\u4e3a\u6570\u636e\u5e93\u5bf9\u8c61\u64cd\u4f5c\u5458\u3002\u5b83\u4eec\u5404\u53f8\u5176\u804c\uff0c\u4e92\u76f8\u5236\u7ea6\uff0c\u6709\u6548\u5730\u907f\u514d\u4e86\u5c06\u6240\u6709\u6743\u9650\u96c6\u4e2d\u4e8e\u4e00\u4eba\u7684\u98ce\u9669\uff0c\u4fdd\u8bc1\u4e86\u7cfb\u7edf\u7684\u5b89\u5168\u6027\u3002","sidebar":"studySidebar"},"study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/Elasticsearch":{"id":"study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/Elasticsearch","title":"Elasticsearch","description":"ES\u7248\u672c","sidebar":"studySidebar"},"study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/\u7efc\u5408\u6982\u8ff0":{"id":"study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/\u7efc\u5408\u6982\u8ff0","title":"\u7efc\u5408\u6982\u8ff0","description":"\u4f20\u7edf\u7684\u5173\u7cfb\u578b\u6570\u636e\u5e93\u901a\u8fc7\u7d22\u5f15\u6765\u8fbe\u5230\u5feb\u901f\u67e5\u8be2\u7684\u76ee\u7684\uff0c\u4f46\u662f\u5728\u5168\u6587\u641c\u7d22\u7684\u4e1a\u52a1\u573a\u666f\u4e0b\uff0c\u7d22\u5f15\u4e5f\u65e0\u80fd\u4e3a\u529b\uff0c\u4e3b\u8981\u4f53\u73b0\u5728\uff1a","sidebar":"studySidebar"},"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Apache IoTDB":{"id":"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Apache IoTDB","title":"Apache IoTDB","description":"\u5b98\u65b9\u6587\u6863","sidebar":"studySidebar"},"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Druid":{"id":"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Druid","title":"Druid","description":"\u57fa\u672c\u4fe1\u606f","sidebar":"studySidebar"},"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/InfluxDB":{"id":"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/InfluxDB","title":"InfluxDB","description":"\u5b98\u65b9\u6587\u6863","sidebar":"studySidebar"},"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/KairosDB":{"id":"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/KairosDB","title":"KairosDB","description":"\u57fa\u672c\u4fe1\u606f","sidebar":"studySidebar"},"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/OpenTSDB":{"id":"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/OpenTSDB","title":"OpenTSDB","description":"\u57fa\u672c\u4fe1\u606f","sidebar":"studySidebar"},"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TDengine":{"id":"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TDengine","title":"TDengine","description":"\u5b98\u7f51","sidebar":"studySidebar"},"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TimescaleDB":{"id":"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TimescaleDB","title":"TimescaleDB","description":"\u57fa\u672c\u4fe1\u606f","sidebar":"studySidebar"},"study/db/\u7efc\u5408":{"id":"study/db/\u7efc\u5408","title":"\u7efc\u5408","description":"\u8f6f\u4ef6\u7cfb\u7edf\u6839\u636e\u5b58\u50a8\u7ed3\u6784\u7684\u5206\u7c7b","sidebar":"studySidebar"},"study/devops/ansible":{"id":"study/devops/ansible","title":"ansible","description":"\u5e38\u7528","sidebar":"studySidebar"},"study/devops/API\u7684\u8bf7\u6c42\u91cf\u5206\u6790":{"id":"study/devops/API\u7684\u8bf7\u6c42\u91cf\u5206\u6790","title":"API\u7684\u8bf7\u6c42\u91cf\u5206\u6790","description":"\u6570\u636e\u6d41\u5411","sidebar":"studySidebar"},"study/devops/centos-gninx-app":{"id":"study/devops/centos-gninx-app","title":"centos-nginx","description":"","sidebar":"studySidebar"},"study/devops/centos-jdk17-app":{"id":"study/devops/centos-jdk17-app","title":"centos-jdk17-app","description":"\u5b89\u88c5 jdk","sidebar":"studySidebar"},"study/devops/index":{"id":"study/devops/index","title":"\u6982\u8ff0","description":"\u8f6f\u4ef6\u5f00\u53d1 + \u7cfb\u7edf\u8fd0\u7ef4","sidebar":"studySidebar"},"study/devops/jar\u8fd0\u7ef4-\u76d1\u63a7":{"id":"study/devops/jar\u8fd0\u7ef4-\u76d1\u63a7","title":"jar\u8fd0\u7ef4-\u76d1\u63a7","description":"jstat","sidebar":"studySidebar"},"study/devops/Linux\u53d1\u884c\u7248":{"id":"study/devops/Linux\u53d1\u884c\u7248","title":"Linux\u53d1\u884c\u7248","description":"OpenEuler","sidebar":"studySidebar"},"study/devops/Linux\u8fd0\u7ef4-\u5e38\u7528":{"id":"study/devops/Linux\u8fd0\u7ef4-\u5e38\u7528","title":"Linux\u8fd0\u7ef4-\u5e38\u7528","description":"\u5185\u6838/\u53d1\u884c\u7248","sidebar":"studySidebar"},"study/devops/Linux\u8fd0\u7ef4-\u76d1\u63a7\u6570\u636e":{"id":"study/devops/Linux\u8fd0\u7ef4-\u76d1\u63a7\u6570\u636e","title":"Linux\u8fd0\u7ef4-\u76d1\u63a7\u6570\u636e","description":"\u7cfb\u7edf\u5e73\u5747\u8d1f\u8f7d\u548cCPU\u4f7f\u7528\u7387","sidebar":"studySidebar"},"study/devops/Linux\u8fd0\u7ef4-\u81ea\u542f":{"id":"study/devops/Linux\u8fd0\u7ef4-\u81ea\u542f","title":"Linux\u8fd0\u7ef4-\u81ea\u542f","description":"systemd\u548cinit\u662fLinux\u7cfb\u7edf\u4e2d\u7528\u4e8e\u542f\u52a8\u548c\u7ba1\u7406\u7cfb\u7edf\u7684\u4e24\u4e2a\u4e0d\u540c\u5de5\u5177\u3002","sidebar":"studySidebar"},"study/devops/Linux\u8fd0\u7ef4-\u9ad8\u5e76\u53d1":{"id":"study/devops/Linux\u8fd0\u7ef4-\u9ad8\u5e76\u53d1","title":"Linux\u8fd0\u7ef4-\u9ad8\u5e76\u53d1","description":"\u6700\u5927\u6587\u4ef6\u63cf\u8ff0\u7b26","sidebar":"studySidebar"},"study/devops/SHELL":{"id":"study/devops/SHELL","title":"SHELL","description":"SHELL\u811a\u672c\u53c2\u6570","sidebar":"studySidebar"},"study/devops/ssh":{"id":"study/devops/ssh","title":"ssh","description":"ssh\u8fde\u63a5\u4e0d\u4e0a","sidebar":"studySidebar"},"study/devops/\u94fe\u8def\u8ffd\u8e2a\u76d1\u63a7":{"id":"study/devops/\u94fe\u8def\u8ffd\u8e2a\u76d1\u63a7","title":"\u94fe\u8def\u8ffd\u8e2a\u76d1\u63a7","description":"jaeger","sidebar":"studySidebar"},"study/docker/Docker-compose":{"id":"study/docker/Docker-compose","title":"Docker Compose","description":"\u5b9a\u4e49","sidebar":"studySidebar"},"study/docker/docker-kafka":{"id":"study/docker/docker-kafka","title":"docker-kafka","description":"docker kafka","sidebar":"studySidebar"},"study/docker/docker-linux":{"id":"study/docker/docker-linux","title":"docker-linux","description":"alpine","sidebar":"studySidebar"},"study/docker/docker-mysql":{"id":"study/docker/docker-mysql","title":"docker-mysql","description":"","sidebar":"studySidebar"},"study/docker/Docker-swarm":{"id":"study/docker/Docker-swarm","title":"Docker Swarm","description":"Docker Compose \u662f\u4e00\u4e2a\u5728\u5355\u4e2a\u670d\u52a1\u5668\u6216\u4e3b\u673a\u4e0a\u521b\u5efa\u591a\u4e2a\u5bb9\u5668\u7684\u5de5\u5177","sidebar":"studySidebar"},"study/docker/Dockerfile\u4f7f\u7528\u8be6\u89e3":{"id":"study/docker/Dockerfile\u4f7f\u7528\u8be6\u89e3","title":"Dockerfile\u4f7f\u7528\u8be6\u89e3","description":"\u5b98\u65b9\u53c2\u8003\u6587\u6863","sidebar":"studySidebar"},"study/docker/Docker\u7684\u4f7f\u7528\u603b\u7ed3":{"id":"study/docker/Docker\u7684\u4f7f\u7528\u603b\u7ed3","title":"Docker\u7684\u4f7f\u7528\u603b\u7ed3","description":"1. Docker \u5b98\u65b9\u4ed3\u5e93 \xa0https://hub.docker.com","sidebar":"studySidebar"},"study/docker/index":{"id":"study/docker/index","title":"\u6982\u8ff0","description":"\u4e00\u79cd\u865a\u62df\u6280\u672f\u3002","sidebar":"studySidebar"},"study/encryption/ASN.1":{"id":"study/encryption/ASN.1","title":"ASN.1","description":"\u62bd\u8c61\u8bed\u6cd5\u6807\u8bb0\u3001","sidebar":"studySidebar"},"study/encryption/HSM":{"id":"study/encryption/HSM","title":"HSM","description":"HSM \u52a0\u5bc6\u673a\u539f\u7406","sidebar":"studySidebar"},"study/encryption/index":{"id":"study/encryption/index","title":"\u52a0\u89e3\u5bc6","description":"\u52a0\u5bc6\u548c\u89e3\u5bc6","sidebar":"studySidebar"},"study/encryption/PKI":{"id":"study/encryption/PKI","title":"PKI","description":"PKI","sidebar":"studySidebar"},"study/encryption/SSL_TLS":{"id":"study/encryption/SSL_TLS","title":"SSL TLS HTTPS","description":"\u4e3a\u4e86\u4fdd\u8bc1\u7f51\u7edc\u901a\u4fe1\u7684\u5b89\u5168\u6027\uff0c\u9700\u8981\u5bf9\u7f51\u7edc\u4e0a\u4f20\u9012\u7684\u6570\u636e\u8fdb\u884c\u52a0\u5bc6\u3002\u73b0\u5728\u4e3b\u6d41\u7684\u52a0\u5bc6\u65b9\u6cd5\u5c31\u662f SSL (Secure Socket Layer)\uff0cTLS (Transport Layer Security)\u3002\u540e\u8005\u6bd4\u524d\u8005\u8981\u65b0\u4e00\u4e9b\uff0c\u4e0d\u8fc7\u5728\u5f88\u591a\u573a\u5408\u8fd8\u662f\u7528 SSL \u6307\u4ee3 SSL \u548c TLS\u3002","sidebar":"studySidebar"},"study/encryption/\u4e2d\u56fd\u5546\u7528\u5bc6\u7801\u7b97\u6cd5":{"id":"study/encryption/\u4e2d\u56fd\u5546\u7528\u5bc6\u7801\u7b97\u6cd5","title":"\u4e2d\u56fd\u5546\u7528\u5bc6\u7801\u7b97\u6cd5","description":"\u7b80\u4ecb","sidebar":"studySidebar"},"study/encryption/\u52a0\u89e3\u5bc6\u670d\u52a1":{"id":"study/encryption/\u52a0\u89e3\u5bc6\u670d\u52a1","title":"\u52a0\u89e3\u5bc6\u670d\u52a1","description":"\u52a0\u89e3\u5bc6\u670d\u52a1","sidebar":"studySidebar"},"study/encryption/\u5bc6\u7801\u54c8\u5e0c\u7b97\u6cd5\u603b\u7ed3":{"id":"study/encryption/\u5bc6\u7801\u54c8\u5e0c\u7b97\u6cd5\u603b\u7ed3","title":"\u5bc6\u7801\u54c8\u5e0c\u7b97\u6cd5","description":"\u9488\u5bf9\u5bc6\u7801\u5b58\u50a8\u7684\u52a0\u5bc6\u7b97\u6cd5","sidebar":"studySidebar"},"study/encryption/\u5bf9\u79f0\u52a0\u5bc6-\u5206\u7ec4\u5bc6\u7801\u7684\u6a21\u5f0f":{"id":"study/encryption/\u5bf9\u79f0\u52a0\u5bc6-\u5206\u7ec4\u5bc6\u7801\u7684\u6a21\u5f0f","title":"\u5bf9\u79f0\u52a0\u5bc6-\u5206\u7ec4\u5bc6\u7801\u7684\u6a21\u5f0f","description":"DES\u30013DES \u548c AES \u90fd\u5c5e\u4e8e\u5206\u7ec4\u5bc6\u7801\uff0c\u5b83\u4eec\u53ea\u80fd\u52a0\u5bc6\u56fa\u5b9a\u957f\u5ea6\u7684\u660e\u6587\u3002\u5982\u679c\u9700\u8981\u52a0\u5bc6\u66f4\u957f\u7684\u660e\u6587\uff0c\u5c31\u9700\u8981\u5bf9\u5206\u7ec4\u5bc6\u7801\u8fdb\u884c\u8fed\u4ee3\uff0c\u800c\u5206\u7ec4\u5bc6\u7801\u7684\u8fed\u4ee3\u65b9\u6cd5\u79f0\u4e3a\u5206\u7ec4\u5bc6\u7801\u7684\u6a21\u5f0f\uff08Model\uff09\u3002\u7b80\u800c\u4e00\u53e5\u8bdd\uff1a\u5206\u7ec4\u5bc6\u7801\u7684\u6a21\u5f0f\uff0c\u5c31\u662f\u5206\u7ec4\u5bc6\u7801\u7684\u8fed\u4ee3\u65b9\u5f0f\u3002","sidebar":"studySidebar"},"study/encryption/\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3":{"id":"study/encryption/\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3","title":"\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3","description":"\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3","sidebar":"studySidebar"},"study/encryption/\u6570\u5b57\u8bc1\u4e66":{"id":"study/encryption/\u6570\u5b57\u8bc1\u4e66","title":"\u6570\u5b57\u8bc1\u4e66","description":"\u6570\u5b57\u8bc1\u4e66\u5c31\u662f\u4e92\u8054\u7f51\u901a\u8baf\u4e2d\u6807\u5fd7\u901a\u8baf\u5404\u65b9\u8eab\u4efd\u4fe1\u606f\u7684\u4e00\u4e32\u6570\u5b57\uff0c\u63d0\u4f9b\u4e86\u4e00\u79cd\u5728Internet\u4e0a\u9a8c\u8bc1\u901a\u4fe1\u5b9e\u4f53\u8eab\u4efd\u7684\u65b9\u5f0f\uff0c\u6570\u5b57\u8bc1\u4e66\u4e0d\u662f\u6570\u5b57\u8eab\u4efd\u8bc1\uff0c\u800c\u662f\u8eab\u4efd\u8ba4\u8bc1\u673a\u6784\u76d6\u5728\u6570\u5b57\u8eab\u4efd\u8bc1\u4e0a\u7684\u4e00\u4e2a\u7ae0\u6216\u5370\uff08\u6216\u8005\u8bf4\u52a0\u5728\u6570\u5b57\u8eab\u4efd\u8bc1\u4e0a\u7684\u4e00\u4e2a\u7b7e\u540d\uff09\u3002\u5b83\u662f\u7531\u6743\u5a01\u673a\u6784\u2014\u2014CA\u673a\u6784\uff0c\u53c8\u79f0\u4e3a\u8bc1\u4e66\u6388\u6743\uff08Certificate Authority\uff09\u4e2d\u5fc3\u53d1\u884c\u7684\uff0c\u4eba\u4eec\u53ef\u4ee5\u5728\u7f51\u4e0a\u7528\u5b83\u6765\u8bc6\u522b\u5bf9\u65b9\u7684\u8eab\u4efd\u3002","sidebar":"studySidebar"},"study/encryption/\u6d88\u606f\u6458\u8981\u7b97\u6cd5\u603b\u7ed3":{"id":"study/encryption/\u6d88\u606f\u6458\u8981\u7b97\u6cd5\u603b\u7ed3","title":"\u6d88\u606f\u6458\u8981\u7b97\u6cd5\u603b\u7ed3","description":"\u6d88\u606f\u6458\u8981\uff08Message Digest\uff09\u53c8\u79f0\u4e3a\u6570\u5b57\u6458\u8981\uff08Digital Digest\uff09\u3002\u5b83\u662f\u4e00\u4e2a\u552f\u4e00\u5bf9\u5e94\u4e00\u4e2a\u6d88\u606f\u6216\u6587\u672c\u7684\u56fa\u5b9a\u957f\u5ea6\u7684\u503c\uff0c\u5b83\u7531\u4e00\u4e2a\u5355\u5411 Hash \u52a0\u5bc6\u51fd\u6570\u5bf9\u6d88\u606f\u8fdb\u884c\u4f5c\u7528\u800c\u4ea7\u751f\u3002\u5982\u679c\u6d88\u606f\u5728\u9014\u4e2d\u6539\u53d8\u4e86\uff0c\u5219\u63a5\u6536\u8005\u901a\u8fc7\u5bf9\u6536\u5230\u6d88\u606f\u7684\u65b0\u4ea7\u751f\u7684\u6458\u8981\u4e0e\u539f\u6458\u8981\u6bd4\u8f83\uff0c\u5c31\u53ef\u77e5\u9053\u6d88\u606f\u662f\u5426\u88ab\u6539\u53d8\u4e86\u3002\u56e0\u6b64\u6d88\u606f\u6458\u8981\u4fdd\u8bc1\u4e86\u6d88\u606f\u7684\u5b8c\u6574\u6027\u3002","sidebar":"studySidebar"},"study/encryption/\u7b49\u4fdd_\u5bc6\u8bc4":{"id":"study/encryption/\u7b49\u4fdd_\u5bc6\u8bc4","title":"\u7b49\u4fdd\u548c\u5bc6\u8bc4","description":"\u201c\u7b49\u4fdd\u201d\u5373\u7f51\u7edc\u5b89\u5168\u7b49\u7ea7\u4fdd\u62a4\uff0c\u65e8\u5728\u901a\u8fc7\u4e0d\u540c\u5b89\u5168\u7b49\u7ea7\u7684\u7ba1\u7406\u548c\u6280\u672f\u63aa\u65bd\uff0c\u786e\u4fdd\u4fe1\u606f\u7cfb\u7edf\u7684\u5b89\u5168\u7a33\u5b9a\u8fd0\u884c\u3002\u6211\u56fd\u4e8e2017\u5e74\u9881\u5e03\u7684\u300a\u7f51\u7edc\u5b89\u5168\u6cd5\u300b\u4e2d\u7b2c\u4e8c\u5341\u4e00\u6761\u89c4\u5b9a\u201c\u56fd\u5bb6\u5b9e\u884c\u7f51\u7edc\u5b89\u5168\u7b49\u7ea7\u4fdd\u62a4\u5236\u5ea6\u201d\u3002\u6cd5\u5f8b\u8981\u6c42\u7f51\u7edc\u8fd0\u8425\u8005\u9700\u6309\u7167\u7f51\u7edc\u5b89\u5168\u7b49\u7ea7\u4fdd\u62a4\u5236\u5ea6\u8981\u6c42\uff0c\u5c65\u884c\u5236\u5b9a\u5b89\u5168\u7ba1\u7406\u5236\u5ea6\u3001\u91c7\u53d6\u9632\u8303\u6280\u672f\u63aa\u65bd\u3001\u76d1\u6d4b\u8bb0\u5f55\u7f51\u7edc\u72b6\u6001\u3001\u4fdd\u62a4\u6570\u636e\u5b89\u5168\u7b49\u591a\u9879\u4e49\u52a1\uff0c\u786e\u4fdd\u7f51\u7edc\u5b89\u5168\u7a33\u5b9a\u3002","sidebar":"studySidebar"},"study/encryption/\u884c\u4e1a\u5206\u6790":{"id":"study/encryption/\u884c\u4e1a\u5206\u6790","title":"\u884c\u4e1a\u5206\u6790","description":"\u516c\u53f8","sidebar":"studySidebar"},"study/encryption/\u8bfb\u4e66\u7b14\u8bb0-\u56fe\u89e3\u5bc6\u7801\u6280\u672f":{"id":"study/encryption/\u8bfb\u4e66\u7b14\u8bb0-\u56fe\u89e3\u5bc6\u7801\u6280\u672f","title":"\u8bfb\u4e66\u7b14\u8bb0-\u56fe\u89e3\u5bc6\u7801\u6280\u672f","description":"\u5bc6\u7801\u5b66\u5bb6\u7684\u5de5\u5177\u7bb1","sidebar":"studySidebar"},"study/encryption/\u975e\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3":{"id":"study/encryption/\u975e\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3","title":"\u975e\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3","description":"\u672c\u6587\u5c06\u8be6\u7ec6\u4ecb\u7ecd\u51e0\u79cd\u5e38\u89c1\u7684\u975e\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\uff0c\u5305\u62ec\u5b83\u4eec\u7684\u5de5\u4f5c\u539f\u7406\u3001\u4f18\u7f3a\u70b9\u548c\u5e94\u7528\u573a\u666f\u3002","sidebar":"studySidebar"},"study/fe/ARMS\u524d\u7aef\u76d1\u63a7":{"id":"study/fe/ARMS\u524d\u7aef\u76d1\u63a7","title":"ARMS\u524d\u7aef\u76d1\u63a7","description":"ARMS\u524d\u7aef\u76d1\u63a7\u4e13\u6ce8\u4e8e\u5bf9Web\u573a\u666f\u3001Weex\u573a\u666f\u548c\u5c0f\u7a0b\u5e8f\u573a\u666f\u7684\u76d1\u63a7\uff0c\u4ece\u9875\u9762\u6253\u5f00\u901f\u5ea6\uff08\u6d4b\u901f\uff09\u3001\u9875\u9762\u7a33\u5b9a\u6027\uff08JS\u8bca\u65ad\u9519\u8bef\uff09\u548c\u5916\u90e8\u670d\u52a1\u8c03\u7528\u6210\u529f\u7387\uff08API\uff09\u8fd9\u4e09\u4e2a\u65b9\u9762\u76d1\u6d4bWeb\u548c\u5c0f\u7a0b\u5e8f\u9875\u9762\u7684\u5065\u5eb7\u5ea6\u3002","sidebar":"studySidebar"},"study/fe/Flutter\u5f00\u53d1\u95ee\u9898\u8bb0\u5f55":{"id":"study/fe/Flutter\u5f00\u53d1\u95ee\u9898\u8bb0\u5f55","title":"Flutter\u5f00\u53d1\u95ee\u9898\u8bb0\u5f55","description":"\u8bb0\u5f55 Flutter \u5f00\u53d1\u7684\u4e00\u4e9b\u95ee\u9898\u3001\u7ecf\u9a8c","sidebar":"studySidebar"},"study/fe/index":{"id":"study/fe/index","title":"\u6982\u8ff0","description":"\u6240\u6709\u7528\u6237\u770b\u5230\u7684\u754c\u9762\uff0c\u7edf\u4e00\u6210\u4e3a\u524d\u7aef\uff0c\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\uff1a","sidebar":"studySidebar"},"study/fe/mqtt.js":{"id":"study/fe/mqtt.js","title":"mqtt.js","description":"\u4e0d\u8981\u4f7f\u7528 mqtt.js \u6362\u7528 precompiled-mqtt","sidebar":"studySidebar"},"study/fe/TypeScript\u8bed\u6cd5\u56fe":{"id":"study/fe/TypeScript\u8bed\u6cd5\u56fe","title":"TypeScript\u8bed\u6cd5\u56fe","description":"\u8bed\u6cd5\u56fe","sidebar":"studySidebar"},"study/fe/WebGL":{"id":"study/fe/WebGL","title":"WebGL","description":"\u6982\u8ff0","sidebar":"studySidebar"},"study/fe/\u4e0b\u8f7d\u56fe\u7247":{"id":"study/fe/\u4e0b\u8f7d\u56fe\u7247","title":"\u4e0b\u8f7d\u56fe\u7247","description":"","sidebar":"studySidebar"},"study/fe/\u4f4e\u4ee3\u7801\u53ef\u89c6\u5316\u5e73\u53f0":{"id":"study/fe/\u4f4e\u4ee3\u7801\u53ef\u89c6\u5316\u5e73\u53f0","title":"\u4f4e\u4ee3\u7801\u53ef\u89c6\u5316\u5e73\u53f0","description":"\u5f00\u6e90\u9879\u76ee","sidebar":"studySidebar"},"study/fe/\u524d\u7aef\u6a21\u5757\u5316":{"id":"study/fe/\u524d\u7aef\u6a21\u5757\u5316","title":"\u524d\u7aef\u6a21\u5757\u5316","description":"\u80cc\u666f","sidebar":"studySidebar"},"study/hard/index":{"id":"study/hard/index","title":"\u6982\u8ff0","description":"","sidebar":"studySidebar"},"study/hard/\u5d4c\u5165\u5f0f_\u5355\u7247\u673a":{"id":"study/hard/\u5d4c\u5165\u5f0f_\u5355\u7247\u673a","title":"\u5d4c\u5165\u5f0f_\u5355\u7247\u673a","description":"\u5d4c\u5165\u5f0f\u548c\u5355\u7247\u673a\u7684\u533a\u522b\u5230\u5e95\u662f\u4ec0\u4e48\u3002","sidebar":"studySidebar"},"study/hard/\u786c\u4ef6\u5f00\u53d1\u548c\u5d4c\u5165\u5f0f\u5f00\u53d1":{"id":"study/hard/\u786c\u4ef6\u5f00\u53d1\u548c\u5d4c\u5165\u5f0f\u5f00\u53d1","title":"\u786c\u4ef6\u5f00\u53d1\u548c\u5d4c\u5165\u5f0f\u5f00\u53d1","description":"1. \u5d4c\u5165\u5f0flinux \u548c \u7528stm32\u8fdb\u884c\u7684\u5d4c\u5165\u5f0f\u5f00\u53d1 \u8fd9\u4e24\u8005\u4e4b\u95f4\u6709\u4ec0\u4e48\u5173\u8054\u6027\u5417\uff1f","sidebar":"studySidebar"},"study/hard/\u8def\u7531\u5668\u548c\u4ea4\u6362\u673a\u7684\u533a\u522b":{"id":"study/hard/\u8def\u7531\u5668\u548c\u4ea4\u6362\u673a\u7684\u533a\u522b","title":"\u8def\u7531\u5668\u548c\u4ea4\u6362\u673a\u7684\u533a\u522b","description":"\u8def\u7531\u5668\u548c\u4ea4\u6362\u673a\u7684\u4e0d\u540c\u4e4b\u5904\u6709\u54ea\u4e9b\uff1f","sidebar":"studySidebar"},"study/hard/\u901a\u4fe1\u6a21\u7ec4":{"id":"study/hard/\u901a\u4fe1\u6a21\u7ec4","title":"\u901a\u4fe1\u6a21\u7ec4","description":"images","sidebar":"studySidebar"},"study/index":{"id":"study/index","title":"\u5b66\u65e0\u6b62\u5883","description":"\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u662f\u4e00\u4e2a\u4e0d\u65ad\u53d1\u5c55\u548c\u53d8\u5316\u7684\u9886\u57df\uff0c\u5b66\u65e0\u6b62\u5883\u3002\u968f\u7740\u6280\u672f\u548c\u5e02\u573a\u7684\u4e0d\u65ad\u53d8\u5316\uff0c\u6211\u4eec\u9700\u8981\u59cb\u7ec8\u4fdd\u6301\u654f\u9510\u7684\u89c2\u5bdf\u529b\u548c\u5b66\u4e60\u80fd\u529b\u3002","sidebar":"studySidebar"},"study/net/ip":{"id":"study/net/ip","title":"Linux ip \u547d\u4ee4","description":"ip \u547d\u4ee4\u6765\u81ea iproute \u8f6f\u4ef6\u5305\uff0c\u8f6f\u4ef6\u5305\u63d0\u4f9b\u4e86\u5f88\u591a\u547d\u4ee4\uff08rpm -ql iproute |grep bin\uff09\uff0c\u5982 ss \u547d\u4ee4\u3001bridge\uff0c\u8fd9\u4e9b\u547d\u4ee4\u53ef\u4ee5\u5b8c\u5168\u66ff\u4ee3 ifconfig\u3001netstat\u3001route \u7b49\u547d\u4ee4\u3002","sidebar":"studySidebar"},"study/net/iptables":{"id":"study/net/iptables","title":"Linux iptables \u9632\u706b\u5899","description":"","sidebar":"studySidebar"},"study/net/IPV6":{"id":"study/net/IPV6","title":"IPV6","description":"IPV6 \u8fde\u63a5\u6d4b\u8bd5","sidebar":"studySidebar"},"study/net/MacOS\u7f16\u8bd1OpenVPN":{"id":"study/net/MacOS\u7f16\u8bd1OpenVPN","title":"MacOS\u7f16\u8bd1OpenVPN","description":"cmake -DUNSUPPORTED_BUILDS=true ./","sidebar":"studySidebar"},"study/net/netns":{"id":"study/net/netns","title":"Linux netns","description":"\u53c2\u8003","sidebar":"studySidebar"},"study/net/OpenVPN":{"id":"study/net/OpenVPN","title":"OpenVPN","description":"\u914d\u7f6e","sidebar":"studySidebar"},"study/net/p2p":{"id":"study/net/p2p","title":"P2P \u7f51\u7edc NAT \u7a7f\u900f\u539f\u7406(\u6253\u6d1e\u65b9\u6848)","description":"\u53c2\u8003","sidebar":"studySidebar"},"study/net/pfctl\u9632\u706b\u5899":{"id":"study/net/pfctl\u9632\u706b\u5899","title":"unix pfctl \u9632\u706b\u5899","description":"iptables \u662f Linux \u4e0b\u7684\u9632\u706b\u5899\uff0c\u53ef\u4ee5\u8fdb\u884c\u6570\u636e\u5305\u7684\u8fc7\u6ee4\uff0c\u5728\u7f51\u7edc\u5c42\u8fdb\u884c\u6570\u636e\u7684\u8f6c\u53d1\u3001\u62e6\u622a\u6216\u4e22\u5f03\u7b49\uff0c\u4f7f\u7528\u975e\u5e38\u666e\u904d\uff0c\u529f\u80fd\u4e5f\u975e\u5e38\u5f3a\u5927\u3002\u4f46\u662f Mac \u4e0b\u6ca1\u6709 iptables\uff0c\u4e3a\u4e86\u5b9e\u73b0\u6d41\u91cf\u8f6c\u53d1\u548c\u8fc7\u6ee4\uff0c\u8981\u4f7f\u7528\u5230 Mac \u81ea\u5e26\u7684 PFctl\u3002PFctl \u5373 control the packet filter\uff0c\u662f Unix LIKE \u7cfb\u7edf\u4e0a\u8fdb\u884c TCP/IP \u6d41\u91cf\u8fc7\u6ee4\u548c\u7f51\u7edc\u5730\u5740\u8f6c\u6362\u7684\u7cfb\u7edf\uff0c\u4e5f\u80fd\u63d0\u4f9b\u6d41\u91cf\u6574\u5f62\u548c\u63a7\u5236\u7b49","sidebar":"studySidebar"},"study/net/SNMP":{"id":"study/net/SNMP","title":"SNMP","description":"\u53c2\u8003","sidebar":"studySidebar"},"study/net/tc":{"id":"study/net/tc","title":"Linux tc","description":"tc \u662f Linux \u7cfb\u7edf\u4e0b\u7684\u6d41\u91cf\u63a7\u5236\u5de5\u5177\uff0c\u5168\u79f0 Traffic Control\uff0c\u7528\u4e8e\u914d\u7f6e\u548c\u63a7\u5236\u7f51\u7edc\u6d41\u91cf\u3002\u5b83\u662f\u4e00\u4e2a\u5f3a\u5927\u7684\u5de5\u5177\uff0c\u53ef\u4ee5\u7528\u4e8e\u914d\u7f6e\u548c\u8c03\u6574\u5404\u79cd\u7f51\u7edc\u63a5\u53e3\u7684\u6d41\u91cf\u63a7\u5236\u53c2\u6570\uff0c\u5982\u5e26\u5bbd\u9650\u5236\u3001\u5ef6\u8fdf\u3001\u4e22\u5305\u7387\u7b49\u3002","sidebar":"studySidebar"},"study/net/TCP":{"id":"study/net/TCP","title":"TCP","description":"\u4e09\u6b21\u63e1\u624b\u56db\u6b21\u6325\u624b","sidebar":"studySidebar"},"study/net/tuntap":{"id":"study/net/tuntap","title":"tuntap","description":"Tun/Tap","sidebar":"studySidebar"},"study/net/UDP":{"id":"study/net/UDP","title":"UDP","description":"UDP","sidebar":"studySidebar"},"study/net/VLAN-VXLAN":{"id":"study/net/VLAN-VXLAN","title":"VLAN-VXLAN","description":"VLAN","sidebar":"studySidebar"},"study/net/vpn":{"id":"study/net/vpn","title":"vpn","description":"\u7b80\u4ecb","sidebar":"studySidebar"},"study/net/\u4ee3\u7406":{"id":"study/net/\u4ee3\u7406","title":"\u4ee3\u7406","description":"\u53c2\u8003","sidebar":"studySidebar"},"study/net/\u5185\u7f51\u7a7f\u900f":{"id":"study/net/\u5185\u7f51\u7a7f\u900f","title":"\u5185\u7f51\u7a7f\u900f","description":"\u5185\u7f51\u7a7f\u900f","sidebar":"studySidebar"},"study/net/\u5c40\u57df\u7f51IP\u5730\u5740\u8303\u56f4":{"id":"study/net/\u5c40\u57df\u7f51IP\u5730\u5740\u8303\u56f4","title":"\u5c40\u57df\u7f51IP\u5730\u5740\u8303\u56f4","description":"A \u7c7b\u5730\u5740","sidebar":"studySidebar"},"study/net/\u5f02\u5730\u7ec4\u7f51":{"id":"study/net/\u5f02\u5730\u7ec4\u7f51","title":"\u5f02\u5730\u7ec4\u7f51","description":"\u7f51\u7edc\u7c7b\u578b","sidebar":"studySidebar"},"study/net/\u6293\u5305\u5de5\u5177":{"id":"study/net/\u6293\u5305\u5de5\u5177","title":"\u6293\u5305\u5de5\u5177","description":"tcpdump","sidebar":"studySidebar"},"study/net/\u7f51\u7edc\u541e\u5410\u91cf\u6d4b\u91cf\u5de5\u5177":{"id":"study/net/\u7f51\u7edc\u541e\u5410\u91cf\u6d4b\u91cf\u5de5\u5177","title":"\u7f51\u7edc\u541e\u5410\u91cf\u6d4b\u91cf\u5de5\u5177","description":"iperf3","sidebar":"studySidebar"},"study/other/\u5b57\u8282\u5e8f":{"id":"study/other/\u5b57\u8282\u5e8f","title":"\u5b57\u8282\u5e8f Big Endian Little Endian","description":"\u5b57\u8282\u5e8f\uff0c\u4e5f\u5c31\u662f\u5b57\u8282\u7684\u987a\u5e8f\uff0c\u6307\u7684\u662f\u591a\u5b57\u8282\u7684\u6570\u636e\u5728\u5185\u5b58\u4e2d\u7684\u5b58\u653e\u987a\u5e8f\u3002","sidebar":"studySidebar"},"study/other/\u6807\u51c6\u540d\u79f0\u7f29\u5199":{"id":"study/other/\u6807\u51c6\u540d\u79f0\u7f29\u5199","title":"\u6807\u51c6\u540d\u79f0\u7f29\u5199","description":"\u56fd\u5185\u6807\u51c6","sidebar":"studySidebar"},"study/program/ABIAPI":{"id":"study/program/ABIAPI","title":"ABIAPI","description":"ABI","sidebar":"studySidebar"},"study/program/C/cmake":{"id":"study/program/C/cmake","title":"cmake","description":"cmake \u4ecb\u7ecd","sidebar":"studySidebar"},"study/program/C/C\u8bed\u8a00\u6807\u51c6\u5e93":{"id":"study/program/C/C\u8bed\u8a00\u6807\u51c6\u5e93","title":"C\u8bed\u8a00\u6807\u51c6\u5e93","description":"C \u8bed\u8a00\u6807\u51c6\u5e93","sidebar":"studySidebar"},"study/program/C/extern-c":{"id":"study/program/C/extern-c","title":"extern-c","description":"extern \\"C\\"","sidebar":"studySidebar"},"study/program/C/index":{"id":"study/program/C/index","title":"C C++ \u7f16\u7a0b\u8bed\u8a00","description":"\u53c2\u8003","sidebar":"studySidebar"},"study/program/C/make":{"id":"study/program/C/make","title":"make","description":"make \u662f\u4e00\u6761\u8ba1\u7b97\u673a\u6307\u4ee4\uff0c\u662f\u5728\u5b89\u88c5\u6709 GNU Make \u7684\u8ba1\u7b97\u673a\u4e0a\u7684\u53ef\u6267\u884c\u6307\u4ee4\u3002\u8be5\u6307\u4ee4\u662f\u8bfb\u5165\u4e00\u4e2a\u540d\u4e3a makefile \u7684\u6587\u4ef6\uff0c\u7136\u540e\u6267\u884c\u8fd9\u4e2a\u6587\u4ef6\u4e2d\u6307\u5b9a\u7684\u6307\u4ee4\u3002","sidebar":"studySidebar"},"study/program/C/MFC-WinForm-WPF-DotNet\u7b49":{"id":"study/program/C/MFC-WinForm-WPF-DotNet\u7b49","title":"MFC-WinForm-WPF-DotNet\u7b49","description":"MFC","sidebar":"studySidebar"},"study/program/C/pragma":{"id":"study/program/C/pragma","title":"pragma","description":"pragma","sidebar":"studySidebar"},"study/program/C/size_t-ptrdiff_t-intptr_t-uintptr_t":{"id":"study/program/C/size_t-ptrdiff_t-intptr_t-uintptr_t","title":"size_t-ptrdiff_t-intptr_t-uintptr_t","description":"- size_t","sidebar":"studySidebar"},"study/program/C/\u65b9\u6cd5\u5e93-\u9759\u6001\u5e93-\u52a8\u6001\u5e93-\u5171\u4eab\u5e93":{"id":"study/program/C/\u65b9\u6cd5\u5e93-\u9759\u6001\u5e93-\u52a8\u6001\u5e93-\u5171\u4eab\u5e93","title":"\u65b9\u6cd5\u5e93-\u9759\u6001\u5e93-\u52a8\u6001\u5e93-\u5171\u4eab\u5e93","description":"\u65b9\u6cd5\u5e93\u53ef\u4ee5\u5206\u4e3a\u4e24\u7c7b\uff1a","sidebar":"studySidebar"},"study/program/C/\u6784\u5efa\u5de5\u5177":{"id":"study/program/C/\u6784\u5efa\u5de5\u5177","title":"\u6784\u5efa\u5de5\u5177","description":"C \u8bed\u8a00\u6784\u5efa\u5de5\u5177","sidebar":"studySidebar"},"study/program/C/\u865a\u62df\u7f51\u5361":{"id":"study/program/C/\u865a\u62df\u7f51\u5361","title":"\u865a\u62df\u7f51\u5361","description":"TUN/TAP\uff08Linux\uff09","sidebar":"studySidebar"},"study/program/CPP/CGI":{"id":"study/program/CPP/CGI","title":"CGI","description":"\u53c2\u8003","sidebar":"studySidebar"},"study/program/CPP/CPP\u8fdb\u7a0b\u95f4\u901a\u4fe1":{"id":"study/program/CPP/CPP\u8fdb\u7a0b\u95f4\u901a\u4fe1","title":"C++\u8fdb\u7a0b\u95f4\u901a\u4fe1","description":"\u7ba1\u9053","sidebar":"studySidebar"},"study/program/CPP/index":{"id":"study/program/CPP/index","title":"C++","description":"C++\u6807\u51c6","sidebar":"studySidebar"},"study/program/CSharp/index":{"id":"study/program/CSharp/index","title":"CSharp","description":"C#\u662f\u5fae\u8f6f\u63a8\u51fa\u7684\u4e00\u79cd\u57fa\u4e8e.NET \u6846\u67b6\u7684\u3001\u9762\u5411\u5bf9\u8c61\u7684\u9ad8\u7ea7\u7f16\u7a0b\u8bed\u8a00\u3002","sidebar":"studySidebar"},"study/program/Dart/Flutter":{"id":"study/program/Dart/Flutter","title":"Flutter","description":"\u5e94\u7528\u56fe\u6807","sidebar":"studySidebar"},"study/program/Dart/\u5b66\u4e60\u8d44\u6599":{"id":"study/program/Dart/\u5b66\u4e60\u8d44\u6599","title":"Dart \u5b66\u4e60\u8d44\u6599","description":"\u7279\u70b9","sidebar":"studySidebar"},"study/program/Erlang/index":{"id":"study/program/Erlang/index","title":"Erlang","description":"\u7b80\u4ecb","sidebar":"studySidebar"},"study/program/ETL/dataX":{"id":"study/program/ETL/dataX","title":"dataX","description":"\u6982\u8ff0","sidebar":"studySidebar"},"study/program/ETL/flume":{"id":"study/program/ETL/flume","title":"flume","description":"Flume\u7684\u5b9a\u4e49","sidebar":"studySidebar"},"study/program/ETL/kettle":{"id":"study/program/ETL/kettle","title":"kettle","description":"ETL\uff08Extract-Transform-Load\u7684\u7f29\u5199\uff0c\u5373\u6570\u636e\u62bd\u53d6\u3001\u8f6c\u6362\u3001\u88c5\u8f7d\u7684\u8fc7\u7a0b\uff09\uff0c\u5bf9\u4e8e\u4f01\u4e1a\u6216\u884c\u4e1a\u5e94\u7528\u6765\u8bf4\uff0c\u6211\u4eec\u7ecf\u5e38\u4f1a\u9047\u5230\u5404\u79cd\u6570\u636e\u7684\u5904\u7406\uff0c\u8f6c\u6362\uff0c\u8fc1\u79fb\uff0c\u6240\u4ee5\u4e86\u89e3\u5e76\u638c\u63e1\u4e00\u79cdetl\u5de5\u5177\u7684\u4f7f\u7528\uff0c\u5fc5\u4e0d\u53ef\u5c11\u3002kettle\u662f\u7eafjava\u7f16\u5199\uff0c\u652f\u6301\u56fe\u5f62\u5316\u7684GUI\u8bbe\u8ba1\u754c\u9762\uff0c\u7136\u540e\u53ef\u4ee5\u4ee5\u5de5\u4f5c\u6d41\u7684\u5f62\u5f0f\u6d41\u8f6c\uff0c\u5728\u505a\u4e00\u4e9b\u7b80\u5355\u6216\u590d\u6742\u7684\u6570\u636e\u62bd\u53d6\u3001\u8d28\u91cf\u68c0\u6d4b\u3001\u6570\u636e\u6e05\u6d17\u3001\u6570\u636e\u8f6c\u6362\u3001\u6570\u636e\u8fc7\u6ee4\u7b49\u65b9\u9762\u6709\u7740\u6bd4\u8f83\u7a33\u5b9a\u7684\u8868\u73b0\uff0c\u5176\u4e2d\u6700\u4e3b\u8981\u7684\u6211\u4eec\u901a\u8fc7\u719f\u7ec3\u7684\u5e94\u7528\u5b83\uff0c\u51cf\u5c11\u4e86\u975e\u5e38\u591a\u7684\u7814\u53d1\u5de5\u4f5c\u91cf\uff0c\u63d0\u9ad8\u4e86\u6211\u4eec\u7684\u5de5\u4f5c\u6548\u7387\u3002","sidebar":"studySidebar"},"study/program/ETL/sqoop":{"id":"study/program/ETL/sqoop","title":"sqoop","description":"\u6982\u8ff0","sidebar":"studySidebar"},"study/program/GIT/GIT-\u5e38\u7528\u547d\u4ee4":{"id":"study/program/GIT/GIT-\u5e38\u7528\u547d\u4ee4","title":"GIT-\u5e38\u7528\u547d\u4ee4","description":"clone","sidebar":"studySidebar"},"study/program/GIT/GitHubDesktop":{"id":"study/program/GIT/GitHubDesktop","title":"GitHub Desktop","description":"\u6211\u4e00\u822c\u662f\u4f7f\u7528\u8fd9\u4e2a\u5de5\u5177\uff0c\u4f46\u662f\u6709\u4e00\u6b21\u66f4\u65b0\u4e4b\u540e\uff0c\u62a5\u9519\u5982\u4e0b","sidebar":"studySidebar"},"study/program/GIT/PR\u548cMR":{"id":"study/program/GIT/PR\u548cMR","title":"PR\u548cMR","description":"\u7b80\u4ecb","sidebar":"studySidebar"},"study/program/Golang/Golang\u4f9d\u8d56\u5e93\u4ee3\u7406":{"id":"study/program/Golang/Golang\u4f9d\u8d56\u5e93\u4ee3\u7406","title":"Golang\u4f9d\u8d56\u5e93\u4ee3\u7406","description":"\u811a\u672c","sidebar":"studySidebar"},"study/program/Golang/index":{"id":"study/program/Golang/index","title":"Golang","description":"Go \u8bed\u8a00\u8bbe\u8ba1\u521d\u8877","sidebar":"studySidebar"},"study/program/Golang/\u5e38\u7528\u7684\u5de5\u5177":{"id":"study/program/Golang/\u5e38\u7528\u7684\u5de5\u5177","title":"\u5e38\u7528\u7684\u5de5\u5177","description":"json-to-go","sidebar":"studySidebar"},"study/program/Golang/\u5e38\u7528\u7684\u6846\u67b6":{"id":"study/program/Golang/\u5e38\u7528\u7684\u6846\u67b6","title":"\u5e38\u7528\u7684\u6846\u67b6","description":"Gin","sidebar":"studySidebar"},"study/program/index":{"id":"study/program/index","title":"\u6982\u8ff0","description":"\u5199\u4ee3\u7801\u7528\u5230\u7684\u4e00\u5957\u89c4\u8303\u53ca\u5176\u5ef6\u4f38\u5de5\u5177\u3002","sidebar":"studySidebar"},"study/program/JAVA/GC":{"id":"study/program/JAVA/GC","title":"GC","description":"JVM \u4e2d\u5e38\u89c1\u7684\u5783\u573e\u6536\u96c6\u7b97\u6cd5","sidebar":"studySidebar"},"study/program/JAVA/GraalVM":{"id":"study/program/JAVA/GraalVM","title":"GraalVM","description":"\u5b98\u7f51","sidebar":"studySidebar"},"study/program/JAVA/Guice":{"id":"study/program/JAVA/Guice","title":"Guice","description":"\u80cc\u666f","sidebar":"studySidebar"},"study/program/JAVA/index":{"id":"study/program/JAVA/index","title":"Java","description":"\u4e00\u79cd\u4f7f\u7528\u975e\u5e38\u5e7f\u6cdb\u7684\u8de8\u5e73\u53f0\u7f16\u7a0b\u8bed\u8a00\u3002","sidebar":"studySidebar"},"study/program/JAVA/JDK17":{"id":"study/program/JAVA/JDK17","title":"JDK17","description":"\u9650\u5236\u7c7b\u7ee7\u627f sealed \u7c7b","sidebar":"studySidebar"},"study/program/JAVA/JDK17-bin":{"id":"study/program/JAVA/JDK17-bin","title":"JDK17-bin","description":"jar","sidebar":"studySidebar"},"study/program/JAVA/JDK21":{"id":"study/program/JAVA/JDK21","title":"JDK21","description":"\u865a\u62df\u7ebf\u7a0b","sidebar":"studySidebar"},"study/program/JAVA/JDK8":{"id":"study/program/JAVA/JDK8","title":"JDK8","description":"Optional","sidebar":"studySidebar"},"study/program/JAVA/JNI":{"id":"study/program/JAVA/JNI","title":"JNI","description":"Java Native Interface\uff0cJava \u672c\u5730\u63a5\u53e3","sidebar":"studySidebar"},"study/program/JAVA/Maven":{"id":"study/program/JAVA/Maven","title":"Maven","description":"\u7b80\u4ecb","sidebar":"studySidebar"},"study/program/JAVA/OepnJ9":{"id":"study/program/JAVA/OepnJ9","title":"OpenJ9","description":"https://eclipse.dev/openj9/","sidebar":"studySidebar"},"study/program/JAVA/RxJava":{"id":"study/program/JAVA/RxJava","title":"RxJava","description":"\u7b80\u4ecb","sidebar":"studySidebar"},"study/program/JAVA/Vert.x":{"id":"study/program/JAVA/Vert.x","title":"Vert.x","description":"\u7b80\u4ecb","sidebar":"studySidebar"},"study/program/JAVA/\u4ee3\u7801\u751f\u6210":{"id":"study/program/JAVA/\u4ee3\u7801\u751f\u6210","title":"\u4ee3\u7801\u751f\u6210","description":"Mapstruct","sidebar":"studySidebar"},"study/program/JAVA/\u9501":{"id":"study/program/JAVA/\u9501","title":"\u9501\uff08\u591a\u7ebf\u7a0b\uff09","description":"\u591a\u7ebf\u7a0b\u7f16\u7a0b\u5728\u73b0\u4ee3\u8f6f\u4ef6\u5f00\u53d1\u4e2d\u626e\u6f14\u7740\u81f3\u5173\u91cd\u8981\u7684\u89d2\u8272\u3002\u5b83\u4f7f\u6211\u4eec\u80fd\u591f\u6709\u6548\u5730\u5229\u7528\u591a\u6838\u5904\u7406\u5668\u548c\u63d0\u9ad8\u5e94\u7528\u7a0b\u5e8f\u7684\u6027\u80fd\u3002\u7136\u800c\uff0c\u591a\u7ebf\u7a0b\u7f16\u7a0b\u4e5f\u4f34\u968f\u7740\u4e00\u7cfb\u5217\u6311\u6218\uff0c\u5176\u4e2d\u6700\u91cd\u8981\u7684\u4e4b\u4e00\u5c31\u662f\u5904\u7406\u5171\u4eab\u8d44\u6e90\u7684\u7ebf\u7a0b\u5b89\u5168\u6027\u3002\u5728\u8fd9\u4e2a\u9886\u57df\uff0c\u9501\uff08Lock\uff09\u662f\u4e00\u4e2a\u5173\u952e\u7684\u6982\u5ff5\uff0c\u7528\u4e8e\u534f\u8c03\u7ebf\u7a0b\u4e4b\u95f4\u5bf9\u5171\u4eab\u8d44\u6e90\u7684\u8bbf\u95ee\u3002","sidebar":"studySidebar"},"study/program/JS/npm":{"id":"study/program/JS/npm","title":"npm","description":"npmjs","sidebar":"studySidebar"},"study/program/JS/npx":{"id":"study/program/JS/npx","title":"npx","description":"\u6982\u5ff5","sidebar":"studySidebar"},"study/program/JS/nrm":{"id":"study/program/JS/nrm","title":"nrm","description":"nrm \u662f\u4e00\u4e2a npm \u6e90\u7ba1\u7406\u5668\uff0c\u5141\u8bb8\u4f60\u5feb\u901f\u5730\u5728 npm\u6e90\u95f4\u5207\u6362\u3002","sidebar":"studySidebar"},"study/program/Kotlin/index":{"id":"study/program/Kotlin/index","title":"Kotlin","description":"Kotlin\uff08\u79d1\u7279\u6797\uff09\u662f\u4e00\u4e2a\u7528\u4e8e\u73b0\u4ee3\u591a\u5e73\u53f0\u5e94\u7528\u7684\u9759\u6001\u7f16\u7a0b\u8bed\u8a00\uff0c\u7531 JetBrains \u5f00\u53d1\u3002","sidebar":"studySidebar"},"study/program/Lua/index":{"id":"study/program/Lua/index","title":"Lua","description":"\u5b66\u4e60\u8d44\u6599","sidebar":"studySidebar"},"study/program/Rust/index":{"id":"study/program/Rust/index","title":"Rust","description":"\u4e00\u95e8\u8d4b\u4e88\u6bcf\u4e2a\u4eba\u6784\u5efa\u53ef\u9760\u4e14\u9ad8\u6548\u8f6f\u4ef6\u80fd\u529b\u7684\u8bed\u8a00\u3002","sidebar":"studySidebar"},"study/program/\u6280\u672f\u6587\u6863":{"id":"study/program/\u6280\u672f\u6587\u6863","title":"\u6280\u672f\u6587\u6863","description":"\u6280\u672f\u6587\u6863","sidebar":"studySidebar"},"study/program/\u7f16\u8bd1\u5668":{"id":"study/program/\u7f16\u8bd1\u5668","title":"\u7f16\u8bd1\u5668","description":"C/C++/Objective-C \u7b49\u7c7b C \u7f16\u8bd1\u5668","sidebar":"studySidebar"},"study/program/\u8de8\u5e73\u53f0\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u6846\u67b6":{"id":"study/program/\u8de8\u5e73\u53f0\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u6846\u67b6","title":"\u8de8\u5e73\u53f0\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u6846\u67b6","description":"Electron","sidebar":"studySidebar"},"study/system/CPU\u7ebf\u7a0b\u5e76\u53d1":{"id":"study/system/CPU\u7ebf\u7a0b\u5e76\u53d1","title":"CPU\u7ebf\u7a0b\u5e76\u53d1","description":"CPU \u7ebf\u7a0b \u8fdb\u7a0b \u5e76\u53d1 \u5e76\u884c","sidebar":"studySidebar"},"study/system/index":{"id":"study/system/index","title":"index","description":"\u5b66\u4e60\u8d44\u6599","sidebar":"studySidebar"},"study/system/IO":{"id":"study/system/IO","title":"\u64cd\u4f5c\u7cfb\u7edf IO \u77e5\u8bc6","description":"I/O\uff08Input/Output\uff09\u6a21\u578b\u662f\u8ba1\u7b97\u673a\u79d1\u5b66\u4e2d\u7684\u4e00\u4e2a\u5173\u952e\u6982\u5ff5\uff0c\u5b83\u6d89\u53ca\u5230\u5982\u4f55\u8fdb\u884c\u8f93\u5165\u548c\u8f93\u51fa\u64cd\u4f5c\uff0c\u800c\u8fd9\u5728\u8ba1\u7b97\u673a\u5e94\u7528\u4e2d\u662f\u4e0d\u53ef\u6216\u7f3a\u7684\u4e00\u90e8\u5206\u3002\u5728\u4e0d\u540c\u7684\u5e94\u7528\u573a\u666f\u4e0b\uff0c\u9009\u62e9\u6b63\u786e\u7684 I/O \u6a21\u578b\u662f\u81f3\u5173\u91cd\u8981\u7684\uff0c\u56e0\u4e3a\u5b83\u4f1a\u5f71\u54cd\u5230\u5e94\u7528\u7a0b\u5e8f\u7684\u6027\u80fd\u548c\u54cd\u5e94\u6027\u3002","sidebar":"studySidebar"},"study/system/openWRT":{"id":"study/system/openWRT","title":"openWRT","description":"\u53c2\u8003","sidebar":"studySidebar"},"study/system/Open\u6b27\u62c9":{"id":"study/system/Open\u6b27\u62c9","title":"Open\u6b27\u62c9","description":"\u5b57\u7b26\u96c6\u95ee\u9898","sidebar":"studySidebar"},"study/system/shell\u7f16\u7a0b\u667aexpect":{"id":"study/system/shell\u7f16\u7a0b\u667aexpect","title":"shell\u7f16\u7a0b\u667aexpect","description":"expect","sidebar":"studySidebar"},"study/system/yum-dnf":{"id":"study/system/yum-dnf","title":"yum-dnf","description":"yum","sidebar":"studySidebar"},"study/system/\u5185\u5b58\u7ba1\u7406":{"id":"study/system/\u5185\u5b58\u7ba1\u7406","title":"\u5185\u5b58\u7ba1\u7406","description":"\u53c2\u8003","sidebar":"studySidebar"},"study/system/\u53ef\u6267\u884c\u7a0b\u5e8f\u8fd0\u884c\u539f\u7406\u5206\u6790":{"id":"study/system/\u53ef\u6267\u884c\u7a0b\u5e8f\u8fd0\u884c\u539f\u7406\u5206\u6790","title":"\u53ef\u6267\u884c\u7a0b\u5e8f\u5728\u64cd\u4f5c\u7cfb\u7edf\u4e0b\u7684\u8fd0\u884c\u539f\u7406\u5206\u6790","description":"\u67b6\u6784\uff0c\u4ece\u4e0b\u5f80\u4e0a\u5206\u6790","sidebar":"studySidebar"},"study/system/\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838":{"id":"study/system/\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838","title":"\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838","description":"\u4ec0\u4e48\u662f\u5185\u6838","sidebar":"studySidebar"},"study/system/\u7a0b\u5e8f\u8c03\u8bd5":{"id":"study/system/\u7a0b\u5e8f\u8c03\u8bd5","title":"\u7a0b\u5e8f\u8c03\u8bd5","description":"strace","sidebar":"studySidebar"},"study/think/index":{"id":"study/think/index","title":"\u6982\u8ff0","description":"\u8de8\u8d8a\u7f16\u7a0b\u8bed\u8a00\u7684\u4e00\u4e9b\u5957\u8def\u3002","sidebar":"studySidebar"},"study/think/IT_CT_OT":{"id":"study/think/IT_CT_OT","title":"IT_CT_OT","description":"IT","sidebar":"studySidebar"},"study/think/\u4ee3\u7801\u8bc4\u5ba1/Gerrit\u4ee3\u7801\u8bc4\u5ba1\u5de5\u5177":{"id":"study/think/\u4ee3\u7801\u8bc4\u5ba1/Gerrit\u4ee3\u7801\u8bc4\u5ba1\u5de5\u5177","title":"Gerrit\u4ee3\u7801\u8bc4\u5ba1\u5de5\u5177","description":"\u53c2\u8003","sidebar":"studySidebar"},"study/think/\u4ee3\u7801\u8bc4\u5ba1/\u4ee3\u7801\u5ba1\u67e5\u95ee\u9898\u624b\u518c":{"id":"study/think/\u4ee3\u7801\u8bc4\u5ba1/\u4ee3\u7801\u5ba1\u67e5\u95ee\u9898\u624b\u518c","title":"\u4ee3\u7801\u5ba1\u67e5\u95ee\u9898\u624b\u518c","description":"\u6bcf\u59295\u70b9\u4e4b\u540e\u82b110\u5206\u949f\u7684\u65f6\u95f4\u5ba1\u67e5\u4e00\u4e0b\u522b\u4eba\u7684\u4ee3\u7801\uff0c\u5e76\u548c\u4ee3\u7801\u4f5c\u8005\u6c9f\u901a\uff1b","sidebar":"studySidebar"},"study/think/\u5b9e\u65f6\u8ba1\u7b97Storm+Flink":{"id":"study/think/\u5b9e\u65f6\u8ba1\u7b97Storm+Flink","title":"\u5b9e\u65f6\u8ba1\u7b97Storm+Flink","description":"\u5b9e\u65f6\u8ba1\u7b97","sidebar":"studySidebar"},"study/think/\u5e76\u53d1\u6a21\u578b":{"id":"study/think/\u5e76\u53d1\u6a21\u578b","title":"\u5e76\u53d1\u6a21\u578b","description":"\u4e1a\u754c\u5c06\u5982\u4f55\u5b9e\u73b0\u5e76\u53d1\u7f16\u7a0b\u603b\u7ed3\u5f52\u7eb3\u4e3a\u5404\u5f0f\u5404\u6837\u7684\u5e76\u53d1\u6a21\u578b\uff0c\u5e38\u89c1\u7684\u5e76\u53d1\u6a21\u578b\u6709\u4ee5\u4e0b\u51e0\u79cd\uff1a","sidebar":"studySidebar"},"study/think/\u67b6\u6784/CAP\u7406\u8bba":{"id":"study/think/\u67b6\u6784/CAP\u7406\u8bba","title":"CAP\u7406\u8bba","description":"\u7406\u8bba\u77e5\u8bc6","sidebar":"studySidebar"},"study/think/\u67b6\u6784/\u5f02\u5730\u591a\u6d3b\u67b6\u6784":{"id":"study/think/\u67b6\u6784/\u5f02\u5730\u591a\u6d3b\u67b6\u6784","title":"\u5f02\u5730\u591a\u6d3b\u67b6\u6784","description":"\u5e72\u8d27\uff5c\u641e\u61c2\u300c\u5f02\u5730\u591a\u6d3b\u300d\uff0c\u770b\u8fd9\u7bc7\u5c31\u591f\u4e86","sidebar":"studySidebar"},"study/think/\u67b6\u6784/\u6280\u672f\u4e2d\u53f0":{"id":"study/think/\u67b6\u6784/\u6280\u672f\u4e2d\u53f0","title":"\u6280\u672f\u4e2d\u53f0","description":"\u53c2\u8003","sidebar":"studySidebar"},"study/think/\u67b6\u6784/\u67b6\u6784":{"id":"study/think/\u67b6\u6784/\u67b6\u6784","title":"\u67b6\u6784","description":"\u5b9a\u4e49","sidebar":"studySidebar"},"study/think/\u67b6\u6784/\u67b6\u6784\u56fe\u793a\u4f8b":{"id":"study/think/\u67b6\u6784/\u67b6\u6784\u56fe\u793a\u4f8b","title":"\u67b6\u6784\u56fe\u793a\u4f8b","description":"image.png","sidebar":"studySidebar"},"study/think/\u67b6\u6784/\u8d1f\u8f7d\u5747\u8861":{"id":"study/think/\u67b6\u6784/\u8d1f\u8f7d\u5747\u8861","title":"\u8d1f\u8f7d\u5747\u8861","description":"DNS\u8d1f\u8f7d","sidebar":"studySidebar"},"study/think/\u67b6\u6784/\u9ad8\u6027\u80fd\u67b6\u6784\u6a21\u5f0f":{"id":"study/think/\u67b6\u6784/\u9ad8\u6027\u80fd\u67b6\u6784\u6a21\u5f0f","title":"\u9ad8\u6027\u80fd\u67b6\u6784\u6a21\u5f0f","description":"\u867d\u7136\u8fd1\u5341\u5e74\u6765\u5404\u79cd\u5b58\u50a8\u6280\u672f\u98de\u901f\u53d1\u5c55\uff0c\u4f46\u5173\u7cfb\u6570\u636e\u5e93\u7531\u4e8e\u5176 ACID \u7684\u7279\u6027\u548c\u529f\u80fd\u5f3a\u5927\u7684 SQL \u67e5\u8be2\uff0c\u76ee\u524d\u8fd8\u662f\u5404\u79cd\u4e1a\u52a1\u7cfb\u7edf\u4e2d\u5173\u952e\u548c\u6838\u5fc3\u7684\u5b58\u50a8\u7cfb\u7edf\uff0c\u5f88\u591a\u573a\u666f\u4e0b\u9ad8\u6027\u80fd\u7684\u8bbe\u8ba1\u6700\u6838\u5fc3\u7684\u90e8\u5206\u5c31\u662f\u5173\u7cfb\u6570\u636e\u5e93\u7684\u8bbe\u8ba1\u3002","sidebar":"studySidebar"},"study/think/\u6982\u5ff5\u6a21\u578b/Actor Model":{"id":"study/think/\u6982\u5ff5\u6a21\u578b/Actor Model","title":"Actor Model","description":"Actor\u6a21\u578b\u662f\u4e00\u4e2a\u6982\u5ff5\u6a21\u578b\uff0c\u7528\u4e8e\u5904\u7406\u5e76\u53d1\u8ba1\u7b97\u3002\u5b83\u5b9a\u4e49\u4e86\u4e00\u7cfb\u5217\u7cfb\u7edf\u7ec4\u4ef6\u5e94\u8be5\u5982\u4f55\u52a8\u4f5c\u548c\u4ea4\u4e92\u7684\u901a\u7528\u89c4\u5219\uff0c\u6700\u8457\u540d\u7684\u4f7f\u7528\u8fd9\u5957\u89c4\u5219\u7684\u7f16\u7a0b\u8bed\u8a00\u662fErlang\u3002","sidebar":"studySidebar"},"study/think/\u6982\u5ff5\u6a21\u578b/Proactor":{"id":"study/think/\u6982\u5ff5\u6a21\u578b/Proactor","title":"Proactor","description":"Reactor \u662f\u975e\u963b\u585e\u540c\u6b65\u7f51\u7edc\u6a21\u578b\uff0c\u56e0\u4e3a\u771f\u6b63\u7684 read \u548c send \u64cd\u4f5c\u90fd\u9700\u8981\u7528\u6237\u8fdb\u7a0b\u540c\u6b65\u64cd\u4f5c\u3002\u8fd9\u91cc\u7684\u201c\u540c\u6b65\u201d\u6307\u7528\u6237\u8fdb\u7a0b\u5728\u6267\u884c read \u548c send \u8fd9\u7c7b I/O \u64cd\u4f5c\u7684\u65f6\u5019\u662f\u540c\u6b65\u7684\uff0c\u5982\u679c\u628a I/O \u64cd\u4f5c\u6539\u4e3a\u5f02\u6b65\u5c31\u80fd\u591f\u8fdb\u4e00\u6b65\u63d0\u5347\u6027\u80fd\uff0c\u8fd9\u5c31\u662f\u5f02\u6b65\u7f51\u7edc\u6a21\u578b Proactor\u3002","sidebar":"studySidebar"},"study/think/\u6982\u5ff5\u6a21\u578b/Reactor\u6a21\u5f0f\u53cd\u5e94\u5806\u6a21\u5f0f":{"id":"study/think/\u6982\u5ff5\u6a21\u578b/Reactor\u6a21\u5f0f\u53cd\u5e94\u5806\u6a21\u5f0f","title":"Reactor\u6a21\u5f0f\u53cd\u5e94\u5806\u6a21\u5f0f","description":"5\u79cdI/O\u6a21\u578b\u6bd4\u8f83","sidebar":"studySidebar"},"study/think/\u7f13\u5b58/\u5206\u5e03\u5f0f\u7f13\u5b58":{"id":"study/think/\u7f13\u5b58/\u5206\u5e03\u5f0f\u7f13\u5b58","title":"\u5206\u5e03\u5f0f\u7f13\u5b58","description":"\u7f13\u5b58\u4f5c\u4e3a\u78c1\u76d8\u4ee5\u5916\u7684\u4e00\u79cd\u5b58\u50a8\u6570\u636e\u7684\u65b9\u5f0f\uff0c\u5b83\u6709\u7740\u6bd4\u78c1\u76d8\u66f4\u5feb\u7684\u5b58\u53d6\u6548\u7387\uff0c\u56e0\u6b64\uff0c\u53ef\u4ee5\u6709\u6548\u63d0\u9ad8\u7cfb\u7edf\u7684\u6027\u80fd\u3002\u5728\u5355\u4f53\u7cfb\u7edf\u4e2d\uff0c\u4e00\u822c\u4f1a\u7528\u5230\u672c\u5730\u7f13\u5b58\u3002\u4f46\u5728\u5206\u5e03\u5f0f\u7cfb\u7edf\u4e2d\uff0c\u672c\u5730\u7f13\u5b58\u5c31\u663e\u5f97\u4e0d\u591f\u7528\u4e86\uff0c\u8fd9\u65f6\u5f80\u5f80\u8981\u7528\u5230\u5206\u5e03\u5f0f\u7f13\u5b58\u3002","sidebar":"studySidebar"},"study/think/\u7f13\u5b58/\u7f13\u5b58":{"id":"study/think/\u7f13\u5b58/\u7f13\u5b58","title":"\u7f13\u5b58","description":"| | Ehcache | Redis |","sidebar":"studySidebar"},"study/think/\u8bbe\u8ba1\u6a21\u5f0f":{"id":"study/think/\u8bbe\u8ba1\u6a21\u5f0f","title":"\u8bbe\u8ba1\u6a21\u5f0f","description":"\u516d\u5927\u539f\u5219","sidebar":"studySidebar"},"study/think/\u8c08\u5de5\u4f5c\u5fc3\u5f97":{"id":"study/think/\u8c08\u5de5\u4f5c\u5fc3\u5f97","title":"\u8c08\u5de5\u4f5c\u5fc3\u5f97","description":"\u5236\u5b9a\u539f\u5219\uff1a\u624b\u4e2d\u65e0\u5200\uff0c\u4f46\u4f60\u7684\u5fc3\u4e2d\u8981\u6709\u5200","sidebar":"studySidebar"},"study/think/\u9650\u6d41":{"id":"study/think/\u9650\u6d41","title":"\u9650\u6d41","description":"\u524d\u8a00","sidebar":"studySidebar"},"study/think/\u9886\u57df\u9a71\u52a8\u8bbe\u8ba1DDD":{"id":"study/think/\u9886\u57df\u9a71\u52a8\u8bbe\u8ba1DDD","title":"\u9886\u57df\u9a71\u52a8\u8bbe\u8ba1DDD","description":"\u4ec0\u4e48\u662fDDD","sidebar":"studySidebar"},"xuanxing/back/index":{"id":"xuanxing/back/index","title":"\u6982\u8ff0","description":"\u4e3b\u8981\u4f7f\u7528 Java\uff0c\u4e2d\u95f4\u4ef6\u53ef\u96c6\u6210\u6216\u72ec\u7acb\u90e8\u7f72\u3002","sidebar":"xuanxingSidebar"},"xuanxing/devops/index":{"id":"xuanxing/devops/index","title":"\u6982\u8ff0","description":"\u4e00\u822c\u9700\u8981\u5305\u62ec\u5982\u4e0b\u5185\u5bb9\uff1a","sidebar":"xuanxingSidebar"},"xuanxing/fe/index":{"id":"xuanxing/fe/index","title":"\u6982\u8ff0","description":"\u524d\u7aef\u5927\u6982\u5305\u542b\u4ee5\u4e0b\u51e0\u4e2a\u65b9\u9762\uff1a","sidebar":"xuanxingSidebar"},"xuanxing/fe/\u5b98\u7f51":{"id":"xuanxing/fe/\u5b98\u7f51","title":"\u5b98\u7f51","description":"\u5b98\u7f51\u6bd4\u8f83\u504f\u7eaf\u5c55\u793a\uff0c\u5bf9SEO\u6709\u8981\u6c42\uff0c\u5bf9CMS\u6709\u8981\u6c42\uff0c\u5bf9\u90e8\u5206\u8fd0\u8425\u6709\u9700\u6c42\uff1b","sidebar":"xuanxingSidebar"},"xuanxing/fe/\u7528\u6237\u7aef\u7ba1\u7406\u7aef":{"id":"xuanxing/fe/\u7528\u6237\u7aef\u7ba1\u7406\u7aef","title":"\u7528\u6237\u7aef+\u7ba1\u7406\u7aef","description":"\u5728\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u4e0a\uff0c\u7528\u6237\u7aef\u548c\u7ba1\u7406\u7aef\u90fd\u662f\u504f\u4e2d\u540e\u53f0\u7684\u7ba1\u7406\u7cfb\u7edf\uff0c\u6240\u4ee5\u4ed6\u4eec\u4e24\u4e2a\u524d\u7aef\u7684\u6280\u672f\u9009\u578b\u4e0a\u5e94\u8be5\u662f\u7edf\u4e00\u7684\uff1b","sidebar":"xuanxingSidebar"},"xuanxing/fe/\u79fb\u52a8\u7aef":{"id":"xuanxing/fe/\u79fb\u52a8\u7aef","title":"\u79fb\u52a8\u7aef","description":"\u5728\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u4e0a\uff0c\u79fb\u52a8\u7aef\u65b9\u9762\uff0c\u9996\u9009\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\uff0c\u5982\u679c\u6709\u5916\u8d38\u9700\u6c42\uff0c\u53ef\u4ee5\u589e\u52a0 APP \u548c Mobile WEB\u3002","sidebar":"xuanxingSidebar"},"xuanxing/fe/\u7ec4\u6001+\u5927\u5c4f\u7f16\u8f91\u5668":{"id":"xuanxing/fe/\u7ec4\u6001+\u5927\u5c4f\u7f16\u8f91\u5668","title":"\u7ec4\u6001\u7f16\u8f91\u5668/\u5927\u5c4f\u7f16\u8f91\u5668","description":"\u5728\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u4e0a\uff0c\u7ec4\u6001\u7f16\u8f91\u5668\u548c\u5927\u5c4f\u7f16\u8f91\u5668\u90fd\u662f\u5c5e\u4e8e\u53ef\u89c6\u5316\u7f16\u8f91\u5668\u7684\u8303\u7574\u3002","sidebar":"xuanxingSidebar"},"xuanxing/index":{"id":"xuanxing/index","title":"\u7efc\u8ff0","description":"\u7efc\u5408\u8003\u8651","sidebar":"xuanxingSidebar"},"xuanxing/thingsboard/index":{"id":"xuanxing/thingsboard/index","title":"\u7efc\u8ff0","description":"thingsboard \u5e94\u8be5\u7b97\u662f\u9876\u7ea7\u7684\u5f00\u6e90\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u4e86\u3002\u4f46\u662f\uff0c\u7ecf\u6211\u7814\u7a76\uff0c\u4e0d\u662f\u5f88\u9002\u5408\u56fd\u5185\u7528\u6237\u3002\u4f46\u662f\u5374\u6709\u5f88\u591a\u5b66\u4e60\u548c\u501f\u9274\u7684\u5730\u65b9\uff0c\u4f8b\u5982\u89c4\u5219\u5f15\u64ce\u3002","sidebar":"xuanxingSidebar"},"xuanxing/thingsboard/\u5982\u4f55\u4f7f\u7528":{"id":"xuanxing/thingsboard/\u5982\u4f55\u4f7f\u7528","title":"\u5982\u4f55\u4f7f\u7528","description":"\u4e0a\u884c\u6d88\u606f","sidebar":"xuanxingSidebar"},"xuanxing/thingsboard/\u6e90\u7801\u7ed3\u6784":{"id":"xuanxing/thingsboard/\u6e90\u7801\u7ed3\u6784","title":"\u6e90\u7801\u7ed3\u6784","description":"swagger","sidebar":"xuanxingSidebar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/94529d15.4ca1b589.js b/assets/js/94529d15.0133ad38.js similarity index 98% rename from assets/js/94529d15.4ca1b589.js rename to assets/js/94529d15.0133ad38.js index d93d6ab54..149b6abf1 100644 --- a/assets/js/94529d15.4ca1b589.js +++ b/assets/js/94529d15.0133ad38.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2996],{5680:(e,r,t)=>{t.d(r,{xA:()=>u,yg:()=>f});var n=t(6540);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function a(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function c(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var p=n.createContext({}),l=function(e){var r=n.useContext(p),t=r;return e&&(t="function"==typeof e?e(r):c(c({},r),e)),t},u=function(e){var r=l(e.components);return n.createElement(p.Provider,{value:r},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},y=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),s=l(t),y=o,f=s["".concat(p,".").concat(y)]||s[y]||d[y]||a;return t?n.createElement(f,c(c({ref:r},u),{},{components:t})):n.createElement(f,c({ref:r},u))}));function f(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var a=t.length,c=new Array(a);c[0]=y;var i={};for(var p in r)hasOwnProperty.call(r,p)&&(i[p]=r[p]);i.originalType=e,i[s]="string"==typeof e?e:o,c[1]=i;for(var l=2;l{t.r(r),t.d(r,{assets:()=>p,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var n=t(8168),o=(t(6540),t(5680));const a={},c="C C++ \u7f16\u7a0b\u8bed\u8a00",i={unversionedId:"study/program/C/index",id:"study/program/C/index",title:"C C++ \u7f16\u7a0b\u8bed\u8a00",description:"\u53c2\u8003",source:"@site/docs/study/program/C/index.md",sourceDirName:"study/program/C",slug:"/study/program/C/",permalink:"/docs/study/program/C/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"ABIAPI",permalink:"/docs/study/program/ABIAPI"},next:{title:"C\u8bed\u8a00\u6807\u51c6\u5e93",permalink:"/docs/study/program/C/C\u8bed\u8a00\u6807\u51c6\u5e93"}},p={},l=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],u={toc:l},s="wrapper";function d(e){let{components:r,...t}=e;return(0,o.yg)(s,(0,n.A)({},u,t,{components:r,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"c-c-\u7f16\u7a0b\u8bed\u8a00"},"C C++ \u7f16\u7a0b\u8bed\u8a00"),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://learn.microsoft.com/zh-cn/cpp/c-language/"},"Microsoft-C \u8bed\u8a00\u6587\u6863"))))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2996],{5680:(e,r,t)=>{t.d(r,{xA:()=>u,yg:()=>f});var n=t(6540);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function a(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function c(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var p=n.createContext({}),l=function(e){var r=n.useContext(p),t=r;return e&&(t="function"==typeof e?e(r):c(c({},r),e)),t},u=function(e){var r=l(e.components);return n.createElement(p.Provider,{value:r},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},y=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),s=l(t),y=o,f=s["".concat(p,".").concat(y)]||s[y]||d[y]||a;return t?n.createElement(f,c(c({ref:r},u),{},{components:t})):n.createElement(f,c({ref:r},u))}));function f(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var a=t.length,c=new Array(a);c[0]=y;var i={};for(var p in r)hasOwnProperty.call(r,p)&&(i[p]=r[p]);i.originalType=e,i[s]="string"==typeof e?e:o,c[1]=i;for(var l=2;l{t.r(r),t.d(r,{assets:()=>p,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var n=t(8168),o=(t(6540),t(5680));const a={},c="C C++ \u7f16\u7a0b\u8bed\u8a00",i={unversionedId:"study/program/C/index",id:"study/program/C/index",title:"C C++ \u7f16\u7a0b\u8bed\u8a00",description:"\u53c2\u8003",source:"@site/docs/study/program/C/index.md",sourceDirName:"study/program/C",slug:"/study/program/C/",permalink:"/docs/study/program/C/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"ABIAPI",permalink:"/docs/study/program/ABIAPI"},next:{title:"C\u8bed\u8a00\u6807\u51c6\u5e93",permalink:"/docs/study/program/C/C\u8bed\u8a00\u6807\u51c6\u5e93"}},p={},l=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],u={toc:l},s="wrapper";function d(e){let{components:r,...t}=e;return(0,o.yg)(s,(0,n.A)({},u,t,{components:r,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"c-c-\u7f16\u7a0b\u8bed\u8a00"},"C C++ \u7f16\u7a0b\u8bed\u8a00"),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://learn.microsoft.com/zh-cn/cpp/c-language/"},"Microsoft-C \u8bed\u8a00\u6587\u6863"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/947d4688.a4ae18ab.js b/assets/js/947d4688.3fbfa52a.js similarity index 98% rename from assets/js/947d4688.a4ae18ab.js rename to assets/js/947d4688.3fbfa52a.js index 412d140c2..7232847e3 100644 --- a/assets/js/947d4688.a4ae18ab.js +++ b/assets/js/947d4688.3fbfa52a.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9203],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>m});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},l="mdxType",f={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),l=p(r),d=o,m=l["".concat(s,".").concat(d)]||l[d]||f[d]||a;return r?n.createElement(m,c(c({ref:t},u),{},{components:r})):n.createElement(m,c({ref:t},u))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=d;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[l]="string"==typeof e?e:o,c[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>f,frontMatter:()=>a,metadata:()=>i,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,i={unversionedId:"study/fe/mqtt.js",id:"study/fe/mqtt.js",title:"mqtt.js",description:"\u4e0d\u8981\u4f7f\u7528 mqtt.js \u6362\u7528 precompiled-mqtt",source:"@site/docs/study/fe/mqtt.js.md",sourceDirName:"study/fe",slug:"/study/fe/mqtt.js",permalink:"/docs/study/fe/mqtt.js",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"WebGL",permalink:"/docs/study/fe/WebGL"},next:{title:"\u4e0b\u8f7d\u56fe\u7247",permalink:"/docs/study/fe/\u4e0b\u8f7d\u56fe\u7247"}},s={},p=[],u={toc:p},l="wrapper";function f(e){let{components:t,...r}=e;return(0,o.yg)(l,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:""}),(0,o.yg)("p",null,"\u4e0d\u8981\u4f7f\u7528 mqtt.js \u6362\u7528 precompiled-mqtt"))}f.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9203],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>m});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},l="mdxType",f={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),l=p(r),d=o,m=l["".concat(s,".").concat(d)]||l[d]||f[d]||a;return r?n.createElement(m,c(c({ref:t},u),{},{components:r})):n.createElement(m,c({ref:t},u))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=d;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[l]="string"==typeof e?e:o,c[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>f,frontMatter:()=>a,metadata:()=>i,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,i={unversionedId:"study/fe/mqtt.js",id:"study/fe/mqtt.js",title:"mqtt.js",description:"\u4e0d\u8981\u4f7f\u7528 mqtt.js \u6362\u7528 precompiled-mqtt",source:"@site/docs/study/fe/mqtt.js.md",sourceDirName:"study/fe",slug:"/study/fe/mqtt.js",permalink:"/docs/study/fe/mqtt.js",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"WebGL",permalink:"/docs/study/fe/WebGL"},next:{title:"\u4e0b\u8f7d\u56fe\u7247",permalink:"/docs/study/fe/\u4e0b\u8f7d\u56fe\u7247"}},s={},p=[],u={toc:p},l="wrapper";function f(e){let{components:t,...r}=e;return(0,o.yg)(l,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:""}),(0,o.yg)("p",null,"\u4e0d\u8981\u4f7f\u7528 mqtt.js \u6362\u7528 precompiled-mqtt"))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/955edfb7.0b86b94f.js b/assets/js/955edfb7.dc907cae.js similarity index 99% rename from assets/js/955edfb7.0b86b94f.js rename to assets/js/955edfb7.dc907cae.js index 2f73b0d9b..e4b62d2b4 100644 --- a/assets/js/955edfb7.0b86b94f.js +++ b/assets/js/955edfb7.dc907cae.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1056],{5680:(e,t,n)=>{n.d(t,{xA:()=>u,yg:()=>d});var r=n(6540);function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t=0||(l[n]=e[n]);return l}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}var o=r.createContext({}),c=function(e){var t=r.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},u=function(e){var t=c(e.components);return r.createElement(o.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},g=r.forwardRef((function(e,t){var n=e.components,l=e.mdxType,i=e.originalType,o=e.parentName,u=p(e,["components","mdxType","originalType","parentName"]),s=c(n),g=l,d=s["".concat(o,".").concat(g)]||s[g]||y[g]||i;return n?r.createElement(d,a(a({ref:t},u),{},{components:n})):r.createElement(d,a({ref:t},u))}));function d(e,t){var n=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var i=n.length,a=new Array(i);a[0]=g;var p={};for(var o in t)hasOwnProperty.call(t,o)&&(p[o]=t[o]);p.originalType=e,p[s]="string"==typeof e?e:l,a[1]=p;for(var c=2;c{n.r(t),n.d(t,{assets:()=>o,contentTitle:()=>a,default:()=>y,frontMatter:()=>i,metadata:()=>p,toc:()=>c});var r=n(8168),l=(n(6540),n(5680));const i={sidebar_position:2},a=void 0,p={unversionedId:"study/think/\u8bbe\u8ba1\u6a21\u5f0f",id:"study/think/\u8bbe\u8ba1\u6a21\u5f0f",title:"\u8bbe\u8ba1\u6a21\u5f0f",description:"\u516d\u5927\u539f\u5219",source:"@site/docs/study/think/\u8bbe\u8ba1\u6a21\u5f0f.md",sourceDirName:"study/think",slug:"/study/think/\u8bbe\u8ba1\u6a21\u5f0f",permalink:"/docs/study/think/\u8bbe\u8ba1\u6a21\u5f0f",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"studySidebar",previous:{title:"\u6982\u8ff0",permalink:"/docs/study/think/"},next:{title:"IT_CT_OT",permalink:"/docs/study/think/IT_CT_OT"}},o={},c=[{value:"\u516d\u5927\u539f\u5219",id:"\u516d\u5927\u539f\u5219",level:3},{value:"\u603b\u539f\u5219-\u5f00\u95ed\u539f\u5219",id:"\u603b\u539f\u5219-\u5f00\u95ed\u539f\u5219",level:4},{value:"\u5355\u4e00\u804c\u8d23\u539f\u5219",id:"\u5355\u4e00\u804c\u8d23\u539f\u5219",level:4},{value:"\u91cc\u6c0f\u66ff\u6362\u539f\u5219\uff08Liskov Substitution Principle\uff09",id:"\u91cc\u6c0f\u66ff\u6362\u539f\u5219liskov-substitution-principle",level:4},{value:"\u4f9d\u8d56\u5012\u8f6c\u539f\u5219\uff08Dependence Inversion Principle\uff09",id:"\u4f9d\u8d56\u5012\u8f6c\u539f\u5219dependence-inversion-principle",level:4},{value:"\u63a5\u53e3\u9694\u79bb\u539f\u5219\uff08Interface Segregation Principle\uff09",id:"\u63a5\u53e3\u9694\u79bb\u539f\u5219interface-segregation-principle",level:4},{value:"\u8fea\u7c73\u7279\u6cd5\u5219\uff08\u6700\u5c11\u77e5\u9053\u539f\u5219\uff09\uff08Demeter Principle\uff09",id:"\u8fea\u7c73\u7279\u6cd5\u5219\u6700\u5c11\u77e5\u9053\u539f\u5219demeter-principle",level:4},{value:"\u7ec4\u5408(\u5408\u6210)\u590d\u7528\u539f\u5219\uff08Composite Reuse Principle\uff09",id:"\u7ec4\u5408\u5408\u6210\u590d\u7528\u539f\u5219composite-reuse-principle",level:4},{value:"\u5177\u4f53\u5206\u7c7b\uff1a",id:"\u5177\u4f53\u5206\u7c7b",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],u={toc:c},s="wrapper";function y(e){let{components:t,...n}=e;return(0,l.yg)(s,(0,r.A)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,l.yg)("h3",{id:"\u516d\u5927\u539f\u5219"},"\u516d\u5927\u539f\u5219"),(0,l.yg)("h4",{id:"\u603b\u539f\u5219-\u5f00\u95ed\u539f\u5219"},"\u603b\u539f\u5219-\u5f00\u95ed\u539f\u5219"),(0,l.yg)("p",null,"\u5bf9\u6269\u5c55\u5f00\u653e\uff0c\u5bf9\u4fee\u6539\u5c01\u95ed\u3002\u5728\u7a0b\u5e8f\u9700\u8981\u8fdb\u884c\u62d3\u5c55\u7684\u65f6\u5019\uff0c\u4e0d\u80fd\u53bb\u4fee\u6539\u539f\u6709\u7684\u4ee3\u7801\uff0c\u800c\u662f\u8981\u6269\u5c55\u539f\u6709\u4ee3\u7801\uff0c\u5b9e\u73b0\u4e00\u4e2a\u70ed\u63d2\u62d4\u7684\u6548\u679c\u3002\u6240\u4ee5\u4e00\u53e5\u8bdd\u6982\u62ec\u5c31\u662f\uff1a\u4e3a\u4e86\u4f7f\u7a0b\u5e8f\u7684\u6269\u5c55\u6027\u597d\uff0c\u6613\u4e8e\u7ef4\u62a4\u548c\u5347\u7ea7\u3002"),(0,l.yg)("p",null,"\u60f3\u8981\u8fbe\u5230\u8fd9\u6837\u7684\u6548\u679c\uff0c\u6211\u4eec\u9700\u8981\u4f7f\u7528\u63a5\u53e3\u548c\u62bd\u8c61\u7c7b\u7b49\u3002"),(0,l.yg)("p",null,(0,l.yg)("strong",{parentName:"p"},"\u601d\u8003\uff1a")),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u62ff\u5230\u4e00\u4e2a\u529f\u80fd\u9700\u6c42\uff0c\u4e0d\u8981\u4e0a\u6765\u5c31\u53bb\u5b9e\u73b0\uff0c\u5e94\u8be5\u8003\u8651\u600e\u4e48\u62bd\u53d6\u63a5\u53e3\u6216\u62bd\u8c61\u7c7b\uff1b\u4f8b\u5982 API \u4e2d\u7684 ES \u64cd\u4f5c\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u4e0d\u8981\u968f\u610f\u4fee\u6539\u539f\u6709\u7cfb\u7edf\u7684\u4ee3\u7801\uff0c\u800c\u662f\u5c1d\u8bd5\u53bb\u62d3\u5c55\u6765\u907f\u514d\u98ce\u9669\uff1b\u4f8b\u5982 API \u4e2d\u7684\u65b0\u7248 MVC \u62e6\u622a\u5668\u5904\u7406\uff1b")),(0,l.yg)("h4",{id:"\u5355\u4e00\u804c\u8d23\u539f\u5219"},"\u5355\u4e00\u804c\u8d23\u539f\u5219"),(0,l.yg)("p",null,"\u4e0d\u8981\u5b58\u5728\u591a\u4e8e\u4e00\u4e2a\u5bfc\u81f4\u7c7b\u53d8\u66f4\u7684\u539f\u56e0\uff0c\u4e5f\u5c31\u662f\u8bf4\u6bcf\u4e2a\u7c7b\u5e94\u8be5\u5b9e\u73b0\u5355\u4e00\u7684\u804c\u8d23\uff0c\u5426\u5219\u5c31\u5e94\u8be5\u628a\u7c7b\u62c6\u5206\u3002"),(0,l.yg)("p",null,(0,l.yg)("strong",{parentName:"p"},"\u601d\u8003\uff1a")),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u5904\u7406\u62a5\u8b66\u7684 Service/Controller/Mapper \u7b49\u5939\u6742\u4e00\u4e9b\u4e0d\u76f8\u5e72\u7684\u529f\u80fd\uff0c\u4f8b\u5982\u5b9a\u65f6\u4efb\u52a1\u3001\u7528\u6237\u53cd\u9988\u7b49\uff1b"),(0,l.yg)("li",{parentName:"ol"},"Controller \u5939\u6742\u4e00\u4e9b\u79c1\u6709\u65b9\u6cd5\uff1b\u9700\u4e0d\u9700\u8981\u653e\u5230 Service\u3001Utils \u91cc\u9762\uff1b")),(0,l.yg)("h4",{id:""}),(0,l.yg)("h4",{id:"\u91cc\u6c0f\u66ff\u6362\u539f\u5219liskov-substitution-principle"},"\u91cc\u6c0f\u66ff\u6362\u539f\u5219\uff08Liskov Substitution Principle\uff09"),(0,l.yg)("p",null,"\u4efb\u4f55\u57fa\u7c7b\u53ef\u4ee5\u51fa\u73b0\u7684\u5730\u65b9\uff0c\u5b50\u7c7b\u4e00\u5b9a\u53ef\u4ee5\u51fa\u73b0\u3002\u91cc\u6c0f\u66ff\u6362\u539f\u5219\u662f\u7ee7\u627f\u590d\u7528\u7684\u57fa\u77f3\uff0c\u53ea\u6709\u5f53\u884d\u751f\u7c7b\u53ef\u4ee5\u66ff\u6362\u57fa\u7c7b\uff0c\u8f6f\u4ef6\u5355\u4f4d\u7684\u529f\u80fd\u4e0d\u53d7\u5230\u5f71\u54cd\u65f6\uff0c\u57fa\u7c7b\u624d\u80fd\u771f\u6b63\u88ab\u590d\u7528\uff0c\u800c\u884d\u751f\u7c7b\u4e5f\u80fd\u591f\u5728\u57fa\u7c7b\u7684\u57fa\u7840\u4e0a\u589e\u52a0\u65b0\u7684\u884c\u4e3a\u3002"),(0,l.yg)("p",null,"\u91cc\u6c0f\u4ee3\u6362\u539f\u5219\u662f\u5bf9\u201c\u5f00-\u95ed\u201d\u539f\u5219\u7684\u8865\u5145\u3002\u5b9e\u73b0\u201c\u5f00\u95ed\u201d\u539f\u5219\u7684\u5173\u952e\u6b65\u9aa4\u5c31\u662f\u62bd\u8c61\u5316\u3002\u800c\u57fa\u7c7b\u4e0e\u5b50\u7c7b\u7684\u7ee7\u627f\u5173\u7cfb\u5c31\u662f\u62bd\u8c61\u5316\u7684\u5177\u4f53\u5b9e\u73b0\uff0c\u6240\u4ee5\u91cc\u6c0f\u4ee3\u6362\u539f\u5219\u662f\u5bf9\u5b9e\u73b0\u62bd\u8c61\u5316\u7684\u5177\u4f53\u6b65\u9aa4\u7684\u89c4\u8303\u3002\u91cc\u6c0f\u66ff\u6362\u539f\u5219\u4e2d\uff0c\u5b50\u7c7b\u5bf9\u7236\u7c7b\u7684\u65b9\u6cd5\u5c3d\u91cf\u4e0d\u8981\u91cd\u5199\u548c\u91cd\u8f7d\u3002\u56e0\u4e3a\u7236\u7c7b\u4ee3\u8868\u4e86\u5b9a\u4e49\u597d\u7684\u7ed3\u6784\uff0c\u901a\u8fc7\u8fd9\u4e2a\u89c4\u8303\u7684\u63a5\u53e3\u4e0e\u5916\u754c\u4ea4\u4e92\uff0c\u5b50\u7c7b\u4e0d\u5e94\u8be5\u968f\u4fbf\u7834\u574f\u5b83\u3002"),(0,l.yg)("p",null,(0,l.yg)("strong",{parentName:"p"},"\u601d\u8003\uff1a")),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u5b9a\u4e49\u7528\u57fa\u7c7b\uff0c\u5b9e\u73b0\u7528\u5b50\u7c7b\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u7528\u63a5\u53e3\u53bb\u5b9a\u4e49\u6d41\u7a0b\u548c\u89c4\u8303\uff0c\u8fd9\u662f\u8bbe\u8ba1\u7684\u5e95\u5c42\u601d\u60f3\uff0c\u4e0d\u5e94\u8be5\u53bb\u7834\u574f\uff1b\u6ca1\u6709\u63a5\u53e3\u7684\u8bbe\u8ba1\uff0c\u662f\u6ca1\u6709\u7075\u9b42\u7684\u7f16\u7801\uff1b")),(0,l.yg)("h4",{id:"\u4f9d\u8d56\u5012\u8f6c\u539f\u5219dependence-inversion-principle"},"\u4f9d\u8d56\u5012\u8f6c\u539f\u5219\uff08Dependence Inversion Principle\uff09"),(0,l.yg)("p",null,"\u9762\u5411\u63a5\u53e3\u7f16\u7a0b\uff0c\u4f9d\u8d56\u4e8e\u62bd\u8c61\u800c\u4e0d\u4f9d\u8d56\u4e8e\u5177\u4f53\u3002\u5199\u4ee3\u7801\u65f6\u7528\u5230\u5177\u4f53\u7c7b\u65f6\uff0c\u4e0d\u4e0e\u5177\u4f53\u7c7b\u4ea4\u4e92\uff0c\u800c\u4e0e\u5177\u4f53\u7c7b\u7684\u4e0a\u5c42\u63a5\u53e3\u4ea4\u4e92\u3002"),(0,l.yg)("p",null,(0,l.yg)("strong",{parentName:"p"},"\u601d\u8003\uff1a")),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u8fd8\u662f\u9762\u5411\u63a5\u53e3\u7f16\u7a0b\uff1b")),(0,l.yg)("h4",{id:"\u63a5\u53e3\u9694\u79bb\u539f\u5219interface-segregation-principle"},"\u63a5\u53e3\u9694\u79bb\u539f\u5219\uff08Interface Segregation Principle\uff09"),(0,l.yg)("p",null,"\u6bcf\u4e2a\u63a5\u53e3\u4e2d\u4e0d\u5b58\u5728\u5b50\u7c7b\u7528\u4e0d\u5230\u5374\u5fc5\u987b\u5b9e\u73b0\u7684\u65b9\u6cd5\uff0c\u5982\u679c\u4e0d\u7136\uff0c\u5c31\u8981\u5c06\u63a5\u53e3\u62c6\u5206\u3002\u4f7f\u7528\u591a\u4e2a\u9694\u79bb\u7684\u63a5\u53e3\uff0c\u6bd4\u4f7f\u7528\u5355\u4e2a\u63a5\u53e3\uff08\u591a\u4e2a\u63a5\u53e3\u65b9\u6cd5\u96c6\u5408\u5230\u4e00\u4e2a\u7684\u63a5\u53e3\uff09\u8981\u597d\u3002"),(0,l.yg)("p",null,(0,l.yg)("strong",{parentName:"p"},"\u601d\u8003\uff1a")),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u63a5\u53e3\u62c6\u5206\uff0c\u548c\u5355\u4e00\u804c\u8d23\u539f\u5219\u4e92\u76f8\u6620\u5c04\uff1b")),(0,l.yg)("h4",{id:"\u8fea\u7c73\u7279\u6cd5\u5219\u6700\u5c11\u77e5\u9053\u539f\u5219demeter-principle"},"\u8fea\u7c73\u7279\u6cd5\u5219\uff08\u6700\u5c11\u77e5\u9053\u539f\u5219\uff09\uff08Demeter Principle\uff09"),(0,l.yg)("p",null,"\u4e00\u4e2a\u7c7b\u5bf9\u81ea\u5df1\u4f9d\u8d56\u7684\u7c7b\u77e5\u9053\u7684\u8d8a\u5c11\u8d8a\u597d\u3002\u65e0\u8bba\u88ab\u4f9d\u8d56\u7684\u7c7b\u591a\u4e48\u590d\u6742\uff0c\u90fd\u5e94\u8be5\u5c06\u903b\u8f91\u5c01\u88c5\u5728\u65b9\u6cd5\u7684\u5185\u90e8\uff0c\u901a\u8fc7 public \u65b9\u6cd5\u63d0\u4f9b\u7ed9\u5916\u90e8\u3002\u8fd9\u6837\u5f53\u88ab\u4f9d\u8d56\u7684\u7c7b\u53d8\u5316\u65f6\uff0c\u624d\u80fd\u6700\u5c0f\u7684\u5f71\u54cd\u8be5\u7c7b\u3002"),(0,l.yg)("p",null,"\u6700\u5c11\u77e5\u9053\u539f\u5219\u7684\u53e6\u4e00\u4e2a\u8868\u8fbe\u65b9\u5f0f\u662f\uff1a\u53ea\u4e0e\u76f4\u63a5\u7684\u670b\u53cb\u901a\u4fe1\u3002\u7c7b\u4e4b\u95f4\u53ea\u8981\u6709\u8026\u5408\u5173\u7cfb\uff0c\u5c31\u53eb\u670b\u53cb\u5173\u7cfb\u3002\u8026\u5408\u5206\u4e3a\u4f9d\u8d56\u3001\u5173\u8054\u3001\u805a\u5408\u3001\u7ec4\u5408\u7b49\u3002\u6211\u4eec\u79f0\u51fa\u73b0\u4e3a\u6210\u5458\u53d8\u91cf\u3001\u65b9\u6cd5\u53c2\u6570\u3001\u65b9\u6cd5\u8fd4\u56de\u503c\u4e2d\u7684\u7c7b\u4e3a\u76f4\u63a5\u670b\u53cb\u3002\u5c40\u90e8\u53d8\u91cf\u3001\u4e34\u65f6\u53d8\u91cf\u5219\u4e0d\u662f\u76f4\u63a5\u7684\u670b\u53cb\u3002\u6211\u4eec\u8981\u6c42\u964c\u751f\u7684\u7c7b\u4e0d\u8981\u4f5c\u4e3a\u5c40\u90e8\u53d8\u91cf\u51fa\u73b0\u5728\u7c7b\u4e2d\u3002"),(0,l.yg)("p",null,(0,l.yg)("strong",{parentName:"p"},"\u601d\u8003\uff1a")),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u89e3\u8026\u548c\u6a21\u5757\u5316\uff1b")),(0,l.yg)("h4",{id:"\u7ec4\u5408\u5408\u6210\u590d\u7528\u539f\u5219composite-reuse-principle"},"\u7ec4\u5408(\u5408\u6210)\u590d\u7528\u539f\u5219\uff08Composite Reuse Principle\uff09"),(0,l.yg)("p",null,"\u5c3d\u91cf\u9996\u5148\u4f7f\u7528\u7ec4\u5408/\u805a\u5408\u7684\u65b9\u5f0f\uff0c\u800c\u4e0d\u662f\u4f7f\u7528\u7ee7\u627f\u3002"),(0,l.yg)("p",null,(0,l.yg)("strong",{parentName:"p"},"\u601d\u8003\uff1a")),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u4ec0\u4e48\u662f\u5173\u8054\u3001\u805a\u5408\u3001\u7ec4\u5408\uff1b",(0,l.yg)("a",{parentName:"li",href:"https://www.php.cn/java-article-413814.html"},"\u5173\u8054\u3001\u7ec4\u5408\u3001\u805a\u5408")),(0,l.yg)("li",{parentName:"ol"},"\u5982\u679c\u8981\u62d3\u5c55\uff0c\u9996\u5148\u60f3\u5230\u662f\u805a\u5408\u6216\u7ec4\u5408\uff0c\u800c\u4e0d\u5e94\u8be5\u662f\u7ee7\u627f\uff0c\u7ee7\u627f\u592a\u91cd\u4e86\u3002")),(0,l.yg)("h3",{id:"\u5177\u4f53\u5206\u7c7b"},"\u5177\u4f53\u5206\u7c7b\uff1a"),(0,l.yg)("p",null,"\u521b\u5efa\u578b\u6a21\u5f0f\uff0c\u5171\u4e94\u79cd\uff1a\u5de5\u5382\u65b9\u6cd5\u6a21\u5f0f\u3001\u62bd\u8c61\u5de5\u5382\u6a21\u5f0f\u3001\u5355\u4f8b\u6a21\u5f0f\u3001\u5efa\u9020\u8005\u6a21\u5f0f\u3001\u539f\u578b\u6a21\u5f0f"),(0,l.yg)("p",null,"\u7ed3\u6784\u578b\u6a21\u5f0f\uff0c\u5171\u4e03\u79cd\uff1a\u9002\u914d\u5668\u6a21\u5f0f\u3001\u88c5\u9970\u8005\u6a21\u5f0f\u3001\u4ee3\u7406\u6a21\u5f0f\u3001\u5916\u89c2\u6a21\u5f0f\u3001\u6865\u63a5\u6a21\u5f0f\u3001\u7ec4\u5408\u6a21\u5f0f\u3001\u4eab\u5143\u6a21\u5f0f\u3002"),(0,l.yg)("p",null,"\u884c\u4e3a\u578b\u6a21\u5f0f\uff0c\u5171\u5341\u4e00\u79cd\uff1a\u7b56\u7565\u6a21\u5f0f\u3001\u6a21\u677f\u65b9\u6cd5\u6a21\u5f0f\u3001\u89c2\u5bdf\u8005\u6a21\u5f0f\u3001\u8fed\u4ee3\u5b50\u6a21\u5f0f\u3001\u8d23\u4efb\u94fe\u6a21\u5f0f\u3001\u547d\u4ee4\u6a21\u5f0f\u3001\u5907\u5fd8\u5f55\u6a21\u5f0f\u3001\u72b6\u6001\u6a21\u5f0f\u3001\u8bbf\u95ee\u8005\u6a21\u5f0f\u3001\u4e2d\u4ecb\u8005\u6a21\u5f0f\u3001\u89e3\u91ca\u5668\u6a21\u5f0f\u3002"),(0,l.yg)("p",null,"\u5176\u5b9e\u8fd8\u6709\u4e24\u7c7b\uff1a\u5e76\u53d1\u578b\u6a21\u5f0f\u548c\u7ebf\u7a0b\u6c60\u6a21\u5f0f\u3002"),(0,l.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://www.jianshu.com/p/1974a5837040"},"\u804a\u4e00\u804a\u9762\u5411\u5bf9\u8c61\u7684\u4e09\u5927\u7279\u6027")),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://blog.csdn.net/jason0539/article/details/44956775"},"23 \u79cd\u8bbe\u8ba1\u6a21\u5f0f\u6c47\u603b\u6574\u7406")),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://mp.weixin.qq.com/s?__biz=Mzg5MDczNDI0Nw==&mid=2247492497&idx=1&sn=31882a4693f0e09a419073b58ddf431e&chksm=cfdab059f8ad394f8fcafed1d96825a7393e491f4d287a0e0ab81e42e974ea87f3f54d973864&scene=21#wechat_redirect"},"\u4e24\u4e07\u5b57\u76d8\u70b9\u90a3\u4e9b\u88ab\u73a9\u70c2\u4e86\u7684\u8bbe\u8ba1\u6a21\u5f0f")),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://refactoringguru.cn/design-patterns"},"\u56fe\u8bf4-\u8bbe\u8ba1\u6a21\u5f0f")),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://design-patterns.readthedocs.io/zh_CN/latest/index.html"},"\u8bbe\u8ba1\u6a21\u5f0f\u4e4b\u7f8e"))))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1056],{5680:(e,t,n)=>{n.d(t,{xA:()=>u,yg:()=>d});var r=n(6540);function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t=0||(l[n]=e[n]);return l}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}var o=r.createContext({}),c=function(e){var t=r.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},u=function(e){var t=c(e.components);return r.createElement(o.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},g=r.forwardRef((function(e,t){var n=e.components,l=e.mdxType,i=e.originalType,o=e.parentName,u=p(e,["components","mdxType","originalType","parentName"]),s=c(n),g=l,d=s["".concat(o,".").concat(g)]||s[g]||y[g]||i;return n?r.createElement(d,a(a({ref:t},u),{},{components:n})):r.createElement(d,a({ref:t},u))}));function d(e,t){var n=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var i=n.length,a=new Array(i);a[0]=g;var p={};for(var o in t)hasOwnProperty.call(t,o)&&(p[o]=t[o]);p.originalType=e,p[s]="string"==typeof e?e:l,a[1]=p;for(var c=2;c{n.r(t),n.d(t,{assets:()=>o,contentTitle:()=>a,default:()=>y,frontMatter:()=>i,metadata:()=>p,toc:()=>c});var r=n(8168),l=(n(6540),n(5680));const i={sidebar_position:2},a=void 0,p={unversionedId:"study/think/\u8bbe\u8ba1\u6a21\u5f0f",id:"study/think/\u8bbe\u8ba1\u6a21\u5f0f",title:"\u8bbe\u8ba1\u6a21\u5f0f",description:"\u516d\u5927\u539f\u5219",source:"@site/docs/study/think/\u8bbe\u8ba1\u6a21\u5f0f.md",sourceDirName:"study/think",slug:"/study/think/\u8bbe\u8ba1\u6a21\u5f0f",permalink:"/docs/study/think/\u8bbe\u8ba1\u6a21\u5f0f",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"studySidebar",previous:{title:"\u6982\u8ff0",permalink:"/docs/study/think/"},next:{title:"IT_CT_OT",permalink:"/docs/study/think/IT_CT_OT"}},o={},c=[{value:"\u516d\u5927\u539f\u5219",id:"\u516d\u5927\u539f\u5219",level:3},{value:"\u603b\u539f\u5219-\u5f00\u95ed\u539f\u5219",id:"\u603b\u539f\u5219-\u5f00\u95ed\u539f\u5219",level:4},{value:"\u5355\u4e00\u804c\u8d23\u539f\u5219",id:"\u5355\u4e00\u804c\u8d23\u539f\u5219",level:4},{value:"\u91cc\u6c0f\u66ff\u6362\u539f\u5219\uff08Liskov Substitution Principle\uff09",id:"\u91cc\u6c0f\u66ff\u6362\u539f\u5219liskov-substitution-principle",level:4},{value:"\u4f9d\u8d56\u5012\u8f6c\u539f\u5219\uff08Dependence Inversion Principle\uff09",id:"\u4f9d\u8d56\u5012\u8f6c\u539f\u5219dependence-inversion-principle",level:4},{value:"\u63a5\u53e3\u9694\u79bb\u539f\u5219\uff08Interface Segregation Principle\uff09",id:"\u63a5\u53e3\u9694\u79bb\u539f\u5219interface-segregation-principle",level:4},{value:"\u8fea\u7c73\u7279\u6cd5\u5219\uff08\u6700\u5c11\u77e5\u9053\u539f\u5219\uff09\uff08Demeter Principle\uff09",id:"\u8fea\u7c73\u7279\u6cd5\u5219\u6700\u5c11\u77e5\u9053\u539f\u5219demeter-principle",level:4},{value:"\u7ec4\u5408(\u5408\u6210)\u590d\u7528\u539f\u5219\uff08Composite Reuse Principle\uff09",id:"\u7ec4\u5408\u5408\u6210\u590d\u7528\u539f\u5219composite-reuse-principle",level:4},{value:"\u5177\u4f53\u5206\u7c7b\uff1a",id:"\u5177\u4f53\u5206\u7c7b",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],u={toc:c},s="wrapper";function y(e){let{components:t,...n}=e;return(0,l.yg)(s,(0,r.A)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,l.yg)("h3",{id:"\u516d\u5927\u539f\u5219"},"\u516d\u5927\u539f\u5219"),(0,l.yg)("h4",{id:"\u603b\u539f\u5219-\u5f00\u95ed\u539f\u5219"},"\u603b\u539f\u5219-\u5f00\u95ed\u539f\u5219"),(0,l.yg)("p",null,"\u5bf9\u6269\u5c55\u5f00\u653e\uff0c\u5bf9\u4fee\u6539\u5c01\u95ed\u3002\u5728\u7a0b\u5e8f\u9700\u8981\u8fdb\u884c\u62d3\u5c55\u7684\u65f6\u5019\uff0c\u4e0d\u80fd\u53bb\u4fee\u6539\u539f\u6709\u7684\u4ee3\u7801\uff0c\u800c\u662f\u8981\u6269\u5c55\u539f\u6709\u4ee3\u7801\uff0c\u5b9e\u73b0\u4e00\u4e2a\u70ed\u63d2\u62d4\u7684\u6548\u679c\u3002\u6240\u4ee5\u4e00\u53e5\u8bdd\u6982\u62ec\u5c31\u662f\uff1a\u4e3a\u4e86\u4f7f\u7a0b\u5e8f\u7684\u6269\u5c55\u6027\u597d\uff0c\u6613\u4e8e\u7ef4\u62a4\u548c\u5347\u7ea7\u3002"),(0,l.yg)("p",null,"\u60f3\u8981\u8fbe\u5230\u8fd9\u6837\u7684\u6548\u679c\uff0c\u6211\u4eec\u9700\u8981\u4f7f\u7528\u63a5\u53e3\u548c\u62bd\u8c61\u7c7b\u7b49\u3002"),(0,l.yg)("p",null,(0,l.yg)("strong",{parentName:"p"},"\u601d\u8003\uff1a")),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u62ff\u5230\u4e00\u4e2a\u529f\u80fd\u9700\u6c42\uff0c\u4e0d\u8981\u4e0a\u6765\u5c31\u53bb\u5b9e\u73b0\uff0c\u5e94\u8be5\u8003\u8651\u600e\u4e48\u62bd\u53d6\u63a5\u53e3\u6216\u62bd\u8c61\u7c7b\uff1b\u4f8b\u5982 API \u4e2d\u7684 ES \u64cd\u4f5c\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u4e0d\u8981\u968f\u610f\u4fee\u6539\u539f\u6709\u7cfb\u7edf\u7684\u4ee3\u7801\uff0c\u800c\u662f\u5c1d\u8bd5\u53bb\u62d3\u5c55\u6765\u907f\u514d\u98ce\u9669\uff1b\u4f8b\u5982 API \u4e2d\u7684\u65b0\u7248 MVC \u62e6\u622a\u5668\u5904\u7406\uff1b")),(0,l.yg)("h4",{id:"\u5355\u4e00\u804c\u8d23\u539f\u5219"},"\u5355\u4e00\u804c\u8d23\u539f\u5219"),(0,l.yg)("p",null,"\u4e0d\u8981\u5b58\u5728\u591a\u4e8e\u4e00\u4e2a\u5bfc\u81f4\u7c7b\u53d8\u66f4\u7684\u539f\u56e0\uff0c\u4e5f\u5c31\u662f\u8bf4\u6bcf\u4e2a\u7c7b\u5e94\u8be5\u5b9e\u73b0\u5355\u4e00\u7684\u804c\u8d23\uff0c\u5426\u5219\u5c31\u5e94\u8be5\u628a\u7c7b\u62c6\u5206\u3002"),(0,l.yg)("p",null,(0,l.yg)("strong",{parentName:"p"},"\u601d\u8003\uff1a")),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u5904\u7406\u62a5\u8b66\u7684 Service/Controller/Mapper \u7b49\u5939\u6742\u4e00\u4e9b\u4e0d\u76f8\u5e72\u7684\u529f\u80fd\uff0c\u4f8b\u5982\u5b9a\u65f6\u4efb\u52a1\u3001\u7528\u6237\u53cd\u9988\u7b49\uff1b"),(0,l.yg)("li",{parentName:"ol"},"Controller \u5939\u6742\u4e00\u4e9b\u79c1\u6709\u65b9\u6cd5\uff1b\u9700\u4e0d\u9700\u8981\u653e\u5230 Service\u3001Utils \u91cc\u9762\uff1b")),(0,l.yg)("h4",{id:""}),(0,l.yg)("h4",{id:"\u91cc\u6c0f\u66ff\u6362\u539f\u5219liskov-substitution-principle"},"\u91cc\u6c0f\u66ff\u6362\u539f\u5219\uff08Liskov Substitution Principle\uff09"),(0,l.yg)("p",null,"\u4efb\u4f55\u57fa\u7c7b\u53ef\u4ee5\u51fa\u73b0\u7684\u5730\u65b9\uff0c\u5b50\u7c7b\u4e00\u5b9a\u53ef\u4ee5\u51fa\u73b0\u3002\u91cc\u6c0f\u66ff\u6362\u539f\u5219\u662f\u7ee7\u627f\u590d\u7528\u7684\u57fa\u77f3\uff0c\u53ea\u6709\u5f53\u884d\u751f\u7c7b\u53ef\u4ee5\u66ff\u6362\u57fa\u7c7b\uff0c\u8f6f\u4ef6\u5355\u4f4d\u7684\u529f\u80fd\u4e0d\u53d7\u5230\u5f71\u54cd\u65f6\uff0c\u57fa\u7c7b\u624d\u80fd\u771f\u6b63\u88ab\u590d\u7528\uff0c\u800c\u884d\u751f\u7c7b\u4e5f\u80fd\u591f\u5728\u57fa\u7c7b\u7684\u57fa\u7840\u4e0a\u589e\u52a0\u65b0\u7684\u884c\u4e3a\u3002"),(0,l.yg)("p",null,"\u91cc\u6c0f\u4ee3\u6362\u539f\u5219\u662f\u5bf9\u201c\u5f00-\u95ed\u201d\u539f\u5219\u7684\u8865\u5145\u3002\u5b9e\u73b0\u201c\u5f00\u95ed\u201d\u539f\u5219\u7684\u5173\u952e\u6b65\u9aa4\u5c31\u662f\u62bd\u8c61\u5316\u3002\u800c\u57fa\u7c7b\u4e0e\u5b50\u7c7b\u7684\u7ee7\u627f\u5173\u7cfb\u5c31\u662f\u62bd\u8c61\u5316\u7684\u5177\u4f53\u5b9e\u73b0\uff0c\u6240\u4ee5\u91cc\u6c0f\u4ee3\u6362\u539f\u5219\u662f\u5bf9\u5b9e\u73b0\u62bd\u8c61\u5316\u7684\u5177\u4f53\u6b65\u9aa4\u7684\u89c4\u8303\u3002\u91cc\u6c0f\u66ff\u6362\u539f\u5219\u4e2d\uff0c\u5b50\u7c7b\u5bf9\u7236\u7c7b\u7684\u65b9\u6cd5\u5c3d\u91cf\u4e0d\u8981\u91cd\u5199\u548c\u91cd\u8f7d\u3002\u56e0\u4e3a\u7236\u7c7b\u4ee3\u8868\u4e86\u5b9a\u4e49\u597d\u7684\u7ed3\u6784\uff0c\u901a\u8fc7\u8fd9\u4e2a\u89c4\u8303\u7684\u63a5\u53e3\u4e0e\u5916\u754c\u4ea4\u4e92\uff0c\u5b50\u7c7b\u4e0d\u5e94\u8be5\u968f\u4fbf\u7834\u574f\u5b83\u3002"),(0,l.yg)("p",null,(0,l.yg)("strong",{parentName:"p"},"\u601d\u8003\uff1a")),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u5b9a\u4e49\u7528\u57fa\u7c7b\uff0c\u5b9e\u73b0\u7528\u5b50\u7c7b\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u7528\u63a5\u53e3\u53bb\u5b9a\u4e49\u6d41\u7a0b\u548c\u89c4\u8303\uff0c\u8fd9\u662f\u8bbe\u8ba1\u7684\u5e95\u5c42\u601d\u60f3\uff0c\u4e0d\u5e94\u8be5\u53bb\u7834\u574f\uff1b\u6ca1\u6709\u63a5\u53e3\u7684\u8bbe\u8ba1\uff0c\u662f\u6ca1\u6709\u7075\u9b42\u7684\u7f16\u7801\uff1b")),(0,l.yg)("h4",{id:"\u4f9d\u8d56\u5012\u8f6c\u539f\u5219dependence-inversion-principle"},"\u4f9d\u8d56\u5012\u8f6c\u539f\u5219\uff08Dependence Inversion Principle\uff09"),(0,l.yg)("p",null,"\u9762\u5411\u63a5\u53e3\u7f16\u7a0b\uff0c\u4f9d\u8d56\u4e8e\u62bd\u8c61\u800c\u4e0d\u4f9d\u8d56\u4e8e\u5177\u4f53\u3002\u5199\u4ee3\u7801\u65f6\u7528\u5230\u5177\u4f53\u7c7b\u65f6\uff0c\u4e0d\u4e0e\u5177\u4f53\u7c7b\u4ea4\u4e92\uff0c\u800c\u4e0e\u5177\u4f53\u7c7b\u7684\u4e0a\u5c42\u63a5\u53e3\u4ea4\u4e92\u3002"),(0,l.yg)("p",null,(0,l.yg)("strong",{parentName:"p"},"\u601d\u8003\uff1a")),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u8fd8\u662f\u9762\u5411\u63a5\u53e3\u7f16\u7a0b\uff1b")),(0,l.yg)("h4",{id:"\u63a5\u53e3\u9694\u79bb\u539f\u5219interface-segregation-principle"},"\u63a5\u53e3\u9694\u79bb\u539f\u5219\uff08Interface Segregation Principle\uff09"),(0,l.yg)("p",null,"\u6bcf\u4e2a\u63a5\u53e3\u4e2d\u4e0d\u5b58\u5728\u5b50\u7c7b\u7528\u4e0d\u5230\u5374\u5fc5\u987b\u5b9e\u73b0\u7684\u65b9\u6cd5\uff0c\u5982\u679c\u4e0d\u7136\uff0c\u5c31\u8981\u5c06\u63a5\u53e3\u62c6\u5206\u3002\u4f7f\u7528\u591a\u4e2a\u9694\u79bb\u7684\u63a5\u53e3\uff0c\u6bd4\u4f7f\u7528\u5355\u4e2a\u63a5\u53e3\uff08\u591a\u4e2a\u63a5\u53e3\u65b9\u6cd5\u96c6\u5408\u5230\u4e00\u4e2a\u7684\u63a5\u53e3\uff09\u8981\u597d\u3002"),(0,l.yg)("p",null,(0,l.yg)("strong",{parentName:"p"},"\u601d\u8003\uff1a")),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u63a5\u53e3\u62c6\u5206\uff0c\u548c\u5355\u4e00\u804c\u8d23\u539f\u5219\u4e92\u76f8\u6620\u5c04\uff1b")),(0,l.yg)("h4",{id:"\u8fea\u7c73\u7279\u6cd5\u5219\u6700\u5c11\u77e5\u9053\u539f\u5219demeter-principle"},"\u8fea\u7c73\u7279\u6cd5\u5219\uff08\u6700\u5c11\u77e5\u9053\u539f\u5219\uff09\uff08Demeter Principle\uff09"),(0,l.yg)("p",null,"\u4e00\u4e2a\u7c7b\u5bf9\u81ea\u5df1\u4f9d\u8d56\u7684\u7c7b\u77e5\u9053\u7684\u8d8a\u5c11\u8d8a\u597d\u3002\u65e0\u8bba\u88ab\u4f9d\u8d56\u7684\u7c7b\u591a\u4e48\u590d\u6742\uff0c\u90fd\u5e94\u8be5\u5c06\u903b\u8f91\u5c01\u88c5\u5728\u65b9\u6cd5\u7684\u5185\u90e8\uff0c\u901a\u8fc7 public \u65b9\u6cd5\u63d0\u4f9b\u7ed9\u5916\u90e8\u3002\u8fd9\u6837\u5f53\u88ab\u4f9d\u8d56\u7684\u7c7b\u53d8\u5316\u65f6\uff0c\u624d\u80fd\u6700\u5c0f\u7684\u5f71\u54cd\u8be5\u7c7b\u3002"),(0,l.yg)("p",null,"\u6700\u5c11\u77e5\u9053\u539f\u5219\u7684\u53e6\u4e00\u4e2a\u8868\u8fbe\u65b9\u5f0f\u662f\uff1a\u53ea\u4e0e\u76f4\u63a5\u7684\u670b\u53cb\u901a\u4fe1\u3002\u7c7b\u4e4b\u95f4\u53ea\u8981\u6709\u8026\u5408\u5173\u7cfb\uff0c\u5c31\u53eb\u670b\u53cb\u5173\u7cfb\u3002\u8026\u5408\u5206\u4e3a\u4f9d\u8d56\u3001\u5173\u8054\u3001\u805a\u5408\u3001\u7ec4\u5408\u7b49\u3002\u6211\u4eec\u79f0\u51fa\u73b0\u4e3a\u6210\u5458\u53d8\u91cf\u3001\u65b9\u6cd5\u53c2\u6570\u3001\u65b9\u6cd5\u8fd4\u56de\u503c\u4e2d\u7684\u7c7b\u4e3a\u76f4\u63a5\u670b\u53cb\u3002\u5c40\u90e8\u53d8\u91cf\u3001\u4e34\u65f6\u53d8\u91cf\u5219\u4e0d\u662f\u76f4\u63a5\u7684\u670b\u53cb\u3002\u6211\u4eec\u8981\u6c42\u964c\u751f\u7684\u7c7b\u4e0d\u8981\u4f5c\u4e3a\u5c40\u90e8\u53d8\u91cf\u51fa\u73b0\u5728\u7c7b\u4e2d\u3002"),(0,l.yg)("p",null,(0,l.yg)("strong",{parentName:"p"},"\u601d\u8003\uff1a")),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u89e3\u8026\u548c\u6a21\u5757\u5316\uff1b")),(0,l.yg)("h4",{id:"\u7ec4\u5408\u5408\u6210\u590d\u7528\u539f\u5219composite-reuse-principle"},"\u7ec4\u5408(\u5408\u6210)\u590d\u7528\u539f\u5219\uff08Composite Reuse Principle\uff09"),(0,l.yg)("p",null,"\u5c3d\u91cf\u9996\u5148\u4f7f\u7528\u7ec4\u5408/\u805a\u5408\u7684\u65b9\u5f0f\uff0c\u800c\u4e0d\u662f\u4f7f\u7528\u7ee7\u627f\u3002"),(0,l.yg)("p",null,(0,l.yg)("strong",{parentName:"p"},"\u601d\u8003\uff1a")),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u4ec0\u4e48\u662f\u5173\u8054\u3001\u805a\u5408\u3001\u7ec4\u5408\uff1b",(0,l.yg)("a",{parentName:"li",href:"https://www.php.cn/java-article-413814.html"},"\u5173\u8054\u3001\u7ec4\u5408\u3001\u805a\u5408")),(0,l.yg)("li",{parentName:"ol"},"\u5982\u679c\u8981\u62d3\u5c55\uff0c\u9996\u5148\u60f3\u5230\u662f\u805a\u5408\u6216\u7ec4\u5408\uff0c\u800c\u4e0d\u5e94\u8be5\u662f\u7ee7\u627f\uff0c\u7ee7\u627f\u592a\u91cd\u4e86\u3002")),(0,l.yg)("h3",{id:"\u5177\u4f53\u5206\u7c7b"},"\u5177\u4f53\u5206\u7c7b\uff1a"),(0,l.yg)("p",null,"\u521b\u5efa\u578b\u6a21\u5f0f\uff0c\u5171\u4e94\u79cd\uff1a\u5de5\u5382\u65b9\u6cd5\u6a21\u5f0f\u3001\u62bd\u8c61\u5de5\u5382\u6a21\u5f0f\u3001\u5355\u4f8b\u6a21\u5f0f\u3001\u5efa\u9020\u8005\u6a21\u5f0f\u3001\u539f\u578b\u6a21\u5f0f"),(0,l.yg)("p",null,"\u7ed3\u6784\u578b\u6a21\u5f0f\uff0c\u5171\u4e03\u79cd\uff1a\u9002\u914d\u5668\u6a21\u5f0f\u3001\u88c5\u9970\u8005\u6a21\u5f0f\u3001\u4ee3\u7406\u6a21\u5f0f\u3001\u5916\u89c2\u6a21\u5f0f\u3001\u6865\u63a5\u6a21\u5f0f\u3001\u7ec4\u5408\u6a21\u5f0f\u3001\u4eab\u5143\u6a21\u5f0f\u3002"),(0,l.yg)("p",null,"\u884c\u4e3a\u578b\u6a21\u5f0f\uff0c\u5171\u5341\u4e00\u79cd\uff1a\u7b56\u7565\u6a21\u5f0f\u3001\u6a21\u677f\u65b9\u6cd5\u6a21\u5f0f\u3001\u89c2\u5bdf\u8005\u6a21\u5f0f\u3001\u8fed\u4ee3\u5b50\u6a21\u5f0f\u3001\u8d23\u4efb\u94fe\u6a21\u5f0f\u3001\u547d\u4ee4\u6a21\u5f0f\u3001\u5907\u5fd8\u5f55\u6a21\u5f0f\u3001\u72b6\u6001\u6a21\u5f0f\u3001\u8bbf\u95ee\u8005\u6a21\u5f0f\u3001\u4e2d\u4ecb\u8005\u6a21\u5f0f\u3001\u89e3\u91ca\u5668\u6a21\u5f0f\u3002"),(0,l.yg)("p",null,"\u5176\u5b9e\u8fd8\u6709\u4e24\u7c7b\uff1a\u5e76\u53d1\u578b\u6a21\u5f0f\u548c\u7ebf\u7a0b\u6c60\u6a21\u5f0f\u3002"),(0,l.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://www.jianshu.com/p/1974a5837040"},"\u804a\u4e00\u804a\u9762\u5411\u5bf9\u8c61\u7684\u4e09\u5927\u7279\u6027")),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://blog.csdn.net/jason0539/article/details/44956775"},"23 \u79cd\u8bbe\u8ba1\u6a21\u5f0f\u6c47\u603b\u6574\u7406")),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://mp.weixin.qq.com/s?__biz=Mzg5MDczNDI0Nw==&mid=2247492497&idx=1&sn=31882a4693f0e09a419073b58ddf431e&chksm=cfdab059f8ad394f8fcafed1d96825a7393e491f4d287a0e0ab81e42e974ea87f3f54d973864&scene=21#wechat_redirect"},"\u4e24\u4e07\u5b57\u76d8\u70b9\u90a3\u4e9b\u88ab\u73a9\u70c2\u4e86\u7684\u8bbe\u8ba1\u6a21\u5f0f")),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://refactoringguru.cn/design-patterns"},"\u56fe\u8bf4-\u8bbe\u8ba1\u6a21\u5f0f")),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://design-patterns.readthedocs.io/zh_CN/latest/index.html"},"\u8bbe\u8ba1\u6a21\u5f0f\u4e4b\u7f8e"))))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/96162fed.8df9de03.js b/assets/js/96162fed.8e6916cc.js similarity index 98% rename from assets/js/96162fed.8df9de03.js rename to assets/js/96162fed.8e6916cc.js index f8fea60ee..596af841b 100644 --- a/assets/js/96162fed.8df9de03.js +++ b/assets/js/96162fed.8e6916cc.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3428],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),l=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=l(e.components);return n.createElement(p.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},g=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),u=l(r),g=o,y=u["".concat(p,".").concat(g)]||u[g]||d[g]||a;return r?n.createElement(y,i(i({ref:t},s),{},{components:r})):n.createElement(y,i({ref:t},s))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=g;var c={};for(var p in t)hasOwnProperty.call(t,p)&&(c[p]=t[p]);c.originalType=e,c[u]="string"==typeof e?e:o,i[1]=c;for(var l=2;l{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var n=r(8168),o=(r(6540),r(5680));const a={sidebar_position:1},i=void 0,c={unversionedId:"study/back/springcloud/SpringCloud\u4e94\u5927\u7ec4\u4ef6",id:"study/back/springcloud/SpringCloud\u4e94\u5927\u7ec4\u4ef6",title:"SpringCloud\u4e94\u5927\u7ec4\u4ef6",description:"image.png",source:"@site/docs/study/back/springcloud/SpringCloud\u4e94\u5927\u7ec4\u4ef6.md",sourceDirName:"study/back/springcloud",slug:"/study/back/springcloud/SpringCloud\u4e94\u5927\u7ec4\u4ef6",permalink:"/docs/study/back/springcloud/SpringCloud\u4e94\u5927\u7ec4\u4ef6",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"Spring\u751f\u547d\u5468\u671f\u63a5\u53e3",permalink:"/docs/study/back/spring/Spring\u751f\u547d\u5468\u671f\u63a5\u53e3"},next:{title:"nacos",permalink:"/docs/study/back/springcloud/nacos"}},p={},l=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:4}],s={toc:l},u="wrapper";function d(e){let{components:t,...a}=e;return(0,o.yg)(u,(0,n.A)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,(0,o.yg)("img",{alt:"image.png",src:r(8997).A,width:"889",height:"503"})),(0,o.yg)("h4",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("a",{parentName:"li",href:"https://www.cnblogs.com/mark5/p/16179178.html"},"\u6d45\u8c08SpringCloud\u4e94\u5927\u7ec4\u4ef6"))))}d.isMDXComponent=!0},8997:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/5components-cb44cfca12b5d98ff58cba209b617c07.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3428],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),l=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=l(e.components);return n.createElement(p.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},g=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),u=l(r),g=o,y=u["".concat(p,".").concat(g)]||u[g]||d[g]||a;return r?n.createElement(y,i(i({ref:t},s),{},{components:r})):n.createElement(y,i({ref:t},s))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=g;var c={};for(var p in t)hasOwnProperty.call(t,p)&&(c[p]=t[p]);c.originalType=e,c[u]="string"==typeof e?e:o,i[1]=c;for(var l=2;l{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var n=r(8168),o=(r(6540),r(5680));const a={sidebar_position:1},i=void 0,c={unversionedId:"study/back/springcloud/SpringCloud\u4e94\u5927\u7ec4\u4ef6",id:"study/back/springcloud/SpringCloud\u4e94\u5927\u7ec4\u4ef6",title:"SpringCloud\u4e94\u5927\u7ec4\u4ef6",description:"image.png",source:"@site/docs/study/back/springcloud/SpringCloud\u4e94\u5927\u7ec4\u4ef6.md",sourceDirName:"study/back/springcloud",slug:"/study/back/springcloud/SpringCloud\u4e94\u5927\u7ec4\u4ef6",permalink:"/docs/study/back/springcloud/SpringCloud\u4e94\u5927\u7ec4\u4ef6",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"Spring\u751f\u547d\u5468\u671f\u63a5\u53e3",permalink:"/docs/study/back/spring/Spring\u751f\u547d\u5468\u671f\u63a5\u53e3"},next:{title:"nacos",permalink:"/docs/study/back/springcloud/nacos"}},p={},l=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:4}],s={toc:l},u="wrapper";function d(e){let{components:t,...a}=e;return(0,o.yg)(u,(0,n.A)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,(0,o.yg)("img",{alt:"image.png",src:r(8997).A,width:"889",height:"503"})),(0,o.yg)("h4",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("a",{parentName:"li",href:"https://www.cnblogs.com/mark5/p/16179178.html"},"\u6d45\u8c08SpringCloud\u4e94\u5927\u7ec4\u4ef6"))))}d.isMDXComponent=!0},8997:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/5components-cb44cfca12b5d98ff58cba209b617c07.png"}}]); \ No newline at end of file diff --git a/assets/js/9703c56f.1584be30.js b/assets/js/9703c56f.2e1faa5b.js similarity index 99% rename from assets/js/9703c56f.1584be30.js rename to assets/js/9703c56f.2e1faa5b.js index 773690141..7223a3dde 100644 --- a/assets/js/9703c56f.1584be30.js +++ b/assets/js/9703c56f.2e1faa5b.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4680],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>d});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),p=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},s=function(e){var t=p(e.components);return n.createElement(i.Provider,{value:t},e.children)},u="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},b=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),u=p(r),b=a,d=u["".concat(i,".").concat(b)]||u[b]||y[b]||o;return r?n.createElement(d,l(l({ref:t},s),{},{components:r})):n.createElement(d,l({ref:t},s))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=b;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[u]="string"==typeof e?e:a,l[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>y,frontMatter:()=>o,metadata:()=>c,toc:()=>p});var n=r(8168),a=(r(6540),r(5680));const o={},l=void 0,c={unversionedId:"study/fe/WebGL",id:"study/fe/WebGL",title:"WebGL",description:"\u6982\u8ff0",source:"@site/docs/study/fe/WebGL.md",sourceDirName:"study/fe",slug:"/study/fe/WebGL",permalink:"/docs/study/fe/WebGL",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"TypeScript\u8bed\u6cd5\u56fe",permalink:"/docs/study/fe/TypeScript\u8bed\u6cd5\u56fe"},next:{title:"mqtt.js",permalink:"/docs/study/fe/mqtt.js"}},i={},p=[{value:"\u6982\u8ff0",id:"\u6982\u8ff0",level:3},{value:"webgl \u548c threejs \u533a\u522b",id:"webgl-\u548c-threejs-\u533a\u522b",level:3},{value:"\u5b66\u4e60\u3001\u4e2a\u4eba\u53d1\u5c55",id:"\u5b66\u4e60\u4e2a\u4eba\u53d1\u5c55",level:3}],s={toc:p},u="wrapper";function y(e){let{components:t,...r}=e;return(0,a.yg)(u,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,a.yg)("p",null,"WebGL\uff08\u5168\u5199 Web Graphics Library\uff09\u662f\u4e00\u79cd 3D \u7ed8\u56fe\u534f\u8bae\uff0c\u8fd9\u79cd\u7ed8\u56fe\u6280\u672f\u6807\u51c6\u5141\u8bb8\u628a JavaScript \u548c OpenGL ES 2.0 \u7ed3\u5408\u5728\u4e00\u8d77\uff0c\u901a\u8fc7\u589e\u52a0 OpenGL ES 2.0 \u7684\u4e00\u4e2a JavaScript \u7ed1\u5b9a\uff0cWebGL \u53ef\u4ee5\u4e3a HTML5 Canvas \u63d0\u4f9b\u786c\u4ef6 3D \u52a0\u901f\u6e32\u67d3\uff0c\u8fd9\u6837 Web \u5f00\u53d1\u4eba\u5458\u5c31\u53ef\u4ee5\u501f\u52a9\u7cfb\u7edf\u663e\u5361\u6765\u5728\u6d4f\u89c8\u5668\u91cc\u66f4\u6d41\u7545\u5730\u5c55\u793a 3D \u573a\u666f\u548c\u6a21\u578b\u4e86\uff0c\u8fd8\u80fd\u521b\u5efa\u590d\u6742\u7684\u5bfc\u822a\u548c\u6570\u636e\u89c6\u89c9\u5316\u3002\u663e\u7136\uff0cWebGL \u6280\u672f\u6807\u51c6\u514d\u53bb\u4e86\u5f00\u53d1\u7f51\u9875\u4e13\u7528\u6e32\u67d3\u63d2\u4ef6\u7684\u9ebb\u70e6\uff0c\u53ef\u88ab\u7528\u4e8e\u521b\u5efa\u5177\u6709\u590d\u6742 3D \u7ed3\u6784\u7684\u7f51\u7ad9\u9875\u9762\uff0c\u751a\u81f3\u53ef\u4ee5\u7528\u6765\u8bbe\u8ba1 3D \u7f51\u9875\u6e38\u620f\u7b49\u7b49\u3002"),(0,a.yg)("p",null,"WebGL1.0 \u57fa\u4e8e OpenGL ES 2.0\uff0c\u5e76\u63d0\u4f9b\u4e86 3D \u56fe\u5f62\u7684 API\u3002\u5b83\u4f7f\u7528 HTML5Canvas \u5e76\u5141\u8bb8\u5229\u7528\u6587\u6863\u5bf9\u8c61\u6a21\u578b\u63a5\u53e3\u3002WebGL 2.0 \u57fa\u4e8e OpenGL ES 3.0\uff0c\u786e\u4fdd\u4e86\u63d0\u4f9b\u8bb8\u591a\u9009\u62e9\u6027\u7684 WebGL 1.0 \u6269\u5c55\uff0c\u5e76\u5f15\u5165\u65b0\u7684 API\u3002\u53ef\u5229\u7528\u90e8\u5206 Javascript \u5b9e\u73b0\u81ea\u52a8\u5b58\u50a8\u5668\u7ba1\u7406\u3002"),(0,a.yg)("h3",{id:"webgl-\u548c-threejs-\u533a\u522b"},"webgl \u548c threejs \u533a\u522b"),(0,a.yg)("p",null,"WebGL \u548c Three.js \u90fd\u662f\u7528\u4e8e\u5728\u6d4f\u89c8\u5668\u4e2d\u8fdb\u884c 3D \u56fe\u5f62\u6e32\u67d3\u7684\u6280\u672f\uff0c\u4f46\u5b83\u4eec\u7684\u7528\u9014\u548c\u5b9e\u73b0\u65b9\u5f0f\u6709\u6240\u4e0d\u540c\u3002"),(0,a.yg)("p",null,"WebGL \u662f\u4e00\u4e2a JavaScript API\uff0c\u5b83\u5141\u8bb8\u5f00\u53d1\u8005\u5728\u4e0d\u4f9d\u8d56\u5916\u90e8\u63d2\u4ef6\u7684\u60c5\u51b5\u4e0b\uff0c\u5229\u7528\u6d4f\u89c8\u5668\u7684 GPU \u80fd\u529b\uff0c\u5b9e\u73b0\u5728\u7ebf\u4ea4\u4e92\u5f0f 2D \u548c 3D \u7f51\u9875\u6548\u679c\u3002WebGL \u7684\u5de5\u4f5c\u539f\u7406\u662f\u5728 GPU \u4e0a\u6267\u884c\u7740\u8272\u5668\u8bed\u8a00\uff08GLSL\uff09\uff0c\u8fd9\u662f\u4e00\u79cd\u5f3a\u7c7b\u578b\u7684\u7f16\u7a0b\u8bed\u8a00\uff0c\u4e0e C/C++\u7c7b\u4f3c\u3002WebGL \u7684\u6838\u5fc3\u529f\u80fd\u5305\u62ec\u9876\u70b9\u548c\u7247\u5143\u7684\u7740\u8272\u5668\uff0c\u5206\u522b\u8d1f\u8d23\u8ba1\u7b97\u9876\u70b9\u548c\u50cf\u7d20\u7684\u989c\u8272\u503c\u3002\u5b83\u7684\u5de5\u4f5c\u6d41\u7a0b\u4e3b\u8981\u5305\u62ec\u5c06\u9876\u70b9\u4ece\u6a21\u578b\u7a7a\u95f4\u8f6c\u6362\u5230\u88c1\u526a\u7a7a\u95f4\uff0c\u7136\u540e\u57fa\u4e8e\u8fd9\u4e9b\u4fe1\u606f\u7ed8\u5236\u50cf\u7d20\u70b9\u3002"),(0,a.yg)("p",null,"Three.js \u5219\u662f\u4e00\u4e2a\u5f00\u6e90\u7684 JavaScript \u5e93\uff0c\u5b83\u63d0\u4f9b\u4e86\u8bb8\u591a\u9884\u5236\u7684\u5bf9\u8c61\u548c\u51fd\u6570\uff0c\u4ee5\u7b80\u5316 3D \u5f00\u53d1\u7684\u590d\u6742\u6027\u3002Three.js \u5c01\u88c5\u4e86 WebGL \u7684\u529f\u80fd\uff0c\u5e76\u63d0\u4f9b\u4e86\u4e00\u7cfb\u5217\u65b9\u4fbf\u7684\u5de5\u5177\u548c\u65b9\u6cd5\uff0c\u5982\u6444\u50cf\u673a\u3001\u706f\u5149\u3001\u51e0\u4f55\u5f62\u72b6\u7b49\u3002\u5b83\u53ef\u4ee5\u5355\u72ec\u4f7f\u7528\u4e5f\u53ef\u4ee5\u4e0e\u5176\u4ed6\u5e93\u7ed3\u5408\u4f7f\u7528\u3002Three.js \u7684\u8bbe\u8ba1\u76ee\u7684\u662f\u8ba9\u5f00\u53d1\u8005\u80fd\u591f\u5feb\u901f\u5730\u6784\u5efa\u4e09\u7ef4\u573a\u666f\u548c\u5e94\u7528\uff0c\u800c\u65e0\u9700\u624b\u52a8\u7f16\u5199\u5927\u91cf\u7684 WebGL \u4ee3\u7801\u3002"),(0,a.yg)("p",null,"\u603b\u7ed3\u6765\u8bf4\uff0cWebGL \u662f\u6d4f\u89c8\u5668\u5185\u7f6e\u7684\u6807\u51c6 API\uff0c\u4e3b\u8981\u7528\u4e8e\u5b9e\u73b0 3D \u56fe\u5f62\u7684\u57fa\u672c\u64cd\u4f5c\uff1b\u800c Three.js \u662f\u4e00\u4e2a\u66f4\u9ad8\u7ea7\u522b\u7684\u5e93\uff0c\u5b83\u5305\u542b\u4e86 WebGL \u7684\u529f\u80fd\u548c\u4e00\u4e9b\u989d\u5916\u7684\u5de5\u5177\u548c\u7b97\u6cd5\uff0c\u65e8\u5728\u7b80\u5316 3D \u5f00\u53d1\u7684\u4efb\u52a1\u3002"),(0,a.yg)("h3",{id:"\u5b66\u4e60\u4e2a\u4eba\u53d1\u5c55"},"\u5b66\u4e60\u3001\u4e2a\u4eba\u53d1\u5c55"),(0,a.yg)("p",null,"\u5b66\u4e60\u4ed6\u9700\u8981\u8ba1\u7b97\u673a\u56fe\u5f62\u5b66\u77e5\u8bc6\u3001\u624e\u5b9e\u7684\u6570\u5b66\u529f\u5e95\u3001\u4e30\u5bcc\u7684\u7a7a\u95f4\u60f3\u8c61\u529b\u3002\u4f60\u9700\u8981\u9762\u5bf9\u5f88\u591a\u95ee\u9898\uff0c\u6bd4\u5982\u4e2d\u6587\u6587\u6863\u4e0d\u4e30\u5bcc\u3001\u4f4e\u5c01\u88c5\u5ea6\u7684\u5f15\u64ce\u548c\u6846\u67b6\u3001\u5168\u65b0\u7684\u4e0a\u4e0b\u6e38\u5de5\u5177\u94fe\u3001\u96be\u4ee5\u7406\u89e3\u7684\u6570\u5b66\u3001\u53e4\u602a\u548c\u96be\u4ee5\u8c03\u8bd5\u7684 gl \u8bed\u8a00\u3001\u5947\u5947\u602a\u602a\u4e13\u4e1a\u6587\u4ef6\u683c\u5f0f\u3001\u5404\u79cd\u5404\u6837\u7684\u4e13\u4e1a\u9886\u57df\u77e5\u8bc6\uff0c\u7b49\u7b49\u7b49\u7b49\u2026\u2026"),(0,a.yg)("p",null,"\u9664\u4e86\u53ef\u4ee5\u4f7f\u7528 js \u7f16\u7a0b\u4ee5\u5916\uff0c\u8ddf\u4f20\u7edf\u7684 web \u524d\u7aef\u5f00\u53d1\u51e0\u4e4e\u6beb\u65e0\u5173\u7cfb\u3002"))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4680],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>d});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),p=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},s=function(e){var t=p(e.components);return n.createElement(i.Provider,{value:t},e.children)},u="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},b=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),u=p(r),b=a,d=u["".concat(i,".").concat(b)]||u[b]||y[b]||o;return r?n.createElement(d,l(l({ref:t},s),{},{components:r})):n.createElement(d,l({ref:t},s))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=b;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[u]="string"==typeof e?e:a,l[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>y,frontMatter:()=>o,metadata:()=>c,toc:()=>p});var n=r(8168),a=(r(6540),r(5680));const o={},l=void 0,c={unversionedId:"study/fe/WebGL",id:"study/fe/WebGL",title:"WebGL",description:"\u6982\u8ff0",source:"@site/docs/study/fe/WebGL.md",sourceDirName:"study/fe",slug:"/study/fe/WebGL",permalink:"/docs/study/fe/WebGL",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"TypeScript\u8bed\u6cd5\u56fe",permalink:"/docs/study/fe/TypeScript\u8bed\u6cd5\u56fe"},next:{title:"mqtt.js",permalink:"/docs/study/fe/mqtt.js"}},i={},p=[{value:"\u6982\u8ff0",id:"\u6982\u8ff0",level:3},{value:"webgl \u548c threejs \u533a\u522b",id:"webgl-\u548c-threejs-\u533a\u522b",level:3},{value:"\u5b66\u4e60\u3001\u4e2a\u4eba\u53d1\u5c55",id:"\u5b66\u4e60\u4e2a\u4eba\u53d1\u5c55",level:3}],s={toc:p},u="wrapper";function y(e){let{components:t,...r}=e;return(0,a.yg)(u,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,a.yg)("p",null,"WebGL\uff08\u5168\u5199 Web Graphics Library\uff09\u662f\u4e00\u79cd 3D \u7ed8\u56fe\u534f\u8bae\uff0c\u8fd9\u79cd\u7ed8\u56fe\u6280\u672f\u6807\u51c6\u5141\u8bb8\u628a JavaScript \u548c OpenGL ES 2.0 \u7ed3\u5408\u5728\u4e00\u8d77\uff0c\u901a\u8fc7\u589e\u52a0 OpenGL ES 2.0 \u7684\u4e00\u4e2a JavaScript \u7ed1\u5b9a\uff0cWebGL \u53ef\u4ee5\u4e3a HTML5 Canvas \u63d0\u4f9b\u786c\u4ef6 3D \u52a0\u901f\u6e32\u67d3\uff0c\u8fd9\u6837 Web \u5f00\u53d1\u4eba\u5458\u5c31\u53ef\u4ee5\u501f\u52a9\u7cfb\u7edf\u663e\u5361\u6765\u5728\u6d4f\u89c8\u5668\u91cc\u66f4\u6d41\u7545\u5730\u5c55\u793a 3D \u573a\u666f\u548c\u6a21\u578b\u4e86\uff0c\u8fd8\u80fd\u521b\u5efa\u590d\u6742\u7684\u5bfc\u822a\u548c\u6570\u636e\u89c6\u89c9\u5316\u3002\u663e\u7136\uff0cWebGL \u6280\u672f\u6807\u51c6\u514d\u53bb\u4e86\u5f00\u53d1\u7f51\u9875\u4e13\u7528\u6e32\u67d3\u63d2\u4ef6\u7684\u9ebb\u70e6\uff0c\u53ef\u88ab\u7528\u4e8e\u521b\u5efa\u5177\u6709\u590d\u6742 3D \u7ed3\u6784\u7684\u7f51\u7ad9\u9875\u9762\uff0c\u751a\u81f3\u53ef\u4ee5\u7528\u6765\u8bbe\u8ba1 3D \u7f51\u9875\u6e38\u620f\u7b49\u7b49\u3002"),(0,a.yg)("p",null,"WebGL1.0 \u57fa\u4e8e OpenGL ES 2.0\uff0c\u5e76\u63d0\u4f9b\u4e86 3D \u56fe\u5f62\u7684 API\u3002\u5b83\u4f7f\u7528 HTML5Canvas \u5e76\u5141\u8bb8\u5229\u7528\u6587\u6863\u5bf9\u8c61\u6a21\u578b\u63a5\u53e3\u3002WebGL 2.0 \u57fa\u4e8e OpenGL ES 3.0\uff0c\u786e\u4fdd\u4e86\u63d0\u4f9b\u8bb8\u591a\u9009\u62e9\u6027\u7684 WebGL 1.0 \u6269\u5c55\uff0c\u5e76\u5f15\u5165\u65b0\u7684 API\u3002\u53ef\u5229\u7528\u90e8\u5206 Javascript \u5b9e\u73b0\u81ea\u52a8\u5b58\u50a8\u5668\u7ba1\u7406\u3002"),(0,a.yg)("h3",{id:"webgl-\u548c-threejs-\u533a\u522b"},"webgl \u548c threejs \u533a\u522b"),(0,a.yg)("p",null,"WebGL \u548c Three.js \u90fd\u662f\u7528\u4e8e\u5728\u6d4f\u89c8\u5668\u4e2d\u8fdb\u884c 3D \u56fe\u5f62\u6e32\u67d3\u7684\u6280\u672f\uff0c\u4f46\u5b83\u4eec\u7684\u7528\u9014\u548c\u5b9e\u73b0\u65b9\u5f0f\u6709\u6240\u4e0d\u540c\u3002"),(0,a.yg)("p",null,"WebGL \u662f\u4e00\u4e2a JavaScript API\uff0c\u5b83\u5141\u8bb8\u5f00\u53d1\u8005\u5728\u4e0d\u4f9d\u8d56\u5916\u90e8\u63d2\u4ef6\u7684\u60c5\u51b5\u4e0b\uff0c\u5229\u7528\u6d4f\u89c8\u5668\u7684 GPU \u80fd\u529b\uff0c\u5b9e\u73b0\u5728\u7ebf\u4ea4\u4e92\u5f0f 2D \u548c 3D \u7f51\u9875\u6548\u679c\u3002WebGL \u7684\u5de5\u4f5c\u539f\u7406\u662f\u5728 GPU \u4e0a\u6267\u884c\u7740\u8272\u5668\u8bed\u8a00\uff08GLSL\uff09\uff0c\u8fd9\u662f\u4e00\u79cd\u5f3a\u7c7b\u578b\u7684\u7f16\u7a0b\u8bed\u8a00\uff0c\u4e0e C/C++\u7c7b\u4f3c\u3002WebGL \u7684\u6838\u5fc3\u529f\u80fd\u5305\u62ec\u9876\u70b9\u548c\u7247\u5143\u7684\u7740\u8272\u5668\uff0c\u5206\u522b\u8d1f\u8d23\u8ba1\u7b97\u9876\u70b9\u548c\u50cf\u7d20\u7684\u989c\u8272\u503c\u3002\u5b83\u7684\u5de5\u4f5c\u6d41\u7a0b\u4e3b\u8981\u5305\u62ec\u5c06\u9876\u70b9\u4ece\u6a21\u578b\u7a7a\u95f4\u8f6c\u6362\u5230\u88c1\u526a\u7a7a\u95f4\uff0c\u7136\u540e\u57fa\u4e8e\u8fd9\u4e9b\u4fe1\u606f\u7ed8\u5236\u50cf\u7d20\u70b9\u3002"),(0,a.yg)("p",null,"Three.js \u5219\u662f\u4e00\u4e2a\u5f00\u6e90\u7684 JavaScript \u5e93\uff0c\u5b83\u63d0\u4f9b\u4e86\u8bb8\u591a\u9884\u5236\u7684\u5bf9\u8c61\u548c\u51fd\u6570\uff0c\u4ee5\u7b80\u5316 3D \u5f00\u53d1\u7684\u590d\u6742\u6027\u3002Three.js \u5c01\u88c5\u4e86 WebGL \u7684\u529f\u80fd\uff0c\u5e76\u63d0\u4f9b\u4e86\u4e00\u7cfb\u5217\u65b9\u4fbf\u7684\u5de5\u5177\u548c\u65b9\u6cd5\uff0c\u5982\u6444\u50cf\u673a\u3001\u706f\u5149\u3001\u51e0\u4f55\u5f62\u72b6\u7b49\u3002\u5b83\u53ef\u4ee5\u5355\u72ec\u4f7f\u7528\u4e5f\u53ef\u4ee5\u4e0e\u5176\u4ed6\u5e93\u7ed3\u5408\u4f7f\u7528\u3002Three.js \u7684\u8bbe\u8ba1\u76ee\u7684\u662f\u8ba9\u5f00\u53d1\u8005\u80fd\u591f\u5feb\u901f\u5730\u6784\u5efa\u4e09\u7ef4\u573a\u666f\u548c\u5e94\u7528\uff0c\u800c\u65e0\u9700\u624b\u52a8\u7f16\u5199\u5927\u91cf\u7684 WebGL \u4ee3\u7801\u3002"),(0,a.yg)("p",null,"\u603b\u7ed3\u6765\u8bf4\uff0cWebGL \u662f\u6d4f\u89c8\u5668\u5185\u7f6e\u7684\u6807\u51c6 API\uff0c\u4e3b\u8981\u7528\u4e8e\u5b9e\u73b0 3D \u56fe\u5f62\u7684\u57fa\u672c\u64cd\u4f5c\uff1b\u800c Three.js \u662f\u4e00\u4e2a\u66f4\u9ad8\u7ea7\u522b\u7684\u5e93\uff0c\u5b83\u5305\u542b\u4e86 WebGL \u7684\u529f\u80fd\u548c\u4e00\u4e9b\u989d\u5916\u7684\u5de5\u5177\u548c\u7b97\u6cd5\uff0c\u65e8\u5728\u7b80\u5316 3D \u5f00\u53d1\u7684\u4efb\u52a1\u3002"),(0,a.yg)("h3",{id:"\u5b66\u4e60\u4e2a\u4eba\u53d1\u5c55"},"\u5b66\u4e60\u3001\u4e2a\u4eba\u53d1\u5c55"),(0,a.yg)("p",null,"\u5b66\u4e60\u4ed6\u9700\u8981\u8ba1\u7b97\u673a\u56fe\u5f62\u5b66\u77e5\u8bc6\u3001\u624e\u5b9e\u7684\u6570\u5b66\u529f\u5e95\u3001\u4e30\u5bcc\u7684\u7a7a\u95f4\u60f3\u8c61\u529b\u3002\u4f60\u9700\u8981\u9762\u5bf9\u5f88\u591a\u95ee\u9898\uff0c\u6bd4\u5982\u4e2d\u6587\u6587\u6863\u4e0d\u4e30\u5bcc\u3001\u4f4e\u5c01\u88c5\u5ea6\u7684\u5f15\u64ce\u548c\u6846\u67b6\u3001\u5168\u65b0\u7684\u4e0a\u4e0b\u6e38\u5de5\u5177\u94fe\u3001\u96be\u4ee5\u7406\u89e3\u7684\u6570\u5b66\u3001\u53e4\u602a\u548c\u96be\u4ee5\u8c03\u8bd5\u7684 gl \u8bed\u8a00\u3001\u5947\u5947\u602a\u602a\u4e13\u4e1a\u6587\u4ef6\u683c\u5f0f\u3001\u5404\u79cd\u5404\u6837\u7684\u4e13\u4e1a\u9886\u57df\u77e5\u8bc6\uff0c\u7b49\u7b49\u7b49\u7b49\u2026\u2026"),(0,a.yg)("p",null,"\u9664\u4e86\u53ef\u4ee5\u4f7f\u7528 js \u7f16\u7a0b\u4ee5\u5916\uff0c\u8ddf\u4f20\u7edf\u7684 web \u524d\u7aef\u5f00\u53d1\u51e0\u4e4e\u6beb\u65e0\u5173\u7cfb\u3002"))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/97b42080.33630eb4.js b/assets/js/97b42080.eccf773e.js similarity index 99% rename from assets/js/97b42080.33630eb4.js rename to assets/js/97b42080.eccf773e.js index a132f8133..98f41aeab 100644 --- a/assets/js/97b42080.33630eb4.js +++ b/assets/js/97b42080.eccf773e.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8351],{5680:(t,e,n)=>{n.d(e,{xA:()=>s,yg:()=>y});var r=n(6540);function p(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function a(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function c(t){for(var e=1;e=0||(p[n]=t[n]);return p}(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(p[n]=t[n])}return p}var o=r.createContext({}),i=function(t){var e=r.useContext(o),n=e;return t&&(n="function"==typeof t?t(e):c(c({},e),t)),n},s=function(t){var e=i(t.components);return r.createElement(o.Provider,{value:e},t.children)},l="mdxType",d={inlineCode:"code",wrapper:function(t){var e=t.children;return r.createElement(r.Fragment,{},e)}},m=r.forwardRef((function(t,e){var n=t.components,p=t.mdxType,a=t.originalType,o=t.parentName,s=u(t,["components","mdxType","originalType","parentName"]),l=i(n),m=p,y=l["".concat(o,".").concat(m)]||l[m]||d[m]||a;return n?r.createElement(y,c(c({ref:e},s),{},{components:n})):r.createElement(y,c({ref:e},s))}));function y(t,e){var n=arguments,p=e&&e.mdxType;if("string"==typeof t||p){var a=n.length,c=new Array(a);c[0]=m;var u={};for(var o in e)hasOwnProperty.call(e,o)&&(u[o]=e[o]);u.originalType=t,u[l]="string"==typeof t?t:p,c[1]=u;for(var i=2;i{n.r(e),n.d(e,{assets:()=>o,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>u,toc:()=>i});var r=n(8168),p=(n(6540),n(5680));const a={},c=void 0,u={unversionedId:"study/net/\u6293\u5305\u5de5\u5177",id:"study/net/\u6293\u5305\u5de5\u5177",title:"\u6293\u5305\u5de5\u5177",description:"tcpdump",source:"@site/docs/study/net/\u6293\u5305\u5de5\u5177.md",sourceDirName:"study/net",slug:"/study/net/\u6293\u5305\u5de5\u5177",permalink:"/docs/study/net/\u6293\u5305\u5de5\u5177",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u5f02\u5730\u7ec4\u7f51",permalink:"/docs/study/net/\u5f02\u5730\u7ec4\u7f51"},next:{title:"\u7f51\u7edc\u541e\u5410\u91cf\u6d4b\u91cf\u5de5\u5177",permalink:"/docs/study/net/\u7f51\u7edc\u541e\u5410\u91cf\u6d4b\u91cf\u5de5\u5177"}},o={},i=[{value:"tcpdump",id:"tcpdump",level:3},{value:"netstat",id:"netstat",level:3}],s={toc:i},l="wrapper";function d(t){let{components:e,...n}=t;return(0,p.yg)(l,(0,r.A)({},s,n,{components:e,mdxType:"MDXLayout"}),(0,p.yg)("h3",{id:"tcpdump"},"tcpdump"),(0,p.yg)("p",null,"tcpdump \u662f\u4e00\u4e2a\u5f88\u5e38\u7528\u7684\u7f51\u7edc\u5305\u5206\u6790\u5de5\u5177\uff0c\u53ef\u4ee5\u7528\u6765\u663e\u793a\u901a\u8fc7\u7f51\u7edc\u4f20\u8f93\u5230\u672c\u7cfb\u7edf\u7684 TCP/IP \u4ee5\u53ca\u5176\u4ed6\u7f51\u7edc\u7684\u6570\u636e\u5305\u3002tcpdump \u4f7f\u7528 libpcap \u5e93\u6765\u6293\u53d6\u7f51\u7edc\u62a5\uff0c\u8fd9\u4e2a\u5e93\u5728\u51e0\u4e4e\u5728\u6240\u6709\u7684 Linux/Unix \u4e2d\u90fd\u6709\u3002"),(0,p.yg)("pre",null,(0,p.yg)("code",{parentName:"pre",className:"language-shell"},"tcpdump -i eth0 #\u6355\u83b7\u6307\u5b9a\u63a5\u53e3(\u7f51\u5361)\u7684\u6570\u636e\u5305 \u53ef\u901a\u8fc7 netstat -i\u67e5\u770b\u7f51\u5361\u8bbe\u5907\ntcpdump -i eth0 -c 3 #\u6355\u83b7\u6307\u5b9a\u4e2a\u6570\u7684\u6570\u636e\u5305\uff083\u4e2a\u6570\u636e\u5305\uff09\ntcpdump -A -i eth0 #\u7528ASCII\u7801\u683c\u5f0f\u8f93\u51fa\u6355\u83b7\u7684\u6570\u636e\u5305\ntcpdump -D #\u663e\u793a\u53ef\u7528\u7684\u7cfb\u7edf\u63a5\u53e3\ntcpdump -XX -i eth0 #\u7528\u5341\u516d\u8fdb\u5236\u548cASCII\u7801\u683c\u5f0f\u663e\u793a\u6355\u83b7\u7684\u6570\u636e\u5305\ntcpdump -w tempDump.pcap -i eth0 #\u628a\u6355\u83b7\u7684\u6570\u636e\u5305\u5199\u5165\u5230\u4e00\u4e2a.pcap\u540e\u7f00\u7684\u6587\u4ef6\u4e2d\ntcpdump -r tempDump.pcap #\u8bfb\u53d6\u6355\u83b7\u6570\u636e\u5305\u6587\u4ef6\u7684\u5185\u5bb9\ntcpdump -n -i eth0 # \u5355\u4e2a n \u8868\u793a\u4e0d\u89e3\u6790\u57df\u540d\uff0c\u76f4\u63a5\u663e\u793a IP\ntcpdump -i eth0 tcp #\u6355\u83b7TCP\u7c7b\u578b\u7684\u6570\u636e\u5305\ntcpdump -i eth0 port 22 #\u6355\u83b7\u6307\u5b9a\u7aef\u53e3\uff08\u8fd9\u91cc\u662f22\uff09\u7684\u6570\u636e\u5305\ntcpdump -i eth0 src \u6e90ip\u5730\u5740 #\u6355\u83b7\u8bf7\u6c42\u6e90\u662f 192.169.12.101 \u7684\u6570\u636e\u5305\ntcpdump -i eth0 dst \u76ee\u6807ip\u5730\u5740 #\u6355\u83b7\u6307\u5b9a\u76ee\u7684IP\u7684\u6570\u636e\u5305\ntcpdump -i eth6 dst host \u76ee\u6807ip\u5730\u5740 and port 8800 -w data.pcap #\u6293\u53d6\u6307\u5b9a\u7f51\u5361\uff0c\u6307\u5b9aIP\u548c\u7aef\u53e3\u7684\u6570\u636e\u5305 \u5e76\u5199\u5165\u5230data.pcap\u6587\u4ef6\u4e2d\ntcpdump host 192.168.12.101 and 192.168.1.201 -w out & #\u540e\u53f0\u6293\u53d6\u4e24\u4e3b\u673a\u4e4b\u95f4\u7684\u6570\u636e\ntcpdump -nn #\u5355\u4e2a n \u8868\u793a\u4e0d\u89e3\u6790\u57df\u540d\uff0c\u76f4\u63a5\u663e\u793a IP\uff1b\u4e24\u4e2a n \u8868\u793a\u4e0d\u89e3\u6790\u57df\u540d\u548c\u7aef\u53e3\u3002\u8fd9\u6837\u4e0d\u4ec5\u65b9\u4fbf\u67e5\u770b IP \u548c\u7aef\u53e3\u53f7\uff0c\u800c\u4e14\u5728\u6293\u53d6\u5927\u91cf\u6570\u636e\u65f6\u975e\u5e38\u9ad8\u6548\uff0c\u56e0\u4e3a\u57df\u540d\u89e3\u6790\u4f1a\u964d\u4f4e\u6293\u53d6\u901f\u5ea6\n")),(0,p.yg)("ul",null,(0,p.yg)("li",{parentName:"ul"},(0,p.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/611443192"},"\u77e5\u4e4e\uff1atcpdump \u8be6\u89e3&\u5b9e\u6218"))),(0,p.yg)("h3",{id:"netstat"},"netstat"),(0,p.yg)("p",null,"netstat \u662f\u4e00\u4e2a\u76d1\u63a7 TCP/IP \u7f51\u7edc\u7684\u975e\u5e38\u6709\u7528\u7684\u5de5\u5177\uff0c\u5b83\u53ef\u4ee5\u663e\u793a\u8def\u7531\u8868\u3001\u7f51\u7edc\u8fde\u63a5\u4ee5\u53ca\u6bcf\u4e00\u4e2a\u7f51\u7edc\u63a5\u53e3\u8bbe\u5907\u7684\u72b6\u6001\u4fe1\u606f\u3002netstat \u7528\u4e8e\u663e\u793a\u4e0e IP\u3001TCP\u3001UDP \u548c ICMP \u534f\u8bae\u76f8\u5173\u7684\u7edf\u8ba1\u6570\u636e\uff0c\u4e00\u822c\u7528\u4e8e\u68c0\u9a8c\u672c\u673a\u5404\u7aef\u53e3\u7684\u7f51\u7edc\u8fde\u63a5\u60c5\u51b5\u3002"),(0,p.yg)("pre",null,(0,p.yg)("code",{parentName:"pre",className:"language-shell"},"netstat -at #\u67e5\u770b\u5f53\u524d\u5df2\u7ecf\u5efa\u7acb\u7684tcp\u8fde\u63a5\nnetstat -au #\u5217\u51fa\u6240\u6709 udp \u7aef\u53e3\nnetstat -lt #\u53ea\u5217\u51fa\u6240\u6709\u76d1\u542c\u4e2d\u7684 tcp\u7c7b\u578b\u7684 \u7aef\u53e3\nnetstat -lu #\u53ea\u5217\u51fa\u6240\u6709\u76d1\u542c\u4e2d\u7684 udp\u7c7b\u578b\u7684\u7aef\u53e3\nnetstat -antp #\u67e5\u770b\u6240\u6709\u5df2\u7ecf\u5efa\u7acb\u7684tcp\u8fde\u63a5\uff0c\u5e76\u4e14\u57df\u540d\u4ee5\u6570\u5b57\u5f62\u5f0f\u663e\u793a\nnetstat -tupl #\u67e5\u770b\u6240\u6709\u76d1\u542c\u7684tcp\u548cudp\u53ca\u8fdb\u7a0b\u540d\u4fe1\u606f\uff08udp\u4e0d\u80fd\u76d1\u542c\uff0c\u4f46\u53ef\u4ee5\u67e5\u770b\u662f\u5426\u5728\u5360\u7528\uff09\nnetstat -s #\u663e\u793a\u6240\u6709\u7aef\u53e3\u7684\u7edf\u8ba1\u4fe1\u606f\nnetstat -st \u6216 -su #\u663e\u793a TCP \u6216 UDP \u7aef\u53e3\u7684\u7edf\u8ba1\u4fe1\u606f\nnetstat -i #\u67e5\u770b\u7f51\u5361\u63a5\u53e3\u4fe1\u606f\nnetstat -tulnp |grep nginx #\u67e5\u770bnginx\u670d\u52a1\u7684\u7f51\u7edc\u4fe1\u606f\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8351],{5680:(t,e,n)=>{n.d(e,{xA:()=>s,yg:()=>y});var r=n(6540);function p(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function a(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function c(t){for(var e=1;e=0||(p[n]=t[n]);return p}(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(p[n]=t[n])}return p}var o=r.createContext({}),i=function(t){var e=r.useContext(o),n=e;return t&&(n="function"==typeof t?t(e):c(c({},e),t)),n},s=function(t){var e=i(t.components);return r.createElement(o.Provider,{value:e},t.children)},l="mdxType",d={inlineCode:"code",wrapper:function(t){var e=t.children;return r.createElement(r.Fragment,{},e)}},m=r.forwardRef((function(t,e){var n=t.components,p=t.mdxType,a=t.originalType,o=t.parentName,s=u(t,["components","mdxType","originalType","parentName"]),l=i(n),m=p,y=l["".concat(o,".").concat(m)]||l[m]||d[m]||a;return n?r.createElement(y,c(c({ref:e},s),{},{components:n})):r.createElement(y,c({ref:e},s))}));function y(t,e){var n=arguments,p=e&&e.mdxType;if("string"==typeof t||p){var a=n.length,c=new Array(a);c[0]=m;var u={};for(var o in e)hasOwnProperty.call(e,o)&&(u[o]=e[o]);u.originalType=t,u[l]="string"==typeof t?t:p,c[1]=u;for(var i=2;i{n.r(e),n.d(e,{assets:()=>o,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>u,toc:()=>i});var r=n(8168),p=(n(6540),n(5680));const a={},c=void 0,u={unversionedId:"study/net/\u6293\u5305\u5de5\u5177",id:"study/net/\u6293\u5305\u5de5\u5177",title:"\u6293\u5305\u5de5\u5177",description:"tcpdump",source:"@site/docs/study/net/\u6293\u5305\u5de5\u5177.md",sourceDirName:"study/net",slug:"/study/net/\u6293\u5305\u5de5\u5177",permalink:"/docs/study/net/\u6293\u5305\u5de5\u5177",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u5f02\u5730\u7ec4\u7f51",permalink:"/docs/study/net/\u5f02\u5730\u7ec4\u7f51"},next:{title:"\u7f51\u7edc\u541e\u5410\u91cf\u6d4b\u91cf\u5de5\u5177",permalink:"/docs/study/net/\u7f51\u7edc\u541e\u5410\u91cf\u6d4b\u91cf\u5de5\u5177"}},o={},i=[{value:"tcpdump",id:"tcpdump",level:3},{value:"netstat",id:"netstat",level:3}],s={toc:i},l="wrapper";function d(t){let{components:e,...n}=t;return(0,p.yg)(l,(0,r.A)({},s,n,{components:e,mdxType:"MDXLayout"}),(0,p.yg)("h3",{id:"tcpdump"},"tcpdump"),(0,p.yg)("p",null,"tcpdump \u662f\u4e00\u4e2a\u5f88\u5e38\u7528\u7684\u7f51\u7edc\u5305\u5206\u6790\u5de5\u5177\uff0c\u53ef\u4ee5\u7528\u6765\u663e\u793a\u901a\u8fc7\u7f51\u7edc\u4f20\u8f93\u5230\u672c\u7cfb\u7edf\u7684 TCP/IP \u4ee5\u53ca\u5176\u4ed6\u7f51\u7edc\u7684\u6570\u636e\u5305\u3002tcpdump \u4f7f\u7528 libpcap \u5e93\u6765\u6293\u53d6\u7f51\u7edc\u62a5\uff0c\u8fd9\u4e2a\u5e93\u5728\u51e0\u4e4e\u5728\u6240\u6709\u7684 Linux/Unix \u4e2d\u90fd\u6709\u3002"),(0,p.yg)("pre",null,(0,p.yg)("code",{parentName:"pre",className:"language-shell"},"tcpdump -i eth0 #\u6355\u83b7\u6307\u5b9a\u63a5\u53e3(\u7f51\u5361)\u7684\u6570\u636e\u5305 \u53ef\u901a\u8fc7 netstat -i\u67e5\u770b\u7f51\u5361\u8bbe\u5907\ntcpdump -i eth0 -c 3 #\u6355\u83b7\u6307\u5b9a\u4e2a\u6570\u7684\u6570\u636e\u5305\uff083\u4e2a\u6570\u636e\u5305\uff09\ntcpdump -A -i eth0 #\u7528ASCII\u7801\u683c\u5f0f\u8f93\u51fa\u6355\u83b7\u7684\u6570\u636e\u5305\ntcpdump -D #\u663e\u793a\u53ef\u7528\u7684\u7cfb\u7edf\u63a5\u53e3\ntcpdump -XX -i eth0 #\u7528\u5341\u516d\u8fdb\u5236\u548cASCII\u7801\u683c\u5f0f\u663e\u793a\u6355\u83b7\u7684\u6570\u636e\u5305\ntcpdump -w tempDump.pcap -i eth0 #\u628a\u6355\u83b7\u7684\u6570\u636e\u5305\u5199\u5165\u5230\u4e00\u4e2a.pcap\u540e\u7f00\u7684\u6587\u4ef6\u4e2d\ntcpdump -r tempDump.pcap #\u8bfb\u53d6\u6355\u83b7\u6570\u636e\u5305\u6587\u4ef6\u7684\u5185\u5bb9\ntcpdump -n -i eth0 # \u5355\u4e2a n \u8868\u793a\u4e0d\u89e3\u6790\u57df\u540d\uff0c\u76f4\u63a5\u663e\u793a IP\ntcpdump -i eth0 tcp #\u6355\u83b7TCP\u7c7b\u578b\u7684\u6570\u636e\u5305\ntcpdump -i eth0 port 22 #\u6355\u83b7\u6307\u5b9a\u7aef\u53e3\uff08\u8fd9\u91cc\u662f22\uff09\u7684\u6570\u636e\u5305\ntcpdump -i eth0 src \u6e90ip\u5730\u5740 #\u6355\u83b7\u8bf7\u6c42\u6e90\u662f 192.169.12.101 \u7684\u6570\u636e\u5305\ntcpdump -i eth0 dst \u76ee\u6807ip\u5730\u5740 #\u6355\u83b7\u6307\u5b9a\u76ee\u7684IP\u7684\u6570\u636e\u5305\ntcpdump -i eth6 dst host \u76ee\u6807ip\u5730\u5740 and port 8800 -w data.pcap #\u6293\u53d6\u6307\u5b9a\u7f51\u5361\uff0c\u6307\u5b9aIP\u548c\u7aef\u53e3\u7684\u6570\u636e\u5305 \u5e76\u5199\u5165\u5230data.pcap\u6587\u4ef6\u4e2d\ntcpdump host 192.168.12.101 and 192.168.1.201 -w out & #\u540e\u53f0\u6293\u53d6\u4e24\u4e3b\u673a\u4e4b\u95f4\u7684\u6570\u636e\ntcpdump -nn #\u5355\u4e2a n \u8868\u793a\u4e0d\u89e3\u6790\u57df\u540d\uff0c\u76f4\u63a5\u663e\u793a IP\uff1b\u4e24\u4e2a n \u8868\u793a\u4e0d\u89e3\u6790\u57df\u540d\u548c\u7aef\u53e3\u3002\u8fd9\u6837\u4e0d\u4ec5\u65b9\u4fbf\u67e5\u770b IP \u548c\u7aef\u53e3\u53f7\uff0c\u800c\u4e14\u5728\u6293\u53d6\u5927\u91cf\u6570\u636e\u65f6\u975e\u5e38\u9ad8\u6548\uff0c\u56e0\u4e3a\u57df\u540d\u89e3\u6790\u4f1a\u964d\u4f4e\u6293\u53d6\u901f\u5ea6\n")),(0,p.yg)("ul",null,(0,p.yg)("li",{parentName:"ul"},(0,p.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/611443192"},"\u77e5\u4e4e\uff1atcpdump \u8be6\u89e3&\u5b9e\u6218"))),(0,p.yg)("h3",{id:"netstat"},"netstat"),(0,p.yg)("p",null,"netstat \u662f\u4e00\u4e2a\u76d1\u63a7 TCP/IP \u7f51\u7edc\u7684\u975e\u5e38\u6709\u7528\u7684\u5de5\u5177\uff0c\u5b83\u53ef\u4ee5\u663e\u793a\u8def\u7531\u8868\u3001\u7f51\u7edc\u8fde\u63a5\u4ee5\u53ca\u6bcf\u4e00\u4e2a\u7f51\u7edc\u63a5\u53e3\u8bbe\u5907\u7684\u72b6\u6001\u4fe1\u606f\u3002netstat \u7528\u4e8e\u663e\u793a\u4e0e IP\u3001TCP\u3001UDP \u548c ICMP \u534f\u8bae\u76f8\u5173\u7684\u7edf\u8ba1\u6570\u636e\uff0c\u4e00\u822c\u7528\u4e8e\u68c0\u9a8c\u672c\u673a\u5404\u7aef\u53e3\u7684\u7f51\u7edc\u8fde\u63a5\u60c5\u51b5\u3002"),(0,p.yg)("pre",null,(0,p.yg)("code",{parentName:"pre",className:"language-shell"},"netstat -at #\u67e5\u770b\u5f53\u524d\u5df2\u7ecf\u5efa\u7acb\u7684tcp\u8fde\u63a5\nnetstat -au #\u5217\u51fa\u6240\u6709 udp \u7aef\u53e3\nnetstat -lt #\u53ea\u5217\u51fa\u6240\u6709\u76d1\u542c\u4e2d\u7684 tcp\u7c7b\u578b\u7684 \u7aef\u53e3\nnetstat -lu #\u53ea\u5217\u51fa\u6240\u6709\u76d1\u542c\u4e2d\u7684 udp\u7c7b\u578b\u7684\u7aef\u53e3\nnetstat -antp #\u67e5\u770b\u6240\u6709\u5df2\u7ecf\u5efa\u7acb\u7684tcp\u8fde\u63a5\uff0c\u5e76\u4e14\u57df\u540d\u4ee5\u6570\u5b57\u5f62\u5f0f\u663e\u793a\nnetstat -tupl #\u67e5\u770b\u6240\u6709\u76d1\u542c\u7684tcp\u548cudp\u53ca\u8fdb\u7a0b\u540d\u4fe1\u606f\uff08udp\u4e0d\u80fd\u76d1\u542c\uff0c\u4f46\u53ef\u4ee5\u67e5\u770b\u662f\u5426\u5728\u5360\u7528\uff09\nnetstat -s #\u663e\u793a\u6240\u6709\u7aef\u53e3\u7684\u7edf\u8ba1\u4fe1\u606f\nnetstat -st \u6216 -su #\u663e\u793a TCP \u6216 UDP \u7aef\u53e3\u7684\u7edf\u8ba1\u4fe1\u606f\nnetstat -i #\u67e5\u770b\u7f51\u5361\u63a5\u53e3\u4fe1\u606f\nnetstat -tulnp |grep nginx #\u67e5\u770bnginx\u670d\u52a1\u7684\u7f51\u7edc\u4fe1\u606f\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9801fcb7.c44cd820.js b/assets/js/9801fcb7.6252203f.js similarity index 99% rename from assets/js/9801fcb7.c44cd820.js rename to assets/js/9801fcb7.6252203f.js index 97bd1e3de..90e00f259 100644 --- a/assets/js/9801fcb7.c44cd820.js +++ b/assets/js/9801fcb7.6252203f.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7401],{5680:(e,n,l)=>{l.d(n,{xA:()=>y,yg:()=>d});var t=l(6540);function r(e,n,l){return n in e?Object.defineProperty(e,n,{value:l,enumerable:!0,configurable:!0,writable:!0}):e[n]=l,e}function i(e,n){var l=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n&&(t=t.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),l.push.apply(l,t)}return l}function a(e){for(var n=1;n=0||(r[l]=e[l]);return r}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,l)&&(r[l]=e[l])}return r}var o=t.createContext({}),p=function(e){var n=t.useContext(o),l=n;return e&&(l="function"==typeof e?e(n):a(a({},n),e)),l},y=function(e){var n=p(e.components);return t.createElement(o.Provider,{value:n},e.children)},c="mdxType",s={inlineCode:"code",wrapper:function(e){var n=e.children;return t.createElement(t.Fragment,{},n)}},P=t.forwardRef((function(e,n){var l=e.components,r=e.mdxType,i=e.originalType,o=e.parentName,y=u(e,["components","mdxType","originalType","parentName"]),c=p(l),P=r,d=c["".concat(o,".").concat(P)]||c[P]||s[P]||i;return l?t.createElement(d,a(a({ref:n},y),{},{components:l})):t.createElement(d,a({ref:n},y))}));function d(e,n){var l=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var i=l.length,a=new Array(i);a[0]=P;var u={};for(var o in n)hasOwnProperty.call(n,o)&&(u[o]=n[o]);u.originalType=e,u[c]="string"==typeof e?e:r,a[1]=u;for(var p=2;p{l.r(n),l.d(n,{assets:()=>o,contentTitle:()=>a,default:()=>s,frontMatter:()=>i,metadata:()=>u,toc:()=>p});var t=l(8168),r=(l(6540),l(5680));const i={},a="\u53ef\u6267\u884c\u7a0b\u5e8f\u5728\u64cd\u4f5c\u7cfb\u7edf\u4e0b\u7684\u8fd0\u884c\u539f\u7406\u5206\u6790",u={unversionedId:"study/system/\u53ef\u6267\u884c\u7a0b\u5e8f\u8fd0\u884c\u539f\u7406\u5206\u6790",id:"study/system/\u53ef\u6267\u884c\u7a0b\u5e8f\u8fd0\u884c\u539f\u7406\u5206\u6790",title:"\u53ef\u6267\u884c\u7a0b\u5e8f\u5728\u64cd\u4f5c\u7cfb\u7edf\u4e0b\u7684\u8fd0\u884c\u539f\u7406\u5206\u6790",description:"\u67b6\u6784\uff0c\u4ece\u4e0b\u5f80\u4e0a\u5206\u6790",source:"@site/docs/study/system/\u53ef\u6267\u884c\u7a0b\u5e8f\u8fd0\u884c\u539f\u7406\u5206\u6790.md",sourceDirName:"study/system",slug:"/study/system/\u53ef\u6267\u884c\u7a0b\u5e8f\u8fd0\u884c\u539f\u7406\u5206\u6790",permalink:"/docs/study/system/\u53ef\u6267\u884c\u7a0b\u5e8f\u8fd0\u884c\u539f\u7406\u5206\u6790",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u5185\u5b58\u7ba1\u7406",permalink:"/docs/study/system/\u5185\u5b58\u7ba1\u7406"},next:{title:"\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838",permalink:"/docs/study/system/\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838"}},o={},p=[{value:"\u67b6\u6784\uff0c\u4ece\u4e0b\u5f80\u4e0a\u5206\u6790",id:"\u67b6\u6784\u4ece\u4e0b\u5f80\u4e0a\u5206\u6790",level:3},{value:"\u88f8\u673a",id:"\u88f8\u673a",level:3},{value:"x86 \u6307\u4ee4\u96c6\u53d1\u5c55",id:"x86-\u6307\u4ee4\u96c6\u53d1\u5c55",level:4},{value:"ARM \u67b6\u6784",id:"arm-\u67b6\u6784",level:4},{value:"MPIS \u67b6\u6784",id:"mpis-\u67b6\u6784",level:4},{value:"PowerPC \u7cfb\u5217",id:"powerpc-\u7cfb\u5217",level:4},{value:"SPARC \u67b6\u6784",id:"sparc-\u67b6\u6784",level:4},{value:"Alpha \u67b6\u6784",id:"alpha-\u67b6\u6784",level:4},{value:"CPU \u67b6\u6784\u4e4b\u95f4\u7684\u7ade\u4e89",id:"cpu-\u67b6\u6784\u4e4b\u95f4\u7684\u7ade\u4e89",level:3},{value:"PC \u548c\u670d\u52a1\u5668\u7ade\u4e89",id:"pc-\u548c\u670d\u52a1\u5668\u7ade\u4e89",level:4},{value:"\u79fb\u52a8\u7aef\u7ade\u4e89",id:"\u79fb\u52a8\u7aef\u7ade\u4e89",level:4},{value:"\u64cd\u4f5c\u7cfb\u7edf",id:"\u64cd\u4f5c\u7cfb\u7edf",level:3},{value:"\u684c\u9762\u64cd\u4f5c\u7cfb\u7edf",id:"\u684c\u9762\u64cd\u4f5c\u7cfb\u7edf",level:4},{value:"\u670d\u52a1\u5668\u64cd\u4f5c\u7cfb\u7edf",id:"\u670d\u52a1\u5668\u64cd\u4f5c\u7cfb\u7edf",level:4},{value:"\u5d4c\u5165\u5f0f\u64cd\u4f5c\u7cfb\u7edf",id:"\u5d4c\u5165\u5f0f\u64cd\u4f5c\u7cfb\u7edf",level:4},{value:"\u53ef\u6267\u884c\u7a0b\u5e8f\u6267\u884c\u7684\u539f\u7406\u5206\u6790",id:"\u53ef\u6267\u884c\u7a0b\u5e8f\u6267\u884c\u7684\u539f\u7406\u5206\u6790",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],y={toc:p},c="wrapper";function s(e){let{components:n,...l}=e;return(0,r.yg)(c,(0,t.A)({},y,l,{components:n,mdxType:"MDXLayout"}),(0,r.yg)("h1",{id:"\u53ef\u6267\u884c\u7a0b\u5e8f\u5728\u64cd\u4f5c\u7cfb\u7edf\u4e0b\u7684\u8fd0\u884c\u539f\u7406\u5206\u6790"},"\u53ef\u6267\u884c\u7a0b\u5e8f\u5728\u64cd\u4f5c\u7cfb\u7edf\u4e0b\u7684\u8fd0\u884c\u539f\u7406\u5206\u6790"),(0,r.yg)("h3",{id:"\u67b6\u6784\u4ece\u4e0b\u5f80\u4e0a\u5206\u6790"},"\u67b6\u6784\uff0c\u4ece\u4e0b\u5f80\u4e0a\u5206\u6790"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"\u88f8\u673a\uff08\u7eaf\u786c\u4ef6\uff09"),(0,r.yg)("li",{parentName:"ul"},"\u64cd\u4f5c\u7cfb\u7edf\uff08Windows/Linux\uff09"),(0,r.yg)("li",{parentName:"ul"},"\u53ef\u6267\u884c\u7a0b\u5e8f")),(0,r.yg)("h3",{id:"\u88f8\u673a"},"\u88f8\u673a"),(0,r.yg)("p",null,"\u5176\u5b9e\u4e3b\u8981\u5c31\u662f CPU \u67b6\u6784\u7684\u4e0d\u540c\uff0cCPU \u67b6\u6784\u662f CPU \u5546\u7ed9 CPU \u4ea7\u54c1\u5b9a\u7684\u4e00\u4e2a\u89c4\u8303\uff0c\u4e3b\u8981\u76ee\u7684\u662f\u4e3a\u4e86\u533a\u5206\u4e0d\u540c\u7c7b\u578b\u7684 CPU\u3002\u76ee\u524d\u5e02\u573a\u4e0a\u7684 CPU \u5206\u7c7b\u4e3b\u8981\u5206\u6709\u4e24\u5927\u9635\u8425\uff0c\u4e00\u4e2a\u662f Intel\u3001AMD \u4e3a\u9996\u7684\u590d\u6742\u6307\u4ee4\u96c6 CPU\uff0c\u53e6\u4e00\u4e2a\u662f\u4ee5 IBM\u3001ARM \u4e3a\u9996\u7684\u7cbe\u7b80\u6307\u4ee4\u96c6 CPU\u3002\u4e0d\u540c\u54c1\u724c\u7684 CPU\uff0c\u5176\u4ea7\u54c1\u7684\u67b6\u6784\u4e5f\u4e0d\u76f8\u540c\uff0cIntel\u3001AMD \u7684 CPU \u662f X86 \u67b6\u6784\uff0cIBM \u516c\u53f8\u7684 CPU \u662f PowerPC \u67b6\u6784\uff0cARM \u516c\u53f8\u7684 CPU \u662f ARM \u67b6\u6784\uff0c\u56fd\u5185\u7684\u98de\u817e CPU \u4e5f\u662f ARM \u67b6\u6784\u3002\u6b64\u5916\u8fd8\u6709 MPIS \u67b6\u6784\u3001SPARC \u67b6\u6784\u3001Alpha \u67b6\u6784\u3002"),(0,r.yg)("h4",{id:"x86-\u6307\u4ee4\u96c6\u53d1\u5c55"},"x86 \u6307\u4ee4\u96c6\u53d1\u5c55"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"IA\uff1aIntel\uff08\u82f1\u7279\u5c14\uff09\u5904\u7406\u5668\u7684\u670d\u52a1\u5668\u79f0\u4e4b\u4e3a IA\uff08Intel Architecture\uff09\u67b6\u6784\u670d\u52a1\u5668"),(0,r.yg)("li",{parentName:"ul"},"IA-32\uff1a\u82f1\u7279\u5c14 32 \u4f4d\u4f53\u7cfb\u67b6\u6784\uff0cX86 \u4ece 16 \u4f4d\u5230 32 \u4f4d\u662f\u5728\u539f\u6709\u7684\u67b6\u6784\u57fa\u7840\u4e0a\u8fdb\u884c\u4fee\u6539\uff08Intel \u79f0\u4e4b\u4e3a IA-32\uff09"),(0,r.yg)("li",{parentName:"ul"},"x86-32\uff1a\u73b0\u5982\u4eca Intel \u628a x86-32 \u79f0\u4e3a IA-32"),(0,r.yg)("li",{parentName:"ul"},"x86-64 \u5206\u4e3a intel \u548c AMD"),(0,r.yg)("li",{parentName:"ul"},"AMD64\uff1ax86 \u67b6\u6784\u7684 64 \u4f4d\u62d3\u5c55\uff0c\u5411\u540e\u517c\u5bb9\u4e8e 16 \u4f4d\u53ca 32 \u4f4d\u7684 x86 \u67b6\u6784\u3002x64 \u4e8e 1999 \u5e74\u7531 AMD \u8bbe\u8ba1\uff0cAMD \u9996\u6b21\u516c\u5f00 64 \u4f4d\u96c6\u4ee5\u6269\u5c55\u7ed9 x86\uff0c\u79f0\u4e3a\u201cAMD64\u201d\uff0cAMD64 \u548c Intel64 \u57fa\u672c\u4e0a\u4e00\u81f4"),(0,r.yg)("li",{parentName:"ul"},"Intel64\uff1aEM64T\uff08Extended Memory 64 Technology\uff09\u6269\u5c55 64bit \u5185\u5b58\u6280\u672f\uff0c\u672c\u8d28\u4e0a\u548c AMD64 \u4e00\u6837\u90fd\u662f IA-32 \u7684\u589e\u5f3a\u7248\u672c\u3002"),(0,r.yg)("li",{parentName:"ul"},"IA-64\uff1a64 \u4f4d\u7684\u82f1\u7279\u5c14\u67b6\u6784\uff0c\u82f1\u7279\u5c14\u5b89\u817e\u67b6\u6784\uff08Intel Itanium architecture\uff09\uff0c\u4f7f\u7528\u5728 Itanium \u5904\u7406\u5668\u5bb6\u65cf\u4e0a\u7684 64 \u4f4d\u6307\u4ee4\u96c6\u67b6\u6784\uff0c\u7531\u82f1\u7279\u5c14\u516c\u53f8\u4e0e\u60e0\u666e\u516c\u53f8\u5171\u540c\u5f00\u53d1\u3002IA \u662f Intel Architecture\uff08\u82f1\u7279\u5c14\u67b6\u6784\uff09\u7684\u7f29\u5199\uff0c64 \u6307 64 \u4f4d\u7cfb\u7edf\u3002\u4f7f\u7528\u8fd9\u79cd\u67b6\u6784\u7684 CPU\uff0c\u5305\u62ec Itanium \u548c Itanium 2\u3002\u6b64\u67b6\u6784\u4e0e x86 \u53ca x86-64 \u5e76\u4e0d\u76f8\u5bb9\uff0c\u64cd\u4f5c\u7cfb\u7edf\u4e0e\u8f6f\u4ef6\u9700\u4f7f\u7528 IA-64 \u4e13\u7528\u7248\u672c\u3002")),(0,r.yg)("h4",{id:"arm-\u67b6\u6784"},"ARM \u67b6\u6784"),(0,r.yg)("p",null,"ARM \u67b6\u6784\uff0c\u4e5f\u79f0\u4f5c\u8fdb\u9636\u7cbe\u7b80\u6307\u4ee4\u96c6\u673a\u5668\uff08Advanced RISC Machine\uff0c\u66f4\u65e9\u79f0\u4f5c\uff1aAcorn RISC Machine\uff09\uff0c\u662f\u4e00\u4e2a 32 \u4f4d\u7cbe\u7b80\u6307\u4ee4\u96c6\uff08RISC\uff09\u5904\u7406\u5668\u67b6\u6784\uff0c\u5176\u5e7f\u6cdb\u5730\u4f7f\u7528\u5728\u8bb8\u591a\u5d4c\u5165\u5f0f\u7cfb\u7edf\u8bbe\u8ba1\u3002\u7531\u4e8e\u8282\u80fd\u7684\u7279\u70b9\uff0cARM \u5904\u7406\u5668\u975e\u5e38\u9002\u7528\u4e8e\u884c\u52a8\u901a\u8baf\u9886\u57df\uff0c\u7b26\u5408\u5176\u4e3b\u8981\u8bbe\u8ba1\u76ee\u6807\u4e3a\u4f4e\u8017\u7535\u7684\u7279\u6027\u3002"),(0,r.yg)("p",null,"ARM \u6388\u6743\u65b9\u5f0f\uff1aARM \u516c\u53f8\u672c\u8eab\u5e76\u4e0d\u9760\u81ea\u6709\u7684\u8bbe\u8ba1\u6765\u5236\u9020\u6216\u51fa\u552e CPU \uff0c\u800c\u662f\u5c06\u5904\u7406\u5668\u67b6\u6784\u6388\u6743\u7ed9\u6709\u5174\u8da3\u7684\u5382\u5bb6\u3002"),(0,r.yg)("p",null,"\u56fd\u5916\u751f\u4ea7\u5382\u5546\uff1aTI \uff08\u5fb7\u5dde\u4eea\u5668\uff09\u3001Samsung\uff08\u4e09\u661f\uff09\u3001Freescale\uff08\u98de\u601d\u5361\u5c14\uff09\u3001Marvell\uff08\u9a6c\u7ef4\u5c14\uff09\u3001Nvidia\uff08\u82f1\u4f1f\u8fbe\uff09\u3001Qualcomm(\u9ad8\u901a\uff09\u3001STMicroelectronics(\u610f\u6cd5\u534a\u5bfc\u4f53\uff09\u3002"),(0,r.yg)("p",null,"\u56fd\u5185\u751f\u4ea7\u5382\u5546\uff1a\u534e\u4e3a\uff08\u6d77\u601d\u82af\u7247\uff09\u3001\u98de\u817e\uff08FT-1500\u3001FT2000-4 \u7b49 CPU \u82af\u7247\uff09\u3001\u5146\u6613\u521b\u65b0\uff08GD32 \u7cfb\u5217 MCU\uff0c\u53c2\u8003 STM32 \u7cfb\u5217\uff09\u3001\u745e\u82af\u5fae\uff08RK \u7cfb\u5217\u82af\u7247\uff09\u3001\u8054\u53d1\u79d1\uff08\u53f0\u6e7e\uff0c\u5929\u7391\u7cfb\u5217\uff09\u3002"),(0,r.yg)("h4",{id:"mpis-\u67b6\u6784"},"MPIS \u67b6\u6784"),(0,r.yg)("p",null,"MIPS \u662f\u4e16\u754c\u4e0a\u5f88\u6d41\u884c\u7684\u4e00\u79cd RISC \u5904\u7406\u5668\u3002MIPS \u6280\u672f\u516c\u53f8\u662f\u7f8e\u56fd\u8457\u540d\u7684\u82af\u7247\u8bbe\u8ba1\u516c\u53f8\uff0c\u5b83\u91c7\u7528\u7cbe\u7b80\u6307\u4ee4\u7cfb\u7edf\u8ba1\u7b97\u7ed3\u6784(RISC)\u6765\u8bbe\u8ba1\u82af\u7247\u3002"),(0,r.yg)("p",null,"MPIS \u67b6\u6784\u6388\u6743\u548c ARM \u67b6\u6784\u6388\u6743\u4e0d\u4e00\u6837\uff0cARM \u67b6\u6784\u6388\u6743\u7528\u6237\u57fa\u672c\u4e0d\u80fd\u81ea\u884c\u4fee\u6539\uff0c\u800c MPIS \u67b6\u6784\u6388\u6743\u540e\uff0c\u53ef\u4ee5\u81ea\u5df1\u4fee\u6539\u3002\u76ee\u524d MPIS \u53d1\u626c\u5149\u5927\u5bc4\u5e0c\u671b\u4e2d\u79d1\u9f99\u82af\u516c\u53f8\uff0c\u9f99\u82af\u5904\u7406\u5668\u4ece\u9f99\u82af 1 \u53f7\uff0c\u5230\u73b0\u5728\u7684\u9f99\u82af 3 \u53f7\u7cfb\u5217\u7684 3A4000\uff0cCPU \u7684\u6027\u80fd\u5df2\u7ecf\u5927\u5e45\u5ea6\u63d0\u9ad8\uff0c\u5728\u5b8c\u5168\u53ef\u4ee5\u80dc\u4efb\u65e5\u5e38\u529e\u516c\u6216\u8005\u4f5c\u4e3a\u7279\u6b8a\u7528\u9014\u7684\u670d\u52a1\u5668\u3002\u9f99\u82af CPU \u548c\u56fd\u4ea7\u7684\u98de\u817e\uff08FT\uff09\u5904\u7406\u5668\u5e76\u9a7e\u9f50\u9a71\uff0c\u53d1\u5c55\u6211\u56fd\u81ea\u4e3b\u53ef\u63a7 CPU\u3002"),(0,r.yg)("h4",{id:"powerpc-\u7cfb\u5217"},"PowerPC \u7cfb\u5217"),(0,r.yg)("p",null,"PowerPC \u662f\u4e00\u79cd\u7cbe\u7b80\u6307\u4ee4\u96c6\uff08RISC\uff09\u67b6\u6784\u7684\u4e2d\u592e\u5904\u7406\u5668\uff08CPU\uff09\uff0c\u5176\u57fa\u672c\u7684\u8bbe\u8ba1\u6e90\u81ea IBM\uff08\u56fd\u9645\u5546\u7528\u673a\u5668\u516c\u53f8\uff09\u7684 IBMPowerPC 601 \u5fae\u5904\u7406\u5668 POWER\uff08PerformanceOptimized With Enhanced RISC\uff1b\u300aIBM Connect \u7535\u5b50\u62a5\u300b2007 \u5e74 8 \u6708\u53f7\u8bd1\u4e3a\u201c\u589e\u5f3a RISC \u6027\u80fd\u4f18\u5316\u201d\uff09\u67b6\u6784\u3002\u4e8c\u5341\u4e16\u7eaa\u4e5d\u5341\u5e74\u4ee3\uff0cIBM(\u56fd\u9645\u5546\u7528\u673a\u5668\u516c\u53f8)\u3001Apple\uff08\u82f9\u679c\u516c\u53f8\uff09\u548c Motorola\uff08\u6469\u6258\u7f57\u62c9\uff09\u516c\u53f8\u5f00\u53d1 PowerPC \u82af\u7247\u6210\u529f\uff0c\u5e76\u5236\u9020\u51fa\u57fa\u4e8e PowerPC \u7684\u591a\u5904\u7406\u5668\u8ba1\u7b97\u673a\u3002PowerPC \u67b6\u6784\u7684\u7279\u70b9\u662f\u53ef\u4f38\u7f29\u6027\u597d\u3001\u65b9\u4fbf\u7075\u6d3b\u3002"),(0,r.yg)("p",null,"PowerPC \u5904\u7406\u5668\u6709\u5e7f\u6cdb\u7684\u5b9e\u73b0\u8303\u56f4\uff0c\u5305\u62ec\u4ece\u8bf8\u5982 Power4 \u90a3\u6837\u7684\u9ad8\u7aef\u670d\u52a1\u5668 CPU \u5230\u5d4c\u5165\u5f0f CPU \u5e02\u573a\uff08\u4efb\u5929\u5802 Gamecube \u4f7f\u7528\u4e86 PowerPC\uff09\u3002PowerPC \u5904\u7406\u5668\u6709\u975e\u5e38\u5f3a\u7684\u5d4c\u5165\u5f0f\u8868\u73b0\uff0c\u56e0\u4e3a\u5b83\u5177\u6709\u4f18\u5f02\u7684\u6027\u80fd\u3001\u8f83\u4f4e\u7684\u80fd\u91cf\u635f\u8017\u4ee5\u53ca\u8f83\u4f4e\u7684\u6563\u70ed\u91cf\u3002\u9664\u4e86\u8c61\u4e32\u884c\u548c\u4ee5\u592a\u7f51\u63a7\u5236\u5668\u90a3\u6837\u7684\u96c6\u6210 I/O\uff0c\u8be5\u5d4c\u5165\u5f0f\u5904\u7406\u5668\u4e0e\u201c\u53f0\u5f0f\u673a\u201dCPU \u5b58\u5728\u975e\u5e38\u663e\u8457\u7684\u533a\u522b\u3002"),(0,r.yg)("h4",{id:"sparc-\u67b6\u6784"},"SPARC \u67b6\u6784"),(0,r.yg)("p",null,"SPARC \u67b6\u6784\uff08Scalable Processor ARChitecture\uff0c\u53ef\u6269\u5c55\u5904\u7406\u5668\u67b6\u6784\uff09\u662f\u56fd\u9645\u4e0a\u6d41\u884c\u7684 RISC \u5904\u7406\u5668\u4f53\u7cfb\u67b6\u6784\u4e4b\u4e00\uff0cSPRAC \u5982\u4eca\u5df2\u53d1\u5c55\u6210\u4e3a\u4e00\u4e2a\u5f00\u653e\u7684\u6807\u51c6\uff0c\u4efb\u4f55\u673a\u6784\u6216\u4e2a\u4eba\u5747\u53ef\u7814\u7a76\u6216\u5f00\u53d1\u57fa\u4e8e SPRAC \u67b6\u6784\u7684\u4ea7\u54c1\uff0c\u800c\u65e0\u9700\u4ea4\u7eb3\u7248\u6743\u8d39\u3002SPARC \u5904\u7406\u5668\u67b6\u6784\u5177\u5907\u7cbe\u7b80\u6307\u4ee4\u96c6\uff08RISC\uff09\u3001\u652f\u6301 32 \u4f4d/64 \u4f4d\u6307\u4ee4\u7cbe\u5ea6\uff0c\u67b6\u6784\u8fd0\u884c\u7a33\u5b9a\u3001\u53ef\u6269\u5c55\u6027\u4f18\u826f\u3001\u4f53\u7cfb\u6807\u51c6\u5f00\u653e\u7b49\u7279\u70b9\u3002SPARC \u56e0\u6b64\u5f97\u4ee5\u8fc5\u901f\u53d1\u5c55\u58ee\u5927\uff0c\u5728\u73b0\u5728\u5df2\u7ecf\u6709\u5927\u7ea6 3 \u4e07\u591a\u4e2a\u6210\u529f\u7684\u5e94\u7528\u6848\u4f8b\u3002"),(0,r.yg)("p",null,"SPARCV7/V8 \u662f\u76ee\u524d\u5d4c\u5165\u5f0f\u63a7\u5236\u7cfb\u7edf\u5e38\u7528\u7684\u5904\u7406\u5668\u6807\u51c6\u7248\u672c\uff0c\u5e76\u5728\u822a\u5929\u8bbe\u5907\u7684\u7535\u5b50\u7cfb\u7edf\u4e2d\u5f97\u5230\u5e7f\u6cdb\u5e94\u7528\u3002\u7136\u800c\uff0cSPARC \u53ea\u662f\u4e00\u4e2a\u5904\u7406\u5668\u7684\u67b6\u6784\u6807\u51c6\uff0c\u5e76\u4e0d\u63d0\u4f9b\u73b0\u6210\u7684\u6e90\u7801\u6216 IP \u6838\uff0c\u5177\u4f53\u7684\u82af\u7247\u5b9e\u73b0\u8981\u7531\u5f00\u53d1\u8005\u53bb\u5b8c\u6210\u3002"),(0,r.yg)("h4",{id:"alpha-\u67b6\u6784"},"Alpha \u67b6\u6784"),(0,r.yg)("p",null,"\u76ee\u524d\u56fd\u5185\u91c7\u7528\u6b64\u67b6\u6784\u7684\u662f\u7533\u5fae\u8d85\u7b97\u5904\u7406\u5668\uff0c\u5f97\u76ca\u4e8e\u56fd\u5bb6\u7684\u652f\u6301\uff0c\u7533\u5a01\u5904\u7406\u5668\u5728\u519b\u961f\u5e94\u7528\u5e7f\u6cdb\u3002"),(0,r.yg)("h3",{id:"cpu-\u67b6\u6784\u4e4b\u95f4\u7684\u7ade\u4e89"},"CPU \u67b6\u6784\u4e4b\u95f4\u7684\u7ade\u4e89"),(0,r.yg)("h4",{id:"pc-\u548c\u670d\u52a1\u5668\u7ade\u4e89"},"PC \u548c\u670d\u52a1\u5668\u7ade\u4e89"),(0,r.yg)("p",null,"PC \u7aef\u548c\u670d\u52a1\u5668\u7aef\u662f X86 \u67b6\u6784\u7684\u5929\u4e0b\uff0c\u800c X86 \u67b6\u6784\u57fa\u672c\u662f\u4ee5 Intel \u4e3a\u9996\uff0cAMD \u4e3a\u8f85\u4e8c\u5206\u5929\u4e0b\u4e4b\u52bf\u3002\u56fd\u4ea7 CPU \u57fa\u672c\u53ea\u80fd\u7528\u5728\u519b\u5de5\u884c\u4e1a\u6216\u8005\u4e8b\u4e1a\u5355\u4f4d\u7b49\u3002\u5176\u5b9e\u8bf4\u6027\u80fd\uff0cpowerpc\uff0c\u53ef\u8c13\u662f\u9ad8\u51fa\u4e0d\u80dc\u5bd2\u3002\u786c\u4ef6\u65b9\u9762\uff0cPower \u7cfb\u7edf\u5728\u53ef\u9760\u6027\u3001\u53ef\u7528\u6027\u548c\u53ef\u7ef4\u62a4\u6027\u7684\u65b9\u9762\u7684\u51fa\u8272\u8868\u73b0\u4f7f\u5f97 IBM \u4ece\u82af\u7247\u5230\u7cfb\u7edf\u6240\u8bbe\u8ba1\u7684\u6574\u673a\u65b9\u6848\u6709\u7740\u72ec\u6709\u7684\u4f18\u52bf\u3002Power \u67b6\u6784\u7684\u5904\u7406\u5668\u5728\u8d85\u7b97\u3001\u5927\u578b\u4f01\u4e1a\u7684 UNIX \u670d\u52a1\u5668\u7b49\u591a\u4e2a\u65b9\u9762\u5e94\u7528\u4e5f\u5341\u5206\u6210\u529f\u3002\u5728\u8f6f\u4ef6\u65b9\u9762\uff0c\u5176\u4e13\u7528\u7684 AIX \u7cfb\u7edf\u5728\u7a33\u5b9a\u6027\u3001\u8f6f\u4ef6\u65b9\u6848\u96c6\u6210\u5ea6\u548c\u5382\u5546\u6280\u672f\u652f\u6301\u80fd\u529b\u65b9\u9762\u90fd\u8981\u66f4\u5f3a\u3002\u7531\u4e8e\u7528\u6237\u9009\u4e00\u5e73\u53f0\u4e3b\u8981\u770b\u8f6f\u4ef6\u9700\u6c42\uff0c\u4e00\u822c\u5bf9\u6570\u636e\u4fdd\u62a4\u548c 7","*","24 \u5c0f\u65f6\u4e0d\u5b95\u673a\u7b49\u6709\u6240\u8981\u6c42\uff0cpower \u67b6\u6784\u7684\u7a33\u5b9a\u6027\u548c\u8fd0\u7ef4\u7b49\u65b9\u9762\u76f8\u5bf9\u66f4\u4f18\u3002\u4f46\u662f\uff0c\u7531\u4e8e IBM \u7684\u6280\u672f\u628a\u63a7\uff0c\u4f7f\u5f97\u5176\u4ef7\u683c\u592a\u4e0d\u53cb\u597d\uff0c\u540c\u65f6\u6280\u672f\u4e5f\u8d76\u4e0d\u4e0a\u73af\u5883\u7684\u53d8\u5316\uff0c\u5728\u4e91\u8ba1\u7b97\u5174\u8d77\u540e\uff0c\u968f\u7740\u5206\u5e03\u5f0f\u7cfb\u7edf\u9010\u6e10\u6210\u719f\uff0c\u7cfb\u7edf\u5bf9\u5c0f\u578b\u673a\u7684\u4f9d\u8d56\u5f00\u59cb\u964d\u4f4e\uff0c\u6539\u4e3a\u4f9d\u9760\u96c6\u7fa4\u63d0\u4f9b\uff0c\u6027\u80fd\u4e5f\u53ef\u5b9e\u73b0\u5206\u5e03\u5f0f\u5904\u7406\u3002\u800c\u66f4\u4e3a\u5173\u952e\u7684\u662f\uff0cIBM \u7684\u5168\u5957\u670d\u52a1\u5c3d\u7ba1\u7a33\u5b9a\u6027\u4f18\u79c0\uff0c\u4f46\u5374\u5f71\u54cd\u4e86 Power \u67b6\u6784\u5bf9\u5176\u4ed6\u5546\u5bb6\u7684\u5438\u5f15\u529b\u3002"),(0,r.yg)("p",null,"\u800c Sparc \u67b6\u6784\u548c Power \u67b6\u6784\u57fa\u672c\u72af\u4e86\u540c\u6837\u7684\u9519\u8bef\uff1a\u4ef7\u683c\u4e0d\u53cb\u597d\u3002SPARC \u67b6\u6784\u6d4b\u6210\u529f\u548c Sun \u65d7\u4e0b\u7684 Solaris \u7cfb\u7edf\u6709\u7740\u5bc6\u4e0d\u53ef\u5206\u7684\u5173\u7cfb\u3002\u5f53\u8ba1\u7b97\u673a\u7cfb\u7edf\u5e9e\u5927\u3001\u7528\u6237\u6570\u91cf\u5de8\u5927\u589e\u52a0\u65f6\uff0c\u57fa\u4e8e Unix \u64cd\u4f5c\u7cfb\u7edf\u6253\u9020\u7684 Solaris \u80fd\u66f4\u597d\u5730\u5229\u7528\u8ba1\u7b97\u673a\u8d44\u6e90\uff0c\u662f\u6240\u6709\u5546\u4e1a\u7248\u4e2d\u6700\u53ef\u9760\u6700\u5b8c\u5584\u7684\u7248\u672c\u3002\u800c\u4f9d\u8d56 SPARC \u67b6\u6784\u548c Solaris \u7cfb\u7edf\u7684\u6027\u80fd\u548c\u53ef\u9760\u6027\uff0c\u5176\u5360\u9886\u4e86\u670d\u52a1\u5668\u9ad8\u7aef\u5e02\u573a\u3002Sun \u7684\u53e6\u4e00\u4e2a\u66f4\u4e3a\u77e5\u540d\u7684\u4ea7\u54c1\u662f Java\uff0c\u867d\u7136\u5728\u4e0a\u4e16\u7eaa 90 \u5e74\u4ee3\u4e3a\u667a\u80fd\u5bb6\u7535\u5f00\u53d1\u7684 Java \u5e76\u6ca1\u6709\u4e3a\u5176\u5e26\u6765\u76f8\u5e94\u7684\u56de\u62a5\uff0c\u4f46\u5df2\u6210\u4e3a\u4eca\u5929\u79fb\u52a8\u65f6\u4ee3\u6700\u91cd\u8981\u7684\u5f00\u53d1\u8bed\u8a00\u3002\u5982\u6b64\u5f3a\u5927\u7684\u5b9e\u529b\u672c\u5e94\u7edf\u9886\u670d\u52a1\u5668\u5e02\u573a\uff0c\u4f46\u9057\u61be\u7684\u662f\uff0c\u5728 windows \u548c\u82f1\u7279\u5c14\u7ec4\u6210 Wintel \u8054\u76df\u4e4b\u540e\uff0c\u4e24\u8005\u51ed\u501f\u81ea\u8eab\u5728\u5404\u81ea\u5e02\u573a\u7684\u89c4\u6a21\u6548\u5e94\uff0c\u4f7f\u5f97\u91c7\u7528 Wintel \u4ea7\u54c1\u7684\u670d\u52a1\u5668\u5382\u5546\u53ef\u4ee5\u901a\u8fc7\u4f4e\u5ec9\u7684\u4ef7\u683c\u5927\u8086\u62a2\u5360\u4e2d\u4f4e\u7aef\u5e02\u573a\u3002\u800c\u5f53 Sun \u9192\u609f\u8fc7\u6765\uff0c\u901a\u8fc7\u5f00\u6e90\u7b49\u65b9\u5f0f\u60f3\u8981\u633d\u56de\u8d25\u5c40\u65f6\u4e3a\u65f6\u5df2\u665a\u3002"),(0,r.yg)("p",null,"X86 \u67b6\u6784\u4e0e Power \u548c SPARC \u5728\u9ad8\u6027\u80fd\u9886\u57df\u7684\u98ce\u751f\u6c34\u8d77\u4e0d\u540c\uff0cx86 \u67b6\u6784\u662f\u5929\u751f\u7684\u5c0f\u5c4c\u4e1d\u30021978 \u5e74\u4ed6\u51fa\u751f\u7684\u90a3\u5e74\uff0c\u82f1\u7279\u5c14\u8fd8\u53ea\u662f\u4e00\u4e2a\u666e\u901a\u7684\u79d1\u6280\u516c\u53f8\u3002\u53ef\u662f x86 \u67b6\u6784\u968f\u540c\u5176 cisc \u6307\u4ee4\u96c6\u5374\u5f00\u542f\u4e86\u4e00\u4e2a\u65b0\u7684\u65f6\u4ee3\u3002x86 \u4e4b\u6240\u4ee5\u53ef\u4ee5\u8d62\u5f97\u5e02\u573a\u4e3b\u8981\u539f\u56e0\u5728\u4e8e\u5176\u662f\u4e00\u4e2a\u5341\u5206\u5f00\u653e\u7684\u67b6\u6784\u3002IBM \u548c SUN \u5f53\u5e74\u90fd\u662f\u4ece\u82af\u7247\u5230\u670d\u52a1\u5668\u5230\u7cfb\u7edf\u4e00\u624b\u5305\u529e\u7684\u516c\u53f8\u3002\u800c\u82f1\u7279\u5c14\u5219\u662f\u4e00\u4e2a\u5341\u5206\u7eaf\u7cb9\u7684\u82af\u7247\u5382\u5546\uff0c\u5176\u4e1a\u52a1\u4ec5\u4e0e AMD \u7b49\u5c11\u6570\u82af\u7247\u751f\u4ea7\u8005\u5b58\u5728\u7ade\u4e89\uff0c\u8fd9\u5c31\u4f7f\u5f97\u670d\u52a1\u5668\u5382\u5546\u4e0d\u7528\u5fcc\u60ee\u4e0e\u4e4b\u53d1\u751f\u7ade\u4e89\u5173\u7cfb\u3002"),(0,r.yg)("p",null,'\u5355\u4ece\u6027\u80fd\u6765\u770b\uff0c\u65e0\u8bba Power \u8fd8\u662f SPARC \u67b6\u6784\u90fd\u53ef\u4ee5\u51fb\u6e83 x86\uff0c\u53ef\u662f\u6700\u7ec8\u80fd\u591f\u8d62\u4e0b\u6765\u7684\u5374\u504f\u504f\u662f"\u6700\u5f31"\u7684 x86 \u67b6\u6784\u3002\u8fd9\u5e76\u975e\u52a3\u5e01\u6dd8\u6c70\u826f\u5e01\uff0c\u800c\u662f\u5e02\u573a\u7ade\u4e89\u7684\u9009\u62e9\uff0c\u6839\u6e90\u4e0a\u8bb2\uff0cx86 \u7684\u6210\u529f\u5728\u4e8e\u82f1\u7279\u5c14\u6839\u672c\u4e0d\u78b0\u670d\u52a1\u5668\u3002\u56e0\u6b64\u4e0d\u8bba\u8bbe\u5907\u751f\u4ea7\u5546\u3001\u8f6f\u4ef6\u5f00\u53d1\u8005\u6216\u8005\u7cfb\u7edf\u5f00\u53d1\u8005\u90fd\u53ef\u4ee5\u4e0e\u4e0d\u5b58\u5728\u5229\u76ca\u7ade\u4e89\u5173\u7cfb\u7684\u82f1\u7279\u5c14\u5408\u4f5c\u3002\u53d7\u76ca\u4e8e\u6b64\uff0cx86 \u67b6\u6784\u7684\u517c\u5bb9\u6027\u4e5f\u8d8a\u53d1\u5f3a\u5927\uff0c\u751f\u6001\u4f53\u7cfb\u8d8a\u53d1\u5b8c\u5584\uff0c\u8fd9\u624d\u6210\u5c31\u4e86\u73b0\u5982\u4eca\u5e02\u573a\u5360\u6709\u7387\u8d85\u8fc7 90%\u7684\u4e00\u5bb6\u72ec\u5927\u5c40\u9762\uff0c\u82f1\u7279\u5c14\u4e5f\u501f\u52a9 x86 \u67b6\u6784\u4e00\u8dc3\u6210\u4e3a\u5168\u7403\u9876\u7ea7\u7684\u82af\u7247\u63d0\u4f9b\u5546\u3002'),(0,r.yg)("h4",{id:"\u79fb\u52a8\u7aef\u7ade\u4e89"},"\u79fb\u52a8\u7aef\u7ade\u4e89"),(0,r.yg)("p",null,"\u6b63\u5982 PC \u548c\u670d\u52a1\u5668\u7aef\u662f X86 \u7684\u5929\u4e0b\u4e00\u6837\uff0c\u79fb\u52a8\u7aef\u662f ARM \u7684\u5929\u4e0b\u3002Intel \u5728 CPU \u754c\u7684\u5927\u540d\uff0c\u53ef\u8c13\u5bb6\u55bb\u6237\u6653\uff0c\u4f46\u662f\u5728\u624b\u673a\u767b\u79fb\u52a8\u7aef\u5374\u96be\u4ee5\u770b\u5230\u82f1\u56fd ARM \u516c\u53f8\u80cc\u5f71\u3002\u5728 2006 \u5e74\uff0c\u81ea\u4ece AMD \u7684 64 \u4f4d\u5904\u7406\u5668\u53d1\u5e03\u4ee5\u6765\uff0cAMD \u6210\u529f\u9006\u88ad\u4e86 Intel\uff0c\u5e02\u573a\u5360\u6709\u7387\u5927\u5e45\u4e0a\u5347\uff0c\u800c Intel \u8001\u8fc8\u7684 P4 \u5904\u7406\u5668\u5219\u662f\u8179\u80cc\u53d7\u654c\uff0c\u5c3d\u5931\u6614\u65e5\u9738\u6c14\uff0c\u5e02\u573a\u8868\u73b0\u4e00\u8def\u8d70\u4f4e\u3002\u4e3a\u4e86\u7a33\u4f4f\u6295\u8d44\u4eba\u7684\u4fe1\u5fc3\uff0c\u6700\u597d\u7684\u505a\u6cd5\u81ea\u7136\u662f\u8ba9\u516c\u53f8\u6301\u7eed\u76c8\u5229\uff0c\u4e3a\u6b64 Intel \u8fdb\u884c\u5927\u89c4\u6a21\u7684\u91cd\u6574\uff0c\u5305\u62ec\u4e0a\u4efb\u65b0 CEO \u6b27\u5fb7\u5b81\u3001\u5927\u89c4\u6a21\u88c1\u5458\u3001\u4ee5\u53ca\u51fa\u552e XScale \u624b\u673a\u5904\u7406\u5668\u4e1a\u52a1\u3002\u6b63\u56e0\u4e3a\u8fd9\u4e2a\u4e3e\u63aa\uff0c\u4f7f\u5f97 Intel \u5230\u8fbe\u4e86\u4eba\u751f\u5dc5\u5cf0\uff0c\u4ece PC \u5e02\u573a\u6709\u8d5a\u7684\u94b5\u6ee1\u76c6\u6ee1\uff0c\u7136\u800c\u4e5f\u662f\u56e0\u4e3a\u6b64\uff0cIntel \u5ffd\u89c6\u4e86\u79fb\u52a8\u9886\u57df\u7684\u8fc5\u731b\u53d1\u5c55\u3002\uff08\u5f53\u5e74\uff0cIntel \u62d2\u7edd\u4e86\u4e54\u5e2e\u4e3b\u8fd8\u662f PPT \u7684 Iphone \u624b\u673a\uff0c\u4e0d\u7136\u662f\u5426\u5c31\u4f1a\u4e0d\u4e00\u6837\uff1f\u4f46\u662f\u60f3\u4e00\u4e0b Iphone X \u4f7f\u7528 Intel \u57fa\u5e26\uff0c\u4fe1\u53f7\u5dee\u7684\u8bdf\u75c5\uff0cIntel \u505a\u624b\u673a\u82af\u662f\u5426\u4f1a\u81ed\u540d\u662d\u8457\u4e5f\u672a\u53ef\u77e5\uff09"),(0,r.yg)("p",null,"\u548c Intel \u516c\u53f8\u4e0d\u540c\uff0c ARM \u516c\u53f8\u4e0d\u5236\u9020\uff0c\u4e0d\u9500\u552e\u82af\u7247\uff0c\u800c\u662f\u53ea\u81ea\u5df1\u8bbe\u8ba1 IP \u6838\uff0c\u5305\u62ec\u6307\u4ee4\u96c6\u67b6\u6784\u3001\u5fae\u5904\u7406\u5668\u3001GPU\u3001\u4e92\u8fde\u67b6\u6784\u7b49\uff0c\u7136\u540e\u8c01\u60f3\u7528\u5c31\u6388\u6743\u5356\u7ed9\u8c01\uff0c\u518d\u4ece\u6bcf\u9897\u5b9e\u9645\u9020\u51fa\u6765\u7684\u4ea7\u54c1\u4e2d\u6536\u53d6\u7248\u7a0e\u3002ARM \u6709\u4e09\u79cd\u6388\u6743\u6a21\u5f0f\uff0c\u5206\u522b\u662f\u67b6\u6784\u6388\u6743\u3001\u5185\u6838\u6388\u6743\u3001\u4f7f\u7528\u6388\u6743\uff0c\u5206\u522b\u5bf9\u5e94\u5927\u4e2d\u5c0f\u516c\u53f8\uff0c\u975e\u5e38\u8ba8\u559c\uff0c\u8d34\u4e2a\u724c\u5b50\u5c31\u80fd\u8bf4\u662f\u81ea\u5df1\u7684 CPU\uff0c\u4e3a ARM \u5904\u7406\u5668\u7684\u5e7f\u6cdb\u4f7f\u7528\u6253\u4e0b\u575a\u5b9e\u57fa\u7840\u3002"),(0,r.yg)("p",null,"ARM \u7684\u6210\u529f\u9664\u4e86\u5546\u4e1a\u6a21\u5f0f\u7684\u72ec\u7279\u4e4b\u5916\u8fd8\u5c11\u4e0d\u5f97\u81ea\u8eab\u7d20\u8d28\u7684\u4f18\u79c0\uff0cIntel \u6280\u672f\u6beb\u65e0\u7591\u95ee\u662f\u9876\u5c16\u7684\uff0c\u4f46\u5e94\u7528\u573a\u666f\u5728\u4f20\u7edf PC \u4e0a\uff0c\u6362\u6210\u79fb\u52a8\u8bbe\u5907\u5c31\u884c\u4e0d\u901a\u4e86\uff0c\u79fb\u52a8\u8bbe\u5907\u6bd4\u8d77\u6027\u80fd\u9996\u5148\u8981\u8003\u8651\u529f\u8017\u548c\u7eed\u822a\uff0cIntel \u5c31\u5403\u4e86\u8fd9\u4e2a\u5927\u4e8f\uff0cX86 \u67b6\u6784\u72ec\u6b65\u5929\u4e0b\u80af\u5b9a\u662f\u4e0d\u80fd\u968f\u610f\u53d8\u6539\u7684\uff0c\u79fb\u52a8\u8bbe\u5907\u5f53\u7136\u7ee7\u7eed\u6cbf\u7528 X86 \u67b6\u6784\uff0c\u7136\u800c\u6362\u6765\u5374\u662f\u9ad8\u529f\u8017\u548c\u5feb\u901f\u6389\u7535\uff0c\u6362\u8c01\u90fd\u770b\u4e0d\u4e0a\u3002\u53cd\u4e4b\u529f\u8017\u63a7\u5236\u5219\u662f ARM \u7684\u5f3a\u9879\uff0c\u4f7f\u7528\u7cbe\u7b80\u6307\u4ee4\u96c6\uff08RISC\uff09\u548c\u521b\u65b0\u7684 big.LITTLE \u67b6\u6784\uff0c\u4f7f ARM \u5904\u7406\u5668\u80fd\u8017\u6bd4\u4e00\u76f4\u9886\u5148\u4e8e Intel\u3002"),(0,r.yg)("p",null,"Intel \u6b63\u5728\u79ef\u6781\u5e03\u5c40\uff0c\u63a8\u51fa\u5e94\u7528\u4e8e IoT \u7269\u8054\u7f51\u7684 Atom E3900 \u53ca\u8f66\u8f7d\u7535\u5b50\u7684 Atom A3900 \u7cfb\u5217\uff0c\u53f7\u79f0 CPU \u6027\u80fd\u63d0\u5347 70%\uff0cGPU \u6027\u80fd\u63d0\u5347 190%\uff0c\u5176\u4e2d Atom A3900 \u7279\u522b\u9488\u5bf9\u9ad8\u6e29\u73af\u5883\u8bbe\u8ba1\uff0c\u53ef\u5728 110\xb0C \u9ad8\u6e29\u4e0b\u4f7f\u7528 15 \u5e74\u3002Intel \u662f\u4e00\u5bb6\u4f1f\u5927\u7684\u4f01\u4e1a\uff0c\u4f46\u4e5f\u662f\u4f1a\u72af\u9519\u8bef\u7684\uff0c\u65e2\u7136\u5df2\u7ecf\u9519\u5931\u79fb\u52a8\u5e02\u573a\uff0c\u4e0d\u59a8\u6682\u65f6\u8131\u79bb\uff0c\u63d0\u524d\u505a\u597d\u4e0b\u4e00\u9636\u6bb5\u7684\u6280\u672f\u7814\u53d1\uff085G\uff09\uff0c\u4e5f\u6709\u53ef\u80fd\u5b9e\u73b0\u5f2f\u9053\u8d85\u8f66\u3002"),(0,r.yg)("h3",{id:"\u64cd\u4f5c\u7cfb\u7edf"},"\u64cd\u4f5c\u7cfb\u7edf"),(0,r.yg)("p",null,"\u64cd\u4f5c\u7cfb\u7edf\uff08Operating System\uff0cOS\uff09\u662f\u4e00\u7ec4\u4e3b\u7ba1\u5e76\u63a7\u5236\u8ba1\u7b97\u673a\u64cd\u4f5c\u3001\u8fd0\u7528\u548c\u8fd0\u884c\u786c\u4ef6\u3001\u8f6f\u4ef6\u8d44\u6e90\u548c\u63d0\u4f9b\u516c\u5171\u670d\u52a1\u6765\u7ec4\u7ec7\u7528\u6237\u4ea4\u4e92\u7684\u76f8\u4e92\u5173\u8054\u7684\u7cfb\u7edf\u8f6f\u4ef6\u7a0b\u5e8f\u3002\u6839\u636e\u8fd0\u884c\u7684\u73af\u5883\uff0c\u64cd\u4f5c\u7cfb\u7edf\u53ef\u4ee5\u5206\u4e3a\u684c\u9762\u64cd\u4f5c\u7cfb\u7edf\uff0c\u624b\u673a\u64cd\u4f5c\u7cfb\u7edf\uff0c\u670d\u52a1\u5668\u64cd\u4f5c\u7cfb\u7edf\uff0c\u5d4c\u5165\u5f0f\u64cd\u4f5c\u7cfb\u7edf\u7b49\u3002"),(0,r.yg)("p",null,"\u64cd\u4f5c\u7cfb\u7edf\u80fd\u7ba1\u7406\u8ba1\u7b97\u673a\u7cfb\u7edf\u7684\u786c\u4ef6\u3001\u8f6f\u4ef6\u53ca\u6570\u636e\u8d44\u6e90\uff0c\u63a7\u5236\u7a0b\u5e8f\u8fd0\u884c\uff0c\u6539\u5584\u4eba\u673a\u754c\u9762\uff0c\u4e3a\u5176\u5b83\u5e94\u7528\u8f6f\u4ef6\u63d0\u4f9b\u652f\u6301\uff0c\u5e76\u4f7f\u8ba1\u7b97\u673a\u7cfb\u7edf\u6240\u6709\u8d44\u6e90\u6700\u5927\u9650\u5ea6\u5730\u53d1\u6325\u4f5c\u7528\u3002\u64cd\u4f5c\u7cfb\u7edf\u4e3b\u8981\u529f\u80fd\u5305\u62ec\uff1a\u8fdb\u7a0b\u7ba1\u7406\u3001\u5b58\u50a8\u7ba1\u7406\u3001\u8bbe\u5907\u7ba1\u7406\u3001\u6587\u4ef6\u7ba1\u7406\u3001\u4f5c\u4e1a\u7ba1\u7406\u7b49\u3002"),(0,r.yg)("h4",{id:"\u684c\u9762\u64cd\u4f5c\u7cfb\u7edf"},"\u684c\u9762\u64cd\u4f5c\u7cfb\u7edf"),(0,r.yg)("p",null,"\u684c\u9762\u64cd\u4f5c\u7cfb\u7edf\u4e3b\u8981\u7528\u4e8e\u4e2a\u4eba\u8ba1\u7b97\u673a\u4e0a\u3002\u4e2a\u4eba\u8ba1\u7b97\u673a\u5e02\u573a\u4ece\u786c\u4ef6\u67b6\u6784\u4e0a\u6765\u8bf4\u4e3b\u8981\u5206\u4e3a\u4e24\u5927\u9635\u8425\uff0cPC \u673a\u4e0e Mac \u673a\uff0c\u4ece\u8f6f\u4ef6\u4e0a\u53ef\u4e3b\u8981\u5206\u4e3a\u4e24\u5927\u7c7b\uff0c\u5206\u522b\u4e3a\u7c7b Unix \u64cd\u4f5c\u7cfb\u7edf\u548c Windows \u64cd\u4f5c\u7cfb\u7edf\uff1a"),(0,r.yg)("p",null,"1\u3001Unix \u548c\u7c7b Unix \u64cd\u4f5c\u7cfb\u7edf\uff1aMac OS X\uff0cLinux \u53d1\u884c\u7248\uff08\u5982 Debian\uff0cUbuntu\uff0cLinux Mint\uff0copenSUSE\uff0cFedora \u7b49\uff09\uff1b"),(0,r.yg)("p",null,"2\u3001\u5fae\u8f6f\u516c\u53f8 Windows \u64cd\u4f5c\u7cfb\u7edf \uff1aWindows XP\uff0cWindows Vista\uff0cWindows 7\uff0cWindows 8\uff0cWindows 8.1\uff0cWindows 10\uff0cWindows 11 \u7b49\u3002"),(0,r.yg)("h4",{id:"\u670d\u52a1\u5668\u64cd\u4f5c\u7cfb\u7edf"},"\u670d\u52a1\u5668\u64cd\u4f5c\u7cfb\u7edf"),(0,r.yg)("p",null,"\u670d\u52a1\u5668\u64cd\u4f5c\u7cfb\u7edf\u4e00\u822c\u6307\u7684\u662f\u5b89\u88c5\u5728\u5927\u578b\u8ba1\u7b97\u673a\u4e0a\u7684\u64cd\u4f5c\u7cfb\u7edf\uff0c\u6bd4\u5982 Web \u670d\u52a1\u5668\u3001\u5e94\u7528\u670d\u52a1\u5668\u548c\u6570\u636e\u5e93\u670d\u52a1\u5668\u7b49\u3002\u670d\u52a1\u5668\u64cd\u4f5c\u7cfb\u7edf\u4e3b\u8981\u96c6\u4e2d\u5728\u4e09\u5927\u7c7b\uff1a"),(0,r.yg)("p",null,"1\u3001Unix \u7cfb\u5217\uff1aSUNSolaris\uff0cIBM-AIX\uff0cHP-UX\uff0cFreeBSD \u7b49\uff1b"),(0,r.yg)("p",null,"2\u3001Linux \u7cfb\u5217\uff1aRed Hat Linux\uff0cCentOS\uff0cDebian\uff0cUbuntu \u7b49\uff1b"),(0,r.yg)("p",null,"3\u3001Windows \u7cfb\u5217\uff1aWindows Server 2003\uff0cWindows Server 2008\uff0cWindows Server 2008 R2 \u7b49\u3002"),(0,r.yg)("h4",{id:"\u5d4c\u5165\u5f0f\u64cd\u4f5c\u7cfb\u7edf"},"\u5d4c\u5165\u5f0f\u64cd\u4f5c\u7cfb\u7edf"),(0,r.yg)("p",null,"\u5d4c\u5165\u5f0f\u64cd\u4f5c\u7cfb\u7edf\u662f\u5e94\u7528\u5728\u5d4c\u5165\u5f0f\u7cfb\u7edf\u7684\u64cd\u4f5c\u7cfb\u7edf\u3002\u5d4c\u5165\u5f0f\u7cfb\u7edf\u5e7f\u6cdb\u5e94\u7528\u5728\u751f\u6d3b\u7684\u5404\u4e2a\u65b9\u9762\uff0c\u6db5\u76d6\u8303\u56f4\u4ece\u4fbf\u643a\u8bbe\u5907\u5230\u5927\u578b\u56fa\u5b9a\u8bbe\u65bd\uff0c\u5982\u6570\u7801\u76f8\u673a\u3001\u624b\u673a\u3001\u5e73\u677f\u7535\u8111\u3001\u5bb6\u7528\u7535\u5668\u3001\u533b\u7597\u8bbe\u5907\u3001\u4ea4\u901a\u706f\u3001\u822a\u7a7a\u7535\u5b50\u8bbe\u5907\u548c\u5de5\u5382\u63a7\u5236\u8bbe\u5907\u7b49\uff0c\u8d8a\u6765\u8d8a\u591a\u5d4c\u5165\u5f0f\u7cfb\u7edf\u5b89\u88c5\u6709\u5b9e\u65f6\u64cd\u4f5c\u7cfb\u7edf\u3002"),(0,r.yg)("p",null,"\u5728\u5d4c\u5165\u5f0f\u9886\u57df\u5e38\u7528\u7684\u64cd\u4f5c\u7cfb\u7edf\u6709\u5d4c\u5165\u5f0f Linux\u3001Windows Embedded\u3001VxWorks \u7b49\uff0c\u4ee5\u53ca\u5e7f\u6cdb\u4f7f\u7528\u5728\u667a\u80fd\u624b\u673a\u6216\u5e73\u677f\u7535\u8111\u7b49\u6d88\u8d39\u7535\u5b50\u4ea7\u54c1\u7684\u64cd\u4f5c\u7cfb\u7edf\uff0c\u5982 Android\u3001iOS\u3001Symbian\u3001Windows Phone \u548c BlackBerry OS \u7b49\u3002"),(0,r.yg)("h3",{id:"\u53ef\u6267\u884c\u7a0b\u5e8f\u6267\u884c\u7684\u539f\u7406\u5206\u6790"},"\u53ef\u6267\u884c\u7a0b\u5e8f\u6267\u884c\u7684\u539f\u7406\u5206\u6790"),(0,r.yg)("p",null,"\u53ef\u6267\u884c\u7a0b\u5e8f\u6267\u884c\u5185\u5bb9\u53ef\u4ee5\u5206\u4e24\u7c7b\uff0c\u4e00\u662f CPU \u7684\u6307\u4ee4\uff0c\u4e8c\u662f\u64cd\u4f5c\u7cfb\u7edf\u7684\u7cfb\u7edf\u8c03\u7528\uff0c\u51e0\u4e4e\u6240\u6709\u7684\u53ef\u6267\u884c\u7a0b\u5e8f\u90fd\u662f\u8fd0\u884c\u5728\u64cd\u4f5c\u7cfb\u7edf\u4e4b\u4e0a\u7684\uff0c\u7531\u64cd\u4f5c\u7cfb\u7edf\u6765\u7edf\u4e00\u8c03\u5ea6\u53ef\u6267\u884c\u7a0b\u5e8f\u7684\u6267\u884c\u5185\u5bb9\u3002"),(0,r.yg)("p",null,"\u8bf4\u5230\u53ef\u6267\u884c\u7a0b\u5e8f\uff0c\u5fc5\u987b\u5f97\u8bf4\u4e00\u4e0b\uff0c\u5e94\u7528\u7a0b\u5e8f\u4e8c\u8fdb\u5236\u63a5\u53e3 ABI\uff0c\uff08Application Binary Interface\uff09\uff0cABI \u662f\u7f16\u8bd1\u5668\u548c\u94fe\u63a5\u5668\u9075\u5b88\u7684\u4e00\u7ec4\u89c4\u5219\uff0c\u4ee5\u8ba9\u7f16\u8bd1\u540e\u7684\u7a0b\u5e8f\u53ef\u4ee5\u6b63\u5e38\u5de5\u4f5c\u3002"),(0,r.yg)("p",null,"\u4e0d\u540c\u7684\u64cd\u4f5c\u7cfb\u7edf\u5bf9 ABI \u7684\u8981\u6c42\u4e0d\u4e00\u6837\uff0c\u4f8b\u5982 Linux \u8981\u6c42 ELF \u683c\u5f0f\uff0cWindows \u8981\u6c42 PE \u683c\u5f0f\u3002"),(0,r.yg)("p",null,"\u7b80\u5355\u6765\u8bf4\uff0cABI \u5c31\u662f\u63cf\u8ff0\u51fd\u6570\u540d\u5982\u4f55\u5b58\u50a8\uff0c\u51fd\u6570\u53c2\u6570\u7c7b\u578b\u5982\u4f55\u5b58\u50a8\u7684\u63a5\u53e3\u3002"),(0,r.yg)("p",null,"\u4e00\u4e2a\u7a0b\u5e8f\u8981\u60f3\u8c03\u7528\u5176\u5b83\u7a0b\u5e8f\u7f16\u8bd1\u51fa\u6765\u7684\u51fd\u6570\uff0c\u90a3\u4e48\u5c31\u5fc5\u987b\u77e5\u9053\u5176 ABI \u63a5\u53e3\u3002"),(0,r.yg)("p",null,"C \u8bed\u8a00\u5177\u6709\u4f18\u79c0\u7684 ABI \u517c\u5bb9\uff0c\u56e0\u4e3a\u4e3b\u6d41 C \u7f16\u8bd1\u5668\u7f16\u8bd1\u51fa\u6765\u7684\u51fd\u6570\uff0cABI \u63a5\u53e3\u5927\u90fd\u76f8\u540c\uff0c\u6240\u4ee5\u7528 C \u8bed\u8a00\u5199\u7684\u5e93\u80fd\u65b9\u4fbf\u7684\u88ab\u5176\u5b83\u7a0b\u5e8f\u8c03\u7528\u3002"),(0,r.yg)("p",null,"C++\u4e00\u822c\u4e0d\u5177\u6709\u5f88\u597d\u7684 ABI \u517c\u5bb9\uff0c\u56e0\u4e3a\u6bcf\u4e2a C++\u7f16\u8bd1\u5668\u7f16\u8bd1\u51fa\u6765\u7684\u63a5\u53e3\u53ef\u80fd\u4e0d\u540c\uff0c\u5bfc\u81f4\u4e86\u4f60\u65e0\u6cd5\u8c03\u7528\u5176\u5b83\u4eba\u7528 C++\u63a5\u53e3\u63d0\u4f9b\u7684\u5e93\u51fd\u6570\u3002\u6240\u4ee5 C++\u51fd\u6570\u5f80\u5f80\u5f3a\u5236\u4f7f\u7528 C \u7684 ABI \u7528\u4e8e\u7ed9\u5176\u5b83\u7a0b\u5e8f\u8c03\u7528\u3002"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"\u628a\u7b26\u53f7\u6807\u51c6\u3001\u53d8\u91cf\u5185\u5b58\u5e03\u5c40\u3001\u51fd\u6570\u8c03\u7528\u65b9\u5f0f\u7b49\u8ddf\u53ef\u6267\u884c\u4ee3\u7801\u4e8c\u8fdb\u5236\u517c\u5bb9\u6027\u76f8\u5173\u7684\u5185\u5bb9\u79f0\u4e3a ABI Application Binary Interface"),(0,r.yg)("li",{parentName:"ul"},"\u5e94\u7528\u7a0b\u5e8f\u4e8c\u8fdb\u5236\u63a5\u53e3\uff0c\u63cf\u8ff0\u4e86\u5e94\u7528\u7a0b\u5e8f\u548c\u64cd\u4f5c\u7cfb\u7edf\u4e4b\u95f4\uff0c\u4e00\u4e2a\u5e94\u7528\u548c\u5b83\u7684\u5e93\u4e4b\u95f4\uff0c\u6216\u8005\u5e94\u7528\u7684\u7ec4\u6210\u90e8\u5206\u4e4b\u95f4\u7684\u4f4e\u63a5\u53e3\u3002"),(0,r.yg)("li",{parentName:"ul"},"\u7f16\u7a0b\u8bed\u8a00\u5b9e\u73b0\u7684 ABI \u662f\u4e00\u79cd\u53ef\u4ee5\u4f7f\u5355\u72ec\u7f16\u8bd1\u7684\u6a21\u5757\u534f\u540c\u5de5\u4f5c\u7684\u4f4e\u7ea7\u7ec6\u8282\u7684\u89c4\u8303\u3002\u5982\u679c\u6ca1\u6709\u4e00\u4e2a\u7a33\u5b9a\u7684 ABI\uff0c\u5c31\u5fc5\u987b\u4f7f\u7528\u540c\u4e00\u7f16\u8bd1\u5668\u7684\u540c\u4e00\u7248\u672c\u7f16\u8bd1\u7a0b\u5e8f\u7684\u6240\u6709\u90e8\u5206\u3002"),(0,r.yg)("li",{parentName:"ul"},"API \u662f\u6e90\u4ee3\u7801\u7ea7\u522b\u7684\u63a5\u53e3\uff0cABI \u662f\u4e8c\u8fdb\u5236\u5c42\u9762\u7684\u63a5\u53e3\uff0cABI \u7684\u517c\u5bb9\u7a0b\u5ea6\u6bd4 API \u66f4\u52a0\u4e25\u683c")),(0,r.yg)("p",null,"\u64cd\u4f5c\u7cfb\u7edf\u90fd\u89c4\u5b9a\u4e86\u652f\u6301\u7684\u53ef\u6267\u884c\u6587\u4ef6\uff08\u7a0b\u5e8f\uff09\u7684\u683c\u5f0f\u3002Windows \u4e0b\u6709 PE \u6587\u4ef6\u683c\u5f0f\uff0cLinux \u4e0b\u6709 ELF \u683c\u5f0f,Mac OS \u4e0b\u6709 Mach-O \u683c\u5f0f\u3002"),(0,r.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("a",{parentName:"li",href:"ttps://www.zhihu.com/question/320884011/answer/2763905623"},"\u77e5\u4e4e-\u4e3a\u4ec0\u4e48 Linux \u539f\u751f\u4e0d\u80fd\u8fd0\u884c exe \u683c\u5f0f\u7684\u6587\u4ef6\uff1f"))))}s.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7401],{5680:(e,n,l)=>{l.d(n,{xA:()=>y,yg:()=>d});var t=l(6540);function r(e,n,l){return n in e?Object.defineProperty(e,n,{value:l,enumerable:!0,configurable:!0,writable:!0}):e[n]=l,e}function i(e,n){var l=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n&&(t=t.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),l.push.apply(l,t)}return l}function a(e){for(var n=1;n=0||(r[l]=e[l]);return r}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,l)&&(r[l]=e[l])}return r}var o=t.createContext({}),p=function(e){var n=t.useContext(o),l=n;return e&&(l="function"==typeof e?e(n):a(a({},n),e)),l},y=function(e){var n=p(e.components);return t.createElement(o.Provider,{value:n},e.children)},c="mdxType",s={inlineCode:"code",wrapper:function(e){var n=e.children;return t.createElement(t.Fragment,{},n)}},P=t.forwardRef((function(e,n){var l=e.components,r=e.mdxType,i=e.originalType,o=e.parentName,y=u(e,["components","mdxType","originalType","parentName"]),c=p(l),P=r,d=c["".concat(o,".").concat(P)]||c[P]||s[P]||i;return l?t.createElement(d,a(a({ref:n},y),{},{components:l})):t.createElement(d,a({ref:n},y))}));function d(e,n){var l=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var i=l.length,a=new Array(i);a[0]=P;var u={};for(var o in n)hasOwnProperty.call(n,o)&&(u[o]=n[o]);u.originalType=e,u[c]="string"==typeof e?e:r,a[1]=u;for(var p=2;p{l.r(n),l.d(n,{assets:()=>o,contentTitle:()=>a,default:()=>s,frontMatter:()=>i,metadata:()=>u,toc:()=>p});var t=l(8168),r=(l(6540),l(5680));const i={},a="\u53ef\u6267\u884c\u7a0b\u5e8f\u5728\u64cd\u4f5c\u7cfb\u7edf\u4e0b\u7684\u8fd0\u884c\u539f\u7406\u5206\u6790",u={unversionedId:"study/system/\u53ef\u6267\u884c\u7a0b\u5e8f\u8fd0\u884c\u539f\u7406\u5206\u6790",id:"study/system/\u53ef\u6267\u884c\u7a0b\u5e8f\u8fd0\u884c\u539f\u7406\u5206\u6790",title:"\u53ef\u6267\u884c\u7a0b\u5e8f\u5728\u64cd\u4f5c\u7cfb\u7edf\u4e0b\u7684\u8fd0\u884c\u539f\u7406\u5206\u6790",description:"\u67b6\u6784\uff0c\u4ece\u4e0b\u5f80\u4e0a\u5206\u6790",source:"@site/docs/study/system/\u53ef\u6267\u884c\u7a0b\u5e8f\u8fd0\u884c\u539f\u7406\u5206\u6790.md",sourceDirName:"study/system",slug:"/study/system/\u53ef\u6267\u884c\u7a0b\u5e8f\u8fd0\u884c\u539f\u7406\u5206\u6790",permalink:"/docs/study/system/\u53ef\u6267\u884c\u7a0b\u5e8f\u8fd0\u884c\u539f\u7406\u5206\u6790",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u5185\u5b58\u7ba1\u7406",permalink:"/docs/study/system/\u5185\u5b58\u7ba1\u7406"},next:{title:"\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838",permalink:"/docs/study/system/\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838"}},o={},p=[{value:"\u67b6\u6784\uff0c\u4ece\u4e0b\u5f80\u4e0a\u5206\u6790",id:"\u67b6\u6784\u4ece\u4e0b\u5f80\u4e0a\u5206\u6790",level:3},{value:"\u88f8\u673a",id:"\u88f8\u673a",level:3},{value:"x86 \u6307\u4ee4\u96c6\u53d1\u5c55",id:"x86-\u6307\u4ee4\u96c6\u53d1\u5c55",level:4},{value:"ARM \u67b6\u6784",id:"arm-\u67b6\u6784",level:4},{value:"MPIS \u67b6\u6784",id:"mpis-\u67b6\u6784",level:4},{value:"PowerPC \u7cfb\u5217",id:"powerpc-\u7cfb\u5217",level:4},{value:"SPARC \u67b6\u6784",id:"sparc-\u67b6\u6784",level:4},{value:"Alpha \u67b6\u6784",id:"alpha-\u67b6\u6784",level:4},{value:"CPU \u67b6\u6784\u4e4b\u95f4\u7684\u7ade\u4e89",id:"cpu-\u67b6\u6784\u4e4b\u95f4\u7684\u7ade\u4e89",level:3},{value:"PC \u548c\u670d\u52a1\u5668\u7ade\u4e89",id:"pc-\u548c\u670d\u52a1\u5668\u7ade\u4e89",level:4},{value:"\u79fb\u52a8\u7aef\u7ade\u4e89",id:"\u79fb\u52a8\u7aef\u7ade\u4e89",level:4},{value:"\u64cd\u4f5c\u7cfb\u7edf",id:"\u64cd\u4f5c\u7cfb\u7edf",level:3},{value:"\u684c\u9762\u64cd\u4f5c\u7cfb\u7edf",id:"\u684c\u9762\u64cd\u4f5c\u7cfb\u7edf",level:4},{value:"\u670d\u52a1\u5668\u64cd\u4f5c\u7cfb\u7edf",id:"\u670d\u52a1\u5668\u64cd\u4f5c\u7cfb\u7edf",level:4},{value:"\u5d4c\u5165\u5f0f\u64cd\u4f5c\u7cfb\u7edf",id:"\u5d4c\u5165\u5f0f\u64cd\u4f5c\u7cfb\u7edf",level:4},{value:"\u53ef\u6267\u884c\u7a0b\u5e8f\u6267\u884c\u7684\u539f\u7406\u5206\u6790",id:"\u53ef\u6267\u884c\u7a0b\u5e8f\u6267\u884c\u7684\u539f\u7406\u5206\u6790",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],y={toc:p},c="wrapper";function s(e){let{components:n,...l}=e;return(0,r.yg)(c,(0,t.A)({},y,l,{components:n,mdxType:"MDXLayout"}),(0,r.yg)("h1",{id:"\u53ef\u6267\u884c\u7a0b\u5e8f\u5728\u64cd\u4f5c\u7cfb\u7edf\u4e0b\u7684\u8fd0\u884c\u539f\u7406\u5206\u6790"},"\u53ef\u6267\u884c\u7a0b\u5e8f\u5728\u64cd\u4f5c\u7cfb\u7edf\u4e0b\u7684\u8fd0\u884c\u539f\u7406\u5206\u6790"),(0,r.yg)("h3",{id:"\u67b6\u6784\u4ece\u4e0b\u5f80\u4e0a\u5206\u6790"},"\u67b6\u6784\uff0c\u4ece\u4e0b\u5f80\u4e0a\u5206\u6790"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"\u88f8\u673a\uff08\u7eaf\u786c\u4ef6\uff09"),(0,r.yg)("li",{parentName:"ul"},"\u64cd\u4f5c\u7cfb\u7edf\uff08Windows/Linux\uff09"),(0,r.yg)("li",{parentName:"ul"},"\u53ef\u6267\u884c\u7a0b\u5e8f")),(0,r.yg)("h3",{id:"\u88f8\u673a"},"\u88f8\u673a"),(0,r.yg)("p",null,"\u5176\u5b9e\u4e3b\u8981\u5c31\u662f CPU \u67b6\u6784\u7684\u4e0d\u540c\uff0cCPU \u67b6\u6784\u662f CPU \u5546\u7ed9 CPU \u4ea7\u54c1\u5b9a\u7684\u4e00\u4e2a\u89c4\u8303\uff0c\u4e3b\u8981\u76ee\u7684\u662f\u4e3a\u4e86\u533a\u5206\u4e0d\u540c\u7c7b\u578b\u7684 CPU\u3002\u76ee\u524d\u5e02\u573a\u4e0a\u7684 CPU \u5206\u7c7b\u4e3b\u8981\u5206\u6709\u4e24\u5927\u9635\u8425\uff0c\u4e00\u4e2a\u662f Intel\u3001AMD \u4e3a\u9996\u7684\u590d\u6742\u6307\u4ee4\u96c6 CPU\uff0c\u53e6\u4e00\u4e2a\u662f\u4ee5 IBM\u3001ARM \u4e3a\u9996\u7684\u7cbe\u7b80\u6307\u4ee4\u96c6 CPU\u3002\u4e0d\u540c\u54c1\u724c\u7684 CPU\uff0c\u5176\u4ea7\u54c1\u7684\u67b6\u6784\u4e5f\u4e0d\u76f8\u540c\uff0cIntel\u3001AMD \u7684 CPU \u662f X86 \u67b6\u6784\uff0cIBM \u516c\u53f8\u7684 CPU \u662f PowerPC \u67b6\u6784\uff0cARM \u516c\u53f8\u7684 CPU \u662f ARM \u67b6\u6784\uff0c\u56fd\u5185\u7684\u98de\u817e CPU \u4e5f\u662f ARM \u67b6\u6784\u3002\u6b64\u5916\u8fd8\u6709 MPIS \u67b6\u6784\u3001SPARC \u67b6\u6784\u3001Alpha \u67b6\u6784\u3002"),(0,r.yg)("h4",{id:"x86-\u6307\u4ee4\u96c6\u53d1\u5c55"},"x86 \u6307\u4ee4\u96c6\u53d1\u5c55"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"IA\uff1aIntel\uff08\u82f1\u7279\u5c14\uff09\u5904\u7406\u5668\u7684\u670d\u52a1\u5668\u79f0\u4e4b\u4e3a IA\uff08Intel Architecture\uff09\u67b6\u6784\u670d\u52a1\u5668"),(0,r.yg)("li",{parentName:"ul"},"IA-32\uff1a\u82f1\u7279\u5c14 32 \u4f4d\u4f53\u7cfb\u67b6\u6784\uff0cX86 \u4ece 16 \u4f4d\u5230 32 \u4f4d\u662f\u5728\u539f\u6709\u7684\u67b6\u6784\u57fa\u7840\u4e0a\u8fdb\u884c\u4fee\u6539\uff08Intel \u79f0\u4e4b\u4e3a IA-32\uff09"),(0,r.yg)("li",{parentName:"ul"},"x86-32\uff1a\u73b0\u5982\u4eca Intel \u628a x86-32 \u79f0\u4e3a IA-32"),(0,r.yg)("li",{parentName:"ul"},"x86-64 \u5206\u4e3a intel \u548c AMD"),(0,r.yg)("li",{parentName:"ul"},"AMD64\uff1ax86 \u67b6\u6784\u7684 64 \u4f4d\u62d3\u5c55\uff0c\u5411\u540e\u517c\u5bb9\u4e8e 16 \u4f4d\u53ca 32 \u4f4d\u7684 x86 \u67b6\u6784\u3002x64 \u4e8e 1999 \u5e74\u7531 AMD \u8bbe\u8ba1\uff0cAMD \u9996\u6b21\u516c\u5f00 64 \u4f4d\u96c6\u4ee5\u6269\u5c55\u7ed9 x86\uff0c\u79f0\u4e3a\u201cAMD64\u201d\uff0cAMD64 \u548c Intel64 \u57fa\u672c\u4e0a\u4e00\u81f4"),(0,r.yg)("li",{parentName:"ul"},"Intel64\uff1aEM64T\uff08Extended Memory 64 Technology\uff09\u6269\u5c55 64bit \u5185\u5b58\u6280\u672f\uff0c\u672c\u8d28\u4e0a\u548c AMD64 \u4e00\u6837\u90fd\u662f IA-32 \u7684\u589e\u5f3a\u7248\u672c\u3002"),(0,r.yg)("li",{parentName:"ul"},"IA-64\uff1a64 \u4f4d\u7684\u82f1\u7279\u5c14\u67b6\u6784\uff0c\u82f1\u7279\u5c14\u5b89\u817e\u67b6\u6784\uff08Intel Itanium architecture\uff09\uff0c\u4f7f\u7528\u5728 Itanium \u5904\u7406\u5668\u5bb6\u65cf\u4e0a\u7684 64 \u4f4d\u6307\u4ee4\u96c6\u67b6\u6784\uff0c\u7531\u82f1\u7279\u5c14\u516c\u53f8\u4e0e\u60e0\u666e\u516c\u53f8\u5171\u540c\u5f00\u53d1\u3002IA \u662f Intel Architecture\uff08\u82f1\u7279\u5c14\u67b6\u6784\uff09\u7684\u7f29\u5199\uff0c64 \u6307 64 \u4f4d\u7cfb\u7edf\u3002\u4f7f\u7528\u8fd9\u79cd\u67b6\u6784\u7684 CPU\uff0c\u5305\u62ec Itanium \u548c Itanium 2\u3002\u6b64\u67b6\u6784\u4e0e x86 \u53ca x86-64 \u5e76\u4e0d\u76f8\u5bb9\uff0c\u64cd\u4f5c\u7cfb\u7edf\u4e0e\u8f6f\u4ef6\u9700\u4f7f\u7528 IA-64 \u4e13\u7528\u7248\u672c\u3002")),(0,r.yg)("h4",{id:"arm-\u67b6\u6784"},"ARM \u67b6\u6784"),(0,r.yg)("p",null,"ARM \u67b6\u6784\uff0c\u4e5f\u79f0\u4f5c\u8fdb\u9636\u7cbe\u7b80\u6307\u4ee4\u96c6\u673a\u5668\uff08Advanced RISC Machine\uff0c\u66f4\u65e9\u79f0\u4f5c\uff1aAcorn RISC Machine\uff09\uff0c\u662f\u4e00\u4e2a 32 \u4f4d\u7cbe\u7b80\u6307\u4ee4\u96c6\uff08RISC\uff09\u5904\u7406\u5668\u67b6\u6784\uff0c\u5176\u5e7f\u6cdb\u5730\u4f7f\u7528\u5728\u8bb8\u591a\u5d4c\u5165\u5f0f\u7cfb\u7edf\u8bbe\u8ba1\u3002\u7531\u4e8e\u8282\u80fd\u7684\u7279\u70b9\uff0cARM \u5904\u7406\u5668\u975e\u5e38\u9002\u7528\u4e8e\u884c\u52a8\u901a\u8baf\u9886\u57df\uff0c\u7b26\u5408\u5176\u4e3b\u8981\u8bbe\u8ba1\u76ee\u6807\u4e3a\u4f4e\u8017\u7535\u7684\u7279\u6027\u3002"),(0,r.yg)("p",null,"ARM \u6388\u6743\u65b9\u5f0f\uff1aARM \u516c\u53f8\u672c\u8eab\u5e76\u4e0d\u9760\u81ea\u6709\u7684\u8bbe\u8ba1\u6765\u5236\u9020\u6216\u51fa\u552e CPU \uff0c\u800c\u662f\u5c06\u5904\u7406\u5668\u67b6\u6784\u6388\u6743\u7ed9\u6709\u5174\u8da3\u7684\u5382\u5bb6\u3002"),(0,r.yg)("p",null,"\u56fd\u5916\u751f\u4ea7\u5382\u5546\uff1aTI \uff08\u5fb7\u5dde\u4eea\u5668\uff09\u3001Samsung\uff08\u4e09\u661f\uff09\u3001Freescale\uff08\u98de\u601d\u5361\u5c14\uff09\u3001Marvell\uff08\u9a6c\u7ef4\u5c14\uff09\u3001Nvidia\uff08\u82f1\u4f1f\u8fbe\uff09\u3001Qualcomm(\u9ad8\u901a\uff09\u3001STMicroelectronics(\u610f\u6cd5\u534a\u5bfc\u4f53\uff09\u3002"),(0,r.yg)("p",null,"\u56fd\u5185\u751f\u4ea7\u5382\u5546\uff1a\u534e\u4e3a\uff08\u6d77\u601d\u82af\u7247\uff09\u3001\u98de\u817e\uff08FT-1500\u3001FT2000-4 \u7b49 CPU \u82af\u7247\uff09\u3001\u5146\u6613\u521b\u65b0\uff08GD32 \u7cfb\u5217 MCU\uff0c\u53c2\u8003 STM32 \u7cfb\u5217\uff09\u3001\u745e\u82af\u5fae\uff08RK \u7cfb\u5217\u82af\u7247\uff09\u3001\u8054\u53d1\u79d1\uff08\u53f0\u6e7e\uff0c\u5929\u7391\u7cfb\u5217\uff09\u3002"),(0,r.yg)("h4",{id:"mpis-\u67b6\u6784"},"MPIS \u67b6\u6784"),(0,r.yg)("p",null,"MIPS \u662f\u4e16\u754c\u4e0a\u5f88\u6d41\u884c\u7684\u4e00\u79cd RISC \u5904\u7406\u5668\u3002MIPS \u6280\u672f\u516c\u53f8\u662f\u7f8e\u56fd\u8457\u540d\u7684\u82af\u7247\u8bbe\u8ba1\u516c\u53f8\uff0c\u5b83\u91c7\u7528\u7cbe\u7b80\u6307\u4ee4\u7cfb\u7edf\u8ba1\u7b97\u7ed3\u6784(RISC)\u6765\u8bbe\u8ba1\u82af\u7247\u3002"),(0,r.yg)("p",null,"MPIS \u67b6\u6784\u6388\u6743\u548c ARM \u67b6\u6784\u6388\u6743\u4e0d\u4e00\u6837\uff0cARM \u67b6\u6784\u6388\u6743\u7528\u6237\u57fa\u672c\u4e0d\u80fd\u81ea\u884c\u4fee\u6539\uff0c\u800c MPIS \u67b6\u6784\u6388\u6743\u540e\uff0c\u53ef\u4ee5\u81ea\u5df1\u4fee\u6539\u3002\u76ee\u524d MPIS \u53d1\u626c\u5149\u5927\u5bc4\u5e0c\u671b\u4e2d\u79d1\u9f99\u82af\u516c\u53f8\uff0c\u9f99\u82af\u5904\u7406\u5668\u4ece\u9f99\u82af 1 \u53f7\uff0c\u5230\u73b0\u5728\u7684\u9f99\u82af 3 \u53f7\u7cfb\u5217\u7684 3A4000\uff0cCPU \u7684\u6027\u80fd\u5df2\u7ecf\u5927\u5e45\u5ea6\u63d0\u9ad8\uff0c\u5728\u5b8c\u5168\u53ef\u4ee5\u80dc\u4efb\u65e5\u5e38\u529e\u516c\u6216\u8005\u4f5c\u4e3a\u7279\u6b8a\u7528\u9014\u7684\u670d\u52a1\u5668\u3002\u9f99\u82af CPU \u548c\u56fd\u4ea7\u7684\u98de\u817e\uff08FT\uff09\u5904\u7406\u5668\u5e76\u9a7e\u9f50\u9a71\uff0c\u53d1\u5c55\u6211\u56fd\u81ea\u4e3b\u53ef\u63a7 CPU\u3002"),(0,r.yg)("h4",{id:"powerpc-\u7cfb\u5217"},"PowerPC \u7cfb\u5217"),(0,r.yg)("p",null,"PowerPC \u662f\u4e00\u79cd\u7cbe\u7b80\u6307\u4ee4\u96c6\uff08RISC\uff09\u67b6\u6784\u7684\u4e2d\u592e\u5904\u7406\u5668\uff08CPU\uff09\uff0c\u5176\u57fa\u672c\u7684\u8bbe\u8ba1\u6e90\u81ea IBM\uff08\u56fd\u9645\u5546\u7528\u673a\u5668\u516c\u53f8\uff09\u7684 IBMPowerPC 601 \u5fae\u5904\u7406\u5668 POWER\uff08PerformanceOptimized With Enhanced RISC\uff1b\u300aIBM Connect \u7535\u5b50\u62a5\u300b2007 \u5e74 8 \u6708\u53f7\u8bd1\u4e3a\u201c\u589e\u5f3a RISC \u6027\u80fd\u4f18\u5316\u201d\uff09\u67b6\u6784\u3002\u4e8c\u5341\u4e16\u7eaa\u4e5d\u5341\u5e74\u4ee3\uff0cIBM(\u56fd\u9645\u5546\u7528\u673a\u5668\u516c\u53f8)\u3001Apple\uff08\u82f9\u679c\u516c\u53f8\uff09\u548c Motorola\uff08\u6469\u6258\u7f57\u62c9\uff09\u516c\u53f8\u5f00\u53d1 PowerPC \u82af\u7247\u6210\u529f\uff0c\u5e76\u5236\u9020\u51fa\u57fa\u4e8e PowerPC \u7684\u591a\u5904\u7406\u5668\u8ba1\u7b97\u673a\u3002PowerPC \u67b6\u6784\u7684\u7279\u70b9\u662f\u53ef\u4f38\u7f29\u6027\u597d\u3001\u65b9\u4fbf\u7075\u6d3b\u3002"),(0,r.yg)("p",null,"PowerPC \u5904\u7406\u5668\u6709\u5e7f\u6cdb\u7684\u5b9e\u73b0\u8303\u56f4\uff0c\u5305\u62ec\u4ece\u8bf8\u5982 Power4 \u90a3\u6837\u7684\u9ad8\u7aef\u670d\u52a1\u5668 CPU \u5230\u5d4c\u5165\u5f0f CPU \u5e02\u573a\uff08\u4efb\u5929\u5802 Gamecube \u4f7f\u7528\u4e86 PowerPC\uff09\u3002PowerPC \u5904\u7406\u5668\u6709\u975e\u5e38\u5f3a\u7684\u5d4c\u5165\u5f0f\u8868\u73b0\uff0c\u56e0\u4e3a\u5b83\u5177\u6709\u4f18\u5f02\u7684\u6027\u80fd\u3001\u8f83\u4f4e\u7684\u80fd\u91cf\u635f\u8017\u4ee5\u53ca\u8f83\u4f4e\u7684\u6563\u70ed\u91cf\u3002\u9664\u4e86\u8c61\u4e32\u884c\u548c\u4ee5\u592a\u7f51\u63a7\u5236\u5668\u90a3\u6837\u7684\u96c6\u6210 I/O\uff0c\u8be5\u5d4c\u5165\u5f0f\u5904\u7406\u5668\u4e0e\u201c\u53f0\u5f0f\u673a\u201dCPU \u5b58\u5728\u975e\u5e38\u663e\u8457\u7684\u533a\u522b\u3002"),(0,r.yg)("h4",{id:"sparc-\u67b6\u6784"},"SPARC \u67b6\u6784"),(0,r.yg)("p",null,"SPARC \u67b6\u6784\uff08Scalable Processor ARChitecture\uff0c\u53ef\u6269\u5c55\u5904\u7406\u5668\u67b6\u6784\uff09\u662f\u56fd\u9645\u4e0a\u6d41\u884c\u7684 RISC \u5904\u7406\u5668\u4f53\u7cfb\u67b6\u6784\u4e4b\u4e00\uff0cSPRAC \u5982\u4eca\u5df2\u53d1\u5c55\u6210\u4e3a\u4e00\u4e2a\u5f00\u653e\u7684\u6807\u51c6\uff0c\u4efb\u4f55\u673a\u6784\u6216\u4e2a\u4eba\u5747\u53ef\u7814\u7a76\u6216\u5f00\u53d1\u57fa\u4e8e SPRAC \u67b6\u6784\u7684\u4ea7\u54c1\uff0c\u800c\u65e0\u9700\u4ea4\u7eb3\u7248\u6743\u8d39\u3002SPARC \u5904\u7406\u5668\u67b6\u6784\u5177\u5907\u7cbe\u7b80\u6307\u4ee4\u96c6\uff08RISC\uff09\u3001\u652f\u6301 32 \u4f4d/64 \u4f4d\u6307\u4ee4\u7cbe\u5ea6\uff0c\u67b6\u6784\u8fd0\u884c\u7a33\u5b9a\u3001\u53ef\u6269\u5c55\u6027\u4f18\u826f\u3001\u4f53\u7cfb\u6807\u51c6\u5f00\u653e\u7b49\u7279\u70b9\u3002SPARC \u56e0\u6b64\u5f97\u4ee5\u8fc5\u901f\u53d1\u5c55\u58ee\u5927\uff0c\u5728\u73b0\u5728\u5df2\u7ecf\u6709\u5927\u7ea6 3 \u4e07\u591a\u4e2a\u6210\u529f\u7684\u5e94\u7528\u6848\u4f8b\u3002"),(0,r.yg)("p",null,"SPARCV7/V8 \u662f\u76ee\u524d\u5d4c\u5165\u5f0f\u63a7\u5236\u7cfb\u7edf\u5e38\u7528\u7684\u5904\u7406\u5668\u6807\u51c6\u7248\u672c\uff0c\u5e76\u5728\u822a\u5929\u8bbe\u5907\u7684\u7535\u5b50\u7cfb\u7edf\u4e2d\u5f97\u5230\u5e7f\u6cdb\u5e94\u7528\u3002\u7136\u800c\uff0cSPARC \u53ea\u662f\u4e00\u4e2a\u5904\u7406\u5668\u7684\u67b6\u6784\u6807\u51c6\uff0c\u5e76\u4e0d\u63d0\u4f9b\u73b0\u6210\u7684\u6e90\u7801\u6216 IP \u6838\uff0c\u5177\u4f53\u7684\u82af\u7247\u5b9e\u73b0\u8981\u7531\u5f00\u53d1\u8005\u53bb\u5b8c\u6210\u3002"),(0,r.yg)("h4",{id:"alpha-\u67b6\u6784"},"Alpha \u67b6\u6784"),(0,r.yg)("p",null,"\u76ee\u524d\u56fd\u5185\u91c7\u7528\u6b64\u67b6\u6784\u7684\u662f\u7533\u5fae\u8d85\u7b97\u5904\u7406\u5668\uff0c\u5f97\u76ca\u4e8e\u56fd\u5bb6\u7684\u652f\u6301\uff0c\u7533\u5a01\u5904\u7406\u5668\u5728\u519b\u961f\u5e94\u7528\u5e7f\u6cdb\u3002"),(0,r.yg)("h3",{id:"cpu-\u67b6\u6784\u4e4b\u95f4\u7684\u7ade\u4e89"},"CPU \u67b6\u6784\u4e4b\u95f4\u7684\u7ade\u4e89"),(0,r.yg)("h4",{id:"pc-\u548c\u670d\u52a1\u5668\u7ade\u4e89"},"PC \u548c\u670d\u52a1\u5668\u7ade\u4e89"),(0,r.yg)("p",null,"PC \u7aef\u548c\u670d\u52a1\u5668\u7aef\u662f X86 \u67b6\u6784\u7684\u5929\u4e0b\uff0c\u800c X86 \u67b6\u6784\u57fa\u672c\u662f\u4ee5 Intel \u4e3a\u9996\uff0cAMD \u4e3a\u8f85\u4e8c\u5206\u5929\u4e0b\u4e4b\u52bf\u3002\u56fd\u4ea7 CPU \u57fa\u672c\u53ea\u80fd\u7528\u5728\u519b\u5de5\u884c\u4e1a\u6216\u8005\u4e8b\u4e1a\u5355\u4f4d\u7b49\u3002\u5176\u5b9e\u8bf4\u6027\u80fd\uff0cpowerpc\uff0c\u53ef\u8c13\u662f\u9ad8\u51fa\u4e0d\u80dc\u5bd2\u3002\u786c\u4ef6\u65b9\u9762\uff0cPower \u7cfb\u7edf\u5728\u53ef\u9760\u6027\u3001\u53ef\u7528\u6027\u548c\u53ef\u7ef4\u62a4\u6027\u7684\u65b9\u9762\u7684\u51fa\u8272\u8868\u73b0\u4f7f\u5f97 IBM \u4ece\u82af\u7247\u5230\u7cfb\u7edf\u6240\u8bbe\u8ba1\u7684\u6574\u673a\u65b9\u6848\u6709\u7740\u72ec\u6709\u7684\u4f18\u52bf\u3002Power \u67b6\u6784\u7684\u5904\u7406\u5668\u5728\u8d85\u7b97\u3001\u5927\u578b\u4f01\u4e1a\u7684 UNIX \u670d\u52a1\u5668\u7b49\u591a\u4e2a\u65b9\u9762\u5e94\u7528\u4e5f\u5341\u5206\u6210\u529f\u3002\u5728\u8f6f\u4ef6\u65b9\u9762\uff0c\u5176\u4e13\u7528\u7684 AIX \u7cfb\u7edf\u5728\u7a33\u5b9a\u6027\u3001\u8f6f\u4ef6\u65b9\u6848\u96c6\u6210\u5ea6\u548c\u5382\u5546\u6280\u672f\u652f\u6301\u80fd\u529b\u65b9\u9762\u90fd\u8981\u66f4\u5f3a\u3002\u7531\u4e8e\u7528\u6237\u9009\u4e00\u5e73\u53f0\u4e3b\u8981\u770b\u8f6f\u4ef6\u9700\u6c42\uff0c\u4e00\u822c\u5bf9\u6570\u636e\u4fdd\u62a4\u548c 7","*","24 \u5c0f\u65f6\u4e0d\u5b95\u673a\u7b49\u6709\u6240\u8981\u6c42\uff0cpower \u67b6\u6784\u7684\u7a33\u5b9a\u6027\u548c\u8fd0\u7ef4\u7b49\u65b9\u9762\u76f8\u5bf9\u66f4\u4f18\u3002\u4f46\u662f\uff0c\u7531\u4e8e IBM \u7684\u6280\u672f\u628a\u63a7\uff0c\u4f7f\u5f97\u5176\u4ef7\u683c\u592a\u4e0d\u53cb\u597d\uff0c\u540c\u65f6\u6280\u672f\u4e5f\u8d76\u4e0d\u4e0a\u73af\u5883\u7684\u53d8\u5316\uff0c\u5728\u4e91\u8ba1\u7b97\u5174\u8d77\u540e\uff0c\u968f\u7740\u5206\u5e03\u5f0f\u7cfb\u7edf\u9010\u6e10\u6210\u719f\uff0c\u7cfb\u7edf\u5bf9\u5c0f\u578b\u673a\u7684\u4f9d\u8d56\u5f00\u59cb\u964d\u4f4e\uff0c\u6539\u4e3a\u4f9d\u9760\u96c6\u7fa4\u63d0\u4f9b\uff0c\u6027\u80fd\u4e5f\u53ef\u5b9e\u73b0\u5206\u5e03\u5f0f\u5904\u7406\u3002\u800c\u66f4\u4e3a\u5173\u952e\u7684\u662f\uff0cIBM \u7684\u5168\u5957\u670d\u52a1\u5c3d\u7ba1\u7a33\u5b9a\u6027\u4f18\u79c0\uff0c\u4f46\u5374\u5f71\u54cd\u4e86 Power \u67b6\u6784\u5bf9\u5176\u4ed6\u5546\u5bb6\u7684\u5438\u5f15\u529b\u3002"),(0,r.yg)("p",null,"\u800c Sparc \u67b6\u6784\u548c Power \u67b6\u6784\u57fa\u672c\u72af\u4e86\u540c\u6837\u7684\u9519\u8bef\uff1a\u4ef7\u683c\u4e0d\u53cb\u597d\u3002SPARC \u67b6\u6784\u6d4b\u6210\u529f\u548c Sun \u65d7\u4e0b\u7684 Solaris \u7cfb\u7edf\u6709\u7740\u5bc6\u4e0d\u53ef\u5206\u7684\u5173\u7cfb\u3002\u5f53\u8ba1\u7b97\u673a\u7cfb\u7edf\u5e9e\u5927\u3001\u7528\u6237\u6570\u91cf\u5de8\u5927\u589e\u52a0\u65f6\uff0c\u57fa\u4e8e Unix \u64cd\u4f5c\u7cfb\u7edf\u6253\u9020\u7684 Solaris \u80fd\u66f4\u597d\u5730\u5229\u7528\u8ba1\u7b97\u673a\u8d44\u6e90\uff0c\u662f\u6240\u6709\u5546\u4e1a\u7248\u4e2d\u6700\u53ef\u9760\u6700\u5b8c\u5584\u7684\u7248\u672c\u3002\u800c\u4f9d\u8d56 SPARC \u67b6\u6784\u548c Solaris \u7cfb\u7edf\u7684\u6027\u80fd\u548c\u53ef\u9760\u6027\uff0c\u5176\u5360\u9886\u4e86\u670d\u52a1\u5668\u9ad8\u7aef\u5e02\u573a\u3002Sun \u7684\u53e6\u4e00\u4e2a\u66f4\u4e3a\u77e5\u540d\u7684\u4ea7\u54c1\u662f Java\uff0c\u867d\u7136\u5728\u4e0a\u4e16\u7eaa 90 \u5e74\u4ee3\u4e3a\u667a\u80fd\u5bb6\u7535\u5f00\u53d1\u7684 Java \u5e76\u6ca1\u6709\u4e3a\u5176\u5e26\u6765\u76f8\u5e94\u7684\u56de\u62a5\uff0c\u4f46\u5df2\u6210\u4e3a\u4eca\u5929\u79fb\u52a8\u65f6\u4ee3\u6700\u91cd\u8981\u7684\u5f00\u53d1\u8bed\u8a00\u3002\u5982\u6b64\u5f3a\u5927\u7684\u5b9e\u529b\u672c\u5e94\u7edf\u9886\u670d\u52a1\u5668\u5e02\u573a\uff0c\u4f46\u9057\u61be\u7684\u662f\uff0c\u5728 windows \u548c\u82f1\u7279\u5c14\u7ec4\u6210 Wintel \u8054\u76df\u4e4b\u540e\uff0c\u4e24\u8005\u51ed\u501f\u81ea\u8eab\u5728\u5404\u81ea\u5e02\u573a\u7684\u89c4\u6a21\u6548\u5e94\uff0c\u4f7f\u5f97\u91c7\u7528 Wintel \u4ea7\u54c1\u7684\u670d\u52a1\u5668\u5382\u5546\u53ef\u4ee5\u901a\u8fc7\u4f4e\u5ec9\u7684\u4ef7\u683c\u5927\u8086\u62a2\u5360\u4e2d\u4f4e\u7aef\u5e02\u573a\u3002\u800c\u5f53 Sun \u9192\u609f\u8fc7\u6765\uff0c\u901a\u8fc7\u5f00\u6e90\u7b49\u65b9\u5f0f\u60f3\u8981\u633d\u56de\u8d25\u5c40\u65f6\u4e3a\u65f6\u5df2\u665a\u3002"),(0,r.yg)("p",null,"X86 \u67b6\u6784\u4e0e Power \u548c SPARC \u5728\u9ad8\u6027\u80fd\u9886\u57df\u7684\u98ce\u751f\u6c34\u8d77\u4e0d\u540c\uff0cx86 \u67b6\u6784\u662f\u5929\u751f\u7684\u5c0f\u5c4c\u4e1d\u30021978 \u5e74\u4ed6\u51fa\u751f\u7684\u90a3\u5e74\uff0c\u82f1\u7279\u5c14\u8fd8\u53ea\u662f\u4e00\u4e2a\u666e\u901a\u7684\u79d1\u6280\u516c\u53f8\u3002\u53ef\u662f x86 \u67b6\u6784\u968f\u540c\u5176 cisc \u6307\u4ee4\u96c6\u5374\u5f00\u542f\u4e86\u4e00\u4e2a\u65b0\u7684\u65f6\u4ee3\u3002x86 \u4e4b\u6240\u4ee5\u53ef\u4ee5\u8d62\u5f97\u5e02\u573a\u4e3b\u8981\u539f\u56e0\u5728\u4e8e\u5176\u662f\u4e00\u4e2a\u5341\u5206\u5f00\u653e\u7684\u67b6\u6784\u3002IBM \u548c SUN \u5f53\u5e74\u90fd\u662f\u4ece\u82af\u7247\u5230\u670d\u52a1\u5668\u5230\u7cfb\u7edf\u4e00\u624b\u5305\u529e\u7684\u516c\u53f8\u3002\u800c\u82f1\u7279\u5c14\u5219\u662f\u4e00\u4e2a\u5341\u5206\u7eaf\u7cb9\u7684\u82af\u7247\u5382\u5546\uff0c\u5176\u4e1a\u52a1\u4ec5\u4e0e AMD \u7b49\u5c11\u6570\u82af\u7247\u751f\u4ea7\u8005\u5b58\u5728\u7ade\u4e89\uff0c\u8fd9\u5c31\u4f7f\u5f97\u670d\u52a1\u5668\u5382\u5546\u4e0d\u7528\u5fcc\u60ee\u4e0e\u4e4b\u53d1\u751f\u7ade\u4e89\u5173\u7cfb\u3002"),(0,r.yg)("p",null,'\u5355\u4ece\u6027\u80fd\u6765\u770b\uff0c\u65e0\u8bba Power \u8fd8\u662f SPARC \u67b6\u6784\u90fd\u53ef\u4ee5\u51fb\u6e83 x86\uff0c\u53ef\u662f\u6700\u7ec8\u80fd\u591f\u8d62\u4e0b\u6765\u7684\u5374\u504f\u504f\u662f"\u6700\u5f31"\u7684 x86 \u67b6\u6784\u3002\u8fd9\u5e76\u975e\u52a3\u5e01\u6dd8\u6c70\u826f\u5e01\uff0c\u800c\u662f\u5e02\u573a\u7ade\u4e89\u7684\u9009\u62e9\uff0c\u6839\u6e90\u4e0a\u8bb2\uff0cx86 \u7684\u6210\u529f\u5728\u4e8e\u82f1\u7279\u5c14\u6839\u672c\u4e0d\u78b0\u670d\u52a1\u5668\u3002\u56e0\u6b64\u4e0d\u8bba\u8bbe\u5907\u751f\u4ea7\u5546\u3001\u8f6f\u4ef6\u5f00\u53d1\u8005\u6216\u8005\u7cfb\u7edf\u5f00\u53d1\u8005\u90fd\u53ef\u4ee5\u4e0e\u4e0d\u5b58\u5728\u5229\u76ca\u7ade\u4e89\u5173\u7cfb\u7684\u82f1\u7279\u5c14\u5408\u4f5c\u3002\u53d7\u76ca\u4e8e\u6b64\uff0cx86 \u67b6\u6784\u7684\u517c\u5bb9\u6027\u4e5f\u8d8a\u53d1\u5f3a\u5927\uff0c\u751f\u6001\u4f53\u7cfb\u8d8a\u53d1\u5b8c\u5584\uff0c\u8fd9\u624d\u6210\u5c31\u4e86\u73b0\u5982\u4eca\u5e02\u573a\u5360\u6709\u7387\u8d85\u8fc7 90%\u7684\u4e00\u5bb6\u72ec\u5927\u5c40\u9762\uff0c\u82f1\u7279\u5c14\u4e5f\u501f\u52a9 x86 \u67b6\u6784\u4e00\u8dc3\u6210\u4e3a\u5168\u7403\u9876\u7ea7\u7684\u82af\u7247\u63d0\u4f9b\u5546\u3002'),(0,r.yg)("h4",{id:"\u79fb\u52a8\u7aef\u7ade\u4e89"},"\u79fb\u52a8\u7aef\u7ade\u4e89"),(0,r.yg)("p",null,"\u6b63\u5982 PC \u548c\u670d\u52a1\u5668\u7aef\u662f X86 \u7684\u5929\u4e0b\u4e00\u6837\uff0c\u79fb\u52a8\u7aef\u662f ARM \u7684\u5929\u4e0b\u3002Intel \u5728 CPU \u754c\u7684\u5927\u540d\uff0c\u53ef\u8c13\u5bb6\u55bb\u6237\u6653\uff0c\u4f46\u662f\u5728\u624b\u673a\u767b\u79fb\u52a8\u7aef\u5374\u96be\u4ee5\u770b\u5230\u82f1\u56fd ARM \u516c\u53f8\u80cc\u5f71\u3002\u5728 2006 \u5e74\uff0c\u81ea\u4ece AMD \u7684 64 \u4f4d\u5904\u7406\u5668\u53d1\u5e03\u4ee5\u6765\uff0cAMD \u6210\u529f\u9006\u88ad\u4e86 Intel\uff0c\u5e02\u573a\u5360\u6709\u7387\u5927\u5e45\u4e0a\u5347\uff0c\u800c Intel \u8001\u8fc8\u7684 P4 \u5904\u7406\u5668\u5219\u662f\u8179\u80cc\u53d7\u654c\uff0c\u5c3d\u5931\u6614\u65e5\u9738\u6c14\uff0c\u5e02\u573a\u8868\u73b0\u4e00\u8def\u8d70\u4f4e\u3002\u4e3a\u4e86\u7a33\u4f4f\u6295\u8d44\u4eba\u7684\u4fe1\u5fc3\uff0c\u6700\u597d\u7684\u505a\u6cd5\u81ea\u7136\u662f\u8ba9\u516c\u53f8\u6301\u7eed\u76c8\u5229\uff0c\u4e3a\u6b64 Intel \u8fdb\u884c\u5927\u89c4\u6a21\u7684\u91cd\u6574\uff0c\u5305\u62ec\u4e0a\u4efb\u65b0 CEO \u6b27\u5fb7\u5b81\u3001\u5927\u89c4\u6a21\u88c1\u5458\u3001\u4ee5\u53ca\u51fa\u552e XScale \u624b\u673a\u5904\u7406\u5668\u4e1a\u52a1\u3002\u6b63\u56e0\u4e3a\u8fd9\u4e2a\u4e3e\u63aa\uff0c\u4f7f\u5f97 Intel \u5230\u8fbe\u4e86\u4eba\u751f\u5dc5\u5cf0\uff0c\u4ece PC \u5e02\u573a\u6709\u8d5a\u7684\u94b5\u6ee1\u76c6\u6ee1\uff0c\u7136\u800c\u4e5f\u662f\u56e0\u4e3a\u6b64\uff0cIntel \u5ffd\u89c6\u4e86\u79fb\u52a8\u9886\u57df\u7684\u8fc5\u731b\u53d1\u5c55\u3002\uff08\u5f53\u5e74\uff0cIntel \u62d2\u7edd\u4e86\u4e54\u5e2e\u4e3b\u8fd8\u662f PPT \u7684 Iphone \u624b\u673a\uff0c\u4e0d\u7136\u662f\u5426\u5c31\u4f1a\u4e0d\u4e00\u6837\uff1f\u4f46\u662f\u60f3\u4e00\u4e0b Iphone X \u4f7f\u7528 Intel \u57fa\u5e26\uff0c\u4fe1\u53f7\u5dee\u7684\u8bdf\u75c5\uff0cIntel \u505a\u624b\u673a\u82af\u662f\u5426\u4f1a\u81ed\u540d\u662d\u8457\u4e5f\u672a\u53ef\u77e5\uff09"),(0,r.yg)("p",null,"\u548c Intel \u516c\u53f8\u4e0d\u540c\uff0c ARM \u516c\u53f8\u4e0d\u5236\u9020\uff0c\u4e0d\u9500\u552e\u82af\u7247\uff0c\u800c\u662f\u53ea\u81ea\u5df1\u8bbe\u8ba1 IP \u6838\uff0c\u5305\u62ec\u6307\u4ee4\u96c6\u67b6\u6784\u3001\u5fae\u5904\u7406\u5668\u3001GPU\u3001\u4e92\u8fde\u67b6\u6784\u7b49\uff0c\u7136\u540e\u8c01\u60f3\u7528\u5c31\u6388\u6743\u5356\u7ed9\u8c01\uff0c\u518d\u4ece\u6bcf\u9897\u5b9e\u9645\u9020\u51fa\u6765\u7684\u4ea7\u54c1\u4e2d\u6536\u53d6\u7248\u7a0e\u3002ARM \u6709\u4e09\u79cd\u6388\u6743\u6a21\u5f0f\uff0c\u5206\u522b\u662f\u67b6\u6784\u6388\u6743\u3001\u5185\u6838\u6388\u6743\u3001\u4f7f\u7528\u6388\u6743\uff0c\u5206\u522b\u5bf9\u5e94\u5927\u4e2d\u5c0f\u516c\u53f8\uff0c\u975e\u5e38\u8ba8\u559c\uff0c\u8d34\u4e2a\u724c\u5b50\u5c31\u80fd\u8bf4\u662f\u81ea\u5df1\u7684 CPU\uff0c\u4e3a ARM \u5904\u7406\u5668\u7684\u5e7f\u6cdb\u4f7f\u7528\u6253\u4e0b\u575a\u5b9e\u57fa\u7840\u3002"),(0,r.yg)("p",null,"ARM \u7684\u6210\u529f\u9664\u4e86\u5546\u4e1a\u6a21\u5f0f\u7684\u72ec\u7279\u4e4b\u5916\u8fd8\u5c11\u4e0d\u5f97\u81ea\u8eab\u7d20\u8d28\u7684\u4f18\u79c0\uff0cIntel \u6280\u672f\u6beb\u65e0\u7591\u95ee\u662f\u9876\u5c16\u7684\uff0c\u4f46\u5e94\u7528\u573a\u666f\u5728\u4f20\u7edf PC \u4e0a\uff0c\u6362\u6210\u79fb\u52a8\u8bbe\u5907\u5c31\u884c\u4e0d\u901a\u4e86\uff0c\u79fb\u52a8\u8bbe\u5907\u6bd4\u8d77\u6027\u80fd\u9996\u5148\u8981\u8003\u8651\u529f\u8017\u548c\u7eed\u822a\uff0cIntel \u5c31\u5403\u4e86\u8fd9\u4e2a\u5927\u4e8f\uff0cX86 \u67b6\u6784\u72ec\u6b65\u5929\u4e0b\u80af\u5b9a\u662f\u4e0d\u80fd\u968f\u610f\u53d8\u6539\u7684\uff0c\u79fb\u52a8\u8bbe\u5907\u5f53\u7136\u7ee7\u7eed\u6cbf\u7528 X86 \u67b6\u6784\uff0c\u7136\u800c\u6362\u6765\u5374\u662f\u9ad8\u529f\u8017\u548c\u5feb\u901f\u6389\u7535\uff0c\u6362\u8c01\u90fd\u770b\u4e0d\u4e0a\u3002\u53cd\u4e4b\u529f\u8017\u63a7\u5236\u5219\u662f ARM \u7684\u5f3a\u9879\uff0c\u4f7f\u7528\u7cbe\u7b80\u6307\u4ee4\u96c6\uff08RISC\uff09\u548c\u521b\u65b0\u7684 big.LITTLE \u67b6\u6784\uff0c\u4f7f ARM \u5904\u7406\u5668\u80fd\u8017\u6bd4\u4e00\u76f4\u9886\u5148\u4e8e Intel\u3002"),(0,r.yg)("p",null,"Intel \u6b63\u5728\u79ef\u6781\u5e03\u5c40\uff0c\u63a8\u51fa\u5e94\u7528\u4e8e IoT \u7269\u8054\u7f51\u7684 Atom E3900 \u53ca\u8f66\u8f7d\u7535\u5b50\u7684 Atom A3900 \u7cfb\u5217\uff0c\u53f7\u79f0 CPU \u6027\u80fd\u63d0\u5347 70%\uff0cGPU \u6027\u80fd\u63d0\u5347 190%\uff0c\u5176\u4e2d Atom A3900 \u7279\u522b\u9488\u5bf9\u9ad8\u6e29\u73af\u5883\u8bbe\u8ba1\uff0c\u53ef\u5728 110\xb0C \u9ad8\u6e29\u4e0b\u4f7f\u7528 15 \u5e74\u3002Intel \u662f\u4e00\u5bb6\u4f1f\u5927\u7684\u4f01\u4e1a\uff0c\u4f46\u4e5f\u662f\u4f1a\u72af\u9519\u8bef\u7684\uff0c\u65e2\u7136\u5df2\u7ecf\u9519\u5931\u79fb\u52a8\u5e02\u573a\uff0c\u4e0d\u59a8\u6682\u65f6\u8131\u79bb\uff0c\u63d0\u524d\u505a\u597d\u4e0b\u4e00\u9636\u6bb5\u7684\u6280\u672f\u7814\u53d1\uff085G\uff09\uff0c\u4e5f\u6709\u53ef\u80fd\u5b9e\u73b0\u5f2f\u9053\u8d85\u8f66\u3002"),(0,r.yg)("h3",{id:"\u64cd\u4f5c\u7cfb\u7edf"},"\u64cd\u4f5c\u7cfb\u7edf"),(0,r.yg)("p",null,"\u64cd\u4f5c\u7cfb\u7edf\uff08Operating System\uff0cOS\uff09\u662f\u4e00\u7ec4\u4e3b\u7ba1\u5e76\u63a7\u5236\u8ba1\u7b97\u673a\u64cd\u4f5c\u3001\u8fd0\u7528\u548c\u8fd0\u884c\u786c\u4ef6\u3001\u8f6f\u4ef6\u8d44\u6e90\u548c\u63d0\u4f9b\u516c\u5171\u670d\u52a1\u6765\u7ec4\u7ec7\u7528\u6237\u4ea4\u4e92\u7684\u76f8\u4e92\u5173\u8054\u7684\u7cfb\u7edf\u8f6f\u4ef6\u7a0b\u5e8f\u3002\u6839\u636e\u8fd0\u884c\u7684\u73af\u5883\uff0c\u64cd\u4f5c\u7cfb\u7edf\u53ef\u4ee5\u5206\u4e3a\u684c\u9762\u64cd\u4f5c\u7cfb\u7edf\uff0c\u624b\u673a\u64cd\u4f5c\u7cfb\u7edf\uff0c\u670d\u52a1\u5668\u64cd\u4f5c\u7cfb\u7edf\uff0c\u5d4c\u5165\u5f0f\u64cd\u4f5c\u7cfb\u7edf\u7b49\u3002"),(0,r.yg)("p",null,"\u64cd\u4f5c\u7cfb\u7edf\u80fd\u7ba1\u7406\u8ba1\u7b97\u673a\u7cfb\u7edf\u7684\u786c\u4ef6\u3001\u8f6f\u4ef6\u53ca\u6570\u636e\u8d44\u6e90\uff0c\u63a7\u5236\u7a0b\u5e8f\u8fd0\u884c\uff0c\u6539\u5584\u4eba\u673a\u754c\u9762\uff0c\u4e3a\u5176\u5b83\u5e94\u7528\u8f6f\u4ef6\u63d0\u4f9b\u652f\u6301\uff0c\u5e76\u4f7f\u8ba1\u7b97\u673a\u7cfb\u7edf\u6240\u6709\u8d44\u6e90\u6700\u5927\u9650\u5ea6\u5730\u53d1\u6325\u4f5c\u7528\u3002\u64cd\u4f5c\u7cfb\u7edf\u4e3b\u8981\u529f\u80fd\u5305\u62ec\uff1a\u8fdb\u7a0b\u7ba1\u7406\u3001\u5b58\u50a8\u7ba1\u7406\u3001\u8bbe\u5907\u7ba1\u7406\u3001\u6587\u4ef6\u7ba1\u7406\u3001\u4f5c\u4e1a\u7ba1\u7406\u7b49\u3002"),(0,r.yg)("h4",{id:"\u684c\u9762\u64cd\u4f5c\u7cfb\u7edf"},"\u684c\u9762\u64cd\u4f5c\u7cfb\u7edf"),(0,r.yg)("p",null,"\u684c\u9762\u64cd\u4f5c\u7cfb\u7edf\u4e3b\u8981\u7528\u4e8e\u4e2a\u4eba\u8ba1\u7b97\u673a\u4e0a\u3002\u4e2a\u4eba\u8ba1\u7b97\u673a\u5e02\u573a\u4ece\u786c\u4ef6\u67b6\u6784\u4e0a\u6765\u8bf4\u4e3b\u8981\u5206\u4e3a\u4e24\u5927\u9635\u8425\uff0cPC \u673a\u4e0e Mac \u673a\uff0c\u4ece\u8f6f\u4ef6\u4e0a\u53ef\u4e3b\u8981\u5206\u4e3a\u4e24\u5927\u7c7b\uff0c\u5206\u522b\u4e3a\u7c7b Unix \u64cd\u4f5c\u7cfb\u7edf\u548c Windows \u64cd\u4f5c\u7cfb\u7edf\uff1a"),(0,r.yg)("p",null,"1\u3001Unix \u548c\u7c7b Unix \u64cd\u4f5c\u7cfb\u7edf\uff1aMac OS X\uff0cLinux \u53d1\u884c\u7248\uff08\u5982 Debian\uff0cUbuntu\uff0cLinux Mint\uff0copenSUSE\uff0cFedora \u7b49\uff09\uff1b"),(0,r.yg)("p",null,"2\u3001\u5fae\u8f6f\u516c\u53f8 Windows \u64cd\u4f5c\u7cfb\u7edf \uff1aWindows XP\uff0cWindows Vista\uff0cWindows 7\uff0cWindows 8\uff0cWindows 8.1\uff0cWindows 10\uff0cWindows 11 \u7b49\u3002"),(0,r.yg)("h4",{id:"\u670d\u52a1\u5668\u64cd\u4f5c\u7cfb\u7edf"},"\u670d\u52a1\u5668\u64cd\u4f5c\u7cfb\u7edf"),(0,r.yg)("p",null,"\u670d\u52a1\u5668\u64cd\u4f5c\u7cfb\u7edf\u4e00\u822c\u6307\u7684\u662f\u5b89\u88c5\u5728\u5927\u578b\u8ba1\u7b97\u673a\u4e0a\u7684\u64cd\u4f5c\u7cfb\u7edf\uff0c\u6bd4\u5982 Web \u670d\u52a1\u5668\u3001\u5e94\u7528\u670d\u52a1\u5668\u548c\u6570\u636e\u5e93\u670d\u52a1\u5668\u7b49\u3002\u670d\u52a1\u5668\u64cd\u4f5c\u7cfb\u7edf\u4e3b\u8981\u96c6\u4e2d\u5728\u4e09\u5927\u7c7b\uff1a"),(0,r.yg)("p",null,"1\u3001Unix \u7cfb\u5217\uff1aSUNSolaris\uff0cIBM-AIX\uff0cHP-UX\uff0cFreeBSD \u7b49\uff1b"),(0,r.yg)("p",null,"2\u3001Linux \u7cfb\u5217\uff1aRed Hat Linux\uff0cCentOS\uff0cDebian\uff0cUbuntu \u7b49\uff1b"),(0,r.yg)("p",null,"3\u3001Windows \u7cfb\u5217\uff1aWindows Server 2003\uff0cWindows Server 2008\uff0cWindows Server 2008 R2 \u7b49\u3002"),(0,r.yg)("h4",{id:"\u5d4c\u5165\u5f0f\u64cd\u4f5c\u7cfb\u7edf"},"\u5d4c\u5165\u5f0f\u64cd\u4f5c\u7cfb\u7edf"),(0,r.yg)("p",null,"\u5d4c\u5165\u5f0f\u64cd\u4f5c\u7cfb\u7edf\u662f\u5e94\u7528\u5728\u5d4c\u5165\u5f0f\u7cfb\u7edf\u7684\u64cd\u4f5c\u7cfb\u7edf\u3002\u5d4c\u5165\u5f0f\u7cfb\u7edf\u5e7f\u6cdb\u5e94\u7528\u5728\u751f\u6d3b\u7684\u5404\u4e2a\u65b9\u9762\uff0c\u6db5\u76d6\u8303\u56f4\u4ece\u4fbf\u643a\u8bbe\u5907\u5230\u5927\u578b\u56fa\u5b9a\u8bbe\u65bd\uff0c\u5982\u6570\u7801\u76f8\u673a\u3001\u624b\u673a\u3001\u5e73\u677f\u7535\u8111\u3001\u5bb6\u7528\u7535\u5668\u3001\u533b\u7597\u8bbe\u5907\u3001\u4ea4\u901a\u706f\u3001\u822a\u7a7a\u7535\u5b50\u8bbe\u5907\u548c\u5de5\u5382\u63a7\u5236\u8bbe\u5907\u7b49\uff0c\u8d8a\u6765\u8d8a\u591a\u5d4c\u5165\u5f0f\u7cfb\u7edf\u5b89\u88c5\u6709\u5b9e\u65f6\u64cd\u4f5c\u7cfb\u7edf\u3002"),(0,r.yg)("p",null,"\u5728\u5d4c\u5165\u5f0f\u9886\u57df\u5e38\u7528\u7684\u64cd\u4f5c\u7cfb\u7edf\u6709\u5d4c\u5165\u5f0f Linux\u3001Windows Embedded\u3001VxWorks \u7b49\uff0c\u4ee5\u53ca\u5e7f\u6cdb\u4f7f\u7528\u5728\u667a\u80fd\u624b\u673a\u6216\u5e73\u677f\u7535\u8111\u7b49\u6d88\u8d39\u7535\u5b50\u4ea7\u54c1\u7684\u64cd\u4f5c\u7cfb\u7edf\uff0c\u5982 Android\u3001iOS\u3001Symbian\u3001Windows Phone \u548c BlackBerry OS \u7b49\u3002"),(0,r.yg)("h3",{id:"\u53ef\u6267\u884c\u7a0b\u5e8f\u6267\u884c\u7684\u539f\u7406\u5206\u6790"},"\u53ef\u6267\u884c\u7a0b\u5e8f\u6267\u884c\u7684\u539f\u7406\u5206\u6790"),(0,r.yg)("p",null,"\u53ef\u6267\u884c\u7a0b\u5e8f\u6267\u884c\u5185\u5bb9\u53ef\u4ee5\u5206\u4e24\u7c7b\uff0c\u4e00\u662f CPU \u7684\u6307\u4ee4\uff0c\u4e8c\u662f\u64cd\u4f5c\u7cfb\u7edf\u7684\u7cfb\u7edf\u8c03\u7528\uff0c\u51e0\u4e4e\u6240\u6709\u7684\u53ef\u6267\u884c\u7a0b\u5e8f\u90fd\u662f\u8fd0\u884c\u5728\u64cd\u4f5c\u7cfb\u7edf\u4e4b\u4e0a\u7684\uff0c\u7531\u64cd\u4f5c\u7cfb\u7edf\u6765\u7edf\u4e00\u8c03\u5ea6\u53ef\u6267\u884c\u7a0b\u5e8f\u7684\u6267\u884c\u5185\u5bb9\u3002"),(0,r.yg)("p",null,"\u8bf4\u5230\u53ef\u6267\u884c\u7a0b\u5e8f\uff0c\u5fc5\u987b\u5f97\u8bf4\u4e00\u4e0b\uff0c\u5e94\u7528\u7a0b\u5e8f\u4e8c\u8fdb\u5236\u63a5\u53e3 ABI\uff0c\uff08Application Binary Interface\uff09\uff0cABI \u662f\u7f16\u8bd1\u5668\u548c\u94fe\u63a5\u5668\u9075\u5b88\u7684\u4e00\u7ec4\u89c4\u5219\uff0c\u4ee5\u8ba9\u7f16\u8bd1\u540e\u7684\u7a0b\u5e8f\u53ef\u4ee5\u6b63\u5e38\u5de5\u4f5c\u3002"),(0,r.yg)("p",null,"\u4e0d\u540c\u7684\u64cd\u4f5c\u7cfb\u7edf\u5bf9 ABI \u7684\u8981\u6c42\u4e0d\u4e00\u6837\uff0c\u4f8b\u5982 Linux \u8981\u6c42 ELF \u683c\u5f0f\uff0cWindows \u8981\u6c42 PE \u683c\u5f0f\u3002"),(0,r.yg)("p",null,"\u7b80\u5355\u6765\u8bf4\uff0cABI \u5c31\u662f\u63cf\u8ff0\u51fd\u6570\u540d\u5982\u4f55\u5b58\u50a8\uff0c\u51fd\u6570\u53c2\u6570\u7c7b\u578b\u5982\u4f55\u5b58\u50a8\u7684\u63a5\u53e3\u3002"),(0,r.yg)("p",null,"\u4e00\u4e2a\u7a0b\u5e8f\u8981\u60f3\u8c03\u7528\u5176\u5b83\u7a0b\u5e8f\u7f16\u8bd1\u51fa\u6765\u7684\u51fd\u6570\uff0c\u90a3\u4e48\u5c31\u5fc5\u987b\u77e5\u9053\u5176 ABI \u63a5\u53e3\u3002"),(0,r.yg)("p",null,"C \u8bed\u8a00\u5177\u6709\u4f18\u79c0\u7684 ABI \u517c\u5bb9\uff0c\u56e0\u4e3a\u4e3b\u6d41 C \u7f16\u8bd1\u5668\u7f16\u8bd1\u51fa\u6765\u7684\u51fd\u6570\uff0cABI \u63a5\u53e3\u5927\u90fd\u76f8\u540c\uff0c\u6240\u4ee5\u7528 C \u8bed\u8a00\u5199\u7684\u5e93\u80fd\u65b9\u4fbf\u7684\u88ab\u5176\u5b83\u7a0b\u5e8f\u8c03\u7528\u3002"),(0,r.yg)("p",null,"C++\u4e00\u822c\u4e0d\u5177\u6709\u5f88\u597d\u7684 ABI \u517c\u5bb9\uff0c\u56e0\u4e3a\u6bcf\u4e2a C++\u7f16\u8bd1\u5668\u7f16\u8bd1\u51fa\u6765\u7684\u63a5\u53e3\u53ef\u80fd\u4e0d\u540c\uff0c\u5bfc\u81f4\u4e86\u4f60\u65e0\u6cd5\u8c03\u7528\u5176\u5b83\u4eba\u7528 C++\u63a5\u53e3\u63d0\u4f9b\u7684\u5e93\u51fd\u6570\u3002\u6240\u4ee5 C++\u51fd\u6570\u5f80\u5f80\u5f3a\u5236\u4f7f\u7528 C \u7684 ABI \u7528\u4e8e\u7ed9\u5176\u5b83\u7a0b\u5e8f\u8c03\u7528\u3002"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"\u628a\u7b26\u53f7\u6807\u51c6\u3001\u53d8\u91cf\u5185\u5b58\u5e03\u5c40\u3001\u51fd\u6570\u8c03\u7528\u65b9\u5f0f\u7b49\u8ddf\u53ef\u6267\u884c\u4ee3\u7801\u4e8c\u8fdb\u5236\u517c\u5bb9\u6027\u76f8\u5173\u7684\u5185\u5bb9\u79f0\u4e3a ABI Application Binary Interface"),(0,r.yg)("li",{parentName:"ul"},"\u5e94\u7528\u7a0b\u5e8f\u4e8c\u8fdb\u5236\u63a5\u53e3\uff0c\u63cf\u8ff0\u4e86\u5e94\u7528\u7a0b\u5e8f\u548c\u64cd\u4f5c\u7cfb\u7edf\u4e4b\u95f4\uff0c\u4e00\u4e2a\u5e94\u7528\u548c\u5b83\u7684\u5e93\u4e4b\u95f4\uff0c\u6216\u8005\u5e94\u7528\u7684\u7ec4\u6210\u90e8\u5206\u4e4b\u95f4\u7684\u4f4e\u63a5\u53e3\u3002"),(0,r.yg)("li",{parentName:"ul"},"\u7f16\u7a0b\u8bed\u8a00\u5b9e\u73b0\u7684 ABI \u662f\u4e00\u79cd\u53ef\u4ee5\u4f7f\u5355\u72ec\u7f16\u8bd1\u7684\u6a21\u5757\u534f\u540c\u5de5\u4f5c\u7684\u4f4e\u7ea7\u7ec6\u8282\u7684\u89c4\u8303\u3002\u5982\u679c\u6ca1\u6709\u4e00\u4e2a\u7a33\u5b9a\u7684 ABI\uff0c\u5c31\u5fc5\u987b\u4f7f\u7528\u540c\u4e00\u7f16\u8bd1\u5668\u7684\u540c\u4e00\u7248\u672c\u7f16\u8bd1\u7a0b\u5e8f\u7684\u6240\u6709\u90e8\u5206\u3002"),(0,r.yg)("li",{parentName:"ul"},"API \u662f\u6e90\u4ee3\u7801\u7ea7\u522b\u7684\u63a5\u53e3\uff0cABI \u662f\u4e8c\u8fdb\u5236\u5c42\u9762\u7684\u63a5\u53e3\uff0cABI \u7684\u517c\u5bb9\u7a0b\u5ea6\u6bd4 API \u66f4\u52a0\u4e25\u683c")),(0,r.yg)("p",null,"\u64cd\u4f5c\u7cfb\u7edf\u90fd\u89c4\u5b9a\u4e86\u652f\u6301\u7684\u53ef\u6267\u884c\u6587\u4ef6\uff08\u7a0b\u5e8f\uff09\u7684\u683c\u5f0f\u3002Windows \u4e0b\u6709 PE \u6587\u4ef6\u683c\u5f0f\uff0cLinux \u4e0b\u6709 ELF \u683c\u5f0f,Mac OS \u4e0b\u6709 Mach-O \u683c\u5f0f\u3002"),(0,r.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("a",{parentName:"li",href:"ttps://www.zhihu.com/question/320884011/answer/2763905623"},"\u77e5\u4e4e-\u4e3a\u4ec0\u4e48 Linux \u539f\u751f\u4e0d\u80fd\u8fd0\u884c exe \u683c\u5f0f\u7684\u6587\u4ef6\uff1f"))))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9a914db6.567aee39.js b/assets/js/9a914db6.7e565bfe.js similarity index 98% rename from assets/js/9a914db6.567aee39.js rename to assets/js/9a914db6.7e565bfe.js index 4f9efe208..fb02f19ed 100644 --- a/assets/js/9a914db6.567aee39.js +++ b/assets/js/9a914db6.7e565bfe.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5631],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),u=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(c.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,c=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),s=u(r),d=o,f=s["".concat(c,".").concat(d)]||s[d]||y[d]||i;return r?n.createElement(f,a(a({ref:t},p),{},{components:r})):n.createElement(f,a({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=d;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[s]="string"==typeof e?e:o,a[1]=l;for(var u=2;u{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>y,frontMatter:()=>i,metadata:()=>l,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const i={},a="\u5e76\u53d1\u6a21\u578b",l={unversionedId:"study/think/\u5e76\u53d1\u6a21\u578b",id:"study/think/\u5e76\u53d1\u6a21\u578b",title:"\u5e76\u53d1\u6a21\u578b",description:"\u4e1a\u754c\u5c06\u5982\u4f55\u5b9e\u73b0\u5e76\u53d1\u7f16\u7a0b\u603b\u7ed3\u5f52\u7eb3\u4e3a\u5404\u5f0f\u5404\u6837\u7684\u5e76\u53d1\u6a21\u578b\uff0c\u5e38\u89c1\u7684\u5e76\u53d1\u6a21\u578b\u6709\u4ee5\u4e0b\u51e0\u79cd\uff1a",source:"@site/docs/study/think/\u5e76\u53d1\u6a21\u578b.md",sourceDirName:"study/think",slug:"/study/think/\u5e76\u53d1\u6a21\u578b",permalink:"/docs/study/think/\u5e76\u53d1\u6a21\u578b",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u5b9e\u65f6\u8ba1\u7b97Storm+Flink",permalink:"/docs/study/think/\u5b9e\u65f6\u8ba1\u7b97Storm+Flink"},next:{title:"\u67b6\u6784",permalink:"/docs/study/think/\u67b6\u6784/"}},c={},u=[{value:"\u7ebf\u7a0b & \u9501\u6a21\u578b",id:"\u7ebf\u7a0b--\u9501\u6a21\u578b",level:3},{value:"Actor \u6a21\u578b",id:"actor-\u6a21\u578b",level:3},{value:"CSP \u6a21\u578b",id:"csp-\u6a21\u578b",level:3},{value:"Fork&Join \u6a21\u578b",id:"forkjoin-\u6a21\u578b",level:3}],p={toc:u},s="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u5e76\u53d1\u6a21\u578b"},"\u5e76\u53d1\u6a21\u578b"),(0,o.yg)("p",null,"\u4e1a\u754c\u5c06\u5982\u4f55\u5b9e\u73b0\u5e76\u53d1\u7f16\u7a0b\u603b\u7ed3\u5f52\u7eb3\u4e3a\u5404\u5f0f\u5404\u6837\u7684\u5e76\u53d1\u6a21\u578b\uff0c\u5e38\u89c1\u7684\u5e76\u53d1\u6a21\u578b\u6709\u4ee5\u4e0b\u51e0\u79cd\uff1a"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"\u7ebf\u7a0b & \u9501\u6a21\u578b"),(0,o.yg)("li",{parentName:"ul"},"Actor \u6a21\u578b"),(0,o.yg)("li",{parentName:"ul"},"CSP \u6a21\u578b"),(0,o.yg)("li",{parentName:"ul"},"Fork&Join \u6a21\u578b")),(0,o.yg)("h3",{id:"\u7ebf\u7a0b--\u9501\u6a21\u578b"},"\u7ebf\u7a0b & \u9501\u6a21\u578b"),(0,o.yg)("h3",{id:"actor-\u6a21\u578b"},"Actor \u6a21\u578b"),(0,o.yg)("h3",{id:"csp-\u6a21\u578b"},"CSP \u6a21\u578b"),(0,o.yg)("p",null,"CSP\uff08communicating sequential processes\uff09"),(0,o.yg)("p",null,"Go \u8bed\u8a00\u4e2d\u7684\u5e76\u53d1\u7a0b\u5e8f\u4e3b\u8981\u662f\u901a\u8fc7\u57fa\u4e8e CSP\uff08communicating sequential processes\uff09\u7684 goroutine \u548c channel \u6765\u5b9e\u73b0\uff0c\u5f53\u7136\u4e5f\u652f\u6301\u4f7f\u7528\u4f20\u7edf\u7684\u591a\u7ebf\u7a0b\u5171\u4eab\u5185\u5b58\u7684\u5e76\u53d1\u65b9\u5f0f\u3002"),(0,o.yg)("h3",{id:"forkjoin-\u6a21\u578b"},"Fork&Join \u6a21\u578b"))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5631],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),u=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(c.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,c=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),s=u(r),d=o,f=s["".concat(c,".").concat(d)]||s[d]||y[d]||i;return r?n.createElement(f,a(a({ref:t},p),{},{components:r})):n.createElement(f,a({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=d;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[s]="string"==typeof e?e:o,a[1]=l;for(var u=2;u{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>y,frontMatter:()=>i,metadata:()=>l,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const i={},a="\u5e76\u53d1\u6a21\u578b",l={unversionedId:"study/think/\u5e76\u53d1\u6a21\u578b",id:"study/think/\u5e76\u53d1\u6a21\u578b",title:"\u5e76\u53d1\u6a21\u578b",description:"\u4e1a\u754c\u5c06\u5982\u4f55\u5b9e\u73b0\u5e76\u53d1\u7f16\u7a0b\u603b\u7ed3\u5f52\u7eb3\u4e3a\u5404\u5f0f\u5404\u6837\u7684\u5e76\u53d1\u6a21\u578b\uff0c\u5e38\u89c1\u7684\u5e76\u53d1\u6a21\u578b\u6709\u4ee5\u4e0b\u51e0\u79cd\uff1a",source:"@site/docs/study/think/\u5e76\u53d1\u6a21\u578b.md",sourceDirName:"study/think",slug:"/study/think/\u5e76\u53d1\u6a21\u578b",permalink:"/docs/study/think/\u5e76\u53d1\u6a21\u578b",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u5b9e\u65f6\u8ba1\u7b97Storm+Flink",permalink:"/docs/study/think/\u5b9e\u65f6\u8ba1\u7b97Storm+Flink"},next:{title:"\u67b6\u6784",permalink:"/docs/study/think/\u67b6\u6784/"}},c={},u=[{value:"\u7ebf\u7a0b & \u9501\u6a21\u578b",id:"\u7ebf\u7a0b--\u9501\u6a21\u578b",level:3},{value:"Actor \u6a21\u578b",id:"actor-\u6a21\u578b",level:3},{value:"CSP \u6a21\u578b",id:"csp-\u6a21\u578b",level:3},{value:"Fork&Join \u6a21\u578b",id:"forkjoin-\u6a21\u578b",level:3}],p={toc:u},s="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u5e76\u53d1\u6a21\u578b"},"\u5e76\u53d1\u6a21\u578b"),(0,o.yg)("p",null,"\u4e1a\u754c\u5c06\u5982\u4f55\u5b9e\u73b0\u5e76\u53d1\u7f16\u7a0b\u603b\u7ed3\u5f52\u7eb3\u4e3a\u5404\u5f0f\u5404\u6837\u7684\u5e76\u53d1\u6a21\u578b\uff0c\u5e38\u89c1\u7684\u5e76\u53d1\u6a21\u578b\u6709\u4ee5\u4e0b\u51e0\u79cd\uff1a"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"\u7ebf\u7a0b & \u9501\u6a21\u578b"),(0,o.yg)("li",{parentName:"ul"},"Actor \u6a21\u578b"),(0,o.yg)("li",{parentName:"ul"},"CSP \u6a21\u578b"),(0,o.yg)("li",{parentName:"ul"},"Fork&Join \u6a21\u578b")),(0,o.yg)("h3",{id:"\u7ebf\u7a0b--\u9501\u6a21\u578b"},"\u7ebf\u7a0b & \u9501\u6a21\u578b"),(0,o.yg)("h3",{id:"actor-\u6a21\u578b"},"Actor \u6a21\u578b"),(0,o.yg)("h3",{id:"csp-\u6a21\u578b"},"CSP \u6a21\u578b"),(0,o.yg)("p",null,"CSP\uff08communicating sequential processes\uff09"),(0,o.yg)("p",null,"Go \u8bed\u8a00\u4e2d\u7684\u5e76\u53d1\u7a0b\u5e8f\u4e3b\u8981\u662f\u901a\u8fc7\u57fa\u4e8e CSP\uff08communicating sequential processes\uff09\u7684 goroutine \u548c channel \u6765\u5b9e\u73b0\uff0c\u5f53\u7136\u4e5f\u652f\u6301\u4f7f\u7528\u4f20\u7edf\u7684\u591a\u7ebf\u7a0b\u5171\u4eab\u5185\u5b58\u7684\u5e76\u53d1\u65b9\u5f0f\u3002"),(0,o.yg)("h3",{id:"forkjoin-\u6a21\u578b"},"Fork&Join \u6a21\u578b"))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9ad28e53.452a51b6.js b/assets/js/9ad28e53.4e3a6ebc.js similarity index 98% rename from assets/js/9ad28e53.452a51b6.js rename to assets/js/9ad28e53.4e3a6ebc.js index ac6297631..4fabcf4de 100644 --- a/assets/js/9ad28e53.452a51b6.js +++ b/assets/js/9ad28e53.4e3a6ebc.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4630],{5680:(e,r,t)=>{t.d(r,{xA:()=>u,yg:()=>f});var n=t(6540);function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function p(e){for(var r=1;r=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var i=n.createContext({}),l=function(e){var r=n.useContext(i),t=r;return e&&(t="function"==typeof e?e(r):p(p({},r),e)),t},u=function(e){var r=l(e.components);return n.createElement(i.Provider,{value:r},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},y=n.forwardRef((function(e,r){var t=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),s=l(t),y=a,f=s["".concat(i,".").concat(y)]||s[y]||d[y]||o;return t?n.createElement(f,p(p({ref:r},u),{},{components:t})):n.createElement(f,p({ref:r},u))}));function f(e,r){var t=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var o=t.length,p=new Array(o);p[0]=y;var c={};for(var i in r)hasOwnProperty.call(r,i)&&(c[i]=r[i]);c.originalType=e,c[s]="string"==typeof e?e:a,p[1]=c;for(var l=2;l{t.r(r),t.d(r,{assets:()=>i,contentTitle:()=>p,default:()=>d,frontMatter:()=>o,metadata:()=>c,toc:()=>l});var n=t(8168),a=(t(6540),t(5680));const o={},p="CSharp",c={unversionedId:"study/program/CSharp/index",id:"study/program/CSharp/index",title:"CSharp",description:"C#\u662f\u5fae\u8f6f\u63a8\u51fa\u7684\u4e00\u79cd\u57fa\u4e8e.NET \u6846\u67b6\u7684\u3001\u9762\u5411\u5bf9\u8c61\u7684\u9ad8\u7ea7\u7f16\u7a0b\u8bed\u8a00\u3002",source:"@site/docs/study/program/CSharp/index.md",sourceDirName:"study/program/CSharp",slug:"/study/program/CSharp/",permalink:"/docs/study/program/CSharp/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"C++\u8fdb\u7a0b\u95f4\u901a\u4fe1",permalink:"/docs/study/program/CPP/CPP\u8fdb\u7a0b\u95f4\u901a\u4fe1"},next:{title:"Flutter",permalink:"/docs/study/program/Dart/Flutter"}},i={},l=[{value:".Net \u6846\u67b6\uff08.Net Framework\uff09",id:"net-\u6846\u67b6net-framework",level:3}],u={toc:l},s="wrapper";function d(e){let{components:r,...t}=e;return(0,a.yg)(s,(0,n.A)({},u,t,{components:r,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"csharp"},"CSharp"),(0,a.yg)("p",null,"C#\u662f\u5fae\u8f6f\u63a8\u51fa\u7684\u4e00\u79cd\u57fa\u4e8e.NET \u6846\u67b6\u7684\u3001\u9762\u5411\u5bf9\u8c61\u7684\u9ad8\u7ea7\u7f16\u7a0b\u8bed\u8a00\u3002"),(0,a.yg)("p",null,"\u867d\u7136 C# \u7684\u6784\u60f3\u5341\u5206\u63a5\u8fd1\u4e8e\u4f20\u7edf\u9ad8\u7ea7\u8bed\u8a00 C \u548c C++\uff0c\u662f\u4e00\u95e8\u9762\u5411\u5bf9\u8c61\u7684\u7f16\u7a0b\u8bed\u8a00\uff0c\u4f46\u662f\u5b83\u4e0e Java \u975e\u5e38\u76f8\u4f3c\uff0c\u6709\u8bb8\u591a\u5f3a\u5927\u7684\u7f16\u7a0b\u529f\u80fd\uff0c\u56e0\u6b64\u5f97\u5230\u5e7f\u5927\u7a0b\u5e8f\u5458\u7684\u4eb2\u7750\u3002"),(0,a.yg)("h3",{id:"net-\u6846\u67b6net-framework"},".Net \u6846\u67b6\uff08.Net Framework\uff09"),(0,a.yg)("p",null,".Net \u6846\u67b6\u5e94\u7528\u7a0b\u5e8f\u662f\u591a\u5e73\u53f0\u7684\u5e94\u7528\u7a0b\u5e8f\u3002\u6846\u67b6\u7684\u8bbe\u8ba1\u65b9\u5f0f\u4f7f\u5b83\u9002\u7528\u4e8e\u4e0b\u5217\u5404\u79cd\u8bed\u8a00\uff1aC#\u3001C++\u3001Visual Basic\u3001Jscript\u3001COBOL \u7b49\u7b49\u3002\u6240\u6709\u8fd9\u4e9b\u8bed\u8a00\u53ef\u4ee5\u8bbf\u95ee\u6846\u67b6\uff0c\u5f7c\u6b64\u4e4b\u95f4\u4e5f\u53ef\u4ee5\u4e92\u76f8\u4ea4\u4e92\u3002"),(0,a.yg)("p",null,"\u867d\u7136 .NET \u6846\u67b6\u662f\u8fd0\u884c\u5728 Windows \u64cd\u4f5c\u7cfb\u7edf\u4e0a\uff0c\u4f46\u662f\u4e5f\u6709\u4e00\u4e9b\u8fd0\u884c\u4e8e\u5176\u5b83\u64cd\u4f5c\u7cfb\u7edf\u4e0a\u7684\u7248\u672c\u53ef\u4f9b\u9009\u62e9\u3002Mono \u662f .NET \u6846\u67b6\u7684\u4e00\u4e2a\u5f00\u6e90\u7248\u672c\uff0c\u5b83\u5305\u542b\u4e86\u4e00\u4e2a C# \u7f16\u8bd1\u5668\uff0c\u4e14\u53ef\u8fd0\u884c\u4e8e\u591a\u79cd\u64cd\u4f5c\u7cfb\u7edf\u4e0a\uff0c\u6bd4\u5982\u5404\u79cd\u7248\u672c\u7684 Linux \u548c Mac OS\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4630],{5680:(e,r,t)=>{t.d(r,{xA:()=>u,yg:()=>f});var n=t(6540);function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function p(e){for(var r=1;r=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var i=n.createContext({}),l=function(e){var r=n.useContext(i),t=r;return e&&(t="function"==typeof e?e(r):p(p({},r),e)),t},u=function(e){var r=l(e.components);return n.createElement(i.Provider,{value:r},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},y=n.forwardRef((function(e,r){var t=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),s=l(t),y=a,f=s["".concat(i,".").concat(y)]||s[y]||d[y]||o;return t?n.createElement(f,p(p({ref:r},u),{},{components:t})):n.createElement(f,p({ref:r},u))}));function f(e,r){var t=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var o=t.length,p=new Array(o);p[0]=y;var c={};for(var i in r)hasOwnProperty.call(r,i)&&(c[i]=r[i]);c.originalType=e,c[s]="string"==typeof e?e:a,p[1]=c;for(var l=2;l{t.r(r),t.d(r,{assets:()=>i,contentTitle:()=>p,default:()=>d,frontMatter:()=>o,metadata:()=>c,toc:()=>l});var n=t(8168),a=(t(6540),t(5680));const o={},p="CSharp",c={unversionedId:"study/program/CSharp/index",id:"study/program/CSharp/index",title:"CSharp",description:"C#\u662f\u5fae\u8f6f\u63a8\u51fa\u7684\u4e00\u79cd\u57fa\u4e8e.NET \u6846\u67b6\u7684\u3001\u9762\u5411\u5bf9\u8c61\u7684\u9ad8\u7ea7\u7f16\u7a0b\u8bed\u8a00\u3002",source:"@site/docs/study/program/CSharp/index.md",sourceDirName:"study/program/CSharp",slug:"/study/program/CSharp/",permalink:"/docs/study/program/CSharp/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"C++\u8fdb\u7a0b\u95f4\u901a\u4fe1",permalink:"/docs/study/program/CPP/CPP\u8fdb\u7a0b\u95f4\u901a\u4fe1"},next:{title:"Flutter",permalink:"/docs/study/program/Dart/Flutter"}},i={},l=[{value:".Net \u6846\u67b6\uff08.Net Framework\uff09",id:"net-\u6846\u67b6net-framework",level:3}],u={toc:l},s="wrapper";function d(e){let{components:r,...t}=e;return(0,a.yg)(s,(0,n.A)({},u,t,{components:r,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"csharp"},"CSharp"),(0,a.yg)("p",null,"C#\u662f\u5fae\u8f6f\u63a8\u51fa\u7684\u4e00\u79cd\u57fa\u4e8e.NET \u6846\u67b6\u7684\u3001\u9762\u5411\u5bf9\u8c61\u7684\u9ad8\u7ea7\u7f16\u7a0b\u8bed\u8a00\u3002"),(0,a.yg)("p",null,"\u867d\u7136 C# \u7684\u6784\u60f3\u5341\u5206\u63a5\u8fd1\u4e8e\u4f20\u7edf\u9ad8\u7ea7\u8bed\u8a00 C \u548c C++\uff0c\u662f\u4e00\u95e8\u9762\u5411\u5bf9\u8c61\u7684\u7f16\u7a0b\u8bed\u8a00\uff0c\u4f46\u662f\u5b83\u4e0e Java \u975e\u5e38\u76f8\u4f3c\uff0c\u6709\u8bb8\u591a\u5f3a\u5927\u7684\u7f16\u7a0b\u529f\u80fd\uff0c\u56e0\u6b64\u5f97\u5230\u5e7f\u5927\u7a0b\u5e8f\u5458\u7684\u4eb2\u7750\u3002"),(0,a.yg)("h3",{id:"net-\u6846\u67b6net-framework"},".Net \u6846\u67b6\uff08.Net Framework\uff09"),(0,a.yg)("p",null,".Net \u6846\u67b6\u5e94\u7528\u7a0b\u5e8f\u662f\u591a\u5e73\u53f0\u7684\u5e94\u7528\u7a0b\u5e8f\u3002\u6846\u67b6\u7684\u8bbe\u8ba1\u65b9\u5f0f\u4f7f\u5b83\u9002\u7528\u4e8e\u4e0b\u5217\u5404\u79cd\u8bed\u8a00\uff1aC#\u3001C++\u3001Visual Basic\u3001Jscript\u3001COBOL \u7b49\u7b49\u3002\u6240\u6709\u8fd9\u4e9b\u8bed\u8a00\u53ef\u4ee5\u8bbf\u95ee\u6846\u67b6\uff0c\u5f7c\u6b64\u4e4b\u95f4\u4e5f\u53ef\u4ee5\u4e92\u76f8\u4ea4\u4e92\u3002"),(0,a.yg)("p",null,"\u867d\u7136 .NET \u6846\u67b6\u662f\u8fd0\u884c\u5728 Windows \u64cd\u4f5c\u7cfb\u7edf\u4e0a\uff0c\u4f46\u662f\u4e5f\u6709\u4e00\u4e9b\u8fd0\u884c\u4e8e\u5176\u5b83\u64cd\u4f5c\u7cfb\u7edf\u4e0a\u7684\u7248\u672c\u53ef\u4f9b\u9009\u62e9\u3002Mono \u662f .NET \u6846\u67b6\u7684\u4e00\u4e2a\u5f00\u6e90\u7248\u672c\uff0c\u5b83\u5305\u542b\u4e86\u4e00\u4e2a C# \u7f16\u8bd1\u5668\uff0c\u4e14\u53ef\u8fd0\u884c\u4e8e\u591a\u79cd\u64cd\u4f5c\u7cfb\u7edf\u4e0a\uff0c\u6bd4\u5982\u5404\u79cd\u7248\u672c\u7684 Linux \u548c Mac OS\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9c88f308.5e96b36b.js b/assets/js/9c88f308.24effc97.js similarity index 98% rename from assets/js/9c88f308.5e96b36b.js rename to assets/js/9c88f308.24effc97.js index 42114bf47..2b0cfb04e 100644 --- a/assets/js/9c88f308.5e96b36b.js +++ b/assets/js/9c88f308.24effc97.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5034],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>g});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),c=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=c(e.components);return n.createElement(p.Provider,{value:t},e.children)},u="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),u=c(r),m=a,g=u["".concat(p,".").concat(m)]||u[m]||y[m]||o;return r?n.createElement(g,i(i({ref:t},s),{},{components:r})):n.createElement(g,i({ref:t},s))}));function g(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=m;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[u]="string"==typeof e?e:a,i[1]=l;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>y,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var n=r(8168),a=(r(6540),r(5680));const o={},i="JNI",l={unversionedId:"study/program/JAVA/JNI",id:"study/program/JAVA/JNI",title:"JNI",description:"Java Native Interface\uff0cJava \u672c\u5730\u63a5\u53e3",source:"@site/docs/study/program/JAVA/JNI.md",sourceDirName:"study/program/JAVA",slug:"/study/program/JAVA/JNI",permalink:"/docs/study/program/JAVA/JNI",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"JDK8",permalink:"/docs/study/program/JAVA/JDK8"},next:{title:"Maven",permalink:"/docs/study/program/JAVA/Maven"}},p={},c=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],s={toc:c},u="wrapper";function y(e){let{components:t,...r}=e;return(0,a.yg)(u,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"jni"},"JNI"),(0,a.yg)("p",null,"Java Native Interface\uff0cJava \u672c\u5730\u63a5\u53e3"),(0,a.yg)("p",null,"Java \u5f00\u53d1\u8fc7\u7a0b\u4e2d\uff0c\u6709\u65f6\u5019\u4f1a\u9700\u8981\u548c C\uff0cC++\u7b49\u4ea4\u4e92\uff0c\u8fd9\u65f6\u5019\u6211\u4eec\u5c31\u60f3\u8d77\u4e86\u7ecf\u5178\u6280\u672f JNI\uff0c\u4f46\u662f JNI \u7684\u4f7f\u7528\u8fc7\u7a0b\u5341\u5206\u7e41\u7410\uff0c\u800c\u4e14\u5bb9\u6613\u51fa\u73b0\u5404\u79cd\u95ee\u9898\uff0c\u8fd8\u5f97",(0,a.yg)("strong",{parentName:"p"},(0,a.yg)("em",{parentName:"strong"},"\u5c01\u88c5")),"\u800c\u4e14\u95ee\u9898\u4e0d\u597d\u5b9a\u4f4d\u3002\u5047\u5982\u6211\u4eec\u6709\u4e00\u4e2a.so \u6587\u4ef6\uff0c\u5982\u679c\u4f7f\u7528 JNI \u53bb\u8c03\u7528\uff0c\u6211\u4eec\u9700\u8981\u53e6\u5916\u7528 C \u8bed\u97f3\u5199\u4e00\u4e2a.so \u7684\u5171\u4eab\u6587\u4ef6\uff0c\u5e76\u4e14\u5f97\u4f7f\u7528 SUN \u89c4\u5b9a\u7684\u6570\u636e\u7ed3\u6784\u53bb\u66ff\u4ee3 C \u8bed\u8a00\u7684\u6570\u636e\u7ed3\u6784\uff0c\u81f3\u6b64\u624d\u80fd\u8c03\u7528 so \u6587\u4ef6\u91cc\u9762\u516c\u5e03\u7684\u51fd\u6570\u3002\u4f5c\u4e3a JAVA \u7684\u7a0b\u5e8f\u5458\u8fd9\u4e2a\u8fc7\u7a0b\u662f\u4ee4\u4eba\u5934\u75bc\u7684\u3002"),(0,a.yg)("p",null,"\u76f8\u6bd4\u4e4b\u4e0b\uff0c\u4f7f\u7528 ",(0,a.yg)("strong",{parentName:"p"},(0,a.yg)("em",{parentName:"strong"},"JNA"))," \u5c31\u7b80\u5355\u591a\u4e86\uff0c\u53ea\u9700\u8981\u4f9d\u8d56\u4e00\u4e2a jar \u5305\uff0c\u5c31\u50cf\u8c03\u7528\u4e00\u4e2a java \u65b9\u6cd5\u4e00\u6837\u7b80\u5355\u3002JNA \u5168\u79f0 Java Native Access\uff0c\u662f\u4e00\u4e2a\u5efa\u7acb\u5728 JNI \u6280\u672f\u4e4b\u4e0a\u7684 Java \u5f00\u6e90\u6846\u67b6\u3002JNA \u63d0\u4f9b\u4e00\u7ec4 Java \u5de5\u5177\u7c7b\u7528\u4e8e\u5728\u8fd0\u884c\u671f\u52a8\u6001\u8bbf\u95ee\u7cfb\u7edf\u672c\u5730\u5e93\uff08native library\uff1a\u5982 Window \u7684 dll\uff0cLinux \u7684 so\uff09\u800c\u4e0d\u9700\u8981\u7f16\u5199\u4efb\u4f55 Native/JNI \u4ee3\u7801\u3002\u5f00\u53d1\u4eba\u5458\u53ea\u8981\u5728\u4e00\u4e2a java \u63a5\u53e3\u4e2d\u63cf\u8ff0\u76ee\u6807 native library \u7684\u51fd\u6570\u4e0e\u7ed3\u6784\uff0cJNA \u5c06\u81ea\u52a8\u5b9e\u73b0 Java \u63a5\u53e3\u5230 native function \u7684\u6620\u5c04\u3002"),(0,a.yg)("p",null,(0,a.yg)("a",{parentName:"p",href:"https://github.com/java-native-access/jna"},"GitHub-jna")),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/650000825"},"\u77e5\u4e4e-JNI \u8be6\u89e3")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://blog.csdn.net/cold___play/article/details/135026322"},"CSDN-JNA")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://blog.csdn.net/qingzhuyuxian/article/details/122997670"},"CSDN-\u5f00\u6e90\u6846\u67b6 JNA \u7684\u4f7f\u7528")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://blog.51cto.com/u_16213641/7413134"},"51cto-jna"))))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5034],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>g});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),c=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=c(e.components);return n.createElement(p.Provider,{value:t},e.children)},u="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),u=c(r),m=a,g=u["".concat(p,".").concat(m)]||u[m]||y[m]||o;return r?n.createElement(g,i(i({ref:t},s),{},{components:r})):n.createElement(g,i({ref:t},s))}));function g(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=m;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[u]="string"==typeof e?e:a,i[1]=l;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>y,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var n=r(8168),a=(r(6540),r(5680));const o={},i="JNI",l={unversionedId:"study/program/JAVA/JNI",id:"study/program/JAVA/JNI",title:"JNI",description:"Java Native Interface\uff0cJava \u672c\u5730\u63a5\u53e3",source:"@site/docs/study/program/JAVA/JNI.md",sourceDirName:"study/program/JAVA",slug:"/study/program/JAVA/JNI",permalink:"/docs/study/program/JAVA/JNI",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"JDK8",permalink:"/docs/study/program/JAVA/JDK8"},next:{title:"Maven",permalink:"/docs/study/program/JAVA/Maven"}},p={},c=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],s={toc:c},u="wrapper";function y(e){let{components:t,...r}=e;return(0,a.yg)(u,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"jni"},"JNI"),(0,a.yg)("p",null,"Java Native Interface\uff0cJava \u672c\u5730\u63a5\u53e3"),(0,a.yg)("p",null,"Java \u5f00\u53d1\u8fc7\u7a0b\u4e2d\uff0c\u6709\u65f6\u5019\u4f1a\u9700\u8981\u548c C\uff0cC++\u7b49\u4ea4\u4e92\uff0c\u8fd9\u65f6\u5019\u6211\u4eec\u5c31\u60f3\u8d77\u4e86\u7ecf\u5178\u6280\u672f JNI\uff0c\u4f46\u662f JNI \u7684\u4f7f\u7528\u8fc7\u7a0b\u5341\u5206\u7e41\u7410\uff0c\u800c\u4e14\u5bb9\u6613\u51fa\u73b0\u5404\u79cd\u95ee\u9898\uff0c\u8fd8\u5f97",(0,a.yg)("strong",{parentName:"p"},(0,a.yg)("em",{parentName:"strong"},"\u5c01\u88c5")),"\u800c\u4e14\u95ee\u9898\u4e0d\u597d\u5b9a\u4f4d\u3002\u5047\u5982\u6211\u4eec\u6709\u4e00\u4e2a.so \u6587\u4ef6\uff0c\u5982\u679c\u4f7f\u7528 JNI \u53bb\u8c03\u7528\uff0c\u6211\u4eec\u9700\u8981\u53e6\u5916\u7528 C \u8bed\u97f3\u5199\u4e00\u4e2a.so \u7684\u5171\u4eab\u6587\u4ef6\uff0c\u5e76\u4e14\u5f97\u4f7f\u7528 SUN \u89c4\u5b9a\u7684\u6570\u636e\u7ed3\u6784\u53bb\u66ff\u4ee3 C \u8bed\u8a00\u7684\u6570\u636e\u7ed3\u6784\uff0c\u81f3\u6b64\u624d\u80fd\u8c03\u7528 so \u6587\u4ef6\u91cc\u9762\u516c\u5e03\u7684\u51fd\u6570\u3002\u4f5c\u4e3a JAVA \u7684\u7a0b\u5e8f\u5458\u8fd9\u4e2a\u8fc7\u7a0b\u662f\u4ee4\u4eba\u5934\u75bc\u7684\u3002"),(0,a.yg)("p",null,"\u76f8\u6bd4\u4e4b\u4e0b\uff0c\u4f7f\u7528 ",(0,a.yg)("strong",{parentName:"p"},(0,a.yg)("em",{parentName:"strong"},"JNA"))," \u5c31\u7b80\u5355\u591a\u4e86\uff0c\u53ea\u9700\u8981\u4f9d\u8d56\u4e00\u4e2a jar \u5305\uff0c\u5c31\u50cf\u8c03\u7528\u4e00\u4e2a java \u65b9\u6cd5\u4e00\u6837\u7b80\u5355\u3002JNA \u5168\u79f0 Java Native Access\uff0c\u662f\u4e00\u4e2a\u5efa\u7acb\u5728 JNI \u6280\u672f\u4e4b\u4e0a\u7684 Java \u5f00\u6e90\u6846\u67b6\u3002JNA \u63d0\u4f9b\u4e00\u7ec4 Java \u5de5\u5177\u7c7b\u7528\u4e8e\u5728\u8fd0\u884c\u671f\u52a8\u6001\u8bbf\u95ee\u7cfb\u7edf\u672c\u5730\u5e93\uff08native library\uff1a\u5982 Window \u7684 dll\uff0cLinux \u7684 so\uff09\u800c\u4e0d\u9700\u8981\u7f16\u5199\u4efb\u4f55 Native/JNI \u4ee3\u7801\u3002\u5f00\u53d1\u4eba\u5458\u53ea\u8981\u5728\u4e00\u4e2a java \u63a5\u53e3\u4e2d\u63cf\u8ff0\u76ee\u6807 native library \u7684\u51fd\u6570\u4e0e\u7ed3\u6784\uff0cJNA \u5c06\u81ea\u52a8\u5b9e\u73b0 Java \u63a5\u53e3\u5230 native function \u7684\u6620\u5c04\u3002"),(0,a.yg)("p",null,(0,a.yg)("a",{parentName:"p",href:"https://github.com/java-native-access/jna"},"GitHub-jna")),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/650000825"},"\u77e5\u4e4e-JNI \u8be6\u89e3")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://blog.csdn.net/cold___play/article/details/135026322"},"CSDN-JNA")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://blog.csdn.net/qingzhuyuxian/article/details/122997670"},"CSDN-\u5f00\u6e90\u6846\u67b6 JNA \u7684\u4f7f\u7528")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://blog.51cto.com/u_16213641/7413134"},"51cto-jna"))))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9d0163be.17682dd7.js b/assets/js/9d0163be.7e969d5d.js similarity index 98% rename from assets/js/9d0163be.17682dd7.js rename to assets/js/9d0163be.7e969d5d.js index dafc3c1df..d8ce413dd 100644 --- a/assets/js/9d0163be.17682dd7.js +++ b/assets/js/9d0163be.7e969d5d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[927],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var u=n.createContext({}),l=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=l(e.components);return n.createElement(u.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,u=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),s=l(r),y=o,f=s["".concat(u,".").concat(y)]||s[y]||d[y]||a;return r?n.createElement(f,i(i({ref:t},p),{},{components:r})):n.createElement(f,i({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=y;var c={};for(var u in t)hasOwnProperty.call(t,u)&&(c[u]=t[u]);c.originalType=e,c[s]="string"==typeof e?e:o,i[1]=c;for(var l=2;l{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var n=r(8168),o=(r(6540),r(5680));const a={},i=void 0,c={unversionedId:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Druid",id:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Druid",title:"Druid",description:"\u57fa\u672c\u4fe1\u606f",source:"@site/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Druid.md",sourceDirName:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93",slug:"/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Druid",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Druid",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Apache IoTDB",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Apache IoTDB"},next:{title:"KairosDB",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/KairosDB"}},u={},l=[],p={toc:l},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"\u57fa\u672c\u4fe1\u606f")),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},"\u7f16\u7a0b\u8bed\u8a00\uff1aJava"),(0,o.yg)("li",{parentName:"ol"},"\u5f00\u6e90\uff1a\u662f"),(0,o.yg)("li",{parentName:"ol"},"\u5907\u6ce8\uff1aDruid\u4e25\u683c\u4e0a\u4e0d\u80fd\u7b97\u65f6\u5e8f\u6570\u636e\u5e93\uff0c\u5e94\u8be5\u7b97\u4e00\u4e2aOLAP\u6570\u636e\u5e93\uff0c\u5b9a\u4f4d\u8fd8\u662f\u4e0d\u592a\u4e00\u6837\u7684"),(0,o.yg)("li",{parentName:"ol"},"Prometheus \u548c Druid \u4e5f\u56e0\u4e3a\u65f6\u95f4\u5e8f\u5217\u6570\u636e\u7ba1\u7406\u800c\u95fb\u540d\uff0c\u4f46\u662f Prometheus \u805a\u7126\u5728\u6570\u636e\u91c7\u96c6\u3001\u53ef\u89c6\u5316\u548c\u62a5\u8b66\uff0cDruid \u805a\u7126\u5728 OLAP \u8d1f\u8f7d\u7684\u6570\u636e\u5206\u6790\uff0c\u56e0\u6b64\u672c\u6587\u7701\u7565\u4e86 Prometheus \u548c Druid\u3002")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[927],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var u=n.createContext({}),l=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=l(e.components);return n.createElement(u.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,u=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),s=l(r),y=o,f=s["".concat(u,".").concat(y)]||s[y]||d[y]||a;return r?n.createElement(f,i(i({ref:t},p),{},{components:r})):n.createElement(f,i({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=y;var c={};for(var u in t)hasOwnProperty.call(t,u)&&(c[u]=t[u]);c.originalType=e,c[s]="string"==typeof e?e:o,i[1]=c;for(var l=2;l{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var n=r(8168),o=(r(6540),r(5680));const a={},i=void 0,c={unversionedId:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Druid",id:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Druid",title:"Druid",description:"\u57fa\u672c\u4fe1\u606f",source:"@site/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Druid.md",sourceDirName:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93",slug:"/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Druid",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Druid",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Apache IoTDB",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Apache IoTDB"},next:{title:"KairosDB",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/KairosDB"}},u={},l=[],p={toc:l},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"\u57fa\u672c\u4fe1\u606f")),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},"\u7f16\u7a0b\u8bed\u8a00\uff1aJava"),(0,o.yg)("li",{parentName:"ol"},"\u5f00\u6e90\uff1a\u662f"),(0,o.yg)("li",{parentName:"ol"},"\u5907\u6ce8\uff1aDruid\u4e25\u683c\u4e0a\u4e0d\u80fd\u7b97\u65f6\u5e8f\u6570\u636e\u5e93\uff0c\u5e94\u8be5\u7b97\u4e00\u4e2aOLAP\u6570\u636e\u5e93\uff0c\u5b9a\u4f4d\u8fd8\u662f\u4e0d\u592a\u4e00\u6837\u7684"),(0,o.yg)("li",{parentName:"ol"},"Prometheus \u548c Druid \u4e5f\u56e0\u4e3a\u65f6\u95f4\u5e8f\u5217\u6570\u636e\u7ba1\u7406\u800c\u95fb\u540d\uff0c\u4f46\u662f Prometheus \u805a\u7126\u5728\u6570\u636e\u91c7\u96c6\u3001\u53ef\u89c6\u5316\u548c\u62a5\u8b66\uff0cDruid \u805a\u7126\u5728 OLAP \u8d1f\u8f7d\u7684\u6570\u636e\u5206\u6790\uff0c\u56e0\u6b64\u672c\u6587\u7701\u7565\u4e86 Prometheus \u548c Druid\u3002")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9f5c6157.b232f354.js b/assets/js/9f5c6157.05e31138.js similarity index 98% rename from assets/js/9f5c6157.b232f354.js rename to assets/js/9f5c6157.05e31138.js index c2b16eb6e..8156c868e 100644 --- a/assets/js/9f5c6157.b232f354.js +++ b/assets/js/9f5c6157.05e31138.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3125],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>m});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),p=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(i.Provider,{value:t},e.children)},y="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},s=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),y=p(r),s=a,m=y["".concat(i,".").concat(s)]||y[s]||d[s]||o;return r?n.createElement(m,l(l({ref:t},u),{},{components:r})):n.createElement(m,l({ref:t},u))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=s;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[y]="string"==typeof e?e:a,l[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>c,toc:()=>p});var n=r(8168),a=(r(6540),r(5680));const o={},l=void 0,c={unversionedId:"study/think/\u7f13\u5b58/\u7f13\u5b58",id:"study/think/\u7f13\u5b58/\u7f13\u5b58",title:"\u7f13\u5b58",description:"| | Ehcache | Redis |",source:"@site/docs/study/think/\u7f13\u5b58/\u7f13\u5b58.md",sourceDirName:"study/think/\u7f13\u5b58",slug:"/study/think/\u7f13\u5b58/",permalink:"/docs/study/think/\u7f13\u5b58/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Reactor\u6a21\u5f0f\u53cd\u5e94\u5806\u6a21\u5f0f",permalink:"/docs/study/think/\u6982\u5ff5\u6a21\u578b/Reactor\u6a21\u5f0f\u53cd\u5e94\u5806\u6a21\u5f0f"},next:{title:"\u5206\u5e03\u5f0f\u7f13\u5b58",permalink:"/docs/study/think/\u7f13\u5b58/\u5206\u5e03\u5f0f\u7f13\u5b58"}},i={},p=[],u={toc:p},y="wrapper";function d(e){let{components:t,...r}=e;return(0,a.yg)(y,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("table",null,(0,a.yg)("thead",{parentName:"table"},(0,a.yg)("tr",{parentName:"thead"},(0,a.yg)("th",{parentName:"tr",align:null}),(0,a.yg)("th",{parentName:"tr",align:null},"Ehcache"),(0,a.yg)("th",{parentName:"tr",align:null},"Redis"))),(0,a.yg)("tbody",{parentName:"table"},(0,a.yg)("tr",{parentName:"tbody"},(0,a.yg)("td",{parentName:"tr",align:null},"\u5b58\u53d6\u901f\u5ea6"),(0,a.yg)("td",{parentName:"tr",align:null},"Ehcache\u76f4\u63a5\u5728jvm\u865a\u62df\u673a\u4e2d\u7f13\u5b58\uff0c\u901f\u5ea6\u5feb\uff0c\u6548\u7387\u9ad8"),(0,a.yg)("td",{parentName:"tr",align:null},"Redis\u662f\u901a\u8fc7socket\u8bbf\u95ee\u5230\u7f13\u5b58\u670d\u52a1\uff0c\u6548\u7387\u6bd4ecache\u4f4e")),(0,a.yg)("tr",{parentName:"tbody"},(0,a.yg)("td",{parentName:"tr",align:null},"\u96c6\u7fa4"),(0,a.yg)("td",{parentName:"tr",align:null},"Ehcache\u6709\u7f13\u5b58\u5171\u4eab\u65b9\u6848\uff0c\u4e0d\u8fc7\u662f\u901a\u8fc7RMI\u6216\u8005Jgroup\u591a\u64ad\u65b9\u5f0f\u8fdb\u884c\u5e7f\u64ad\u7f13\u5b58\u901a\u77e5\u66f4\u65b0\uff0c\u7f13\u5b58\u5171\u4eab\u590d\u6742\uff0c\u7ef4\u62a4\u4e0d\u65b9\u4fbf\uff1b\u7b80\u5355\u7684\u5171\u4eab\u53ef\u4ee5\uff0c\u4f46\u662f\u6d89\u53ca\u5230\u7f13\u5b58\u6062\u590d\uff0c\u5927\u6570\u636e\u7f13\u5b58\uff0c\u5219\u4e0d\u5408\u9002\u3002"),(0,a.yg)("td",{parentName:"tr",align:null},"Redis\u6709\u6210\u719f\u7684\u5206\u5e03\u5f0f\u89e3\u51b3\u65b9\u6848\u3002\u9002\u5408\u5927\u89c4\u6a21\u5206\u5e03\u5f0f\u96c6\u7fa4\u90e8\u7f72\u3002")),(0,a.yg)("tr",{parentName:"tbody"},(0,a.yg)("td",{parentName:"tr",align:null},"\u64cd\u4f5c\u590d\u6742\u5ea6"),(0,a.yg)("td",{parentName:"tr",align:null},"Ehcache\u63d0\u4f9b\u7684\u63a5\u53e3\u975e\u5e38\u7b80\u5355\u660e\u4e86\uff0c\u4eceEhcache\u7684\u642d\u5efa\u5230\u8fd0\u7528\u8fd0\u884c\u4ec5\u4ec5\u9700\u8981\u7684\u662f\u4f60\u5b9d\u8d35\u7684\u51e0\u5206\u949f\u3002\u5176\u5b9e\u5f88\u591a\u5f00\u53d1\u8005\u90fd\u4e0d\u77e5\u9053\u81ea\u5df1\u7528\u5728\u7528Ehcache\uff0cEhcache\u88ab\u5e7f\u6cdb\u7684\u8fd0\u7528\u4e8e\u5176\u4ed6\u7684\u5f00\u6e90\u9879\u76ee\u3002\u6bd4\u5982\uff1aHibernate"),(0,a.yg)("td",{parentName:"tr",align:null},"\u81f3\u5c11\u9700\u8981\u5b89\u88c5\u670d\u52a1\u7aef\u548c\u5ba2\u6237\u7aef\u624d\u80fd\u4f7f\u7528\u3002\u64cd\u4f5c\u7565\u6bd4Ehcache\u590d\u6742\u4e00\u4e9b\u3002")))))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3125],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>m});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),p=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(i.Provider,{value:t},e.children)},y="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},s=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),y=p(r),s=a,m=y["".concat(i,".").concat(s)]||y[s]||d[s]||o;return r?n.createElement(m,l(l({ref:t},u),{},{components:r})):n.createElement(m,l({ref:t},u))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=s;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[y]="string"==typeof e?e:a,l[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>c,toc:()=>p});var n=r(8168),a=(r(6540),r(5680));const o={},l=void 0,c={unversionedId:"study/think/\u7f13\u5b58/\u7f13\u5b58",id:"study/think/\u7f13\u5b58/\u7f13\u5b58",title:"\u7f13\u5b58",description:"| | Ehcache | Redis |",source:"@site/docs/study/think/\u7f13\u5b58/\u7f13\u5b58.md",sourceDirName:"study/think/\u7f13\u5b58",slug:"/study/think/\u7f13\u5b58/",permalink:"/docs/study/think/\u7f13\u5b58/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Reactor\u6a21\u5f0f\u53cd\u5e94\u5806\u6a21\u5f0f",permalink:"/docs/study/think/\u6982\u5ff5\u6a21\u578b/Reactor\u6a21\u5f0f\u53cd\u5e94\u5806\u6a21\u5f0f"},next:{title:"\u5206\u5e03\u5f0f\u7f13\u5b58",permalink:"/docs/study/think/\u7f13\u5b58/\u5206\u5e03\u5f0f\u7f13\u5b58"}},i={},p=[],u={toc:p},y="wrapper";function d(e){let{components:t,...r}=e;return(0,a.yg)(y,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("table",null,(0,a.yg)("thead",{parentName:"table"},(0,a.yg)("tr",{parentName:"thead"},(0,a.yg)("th",{parentName:"tr",align:null}),(0,a.yg)("th",{parentName:"tr",align:null},"Ehcache"),(0,a.yg)("th",{parentName:"tr",align:null},"Redis"))),(0,a.yg)("tbody",{parentName:"table"},(0,a.yg)("tr",{parentName:"tbody"},(0,a.yg)("td",{parentName:"tr",align:null},"\u5b58\u53d6\u901f\u5ea6"),(0,a.yg)("td",{parentName:"tr",align:null},"Ehcache\u76f4\u63a5\u5728jvm\u865a\u62df\u673a\u4e2d\u7f13\u5b58\uff0c\u901f\u5ea6\u5feb\uff0c\u6548\u7387\u9ad8"),(0,a.yg)("td",{parentName:"tr",align:null},"Redis\u662f\u901a\u8fc7socket\u8bbf\u95ee\u5230\u7f13\u5b58\u670d\u52a1\uff0c\u6548\u7387\u6bd4ecache\u4f4e")),(0,a.yg)("tr",{parentName:"tbody"},(0,a.yg)("td",{parentName:"tr",align:null},"\u96c6\u7fa4"),(0,a.yg)("td",{parentName:"tr",align:null},"Ehcache\u6709\u7f13\u5b58\u5171\u4eab\u65b9\u6848\uff0c\u4e0d\u8fc7\u662f\u901a\u8fc7RMI\u6216\u8005Jgroup\u591a\u64ad\u65b9\u5f0f\u8fdb\u884c\u5e7f\u64ad\u7f13\u5b58\u901a\u77e5\u66f4\u65b0\uff0c\u7f13\u5b58\u5171\u4eab\u590d\u6742\uff0c\u7ef4\u62a4\u4e0d\u65b9\u4fbf\uff1b\u7b80\u5355\u7684\u5171\u4eab\u53ef\u4ee5\uff0c\u4f46\u662f\u6d89\u53ca\u5230\u7f13\u5b58\u6062\u590d\uff0c\u5927\u6570\u636e\u7f13\u5b58\uff0c\u5219\u4e0d\u5408\u9002\u3002"),(0,a.yg)("td",{parentName:"tr",align:null},"Redis\u6709\u6210\u719f\u7684\u5206\u5e03\u5f0f\u89e3\u51b3\u65b9\u6848\u3002\u9002\u5408\u5927\u89c4\u6a21\u5206\u5e03\u5f0f\u96c6\u7fa4\u90e8\u7f72\u3002")),(0,a.yg)("tr",{parentName:"tbody"},(0,a.yg)("td",{parentName:"tr",align:null},"\u64cd\u4f5c\u590d\u6742\u5ea6"),(0,a.yg)("td",{parentName:"tr",align:null},"Ehcache\u63d0\u4f9b\u7684\u63a5\u53e3\u975e\u5e38\u7b80\u5355\u660e\u4e86\uff0c\u4eceEhcache\u7684\u642d\u5efa\u5230\u8fd0\u7528\u8fd0\u884c\u4ec5\u4ec5\u9700\u8981\u7684\u662f\u4f60\u5b9d\u8d35\u7684\u51e0\u5206\u949f\u3002\u5176\u5b9e\u5f88\u591a\u5f00\u53d1\u8005\u90fd\u4e0d\u77e5\u9053\u81ea\u5df1\u7528\u5728\u7528Ehcache\uff0cEhcache\u88ab\u5e7f\u6cdb\u7684\u8fd0\u7528\u4e8e\u5176\u4ed6\u7684\u5f00\u6e90\u9879\u76ee\u3002\u6bd4\u5982\uff1aHibernate"),(0,a.yg)("td",{parentName:"tr",align:null},"\u81f3\u5c11\u9700\u8981\u5b89\u88c5\u670d\u52a1\u7aef\u548c\u5ba2\u6237\u7aef\u624d\u80fd\u4f7f\u7528\u3002\u64cd\u4f5c\u7565\u6bd4Ehcache\u590d\u6742\u4e00\u4e9b\u3002")))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a3633e48.e628211d.js b/assets/js/a3633e48.394bbaed.js similarity index 98% rename from assets/js/a3633e48.e628211d.js rename to assets/js/a3633e48.394bbaed.js index 0a5a298b0..c3faca694 100644 --- a/assets/js/a3633e48.e628211d.js +++ b/assets/js/a3633e48.394bbaed.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9878],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),u=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),s=u(r),f=o,y=s["".concat(l,".").concat(f)]||s[f]||d[f]||a;return r?n.createElement(y,i(i({ref:t},p),{},{components:r})):n.createElement(y,i({ref:t},p))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=f;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[s]="string"==typeof e?e:o,i[1]=c;for(var u=2;u{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={sidebar_position:1},i="\u6982\u8ff0",c={unversionedId:"study/fe/index",id:"study/fe/index",title:"\u6982\u8ff0",description:"\u6240\u6709\u7528\u6237\u770b\u5230\u7684\u754c\u9762\uff0c\u7edf\u4e00\u6210\u4e3a\u524d\u7aef\uff0c\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\uff1a",source:"@site/docs/study/fe/index.md",sourceDirName:"study/fe",slug:"/study/fe/",permalink:"/docs/study/fe/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"\u5b66\u65e0\u6b62\u5883",permalink:"/docs/study/"},next:{title:"\u524d\u7aef\u6a21\u5757\u5316",permalink:"/docs/study/fe/\u524d\u7aef\u6a21\u5757\u5316"}},l={},u=[],p={toc:u},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,o.yg)("p",null,"\u6240\u6709\u7528\u6237\u770b\u5230\u7684\u754c\u9762\uff0c\u7edf\u4e00\u6210\u4e3a\u524d\u7aef\uff0c\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\uff1a"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"PC WEB"),(0,o.yg)("li",{parentName:"ul"},"\u79fb\u52a8\u7aef WEB"),(0,o.yg)("li",{parentName:"ul"},"\u5c0f\u7a0b\u5e8f"),(0,o.yg)("li",{parentName:"ul"},"\u684c\u9762\u7a0b\u5e8f")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9878],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),u=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),s=u(r),f=o,y=s["".concat(l,".").concat(f)]||s[f]||d[f]||a;return r?n.createElement(y,i(i({ref:t},p),{},{components:r})):n.createElement(y,i({ref:t},p))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=f;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[s]="string"==typeof e?e:o,i[1]=c;for(var u=2;u{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={sidebar_position:1},i="\u6982\u8ff0",c={unversionedId:"study/fe/index",id:"study/fe/index",title:"\u6982\u8ff0",description:"\u6240\u6709\u7528\u6237\u770b\u5230\u7684\u754c\u9762\uff0c\u7edf\u4e00\u6210\u4e3a\u524d\u7aef\uff0c\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\uff1a",source:"@site/docs/study/fe/index.md",sourceDirName:"study/fe",slug:"/study/fe/",permalink:"/docs/study/fe/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"\u5b66\u65e0\u6b62\u5883",permalink:"/docs/study/"},next:{title:"\u524d\u7aef\u6a21\u5757\u5316",permalink:"/docs/study/fe/\u524d\u7aef\u6a21\u5757\u5316"}},l={},u=[],p={toc:u},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,o.yg)("p",null,"\u6240\u6709\u7528\u6237\u770b\u5230\u7684\u754c\u9762\uff0c\u7edf\u4e00\u6210\u4e3a\u524d\u7aef\uff0c\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\uff1a"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"PC WEB"),(0,o.yg)("li",{parentName:"ul"},"\u79fb\u52a8\u7aef WEB"),(0,o.yg)("li",{parentName:"ul"},"\u5c0f\u7a0b\u5e8f"),(0,o.yg)("li",{parentName:"ul"},"\u684c\u9762\u7a0b\u5e8f")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a47a01cb.2d2c2f02.js b/assets/js/a47a01cb.2a8830b4.js similarity index 98% rename from assets/js/a47a01cb.2d2c2f02.js rename to assets/js/a47a01cb.2a8830b4.js index 9f93dab17..7feb5ec59 100644 --- a/assets/js/a47a01cb.2d2c2f02.js +++ b/assets/js/a47a01cb.2a8830b4.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2190],{5680:(e,t,r)=>{r.d(t,{xA:()=>d,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),u=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},d=function(e){var t=u(e.components);return n.createElement(c.Provider,{value:t},e.children)},p="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),p=u(r),f=o,y=p["".concat(c,".").concat(f)]||p[f]||s[f]||a;return r?n.createElement(y,i(i({ref:t},d),{},{components:r})):n.createElement(y,i({ref:t},d))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=f;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[p]="string"==typeof e?e:o,i[1]=l;for(var u=2;u{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>s,frontMatter:()=>a,metadata:()=>l,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={},i=void 0,l={unversionedId:"study/fe/Flutter\u5f00\u53d1\u95ee\u9898\u8bb0\u5f55",id:"study/fe/Flutter\u5f00\u53d1\u95ee\u9898\u8bb0\u5f55",title:"Flutter\u5f00\u53d1\u95ee\u9898\u8bb0\u5f55",description:"\u8bb0\u5f55 Flutter \u5f00\u53d1\u7684\u4e00\u4e9b\u95ee\u9898\u3001\u7ecf\u9a8c",source:"@site/docs/study/fe/Flutter\u5f00\u53d1\u95ee\u9898\u8bb0\u5f55.md",sourceDirName:"study/fe",slug:"/study/fe/Flutter\u5f00\u53d1\u95ee\u9898\u8bb0\u5f55",permalink:"/docs/study/fe/Flutter\u5f00\u53d1\u95ee\u9898\u8bb0\u5f55",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"ARMS\u524d\u7aef\u76d1\u63a7",permalink:"/docs/study/fe/ARMS\u524d\u7aef\u76d1\u63a7"},next:{title:"TypeScript\u8bed\u6cd5\u56fe",permalink:"/docs/study/fe/TypeScript\u8bed\u6cd5\u56fe"}},c={},u=[{value:"Mac \u5982\u4f55\u5b89\u88c5\u8001\u7248\u672c\u7684 Android \u6a21\u62df\u5668",id:"mac-\u5982\u4f55\u5b89\u88c5\u8001\u7248\u672c\u7684-android-\u6a21\u62df\u5668",level:3},{value:"flutter windows",id:"flutter-windows",level:3},{value:"ffi\u63d2\u4ef6",id:"ffi\u63d2\u4ef6",level:3}],d={toc:u},p="wrapper";function s(e){let{components:t,...r}=e;return(0,o.yg)(p,(0,n.A)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"\u8bb0\u5f55 Flutter \u5f00\u53d1\u7684\u4e00\u4e9b\u95ee\u9898\u3001\u7ecf\u9a8c"),(0,o.yg)("h3",{id:"mac-\u5982\u4f55\u5b89\u88c5\u8001\u7248\u672c\u7684-android-\u6a21\u62df\u5668"},"Mac \u5982\u4f55\u5b89\u88c5\u8001\u7248\u672c\u7684 Android \u6a21\u62df\u5668"),(0,o.yg)("p",null,"\u56e0\u4e3a\u7279\u6b8a\u539f\u56e0\uff0c\u6211\u7684\u8001 Mac \u7535\u8111\u65e0\u6cd5\u5347\u7ea7\uff0c\u6700\u65b0\u7684\u5b89\u5353\u6a21\u62df\u5668\u542f\u52a8\u4e0d\u8d77\u6765\uff0c\u53ef\u4ee5\u5230\u8fd9\u91cc\u4e0b\u8f7d\u8001\u7684\u6a21\u62df\u5668\uff0c\u5e76\u624b\u52a8\u5b89\u88c5",(0,o.yg)("a",{parentName:"p",href:"https://developer.android.com/studio/emulator_archive?hl=zh-cn"},"\u6a21\u62df\u5668\u4e0b\u8f7d\u5f52\u6863")),(0,o.yg)("h3",{id:"flutter-windows"},"flutter windows"),(0,o.yg)("p",null,(0,o.yg)("a",{parentName:"p",href:"https://xie.infoq.cn/article/a0b086b20aabd229e57a9811f"},"\u57fa\u4e8e Flutter \u5b9e\u73b0 Windows \u5e73\u53f0\u79bb\u7ebf\u5927\u6a21\u578b\u5bf9\u8bdd\u5e94\u7528\u5b9e\u6218")),(0,o.yg)("h3",{id:"ffi\u63d2\u4ef6"},"ffi\u63d2\u4ef6"),(0,o.yg)("p",null,"flutter create -t plugin_ffi --platforms macos,windows,android,ios p2psdk"),(0,o.yg)("p",null,"android\u4f7f\u7528gradle\u6784\u5efa\nios\u548cmacos\u4f7f\u7528xcode\u901a\u8fc7CocoaPods\u6784\u5efa\nlinux\u548cwindows\u901a\u8fc7cmake\u6784\u5efa"),(0,o.yg)("p",null,"\u7ed1\u5b9a\u672c\u5730\u539f\u751f\u4ee3\u7801"))}s.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2190],{5680:(e,t,r)=>{r.d(t,{xA:()=>d,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),u=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},d=function(e){var t=u(e.components);return n.createElement(c.Provider,{value:t},e.children)},p="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),p=u(r),f=o,y=p["".concat(c,".").concat(f)]||p[f]||s[f]||a;return r?n.createElement(y,i(i({ref:t},d),{},{components:r})):n.createElement(y,i({ref:t},d))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=f;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[p]="string"==typeof e?e:o,i[1]=l;for(var u=2;u{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>s,frontMatter:()=>a,metadata:()=>l,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={},i=void 0,l={unversionedId:"study/fe/Flutter\u5f00\u53d1\u95ee\u9898\u8bb0\u5f55",id:"study/fe/Flutter\u5f00\u53d1\u95ee\u9898\u8bb0\u5f55",title:"Flutter\u5f00\u53d1\u95ee\u9898\u8bb0\u5f55",description:"\u8bb0\u5f55 Flutter \u5f00\u53d1\u7684\u4e00\u4e9b\u95ee\u9898\u3001\u7ecf\u9a8c",source:"@site/docs/study/fe/Flutter\u5f00\u53d1\u95ee\u9898\u8bb0\u5f55.md",sourceDirName:"study/fe",slug:"/study/fe/Flutter\u5f00\u53d1\u95ee\u9898\u8bb0\u5f55",permalink:"/docs/study/fe/Flutter\u5f00\u53d1\u95ee\u9898\u8bb0\u5f55",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"ARMS\u524d\u7aef\u76d1\u63a7",permalink:"/docs/study/fe/ARMS\u524d\u7aef\u76d1\u63a7"},next:{title:"TypeScript\u8bed\u6cd5\u56fe",permalink:"/docs/study/fe/TypeScript\u8bed\u6cd5\u56fe"}},c={},u=[{value:"Mac \u5982\u4f55\u5b89\u88c5\u8001\u7248\u672c\u7684 Android \u6a21\u62df\u5668",id:"mac-\u5982\u4f55\u5b89\u88c5\u8001\u7248\u672c\u7684-android-\u6a21\u62df\u5668",level:3},{value:"flutter windows",id:"flutter-windows",level:3},{value:"ffi\u63d2\u4ef6",id:"ffi\u63d2\u4ef6",level:3}],d={toc:u},p="wrapper";function s(e){let{components:t,...r}=e;return(0,o.yg)(p,(0,n.A)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"\u8bb0\u5f55 Flutter \u5f00\u53d1\u7684\u4e00\u4e9b\u95ee\u9898\u3001\u7ecf\u9a8c"),(0,o.yg)("h3",{id:"mac-\u5982\u4f55\u5b89\u88c5\u8001\u7248\u672c\u7684-android-\u6a21\u62df\u5668"},"Mac \u5982\u4f55\u5b89\u88c5\u8001\u7248\u672c\u7684 Android \u6a21\u62df\u5668"),(0,o.yg)("p",null,"\u56e0\u4e3a\u7279\u6b8a\u539f\u56e0\uff0c\u6211\u7684\u8001 Mac \u7535\u8111\u65e0\u6cd5\u5347\u7ea7\uff0c\u6700\u65b0\u7684\u5b89\u5353\u6a21\u62df\u5668\u542f\u52a8\u4e0d\u8d77\u6765\uff0c\u53ef\u4ee5\u5230\u8fd9\u91cc\u4e0b\u8f7d\u8001\u7684\u6a21\u62df\u5668\uff0c\u5e76\u624b\u52a8\u5b89\u88c5",(0,o.yg)("a",{parentName:"p",href:"https://developer.android.com/studio/emulator_archive?hl=zh-cn"},"\u6a21\u62df\u5668\u4e0b\u8f7d\u5f52\u6863")),(0,o.yg)("h3",{id:"flutter-windows"},"flutter windows"),(0,o.yg)("p",null,(0,o.yg)("a",{parentName:"p",href:"https://xie.infoq.cn/article/a0b086b20aabd229e57a9811f"},"\u57fa\u4e8e Flutter \u5b9e\u73b0 Windows \u5e73\u53f0\u79bb\u7ebf\u5927\u6a21\u578b\u5bf9\u8bdd\u5e94\u7528\u5b9e\u6218")),(0,o.yg)("h3",{id:"ffi\u63d2\u4ef6"},"ffi\u63d2\u4ef6"),(0,o.yg)("p",null,"flutter create -t plugin_ffi --platforms macos,windows,android,ios p2psdk"),(0,o.yg)("p",null,"android\u4f7f\u7528gradle\u6784\u5efa\nios\u548cmacos\u4f7f\u7528xcode\u901a\u8fc7CocoaPods\u6784\u5efa\nlinux\u548cwindows\u901a\u8fc7cmake\u6784\u5efa"),(0,o.yg)("p",null,"\u7ed1\u5b9a\u672c\u5730\u539f\u751f\u4ee3\u7801"))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a4c44b85.ab722ef8.js b/assets/js/a4c44b85.1ced885d.js similarity index 99% rename from assets/js/a4c44b85.ab722ef8.js rename to assets/js/a4c44b85.1ced885d.js index 2e55ab9b4..52745b950 100644 --- a/assets/js/a4c44b85.ab722ef8.js +++ b/assets/js/a4c44b85.1ced885d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5878],{5680:(e,t,n)=>{n.d(t,{xA:()=>y,yg:()=>g});var r=n(6540);function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t=0||(l[n]=e[n]);return l}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}var p=r.createContext({}),c=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},y=function(e){var t=c(e.components);return r.createElement(p.Provider,{value:t},e.children)},u="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,l=e.mdxType,o=e.originalType,p=e.parentName,y=i(e,["components","mdxType","originalType","parentName"]),u=c(n),d=l,g=u["".concat(p,".").concat(d)]||u[d]||s[d]||o;return n?r.createElement(g,a(a({ref:t},y),{},{components:n})):r.createElement(g,a({ref:t},y))}));function g(e,t){var n=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var o=n.length,a=new Array(o);a[0]=d;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[u]="string"==typeof e?e:l,a[1]=i;for(var c=2;c{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>a,default:()=>s,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var r=n(8168),l=(n(6540),n(5680));const o={},a=void 0,i={unversionedId:"study/think/\u67b6\u6784/\u9ad8\u6027\u80fd\u67b6\u6784\u6a21\u5f0f",id:"study/think/\u67b6\u6784/\u9ad8\u6027\u80fd\u67b6\u6784\u6a21\u5f0f",title:"\u9ad8\u6027\u80fd\u67b6\u6784\u6a21\u5f0f",description:"\u867d\u7136\u8fd1\u5341\u5e74\u6765\u5404\u79cd\u5b58\u50a8\u6280\u672f\u98de\u901f\u53d1\u5c55\uff0c\u4f46\u5173\u7cfb\u6570\u636e\u5e93\u7531\u4e8e\u5176 ACID \u7684\u7279\u6027\u548c\u529f\u80fd\u5f3a\u5927\u7684 SQL \u67e5\u8be2\uff0c\u76ee\u524d\u8fd8\u662f\u5404\u79cd\u4e1a\u52a1\u7cfb\u7edf\u4e2d\u5173\u952e\u548c\u6838\u5fc3\u7684\u5b58\u50a8\u7cfb\u7edf\uff0c\u5f88\u591a\u573a\u666f\u4e0b\u9ad8\u6027\u80fd\u7684\u8bbe\u8ba1\u6700\u6838\u5fc3\u7684\u90e8\u5206\u5c31\u662f\u5173\u7cfb\u6570\u636e\u5e93\u7684\u8bbe\u8ba1\u3002",source:"@site/docs/study/think/\u67b6\u6784/\u9ad8\u6027\u80fd\u67b6\u6784\u6a21\u5f0f.md",sourceDirName:"study/think/\u67b6\u6784",slug:"/study/think/\u67b6\u6784/\u9ad8\u6027\u80fd\u67b6\u6784\u6a21\u5f0f",permalink:"/docs/study/think/\u67b6\u6784/\u9ad8\u6027\u80fd\u67b6\u6784\u6a21\u5f0f",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u8d1f\u8f7d\u5747\u8861",permalink:"/docs/study/think/\u67b6\u6784/\u8d1f\u8f7d\u5747\u8861"},next:{title:"Actor Model",permalink:"/docs/study/think/\u6982\u5ff5\u6a21\u578b/Actor Model"}},p={},c=[{value:"\u8bfb\u5199\u5206\u79bb\u539f\u7406",id:"\u8bfb\u5199\u5206\u79bb\u539f\u7406",level:3},{value:"\u5206\u5e93\u5206\u8868",id:"\u5206\u5e93\u5206\u8868",level:3}],y={toc:c},u="wrapper";function s(e){let{components:t,...o}=e;return(0,l.yg)(u,(0,r.A)({},y,o,{components:t,mdxType:"MDXLayout"}),(0,l.yg)("p",null,"\u867d\u7136\u8fd1\u5341\u5e74\u6765\u5404\u79cd\u5b58\u50a8\u6280\u672f\u98de\u901f\u53d1\u5c55\uff0c\u4f46\u5173\u7cfb\u6570\u636e\u5e93\u7531\u4e8e\u5176 ACID \u7684\u7279\u6027\u548c\u529f\u80fd\u5f3a\u5927\u7684 SQL \u67e5\u8be2\uff0c\u76ee\u524d\u8fd8\u662f\u5404\u79cd\u4e1a\u52a1\u7cfb\u7edf\u4e2d\u5173\u952e\u548c\u6838\u5fc3\u7684\u5b58\u50a8\u7cfb\u7edf\uff0c\u5f88\u591a\u573a\u666f\u4e0b\u9ad8\u6027\u80fd\u7684\u8bbe\u8ba1\u6700\u6838\u5fc3\u7684\u90e8\u5206\u5c31\u662f\u5173\u7cfb\u6570\u636e\u5e93\u7684\u8bbe\u8ba1\u3002"),(0,l.yg)("p",null,"\u4e0d\u7ba1\u662f\u4e3a\u4e86\u6ee1\u8db3\u4e1a\u52a1\u53d1\u5c55\u7684\u9700\u8981\uff0c\u8fd8\u662f\u4e3a\u4e86\u63d0\u5347\u81ea\u5df1\u7684\u7ade\u4e89\u529b\uff0c\u5173\u7cfb\u6570\u636e\u5e93\u5382\u5546\uff08Oracle\u3001DB2\u3001MySQL \u7b49\uff09\u5728\u4f18\u5316\u548c\u63d0\u5347\u5355\u4e2a\u6570\u636e\u5e93\u670d\u52a1\u5668\u7684\u6027\u80fd\u65b9\u9762\u4e5f\u505a\u4e86\u975e\u5e38\u591a\u7684\u6280\u672f\u4f18\u5316\u548c\u6539\u8fdb\u3002\u4f46\u4e1a\u52a1\u53d1\u5c55\u901f\u5ea6\u548c\u6570\u636e\u589e\u957f\u901f\u5ea6\uff0c\u8fdc\u8fdc\u8d85\u51fa\u6570\u636e\u5e93\u5382\u5546\u7684\u4f18\u5316\u901f\u5ea6\uff0c\u5c24\u5176\u662f\u4e92\u8054\u7f51\u4e1a\u52a1\u5174\u8d77\u4e4b\u540e\uff0c\u6d77\u91cf\u7528\u6237\u52a0\u4e0a\u6d77\u91cf\u6570\u636e\u7684\u7279\u70b9\uff0c\u5355\u4e2a\u6570\u636e\u5e93\u670d\u52a1\u5668\u5df2\u7ecf\u96be\u4ee5\u6ee1\u8db3\u4e1a\u52a1\u9700\u8981\uff0c\u5fc5\u987b\u8003\u8651\u6570\u636e\u5e93\u96c6\u7fa4\u7684\u65b9\u5f0f\u6765\u63d0\u5347\u6027\u80fd\u3002"),(0,l.yg)("p",null,"\u9ad8\u6027\u80fd\u6570\u636e\u5e93\u96c6\u7fa4\u7684\u7b2c\u4e00\u79cd\u65b9\u5f0f\u662f\u201c\u8bfb\u5199\u5206\u79bb\u201d\uff0c\u5176\u672c\u8d28\u662f\u5c06\u8bbf\u95ee\u538b\u529b\u5206\u6563\u5230\u96c6\u7fa4\u4e2d\u7684\u591a\u4e2a\u8282\u70b9\uff0c\u4f46\u662f\u6ca1\u6709\u5206\u6563\u5b58\u50a8\u538b\u529b\uff1b\u7b2c\u4e8c\u79cd\u65b9\u5f0f\u662f\u201c\u5206\u5e93\u5206\u8868\u201d\uff0c\u65e2\u53ef\u4ee5\u5206\u6563\u8bbf\u95ee\u538b\u529b\uff0c\u53c8\u53ef\u4ee5\u5206\u6563\u5b58\u50a8\u538b\u529b\u3002"),(0,l.yg)("h3",{id:"\u8bfb\u5199\u5206\u79bb\u539f\u7406"},"\u8bfb\u5199\u5206\u79bb\u539f\u7406"),(0,l.yg)("p",null,"\u8bfb\u5199\u5206\u79bb\u7684\u57fa\u672c\u539f\u7406\u662f\u5c06\u6570\u636e\u5e93\u8bfb\u5199\u64cd\u4f5c\u5206\u6563\u5230\u4e0d\u540c\u7684\u8282\u70b9\u4e0a\uff0c\u4e0b\u9762\u662f\u5176\u57fa\u672c\u67b6\u6784\u56fe\u3002"),(0,l.yg)("p",null,(0,l.yg)("img",{alt:"image.png",src:n(6215).A,width:"914",height:"647"})),(0,l.yg)("p",null,"\u8bfb\u5199\u5206\u79bb\u7684\u5b9e\u73b0\u903b\u8f91\u5e76\u4e0d\u590d\u6742\uff0c\u4f46\u6709\u4e24\u4e2a\u7ec6\u8282\u70b9\u5c06\u5f15\u5165\u8bbe\u8ba1\u590d\u6742\u5ea6\uff1a\u4e3b\u4ece\u590d\u5236\u5ef6\u8fdf\u548c\u5206\u914d\u673a\u5236\u3002"),(0,l.yg)("p",null,"\u89e3\u51b3\u4e3b\u4ece\u590d\u5236\u5ef6\u8fdf\u6709\u51e0\u79cd\u5e38\u89c1\u7684\u65b9\u6cd5\uff1a"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u5199\u64cd\u4f5c\u540e\u7684\u8bfb\u64cd\u4f5c\u6307\u5b9a\u53d1\u7ed9\u6570\u636e\u5e93\u4e3b\u670d\u52a1\u5668"),(0,l.yg)("li",{parentName:"ol"},"\u8bfb\u4ece\u673a\u5931\u8d25\u540e\u518d\u8bfb\u4e00\u6b21\u4e3b\u673a"),(0,l.yg)("li",{parentName:"ol"},"\u5173\u952e\u4e1a\u52a1\u8bfb\u5199\u64cd\u4f5c\u5168\u90e8\u6307\u5411\u4e3b\u673a\uff0c\u975e\u5173\u952e\u4e1a\u52a1\u91c7\u7528\u8bfb\u5199\u5206\u79bb")),(0,l.yg)("p",null,"\u5c06\u8bfb\u5199\u64cd\u4f5c\u533a\u5206\u5f00\u6765\uff0c\u7136\u540e\u8bbf\u95ee\u4e0d\u540c\u7684\u6570\u636e\u5e93\u670d\u52a1\u5668\uff0c\u4e00\u822c\u6709\u4e24\u79cd\u65b9\u5f0f\uff1a\u7a0b\u5e8f\u4ee3\u7801\u5c01\u88c5\u548c\u4e2d\u95f4\u4ef6\u5c01\u88c5\u3002"),(0,l.yg)("p",null,"\u7a0b\u5e8f\u4ee3\u7801\u5c01\u88c5\u7684\u65b9\u5f0f\uff0c\u5728\u76ee\u524d\u5f00\u6e90\u7684\u5b9e\u73b0\u65b9\u6848\u4e2d\uff0c\u6dd8\u5b9d\u7684 TDDL\uff08Taobao Distributed Data Layer\uff0c\u5916\u53f7: \u5934\u90fd\u5927\u4e86\uff09\u662f\u6bd4\u8f83\u6709\u540d\u7684\u3002\u5b83\u662f\u4e00\u4e2a\u901a\u7528\u6570\u636e\u8bbf\u95ee\u5c42\uff0c\u6240\u6709\u529f\u80fd\u5c01\u88c5\u5728 jar \u5305\u4e2d\u63d0\u4f9b\u7ed9\u4e1a\u52a1\u4ee3\u7801\u8c03\u7528\u3002"),(0,l.yg)("p",null,"\u4e2d\u95f4\u4ef6\u5c01\u88c5\u6307\u7684\u662f\u72ec\u7acb\u4e00\u5957\u7cfb\u7edf\u51fa\u6765\uff0c\u5b9e\u73b0\u8bfb\u5199\u64cd\u4f5c\u5206\u79bb\u548c\u6570\u636e\u5e93\u670d\u52a1\u5668\u8fde\u63a5\u7684\u7ba1\u7406\u3002\u4e2d\u95f4\u4ef6\u5bf9\u4e1a\u52a1\u670d\u52a1\u5668\u63d0\u4f9b SQL \u517c\u5bb9\u7684\u534f\u8bae\uff0c\u4e1a\u52a1\u670d\u52a1\u5668\u65e0\u987b\u81ea\u5df1\u8fdb\u884c\u8bfb\u5199\u5206\u79bb\u3002\u5bf9\u4e8e\u4e1a\u52a1\u670d\u52a1\u5668\u6765\u8bf4\uff0c\u8bbf\u95ee\u4e2d\u95f4\u4ef6\u548c\u8bbf\u95ee\u6570\u636e\u5e93\u6ca1\u6709\u533a\u522b\uff0c\u4e8b\u5b9e\u4e0a\u5728\u4e1a\u52a1\u670d\u52a1\u5668\u770b\u6765\uff0c\u4e2d\u95f4\u4ef6\u5c31\u662f\u4e00\u4e2a\u6570\u636e\u5e93\u670d\u52a1\u5668\u3002"),(0,l.yg)("p",null,"\u76ee\u524d\u7684\u5f00\u6e90\u6570\u636e\u5e93\u4e2d\u95f4\u4ef6\u65b9\u6848\u4e2d\uff0cMySQL \u5b98\u65b9\u5148\u662f\u63d0\u4f9b\u4e86 MySQL Proxy\uff0c\u4f46 MySQL Proxy \u4e00\u76f4\u6ca1\u6709\u6b63\u5f0f GA\uff0c\u73b0\u5728 MySQL \u5b98\u65b9\u63a8\u8350 MySQL Router\u3002\u5947\u864e 360 \u516c\u53f8\u4e5f\u5f00\u6e90\u4e86\u81ea\u5df1\u7684\u6570\u636e\u5e93\u4e2d\u95f4\u4ef6 Atlas\uff0cAtlas \u662f\u57fa\u4e8e MySQL Proxy \u5b9e\u73b0\u7684\u3002"),(0,l.yg)("h3",{id:"\u5206\u5e93\u5206\u8868"},"\u5206\u5e93\u5206\u8868"),(0,l.yg)("p",null,"\u4e1a\u52a1\u5206\u5e93\u6307\u7684\u662f\u6309\u7167\u4e1a\u52a1\u6a21\u5757\u5c06\u6570\u636e\u5206\u6563\u5230\u4e0d\u540c\u7684\u6570\u636e\u5e93\u670d\u52a1\u5668\u3002\u867d\u7136\u4e1a\u52a1\u5206\u5e93\u80fd\u591f\u5206\u6563\u5b58\u50a8\u548c\u8bbf\u95ee\u538b\u529b\uff0c\u4f46\u540c\u65f6\u4e5f\u5e26\u6765\u4e86\u65b0\u7684\u95ee\u9898\uff0c\u63a5\u4e0b\u6765\u6211\u8fdb\u884c\u8be6\u7ec6\u5206\u6790\u3002"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"join \u64cd\u4f5c\u95ee\u9898\uff0c\u4e1a\u52a1\u5206\u5e93\u540e\uff0c\u539f\u672c\u5728\u540c\u4e00\u4e2a\u6570\u636e\u5e93\u4e2d\u7684\u8868\u5206\u6563\u5230\u4e0d\u540c\u6570\u636e\u5e93\u4e2d\uff0c\u5bfc\u81f4\u65e0\u6cd5\u4f7f\u7528 SQL \u7684 join \u67e5\u8be2\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u4e8b\u52a1\u95ee\u9898\uff0c\u539f\u672c\u5728\u540c\u4e00\u4e2a\u6570\u636e\u5e93\u4e2d\u4e0d\u540c\u7684\u8868\u53ef\u4ee5\u5728\u540c\u4e00\u4e2a\u4e8b\u52a1\u4e2d\u4fee\u6539\uff0c\u4e1a\u52a1\u5206\u5e93\u540e\uff0c\u8868\u5206\u6563\u5230\u4e0d\u540c\u7684\u6570\u636e\u5e93\u4e2d\uff0c\u65e0\u6cd5\u901a\u8fc7\u4e8b\u52a1\u7edf\u4e00\u4fee\u6539\u3002\u867d\u7136\u6570\u636e\u5e93\u5382\u5546\u63d0\u4f9b\u4e86\u4e00\u4e9b\u5206\u5e03\u5f0f\u4e8b\u52a1\u7684\u89e3\u51b3\u65b9\u6848\uff08\u4f8b\u5982\uff0cMySQL \u7684 XA\uff09\uff0c\u4f46\u6027\u80fd\u5b9e\u5728\u592a\u4f4e\uff0c\u4e0e\u9ad8\u6027\u80fd\u5b58\u50a8\u7684\u76ee\u6807\u662f\u76f8\u8fdd\u80cc\u7684\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u6210\u672c\u95ee\u9898")),(0,l.yg)("p",null,"\u5c06\u4e0d\u540c\u4e1a\u52a1\u6570\u636e\u5206\u6563\u5b58\u50a8\u5230\u4e0d\u540c\u7684\u6570\u636e\u5e93\u670d\u52a1\u5668\uff0c\u80fd\u591f\u652f\u6491\u767e\u4e07\u751a\u81f3\u5343\u4e07\u7528\u6237\u89c4\u6a21\u7684\u4e1a\u52a1\uff0c\u4f46\u5982\u679c\u4e1a\u52a1\u7ee7\u7eed\u53d1\u5c55\uff0c\u540c\u4e00\u4e1a\u52a1\u7684\u5355\u8868\u6570\u636e\u4e5f\u4f1a\u8fbe\u5230\u5355\u53f0\u6570\u636e\u5e93\u670d\u52a1\u5668\u7684\u5904\u7406\u74f6\u9888\u3002\u4f8b\u5982\uff0c\u6dd8\u5b9d\u7684\u51e0\u4ebf\u7528\u6237\u6570\u636e\uff0c\u5982\u679c\u5168\u90e8\u5b58\u653e\u5728\u4e00\u53f0\u6570\u636e\u5e93\u670d\u52a1\u5668\u7684\u4e00\u5f20\u8868\u4e2d\uff0c\u80af\u5b9a\u662f\u65e0\u6cd5\u6ee1\u8db3\u6027\u80fd\u8981\u6c42\u7684\uff0c\u6b64\u65f6\u5c31\u9700\u8981\u5bf9\u5355\u8868\u6570\u636e\u8fdb\u884c\u62c6\u5206\u3002"),(0,l.yg)("p",null,"\u5355\u8868\u6570\u636e\u62c6\u5206\u6709\u4e24\u79cd\u65b9\u5f0f\uff1a\u5782\u76f4\u5206\u8868\u548c\u6c34\u5e73\u5206\u8868\u3002\u793a\u610f\u56fe\u5982\u4e0b\uff1a\n",(0,l.yg)("img",{alt:"image.png",src:n(430).A,width:"1534",height:"804"})))}s.isMDXComponent=!0},6215:(e,t,n)=>{n.d(t,{A:()=>r});const r=n.p+"assets/images/2-4e7ea6ea9e8204899e24d4788b873bce.png"},430:(e,t,n)=>{n.d(t,{A:()=>r});const r=n.p+"assets/images/3-20a57e605dc69d5091de2bbfb0461e46.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5878],{5680:(e,t,n)=>{n.d(t,{xA:()=>y,yg:()=>g});var r=n(6540);function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t=0||(l[n]=e[n]);return l}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}var p=r.createContext({}),c=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},y=function(e){var t=c(e.components);return r.createElement(p.Provider,{value:t},e.children)},u="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,l=e.mdxType,o=e.originalType,p=e.parentName,y=i(e,["components","mdxType","originalType","parentName"]),u=c(n),d=l,g=u["".concat(p,".").concat(d)]||u[d]||s[d]||o;return n?r.createElement(g,a(a({ref:t},y),{},{components:n})):r.createElement(g,a({ref:t},y))}));function g(e,t){var n=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var o=n.length,a=new Array(o);a[0]=d;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[u]="string"==typeof e?e:l,a[1]=i;for(var c=2;c{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>a,default:()=>s,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var r=n(8168),l=(n(6540),n(5680));const o={},a=void 0,i={unversionedId:"study/think/\u67b6\u6784/\u9ad8\u6027\u80fd\u67b6\u6784\u6a21\u5f0f",id:"study/think/\u67b6\u6784/\u9ad8\u6027\u80fd\u67b6\u6784\u6a21\u5f0f",title:"\u9ad8\u6027\u80fd\u67b6\u6784\u6a21\u5f0f",description:"\u867d\u7136\u8fd1\u5341\u5e74\u6765\u5404\u79cd\u5b58\u50a8\u6280\u672f\u98de\u901f\u53d1\u5c55\uff0c\u4f46\u5173\u7cfb\u6570\u636e\u5e93\u7531\u4e8e\u5176 ACID \u7684\u7279\u6027\u548c\u529f\u80fd\u5f3a\u5927\u7684 SQL \u67e5\u8be2\uff0c\u76ee\u524d\u8fd8\u662f\u5404\u79cd\u4e1a\u52a1\u7cfb\u7edf\u4e2d\u5173\u952e\u548c\u6838\u5fc3\u7684\u5b58\u50a8\u7cfb\u7edf\uff0c\u5f88\u591a\u573a\u666f\u4e0b\u9ad8\u6027\u80fd\u7684\u8bbe\u8ba1\u6700\u6838\u5fc3\u7684\u90e8\u5206\u5c31\u662f\u5173\u7cfb\u6570\u636e\u5e93\u7684\u8bbe\u8ba1\u3002",source:"@site/docs/study/think/\u67b6\u6784/\u9ad8\u6027\u80fd\u67b6\u6784\u6a21\u5f0f.md",sourceDirName:"study/think/\u67b6\u6784",slug:"/study/think/\u67b6\u6784/\u9ad8\u6027\u80fd\u67b6\u6784\u6a21\u5f0f",permalink:"/docs/study/think/\u67b6\u6784/\u9ad8\u6027\u80fd\u67b6\u6784\u6a21\u5f0f",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u8d1f\u8f7d\u5747\u8861",permalink:"/docs/study/think/\u67b6\u6784/\u8d1f\u8f7d\u5747\u8861"},next:{title:"Actor Model",permalink:"/docs/study/think/\u6982\u5ff5\u6a21\u578b/Actor Model"}},p={},c=[{value:"\u8bfb\u5199\u5206\u79bb\u539f\u7406",id:"\u8bfb\u5199\u5206\u79bb\u539f\u7406",level:3},{value:"\u5206\u5e93\u5206\u8868",id:"\u5206\u5e93\u5206\u8868",level:3}],y={toc:c},u="wrapper";function s(e){let{components:t,...o}=e;return(0,l.yg)(u,(0,r.A)({},y,o,{components:t,mdxType:"MDXLayout"}),(0,l.yg)("p",null,"\u867d\u7136\u8fd1\u5341\u5e74\u6765\u5404\u79cd\u5b58\u50a8\u6280\u672f\u98de\u901f\u53d1\u5c55\uff0c\u4f46\u5173\u7cfb\u6570\u636e\u5e93\u7531\u4e8e\u5176 ACID \u7684\u7279\u6027\u548c\u529f\u80fd\u5f3a\u5927\u7684 SQL \u67e5\u8be2\uff0c\u76ee\u524d\u8fd8\u662f\u5404\u79cd\u4e1a\u52a1\u7cfb\u7edf\u4e2d\u5173\u952e\u548c\u6838\u5fc3\u7684\u5b58\u50a8\u7cfb\u7edf\uff0c\u5f88\u591a\u573a\u666f\u4e0b\u9ad8\u6027\u80fd\u7684\u8bbe\u8ba1\u6700\u6838\u5fc3\u7684\u90e8\u5206\u5c31\u662f\u5173\u7cfb\u6570\u636e\u5e93\u7684\u8bbe\u8ba1\u3002"),(0,l.yg)("p",null,"\u4e0d\u7ba1\u662f\u4e3a\u4e86\u6ee1\u8db3\u4e1a\u52a1\u53d1\u5c55\u7684\u9700\u8981\uff0c\u8fd8\u662f\u4e3a\u4e86\u63d0\u5347\u81ea\u5df1\u7684\u7ade\u4e89\u529b\uff0c\u5173\u7cfb\u6570\u636e\u5e93\u5382\u5546\uff08Oracle\u3001DB2\u3001MySQL \u7b49\uff09\u5728\u4f18\u5316\u548c\u63d0\u5347\u5355\u4e2a\u6570\u636e\u5e93\u670d\u52a1\u5668\u7684\u6027\u80fd\u65b9\u9762\u4e5f\u505a\u4e86\u975e\u5e38\u591a\u7684\u6280\u672f\u4f18\u5316\u548c\u6539\u8fdb\u3002\u4f46\u4e1a\u52a1\u53d1\u5c55\u901f\u5ea6\u548c\u6570\u636e\u589e\u957f\u901f\u5ea6\uff0c\u8fdc\u8fdc\u8d85\u51fa\u6570\u636e\u5e93\u5382\u5546\u7684\u4f18\u5316\u901f\u5ea6\uff0c\u5c24\u5176\u662f\u4e92\u8054\u7f51\u4e1a\u52a1\u5174\u8d77\u4e4b\u540e\uff0c\u6d77\u91cf\u7528\u6237\u52a0\u4e0a\u6d77\u91cf\u6570\u636e\u7684\u7279\u70b9\uff0c\u5355\u4e2a\u6570\u636e\u5e93\u670d\u52a1\u5668\u5df2\u7ecf\u96be\u4ee5\u6ee1\u8db3\u4e1a\u52a1\u9700\u8981\uff0c\u5fc5\u987b\u8003\u8651\u6570\u636e\u5e93\u96c6\u7fa4\u7684\u65b9\u5f0f\u6765\u63d0\u5347\u6027\u80fd\u3002"),(0,l.yg)("p",null,"\u9ad8\u6027\u80fd\u6570\u636e\u5e93\u96c6\u7fa4\u7684\u7b2c\u4e00\u79cd\u65b9\u5f0f\u662f\u201c\u8bfb\u5199\u5206\u79bb\u201d\uff0c\u5176\u672c\u8d28\u662f\u5c06\u8bbf\u95ee\u538b\u529b\u5206\u6563\u5230\u96c6\u7fa4\u4e2d\u7684\u591a\u4e2a\u8282\u70b9\uff0c\u4f46\u662f\u6ca1\u6709\u5206\u6563\u5b58\u50a8\u538b\u529b\uff1b\u7b2c\u4e8c\u79cd\u65b9\u5f0f\u662f\u201c\u5206\u5e93\u5206\u8868\u201d\uff0c\u65e2\u53ef\u4ee5\u5206\u6563\u8bbf\u95ee\u538b\u529b\uff0c\u53c8\u53ef\u4ee5\u5206\u6563\u5b58\u50a8\u538b\u529b\u3002"),(0,l.yg)("h3",{id:"\u8bfb\u5199\u5206\u79bb\u539f\u7406"},"\u8bfb\u5199\u5206\u79bb\u539f\u7406"),(0,l.yg)("p",null,"\u8bfb\u5199\u5206\u79bb\u7684\u57fa\u672c\u539f\u7406\u662f\u5c06\u6570\u636e\u5e93\u8bfb\u5199\u64cd\u4f5c\u5206\u6563\u5230\u4e0d\u540c\u7684\u8282\u70b9\u4e0a\uff0c\u4e0b\u9762\u662f\u5176\u57fa\u672c\u67b6\u6784\u56fe\u3002"),(0,l.yg)("p",null,(0,l.yg)("img",{alt:"image.png",src:n(6215).A,width:"914",height:"647"})),(0,l.yg)("p",null,"\u8bfb\u5199\u5206\u79bb\u7684\u5b9e\u73b0\u903b\u8f91\u5e76\u4e0d\u590d\u6742\uff0c\u4f46\u6709\u4e24\u4e2a\u7ec6\u8282\u70b9\u5c06\u5f15\u5165\u8bbe\u8ba1\u590d\u6742\u5ea6\uff1a\u4e3b\u4ece\u590d\u5236\u5ef6\u8fdf\u548c\u5206\u914d\u673a\u5236\u3002"),(0,l.yg)("p",null,"\u89e3\u51b3\u4e3b\u4ece\u590d\u5236\u5ef6\u8fdf\u6709\u51e0\u79cd\u5e38\u89c1\u7684\u65b9\u6cd5\uff1a"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u5199\u64cd\u4f5c\u540e\u7684\u8bfb\u64cd\u4f5c\u6307\u5b9a\u53d1\u7ed9\u6570\u636e\u5e93\u4e3b\u670d\u52a1\u5668"),(0,l.yg)("li",{parentName:"ol"},"\u8bfb\u4ece\u673a\u5931\u8d25\u540e\u518d\u8bfb\u4e00\u6b21\u4e3b\u673a"),(0,l.yg)("li",{parentName:"ol"},"\u5173\u952e\u4e1a\u52a1\u8bfb\u5199\u64cd\u4f5c\u5168\u90e8\u6307\u5411\u4e3b\u673a\uff0c\u975e\u5173\u952e\u4e1a\u52a1\u91c7\u7528\u8bfb\u5199\u5206\u79bb")),(0,l.yg)("p",null,"\u5c06\u8bfb\u5199\u64cd\u4f5c\u533a\u5206\u5f00\u6765\uff0c\u7136\u540e\u8bbf\u95ee\u4e0d\u540c\u7684\u6570\u636e\u5e93\u670d\u52a1\u5668\uff0c\u4e00\u822c\u6709\u4e24\u79cd\u65b9\u5f0f\uff1a\u7a0b\u5e8f\u4ee3\u7801\u5c01\u88c5\u548c\u4e2d\u95f4\u4ef6\u5c01\u88c5\u3002"),(0,l.yg)("p",null,"\u7a0b\u5e8f\u4ee3\u7801\u5c01\u88c5\u7684\u65b9\u5f0f\uff0c\u5728\u76ee\u524d\u5f00\u6e90\u7684\u5b9e\u73b0\u65b9\u6848\u4e2d\uff0c\u6dd8\u5b9d\u7684 TDDL\uff08Taobao Distributed Data Layer\uff0c\u5916\u53f7: \u5934\u90fd\u5927\u4e86\uff09\u662f\u6bd4\u8f83\u6709\u540d\u7684\u3002\u5b83\u662f\u4e00\u4e2a\u901a\u7528\u6570\u636e\u8bbf\u95ee\u5c42\uff0c\u6240\u6709\u529f\u80fd\u5c01\u88c5\u5728 jar \u5305\u4e2d\u63d0\u4f9b\u7ed9\u4e1a\u52a1\u4ee3\u7801\u8c03\u7528\u3002"),(0,l.yg)("p",null,"\u4e2d\u95f4\u4ef6\u5c01\u88c5\u6307\u7684\u662f\u72ec\u7acb\u4e00\u5957\u7cfb\u7edf\u51fa\u6765\uff0c\u5b9e\u73b0\u8bfb\u5199\u64cd\u4f5c\u5206\u79bb\u548c\u6570\u636e\u5e93\u670d\u52a1\u5668\u8fde\u63a5\u7684\u7ba1\u7406\u3002\u4e2d\u95f4\u4ef6\u5bf9\u4e1a\u52a1\u670d\u52a1\u5668\u63d0\u4f9b SQL \u517c\u5bb9\u7684\u534f\u8bae\uff0c\u4e1a\u52a1\u670d\u52a1\u5668\u65e0\u987b\u81ea\u5df1\u8fdb\u884c\u8bfb\u5199\u5206\u79bb\u3002\u5bf9\u4e8e\u4e1a\u52a1\u670d\u52a1\u5668\u6765\u8bf4\uff0c\u8bbf\u95ee\u4e2d\u95f4\u4ef6\u548c\u8bbf\u95ee\u6570\u636e\u5e93\u6ca1\u6709\u533a\u522b\uff0c\u4e8b\u5b9e\u4e0a\u5728\u4e1a\u52a1\u670d\u52a1\u5668\u770b\u6765\uff0c\u4e2d\u95f4\u4ef6\u5c31\u662f\u4e00\u4e2a\u6570\u636e\u5e93\u670d\u52a1\u5668\u3002"),(0,l.yg)("p",null,"\u76ee\u524d\u7684\u5f00\u6e90\u6570\u636e\u5e93\u4e2d\u95f4\u4ef6\u65b9\u6848\u4e2d\uff0cMySQL \u5b98\u65b9\u5148\u662f\u63d0\u4f9b\u4e86 MySQL Proxy\uff0c\u4f46 MySQL Proxy \u4e00\u76f4\u6ca1\u6709\u6b63\u5f0f GA\uff0c\u73b0\u5728 MySQL \u5b98\u65b9\u63a8\u8350 MySQL Router\u3002\u5947\u864e 360 \u516c\u53f8\u4e5f\u5f00\u6e90\u4e86\u81ea\u5df1\u7684\u6570\u636e\u5e93\u4e2d\u95f4\u4ef6 Atlas\uff0cAtlas \u662f\u57fa\u4e8e MySQL Proxy \u5b9e\u73b0\u7684\u3002"),(0,l.yg)("h3",{id:"\u5206\u5e93\u5206\u8868"},"\u5206\u5e93\u5206\u8868"),(0,l.yg)("p",null,"\u4e1a\u52a1\u5206\u5e93\u6307\u7684\u662f\u6309\u7167\u4e1a\u52a1\u6a21\u5757\u5c06\u6570\u636e\u5206\u6563\u5230\u4e0d\u540c\u7684\u6570\u636e\u5e93\u670d\u52a1\u5668\u3002\u867d\u7136\u4e1a\u52a1\u5206\u5e93\u80fd\u591f\u5206\u6563\u5b58\u50a8\u548c\u8bbf\u95ee\u538b\u529b\uff0c\u4f46\u540c\u65f6\u4e5f\u5e26\u6765\u4e86\u65b0\u7684\u95ee\u9898\uff0c\u63a5\u4e0b\u6765\u6211\u8fdb\u884c\u8be6\u7ec6\u5206\u6790\u3002"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"join \u64cd\u4f5c\u95ee\u9898\uff0c\u4e1a\u52a1\u5206\u5e93\u540e\uff0c\u539f\u672c\u5728\u540c\u4e00\u4e2a\u6570\u636e\u5e93\u4e2d\u7684\u8868\u5206\u6563\u5230\u4e0d\u540c\u6570\u636e\u5e93\u4e2d\uff0c\u5bfc\u81f4\u65e0\u6cd5\u4f7f\u7528 SQL \u7684 join \u67e5\u8be2\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u4e8b\u52a1\u95ee\u9898\uff0c\u539f\u672c\u5728\u540c\u4e00\u4e2a\u6570\u636e\u5e93\u4e2d\u4e0d\u540c\u7684\u8868\u53ef\u4ee5\u5728\u540c\u4e00\u4e2a\u4e8b\u52a1\u4e2d\u4fee\u6539\uff0c\u4e1a\u52a1\u5206\u5e93\u540e\uff0c\u8868\u5206\u6563\u5230\u4e0d\u540c\u7684\u6570\u636e\u5e93\u4e2d\uff0c\u65e0\u6cd5\u901a\u8fc7\u4e8b\u52a1\u7edf\u4e00\u4fee\u6539\u3002\u867d\u7136\u6570\u636e\u5e93\u5382\u5546\u63d0\u4f9b\u4e86\u4e00\u4e9b\u5206\u5e03\u5f0f\u4e8b\u52a1\u7684\u89e3\u51b3\u65b9\u6848\uff08\u4f8b\u5982\uff0cMySQL \u7684 XA\uff09\uff0c\u4f46\u6027\u80fd\u5b9e\u5728\u592a\u4f4e\uff0c\u4e0e\u9ad8\u6027\u80fd\u5b58\u50a8\u7684\u76ee\u6807\u662f\u76f8\u8fdd\u80cc\u7684\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u6210\u672c\u95ee\u9898")),(0,l.yg)("p",null,"\u5c06\u4e0d\u540c\u4e1a\u52a1\u6570\u636e\u5206\u6563\u5b58\u50a8\u5230\u4e0d\u540c\u7684\u6570\u636e\u5e93\u670d\u52a1\u5668\uff0c\u80fd\u591f\u652f\u6491\u767e\u4e07\u751a\u81f3\u5343\u4e07\u7528\u6237\u89c4\u6a21\u7684\u4e1a\u52a1\uff0c\u4f46\u5982\u679c\u4e1a\u52a1\u7ee7\u7eed\u53d1\u5c55\uff0c\u540c\u4e00\u4e1a\u52a1\u7684\u5355\u8868\u6570\u636e\u4e5f\u4f1a\u8fbe\u5230\u5355\u53f0\u6570\u636e\u5e93\u670d\u52a1\u5668\u7684\u5904\u7406\u74f6\u9888\u3002\u4f8b\u5982\uff0c\u6dd8\u5b9d\u7684\u51e0\u4ebf\u7528\u6237\u6570\u636e\uff0c\u5982\u679c\u5168\u90e8\u5b58\u653e\u5728\u4e00\u53f0\u6570\u636e\u5e93\u670d\u52a1\u5668\u7684\u4e00\u5f20\u8868\u4e2d\uff0c\u80af\u5b9a\u662f\u65e0\u6cd5\u6ee1\u8db3\u6027\u80fd\u8981\u6c42\u7684\uff0c\u6b64\u65f6\u5c31\u9700\u8981\u5bf9\u5355\u8868\u6570\u636e\u8fdb\u884c\u62c6\u5206\u3002"),(0,l.yg)("p",null,"\u5355\u8868\u6570\u636e\u62c6\u5206\u6709\u4e24\u79cd\u65b9\u5f0f\uff1a\u5782\u76f4\u5206\u8868\u548c\u6c34\u5e73\u5206\u8868\u3002\u793a\u610f\u56fe\u5982\u4e0b\uff1a\n",(0,l.yg)("img",{alt:"image.png",src:n(430).A,width:"1534",height:"804"})))}s.isMDXComponent=!0},6215:(e,t,n)=>{n.d(t,{A:()=>r});const r=n.p+"assets/images/2-4e7ea6ea9e8204899e24d4788b873bce.png"},430:(e,t,n)=>{n.d(t,{A:()=>r});const r=n.p+"assets/images/3-20a57e605dc69d5091de2bbfb0461e46.png"}}]); \ No newline at end of file diff --git a/assets/js/a53f992a.e6759ef2.js b/assets/js/a53f992a.33532fe0.js similarity index 98% rename from assets/js/a53f992a.e6759ef2.js rename to assets/js/a53f992a.33532fe0.js index b5af1dd05..ff3d47104 100644 --- a/assets/js/a53f992a.e6759ef2.js +++ b/assets/js/a53f992a.33532fe0.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9583],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),i=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},s=function(e){var t=i(e.components);return n.createElement(p.Provider,{value:t},e.children)},l="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,s=d(e,["components","mdxType","originalType","parentName"]),l=i(r),f=o,y=l["".concat(p,".").concat(f)]||l[f]||u[f]||a;return r?n.createElement(y,c(c({ref:t},s),{},{components:r})):n.createElement(y,c({ref:t},s))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=f;var d={};for(var p in t)hasOwnProperty.call(t,p)&&(d[p]=t[p]);d.originalType=e,d[l]="string"==typeof e?e:o,c[1]=d;for(var i=2;i{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>c,default:()=>u,frontMatter:()=>a,metadata:()=>d,toc:()=>i});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,d={unversionedId:"study/db/NoSQL/Hadoop",id:"study/db/NoSQL/Hadoop",title:"Hadoop",description:"\u9000\u51fa\u5b89\u5168\u6a21\u5f0f",source:"@site/docs/study/db/NoSQL/Hadoop.md",sourceDirName:"study/db/NoSQL",slug:"/study/db/NoSQL/Hadoop",permalink:"/docs/study/db/NoSQL/Hadoop",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Etcd",permalink:"/docs/study/db/NoSQL/Etcd"},next:{title:"Hbase",permalink:"/docs/study/db/NoSQL/Hbase"}},p={},i=[{value:"\u9000\u51fa\u5b89\u5168\u6a21\u5f0f",id:"\u9000\u51fa\u5b89\u5168\u6a21\u5f0f",level:3}],s={toc:i},l="wrapper";function u(e){let{components:t,...r}=e;return(0,o.yg)(l,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u9000\u51fa\u5b89\u5168\u6a21\u5f0f"},"\u9000\u51fa\u5b89\u5168\u6a21\u5f0f"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-shell"},"cd /opt/ccsp/hadoop-3.3.6/bin\n./hadoop dfsadmin -safemode leave\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9583],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),i=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},s=function(e){var t=i(e.components);return n.createElement(p.Provider,{value:t},e.children)},l="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,s=d(e,["components","mdxType","originalType","parentName"]),l=i(r),f=o,y=l["".concat(p,".").concat(f)]||l[f]||u[f]||a;return r?n.createElement(y,c(c({ref:t},s),{},{components:r})):n.createElement(y,c({ref:t},s))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=f;var d={};for(var p in t)hasOwnProperty.call(t,p)&&(d[p]=t[p]);d.originalType=e,d[l]="string"==typeof e?e:o,c[1]=d;for(var i=2;i{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>c,default:()=>u,frontMatter:()=>a,metadata:()=>d,toc:()=>i});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,d={unversionedId:"study/db/NoSQL/Hadoop",id:"study/db/NoSQL/Hadoop",title:"Hadoop",description:"\u9000\u51fa\u5b89\u5168\u6a21\u5f0f",source:"@site/docs/study/db/NoSQL/Hadoop.md",sourceDirName:"study/db/NoSQL",slug:"/study/db/NoSQL/Hadoop",permalink:"/docs/study/db/NoSQL/Hadoop",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Etcd",permalink:"/docs/study/db/NoSQL/Etcd"},next:{title:"Hbase",permalink:"/docs/study/db/NoSQL/Hbase"}},p={},i=[{value:"\u9000\u51fa\u5b89\u5168\u6a21\u5f0f",id:"\u9000\u51fa\u5b89\u5168\u6a21\u5f0f",level:3}],s={toc:i},l="wrapper";function u(e){let{components:t,...r}=e;return(0,o.yg)(l,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u9000\u51fa\u5b89\u5168\u6a21\u5f0f"},"\u9000\u51fa\u5b89\u5168\u6a21\u5f0f"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-shell"},"cd /opt/ccsp/hadoop-3.3.6/bin\n./hadoop dfsadmin -safemode leave\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a5cbff69.fbbaab27.js b/assets/js/a5cbff69.36836426.js similarity index 98% rename from assets/js/a5cbff69.fbbaab27.js rename to assets/js/a5cbff69.36836426.js index 058516505..dd62fd152 100644 --- a/assets/js/a5cbff69.fbbaab27.js +++ b/assets/js/a5cbff69.36836426.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[821],{5680:(e,t,r)=>{r.d(t,{xA:()=>i,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),c=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},i=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",g={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,i=p(e,["components","mdxType","originalType","parentName"]),u=c(r),d=o,y=u["".concat(s,".").concat(d)]||u[d]||g[d]||a;return r?n.createElement(y,l(l({ref:t},i),{},{components:r})):n.createElement(y,l({ref:t},i))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=d;var p={};for(var s in t)hasOwnProperty.call(t,s)&&(p[s]=t[s]);p.originalType=e,p[u]="string"==typeof e?e:o,l[1]=p;for(var c=2;c{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>g,frontMatter:()=>a,metadata:()=>p,toc:()=>c});var n=r(8168),o=(r(6540),r(5680));const a={},l=void 0,p={unversionedId:"study/program/Golang/\u5e38\u7528\u7684\u5de5\u5177",id:"study/program/Golang/\u5e38\u7528\u7684\u5de5\u5177",title:"\u5e38\u7528\u7684\u5de5\u5177",description:"json-to-go",source:"@site/docs/study/program/Golang/\u5e38\u7528\u7684\u5de5\u5177.md",sourceDirName:"study/program/Golang",slug:"/study/program/Golang/\u5e38\u7528\u7684\u5de5\u5177",permalink:"/docs/study/program/Golang/\u5e38\u7528\u7684\u5de5\u5177",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Golang\u4f9d\u8d56\u5e93\u4ee3\u7406",permalink:"/docs/study/program/Golang/Golang\u4f9d\u8d56\u5e93\u4ee3\u7406"},next:{title:"\u5e38\u7528\u7684\u6846\u67b6",permalink:"/docs/study/program/Golang/\u5e38\u7528\u7684\u6846\u67b6"}},s={},c=[{value:"json-to-go",id:"json-to-go",level:3},{value:"\u7528go\u5b9e\u73b0\u5404\u79cd\u6392\u5e8f\u7b97\u6cd5",id:"\u7528go\u5b9e\u73b0\u5404\u79cd\u6392\u5e8f\u7b97\u6cd5",level:3}],i={toc:c},u="wrapper";function g(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},i,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"json-to-go"},"json-to-go"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://mholt.github.io/json-to-go/"},"https://mholt.github.io/json-to-go/")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://blog.csdn.net/zxy_666/article/details/80173288"},"Go\u7684json\u89e3\u6790\uff1aMarshal\u4e0eUnmarshal")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://blog.csdn.net/K346K346/article/details/90482815"},"Golang json \u89e3\u6790\u4e0e\u751f\u6210"))),(0,o.yg)("h3",{id:"\u7528go\u5b9e\u73b0\u5404\u79cd\u6392\u5e8f\u7b97\u6cd5"},"\u7528go\u5b9e\u73b0\u5404\u79cd\u6392\u5e8f\u7b97\u6cd5"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://www.topgoer.cn/docs/gosuanfa/gosuanfa-1c906k4cpjfnp"},"https://www.topgoer.cn/docs/gosuanfa/gosuanfa-1c906k4cpjfnp"))))}g.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[821],{5680:(e,t,r)=>{r.d(t,{xA:()=>i,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),c=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},i=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",g={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,i=p(e,["components","mdxType","originalType","parentName"]),u=c(r),d=o,y=u["".concat(s,".").concat(d)]||u[d]||g[d]||a;return r?n.createElement(y,l(l({ref:t},i),{},{components:r})):n.createElement(y,l({ref:t},i))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=d;var p={};for(var s in t)hasOwnProperty.call(t,s)&&(p[s]=t[s]);p.originalType=e,p[u]="string"==typeof e?e:o,l[1]=p;for(var c=2;c{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>g,frontMatter:()=>a,metadata:()=>p,toc:()=>c});var n=r(8168),o=(r(6540),r(5680));const a={},l=void 0,p={unversionedId:"study/program/Golang/\u5e38\u7528\u7684\u5de5\u5177",id:"study/program/Golang/\u5e38\u7528\u7684\u5de5\u5177",title:"\u5e38\u7528\u7684\u5de5\u5177",description:"json-to-go",source:"@site/docs/study/program/Golang/\u5e38\u7528\u7684\u5de5\u5177.md",sourceDirName:"study/program/Golang",slug:"/study/program/Golang/\u5e38\u7528\u7684\u5de5\u5177",permalink:"/docs/study/program/Golang/\u5e38\u7528\u7684\u5de5\u5177",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Golang\u4f9d\u8d56\u5e93\u4ee3\u7406",permalink:"/docs/study/program/Golang/Golang\u4f9d\u8d56\u5e93\u4ee3\u7406"},next:{title:"\u5e38\u7528\u7684\u6846\u67b6",permalink:"/docs/study/program/Golang/\u5e38\u7528\u7684\u6846\u67b6"}},s={},c=[{value:"json-to-go",id:"json-to-go",level:3},{value:"\u7528go\u5b9e\u73b0\u5404\u79cd\u6392\u5e8f\u7b97\u6cd5",id:"\u7528go\u5b9e\u73b0\u5404\u79cd\u6392\u5e8f\u7b97\u6cd5",level:3}],i={toc:c},u="wrapper";function g(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},i,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"json-to-go"},"json-to-go"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://mholt.github.io/json-to-go/"},"https://mholt.github.io/json-to-go/")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://blog.csdn.net/zxy_666/article/details/80173288"},"Go\u7684json\u89e3\u6790\uff1aMarshal\u4e0eUnmarshal")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://blog.csdn.net/K346K346/article/details/90482815"},"Golang json \u89e3\u6790\u4e0e\u751f\u6210"))),(0,o.yg)("h3",{id:"\u7528go\u5b9e\u73b0\u5404\u79cd\u6392\u5e8f\u7b97\u6cd5"},"\u7528go\u5b9e\u73b0\u5404\u79cd\u6392\u5e8f\u7b97\u6cd5"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://www.topgoer.cn/docs/gosuanfa/gosuanfa-1c906k4cpjfnp"},"https://www.topgoer.cn/docs/gosuanfa/gosuanfa-1c906k4cpjfnp"))))}g.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a633caa1.59c9e998.js b/assets/js/a633caa1.c9ec87bb.js similarity index 98% rename from assets/js/a633caa1.59c9e998.js rename to assets/js/a633caa1.c9ec87bb.js index 41f32b429..0ee78edf2 100644 --- a/assets/js/a633caa1.59c9e998.js +++ b/assets/js/a633caa1.c9ec87bb.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1902],{5680:(e,r,t)=>{t.d(r,{xA:()=>u,yg:()=>m});var n=t(6540);function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function l(e){for(var r=1;r=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var c=n.createContext({}),p=function(e){var r=n.useContext(c),t=r;return e&&(t="function"==typeof e?e(r):l(l({},r),e)),t},u=function(e){var r=p(e.components);return n.createElement(c.Provider,{value:r},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},d=n.forwardRef((function(e,r){var t=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),s=p(t),d=a,m=s["".concat(c,".").concat(d)]||s[d]||y[d]||o;return t?n.createElement(m,l(l({ref:r},u),{},{components:t})):n.createElement(m,l({ref:r},u))}));function m(e,r){var t=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var o=t.length,l=new Array(o);l[0]=d;var i={};for(var c in r)hasOwnProperty.call(r,c)&&(i[c]=r[c]);i.originalType=e,i[s]="string"==typeof e?e:a,l[1]=i;for(var p=2;p{t.r(r),t.d(r,{assets:()=>c,contentTitle:()=>l,default:()=>y,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var n=t(8168),a=(t(6540),t(5680));const o={},l=void 0,i={unversionedId:"study/program/JAVA/JDK21",id:"study/program/JAVA/JDK21",title:"JDK21",description:"\u865a\u62df\u7ebf\u7a0b",source:"@site/docs/study/program/JAVA/JDK21.md",sourceDirName:"study/program/JAVA",slug:"/study/program/JAVA/JDK21",permalink:"/docs/study/program/JAVA/JDK21",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"JDK17",permalink:"/docs/study/program/JAVA/JDK17"},next:{title:"JDK8",permalink:"/docs/study/program/JAVA/JDK8"}},c={},p=[{value:"\u865a\u62df\u7ebf\u7a0b",id:"\u865a\u62df\u7ebf\u7a0b",level:4},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:4}],u={toc:p},s="wrapper";function y(e){let{components:r,...t}=e;return(0,a.yg)(s,(0,n.A)({},u,t,{components:r,mdxType:"MDXLayout"}),(0,a.yg)("h4",{id:"\u865a\u62df\u7ebf\u7a0b"},"\u865a\u62df\u7ebf\u7a0b"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u865a\u62df\u7ebf\u7a0b\u662f\u8f7b\u91cf\u7ea7\u7684\uff0c\u5b83\u4eec\u4e0e\u5185\u6838\u7ebf\u7a0b\u65e0\u5173\uff0c\u56e0\u6b64\u5e94\u7528\u7a0b\u5e8f\u53ef\u4ee5\u5177\u6709\u6bd4\u5177\u6709\u591a\u7ebf\u7a0b\u7684\u7ebf\u7a0b\u66f4\u5c11\u7684\u6838\u5fc3\u3002"),(0,a.yg)("li",{parentName:"ul"},"\u865a\u62df\u7ebf\u7a0b\u5728 JDK 19 \u4e2d\u5f15\u5165\uff0cJDK21 \u6b63\u5f0f\u53d1\u5e03\uff0c\u65e8\u5728\u63d0\u9ad8\u53ef\u4f38\u7f29\u6027\u548c\u6548\u7387\u3002"),(0,a.yg)("li",{parentName:"ul"},"\u865a\u62df\u7ebf\u7a0b\u4e0d\u662f\u7528\u6765\u63d0\u901f\u7684\uff0c\u800c\u662f\u7528\u6765\u63d0\u9ad8\u541e\u5410\u91cf\u7684\u3002")),(0,a.yg)("h4",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/659965075"},"\u300c\u540e\u7aef\u300d\u770b\u5b8c\u4fbf\u77e5 JDK21 \u4e2d\u865a\u62df\u7ebf\u7a0b\u5230\u5e95\u662f\u4ec0\u4e48\uff01"))))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1902],{5680:(e,r,t)=>{t.d(r,{xA:()=>u,yg:()=>m});var n=t(6540);function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function l(e){for(var r=1;r=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var c=n.createContext({}),p=function(e){var r=n.useContext(c),t=r;return e&&(t="function"==typeof e?e(r):l(l({},r),e)),t},u=function(e){var r=p(e.components);return n.createElement(c.Provider,{value:r},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},d=n.forwardRef((function(e,r){var t=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),s=p(t),d=a,m=s["".concat(c,".").concat(d)]||s[d]||y[d]||o;return t?n.createElement(m,l(l({ref:r},u),{},{components:t})):n.createElement(m,l({ref:r},u))}));function m(e,r){var t=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var o=t.length,l=new Array(o);l[0]=d;var i={};for(var c in r)hasOwnProperty.call(r,c)&&(i[c]=r[c]);i.originalType=e,i[s]="string"==typeof e?e:a,l[1]=i;for(var p=2;p{t.r(r),t.d(r,{assets:()=>c,contentTitle:()=>l,default:()=>y,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var n=t(8168),a=(t(6540),t(5680));const o={},l=void 0,i={unversionedId:"study/program/JAVA/JDK21",id:"study/program/JAVA/JDK21",title:"JDK21",description:"\u865a\u62df\u7ebf\u7a0b",source:"@site/docs/study/program/JAVA/JDK21.md",sourceDirName:"study/program/JAVA",slug:"/study/program/JAVA/JDK21",permalink:"/docs/study/program/JAVA/JDK21",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"JDK17",permalink:"/docs/study/program/JAVA/JDK17"},next:{title:"JDK8",permalink:"/docs/study/program/JAVA/JDK8"}},c={},p=[{value:"\u865a\u62df\u7ebf\u7a0b",id:"\u865a\u62df\u7ebf\u7a0b",level:4},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:4}],u={toc:p},s="wrapper";function y(e){let{components:r,...t}=e;return(0,a.yg)(s,(0,n.A)({},u,t,{components:r,mdxType:"MDXLayout"}),(0,a.yg)("h4",{id:"\u865a\u62df\u7ebf\u7a0b"},"\u865a\u62df\u7ebf\u7a0b"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u865a\u62df\u7ebf\u7a0b\u662f\u8f7b\u91cf\u7ea7\u7684\uff0c\u5b83\u4eec\u4e0e\u5185\u6838\u7ebf\u7a0b\u65e0\u5173\uff0c\u56e0\u6b64\u5e94\u7528\u7a0b\u5e8f\u53ef\u4ee5\u5177\u6709\u6bd4\u5177\u6709\u591a\u7ebf\u7a0b\u7684\u7ebf\u7a0b\u66f4\u5c11\u7684\u6838\u5fc3\u3002"),(0,a.yg)("li",{parentName:"ul"},"\u865a\u62df\u7ebf\u7a0b\u5728 JDK 19 \u4e2d\u5f15\u5165\uff0cJDK21 \u6b63\u5f0f\u53d1\u5e03\uff0c\u65e8\u5728\u63d0\u9ad8\u53ef\u4f38\u7f29\u6027\u548c\u6548\u7387\u3002"),(0,a.yg)("li",{parentName:"ul"},"\u865a\u62df\u7ebf\u7a0b\u4e0d\u662f\u7528\u6765\u63d0\u901f\u7684\uff0c\u800c\u662f\u7528\u6765\u63d0\u9ad8\u541e\u5410\u91cf\u7684\u3002")),(0,a.yg)("h4",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/659965075"},"\u300c\u540e\u7aef\u300d\u770b\u5b8c\u4fbf\u77e5 JDK21 \u4e2d\u865a\u62df\u7ebf\u7a0b\u5230\u5e95\u662f\u4ec0\u4e48\uff01"))))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a6c94d4c.5b5b9d87.js b/assets/js/a6c94d4c.31bbb729.js similarity index 98% rename from assets/js/a6c94d4c.5b5b9d87.js rename to assets/js/a6c94d4c.31bbb729.js index 58ef34e25..e446716a9 100644 --- a/assets/js/a6c94d4c.5b5b9d87.js +++ b/assets/js/a6c94d4c.31bbb729.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7649],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),u=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(c.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),s=u(r),d=o,f=s["".concat(c,".").concat(d)]||s[d]||y[d]||a;return r?n.createElement(f,l(l({ref:t},p),{},{components:r})):n.createElement(f,l({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=d;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[s]="string"==typeof e?e:o,l[1]=i;for(var u=2;u{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>y,frontMatter:()=>a,metadata:()=>i,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={sidebar_position:1},l="\u6982\u8ff0",i={unversionedId:"iotcloud/index",id:"iotcloud/index",title:"\u6982\u8ff0",description:"\u6240\u6709\u7a0b\u5e8f\u7684\u4ee3\u7801\u5168\u90e8\u5f00\u6e90\uff0c\u514d\u8d39\u5546\u7528\uff0c\u4e0d\u53d7\u4efb\u4f55\u9650\u5236\uff0c\u81f4\u529b\u4e8e\u6253\u9020\u514d\u8d39\u3001\u5f00\u6e90\u3001\u6027\u80fd\u4f18\u5f02\u7684\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u751f\u6001\u3002",source:"@site/docs/iotcloud/index.md",sourceDirName:"iotcloud",slug:"/iotcloud/",permalink:"/docs/iotcloud/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"iotCloudSidebar",next:{title:"\u6982\u8ff0",permalink:"/docs/iotcloud/connect/"}},c={},u=[],p={toc:u},s="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,o.yg)("p",null,"\u6240\u6709\u7a0b\u5e8f\u7684\u4ee3\u7801\u5168\u90e8\u5f00\u6e90\uff0c\u514d\u8d39\u5546\u7528\uff0c\u4e0d\u53d7\u4efb\u4f55\u9650\u5236\uff0c\u81f4\u529b\u4e8e\u6253\u9020\u514d\u8d39\u3001\u5f00\u6e90\u3001\u6027\u80fd\u4f18\u5f02\u7684\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u751f\u6001\u3002"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"\u4e91\u5e73\u53f0-\u540e\u7aef\u6e90\u7801"),(0,o.yg)("li",{parentName:"ul"},"\u4e91\u5e73\u53f0-\u524d\u7aef\u6e90\u7801"),(0,o.yg)("li",{parentName:"ul"},"\u4e91\u5e73\u53f0-\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\u6e90\u7801"),(0,o.yg)("li",{parentName:"ul"},"\u4e91\u5e73\u53f0-\u79fb\u52a8\u7aef APP \u6e90\u7801")),(0,o.yg)("p",null,"\u867d\u7136\u672c\u5e73\u53f0\u7684\u5168\u90e8\u6e90\u7801\u516c\u5f00\u4e14\u514d\u8d39\u5546\u7528\uff0c\u4f46\u662f\u6211\u4e2a\u4eba\u8fd8\u662f\u9700\u8981\u751f\u5b58\uff0c\u53ef\u63d0\u4f9b\u5982\u4e0b\u4ed8\u8d39\u670d\u52a1\uff1a"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"\u6280\u672f\u652f\u6301\uff0c\u53ef\u8fdb VIP \u5fae\u4fe1\u7fa4\uff0c\u63d0\u4f9b\u6280\u672f\u65b9\u6848\u6307\u5bfc\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u6570\u636e\u5e93\u8bf4\u660e\u6587\u6863\uff0c\u4e3b\u8981\u662f\u8868\u540d\u3001\u5b57\u6bb5\u540d\u542b\u4e49\u89e3\u91ca\uff0c\u5bf9\u4e8e\u8981\u4e8c\u5f00\u975e\u5e38\u6709\u5e2e\u52a9\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u540e\u7aef\u6e90\u7801\u8bf4\u660e\u6587\u6863\uff0c\u4e3b\u8981\u662f\u548c\u7528\u6237\u7684\u534f\u8bae\u6587\u6863\u3001\u548c\u8bbe\u5907\u7684\u534f\u8bae\u6587\u6863\u3001\u540e\u7aef\u6570\u636e\u5185\u90e8\u6570\u636e\u6d41\u8f6c\u3001\u540e\u7aef\u67b6\u6784\u56fe\u3001\u63d0\u4f9b\u7ed9\u524d\u7aef\u7684\u63a5\u53e3\u6587\u6863\u7b49\uff0c\u5bf9\u4e8e\u4e8c\u5f00\u975e\u5e38\u6709\u5e2e\u52a9\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u524d\u7aef\u6e90\u7801\u8bf4\u660e\u6587\u6863\uff0c\u4e3b\u8981\u662f\u67b6\u6784\u56fe\u3001\u524d\u7aef\u7f16\u7801\u89c4\u8303\u3001\u524d\u7aef\u624b\u673a\u7ec4\u6001\u7f16\u8f91\u5668\u4e8c\u5f00\u6587\u6863\u7b49\uff0c\u5bf9\u4e8e\u4e8c\u5f00\u975e\u5e38\u6709\u5e2e\u52a9\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\u6e90\u7801\u8bf4\u660e\u6587\u6863\uff0c\u4e3b\u8981\u662f\u67b6\u6784\u56fe\u3001\u7f16\u7801\u89c4\u8303\u3001\u624b\u673a\u7ec4\u6001\u6e32\u67d3\u903b\u8f91\u7b49\uff0c\u5bf9\u4e8e\u4e8c\u5f00\u975e\u5e38\u6709\u5e2e\u52a9\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u79fb\u52a8\u7aef APP \u6e90\u7801\u8bf4\u660e\u6587\u6863\uff0c\u5305\u62ec\u67b6\u6784\u56fe\u3001\u7f16\u7801\u89c4\u8303\u3001\u4e0a\u7ebf APP \u5546\u5e97\u6d41\u7a0b\u8bf4\u660e\u7b49\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u79c1\u6709\u90e8\u7f72\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u529f\u80fd\u5b9a\u5236\uff1b")))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7649],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),u=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(c.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),s=u(r),d=o,f=s["".concat(c,".").concat(d)]||s[d]||y[d]||a;return r?n.createElement(f,l(l({ref:t},p),{},{components:r})):n.createElement(f,l({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=d;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[s]="string"==typeof e?e:o,l[1]=i;for(var u=2;u{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>y,frontMatter:()=>a,metadata:()=>i,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={sidebar_position:1},l="\u6982\u8ff0",i={unversionedId:"iotcloud/index",id:"iotcloud/index",title:"\u6982\u8ff0",description:"\u6240\u6709\u7a0b\u5e8f\u7684\u4ee3\u7801\u5168\u90e8\u5f00\u6e90\uff0c\u514d\u8d39\u5546\u7528\uff0c\u4e0d\u53d7\u4efb\u4f55\u9650\u5236\uff0c\u81f4\u529b\u4e8e\u6253\u9020\u514d\u8d39\u3001\u5f00\u6e90\u3001\u6027\u80fd\u4f18\u5f02\u7684\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u751f\u6001\u3002",source:"@site/docs/iotcloud/index.md",sourceDirName:"iotcloud",slug:"/iotcloud/",permalink:"/docs/iotcloud/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"iotCloudSidebar",next:{title:"\u6982\u8ff0",permalink:"/docs/iotcloud/connect/"}},c={},u=[],p={toc:u},s="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,o.yg)("p",null,"\u6240\u6709\u7a0b\u5e8f\u7684\u4ee3\u7801\u5168\u90e8\u5f00\u6e90\uff0c\u514d\u8d39\u5546\u7528\uff0c\u4e0d\u53d7\u4efb\u4f55\u9650\u5236\uff0c\u81f4\u529b\u4e8e\u6253\u9020\u514d\u8d39\u3001\u5f00\u6e90\u3001\u6027\u80fd\u4f18\u5f02\u7684\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u751f\u6001\u3002"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"\u4e91\u5e73\u53f0-\u540e\u7aef\u6e90\u7801"),(0,o.yg)("li",{parentName:"ul"},"\u4e91\u5e73\u53f0-\u524d\u7aef\u6e90\u7801"),(0,o.yg)("li",{parentName:"ul"},"\u4e91\u5e73\u53f0-\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\u6e90\u7801"),(0,o.yg)("li",{parentName:"ul"},"\u4e91\u5e73\u53f0-\u79fb\u52a8\u7aef APP \u6e90\u7801")),(0,o.yg)("p",null,"\u867d\u7136\u672c\u5e73\u53f0\u7684\u5168\u90e8\u6e90\u7801\u516c\u5f00\u4e14\u514d\u8d39\u5546\u7528\uff0c\u4f46\u662f\u6211\u4e2a\u4eba\u8fd8\u662f\u9700\u8981\u751f\u5b58\uff0c\u53ef\u63d0\u4f9b\u5982\u4e0b\u4ed8\u8d39\u670d\u52a1\uff1a"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"\u6280\u672f\u652f\u6301\uff0c\u53ef\u8fdb VIP \u5fae\u4fe1\u7fa4\uff0c\u63d0\u4f9b\u6280\u672f\u65b9\u6848\u6307\u5bfc\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u6570\u636e\u5e93\u8bf4\u660e\u6587\u6863\uff0c\u4e3b\u8981\u662f\u8868\u540d\u3001\u5b57\u6bb5\u540d\u542b\u4e49\u89e3\u91ca\uff0c\u5bf9\u4e8e\u8981\u4e8c\u5f00\u975e\u5e38\u6709\u5e2e\u52a9\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u540e\u7aef\u6e90\u7801\u8bf4\u660e\u6587\u6863\uff0c\u4e3b\u8981\u662f\u548c\u7528\u6237\u7684\u534f\u8bae\u6587\u6863\u3001\u548c\u8bbe\u5907\u7684\u534f\u8bae\u6587\u6863\u3001\u540e\u7aef\u6570\u636e\u5185\u90e8\u6570\u636e\u6d41\u8f6c\u3001\u540e\u7aef\u67b6\u6784\u56fe\u3001\u63d0\u4f9b\u7ed9\u524d\u7aef\u7684\u63a5\u53e3\u6587\u6863\u7b49\uff0c\u5bf9\u4e8e\u4e8c\u5f00\u975e\u5e38\u6709\u5e2e\u52a9\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u524d\u7aef\u6e90\u7801\u8bf4\u660e\u6587\u6863\uff0c\u4e3b\u8981\u662f\u67b6\u6784\u56fe\u3001\u524d\u7aef\u7f16\u7801\u89c4\u8303\u3001\u524d\u7aef\u624b\u673a\u7ec4\u6001\u7f16\u8f91\u5668\u4e8c\u5f00\u6587\u6863\u7b49\uff0c\u5bf9\u4e8e\u4e8c\u5f00\u975e\u5e38\u6709\u5e2e\u52a9\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\u6e90\u7801\u8bf4\u660e\u6587\u6863\uff0c\u4e3b\u8981\u662f\u67b6\u6784\u56fe\u3001\u7f16\u7801\u89c4\u8303\u3001\u624b\u673a\u7ec4\u6001\u6e32\u67d3\u903b\u8f91\u7b49\uff0c\u5bf9\u4e8e\u4e8c\u5f00\u975e\u5e38\u6709\u5e2e\u52a9\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u79fb\u52a8\u7aef APP \u6e90\u7801\u8bf4\u660e\u6587\u6863\uff0c\u5305\u62ec\u67b6\u6784\u56fe\u3001\u7f16\u7801\u89c4\u8303\u3001\u4e0a\u7ebf APP \u5546\u5e97\u6d41\u7a0b\u8bf4\u660e\u7b49\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u79c1\u6709\u90e8\u7f72\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u529f\u80fd\u5b9a\u5236\uff1b")))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a7f1c1ae.665a16ab.js b/assets/js/a7f1c1ae.b3423448.js similarity index 99% rename from assets/js/a7f1c1ae.665a16ab.js rename to assets/js/a7f1c1ae.b3423448.js index bd90ef160..58ad3e346 100644 --- a/assets/js/a7f1c1ae.665a16ab.js +++ b/assets/js/a7f1c1ae.b3423448.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8922],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var i=n.createContext({}),u=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(i.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),s=u(r),y=o,f=s["".concat(i,".").concat(y)]||s[y]||d[y]||a;return r?n.createElement(f,l(l({ref:t},p),{},{components:r})):n.createElement(f,l({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=y;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[s]="string"==typeof e?e:o,l[1]=c;for(var u=2;u{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={},l=void 0,c={unversionedId:"study/db/NoSQL/Hbase",id:"study/db/NoSQL/Hbase",title:"Hbase",description:"\u5217\u5f0f\u6570\u636e\u5e93",source:"@site/docs/study/db/NoSQL/Hbase.md",sourceDirName:"study/db/NoSQL",slug:"/study/db/NoSQL/Hbase",permalink:"/docs/study/db/NoSQL/Hbase",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Hadoop",permalink:"/docs/study/db/NoSQL/Hadoop"},next:{title:"Ignite",permalink:"/docs/study/db/NoSQL/Ignite"}},i={},u=[{value:"\u5217\u5f0f\u6570\u636e\u5e93",id:"\u5217\u5f0f\u6570\u636e\u5e93",level:3}],p={toc:u},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u5217\u5f0f\u6570\u636e\u5e93"},"\u5217\u5f0f\u6570\u636e\u5e93"),(0,o.yg)("p",null,"\u987e\u540d\u601d\u4e49\uff0c\u5217\u5f0f\u6570\u636e\u5e93\u5c31\u662f\u6309\u7167\u5217\u6765\u5b58\u50a8\u6570\u636e\u7684\u6570\u636e\u5e93\uff0c\u4e0e\u4e4b\u5bf9\u5e94\u7684\u4f20\u7edf\u5173\u7cfb\u6570\u636e\u5e93\u88ab\u79f0\u4e3a\u201c\u884c\u5f0f\u6570\u636e\u5e93\u201d\uff0c\u56e0\u4e3a\u5173\u7cfb\u6570\u636e\u5e93\u662f\u6309\u7167\u884c\u6765\u5b58\u50a8\u6570\u636e\u7684\u3002"),(0,o.yg)("p",null,"\u5173\u7cfb\u6570\u636e\u5e93\u6309\u7167\u884c\u5f0f\u6765\u5b58\u50a8\u6570\u636e\uff0c\u4e3b\u8981\u6709\u4ee5\u4e0b\u51e0\u4e2a\u4f18\u52bf\uff1a"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"\u4e1a\u52a1\u540c\u65f6\u8bfb\u53d6\u591a\u4e2a\u5217\u65f6\u6548\u7387\u9ad8\uff0c\u56e0\u4e3a\u8fd9\u4e9b\u5217\u90fd\u662f\u6309\u884c\u5b58\u50a8\u5728\u4e00\u8d77\u7684\uff0c\u4e00\u6b21\u78c1\u76d8\u64cd\u4f5c\u5c31\u80fd\u591f\u628a\u4e00\u884c\u6570\u636e\u4e2d\u7684\u5404\u4e2a\u5217\u90fd\u8bfb\u53d6\u5230\u5185\u5b58\u4e2d\u3002"),(0,o.yg)("li",{parentName:"ul"},"\u80fd\u591f\u4e00\u6b21\u6027\u5b8c\u6210\u5bf9\u4e00\u884c\u4e2d\u7684\u591a\u4e2a\u5217\u7684\u5199\u64cd\u4f5c\uff0c\u4fdd\u8bc1\u4e86\u9488\u5bf9\u884c\u6570\u636e\u5199\u64cd\u4f5c\u7684\u539f\u5b50\u6027\u548c\u4e00\u81f4\u6027\uff1b\u5426\u5219\u5982\u679c\u91c7\u7528\u5217\u5b58\u50a8\uff0c\u53ef\u80fd\u4f1a\u51fa\u73b0\u67d0\u6b21\u5199\u64cd\u4f5c\uff0c\u6709\u7684\u5217\u6210\u529f\u4e86\uff0c\u6709\u7684\u5217\u5931\u8d25\u4e86\uff0c\u5bfc\u81f4\u6570\u636e\u4e0d\u4e00\u81f4\u3002")),(0,o.yg)("p",null,"\u6211\u4eec\u53ef\u4ee5\u770b\u5230\uff0c\u884c\u5f0f\u5b58\u50a8\u7684\u4f18\u52bf\u662f\u5728\u7279\u5b9a\u7684\u4e1a\u52a1\u573a\u666f\u4e0b\u624d\u80fd\u4f53\u73b0\uff0c\u5982\u679c\u4e0d\u5b58\u5728\u8fd9\u6837\u7684\u4e1a\u52a1\u573a\u666f\uff0c\u90a3\u4e48\u884c\u5f0f\u5b58\u50a8\u7684\u4f18\u52bf\u4e5f\u5c06\u4e0d\u590d\u5b58\u5728\uff0c\u751a\u81f3\u6210\u4e3a\u52a3\u52bf\uff0c\u5178\u578b\u7684\u573a\u666f\u5c31\u662f\u6d77\u91cf\u6570\u636e\u8fdb\u884c\u7edf\u8ba1\u3002\u4f8b\u5982\uff0c\u8ba1\u7b97\u67d0\u4e2a\u57ce\u5e02\u4f53\u91cd\u8d85\u91cd\u7684\u4eba\u5458\u6570\u636e\uff0c\u5b9e\u9645\u4e0a\u53ea\u9700\u8981\u8bfb\u53d6\u6bcf\u4e2a\u4eba\u7684\u4f53\u91cd\u8fd9\u4e00\u5217\u5e76\u8fdb\u884c\u7edf\u8ba1\u5373\u53ef\uff0c\u800c\u884c\u5f0f\u5b58\u50a8\u5373\u4f7f\u6700\u7ec8\u53ea\u4f7f\u7528\u4e00\u5217\uff0c\u4e5f\u4f1a\u5c06\u6240\u6709\u884c\u6570\u636e\u90fd\u8bfb\u53d6\u51fa\u6765\u3002\u5982\u679c\u5355\u884c\u7528\u6237\u4fe1\u606f\u6709 1KB\uff0c\u5176\u4e2d\u4f53\u91cd\u53ea\u6709 4 \u4e2a\u5b57\u8282\uff0c\u884c\u5f0f\u5b58\u50a8\u8fd8\u662f\u4f1a\u5c06\u6574\u884c 1KB \u6570\u636e\u5168\u90e8\u8bfb\u53d6\u5230\u5185\u5b58\u4e2d\uff0c\u8fd9\u662f\u660e\u663e\u7684\u6d6a\u8d39\u3002\u800c\u5982\u679c\u91c7\u7528\u5217\u5f0f\u5b58\u50a8\uff0c\u6bcf\u4e2a\u7528\u6237\u53ea\u9700\u8981\u8bfb\u53d6 4 \u5b57\u8282\u7684\u4f53\u91cd\u6570\u636e\u5373\u53ef\uff0cI/O \u5c06\u5927\u5927\u51cf\u5c11\u3002"),(0,o.yg)("p",null,"\u9664\u4e86\u8282\u7701 I/O\uff0c\u5217\u5f0f\u5b58\u50a8\u8fd8\u5177\u5907\u66f4\u9ad8\u7684\u5b58\u50a8\u538b\u7f29\u6bd4\uff0c\u80fd\u591f\u8282\u7701\u66f4\u591a\u7684\u5b58\u50a8\u7a7a\u95f4\u3002\u666e\u901a\u7684\u884c\u5f0f\u6570\u636e\u5e93\u4e00\u822c\u538b\u7f29\u7387\u5728 3:1 \u5230 5:1 \u5de6\u53f3\uff0c\u800c\u5217\u5f0f\u6570\u636e\u5e93\u7684\u538b\u7f29\u7387\u4e00\u822c\u5728 8:1 \u5230 30:1 \u5de6\u53f3\uff0c\u56e0\u4e3a\u5355\u4e2a\u5217\u7684\u6570\u636e\u76f8\u4f3c\u5ea6\u76f8\u6bd4\u884c\u6765\u8bf4\u66f4\u9ad8\uff0c\u80fd\u591f\u8fbe\u5230\u66f4\u9ad8\u7684\u538b\u7f29\u7387\u3002"),(0,o.yg)("p",null,"\u540c\u6837\uff0c\u5982\u679c\u573a\u666f\u53d1\u751f\u53d8\u5316\uff0c\u5217\u5f0f\u5b58\u50a8\u7684\u4f18\u52bf\u53c8\u4f1a\u53d8\u6210\u52a3\u52bf\u3002\u5178\u578b\u7684\u573a\u666f\u662f\u9700\u8981\u9891\u7e41\u5730\u66f4\u65b0\u591a\u4e2a\u5217\u3002\u56e0\u4e3a\u5217\u5f0f\u5b58\u50a8\u5c06\u4e0d\u540c\u5217\u5b58\u50a8\u5728\u78c1\u76d8\u4e0a\u4e0d\u8fde\u7eed\u7684\u7a7a\u95f4\uff0c\u5bfc\u81f4\u66f4\u65b0\u591a\u4e2a\u5217\u65f6\u78c1\u76d8\u662f\u968f\u673a\u5199\u64cd\u4f5c\uff1b\u800c\u884c\u5f0f\u5b58\u50a8\u65f6\u540c\u4e00\u884c\u591a\u4e2a\u5217\u90fd\u5b58\u50a8\u5728\u8fde\u7eed\u7684\u7a7a\u95f4\uff0c\u4e00\u6b21\u78c1\u76d8\u5199\u64cd\u4f5c\u5c31\u53ef\u4ee5\u5b8c\u6210\uff0c\u5217\u5f0f\u5b58\u50a8\u7684\u968f\u673a\u5199\u6548\u7387\u8981\u8fdc\u8fdc\u4f4e\u4e8e\u884c\u5f0f\u5b58\u50a8\u7684\u5199\u6548\u7387\u3002\u6b64\u5916\uff0c\u5217\u5f0f\u5b58\u50a8\u9ad8\u538b\u7f29\u7387\u5728\u66f4\u65b0\u573a\u666f\u4e0b\u4e5f\u4f1a\u6210\u4e3a\u52a3\u52bf\uff0c\u56e0\u4e3a\u66f4\u65b0\u65f6\u9700\u8981\u5c06\u5b58\u50a8\u6570\u636e\u89e3\u538b\u540e\u66f4\u65b0\uff0c\u7136\u540e\u518d\u538b\u7f29\uff0c\u6700\u540e\u5199\u5165\u78c1\u76d8\u3002"),(0,o.yg)("p",null,"\u57fa\u4e8e\u4e0a\u8ff0\u5217\u5f0f\u5b58\u50a8\u7684\u4f18\u7f3a\u70b9\uff0c\u4e00\u822c\u5c06\u5217\u5f0f\u5b58\u50a8\u5e94\u7528\u5728\u79bb\u7ebf\u7684\u5927\u6570\u636e\u5206\u6790\u548c\u7edf\u8ba1\u573a\u666f\u4e2d\uff0c\u56e0\u4e3a\u8fd9\u79cd\u573a\u666f\u4e3b\u8981\u662f\u9488\u5bf9\u90e8\u5206\u5217\u5355\u5217\u8fdb\u884c\u64cd\u4f5c\uff0c\u4e14\u6570\u636e\u5199\u5165\u540e\u5c31\u65e0\u987b\u518d\u66f4\u65b0\u5220\u9664\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8922],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var i=n.createContext({}),u=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(i.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),s=u(r),y=o,f=s["".concat(i,".").concat(y)]||s[y]||d[y]||a;return r?n.createElement(f,l(l({ref:t},p),{},{components:r})):n.createElement(f,l({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=y;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[s]="string"==typeof e?e:o,l[1]=c;for(var u=2;u{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={},l=void 0,c={unversionedId:"study/db/NoSQL/Hbase",id:"study/db/NoSQL/Hbase",title:"Hbase",description:"\u5217\u5f0f\u6570\u636e\u5e93",source:"@site/docs/study/db/NoSQL/Hbase.md",sourceDirName:"study/db/NoSQL",slug:"/study/db/NoSQL/Hbase",permalink:"/docs/study/db/NoSQL/Hbase",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Hadoop",permalink:"/docs/study/db/NoSQL/Hadoop"},next:{title:"Ignite",permalink:"/docs/study/db/NoSQL/Ignite"}},i={},u=[{value:"\u5217\u5f0f\u6570\u636e\u5e93",id:"\u5217\u5f0f\u6570\u636e\u5e93",level:3}],p={toc:u},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u5217\u5f0f\u6570\u636e\u5e93"},"\u5217\u5f0f\u6570\u636e\u5e93"),(0,o.yg)("p",null,"\u987e\u540d\u601d\u4e49\uff0c\u5217\u5f0f\u6570\u636e\u5e93\u5c31\u662f\u6309\u7167\u5217\u6765\u5b58\u50a8\u6570\u636e\u7684\u6570\u636e\u5e93\uff0c\u4e0e\u4e4b\u5bf9\u5e94\u7684\u4f20\u7edf\u5173\u7cfb\u6570\u636e\u5e93\u88ab\u79f0\u4e3a\u201c\u884c\u5f0f\u6570\u636e\u5e93\u201d\uff0c\u56e0\u4e3a\u5173\u7cfb\u6570\u636e\u5e93\u662f\u6309\u7167\u884c\u6765\u5b58\u50a8\u6570\u636e\u7684\u3002"),(0,o.yg)("p",null,"\u5173\u7cfb\u6570\u636e\u5e93\u6309\u7167\u884c\u5f0f\u6765\u5b58\u50a8\u6570\u636e\uff0c\u4e3b\u8981\u6709\u4ee5\u4e0b\u51e0\u4e2a\u4f18\u52bf\uff1a"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"\u4e1a\u52a1\u540c\u65f6\u8bfb\u53d6\u591a\u4e2a\u5217\u65f6\u6548\u7387\u9ad8\uff0c\u56e0\u4e3a\u8fd9\u4e9b\u5217\u90fd\u662f\u6309\u884c\u5b58\u50a8\u5728\u4e00\u8d77\u7684\uff0c\u4e00\u6b21\u78c1\u76d8\u64cd\u4f5c\u5c31\u80fd\u591f\u628a\u4e00\u884c\u6570\u636e\u4e2d\u7684\u5404\u4e2a\u5217\u90fd\u8bfb\u53d6\u5230\u5185\u5b58\u4e2d\u3002"),(0,o.yg)("li",{parentName:"ul"},"\u80fd\u591f\u4e00\u6b21\u6027\u5b8c\u6210\u5bf9\u4e00\u884c\u4e2d\u7684\u591a\u4e2a\u5217\u7684\u5199\u64cd\u4f5c\uff0c\u4fdd\u8bc1\u4e86\u9488\u5bf9\u884c\u6570\u636e\u5199\u64cd\u4f5c\u7684\u539f\u5b50\u6027\u548c\u4e00\u81f4\u6027\uff1b\u5426\u5219\u5982\u679c\u91c7\u7528\u5217\u5b58\u50a8\uff0c\u53ef\u80fd\u4f1a\u51fa\u73b0\u67d0\u6b21\u5199\u64cd\u4f5c\uff0c\u6709\u7684\u5217\u6210\u529f\u4e86\uff0c\u6709\u7684\u5217\u5931\u8d25\u4e86\uff0c\u5bfc\u81f4\u6570\u636e\u4e0d\u4e00\u81f4\u3002")),(0,o.yg)("p",null,"\u6211\u4eec\u53ef\u4ee5\u770b\u5230\uff0c\u884c\u5f0f\u5b58\u50a8\u7684\u4f18\u52bf\u662f\u5728\u7279\u5b9a\u7684\u4e1a\u52a1\u573a\u666f\u4e0b\u624d\u80fd\u4f53\u73b0\uff0c\u5982\u679c\u4e0d\u5b58\u5728\u8fd9\u6837\u7684\u4e1a\u52a1\u573a\u666f\uff0c\u90a3\u4e48\u884c\u5f0f\u5b58\u50a8\u7684\u4f18\u52bf\u4e5f\u5c06\u4e0d\u590d\u5b58\u5728\uff0c\u751a\u81f3\u6210\u4e3a\u52a3\u52bf\uff0c\u5178\u578b\u7684\u573a\u666f\u5c31\u662f\u6d77\u91cf\u6570\u636e\u8fdb\u884c\u7edf\u8ba1\u3002\u4f8b\u5982\uff0c\u8ba1\u7b97\u67d0\u4e2a\u57ce\u5e02\u4f53\u91cd\u8d85\u91cd\u7684\u4eba\u5458\u6570\u636e\uff0c\u5b9e\u9645\u4e0a\u53ea\u9700\u8981\u8bfb\u53d6\u6bcf\u4e2a\u4eba\u7684\u4f53\u91cd\u8fd9\u4e00\u5217\u5e76\u8fdb\u884c\u7edf\u8ba1\u5373\u53ef\uff0c\u800c\u884c\u5f0f\u5b58\u50a8\u5373\u4f7f\u6700\u7ec8\u53ea\u4f7f\u7528\u4e00\u5217\uff0c\u4e5f\u4f1a\u5c06\u6240\u6709\u884c\u6570\u636e\u90fd\u8bfb\u53d6\u51fa\u6765\u3002\u5982\u679c\u5355\u884c\u7528\u6237\u4fe1\u606f\u6709 1KB\uff0c\u5176\u4e2d\u4f53\u91cd\u53ea\u6709 4 \u4e2a\u5b57\u8282\uff0c\u884c\u5f0f\u5b58\u50a8\u8fd8\u662f\u4f1a\u5c06\u6574\u884c 1KB \u6570\u636e\u5168\u90e8\u8bfb\u53d6\u5230\u5185\u5b58\u4e2d\uff0c\u8fd9\u662f\u660e\u663e\u7684\u6d6a\u8d39\u3002\u800c\u5982\u679c\u91c7\u7528\u5217\u5f0f\u5b58\u50a8\uff0c\u6bcf\u4e2a\u7528\u6237\u53ea\u9700\u8981\u8bfb\u53d6 4 \u5b57\u8282\u7684\u4f53\u91cd\u6570\u636e\u5373\u53ef\uff0cI/O \u5c06\u5927\u5927\u51cf\u5c11\u3002"),(0,o.yg)("p",null,"\u9664\u4e86\u8282\u7701 I/O\uff0c\u5217\u5f0f\u5b58\u50a8\u8fd8\u5177\u5907\u66f4\u9ad8\u7684\u5b58\u50a8\u538b\u7f29\u6bd4\uff0c\u80fd\u591f\u8282\u7701\u66f4\u591a\u7684\u5b58\u50a8\u7a7a\u95f4\u3002\u666e\u901a\u7684\u884c\u5f0f\u6570\u636e\u5e93\u4e00\u822c\u538b\u7f29\u7387\u5728 3:1 \u5230 5:1 \u5de6\u53f3\uff0c\u800c\u5217\u5f0f\u6570\u636e\u5e93\u7684\u538b\u7f29\u7387\u4e00\u822c\u5728 8:1 \u5230 30:1 \u5de6\u53f3\uff0c\u56e0\u4e3a\u5355\u4e2a\u5217\u7684\u6570\u636e\u76f8\u4f3c\u5ea6\u76f8\u6bd4\u884c\u6765\u8bf4\u66f4\u9ad8\uff0c\u80fd\u591f\u8fbe\u5230\u66f4\u9ad8\u7684\u538b\u7f29\u7387\u3002"),(0,o.yg)("p",null,"\u540c\u6837\uff0c\u5982\u679c\u573a\u666f\u53d1\u751f\u53d8\u5316\uff0c\u5217\u5f0f\u5b58\u50a8\u7684\u4f18\u52bf\u53c8\u4f1a\u53d8\u6210\u52a3\u52bf\u3002\u5178\u578b\u7684\u573a\u666f\u662f\u9700\u8981\u9891\u7e41\u5730\u66f4\u65b0\u591a\u4e2a\u5217\u3002\u56e0\u4e3a\u5217\u5f0f\u5b58\u50a8\u5c06\u4e0d\u540c\u5217\u5b58\u50a8\u5728\u78c1\u76d8\u4e0a\u4e0d\u8fde\u7eed\u7684\u7a7a\u95f4\uff0c\u5bfc\u81f4\u66f4\u65b0\u591a\u4e2a\u5217\u65f6\u78c1\u76d8\u662f\u968f\u673a\u5199\u64cd\u4f5c\uff1b\u800c\u884c\u5f0f\u5b58\u50a8\u65f6\u540c\u4e00\u884c\u591a\u4e2a\u5217\u90fd\u5b58\u50a8\u5728\u8fde\u7eed\u7684\u7a7a\u95f4\uff0c\u4e00\u6b21\u78c1\u76d8\u5199\u64cd\u4f5c\u5c31\u53ef\u4ee5\u5b8c\u6210\uff0c\u5217\u5f0f\u5b58\u50a8\u7684\u968f\u673a\u5199\u6548\u7387\u8981\u8fdc\u8fdc\u4f4e\u4e8e\u884c\u5f0f\u5b58\u50a8\u7684\u5199\u6548\u7387\u3002\u6b64\u5916\uff0c\u5217\u5f0f\u5b58\u50a8\u9ad8\u538b\u7f29\u7387\u5728\u66f4\u65b0\u573a\u666f\u4e0b\u4e5f\u4f1a\u6210\u4e3a\u52a3\u52bf\uff0c\u56e0\u4e3a\u66f4\u65b0\u65f6\u9700\u8981\u5c06\u5b58\u50a8\u6570\u636e\u89e3\u538b\u540e\u66f4\u65b0\uff0c\u7136\u540e\u518d\u538b\u7f29\uff0c\u6700\u540e\u5199\u5165\u78c1\u76d8\u3002"),(0,o.yg)("p",null,"\u57fa\u4e8e\u4e0a\u8ff0\u5217\u5f0f\u5b58\u50a8\u7684\u4f18\u7f3a\u70b9\uff0c\u4e00\u822c\u5c06\u5217\u5f0f\u5b58\u50a8\u5e94\u7528\u5728\u79bb\u7ebf\u7684\u5927\u6570\u636e\u5206\u6790\u548c\u7edf\u8ba1\u573a\u666f\u4e2d\uff0c\u56e0\u4e3a\u8fd9\u79cd\u573a\u666f\u4e3b\u8981\u662f\u9488\u5bf9\u90e8\u5206\u5217\u5355\u5217\u8fdb\u884c\u64cd\u4f5c\uff0c\u4e14\u6570\u636e\u5199\u5165\u540e\u5c31\u65e0\u987b\u518d\u66f4\u65b0\u5220\u9664\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/aae926f6.c4a0ded7.js b/assets/js/aae926f6.0107ebee.js similarity index 99% rename from assets/js/aae926f6.c4a0ded7.js rename to assets/js/aae926f6.0107ebee.js index c25b3adfc..16e1a5c1e 100644 --- a/assets/js/aae926f6.c4a0ded7.js +++ b/assets/js/aae926f6.0107ebee.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1995],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>T});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function S(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),i=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):S(S({},t),e)),r},p=function(e){var t=i(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},s=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),u=i(r),s=o,T=u["".concat(l,".").concat(s)]||u[s]||y[s]||a;return r?n.createElement(T,S(S({ref:t},p),{},{components:r})):n.createElement(T,S({ref:t},p))}));function T(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,S=new Array(a);S[0]=s;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[u]="string"==typeof e?e:o,S[1]=c;for(var i=2;i{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>S,default:()=>y,frontMatter:()=>a,metadata:()=>c,toc:()=>i});var n=r(8168),o=(r(6540),r(5680));const a={},S="SSL TLS HTTPS",c={unversionedId:"study/encryption/SSL_TLS",id:"study/encryption/SSL_TLS",title:"SSL TLS HTTPS",description:"\u4e3a\u4e86\u4fdd\u8bc1\u7f51\u7edc\u901a\u4fe1\u7684\u5b89\u5168\u6027\uff0c\u9700\u8981\u5bf9\u7f51\u7edc\u4e0a\u4f20\u9012\u7684\u6570\u636e\u8fdb\u884c\u52a0\u5bc6\u3002\u73b0\u5728\u4e3b\u6d41\u7684\u52a0\u5bc6\u65b9\u6cd5\u5c31\u662f SSL (Secure Socket Layer)\uff0cTLS (Transport Layer Security)\u3002\u540e\u8005\u6bd4\u524d\u8005\u8981\u65b0\u4e00\u4e9b\uff0c\u4e0d\u8fc7\u5728\u5f88\u591a\u573a\u5408\u8fd8\u662f\u7528 SSL \u6307\u4ee3 SSL \u548c TLS\u3002",source:"@site/docs/study/encryption/SSL_TLS.md",sourceDirName:"study/encryption",slug:"/study/encryption/SSL_TLS",permalink:"/docs/study/encryption/SSL_TLS",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"PKI",permalink:"/docs/study/encryption/PKI"},next:{title:"\u52a0\u89e3\u5bc6",permalink:"/docs/study/encryption/"}},l={},i=[{value:"SSL/TLS",id:"ssltls",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],p={toc:i},u="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"ssl-tls-https"},"SSL TLS HTTPS"),(0,o.yg)("p",null,"\u4e3a\u4e86\u4fdd\u8bc1\u7f51\u7edc\u901a\u4fe1\u7684\u5b89\u5168\u6027\uff0c\u9700\u8981\u5bf9\u7f51\u7edc\u4e0a\u4f20\u9012\u7684\u6570\u636e\u8fdb\u884c\u52a0\u5bc6\u3002\u73b0\u5728\u4e3b\u6d41\u7684\u52a0\u5bc6\u65b9\u6cd5\u5c31\u662f SSL (Secure Socket Layer)\uff0cTLS (Transport Layer Security)\u3002\u540e\u8005\u6bd4\u524d\u8005\u8981\u65b0\u4e00\u4e9b\uff0c\u4e0d\u8fc7\u5728\u5f88\u591a\u573a\u5408\u8fd8\u662f\u7528 SSL \u6307\u4ee3 SSL \u548c TLS\u3002"),(0,o.yg)("h3",{id:"ssltls"},"SSL/TLS"),(0,o.yg)("p",null,"SSL\uff08Secure Socket Layer\uff09\u662f\u6307\u5b89\u5168\u5957\u63a5\u5b57\u5c42\uff0c\u7b80\u800c\u8a00\u4e4b\uff0c\u5b83\u662f\u4e00\u9879\u6807\u51c6\u6280\u672f\uff0c\u53ef\u786e\u4fdd\u4e92\u8054\u7f51\u8fde\u63a5\u5b89\u5168\uff0c\u4fdd\u62a4\u4e24\u4e2a\u7cfb\u7edf\u4e4b\u95f4\u53d1\u9001\u7684\u4efb\u4f55\u654f\u611f\u6570\u636e\uff0c\u9632\u6b62\u7f51\u7edc\u72af\u7f6a\u5206\u5b50\u8bfb\u53d6\u548c\u4fee\u6539\u4efb\u4f55\u4f20\u8f93\u4fe1\u606f\uff0c\u5305\u62ec\u4e2a\u4eba\u8d44\u6599\u3002TLS\uff08Transport Layer Security\uff0c\u4f20\u8f93\u5c42\u5b89\u5168\uff09\u662f\u66f4\u4e3a\u5b89\u5168\u7684\u5347\u7ea7\u7248 SSL\u3002"),(0,o.yg)("p",null,"TLS 1.0 \u7248\u5b9e\u9645\u4e0a\u6700\u521d\u4f5c\u4e3a SSL 3.1 \u7248\u5f00\u53d1\uff0cHTTPS \u662f\u5728 HTTP \u534f\u8bae\u57fa\u7840\u4e0a\u5b9e\u65bd TLS \u52a0\u5bc6\uff0c\u6240\u6709\u7f51\u7ad9\u4ee5\u53ca\u5176\u4ed6\u90e8\u5206 web \u670d\u52a1\u90fd\u4f7f\u7528\u8be5\u534f\u8bae\u3002\u56e0\u6b64\uff0c\u4efb\u4f55\u4f7f\u7528 HTTPS \u7684\u7f51\u7ad9\u90fd\u4f7f\u7528 TLS \u52a0\u5bc6\u3002\u4e0d\u540c\u7248\u672c\u7684 TLS \u534f\u8bae\u5185\u5bb9\u7ea6\u5b9a\u4e0d\u4e00\u6837\uff0c\u8fd9\u4e5f\u4f1a\u7ed9 HTTPS \u5efa\u7acb\u8fde\u63a5\u65f6\u9700\u8981\u63e1\u624b\u534f\u5546\u7684\u4fe1\u606f\u9020\u6210\u5dee\u5f02\u3002"),(0,o.yg)("p",null,"TLS \u5df2\u7ecf\u5b8c\u5168\u7684\u4ee3\u66ff\u6389 SSL \u4e86\uff0c\u6240\u4ee5\u53ea\u63a8\u8350 TLS\uff1b\u76ee\u524d\u7684 SSL \u8bc1\u4e66\u8bb8\u53ef\uff0c\u4e0b\u53d1\u7684\u5176\u5b9e\u90fd\u662f SSL/TLS \u8bc1\u4e66\u3002"),(0,o.yg)("p",null,"HTTP \u662f\u8d85\u6587\u672c\u4f20\u8f93\u534f\u8bae\uff0c\u4fe1\u606f\u662f\u660e\u6587\u4f20\u8f93\uff1bHTTPS\uff0c\u4e5f\u79f0\u4f5c HTTP over TLS\uff0c\u5219\u662f\u5177\u6709\u5b89\u5168\u6027\u7684 SSL \u52a0\u5bc6\u4f20\u8f93\u534f\u8bae\u3002"),(0,o.yg)("p",null,"HTTPS \u534f\u8bae\u9700\u8981\u5230\u8bc1\u4e66\u9881\u53d1\u673a\u6784 (Certificate Authority\uff0c\u7b80\u79f0 CA)\u7533\u8bf7\u8bc1\u4e66\uff0c\u901a\u8fc7\u6570\u5b57\u8bc1\u4e66\u7ba1\u7406\u670d\u52a1\u5b8c\u6210\u8bc1\u4e66\u8d2d\u4e70\u3001\u7533\u8bf7\uff0c\u5e76\u5c06\u8bc1\u4e66\u90e8\u7f72\u5230\u60a8\u7684 Web \u670d\u52a1\u5668\u540e\uff0cWeb \u670d\u52a1\u5c06\u4f1a\u901a\u8fc7 HTTPS \u52a0\u5bc6\u534f\u8bae\u6765\u4f20\u8f93\u6570\u636e\u3002"),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/36981565"},"\u6d45\u8c08 SSL/TLS \u5de5\u4f5c\u539f\u7406")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/416587205"},"SSL/TLS \u4e0e IPSec \u5bf9\u6bd4"))))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1995],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>T});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function S(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),i=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):S(S({},t),e)),r},p=function(e){var t=i(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},s=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),u=i(r),s=o,T=u["".concat(l,".").concat(s)]||u[s]||y[s]||a;return r?n.createElement(T,S(S({ref:t},p),{},{components:r})):n.createElement(T,S({ref:t},p))}));function T(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,S=new Array(a);S[0]=s;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[u]="string"==typeof e?e:o,S[1]=c;for(var i=2;i{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>S,default:()=>y,frontMatter:()=>a,metadata:()=>c,toc:()=>i});var n=r(8168),o=(r(6540),r(5680));const a={},S="SSL TLS HTTPS",c={unversionedId:"study/encryption/SSL_TLS",id:"study/encryption/SSL_TLS",title:"SSL TLS HTTPS",description:"\u4e3a\u4e86\u4fdd\u8bc1\u7f51\u7edc\u901a\u4fe1\u7684\u5b89\u5168\u6027\uff0c\u9700\u8981\u5bf9\u7f51\u7edc\u4e0a\u4f20\u9012\u7684\u6570\u636e\u8fdb\u884c\u52a0\u5bc6\u3002\u73b0\u5728\u4e3b\u6d41\u7684\u52a0\u5bc6\u65b9\u6cd5\u5c31\u662f SSL (Secure Socket Layer)\uff0cTLS (Transport Layer Security)\u3002\u540e\u8005\u6bd4\u524d\u8005\u8981\u65b0\u4e00\u4e9b\uff0c\u4e0d\u8fc7\u5728\u5f88\u591a\u573a\u5408\u8fd8\u662f\u7528 SSL \u6307\u4ee3 SSL \u548c TLS\u3002",source:"@site/docs/study/encryption/SSL_TLS.md",sourceDirName:"study/encryption",slug:"/study/encryption/SSL_TLS",permalink:"/docs/study/encryption/SSL_TLS",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"PKI",permalink:"/docs/study/encryption/PKI"},next:{title:"\u52a0\u89e3\u5bc6",permalink:"/docs/study/encryption/"}},l={},i=[{value:"SSL/TLS",id:"ssltls",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],p={toc:i},u="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"ssl-tls-https"},"SSL TLS HTTPS"),(0,o.yg)("p",null,"\u4e3a\u4e86\u4fdd\u8bc1\u7f51\u7edc\u901a\u4fe1\u7684\u5b89\u5168\u6027\uff0c\u9700\u8981\u5bf9\u7f51\u7edc\u4e0a\u4f20\u9012\u7684\u6570\u636e\u8fdb\u884c\u52a0\u5bc6\u3002\u73b0\u5728\u4e3b\u6d41\u7684\u52a0\u5bc6\u65b9\u6cd5\u5c31\u662f SSL (Secure Socket Layer)\uff0cTLS (Transport Layer Security)\u3002\u540e\u8005\u6bd4\u524d\u8005\u8981\u65b0\u4e00\u4e9b\uff0c\u4e0d\u8fc7\u5728\u5f88\u591a\u573a\u5408\u8fd8\u662f\u7528 SSL \u6307\u4ee3 SSL \u548c TLS\u3002"),(0,o.yg)("h3",{id:"ssltls"},"SSL/TLS"),(0,o.yg)("p",null,"SSL\uff08Secure Socket Layer\uff09\u662f\u6307\u5b89\u5168\u5957\u63a5\u5b57\u5c42\uff0c\u7b80\u800c\u8a00\u4e4b\uff0c\u5b83\u662f\u4e00\u9879\u6807\u51c6\u6280\u672f\uff0c\u53ef\u786e\u4fdd\u4e92\u8054\u7f51\u8fde\u63a5\u5b89\u5168\uff0c\u4fdd\u62a4\u4e24\u4e2a\u7cfb\u7edf\u4e4b\u95f4\u53d1\u9001\u7684\u4efb\u4f55\u654f\u611f\u6570\u636e\uff0c\u9632\u6b62\u7f51\u7edc\u72af\u7f6a\u5206\u5b50\u8bfb\u53d6\u548c\u4fee\u6539\u4efb\u4f55\u4f20\u8f93\u4fe1\u606f\uff0c\u5305\u62ec\u4e2a\u4eba\u8d44\u6599\u3002TLS\uff08Transport Layer Security\uff0c\u4f20\u8f93\u5c42\u5b89\u5168\uff09\u662f\u66f4\u4e3a\u5b89\u5168\u7684\u5347\u7ea7\u7248 SSL\u3002"),(0,o.yg)("p",null,"TLS 1.0 \u7248\u5b9e\u9645\u4e0a\u6700\u521d\u4f5c\u4e3a SSL 3.1 \u7248\u5f00\u53d1\uff0cHTTPS \u662f\u5728 HTTP \u534f\u8bae\u57fa\u7840\u4e0a\u5b9e\u65bd TLS \u52a0\u5bc6\uff0c\u6240\u6709\u7f51\u7ad9\u4ee5\u53ca\u5176\u4ed6\u90e8\u5206 web \u670d\u52a1\u90fd\u4f7f\u7528\u8be5\u534f\u8bae\u3002\u56e0\u6b64\uff0c\u4efb\u4f55\u4f7f\u7528 HTTPS \u7684\u7f51\u7ad9\u90fd\u4f7f\u7528 TLS \u52a0\u5bc6\u3002\u4e0d\u540c\u7248\u672c\u7684 TLS \u534f\u8bae\u5185\u5bb9\u7ea6\u5b9a\u4e0d\u4e00\u6837\uff0c\u8fd9\u4e5f\u4f1a\u7ed9 HTTPS \u5efa\u7acb\u8fde\u63a5\u65f6\u9700\u8981\u63e1\u624b\u534f\u5546\u7684\u4fe1\u606f\u9020\u6210\u5dee\u5f02\u3002"),(0,o.yg)("p",null,"TLS \u5df2\u7ecf\u5b8c\u5168\u7684\u4ee3\u66ff\u6389 SSL \u4e86\uff0c\u6240\u4ee5\u53ea\u63a8\u8350 TLS\uff1b\u76ee\u524d\u7684 SSL \u8bc1\u4e66\u8bb8\u53ef\uff0c\u4e0b\u53d1\u7684\u5176\u5b9e\u90fd\u662f SSL/TLS \u8bc1\u4e66\u3002"),(0,o.yg)("p",null,"HTTP \u662f\u8d85\u6587\u672c\u4f20\u8f93\u534f\u8bae\uff0c\u4fe1\u606f\u662f\u660e\u6587\u4f20\u8f93\uff1bHTTPS\uff0c\u4e5f\u79f0\u4f5c HTTP over TLS\uff0c\u5219\u662f\u5177\u6709\u5b89\u5168\u6027\u7684 SSL \u52a0\u5bc6\u4f20\u8f93\u534f\u8bae\u3002"),(0,o.yg)("p",null,"HTTPS \u534f\u8bae\u9700\u8981\u5230\u8bc1\u4e66\u9881\u53d1\u673a\u6784 (Certificate Authority\uff0c\u7b80\u79f0 CA)\u7533\u8bf7\u8bc1\u4e66\uff0c\u901a\u8fc7\u6570\u5b57\u8bc1\u4e66\u7ba1\u7406\u670d\u52a1\u5b8c\u6210\u8bc1\u4e66\u8d2d\u4e70\u3001\u7533\u8bf7\uff0c\u5e76\u5c06\u8bc1\u4e66\u90e8\u7f72\u5230\u60a8\u7684 Web \u670d\u52a1\u5668\u540e\uff0cWeb \u670d\u52a1\u5c06\u4f1a\u901a\u8fc7 HTTPS \u52a0\u5bc6\u534f\u8bae\u6765\u4f20\u8f93\u6570\u636e\u3002"),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/36981565"},"\u6d45\u8c08 SSL/TLS \u5de5\u4f5c\u539f\u7406")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/416587205"},"SSL/TLS \u4e0e IPSec \u5bf9\u6bd4"))))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ac6e53b7.015f41fe.js b/assets/js/ac6e53b7.06984711.js similarity index 98% rename from assets/js/ac6e53b7.015f41fe.js rename to assets/js/ac6e53b7.06984711.js index ded1c612e..a96b41d0e 100644 --- a/assets/js/ac6e53b7.015f41fe.js +++ b/assets/js/ac6e53b7.06984711.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2961],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>m});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),u=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(c.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),s=u(r),d=a,m=s["".concat(c,".").concat(d)]||s[d]||y[d]||o;return r?n.createElement(m,l(l({ref:t},p),{},{components:r})):n.createElement(m,l({ref:t},p))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=d;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[s]="string"==typeof e?e:a,l[1]=i;for(var u=2;u{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>y,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var n=r(8168),a=(r(6540),r(5680));const o={},l=void 0,i={unversionedId:"study/program/\u7f16\u8bd1\u5668",id:"study/program/\u7f16\u8bd1\u5668",title:"\u7f16\u8bd1\u5668",description:"C/C++/Objective-C \u7b49\u7c7b C \u7f16\u8bd1\u5668",source:"@site/docs/study/program/\u7f16\u8bd1\u5668.md",sourceDirName:"study/program",slug:"/study/program/\u7f16\u8bd1\u5668",permalink:"/docs/study/program/\u7f16\u8bd1\u5668",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u6280\u672f\u6587\u6863",permalink:"/docs/study/program/\u6280\u672f\u6587\u6863"},next:{title:"\u8de8\u5e73\u53f0\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u6846\u67b6",permalink:"/docs/study/program/\u8de8\u5e73\u53f0\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u6846\u67b6"}},c={},u=[{value:"C/C++/Objective-C \u7b49\u7c7b C \u7f16\u8bd1\u5668",id:"ccobjective-c-\u7b49\u7c7b-c-\u7f16\u8bd1\u5668",level:3},{value:"\u7f16\u8bd1\u8fc7\u7a0b",id:"\u7f16\u8bd1\u8fc7\u7a0b",level:3}],p={toc:u},s="wrapper";function y(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"ccobjective-c-\u7b49\u7c7b-c-\u7f16\u8bd1\u5668"},"C/C++/Objective-C \u7b49\u7c7b C \u7f16\u8bd1\u5668"),(0,a.yg)("p",null,"\u4e3b\u8981\u5206\u4e09\u79cd\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"GCC/GNU/Linux"),(0,a.yg)("li",{parentName:"ul"},"LLVM/CLang"),(0,a.yg)("li",{parentName:"ul"},"Microsoft Visual C++\uff0c\u7b80\u79f0 Visual C++/VC++/MSVC/VS/VC\uff0c\u5f00\u53d1\u73af\u5883 Visual Studio")),(0,a.yg)("p",null,"GCC \u662f\u8001\u724c\u7684 C/C++\u7f16\u8bd1\u5668\uff0c\u4e3b\u8981\u7531 GNU \u7ef4\u62a4\uff0cLinux \u7cfb\u7edf\u9ed8\u8ba4\u7684\u7f16\u8bd1\u5668\u3002"),(0,a.yg)("p",null,"LLVM \u662f\u6bd4\u8f83\u65b0\u7684\u7f16\u8bd1\u5668\u67b6\u6784\u7cfb\u7edf\uff0cCLang \u662f\u57fa\u4e8e LLVM \u7684 C/C++/CLang \u7f16\u8bd1\u5668\uff0c\u4ea7\u751f CLang \u7684\u539f\u56e0\u662f Apple \u516c\u53f8\u60f3\u5f00\u53d1\u65b0\u7684\u8bed\u8a00 CLang\uff0c\u4ee5\u53ca\u5bf9 GCC \u6709\u5176\u4ed6\u7279\u6b8a\u9700\u6c42\uff0c\u4f46\u662f GCC \u914d\u5408\u7684\u5e76\u4e0d\u662f\u5f88\u597d\uff0c\u6240\u4ee5\u624d\u9020\u4e86\u4e2a\u65b0\u8f6e\u5b50\u3002"),(0,a.yg)("p",null,"Microsoft Visual C++\u662f Windows \u7cfb\u7edf\u7684\u7f16\u8bd1\u5668\u3002"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/88255667"},"C/C++\u7f16\u8bd1\u94fe\u63a5"))),(0,a.yg)("h3",{id:"\u7f16\u8bd1\u8fc7\u7a0b"},"\u7f16\u8bd1\u8fc7\u7a0b"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u6e90\u6587\u4ef6\uff08.c .cpp .h\uff09"),(0,a.yg)("li",{parentName:"ul"},"\u9884\u5904\u7406\uff08.i .ii\uff09"),(0,a.yg)("li",{parentName:"ul"},"\u7f16\u8bd1\uff08\u5355\u4e2a\u6587\u4ef6\uff09\uff08.s\uff09"),(0,a.yg)("li",{parentName:"ul"},"\u6c47\u7f16\uff08.o .obj\uff09"),(0,a.yg)("li",{parentName:"ul"},"\u94fe\u63a5\uff08.exe ELF\uff09")))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2961],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>m});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),u=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(c.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),s=u(r),d=a,m=s["".concat(c,".").concat(d)]||s[d]||y[d]||o;return r?n.createElement(m,l(l({ref:t},p),{},{components:r})):n.createElement(m,l({ref:t},p))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=d;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[s]="string"==typeof e?e:a,l[1]=i;for(var u=2;u{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>y,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var n=r(8168),a=(r(6540),r(5680));const o={},l=void 0,i={unversionedId:"study/program/\u7f16\u8bd1\u5668",id:"study/program/\u7f16\u8bd1\u5668",title:"\u7f16\u8bd1\u5668",description:"C/C++/Objective-C \u7b49\u7c7b C \u7f16\u8bd1\u5668",source:"@site/docs/study/program/\u7f16\u8bd1\u5668.md",sourceDirName:"study/program",slug:"/study/program/\u7f16\u8bd1\u5668",permalink:"/docs/study/program/\u7f16\u8bd1\u5668",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u6280\u672f\u6587\u6863",permalink:"/docs/study/program/\u6280\u672f\u6587\u6863"},next:{title:"\u8de8\u5e73\u53f0\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u6846\u67b6",permalink:"/docs/study/program/\u8de8\u5e73\u53f0\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u6846\u67b6"}},c={},u=[{value:"C/C++/Objective-C \u7b49\u7c7b C \u7f16\u8bd1\u5668",id:"ccobjective-c-\u7b49\u7c7b-c-\u7f16\u8bd1\u5668",level:3},{value:"\u7f16\u8bd1\u8fc7\u7a0b",id:"\u7f16\u8bd1\u8fc7\u7a0b",level:3}],p={toc:u},s="wrapper";function y(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"ccobjective-c-\u7b49\u7c7b-c-\u7f16\u8bd1\u5668"},"C/C++/Objective-C \u7b49\u7c7b C \u7f16\u8bd1\u5668"),(0,a.yg)("p",null,"\u4e3b\u8981\u5206\u4e09\u79cd\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"GCC/GNU/Linux"),(0,a.yg)("li",{parentName:"ul"},"LLVM/CLang"),(0,a.yg)("li",{parentName:"ul"},"Microsoft Visual C++\uff0c\u7b80\u79f0 Visual C++/VC++/MSVC/VS/VC\uff0c\u5f00\u53d1\u73af\u5883 Visual Studio")),(0,a.yg)("p",null,"GCC \u662f\u8001\u724c\u7684 C/C++\u7f16\u8bd1\u5668\uff0c\u4e3b\u8981\u7531 GNU \u7ef4\u62a4\uff0cLinux \u7cfb\u7edf\u9ed8\u8ba4\u7684\u7f16\u8bd1\u5668\u3002"),(0,a.yg)("p",null,"LLVM \u662f\u6bd4\u8f83\u65b0\u7684\u7f16\u8bd1\u5668\u67b6\u6784\u7cfb\u7edf\uff0cCLang \u662f\u57fa\u4e8e LLVM \u7684 C/C++/CLang \u7f16\u8bd1\u5668\uff0c\u4ea7\u751f CLang \u7684\u539f\u56e0\u662f Apple \u516c\u53f8\u60f3\u5f00\u53d1\u65b0\u7684\u8bed\u8a00 CLang\uff0c\u4ee5\u53ca\u5bf9 GCC \u6709\u5176\u4ed6\u7279\u6b8a\u9700\u6c42\uff0c\u4f46\u662f GCC \u914d\u5408\u7684\u5e76\u4e0d\u662f\u5f88\u597d\uff0c\u6240\u4ee5\u624d\u9020\u4e86\u4e2a\u65b0\u8f6e\u5b50\u3002"),(0,a.yg)("p",null,"Microsoft Visual C++\u662f Windows \u7cfb\u7edf\u7684\u7f16\u8bd1\u5668\u3002"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/88255667"},"C/C++\u7f16\u8bd1\u94fe\u63a5"))),(0,a.yg)("h3",{id:"\u7f16\u8bd1\u8fc7\u7a0b"},"\u7f16\u8bd1\u8fc7\u7a0b"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u6e90\u6587\u4ef6\uff08.c .cpp .h\uff09"),(0,a.yg)("li",{parentName:"ul"},"\u9884\u5904\u7406\uff08.i .ii\uff09"),(0,a.yg)("li",{parentName:"ul"},"\u7f16\u8bd1\uff08\u5355\u4e2a\u6587\u4ef6\uff09\uff08.s\uff09"),(0,a.yg)("li",{parentName:"ul"},"\u6c47\u7f16\uff08.o .obj\uff09"),(0,a.yg)("li",{parentName:"ul"},"\u94fe\u63a5\uff08.exe ELF\uff09")))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/aef8cf14.3bd4dc09.js b/assets/js/aef8cf14.1b3d1d15.js similarity index 98% rename from assets/js/aef8cf14.3bd4dc09.js rename to assets/js/aef8cf14.1b3d1d15.js index 26a15cc77..05e7d7641 100644 --- a/assets/js/aef8cf14.3bd4dc09.js +++ b/assets/js/aef8cf14.1b3d1d15.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3971],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),l=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,c=e.originalType,p=e.parentName,u=a(e,["components","mdxType","originalType","parentName"]),s=l(r),f=o,y=s["".concat(p,".").concat(f)]||s[f]||d[f]||c;return r?n.createElement(y,i(i({ref:t},u),{},{components:r})):n.createElement(y,i({ref:t},u))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var c=r.length,i=new Array(c);i[0]=f;var a={};for(var p in t)hasOwnProperty.call(t,p)&&(a[p]=t[p]);a.originalType=e,a[s]="string"==typeof e?e:o,i[1]=a;for(var l=2;l{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>d,frontMatter:()=>c,metadata:()=>a,toc:()=>l});var n=r(8168),o=(r(6540),r(5680));const c={sidebar_position:5},i="HTTP \u8bbe\u5907\u63a5\u5165",a={unversionedId:"iotcloud/connect/http",id:"iotcloud/connect/http",title:"HTTP \u8bbe\u5907\u63a5\u5165",description:"",source:"@site/docs/iotcloud/connect/http.md",sourceDirName:"iotcloud/connect",slug:"/iotcloud/connect/http",permalink:"/docs/iotcloud/connect/http",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"iotCloudSidebar",previous:{title:"TCP \u8bbe\u5907\u63a5\u5165",permalink:"/docs/iotcloud/connect/tcp"},next:{title:"\u6982\u8ff0",permalink:"/docs/iotcloud/devicemanager/"}},p={},l=[],u={toc:l},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"http-\u8bbe\u5907\u63a5\u5165"},"HTTP \u8bbe\u5907\u63a5\u5165"))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3971],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),l=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,c=e.originalType,p=e.parentName,u=a(e,["components","mdxType","originalType","parentName"]),s=l(r),f=o,y=s["".concat(p,".").concat(f)]||s[f]||d[f]||c;return r?n.createElement(y,i(i({ref:t},u),{},{components:r})):n.createElement(y,i({ref:t},u))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var c=r.length,i=new Array(c);i[0]=f;var a={};for(var p in t)hasOwnProperty.call(t,p)&&(a[p]=t[p]);a.originalType=e,a[s]="string"==typeof e?e:o,i[1]=a;for(var l=2;l{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>d,frontMatter:()=>c,metadata:()=>a,toc:()=>l});var n=r(8168),o=(r(6540),r(5680));const c={sidebar_position:5},i="HTTP \u8bbe\u5907\u63a5\u5165",a={unversionedId:"iotcloud/connect/http",id:"iotcloud/connect/http",title:"HTTP \u8bbe\u5907\u63a5\u5165",description:"",source:"@site/docs/iotcloud/connect/http.md",sourceDirName:"iotcloud/connect",slug:"/iotcloud/connect/http",permalink:"/docs/iotcloud/connect/http",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"iotCloudSidebar",previous:{title:"TCP \u8bbe\u5907\u63a5\u5165",permalink:"/docs/iotcloud/connect/tcp"},next:{title:"\u6982\u8ff0",permalink:"/docs/iotcloud/devicemanager/"}},p={},l=[],u={toc:l},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"http-\u8bbe\u5907\u63a5\u5165"},"HTTP \u8bbe\u5907\u63a5\u5165"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/afde6f8f.5c99c68b.js b/assets/js/afde6f8f.6a078c10.js similarity index 99% rename from assets/js/afde6f8f.5c99c68b.js rename to assets/js/afde6f8f.6a078c10.js index 368a18a3d..3a91d4e43 100644 --- a/assets/js/afde6f8f.5c99c68b.js +++ b/assets/js/afde6f8f.6a078c10.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7133],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>d});var a=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var i=a.createContext({}),p=function(e){var t=a.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},s=function(e){var t=p(e.components);return a.createElement(i.Provider,{value:t},e.children)},y="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},g=a.forwardRef((function(e,t){var r=e.components,o=e.mdxType,n=e.originalType,i=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),y=p(r),g=o,d=y["".concat(i,".").concat(g)]||y[g]||u[g]||n;return r?a.createElement(d,c(c({ref:t},s),{},{components:r})):a.createElement(d,c({ref:t},s))}));function d(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var n=r.length,c=new Array(n);c[0]=g;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l[y]="string"==typeof e?e:o,c[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>c,default:()=>u,frontMatter:()=>n,metadata:()=>l,toc:()=>p});var a=r(8168),o=(r(6540),r(5680));const n={},c=void 0,l={unversionedId:"study/think/\u6982\u5ff5\u6a21\u578b/Reactor\u6a21\u5f0f\u53cd\u5e94\u5806\u6a21\u5f0f",id:"study/think/\u6982\u5ff5\u6a21\u578b/Reactor\u6a21\u5f0f\u53cd\u5e94\u5806\u6a21\u5f0f",title:"Reactor\u6a21\u5f0f\u53cd\u5e94\u5806\u6a21\u5f0f",description:"5\u79cdI/O\u6a21\u578b\u6bd4\u8f83",source:"@site/docs/study/think/\u6982\u5ff5\u6a21\u578b/Reactor\u6a21\u5f0f\u53cd\u5e94\u5806\u6a21\u5f0f.md",sourceDirName:"study/think/\u6982\u5ff5\u6a21\u578b",slug:"/study/think/\u6982\u5ff5\u6a21\u578b/Reactor\u6a21\u5f0f\u53cd\u5e94\u5806\u6a21\u5f0f",permalink:"/docs/study/think/\u6982\u5ff5\u6a21\u578b/Reactor\u6a21\u5f0f\u53cd\u5e94\u5806\u6a21\u5f0f",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Proactor",permalink:"/docs/study/think/\u6982\u5ff5\u6a21\u578b/Proactor"},next:{title:"\u7f13\u5b58",permalink:"/docs/study/think/\u7f13\u5b58/"}},i={},p=[{value:"5\u79cdI/O\u6a21\u578b\u6bd4\u8f83",id:"5\u79cdio\u6a21\u578b\u6bd4\u8f83",level:3},{value:"\u7b80\u4ecb",id:"\u7b80\u4ecb",level:3},{value:"Reactor\u6a21\u5f0f\u7ed3\u6784",id:"reactor\u6a21\u5f0f\u7ed3\u6784",level:3},{value:"Reactor \u5904\u7406\u6b65\u9aa4",id:"reactor-\u5904\u7406\u6b65\u9aa4",level:3},{value:"\u4f18\u70b9",id:"\u4f18\u70b9",level:3}],s={toc:p},y="wrapper";function u(e){let{components:t,...n}=e;return(0,o.yg)(y,(0,a.A)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"5\u79cdio\u6a21\u578b\u6bd4\u8f83"},"5\u79cdI/O\u6a21\u578b\u6bd4\u8f83"),(0,o.yg)("p",null,(0,o.yg)("img",{alt:"image.png",src:r(312).A,width:"750",height:"394"})),(0,o.yg)("h3",{id:"\u7b80\u4ecb"},"\u7b80\u4ecb"),(0,o.yg)("p",null,"Reactor(\u53cd\u5e94\u5806\u6a21\u5f0f)\u662flibevent\u7684\u4e2d\u5fc3\u601d\u60f3\uff0c\u5e38\u89c4\u7684I/O\u591a\u8def\u590d\u7528\u4e2d\u91c7\u7528select\u548cpoll\u3001epoll\u7b49\u6765\u5b9e\u73b0\u3002\u800cReactor\u662f\u5c06\u4e0a\u8ff0\u673a\u5236\u8fdb\u4e00\u6b65\u5c01\u88c5\uff0c\u901a\u4fd7\u7684\u6765\u8bb2\uff0c\u5c31\u662f\u901a\u8fc7\u56de\u8c03\u673a\u5236\u5b9e\u73b0\u3002\u6211\u4eec\u53ea\u9700\u5c06\u4e8b\u4ef6\u7684\u63a5\u53e3\u6ce8\u518c\u5230Reactor\u4e0a\uff0c\u5f53\u4e8b\u4ef6\u53d1\u751f\u4e4b\u540e\uff0c\u4f1a\u56de\u8c03\u6ce8\u518c\u7684\u63a5\u53e3\u3002"),(0,o.yg)("p",null,"Reactor\u662f\u4e00\u79cd\u4e8b\u4ef6\u9a71\u52a8\u673a\u5236\u3002\u548c\u666e\u901a\u51fd\u6570\u8c03\u7528\u7684\u4e0d\u540c\u4e4b\u5904\u5728\u4e8e\uff1a\u5e94\u7528\u7a0b\u5e8f\u4e0d\u662f\u4e3b\u52a8\u7684\u8c03\u7528\u67d0\u4e2aAPI\u5b8c\u6210\u5904\u7406\uff0c\u800c\u662f\u6070\u6070\u76f8\u53cd\uff0cReactor\u9006\u7f6e\u4e86\u4e8b\u4ef6\u5904\u7406\u6d41\u7a0b\uff0c\u5e94\u7528\u7a0b\u5e8f\u9700\u8981\u63d0\u4f9b\u76f8\u5e94\u7684\u63a5\u53e3\u5e76\u6ce8\u518c\u5230Reactor\u4e0a\uff0c\u5982\u679c\u76f8\u5e94\u7684\u4e8b\u4ef6\u53d1\u751f\uff0cReactor\u5c06\u4e3b\u52a8\u8c03\u7528\u5e94\u7528\u7a0b\u5e8f\u6ce8\u518c\u7684\u63a5\u53e3\uff0c\u8fd9\u4e9b\u63a5\u53e3\u53c8\u79f0\u4e3a\u201c\u56de\u8c03\u51fd\u6570\u201d\u3002"),(0,o.yg)("p",null,"Reactor \u6a21\u5f0f\u4e5f\u53eb Dispatcher \u6a21\u5f0f\uff08\u5728\u5f88\u591a\u5f00\u6e90\u7684\u7cfb\u7edf\u91cc\u9762\u4f1a\u770b\u5230\u8fd9\u4e2a\u540d\u79f0\u7684\u7c7b\uff0c\u5176\u5b9e\u5c31\u662f\u5b9e\u73b0 Reactor \u6a21\u5f0f\u7684\uff09\uff0c\u66f4\u52a0\u8d34\u8fd1\u6a21\u5f0f\u672c\u8eab\u7684\u542b\u4e49\uff0c\u5373 I/O \u591a\u8def\u590d\u7528\u7edf\u4e00\u76d1\u542c\u4e8b\u4ef6\uff0c\u6536\u5230\u4e8b\u4ef6\u540e\u5206\u914d\uff08Dispatch\uff09\u7ed9\u67d0\u4e2a\u8fdb\u7a0b\u3002"),(0,o.yg)("p",null,"Reactor \u6a21\u5f0f\u7684\u6838\u5fc3\u7ec4\u6210\u90e8\u5206\u5305\u62ec Reactor \u548c\u5904\u7406\u8d44\u6e90\u6c60\uff08\u8fdb\u7a0b\u6c60\u6216\u7ebf\u7a0b\u6c60\uff09\uff0c\u5176\u4e2d Reactor \u8d1f\u8d23\u76d1\u542c\u548c\u5206\u914d\u4e8b\u4ef6\uff0c\u5904\u7406\u8d44\u6e90\u6c60\u8d1f\u8d23\u5904\u7406\u4e8b\u4ef6\u3002\u521d\u770b Reactor \u7684\u5b9e\u73b0\u662f\u6bd4\u8f83\u7b80\u5355\u7684\uff0c\u4f46\u5b9e\u9645\u4e0a\u7ed3\u5408\u4e0d\u540c\u7684\u4e1a\u52a1\u573a\u666f\uff0cReactor \u6a21\u5f0f\u7684\u5177\u4f53\u5b9e\u73b0\u65b9\u6848\u7075\u6d3b\u591a\u53d8\uff0c\u4e3b\u8981\u4f53\u73b0\u5728\uff1aReactor \u7684\u6570\u91cf\u53ef\u4ee5\u53d8\u5316\uff1a\u53ef\u4ee5\u662f\u4e00\u4e2a Reactor\uff0c\u4e5f\u53ef\u4ee5\u662f\u591a\u4e2a Reactor\u3002\u8d44\u6e90\u6c60\u7684\u6570\u91cf\u53ef\u4ee5\u53d8\u5316\uff1a\u4ee5\u8fdb\u7a0b\u4e3a\u4f8b\uff0c\u53ef\u4ee5\u662f\u5355\u4e2a\u8fdb\u7a0b\uff0c\u4e5f\u53ef\u4ee5\u662f\u591a\u4e2a\u8fdb\u7a0b\uff08\u7ebf\u7a0b\u7c7b\u4f3c\uff09\u3002\u5c06\u4e0a\u9762\u4e24\u4e2a\u56e0\u7d20\u6392\u5217\u7ec4\u5408\u4e00\u4e0b\uff0c\u7406\u8bba\u4e0a\u53ef\u4ee5\u6709 4 \u79cd\u9009\u62e9\uff0c\u4f46\u7531\u4e8e\u201c\u591a Reactor \u5355\u8fdb\u7a0b\u201d\u5b9e\u73b0\u65b9\u6848\u76f8\u6bd4\u201c\u5355 Reactor \u5355\u8fdb\u7a0b\u201d\u65b9\u6848\uff0c\u65e2\u590d\u6742\u53c8\u6ca1\u6709\u6027\u80fd\u4f18\u52bf\uff0c\u56e0\u6b64\u201c\u591a Reactor \u5355\u8fdb\u7a0b\u201d\u65b9\u6848\u4ec5\u4ec5\u662f\u4e00\u4e2a\u7406\u8bba\u4e0a\u7684\u65b9\u6848\uff0c\u5b9e\u9645\u6ca1\u6709\u5e94\u7528\u3002\u6700\u7ec8 Reactor \u6a21\u5f0f\u6709\u8fd9\u4e09\u79cd\u5178\u578b\u7684\u5b9e\u73b0\u65b9\u6848\uff1a\u5355 Reactor \u5355\u8fdb\u7a0b / \u7ebf\u7a0b\u3002\u5355 Reactor \u591a\u7ebf\u7a0b\u3002\u591a Reactor \u591a\u8fdb\u7a0b / \u7ebf\u7a0b\u3002\u4ee5\u4e0a\u65b9\u6848\u5177\u4f53\u9009\u62e9\u8fdb\u7a0b\u8fd8\u662f\u7ebf\u7a0b\uff0c\u66f4\u591a\u5730\u662f\u548c\u7f16\u7a0b\u8bed\u8a00\u53ca\u5e73\u53f0\u76f8\u5173\u3002\u4f8b\u5982\uff0cJava \u8bed\u8a00\u4e00\u822c\u4f7f\u7528\u7ebf\u7a0b\uff08\u4f8b\u5982\uff0cNetty\uff09\uff0cC \u8bed\u8a00\u4f7f\u7528\u8fdb\u7a0b\u548c\u7ebf\u7a0b\u90fd\u53ef\u4ee5\u3002\u4f8b\u5982\uff0cNginx \u4f7f\u7528\u8fdb\u7a0b\uff0cMemcache \u4f7f\u7528\u7ebf\u7a0b\u3002"),(0,o.yg)("p",null,"\u5355 Reactor \u5355\u8fdb\u7a0b\u7684\u65b9\u6848\u5728\u5b9e\u8df5\u4e2d\u5e94\u7528\u573a\u666f\u4e0d\u591a\uff0c\u53ea\u9002\u7528\u4e8e\u4e1a\u52a1\u5904\u7406\u975e\u5e38\u5feb\u901f\u7684\u573a\u666f\uff0c\u76ee\u524d\u6bd4\u8f83\u8457\u540d\u7684\u5f00\u6e90\u8f6f\u4ef6\u4e2d\u4f7f\u7528\u5355 Reactor \u5355\u8fdb\u7a0b\u7684\u662f Redis\u3002\u9700\u8981\u6ce8\u610f\u7684\u662f\uff0cC \u8bed\u8a00\u7f16\u5199\u7cfb\u7edf\u7684\u4e00\u822c\u4f7f\u7528\u5355 Reactor \u5355\u8fdb\u7a0b\uff0c\u56e0\u4e3a\u6ca1\u6709\u5fc5\u8981\u5728\u8fdb\u7a0b\u4e2d\u518d\u521b\u5efa\u7ebf\u7a0b\uff1b\u800c Java \u8bed\u8a00\u7f16\u5199\u7684\u4e00\u822c\u4f7f\u7528\u5355 Reactor \u5355\u7ebf\u7a0b\uff0c\u56e0\u4e3a Java \u865a\u62df\u673a\u662f\u4e00\u4e2a\u8fdb\u7a0b\uff0c\u865a\u62df\u673a\u4e2d\u6709\u5f88\u591a\u7ebf\u7a0b\uff0c\u4e1a\u52a1\u7ebf\u7a0b\u53ea\u662f\u5176\u4e2d\u7684\u4e00\u4e2a\u7ebf\u7a0b\u800c\u5df2\u3002"),(0,o.yg)("p",null,"\u76ee\u524d\u8457\u540d\u7684\u5f00\u6e90\u7cfb\u7edf Nginx \u91c7\u7528\u7684\u662f\u591a Reactor \u591a\u8fdb\u7a0b\uff0c\u91c7\u7528\u591a Reactor \u591a\u7ebf\u7a0b\u7684\u5b9e\u73b0\u6709 Memcache \u548c Netty\u3002"),(0,o.yg)("h3",{id:"reactor\u6a21\u5f0f\u7ed3\u6784"},"Reactor\u6a21\u5f0f\u7ed3\u6784"),(0,o.yg)("p",null,"\u5728Reactor\u6a21\u5f0f\u4e2d\uff0c\u6709\u4ee5\u4e0b\u51e0\u4e2a\u5173\u952e\u7684\u53c2\u4e0e\u8005\u3002"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},"\u63cf\u8ff0\u7b26\uff08handle\uff09\u7531\u64cd\u4f5c\u7cfb\u7edf\u63d0\u4f9b\uff0c\u7528\u4e8e\u8bc6\u522b\u6bcf\u4e00\u4e2a\u4e8b\u4ef6\uff0c\u5982Socket\u63cf\u8ff0\u7b26\u3001\u6587\u4ef6\u63cf\u8ff0\u7b26\u7b49\u3002\u5728Linux\u4e2d\uff0c\u5b83\u7528\u4e00\u4e2a\u6574\u6570\u6765\u8868\u793a\u3002\u4e8b\u4ef6\u53ef\u4ee5\u6765\u81ea\u5916\u90e8\uff0c\u5982\u6765\u81ea\u5ba2\u6237\u7aef\u7684\u8fde\u63a5\u8bf7\u6c42\u3001\u6570\u636e\u7b49\u3002\u4e8b\u4ef6\u4e5f\u53ef\u4ee5\u6765\u81ea\u5185\u90e8\uff0c\u5982\u5b9a\u65f6\u5668\u4e8b\u4ef6\u3002"),(0,o.yg)("li",{parentName:"ol"},"\u540c\u6b65\u4e8b\u4ef6\u5206\u79bb\u5668\uff08demultiplexer\uff09\u662f\u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u6765\u7b49\u5f85\u4e00\u4e2a\u6216\u591a\u4e2a\u4e8b\u4ef6\u7684\u53d1\u751f\u3002\u8c03\u7528\u8005\u4f1a\u88ab\u963b\u585e\uff0c\u76f4\u5230\u5206\u79bb\u5668\u5206\u79bb\u7684\u63cf\u8ff0\u7b26\u96c6\u4e0a\u6709\u4e8b\u4ef6\u53d1\u751f\u3002Linux\u7684select\u51fd\u6570\u662f\u4e00\u4e2a\u7ecf\u5e38\u88ab\u4f7f\u7528\u7684\u5206\u79bb\u5668\u3002"),(0,o.yg)("li",{parentName:"ol"},"\u4e8b\u4ef6\u5904\u7406\u5668\u63a5\u53e3\uff08event handler\uff09\u662f\u7531\u4e00\u4e2a\u6216\u591a\u4e2a\u6a21\u677f\u51fd\u6570\u7ec4\u6210\u7684\u63a5\u53e3\u3002\u8fd9\u4e9b\u6a21\u677f\u51fd\u6570\u63cf\u8ff0\u4e86\u548c\u5e94\u7528\u7a0b\u5e8f\u76f8\u5173\u7684\u5bf9\u67d0\u4e2a\u4e8b\u4ef6\u7684\u64cd\u4f5c\u3002 \u5177\u4f53\u7684\u4e8b\u4ef6\u5904\u7406\u5668\uff1a\u662f\u4e8b\u4ef6\u5904\u7406\u5668\u63a5\u53e3\u7684\u5b9e\u73b0\u3002\u5b83\u5b9e\u73b0\u4e86\u5e94\u7528\u7a0b\u5e8f\u63d0\u4f9b\u7684\u67d0\u4e2a\u670d\u52a1\u3002\u6bcf\u4e2a\u5177\u4f53\u7684\u4e8b\u4ef6\u5904\u7406\u5668\u603b\u548c\u4e00\u4e2a\u63cf\u8ff0\u7b26\u76f8\u5173\u3002\u5b83\u4f7f\u7528\u63cf\u8ff0\u7b26\u6765\u8bc6\u522b\u4e8b\u4ef6\u3001\u8bc6\u522b\u5e94\u7528\u7a0b\u5e8f\u63d0\u4f9b\u7684\u670d\u52a1\u3002"),(0,o.yg)("li",{parentName:"ol"},"Reactor \u7ba1\u7406\u5668\uff08reactor\uff09\uff1a\u5b9a\u4e49\u4e86\u4e00\u4e9b\u63a5\u53e3\uff0c\u7528\u4e8e\u5e94\u7528\u7a0b\u5e8f\u63a7\u5236\u4e8b\u4ef6\u8c03\u5ea6\uff0c\u4ee5\u53ca\u5e94\u7528\u7a0b\u5e8f\u6ce8\u518c\u3001\u5220\u9664\u4e8b\u4ef6\u5904\u7406\u5668\u548c\u76f8\u5173\u7684\u63cf\u8ff0\u7b26\u3002\u5b83\u662f\u4e8b\u4ef6\u5904\u7406\u5668\u7684\u8c03\u5ea6\u6838\u5fc3\u3002 Reactor\u7ba1\u7406\u5668\u4f7f\u7528\u540c\u6b65\u4e8b\u4ef6\u5206\u79bb\u5668\u6765\u7b49\u5f85\u4e8b\u4ef6\u7684\u53d1\u751f\u3002\u4e00\u65e6\u4e8b\u4ef6\u53d1\u751f\uff0cReactor\u7ba1\u7406\u5668\u5148\u662f\u5206\u79bb\u6bcf\u4e2a\u4e8b\u4ef6\uff0c\u7136\u540e\u8c03\u5ea6\u4e8b\u4ef6\u5904\u7406\u5668\uff0c\u6700\u540e\u8c03\u7528\u76f8\u5173\u7684\u6a21 \u677f\u51fd\u6570\u6765\u5904\u7406\u8fd9\u4e2a\u4e8b\u4ef6\u3002"),(0,o.yg)("li",{parentName:"ol"},"\u901a\u8fc7\u4e0a\u8ff0\u5206\u6790\uff0c\u6211\u4eec\u6ce8\u610f\u5230\uff0c\u662fReactor\u7ba1\u7406\u5668\u800c\u4e0d\u662f\u5e94\u7528\u7a0b\u5e8f\u8d1f\u8d23\u7b49\u5f85\u4e8b\u4ef6\u3001\u5206\u79bb\u4e8b\u4ef6\u548c\u8c03\u5ea6\u4e8b\u4ef6\u3002\u5b9e\u9645\u4e0a\uff0cReactor\u7ba1\u7406\u5668\u5e76\u6ca1\u6709\u88ab\u5177\u4f53\u7684 \u4e8b\u4ef6\u5904\u7406\u5668\u8c03\u7528\uff0c\u800c\u662f\u7ba1\u7406\u5668\u8c03\u5ea6\u5177\u4f53\u7684\u4e8b\u4ef6\u5904\u7406\u5668\uff0c\u7531\u4e8b\u4ef6\u5904\u7406\u5668\u5bf9\u53d1\u751f\u7684\u4e8b\u4ef6\u505a\u51fa\u5904\u7406\u3002\u8fd9\u5c31\u662f\u7c7b\u4f3cHollywood\u539f\u5219\u7684\u201c\u53cd\u5411\u63a7\u5236\u201d\u3002\u5e94\u7528\u7a0b\u5e8f\u8981\u505a\u7684 \u4ec5\u4ec5\u662f\u5b9e\u73b0\u4e00\u4e2a\u5177\u4f53\u7684\u4e8b\u4ef6\u5904\u7406\u5668\uff0c\u7136\u540e\u628a\u5b83\u6ce8\u518c\u5230Reactor\u7ba1\u7406\u5668\u4e2d\u3002\u63a5\u4e0b\u6765\u7684\u5de5\u4f5c\u7531\u7ba1\u7406\u5668\u6765\u5b8c\u6210\u3002\u8fd9\u4e9b\u53c2\u4e0e\u8005\u7684\u76f8\u4e92\u5173\u7cfb\u5982\u4e0b\u56fe\u6240\u793a\u3002")),(0,o.yg)("p",null,(0,o.yg)("img",{alt:"image.png",src:r(7171).A,width:"750",height:"282"})),(0,o.yg)("h3",{id:"reactor-\u5904\u7406\u6b65\u9aa4"},"Reactor \u5904\u7406\u6b65\u9aa4"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},"\u521d\u59cb\u5316\u4e00\u4e2aReactor\u7ba1\u7406\u5668"),(0,o.yg)("li",{parentName:"ol"},"\u521d\u59cb\u5316\u4e8b\u4ef6\u5904\u7406\u5668,\u8bbe\u7f6e\u4e8b\u4ef6\u6e90\u53ca\u56de\u8c03\u51fd\u6570"),(0,o.yg)("li",{parentName:"ol"},"\u5c06\u4e8b\u4ef6\u5904\u7406\u5668\u6ce8\u518c\u5230Reactor\u7ba1\u7406\u5668\u4e0a"),(0,o.yg)("li",{parentName:"ol"},"\u6ce8\u518c\u8be5\u4e8b\u4ef6"),(0,o.yg)("li",{parentName:"ol"},"\u8fdb\u5165\u5faa\u73af\u7b49\u5f85\u4e8b\u4ef6\u53d1\u751f\u5e76\u5904\u7406")),(0,o.yg)("h3",{id:"\u4f18\u70b9"},"\u4f18\u70b9"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},"\u54cd\u5e94\u5feb\uff0c\u4e0d\u5fc5\u4e3a\u5355\u4e2a\u540c\u6b65\u65f6\u95f4\u6240\u963b\u585e\uff0c\u867d\u7136Reactor\u672c\u8eab\u4f9d\u7136\u662f\u540c\u6b65\u7684\uff1b"),(0,o.yg)("li",{parentName:"ol"},"\u7f16\u7a0b\u76f8\u5bf9\u7b80\u5355\uff0c\u53ef\u4ee5\u6700\u5927\u7a0b\u5ea6\u7684\u907f\u514d\u590d\u6742\u7684\u591a\u7ebf\u7a0b\u53ca\u540c\u6b65\u95ee\u9898\uff0c\u5e76\u4e14\u907f\u514d\u4e86\u591a\u7ebf\u7a0b/\u8fdb\u7a0b\u7684\u5207\u6362\u5f00\u9500\uff1b"),(0,o.yg)("li",{parentName:"ol"},"\u53ef\u6269\u5c55\u6027\uff0c\u53ef\u4ee5\u65b9\u4fbf\u7684\u901a\u8fc7\u589e\u52a0Reactor\u5b9e\u4f8b\u4e2a\u6570\u6765\u5145\u5206\u5229\u7528CPU\u8d44\u6e90\uff1b"),(0,o.yg)("li",{parentName:"ol"},"\u53ef\u590d\u7528\u6027\uff0creactor\u6846\u67b6\u672c\u8eab\u4e0e\u5177\u4f53\u4e8b\u4ef6\u5904\u7406\u903b\u8f91\u65e0\u5173\uff0c\u5177\u6709\u5f88\u9ad8\u7684\u590d\u7528\u6027\uff1b")),(0,o.yg)("p",null,(0,o.yg)("a",{parentName:"p",href:"https://blog.csdn.net/qq_35551407/article/details/107141036"}),"\n",(0,o.yg)("a",{parentName:"p",href:"https://blog.csdn.net/qq_35551407/article/details/107141036"})))}u.isMDXComponent=!0},312:(e,t,r)=>{r.d(t,{A:()=>a});const a=r.p+"assets/images/image1-edea0978619ca45e5aaa9c2240cde67f.png"},7171:(e,t,r)=>{r.d(t,{A:()=>a});const a=r.p+"assets/images/image2-d4b1ab3e24170354fa291fe102361811.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7133],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>d});var a=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var i=a.createContext({}),p=function(e){var t=a.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},s=function(e){var t=p(e.components);return a.createElement(i.Provider,{value:t},e.children)},y="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},g=a.forwardRef((function(e,t){var r=e.components,o=e.mdxType,n=e.originalType,i=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),y=p(r),g=o,d=y["".concat(i,".").concat(g)]||y[g]||u[g]||n;return r?a.createElement(d,c(c({ref:t},s),{},{components:r})):a.createElement(d,c({ref:t},s))}));function d(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var n=r.length,c=new Array(n);c[0]=g;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l[y]="string"==typeof e?e:o,c[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>c,default:()=>u,frontMatter:()=>n,metadata:()=>l,toc:()=>p});var a=r(8168),o=(r(6540),r(5680));const n={},c=void 0,l={unversionedId:"study/think/\u6982\u5ff5\u6a21\u578b/Reactor\u6a21\u5f0f\u53cd\u5e94\u5806\u6a21\u5f0f",id:"study/think/\u6982\u5ff5\u6a21\u578b/Reactor\u6a21\u5f0f\u53cd\u5e94\u5806\u6a21\u5f0f",title:"Reactor\u6a21\u5f0f\u53cd\u5e94\u5806\u6a21\u5f0f",description:"5\u79cdI/O\u6a21\u578b\u6bd4\u8f83",source:"@site/docs/study/think/\u6982\u5ff5\u6a21\u578b/Reactor\u6a21\u5f0f\u53cd\u5e94\u5806\u6a21\u5f0f.md",sourceDirName:"study/think/\u6982\u5ff5\u6a21\u578b",slug:"/study/think/\u6982\u5ff5\u6a21\u578b/Reactor\u6a21\u5f0f\u53cd\u5e94\u5806\u6a21\u5f0f",permalink:"/docs/study/think/\u6982\u5ff5\u6a21\u578b/Reactor\u6a21\u5f0f\u53cd\u5e94\u5806\u6a21\u5f0f",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Proactor",permalink:"/docs/study/think/\u6982\u5ff5\u6a21\u578b/Proactor"},next:{title:"\u7f13\u5b58",permalink:"/docs/study/think/\u7f13\u5b58/"}},i={},p=[{value:"5\u79cdI/O\u6a21\u578b\u6bd4\u8f83",id:"5\u79cdio\u6a21\u578b\u6bd4\u8f83",level:3},{value:"\u7b80\u4ecb",id:"\u7b80\u4ecb",level:3},{value:"Reactor\u6a21\u5f0f\u7ed3\u6784",id:"reactor\u6a21\u5f0f\u7ed3\u6784",level:3},{value:"Reactor \u5904\u7406\u6b65\u9aa4",id:"reactor-\u5904\u7406\u6b65\u9aa4",level:3},{value:"\u4f18\u70b9",id:"\u4f18\u70b9",level:3}],s={toc:p},y="wrapper";function u(e){let{components:t,...n}=e;return(0,o.yg)(y,(0,a.A)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"5\u79cdio\u6a21\u578b\u6bd4\u8f83"},"5\u79cdI/O\u6a21\u578b\u6bd4\u8f83"),(0,o.yg)("p",null,(0,o.yg)("img",{alt:"image.png",src:r(312).A,width:"750",height:"394"})),(0,o.yg)("h3",{id:"\u7b80\u4ecb"},"\u7b80\u4ecb"),(0,o.yg)("p",null,"Reactor(\u53cd\u5e94\u5806\u6a21\u5f0f)\u662flibevent\u7684\u4e2d\u5fc3\u601d\u60f3\uff0c\u5e38\u89c4\u7684I/O\u591a\u8def\u590d\u7528\u4e2d\u91c7\u7528select\u548cpoll\u3001epoll\u7b49\u6765\u5b9e\u73b0\u3002\u800cReactor\u662f\u5c06\u4e0a\u8ff0\u673a\u5236\u8fdb\u4e00\u6b65\u5c01\u88c5\uff0c\u901a\u4fd7\u7684\u6765\u8bb2\uff0c\u5c31\u662f\u901a\u8fc7\u56de\u8c03\u673a\u5236\u5b9e\u73b0\u3002\u6211\u4eec\u53ea\u9700\u5c06\u4e8b\u4ef6\u7684\u63a5\u53e3\u6ce8\u518c\u5230Reactor\u4e0a\uff0c\u5f53\u4e8b\u4ef6\u53d1\u751f\u4e4b\u540e\uff0c\u4f1a\u56de\u8c03\u6ce8\u518c\u7684\u63a5\u53e3\u3002"),(0,o.yg)("p",null,"Reactor\u662f\u4e00\u79cd\u4e8b\u4ef6\u9a71\u52a8\u673a\u5236\u3002\u548c\u666e\u901a\u51fd\u6570\u8c03\u7528\u7684\u4e0d\u540c\u4e4b\u5904\u5728\u4e8e\uff1a\u5e94\u7528\u7a0b\u5e8f\u4e0d\u662f\u4e3b\u52a8\u7684\u8c03\u7528\u67d0\u4e2aAPI\u5b8c\u6210\u5904\u7406\uff0c\u800c\u662f\u6070\u6070\u76f8\u53cd\uff0cReactor\u9006\u7f6e\u4e86\u4e8b\u4ef6\u5904\u7406\u6d41\u7a0b\uff0c\u5e94\u7528\u7a0b\u5e8f\u9700\u8981\u63d0\u4f9b\u76f8\u5e94\u7684\u63a5\u53e3\u5e76\u6ce8\u518c\u5230Reactor\u4e0a\uff0c\u5982\u679c\u76f8\u5e94\u7684\u4e8b\u4ef6\u53d1\u751f\uff0cReactor\u5c06\u4e3b\u52a8\u8c03\u7528\u5e94\u7528\u7a0b\u5e8f\u6ce8\u518c\u7684\u63a5\u53e3\uff0c\u8fd9\u4e9b\u63a5\u53e3\u53c8\u79f0\u4e3a\u201c\u56de\u8c03\u51fd\u6570\u201d\u3002"),(0,o.yg)("p",null,"Reactor \u6a21\u5f0f\u4e5f\u53eb Dispatcher \u6a21\u5f0f\uff08\u5728\u5f88\u591a\u5f00\u6e90\u7684\u7cfb\u7edf\u91cc\u9762\u4f1a\u770b\u5230\u8fd9\u4e2a\u540d\u79f0\u7684\u7c7b\uff0c\u5176\u5b9e\u5c31\u662f\u5b9e\u73b0 Reactor \u6a21\u5f0f\u7684\uff09\uff0c\u66f4\u52a0\u8d34\u8fd1\u6a21\u5f0f\u672c\u8eab\u7684\u542b\u4e49\uff0c\u5373 I/O \u591a\u8def\u590d\u7528\u7edf\u4e00\u76d1\u542c\u4e8b\u4ef6\uff0c\u6536\u5230\u4e8b\u4ef6\u540e\u5206\u914d\uff08Dispatch\uff09\u7ed9\u67d0\u4e2a\u8fdb\u7a0b\u3002"),(0,o.yg)("p",null,"Reactor \u6a21\u5f0f\u7684\u6838\u5fc3\u7ec4\u6210\u90e8\u5206\u5305\u62ec Reactor \u548c\u5904\u7406\u8d44\u6e90\u6c60\uff08\u8fdb\u7a0b\u6c60\u6216\u7ebf\u7a0b\u6c60\uff09\uff0c\u5176\u4e2d Reactor \u8d1f\u8d23\u76d1\u542c\u548c\u5206\u914d\u4e8b\u4ef6\uff0c\u5904\u7406\u8d44\u6e90\u6c60\u8d1f\u8d23\u5904\u7406\u4e8b\u4ef6\u3002\u521d\u770b Reactor \u7684\u5b9e\u73b0\u662f\u6bd4\u8f83\u7b80\u5355\u7684\uff0c\u4f46\u5b9e\u9645\u4e0a\u7ed3\u5408\u4e0d\u540c\u7684\u4e1a\u52a1\u573a\u666f\uff0cReactor \u6a21\u5f0f\u7684\u5177\u4f53\u5b9e\u73b0\u65b9\u6848\u7075\u6d3b\u591a\u53d8\uff0c\u4e3b\u8981\u4f53\u73b0\u5728\uff1aReactor \u7684\u6570\u91cf\u53ef\u4ee5\u53d8\u5316\uff1a\u53ef\u4ee5\u662f\u4e00\u4e2a Reactor\uff0c\u4e5f\u53ef\u4ee5\u662f\u591a\u4e2a Reactor\u3002\u8d44\u6e90\u6c60\u7684\u6570\u91cf\u53ef\u4ee5\u53d8\u5316\uff1a\u4ee5\u8fdb\u7a0b\u4e3a\u4f8b\uff0c\u53ef\u4ee5\u662f\u5355\u4e2a\u8fdb\u7a0b\uff0c\u4e5f\u53ef\u4ee5\u662f\u591a\u4e2a\u8fdb\u7a0b\uff08\u7ebf\u7a0b\u7c7b\u4f3c\uff09\u3002\u5c06\u4e0a\u9762\u4e24\u4e2a\u56e0\u7d20\u6392\u5217\u7ec4\u5408\u4e00\u4e0b\uff0c\u7406\u8bba\u4e0a\u53ef\u4ee5\u6709 4 \u79cd\u9009\u62e9\uff0c\u4f46\u7531\u4e8e\u201c\u591a Reactor \u5355\u8fdb\u7a0b\u201d\u5b9e\u73b0\u65b9\u6848\u76f8\u6bd4\u201c\u5355 Reactor \u5355\u8fdb\u7a0b\u201d\u65b9\u6848\uff0c\u65e2\u590d\u6742\u53c8\u6ca1\u6709\u6027\u80fd\u4f18\u52bf\uff0c\u56e0\u6b64\u201c\u591a Reactor \u5355\u8fdb\u7a0b\u201d\u65b9\u6848\u4ec5\u4ec5\u662f\u4e00\u4e2a\u7406\u8bba\u4e0a\u7684\u65b9\u6848\uff0c\u5b9e\u9645\u6ca1\u6709\u5e94\u7528\u3002\u6700\u7ec8 Reactor \u6a21\u5f0f\u6709\u8fd9\u4e09\u79cd\u5178\u578b\u7684\u5b9e\u73b0\u65b9\u6848\uff1a\u5355 Reactor \u5355\u8fdb\u7a0b / \u7ebf\u7a0b\u3002\u5355 Reactor \u591a\u7ebf\u7a0b\u3002\u591a Reactor \u591a\u8fdb\u7a0b / \u7ebf\u7a0b\u3002\u4ee5\u4e0a\u65b9\u6848\u5177\u4f53\u9009\u62e9\u8fdb\u7a0b\u8fd8\u662f\u7ebf\u7a0b\uff0c\u66f4\u591a\u5730\u662f\u548c\u7f16\u7a0b\u8bed\u8a00\u53ca\u5e73\u53f0\u76f8\u5173\u3002\u4f8b\u5982\uff0cJava \u8bed\u8a00\u4e00\u822c\u4f7f\u7528\u7ebf\u7a0b\uff08\u4f8b\u5982\uff0cNetty\uff09\uff0cC \u8bed\u8a00\u4f7f\u7528\u8fdb\u7a0b\u548c\u7ebf\u7a0b\u90fd\u53ef\u4ee5\u3002\u4f8b\u5982\uff0cNginx \u4f7f\u7528\u8fdb\u7a0b\uff0cMemcache \u4f7f\u7528\u7ebf\u7a0b\u3002"),(0,o.yg)("p",null,"\u5355 Reactor \u5355\u8fdb\u7a0b\u7684\u65b9\u6848\u5728\u5b9e\u8df5\u4e2d\u5e94\u7528\u573a\u666f\u4e0d\u591a\uff0c\u53ea\u9002\u7528\u4e8e\u4e1a\u52a1\u5904\u7406\u975e\u5e38\u5feb\u901f\u7684\u573a\u666f\uff0c\u76ee\u524d\u6bd4\u8f83\u8457\u540d\u7684\u5f00\u6e90\u8f6f\u4ef6\u4e2d\u4f7f\u7528\u5355 Reactor \u5355\u8fdb\u7a0b\u7684\u662f Redis\u3002\u9700\u8981\u6ce8\u610f\u7684\u662f\uff0cC \u8bed\u8a00\u7f16\u5199\u7cfb\u7edf\u7684\u4e00\u822c\u4f7f\u7528\u5355 Reactor \u5355\u8fdb\u7a0b\uff0c\u56e0\u4e3a\u6ca1\u6709\u5fc5\u8981\u5728\u8fdb\u7a0b\u4e2d\u518d\u521b\u5efa\u7ebf\u7a0b\uff1b\u800c Java \u8bed\u8a00\u7f16\u5199\u7684\u4e00\u822c\u4f7f\u7528\u5355 Reactor \u5355\u7ebf\u7a0b\uff0c\u56e0\u4e3a Java \u865a\u62df\u673a\u662f\u4e00\u4e2a\u8fdb\u7a0b\uff0c\u865a\u62df\u673a\u4e2d\u6709\u5f88\u591a\u7ebf\u7a0b\uff0c\u4e1a\u52a1\u7ebf\u7a0b\u53ea\u662f\u5176\u4e2d\u7684\u4e00\u4e2a\u7ebf\u7a0b\u800c\u5df2\u3002"),(0,o.yg)("p",null,"\u76ee\u524d\u8457\u540d\u7684\u5f00\u6e90\u7cfb\u7edf Nginx \u91c7\u7528\u7684\u662f\u591a Reactor \u591a\u8fdb\u7a0b\uff0c\u91c7\u7528\u591a Reactor \u591a\u7ebf\u7a0b\u7684\u5b9e\u73b0\u6709 Memcache \u548c Netty\u3002"),(0,o.yg)("h3",{id:"reactor\u6a21\u5f0f\u7ed3\u6784"},"Reactor\u6a21\u5f0f\u7ed3\u6784"),(0,o.yg)("p",null,"\u5728Reactor\u6a21\u5f0f\u4e2d\uff0c\u6709\u4ee5\u4e0b\u51e0\u4e2a\u5173\u952e\u7684\u53c2\u4e0e\u8005\u3002"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},"\u63cf\u8ff0\u7b26\uff08handle\uff09\u7531\u64cd\u4f5c\u7cfb\u7edf\u63d0\u4f9b\uff0c\u7528\u4e8e\u8bc6\u522b\u6bcf\u4e00\u4e2a\u4e8b\u4ef6\uff0c\u5982Socket\u63cf\u8ff0\u7b26\u3001\u6587\u4ef6\u63cf\u8ff0\u7b26\u7b49\u3002\u5728Linux\u4e2d\uff0c\u5b83\u7528\u4e00\u4e2a\u6574\u6570\u6765\u8868\u793a\u3002\u4e8b\u4ef6\u53ef\u4ee5\u6765\u81ea\u5916\u90e8\uff0c\u5982\u6765\u81ea\u5ba2\u6237\u7aef\u7684\u8fde\u63a5\u8bf7\u6c42\u3001\u6570\u636e\u7b49\u3002\u4e8b\u4ef6\u4e5f\u53ef\u4ee5\u6765\u81ea\u5185\u90e8\uff0c\u5982\u5b9a\u65f6\u5668\u4e8b\u4ef6\u3002"),(0,o.yg)("li",{parentName:"ol"},"\u540c\u6b65\u4e8b\u4ef6\u5206\u79bb\u5668\uff08demultiplexer\uff09\u662f\u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u6765\u7b49\u5f85\u4e00\u4e2a\u6216\u591a\u4e2a\u4e8b\u4ef6\u7684\u53d1\u751f\u3002\u8c03\u7528\u8005\u4f1a\u88ab\u963b\u585e\uff0c\u76f4\u5230\u5206\u79bb\u5668\u5206\u79bb\u7684\u63cf\u8ff0\u7b26\u96c6\u4e0a\u6709\u4e8b\u4ef6\u53d1\u751f\u3002Linux\u7684select\u51fd\u6570\u662f\u4e00\u4e2a\u7ecf\u5e38\u88ab\u4f7f\u7528\u7684\u5206\u79bb\u5668\u3002"),(0,o.yg)("li",{parentName:"ol"},"\u4e8b\u4ef6\u5904\u7406\u5668\u63a5\u53e3\uff08event handler\uff09\u662f\u7531\u4e00\u4e2a\u6216\u591a\u4e2a\u6a21\u677f\u51fd\u6570\u7ec4\u6210\u7684\u63a5\u53e3\u3002\u8fd9\u4e9b\u6a21\u677f\u51fd\u6570\u63cf\u8ff0\u4e86\u548c\u5e94\u7528\u7a0b\u5e8f\u76f8\u5173\u7684\u5bf9\u67d0\u4e2a\u4e8b\u4ef6\u7684\u64cd\u4f5c\u3002 \u5177\u4f53\u7684\u4e8b\u4ef6\u5904\u7406\u5668\uff1a\u662f\u4e8b\u4ef6\u5904\u7406\u5668\u63a5\u53e3\u7684\u5b9e\u73b0\u3002\u5b83\u5b9e\u73b0\u4e86\u5e94\u7528\u7a0b\u5e8f\u63d0\u4f9b\u7684\u67d0\u4e2a\u670d\u52a1\u3002\u6bcf\u4e2a\u5177\u4f53\u7684\u4e8b\u4ef6\u5904\u7406\u5668\u603b\u548c\u4e00\u4e2a\u63cf\u8ff0\u7b26\u76f8\u5173\u3002\u5b83\u4f7f\u7528\u63cf\u8ff0\u7b26\u6765\u8bc6\u522b\u4e8b\u4ef6\u3001\u8bc6\u522b\u5e94\u7528\u7a0b\u5e8f\u63d0\u4f9b\u7684\u670d\u52a1\u3002"),(0,o.yg)("li",{parentName:"ol"},"Reactor \u7ba1\u7406\u5668\uff08reactor\uff09\uff1a\u5b9a\u4e49\u4e86\u4e00\u4e9b\u63a5\u53e3\uff0c\u7528\u4e8e\u5e94\u7528\u7a0b\u5e8f\u63a7\u5236\u4e8b\u4ef6\u8c03\u5ea6\uff0c\u4ee5\u53ca\u5e94\u7528\u7a0b\u5e8f\u6ce8\u518c\u3001\u5220\u9664\u4e8b\u4ef6\u5904\u7406\u5668\u548c\u76f8\u5173\u7684\u63cf\u8ff0\u7b26\u3002\u5b83\u662f\u4e8b\u4ef6\u5904\u7406\u5668\u7684\u8c03\u5ea6\u6838\u5fc3\u3002 Reactor\u7ba1\u7406\u5668\u4f7f\u7528\u540c\u6b65\u4e8b\u4ef6\u5206\u79bb\u5668\u6765\u7b49\u5f85\u4e8b\u4ef6\u7684\u53d1\u751f\u3002\u4e00\u65e6\u4e8b\u4ef6\u53d1\u751f\uff0cReactor\u7ba1\u7406\u5668\u5148\u662f\u5206\u79bb\u6bcf\u4e2a\u4e8b\u4ef6\uff0c\u7136\u540e\u8c03\u5ea6\u4e8b\u4ef6\u5904\u7406\u5668\uff0c\u6700\u540e\u8c03\u7528\u76f8\u5173\u7684\u6a21 \u677f\u51fd\u6570\u6765\u5904\u7406\u8fd9\u4e2a\u4e8b\u4ef6\u3002"),(0,o.yg)("li",{parentName:"ol"},"\u901a\u8fc7\u4e0a\u8ff0\u5206\u6790\uff0c\u6211\u4eec\u6ce8\u610f\u5230\uff0c\u662fReactor\u7ba1\u7406\u5668\u800c\u4e0d\u662f\u5e94\u7528\u7a0b\u5e8f\u8d1f\u8d23\u7b49\u5f85\u4e8b\u4ef6\u3001\u5206\u79bb\u4e8b\u4ef6\u548c\u8c03\u5ea6\u4e8b\u4ef6\u3002\u5b9e\u9645\u4e0a\uff0cReactor\u7ba1\u7406\u5668\u5e76\u6ca1\u6709\u88ab\u5177\u4f53\u7684 \u4e8b\u4ef6\u5904\u7406\u5668\u8c03\u7528\uff0c\u800c\u662f\u7ba1\u7406\u5668\u8c03\u5ea6\u5177\u4f53\u7684\u4e8b\u4ef6\u5904\u7406\u5668\uff0c\u7531\u4e8b\u4ef6\u5904\u7406\u5668\u5bf9\u53d1\u751f\u7684\u4e8b\u4ef6\u505a\u51fa\u5904\u7406\u3002\u8fd9\u5c31\u662f\u7c7b\u4f3cHollywood\u539f\u5219\u7684\u201c\u53cd\u5411\u63a7\u5236\u201d\u3002\u5e94\u7528\u7a0b\u5e8f\u8981\u505a\u7684 \u4ec5\u4ec5\u662f\u5b9e\u73b0\u4e00\u4e2a\u5177\u4f53\u7684\u4e8b\u4ef6\u5904\u7406\u5668\uff0c\u7136\u540e\u628a\u5b83\u6ce8\u518c\u5230Reactor\u7ba1\u7406\u5668\u4e2d\u3002\u63a5\u4e0b\u6765\u7684\u5de5\u4f5c\u7531\u7ba1\u7406\u5668\u6765\u5b8c\u6210\u3002\u8fd9\u4e9b\u53c2\u4e0e\u8005\u7684\u76f8\u4e92\u5173\u7cfb\u5982\u4e0b\u56fe\u6240\u793a\u3002")),(0,o.yg)("p",null,(0,o.yg)("img",{alt:"image.png",src:r(7171).A,width:"750",height:"282"})),(0,o.yg)("h3",{id:"reactor-\u5904\u7406\u6b65\u9aa4"},"Reactor \u5904\u7406\u6b65\u9aa4"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},"\u521d\u59cb\u5316\u4e00\u4e2aReactor\u7ba1\u7406\u5668"),(0,o.yg)("li",{parentName:"ol"},"\u521d\u59cb\u5316\u4e8b\u4ef6\u5904\u7406\u5668,\u8bbe\u7f6e\u4e8b\u4ef6\u6e90\u53ca\u56de\u8c03\u51fd\u6570"),(0,o.yg)("li",{parentName:"ol"},"\u5c06\u4e8b\u4ef6\u5904\u7406\u5668\u6ce8\u518c\u5230Reactor\u7ba1\u7406\u5668\u4e0a"),(0,o.yg)("li",{parentName:"ol"},"\u6ce8\u518c\u8be5\u4e8b\u4ef6"),(0,o.yg)("li",{parentName:"ol"},"\u8fdb\u5165\u5faa\u73af\u7b49\u5f85\u4e8b\u4ef6\u53d1\u751f\u5e76\u5904\u7406")),(0,o.yg)("h3",{id:"\u4f18\u70b9"},"\u4f18\u70b9"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},"\u54cd\u5e94\u5feb\uff0c\u4e0d\u5fc5\u4e3a\u5355\u4e2a\u540c\u6b65\u65f6\u95f4\u6240\u963b\u585e\uff0c\u867d\u7136Reactor\u672c\u8eab\u4f9d\u7136\u662f\u540c\u6b65\u7684\uff1b"),(0,o.yg)("li",{parentName:"ol"},"\u7f16\u7a0b\u76f8\u5bf9\u7b80\u5355\uff0c\u53ef\u4ee5\u6700\u5927\u7a0b\u5ea6\u7684\u907f\u514d\u590d\u6742\u7684\u591a\u7ebf\u7a0b\u53ca\u540c\u6b65\u95ee\u9898\uff0c\u5e76\u4e14\u907f\u514d\u4e86\u591a\u7ebf\u7a0b/\u8fdb\u7a0b\u7684\u5207\u6362\u5f00\u9500\uff1b"),(0,o.yg)("li",{parentName:"ol"},"\u53ef\u6269\u5c55\u6027\uff0c\u53ef\u4ee5\u65b9\u4fbf\u7684\u901a\u8fc7\u589e\u52a0Reactor\u5b9e\u4f8b\u4e2a\u6570\u6765\u5145\u5206\u5229\u7528CPU\u8d44\u6e90\uff1b"),(0,o.yg)("li",{parentName:"ol"},"\u53ef\u590d\u7528\u6027\uff0creactor\u6846\u67b6\u672c\u8eab\u4e0e\u5177\u4f53\u4e8b\u4ef6\u5904\u7406\u903b\u8f91\u65e0\u5173\uff0c\u5177\u6709\u5f88\u9ad8\u7684\u590d\u7528\u6027\uff1b")),(0,o.yg)("p",null,(0,o.yg)("a",{parentName:"p",href:"https://blog.csdn.net/qq_35551407/article/details/107141036"}),"\n",(0,o.yg)("a",{parentName:"p",href:"https://blog.csdn.net/qq_35551407/article/details/107141036"})))}u.isMDXComponent=!0},312:(e,t,r)=>{r.d(t,{A:()=>a});const a=r.p+"assets/images/image1-edea0978619ca45e5aaa9c2240cde67f.png"},7171:(e,t,r)=>{r.d(t,{A:()=>a});const a=r.p+"assets/images/image2-d4b1ab3e24170354fa291fe102361811.png"}}]); \ No newline at end of file diff --git a/assets/js/b14b689b.a1fcb599.js b/assets/js/b14b689b.c59f402d.js similarity index 99% rename from assets/js/b14b689b.a1fcb599.js rename to assets/js/b14b689b.c59f402d.js index b6fb60791..ee8fc8f22 100644 --- a/assets/js/b14b689b.a1fcb599.js +++ b/assets/js/b14b689b.c59f402d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[225],{5680:(n,e,t)=>{t.d(e,{xA:()=>c,yg:()=>d});var s=t(6540);function r(n,e,t){return e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function a(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(n);e&&(s=s.filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),t.push.apply(t,s)}return t}function l(n){for(var e=1;e=0||(r[t]=n[t]);return r}(n,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(n);for(s=0;s=0||Object.prototype.propertyIsEnumerable.call(n,t)&&(r[t]=n[t])}return r}var i=s.createContext({}),p=function(n){var e=s.useContext(i),t=e;return n&&(t="function"==typeof n?n(e):l(l({},e),n)),t},c=function(n){var e=p(n.components);return s.createElement(i.Provider,{value:e},n.children)},u="mdxType",y={inlineCode:"code",wrapper:function(n){var e=n.children;return s.createElement(s.Fragment,{},e)}},g=s.forwardRef((function(n,e){var t=n.components,r=n.mdxType,a=n.originalType,i=n.parentName,c=o(n,["components","mdxType","originalType","parentName"]),u=p(t),g=r,d=u["".concat(i,".").concat(g)]||u[g]||y[g]||a;return t?s.createElement(d,l(l({ref:e},c),{},{components:t})):s.createElement(d,l({ref:e},c))}));function d(n,e){var t=arguments,r=e&&e.mdxType;if("string"==typeof n||r){var a=t.length,l=new Array(a);l[0]=g;var o={};for(var i in e)hasOwnProperty.call(e,i)&&(o[i]=e[i]);o.originalType=n,o[u]="string"==typeof n?n:r,l[1]=o;for(var p=2;p{t.r(e),t.d(e,{assets:()=>i,contentTitle:()=>l,default:()=>y,frontMatter:()=>a,metadata:()=>o,toc:()=>p});var s=t(8168),r=(t(6540),t(5680));const a={sidebar_position:2},l=void 0,o={unversionedId:"study/devops/API\u7684\u8bf7\u6c42\u91cf\u5206\u6790",id:"study/devops/API\u7684\u8bf7\u6c42\u91cf\u5206\u6790",title:"API\u7684\u8bf7\u6c42\u91cf\u5206\u6790",description:"\u6570\u636e\u6d41\u5411",source:"@site/docs/study/devops/API\u7684\u8bf7\u6c42\u91cf\u5206\u6790.md",sourceDirName:"study/devops",slug:"/study/devops/API\u7684\u8bf7\u6c42\u91cf\u5206\u6790",permalink:"/docs/study/devops/API\u7684\u8bf7\u6c42\u91cf\u5206\u6790",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"studySidebar",previous:{title:"\u6982\u8ff0",permalink:"/docs/study/devops/"},next:{title:"Linux\u53d1\u884c\u7248",permalink:"/docs/study/devops/Linux\u53d1\u884c\u7248"}},i={},p=[{value:"\u6570\u636e\u6d41\u5411",id:"\u6570\u636e\u6d41\u5411",level:3},{value:"\u5206\u6790\u70b9",id:"\u5206\u6790\u70b9",level:3},{value:"\u63a5\u53e3\u8bbf\u95ee\u91cf",id:"\u63a5\u53e3\u8bbf\u95ee\u91cf",level:4},{value:"\u8bbf\u95ee\u6700\u591a\u7684\u63a5\u53e3\u6392\u540d",id:"\u8bbf\u95ee\u6700\u591a\u7684\u63a5\u53e3\u6392\u540d",level:4},{value:"\u8bbf\u95ee\u6700\u591a\u7684IP\u6392\u540d",id:"\u8bbf\u95ee\u6700\u591a\u7684ip\u6392\u540d",level:4},{value:"\u8bbf\u95ee\u6700\u591a\u7684URL\u6392\u540d",id:"\u8bbf\u95ee\u6700\u591a\u7684url\u6392\u540d",level:4},{value:"ip\u548curl\u67e5\u8be2\u5217\u8868",id:"ip\u548curl\u67e5\u8be2\u5217\u8868",level:4},{value:"\u8bbf\u95ee\u6d4f\u89c8\u5668\u7c7b\u578b\u5206\u7c7b\u53ca\u6570\u91cf",id:"\u8bbf\u95ee\u6d4f\u89c8\u5668\u7c7b\u578b\u5206\u7c7b\u53ca\u6570\u91cf",level:4},{value:"\u8bbf\u95ee\u6d4f\u89c8\u5668Chrome\u7248\u672c\u53ca\u6570\u91cf",id:"\u8bbf\u95ee\u6d4f\u89c8\u5668chrome\u7248\u672c\u53ca\u6570\u91cf",level:4},{value:"\u8bbf\u95ee\u64cd\u4f5c\u7cfb\u7edf\u7c7b\u578b\u5206\u7c7b\u53ca\u6570\u91cf",id:"\u8bbf\u95ee\u64cd\u4f5c\u7cfb\u7edf\u7c7b\u578b\u5206\u7c7b\u53ca\u6570\u91cf",level:4},{value:"\u8bbf\u95ee\u6700\u591a\u7684\u56fd\u5bb6\u6392\u540d",id:"\u8bbf\u95ee\u6700\u591a\u7684\u56fd\u5bb6\u6392\u540d",level:4},{value:"\u8bbf\u95ee\u6700\u591a\u7684\u7701\u4efd\u6392\u540d",id:"\u8bbf\u95ee\u6700\u591a\u7684\u7701\u4efd\u6392\u540d",level:4},{value:"\u8bbf\u95ee\u6700\u591a\u7684\u57ce\u5e02\u6392\u540d",id:"\u8bbf\u95ee\u6700\u591a\u7684\u57ce\u5e02\u6392\u540d",level:4},{value:"HTTP\u54cd\u5e94\u7801\u975e200\u6570\u91cf\u53ca\u5217\u8868",id:"http\u54cd\u5e94\u7801\u975e200\u6570\u91cf\u53ca\u5217\u8868",level:4},{value:"HTTP method\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570",id:"http-method\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570",level:4},{value:"site\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570",id:"site\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570",level:4},{value:"httpv\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570",id:"httpv\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570",level:4},{value:"URL\u8bbf\u95eeIP\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570",id:"url\u8bbf\u95eeip\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570",level:4},{value:"\u6700\u6d3b\u8dc3\u7684\u67d0\u7c7bsite",id:"\u6700\u6d3b\u8dc3\u7684\u67d0\u7c7bsite",level:4}],c={toc:p},u="wrapper";function y(n){let{components:e,...t}=n;return(0,r.yg)(u,(0,s.A)({},c,t,{components:e,mdxType:"MDXLayout"}),(0,r.yg)("h3",{id:"\u6570\u636e\u6d41\u5411"},"\u6570\u636e\u6d41\u5411"),(0,r.yg)("p",null,"\u6d4f\u89c8\u5668 \u300bNginx \u300bAPI \u300b\u4ea7\u751fNginx log\u65e5\u5fd7 \u300bFilebeat \u300bLogstash \u300bElasticSearch"),(0,r.yg)("h3",{id:"\u5206\u6790\u70b9"},"\u5206\u6790\u70b9"),(0,r.yg)("h4",{id:"\u63a5\u53e3\u8bbf\u95ee\u91cf"},"\u63a5\u53e3\u8bbf\u95ee\u91cf"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'#\u8bbf\u95ee\u603b\u91cf\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \'{"size" : 0 }\'\n\n#\u6628\u65e5\u8bbf\u95ee\u603b\u91cf\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"sort": [{"ts": {"order": "desc"}}], \n "size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"24/May/2020:00:00:00 +0800",\n "lte":"25/May/2020:00:00:00 +0800"\n }}}}}\n}\'\n\n#\u6628\u65e5\u8bbf\u95ee\u603b\u91cf--\u6309\u7167\u5c0f\u65f6\u805a\u5408--\u6309\u7167\u65f6\u95f4\u6392\u5e8f\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"sort": [{"ts": {"order": "desc"}}], \n "size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"16/Jun/2020:00:00:00 +0800",\n "lte":"17/Jun/2020:00:00:00 +0800"\n }}}}},\n "aggs": {\n "groupby_hour_reqs":{\n "date_histogram":{\n "field":"ts",\n "interval":"1h",\n "format":"yyyy-MM-dd:HH",\n "time_zone":"+08:00",\n "min_doc_count": 0\n }\n }\n }\n}\'\n\n#\u6628\u65e5\u8bbf\u95ee\u603b\u91cf--\u6309\u7167\u5c0f\u65f6\u805a\u5408--\u6309\u7167\u8bbf\u95ee\u91cf\u6392\u5e8f\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"sort": [{"ts": {"order": "desc"}}], \n "size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"25/May/2020:00:00:00 +0800",\n "lte":"26/May/2020:00:00:00 +0800"\n }}}}},\n "aggs": {\n "groupby_hour_reqs":{\n "date_histogram":{\n "field":"ts",\n "interval":"1h",\n "format":"yyyy-MM-dd:HH",\n "time_zone":"+08:00",\n "min_doc_count": 0,\n "order" : {\n "_count" : "desc"\n }\n }\n }\n }\n}\'\n#100s\u5185\u8bbf\u95ee\u603b\u91cf--\u6309\u7167\u79d2\u805a\u5408--\u6309\u7167\u8bbf\u95ee\u91cf\u6392\u5e8f==QPS###################\n#########\u6240\u6709\u8bbf\u95ee\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"sort": [{"ts": {"order": "desc"}}], \n "size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"now-100s"\n }}}}},\n "aggs": {\n "groupby_hour_reqs":{\n "date_histogram":{\n "field":"ts",\n "interval":"1s",\n "format":"yyyy-MM-dd:HH:mm:ss",\n "time_zone":"+08:00",\n "min_doc_count": 20,\n "order" : {\n "_count" : "desc"\n }\n }\n }\n }\n}\'\n#########\u67d0\u4e2aIP\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"sort": [{"ts": {"order": "desc"}}], \n "size" : 0,\n "query":{"constant_score":{\n "filter":{\n "bool":{\n "must":[{"term":{"ip":"101.132.122.94"}},\n {"range":{"ts":{\n "gte":"now-600s"\n }}}\n ]\n }\n }\n }},\n "aggs": {\n "groupby_hour_reqs":{\n "date_histogram":{\n "field":"ts",\n "interval":"1s",\n "format":"yyyy-MM-dd:HH:mm:ss",\n "time_zone":"+08:00",\n "min_doc_count": 1,\n "order" : {\n "_count" : "desc"\n }\n }\n }\n }\n}\'\n\n#\u4eca\u65e5\u8bbf\u95ee\u603b\u91cf\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"sort": [{"ts": {"order": "desc"}}], \n "size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"23/May/2020:00:00:00 +0800"\n }}}}}\n}\'\n\n#\u5f53\u524d\u5c0f\u65f6\u8bbf\u95ee\u603b\u91cf\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"sort": [{"ts": {"order": "asc"}}], \n "size" : 1,\n "query":{"constant_score":{"filter":{"range":{"ts":{"gte":"now/h"}}}}}\n}\'\n\n#\u8fd1\u4e00\u4e2a\u6708\u8bbf\u95ee\u603b\u91cf--\u6309\u7167\u5929\u805a\u5408--\u6309\u7167\u65f6\u95f4\u6392\u5e8f --\u975e\u4e8c\u5f00\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"sort": [{"ts": {"order": "desc"}}], \n "size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"now-1M"\n }}}}},\n "aggs": {\n "groupby_hour_reqs":{\n "date_histogram":{\n "field":"ts",\n "interval":"1d",\n "format":"yyyy-MM-dd",\n "time_zone":"+08:00",\n "min_doc_count": 0\n }\n }\n }\n}\'\n#\u8fd1\u4e00\u4e2a\u6708\u8bbf\u95ee\u603b\u91cf--\u6309\u7167\u5929\u805a\u5408--\u6309\u7167\u65f6\u95f4\u6392\u5e8f --\u4e8c\u5f00\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"sort": [{"ts": {"order": "desc"}}], \n "size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"now-1M"\n }}}}},\n "aggs": {\n "groupby_hour_reqs":{\n "date_histogram":{\n "field":"ts",\n "interval":"1d",\n "format":"yyyy-MM-dd",\n "time_zone":"+08:00",\n "min_doc_count": 0\n }\n }\n }\n}\'\n')),(0,r.yg)("h4",{id:"\u8bbf\u95ee\u6700\u591a\u7684\u63a5\u53e3\u6392\u540d"},"\u8bbf\u95ee\u6700\u591a\u7684\u63a5\u53e3\u6392\u540d"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'# \u6240\u6709\u63a5\u53e3\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"22/May/2018:00:00:00 +0800"\n }}}}},\n "aggs": {"all_urls": {"terms": { "field": "url" }}}\n}\'\n\n# \u6628\u65e5\u63a5\u53e3\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 10,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"17/Dec/2020:00:00:00 +0800",\n "lte":"18/Dec/2020:00:00:00 +0800"\n }}}}},\n "aggs": {"all_urls": {"terms": { "field": "url" }}}\n}\'\n# \u4eca\u65e5\u63a5\u53e3\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"23/May/2020:00:00:00 +0800",\n "lte":"24/May/2020:00:00:00 +0800"\n }}}}},\n "aggs": {"all_urls": {"terms": { "field": "url" }}}\n }\'\n')),(0,r.yg)("h4",{id:"\u8bbf\u95ee\u6700\u591a\u7684ip\u6392\u540d"},"\u8bbf\u95ee\u6700\u591a\u7684IP\u6392\u540d"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'# \u6240\u6709IP\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"23/May/2018:00:00:00 +0800"\n }}}}},\n "aggs": {"all_ips": {"terms": { "field": "ip" , "size":10 }}}\n}\'\n \n# \u6628\u65e5IP\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"25/May/2020:00:00:00 +0800",\n "lte":"26/May/2020:00:00:00 +0800"\n }}}}},\n "aggs": {"all_ips": {"terms": { "field": "ip" , "size":10 }}}\n}\'\n \n# \u4eca\u65e5IP\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"7/Sep/2020:00:00:00 +0800",\n "lte":"8/Sep/2020:00:00:00 +0800"\n }}}}},\n "aggs": {"all_ips": {"terms": { "field": "ip" , "size":10 }}}\n}\'\n\n')),(0,r.yg)("ol",null,(0,r.yg)("li",{parentName:"ol"},"doc_count_error_upper_bound\u8868\u793a\u7684\u662f\u6bcf\u4e2a\u5206\u7247\u8fd4\u56de\u7684\u6700\u5c0f\u7684\u6570\u91cf\u603b\u548c\uff0c\u6bd4\u5982\u8fd9\u91cc\u76846\u5c31\u662f\u7b2c\u4e00\u4e2a\u5206\u7247\u4e2d\u7684d\u4e2d\u76844\u52a0\u4e0a\u7b2c\u4e8c\u5206\u7247\u4e2d\u7684b\u4e2d\u76842\u3002\u4e5f\u5c31\u662f\u8bf4ES\u8ba4\u4e3a\u90a3\u4e9b\u672c\u5e94\u8be5\u8fd4\u56de\u56de\u6765\u7684\u6587\u6863\u5047\u8bbe\u5b83\u5728\u6bcf\u4e2a\u5206\u7247\u4e0a\u7684\u6700\u5927\u503c\u5c31\u662f\u8fd4\u56de\u7684\u6700\u5c0f\u503c\u3002"),(0,r.yg)("li",{parentName:"ol"},"sum_other_doc_count\u5c31\u662f\u603b\u6587\u6863\u6570\u91cf\u51cf\u53bb\u8fd4\u56de\u7684\u6587\u6863\u603b\u6570\u91cf\u3002")),(0,r.yg)("h4",{id:"\u8bbf\u95ee\u6700\u591a\u7684url\u6392\u540d"},"\u8bbf\u95ee\u6700\u591a\u7684URL\u6392\u540d"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'# \u6240\u6709URL\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"23/May/2018:00:00:00 +0800"\n }}}}},\n "aggs": {"all_ips": {"terms": { "field": "url" , "size":10 }}}\n}\'\n \n# \u6628\u65e5URL\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"25/May/2020:00:00:00 +0800",\n "lte":"26/May/2020:00:00:00 +0800"\n }}}}},\n "aggs": {"all_ips": {"terms": { "field": "url" , "size":10 }}}\n}\'\n \n# \u4eca\u65e5URL\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"8/Jun/2020:00:00:00 +0800",\n "lte":"9/Jun/2020:00:00:00 +0800"\n }}}}},\n "aggs": {"all_ips": {"terms": { "field": "url" , "size":10 }}}\n}\'\n#########################################################\n# \u67d0\u4e2aIP\u6240\u6709URL\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{"constant_score":{\n "filter":{\n "bool":{\n "must":[{"term":{"ip":"101.132.122.94"}},\n {"range":{"ts":{\n "gte":"23/May/2018:00:00:00 +0800"\n }}}\n ]\n }\n }\n }},\n "aggs": {"all_ips": {"terms": { "field": "url" , "size":10 }}}\n}\'\n# \u67d0\u4e2aIP\u4eca\u65e5URL\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 1,\n "query":{"constant_score":{\n "filter":{\n "bool":{\n "must":[{"term":{"ip":"114.115.190.201"}},\n {"range":{"ts":{\n "gte":"7/Sep/2020:00:00:00 +0800",\n "lte":"8/Sep/2020:00:00:00 +0800"\n }}}\n ]\n }\n }\n }},\n "aggs": {"all_ips": {"terms": { "field": "url" , "size":10 }}}\n}\'\n\n\n')),(0,r.yg)("h4",{id:"ip\u548curl\u67e5\u8be2\u5217\u8868"},"ip\u548curl\u67e5\u8be2\u5217\u8868"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'# \ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 10,"sort": [{"ts": {"order": "desc"}}], \n "query":{"constant_score":{\n "filter":{\n "bool":{\n "must":[{"term":{"ip":"113.110.165.243"}},\n {"term":{"url":"/xxx/xxx"}},\n {"range":{"ts":{\n "gte":"11/Jun/2020:00:00:00 +0800",\n "lte":"12/Jun/2020:00:00:00 +0800"\n }}}\n ]\n }\n }\n }}\n}\'\n')),(0,r.yg)("h4",{id:"\u8bbf\u95ee\u6d4f\u89c8\u5668\u7c7b\u578b\u5206\u7c7b\u53ca\u6570\u91cf"},"\u8bbf\u95ee\u6d4f\u89c8\u5668\u7c7b\u578b\u5206\u7c7b\u53ca\u6570\u91cf"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'# \u6240\u6709\u6d4f\u89c8\u5668\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/rc_nginx_api/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"22/May/2018:00:00:00 +0800"\n }}}}},\n "aggs": {"all_uajnames": {"terms": { "field": "uaj.name" , "size":100 }}}\n }\'\n# \u6628\u65e5\u6d4f\u89c8\u5668\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 1,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"22/May/2020:00:00:00 +0800",\n "lte":"23/May/2020:00:00:00 +0800"\n }}}}},\n "aggs": {"all_uajnames": {"terms": { "field": "uaj.name" , "size":10 }}}\n }\'\n')),(0,r.yg)("h4",{id:"\u8bbf\u95ee\u6d4f\u89c8\u5668chrome\u7248\u672c\u53ca\u6570\u91cf"},"\u8bbf\u95ee\u6d4f\u89c8\u5668Chrome\u7248\u672c\u53ca\u6570\u91cf"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'# \u6240\u6709\u6d4f\u89c8\u5668\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/rc_nginx_api/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 1,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"22/May/2018:00:00:00 +0800"\n }}}}},\n "aggs": {"all_uajoss": {"terms": { "field": "uaj.major" , "size":10 }}}\n }\'\n# \u6628\u65e5\u6d4f\u89c8\u5668\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 1,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"22/May/2020:00:00:00 +0800",\n "lte":"23/May/2020:00:00:00 +0800"\n }}}}},\n "aggs": {"all_uajoss": {"terms": { "field": "uaj.major" , "size":10 }}}\n }\'\n')),(0,r.yg)("h4",{id:"\u8bbf\u95ee\u64cd\u4f5c\u7cfb\u7edf\u7c7b\u578b\u5206\u7c7b\u53ca\u6570\u91cf"},"\u8bbf\u95ee\u64cd\u4f5c\u7cfb\u7edf\u7c7b\u578b\u5206\u7c7b\u53ca\u6570\u91cf"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'# \u6240\u6709\u64cd\u4f5c\u7cfb\u7edf\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 1,\n "query":{\n "constant_score":{\n "filter":{\n "bool":{\n "must":[\n {"range":{"ts":{\n "gte":"22/May/2018:00:00:00 +0800"\n }}}\n ]\n }\n }\n }},\n "aggs": {"all_uajoss": {"terms": { "field": "uaj.os" , "size":100 }}}\n }\'\n')),(0,r.yg)("h4",{id:"\u8bbf\u95ee\u6700\u591a\u7684\u56fd\u5bb6\u6392\u540d"},"\u8bbf\u95ee\u6700\u591a\u7684\u56fd\u5bb6\u6392\u540d"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'# \u6240\u6709\u8bbf\u95ee\u56fd\u5bb6\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"22/May/2018:00:00:00 +0800"\n }}}}},\n "aggs": {"all_uajoss": {"terms": { "field": "ipj.country_name" , "size":10 }}}\n}\'\n# \u6628\u65e5\u8bbf\u95ee\u56fd\u5bb6\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 1,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"1/Jun/2020:00:00:00 +0800",\n "lte":"2/Jun/2020:00:00:00 +0800"\n }}}}},\n "aggs": {"all_uajoss": {"terms": { "field": "ipj.country_name" , "size":10 }}}\n}\'\n')),(0,r.yg)("h4",{id:"\u8bbf\u95ee\u6700\u591a\u7684\u7701\u4efd\u6392\u540d"},"\u8bbf\u95ee\u6700\u591a\u7684\u7701\u4efd\u6392\u540d"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'# \u6240\u6709\u8bbf\u95ee\u7701\u4efd\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 10,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"22/May/2018:00:00:00 +0800"\n }}}}},\n "aggs": {"all_uajoss": {"terms": { "field": "ipj.region_name" , "size":10 }}}\n}\'\n# \u6628\u65e5\u8bbf\u95ee\u7701\u4efd\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 1,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"31/May/2020:00:00:00 +0800",\n "lte":"2/Jun/2020:00:00:00 +0800"\n }}}}},\n "aggs": {"all_uajoss": {"terms": { "field": "ipj.region_name" , "size":10 }}}\n}\'\n')),(0,r.yg)("h4",{id:"\u8bbf\u95ee\u6700\u591a\u7684\u57ce\u5e02\u6392\u540d"},"\u8bbf\u95ee\u6700\u591a\u7684\u57ce\u5e02\u6392\u540d"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'# \u6240\u6709\u8bbf\u95ee\u57ce\u5e02\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"22/May/2018:00:00:00 +0800"\n }}}}},\n "aggs": {"all_uajoss": {"terms": { "field": "ipj.city_name" , "size":10 }}}\n}\'\n# \u6628\u65e5\u8bbf\u95ee\u57ce\u5e02\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"1/Jun/2020:00:00:00 +0800",\n "lte":"2/Jun/2020:00:00:00 +0800"\n }}}}},\n "aggs": {"all_uajoss": {"terms": { "field": "ipj.city_name" , "size":10 }}}\n}\'\n')),(0,r.yg)("h4",{id:"http\u54cd\u5e94\u7801\u975e200\u6570\u91cf\u53ca\u5217\u8868"},"HTTP\u54cd\u5e94\u7801\u975e200\u6570\u91cf\u53ca\u5217\u8868"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'# \u6240\u6709HTTP\u54cd\u5e94\u7801\u975e200\u5217\u8868\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 100,\n "query":{\n "constant_score":{\n "filter":{\n "bool":{\n "must_not":[\n {"term":{"code":"200"}}\n ],\n "must":[\n {"range":{"ts":{\n "gte":"22/May/2018:00:00:00 +0800"\n }}}\n ]\n }\n }\n }}\n }\'\n \n \n# \u6628\u65e5HTTP\u54cd\u5e94\u7801\u975e200\u5217\u8868\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 10,\n "query":{\n "constant_score":{\n "filter":{\n "bool":{\n "must_not":[\n {"term":{"code":"200"}}\n ],\n "must":[\n {"range":{"ts":{\n "gte":"25/May/2020:00:00:00 +0800",\n "lte":"26/May/2020:00:00:00 +0800"\n }}}\n ]\n }\n }\n }}\n }\'\n \n\n# \u6240\u6709HTTP\u54cd\u5e94\u7801\u975e200\u5206\u7c7b\u53ca\u8c03\u7528\u6570\u91cf\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 1,\n "query":{\n "constant_score":{\n "filter":{\n "bool":{\n "must_not":[\n {"term":{"code":"200"}}\n ],\n "must":[\n {"range":{"ts":{\n "gte":"22/May/2018:00:00:00 +0800"\n }}}\n ]\n }\n }\n }},\n "aggs": {"all_uajoss": {"terms": { "field": "code" , "size":100 }}}\n }\'\n\n\n# \u6628\u65e5HTTP\u54cd\u5e94\u7801\u975e200\u5206\u7c7b\u53ca\u8c03\u7528\u6570\u91cf\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 1,\n "query":{\n "constant_score":{\n "filter":{\n "bool":{\n "must_not":[\n {"term":{"code":"200"}}\n ],\n "must":[\n {"range":{"ts":{\n "gte":"22/May/2020:00:00:00 +0800",\n "lte":"23/May/2020:00:00:00 +0800"\n }}}\n ]\n }\n }\n }},\n "aggs": {"all_uajoss": {"terms": { "field": "code" , "size":100 }}}\n }\'\n\n\n# \u6240\u6709HTTP\u54cd\u5e94\u7801\u975e200(499)url\u5206\u7c7b\u53ca\u8c03\u7528\u6570\u91cf\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 1,\n "query":{\n "constant_score":{\n "filter":{\n "bool":{\n "must":[{"term":{"code":"499"}},\n {"range":{"ts":{\n "gte":"22/May/2018:00:00:00 +0800"\n }}}\n ]\n }\n }\n }},\n "aggs": {"all_uajoss": {"terms": { "field": "url" , "size":10 }}}\n }\'\n \n# \u6628\u65e5HTTP\u54cd\u5e94\u7801\u975e200(499)url\u5206\u7c7b\u53ca\u8c03\u7528\u6570\u91cf\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 1,\n "query":{\n "constant_score":{\n "filter":{\n "bool":{\n "must":[{"term":{"code":"499"}},\n {"range":{"ts":{\n "gte":"22/May/2020:00:00:00 +0800",\n "lte":"23/May/2020:00:00:00 +0800"\n }}}\n ]\n }\n }\n }},\n "aggs": {"all_uajoss": {"terms": { "field": "url" , "size":10 }}}\n }\'\n\n\n# \u6240\u6709HTTP\u54cd\u5e94\u7801\u975e200(404)url\u5206\u7c7b\u53ca\u8c03\u7528\u6570\u91cf\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 1,\n "query":{\n "constant_score":{\n "filter":{\n "bool":{\n "must":[{"term":{"code":"404"}},\n {"range":{"ts":{\n "gte":"22/May/2018:00:00:00 +0800"\n }}}\n ]\n }\n }\n }},\n "aggs": {"all_uajoss": {"terms": { "field": "url" , "size":10 }}}\n }\'\n\n# \u6628\u65e5HTTP\u54cd\u5e94\u7801\u975e200(404)url\u5206\u7c7b\u53ca\u8c03\u7528\u6570\u91cf\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 1,\n "query":{\n "constant_score":{\n "filter":{\n "bool":{\n "must":[{"term":{"code":"404"}},\n {"range":{"ts":{\n "gte":"22/May/2020:00:00:00 +0800",\n "lte":"23/May/2020:00:00:00 +0800"\n }}}\n ]\n }\n }\n }},\n "aggs": {"all_uajoss": {"terms": { "field": "url" , "size":10 }}}\n }\'\n')),(0,r.yg)("h4",{id:"http-method\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570"},"HTTP method\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'# \u6240\u6709HTTP method\u5206\u7c7b\u53ca\u6570\u91cf\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 1,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"22/May/2018:00:00:00 +0800"\n }}}}},\n "aggs": {"all_uajnames": {"terms": { "field": "method" , "size":10 }}}\n }\'\n')),(0,r.yg)("h4",{id:"site\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570"},"site\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'# \u6240\u6709site\u5206\u7c7b\u53ca\u6570\u91cf\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"22/May/2018:00:00:00 +0800"\n }}}}},\n "aggs": {"all_uajnames": {"terms": { "field": "site" , "size":100 }}}\n}\'\n# \u67d0\u4e2aIP\u4eca\u65e5site\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,"sort": [{"ts": {"order": "desc"}}], \n "query":{"constant_score":{\n "filter":{\n "bool":{\n "must":[{"term":{"ip":"114.115.190.196"}},\n {"range":{"ts":{\n "gte":"8/Jun/2020:00:00:00 +0800",\n "lte":"9/Jun/2020:00:00:00 +0800"\n }}}\n ]\n }\n }\n }},\n "aggs": {"all_ips": {"terms": { "field": "site" , "size":10 }}}\n}\' \n')),(0,r.yg)("h4",{id:"httpv\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570"},"httpv\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'# \u6240\u6709HTTP method\u5206\u7c7b\u53ca\u6570\u91cf\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 1,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"22/May/2018:00:00:00 +0800"\n }}}}},\n "aggs": {"all_uajnames": {"terms": { "field": "httpv" , "size":10 }}}\n }\'\n')),(0,r.yg)("h4",{id:"url\u8bbf\u95eeip\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570"},"URL\u8bbf\u95eeIP\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'# URL\u8bbf\u95eeIP\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570--\u67e5\u8be2\u5386\u53f2\u8bb0\u5f55\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{"constant_score":{\n "filter":{\n "bool":{\n "must":[{"term":{"url":"/xxx/xx/xx"}},\n {"range":{"ts":{\n "gte":"8/Jun/2020:00:00:00 +0800",\n "lte":"9/Jun/2020:00:00:00 +0800"\n }}}\n ]\n }\n }\n }},\n "aggs": {"all_urls": {"terms": { "field": "ip" }}}\n}\'\n\n# URL\u8bbf\u95eeIP\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570--\u767b\u5f55\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{"constant_score":{\n "filter":{\n "bool":{\n "must":[{"term":{"url":"/xx/xx/xx"}},\n {"range":{"ts":{\n "gte":"8/Jun/2020:00:00:00 +0800",\n "lte":"9/Jun/2020:00:00:00 +0800"\n }}}\n ]\n }\n }\n }},\n "aggs": {"all_urls": {"terms": { "field": "ip" }}}\n}\'\n')),(0,r.yg)("h4",{id:"\u6700\u6d3b\u8dc3\u7684\u67d0\u7c7bsite"},"\u6700\u6d3b\u8dc3\u7684\u67d0\u7c7bsite"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'#10\u5927\u6700\u6d3b\u8dc3\u7684\u5206\u4eab\u7ec4\u6001\ncurl -XPOST \'http://127.0.0.1:9200/{\u5177\u4f53\u7684e\'s}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{\n "wildcard": {\n "site": "*show.html*share*"\n }\n },\n "aggs": {"all_ips": {"terms": { "field": "site" , "size":100 }}}\n}\'\n')))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[225],{5680:(n,e,t)=>{t.d(e,{xA:()=>c,yg:()=>d});var s=t(6540);function r(n,e,t){return e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function a(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(n);e&&(s=s.filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),t.push.apply(t,s)}return t}function l(n){for(var e=1;e=0||(r[t]=n[t]);return r}(n,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(n);for(s=0;s=0||Object.prototype.propertyIsEnumerable.call(n,t)&&(r[t]=n[t])}return r}var i=s.createContext({}),p=function(n){var e=s.useContext(i),t=e;return n&&(t="function"==typeof n?n(e):l(l({},e),n)),t},c=function(n){var e=p(n.components);return s.createElement(i.Provider,{value:e},n.children)},u="mdxType",y={inlineCode:"code",wrapper:function(n){var e=n.children;return s.createElement(s.Fragment,{},e)}},g=s.forwardRef((function(n,e){var t=n.components,r=n.mdxType,a=n.originalType,i=n.parentName,c=o(n,["components","mdxType","originalType","parentName"]),u=p(t),g=r,d=u["".concat(i,".").concat(g)]||u[g]||y[g]||a;return t?s.createElement(d,l(l({ref:e},c),{},{components:t})):s.createElement(d,l({ref:e},c))}));function d(n,e){var t=arguments,r=e&&e.mdxType;if("string"==typeof n||r){var a=t.length,l=new Array(a);l[0]=g;var o={};for(var i in e)hasOwnProperty.call(e,i)&&(o[i]=e[i]);o.originalType=n,o[u]="string"==typeof n?n:r,l[1]=o;for(var p=2;p{t.r(e),t.d(e,{assets:()=>i,contentTitle:()=>l,default:()=>y,frontMatter:()=>a,metadata:()=>o,toc:()=>p});var s=t(8168),r=(t(6540),t(5680));const a={sidebar_position:2},l=void 0,o={unversionedId:"study/devops/API\u7684\u8bf7\u6c42\u91cf\u5206\u6790",id:"study/devops/API\u7684\u8bf7\u6c42\u91cf\u5206\u6790",title:"API\u7684\u8bf7\u6c42\u91cf\u5206\u6790",description:"\u6570\u636e\u6d41\u5411",source:"@site/docs/study/devops/API\u7684\u8bf7\u6c42\u91cf\u5206\u6790.md",sourceDirName:"study/devops",slug:"/study/devops/API\u7684\u8bf7\u6c42\u91cf\u5206\u6790",permalink:"/docs/study/devops/API\u7684\u8bf7\u6c42\u91cf\u5206\u6790",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"studySidebar",previous:{title:"\u6982\u8ff0",permalink:"/docs/study/devops/"},next:{title:"Linux\u53d1\u884c\u7248",permalink:"/docs/study/devops/Linux\u53d1\u884c\u7248"}},i={},p=[{value:"\u6570\u636e\u6d41\u5411",id:"\u6570\u636e\u6d41\u5411",level:3},{value:"\u5206\u6790\u70b9",id:"\u5206\u6790\u70b9",level:3},{value:"\u63a5\u53e3\u8bbf\u95ee\u91cf",id:"\u63a5\u53e3\u8bbf\u95ee\u91cf",level:4},{value:"\u8bbf\u95ee\u6700\u591a\u7684\u63a5\u53e3\u6392\u540d",id:"\u8bbf\u95ee\u6700\u591a\u7684\u63a5\u53e3\u6392\u540d",level:4},{value:"\u8bbf\u95ee\u6700\u591a\u7684IP\u6392\u540d",id:"\u8bbf\u95ee\u6700\u591a\u7684ip\u6392\u540d",level:4},{value:"\u8bbf\u95ee\u6700\u591a\u7684URL\u6392\u540d",id:"\u8bbf\u95ee\u6700\u591a\u7684url\u6392\u540d",level:4},{value:"ip\u548curl\u67e5\u8be2\u5217\u8868",id:"ip\u548curl\u67e5\u8be2\u5217\u8868",level:4},{value:"\u8bbf\u95ee\u6d4f\u89c8\u5668\u7c7b\u578b\u5206\u7c7b\u53ca\u6570\u91cf",id:"\u8bbf\u95ee\u6d4f\u89c8\u5668\u7c7b\u578b\u5206\u7c7b\u53ca\u6570\u91cf",level:4},{value:"\u8bbf\u95ee\u6d4f\u89c8\u5668Chrome\u7248\u672c\u53ca\u6570\u91cf",id:"\u8bbf\u95ee\u6d4f\u89c8\u5668chrome\u7248\u672c\u53ca\u6570\u91cf",level:4},{value:"\u8bbf\u95ee\u64cd\u4f5c\u7cfb\u7edf\u7c7b\u578b\u5206\u7c7b\u53ca\u6570\u91cf",id:"\u8bbf\u95ee\u64cd\u4f5c\u7cfb\u7edf\u7c7b\u578b\u5206\u7c7b\u53ca\u6570\u91cf",level:4},{value:"\u8bbf\u95ee\u6700\u591a\u7684\u56fd\u5bb6\u6392\u540d",id:"\u8bbf\u95ee\u6700\u591a\u7684\u56fd\u5bb6\u6392\u540d",level:4},{value:"\u8bbf\u95ee\u6700\u591a\u7684\u7701\u4efd\u6392\u540d",id:"\u8bbf\u95ee\u6700\u591a\u7684\u7701\u4efd\u6392\u540d",level:4},{value:"\u8bbf\u95ee\u6700\u591a\u7684\u57ce\u5e02\u6392\u540d",id:"\u8bbf\u95ee\u6700\u591a\u7684\u57ce\u5e02\u6392\u540d",level:4},{value:"HTTP\u54cd\u5e94\u7801\u975e200\u6570\u91cf\u53ca\u5217\u8868",id:"http\u54cd\u5e94\u7801\u975e200\u6570\u91cf\u53ca\u5217\u8868",level:4},{value:"HTTP method\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570",id:"http-method\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570",level:4},{value:"site\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570",id:"site\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570",level:4},{value:"httpv\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570",id:"httpv\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570",level:4},{value:"URL\u8bbf\u95eeIP\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570",id:"url\u8bbf\u95eeip\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570",level:4},{value:"\u6700\u6d3b\u8dc3\u7684\u67d0\u7c7bsite",id:"\u6700\u6d3b\u8dc3\u7684\u67d0\u7c7bsite",level:4}],c={toc:p},u="wrapper";function y(n){let{components:e,...t}=n;return(0,r.yg)(u,(0,s.A)({},c,t,{components:e,mdxType:"MDXLayout"}),(0,r.yg)("h3",{id:"\u6570\u636e\u6d41\u5411"},"\u6570\u636e\u6d41\u5411"),(0,r.yg)("p",null,"\u6d4f\u89c8\u5668 \u300bNginx \u300bAPI \u300b\u4ea7\u751fNginx log\u65e5\u5fd7 \u300bFilebeat \u300bLogstash \u300bElasticSearch"),(0,r.yg)("h3",{id:"\u5206\u6790\u70b9"},"\u5206\u6790\u70b9"),(0,r.yg)("h4",{id:"\u63a5\u53e3\u8bbf\u95ee\u91cf"},"\u63a5\u53e3\u8bbf\u95ee\u91cf"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'#\u8bbf\u95ee\u603b\u91cf\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \'{"size" : 0 }\'\n\n#\u6628\u65e5\u8bbf\u95ee\u603b\u91cf\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"sort": [{"ts": {"order": "desc"}}], \n "size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"24/May/2020:00:00:00 +0800",\n "lte":"25/May/2020:00:00:00 +0800"\n }}}}}\n}\'\n\n#\u6628\u65e5\u8bbf\u95ee\u603b\u91cf--\u6309\u7167\u5c0f\u65f6\u805a\u5408--\u6309\u7167\u65f6\u95f4\u6392\u5e8f\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"sort": [{"ts": {"order": "desc"}}], \n "size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"16/Jun/2020:00:00:00 +0800",\n "lte":"17/Jun/2020:00:00:00 +0800"\n }}}}},\n "aggs": {\n "groupby_hour_reqs":{\n "date_histogram":{\n "field":"ts",\n "interval":"1h",\n "format":"yyyy-MM-dd:HH",\n "time_zone":"+08:00",\n "min_doc_count": 0\n }\n }\n }\n}\'\n\n#\u6628\u65e5\u8bbf\u95ee\u603b\u91cf--\u6309\u7167\u5c0f\u65f6\u805a\u5408--\u6309\u7167\u8bbf\u95ee\u91cf\u6392\u5e8f\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"sort": [{"ts": {"order": "desc"}}], \n "size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"25/May/2020:00:00:00 +0800",\n "lte":"26/May/2020:00:00:00 +0800"\n }}}}},\n "aggs": {\n "groupby_hour_reqs":{\n "date_histogram":{\n "field":"ts",\n "interval":"1h",\n "format":"yyyy-MM-dd:HH",\n "time_zone":"+08:00",\n "min_doc_count": 0,\n "order" : {\n "_count" : "desc"\n }\n }\n }\n }\n}\'\n#100s\u5185\u8bbf\u95ee\u603b\u91cf--\u6309\u7167\u79d2\u805a\u5408--\u6309\u7167\u8bbf\u95ee\u91cf\u6392\u5e8f==QPS###################\n#########\u6240\u6709\u8bbf\u95ee\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"sort": [{"ts": {"order": "desc"}}], \n "size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"now-100s"\n }}}}},\n "aggs": {\n "groupby_hour_reqs":{\n "date_histogram":{\n "field":"ts",\n "interval":"1s",\n "format":"yyyy-MM-dd:HH:mm:ss",\n "time_zone":"+08:00",\n "min_doc_count": 20,\n "order" : {\n "_count" : "desc"\n }\n }\n }\n }\n}\'\n#########\u67d0\u4e2aIP\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"sort": [{"ts": {"order": "desc"}}], \n "size" : 0,\n "query":{"constant_score":{\n "filter":{\n "bool":{\n "must":[{"term":{"ip":"101.132.122.94"}},\n {"range":{"ts":{\n "gte":"now-600s"\n }}}\n ]\n }\n }\n }},\n "aggs": {\n "groupby_hour_reqs":{\n "date_histogram":{\n "field":"ts",\n "interval":"1s",\n "format":"yyyy-MM-dd:HH:mm:ss",\n "time_zone":"+08:00",\n "min_doc_count": 1,\n "order" : {\n "_count" : "desc"\n }\n }\n }\n }\n}\'\n\n#\u4eca\u65e5\u8bbf\u95ee\u603b\u91cf\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"sort": [{"ts": {"order": "desc"}}], \n "size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"23/May/2020:00:00:00 +0800"\n }}}}}\n}\'\n\n#\u5f53\u524d\u5c0f\u65f6\u8bbf\u95ee\u603b\u91cf\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"sort": [{"ts": {"order": "asc"}}], \n "size" : 1,\n "query":{"constant_score":{"filter":{"range":{"ts":{"gte":"now/h"}}}}}\n}\'\n\n#\u8fd1\u4e00\u4e2a\u6708\u8bbf\u95ee\u603b\u91cf--\u6309\u7167\u5929\u805a\u5408--\u6309\u7167\u65f6\u95f4\u6392\u5e8f --\u975e\u4e8c\u5f00\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"sort": [{"ts": {"order": "desc"}}], \n "size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"now-1M"\n }}}}},\n "aggs": {\n "groupby_hour_reqs":{\n "date_histogram":{\n "field":"ts",\n "interval":"1d",\n "format":"yyyy-MM-dd",\n "time_zone":"+08:00",\n "min_doc_count": 0\n }\n }\n }\n}\'\n#\u8fd1\u4e00\u4e2a\u6708\u8bbf\u95ee\u603b\u91cf--\u6309\u7167\u5929\u805a\u5408--\u6309\u7167\u65f6\u95f4\u6392\u5e8f --\u4e8c\u5f00\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"sort": [{"ts": {"order": "desc"}}], \n "size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"now-1M"\n }}}}},\n "aggs": {\n "groupby_hour_reqs":{\n "date_histogram":{\n "field":"ts",\n "interval":"1d",\n "format":"yyyy-MM-dd",\n "time_zone":"+08:00",\n "min_doc_count": 0\n }\n }\n }\n}\'\n')),(0,r.yg)("h4",{id:"\u8bbf\u95ee\u6700\u591a\u7684\u63a5\u53e3\u6392\u540d"},"\u8bbf\u95ee\u6700\u591a\u7684\u63a5\u53e3\u6392\u540d"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'# \u6240\u6709\u63a5\u53e3\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"22/May/2018:00:00:00 +0800"\n }}}}},\n "aggs": {"all_urls": {"terms": { "field": "url" }}}\n}\'\n\n# \u6628\u65e5\u63a5\u53e3\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 10,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"17/Dec/2020:00:00:00 +0800",\n "lte":"18/Dec/2020:00:00:00 +0800"\n }}}}},\n "aggs": {"all_urls": {"terms": { "field": "url" }}}\n}\'\n# \u4eca\u65e5\u63a5\u53e3\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"23/May/2020:00:00:00 +0800",\n "lte":"24/May/2020:00:00:00 +0800"\n }}}}},\n "aggs": {"all_urls": {"terms": { "field": "url" }}}\n }\'\n')),(0,r.yg)("h4",{id:"\u8bbf\u95ee\u6700\u591a\u7684ip\u6392\u540d"},"\u8bbf\u95ee\u6700\u591a\u7684IP\u6392\u540d"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'# \u6240\u6709IP\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"23/May/2018:00:00:00 +0800"\n }}}}},\n "aggs": {"all_ips": {"terms": { "field": "ip" , "size":10 }}}\n}\'\n \n# \u6628\u65e5IP\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"25/May/2020:00:00:00 +0800",\n "lte":"26/May/2020:00:00:00 +0800"\n }}}}},\n "aggs": {"all_ips": {"terms": { "field": "ip" , "size":10 }}}\n}\'\n \n# \u4eca\u65e5IP\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"7/Sep/2020:00:00:00 +0800",\n "lte":"8/Sep/2020:00:00:00 +0800"\n }}}}},\n "aggs": {"all_ips": {"terms": { "field": "ip" , "size":10 }}}\n}\'\n\n')),(0,r.yg)("ol",null,(0,r.yg)("li",{parentName:"ol"},"doc_count_error_upper_bound\u8868\u793a\u7684\u662f\u6bcf\u4e2a\u5206\u7247\u8fd4\u56de\u7684\u6700\u5c0f\u7684\u6570\u91cf\u603b\u548c\uff0c\u6bd4\u5982\u8fd9\u91cc\u76846\u5c31\u662f\u7b2c\u4e00\u4e2a\u5206\u7247\u4e2d\u7684d\u4e2d\u76844\u52a0\u4e0a\u7b2c\u4e8c\u5206\u7247\u4e2d\u7684b\u4e2d\u76842\u3002\u4e5f\u5c31\u662f\u8bf4ES\u8ba4\u4e3a\u90a3\u4e9b\u672c\u5e94\u8be5\u8fd4\u56de\u56de\u6765\u7684\u6587\u6863\u5047\u8bbe\u5b83\u5728\u6bcf\u4e2a\u5206\u7247\u4e0a\u7684\u6700\u5927\u503c\u5c31\u662f\u8fd4\u56de\u7684\u6700\u5c0f\u503c\u3002"),(0,r.yg)("li",{parentName:"ol"},"sum_other_doc_count\u5c31\u662f\u603b\u6587\u6863\u6570\u91cf\u51cf\u53bb\u8fd4\u56de\u7684\u6587\u6863\u603b\u6570\u91cf\u3002")),(0,r.yg)("h4",{id:"\u8bbf\u95ee\u6700\u591a\u7684url\u6392\u540d"},"\u8bbf\u95ee\u6700\u591a\u7684URL\u6392\u540d"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'# \u6240\u6709URL\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"23/May/2018:00:00:00 +0800"\n }}}}},\n "aggs": {"all_ips": {"terms": { "field": "url" , "size":10 }}}\n}\'\n \n# \u6628\u65e5URL\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"25/May/2020:00:00:00 +0800",\n "lte":"26/May/2020:00:00:00 +0800"\n }}}}},\n "aggs": {"all_ips": {"terms": { "field": "url" , "size":10 }}}\n}\'\n \n# \u4eca\u65e5URL\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"8/Jun/2020:00:00:00 +0800",\n "lte":"9/Jun/2020:00:00:00 +0800"\n }}}}},\n "aggs": {"all_ips": {"terms": { "field": "url" , "size":10 }}}\n}\'\n#########################################################\n# \u67d0\u4e2aIP\u6240\u6709URL\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{"constant_score":{\n "filter":{\n "bool":{\n "must":[{"term":{"ip":"101.132.122.94"}},\n {"range":{"ts":{\n "gte":"23/May/2018:00:00:00 +0800"\n }}}\n ]\n }\n }\n }},\n "aggs": {"all_ips": {"terms": { "field": "url" , "size":10 }}}\n}\'\n# \u67d0\u4e2aIP\u4eca\u65e5URL\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 1,\n "query":{"constant_score":{\n "filter":{\n "bool":{\n "must":[{"term":{"ip":"114.115.190.201"}},\n {"range":{"ts":{\n "gte":"7/Sep/2020:00:00:00 +0800",\n "lte":"8/Sep/2020:00:00:00 +0800"\n }}}\n ]\n }\n }\n }},\n "aggs": {"all_ips": {"terms": { "field": "url" , "size":10 }}}\n}\'\n\n\n')),(0,r.yg)("h4",{id:"ip\u548curl\u67e5\u8be2\u5217\u8868"},"ip\u548curl\u67e5\u8be2\u5217\u8868"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'# \ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 10,"sort": [{"ts": {"order": "desc"}}], \n "query":{"constant_score":{\n "filter":{\n "bool":{\n "must":[{"term":{"ip":"113.110.165.243"}},\n {"term":{"url":"/xxx/xxx"}},\n {"range":{"ts":{\n "gte":"11/Jun/2020:00:00:00 +0800",\n "lte":"12/Jun/2020:00:00:00 +0800"\n }}}\n ]\n }\n }\n }}\n}\'\n')),(0,r.yg)("h4",{id:"\u8bbf\u95ee\u6d4f\u89c8\u5668\u7c7b\u578b\u5206\u7c7b\u53ca\u6570\u91cf"},"\u8bbf\u95ee\u6d4f\u89c8\u5668\u7c7b\u578b\u5206\u7c7b\u53ca\u6570\u91cf"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'# \u6240\u6709\u6d4f\u89c8\u5668\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/rc_nginx_api/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"22/May/2018:00:00:00 +0800"\n }}}}},\n "aggs": {"all_uajnames": {"terms": { "field": "uaj.name" , "size":100 }}}\n }\'\n# \u6628\u65e5\u6d4f\u89c8\u5668\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 1,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"22/May/2020:00:00:00 +0800",\n "lte":"23/May/2020:00:00:00 +0800"\n }}}}},\n "aggs": {"all_uajnames": {"terms": { "field": "uaj.name" , "size":10 }}}\n }\'\n')),(0,r.yg)("h4",{id:"\u8bbf\u95ee\u6d4f\u89c8\u5668chrome\u7248\u672c\u53ca\u6570\u91cf"},"\u8bbf\u95ee\u6d4f\u89c8\u5668Chrome\u7248\u672c\u53ca\u6570\u91cf"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'# \u6240\u6709\u6d4f\u89c8\u5668\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/rc_nginx_api/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 1,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"22/May/2018:00:00:00 +0800"\n }}}}},\n "aggs": {"all_uajoss": {"terms": { "field": "uaj.major" , "size":10 }}}\n }\'\n# \u6628\u65e5\u6d4f\u89c8\u5668\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 1,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"22/May/2020:00:00:00 +0800",\n "lte":"23/May/2020:00:00:00 +0800"\n }}}}},\n "aggs": {"all_uajoss": {"terms": { "field": "uaj.major" , "size":10 }}}\n }\'\n')),(0,r.yg)("h4",{id:"\u8bbf\u95ee\u64cd\u4f5c\u7cfb\u7edf\u7c7b\u578b\u5206\u7c7b\u53ca\u6570\u91cf"},"\u8bbf\u95ee\u64cd\u4f5c\u7cfb\u7edf\u7c7b\u578b\u5206\u7c7b\u53ca\u6570\u91cf"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'# \u6240\u6709\u64cd\u4f5c\u7cfb\u7edf\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 1,\n "query":{\n "constant_score":{\n "filter":{\n "bool":{\n "must":[\n {"range":{"ts":{\n "gte":"22/May/2018:00:00:00 +0800"\n }}}\n ]\n }\n }\n }},\n "aggs": {"all_uajoss": {"terms": { "field": "uaj.os" , "size":100 }}}\n }\'\n')),(0,r.yg)("h4",{id:"\u8bbf\u95ee\u6700\u591a\u7684\u56fd\u5bb6\u6392\u540d"},"\u8bbf\u95ee\u6700\u591a\u7684\u56fd\u5bb6\u6392\u540d"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'# \u6240\u6709\u8bbf\u95ee\u56fd\u5bb6\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"22/May/2018:00:00:00 +0800"\n }}}}},\n "aggs": {"all_uajoss": {"terms": { "field": "ipj.country_name" , "size":10 }}}\n}\'\n# \u6628\u65e5\u8bbf\u95ee\u56fd\u5bb6\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 1,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"1/Jun/2020:00:00:00 +0800",\n "lte":"2/Jun/2020:00:00:00 +0800"\n }}}}},\n "aggs": {"all_uajoss": {"terms": { "field": "ipj.country_name" , "size":10 }}}\n}\'\n')),(0,r.yg)("h4",{id:"\u8bbf\u95ee\u6700\u591a\u7684\u7701\u4efd\u6392\u540d"},"\u8bbf\u95ee\u6700\u591a\u7684\u7701\u4efd\u6392\u540d"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'# \u6240\u6709\u8bbf\u95ee\u7701\u4efd\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 10,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"22/May/2018:00:00:00 +0800"\n }}}}},\n "aggs": {"all_uajoss": {"terms": { "field": "ipj.region_name" , "size":10 }}}\n}\'\n# \u6628\u65e5\u8bbf\u95ee\u7701\u4efd\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 1,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"31/May/2020:00:00:00 +0800",\n "lte":"2/Jun/2020:00:00:00 +0800"\n }}}}},\n "aggs": {"all_uajoss": {"terms": { "field": "ipj.region_name" , "size":10 }}}\n}\'\n')),(0,r.yg)("h4",{id:"\u8bbf\u95ee\u6700\u591a\u7684\u57ce\u5e02\u6392\u540d"},"\u8bbf\u95ee\u6700\u591a\u7684\u57ce\u5e02\u6392\u540d"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'# \u6240\u6709\u8bbf\u95ee\u57ce\u5e02\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"22/May/2018:00:00:00 +0800"\n }}}}},\n "aggs": {"all_uajoss": {"terms": { "field": "ipj.city_name" , "size":10 }}}\n}\'\n# \u6628\u65e5\u8bbf\u95ee\u57ce\u5e02\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"1/Jun/2020:00:00:00 +0800",\n "lte":"2/Jun/2020:00:00:00 +0800"\n }}}}},\n "aggs": {"all_uajoss": {"terms": { "field": "ipj.city_name" , "size":10 }}}\n}\'\n')),(0,r.yg)("h4",{id:"http\u54cd\u5e94\u7801\u975e200\u6570\u91cf\u53ca\u5217\u8868"},"HTTP\u54cd\u5e94\u7801\u975e200\u6570\u91cf\u53ca\u5217\u8868"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'# \u6240\u6709HTTP\u54cd\u5e94\u7801\u975e200\u5217\u8868\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 100,\n "query":{\n "constant_score":{\n "filter":{\n "bool":{\n "must_not":[\n {"term":{"code":"200"}}\n ],\n "must":[\n {"range":{"ts":{\n "gte":"22/May/2018:00:00:00 +0800"\n }}}\n ]\n }\n }\n }}\n }\'\n \n \n# \u6628\u65e5HTTP\u54cd\u5e94\u7801\u975e200\u5217\u8868\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 10,\n "query":{\n "constant_score":{\n "filter":{\n "bool":{\n "must_not":[\n {"term":{"code":"200"}}\n ],\n "must":[\n {"range":{"ts":{\n "gte":"25/May/2020:00:00:00 +0800",\n "lte":"26/May/2020:00:00:00 +0800"\n }}}\n ]\n }\n }\n }}\n }\'\n \n\n# \u6240\u6709HTTP\u54cd\u5e94\u7801\u975e200\u5206\u7c7b\u53ca\u8c03\u7528\u6570\u91cf\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 1,\n "query":{\n "constant_score":{\n "filter":{\n "bool":{\n "must_not":[\n {"term":{"code":"200"}}\n ],\n "must":[\n {"range":{"ts":{\n "gte":"22/May/2018:00:00:00 +0800"\n }}}\n ]\n }\n }\n }},\n "aggs": {"all_uajoss": {"terms": { "field": "code" , "size":100 }}}\n }\'\n\n\n# \u6628\u65e5HTTP\u54cd\u5e94\u7801\u975e200\u5206\u7c7b\u53ca\u8c03\u7528\u6570\u91cf\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 1,\n "query":{\n "constant_score":{\n "filter":{\n "bool":{\n "must_not":[\n {"term":{"code":"200"}}\n ],\n "must":[\n {"range":{"ts":{\n "gte":"22/May/2020:00:00:00 +0800",\n "lte":"23/May/2020:00:00:00 +0800"\n }}}\n ]\n }\n }\n }},\n "aggs": {"all_uajoss": {"terms": { "field": "code" , "size":100 }}}\n }\'\n\n\n# \u6240\u6709HTTP\u54cd\u5e94\u7801\u975e200(499)url\u5206\u7c7b\u53ca\u8c03\u7528\u6570\u91cf\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 1,\n "query":{\n "constant_score":{\n "filter":{\n "bool":{\n "must":[{"term":{"code":"499"}},\n {"range":{"ts":{\n "gte":"22/May/2018:00:00:00 +0800"\n }}}\n ]\n }\n }\n }},\n "aggs": {"all_uajoss": {"terms": { "field": "url" , "size":10 }}}\n }\'\n \n# \u6628\u65e5HTTP\u54cd\u5e94\u7801\u975e200(499)url\u5206\u7c7b\u53ca\u8c03\u7528\u6570\u91cf\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 1,\n "query":{\n "constant_score":{\n "filter":{\n "bool":{\n "must":[{"term":{"code":"499"}},\n {"range":{"ts":{\n "gte":"22/May/2020:00:00:00 +0800",\n "lte":"23/May/2020:00:00:00 +0800"\n }}}\n ]\n }\n }\n }},\n "aggs": {"all_uajoss": {"terms": { "field": "url" , "size":10 }}}\n }\'\n\n\n# \u6240\u6709HTTP\u54cd\u5e94\u7801\u975e200(404)url\u5206\u7c7b\u53ca\u8c03\u7528\u6570\u91cf\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 1,\n "query":{\n "constant_score":{\n "filter":{\n "bool":{\n "must":[{"term":{"code":"404"}},\n {"range":{"ts":{\n "gte":"22/May/2018:00:00:00 +0800"\n }}}\n ]\n }\n }\n }},\n "aggs": {"all_uajoss": {"terms": { "field": "url" , "size":10 }}}\n }\'\n\n# \u6628\u65e5HTTP\u54cd\u5e94\u7801\u975e200(404)url\u5206\u7c7b\u53ca\u8c03\u7528\u6570\u91cf\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 1,\n "query":{\n "constant_score":{\n "filter":{\n "bool":{\n "must":[{"term":{"code":"404"}},\n {"range":{"ts":{\n "gte":"22/May/2020:00:00:00 +0800",\n "lte":"23/May/2020:00:00:00 +0800"\n }}}\n ]\n }\n }\n }},\n "aggs": {"all_uajoss": {"terms": { "field": "url" , "size":10 }}}\n }\'\n')),(0,r.yg)("h4",{id:"http-method\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570"},"HTTP method\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'# \u6240\u6709HTTP method\u5206\u7c7b\u53ca\u6570\u91cf\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 1,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"22/May/2018:00:00:00 +0800"\n }}}}},\n "aggs": {"all_uajnames": {"terms": { "field": "method" , "size":10 }}}\n }\'\n')),(0,r.yg)("h4",{id:"site\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570"},"site\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'# \u6240\u6709site\u5206\u7c7b\u53ca\u6570\u91cf\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"22/May/2018:00:00:00 +0800"\n }}}}},\n "aggs": {"all_uajnames": {"terms": { "field": "site" , "size":100 }}}\n}\'\n# \u67d0\u4e2aIP\u4eca\u65e5site\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,"sort": [{"ts": {"order": "desc"}}], \n "query":{"constant_score":{\n "filter":{\n "bool":{\n "must":[{"term":{"ip":"114.115.190.196"}},\n {"range":{"ts":{\n "gte":"8/Jun/2020:00:00:00 +0800",\n "lte":"9/Jun/2020:00:00:00 +0800"\n }}}\n ]\n }\n }\n }},\n "aggs": {"all_ips": {"terms": { "field": "site" , "size":10 }}}\n}\' \n')),(0,r.yg)("h4",{id:"httpv\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570"},"httpv\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'# \u6240\u6709HTTP method\u5206\u7c7b\u53ca\u6570\u91cf\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 1,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"22/May/2018:00:00:00 +0800"\n }}}}},\n "aggs": {"all_uajnames": {"terms": { "field": "httpv" , "size":10 }}}\n }\'\n')),(0,r.yg)("h4",{id:"url\u8bbf\u95eeip\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570"},"URL\u8bbf\u95eeIP\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'# URL\u8bbf\u95eeIP\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570--\u67e5\u8be2\u5386\u53f2\u8bb0\u5f55\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{"constant_score":{\n "filter":{\n "bool":{\n "must":[{"term":{"url":"/xxx/xx/xx"}},\n {"range":{"ts":{\n "gte":"8/Jun/2020:00:00:00 +0800",\n "lte":"9/Jun/2020:00:00:00 +0800"\n }}}\n ]\n }\n }\n }},\n "aggs": {"all_urls": {"terms": { "field": "ip" }}}\n}\'\n\n# URL\u8bbf\u95eeIP\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570--\u767b\u5f55\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{"constant_score":{\n "filter":{\n "bool":{\n "must":[{"term":{"url":"/xx/xx/xx"}},\n {"range":{"ts":{\n "gte":"8/Jun/2020:00:00:00 +0800",\n "lte":"9/Jun/2020:00:00:00 +0800"\n }}}\n ]\n }\n }\n }},\n "aggs": {"all_urls": {"terms": { "field": "ip" }}}\n}\'\n')),(0,r.yg)("h4",{id:"\u6700\u6d3b\u8dc3\u7684\u67d0\u7c7bsite"},"\u6700\u6d3b\u8dc3\u7684\u67d0\u7c7bsite"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'#10\u5927\u6700\u6d3b\u8dc3\u7684\u5206\u4eab\u7ec4\u6001\ncurl -XPOST \'http://127.0.0.1:9200/{\u5177\u4f53\u7684e\'s}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{\n "wildcard": {\n "site": "*show.html*share*"\n }\n },\n "aggs": {"all_ips": {"terms": { "field": "site" , "size":100 }}}\n}\'\n')))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b153ec3c.f0c06148.js b/assets/js/b153ec3c.0b98d037.js similarity index 99% rename from assets/js/b153ec3c.f0c06148.js rename to assets/js/b153ec3c.0b98d037.js index 4a9bae7a1..ec587c5d3 100644 --- a/assets/js/b153ec3c.f0c06148.js +++ b/assets/js/b153ec3c.0b98d037.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9390],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function l(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(l[r]=e[r]);return l}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(l[r]=e[r])}return l}var u=n.createContext({}),s=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=s(e.components);return n.createElement(u.Provider,{value:t},e.children)},c="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,l=e.mdxType,a=e.originalType,u=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),c=s(r),d=l,f=c["".concat(u,".").concat(d)]||c[d]||y[d]||a;return r?n.createElement(f,i(i({ref:t},p),{},{components:r})):n.createElement(f,i({ref:t},p))}));function f(e,t){var r=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var a=r.length,i=new Array(a);i[0]=d;var o={};for(var u in t)hasOwnProperty.call(t,u)&&(o[u]=t[u]);o.originalType=e,o[c]="string"==typeof e?e:l,i[1]=o;for(var s=2;s{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>y,frontMatter:()=>a,metadata:()=>o,toc:()=>s});var n=r(8168),l=(r(6540),r(5680));const a={},i=void 0,o={unversionedId:"study/system/\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838",id:"study/system/\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838",title:"\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838",description:"\u4ec0\u4e48\u662f\u5185\u6838",source:"@site/docs/study/system/\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838.md",sourceDirName:"study/system",slug:"/study/system/\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838",permalink:"/docs/study/system/\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u53ef\u6267\u884c\u7a0b\u5e8f\u5728\u64cd\u4f5c\u7cfb\u7edf\u4e0b\u7684\u8fd0\u884c\u539f\u7406\u5206\u6790",permalink:"/docs/study/system/\u53ef\u6267\u884c\u7a0b\u5e8f\u8fd0\u884c\u539f\u7406\u5206\u6790"},next:{title:"\u7a0b\u5e8f\u8c03\u8bd5",permalink:"/docs/study/system/\u7a0b\u5e8f\u8c03\u8bd5"}},u={},s=[{value:"\u4ec0\u4e48\u662f\u5185\u6838",id:"\u4ec0\u4e48\u662f\u5185\u6838",level:3},{value:"Linux \u5185\u6838\u8c03\u4f18",id:"linux-\u5185\u6838\u8c03\u4f18",level:3},{value:"ip_forward",id:"ip_forward",level:4},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],p={toc:s},c="wrapper";function y(e){let{components:t,...a}=e;return(0,l.yg)(c,(0,n.A)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,l.yg)("h3",{id:"\u4ec0\u4e48\u662f\u5185\u6838"},"\u4ec0\u4e48\u662f\u5185\u6838"),(0,l.yg)("p",null,"\u8bf4\u5230\u64cd\u4f5c\u7cfb\u7edf\uff0c\u5c31\u5fc5\u987b\u8bf4\u5185\u6838\u3002\u5185\u6838\u662f\u64cd\u4f5c\u7cfb\u7edf\u4e2d\u5e94\u7528\u8fde\u63a5\u786c\u4ef6\u8bbe\u5907\u7684\u6865\u6881\u3002"),(0,l.yg)("p",null,"\u5185\u6838\u4ec5\u4ec5\u662f\u64cd\u4f5c\u7cfb\u7edf\u7684\u4e00\u90e8\u5206\uff0c\u662f\u771f\u6b63\u4e0e\u786c\u4ef6\u4ea4\u4e92\u7684\u90a3\u90e8\u5206\u8f6f\u4ef6\uff0c\u4e0e\u786c\u4ef6\u4ea4\u4e92\u5305\u62ec\u8bfb\u5199\u786c\u76d8\u3001\u8bfb\u5199\u7f51\u76d8\u3001\u8bfb\u5199\u5185\u5b58\u4ee5\u53ca\u4efb\u4f55\u8fde\u63a5\u5230\u7cfb\u7edf\u4e2d\u7684\u786c\u4ef6\u3002"),(0,l.yg)("p",null,"\u9664\u4e86\u4e0e\u786c\u4ef6\u4ea4\u4e92\u5916\uff0c\u5185\u6838\u8fd8\u8d1f\u8d23\u5206\u914d\u8d44\u6e90\uff0c\u5206\u914d\u4ec0\u4e48\u8d44\u6e90\u5462\uff1f\u6240\u8c13\u8d44\u6e90\u5c31\u662f\u786c\u4ef6\uff0c\u6bd4\u5982 CPU \u65f6\u95f4\u3001\u5185\u5b58\u3001IO \u7b49\u7b49\uff0c\u8fd9\u4e9b\u90fd\u662f\u8d44\u6e90\u3002"),(0,l.yg)("p",null,(0,l.yg)("img",{alt:"\u64cd\u4f5c\u7cfb\u7edf\u5206\u5c42",src:r(4597).A,width:"720",height:"441"})),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/608739855"},"\u77e5\u4e4e-\u8ba1\u7b97\u673a\u7cfb\u7edf\uff1a\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838"))),(0,l.yg)("h3",{id:"linux-\u5185\u6838\u8c03\u4f18"},"Linux \u5185\u6838\u8c03\u4f18"),(0,l.yg)("h4",{id:"ip_forward"},"ip_forward"),(0,l.yg)("p",null,"IP forward \u662f\u4e00\u79cd\u5185\u6838\u6001\u8bbe\u7f6e\uff0c\u5141\u8bb8\u5c06\u4e00\u4e2a\u63a5\u53e3\u7684\u6d41\u91cf\u8f6c\u53d1\u5230\u53e6\u5916\u4e00\u4e2a\u63a5\u53e3\u3002"),(0,l.yg)("p",null,"\u51fa\u4e8e\u5b89\u5168\u8003\u8651\uff0cLinux \u7cfb\u7edf\u9ed8\u8ba4\u662f\u7981\u6b62\u6570\u636e\u5305\u8f6c\u53d1\u7684\u3002\u6240\u8c13\u8f6c\u53d1\u5373\u5f53\u4e3b\u673a\u62e5\u6709\u591a\u4e8e\u4e00\u5757\u7684\u7f51\u5361\u65f6\uff0c\u5176\u4e2d\u4e00\u5757\u6536\u5230\u6570\u636e\u5305\uff0c\u6839\u636e\u6570\u636e\u5305\u7684\u76ee\u7684 ip \u5730\u5740\u5c06\u6570\u636e\u5305\u53d1\u5f80\u672c\u673a\u53e6\u4e00\u5757\u7f51\u5361\uff0c\u8be5\u7f51\u5361\u6839\u636e\u8def\u7531\u8868\u7ee7\u7eed\u53d1\u9001\u6570\u636e\u5305\u3002\u8fd9\u901a\u5e38\u662f\u8def\u7531\u5668\u6240\u8981\u5b9e\u73b0\u7684\u529f\u80fd\u3002"),(0,l.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://www.lxlinux.net/311.html"},"lxlinux-Linux \u5185\u6838\u8c03\u4f18")),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://www.lxlinux.net/307.html"},"lxlinux-Linux \u5e38\u7528\u5185\u6838\u7f51\u7edc\u53c2\u6570\u53ca\u4fee\u6539\u65b9\u6cd5")),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://www.lxlinux.net/305.html"},"lxlinux-\u9ad8\u5e76\u53d1\u573a\u666f\u4e0b\u7684 Linux \u7cfb\u7edf\u8c03\u4f18"))))}y.isMDXComponent=!0},4597:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/1-55ae3f50467f5d22c9fed1f9cba2bc1e.webp"}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9390],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function l(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(l[r]=e[r]);return l}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(l[r]=e[r])}return l}var u=n.createContext({}),s=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=s(e.components);return n.createElement(u.Provider,{value:t},e.children)},c="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,l=e.mdxType,a=e.originalType,u=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),c=s(r),d=l,f=c["".concat(u,".").concat(d)]||c[d]||y[d]||a;return r?n.createElement(f,i(i({ref:t},p),{},{components:r})):n.createElement(f,i({ref:t},p))}));function f(e,t){var r=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var a=r.length,i=new Array(a);i[0]=d;var o={};for(var u in t)hasOwnProperty.call(t,u)&&(o[u]=t[u]);o.originalType=e,o[c]="string"==typeof e?e:l,i[1]=o;for(var s=2;s{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>y,frontMatter:()=>a,metadata:()=>o,toc:()=>s});var n=r(8168),l=(r(6540),r(5680));const a={},i=void 0,o={unversionedId:"study/system/\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838",id:"study/system/\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838",title:"\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838",description:"\u4ec0\u4e48\u662f\u5185\u6838",source:"@site/docs/study/system/\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838.md",sourceDirName:"study/system",slug:"/study/system/\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838",permalink:"/docs/study/system/\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u53ef\u6267\u884c\u7a0b\u5e8f\u5728\u64cd\u4f5c\u7cfb\u7edf\u4e0b\u7684\u8fd0\u884c\u539f\u7406\u5206\u6790",permalink:"/docs/study/system/\u53ef\u6267\u884c\u7a0b\u5e8f\u8fd0\u884c\u539f\u7406\u5206\u6790"},next:{title:"\u7a0b\u5e8f\u8c03\u8bd5",permalink:"/docs/study/system/\u7a0b\u5e8f\u8c03\u8bd5"}},u={},s=[{value:"\u4ec0\u4e48\u662f\u5185\u6838",id:"\u4ec0\u4e48\u662f\u5185\u6838",level:3},{value:"Linux \u5185\u6838\u8c03\u4f18",id:"linux-\u5185\u6838\u8c03\u4f18",level:3},{value:"ip_forward",id:"ip_forward",level:4},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],p={toc:s},c="wrapper";function y(e){let{components:t,...a}=e;return(0,l.yg)(c,(0,n.A)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,l.yg)("h3",{id:"\u4ec0\u4e48\u662f\u5185\u6838"},"\u4ec0\u4e48\u662f\u5185\u6838"),(0,l.yg)("p",null,"\u8bf4\u5230\u64cd\u4f5c\u7cfb\u7edf\uff0c\u5c31\u5fc5\u987b\u8bf4\u5185\u6838\u3002\u5185\u6838\u662f\u64cd\u4f5c\u7cfb\u7edf\u4e2d\u5e94\u7528\u8fde\u63a5\u786c\u4ef6\u8bbe\u5907\u7684\u6865\u6881\u3002"),(0,l.yg)("p",null,"\u5185\u6838\u4ec5\u4ec5\u662f\u64cd\u4f5c\u7cfb\u7edf\u7684\u4e00\u90e8\u5206\uff0c\u662f\u771f\u6b63\u4e0e\u786c\u4ef6\u4ea4\u4e92\u7684\u90a3\u90e8\u5206\u8f6f\u4ef6\uff0c\u4e0e\u786c\u4ef6\u4ea4\u4e92\u5305\u62ec\u8bfb\u5199\u786c\u76d8\u3001\u8bfb\u5199\u7f51\u76d8\u3001\u8bfb\u5199\u5185\u5b58\u4ee5\u53ca\u4efb\u4f55\u8fde\u63a5\u5230\u7cfb\u7edf\u4e2d\u7684\u786c\u4ef6\u3002"),(0,l.yg)("p",null,"\u9664\u4e86\u4e0e\u786c\u4ef6\u4ea4\u4e92\u5916\uff0c\u5185\u6838\u8fd8\u8d1f\u8d23\u5206\u914d\u8d44\u6e90\uff0c\u5206\u914d\u4ec0\u4e48\u8d44\u6e90\u5462\uff1f\u6240\u8c13\u8d44\u6e90\u5c31\u662f\u786c\u4ef6\uff0c\u6bd4\u5982 CPU \u65f6\u95f4\u3001\u5185\u5b58\u3001IO \u7b49\u7b49\uff0c\u8fd9\u4e9b\u90fd\u662f\u8d44\u6e90\u3002"),(0,l.yg)("p",null,(0,l.yg)("img",{alt:"\u64cd\u4f5c\u7cfb\u7edf\u5206\u5c42",src:r(4597).A,width:"720",height:"441"})),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/608739855"},"\u77e5\u4e4e-\u8ba1\u7b97\u673a\u7cfb\u7edf\uff1a\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838"))),(0,l.yg)("h3",{id:"linux-\u5185\u6838\u8c03\u4f18"},"Linux \u5185\u6838\u8c03\u4f18"),(0,l.yg)("h4",{id:"ip_forward"},"ip_forward"),(0,l.yg)("p",null,"IP forward \u662f\u4e00\u79cd\u5185\u6838\u6001\u8bbe\u7f6e\uff0c\u5141\u8bb8\u5c06\u4e00\u4e2a\u63a5\u53e3\u7684\u6d41\u91cf\u8f6c\u53d1\u5230\u53e6\u5916\u4e00\u4e2a\u63a5\u53e3\u3002"),(0,l.yg)("p",null,"\u51fa\u4e8e\u5b89\u5168\u8003\u8651\uff0cLinux \u7cfb\u7edf\u9ed8\u8ba4\u662f\u7981\u6b62\u6570\u636e\u5305\u8f6c\u53d1\u7684\u3002\u6240\u8c13\u8f6c\u53d1\u5373\u5f53\u4e3b\u673a\u62e5\u6709\u591a\u4e8e\u4e00\u5757\u7684\u7f51\u5361\u65f6\uff0c\u5176\u4e2d\u4e00\u5757\u6536\u5230\u6570\u636e\u5305\uff0c\u6839\u636e\u6570\u636e\u5305\u7684\u76ee\u7684 ip \u5730\u5740\u5c06\u6570\u636e\u5305\u53d1\u5f80\u672c\u673a\u53e6\u4e00\u5757\u7f51\u5361\uff0c\u8be5\u7f51\u5361\u6839\u636e\u8def\u7531\u8868\u7ee7\u7eed\u53d1\u9001\u6570\u636e\u5305\u3002\u8fd9\u901a\u5e38\u662f\u8def\u7531\u5668\u6240\u8981\u5b9e\u73b0\u7684\u529f\u80fd\u3002"),(0,l.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://www.lxlinux.net/311.html"},"lxlinux-Linux \u5185\u6838\u8c03\u4f18")),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://www.lxlinux.net/307.html"},"lxlinux-Linux \u5e38\u7528\u5185\u6838\u7f51\u7edc\u53c2\u6570\u53ca\u4fee\u6539\u65b9\u6cd5")),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://www.lxlinux.net/305.html"},"lxlinux-\u9ad8\u5e76\u53d1\u573a\u666f\u4e0b\u7684 Linux \u7cfb\u7edf\u8c03\u4f18"))))}y.isMDXComponent=!0},4597:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/1-55ae3f50467f5d22c9fed1f9cba2bc1e.webp"}}]); \ No newline at end of file diff --git a/assets/js/b2645d4e.c35e97d2.js b/assets/js/b2645d4e.29470d76.js similarity index 98% rename from assets/js/b2645d4e.c35e97d2.js rename to assets/js/b2645d4e.29470d76.js index dd67a3ae0..255db8222 100644 --- a/assets/js/b2645d4e.c35e97d2.js +++ b/assets/js/b2645d4e.29470d76.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[379],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),u=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),s=u(r),y=o,f=s["".concat(l,".").concat(y)]||s[y]||d[y]||a;return r?n.createElement(f,i(i({ref:t},p),{},{components:r})):n.createElement(f,i({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=y;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[s]="string"==typeof e?e:o,i[1]=c;for(var u=2;u{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={},i=void 0,c={unversionedId:"study/db/NoSQL/Ignite",id:"study/db/NoSQL/Ignite",title:"Ignite",description:"\u5b9a\u4e49",source:"@site/docs/study/db/NoSQL/Ignite.md",sourceDirName:"study/db/NoSQL",slug:"/study/db/NoSQL/Ignite",permalink:"/docs/study/db/NoSQL/Ignite",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Hbase",permalink:"/docs/study/db/NoSQL/Hbase"},next:{title:"MongoDB",permalink:"/docs/study/db/NoSQL/MongoDB"}},l={},u=[{value:"\u5b9a\u4e49",id:"\u5b9a\u4e49",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],p={toc:u},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u5b9a\u4e49"},"\u5b9a\u4e49"),(0,o.yg)("p",null,"\u4e00\u4e2a\u4ee5\u5185\u5b58\u4e3a\u4e2d\u5fc3\u7684\u5206\u5e03\u5f0f\u6570\u636e\u5e93\u3001\u7f13\u5b58\u548c\u5904\u7406\u5e73\u53f0\uff0c\u53ef\u4ee5\u5728PB\u7ea7\u6570\u636e\u4e2d\uff0c\u4ee5\u5185\u5b58\u7ea7\u7684\u901f\u5ea6\u8fdb\u884c\u4e8b\u52a1\u6027\u3001\u5206\u6790\u6027\u4ee5\u53ca\u6d41\u5f0f\u8d1f\u8f7d\u7684\u5904\u7406\u3002"),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("a",{parentName:"li",href:"https://liyuj.gitee.io/doc/java/#_1-ignite%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F"},"Apache Ignite\u4e2d\u6587\u7f51"))))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[379],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),u=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),s=u(r),y=o,f=s["".concat(l,".").concat(y)]||s[y]||d[y]||a;return r?n.createElement(f,i(i({ref:t},p),{},{components:r})):n.createElement(f,i({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=y;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[s]="string"==typeof e?e:o,i[1]=c;for(var u=2;u{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={},i=void 0,c={unversionedId:"study/db/NoSQL/Ignite",id:"study/db/NoSQL/Ignite",title:"Ignite",description:"\u5b9a\u4e49",source:"@site/docs/study/db/NoSQL/Ignite.md",sourceDirName:"study/db/NoSQL",slug:"/study/db/NoSQL/Ignite",permalink:"/docs/study/db/NoSQL/Ignite",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Hbase",permalink:"/docs/study/db/NoSQL/Hbase"},next:{title:"MongoDB",permalink:"/docs/study/db/NoSQL/MongoDB"}},l={},u=[{value:"\u5b9a\u4e49",id:"\u5b9a\u4e49",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],p={toc:u},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u5b9a\u4e49"},"\u5b9a\u4e49"),(0,o.yg)("p",null,"\u4e00\u4e2a\u4ee5\u5185\u5b58\u4e3a\u4e2d\u5fc3\u7684\u5206\u5e03\u5f0f\u6570\u636e\u5e93\u3001\u7f13\u5b58\u548c\u5904\u7406\u5e73\u53f0\uff0c\u53ef\u4ee5\u5728PB\u7ea7\u6570\u636e\u4e2d\uff0c\u4ee5\u5185\u5b58\u7ea7\u7684\u901f\u5ea6\u8fdb\u884c\u4e8b\u52a1\u6027\u3001\u5206\u6790\u6027\u4ee5\u53ca\u6d41\u5f0f\u8d1f\u8f7d\u7684\u5904\u7406\u3002"),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("a",{parentName:"li",href:"https://liyuj.gitee.io/doc/java/#_1-ignite%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F"},"Apache Ignite\u4e2d\u6587\u7f51"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b34206f0.0b4f30bb.js b/assets/js/b34206f0.75c8fee8.js similarity index 99% rename from assets/js/b34206f0.0b4f30bb.js rename to assets/js/b34206f0.75c8fee8.js index bb863891f..0681767af 100644 --- a/assets/js/b34206f0.0b4f30bb.js +++ b/assets/js/b34206f0.75c8fee8.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3228],{5680:(e,t,r)=>{r.d(t,{xA:()=>c,yg:()=>m});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var u=n.createContext({}),p=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},c=function(e){var t=p(e.components);return n.createElement(u.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,u=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),s=p(r),y=a,m=s["".concat(u,".").concat(y)]||s[y]||d[y]||o;return r?n.createElement(m,i(i({ref:t},c),{},{components:r})):n.createElement(m,i({ref:t},c))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=y;var l={};for(var u in t)hasOwnProperty.call(t,u)&&(l[u]=t[u]);l.originalType=e,l[s]="string"==typeof e?e:a,i[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var n=r(8168),a=(r(6540),r(5680));const o={},i=void 0,l={unversionedId:"study/program/C/\u865a\u62df\u7f51\u5361",id:"study/program/C/\u865a\u62df\u7f51\u5361",title:"\u865a\u62df\u7f51\u5361",description:"TUN/TAP\uff08Linux\uff09",source:"@site/docs/study/program/C/\u865a\u62df\u7f51\u5361.md",sourceDirName:"study/program/C",slug:"/study/program/C/\u865a\u62df\u7f51\u5361",permalink:"/docs/study/program/C/\u865a\u62df\u7f51\u5361",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u6784\u5efa\u5de5\u5177",permalink:"/docs/study/program/C/\u6784\u5efa\u5de5\u5177"},next:{title:"C++",permalink:"/docs/study/program/CPP/"}},u={},p=[{value:"TUN/TAP\uff08Linux\uff09",id:"tuntaplinux",level:3},{value:"WinTun",id:"wintun",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],c={toc:p},s="wrapper";function d(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"tuntaplinux"},"TUN/TAP\uff08Linux\uff09"),(0,a.yg)("p",null,"\u5728\u8ba1\u7b97\u673a\u7f51\u7edc\u4e2d\uff0cTUN \u4e0e TAP \u662f\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838\u4e2d\u7684\u865a\u62df\u7f51\u7edc\u8bbe\u5907\u3002\u4e0d\u540c\u4e8e\u666e\u901a\u9760\u786c\u4ef6\u7f51\u8def\u677f\u5361\u5b9e\u73b0\u7684\u8bbe\u5907\uff0c\u8fd9\u4e9b\u865a\u62df\u7684\u7f51\u7edc\u8bbe\u5907\u5168\u90e8\u7528\u8f6f\u4ef6\u5b9e\u73b0\uff0c\u5e76\u5411\u8fd0\u884c\u4e8e\u64cd\u4f5c\u7cfb\u7edf\u4e0a\u7684\u8f6f\u4ef6\u63d0\u4f9b\u4e0e\u786c\u4ef6\u7684\u7f51\u7edc\u8bbe\u5907\u5b8c\u5168\u76f8\u540c\u7684\u529f\u80fd\u3002"),(0,a.yg)("p",null,"TAP \u7b49\u540c\u4e8e\u4e00\u4e2a\u4ee5\u592a\u7f51\u8bbe\u5907\uff0c\u5b83\u64cd\u4f5c\u7b2c\u4e8c\u5c42\u6570\u636e\u5305\u5982\u4ee5\u592a\u7f51\u6570\u636e\u5e27\u3002TUN \u6a21\u62df\u4e86\u7f51\u7edc\u5c42\u8bbe\u5907\uff0c\u64cd\u4f5c\u7b2c\u4e09\u5c42\u6570\u636e\u5305\u6bd4\u5982 IP \u6570\u636e\u5c01\u5305\u3002"),(0,a.yg)("p",null,"\u64cd\u4f5c\u7cfb\u7edf\u901a\u8fc7 TUN/TAP \u8bbe\u5907\u5411\u7ed1\u5b9a\u8be5\u8bbe\u5907\u7684\u7528\u6237\u7a7a\u95f4\u7684\u7a0b\u5e8f\u53d1\u9001\u6570\u636e\uff0c\u53cd\u4e4b\uff0c\u7528\u6237\u7a7a\u95f4\u7684\u7a0b\u5e8f\u4e5f\u53ef\u4ee5\u50cf\u64cd\u4f5c\u786c\u4ef6\u7f51\u7edc\u8bbe\u5907\u90a3\u6837\uff0c\u901a\u8fc7 TUN/TAP \u8bbe\u5907\u53d1\u9001\u6570\u636e\u3002\u5728\u540e\u79cd\u60c5\u51b5\u4e0b\uff0cTUN/TAP \u8bbe\u5907\u5411\u64cd\u4f5c\u7cfb\u7edf\u7684\u7f51\u7edc\u6808\u6295\u9012\uff08\u6216\u201c\u6ce8\u5165\u201d\uff09\u6570\u636e\u5305\uff0c\u4ece\u800c\u6a21\u62df\u4ece\u5916\u90e8\u63a5\u53d7\u6570\u636e\u7684\u8fc7\u7a0b\u3002"),(0,a.yg)("p",null,"\u670d\u52a1\u5668\u5982\u679c\u62e5\u6709 TUN/TAP \u6a21\u5757\uff0c\u5c31\u53ef\u4ee5\u5f00\u542f VPN \u4ee3\u7406\u529f\u80fd\u3002"),(0,a.yg)("h3",{id:"wintun"},"WinTun"),(0,a.yg)("p",null,(0,a.yg)("a",{parentName:"p",href:"https://www.wintun.net/"},"https://www.wintun.net/")),(0,a.yg)("p",null,"WinTun \u662f Windows \u5185\u6838\u7684\u4e00\u4e2a\u975e\u5e38\u7b80\u5355\u548c\u6700\u5c0f\u7684 TUN \u9a71\u52a8\u7a0b\u5e8f\uff0c\u5b83\u4e3a\u7528\u6237\u7a7a\u95f4\u7a0b\u5e8f\u63d0\u4f9b\u4e86\u4e00\u4e2a\u7b80\u5355\u7684\u7f51\u7edc\u9002\u914d\u5668\uff0c\u7528\u4e8e\u8bfb\u53d6\u548c\u5199\u5165\u6570\u636e\u5305\u3002"),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://blog.csdn.net/q1009020096/article/details/123842293"},"CSDN-Golang Window TUN \u865a\u62df\u7f51\u5361")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://www.wireguard.com/"},"\u5b98\u7f51-WireGrard"),(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},"WireGuard \u662f\u4e00\u6b3e\u6781\u5176\u7b80\u5355\u4f46\u5feb\u901f\u7684\u73b0\u4ee3 VPN\uff0c\u91c7\u7528\u6700\u5148\u8fdb\u7684\u52a0\u5bc6\u6280\u672f\u3002"))),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://huaweicloud.csdn.net/63566923d3efff3090b5e317.html"},"\u534e\u4e3a\u4e91-Wintun\uff1a\u4e00\u6b3e\u60ca\u8273\u7684 WireGuard \u865a\u62df\u7f51\u5361\u63a5\u53e3\u9a71\u52a8"))))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3228],{5680:(e,t,r)=>{r.d(t,{xA:()=>c,yg:()=>m});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var u=n.createContext({}),p=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},c=function(e){var t=p(e.components);return n.createElement(u.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,u=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),s=p(r),y=a,m=s["".concat(u,".").concat(y)]||s[y]||d[y]||o;return r?n.createElement(m,i(i({ref:t},c),{},{components:r})):n.createElement(m,i({ref:t},c))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=y;var l={};for(var u in t)hasOwnProperty.call(t,u)&&(l[u]=t[u]);l.originalType=e,l[s]="string"==typeof e?e:a,i[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var n=r(8168),a=(r(6540),r(5680));const o={},i=void 0,l={unversionedId:"study/program/C/\u865a\u62df\u7f51\u5361",id:"study/program/C/\u865a\u62df\u7f51\u5361",title:"\u865a\u62df\u7f51\u5361",description:"TUN/TAP\uff08Linux\uff09",source:"@site/docs/study/program/C/\u865a\u62df\u7f51\u5361.md",sourceDirName:"study/program/C",slug:"/study/program/C/\u865a\u62df\u7f51\u5361",permalink:"/docs/study/program/C/\u865a\u62df\u7f51\u5361",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u6784\u5efa\u5de5\u5177",permalink:"/docs/study/program/C/\u6784\u5efa\u5de5\u5177"},next:{title:"C++",permalink:"/docs/study/program/CPP/"}},u={},p=[{value:"TUN/TAP\uff08Linux\uff09",id:"tuntaplinux",level:3},{value:"WinTun",id:"wintun",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],c={toc:p},s="wrapper";function d(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"tuntaplinux"},"TUN/TAP\uff08Linux\uff09"),(0,a.yg)("p",null,"\u5728\u8ba1\u7b97\u673a\u7f51\u7edc\u4e2d\uff0cTUN \u4e0e TAP \u662f\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838\u4e2d\u7684\u865a\u62df\u7f51\u7edc\u8bbe\u5907\u3002\u4e0d\u540c\u4e8e\u666e\u901a\u9760\u786c\u4ef6\u7f51\u8def\u677f\u5361\u5b9e\u73b0\u7684\u8bbe\u5907\uff0c\u8fd9\u4e9b\u865a\u62df\u7684\u7f51\u7edc\u8bbe\u5907\u5168\u90e8\u7528\u8f6f\u4ef6\u5b9e\u73b0\uff0c\u5e76\u5411\u8fd0\u884c\u4e8e\u64cd\u4f5c\u7cfb\u7edf\u4e0a\u7684\u8f6f\u4ef6\u63d0\u4f9b\u4e0e\u786c\u4ef6\u7684\u7f51\u7edc\u8bbe\u5907\u5b8c\u5168\u76f8\u540c\u7684\u529f\u80fd\u3002"),(0,a.yg)("p",null,"TAP \u7b49\u540c\u4e8e\u4e00\u4e2a\u4ee5\u592a\u7f51\u8bbe\u5907\uff0c\u5b83\u64cd\u4f5c\u7b2c\u4e8c\u5c42\u6570\u636e\u5305\u5982\u4ee5\u592a\u7f51\u6570\u636e\u5e27\u3002TUN \u6a21\u62df\u4e86\u7f51\u7edc\u5c42\u8bbe\u5907\uff0c\u64cd\u4f5c\u7b2c\u4e09\u5c42\u6570\u636e\u5305\u6bd4\u5982 IP \u6570\u636e\u5c01\u5305\u3002"),(0,a.yg)("p",null,"\u64cd\u4f5c\u7cfb\u7edf\u901a\u8fc7 TUN/TAP \u8bbe\u5907\u5411\u7ed1\u5b9a\u8be5\u8bbe\u5907\u7684\u7528\u6237\u7a7a\u95f4\u7684\u7a0b\u5e8f\u53d1\u9001\u6570\u636e\uff0c\u53cd\u4e4b\uff0c\u7528\u6237\u7a7a\u95f4\u7684\u7a0b\u5e8f\u4e5f\u53ef\u4ee5\u50cf\u64cd\u4f5c\u786c\u4ef6\u7f51\u7edc\u8bbe\u5907\u90a3\u6837\uff0c\u901a\u8fc7 TUN/TAP \u8bbe\u5907\u53d1\u9001\u6570\u636e\u3002\u5728\u540e\u79cd\u60c5\u51b5\u4e0b\uff0cTUN/TAP \u8bbe\u5907\u5411\u64cd\u4f5c\u7cfb\u7edf\u7684\u7f51\u7edc\u6808\u6295\u9012\uff08\u6216\u201c\u6ce8\u5165\u201d\uff09\u6570\u636e\u5305\uff0c\u4ece\u800c\u6a21\u62df\u4ece\u5916\u90e8\u63a5\u53d7\u6570\u636e\u7684\u8fc7\u7a0b\u3002"),(0,a.yg)("p",null,"\u670d\u52a1\u5668\u5982\u679c\u62e5\u6709 TUN/TAP \u6a21\u5757\uff0c\u5c31\u53ef\u4ee5\u5f00\u542f VPN \u4ee3\u7406\u529f\u80fd\u3002"),(0,a.yg)("h3",{id:"wintun"},"WinTun"),(0,a.yg)("p",null,(0,a.yg)("a",{parentName:"p",href:"https://www.wintun.net/"},"https://www.wintun.net/")),(0,a.yg)("p",null,"WinTun \u662f Windows \u5185\u6838\u7684\u4e00\u4e2a\u975e\u5e38\u7b80\u5355\u548c\u6700\u5c0f\u7684 TUN \u9a71\u52a8\u7a0b\u5e8f\uff0c\u5b83\u4e3a\u7528\u6237\u7a7a\u95f4\u7a0b\u5e8f\u63d0\u4f9b\u4e86\u4e00\u4e2a\u7b80\u5355\u7684\u7f51\u7edc\u9002\u914d\u5668\uff0c\u7528\u4e8e\u8bfb\u53d6\u548c\u5199\u5165\u6570\u636e\u5305\u3002"),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://blog.csdn.net/q1009020096/article/details/123842293"},"CSDN-Golang Window TUN \u865a\u62df\u7f51\u5361")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://www.wireguard.com/"},"\u5b98\u7f51-WireGrard"),(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},"WireGuard \u662f\u4e00\u6b3e\u6781\u5176\u7b80\u5355\u4f46\u5feb\u901f\u7684\u73b0\u4ee3 VPN\uff0c\u91c7\u7528\u6700\u5148\u8fdb\u7684\u52a0\u5bc6\u6280\u672f\u3002"))),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://huaweicloud.csdn.net/63566923d3efff3090b5e317.html"},"\u534e\u4e3a\u4e91-Wintun\uff1a\u4e00\u6b3e\u60ca\u8273\u7684 WireGuard \u865a\u62df\u7f51\u5361\u63a5\u53e3\u9a71\u52a8"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b38419a7.5b9dd0e4.js b/assets/js/b38419a7.81960b8c.js similarity index 99% rename from assets/js/b38419a7.5b9dd0e4.js rename to assets/js/b38419a7.81960b8c.js index 0b689f3f7..8994bf956 100644 --- a/assets/js/b38419a7.5b9dd0e4.js +++ b/assets/js/b38419a7.81960b8c.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2320],{5680:(e,r,n)=>{n.d(r,{xA:()=>c,yg:()=>g});var t=n(6540);function o(e,r,n){return r in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n,e}function a(e,r){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r&&(t=t.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),n.push.apply(n,t)}return n}function l(e){for(var r=1;r=0||(o[n]=e[n]);return o}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=t.createContext({}),p=function(e){var r=t.useContext(s),n=r;return e&&(n="function"==typeof e?e(r):l(l({},r),e)),n},c=function(e){var r=p(e.components);return t.createElement(s.Provider,{value:r},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var r=e.children;return t.createElement(t.Fragment,{},r)}},y=t.forwardRef((function(e,r){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),u=p(n),y=o,g=u["".concat(s,".").concat(y)]||u[y]||d[y]||a;return n?t.createElement(g,l(l({ref:r},c),{},{components:n})):t.createElement(g,l({ref:r},c))}));function g(e,r){var n=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var a=n.length,l=new Array(a);l[0]=y;var i={};for(var s in r)hasOwnProperty.call(r,s)&&(i[s]=r[s]);i.originalType=e,i[u]="string"==typeof e?e:o,l[1]=i;for(var p=2;p{n.r(r),n.d(r,{assets:()=>s,contentTitle:()=>l,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>p});var t=n(8168),o=(n(6540),n(5680));const a={sidebar_position:1},l=void 0,i={unversionedId:"study/db/SQL/\u7efc\u5408\u6982\u8ff0",id:"study/db/SQL/\u7efc\u5408\u6982\u8ff0",title:"\u7efc\u5408\u6982\u8ff0",description:"\u80cc\u666f",source:"@site/docs/study/db/SQL/\u7efc\u5408\u6982\u8ff0.md",sourceDirName:"study/db/SQL",slug:"/study/db/SQL/\u7efc\u5408\u6982\u8ff0",permalink:"/docs/study/db/SQL/\u7efc\u5408\u6982\u8ff0",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"StarRocks",permalink:"/docs/study/db/OLAP/StarRocks"},next:{title:"MariaDB",permalink:"/docs/study/db/SQL/MariaDB"}},s={},p=[{value:"\u80cc\u666f",id:"\u80cc\u666f",level:3},{value:"\u5206\u5e03\u5f0f\u6570\u636e\u5e93",id:"\u5206\u5e03\u5f0f\u6570\u636e\u5e93",level:3},{value:"NoSQL\u7684\u8fdb\u51fb",id:"nosql\u7684\u8fdb\u51fb",level:4},{value:"RDMS \u7684\u6551\u8d4e",id:"rdms-\u7684\u6551\u8d4e",level:4},{value:"\u5173\u7cfb\u578b\u6570\u636e\u5e93\u4e2d\u95f4\u4ef6",id:"\u5173\u7cfb\u578b\u6570\u636e\u5e93\u4e2d\u95f4\u4ef6",level:3},{value:"NewSQL\u7684\u53d1\u5c55",id:"newsql\u7684\u53d1\u5c55",level:3}],c={toc:p},u="wrapper";function d(e){let{components:r,...n}=e;return(0,o.yg)(u,(0,t.A)({},c,n,{components:r,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u80cc\u666f"},"\u80cc\u666f"),(0,o.yg)("p",null,"\u968f\u7740\u4e92\u8054\u7f51\u7684\u4e0d\u65ad\u666e\u53ca\u7279\u522b\u662f\u79fb\u52a8\u4e92\u8054\u7f51\u7684\u5174\u8d77\uff0c\u6570\u636e\u89c4\u6a21\u7206\u70b8\u5f0f\u589e\u957f\uff0c\u800c\u786c\u4ef6\u8fd9\u4e9b\u5e74\u7684\u8fdb\u6b65\u901f\u5ea6\u5374\u5728\u9010\u6e10\u51cf\u6162\uff0c\u4eba\u4eec\u4e5f\u5728\u62c5\u5fc3\u6469\u5c14\u5b9a\u5f8b\u4f1a\u5931\u6548\u3002\u5728\u6b64\u6d88\u5f7c\u957f\u7684\u60c5\u51b5\u4e0b\uff0c\u5355\u673a\u6570\u636e\u5e93\u8d8a\u6765\u8d8a\u96be\u4ee5\u6ee1\u8db3\u7528\u6237\u9700\u6c42\uff0c\u5373\u4f7f\u662f\u5c06\u6570\u636e\u4fdd\u5b58\u4e0b\u6765\u8fd9\u4e2a\u6700\u57fa\u672c\u7684\u9700\u6c42\u3002"),(0,o.yg)("h3",{id:"\u5206\u5e03\u5f0f\u6570\u636e\u5e93"},"\u5206\u5e03\u5f0f\u6570\u636e\u5e93"),(0,o.yg)("p",null,"\u6240\u4ee5 2005 \u5e74\u5de6\u53f3\uff0c\u4eba\u4eec\u5f00\u59cb\u63a2\u7d22\u5206\u5e03\u5f0f\u6570\u636e\u5e93\uff0c\u5e26\u8d77\u4e86 NoSQL \u8fd9\u6ce2\u6d6a\u6f6e\u3002\u8fd9\u4e9b\u6570\u636e\u5e93\u89e3\u51b3\u7684\u9996\u8981\u95ee\u9898\u662f\u5355\u673a\u4e0a\u65e0\u6cd5\u4fdd\u5b58\u5168\u90e8\u6570\u636e\uff0c\u5176\u4e2d\u4ee5 HBase/Cassadra/MongoDB \u4e3a\u4ee3\u8868\u3002\u4e3a\u4e86\u5b9e\u73b0\u5bb9\u91cf\u7684\u6c34\u5e73\u6269\u5c55\uff0c\u8fd9\u4e9b\u6570\u636e\u5e93\u5f80\u5f80\u8981\u653e\u5f03\u4e8b\u52a1\uff0c\u6216\u8005\u662f\u53ea\u63d0\u4f9b\u7b80\u5355\u7684 KV \u63a5\u53e3\u3002\u5b58\u50a8\u6a21\u578b\u7684\u7b80\u5316\u4e3a\u5b58\u50a8\u7cfb\u7edf\u7684\u5f00\u53d1\u5e26\u6765\u4e86\u4fbf\u5229\uff0c\u4f46\u662f\u964d\u4f4e\u4e86\u5bf9\u4e1a\u52a1\u7684\u652f\u6491\u3002"),(0,o.yg)("h4",{id:"nosql\u7684\u8fdb\u51fb"},"NoSQL\u7684\u8fdb\u51fb"),(0,o.yg)("p",null,"HBase \u662f\u5176\u4e2d\u7684\u5178\u578b\u4ee3\u8868\u3002 HBase \u662f Hadoop \u751f\u6001\u4e2d\u7684\u91cd\u8981\u4ea7\u54c1\uff0cGoogle BigTable \u7684\u5f00\u6e90\u5b9e\u73b0\uff0c\u6240\u4ee5\u8fd9\u91cc\u5148\u8bf4\u4e00\u4e0b BigTable \u3002"),(0,o.yg)("p",null,"BigTable \u662f Google \u5185\u90e8\u4f7f\u7528\u7684\u5206\u5e03\u5f0f\u6570\u636e\u5e93\uff0c\u6784\u5efa\u5728 GFS \u7684\u57fa\u7840\u4e0a\uff0c\u5f25\u8865\u4e86\u5206\u5e03\u5f0f\u6587\u4ef6\u7cfb\u7edf\u5bf9\u4e8e\u5c0f\u5bf9\u8c61\u7684\u63d2\u5165\u3001\u66f4\u65b0\u3001\u968f\u673a\u8bfb\u8bf7\u6c42\u7684\u7f3a\u9677\u3002HBase \u4e5f\u6309\u7167\u8fd9\u4e2a\u67b6\u6784\u5b9e\u73b0\uff0c\u5e95\u5c42\u57fa\u4e8eHDFS \u3002 HBase \u672c\u8eab\u5e76\u4e0d\u5b9e\u9645\u5b58\u50a8\u6570\u636e\uff0c\u6301\u4e45\u5316\u7684\u65e5\u5fd7\u548c SST file \u5b58\u50a8\u5728 HDFS \u4e0a\uff0cRegion Server \u901a\u8fc7 MemTable \u63d0\u4f9b\u5feb\u901f\u7684\u67e5\u8be2\uff0c\u5199\u5165\u90fd\u662f\u5148\u5199\u65e5\u5fd7\uff0c\u540e\u53f0\u8fdb\u884cCompact \uff0c\u5c06\u968f\u673a\u5199\u8f6c\u6362\u4e3a\u987a\u5e8f\u5199\u3002\u6570\u636e\u901a\u8fc7 Region \u5728\u903b\u8f91\u4e0a\u8fdb\u884c\u5206\u5272\uff0c\u8d1f\u8f7d\u5747\u8861\u901a\u8fc7\u8c03\u8282\u5404\u4e2a Region Server \u8d1f\u8d23\u7684Region\u533a\u95f4\u5b9e\u73b0\uff0cRegion\u5728 \u6301\u7eed\u5199\u5165\u540e\uff0c\u4f1a\u8fdb\u884c\u5206\u88c2\uff0c\u7136\u540e\u88ab\u8d1f\u8f7d\u5747\u8861\u7b56\u7565\u8c03\u5ea6\u5230\u591a\u4e2a Region Server \u4e0a\u3002"),(0,o.yg)("p",null,"\u524d\u9762\u63d0\u5230\u4e86\uff0c HBase \u672c\u8eab\u5e76\u4e0d\u5b58\u50a8\u6570\u636e\uff0c\u8fd9\u91cc\u7684 Region \u4ec5\u662f\u903b\u8f91\u4e0a\u7684\u6982\u5ff5\uff0c\u6570\u636e\u8fd8\u662f\u4ee5\u6587\u4ef6\u7684\u5f62\u5f0f\u5b58\u50a8\u5728 HDFS \u4e0a\uff0cHBase \u5e76\u4e0d\u5173\u5fc3\u526f\u672c\u4e2a\u6570\u3001\u4f4d\u7f6e\u4ee5\u53ca\u6c34\u5e73\u6269\u5c55\u95ee\u9898\uff0c\u8fd9\u4e9b\u90fd\u4f9d\u8d56\u4e8e HDFS \u5b9e\u73b0\u3002\u548c BigTable \u4e00\u6837\uff0c HBase \u63d0\u4f9b\u884c\u7ea7\u7684\u4e00\u81f4\u6027\uff0c\u4ece CAP \u7406\u8bba\u7684\u89d2\u5ea6\u6765\u770b\uff0c\u5b83\u662f\u4e00\u4e2a CP \u7684\u7cfb\u7edf\uff0c\u5e76\u4e14\u6ca1\u6709\u66f4\u8fdb\u4e00\u6b65\u63d0\u4f9b ACID \u7684\u8de8\u884c\u4e8b\u52a1\uff0c\u4e5f\u662f\u5f88\u9057\u61be\u3002"),(0,o.yg)("p",null,"HBase \u7684\u4f18\u52bf\u5728\u4e8e\u901a\u8fc7\u6269\u5c55 Region Server \u53ef\u4ee5\u51e0\u4e4e\u7ebf\u6027\u63d0\u5347\u7cfb\u7edf\u7684\u541e\u5410\uff0c\u53ca HDFS \u672c\u8eab\u5c31\u5177\u6709\u7684\u6c34\u5e73\u6269\u5c55\u80fd\u529b\uff0c\u4e14\u6574\u4e2a\u7cfb\u7edf\u6210\u719f\u7a33\u5b9a\u3002\u4f46 HBase \u4f9d\u7136\u6709\u4e00\u4e9b\u4e0d\u8db3\u3002\u9996\u5148\uff0c Hadoop \u4f7f\u7528 Java \u5f00\u53d1\uff0c GC \u5ef6\u8fdf\u662f\u4e00\u4e2a\u65e0\u6cd5\u907f\u514d\u95ee\u9898\uff0c\u8fd9\u5bf9\u7cfb\u7edf\u7684\u5ef6\u8fdf\u9020\u6210\u4e00\u4e9b\u5f71\u54cd\u3002\u53e6\u5916\uff0c\u7531\u4e8eHBase \u672c\u8eab\u5e76\u4e0d\u5b58\u50a8\u6570\u636e\uff0c\u548c HDFS \u4e4b\u95f4\u7684\u4ea4\u4e92\u4f1a\u591a\u4e00\u5c42\u6027\u80fd\u635f\u8017\u3002\u7b2c\u4e09\uff0c HBase \u548cBigTable \u4e00\u6837\uff0c\u5e76\u4e0d\u652f\u6301\u8de8\u884c\u4e8b\u52a1\uff0c\u6240\u4ee5\u5728 Google \u5185\u90e8\u6709\u56e2\u961f\u5f00\u53d1\u4e86 MegaStore \u3001 Percolator \u8fd9\u4e9b\u57fa\u4e8e BigTable \u7684\u4e8b\u52a1\u5c42\u3002 Jeff Dean \u627f\u8ba4\u5f88\u540e\u6094\u6ca1\u6709\u5728 BigTable \u4e2d\u52a0\u5165\u8de8\u884c\u4e8b\u52a1\uff0c\u8fd9\u4e5f\u662f Spanner \u51fa\u73b0\u7684\u4e00\u4e2a\u539f\u56e0\u3002"),(0,o.yg)("h4",{id:"rdms-\u7684\u6551\u8d4e"},"RDMS \u7684\u6551\u8d4e"),(0,o.yg)("p",null,"\u9664\u4e86 NoSQL \u4e4b\u5916\uff0c RDMS \u7cfb\u7edf\u4e5f\u505a\u4e86\u4e0d\u5c11\u52aa\u529b\u6765\u9002\u5e94\u4e1a\u52a1\u7684\u53d8\u5316\uff0c\u4e5f\u5c31\u662f\u5173\u7cfb\u578b\u6570\u636e\u5e93\u7684\u4e2d\u95f4\u4ef6\u548c\u5206\u5e93\u5206\u8868\u65b9\u6848\u3002\u505a\u4e00\u6b3e\u4e2d\u95f4\u4ef6\u9700\u8981\u8003\u8651\u5f88\u591a\uff0c\u6bd4\u5982\u89e3\u6790 SQL \uff0c\u89e3\u6790\u51fa ShardKey \uff0c\u7136\u540e\u6839\u636e ShardKey \u5206\u53d1\u8bf7\u6c42\uff0c\u518d\u5408\u5e76\u7ed3\u679c\u3002\u53e6\u5916\u5728\u4e2d\u95f4\u4ef6\u8fd9\u5c42\u8fd8\u9700\u8981\u7ef4\u62a4 Session \u53ca\u4e8b\u52a1\u72b6\u6001\uff0c\u800c\u4e14\u5927\u591a\u6570\u65b9\u6848\u5e76\u4e0d\u652f\u6301\u8de8 shard \u7684\u4e8b\u52a1\uff0c\u8fd9\u5c31\u4e0d\u53ef\u907f\u514d\u5730\u5bfc\u81f4\u4e86\u4e1a\u52a1\u4f7f\u7528\u8d77\u6765\u4f1a\u6bd4\u8f83\u9ebb\u70e6\uff0c\u9700\u8981\u81ea\u5df1\u7ef4\u62a4\u4e8b\u52a1\u72b6\u6001\u3002\u6b64\u5916\uff0c\u8fd8\u6709\u52a8\u6001\u7684\u6269\u5bb9\u7f29\u5bb9\u548c\u81ea\u52a8\u7684\u6545\u969c\u6062\u590d\uff0c\u5728\u96c6\u7fa4\u89c4\u6a21\u8d8a\u6765\u8d8a\u5927\u7684\u60c5\u51b5\u4e0b\uff0c\u8fd0\u7ef4\u548c DDL \u7684\u590d\u6742\u5ea6\u662f\u6307\u6570\u7ea7\u4e0a\u5347\u3002"),(0,o.yg)("p",null,"\u56fd\u5185\u5f00\u53d1\u8005\u5728\u8fd9\u4e2a\u9886\u57df\u6709\u8fc7\u5f88\u591a\u7684\u8457\u540d\u7684\u9879\u76ee\uff0c\u6bd4\u5982\u963f\u91cc\u7684 Cobar \u3001 TDDL \uff0c\u540e\u6765\u793e\u533a\u57fa\u4e8eCobar \u6539\u8fdb\u7684 MyCAT \uff0c 360 \u5f00\u6e90\u7684 Atlas \u7b49\uff0c\u90fd\u5c5e\u4e8e\u8fd9\u4e00\u7c7b\u4e2d\u95f4\u4ef6\u4ea7\u54c1\u3002\u5728\u4e2d\u95f4\u4ef6\u8fd9\u4e2a\u65b9\u6848\u4e0a\u6709\u4e00\u4e2a\u77e5\u540d\u7684\u5f00\u6e90\u9879\u76ee\u662f Youtube \u7684 Vitess \uff0c\u8fd9\u662f\u4e00\u4e2a\u96c6\u5927\u6210\u7684\u4e2d\u95f4\u4ef6\u4ea7\u54c1\uff0c\u5185\u7f6e\u4e86\u70ed\u6570\u636e\u7f13\u5b58\u3001\u6c34\u5e73\u52a8\u6001\u5206\u7247\u3001\u8bfb\u5199\u5206\u79bb\u7b49\uff0c\u4f46\u8fd9\u4e5f\u9020\u6210\u4e86\u6574\u4e2a\u9879\u76ee\u975e\u5e38\u590d\u6742\u3002"),(0,o.yg)("p",null,"\u53e6\u5916\u4e00\u4e2a\u503c\u5f97\u4e00\u63d0\u7684\u662f PostgreSQL XC \u8fd9\u4e2a\u9879\u76ee\uff0c\u5176\u6574\u4f53\u7684\u67b6\u6784\u6709\u70b9\u50cf\u65e9\u671f\u7248\u672c\u7684OceanBase \uff0c\u7531\u4e00\u4e2a\u4e2d\u592e\u8282\u70b9\u6765\u5904\u7406\u534f\u8c03\u5206\u5e03\u5f0f\u4e8b\u52a1\uff0c\u6570\u636e\u5206\u6563\u5728\u5404\u4e2a\u5b58\u50a8\u8282\u70b9\u4e0a\uff0c\u5e94\u8be5\u662f\u76ee\u524d PG \u793e\u533a\u6700\u597d\u7684\u5206\u5e03\u5f0f\u6269\u5c55\u65b9\u6848\uff0c\u4e0d\u5c11\u4eba\u5728\u57fa\u4e8e\u8fd9\u4e2a\u9879\u76ee\u505a\u81ea\u5df1\u7684\u7cfb\u7edf\u3002"),(0,o.yg)("h3",{id:"\u5173\u7cfb\u578b\u6570\u636e\u5e93\u4e2d\u95f4\u4ef6"},"\u5173\u7cfb\u578b\u6570\u636e\u5e93\u4e2d\u95f4\u4ef6"),(0,o.yg)("p",null,"RDMS\u7684\u6551\u8d4e\u5c31\u662f\u5173\u7cfb\u578b\u6570\u636e\u5e93\u4e2d\u95f4\u4ef6\u4ea7\u751f\u7684\u539f\u56e0\u3002"),(0,o.yg)("h3",{id:"newsql\u7684\u53d1\u5c55"},"NewSQL\u7684\u53d1\u5c55"),(0,o.yg)("p",null,"2012 ~ 2013 \u5e74 Google \u76f8\u7ee7\u53d1\u8868\u4e86 Spanner \u548c F1 \u4e24\u5957\u7cfb\u7edf\u7684\u8bba\u6587\uff0c\u8ba9\u4e1a\u754c\u7b2c\u4e00\u6b21\u770b\u5230\u4e86\u5173\u7cfb\u6a21\u578b\u548c NoSQL \u7684\u6269\u5c55\u6027\u5728\u4e00\u4e2a\u5927\u89c4\u6a21\u751f\u4ea7\u7cfb\u7edf\u4e0a\u878d\u5408\u7684\u53ef\u80fd\u6027\u3002 Spanner \u901a\u8fc7\u4f7f\u7528\u786c\u4ef6\u8bbe\u5907\uff08 GPS \u65f6\u949f+\u539f\u5b50\u949f\uff09\u5de7\u5999\u5730\u89e3\u51b3\u65f6\u949f\u540c\u6b65\u7684\u95ee\u9898\uff0c\u800c\u5728\u5206\u5e03\u5f0f\u7cfb\u7edf\u91cc\uff0c\u65f6\u949f\u6b63\u662f\u6700\u8ba9\u4eba\u5934\u75db\u7684\u95ee\u9898\u3002Spanner \u7684\u5f3a\u5927\u4e4b\u5904\u5728\u4e8e\u5373\u4f7f\u4e24\u4e2a\u6570\u636e\u4e2d\u5fc3\u9694\u5f97\u975e\u5e38\u8fdc\uff0c\u4e5f\u80fd\u4fdd\u8bc1\u901a\u8fc7TrueTime API \u83b7\u53d6\u7684\u65f6\u95f4\u8bef\u5dee\u5728\u4e00\u4e2a\u5f88\u5c0f\u7684\u8303\u56f4\u5185\uff08 10ms \uff09\uff0c\u5e76\u4e14\u4e0d\u9700\u8981\u901a\u8baf\u3002 Spanner \u7684\u5e95\u5c42\u4ecd\u7136\u57fa\u4e8e\u5206\u5e03\u5f0f\u6587\u4ef6\u7cfb\u7edf\uff0c\u4e0d\u8fc7\u8bba\u6587\u91cc\u4e5f\u8bf4\u662f\u53ef\u4ee5\u672a\u6765\u4f18\u5316\u7684\u70b9\u3002"),(0,o.yg)("p",null,"Google \u7684\u5185\u90e8\u7684\u6570\u636e\u5e93\u5b58\u50a8\u4e1a\u52a1\uff0c\u5927\u591a\u662f 3 ~ 5 \u526f\u672c\uff0c\u91cd\u8981\u7684\u6570\u636e\u9700\u8981 7 \u526f\u672c\uff0c\u4e14\u8fd9\u4e9b\u526f\u672c\u904d\u5e03\u5168\u7403\u5404\u5927\u6d32\u7684\u6570\u636e\u4e2d\u5fc3\uff0c\u7531\u4e8e\u666e\u904d\u4f7f\u7528\u4e86Paxos \uff0c\u5ef6\u8fdf\u662f\u53ef\u4ee5\u7f29\u77ed\u5230\u4e00\u4e2a\u53ef\u4ee5\u63a5\u53d7\u7684\u8303\u56f4(\u5199\u5165\u5ef6\u8fdf 100 ms\u4ee5\u4e0a)\uff0c\u53e6\u5916\u7531 Paxos \u5e26\u6765\u7684 Auto-Failover \u80fd\u529b\uff0c\u66f4\u662f\u8ba9\u6574\u4e2a\u96c6\u7fa4\u5373\u4f7f\u6570\u636e\u4e2d\u5fc3\u762b\u75ea\uff0c\u4e1a\u52a1\u5c42\u90fd\u662f\u900f\u660e\u65e0\u611f\u77e5\u7684\u3002 F1 \u662f\u6784\u5efa\u5728 Spanner \u4e4b\u4e0a\uff0c\u5bf9\u5916\u63d0\u4f9b\u4e86 SQL \u63a5\u53e3\uff0c F1 \u662f\u4e00\u4e2a\u5206\u5e03\u5f0f MPP SQL \u5c42\uff0c\u5176\u672c\u8eab\u5e76\u4e0d\u5b58\u50a8\u6570\u636e\uff0c\u800c\u662f\u5c06\u5ba2\u6237\u7aef\u7684 SQL \u7ffb\u8bd1\u6210\u5bf9KV \u7684\u64cd\u4f5c\uff0c\u8c03\u7528 Spanner \u6765\u5b8c\u6210\u8bf7\u6c42\u3002"),(0,o.yg)("p",null,"Spanner \u548c F1 \u7684\u51fa\u73b0\u6807\u5fd7\u7740\u7b2c\u4e00\u4e2a NewSQL \u5728\u751f\u4ea7\u73af\u5883\u4e2d\u63d0\u4f9b\u670d\u52a1\uff0c\u5c06\u4e0b\u9762\u51e0\u4e2a\u529f\u80fd\u5728\u4e00\u5957\u7cfb\u7edf\u4e2d\u63d0\u4f9b\uff1a"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},"SQL \u652f\u6301"),(0,o.yg)("li",{parentName:"ol"},"ACID \u4e8b\u52a1"),(0,o.yg)("li",{parentName:"ol"},"\u6c34\u5e73\u6269\u5c55"),(0,o.yg)("li",{parentName:"ol"},"Auto Failover"),(0,o.yg)("li",{parentName:"ol"},"\u591a\u673a\u623f\u5f02\u5730\u5bb9\u707e")),(0,o.yg)("p",null,"\u6b63\u56e0\u4e3a\u5177\u5907\u5982\u6b64\u591a\u7684\u8bf1\u4eba\u7279\u6027\uff0c\u5728 Google \u5185\u90e8\uff0c\u5927\u91cf\u7684\u4e1a\u52a1\u5df2\u7ecf\u4ece\u539f\u6765\u7684 BigTable \u5207\u6362\u5230Spanner \u4e4b\u4e0a\u3002\u76f8\u4fe1\u8fd9\u5bf9\u4e1a\u754c\u7684\u601d\u8def\u4f1a\u6709\u5de8\u5927\u7684\u5f71\u54cd\uff0c\u5c31\u50cf\u5f53\u5e74\u7684 Hadoop \u4e00\u6837\uff0c Google \u7684\u57fa\u7840\u8f6f\u4ef6\u7684\u6280\u672f\u8d8b\u52bf\u662f\u8d70\u5728\u793e\u533a\u524d\u9762\u7684\u3002\nSpanner/F1 \u8bba\u6587\u5f15\u8d77\u4e86\u793e\u533a\u7684\u5e7f\u6cdb\u7684\u5173\u6ce8\uff0c\u5f88\u5feb\u5f00\u59cb\u51fa\u73b0\u4e86\u8ffd\u968f\u8005\u3002\u7b2c\u4e00\u4e2a\u56e2\u961f\u662fCockroachLabs \u505a\u7684 CockroachDB \u3002 CockroachDB \u7684\u8bbe\u8ba1\u548c Spanner \u5f88\u50cf\uff0c\u4f46\u662f\u6ca1\u6709\u9009\u62e9 TrueTime API \uff0c\u800c\u662f\u4f7f\u7528 HLC\uff08 Hybrid logical clock \uff09\uff0c\u4e5f\u5c31\u662f NTP +\u903b\u8f91\u65f6\u949f\u6765\u4ee3\u66ff TrueTime \u65f6\u95f4\u6233\uff0c\u53e6\u5916 CockroachDB \u9009\u7528 Raft \u505a\u6570\u636e\u590d\u5236\u534f\u8bae\uff0c\u5e95\u5c42\u5b58\u50a8\u843d\u5730\u5728RocksDB \u4e2d\uff0c\u5bf9\u5916\u7684\u63a5\u53e3\u9009\u62e9\u4e86 PG \u534f\u8bae\u3002"),(0,o.yg)("p",null,"CockroachDB \u7684\u6280\u672f\u9009\u578b\u6bd4\u8f83\u6fc0\u8fdb\uff0c\u6bd4\u5982\u4f9d\u8d56\u4e86 HLC \u6765\u505a\u4e8b\u52a1\uff0c\u65f6\u95f4\u6233\u7684\u7cbe\u786e\u5ea6\u5e76\u6ca1\u6709\u529e\u6cd5\u505a\u5230 10 ms\u5185\u7684\u5ef6\u8fdf\uff0c\u6240\u4ee5 Commit Wait \u9700\u8981\u7528\u6237\u81ea\u5df1\u6307\u5b9a\uff0c\u5176\u9009\u62e9\u53d6\u51b3\u4e8e\u7528\u6237\u7684 NTP \u670d\u52a1\u65f6\u949f\u8bef\u5dee\uff0c\u8fd9\u70b9\u5bf9\u4e8e\u7528\u6237\u6765\u8bf4\u975e\u5e38\u4e0d\u53cb\u597d\u3002\u5f53\u7136 CockroachDB \u7684\u8fd9\u4e9b\u6280\u672f\u9009\u62e9\u4e5f\u5e26\u6765\u4e86\u5f88\u597d\u7684\u6613\u7528\u6027\uff0c\u6240\u6709\u903b\u8f91\u90fd\u5728\u4e00\u4e2a\u7ec4\u4ef6\u4e2d\uff0c\u90e8\u7f72\u975e\u5e38\u7b80\u5355\uff0c\u8fd9\u4e2a\u662f\u975e\u5e38\u5927\u7684\u4f18\u70b9\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2320],{5680:(e,r,n)=>{n.d(r,{xA:()=>c,yg:()=>g});var t=n(6540);function o(e,r,n){return r in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n,e}function a(e,r){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r&&(t=t.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),n.push.apply(n,t)}return n}function l(e){for(var r=1;r=0||(o[n]=e[n]);return o}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=t.createContext({}),p=function(e){var r=t.useContext(s),n=r;return e&&(n="function"==typeof e?e(r):l(l({},r),e)),n},c=function(e){var r=p(e.components);return t.createElement(s.Provider,{value:r},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var r=e.children;return t.createElement(t.Fragment,{},r)}},y=t.forwardRef((function(e,r){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),u=p(n),y=o,g=u["".concat(s,".").concat(y)]||u[y]||d[y]||a;return n?t.createElement(g,l(l({ref:r},c),{},{components:n})):t.createElement(g,l({ref:r},c))}));function g(e,r){var n=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var a=n.length,l=new Array(a);l[0]=y;var i={};for(var s in r)hasOwnProperty.call(r,s)&&(i[s]=r[s]);i.originalType=e,i[u]="string"==typeof e?e:o,l[1]=i;for(var p=2;p{n.r(r),n.d(r,{assets:()=>s,contentTitle:()=>l,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>p});var t=n(8168),o=(n(6540),n(5680));const a={sidebar_position:1},l=void 0,i={unversionedId:"study/db/SQL/\u7efc\u5408\u6982\u8ff0",id:"study/db/SQL/\u7efc\u5408\u6982\u8ff0",title:"\u7efc\u5408\u6982\u8ff0",description:"\u80cc\u666f",source:"@site/docs/study/db/SQL/\u7efc\u5408\u6982\u8ff0.md",sourceDirName:"study/db/SQL",slug:"/study/db/SQL/\u7efc\u5408\u6982\u8ff0",permalink:"/docs/study/db/SQL/\u7efc\u5408\u6982\u8ff0",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"StarRocks",permalink:"/docs/study/db/OLAP/StarRocks"},next:{title:"MariaDB",permalink:"/docs/study/db/SQL/MariaDB"}},s={},p=[{value:"\u80cc\u666f",id:"\u80cc\u666f",level:3},{value:"\u5206\u5e03\u5f0f\u6570\u636e\u5e93",id:"\u5206\u5e03\u5f0f\u6570\u636e\u5e93",level:3},{value:"NoSQL\u7684\u8fdb\u51fb",id:"nosql\u7684\u8fdb\u51fb",level:4},{value:"RDMS \u7684\u6551\u8d4e",id:"rdms-\u7684\u6551\u8d4e",level:4},{value:"\u5173\u7cfb\u578b\u6570\u636e\u5e93\u4e2d\u95f4\u4ef6",id:"\u5173\u7cfb\u578b\u6570\u636e\u5e93\u4e2d\u95f4\u4ef6",level:3},{value:"NewSQL\u7684\u53d1\u5c55",id:"newsql\u7684\u53d1\u5c55",level:3}],c={toc:p},u="wrapper";function d(e){let{components:r,...n}=e;return(0,o.yg)(u,(0,t.A)({},c,n,{components:r,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u80cc\u666f"},"\u80cc\u666f"),(0,o.yg)("p",null,"\u968f\u7740\u4e92\u8054\u7f51\u7684\u4e0d\u65ad\u666e\u53ca\u7279\u522b\u662f\u79fb\u52a8\u4e92\u8054\u7f51\u7684\u5174\u8d77\uff0c\u6570\u636e\u89c4\u6a21\u7206\u70b8\u5f0f\u589e\u957f\uff0c\u800c\u786c\u4ef6\u8fd9\u4e9b\u5e74\u7684\u8fdb\u6b65\u901f\u5ea6\u5374\u5728\u9010\u6e10\u51cf\u6162\uff0c\u4eba\u4eec\u4e5f\u5728\u62c5\u5fc3\u6469\u5c14\u5b9a\u5f8b\u4f1a\u5931\u6548\u3002\u5728\u6b64\u6d88\u5f7c\u957f\u7684\u60c5\u51b5\u4e0b\uff0c\u5355\u673a\u6570\u636e\u5e93\u8d8a\u6765\u8d8a\u96be\u4ee5\u6ee1\u8db3\u7528\u6237\u9700\u6c42\uff0c\u5373\u4f7f\u662f\u5c06\u6570\u636e\u4fdd\u5b58\u4e0b\u6765\u8fd9\u4e2a\u6700\u57fa\u672c\u7684\u9700\u6c42\u3002"),(0,o.yg)("h3",{id:"\u5206\u5e03\u5f0f\u6570\u636e\u5e93"},"\u5206\u5e03\u5f0f\u6570\u636e\u5e93"),(0,o.yg)("p",null,"\u6240\u4ee5 2005 \u5e74\u5de6\u53f3\uff0c\u4eba\u4eec\u5f00\u59cb\u63a2\u7d22\u5206\u5e03\u5f0f\u6570\u636e\u5e93\uff0c\u5e26\u8d77\u4e86 NoSQL \u8fd9\u6ce2\u6d6a\u6f6e\u3002\u8fd9\u4e9b\u6570\u636e\u5e93\u89e3\u51b3\u7684\u9996\u8981\u95ee\u9898\u662f\u5355\u673a\u4e0a\u65e0\u6cd5\u4fdd\u5b58\u5168\u90e8\u6570\u636e\uff0c\u5176\u4e2d\u4ee5 HBase/Cassadra/MongoDB \u4e3a\u4ee3\u8868\u3002\u4e3a\u4e86\u5b9e\u73b0\u5bb9\u91cf\u7684\u6c34\u5e73\u6269\u5c55\uff0c\u8fd9\u4e9b\u6570\u636e\u5e93\u5f80\u5f80\u8981\u653e\u5f03\u4e8b\u52a1\uff0c\u6216\u8005\u662f\u53ea\u63d0\u4f9b\u7b80\u5355\u7684 KV \u63a5\u53e3\u3002\u5b58\u50a8\u6a21\u578b\u7684\u7b80\u5316\u4e3a\u5b58\u50a8\u7cfb\u7edf\u7684\u5f00\u53d1\u5e26\u6765\u4e86\u4fbf\u5229\uff0c\u4f46\u662f\u964d\u4f4e\u4e86\u5bf9\u4e1a\u52a1\u7684\u652f\u6491\u3002"),(0,o.yg)("h4",{id:"nosql\u7684\u8fdb\u51fb"},"NoSQL\u7684\u8fdb\u51fb"),(0,o.yg)("p",null,"HBase \u662f\u5176\u4e2d\u7684\u5178\u578b\u4ee3\u8868\u3002 HBase \u662f Hadoop \u751f\u6001\u4e2d\u7684\u91cd\u8981\u4ea7\u54c1\uff0cGoogle BigTable \u7684\u5f00\u6e90\u5b9e\u73b0\uff0c\u6240\u4ee5\u8fd9\u91cc\u5148\u8bf4\u4e00\u4e0b BigTable \u3002"),(0,o.yg)("p",null,"BigTable \u662f Google \u5185\u90e8\u4f7f\u7528\u7684\u5206\u5e03\u5f0f\u6570\u636e\u5e93\uff0c\u6784\u5efa\u5728 GFS \u7684\u57fa\u7840\u4e0a\uff0c\u5f25\u8865\u4e86\u5206\u5e03\u5f0f\u6587\u4ef6\u7cfb\u7edf\u5bf9\u4e8e\u5c0f\u5bf9\u8c61\u7684\u63d2\u5165\u3001\u66f4\u65b0\u3001\u968f\u673a\u8bfb\u8bf7\u6c42\u7684\u7f3a\u9677\u3002HBase \u4e5f\u6309\u7167\u8fd9\u4e2a\u67b6\u6784\u5b9e\u73b0\uff0c\u5e95\u5c42\u57fa\u4e8eHDFS \u3002 HBase \u672c\u8eab\u5e76\u4e0d\u5b9e\u9645\u5b58\u50a8\u6570\u636e\uff0c\u6301\u4e45\u5316\u7684\u65e5\u5fd7\u548c SST file \u5b58\u50a8\u5728 HDFS \u4e0a\uff0cRegion Server \u901a\u8fc7 MemTable \u63d0\u4f9b\u5feb\u901f\u7684\u67e5\u8be2\uff0c\u5199\u5165\u90fd\u662f\u5148\u5199\u65e5\u5fd7\uff0c\u540e\u53f0\u8fdb\u884cCompact \uff0c\u5c06\u968f\u673a\u5199\u8f6c\u6362\u4e3a\u987a\u5e8f\u5199\u3002\u6570\u636e\u901a\u8fc7 Region \u5728\u903b\u8f91\u4e0a\u8fdb\u884c\u5206\u5272\uff0c\u8d1f\u8f7d\u5747\u8861\u901a\u8fc7\u8c03\u8282\u5404\u4e2a Region Server \u8d1f\u8d23\u7684Region\u533a\u95f4\u5b9e\u73b0\uff0cRegion\u5728 \u6301\u7eed\u5199\u5165\u540e\uff0c\u4f1a\u8fdb\u884c\u5206\u88c2\uff0c\u7136\u540e\u88ab\u8d1f\u8f7d\u5747\u8861\u7b56\u7565\u8c03\u5ea6\u5230\u591a\u4e2a Region Server \u4e0a\u3002"),(0,o.yg)("p",null,"\u524d\u9762\u63d0\u5230\u4e86\uff0c HBase \u672c\u8eab\u5e76\u4e0d\u5b58\u50a8\u6570\u636e\uff0c\u8fd9\u91cc\u7684 Region \u4ec5\u662f\u903b\u8f91\u4e0a\u7684\u6982\u5ff5\uff0c\u6570\u636e\u8fd8\u662f\u4ee5\u6587\u4ef6\u7684\u5f62\u5f0f\u5b58\u50a8\u5728 HDFS \u4e0a\uff0cHBase \u5e76\u4e0d\u5173\u5fc3\u526f\u672c\u4e2a\u6570\u3001\u4f4d\u7f6e\u4ee5\u53ca\u6c34\u5e73\u6269\u5c55\u95ee\u9898\uff0c\u8fd9\u4e9b\u90fd\u4f9d\u8d56\u4e8e HDFS \u5b9e\u73b0\u3002\u548c BigTable \u4e00\u6837\uff0c HBase \u63d0\u4f9b\u884c\u7ea7\u7684\u4e00\u81f4\u6027\uff0c\u4ece CAP \u7406\u8bba\u7684\u89d2\u5ea6\u6765\u770b\uff0c\u5b83\u662f\u4e00\u4e2a CP \u7684\u7cfb\u7edf\uff0c\u5e76\u4e14\u6ca1\u6709\u66f4\u8fdb\u4e00\u6b65\u63d0\u4f9b ACID \u7684\u8de8\u884c\u4e8b\u52a1\uff0c\u4e5f\u662f\u5f88\u9057\u61be\u3002"),(0,o.yg)("p",null,"HBase \u7684\u4f18\u52bf\u5728\u4e8e\u901a\u8fc7\u6269\u5c55 Region Server \u53ef\u4ee5\u51e0\u4e4e\u7ebf\u6027\u63d0\u5347\u7cfb\u7edf\u7684\u541e\u5410\uff0c\u53ca HDFS \u672c\u8eab\u5c31\u5177\u6709\u7684\u6c34\u5e73\u6269\u5c55\u80fd\u529b\uff0c\u4e14\u6574\u4e2a\u7cfb\u7edf\u6210\u719f\u7a33\u5b9a\u3002\u4f46 HBase \u4f9d\u7136\u6709\u4e00\u4e9b\u4e0d\u8db3\u3002\u9996\u5148\uff0c Hadoop \u4f7f\u7528 Java \u5f00\u53d1\uff0c GC \u5ef6\u8fdf\u662f\u4e00\u4e2a\u65e0\u6cd5\u907f\u514d\u95ee\u9898\uff0c\u8fd9\u5bf9\u7cfb\u7edf\u7684\u5ef6\u8fdf\u9020\u6210\u4e00\u4e9b\u5f71\u54cd\u3002\u53e6\u5916\uff0c\u7531\u4e8eHBase \u672c\u8eab\u5e76\u4e0d\u5b58\u50a8\u6570\u636e\uff0c\u548c HDFS \u4e4b\u95f4\u7684\u4ea4\u4e92\u4f1a\u591a\u4e00\u5c42\u6027\u80fd\u635f\u8017\u3002\u7b2c\u4e09\uff0c HBase \u548cBigTable \u4e00\u6837\uff0c\u5e76\u4e0d\u652f\u6301\u8de8\u884c\u4e8b\u52a1\uff0c\u6240\u4ee5\u5728 Google \u5185\u90e8\u6709\u56e2\u961f\u5f00\u53d1\u4e86 MegaStore \u3001 Percolator \u8fd9\u4e9b\u57fa\u4e8e BigTable \u7684\u4e8b\u52a1\u5c42\u3002 Jeff Dean \u627f\u8ba4\u5f88\u540e\u6094\u6ca1\u6709\u5728 BigTable \u4e2d\u52a0\u5165\u8de8\u884c\u4e8b\u52a1\uff0c\u8fd9\u4e5f\u662f Spanner \u51fa\u73b0\u7684\u4e00\u4e2a\u539f\u56e0\u3002"),(0,o.yg)("h4",{id:"rdms-\u7684\u6551\u8d4e"},"RDMS \u7684\u6551\u8d4e"),(0,o.yg)("p",null,"\u9664\u4e86 NoSQL \u4e4b\u5916\uff0c RDMS \u7cfb\u7edf\u4e5f\u505a\u4e86\u4e0d\u5c11\u52aa\u529b\u6765\u9002\u5e94\u4e1a\u52a1\u7684\u53d8\u5316\uff0c\u4e5f\u5c31\u662f\u5173\u7cfb\u578b\u6570\u636e\u5e93\u7684\u4e2d\u95f4\u4ef6\u548c\u5206\u5e93\u5206\u8868\u65b9\u6848\u3002\u505a\u4e00\u6b3e\u4e2d\u95f4\u4ef6\u9700\u8981\u8003\u8651\u5f88\u591a\uff0c\u6bd4\u5982\u89e3\u6790 SQL \uff0c\u89e3\u6790\u51fa ShardKey \uff0c\u7136\u540e\u6839\u636e ShardKey \u5206\u53d1\u8bf7\u6c42\uff0c\u518d\u5408\u5e76\u7ed3\u679c\u3002\u53e6\u5916\u5728\u4e2d\u95f4\u4ef6\u8fd9\u5c42\u8fd8\u9700\u8981\u7ef4\u62a4 Session \u53ca\u4e8b\u52a1\u72b6\u6001\uff0c\u800c\u4e14\u5927\u591a\u6570\u65b9\u6848\u5e76\u4e0d\u652f\u6301\u8de8 shard \u7684\u4e8b\u52a1\uff0c\u8fd9\u5c31\u4e0d\u53ef\u907f\u514d\u5730\u5bfc\u81f4\u4e86\u4e1a\u52a1\u4f7f\u7528\u8d77\u6765\u4f1a\u6bd4\u8f83\u9ebb\u70e6\uff0c\u9700\u8981\u81ea\u5df1\u7ef4\u62a4\u4e8b\u52a1\u72b6\u6001\u3002\u6b64\u5916\uff0c\u8fd8\u6709\u52a8\u6001\u7684\u6269\u5bb9\u7f29\u5bb9\u548c\u81ea\u52a8\u7684\u6545\u969c\u6062\u590d\uff0c\u5728\u96c6\u7fa4\u89c4\u6a21\u8d8a\u6765\u8d8a\u5927\u7684\u60c5\u51b5\u4e0b\uff0c\u8fd0\u7ef4\u548c DDL \u7684\u590d\u6742\u5ea6\u662f\u6307\u6570\u7ea7\u4e0a\u5347\u3002"),(0,o.yg)("p",null,"\u56fd\u5185\u5f00\u53d1\u8005\u5728\u8fd9\u4e2a\u9886\u57df\u6709\u8fc7\u5f88\u591a\u7684\u8457\u540d\u7684\u9879\u76ee\uff0c\u6bd4\u5982\u963f\u91cc\u7684 Cobar \u3001 TDDL \uff0c\u540e\u6765\u793e\u533a\u57fa\u4e8eCobar \u6539\u8fdb\u7684 MyCAT \uff0c 360 \u5f00\u6e90\u7684 Atlas \u7b49\uff0c\u90fd\u5c5e\u4e8e\u8fd9\u4e00\u7c7b\u4e2d\u95f4\u4ef6\u4ea7\u54c1\u3002\u5728\u4e2d\u95f4\u4ef6\u8fd9\u4e2a\u65b9\u6848\u4e0a\u6709\u4e00\u4e2a\u77e5\u540d\u7684\u5f00\u6e90\u9879\u76ee\u662f Youtube \u7684 Vitess \uff0c\u8fd9\u662f\u4e00\u4e2a\u96c6\u5927\u6210\u7684\u4e2d\u95f4\u4ef6\u4ea7\u54c1\uff0c\u5185\u7f6e\u4e86\u70ed\u6570\u636e\u7f13\u5b58\u3001\u6c34\u5e73\u52a8\u6001\u5206\u7247\u3001\u8bfb\u5199\u5206\u79bb\u7b49\uff0c\u4f46\u8fd9\u4e5f\u9020\u6210\u4e86\u6574\u4e2a\u9879\u76ee\u975e\u5e38\u590d\u6742\u3002"),(0,o.yg)("p",null,"\u53e6\u5916\u4e00\u4e2a\u503c\u5f97\u4e00\u63d0\u7684\u662f PostgreSQL XC \u8fd9\u4e2a\u9879\u76ee\uff0c\u5176\u6574\u4f53\u7684\u67b6\u6784\u6709\u70b9\u50cf\u65e9\u671f\u7248\u672c\u7684OceanBase \uff0c\u7531\u4e00\u4e2a\u4e2d\u592e\u8282\u70b9\u6765\u5904\u7406\u534f\u8c03\u5206\u5e03\u5f0f\u4e8b\u52a1\uff0c\u6570\u636e\u5206\u6563\u5728\u5404\u4e2a\u5b58\u50a8\u8282\u70b9\u4e0a\uff0c\u5e94\u8be5\u662f\u76ee\u524d PG \u793e\u533a\u6700\u597d\u7684\u5206\u5e03\u5f0f\u6269\u5c55\u65b9\u6848\uff0c\u4e0d\u5c11\u4eba\u5728\u57fa\u4e8e\u8fd9\u4e2a\u9879\u76ee\u505a\u81ea\u5df1\u7684\u7cfb\u7edf\u3002"),(0,o.yg)("h3",{id:"\u5173\u7cfb\u578b\u6570\u636e\u5e93\u4e2d\u95f4\u4ef6"},"\u5173\u7cfb\u578b\u6570\u636e\u5e93\u4e2d\u95f4\u4ef6"),(0,o.yg)("p",null,"RDMS\u7684\u6551\u8d4e\u5c31\u662f\u5173\u7cfb\u578b\u6570\u636e\u5e93\u4e2d\u95f4\u4ef6\u4ea7\u751f\u7684\u539f\u56e0\u3002"),(0,o.yg)("h3",{id:"newsql\u7684\u53d1\u5c55"},"NewSQL\u7684\u53d1\u5c55"),(0,o.yg)("p",null,"2012 ~ 2013 \u5e74 Google \u76f8\u7ee7\u53d1\u8868\u4e86 Spanner \u548c F1 \u4e24\u5957\u7cfb\u7edf\u7684\u8bba\u6587\uff0c\u8ba9\u4e1a\u754c\u7b2c\u4e00\u6b21\u770b\u5230\u4e86\u5173\u7cfb\u6a21\u578b\u548c NoSQL \u7684\u6269\u5c55\u6027\u5728\u4e00\u4e2a\u5927\u89c4\u6a21\u751f\u4ea7\u7cfb\u7edf\u4e0a\u878d\u5408\u7684\u53ef\u80fd\u6027\u3002 Spanner \u901a\u8fc7\u4f7f\u7528\u786c\u4ef6\u8bbe\u5907\uff08 GPS \u65f6\u949f+\u539f\u5b50\u949f\uff09\u5de7\u5999\u5730\u89e3\u51b3\u65f6\u949f\u540c\u6b65\u7684\u95ee\u9898\uff0c\u800c\u5728\u5206\u5e03\u5f0f\u7cfb\u7edf\u91cc\uff0c\u65f6\u949f\u6b63\u662f\u6700\u8ba9\u4eba\u5934\u75db\u7684\u95ee\u9898\u3002Spanner \u7684\u5f3a\u5927\u4e4b\u5904\u5728\u4e8e\u5373\u4f7f\u4e24\u4e2a\u6570\u636e\u4e2d\u5fc3\u9694\u5f97\u975e\u5e38\u8fdc\uff0c\u4e5f\u80fd\u4fdd\u8bc1\u901a\u8fc7TrueTime API \u83b7\u53d6\u7684\u65f6\u95f4\u8bef\u5dee\u5728\u4e00\u4e2a\u5f88\u5c0f\u7684\u8303\u56f4\u5185\uff08 10ms \uff09\uff0c\u5e76\u4e14\u4e0d\u9700\u8981\u901a\u8baf\u3002 Spanner \u7684\u5e95\u5c42\u4ecd\u7136\u57fa\u4e8e\u5206\u5e03\u5f0f\u6587\u4ef6\u7cfb\u7edf\uff0c\u4e0d\u8fc7\u8bba\u6587\u91cc\u4e5f\u8bf4\u662f\u53ef\u4ee5\u672a\u6765\u4f18\u5316\u7684\u70b9\u3002"),(0,o.yg)("p",null,"Google \u7684\u5185\u90e8\u7684\u6570\u636e\u5e93\u5b58\u50a8\u4e1a\u52a1\uff0c\u5927\u591a\u662f 3 ~ 5 \u526f\u672c\uff0c\u91cd\u8981\u7684\u6570\u636e\u9700\u8981 7 \u526f\u672c\uff0c\u4e14\u8fd9\u4e9b\u526f\u672c\u904d\u5e03\u5168\u7403\u5404\u5927\u6d32\u7684\u6570\u636e\u4e2d\u5fc3\uff0c\u7531\u4e8e\u666e\u904d\u4f7f\u7528\u4e86Paxos \uff0c\u5ef6\u8fdf\u662f\u53ef\u4ee5\u7f29\u77ed\u5230\u4e00\u4e2a\u53ef\u4ee5\u63a5\u53d7\u7684\u8303\u56f4(\u5199\u5165\u5ef6\u8fdf 100 ms\u4ee5\u4e0a)\uff0c\u53e6\u5916\u7531 Paxos \u5e26\u6765\u7684 Auto-Failover \u80fd\u529b\uff0c\u66f4\u662f\u8ba9\u6574\u4e2a\u96c6\u7fa4\u5373\u4f7f\u6570\u636e\u4e2d\u5fc3\u762b\u75ea\uff0c\u4e1a\u52a1\u5c42\u90fd\u662f\u900f\u660e\u65e0\u611f\u77e5\u7684\u3002 F1 \u662f\u6784\u5efa\u5728 Spanner \u4e4b\u4e0a\uff0c\u5bf9\u5916\u63d0\u4f9b\u4e86 SQL \u63a5\u53e3\uff0c F1 \u662f\u4e00\u4e2a\u5206\u5e03\u5f0f MPP SQL \u5c42\uff0c\u5176\u672c\u8eab\u5e76\u4e0d\u5b58\u50a8\u6570\u636e\uff0c\u800c\u662f\u5c06\u5ba2\u6237\u7aef\u7684 SQL \u7ffb\u8bd1\u6210\u5bf9KV \u7684\u64cd\u4f5c\uff0c\u8c03\u7528 Spanner \u6765\u5b8c\u6210\u8bf7\u6c42\u3002"),(0,o.yg)("p",null,"Spanner \u548c F1 \u7684\u51fa\u73b0\u6807\u5fd7\u7740\u7b2c\u4e00\u4e2a NewSQL \u5728\u751f\u4ea7\u73af\u5883\u4e2d\u63d0\u4f9b\u670d\u52a1\uff0c\u5c06\u4e0b\u9762\u51e0\u4e2a\u529f\u80fd\u5728\u4e00\u5957\u7cfb\u7edf\u4e2d\u63d0\u4f9b\uff1a"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},"SQL \u652f\u6301"),(0,o.yg)("li",{parentName:"ol"},"ACID \u4e8b\u52a1"),(0,o.yg)("li",{parentName:"ol"},"\u6c34\u5e73\u6269\u5c55"),(0,o.yg)("li",{parentName:"ol"},"Auto Failover"),(0,o.yg)("li",{parentName:"ol"},"\u591a\u673a\u623f\u5f02\u5730\u5bb9\u707e")),(0,o.yg)("p",null,"\u6b63\u56e0\u4e3a\u5177\u5907\u5982\u6b64\u591a\u7684\u8bf1\u4eba\u7279\u6027\uff0c\u5728 Google \u5185\u90e8\uff0c\u5927\u91cf\u7684\u4e1a\u52a1\u5df2\u7ecf\u4ece\u539f\u6765\u7684 BigTable \u5207\u6362\u5230Spanner \u4e4b\u4e0a\u3002\u76f8\u4fe1\u8fd9\u5bf9\u4e1a\u754c\u7684\u601d\u8def\u4f1a\u6709\u5de8\u5927\u7684\u5f71\u54cd\uff0c\u5c31\u50cf\u5f53\u5e74\u7684 Hadoop \u4e00\u6837\uff0c Google \u7684\u57fa\u7840\u8f6f\u4ef6\u7684\u6280\u672f\u8d8b\u52bf\u662f\u8d70\u5728\u793e\u533a\u524d\u9762\u7684\u3002\nSpanner/F1 \u8bba\u6587\u5f15\u8d77\u4e86\u793e\u533a\u7684\u5e7f\u6cdb\u7684\u5173\u6ce8\uff0c\u5f88\u5feb\u5f00\u59cb\u51fa\u73b0\u4e86\u8ffd\u968f\u8005\u3002\u7b2c\u4e00\u4e2a\u56e2\u961f\u662fCockroachLabs \u505a\u7684 CockroachDB \u3002 CockroachDB \u7684\u8bbe\u8ba1\u548c Spanner \u5f88\u50cf\uff0c\u4f46\u662f\u6ca1\u6709\u9009\u62e9 TrueTime API \uff0c\u800c\u662f\u4f7f\u7528 HLC\uff08 Hybrid logical clock \uff09\uff0c\u4e5f\u5c31\u662f NTP +\u903b\u8f91\u65f6\u949f\u6765\u4ee3\u66ff TrueTime \u65f6\u95f4\u6233\uff0c\u53e6\u5916 CockroachDB \u9009\u7528 Raft \u505a\u6570\u636e\u590d\u5236\u534f\u8bae\uff0c\u5e95\u5c42\u5b58\u50a8\u843d\u5730\u5728RocksDB \u4e2d\uff0c\u5bf9\u5916\u7684\u63a5\u53e3\u9009\u62e9\u4e86 PG \u534f\u8bae\u3002"),(0,o.yg)("p",null,"CockroachDB \u7684\u6280\u672f\u9009\u578b\u6bd4\u8f83\u6fc0\u8fdb\uff0c\u6bd4\u5982\u4f9d\u8d56\u4e86 HLC \u6765\u505a\u4e8b\u52a1\uff0c\u65f6\u95f4\u6233\u7684\u7cbe\u786e\u5ea6\u5e76\u6ca1\u6709\u529e\u6cd5\u505a\u5230 10 ms\u5185\u7684\u5ef6\u8fdf\uff0c\u6240\u4ee5 Commit Wait \u9700\u8981\u7528\u6237\u81ea\u5df1\u6307\u5b9a\uff0c\u5176\u9009\u62e9\u53d6\u51b3\u4e8e\u7528\u6237\u7684 NTP \u670d\u52a1\u65f6\u949f\u8bef\u5dee\uff0c\u8fd9\u70b9\u5bf9\u4e8e\u7528\u6237\u6765\u8bf4\u975e\u5e38\u4e0d\u53cb\u597d\u3002\u5f53\u7136 CockroachDB \u7684\u8fd9\u4e9b\u6280\u672f\u9009\u62e9\u4e5f\u5e26\u6765\u4e86\u5f88\u597d\u7684\u6613\u7528\u6027\uff0c\u6240\u6709\u903b\u8f91\u90fd\u5728\u4e00\u4e2a\u7ec4\u4ef6\u4e2d\uff0c\u90e8\u7f72\u975e\u5e38\u7b80\u5355\uff0c\u8fd9\u4e2a\u662f\u975e\u5e38\u5927\u7684\u4f18\u70b9\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b39354b4.5e1e0b8d.js b/assets/js/b39354b4.2ae3c876.js similarity index 98% rename from assets/js/b39354b4.5e1e0b8d.js rename to assets/js/b39354b4.2ae3c876.js index 94a6781a2..06807517a 100644 --- a/assets/js/b39354b4.5e1e0b8d.js +++ b/assets/js/b39354b4.2ae3c876.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3011],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>g});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var u=n.createContext({}),i=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},p=function(e){var t=i(e.components);return n.createElement(u.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,u=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),s=i(r),y=o,g=s["".concat(u,".").concat(y)]||s[y]||d[y]||a;return r?n.createElement(g,c(c({ref:t},p),{},{components:r})):n.createElement(g,c({ref:t},p))}));function g(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=y;var l={};for(var u in t)hasOwnProperty.call(t,u)&&(l[u]=t[u]);l.originalType=e,l[s]="string"==typeof e?e:o,c[1]=l;for(var i=2;i{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>l,toc:()=>i});var n=r(8168),o=(r(6540),r(5680));const a={},c="\u5fae\u670d\u52a1",l={unversionedId:"study/back/springcloud/\u5fae\u670d\u52a1",id:"study/back/springcloud/\u5fae\u670d\u52a1",title:"\u5fae\u670d\u52a1",description:"\u5fae\u670d\u52a1\u662f\u5206\u5e03\u5f0f\u67b6\u6784\u7684\u4e00\u79cd\uff1b",source:"@site/docs/study/back/springcloud/\u5fae\u670d\u52a1.md",sourceDirName:"study/back/springcloud",slug:"/study/back/springcloud/\u5fae\u670d\u52a1",permalink:"/docs/study/back/springcloud/\u5fae\u670d\u52a1",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"nacos",permalink:"/docs/study/back/springcloud/nacos"},next:{title:"Oauth2",permalink:"/docs/study/back/\u4fe1\u606f\u5b89\u5168/Oauth2"}},u={},i=[],p={toc:i},s="wrapper";function d(e){let{components:t,...a}=e;return(0,o.yg)(s,(0,n.A)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u5fae\u670d\u52a1"},"\u5fae\u670d\u52a1"),(0,o.yg)("p",null,"\u5fae\u670d\u52a1\u662f\u5206\u5e03\u5f0f\u67b6\u6784\u7684\u4e00\u79cd\uff1b"),(0,o.yg)("p",null,"\u5206\u5e03\u5f0f\u67b6\u6784\u662f\u76f8\u5bf9\u5355\u4f53\u67b6\u6784\u6765\u8bf4\u7684\u3002"),(0,o.yg)("p",null,"\u5206\u5e03\u5f0f\u67b6\u6784\u76f8\u5bf9\u4e8e\u5355\u4f53\u67b6\u6784\u662f\u590d\u6742\u7684\uff0c\u5355\u4f53\u67b6\u6784\u8026\u5408\u591a\u5f88\u9ad8\uff0c\u9002\u7528\u4e8e\u7cfb\u7edf\u76f8\u5bf9\u7b80\u5355\uff0c\u4e1a\u52a1\u76f8\u5bf9\u5355\u4e00\u7684\u573a\u666f\u3002"),(0,o.yg)("p",null,"\u5206\u5e03\u5f0f\u67b6\u6784\u76f8\u5bf9\u4e8e\u5206\u5e03\u5f0f\u67b6\u6784\u6765\u8bf4\uff0c\u8026\u5408\u6027\u4f4e\uff0c\u76f8\u5bf9\u72ec\u7acb\uff0c\u9002\u7528\u4e8e\u7cfb\u7edf\u76f8\u5bf9\u590d\u6742\uff0c\u4e1a\u52a1\u76f8\u5bf9\u591a\u5143\u7684\u573a\u666f\u3002"),(0,o.yg)("p",null,"\u5206\u5e03\u5f0f\u67b6\u6784\u9700\u8981\u8003\u8651\u7684\u95ee\u9898\uff1a"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"\u670d\u52a1\u62c6\u5206\u7684\u7c92\u5ea6\u5982\u4f55\uff1f\u4e0d\u80fd\u592a\u5c0f\uff0c\u4e5f\u4e0d\u80fd\u592a\u5927\uff0c\u603b\u4f53\u6765\u8bf4\uff0c\u5148\u5927\u540e\u5c0f\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u670d\u52a1\u96c6\u7fa4\u7684\u5730\u5740\u5982\u4f55\u7ef4\u62a4\uff1f\u5c31\u662f\u4e0a\u6ce8\u518c\u4e2d\u5fc3\u4e86\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u670d\u52a1\u4e4b\u95f4\u5982\u4f55\u901a\u4fe1\uff1fHTTP\u3001RPC\u3001\u6d88\u606f\u961f\u5217\u7b49\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u670d\u52a1\u4e4b\u95f4\u5982\u4f55\u5bb9\u9519\uff1f\u670d\u52a1\u964d\u7ea7\u3001\u670d\u52a1\u7194\u65ad\u3001\u670d\u52a1\u9650\u6d41\u7b49\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u670d\u52a1\u5065\u5eb7\u72b6\u6001\u5982\u4f55\u611f\u77e5\uff1f")),(0,o.yg)("p",null,"\u5206\u5e03\u5f0f\u67b6\u6784\u6709\u5f88\u591a\uff0c\u5176\u4e2d\u5305\u62ec WebService\u3001ESB\u3001Hession\u3001Dubbo\u3001SpringCloud\u3001gRPC \u7b49\uff1b"),(0,o.yg)("p",null,(0,o.yg)("img",{alt:"dubbo-springcloud",src:r(2553).A,width:"1658",height:"760"})))}d.isMDXComponent=!0},2553:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/dubbo-springcloud-cf680105829f6856647fe66b35a848f6.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3011],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>g});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var u=n.createContext({}),i=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},p=function(e){var t=i(e.components);return n.createElement(u.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,u=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),s=i(r),y=o,g=s["".concat(u,".").concat(y)]||s[y]||d[y]||a;return r?n.createElement(g,c(c({ref:t},p),{},{components:r})):n.createElement(g,c({ref:t},p))}));function g(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=y;var l={};for(var u in t)hasOwnProperty.call(t,u)&&(l[u]=t[u]);l.originalType=e,l[s]="string"==typeof e?e:o,c[1]=l;for(var i=2;i{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>l,toc:()=>i});var n=r(8168),o=(r(6540),r(5680));const a={},c="\u5fae\u670d\u52a1",l={unversionedId:"study/back/springcloud/\u5fae\u670d\u52a1",id:"study/back/springcloud/\u5fae\u670d\u52a1",title:"\u5fae\u670d\u52a1",description:"\u5fae\u670d\u52a1\u662f\u5206\u5e03\u5f0f\u67b6\u6784\u7684\u4e00\u79cd\uff1b",source:"@site/docs/study/back/springcloud/\u5fae\u670d\u52a1.md",sourceDirName:"study/back/springcloud",slug:"/study/back/springcloud/\u5fae\u670d\u52a1",permalink:"/docs/study/back/springcloud/\u5fae\u670d\u52a1",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"nacos",permalink:"/docs/study/back/springcloud/nacos"},next:{title:"Oauth2",permalink:"/docs/study/back/\u4fe1\u606f\u5b89\u5168/Oauth2"}},u={},i=[],p={toc:i},s="wrapper";function d(e){let{components:t,...a}=e;return(0,o.yg)(s,(0,n.A)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u5fae\u670d\u52a1"},"\u5fae\u670d\u52a1"),(0,o.yg)("p",null,"\u5fae\u670d\u52a1\u662f\u5206\u5e03\u5f0f\u67b6\u6784\u7684\u4e00\u79cd\uff1b"),(0,o.yg)("p",null,"\u5206\u5e03\u5f0f\u67b6\u6784\u662f\u76f8\u5bf9\u5355\u4f53\u67b6\u6784\u6765\u8bf4\u7684\u3002"),(0,o.yg)("p",null,"\u5206\u5e03\u5f0f\u67b6\u6784\u76f8\u5bf9\u4e8e\u5355\u4f53\u67b6\u6784\u662f\u590d\u6742\u7684\uff0c\u5355\u4f53\u67b6\u6784\u8026\u5408\u591a\u5f88\u9ad8\uff0c\u9002\u7528\u4e8e\u7cfb\u7edf\u76f8\u5bf9\u7b80\u5355\uff0c\u4e1a\u52a1\u76f8\u5bf9\u5355\u4e00\u7684\u573a\u666f\u3002"),(0,o.yg)("p",null,"\u5206\u5e03\u5f0f\u67b6\u6784\u76f8\u5bf9\u4e8e\u5206\u5e03\u5f0f\u67b6\u6784\u6765\u8bf4\uff0c\u8026\u5408\u6027\u4f4e\uff0c\u76f8\u5bf9\u72ec\u7acb\uff0c\u9002\u7528\u4e8e\u7cfb\u7edf\u76f8\u5bf9\u590d\u6742\uff0c\u4e1a\u52a1\u76f8\u5bf9\u591a\u5143\u7684\u573a\u666f\u3002"),(0,o.yg)("p",null,"\u5206\u5e03\u5f0f\u67b6\u6784\u9700\u8981\u8003\u8651\u7684\u95ee\u9898\uff1a"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"\u670d\u52a1\u62c6\u5206\u7684\u7c92\u5ea6\u5982\u4f55\uff1f\u4e0d\u80fd\u592a\u5c0f\uff0c\u4e5f\u4e0d\u80fd\u592a\u5927\uff0c\u603b\u4f53\u6765\u8bf4\uff0c\u5148\u5927\u540e\u5c0f\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u670d\u52a1\u96c6\u7fa4\u7684\u5730\u5740\u5982\u4f55\u7ef4\u62a4\uff1f\u5c31\u662f\u4e0a\u6ce8\u518c\u4e2d\u5fc3\u4e86\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u670d\u52a1\u4e4b\u95f4\u5982\u4f55\u901a\u4fe1\uff1fHTTP\u3001RPC\u3001\u6d88\u606f\u961f\u5217\u7b49\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u670d\u52a1\u4e4b\u95f4\u5982\u4f55\u5bb9\u9519\uff1f\u670d\u52a1\u964d\u7ea7\u3001\u670d\u52a1\u7194\u65ad\u3001\u670d\u52a1\u9650\u6d41\u7b49\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u670d\u52a1\u5065\u5eb7\u72b6\u6001\u5982\u4f55\u611f\u77e5\uff1f")),(0,o.yg)("p",null,"\u5206\u5e03\u5f0f\u67b6\u6784\u6709\u5f88\u591a\uff0c\u5176\u4e2d\u5305\u62ec WebService\u3001ESB\u3001Hession\u3001Dubbo\u3001SpringCloud\u3001gRPC \u7b49\uff1b"),(0,o.yg)("p",null,(0,o.yg)("img",{alt:"dubbo-springcloud",src:r(2553).A,width:"1658",height:"760"})))}d.isMDXComponent=!0},2553:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/dubbo-springcloud-cf680105829f6856647fe66b35a848f6.png"}}]); \ No newline at end of file diff --git a/assets/js/b4a7dd16.edf90dda.js b/assets/js/b4a7dd16.64a2b0ba.js similarity index 98% rename from assets/js/b4a7dd16.edf90dda.js rename to assets/js/b4a7dd16.64a2b0ba.js index fdff20102..e5c2b7df6 100644 --- a/assets/js/b4a7dd16.edf90dda.js +++ b/assets/js/b4a7dd16.64a2b0ba.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[720],{5680:(e,r,t)=>{t.d(r,{xA:()=>s,yg:()=>g});var n=t(6540);function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function l(e){for(var r=1;r=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var i=n.createContext({}),c=function(e){var r=n.useContext(i),t=r;return e&&(t="function"==typeof e?e(r):l(l({},r),e)),t},s=function(e){var r=c(e.components);return n.createElement(i.Provider,{value:r},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},y=n.forwardRef((function(e,r){var t=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,s=p(e,["components","mdxType","originalType","parentName"]),u=c(t),y=a,g=u["".concat(i,".").concat(y)]||u[y]||d[y]||o;return t?n.createElement(g,l(l({ref:r},s),{},{components:t})):n.createElement(g,l({ref:r},s))}));function g(e,r){var t=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var o=t.length,l=new Array(o);l[0]=y;var p={};for(var i in r)hasOwnProperty.call(r,i)&&(p[i]=r[i]);p.originalType=e,p[u]="string"==typeof e?e:a,l[1]=p;for(var c=2;c{t.r(r),t.d(r,{assets:()=>i,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>p,toc:()=>c});var n=t(8168),a=(t(6540),t(5680));const o={},l="Erlang",p={unversionedId:"study/program/Erlang/index",id:"study/program/Erlang/index",title:"Erlang",description:"\u7b80\u4ecb",source:"@site/docs/study/program/Erlang/index.md",sourceDirName:"study/program/Erlang",slug:"/study/program/Erlang/",permalink:"/docs/study/program/Erlang/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"sqoop",permalink:"/docs/study/program/ETL/sqoop"},next:{title:"GIT-\u5e38\u7528\u547d\u4ee4",permalink:"/docs/study/program/GIT/GIT-\u5e38\u7528\u547d\u4ee4"}},i={},c=[{value:"\u7b80\u4ecb",id:"\u7b80\u4ecb",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],s={toc:c},u="wrapper";function d(e){let{components:r,...t}=e;return(0,a.yg)(u,(0,n.A)({},s,t,{components:r,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"erlang"},"Erlang"),(0,a.yg)("h3",{id:"\u7b80\u4ecb"},"\u7b80\u4ecb"),(0,a.yg)("p",null,"Erlang \u7684\u8bbe\u8ba1\u76ee\u6807\u975e\u5e38\u660e\u786e\uff0c\u5c31\u662f\u4e13\u95e8\u4e3a\u5927\u578b\u7684\u7535\u4fe1\u7cfb\u7edf\u8bbe\u8ba1\u3002\n\u6240\u4ee5\u5b83\u7684\u5e94\u7528\u573a\u666f\u548c\u8bbe\u8ba1\u9700\u6c42\u5c31\u662f\u7535\u4fe1\u9886\u57df\u91cc\u9700\u8981\u89e3\u51b3\u7684\u95ee\u9898\u3002\n\u4e3b\u8981\u662f\u4e09\u4e2a\uff1a ",(0,a.yg)("strong",{parentName:"p"},"\u9ad8\u5e76\u53d1"),"\u3001",(0,a.yg)("strong",{parentName:"p"},"\u9ad8\u5bb9\u9519"),"\u3001",(0,a.yg)("strong",{parentName:"p"},"\u8f6f\u5b9e\u65f6"),"\u3002\u7535\u4fe1\u7cfb\u7edf\u8d1f\u8f7d\u975e\u5e38\u5927\uff0c\u9700\u8981\u540c\u65f6\u670d\u52a1\u5927\u91cf\u7528\u6237\u7684\u80fd\u529b\uff1b\u540c\u65f6\u4e0d\u5141\u8bb8\u51fa\u9519\uff0c\u7535\u8bdd\u9891\u7e41\u6389\u7ebf\u4f1a\u5f88\u5feb\u628a\u5ba2\u6237\u8d76\u5230\u7ade\u4e89\u5bf9\u624b\u90a3\u8fb9\uff1b\u518d\u8005\uff0c\u5373\u4fbf\u67d0\u4e2a\u901a\u8bdd\u518d\u7e41\u5fd9\u4e5f\u4e0d\u80fd\u5f71\u54cd\u5176\u4ed6\u901a\u8bdd\u7684\u6b63\u5e38\u8fdb\u884c\uff0c\u5230\u6280\u672f\u5c42\u9762\u5c31\u662f\uff0c\u4e0d\u80fd\u56e0\u4e3a\u67d0\u4e2a\u4efb\u52a1\u5f88\u91cd\uff0c\u5c31\u628a\u5176\u4ed6\u7684\u4efb\u52a1\u7684\u8d44\u6e90\u90fd\u5360\u7528\u4e86\uff0cwhile loop \u5360\u7528 100% CPU \u662f\u7edd\u5bf9\u4e0d\u5141\u8bb8\u7684\u3002"),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"https://www.jianshu.com/p/b45eb9314d1e"},"30 \u5206\u949f\u5b66 Erlang (\u4e00)"))))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[720],{5680:(e,r,t)=>{t.d(r,{xA:()=>s,yg:()=>g});var n=t(6540);function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function l(e){for(var r=1;r=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var i=n.createContext({}),c=function(e){var r=n.useContext(i),t=r;return e&&(t="function"==typeof e?e(r):l(l({},r),e)),t},s=function(e){var r=c(e.components);return n.createElement(i.Provider,{value:r},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},y=n.forwardRef((function(e,r){var t=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,s=p(e,["components","mdxType","originalType","parentName"]),u=c(t),y=a,g=u["".concat(i,".").concat(y)]||u[y]||d[y]||o;return t?n.createElement(g,l(l({ref:r},s),{},{components:t})):n.createElement(g,l({ref:r},s))}));function g(e,r){var t=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var o=t.length,l=new Array(o);l[0]=y;var p={};for(var i in r)hasOwnProperty.call(r,i)&&(p[i]=r[i]);p.originalType=e,p[u]="string"==typeof e?e:a,l[1]=p;for(var c=2;c{t.r(r),t.d(r,{assets:()=>i,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>p,toc:()=>c});var n=t(8168),a=(t(6540),t(5680));const o={},l="Erlang",p={unversionedId:"study/program/Erlang/index",id:"study/program/Erlang/index",title:"Erlang",description:"\u7b80\u4ecb",source:"@site/docs/study/program/Erlang/index.md",sourceDirName:"study/program/Erlang",slug:"/study/program/Erlang/",permalink:"/docs/study/program/Erlang/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"sqoop",permalink:"/docs/study/program/ETL/sqoop"},next:{title:"GIT-\u5e38\u7528\u547d\u4ee4",permalink:"/docs/study/program/GIT/GIT-\u5e38\u7528\u547d\u4ee4"}},i={},c=[{value:"\u7b80\u4ecb",id:"\u7b80\u4ecb",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],s={toc:c},u="wrapper";function d(e){let{components:r,...t}=e;return(0,a.yg)(u,(0,n.A)({},s,t,{components:r,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"erlang"},"Erlang"),(0,a.yg)("h3",{id:"\u7b80\u4ecb"},"\u7b80\u4ecb"),(0,a.yg)("p",null,"Erlang \u7684\u8bbe\u8ba1\u76ee\u6807\u975e\u5e38\u660e\u786e\uff0c\u5c31\u662f\u4e13\u95e8\u4e3a\u5927\u578b\u7684\u7535\u4fe1\u7cfb\u7edf\u8bbe\u8ba1\u3002\n\u6240\u4ee5\u5b83\u7684\u5e94\u7528\u573a\u666f\u548c\u8bbe\u8ba1\u9700\u6c42\u5c31\u662f\u7535\u4fe1\u9886\u57df\u91cc\u9700\u8981\u89e3\u51b3\u7684\u95ee\u9898\u3002\n\u4e3b\u8981\u662f\u4e09\u4e2a\uff1a ",(0,a.yg)("strong",{parentName:"p"},"\u9ad8\u5e76\u53d1"),"\u3001",(0,a.yg)("strong",{parentName:"p"},"\u9ad8\u5bb9\u9519"),"\u3001",(0,a.yg)("strong",{parentName:"p"},"\u8f6f\u5b9e\u65f6"),"\u3002\u7535\u4fe1\u7cfb\u7edf\u8d1f\u8f7d\u975e\u5e38\u5927\uff0c\u9700\u8981\u540c\u65f6\u670d\u52a1\u5927\u91cf\u7528\u6237\u7684\u80fd\u529b\uff1b\u540c\u65f6\u4e0d\u5141\u8bb8\u51fa\u9519\uff0c\u7535\u8bdd\u9891\u7e41\u6389\u7ebf\u4f1a\u5f88\u5feb\u628a\u5ba2\u6237\u8d76\u5230\u7ade\u4e89\u5bf9\u624b\u90a3\u8fb9\uff1b\u518d\u8005\uff0c\u5373\u4fbf\u67d0\u4e2a\u901a\u8bdd\u518d\u7e41\u5fd9\u4e5f\u4e0d\u80fd\u5f71\u54cd\u5176\u4ed6\u901a\u8bdd\u7684\u6b63\u5e38\u8fdb\u884c\uff0c\u5230\u6280\u672f\u5c42\u9762\u5c31\u662f\uff0c\u4e0d\u80fd\u56e0\u4e3a\u67d0\u4e2a\u4efb\u52a1\u5f88\u91cd\uff0c\u5c31\u628a\u5176\u4ed6\u7684\u4efb\u52a1\u7684\u8d44\u6e90\u90fd\u5360\u7528\u4e86\uff0cwhile loop \u5360\u7528 100% CPU \u662f\u7edd\u5bf9\u4e0d\u5141\u8bb8\u7684\u3002"),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"https://www.jianshu.com/p/b45eb9314d1e"},"30 \u5206\u949f\u5b66 Erlang (\u4e00)"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b6694e92.85a07f44.js b/assets/js/b6694e92.f6d5bb77.js similarity index 98% rename from assets/js/b6694e92.85a07f44.js rename to assets/js/b6694e92.f6d5bb77.js index 25dd04e4f..6699a7935 100644 --- a/assets/js/b6694e92.85a07f44.js +++ b/assets/js/b6694e92.f6d5bb77.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9624],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>d});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",f={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),s=p(r),y=a,d=s["".concat(l,".").concat(y)]||s[y]||f[y]||o;return r?n.createElement(d,i(i({ref:t},u),{},{components:r})):n.createElement(d,i({ref:t},u))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=y;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[s]="string"==typeof e?e:a,i[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>f,frontMatter:()=>o,metadata:()=>c,toc:()=>p});var n=r(8168),a=(r(6540),r(5680));const o={},i=void 0,c={unversionedId:"study/fe/\u4f4e\u4ee3\u7801\u53ef\u89c6\u5316\u5e73\u53f0",id:"study/fe/\u4f4e\u4ee3\u7801\u53ef\u89c6\u5316\u5e73\u53f0",title:"\u4f4e\u4ee3\u7801\u53ef\u89c6\u5316\u5e73\u53f0",description:"\u5f00\u6e90\u9879\u76ee",source:"@site/docs/study/fe/\u4f4e\u4ee3\u7801\u53ef\u89c6\u5316\u5e73\u53f0.md",sourceDirName:"study/fe",slug:"/study/fe/\u4f4e\u4ee3\u7801\u53ef\u89c6\u5316\u5e73\u53f0",permalink:"/docs/study/fe/\u4f4e\u4ee3\u7801\u53ef\u89c6\u5316\u5e73\u53f0",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u4e0b\u8f7d\u56fe\u7247",permalink:"/docs/study/fe/\u4e0b\u8f7d\u56fe\u7247"},next:{title:"\u6982\u8ff0",permalink:"/docs/study/back/"}},l={},p=[{value:"\u5f00\u6e90\u9879\u76ee",id:"\u5f00\u6e90\u9879\u76ee",level:3}],u={toc:p},s="wrapper";function f(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u5f00\u6e90\u9879\u76ee"},"\u5f00\u6e90\u9879\u76ee"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://gitee.com/xiaopujun/light-chaser"},"light-chaser")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://gitee.com/anji-plus/report"},"AJ-Report")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://gitee.com/dromara/go-view"},"go-view"))))}f.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9624],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>d});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",f={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),s=p(r),y=a,d=s["".concat(l,".").concat(y)]||s[y]||f[y]||o;return r?n.createElement(d,i(i({ref:t},u),{},{components:r})):n.createElement(d,i({ref:t},u))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=y;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[s]="string"==typeof e?e:a,i[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>f,frontMatter:()=>o,metadata:()=>c,toc:()=>p});var n=r(8168),a=(r(6540),r(5680));const o={},i=void 0,c={unversionedId:"study/fe/\u4f4e\u4ee3\u7801\u53ef\u89c6\u5316\u5e73\u53f0",id:"study/fe/\u4f4e\u4ee3\u7801\u53ef\u89c6\u5316\u5e73\u53f0",title:"\u4f4e\u4ee3\u7801\u53ef\u89c6\u5316\u5e73\u53f0",description:"\u5f00\u6e90\u9879\u76ee",source:"@site/docs/study/fe/\u4f4e\u4ee3\u7801\u53ef\u89c6\u5316\u5e73\u53f0.md",sourceDirName:"study/fe",slug:"/study/fe/\u4f4e\u4ee3\u7801\u53ef\u89c6\u5316\u5e73\u53f0",permalink:"/docs/study/fe/\u4f4e\u4ee3\u7801\u53ef\u89c6\u5316\u5e73\u53f0",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u4e0b\u8f7d\u56fe\u7247",permalink:"/docs/study/fe/\u4e0b\u8f7d\u56fe\u7247"},next:{title:"\u6982\u8ff0",permalink:"/docs/study/back/"}},l={},p=[{value:"\u5f00\u6e90\u9879\u76ee",id:"\u5f00\u6e90\u9879\u76ee",level:3}],u={toc:p},s="wrapper";function f(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u5f00\u6e90\u9879\u76ee"},"\u5f00\u6e90\u9879\u76ee"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://gitee.com/xiaopujun/light-chaser"},"light-chaser")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://gitee.com/anji-plus/report"},"AJ-Report")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://gitee.com/dromara/go-view"},"go-view"))))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b8eb6aba.cb8c54e1.js b/assets/js/b8eb6aba.45bec3e0.js similarity index 98% rename from assets/js/b8eb6aba.cb8c54e1.js rename to assets/js/b8eb6aba.45bec3e0.js index 724a53ce4..9908c9cac 100644 --- a/assets/js/b8eb6aba.cb8c54e1.js +++ b/assets/js/b8eb6aba.45bec3e0.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7452],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),l=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",g={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),s=l(r),m=o,y=s["".concat(p,".").concat(m)]||s[m]||g[m]||a;return r?n.createElement(y,c(c({ref:t},u),{},{components:r})):n.createElement(y,c({ref:t},u))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=m;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:o,c[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>c,default:()=>g,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,i={unversionedId:"study/program/Golang/\u5e38\u7528\u7684\u6846\u67b6",id:"study/program/Golang/\u5e38\u7528\u7684\u6846\u67b6",title:"\u5e38\u7528\u7684\u6846\u67b6",description:"Gin",source:"@site/docs/study/program/Golang/\u5e38\u7528\u7684\u6846\u67b6.md",sourceDirName:"study/program/Golang",slug:"/study/program/Golang/\u5e38\u7528\u7684\u6846\u67b6",permalink:"/docs/study/program/Golang/\u5e38\u7528\u7684\u6846\u67b6",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u5e38\u7528\u7684\u5de5\u5177",permalink:"/docs/study/program/Golang/\u5e38\u7528\u7684\u5de5\u5177"},next:{title:"npm",permalink:"/docs/study/program/JS/npm"}},p={},l=[{value:"Gin",id:"gin",level:3},{value:"echo",id:"echo",level:3},{value:"go-restful",id:"go-restful",level:3}],u={toc:l},s="wrapper";function g(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"gin"},"Gin"),(0,o.yg)("p",null,(0,o.yg)("a",{parentName:"p",href:"https://gin-gonic.com/"},"\u5b98\u65b9\u7f51\u7ad9")),(0,o.yg)("p",null,(0,o.yg)("a",{parentName:"p",href:"https://github.com/gin-gonic/gin"},"https://github.com/gin-gonic/gin")),(0,o.yg)("p",null,(0,o.yg)("a",{parentName:"p",href:"https://gin-gonic.com/zh-cn/docs/"},"\u4e2d\u6587\u6587\u6863")),(0,o.yg)("h3",{id:"echo"},"echo"),(0,o.yg)("p",null,(0,o.yg)("a",{parentName:"p",href:"https://echo.labstack.com/"},"\u5b98\u65b9\u7f51\u7ad9"),"\n",(0,o.yg)("a",{parentName:"p",href:"https://github.com/labstack/echo"},"https://github.com/labstack/echo")),(0,o.yg)("h3",{id:"go-restful"},"go-restful"),(0,o.yg)("p",null,(0,o.yg)("a",{parentName:"p",href:"https://github.com/emicklei/go-restful"},"https://github.com/emicklei/go-restful")))}g.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7452],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),l=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",g={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),s=l(r),m=o,y=s["".concat(p,".").concat(m)]||s[m]||g[m]||a;return r?n.createElement(y,c(c({ref:t},u),{},{components:r})):n.createElement(y,c({ref:t},u))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=m;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:o,c[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>c,default:()=>g,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,i={unversionedId:"study/program/Golang/\u5e38\u7528\u7684\u6846\u67b6",id:"study/program/Golang/\u5e38\u7528\u7684\u6846\u67b6",title:"\u5e38\u7528\u7684\u6846\u67b6",description:"Gin",source:"@site/docs/study/program/Golang/\u5e38\u7528\u7684\u6846\u67b6.md",sourceDirName:"study/program/Golang",slug:"/study/program/Golang/\u5e38\u7528\u7684\u6846\u67b6",permalink:"/docs/study/program/Golang/\u5e38\u7528\u7684\u6846\u67b6",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u5e38\u7528\u7684\u5de5\u5177",permalink:"/docs/study/program/Golang/\u5e38\u7528\u7684\u5de5\u5177"},next:{title:"npm",permalink:"/docs/study/program/JS/npm"}},p={},l=[{value:"Gin",id:"gin",level:3},{value:"echo",id:"echo",level:3},{value:"go-restful",id:"go-restful",level:3}],u={toc:l},s="wrapper";function g(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"gin"},"Gin"),(0,o.yg)("p",null,(0,o.yg)("a",{parentName:"p",href:"https://gin-gonic.com/"},"\u5b98\u65b9\u7f51\u7ad9")),(0,o.yg)("p",null,(0,o.yg)("a",{parentName:"p",href:"https://github.com/gin-gonic/gin"},"https://github.com/gin-gonic/gin")),(0,o.yg)("p",null,(0,o.yg)("a",{parentName:"p",href:"https://gin-gonic.com/zh-cn/docs/"},"\u4e2d\u6587\u6587\u6863")),(0,o.yg)("h3",{id:"echo"},"echo"),(0,o.yg)("p",null,(0,o.yg)("a",{parentName:"p",href:"https://echo.labstack.com/"},"\u5b98\u65b9\u7f51\u7ad9"),"\n",(0,o.yg)("a",{parentName:"p",href:"https://github.com/labstack/echo"},"https://github.com/labstack/echo")),(0,o.yg)("h3",{id:"go-restful"},"go-restful"),(0,o.yg)("p",null,(0,o.yg)("a",{parentName:"p",href:"https://github.com/emicklei/go-restful"},"https://github.com/emicklei/go-restful")))}g.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/bb29b3f8.76d98e17.js b/assets/js/bb29b3f8.75f19d8f.js similarity index 98% rename from assets/js/bb29b3f8.76d98e17.js rename to assets/js/bb29b3f8.75f19d8f.js index fb947b962..97852c7db 100644 --- a/assets/js/bb29b3f8.76d98e17.js +++ b/assets/js/bb29b3f8.75f19d8f.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9967],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function p(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var p=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),i=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},u=function(e){var t=i(e.components);return n.createElement(c.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,p=e.originalType,c=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),s=i(r),d=o,f=s["".concat(c,".").concat(d)]||s[d]||y[d]||p;return r?n.createElement(f,a(a({ref:t},u),{},{components:r})):n.createElement(f,a({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var p=r.length,a=new Array(p);a[0]=d;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[s]="string"==typeof e?e:o,a[1]=l;for(var i=2;i{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>y,frontMatter:()=>p,metadata:()=>l,toc:()=>i});var n=r(8168),o=(r(6540),r(5680));const p={},a="OpenJ9",l={unversionedId:"study/program/JAVA/OepnJ9",id:"study/program/JAVA/OepnJ9",title:"OpenJ9",description:"https://eclipse.dev/openj9/",source:"@site/docs/study/program/JAVA/OepnJ9.md",sourceDirName:"study/program/JAVA",slug:"/study/program/JAVA/OepnJ9",permalink:"/docs/study/program/JAVA/OepnJ9",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Maven",permalink:"/docs/study/program/JAVA/Maven"},next:{title:"RxJava",permalink:"/docs/study/program/JAVA/RxJava"}},c={},i=[],u={toc:i},s="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"openj9"},"OpenJ9"),(0,o.yg)("p",null,(0,o.yg)("a",{parentName:"p",href:"https://eclipse.dev/openj9/"},"https://eclipse.dev/openj9/")),(0,o.yg)("p",null,"OpenJ9 \u662f\u539f\u6765\u7684 IBM J9 Java \u865a\u62df\u673a (JVM)\uff0c\u5df2\u8d21\u732e\u7ed9 Eclipse \u57fa\u91d1\u4f1a\u5f00\u6e90\u3002"),(0,o.yg)("p",null,"OpenJ9 \u662f\u4e00\u4e2a\u9ad8\u6027\u80fd\u7684\u4f01\u4e1a\u7ea7 Java \u865a\u62df\u673a\uff0c\u65e8\u5728\u4fc3\u8fdb JVM \u5f00\u53d1\u8005\u7684\u5f00\u653e\u751f\u6001\u7cfb\u7edf\uff0c\u4ece\u800c\u53ef\u4ee5\u4e0e\u786c\u4ef6\u5e73\u53f0\u3001\u64cd\u4f5c\u7cfb\u7edf\u3001\u5de5\u5177\u548c\u6846\u67b6\u8bbe\u8ba1\u5e08\u548c\u5f00\u53d1\u8005\u8fdb\u884c\u534f\u4f5c\u548c\u521b\u65b0\u3002"),(0,o.yg)("p",null,"Java \u793e\u533a\u4ece JVM \u89c4\u8303\u7684\u591a\u4e2a\u5b9e\u73b0\u4e2d\u53d7\u76ca\u532a\u6d45\uff0c\u4e3a\u5176\u5e94\u7528\u7a0b\u5e8f\u63d0\u4f9b\u6700\u4f73\u8fd0\u884c\u65f6\u3002\u65e0\u8bba\u662f\u6dfb\u52a0\u538b\u7f29\u5f15\u7528\u3001\u65b0\u7684\u4e91\u529f\u80fd\u3001AOT\uff08\u63d0\u524d\u7f16\u8bd1\uff09\uff0c\u8fd8\u662f\u76f4\u63a5\u63d0\u5347\u6027\u80fd\u548c\u964d\u4f4e\u5185\u5b58\u4f7f\u7528\uff0c\u751f\u6001\u7cfb\u7edf\u901a\u8fc7\u7ade\u4e89\u5f97\u5230\u6539\u5584\u3002 Eclipse OpenJ9 \u65e8\u5728\u7ee7\u7eed\u63a8\u52a8\u8fd0\u884c\u65f6\u7684\u521b\u65b0\u3002"),(0,o.yg)("p",null,"\u6839\u636e\u5b98\u7f51\u6587\u6863\u8bf4\u660e\uff0c\u4ee5 OpenJDK8 \u548c OpenJ9 \u6bd4\u8f83\u8bf4\u660e\u5176\u5e94\u7528\u5c42\u9762\u7684\u7279\u70b9\u3001\u4f18\u52bf\uff1a"),(0,o.yg)("p",null,"42% faster startup time\uff0c\u542f\u52a8\u65f6\u95f4\u5feb 42% 66% smaller footprint after startup\uff0c\u542f\u52a8\u540e\u5360\u7528\u5185\u5b58\u51cf\u5c11 66%"),(0,o.yg)("p",null,"Faster ramp-up time in the cloud\uff0c\u4e91\u7aef\u73af\u5883\u5feb\u901f\u63d0\u5347\u541e\u5410\u91cf "),(0,o.yg)("p",null,"63% smaller footprint during load\uff0c\u9ad8\u8d1f\u8f7d\u65f6\u51cf\u5c11 63%\u7684\u5360\u7528\u7a7a\u95f4"),(0,o.yg)("p",null,"\u6839\u636e cheng jin\uff08OpenJ9 VM Software Developer\uff09\u4ecb\u7ecd\uff0cDDR \u548c SCC \u662f\u5176\u4e0d\u540c\u4e8e HotSpot \u7684 2 \u4e2a\u7279\u70b9\u3002"))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9967],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function p(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var p=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),i=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},u=function(e){var t=i(e.components);return n.createElement(c.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,p=e.originalType,c=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),s=i(r),d=o,f=s["".concat(c,".").concat(d)]||s[d]||y[d]||p;return r?n.createElement(f,a(a({ref:t},u),{},{components:r})):n.createElement(f,a({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var p=r.length,a=new Array(p);a[0]=d;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[s]="string"==typeof e?e:o,a[1]=l;for(var i=2;i{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>y,frontMatter:()=>p,metadata:()=>l,toc:()=>i});var n=r(8168),o=(r(6540),r(5680));const p={},a="OpenJ9",l={unversionedId:"study/program/JAVA/OepnJ9",id:"study/program/JAVA/OepnJ9",title:"OpenJ9",description:"https://eclipse.dev/openj9/",source:"@site/docs/study/program/JAVA/OepnJ9.md",sourceDirName:"study/program/JAVA",slug:"/study/program/JAVA/OepnJ9",permalink:"/docs/study/program/JAVA/OepnJ9",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Maven",permalink:"/docs/study/program/JAVA/Maven"},next:{title:"RxJava",permalink:"/docs/study/program/JAVA/RxJava"}},c={},i=[],u={toc:i},s="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"openj9"},"OpenJ9"),(0,o.yg)("p",null,(0,o.yg)("a",{parentName:"p",href:"https://eclipse.dev/openj9/"},"https://eclipse.dev/openj9/")),(0,o.yg)("p",null,"OpenJ9 \u662f\u539f\u6765\u7684 IBM J9 Java \u865a\u62df\u673a (JVM)\uff0c\u5df2\u8d21\u732e\u7ed9 Eclipse \u57fa\u91d1\u4f1a\u5f00\u6e90\u3002"),(0,o.yg)("p",null,"OpenJ9 \u662f\u4e00\u4e2a\u9ad8\u6027\u80fd\u7684\u4f01\u4e1a\u7ea7 Java \u865a\u62df\u673a\uff0c\u65e8\u5728\u4fc3\u8fdb JVM \u5f00\u53d1\u8005\u7684\u5f00\u653e\u751f\u6001\u7cfb\u7edf\uff0c\u4ece\u800c\u53ef\u4ee5\u4e0e\u786c\u4ef6\u5e73\u53f0\u3001\u64cd\u4f5c\u7cfb\u7edf\u3001\u5de5\u5177\u548c\u6846\u67b6\u8bbe\u8ba1\u5e08\u548c\u5f00\u53d1\u8005\u8fdb\u884c\u534f\u4f5c\u548c\u521b\u65b0\u3002"),(0,o.yg)("p",null,"Java \u793e\u533a\u4ece JVM \u89c4\u8303\u7684\u591a\u4e2a\u5b9e\u73b0\u4e2d\u53d7\u76ca\u532a\u6d45\uff0c\u4e3a\u5176\u5e94\u7528\u7a0b\u5e8f\u63d0\u4f9b\u6700\u4f73\u8fd0\u884c\u65f6\u3002\u65e0\u8bba\u662f\u6dfb\u52a0\u538b\u7f29\u5f15\u7528\u3001\u65b0\u7684\u4e91\u529f\u80fd\u3001AOT\uff08\u63d0\u524d\u7f16\u8bd1\uff09\uff0c\u8fd8\u662f\u76f4\u63a5\u63d0\u5347\u6027\u80fd\u548c\u964d\u4f4e\u5185\u5b58\u4f7f\u7528\uff0c\u751f\u6001\u7cfb\u7edf\u901a\u8fc7\u7ade\u4e89\u5f97\u5230\u6539\u5584\u3002 Eclipse OpenJ9 \u65e8\u5728\u7ee7\u7eed\u63a8\u52a8\u8fd0\u884c\u65f6\u7684\u521b\u65b0\u3002"),(0,o.yg)("p",null,"\u6839\u636e\u5b98\u7f51\u6587\u6863\u8bf4\u660e\uff0c\u4ee5 OpenJDK8 \u548c OpenJ9 \u6bd4\u8f83\u8bf4\u660e\u5176\u5e94\u7528\u5c42\u9762\u7684\u7279\u70b9\u3001\u4f18\u52bf\uff1a"),(0,o.yg)("p",null,"42% faster startup time\uff0c\u542f\u52a8\u65f6\u95f4\u5feb 42% 66% smaller footprint after startup\uff0c\u542f\u52a8\u540e\u5360\u7528\u5185\u5b58\u51cf\u5c11 66%"),(0,o.yg)("p",null,"Faster ramp-up time in the cloud\uff0c\u4e91\u7aef\u73af\u5883\u5feb\u901f\u63d0\u5347\u541e\u5410\u91cf "),(0,o.yg)("p",null,"63% smaller footprint during load\uff0c\u9ad8\u8d1f\u8f7d\u65f6\u51cf\u5c11 63%\u7684\u5360\u7528\u7a7a\u95f4"),(0,o.yg)("p",null,"\u6839\u636e cheng jin\uff08OpenJ9 VM Software Developer\uff09\u4ecb\u7ecd\uff0cDDR \u548c SCC \u662f\u5176\u4e0d\u540c\u4e8e HotSpot \u7684 2 \u4e2a\u7279\u70b9\u3002"))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/bc4e745a.4a72e410.js b/assets/js/bc4e745a.4a32cf30.js similarity index 98% rename from assets/js/bc4e745a.4a72e410.js rename to assets/js/bc4e745a.4a32cf30.js index ab497bc99..65fabe7cb 100644 --- a/assets/js/bc4e745a.4a72e410.js +++ b/assets/js/bc4e745a.4a32cf30.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1256],{5680:(e,r,t)=>{t.d(r,{xA:()=>p,yg:()=>y});var n=t(6540);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function c(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function a(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var s=n.createContext({}),i=function(e){var r=n.useContext(s),t=r;return e&&(t="function"==typeof e?e(r):a(a({},r),e)),t},p=function(e){var r=i(e.components);return n.createElement(s.Provider,{value:r},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},m=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,c=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=i(t),m=o,y=u["".concat(s,".").concat(m)]||u[m]||d[m]||c;return t?n.createElement(y,a(a({ref:r},p),{},{components:t})):n.createElement(y,a({ref:r},p))}));function y(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var c=t.length,a=new Array(c);a[0]=m;var l={};for(var s in r)hasOwnProperty.call(r,s)&&(l[s]=r[s]);l.originalType=e,l[u]="string"==typeof e?e:o,a[1]=l;for(var i=2;i{t.r(r),t.d(r,{assets:()=>s,contentTitle:()=>a,default:()=>d,frontMatter:()=>c,metadata:()=>l,toc:()=>i});var n=t(8168),o=(t(6540),t(5680));const c={},a="Docker Swarm",l={unversionedId:"study/docker/Docker-swarm",id:"study/docker/Docker-swarm",title:"Docker Swarm",description:"Docker Compose \u662f\u4e00\u4e2a\u5728\u5355\u4e2a\u670d\u52a1\u5668\u6216\u4e3b\u673a\u4e0a\u521b\u5efa\u591a\u4e2a\u5bb9\u5668\u7684\u5de5\u5177",source:"@site/docs/study/docker/Docker-swarm.md",sourceDirName:"study/docker",slug:"/study/docker/Docker-swarm",permalink:"/docs/study/docker/Docker-swarm",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Docker Compose",permalink:"/docs/study/docker/Docker-compose"},next:{title:"Dockerfile\u4f7f\u7528\u8be6\u89e3",permalink:"/docs/study/docker/Dockerfile\u4f7f\u7528\u8be6\u89e3"}},s={},i=[{value:"\u57fa\u672c\u67b6\u6784\u56fe",id:"\u57fa\u672c\u67b6\u6784\u56fe",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],p={toc:i},u="wrapper";function d(e){let{components:r,...c}=e;return(0,o.yg)(u,(0,n.A)({},p,c,{components:r,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"docker-swarm"},"Docker Swarm"),(0,o.yg)("p",null,"Docker Compose \u662f\u4e00\u4e2a\u5728\u5355\u4e2a\u670d\u52a1\u5668\u6216\u4e3b\u673a\u4e0a\u521b\u5efa\u591a\u4e2a\u5bb9\u5668\u7684\u5de5\u5177"),(0,o.yg)("p",null,"Docker Swarm \u5219\u53ef\u4ee5\u5728\u591a\u4e2a\u670d\u52a1\u5668\u6216\u4e3b\u673a\u4e0a\u521b\u5efa\u5bb9\u5668\u96c6\u7fa4\u670d\u52a1\uff0c\u5bf9\u4e8e\u5fae\u670d\u52a1\u7684\u90e8\u7f72\uff0c\u663e\u7136 Docker Swarm \u4f1a\u66f4\u52a0\u9002\u5408\u3002"),(0,o.yg)("h3",{id:"\u57fa\u672c\u67b6\u6784\u56fe"},"\u57fa\u672c\u67b6\u6784\u56fe"),(0,o.yg)("p",null,(0,o.yg)("img",{alt:"\u57fa\u672c\u67b6\u6784\u56fe",src:t(4898).A,width:"510",height:"452"})),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://blog.csdn.net/al6nlee/article/details/130912842"},"csdn-\u3010Docker\u3011Swarm\u5b66\u4e60"))))}d.isMDXComponent=!0},4898:(e,r,t)=>{t.d(r,{A:()=>n});const n=t.p+"assets/images/swarm-09239f76f39cf6355b9289915240eccc.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1256],{5680:(e,r,t)=>{t.d(r,{xA:()=>p,yg:()=>y});var n=t(6540);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function c(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function a(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var s=n.createContext({}),i=function(e){var r=n.useContext(s),t=r;return e&&(t="function"==typeof e?e(r):a(a({},r),e)),t},p=function(e){var r=i(e.components);return n.createElement(s.Provider,{value:r},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},m=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,c=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=i(t),m=o,y=u["".concat(s,".").concat(m)]||u[m]||d[m]||c;return t?n.createElement(y,a(a({ref:r},p),{},{components:t})):n.createElement(y,a({ref:r},p))}));function y(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var c=t.length,a=new Array(c);a[0]=m;var l={};for(var s in r)hasOwnProperty.call(r,s)&&(l[s]=r[s]);l.originalType=e,l[u]="string"==typeof e?e:o,a[1]=l;for(var i=2;i{t.r(r),t.d(r,{assets:()=>s,contentTitle:()=>a,default:()=>d,frontMatter:()=>c,metadata:()=>l,toc:()=>i});var n=t(8168),o=(t(6540),t(5680));const c={},a="Docker Swarm",l={unversionedId:"study/docker/Docker-swarm",id:"study/docker/Docker-swarm",title:"Docker Swarm",description:"Docker Compose \u662f\u4e00\u4e2a\u5728\u5355\u4e2a\u670d\u52a1\u5668\u6216\u4e3b\u673a\u4e0a\u521b\u5efa\u591a\u4e2a\u5bb9\u5668\u7684\u5de5\u5177",source:"@site/docs/study/docker/Docker-swarm.md",sourceDirName:"study/docker",slug:"/study/docker/Docker-swarm",permalink:"/docs/study/docker/Docker-swarm",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Docker Compose",permalink:"/docs/study/docker/Docker-compose"},next:{title:"Dockerfile\u4f7f\u7528\u8be6\u89e3",permalink:"/docs/study/docker/Dockerfile\u4f7f\u7528\u8be6\u89e3"}},s={},i=[{value:"\u57fa\u672c\u67b6\u6784\u56fe",id:"\u57fa\u672c\u67b6\u6784\u56fe",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],p={toc:i},u="wrapper";function d(e){let{components:r,...c}=e;return(0,o.yg)(u,(0,n.A)({},p,c,{components:r,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"docker-swarm"},"Docker Swarm"),(0,o.yg)("p",null,"Docker Compose \u662f\u4e00\u4e2a\u5728\u5355\u4e2a\u670d\u52a1\u5668\u6216\u4e3b\u673a\u4e0a\u521b\u5efa\u591a\u4e2a\u5bb9\u5668\u7684\u5de5\u5177"),(0,o.yg)("p",null,"Docker Swarm \u5219\u53ef\u4ee5\u5728\u591a\u4e2a\u670d\u52a1\u5668\u6216\u4e3b\u673a\u4e0a\u521b\u5efa\u5bb9\u5668\u96c6\u7fa4\u670d\u52a1\uff0c\u5bf9\u4e8e\u5fae\u670d\u52a1\u7684\u90e8\u7f72\uff0c\u663e\u7136 Docker Swarm \u4f1a\u66f4\u52a0\u9002\u5408\u3002"),(0,o.yg)("h3",{id:"\u57fa\u672c\u67b6\u6784\u56fe"},"\u57fa\u672c\u67b6\u6784\u56fe"),(0,o.yg)("p",null,(0,o.yg)("img",{alt:"\u57fa\u672c\u67b6\u6784\u56fe",src:t(4898).A,width:"510",height:"452"})),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://blog.csdn.net/al6nlee/article/details/130912842"},"csdn-\u3010Docker\u3011Swarm\u5b66\u4e60"))))}d.isMDXComponent=!0},4898:(e,r,t)=>{t.d(r,{A:()=>n});const n=t.p+"assets/images/swarm-09239f76f39cf6355b9289915240eccc.png"}}]); \ No newline at end of file diff --git a/assets/js/be2a55e4.95989fc7.js b/assets/js/be2a55e4.e57f52df.js similarity index 98% rename from assets/js/be2a55e4.95989fc7.js rename to assets/js/be2a55e4.e57f52df.js index aef4968da..a712f1321 100644 --- a/assets/js/be2a55e4.95989fc7.js +++ b/assets/js/be2a55e4.e57f52df.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9450],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>d});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),c=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(i.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},g=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,l=e.originalType,i=e.parentName,p=u(e,["components","mdxType","originalType","parentName"]),s=c(r),g=a,d=s["".concat(i,".").concat(g)]||s[g]||y[g]||l;return r?n.createElement(d,o(o({ref:t},p),{},{components:r})):n.createElement(d,o({ref:t},p))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=r.length,o=new Array(l);o[0]=g;var u={};for(var i in t)hasOwnProperty.call(t,i)&&(u[i]=t[i]);u.originalType=e,u[s]="string"==typeof e?e:a,o[1]=u;for(var c=2;c{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>o,default:()=>y,frontMatter:()=>l,metadata:()=>u,toc:()=>c});var n=r(8168),a=(r(6540),r(5680));const l={},o="Flutter",u={unversionedId:"study/program/Dart/Flutter",id:"study/program/Dart/Flutter",title:"Flutter",description:"\u5e94\u7528\u56fe\u6807",source:"@site/docs/study/program/Dart/Flutter.md",sourceDirName:"study/program/Dart",slug:"/study/program/Dart/Flutter",permalink:"/docs/study/program/Dart/Flutter",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"CSharp",permalink:"/docs/study/program/CSharp/"},next:{title:"Dart \u5b66\u4e60\u8d44\u6599",permalink:"/docs/study/program/Dart/\u5b66\u4e60\u8d44\u6599"}},i={},c=[{value:"\u5e94\u7528\u56fe\u6807",id:"\u5e94\u7528\u56fe\u6807",level:3},{value:"\u95ea\u5c4f \u542f\u52a8\u9875",id:"\u95ea\u5c4f-\u542f\u52a8\u9875",level:3},{value:"icons",id:"icons",level:3},{value:"getx",id:"getx",level:3},{value:"chart",id:"chart",level:3},{value:"\u4f9d\u8d56\u5e93\u67e5\u8be2",id:"\u4f9d\u8d56\u5e93\u67e5\u8be2",level:3}],p={toc:c},s="wrapper";function y(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"flutter"},"Flutter"),(0,a.yg)("h3",{id:"\u5e94\u7528\u56fe\u6807"},"\u5e94\u7528\u56fe\u6807"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://pub-web.flutter-io.cn/packages/flutter_launcher_icons"},"Flutter Launcher Icons"))),(0,a.yg)("h3",{id:"\u95ea\u5c4f-\u542f\u52a8\u9875"},"\u95ea\u5c4f \u542f\u52a8\u9875"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://pub-web.flutter-io.cn/packages/flutter_native_splash"},"flutter_native_splash"))),(0,a.yg)("h3",{id:"icons"},"icons"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://fonts.google.com/icons"},"Google Fonts"))),(0,a.yg)("h3",{id:"getx"},"getx"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://github.com/jonataslaw/getx/blob/master/documentation/zh_CN/state_management.md"},"getx"))),(0,a.yg)("h3",{id:"chart"},"chart"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://flchart.dev/"},"flchart"))),(0,a.yg)("h3",{id:"\u4f9d\u8d56\u5e93\u67e5\u8be2"},"\u4f9d\u8d56\u5e93\u67e5\u8be2"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://pub-web.flutter-io.cn/"},"pub get"))))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9450],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>d});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),c=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(i.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},g=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,l=e.originalType,i=e.parentName,p=u(e,["components","mdxType","originalType","parentName"]),s=c(r),g=a,d=s["".concat(i,".").concat(g)]||s[g]||y[g]||l;return r?n.createElement(d,o(o({ref:t},p),{},{components:r})):n.createElement(d,o({ref:t},p))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=r.length,o=new Array(l);o[0]=g;var u={};for(var i in t)hasOwnProperty.call(t,i)&&(u[i]=t[i]);u.originalType=e,u[s]="string"==typeof e?e:a,o[1]=u;for(var c=2;c{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>o,default:()=>y,frontMatter:()=>l,metadata:()=>u,toc:()=>c});var n=r(8168),a=(r(6540),r(5680));const l={},o="Flutter",u={unversionedId:"study/program/Dart/Flutter",id:"study/program/Dart/Flutter",title:"Flutter",description:"\u5e94\u7528\u56fe\u6807",source:"@site/docs/study/program/Dart/Flutter.md",sourceDirName:"study/program/Dart",slug:"/study/program/Dart/Flutter",permalink:"/docs/study/program/Dart/Flutter",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"CSharp",permalink:"/docs/study/program/CSharp/"},next:{title:"Dart \u5b66\u4e60\u8d44\u6599",permalink:"/docs/study/program/Dart/\u5b66\u4e60\u8d44\u6599"}},i={},c=[{value:"\u5e94\u7528\u56fe\u6807",id:"\u5e94\u7528\u56fe\u6807",level:3},{value:"\u95ea\u5c4f \u542f\u52a8\u9875",id:"\u95ea\u5c4f-\u542f\u52a8\u9875",level:3},{value:"icons",id:"icons",level:3},{value:"getx",id:"getx",level:3},{value:"chart",id:"chart",level:3},{value:"\u4f9d\u8d56\u5e93\u67e5\u8be2",id:"\u4f9d\u8d56\u5e93\u67e5\u8be2",level:3}],p={toc:c},s="wrapper";function y(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"flutter"},"Flutter"),(0,a.yg)("h3",{id:"\u5e94\u7528\u56fe\u6807"},"\u5e94\u7528\u56fe\u6807"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://pub-web.flutter-io.cn/packages/flutter_launcher_icons"},"Flutter Launcher Icons"))),(0,a.yg)("h3",{id:"\u95ea\u5c4f-\u542f\u52a8\u9875"},"\u95ea\u5c4f \u542f\u52a8\u9875"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://pub-web.flutter-io.cn/packages/flutter_native_splash"},"flutter_native_splash"))),(0,a.yg)("h3",{id:"icons"},"icons"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://fonts.google.com/icons"},"Google Fonts"))),(0,a.yg)("h3",{id:"getx"},"getx"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://github.com/jonataslaw/getx/blob/master/documentation/zh_CN/state_management.md"},"getx"))),(0,a.yg)("h3",{id:"chart"},"chart"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://flchart.dev/"},"flchart"))),(0,a.yg)("h3",{id:"\u4f9d\u8d56\u5e93\u67e5\u8be2"},"\u4f9d\u8d56\u5e93\u67e5\u8be2"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://pub-web.flutter-io.cn/"},"pub get"))))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c06ef779.872f6b30.js b/assets/js/c06ef779.82be93a6.js similarity index 99% rename from assets/js/c06ef779.872f6b30.js rename to assets/js/c06ef779.82be93a6.js index 87e1f1f27..722d0256c 100644 --- a/assets/js/c06ef779.872f6b30.js +++ b/assets/js/c06ef779.82be93a6.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2368],{5680:(e,t,n)=>{n.d(t,{xA:()=>d,yg:()=>f});var a=n(6540);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var u=a.createContext({}),s=function(e){var t=a.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=s(e.components);return a.createElement(u.Provider,{value:t},e.children)},p="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,l=e.originalType,u=e.parentName,d=o(e,["components","mdxType","originalType","parentName"]),p=s(n),m=r,f=p["".concat(u,".").concat(m)]||p[m]||c[m]||l;return n?a.createElement(f,i(i({ref:t},d),{},{components:n})):a.createElement(f,i({ref:t},d))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=n.length,i=new Array(l);i[0]=m;var o={};for(var u in t)hasOwnProperty.call(t,u)&&(o[u]=t[u]);o.originalType=e,o[p]="string"==typeof e?e:r,i[1]=o;for(var s=2;s{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>c,frontMatter:()=>l,metadata:()=>o,toc:()=>s});var a=n(8168),r=(n(6540),n(5680));const l={sidebar_position:1},i=void 0,o={unversionedId:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/InfluxDB",id:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/InfluxDB",title:"InfluxDB",description:"\u5b98\u65b9\u6587\u6863",source:"@site/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/InfluxDB.md",sourceDirName:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93",slug:"/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/InfluxDB",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/InfluxDB",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"Elasticsearch",permalink:"/docs/study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/Elasticsearch"},next:{title:"TDengine",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TDengine"}},u={},s=[{value:"\u5b98\u65b9\u6587\u6863",id:"\u5b98\u65b9\u6587\u6863",level:3},{value:"\u57fa\u7840\u4fe1\u606f",id:"\u57fa\u7840\u4fe1\u606f",level:3},{value:"\u8bc4\u4ef7",id:"\u8bc4\u4ef7",level:3},{value:"\u5e38\u7528\u6982\u5ff5",id:"\u5e38\u7528\u6982\u5ff5",level:3},{value:"\u5feb\u901f\u5165\u95e8",id:"\u5feb\u901f\u5165\u95e8",level:3},{value:"\u5176\u4ed6",id:"\u5176\u4ed6",level:3}],d={toc:s},p="wrapper";function c(e){let{components:t,...n}=e;return(0,r.yg)(p,(0,a.A)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,r.yg)("h3",{id:"\u5b98\u65b9\u6587\u6863"},"\u5b98\u65b9\u6587\u6863"),(0,r.yg)("p",null,(0,r.yg)("a",{parentName:"p",href:"https://www.influxdata.com/"},"\u5b98\u7f51"),"\n",(0,r.yg)("a",{parentName:"p",href:"https://blog.csdn.net/vtnews/article/details/80197045"},"\u5b66\u4e60\u7b14\u8bb0")),(0,r.yg)("h3",{id:"\u57fa\u7840\u4fe1\u606f"},"\u57fa\u7840\u4fe1\u606f"),(0,r.yg)("ol",null,(0,r.yg)("li",{parentName:"ol"},"\u7f16\u7a0b\u8bed\u8a00\uff1aRust"),(0,r.yg)("li",{parentName:"ol"},"\u96c6\u7fa4\u65b9\u6848\uff1a\u975e\u96c6\u7fa4\u5f00\u6e90\uff0c\u96c6\u7fa4\u6536\u8d39"),(0,r.yg)("li",{parentName:"ol"},"\u5f71\u54cd\u529b\uff1a\u5f71\u54cd\u529b\u5f88\u5927\uff0c\u793e\u533a\u4e5f\u6bd4\u8f83\u6d3b\u8dc3\uff0c\u5982\u679c\u6570\u636e\u91cf\u6ca1\u8fd9\u4e48\u5927\uff0c\u5176\u5b9e\u8fd8\u53ef\u4ee5\u7684\uff0c\u6700\u597d\u4e0d\u8981\u505a\u516c\u6709\u4e91\u7528\u8fd9\u4e2a\u6570\u636e\u5e93\uff0c\u56e0\u4e3a\u6570\u636e\u91cf\u5927\u4e86\u4e4b\u540e\uff0c\u5f88\u96be\u53d7\uff0c\u5fc5\u987b\u7684\u4e0a\u96c6\u7fa4\uff0c\u4f46\u662f\u96c6\u7fa4\u662f\u6536\u8d39\u7684\u3002\u9700\u8981\u82b1\u5927\u7cbe\u529b\u53bb\u5904\u7406\u96c6\u7fa4\u95ee\u9898\u3002"),(0,r.yg)("li",{parentName:"ol"},"\u8fd0\u7ef4\u96be\u5ea6\uff1a\u975e\u96c6\u7fa4\u5f00\u6e90\u7248\u672c\u8fd0\u7ef4\u96be\u5ea6\u8fd8\u662f\u7b80\u5355\u7684\u3002"),(0,r.yg)("li",{parentName:"ol"},"\u63a5\u53e3\uff1aInfluxQL and HTTP API"),(0,r.yg)("li",{parentName:"ol"},"\u5f00\u6e90\u534f\u8bae\uff1aMIT")),(0,r.yg)("h3",{id:"\u8bc4\u4ef7"},"\u8bc4\u4ef7"),(0,r.yg)("ol",null,(0,r.yg)("li",{parentName:"ol"},"InfluxDB \u5355\u673a\u7248\u672c\u5b89\u88c5\u7b80\u5355\uff0c\u7ef4\u62a4\u4e5f\u65b9\u4fbf\uff1b\u8fd0\u7ef4\u4eba\u5458\u5c11\uff081-3 \u4e2a\uff09\u6570\u91cf\u5c11\uff081T \u4ee5\u4e0b\uff09\u7684\u60c5\u51b5\u4e0b\u662f\u6700\u5408\u9002\u7684\u9009\u62e9\uff1b"),(0,r.yg)("li",{parentName:"ol"},"InfluxDB \u5355\u673a\u7248\u672c\u6027\u80fd\u5e76\u4e0d\u591f\u5353\u8d8a\uff0c\u6570\u636e\u91cf\u8d85\u8fc7 1T \u5b58\u5728\u6027\u80fd\u74f6\u9888\uff0cQPS \u8d85\u8fc7 1K \u540e\u8d1f\u8f7d\u6781\u9ad8\uff1b"),(0,r.yg)("li",{parentName:"ol"},"\u5f00\u6e90\u7248\u672c\u4e0d\u652f\u6301\u96c6\u7fa4\uff0c\u62d3\u5c55\u6027\u4e0d\u884c\uff1b")),(0,r.yg)("h3",{id:"\u5e38\u7528\u6982\u5ff5"},"\u5e38\u7528\u6982\u5ff5"),(0,r.yg)("ol",null,(0,r.yg)("li",{parentName:"ol"},"database\uff0c\u6570\u636e\u5e93"),(0,r.yg)("li",{parentName:"ol"},"measurement\uff0c\u8868"),(0,r.yg)("li",{parentName:"ol"},"field\uff0c\u5b57\u6bb5\uff0cfield set\uff0ca=1\uff0cfield \u6ca1\u6709\u7d22\u5f15"),(0,r.yg)("li",{parentName:"ol"},"tag\uff0c\u6807\u7b7e\uff0ctag set\uff0cb=1\uff0ctag \u6709\u7d22\u5f15"),(0,r.yg)("li",{parentName:"ol"},"rp\uff0cretention policy\uff0c\u6570\u636e\u4fdd\u7559\u7b56\u7565\uff0c\u6eda\u52a8\u5f0f\uff0c\u65e7\u6570\u636e\u4f1a\u5220\u9664\uff0c\u9ed8\u8ba4 autogen\uff0c\u6c38\u4e0d\u5220\u9664"),(0,r.yg)("li",{parentName:"ol"},"cq\uff0ccontinuous query\uff0c\u8fde\u7eed\u67e5\u8be2\uff0c\u7c7b\u4f3c\u5b58\u50a8\u8fc7\u7a0b\uff0c\u81ea\u52a8\u91c7\u6837"),(0,r.yg)("li",{parentName:"ol"},"series\uff1aseries \u662f\u5171\u540c retention policy\uff0cmeasurement \u548c tag set \u7684\u96c6\u5408\u3002"),(0,r.yg)("li",{parentName:"ol"},"point\uff1apoint \u662f\u5177\u6709\u76f8\u540c timestamp\u3001\u76f8\u540c series\uff08measurement\uff0crp\uff0ctag set \u76f8\u540c\uff09\u7684 field\u3002\u8fd9\u4e2a\u70b9\u5728\u6b64\u65f6\u523b\u662f\u552f\u4e00\u5b58\u5728\u7684\u3002"),(0,r.yg)("li",{parentName:"ol"},"wal(Write Ahead Log) \uff0c\u6700\u8fd1\u5199\u7684\u70b9\u6570\u7684\u4e34\u65f6\u7f13\u5b58\u3002\u4e3a\u4e86\u51cf\u5c11\u8bbf\u95ee\u6c38\u4e45\u5b58\u50a8\u6587\u4ef6\u7684\u9891\u7387\uff0cInfluxDB \u5c06\u6700\u65b0\u7684\u6570\u636e\u70b9\u7f13\u51b2\u8fdb WAL \u4e2d\uff0c\u76f4\u5230\u5176\u603b\u5927\u5c0f\u6216\u65f6\u95f4\u89e6\u53d1\u7136\u540e flush \u5230\u957f\u4e45\u7684\u5b58\u50a8\u7a7a\u95f4\u3002\u8fd9\u6837\u53ef\u4ee5\u6709\u6548\u5730\u5c06\u5199\u5165 batch \u5904\u7406\u5230 TSM \u4e2d\u3002")),(0,r.yg)("h3",{id:"\u5feb\u901f\u5165\u95e8"},"\u5feb\u901f\u5165\u95e8"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"# v2\nwget https://dl.influxdata.com/influxdb/releases/influxdb2-2.7.5-1.x86_64.rpm\nsudo yum localinstall influxdb2-2.7.5-1.x86_64.rpm\nsudo service influxdb start\nsudo service influxdb status\n# influx\nwget https://dl.influxdata.com/influxdb/releases/influxdb2-client-2.7.3-linux-arm64.tar.gz\ntar xvzf ./influxdb2-client-2.7.3-linux-arm64.tar.gz\nsudo cp ./influx /usr/local/bin/\n\n\n> create database mydb\n> use mydb\n> show measurements\n> insert mymeasurement,tag1=value1 field1=value2\n> select * from mymeasurement where tag1='value1'\n> select * from mymeasurement\n> select * from mymeasurement where tag1='value1' and field1 > 10 order by time desc limit 1\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("a",{parentName:"li",href:"https://docs.influxdata.com/influxdb/v1/tools/api/"},"HTTP V1 API")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("a",{parentName:"li",href:"https://docs.influxdata.com/influxdb/v2/api/"},"HTTP V2 API")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("a",{parentName:"li",href:"https://github.com/influxdata/influxdb-java?tab=readme-ov-file"},"V1 client java")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("a",{parentName:"li",href:"https://github.com/influxdata/influxdb-client-java"},"V2 client java"))),(0,r.yg)("h3",{id:"\u5176\u4ed6"},"\u5176\u4ed6"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("a",{parentName:"li",href:"https://old.reddit.com/r/rust/comments/16v13l5/influxdb_officially_made_the_switch_from_go_rust/"},"InfluxDB CTO \u5173\u4e8e\u7f16\u7a0b\u8bed\u8a00 Go \u5207\u6362\u5230 RUST \u7684\u89e3\u91ca"))))}c.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2368],{5680:(e,t,n)=>{n.d(t,{xA:()=>d,yg:()=>f});var a=n(6540);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var u=a.createContext({}),s=function(e){var t=a.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=s(e.components);return a.createElement(u.Provider,{value:t},e.children)},p="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,l=e.originalType,u=e.parentName,d=o(e,["components","mdxType","originalType","parentName"]),p=s(n),m=r,f=p["".concat(u,".").concat(m)]||p[m]||c[m]||l;return n?a.createElement(f,i(i({ref:t},d),{},{components:n})):a.createElement(f,i({ref:t},d))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=n.length,i=new Array(l);i[0]=m;var o={};for(var u in t)hasOwnProperty.call(t,u)&&(o[u]=t[u]);o.originalType=e,o[p]="string"==typeof e?e:r,i[1]=o;for(var s=2;s{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>c,frontMatter:()=>l,metadata:()=>o,toc:()=>s});var a=n(8168),r=(n(6540),n(5680));const l={sidebar_position:1},i=void 0,o={unversionedId:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/InfluxDB",id:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/InfluxDB",title:"InfluxDB",description:"\u5b98\u65b9\u6587\u6863",source:"@site/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/InfluxDB.md",sourceDirName:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93",slug:"/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/InfluxDB",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/InfluxDB",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"Elasticsearch",permalink:"/docs/study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/Elasticsearch"},next:{title:"TDengine",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TDengine"}},u={},s=[{value:"\u5b98\u65b9\u6587\u6863",id:"\u5b98\u65b9\u6587\u6863",level:3},{value:"\u57fa\u7840\u4fe1\u606f",id:"\u57fa\u7840\u4fe1\u606f",level:3},{value:"\u8bc4\u4ef7",id:"\u8bc4\u4ef7",level:3},{value:"\u5e38\u7528\u6982\u5ff5",id:"\u5e38\u7528\u6982\u5ff5",level:3},{value:"\u5feb\u901f\u5165\u95e8",id:"\u5feb\u901f\u5165\u95e8",level:3},{value:"\u5176\u4ed6",id:"\u5176\u4ed6",level:3}],d={toc:s},p="wrapper";function c(e){let{components:t,...n}=e;return(0,r.yg)(p,(0,a.A)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,r.yg)("h3",{id:"\u5b98\u65b9\u6587\u6863"},"\u5b98\u65b9\u6587\u6863"),(0,r.yg)("p",null,(0,r.yg)("a",{parentName:"p",href:"https://www.influxdata.com/"},"\u5b98\u7f51"),"\n",(0,r.yg)("a",{parentName:"p",href:"https://blog.csdn.net/vtnews/article/details/80197045"},"\u5b66\u4e60\u7b14\u8bb0")),(0,r.yg)("h3",{id:"\u57fa\u7840\u4fe1\u606f"},"\u57fa\u7840\u4fe1\u606f"),(0,r.yg)("ol",null,(0,r.yg)("li",{parentName:"ol"},"\u7f16\u7a0b\u8bed\u8a00\uff1aRust"),(0,r.yg)("li",{parentName:"ol"},"\u96c6\u7fa4\u65b9\u6848\uff1a\u975e\u96c6\u7fa4\u5f00\u6e90\uff0c\u96c6\u7fa4\u6536\u8d39"),(0,r.yg)("li",{parentName:"ol"},"\u5f71\u54cd\u529b\uff1a\u5f71\u54cd\u529b\u5f88\u5927\uff0c\u793e\u533a\u4e5f\u6bd4\u8f83\u6d3b\u8dc3\uff0c\u5982\u679c\u6570\u636e\u91cf\u6ca1\u8fd9\u4e48\u5927\uff0c\u5176\u5b9e\u8fd8\u53ef\u4ee5\u7684\uff0c\u6700\u597d\u4e0d\u8981\u505a\u516c\u6709\u4e91\u7528\u8fd9\u4e2a\u6570\u636e\u5e93\uff0c\u56e0\u4e3a\u6570\u636e\u91cf\u5927\u4e86\u4e4b\u540e\uff0c\u5f88\u96be\u53d7\uff0c\u5fc5\u987b\u7684\u4e0a\u96c6\u7fa4\uff0c\u4f46\u662f\u96c6\u7fa4\u662f\u6536\u8d39\u7684\u3002\u9700\u8981\u82b1\u5927\u7cbe\u529b\u53bb\u5904\u7406\u96c6\u7fa4\u95ee\u9898\u3002"),(0,r.yg)("li",{parentName:"ol"},"\u8fd0\u7ef4\u96be\u5ea6\uff1a\u975e\u96c6\u7fa4\u5f00\u6e90\u7248\u672c\u8fd0\u7ef4\u96be\u5ea6\u8fd8\u662f\u7b80\u5355\u7684\u3002"),(0,r.yg)("li",{parentName:"ol"},"\u63a5\u53e3\uff1aInfluxQL and HTTP API"),(0,r.yg)("li",{parentName:"ol"},"\u5f00\u6e90\u534f\u8bae\uff1aMIT")),(0,r.yg)("h3",{id:"\u8bc4\u4ef7"},"\u8bc4\u4ef7"),(0,r.yg)("ol",null,(0,r.yg)("li",{parentName:"ol"},"InfluxDB \u5355\u673a\u7248\u672c\u5b89\u88c5\u7b80\u5355\uff0c\u7ef4\u62a4\u4e5f\u65b9\u4fbf\uff1b\u8fd0\u7ef4\u4eba\u5458\u5c11\uff081-3 \u4e2a\uff09\u6570\u91cf\u5c11\uff081T \u4ee5\u4e0b\uff09\u7684\u60c5\u51b5\u4e0b\u662f\u6700\u5408\u9002\u7684\u9009\u62e9\uff1b"),(0,r.yg)("li",{parentName:"ol"},"InfluxDB \u5355\u673a\u7248\u672c\u6027\u80fd\u5e76\u4e0d\u591f\u5353\u8d8a\uff0c\u6570\u636e\u91cf\u8d85\u8fc7 1T \u5b58\u5728\u6027\u80fd\u74f6\u9888\uff0cQPS \u8d85\u8fc7 1K \u540e\u8d1f\u8f7d\u6781\u9ad8\uff1b"),(0,r.yg)("li",{parentName:"ol"},"\u5f00\u6e90\u7248\u672c\u4e0d\u652f\u6301\u96c6\u7fa4\uff0c\u62d3\u5c55\u6027\u4e0d\u884c\uff1b")),(0,r.yg)("h3",{id:"\u5e38\u7528\u6982\u5ff5"},"\u5e38\u7528\u6982\u5ff5"),(0,r.yg)("ol",null,(0,r.yg)("li",{parentName:"ol"},"database\uff0c\u6570\u636e\u5e93"),(0,r.yg)("li",{parentName:"ol"},"measurement\uff0c\u8868"),(0,r.yg)("li",{parentName:"ol"},"field\uff0c\u5b57\u6bb5\uff0cfield set\uff0ca=1\uff0cfield \u6ca1\u6709\u7d22\u5f15"),(0,r.yg)("li",{parentName:"ol"},"tag\uff0c\u6807\u7b7e\uff0ctag set\uff0cb=1\uff0ctag \u6709\u7d22\u5f15"),(0,r.yg)("li",{parentName:"ol"},"rp\uff0cretention policy\uff0c\u6570\u636e\u4fdd\u7559\u7b56\u7565\uff0c\u6eda\u52a8\u5f0f\uff0c\u65e7\u6570\u636e\u4f1a\u5220\u9664\uff0c\u9ed8\u8ba4 autogen\uff0c\u6c38\u4e0d\u5220\u9664"),(0,r.yg)("li",{parentName:"ol"},"cq\uff0ccontinuous query\uff0c\u8fde\u7eed\u67e5\u8be2\uff0c\u7c7b\u4f3c\u5b58\u50a8\u8fc7\u7a0b\uff0c\u81ea\u52a8\u91c7\u6837"),(0,r.yg)("li",{parentName:"ol"},"series\uff1aseries \u662f\u5171\u540c retention policy\uff0cmeasurement \u548c tag set \u7684\u96c6\u5408\u3002"),(0,r.yg)("li",{parentName:"ol"},"point\uff1apoint \u662f\u5177\u6709\u76f8\u540c timestamp\u3001\u76f8\u540c series\uff08measurement\uff0crp\uff0ctag set \u76f8\u540c\uff09\u7684 field\u3002\u8fd9\u4e2a\u70b9\u5728\u6b64\u65f6\u523b\u662f\u552f\u4e00\u5b58\u5728\u7684\u3002"),(0,r.yg)("li",{parentName:"ol"},"wal(Write Ahead Log) \uff0c\u6700\u8fd1\u5199\u7684\u70b9\u6570\u7684\u4e34\u65f6\u7f13\u5b58\u3002\u4e3a\u4e86\u51cf\u5c11\u8bbf\u95ee\u6c38\u4e45\u5b58\u50a8\u6587\u4ef6\u7684\u9891\u7387\uff0cInfluxDB \u5c06\u6700\u65b0\u7684\u6570\u636e\u70b9\u7f13\u51b2\u8fdb WAL \u4e2d\uff0c\u76f4\u5230\u5176\u603b\u5927\u5c0f\u6216\u65f6\u95f4\u89e6\u53d1\u7136\u540e flush \u5230\u957f\u4e45\u7684\u5b58\u50a8\u7a7a\u95f4\u3002\u8fd9\u6837\u53ef\u4ee5\u6709\u6548\u5730\u5c06\u5199\u5165 batch \u5904\u7406\u5230 TSM \u4e2d\u3002")),(0,r.yg)("h3",{id:"\u5feb\u901f\u5165\u95e8"},"\u5feb\u901f\u5165\u95e8"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"# v2\nwget https://dl.influxdata.com/influxdb/releases/influxdb2-2.7.5-1.x86_64.rpm\nsudo yum localinstall influxdb2-2.7.5-1.x86_64.rpm\nsudo service influxdb start\nsudo service influxdb status\n# influx\nwget https://dl.influxdata.com/influxdb/releases/influxdb2-client-2.7.3-linux-arm64.tar.gz\ntar xvzf ./influxdb2-client-2.7.3-linux-arm64.tar.gz\nsudo cp ./influx /usr/local/bin/\n\n\n> create database mydb\n> use mydb\n> show measurements\n> insert mymeasurement,tag1=value1 field1=value2\n> select * from mymeasurement where tag1='value1'\n> select * from mymeasurement\n> select * from mymeasurement where tag1='value1' and field1 > 10 order by time desc limit 1\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("a",{parentName:"li",href:"https://docs.influxdata.com/influxdb/v1/tools/api/"},"HTTP V1 API")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("a",{parentName:"li",href:"https://docs.influxdata.com/influxdb/v2/api/"},"HTTP V2 API")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("a",{parentName:"li",href:"https://github.com/influxdata/influxdb-java?tab=readme-ov-file"},"V1 client java")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("a",{parentName:"li",href:"https://github.com/influxdata/influxdb-client-java"},"V2 client java"))),(0,r.yg)("h3",{id:"\u5176\u4ed6"},"\u5176\u4ed6"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("a",{parentName:"li",href:"https://old.reddit.com/r/rust/comments/16v13l5/influxdb_officially_made_the_switch_from_go_rust/"},"InfluxDB CTO \u5173\u4e8e\u7f16\u7a0b\u8bed\u8a00 Go \u5207\u6362\u5230 RUST \u7684\u89e3\u91ca"))))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c348e262.943cda73.js b/assets/js/c348e262.c40a1436.js similarity index 98% rename from assets/js/c348e262.943cda73.js rename to assets/js/c348e262.c40a1436.js index 25dce75bf..be8433c78 100644 --- a/assets/js/c348e262.943cda73.js +++ b/assets/js/c348e262.c40a1436.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6316],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function s(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),l=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):s(s({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(i.Provider,{value:t},e.children)},p="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),p=l(r),d=a,f=p["".concat(i,".").concat(d)]||p[d]||y[d]||o;return r?n.createElement(f,s(s({ref:t},u),{},{components:r})):n.createElement(f,s({ref:t},u))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,s=new Array(o);s[0]=d;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[p]="string"==typeof e?e:a,s[1]=c;for(var l=2;l{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>s,default:()=>y,frontMatter:()=>o,metadata:()=>c,toc:()=>l});var n=r(8168),a=(r(6540),r(5680));const o={},s=void 0,c={unversionedId:"study/system/\u7a0b\u5e8f\u8c03\u8bd5",id:"study/system/\u7a0b\u5e8f\u8c03\u8bd5",title:"\u7a0b\u5e8f\u8c03\u8bd5",description:"strace",source:"@site/docs/study/system/\u7a0b\u5e8f\u8c03\u8bd5.md",sourceDirName:"study/system",slug:"/study/system/\u7a0b\u5e8f\u8c03\u8bd5",permalink:"/docs/study/system/\u7a0b\u5e8f\u8c03\u8bd5",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838",permalink:"/docs/study/system/\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838"},next:{title:"IPV6",permalink:"/docs/study/net/IPV6"}},i={},l=[{value:"strace",id:"strace",level:3}],u={toc:l},p="wrapper";function y(e){let{components:t,...r}=e;return(0,a.yg)(p,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"strace"},"strace"),(0,a.yg)("p",null,"strace \u662f\u4e2a\u529f\u80fd\u5f3a\u5927\u7684 Linux \u8c03\u8bd5\u5206\u6790\u8bca\u65ad\u5de5\u5177\uff0c\u53ef\u7528\u4e8e\u8ddf\u8e2a\u7a0b\u5e8f\u6267\u884c\u65f6\u8fdb\u7a0b\u7cfb\u7edf\u8c03\u7528(system call)\u548c\u6240\u63a5\u6536\u7684\u4fe1\u53f7\uff0c\u5c24\u5176\u662f\u9488\u5bf9\u6e90\u7801\u4e0d\u53ef\u8bfb\u6216\u6e90\u7801\u65e0\u6cd5\u518d\u7f16\u8bd1\u7684\u7a0b\u5e8f\u3002\u5728 Linux \u7cfb\u7edf\u4e2d\uff0c\u7528\u6237\u8fdb\u7a0b\u4e0d\u80fd\u76f4\u63a5\u8bbf\u95ee\u8ba1\u7b97\u673a\u786c\u4ef6\u8bbe\u5907\u3002\u5f53\u8fdb\u7a0b\u9700\u8981\u8bbf\u95ee\u786c\u4ef6\u8bbe\u5907(\u5982\u8bfb\u53d6\u78c1\u76d8\u6587\u4ef6\u6216\u63a5\u6536\u7f51\u7edc\u6570\u636e\u7b49)\u65f6\uff0c\u5fc5\u987b\u7531\u7528\u6237\u6001\u6a21\u5f0f\u5207\u6362\u81f3\u5185\u6838\u6001\u6a21\u5f0f\uff0c\u901a\u8fc7\u7cfb\u7edf\u8c03\u7528\u8bbf\u95ee\u786c\u4ef6\u8bbe\u5907\u3002strace \u53ef\u8ddf\u8e2a\u8fdb\u7a0b\u4ea7\u751f\u7684\u7cfb\u7edf\u8c03\u7528\uff0c\u5305\u62ec\u53c2\u6570\u3001\u8fd4\u56de\u503c\u548c\u6267\u884c\u6240\u6d88\u8017\u7684\u65f6\u95f4\u3002\u82e5 strace \u6ca1\u6709\u4efb\u4f55\u8f93\u51fa\uff0c\u5e76\u4e0d\u4ee3\u8868\u6b64\u65f6\u8fdb\u7a0b\u53d1\u751f\u963b\u585e\uff1b\u4e5f\u53ef\u80fd\u7a0b\u5e8f\u8fdb\u7a0b\u6b63\u5728\u6267\u884c\u67d0\u4e9b\u4e0d\u9700\u8981\u4e0e\u7cfb\u7edf\u5176\u5b83\u90e8\u5206\u53d1\u751f\u901a\u4fe1\u7684\u4e8b\u60c5\u3002strace \u4ece\u5185\u6838\u63a5\u6536\u4fe1\u606f\uff0c\u4e14\u65e0\u9700\u4ee5\u4efb\u4f55\u7279\u6b8a\u65b9\u5f0f\u6765\u6784\u5efa\u5185\u6838\u3002"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://www.lxlinux.net/8079.html"},"\u4f7f\u7528 strace \u5bf9\u7a0b\u5e8f\u8fdb\u884c\u8c03\u8bd5\u5206\u6790"))))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6316],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function s(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),l=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):s(s({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(i.Provider,{value:t},e.children)},p="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),p=l(r),d=a,f=p["".concat(i,".").concat(d)]||p[d]||y[d]||o;return r?n.createElement(f,s(s({ref:t},u),{},{components:r})):n.createElement(f,s({ref:t},u))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,s=new Array(o);s[0]=d;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[p]="string"==typeof e?e:a,s[1]=c;for(var l=2;l{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>s,default:()=>y,frontMatter:()=>o,metadata:()=>c,toc:()=>l});var n=r(8168),a=(r(6540),r(5680));const o={},s=void 0,c={unversionedId:"study/system/\u7a0b\u5e8f\u8c03\u8bd5",id:"study/system/\u7a0b\u5e8f\u8c03\u8bd5",title:"\u7a0b\u5e8f\u8c03\u8bd5",description:"strace",source:"@site/docs/study/system/\u7a0b\u5e8f\u8c03\u8bd5.md",sourceDirName:"study/system",slug:"/study/system/\u7a0b\u5e8f\u8c03\u8bd5",permalink:"/docs/study/system/\u7a0b\u5e8f\u8c03\u8bd5",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838",permalink:"/docs/study/system/\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838"},next:{title:"IPV6",permalink:"/docs/study/net/IPV6"}},i={},l=[{value:"strace",id:"strace",level:3}],u={toc:l},p="wrapper";function y(e){let{components:t,...r}=e;return(0,a.yg)(p,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"strace"},"strace"),(0,a.yg)("p",null,"strace \u662f\u4e2a\u529f\u80fd\u5f3a\u5927\u7684 Linux \u8c03\u8bd5\u5206\u6790\u8bca\u65ad\u5de5\u5177\uff0c\u53ef\u7528\u4e8e\u8ddf\u8e2a\u7a0b\u5e8f\u6267\u884c\u65f6\u8fdb\u7a0b\u7cfb\u7edf\u8c03\u7528(system call)\u548c\u6240\u63a5\u6536\u7684\u4fe1\u53f7\uff0c\u5c24\u5176\u662f\u9488\u5bf9\u6e90\u7801\u4e0d\u53ef\u8bfb\u6216\u6e90\u7801\u65e0\u6cd5\u518d\u7f16\u8bd1\u7684\u7a0b\u5e8f\u3002\u5728 Linux \u7cfb\u7edf\u4e2d\uff0c\u7528\u6237\u8fdb\u7a0b\u4e0d\u80fd\u76f4\u63a5\u8bbf\u95ee\u8ba1\u7b97\u673a\u786c\u4ef6\u8bbe\u5907\u3002\u5f53\u8fdb\u7a0b\u9700\u8981\u8bbf\u95ee\u786c\u4ef6\u8bbe\u5907(\u5982\u8bfb\u53d6\u78c1\u76d8\u6587\u4ef6\u6216\u63a5\u6536\u7f51\u7edc\u6570\u636e\u7b49)\u65f6\uff0c\u5fc5\u987b\u7531\u7528\u6237\u6001\u6a21\u5f0f\u5207\u6362\u81f3\u5185\u6838\u6001\u6a21\u5f0f\uff0c\u901a\u8fc7\u7cfb\u7edf\u8c03\u7528\u8bbf\u95ee\u786c\u4ef6\u8bbe\u5907\u3002strace \u53ef\u8ddf\u8e2a\u8fdb\u7a0b\u4ea7\u751f\u7684\u7cfb\u7edf\u8c03\u7528\uff0c\u5305\u62ec\u53c2\u6570\u3001\u8fd4\u56de\u503c\u548c\u6267\u884c\u6240\u6d88\u8017\u7684\u65f6\u95f4\u3002\u82e5 strace \u6ca1\u6709\u4efb\u4f55\u8f93\u51fa\uff0c\u5e76\u4e0d\u4ee3\u8868\u6b64\u65f6\u8fdb\u7a0b\u53d1\u751f\u963b\u585e\uff1b\u4e5f\u53ef\u80fd\u7a0b\u5e8f\u8fdb\u7a0b\u6b63\u5728\u6267\u884c\u67d0\u4e9b\u4e0d\u9700\u8981\u4e0e\u7cfb\u7edf\u5176\u5b83\u90e8\u5206\u53d1\u751f\u901a\u4fe1\u7684\u4e8b\u60c5\u3002strace \u4ece\u5185\u6838\u63a5\u6536\u4fe1\u606f\uff0c\u4e14\u65e0\u9700\u4ee5\u4efb\u4f55\u7279\u6b8a\u65b9\u5f0f\u6765\u6784\u5efa\u5185\u6838\u3002"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://www.lxlinux.net/8079.html"},"\u4f7f\u7528 strace \u5bf9\u7a0b\u5e8f\u8fdb\u884c\u8c03\u8bd5\u5206\u6790"))))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c3633f34.f4690953.js b/assets/js/c3633f34.612fd3ee.js similarity index 99% rename from assets/js/c3633f34.f4690953.js rename to assets/js/c3633f34.612fd3ee.js index 72b84e569..908dc4a44 100644 --- a/assets/js/c3633f34.f4690953.js +++ b/assets/js/c3633f34.612fd3ee.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5290],{5680:(e,t,n)=>{n.d(t,{xA:()=>p,yg:()=>d});var r=n(6540);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var T=r.createContext({}),l=function(e){var t=r.useContext(T),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=l(e.components);return r.createElement(T.Provider,{value:t},e.children)},u="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,T=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),u=l(n),y=o,d=u["".concat(T,".").concat(y)]||u[y]||s[y]||a;return n?r.createElement(d,i(i({ref:t},p),{},{components:n})):r.createElement(d,i({ref:t},p))}));function d(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=y;var c={};for(var T in t)hasOwnProperty.call(t,T)&&(c[T]=t[T]);c.originalType=e,c[u]="string"==typeof e?e:o,i[1]=c;for(var l=2;l{n.r(t),n.d(t,{assets:()=>T,contentTitle:()=>i,default:()=>s,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var r=n(8168),o=(n(6540),n(5680));const a={},i=void 0,c={unversionedId:"study/think/IT_CT_OT",id:"study/think/IT_CT_OT",title:"IT_CT_OT",description:"IT",source:"@site/docs/study/think/IT_CT_OT.md",sourceDirName:"study/think",slug:"/study/think/IT_CT_OT",permalink:"/docs/study/think/IT_CT_OT",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u8bbe\u8ba1\u6a21\u5f0f",permalink:"/docs/study/think/\u8bbe\u8ba1\u6a21\u5f0f"},next:{title:"Gerrit\u4ee3\u7801\u8bc4\u5ba1\u5de5\u5177",permalink:"/docs/study/think/\u4ee3\u7801\u8bc4\u5ba1/Gerrit\u4ee3\u7801\u8bc4\u5ba1\u5de5\u5177"}},T={},l=[{value:"IT",id:"it",level:3},{value:"CT",id:"ct",level:3},{value:"ICT",id:"ict",level:3},{value:"OT",id:"ot",level:3}],p={toc:l},u="wrapper";function s(e){let{components:t,...n}=e;return(0,o.yg)(u,(0,r.A)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"it"},"IT"),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"Internet Technology\uff0c"),"\u5728IT\u3001CT\u5927\u878d\u5408\u4e4b\u524d\uff0cIT\u5e76\u4e0d\u662fInformation Technology(\u4fe1\u606f\u6280\u672f),IT\u6700\u521d\u662f\u6307\u4e92\u8054\u7f51\u6280\u672f\uff0c\u8fd9\u4e5f\u662f\u4e3a\u4ec0\u4e48BAT\u8fd9\u4e9b\u5de8\u5934\u88ab\u79f0\u4e3a\u4e92\u8054\u7f51\u4e09\u5de8\u5934\u7684\u539f\u56e0\u3002\u5728\u5f00\u59cb\u7684\u65f6\u5019\uff0cIT\u548cCT\u8fd8\u662f\u6cfe\u6e2d\u5206\u660e\u7684\u4e24\u79cd\u6280\u672f\uff0cIT\u4e1a\u4e5f\u4e5f\u53ef\u4ee5\u8bf4\u662f\u4ee3\u8868\u4e86\u8ba1\u7b97\u673a\u4e1a\uff0c\u4e00\u4e9b\u6d89\u53ca\u5230\u8ba1\u7b97\u673a\u7684\u8f6f\u786c\u4ef6\u4f01\u4e1a\u4e5f\u88ab\u79f0\u4e3a\u662fIT\u4e1a\u4f01\u4e1a\u3002"),(0,o.yg)("h3",{id:"ct"},"CT"),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"Communication Technology\uff0c"),"\u6700\u65e9\u7684CT\u4e1a\u88ab\u4e5f\u6210\u4e3a\u7535\u4fe1\u4e1a\uff0cTelecommunication\uff0c\u90a3\u662f\u56e0\u4e3a\u6700\u65e9\u671f\u7684\u901a\u4fe1\u90fd\u662f\u7535\u62a5\u3001\u7535\u8bdd\u4e4b\u7c7b\u7684\u6280\u672f\uff0c\u6240\u4ee5\u4e5f\u88ab\u79f0\u4e3a\u7535\u4fe1\u6280\u672f\u3002\u901a\u4fe1\u4e1a\u7684\u4f01\u4e1a\u53c8\u5206\u4e3a\u8fd0\u8425\u5546\u3001\u901a\u4fe1\u5236\u9020\u4e1a\u3001\u901a\u4fe1\u670d\u52a1\u652f\u6301\uff0c\u4e00\u4e9b\u901a\u4fe1\u4e1a\u7684\u65bd\u5de5\u5355\u4f4d\u7b49\uff0c\u901a\u4fe1\u4e1a\u7684\u8fd0\u8425\u5546\u5728\u56fd\u5185\u6211\u4eec\u6bd4\u8f83\u719f\u6089\u7684\u662f\u4e2d\u56fd\u79fb\u52a8\u3001\u4e2d\u56fd\u8054\u901a\u3001\u4e2d\u56fd\u7535\u4fe1\uff0c\u73b0\u5728\u53c8\u591a\u4e86\u4e00\u4e2a\u4e2d\u56fd\u5e7f\u7535\uff0c\u901a\u4fe1\u5236\u9020\u4e1a\u4e2d\u56fd\u6bd4\u8f83\u6709\u540d\u6c14\u7684\u662f\u4e09\u4e2a\uff1a\u534e\u4e3a\u3001\u4e2d\u5174\u3001\u4fe1\u79d1\u3002\n\u5168\u7403\u8303\u56f4\u5185\uff0c\u901a\u4fe1\u4e1a\u5236\u9020\u4e1a\u8fd8\u5269\u7684\u6bd4\u8f83\u5f3a\u5927\u7684\u4e5f\u5c31\u662f\u8bfa\u57fa\u4e9a\u3001\u7231\u7acb\u4fe1\u3001\u534e\u4e3a\u3001\u4e2d\u5174\u8fd9\u56db\u5bb6\u4e86\u3002"),(0,o.yg)("h3",{id:"ict"},"ICT"),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"\u76ee\u524dIT\u4e1a\u548cCT\u4e1a\u7ecf\u8fc7\u4e92\u76f8\u878d\u5408\uff0c\u76ee\u524d\u4e5f\u88ab\u5408\u5e76\u79f0\u4e3aICT\u4e1a\u3002"),"IT\u4e1a\u548cCT\u4e1a\u7684\u878d\u5408\uff0c\u5f00\u59cb\u662fIT\u4e1a\u5411CT\u4e1a\u7684\u5165\u4fb5\uff0cIP\u6280\u672f\u5c31\u662fIT\u4e1a\u7684\u6280\u672f\uff0cIP\u6253\u8d25\u4e86ATM\u6280\u672f\u4e4b\u540e\uff0cICT\u4e1a\u5c31\u5f00\u59cb\u4e86\u5927\u878d\u5408\u3002IT\u4e1a\u7684\u8f6f\u786c\u4ef6\u516c\u53f8\u5f00\u59cb\u5927\u89c4\u6a21\u7684\u5411CT\u4e1a\u8fdb\u519b\uff0c\u540c\u65f6CT\u4e1a\u7684\u516c\u53f8\u4e5f\u5f00\u59cb\u7814\u53d1IT\u6280\u672f\uff0c\u53cc\u5411\u878d\u5408\u5f00\u59cb\u4e4b\u540e\uff0cIT\u4e1a\u548cCT\u4e1a\u7684\u58c1\u5792\u8d8a\u6765\u8d8a\u4e0d\u660e\u663e\uff0c\u73b0\u5728\u5df2\u7ecf\u5f62\u6210\u4e86\u4e00\u4e2a\u65b0\u7684\u884c\u4e1a--ICT\u4e1a\uff0cInformation Communication Technology(\u4fe1\u606f\u3001\u901a\u4fe1\u6280\u672f)\u3002"),(0,o.yg)("h3",{id:"ot"},"OT"),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"Operational Technology,\u8fd0\u8425\u6280\u672f\u3002"),"\u53ef\u80fdOT\u8fd8\u6709\u522b\u7684\u7f29\u5199\u7684\u610f\u601d\uff0c\u4f46\u662f\u5982\u679cOT IT CT\u8fd9\u4e09\u4e2a\u540d\u8bcd\u4e00\u8d77\u51fa\u73b0\u7684\u8bdd\uff0c\u4ed6\u6307\u7684\u5c31\u662f\u8fd0\u8425\u6280\u672f\u3002\nOT\u66f4\u57fa\u672c\u7684\u4e5f\u53ef\u4ee5\u8ba4\u4e3a\u662f\u64cd\u4f5c\u6280\u672f\uff0c\u6bd4\u5982\u5de5\u4eba\u64cd\u4f5c\u4e00\u53f0\u673a\u5e8a\u3002\u4f46\u662f\u5982\u679c\u653e\u5927\u4e00\u4e9b\uff0c\u4e00\u6761\u751f\u4ea7\u7ebf\u4e5f\u662fOT,\u4e00\u4e2a\u5de5\u5382\u7684\u6574\u4f53\u8fd0\u8425\u4e5f\u662fOT\u3002\n\u4e0d\u7ba1\u5982\u4f55\u7406\u89e3\uff0cOT\u672c\u8eab\u90fd\u662f\u548c\u4e00\u4e9b\u8f6f\u786c\u4ef6\u662f\u65e0\u6cd5\u5206\u5f00\u7684\u3002\nOT\u5f00\u59cb\u62e5\u62b1IT\uff0c\u662f\u6280\u672f\u66f4\u65b0\u7684\u7ed3\u679c\uff0c\u968f\u7740\u5de5\u4e1a\u5316\u7684\u4e0d\u65ad\u63a8\u8fdb\uff0c\u8d8a\u6765\u8d8a\u591a\u7684\u5de5\u4eba\u88ab\u673a\u5668\u66ff\u4ee3\uff0c\u8d8a\u6765\u8d8a\u591a\u7684\u4eba\u5de5\u64cd\u4f5c\u88ab\u8f6f\u4ef6\u81ea\u52a8\u5316\u6240\u53d6\u4ee3\uff0c\u4f34\u968f\u7740OT\u6280\u672f\u7684\u4e0d\u65ad\u7684\u53d1\u5c55\uff0cIT\u6280\u672f\u88ab\u8d8a\u6765\u8d8a\u591a\u7684\u878d\u5408\u5230\u4e86OT\u6280\u672f\u4e4b\u4e2d\u3002\n\u800c\u968f\u7740\u5de5\u4e1a4.0\u7684\u6765\u4e34\uff0c\u8d8a\u6765\u8d8a\u591a\u7684ICT\u6280\u672f\u5219\u9700\u8981\u88ab\u5f15\u5165\u5230OT\u6280\u672f\u4e4b\u4e2d\uff0cIT\u3001OT\u3001CT\u5c06\u5728\u672a\u6765\u7d27\u5bc6\u7684\u878d\u5408\u5728\u4e00\u8d77\uff0c\u6210\u4e3a\u4e00\u4e2a\u6574\u4f53\u3002\n\u672a\u6765\u57285G\u4e4b\u4e2d\uff0c\u4e09\u5927\u5e94\u7528\u573a\u666f\u4e4b\u4e2d\u7684URLLC(\u8d85\u9ad8\u53ef\u9760\u4f4e\u65f6\u5ef6)\u5c31\u662f\u4e3b\u8981\u652f\u6301\u5de5\u4e1a4.0\u7684\u573a\u666f\u3002\n\u5de5\u4e1a\u81ea\u52a8\u5316\u4e5f\u88ab\u8ba4\u4e3a\u662f5G\u6700\u91cd\u8981\u7684\u4e00\u79cd\u5782\u76f4\u884c\u4e1a\u5e94\u7528\u4e86\uff0c\u91cd\u8981\u6027\u751a\u81f3\u8981\u8d85\u8fc7\u66f4\u79d1\u5e7b\u4e00\u4e9b\u7684\u81ea\u52a8\u9a7e\u9a76\u5e94\u7528\u3002\n\u603b\u800c\u8a00\u4e4b\uff0c\u5982\u679c\u5355\u5355\u62ff\u51fa\u6765\uff0cIT CT OT\u90fd\u53ef\u80fd\u662f\u522b\u7684\u7f29\u5199\uff0c\u4f46\u662f\u4e09\u4e2a\u5728\u4e00\u8d77\u51fa\u73b0\u7684\u8bdd\uff0c\u4f60\u770b\u5230\u7684\u6587\u6863\uff0c\u901a\u5e38\u90fd\u662f\u63cf\u7ed8\u5de5\u4e1a4.0\u7684\u8d44\u6599\u4e86\uff0c\u73b0\u5728\u4e5f\u6709\u5f88\u591a\u8fd9\u6837\u7684\u8d44\u6599\u3002"))}s.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5290],{5680:(e,t,n)=>{n.d(t,{xA:()=>p,yg:()=>d});var r=n(6540);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var T=r.createContext({}),l=function(e){var t=r.useContext(T),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=l(e.components);return r.createElement(T.Provider,{value:t},e.children)},u="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,T=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),u=l(n),y=o,d=u["".concat(T,".").concat(y)]||u[y]||s[y]||a;return n?r.createElement(d,i(i({ref:t},p),{},{components:n})):r.createElement(d,i({ref:t},p))}));function d(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=y;var c={};for(var T in t)hasOwnProperty.call(t,T)&&(c[T]=t[T]);c.originalType=e,c[u]="string"==typeof e?e:o,i[1]=c;for(var l=2;l{n.r(t),n.d(t,{assets:()=>T,contentTitle:()=>i,default:()=>s,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var r=n(8168),o=(n(6540),n(5680));const a={},i=void 0,c={unversionedId:"study/think/IT_CT_OT",id:"study/think/IT_CT_OT",title:"IT_CT_OT",description:"IT",source:"@site/docs/study/think/IT_CT_OT.md",sourceDirName:"study/think",slug:"/study/think/IT_CT_OT",permalink:"/docs/study/think/IT_CT_OT",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u8bbe\u8ba1\u6a21\u5f0f",permalink:"/docs/study/think/\u8bbe\u8ba1\u6a21\u5f0f"},next:{title:"Gerrit\u4ee3\u7801\u8bc4\u5ba1\u5de5\u5177",permalink:"/docs/study/think/\u4ee3\u7801\u8bc4\u5ba1/Gerrit\u4ee3\u7801\u8bc4\u5ba1\u5de5\u5177"}},T={},l=[{value:"IT",id:"it",level:3},{value:"CT",id:"ct",level:3},{value:"ICT",id:"ict",level:3},{value:"OT",id:"ot",level:3}],p={toc:l},u="wrapper";function s(e){let{components:t,...n}=e;return(0,o.yg)(u,(0,r.A)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"it"},"IT"),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"Internet Technology\uff0c"),"\u5728IT\u3001CT\u5927\u878d\u5408\u4e4b\u524d\uff0cIT\u5e76\u4e0d\u662fInformation Technology(\u4fe1\u606f\u6280\u672f),IT\u6700\u521d\u662f\u6307\u4e92\u8054\u7f51\u6280\u672f\uff0c\u8fd9\u4e5f\u662f\u4e3a\u4ec0\u4e48BAT\u8fd9\u4e9b\u5de8\u5934\u88ab\u79f0\u4e3a\u4e92\u8054\u7f51\u4e09\u5de8\u5934\u7684\u539f\u56e0\u3002\u5728\u5f00\u59cb\u7684\u65f6\u5019\uff0cIT\u548cCT\u8fd8\u662f\u6cfe\u6e2d\u5206\u660e\u7684\u4e24\u79cd\u6280\u672f\uff0cIT\u4e1a\u4e5f\u4e5f\u53ef\u4ee5\u8bf4\u662f\u4ee3\u8868\u4e86\u8ba1\u7b97\u673a\u4e1a\uff0c\u4e00\u4e9b\u6d89\u53ca\u5230\u8ba1\u7b97\u673a\u7684\u8f6f\u786c\u4ef6\u4f01\u4e1a\u4e5f\u88ab\u79f0\u4e3a\u662fIT\u4e1a\u4f01\u4e1a\u3002"),(0,o.yg)("h3",{id:"ct"},"CT"),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"Communication Technology\uff0c"),"\u6700\u65e9\u7684CT\u4e1a\u88ab\u4e5f\u6210\u4e3a\u7535\u4fe1\u4e1a\uff0cTelecommunication\uff0c\u90a3\u662f\u56e0\u4e3a\u6700\u65e9\u671f\u7684\u901a\u4fe1\u90fd\u662f\u7535\u62a5\u3001\u7535\u8bdd\u4e4b\u7c7b\u7684\u6280\u672f\uff0c\u6240\u4ee5\u4e5f\u88ab\u79f0\u4e3a\u7535\u4fe1\u6280\u672f\u3002\u901a\u4fe1\u4e1a\u7684\u4f01\u4e1a\u53c8\u5206\u4e3a\u8fd0\u8425\u5546\u3001\u901a\u4fe1\u5236\u9020\u4e1a\u3001\u901a\u4fe1\u670d\u52a1\u652f\u6301\uff0c\u4e00\u4e9b\u901a\u4fe1\u4e1a\u7684\u65bd\u5de5\u5355\u4f4d\u7b49\uff0c\u901a\u4fe1\u4e1a\u7684\u8fd0\u8425\u5546\u5728\u56fd\u5185\u6211\u4eec\u6bd4\u8f83\u719f\u6089\u7684\u662f\u4e2d\u56fd\u79fb\u52a8\u3001\u4e2d\u56fd\u8054\u901a\u3001\u4e2d\u56fd\u7535\u4fe1\uff0c\u73b0\u5728\u53c8\u591a\u4e86\u4e00\u4e2a\u4e2d\u56fd\u5e7f\u7535\uff0c\u901a\u4fe1\u5236\u9020\u4e1a\u4e2d\u56fd\u6bd4\u8f83\u6709\u540d\u6c14\u7684\u662f\u4e09\u4e2a\uff1a\u534e\u4e3a\u3001\u4e2d\u5174\u3001\u4fe1\u79d1\u3002\n\u5168\u7403\u8303\u56f4\u5185\uff0c\u901a\u4fe1\u4e1a\u5236\u9020\u4e1a\u8fd8\u5269\u7684\u6bd4\u8f83\u5f3a\u5927\u7684\u4e5f\u5c31\u662f\u8bfa\u57fa\u4e9a\u3001\u7231\u7acb\u4fe1\u3001\u534e\u4e3a\u3001\u4e2d\u5174\u8fd9\u56db\u5bb6\u4e86\u3002"),(0,o.yg)("h3",{id:"ict"},"ICT"),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"\u76ee\u524dIT\u4e1a\u548cCT\u4e1a\u7ecf\u8fc7\u4e92\u76f8\u878d\u5408\uff0c\u76ee\u524d\u4e5f\u88ab\u5408\u5e76\u79f0\u4e3aICT\u4e1a\u3002"),"IT\u4e1a\u548cCT\u4e1a\u7684\u878d\u5408\uff0c\u5f00\u59cb\u662fIT\u4e1a\u5411CT\u4e1a\u7684\u5165\u4fb5\uff0cIP\u6280\u672f\u5c31\u662fIT\u4e1a\u7684\u6280\u672f\uff0cIP\u6253\u8d25\u4e86ATM\u6280\u672f\u4e4b\u540e\uff0cICT\u4e1a\u5c31\u5f00\u59cb\u4e86\u5927\u878d\u5408\u3002IT\u4e1a\u7684\u8f6f\u786c\u4ef6\u516c\u53f8\u5f00\u59cb\u5927\u89c4\u6a21\u7684\u5411CT\u4e1a\u8fdb\u519b\uff0c\u540c\u65f6CT\u4e1a\u7684\u516c\u53f8\u4e5f\u5f00\u59cb\u7814\u53d1IT\u6280\u672f\uff0c\u53cc\u5411\u878d\u5408\u5f00\u59cb\u4e4b\u540e\uff0cIT\u4e1a\u548cCT\u4e1a\u7684\u58c1\u5792\u8d8a\u6765\u8d8a\u4e0d\u660e\u663e\uff0c\u73b0\u5728\u5df2\u7ecf\u5f62\u6210\u4e86\u4e00\u4e2a\u65b0\u7684\u884c\u4e1a--ICT\u4e1a\uff0cInformation Communication Technology(\u4fe1\u606f\u3001\u901a\u4fe1\u6280\u672f)\u3002"),(0,o.yg)("h3",{id:"ot"},"OT"),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"Operational Technology,\u8fd0\u8425\u6280\u672f\u3002"),"\u53ef\u80fdOT\u8fd8\u6709\u522b\u7684\u7f29\u5199\u7684\u610f\u601d\uff0c\u4f46\u662f\u5982\u679cOT IT CT\u8fd9\u4e09\u4e2a\u540d\u8bcd\u4e00\u8d77\u51fa\u73b0\u7684\u8bdd\uff0c\u4ed6\u6307\u7684\u5c31\u662f\u8fd0\u8425\u6280\u672f\u3002\nOT\u66f4\u57fa\u672c\u7684\u4e5f\u53ef\u4ee5\u8ba4\u4e3a\u662f\u64cd\u4f5c\u6280\u672f\uff0c\u6bd4\u5982\u5de5\u4eba\u64cd\u4f5c\u4e00\u53f0\u673a\u5e8a\u3002\u4f46\u662f\u5982\u679c\u653e\u5927\u4e00\u4e9b\uff0c\u4e00\u6761\u751f\u4ea7\u7ebf\u4e5f\u662fOT,\u4e00\u4e2a\u5de5\u5382\u7684\u6574\u4f53\u8fd0\u8425\u4e5f\u662fOT\u3002\n\u4e0d\u7ba1\u5982\u4f55\u7406\u89e3\uff0cOT\u672c\u8eab\u90fd\u662f\u548c\u4e00\u4e9b\u8f6f\u786c\u4ef6\u662f\u65e0\u6cd5\u5206\u5f00\u7684\u3002\nOT\u5f00\u59cb\u62e5\u62b1IT\uff0c\u662f\u6280\u672f\u66f4\u65b0\u7684\u7ed3\u679c\uff0c\u968f\u7740\u5de5\u4e1a\u5316\u7684\u4e0d\u65ad\u63a8\u8fdb\uff0c\u8d8a\u6765\u8d8a\u591a\u7684\u5de5\u4eba\u88ab\u673a\u5668\u66ff\u4ee3\uff0c\u8d8a\u6765\u8d8a\u591a\u7684\u4eba\u5de5\u64cd\u4f5c\u88ab\u8f6f\u4ef6\u81ea\u52a8\u5316\u6240\u53d6\u4ee3\uff0c\u4f34\u968f\u7740OT\u6280\u672f\u7684\u4e0d\u65ad\u7684\u53d1\u5c55\uff0cIT\u6280\u672f\u88ab\u8d8a\u6765\u8d8a\u591a\u7684\u878d\u5408\u5230\u4e86OT\u6280\u672f\u4e4b\u4e2d\u3002\n\u800c\u968f\u7740\u5de5\u4e1a4.0\u7684\u6765\u4e34\uff0c\u8d8a\u6765\u8d8a\u591a\u7684ICT\u6280\u672f\u5219\u9700\u8981\u88ab\u5f15\u5165\u5230OT\u6280\u672f\u4e4b\u4e2d\uff0cIT\u3001OT\u3001CT\u5c06\u5728\u672a\u6765\u7d27\u5bc6\u7684\u878d\u5408\u5728\u4e00\u8d77\uff0c\u6210\u4e3a\u4e00\u4e2a\u6574\u4f53\u3002\n\u672a\u6765\u57285G\u4e4b\u4e2d\uff0c\u4e09\u5927\u5e94\u7528\u573a\u666f\u4e4b\u4e2d\u7684URLLC(\u8d85\u9ad8\u53ef\u9760\u4f4e\u65f6\u5ef6)\u5c31\u662f\u4e3b\u8981\u652f\u6301\u5de5\u4e1a4.0\u7684\u573a\u666f\u3002\n\u5de5\u4e1a\u81ea\u52a8\u5316\u4e5f\u88ab\u8ba4\u4e3a\u662f5G\u6700\u91cd\u8981\u7684\u4e00\u79cd\u5782\u76f4\u884c\u4e1a\u5e94\u7528\u4e86\uff0c\u91cd\u8981\u6027\u751a\u81f3\u8981\u8d85\u8fc7\u66f4\u79d1\u5e7b\u4e00\u4e9b\u7684\u81ea\u52a8\u9a7e\u9a76\u5e94\u7528\u3002\n\u603b\u800c\u8a00\u4e4b\uff0c\u5982\u679c\u5355\u5355\u62ff\u51fa\u6765\uff0cIT CT OT\u90fd\u53ef\u80fd\u662f\u522b\u7684\u7f29\u5199\uff0c\u4f46\u662f\u4e09\u4e2a\u5728\u4e00\u8d77\u51fa\u73b0\u7684\u8bdd\uff0c\u4f60\u770b\u5230\u7684\u6587\u6863\uff0c\u901a\u5e38\u90fd\u662f\u63cf\u7ed8\u5de5\u4e1a4.0\u7684\u8d44\u6599\u4e86\uff0c\u73b0\u5728\u4e5f\u6709\u5f88\u591a\u8fd9\u6837\u7684\u8d44\u6599\u3002"))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c38cd4f0.d921778b.js b/assets/js/c38cd4f0.d9124b31.js similarity index 99% rename from assets/js/c38cd4f0.d921778b.js rename to assets/js/c38cd4f0.d9124b31.js index 592f45707..3ff395208 100644 --- a/assets/js/c38cd4f0.d921778b.js +++ b/assets/js/c38cd4f0.d9124b31.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8816],{5680:(e,t,n)=>{n.d(t,{xA:()=>P,yg:()=>d});var r=n(6540);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var p=r.createContext({}),c=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},P=function(e){var t=c(e.components);return r.createElement(p.Provider,{value:t},e.children)},u="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,l=e.originalType,p=e.parentName,P=i(e,["components","mdxType","originalType","parentName"]),u=c(n),y=a,d=u["".concat(p,".").concat(y)]||u[y]||s[y]||l;return n?r.createElement(d,o(o({ref:t},P),{},{components:n})):r.createElement(d,o({ref:t},P))}));function d(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=n.length,o=new Array(l);o[0]=y;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[u]="string"==typeof e?e:a,o[1]=i;for(var c=2;c{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>s,frontMatter:()=>l,metadata:()=>i,toc:()=>c});var r=n(8168),a=(n(6540),n(5680));const l={},o=void 0,i={unversionedId:"study/competitive/CMP-DMP-AEP-BAP",id:"study/competitive/CMP-DMP-AEP-BAP",title:"CMP-DMP-AEP-BAP",description:"\u7b80\u8ff0",source:"@site/docs/study/competitive/CMP-DMP-AEP-BAP.md",sourceDirName:"study/competitive",slug:"/study/competitive/CMP-DMP-AEP-BAP",permalink:"/docs/study/competitive/CMP-DMP-AEP-BAP",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u5de5\u4e1a\u4e92\u8054\u7f51\u63a2\u7a76",permalink:"/docs/study/competitive/\u5de5\u4e1a\u4e92\u8054\u7f51\u63a2\u7a76"},next:{title:"TP-LINK",permalink:"/docs/study/competitive/TP-LINK"}},p={},c=[{value:"\u7b80\u8ff0",id:"\u7b80\u8ff0",level:4},{value:"\u4e00\u3001\u8fde\u63a5\u7ba1\u7406\u5e73\u53f0CMP",id:"\u4e00\u8fde\u63a5\u7ba1\u7406\u5e73\u53f0cmp",level:4},{value:"\u4e8c\u3001\u8bbe\u5907\u7ba1\u7406\u5e73\u53f0DMP",id:"\u4e8c\u8bbe\u5907\u7ba1\u7406\u5e73\u53f0dmp",level:4},{value:"\u4e09\u3001\u5e94\u7528\u4f7f\u80fd\u5e73\u53f0AEP",id:"\u4e09\u5e94\u7528\u4f7f\u80fd\u5e73\u53f0aep",level:4},{value:"\u56db\u3001\u4e1a\u52a1\u5206\u6790\u5e73\u53f0BAP",id:"\u56db\u4e1a\u52a1\u5206\u6790\u5e73\u53f0bap",level:4}],P={toc:c},u="wrapper";function s(e){let{components:t,...l}=e;return(0,a.yg)(u,(0,r.A)({},P,l,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h4",{id:"\u7b80\u8ff0"},"\u7b80\u8ff0"),(0,a.yg)("p",null,"\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u5904\u4e8e\u7269\u8054\u7f51\u56db\u4e2a\u903b\u8f91\u5c42\uff08\u611f\u77e5\u5c42\u3001\u7f51\u7edc\u5c42\u3001\u5e73\u53f0\u5c42\u3001\u5e94\u7528\u5c42\uff09\u4e2d\u5904\u4e8e\u5e73\u53f0\u5c42\u8fd9\u4e00\u73af\uff0c\u5e73\u53f0\u5c42\u4e8e\u7269\u8054\u7f51\u7684\u4f5c\u7528\u5728\u4e8e\u6536\u96c6\u3001\u5904\u7406\u6570\u636e\u7b49\u3002\u6211\u4eec\u53ef\u6839\u636e\u4e91\u5e73\u53f0\u7684\u529f\u80fd\u5c06\u5176\u5206\u4e3aCMP\u3001DMP\u3001AEP\u548cBAP\u7b49\u56db\u4e2a\u5e73\u53f0\u3002\u5230\u76ee\u524d\u4e3a\u6b62\u8fd8\u6ca1\u6709\u4e00\u5bb6\u516c\u53f8\u53ef\u5728\u4e1a\u52a1\u4e0a\u6db5\u76d6\u56db\u4e2a\u5b50\u5e73\u53f0\uff0c\u6bcf\u4e2a\u516c\u53f8\u6709\u5404\u81ea\u64c5\u957f\u9886\u57df \u548c\u72ec\u7279\u4f18\u52bf\u3002"),(0,a.yg)("p",null,"\u6839\u636e\u5404\u7c7b\u53c2\u4e0e\u8005\u6240\u63d0\u4f9b\u7684\u670d\u52a1\u7c7b\u578b\uff0c\u6309\u7167Machina Research\u7684\u5206\u7c7b\u65b9\u6cd5\uff0c\u7269\u8054\u7f51\u5e73\u53f0\u53ef\u5206\u4e3a\u8fde\u63a5\u7ba1\u7406\u5e73\u53f0CMP\uff08Connectivity Management Platform\uff09\u3001\u8bbe\u5907\u7ba1\u7406\u5e73\u53f0DMP\uff08Device Management Platform\uff09\u3001\u5e94\u7528\u4f7f\u80fd\u5e73\u53f0AEP\uff08Application Enablement Platform\uff09\u548c\u4e1a\u52a1\u5206\u6790\u5e73\u53f0BAP\uff08Business Analytics Platform\uff09\u3002"),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"image.png",src:n(934).A,width:"746",height:"452"})),(0,a.yg)("h4",{id:"\u4e00\u8fde\u63a5\u7ba1\u7406\u5e73\u53f0cmp"},"\u4e00\u3001\u8fde\u63a5\u7ba1\u7406\u5e73\u53f0CMP"),(0,a.yg)("p",null,"CMP\uff08Connectivity Management Platform\uff09\u4e3a\u8fde\u63a5\u7ba1\u7406\u5e73\u53f0\u3002\u4e00\u822c\u8fd0\u7528\u4e8e\u8fd0\u8425\u5546\u7f51\u7edc\u4e0a\uff0c\u5177\u4f53\u6765\u8bf4\u8fde\u63a5\u7684\u7269\u8054\u7f51SIM\u5361\u3002\u8be5\u5e73\u53f0\u53ef\u4ee5\u5b9e\u73b0\u5bf9\u7269\u8054\u7f51\u8fde\u63a5\u914d\u7f6e\u548c\u6545\u969c\u7ba1\u7406\u3001\u4fdd\u8bc1\u7ec8\u7aef\u8054\u7f51\u901a\u9053\u7a33\u5b9a\u3001\u7f51\u7edc\u8d44\u6e90\u7528\u91cf\u7ba1\u7406\u3001\u8fde\u63a5\u8d44\u8d39\u7ba1\u7406\u3001\u8d26\u5355\u7ba1\u7406\u3001\u5957\u9910\u53d8\u66f4\u7b49\u3002"),(0,a.yg)("p",null,"\u8fde\u63a5\u7ba1\u7406\u5e73\u53f0\u901a\u5e38\u6307\u57fa\u4e8e\u7535\u4fe1\u8fd0\u8425\u5546\u7f51\u7edc\uff08\u8702\u7a9d\uff0cLTE\u7b49\uff09\u63d0\u4f9b\u53ef\u8fde\u63a5\u6027\u7ba1\u7406\u3001\u4f18\u5316\u4ee5\u53ca\u7ec8\u7aef\u7ba1\u7406\uff0c\u7ef4\u62a4\u7b49\u65b9\u9762\u7684\u529f\u80fd\u7684\u5e73\u53f0\u3002\u5176\u529f\u80fd\u901a\u5e38\u5305\u62ec\u53f7\u7801/IP\u5730\u5740/Mac\u8d44\u6e90\u7ba1\u7406\u3001SIM\u5361\u7ba1\u63a7\u3001\u8fde\u63a5\u8d44\u8d39\u7ba1\u7406\u3001\u5957\u9910\u7ba1\u7406\u3001\u7f51\u7edc\u8d44\u6e90\u7528\u91cf\u7ba1\u7406\u3001\u8d26\u5355\u7ba1\u7406\u3001\u6545\u969c\u7ba1\u7406\u7b49\u3002\u7269\u8054\u7f51\u8fde\u63a5\u5177\u5907M2M\u8fde\u63a5\u6570\u5927\u3001\u5355\u4e2a\u7269\u54c1\u8fde\u63a5ARPU\u503c\u4f4e\uff08\u4eba\u7c7b\u8fde\u63a5\u5ba2\u6237ARPU\u503c\u76843%-5%\uff09\u7684\u7279\u70b9\uff0c\u76f4\u63a5\u7ed3\u679c\u5c31\u662f\u591a\u6570\u8fd0\u8425\u5546\u5c06\u653e\u5f03\u81ea\u5efaCMP\u5e73\u53f0\uff0c\u8f6c\u4e0e\u4e13\u95e8\u5316\u7684CMP\u5e73\u53f0\u4f9b\u5e94\u5546\u5408\u4f5c\u3002\u6839\u636e\u7269\u8054\u7f51\u667a\u5e93\u7684\u5206\u6790\uff0c\u5bf9\u4e8e\u62e5\u6709\u8d85\u8fc71000\u4e2a\u8fde\u63a5\u7684\u4f01\u4e1a\uff0c\u957f\u671f\u6765\u770b\uff0c\u4f7f\u7528\u4e91\u5e73\u53f0\u6bd4\u81ea\u5efaIT\u8bbe\u65bd\u5c06\u8282\u770190%\u7684\u6210\u672c\u3002\u53e6\u5916\uff0c\u5f88\u591a\u7269\u8054\u7f51\u5ba2\u6237\u90fd\u662f\u8de8\u56fd\u4f01\u4e1a\uff0c\u9009\u62e9\u8fd0\u8425\u5546\u65f6\u66f4\u9752\u7750\u4e00\u70b9\u63a5\u5165\u5168\u7403\u901a\u7528\uff0c\u56e0\u6b64\u5168\u7403\u5316\u7684\u9f99\u5934CMP\u4f01\u4e1a\u4f18\u52bf\u663e\u8457\u3002"),(0,a.yg)("p",null,"\u5178\u578b\u7684\u8fde\u63a5\u7ba1\u7406\u5e73\u53f0\u5305\u62ec\u601d\u79d1\u7684Jasper\u5e73\u53f0\u3001\u7231\u7acb\u4fe1\u7684DCP\u3001\u6c83\u8fbe\u4e30\u7684GDSP\uff0cTelit\u7684M2M\u5e73\u53f0\u3001PTC\u7684Thingworx\u548cAxeda\u3002\u76ee\u524d\u5168\u7403\u5316\u7684CMP\u4e3b\u8981\u6709\u4e09\u5bb6\uff1aJasper\u5e73\u53f0\u3001\u7231\u7acb\u4fe1DCP\u5e73\u53f0\u548c\u6c83\u8fbe\u4e30GDSP\u5e73\u53f0\uff0c\u5176\u4e2dJasper\u6700\u5927\uff0c\u4e0e\u5168\u7403\u8d85\u8fc7100\u5bb6\u8fd0\u8425\u5546\u30013500\u5bb6\u4f01\u4e1a\u5ba2\u6237\u5c55\u5f00\u5408\u4f5c\uff0c\u56fd\u5185\u7684\u4e2d\u56fd\u8054\u901a\u4e5f\u901a\u8fc7\u5b9c\u901a\u4e16\u7eaa\u4e0eJasper\u5e73\u53f0\u8fdb\u884c\u5408\u4f5c\u3002"),(0,a.yg)("p",null,"\u5728\u56fd\u5185\u4e09\u5927\u8fd0\u8425\u5546\u4e2d\uff0c\u4e2d\u56fd\u79fb\u52a8\u9009\u62e9\u81ea\u7814One NET\u8fde\u63a5\u7ba1\u7406\u5e73\u53f0\uff0c\u4e2d\u56fd\u8054\u901a\u4e0eJasper\u6218\u7565\u5408\u4f5c\uff0c\u9009\u62e9\u5176Control\u5e73\u53f0\u63d0\u4f9b\u7269\u8054\u7f51\u8fde\u63a5\u670d\u52a1\uff1b\u4e2d\u56fd\u7535\u4fe1\u4e5f\u5148\u540e\u81ea\u7814\u53ca\u4e0e\u7231\u7acb\u4fe1\u5408\u4f5c\u5efa\u7acb\u4e24\u5957\u8fde\u63a5\u7ba1\u7406\u5e73\u53f0\u3002"),(0,a.yg)("h4",{id:"\u4e8c\u8bbe\u5907\u7ba1\u7406\u5e73\u53f0dmp"},"\u4e8c\u3001\u8bbe\u5907\u7ba1\u7406\u5e73\u53f0DMP"),(0,a.yg)("p",null,"DMP\uff08Device Management Platform\uff09\u662f\u8bbe\u5907\u7ba1\u7406\u5e73\u53f0\u3002\u4e3b\u8981\u5bf9\u7269\u8054\u7f51\u7ec8\u7aef\u8fdb\u884c\u8fdc\u7a0b\u76d1\u63a7\u3001\u8bbe\u7f6e\u8c03\u6574 \u3001\u8f6f\u4ef6\u5347\u7ea7\u3001\u6545\u969c\u6392\u67e5\u7b49\u4e00\u7cfb\u5217\u7b49\u529f\u80fd\u3002\u5e76\u901a\u8fc7\u63d0\u4f9b\u5f00\u653e\u7684API\u8c03\u7528\u63a5\u53e3\u5e2e\u52a9\u5ba2\u6237\u8fdb\u884c\u7cfb\u7edf\u7684\u96c6\u6210\u5728\u6574\u5957\u7aef\u5230\u7aefM2M\u8bbe\u5907\u7ba1\u7406\u89e3\u51b3\u65b9\u6848\u4e2d\uff0c\u6574\u4f53\u62a5\u4ef7\u6536\u8d39\u3002\u53ef\u4ee5\u8ba4\u4e3aDMP\u4e3b\u8981\u9762\u5411\u8bbe\u5907\u7684\u5f00\u3001\u5173\u3001\u505c\u7b49\u57fa\u672c\u72b6\u6001\u7684\u63a7\u5236\uff0c\u6216\u5b9e\u65f6\u7684\u7269\u8054\u7f51\u8bbe\u5907\u8b66\u544a\u7b49\u4e0d\u6d89\u53ca\u7269\u8054\u7f51\u4e0a\u5c42\u5e94\u7528\u573a\u666f\u7684\u8bbe\u5907\u7ba1\u7406\u3002 "),(0,a.yg)("p",null,"\u7269\u8054\u7f51\u8bbe\u5907\u7ba1\u7406\u5e73\u53f0DMP\u5f80\u5f80\u96c6\u6210\u5728\u7aef\u5230\u7aef\u7684\u5168\u5957\u8bbe\u5907\u7ba1\u7406\u89e3\u51b3\u65b9\u6848\u4e2d\uff0c\u8fdb\u884c\u6574\u4f53\u62a5\u4ef7\u6536\u8d39\u3002DMP\u529f\u80fd\u5305\u62ec\u7528\u6237\u7ba1\u7406\u4ee5\u53ca\u7269\u8054\u7f51\u8bbe\u5907\u7ba1\u7406\uff0c\u4f8b\u5982\u914d\u7f6e\u3001\u91cd\u542f\u3001\u5173\u95ed\u3001\u6062\u590d\u51fa\u5382\u3001\u5347\u7ea7/\u56de\u9000\u7b49\uff0c\u8bbe\u5907\u73b0\u573a\u4ea7\u751f\u7684\u6570\u636e\u7684\u67e5\u8be2\uff0c\u4ee5\u53ca\u57fa\u4e8e\u73b0\u573a\u6570\u636e\u7684\u62a5\u8b66\u529f\u80fd\uff0c\u8bbe\u5907\u751f\u547d\u5468\u671f\u7ba1\u7406\u7b49\u3002\u636eIDC\u6570\u636e\u663e\u793a\uff0c2020\u5e74\u5168\u7403\u5c06\u8d85\u8fc7250\u4ebf\u53f0\u8bbe\u5907\u8054\u7f51\u3002"),(0,a.yg)("p",null,"\u8bbe\u5907\u7ba1\u7406\u7684\u6838\u5fc3\u4e0d\u5728\u57fa\u7840\u7684\u8fde\u63a5\u548c\u7684\u7ba1\u7406\u804c\u80fd\uff0c\u800c\u5728\u589e\u503c\u6027\u7684\u7ecf\u8425\u548c\u7ef4\u62a4\u4e1a\u52a1\u4e0a\u3002\u901a\u8fc7\u5927\u91cf\u8bbe\u5907\u7684\u63a5\u5165\u6570\u636e\uff0c\u8bc6\u522b\u51fa\u4e1a\u52a1\u6d41\u7a0b\u7684\u4f18\u5316\u751a\u81f3\u65b0\u7684\u5546\u4e1a\u6a21\u5f0f\uff0c\u5bf9\u8bbe\u5907\u8fdb\u884c\u751f\u547d\u5468\u671f\u7ba1\u7406\u548c\u8fd0\u7ef4\uff0c\u80fd\u591f\u5bf9\u5ba2\u6237\u8d77\u5230\u964d\u672c\u589e\u6548\u7684\u4f5c\u7528\u3002"),(0,a.yg)("p",null,"\u5178\u578b\u7684DMP\u5e73\u53f0\u5305\u62ecBOSCHIoTSuite\u3001IBMWatson\u3001DiGi\u3001\u767e\u5ea6\u4e91\u7269\u63a5\u5165IoTHub\u3001\u4e09\u4e00\u91cd\u5de5\u6839\u4e91\u3001GEPredix\u7b49\u3002\u4ee5\u767e\u5ea6\u4e91\u4e3a\u4f8b\uff0c\u767e\u5ea6\u4e91\u7269\u63a5\u5165IoTHub\u662f\u5efa\u7acb\u5728IaaS\u4e0a\u7684PaaS\u5e73\u53f0\uff0c\u63d0\u4f9b\u5168\u6258\u7ba1\u7684\u4e91\u670d\u52a1\uff0c\u5e2e\u52a9\u5efa\u7acb\u8bbe\u5907\u4e0e\u4e91\u7aef\u4e4b\u95f4\u7684\u53cc\u5411\u8fde\u63a5\uff0c\u652f\u6491\u6d77\u91cf\u8bbe\u5907\u7684\u6570\u636e\u6536\u96c6\u3001\u76d1\u63a7\u3001\u6545\u969c\u9884\u6d4b\u7b49\u5404\u79cd\u7269\u8054\u7f51\u573a\u666f\u3002\u4e00\u4e9b\u5782\u76f4\u9886\u57df\u5de8\u5934\u672c\u8eab\u5c31\u662f\u8bbe\u5907\u63d0\u4f9b\u5546\uff0c\u4e1a\u52a1\u5916\u5ef6\u81f3\u5e73\u53f0\u5c42\u9762\uff0c\u901a\u5e38\u80fd\u591f\u63d0\u4f9b\u6574\u4f53\u89e3\u51b3\u65b9\u6848\uff0c\u90e8\u5206\u80fd\u591f\u96c6\u6210CRM\u3001ERP\u3001MES\u7b49\u4fe1\u606f\u7cfb\u7edf\u3002"),(0,a.yg)("h4",{id:"\u4e09\u5e94\u7528\u4f7f\u80fd\u5e73\u53f0aep"},"\u4e09\u3001\u5e94\u7528\u4f7f\u80fd\u5e73\u53f0AEP"),(0,a.yg)("p",null,"AEP\uff08Application Enablement Platform\uff09\u662f\u4e0a\u5c42\u7684\u4e1a\u52a1\u4f7f\u80fd\u5e73\u53f0\uff0c\u8be5\u903b\u8f91\u5c42\u662f\u7ed3\u5408\u4e86\u4e0a\u5c42\u7684\u5e94\u7528\u573a\u666f\uff0c\u4e3a\u5f00\u53d1\u8005\u63d0\u4f9b\u6210\u5957\u5e94\u7528\u5f00\u53d1\u5de5\u5177\uff08SDK\uff09\u3001\u4e2d\u95f4\u4ef6\u3001\u6570\u636e\u5b58\u50a8\u3001\u4e1a\u52a1\u903b\u8f91\u5f15\u64ce\u3001\u7b2c\u4e09\u65b9API\u63a5\u53e3\u7b49\u529f\u80fd\u3002\u6211\u4eec\u53ef\u5c06\u5176\u7406\u89e3\u4e3a\u7ed3\u5408\u5e94\u7528\u573a\u666f\u7684\u7cfb\u7edf\u5f00\u53d1\u5e73\u53f0\u3002\u968f\u7740\u4f01\u4e1a\u5728\u884c\u4e1a\u4e2d\u5bf9\u4e1a\u52a1\u7ecf\u9a8c\u3001\u6240\u6d89\u53ca\u6280\u672f\u7684\u6301\u7eed\u79ef\u7d2f\uff0c\u5e73\u53f0\u7684\u7ade\u4e89\u529b\u5c06\u9010\u6e10\u4ece\u8fde\u63a5\u80fd\u529b\u8f6c\u79fb\u5230\u5e73\u53f0\u7684\u591a\u573a\u666f\u5316\u7684\u4e1a\u52a1\u80fd\u529b\u3002 "),(0,a.yg)("p",null,"\u5e94\u7528\u4f7f\u80fd\u5e73\u53f0AEP\u662f\u63d0\u4f9b\u5feb\u901f\u5f00\u53d1\u90e8\u7f72\u7269\u8054\u7f51\u5e94\u7528\u670d\u52a1\u7684PaaS\u5e73\u53f0\u3002AEP\u4e3a\u5f00\u53d1\u8005\u63d0\u4f9b\u4e86\u6210\u5957\u5e94\u7528\u5f00\u53d1\u5de5\u5177\u3001\u4e2d\u95f4\u4ef6\u3001\u4e1a\u52a1\u903b\u8f91\u5f15\u64ce\u3001API\u63a5\u53e3\u3001\u5e94\u7528\u670d\u52a1\u5668\u7b49\u5de5\u5177\uff0c\u4ee5\u8282\u7701\u5927\u91cf\u5f00\u53d1\u65f6\u95f4\u548c\u9884\u7b97\u3002"),(0,a.yg)("p",null,"\u7269\u8054\u7f51\u5e02\u573a\u5929\u7136\u788e\u7247\u5316\uff0cAEP\u5e73\u53f0\u5546\u901a\u8fc7\u63d0\u4f9b\u5b8c\u5584\u7684\u5f00\u53d1\u8d44\u6599\u5e93\u3001\u591a\u6837\u5316\u7684\u90e8\u7f72\u65b9\u5f0f\u3001\u4f01\u4e1a\u7ea7SDK\u53ca\u53ef\u62d3\u5c55\u7684\u901a\u7528\u4e2d\u95f4\u4ef6\uff0c\u5927\u5927\u964d\u4f4e\u5f00\u53d1\u95e8\u69db\u3002\u5e94\u7528AEP\u5e73\u53f0\u80fd\u591f\u4f7f\u5e94\u7528\u7684\u5f00\u53d1\u6210\u672c\u5927\u5e45\u964d\u4f4e\uff0c\u5e76\u53ca\u65f6\u63a8\u5411\u5e02\u573a\u62a2\u5360\u5148\u673a\u3002"),(0,a.yg)("p",null,"\u5178\u578b\u7684AEP\u5e73\u53f0\u63d0\u4f9b\u5546\u5305\u62ecPTCThing worx\uff0c\u827e\u62c9\u7269\u8054\uff0c\u673a\u667a\u4e91\uff0cComulo city\uff0cAWS\nIoT\uff0cWatson IoT Platform\u7b49\u3002"),(0,a.yg)("p",null,"\u4ee5\u673a\u667a\u4e91\u4e3a\u4f8b\uff0c\u4e2d\u56fd\u7535\u4fe1\u7684\u767d\u8272\u5bb6\u7535\u884c\u4e1a\u4f7f\u80fd\u5957\u4ef6\u662f\u4e0e\u65e5\u6d77\u7269\u8054\u53ca\u673a\u667a\u4e91\u5408\u4f5c\u5b8c\u6210\u7684\uff0c\u4e3b\u8981\u670d\u52a1\u4e8e\u667a\u80fd\u5bb6\u7535\u884c\u4e1a\uff0c\u5e2e\u52a9\u5ba2\u6237\u8fdb\u884c\u4ea7\u54c1\u5f00\u53d1\u3002\u5957\u4ef6\u63d0\u4f9b\u6570\u636e\u7684\u7ba1\u7406\u3001\u5206\u6790\u3001\u8c03\u53d6\u7684\u6807\u51c6\u5316\u63a5\u53e3\uff0c\u5e94\u7528\u5f00\u53d1\u8005\u53ea\u9700\u8981\u8c03\u7528\u63a5\u53e3\uff0c\u5c31\u80fd\u591f\u5feb\u901f\u8fdb\u884c\u624b\u673aAPP\u6216\u8005\u5e94\u7528\u8f6f\u4ef6\u5e73\u53f0\u7684\u642d\u5efa\u3002\u6700\u7ec8\u7528\u6237\u901a\u8fc7\u624b\u673a\u6216\u8005\u7535\u8111\uff0c\u5c31\u53ef\u4ee5\u8f7b\u677e\u63a7\u5236\u63a7\u5236\u667a\u80fd\u5bb6\u7535\u3002"),(0,a.yg)("h4",{id:"\u56db\u4e1a\u52a1\u5206\u6790\u5e73\u53f0bap"},"\u56db\u3001\u4e1a\u52a1\u5206\u6790\u5e73\u53f0BAP"),(0,a.yg)("p",null,"BAP\uff08Business Analytics Platform\uff09\u53ef\u88ab\u79f0\u4e3a\u4e1a\u52a1\u5206\u6790\u5e73\u53f0\uff0c\u8be5\u903b\u8f91\u5c42\u5305\u542b\u5927\u6570\u636e\u670d\u52a1\u548c\u673a\u5668\u5b66\u4e60\u4e24\u4e2a\u4e3b\u8981\u529f\u80fd\u3002\u5c06\u6c47\u96c6\u5728\u4e91\u5e73\u53f0\u7684\u6570\u636e\u8fdb\u884c\u5206\u6790\u3001\u5904\u7406\uff0c\u5e76\u5c06\u5176\u53ef\u89c6\u5316\u3002\u800c\u673a\u5668\u5b66\u4e60\u662f\u5c06\u6c89\u6dc0\u5728\u5e73\u53f0\u4e0a\u7ed3\u6784\u5316\u548c\u975e\u7ed3\u6784\u5316\u6570\u636e\u8fdb\u884c\u8bad\u7ec3\uff0c\u5f62\u6210\u5177\u6709\u9884\u6d4b\u6027\u7684\u3001\u8ba4\u77e5\u7684\u3001\u6216\u590d\u6742\u7684\u4e1a\u52a1\u5206\u6790\u903b\u8f91\u3002\u800c\u672a\u6765\uff0c\u673a\u5668\u5b66\u4e60\u5fc5\u7136\u5c06\u5411\u4eba\u5de5\u667a\u80fd\u8fc7\u5ea6\u3002\u4ece\u6570\u636e\u7d2f\u8ba1\u91cf\u3001\u4eba\u5de5\u667a\u80fd\u6280\u672f\u7684\u53d1\u5c55\u7a0b\u5ea6\u7b49\u89d2\u5ea6\u8003\u8651\uff0c\u76ee\u524d\u8fd8\u6ca1\u6709\u4f01\u4e1a\u7684\u4e1a\u52a1\u53ef\u4ee5\u8fbe\u5230\u8fd9\u4e00\u5c42\u7ea7\u3002 "),(0,a.yg)("p",null,"\u4e1a\u52a1\u5206\u6790\u5e73\u53f0BAP\u4e3b\u8981\u901a\u8fc7\u5927\u6570\u636e\u5206\u6790\u548c\u673a\u5668\u5b66\u4e60\u7b49\u65b9\u6cd5\uff0c\u5bf9\u6570\u636e\u8fdb\u884c\u6df1\u5ea6\u89e3\u6790\uff0c\u4ee5\u56fe\u8868\u3001\u6570\u636e\u62a5\u544a\u7b49\u65b9\u5f0f\u8fdb\u884c\u53ef\u89c6\u5316\u5c55\u793a\uff0c\u5e76\u5e94\u7528\u4e8e\u5782\u76f4\u884c\u4e1a\u3002\u7269\u8054\u7f51\u5e94\u7528\u53ef\u4ee5\u901a\u8fc7\u5bf9BAP\u6a21\u5757\u7684\u8c03\u7528\u6765\u5efa\u7acb\u6a21\u578b\uff0c\u8fdb\u884c\u4e1a\u52a1\u53d1\u5c55\u9884\u6d4b\u5206\u6790\u53ca\u8bbe\u5907\u7684\u9884\u9632\u6027\u7ef4\u62a4\u7b49\u3002\u7531\u4e8e\u4eba\u5de5\u667a\u80fd\u6280\u672f\u53ca\u6570\u636e\u611f\u77e5\u5c42\u642d\u5efa\u7684\u8fdb\u5ea6\u9650\u5236\uff0c\u76ee\u524dBAP\u5e73\u53f0\u53d1\u5c55\u4ecd\u672a\u6210\u719f\u3002"))}s.isMDXComponent=!0},934:(e,t,n)=>{n.d(t,{A:()=>r});const r=n.p+"assets/images/1-4f28922b895ce23e1002dcd20b1e670f.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8816],{5680:(e,t,n)=>{n.d(t,{xA:()=>P,yg:()=>d});var r=n(6540);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var p=r.createContext({}),c=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},P=function(e){var t=c(e.components);return r.createElement(p.Provider,{value:t},e.children)},u="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,l=e.originalType,p=e.parentName,P=i(e,["components","mdxType","originalType","parentName"]),u=c(n),y=a,d=u["".concat(p,".").concat(y)]||u[y]||s[y]||l;return n?r.createElement(d,o(o({ref:t},P),{},{components:n})):r.createElement(d,o({ref:t},P))}));function d(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=n.length,o=new Array(l);o[0]=y;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[u]="string"==typeof e?e:a,o[1]=i;for(var c=2;c{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>s,frontMatter:()=>l,metadata:()=>i,toc:()=>c});var r=n(8168),a=(n(6540),n(5680));const l={},o=void 0,i={unversionedId:"study/competitive/CMP-DMP-AEP-BAP",id:"study/competitive/CMP-DMP-AEP-BAP",title:"CMP-DMP-AEP-BAP",description:"\u7b80\u8ff0",source:"@site/docs/study/competitive/CMP-DMP-AEP-BAP.md",sourceDirName:"study/competitive",slug:"/study/competitive/CMP-DMP-AEP-BAP",permalink:"/docs/study/competitive/CMP-DMP-AEP-BAP",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u5de5\u4e1a\u4e92\u8054\u7f51\u63a2\u7a76",permalink:"/docs/study/competitive/\u5de5\u4e1a\u4e92\u8054\u7f51\u63a2\u7a76"},next:{title:"TP-LINK",permalink:"/docs/study/competitive/TP-LINK"}},p={},c=[{value:"\u7b80\u8ff0",id:"\u7b80\u8ff0",level:4},{value:"\u4e00\u3001\u8fde\u63a5\u7ba1\u7406\u5e73\u53f0CMP",id:"\u4e00\u8fde\u63a5\u7ba1\u7406\u5e73\u53f0cmp",level:4},{value:"\u4e8c\u3001\u8bbe\u5907\u7ba1\u7406\u5e73\u53f0DMP",id:"\u4e8c\u8bbe\u5907\u7ba1\u7406\u5e73\u53f0dmp",level:4},{value:"\u4e09\u3001\u5e94\u7528\u4f7f\u80fd\u5e73\u53f0AEP",id:"\u4e09\u5e94\u7528\u4f7f\u80fd\u5e73\u53f0aep",level:4},{value:"\u56db\u3001\u4e1a\u52a1\u5206\u6790\u5e73\u53f0BAP",id:"\u56db\u4e1a\u52a1\u5206\u6790\u5e73\u53f0bap",level:4}],P={toc:c},u="wrapper";function s(e){let{components:t,...l}=e;return(0,a.yg)(u,(0,r.A)({},P,l,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h4",{id:"\u7b80\u8ff0"},"\u7b80\u8ff0"),(0,a.yg)("p",null,"\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u5904\u4e8e\u7269\u8054\u7f51\u56db\u4e2a\u903b\u8f91\u5c42\uff08\u611f\u77e5\u5c42\u3001\u7f51\u7edc\u5c42\u3001\u5e73\u53f0\u5c42\u3001\u5e94\u7528\u5c42\uff09\u4e2d\u5904\u4e8e\u5e73\u53f0\u5c42\u8fd9\u4e00\u73af\uff0c\u5e73\u53f0\u5c42\u4e8e\u7269\u8054\u7f51\u7684\u4f5c\u7528\u5728\u4e8e\u6536\u96c6\u3001\u5904\u7406\u6570\u636e\u7b49\u3002\u6211\u4eec\u53ef\u6839\u636e\u4e91\u5e73\u53f0\u7684\u529f\u80fd\u5c06\u5176\u5206\u4e3aCMP\u3001DMP\u3001AEP\u548cBAP\u7b49\u56db\u4e2a\u5e73\u53f0\u3002\u5230\u76ee\u524d\u4e3a\u6b62\u8fd8\u6ca1\u6709\u4e00\u5bb6\u516c\u53f8\u53ef\u5728\u4e1a\u52a1\u4e0a\u6db5\u76d6\u56db\u4e2a\u5b50\u5e73\u53f0\uff0c\u6bcf\u4e2a\u516c\u53f8\u6709\u5404\u81ea\u64c5\u957f\u9886\u57df \u548c\u72ec\u7279\u4f18\u52bf\u3002"),(0,a.yg)("p",null,"\u6839\u636e\u5404\u7c7b\u53c2\u4e0e\u8005\u6240\u63d0\u4f9b\u7684\u670d\u52a1\u7c7b\u578b\uff0c\u6309\u7167Machina Research\u7684\u5206\u7c7b\u65b9\u6cd5\uff0c\u7269\u8054\u7f51\u5e73\u53f0\u53ef\u5206\u4e3a\u8fde\u63a5\u7ba1\u7406\u5e73\u53f0CMP\uff08Connectivity Management Platform\uff09\u3001\u8bbe\u5907\u7ba1\u7406\u5e73\u53f0DMP\uff08Device Management Platform\uff09\u3001\u5e94\u7528\u4f7f\u80fd\u5e73\u53f0AEP\uff08Application Enablement Platform\uff09\u548c\u4e1a\u52a1\u5206\u6790\u5e73\u53f0BAP\uff08Business Analytics Platform\uff09\u3002"),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"image.png",src:n(934).A,width:"746",height:"452"})),(0,a.yg)("h4",{id:"\u4e00\u8fde\u63a5\u7ba1\u7406\u5e73\u53f0cmp"},"\u4e00\u3001\u8fde\u63a5\u7ba1\u7406\u5e73\u53f0CMP"),(0,a.yg)("p",null,"CMP\uff08Connectivity Management Platform\uff09\u4e3a\u8fde\u63a5\u7ba1\u7406\u5e73\u53f0\u3002\u4e00\u822c\u8fd0\u7528\u4e8e\u8fd0\u8425\u5546\u7f51\u7edc\u4e0a\uff0c\u5177\u4f53\u6765\u8bf4\u8fde\u63a5\u7684\u7269\u8054\u7f51SIM\u5361\u3002\u8be5\u5e73\u53f0\u53ef\u4ee5\u5b9e\u73b0\u5bf9\u7269\u8054\u7f51\u8fde\u63a5\u914d\u7f6e\u548c\u6545\u969c\u7ba1\u7406\u3001\u4fdd\u8bc1\u7ec8\u7aef\u8054\u7f51\u901a\u9053\u7a33\u5b9a\u3001\u7f51\u7edc\u8d44\u6e90\u7528\u91cf\u7ba1\u7406\u3001\u8fde\u63a5\u8d44\u8d39\u7ba1\u7406\u3001\u8d26\u5355\u7ba1\u7406\u3001\u5957\u9910\u53d8\u66f4\u7b49\u3002"),(0,a.yg)("p",null,"\u8fde\u63a5\u7ba1\u7406\u5e73\u53f0\u901a\u5e38\u6307\u57fa\u4e8e\u7535\u4fe1\u8fd0\u8425\u5546\u7f51\u7edc\uff08\u8702\u7a9d\uff0cLTE\u7b49\uff09\u63d0\u4f9b\u53ef\u8fde\u63a5\u6027\u7ba1\u7406\u3001\u4f18\u5316\u4ee5\u53ca\u7ec8\u7aef\u7ba1\u7406\uff0c\u7ef4\u62a4\u7b49\u65b9\u9762\u7684\u529f\u80fd\u7684\u5e73\u53f0\u3002\u5176\u529f\u80fd\u901a\u5e38\u5305\u62ec\u53f7\u7801/IP\u5730\u5740/Mac\u8d44\u6e90\u7ba1\u7406\u3001SIM\u5361\u7ba1\u63a7\u3001\u8fde\u63a5\u8d44\u8d39\u7ba1\u7406\u3001\u5957\u9910\u7ba1\u7406\u3001\u7f51\u7edc\u8d44\u6e90\u7528\u91cf\u7ba1\u7406\u3001\u8d26\u5355\u7ba1\u7406\u3001\u6545\u969c\u7ba1\u7406\u7b49\u3002\u7269\u8054\u7f51\u8fde\u63a5\u5177\u5907M2M\u8fde\u63a5\u6570\u5927\u3001\u5355\u4e2a\u7269\u54c1\u8fde\u63a5ARPU\u503c\u4f4e\uff08\u4eba\u7c7b\u8fde\u63a5\u5ba2\u6237ARPU\u503c\u76843%-5%\uff09\u7684\u7279\u70b9\uff0c\u76f4\u63a5\u7ed3\u679c\u5c31\u662f\u591a\u6570\u8fd0\u8425\u5546\u5c06\u653e\u5f03\u81ea\u5efaCMP\u5e73\u53f0\uff0c\u8f6c\u4e0e\u4e13\u95e8\u5316\u7684CMP\u5e73\u53f0\u4f9b\u5e94\u5546\u5408\u4f5c\u3002\u6839\u636e\u7269\u8054\u7f51\u667a\u5e93\u7684\u5206\u6790\uff0c\u5bf9\u4e8e\u62e5\u6709\u8d85\u8fc71000\u4e2a\u8fde\u63a5\u7684\u4f01\u4e1a\uff0c\u957f\u671f\u6765\u770b\uff0c\u4f7f\u7528\u4e91\u5e73\u53f0\u6bd4\u81ea\u5efaIT\u8bbe\u65bd\u5c06\u8282\u770190%\u7684\u6210\u672c\u3002\u53e6\u5916\uff0c\u5f88\u591a\u7269\u8054\u7f51\u5ba2\u6237\u90fd\u662f\u8de8\u56fd\u4f01\u4e1a\uff0c\u9009\u62e9\u8fd0\u8425\u5546\u65f6\u66f4\u9752\u7750\u4e00\u70b9\u63a5\u5165\u5168\u7403\u901a\u7528\uff0c\u56e0\u6b64\u5168\u7403\u5316\u7684\u9f99\u5934CMP\u4f01\u4e1a\u4f18\u52bf\u663e\u8457\u3002"),(0,a.yg)("p",null,"\u5178\u578b\u7684\u8fde\u63a5\u7ba1\u7406\u5e73\u53f0\u5305\u62ec\u601d\u79d1\u7684Jasper\u5e73\u53f0\u3001\u7231\u7acb\u4fe1\u7684DCP\u3001\u6c83\u8fbe\u4e30\u7684GDSP\uff0cTelit\u7684M2M\u5e73\u53f0\u3001PTC\u7684Thingworx\u548cAxeda\u3002\u76ee\u524d\u5168\u7403\u5316\u7684CMP\u4e3b\u8981\u6709\u4e09\u5bb6\uff1aJasper\u5e73\u53f0\u3001\u7231\u7acb\u4fe1DCP\u5e73\u53f0\u548c\u6c83\u8fbe\u4e30GDSP\u5e73\u53f0\uff0c\u5176\u4e2dJasper\u6700\u5927\uff0c\u4e0e\u5168\u7403\u8d85\u8fc7100\u5bb6\u8fd0\u8425\u5546\u30013500\u5bb6\u4f01\u4e1a\u5ba2\u6237\u5c55\u5f00\u5408\u4f5c\uff0c\u56fd\u5185\u7684\u4e2d\u56fd\u8054\u901a\u4e5f\u901a\u8fc7\u5b9c\u901a\u4e16\u7eaa\u4e0eJasper\u5e73\u53f0\u8fdb\u884c\u5408\u4f5c\u3002"),(0,a.yg)("p",null,"\u5728\u56fd\u5185\u4e09\u5927\u8fd0\u8425\u5546\u4e2d\uff0c\u4e2d\u56fd\u79fb\u52a8\u9009\u62e9\u81ea\u7814One NET\u8fde\u63a5\u7ba1\u7406\u5e73\u53f0\uff0c\u4e2d\u56fd\u8054\u901a\u4e0eJasper\u6218\u7565\u5408\u4f5c\uff0c\u9009\u62e9\u5176Control\u5e73\u53f0\u63d0\u4f9b\u7269\u8054\u7f51\u8fde\u63a5\u670d\u52a1\uff1b\u4e2d\u56fd\u7535\u4fe1\u4e5f\u5148\u540e\u81ea\u7814\u53ca\u4e0e\u7231\u7acb\u4fe1\u5408\u4f5c\u5efa\u7acb\u4e24\u5957\u8fde\u63a5\u7ba1\u7406\u5e73\u53f0\u3002"),(0,a.yg)("h4",{id:"\u4e8c\u8bbe\u5907\u7ba1\u7406\u5e73\u53f0dmp"},"\u4e8c\u3001\u8bbe\u5907\u7ba1\u7406\u5e73\u53f0DMP"),(0,a.yg)("p",null,"DMP\uff08Device Management Platform\uff09\u662f\u8bbe\u5907\u7ba1\u7406\u5e73\u53f0\u3002\u4e3b\u8981\u5bf9\u7269\u8054\u7f51\u7ec8\u7aef\u8fdb\u884c\u8fdc\u7a0b\u76d1\u63a7\u3001\u8bbe\u7f6e\u8c03\u6574 \u3001\u8f6f\u4ef6\u5347\u7ea7\u3001\u6545\u969c\u6392\u67e5\u7b49\u4e00\u7cfb\u5217\u7b49\u529f\u80fd\u3002\u5e76\u901a\u8fc7\u63d0\u4f9b\u5f00\u653e\u7684API\u8c03\u7528\u63a5\u53e3\u5e2e\u52a9\u5ba2\u6237\u8fdb\u884c\u7cfb\u7edf\u7684\u96c6\u6210\u5728\u6574\u5957\u7aef\u5230\u7aefM2M\u8bbe\u5907\u7ba1\u7406\u89e3\u51b3\u65b9\u6848\u4e2d\uff0c\u6574\u4f53\u62a5\u4ef7\u6536\u8d39\u3002\u53ef\u4ee5\u8ba4\u4e3aDMP\u4e3b\u8981\u9762\u5411\u8bbe\u5907\u7684\u5f00\u3001\u5173\u3001\u505c\u7b49\u57fa\u672c\u72b6\u6001\u7684\u63a7\u5236\uff0c\u6216\u5b9e\u65f6\u7684\u7269\u8054\u7f51\u8bbe\u5907\u8b66\u544a\u7b49\u4e0d\u6d89\u53ca\u7269\u8054\u7f51\u4e0a\u5c42\u5e94\u7528\u573a\u666f\u7684\u8bbe\u5907\u7ba1\u7406\u3002 "),(0,a.yg)("p",null,"\u7269\u8054\u7f51\u8bbe\u5907\u7ba1\u7406\u5e73\u53f0DMP\u5f80\u5f80\u96c6\u6210\u5728\u7aef\u5230\u7aef\u7684\u5168\u5957\u8bbe\u5907\u7ba1\u7406\u89e3\u51b3\u65b9\u6848\u4e2d\uff0c\u8fdb\u884c\u6574\u4f53\u62a5\u4ef7\u6536\u8d39\u3002DMP\u529f\u80fd\u5305\u62ec\u7528\u6237\u7ba1\u7406\u4ee5\u53ca\u7269\u8054\u7f51\u8bbe\u5907\u7ba1\u7406\uff0c\u4f8b\u5982\u914d\u7f6e\u3001\u91cd\u542f\u3001\u5173\u95ed\u3001\u6062\u590d\u51fa\u5382\u3001\u5347\u7ea7/\u56de\u9000\u7b49\uff0c\u8bbe\u5907\u73b0\u573a\u4ea7\u751f\u7684\u6570\u636e\u7684\u67e5\u8be2\uff0c\u4ee5\u53ca\u57fa\u4e8e\u73b0\u573a\u6570\u636e\u7684\u62a5\u8b66\u529f\u80fd\uff0c\u8bbe\u5907\u751f\u547d\u5468\u671f\u7ba1\u7406\u7b49\u3002\u636eIDC\u6570\u636e\u663e\u793a\uff0c2020\u5e74\u5168\u7403\u5c06\u8d85\u8fc7250\u4ebf\u53f0\u8bbe\u5907\u8054\u7f51\u3002"),(0,a.yg)("p",null,"\u8bbe\u5907\u7ba1\u7406\u7684\u6838\u5fc3\u4e0d\u5728\u57fa\u7840\u7684\u8fde\u63a5\u548c\u7684\u7ba1\u7406\u804c\u80fd\uff0c\u800c\u5728\u589e\u503c\u6027\u7684\u7ecf\u8425\u548c\u7ef4\u62a4\u4e1a\u52a1\u4e0a\u3002\u901a\u8fc7\u5927\u91cf\u8bbe\u5907\u7684\u63a5\u5165\u6570\u636e\uff0c\u8bc6\u522b\u51fa\u4e1a\u52a1\u6d41\u7a0b\u7684\u4f18\u5316\u751a\u81f3\u65b0\u7684\u5546\u4e1a\u6a21\u5f0f\uff0c\u5bf9\u8bbe\u5907\u8fdb\u884c\u751f\u547d\u5468\u671f\u7ba1\u7406\u548c\u8fd0\u7ef4\uff0c\u80fd\u591f\u5bf9\u5ba2\u6237\u8d77\u5230\u964d\u672c\u589e\u6548\u7684\u4f5c\u7528\u3002"),(0,a.yg)("p",null,"\u5178\u578b\u7684DMP\u5e73\u53f0\u5305\u62ecBOSCHIoTSuite\u3001IBMWatson\u3001DiGi\u3001\u767e\u5ea6\u4e91\u7269\u63a5\u5165IoTHub\u3001\u4e09\u4e00\u91cd\u5de5\u6839\u4e91\u3001GEPredix\u7b49\u3002\u4ee5\u767e\u5ea6\u4e91\u4e3a\u4f8b\uff0c\u767e\u5ea6\u4e91\u7269\u63a5\u5165IoTHub\u662f\u5efa\u7acb\u5728IaaS\u4e0a\u7684PaaS\u5e73\u53f0\uff0c\u63d0\u4f9b\u5168\u6258\u7ba1\u7684\u4e91\u670d\u52a1\uff0c\u5e2e\u52a9\u5efa\u7acb\u8bbe\u5907\u4e0e\u4e91\u7aef\u4e4b\u95f4\u7684\u53cc\u5411\u8fde\u63a5\uff0c\u652f\u6491\u6d77\u91cf\u8bbe\u5907\u7684\u6570\u636e\u6536\u96c6\u3001\u76d1\u63a7\u3001\u6545\u969c\u9884\u6d4b\u7b49\u5404\u79cd\u7269\u8054\u7f51\u573a\u666f\u3002\u4e00\u4e9b\u5782\u76f4\u9886\u57df\u5de8\u5934\u672c\u8eab\u5c31\u662f\u8bbe\u5907\u63d0\u4f9b\u5546\uff0c\u4e1a\u52a1\u5916\u5ef6\u81f3\u5e73\u53f0\u5c42\u9762\uff0c\u901a\u5e38\u80fd\u591f\u63d0\u4f9b\u6574\u4f53\u89e3\u51b3\u65b9\u6848\uff0c\u90e8\u5206\u80fd\u591f\u96c6\u6210CRM\u3001ERP\u3001MES\u7b49\u4fe1\u606f\u7cfb\u7edf\u3002"),(0,a.yg)("h4",{id:"\u4e09\u5e94\u7528\u4f7f\u80fd\u5e73\u53f0aep"},"\u4e09\u3001\u5e94\u7528\u4f7f\u80fd\u5e73\u53f0AEP"),(0,a.yg)("p",null,"AEP\uff08Application Enablement Platform\uff09\u662f\u4e0a\u5c42\u7684\u4e1a\u52a1\u4f7f\u80fd\u5e73\u53f0\uff0c\u8be5\u903b\u8f91\u5c42\u662f\u7ed3\u5408\u4e86\u4e0a\u5c42\u7684\u5e94\u7528\u573a\u666f\uff0c\u4e3a\u5f00\u53d1\u8005\u63d0\u4f9b\u6210\u5957\u5e94\u7528\u5f00\u53d1\u5de5\u5177\uff08SDK\uff09\u3001\u4e2d\u95f4\u4ef6\u3001\u6570\u636e\u5b58\u50a8\u3001\u4e1a\u52a1\u903b\u8f91\u5f15\u64ce\u3001\u7b2c\u4e09\u65b9API\u63a5\u53e3\u7b49\u529f\u80fd\u3002\u6211\u4eec\u53ef\u5c06\u5176\u7406\u89e3\u4e3a\u7ed3\u5408\u5e94\u7528\u573a\u666f\u7684\u7cfb\u7edf\u5f00\u53d1\u5e73\u53f0\u3002\u968f\u7740\u4f01\u4e1a\u5728\u884c\u4e1a\u4e2d\u5bf9\u4e1a\u52a1\u7ecf\u9a8c\u3001\u6240\u6d89\u53ca\u6280\u672f\u7684\u6301\u7eed\u79ef\u7d2f\uff0c\u5e73\u53f0\u7684\u7ade\u4e89\u529b\u5c06\u9010\u6e10\u4ece\u8fde\u63a5\u80fd\u529b\u8f6c\u79fb\u5230\u5e73\u53f0\u7684\u591a\u573a\u666f\u5316\u7684\u4e1a\u52a1\u80fd\u529b\u3002 "),(0,a.yg)("p",null,"\u5e94\u7528\u4f7f\u80fd\u5e73\u53f0AEP\u662f\u63d0\u4f9b\u5feb\u901f\u5f00\u53d1\u90e8\u7f72\u7269\u8054\u7f51\u5e94\u7528\u670d\u52a1\u7684PaaS\u5e73\u53f0\u3002AEP\u4e3a\u5f00\u53d1\u8005\u63d0\u4f9b\u4e86\u6210\u5957\u5e94\u7528\u5f00\u53d1\u5de5\u5177\u3001\u4e2d\u95f4\u4ef6\u3001\u4e1a\u52a1\u903b\u8f91\u5f15\u64ce\u3001API\u63a5\u53e3\u3001\u5e94\u7528\u670d\u52a1\u5668\u7b49\u5de5\u5177\uff0c\u4ee5\u8282\u7701\u5927\u91cf\u5f00\u53d1\u65f6\u95f4\u548c\u9884\u7b97\u3002"),(0,a.yg)("p",null,"\u7269\u8054\u7f51\u5e02\u573a\u5929\u7136\u788e\u7247\u5316\uff0cAEP\u5e73\u53f0\u5546\u901a\u8fc7\u63d0\u4f9b\u5b8c\u5584\u7684\u5f00\u53d1\u8d44\u6599\u5e93\u3001\u591a\u6837\u5316\u7684\u90e8\u7f72\u65b9\u5f0f\u3001\u4f01\u4e1a\u7ea7SDK\u53ca\u53ef\u62d3\u5c55\u7684\u901a\u7528\u4e2d\u95f4\u4ef6\uff0c\u5927\u5927\u964d\u4f4e\u5f00\u53d1\u95e8\u69db\u3002\u5e94\u7528AEP\u5e73\u53f0\u80fd\u591f\u4f7f\u5e94\u7528\u7684\u5f00\u53d1\u6210\u672c\u5927\u5e45\u964d\u4f4e\uff0c\u5e76\u53ca\u65f6\u63a8\u5411\u5e02\u573a\u62a2\u5360\u5148\u673a\u3002"),(0,a.yg)("p",null,"\u5178\u578b\u7684AEP\u5e73\u53f0\u63d0\u4f9b\u5546\u5305\u62ecPTCThing worx\uff0c\u827e\u62c9\u7269\u8054\uff0c\u673a\u667a\u4e91\uff0cComulo city\uff0cAWS\nIoT\uff0cWatson IoT Platform\u7b49\u3002"),(0,a.yg)("p",null,"\u4ee5\u673a\u667a\u4e91\u4e3a\u4f8b\uff0c\u4e2d\u56fd\u7535\u4fe1\u7684\u767d\u8272\u5bb6\u7535\u884c\u4e1a\u4f7f\u80fd\u5957\u4ef6\u662f\u4e0e\u65e5\u6d77\u7269\u8054\u53ca\u673a\u667a\u4e91\u5408\u4f5c\u5b8c\u6210\u7684\uff0c\u4e3b\u8981\u670d\u52a1\u4e8e\u667a\u80fd\u5bb6\u7535\u884c\u4e1a\uff0c\u5e2e\u52a9\u5ba2\u6237\u8fdb\u884c\u4ea7\u54c1\u5f00\u53d1\u3002\u5957\u4ef6\u63d0\u4f9b\u6570\u636e\u7684\u7ba1\u7406\u3001\u5206\u6790\u3001\u8c03\u53d6\u7684\u6807\u51c6\u5316\u63a5\u53e3\uff0c\u5e94\u7528\u5f00\u53d1\u8005\u53ea\u9700\u8981\u8c03\u7528\u63a5\u53e3\uff0c\u5c31\u80fd\u591f\u5feb\u901f\u8fdb\u884c\u624b\u673aAPP\u6216\u8005\u5e94\u7528\u8f6f\u4ef6\u5e73\u53f0\u7684\u642d\u5efa\u3002\u6700\u7ec8\u7528\u6237\u901a\u8fc7\u624b\u673a\u6216\u8005\u7535\u8111\uff0c\u5c31\u53ef\u4ee5\u8f7b\u677e\u63a7\u5236\u63a7\u5236\u667a\u80fd\u5bb6\u7535\u3002"),(0,a.yg)("h4",{id:"\u56db\u4e1a\u52a1\u5206\u6790\u5e73\u53f0bap"},"\u56db\u3001\u4e1a\u52a1\u5206\u6790\u5e73\u53f0BAP"),(0,a.yg)("p",null,"BAP\uff08Business Analytics Platform\uff09\u53ef\u88ab\u79f0\u4e3a\u4e1a\u52a1\u5206\u6790\u5e73\u53f0\uff0c\u8be5\u903b\u8f91\u5c42\u5305\u542b\u5927\u6570\u636e\u670d\u52a1\u548c\u673a\u5668\u5b66\u4e60\u4e24\u4e2a\u4e3b\u8981\u529f\u80fd\u3002\u5c06\u6c47\u96c6\u5728\u4e91\u5e73\u53f0\u7684\u6570\u636e\u8fdb\u884c\u5206\u6790\u3001\u5904\u7406\uff0c\u5e76\u5c06\u5176\u53ef\u89c6\u5316\u3002\u800c\u673a\u5668\u5b66\u4e60\u662f\u5c06\u6c89\u6dc0\u5728\u5e73\u53f0\u4e0a\u7ed3\u6784\u5316\u548c\u975e\u7ed3\u6784\u5316\u6570\u636e\u8fdb\u884c\u8bad\u7ec3\uff0c\u5f62\u6210\u5177\u6709\u9884\u6d4b\u6027\u7684\u3001\u8ba4\u77e5\u7684\u3001\u6216\u590d\u6742\u7684\u4e1a\u52a1\u5206\u6790\u903b\u8f91\u3002\u800c\u672a\u6765\uff0c\u673a\u5668\u5b66\u4e60\u5fc5\u7136\u5c06\u5411\u4eba\u5de5\u667a\u80fd\u8fc7\u5ea6\u3002\u4ece\u6570\u636e\u7d2f\u8ba1\u91cf\u3001\u4eba\u5de5\u667a\u80fd\u6280\u672f\u7684\u53d1\u5c55\u7a0b\u5ea6\u7b49\u89d2\u5ea6\u8003\u8651\uff0c\u76ee\u524d\u8fd8\u6ca1\u6709\u4f01\u4e1a\u7684\u4e1a\u52a1\u53ef\u4ee5\u8fbe\u5230\u8fd9\u4e00\u5c42\u7ea7\u3002 "),(0,a.yg)("p",null,"\u4e1a\u52a1\u5206\u6790\u5e73\u53f0BAP\u4e3b\u8981\u901a\u8fc7\u5927\u6570\u636e\u5206\u6790\u548c\u673a\u5668\u5b66\u4e60\u7b49\u65b9\u6cd5\uff0c\u5bf9\u6570\u636e\u8fdb\u884c\u6df1\u5ea6\u89e3\u6790\uff0c\u4ee5\u56fe\u8868\u3001\u6570\u636e\u62a5\u544a\u7b49\u65b9\u5f0f\u8fdb\u884c\u53ef\u89c6\u5316\u5c55\u793a\uff0c\u5e76\u5e94\u7528\u4e8e\u5782\u76f4\u884c\u4e1a\u3002\u7269\u8054\u7f51\u5e94\u7528\u53ef\u4ee5\u901a\u8fc7\u5bf9BAP\u6a21\u5757\u7684\u8c03\u7528\u6765\u5efa\u7acb\u6a21\u578b\uff0c\u8fdb\u884c\u4e1a\u52a1\u53d1\u5c55\u9884\u6d4b\u5206\u6790\u53ca\u8bbe\u5907\u7684\u9884\u9632\u6027\u7ef4\u62a4\u7b49\u3002\u7531\u4e8e\u4eba\u5de5\u667a\u80fd\u6280\u672f\u53ca\u6570\u636e\u611f\u77e5\u5c42\u642d\u5efa\u7684\u8fdb\u5ea6\u9650\u5236\uff0c\u76ee\u524dBAP\u5e73\u53f0\u53d1\u5c55\u4ecd\u672a\u6210\u719f\u3002"))}s.isMDXComponent=!0},934:(e,t,n)=>{n.d(t,{A:()=>r});const r=n.p+"assets/images/1-4f28922b895ce23e1002dcd20b1e670f.png"}}]); \ No newline at end of file diff --git a/assets/js/c50996a1.630fa230.js b/assets/js/c50996a1.7a64c4d0.js similarity index 98% rename from assets/js/c50996a1.630fa230.js rename to assets/js/c50996a1.7a64c4d0.js index 521f9fc78..6c9779b0f 100644 --- a/assets/js/c50996a1.630fa230.js +++ b/assets/js/c50996a1.7a64c4d0.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9826],{5680:(e,t,r)=>{r.d(t,{xA:()=>i,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},i=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},d="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,i=u(e,["components","mdxType","originalType","parentName"]),d=p(r),f=o,y=d["".concat(l,".").concat(f)]||d[f]||s[f]||a;return r?n.createElement(y,c(c({ref:t},i),{},{components:r})):n.createElement(y,c({ref:t},i))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=f;var u={};for(var l in t)hasOwnProperty.call(t,l)&&(u[l]=t[l]);u.originalType=e,u[d]="string"==typeof e?e:o,c[1]=u;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>s,frontMatter:()=>a,metadata:()=>u,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,u={unversionedId:"study/net/MacOS\u7f16\u8bd1OpenVPN",id:"study/net/MacOS\u7f16\u8bd1OpenVPN",title:"MacOS\u7f16\u8bd1OpenVPN",description:"cmake -DUNSUPPORTED_BUILDS=true ./",source:"@site/docs/study/net/MacOS\u7f16\u8bd1OpenVPN.md",sourceDirName:"study/net",slug:"/study/net/MacOS\u7f16\u8bd1OpenVPN",permalink:"/docs/study/net/MacOS\u7f16\u8bd1OpenVPN",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"IPV6",permalink:"/docs/study/net/IPV6"},next:{title:"OpenVPN",permalink:"/docs/study/net/OpenVPN"}},l={},p=[{value:"cmake -DUNSUPPORTED_BUILDS=true ./",id:"cmake--dunsupported_buildstrue-",level:3},{value:"\u62a5\u9519\uff1aNone of the required 'cmocka' found",id:"\u62a5\u9519none-of-the-required-cmocka-found",level:3},{value:"\u62a5\u9519\uff1aNone of the required 'libpkcs11-helper-1' found",id:"\u62a5\u9519none-of-the-required-libpkcs11-helper-1-found",level:3}],i={toc:p},d="wrapper";function s(e){let{components:t,...r}=e;return(0,o.yg)(d,(0,n.A)({},i,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"cmake--dunsupported_buildstrue-"},"cmake -DUNSUPPORTED_BUILDS=true ./"),(0,o.yg)("p",null,"\u6267\u884c cmake"),(0,o.yg)("h3",{id:"\u62a5\u9519none-of-the-required-cmocka-found"},"\u62a5\u9519\uff1aNone of the required 'cmocka' found"),(0,o.yg)("p",null,"\u89e3\u51b3\uff1a"),(0,o.yg)("p",null,(0,o.yg)("a",{parentName:"p",href:"https://cmocka.org/"},"https://cmocka.org/")),(0,o.yg)("p",null,"brew install cmocka"),(0,o.yg)("h3",{id:"\u62a5\u9519none-of-the-required-libpkcs11-helper-1-found"},"\u62a5\u9519\uff1aNone of the required 'libpkcs11-helper-1' found"),(0,o.yg)("p",null,"\u89e3\u51b3\uff1a"),(0,o.yg)("p",null,"brew install pkcs11-helper"))}s.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9826],{5680:(e,t,r)=>{r.d(t,{xA:()=>i,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},i=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},d="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,i=u(e,["components","mdxType","originalType","parentName"]),d=p(r),f=o,y=d["".concat(l,".").concat(f)]||d[f]||s[f]||a;return r?n.createElement(y,c(c({ref:t},i),{},{components:r})):n.createElement(y,c({ref:t},i))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=f;var u={};for(var l in t)hasOwnProperty.call(t,l)&&(u[l]=t[l]);u.originalType=e,u[d]="string"==typeof e?e:o,c[1]=u;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>s,frontMatter:()=>a,metadata:()=>u,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,u={unversionedId:"study/net/MacOS\u7f16\u8bd1OpenVPN",id:"study/net/MacOS\u7f16\u8bd1OpenVPN",title:"MacOS\u7f16\u8bd1OpenVPN",description:"cmake -DUNSUPPORTED_BUILDS=true ./",source:"@site/docs/study/net/MacOS\u7f16\u8bd1OpenVPN.md",sourceDirName:"study/net",slug:"/study/net/MacOS\u7f16\u8bd1OpenVPN",permalink:"/docs/study/net/MacOS\u7f16\u8bd1OpenVPN",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"IPV6",permalink:"/docs/study/net/IPV6"},next:{title:"OpenVPN",permalink:"/docs/study/net/OpenVPN"}},l={},p=[{value:"cmake -DUNSUPPORTED_BUILDS=true ./",id:"cmake--dunsupported_buildstrue-",level:3},{value:"\u62a5\u9519\uff1aNone of the required 'cmocka' found",id:"\u62a5\u9519none-of-the-required-cmocka-found",level:3},{value:"\u62a5\u9519\uff1aNone of the required 'libpkcs11-helper-1' found",id:"\u62a5\u9519none-of-the-required-libpkcs11-helper-1-found",level:3}],i={toc:p},d="wrapper";function s(e){let{components:t,...r}=e;return(0,o.yg)(d,(0,n.A)({},i,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"cmake--dunsupported_buildstrue-"},"cmake -DUNSUPPORTED_BUILDS=true ./"),(0,o.yg)("p",null,"\u6267\u884c cmake"),(0,o.yg)("h3",{id:"\u62a5\u9519none-of-the-required-cmocka-found"},"\u62a5\u9519\uff1aNone of the required 'cmocka' found"),(0,o.yg)("p",null,"\u89e3\u51b3\uff1a"),(0,o.yg)("p",null,(0,o.yg)("a",{parentName:"p",href:"https://cmocka.org/"},"https://cmocka.org/")),(0,o.yg)("p",null,"brew install cmocka"),(0,o.yg)("h3",{id:"\u62a5\u9519none-of-the-required-libpkcs11-helper-1-found"},"\u62a5\u9519\uff1aNone of the required 'libpkcs11-helper-1' found"),(0,o.yg)("p",null,"\u89e3\u51b3\uff1a"),(0,o.yg)("p",null,"brew install pkcs11-helper"))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c624ce3c.5e1c80bc.js b/assets/js/c624ce3c.20559fe0.js similarity index 98% rename from assets/js/c624ce3c.5e1c80bc.js rename to assets/js/c624ce3c.20559fe0.js index c7b827d40..33fa5d2bc 100644 --- a/assets/js/c624ce3c.5e1c80bc.js +++ b/assets/js/c624ce3c.20559fe0.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2424],{5680:(e,t,r)=>{r.d(t,{xA:()=>l,yg:()=>m});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function p(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),u=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):p(p({},t),e)),r},l=function(e){var t=u(e.components);return n.createElement(i.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),s=u(r),d=a,m=s["".concat(i,".").concat(d)]||s[d]||y[d]||o;return r?n.createElement(m,p(p({ref:t},l),{},{components:r})):n.createElement(m,p({ref:t},l))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,p=new Array(o);p[0]=d;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[s]="string"==typeof e?e:a,p[1]=c;for(var u=2;u{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>p,default:()=>y,frontMatter:()=>o,metadata:()=>c,toc:()=>u});var n=r(8168),a=(r(6540),r(5680));const o={},p="\u4ee3\u7801\u751f\u6210",c={unversionedId:"study/program/JAVA/\u4ee3\u7801\u751f\u6210",id:"study/program/JAVA/\u4ee3\u7801\u751f\u6210",title:"\u4ee3\u7801\u751f\u6210",description:"Mapstruct",source:"@site/docs/study/program/JAVA/\u4ee3\u7801\u751f\u6210.md",sourceDirName:"study/program/JAVA",slug:"/study/program/JAVA/\u4ee3\u7801\u751f\u6210",permalink:"/docs/study/program/JAVA/\u4ee3\u7801\u751f\u6210",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Vert.x",permalink:"/docs/study/program/JAVA/Vert.x"},next:{title:"\u9501\uff08\u591a\u7ebf\u7a0b\uff09",permalink:"/docs/study/program/JAVA/\u9501"}},i={},u=[{value:"Mapstruct",id:"mapstruct",level:3}],l={toc:u},s="wrapper";function y(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"\u4ee3\u7801\u751f\u6210"},"\u4ee3\u7801\u751f\u6210"),(0,a.yg)("h3",{id:"mapstruct"},"Mapstruct"),(0,a.yg)("p",null,"MapSturct \u662f\u4e00\u4e2a\u751f\u6210\u7c7b\u578b\u5b89\u5168\uff0c\u9ad8\u6027\u80fd\u4e14\u65e0\u4f9d\u8d56\u7684 JavaBean \u6620\u5c04\u4ee3\u7801\u7684\u6ce8\u89e3\u5904\u7406\u5668\uff08annotation processor\uff09\u3002"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u6ce8\u89e3\u5904\u7406\u5668"),(0,a.yg)("li",{parentName:"ul"},"\u53ef\u4ee5\u751f\u6210 JavaBean \u4e4b\u95f4\u90a3\u7684\u6620\u5c04\u4ee3\u7801"),(0,a.yg)("li",{parentName:"ul"},"\u7c7b\u578b\u5b89\u5168\uff0c\u9ad8\u6027\u80fd\uff0c\u65e0\u4f9d\u8d56\u6027")),(0,a.yg)("p",null,(0,a.yg)("a",{parentName:"p",href:"https://blog.csdn.net/Mango_Bin/article/details/125168370"},"CSDN-Mapstruct\u7684\u5177\u4f53\u4ecb\u7ecd\u4e0e\u4f7f\u7528")),(0,a.yg)("p",null,(0,a.yg)("a",{parentName:"p",href:"https://baijiahao.baidu.com/s?id=1710072420980854506&wfr=spider&for=pc"},"\u767e\u5ea6-\u6027\u80fd\u9ad8\u3001\u4e0a\u624b\u5feb\uff0c\u5b9e\u4f53\u7c7b\u8f6c\u6362\u5de5\u5177 MapStruct \u5230\u5e95\u6709\u591a\u5f3a\u5927")))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2424],{5680:(e,t,r)=>{r.d(t,{xA:()=>l,yg:()=>m});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function p(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),u=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):p(p({},t),e)),r},l=function(e){var t=u(e.components);return n.createElement(i.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),s=u(r),d=a,m=s["".concat(i,".").concat(d)]||s[d]||y[d]||o;return r?n.createElement(m,p(p({ref:t},l),{},{components:r})):n.createElement(m,p({ref:t},l))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,p=new Array(o);p[0]=d;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[s]="string"==typeof e?e:a,p[1]=c;for(var u=2;u{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>p,default:()=>y,frontMatter:()=>o,metadata:()=>c,toc:()=>u});var n=r(8168),a=(r(6540),r(5680));const o={},p="\u4ee3\u7801\u751f\u6210",c={unversionedId:"study/program/JAVA/\u4ee3\u7801\u751f\u6210",id:"study/program/JAVA/\u4ee3\u7801\u751f\u6210",title:"\u4ee3\u7801\u751f\u6210",description:"Mapstruct",source:"@site/docs/study/program/JAVA/\u4ee3\u7801\u751f\u6210.md",sourceDirName:"study/program/JAVA",slug:"/study/program/JAVA/\u4ee3\u7801\u751f\u6210",permalink:"/docs/study/program/JAVA/\u4ee3\u7801\u751f\u6210",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Vert.x",permalink:"/docs/study/program/JAVA/Vert.x"},next:{title:"\u9501\uff08\u591a\u7ebf\u7a0b\uff09",permalink:"/docs/study/program/JAVA/\u9501"}},i={},u=[{value:"Mapstruct",id:"mapstruct",level:3}],l={toc:u},s="wrapper";function y(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"\u4ee3\u7801\u751f\u6210"},"\u4ee3\u7801\u751f\u6210"),(0,a.yg)("h3",{id:"mapstruct"},"Mapstruct"),(0,a.yg)("p",null,"MapSturct \u662f\u4e00\u4e2a\u751f\u6210\u7c7b\u578b\u5b89\u5168\uff0c\u9ad8\u6027\u80fd\u4e14\u65e0\u4f9d\u8d56\u7684 JavaBean \u6620\u5c04\u4ee3\u7801\u7684\u6ce8\u89e3\u5904\u7406\u5668\uff08annotation processor\uff09\u3002"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u6ce8\u89e3\u5904\u7406\u5668"),(0,a.yg)("li",{parentName:"ul"},"\u53ef\u4ee5\u751f\u6210 JavaBean \u4e4b\u95f4\u90a3\u7684\u6620\u5c04\u4ee3\u7801"),(0,a.yg)("li",{parentName:"ul"},"\u7c7b\u578b\u5b89\u5168\uff0c\u9ad8\u6027\u80fd\uff0c\u65e0\u4f9d\u8d56\u6027")),(0,a.yg)("p",null,(0,a.yg)("a",{parentName:"p",href:"https://blog.csdn.net/Mango_Bin/article/details/125168370"},"CSDN-Mapstruct\u7684\u5177\u4f53\u4ecb\u7ecd\u4e0e\u4f7f\u7528")),(0,a.yg)("p",null,(0,a.yg)("a",{parentName:"p",href:"https://baijiahao.baidu.com/s?id=1710072420980854506&wfr=spider&for=pc"},"\u767e\u5ea6-\u6027\u80fd\u9ad8\u3001\u4e0a\u624b\u5feb\uff0c\u5b9e\u4f53\u7c7b\u8f6c\u6362\u5de5\u5177 MapStruct \u5230\u5e95\u6709\u591a\u5f3a\u5927")))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c7df6888.5113cef7.js b/assets/js/c7df6888.5ddc01d8.js similarity index 98% rename from assets/js/c7df6888.5113cef7.js rename to assets/js/c7df6888.5ddc01d8.js index 1e20026d6..a5b40580e 100644 --- a/assets/js/c7df6888.5113cef7.js +++ b/assets/js/c7df6888.5ddc01d8.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9089],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>d});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function p(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),c=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):p(p({},t),e)),r},u=function(e){var t=c(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),s=c(r),m=a,d=s["".concat(l,".").concat(m)]||s[m]||y[m]||o;return r?n.createElement(d,p(p({ref:t},u),{},{components:r})):n.createElement(d,p({ref:t},u))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,p=new Array(o);p[0]=m;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[s]="string"==typeof e?e:a,p[1]=i;for(var c=2;c{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>p,default:()=>y,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var n=r(8168),a=(r(6540),r(5680));const o={},p=void 0,i={unversionedId:"study/program/C/\u65b9\u6cd5\u5e93-\u9759\u6001\u5e93-\u52a8\u6001\u5e93-\u5171\u4eab\u5e93",id:"study/program/C/\u65b9\u6cd5\u5e93-\u9759\u6001\u5e93-\u52a8\u6001\u5e93-\u5171\u4eab\u5e93",title:"\u65b9\u6cd5\u5e93-\u9759\u6001\u5e93-\u52a8\u6001\u5e93-\u5171\u4eab\u5e93",description:"\u65b9\u6cd5\u5e93\u53ef\u4ee5\u5206\u4e3a\u4e24\u7c7b\uff1a",source:"@site/docs/study/program/C/\u65b9\u6cd5\u5e93-\u9759\u6001\u5e93-\u52a8\u6001\u5e93-\u5171\u4eab\u5e93.md",sourceDirName:"study/program/C",slug:"/study/program/C/\u65b9\u6cd5\u5e93-\u9759\u6001\u5e93-\u52a8\u6001\u5e93-\u5171\u4eab\u5e93",permalink:"/docs/study/program/C/\u65b9\u6cd5\u5e93-\u9759\u6001\u5e93-\u52a8\u6001\u5e93-\u5171\u4eab\u5e93",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"size_t-ptrdiff_t-intptr_t-uintptr_t",permalink:"/docs/study/program/C/size_t-ptrdiff_t-intptr_t-uintptr_t"},next:{title:"\u6784\u5efa\u5de5\u5177",permalink:"/docs/study/program/C/\u6784\u5efa\u5de5\u5177"}},l={},c=[],u={toc:c},s="wrapper";function y(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("p",null,"\u65b9\u6cd5\u5e93\u53ef\u4ee5\u5206\u4e3a\u4e24\u7c7b\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"\u9759\u6001\u5e93")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"\u52a8\u6001\u5e93\uff08\u4e5f\u53ef\u4ee5\u79f0\u4e3a\u5171\u4eab\u5e93\uff09")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"windows \u4e0b\u9759\u6001\u5e93\u4ee5.lib \u4e3a\u540e\u7f00\uff0c\u52a8\u6001\u5e93\u4ee5.dll \u4e3a\u540e\u7f00")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"linux \u4e0b\u9759\u6001\u5e93\u4ee5.a \u4e3a\u540e\u7f00\uff0c\u52a8\u6001\u5e93\u4ee5.so \u4e3a\u540e\u7f00")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"mac \u4e0b\u9759\u6001\u5e93\u4ee5.a \u4e3a\u540e\u7f00\uff0c\u52a8\u6001\u5e93\u4ee5.dylib \u4e3a\u540e\u7f00;\u540c\u65f6.framework \u4e3a\u540e\u7f00\u7684\u6587\u4ef6\uff0c\u6709\u53ef\u80fd\u662f\u9759\u6001\u5e93\uff0c\u4e5f\u6709\u53ef\u80fd\u662f\u52a8\u6001\u5e93"))),(0,a.yg)("p",null,"\u56e0\u4e3a\u5728\u64cd\u4f5c\u7cfb\u7edf\u4e2d\u8fd0\u884c\u7684\u662f\u53ef\u6267\u884c\u7a0b\u5e8f\uff0c\u9759\u6001\u5e93\u4f1a copy \u5230\u53ef\u6267\u884c\u7a0b\u5e8f\u4e2d\uff0c\u800c\u52a8\u6001\u5e93\u53ea\u662f\u88ab\u53ef\u6267\u884c\u7a0b\u5e8f\u5f15\u7528\uff1b"),(0,a.yg)("p",null,"\u4e00\u4e2a\u5728\u91cc\u9762\uff0c\u4e00\u4e2a\u5728\u5916\u9762\uff0c\u4e24\u8005\u662f\u6709\u533a\u522b\u7684\u3002"))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9089],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>d});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function p(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),c=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):p(p({},t),e)),r},u=function(e){var t=c(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),s=c(r),m=a,d=s["".concat(l,".").concat(m)]||s[m]||y[m]||o;return r?n.createElement(d,p(p({ref:t},u),{},{components:r})):n.createElement(d,p({ref:t},u))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,p=new Array(o);p[0]=m;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[s]="string"==typeof e?e:a,p[1]=i;for(var c=2;c{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>p,default:()=>y,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var n=r(8168),a=(r(6540),r(5680));const o={},p=void 0,i={unversionedId:"study/program/C/\u65b9\u6cd5\u5e93-\u9759\u6001\u5e93-\u52a8\u6001\u5e93-\u5171\u4eab\u5e93",id:"study/program/C/\u65b9\u6cd5\u5e93-\u9759\u6001\u5e93-\u52a8\u6001\u5e93-\u5171\u4eab\u5e93",title:"\u65b9\u6cd5\u5e93-\u9759\u6001\u5e93-\u52a8\u6001\u5e93-\u5171\u4eab\u5e93",description:"\u65b9\u6cd5\u5e93\u53ef\u4ee5\u5206\u4e3a\u4e24\u7c7b\uff1a",source:"@site/docs/study/program/C/\u65b9\u6cd5\u5e93-\u9759\u6001\u5e93-\u52a8\u6001\u5e93-\u5171\u4eab\u5e93.md",sourceDirName:"study/program/C",slug:"/study/program/C/\u65b9\u6cd5\u5e93-\u9759\u6001\u5e93-\u52a8\u6001\u5e93-\u5171\u4eab\u5e93",permalink:"/docs/study/program/C/\u65b9\u6cd5\u5e93-\u9759\u6001\u5e93-\u52a8\u6001\u5e93-\u5171\u4eab\u5e93",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"size_t-ptrdiff_t-intptr_t-uintptr_t",permalink:"/docs/study/program/C/size_t-ptrdiff_t-intptr_t-uintptr_t"},next:{title:"\u6784\u5efa\u5de5\u5177",permalink:"/docs/study/program/C/\u6784\u5efa\u5de5\u5177"}},l={},c=[],u={toc:c},s="wrapper";function y(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("p",null,"\u65b9\u6cd5\u5e93\u53ef\u4ee5\u5206\u4e3a\u4e24\u7c7b\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"\u9759\u6001\u5e93")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"\u52a8\u6001\u5e93\uff08\u4e5f\u53ef\u4ee5\u79f0\u4e3a\u5171\u4eab\u5e93\uff09")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"windows \u4e0b\u9759\u6001\u5e93\u4ee5.lib \u4e3a\u540e\u7f00\uff0c\u52a8\u6001\u5e93\u4ee5.dll \u4e3a\u540e\u7f00")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"linux \u4e0b\u9759\u6001\u5e93\u4ee5.a \u4e3a\u540e\u7f00\uff0c\u52a8\u6001\u5e93\u4ee5.so \u4e3a\u540e\u7f00")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"mac \u4e0b\u9759\u6001\u5e93\u4ee5.a \u4e3a\u540e\u7f00\uff0c\u52a8\u6001\u5e93\u4ee5.dylib \u4e3a\u540e\u7f00;\u540c\u65f6.framework \u4e3a\u540e\u7f00\u7684\u6587\u4ef6\uff0c\u6709\u53ef\u80fd\u662f\u9759\u6001\u5e93\uff0c\u4e5f\u6709\u53ef\u80fd\u662f\u52a8\u6001\u5e93"))),(0,a.yg)("p",null,"\u56e0\u4e3a\u5728\u64cd\u4f5c\u7cfb\u7edf\u4e2d\u8fd0\u884c\u7684\u662f\u53ef\u6267\u884c\u7a0b\u5e8f\uff0c\u9759\u6001\u5e93\u4f1a copy \u5230\u53ef\u6267\u884c\u7a0b\u5e8f\u4e2d\uff0c\u800c\u52a8\u6001\u5e93\u53ea\u662f\u88ab\u53ef\u6267\u884c\u7a0b\u5e8f\u5f15\u7528\uff1b"),(0,a.yg)("p",null,"\u4e00\u4e2a\u5728\u91cc\u9762\uff0c\u4e00\u4e2a\u5728\u5916\u9762\uff0c\u4e24\u8005\u662f\u6709\u533a\u522b\u7684\u3002"))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c7fe4f6d.886d50c2.js b/assets/js/c7fe4f6d.f207a55e.js similarity index 98% rename from assets/js/c7fe4f6d.886d50c2.js rename to assets/js/c7fe4f6d.f207a55e.js index ddcf43383..dcf3295ea 100644 --- a/assets/js/c7fe4f6d.886d50c2.js +++ b/assets/js/c7fe4f6d.f207a55e.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1522],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var i=n.createContext({}),u=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(i.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),s=u(r),y=o,f=s["".concat(i,".").concat(y)]||s[y]||d[y]||a;return r?n.createElement(f,c(c({ref:t},p),{},{components:r})):n.createElement(f,c({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=y;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l[s]="string"==typeof e?e:o,c[1]=l;for(var u=2;u{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>l,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,l={unversionedId:"study/net/\u5c40\u57df\u7f51IP\u5730\u5740\u8303\u56f4",id:"study/net/\u5c40\u57df\u7f51IP\u5730\u5740\u8303\u56f4",title:"\u5c40\u57df\u7f51IP\u5730\u5740\u8303\u56f4",description:"A \u7c7b\u5730\u5740",source:"@site/docs/study/net/\u5c40\u57df\u7f51IP\u5730\u5740\u8303\u56f4.md",sourceDirName:"study/net",slug:"/study/net/\u5c40\u57df\u7f51IP\u5730\u5740\u8303\u56f4",permalink:"/docs/study/net/\u5c40\u57df\u7f51IP\u5730\u5740\u8303\u56f4",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u5185\u7f51\u7a7f\u900f",permalink:"/docs/study/net/\u5185\u7f51\u7a7f\u900f"},next:{title:"\u5f02\u5730\u7ec4\u7f51",permalink:"/docs/study/net/\u5f02\u5730\u7ec4\u7f51"}},i={},u=[{value:"A \u7c7b\u5730\u5740",id:"a-\u7c7b\u5730\u5740",level:3},{value:"B \u7c7b\u5730\u5740",id:"b-\u7c7b\u5730\u5740",level:3},{value:"C \u7c7b\u5730\u5740",id:"c-\u7c7b\u5730\u5740",level:3}],p={toc:u},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"a-\u7c7b\u5730\u5740"},"A \u7c7b\u5730\u5740"),(0,o.yg)("p",null,"10\uff0e0\uff0e0\uff0e0\uff0f8"),(0,o.yg)("p",null,"-- 10\uff0e0\uff0e0\uff0e0 \uff5e 10\uff0e255\uff0e255\uff0e255"),(0,o.yg)("h3",{id:"b-\u7c7b\u5730\u5740"},"B \u7c7b\u5730\u5740"),(0,o.yg)("p",null,"172\uff0e16\uff0e0\uff0e0\uff0f12"),(0,o.yg)("p",null,"-- 172\uff0e16\uff0e0\uff0e0 \uff5e 172\uff0e31\uff0e255\uff0e255"),(0,o.yg)("h3",{id:"c-\u7c7b\u5730\u5740"},"C \u7c7b\u5730\u5740"),(0,o.yg)("p",null,"192\uff0e168\uff0e0\uff0e0\uff0f16\n-- 192\uff0e168\uff0e0\uff0e0 \uff5e 192\uff0e168\uff0e255\uff0e255"))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1522],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var i=n.createContext({}),u=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(i.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),s=u(r),y=o,f=s["".concat(i,".").concat(y)]||s[y]||d[y]||a;return r?n.createElement(f,c(c({ref:t},p),{},{components:r})):n.createElement(f,c({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=y;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l[s]="string"==typeof e?e:o,c[1]=l;for(var u=2;u{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>l,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,l={unversionedId:"study/net/\u5c40\u57df\u7f51IP\u5730\u5740\u8303\u56f4",id:"study/net/\u5c40\u57df\u7f51IP\u5730\u5740\u8303\u56f4",title:"\u5c40\u57df\u7f51IP\u5730\u5740\u8303\u56f4",description:"A \u7c7b\u5730\u5740",source:"@site/docs/study/net/\u5c40\u57df\u7f51IP\u5730\u5740\u8303\u56f4.md",sourceDirName:"study/net",slug:"/study/net/\u5c40\u57df\u7f51IP\u5730\u5740\u8303\u56f4",permalink:"/docs/study/net/\u5c40\u57df\u7f51IP\u5730\u5740\u8303\u56f4",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u5185\u7f51\u7a7f\u900f",permalink:"/docs/study/net/\u5185\u7f51\u7a7f\u900f"},next:{title:"\u5f02\u5730\u7ec4\u7f51",permalink:"/docs/study/net/\u5f02\u5730\u7ec4\u7f51"}},i={},u=[{value:"A \u7c7b\u5730\u5740",id:"a-\u7c7b\u5730\u5740",level:3},{value:"B \u7c7b\u5730\u5740",id:"b-\u7c7b\u5730\u5740",level:3},{value:"C \u7c7b\u5730\u5740",id:"c-\u7c7b\u5730\u5740",level:3}],p={toc:u},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"a-\u7c7b\u5730\u5740"},"A \u7c7b\u5730\u5740"),(0,o.yg)("p",null,"10\uff0e0\uff0e0\uff0e0\uff0f8"),(0,o.yg)("p",null,"-- 10\uff0e0\uff0e0\uff0e0 \uff5e 10\uff0e255\uff0e255\uff0e255"),(0,o.yg)("h3",{id:"b-\u7c7b\u5730\u5740"},"B \u7c7b\u5730\u5740"),(0,o.yg)("p",null,"172\uff0e16\uff0e0\uff0e0\uff0f12"),(0,o.yg)("p",null,"-- 172\uff0e16\uff0e0\uff0e0 \uff5e 172\uff0e31\uff0e255\uff0e255"),(0,o.yg)("h3",{id:"c-\u7c7b\u5730\u5740"},"C \u7c7b\u5730\u5740"),(0,o.yg)("p",null,"192\uff0e168\uff0e0\uff0e0\uff0f16\n-- 192\uff0e168\uff0e0\uff0e0 \uff5e 192\uff0e168\uff0e255\uff0e255"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c86c7bbe.6ba3aa7f.js b/assets/js/c86c7bbe.d172dc30.js similarity index 99% rename from assets/js/c86c7bbe.6ba3aa7f.js rename to assets/js/c86c7bbe.d172dc30.js index 4dcf0b646..f7402f072 100644 --- a/assets/js/c86c7bbe.6ba3aa7f.js +++ b/assets/js/c86c7bbe.d172dc30.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2923],{5680:(e,t,r)=>{r.d(t,{xA:()=>y,yg:()=>m});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var u=n.createContext({}),p=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},y=function(e){var t=p(e.components);return n.createElement(u.Provider,{value:t},e.children)},c="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,l=e.originalType,u=e.parentName,y=i(e,["components","mdxType","originalType","parentName"]),c=p(r),d=a,m=c["".concat(u,".").concat(d)]||c[d]||s[d]||l;return r?n.createElement(m,o(o({ref:t},y),{},{components:r})):n.createElement(m,o({ref:t},y))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=r.length,o=new Array(l);o[0]=d;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[c]="string"==typeof e?e:a,o[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>o,default:()=>s,frontMatter:()=>l,metadata:()=>i,toc:()=>p});var n=r(8168),a=(r(6540),r(5680));const l={sidebar_position:2},o=void 0,i={unversionedId:"study/db/\u7efc\u5408",id:"study/db/\u7efc\u5408",title:"\u7efc\u5408",description:"\u8f6f\u4ef6\u7cfb\u7edf\u6839\u636e\u5b58\u50a8\u7ed3\u6784\u7684\u5206\u7c7b",source:"@site/docs/study/db/\u7efc\u5408.md",sourceDirName:"study/db",slug:"/study/db/\u7efc\u5408",permalink:"/docs/study/db/\u7efc\u5408",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"studySidebar",previous:{title:"\u6982\u8ff0",permalink:"/docs/study/db/"},next:{title:"TiDB",permalink:"/docs/study/db/NewSQL/TiDB"}},u={},p=[{value:"\u8f6f\u4ef6\u7cfb\u7edf\u6839\u636e\u5b58\u50a8\u7ed3\u6784\u7684\u5206\u7c7b",id:"\u8f6f\u4ef6\u7cfb\u7edf\u6839\u636e\u5b58\u50a8\u7ed3\u6784\u7684\u5206\u7c7b",level:3},{value:"NOSQL\u51fa\u73b0\u7684\u5386\u53f2\u539f\u56e0",id:"nosql\u51fa\u73b0\u7684\u5386\u53f2\u539f\u56e0",level:3}],y={toc:p},c="wrapper";function s(e){let{components:t,...r}=e;return(0,a.yg)(c,(0,n.A)({},y,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u8f6f\u4ef6\u7cfb\u7edf\u6839\u636e\u5b58\u50a8\u7ed3\u6784\u7684\u5206\u7c7b"},"\u8f6f\u4ef6\u7cfb\u7edf\u6839\u636e\u5b58\u50a8\u7ed3\u6784\u7684\u5206\u7c7b"),(0,a.yg)("p",null,"\u5173\u4e8eNoSQL\uff0c\u770b\u8fc7\u4e00\u5f20\u56fe\uff0c\u633a\u5f62\u8c61\uff1a\u201c1970\uff0cWe have no SQL\u201d->\u201c1980\uff0cKnow SQL\u201d->\u201c2000\uff0cNoSQL\u201d->\u201c2005\uff0cNot only SQL\u201d->\u201c2015\uff0cNo\uff0cSQL\u201d\u3002\u76ee\u524d\uff0c\u4e00\u4e9b\u65b0\u578b\u6570\u636e\u5e93\uff0c\u540c\u65f6\u5177\u5907\u4e86NoSQL\u7684\u6269\u5c55\u6027\u548c\u5173\u7cfb\u578b\u6570\u636e\u5e93\u7684\u5f88\u591a\u7279\u6027\u3002 "),(0,a.yg)("p",null,"\u5173\u7cfb\u578b\u548cNoSQL\u6570\u636e\u5e93\u7684\u9009\u578b\u3002\u8003\u8651\u51e0\u4e2a\u6307\u6807\uff0c\u6570\u636e\u91cf\u3001\u5e76\u53d1\u91cf\u3001\u5b9e\u65f6\u6027\u3001\u4e00\u81f4\u6027\u8981\u6c42\u3001\u8bfb\u5199\u5206\u5e03\u548c\u7c7b\u578b\u3001\u5b89\u5168\u6027\u3001\u8fd0\u7ef4\u6027\u7b49\u3002\u6839\u636e\u8fd9\u4e9b\u6307\u6807\uff0c\u8f6f\u4ef6\u7cfb\u7edf\u53ef\u5206\u6210\u51e0\u7c7b\u3002 "),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"\u7ba1\u7406\u578b\u7cfb\u7edf\uff0c\u5982\u8fd0\u8425\u7c7b\u7cfb\u7edf\uff0c\u9996\u9009\u5173\u7cfb\u578b\u3002 "),(0,a.yg)("li",{parentName:"ol"},"\u5927\u6d41\u91cf\u7cfb\u7edf\uff0c\u5982\u7535\u5546\u5355\u54c1\u9875\u7684\u67d0\u4e2a\u670d\u52a1\uff0c\u540e\u53f0\u9009\u5173\u7cfb\u578b\uff0c\u524d\u53f0\u9009\u5185\u5b58\u578b\u3002 "),(0,a.yg)("li",{parentName:"ol"},"\u65e5\u5fd7\u578b\u7cfb\u7edf\uff0c\u539f\u59cb\u6570\u636e\u9009\u5217\u5f0f\uff0c\u65e5\u5fd7\u641c\u7d22\u9009\u5012\u6392\u7d22\u5f15\u3002 "),(0,a.yg)("li",{parentName:"ol"},"\u641c\u7d22\u578b\u7cfb\u7edf\uff0c\u6307\u7ad9\u5185\u641c\u7d22\uff0c\u975e\u901a\u7528\u641c\u7d22\uff0c\u5982\u5546\u54c1\u641c\u7d22\uff0c\u540e\u53f0\u9009\u5173\u7cfb\u578b\uff0c\u524d\u53f0\u9009\u5012\u6392\u7d22\u5f15\u3002 "),(0,a.yg)("li",{parentName:"ol"},"\u4e8b\u52a1\u578b\u7cfb\u7edf\uff0c\u5982\u5e93\u5b58\u3001\u4ea4\u6613\u3001\u8bb0\u8d26\uff0c\u9009\u5173\u7cfb\u578b+\u7f13\u5b58+\u4e00\u81f4\u6027\u534f\u8bae\uff0c\u6216\u65b0\u578b\u5173\u7cfb\u6570\u636e\u5e93\u3002 "),(0,a.yg)("li",{parentName:"ol"},"\u79bb\u7ebf\u8ba1\u7b97\uff0c\u5982\u5927\u91cf\u6570\u636e\u5206\u6790\uff0c\u9996\u9009\u5217\u5f0f\uff0c\u5173\u7cfb\u578b\u4e5f\u53ef\u4ee5\u3002 "),(0,a.yg)("li",{parentName:"ol"},"\u5b9e\u65f6\u8ba1\u7b97\uff0c\u5982\u5b9e\u65f6\u76d1\u63a7\uff0c\u53ef\u4ee5\u9009\u65f6\u5e8f\u6570\u636e\u5e93\uff0c\u6216\u5217\u5f0f\u6570\u636e\u5e93\u3002")),(0,a.yg)("h3",{id:"nosql\u51fa\u73b0\u7684\u5386\u53f2\u539f\u56e0"},"NOSQL\u51fa\u73b0\u7684\u5386\u53f2\u539f\u56e0"),(0,a.yg)("p",null,"\u5173\u7cfb\u6570\u636e\u5e93\u7ecf\u8fc7\u51e0\u5341\u5e74\u7684\u53d1\u5c55\u540e\u5df2\u7ecf\u975e\u5e38\u6210\u719f\uff0c\u5f3a\u5927\u7684 SQL \u529f\u80fd\u548c ACID \u7684\u5c5e\u6027\uff0c\u4f7f\u5f97\u5173\u7cfb\u6570\u636e\u5e93\u5e7f\u6cdb\u5e94\u7528\u4e8e\u5404\u5f0f\u5404\u6837\u7684\u7cfb\u7edf\u4e2d\uff0c\u4f46\u8fd9\u5e76\u4e0d\u610f\u5473\u7740\u5173\u7cfb\u6570\u636e\u5e93\u662f\u5b8c\u7f8e\u7684\uff0c\u5173\u7cfb\u6570\u636e\u5e93\u5b58\u5728\u5982\u4e0b\u7f3a\u70b9\u3002"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u5173\u7cfb\u6570\u636e\u5e93\u5b58\u50a8\u7684\u662f\u884c\u8bb0\u5f55\uff0c\u65e0\u6cd5\u5b58\u50a8\u6570\u636e\u7ed3\u6784",(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},"\u4ee5\u5fae\u535a\u7684\u5173\u6ce8\u5173\u7cfb\u4e3a\u4f8b\uff0c\u201c\u6211\u5173\u6ce8\u7684\u4eba\u201d\u662f\u4e00\u4e2a\u7528\u6237 ID \u5217\u8868\uff0c\u4f7f\u7528\u5173\u7cfb\u6570\u636e\u5e93\u5b58\u50a8\u53ea\u80fd\u5c06\u5217\u8868\u62c6\u6210\u591a\u884c\uff0c\u7136\u540e\u518d\u67e5\u8be2\u51fa\u6765\u7ec4\u88c5\uff0c\u65e0\u6cd5\u76f4\u63a5\u5b58\u50a8\u4e00\u4e2a\u5217\u8868\u3002"))),(0,a.yg)("li",{parentName:"ul"},"\u5173\u7cfb\u6570\u636e\u5e93\u7684 schema \u6269\u5c55\u5f88\u4e0d\u65b9\u4fbf",(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},"\u5173\u7cfb\u6570\u636e\u5e93\u7684\u8868\u7ed3\u6784 schema \u662f\u5f3a\u7ea6\u675f\uff0c\u64cd\u4f5c\u4e0d\u5b58\u5728\u7684\u5217\u4f1a\u62a5\u9519\uff0c\u4e1a\u52a1\u53d8\u5316\u65f6\u6269\u5145\u5217\u4e5f\u6bd4\u8f83\u9ebb\u70e6\uff0c\u9700\u8981\u6267\u884c DDL\uff08data definition language\uff0c\u5982 CREATE\u3001ALTER\u3001DROP \u7b49\uff09\u8bed\u53e5\u4fee\u6539\uff0c\u800c\u4e14\u4fee\u6539\u65f6\u53ef\u80fd\u4f1a\u957f\u65f6\u95f4\u9501\u8868\uff08\u4f8b\u5982\uff0cMySQL \u53ef\u80fd\u5c06\u8868\u9501\u4f4f 1 \u4e2a\u5c0f\u65f6\uff09\u3002"))),(0,a.yg)("li",{parentName:"ul"},"\u5173\u7cfb\u6570\u636e\u5e93\u5728\u5927\u6570\u636e\u573a\u666f\u4e0b I/O \u8f83\u9ad8",(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},"\u5982\u679c\u5bf9\u4e00\u4e9b\u5927\u91cf\u6570\u636e\u7684\u8868\u8fdb\u884c\u7edf\u8ba1\u4e4b\u7c7b\u7684\u8fd0\u7b97\uff0c\u5173\u7cfb\u6570\u636e\u5e93\u7684 I/O \u4f1a\u5f88\u9ad8\uff0c\u56e0\u4e3a\u5373\u4f7f\u53ea\u9488\u5bf9\u5176\u4e2d\u67d0\u4e00\u5217\u8fdb\u884c\u8fd0\u7b97\uff0c\u5173\u7cfb\u6570\u636e\u5e93\u4e5f\u4f1a\u5c06\u6574\u884c\u6570\u636e\u4ece\u5b58\u50a8\u8bbe\u5907\u8bfb\u5165\u5185\u5b58\u3002"))),(0,a.yg)("li",{parentName:"ul"},"\u5173\u7cfb\u6570\u636e\u5e93\u7684\u5168\u6587\u641c\u7d22\u529f\u80fd\u6bd4\u8f83\u5f31",(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},"\u5173\u7cfb\u6570\u636e\u5e93\u7684\u5168\u6587\u641c\u7d22\u53ea\u80fd\u4f7f\u7528 like \u8fdb\u884c\u6574\u8868\u626b\u63cf\u5339\u914d\uff0c\u6027\u80fd\u975e\u5e38\u4f4e\uff0c\u5728\u4e92\u8054\u7f51\u8fd9\u79cd\u641c\u7d22\u590d\u6742\u7684\u573a\u666f\u4e0b\u65e0\u6cd5\u6ee1\u8db3\u4e1a\u52a1\u8981\u6c42\u3002")))),(0,a.yg)("p",null,"\u9488\u5bf9\u4e0a\u8ff0\u95ee\u9898\uff0c\u5206\u522b\u8bde\u751f\u4e86\u4e0d\u540c\u7684 NoSQL \u89e3\u51b3\u65b9\u6848\uff0c\u8fd9\u4e9b\u65b9\u6848\u4e0e\u5173\u7cfb\u6570\u636e\u5e93\u76f8\u6bd4\uff0c\u5728\u67d0\u4e9b\u5e94\u7528\u573a\u666f\u4e0b\u8868\u73b0\u66f4\u597d\u3002\u4f46\u4e16\u4e0a\u6ca1\u6709\u514d\u8d39\u7684\u5348\u9910\uff0cNoSQL \u65b9\u6848\u5e26\u6765\u7684\u4f18\u52bf\uff0c\u672c\u8d28\u4e0a\u662f\u727a\u7272 ACID \u4e2d\u7684\u67d0\u4e2a\u6216\u8005\u67d0\u51e0\u4e2a\u7279\u6027\uff0c\u56e0\u6b64\u6211\u4eec\u4e0d\u80fd\u76f2\u76ee\u5730\u8ff7\u4fe1 NoSQL \u662f\u94f6\u5f39\uff0c\u800c\u5e94\u8be5\u5c06 NoSQL \u4f5c\u4e3a SQL \u7684\u4e00\u4e2a\u6709\u529b\u8865\u5145\uff0cNoSQL != No SQL\uff0c\u800c\u662f NoSQL = Not Only SQL\u3002"),(0,a.yg)("p",null,"\u5e38\u89c1\u7684 NoSQL \u65b9\u6848\u5206\u4e3a 4 \u7c7b\u3002"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"K-V \u5b58\u50a8\uff1a\u89e3\u51b3\u5173\u7cfb\u6570\u636e\u5e93\u65e0\u6cd5\u5b58\u50a8\u6570\u636e\u7ed3\u6784\u7684\u95ee\u9898\uff0c\u4ee5 Redis \u4e3a\u4ee3\u8868\u3002"),(0,a.yg)("li",{parentName:"ul"},"\u6587\u6863\u6570\u636e\u5e93\uff1a\u89e3\u51b3\u5173\u7cfb\u6570\u636e\u5e93\u5f3a schema \u7ea6\u675f\u7684\u95ee\u9898\uff0c\u4ee5 MongoDB \u4e3a\u4ee3\u8868\u3002"),(0,a.yg)("li",{parentName:"ul"},"\u5217\u5f0f\u6570\u636e\u5e93\uff1a\u89e3\u51b3\u5173\u7cfb\u6570\u636e\u5e93\u5927\u6570\u636e\u573a\u666f\u4e0b\u7684 I/O \u95ee\u9898\uff0c\u4ee5 HBase \u4e3a\u4ee3\u8868\u3002"),(0,a.yg)("li",{parentName:"ul"},"\u5168\u6587\u641c\u7d22\u5f15\u64ce\uff1a\u89e3\u51b3\u5173\u7cfb\u6570\u636e\u5e93\u7684\u5168\u6587\u641c\u7d22\u6027\u80fd\u95ee\u9898\uff0c\u4ee5 Elasticsearch \u4e3a\u4ee3\u8868\u3002")))}s.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2923],{5680:(e,t,r)=>{r.d(t,{xA:()=>y,yg:()=>m});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var u=n.createContext({}),p=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},y=function(e){var t=p(e.components);return n.createElement(u.Provider,{value:t},e.children)},c="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,l=e.originalType,u=e.parentName,y=i(e,["components","mdxType","originalType","parentName"]),c=p(r),d=a,m=c["".concat(u,".").concat(d)]||c[d]||s[d]||l;return r?n.createElement(m,o(o({ref:t},y),{},{components:r})):n.createElement(m,o({ref:t},y))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=r.length,o=new Array(l);o[0]=d;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[c]="string"==typeof e?e:a,o[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>o,default:()=>s,frontMatter:()=>l,metadata:()=>i,toc:()=>p});var n=r(8168),a=(r(6540),r(5680));const l={sidebar_position:2},o=void 0,i={unversionedId:"study/db/\u7efc\u5408",id:"study/db/\u7efc\u5408",title:"\u7efc\u5408",description:"\u8f6f\u4ef6\u7cfb\u7edf\u6839\u636e\u5b58\u50a8\u7ed3\u6784\u7684\u5206\u7c7b",source:"@site/docs/study/db/\u7efc\u5408.md",sourceDirName:"study/db",slug:"/study/db/\u7efc\u5408",permalink:"/docs/study/db/\u7efc\u5408",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"studySidebar",previous:{title:"\u6982\u8ff0",permalink:"/docs/study/db/"},next:{title:"TiDB",permalink:"/docs/study/db/NewSQL/TiDB"}},u={},p=[{value:"\u8f6f\u4ef6\u7cfb\u7edf\u6839\u636e\u5b58\u50a8\u7ed3\u6784\u7684\u5206\u7c7b",id:"\u8f6f\u4ef6\u7cfb\u7edf\u6839\u636e\u5b58\u50a8\u7ed3\u6784\u7684\u5206\u7c7b",level:3},{value:"NOSQL\u51fa\u73b0\u7684\u5386\u53f2\u539f\u56e0",id:"nosql\u51fa\u73b0\u7684\u5386\u53f2\u539f\u56e0",level:3}],y={toc:p},c="wrapper";function s(e){let{components:t,...r}=e;return(0,a.yg)(c,(0,n.A)({},y,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u8f6f\u4ef6\u7cfb\u7edf\u6839\u636e\u5b58\u50a8\u7ed3\u6784\u7684\u5206\u7c7b"},"\u8f6f\u4ef6\u7cfb\u7edf\u6839\u636e\u5b58\u50a8\u7ed3\u6784\u7684\u5206\u7c7b"),(0,a.yg)("p",null,"\u5173\u4e8eNoSQL\uff0c\u770b\u8fc7\u4e00\u5f20\u56fe\uff0c\u633a\u5f62\u8c61\uff1a\u201c1970\uff0cWe have no SQL\u201d->\u201c1980\uff0cKnow SQL\u201d->\u201c2000\uff0cNoSQL\u201d->\u201c2005\uff0cNot only SQL\u201d->\u201c2015\uff0cNo\uff0cSQL\u201d\u3002\u76ee\u524d\uff0c\u4e00\u4e9b\u65b0\u578b\u6570\u636e\u5e93\uff0c\u540c\u65f6\u5177\u5907\u4e86NoSQL\u7684\u6269\u5c55\u6027\u548c\u5173\u7cfb\u578b\u6570\u636e\u5e93\u7684\u5f88\u591a\u7279\u6027\u3002 "),(0,a.yg)("p",null,"\u5173\u7cfb\u578b\u548cNoSQL\u6570\u636e\u5e93\u7684\u9009\u578b\u3002\u8003\u8651\u51e0\u4e2a\u6307\u6807\uff0c\u6570\u636e\u91cf\u3001\u5e76\u53d1\u91cf\u3001\u5b9e\u65f6\u6027\u3001\u4e00\u81f4\u6027\u8981\u6c42\u3001\u8bfb\u5199\u5206\u5e03\u548c\u7c7b\u578b\u3001\u5b89\u5168\u6027\u3001\u8fd0\u7ef4\u6027\u7b49\u3002\u6839\u636e\u8fd9\u4e9b\u6307\u6807\uff0c\u8f6f\u4ef6\u7cfb\u7edf\u53ef\u5206\u6210\u51e0\u7c7b\u3002 "),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"\u7ba1\u7406\u578b\u7cfb\u7edf\uff0c\u5982\u8fd0\u8425\u7c7b\u7cfb\u7edf\uff0c\u9996\u9009\u5173\u7cfb\u578b\u3002 "),(0,a.yg)("li",{parentName:"ol"},"\u5927\u6d41\u91cf\u7cfb\u7edf\uff0c\u5982\u7535\u5546\u5355\u54c1\u9875\u7684\u67d0\u4e2a\u670d\u52a1\uff0c\u540e\u53f0\u9009\u5173\u7cfb\u578b\uff0c\u524d\u53f0\u9009\u5185\u5b58\u578b\u3002 "),(0,a.yg)("li",{parentName:"ol"},"\u65e5\u5fd7\u578b\u7cfb\u7edf\uff0c\u539f\u59cb\u6570\u636e\u9009\u5217\u5f0f\uff0c\u65e5\u5fd7\u641c\u7d22\u9009\u5012\u6392\u7d22\u5f15\u3002 "),(0,a.yg)("li",{parentName:"ol"},"\u641c\u7d22\u578b\u7cfb\u7edf\uff0c\u6307\u7ad9\u5185\u641c\u7d22\uff0c\u975e\u901a\u7528\u641c\u7d22\uff0c\u5982\u5546\u54c1\u641c\u7d22\uff0c\u540e\u53f0\u9009\u5173\u7cfb\u578b\uff0c\u524d\u53f0\u9009\u5012\u6392\u7d22\u5f15\u3002 "),(0,a.yg)("li",{parentName:"ol"},"\u4e8b\u52a1\u578b\u7cfb\u7edf\uff0c\u5982\u5e93\u5b58\u3001\u4ea4\u6613\u3001\u8bb0\u8d26\uff0c\u9009\u5173\u7cfb\u578b+\u7f13\u5b58+\u4e00\u81f4\u6027\u534f\u8bae\uff0c\u6216\u65b0\u578b\u5173\u7cfb\u6570\u636e\u5e93\u3002 "),(0,a.yg)("li",{parentName:"ol"},"\u79bb\u7ebf\u8ba1\u7b97\uff0c\u5982\u5927\u91cf\u6570\u636e\u5206\u6790\uff0c\u9996\u9009\u5217\u5f0f\uff0c\u5173\u7cfb\u578b\u4e5f\u53ef\u4ee5\u3002 "),(0,a.yg)("li",{parentName:"ol"},"\u5b9e\u65f6\u8ba1\u7b97\uff0c\u5982\u5b9e\u65f6\u76d1\u63a7\uff0c\u53ef\u4ee5\u9009\u65f6\u5e8f\u6570\u636e\u5e93\uff0c\u6216\u5217\u5f0f\u6570\u636e\u5e93\u3002")),(0,a.yg)("h3",{id:"nosql\u51fa\u73b0\u7684\u5386\u53f2\u539f\u56e0"},"NOSQL\u51fa\u73b0\u7684\u5386\u53f2\u539f\u56e0"),(0,a.yg)("p",null,"\u5173\u7cfb\u6570\u636e\u5e93\u7ecf\u8fc7\u51e0\u5341\u5e74\u7684\u53d1\u5c55\u540e\u5df2\u7ecf\u975e\u5e38\u6210\u719f\uff0c\u5f3a\u5927\u7684 SQL \u529f\u80fd\u548c ACID \u7684\u5c5e\u6027\uff0c\u4f7f\u5f97\u5173\u7cfb\u6570\u636e\u5e93\u5e7f\u6cdb\u5e94\u7528\u4e8e\u5404\u5f0f\u5404\u6837\u7684\u7cfb\u7edf\u4e2d\uff0c\u4f46\u8fd9\u5e76\u4e0d\u610f\u5473\u7740\u5173\u7cfb\u6570\u636e\u5e93\u662f\u5b8c\u7f8e\u7684\uff0c\u5173\u7cfb\u6570\u636e\u5e93\u5b58\u5728\u5982\u4e0b\u7f3a\u70b9\u3002"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u5173\u7cfb\u6570\u636e\u5e93\u5b58\u50a8\u7684\u662f\u884c\u8bb0\u5f55\uff0c\u65e0\u6cd5\u5b58\u50a8\u6570\u636e\u7ed3\u6784",(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},"\u4ee5\u5fae\u535a\u7684\u5173\u6ce8\u5173\u7cfb\u4e3a\u4f8b\uff0c\u201c\u6211\u5173\u6ce8\u7684\u4eba\u201d\u662f\u4e00\u4e2a\u7528\u6237 ID \u5217\u8868\uff0c\u4f7f\u7528\u5173\u7cfb\u6570\u636e\u5e93\u5b58\u50a8\u53ea\u80fd\u5c06\u5217\u8868\u62c6\u6210\u591a\u884c\uff0c\u7136\u540e\u518d\u67e5\u8be2\u51fa\u6765\u7ec4\u88c5\uff0c\u65e0\u6cd5\u76f4\u63a5\u5b58\u50a8\u4e00\u4e2a\u5217\u8868\u3002"))),(0,a.yg)("li",{parentName:"ul"},"\u5173\u7cfb\u6570\u636e\u5e93\u7684 schema \u6269\u5c55\u5f88\u4e0d\u65b9\u4fbf",(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},"\u5173\u7cfb\u6570\u636e\u5e93\u7684\u8868\u7ed3\u6784 schema \u662f\u5f3a\u7ea6\u675f\uff0c\u64cd\u4f5c\u4e0d\u5b58\u5728\u7684\u5217\u4f1a\u62a5\u9519\uff0c\u4e1a\u52a1\u53d8\u5316\u65f6\u6269\u5145\u5217\u4e5f\u6bd4\u8f83\u9ebb\u70e6\uff0c\u9700\u8981\u6267\u884c DDL\uff08data definition language\uff0c\u5982 CREATE\u3001ALTER\u3001DROP \u7b49\uff09\u8bed\u53e5\u4fee\u6539\uff0c\u800c\u4e14\u4fee\u6539\u65f6\u53ef\u80fd\u4f1a\u957f\u65f6\u95f4\u9501\u8868\uff08\u4f8b\u5982\uff0cMySQL \u53ef\u80fd\u5c06\u8868\u9501\u4f4f 1 \u4e2a\u5c0f\u65f6\uff09\u3002"))),(0,a.yg)("li",{parentName:"ul"},"\u5173\u7cfb\u6570\u636e\u5e93\u5728\u5927\u6570\u636e\u573a\u666f\u4e0b I/O \u8f83\u9ad8",(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},"\u5982\u679c\u5bf9\u4e00\u4e9b\u5927\u91cf\u6570\u636e\u7684\u8868\u8fdb\u884c\u7edf\u8ba1\u4e4b\u7c7b\u7684\u8fd0\u7b97\uff0c\u5173\u7cfb\u6570\u636e\u5e93\u7684 I/O \u4f1a\u5f88\u9ad8\uff0c\u56e0\u4e3a\u5373\u4f7f\u53ea\u9488\u5bf9\u5176\u4e2d\u67d0\u4e00\u5217\u8fdb\u884c\u8fd0\u7b97\uff0c\u5173\u7cfb\u6570\u636e\u5e93\u4e5f\u4f1a\u5c06\u6574\u884c\u6570\u636e\u4ece\u5b58\u50a8\u8bbe\u5907\u8bfb\u5165\u5185\u5b58\u3002"))),(0,a.yg)("li",{parentName:"ul"},"\u5173\u7cfb\u6570\u636e\u5e93\u7684\u5168\u6587\u641c\u7d22\u529f\u80fd\u6bd4\u8f83\u5f31",(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},"\u5173\u7cfb\u6570\u636e\u5e93\u7684\u5168\u6587\u641c\u7d22\u53ea\u80fd\u4f7f\u7528 like \u8fdb\u884c\u6574\u8868\u626b\u63cf\u5339\u914d\uff0c\u6027\u80fd\u975e\u5e38\u4f4e\uff0c\u5728\u4e92\u8054\u7f51\u8fd9\u79cd\u641c\u7d22\u590d\u6742\u7684\u573a\u666f\u4e0b\u65e0\u6cd5\u6ee1\u8db3\u4e1a\u52a1\u8981\u6c42\u3002")))),(0,a.yg)("p",null,"\u9488\u5bf9\u4e0a\u8ff0\u95ee\u9898\uff0c\u5206\u522b\u8bde\u751f\u4e86\u4e0d\u540c\u7684 NoSQL \u89e3\u51b3\u65b9\u6848\uff0c\u8fd9\u4e9b\u65b9\u6848\u4e0e\u5173\u7cfb\u6570\u636e\u5e93\u76f8\u6bd4\uff0c\u5728\u67d0\u4e9b\u5e94\u7528\u573a\u666f\u4e0b\u8868\u73b0\u66f4\u597d\u3002\u4f46\u4e16\u4e0a\u6ca1\u6709\u514d\u8d39\u7684\u5348\u9910\uff0cNoSQL \u65b9\u6848\u5e26\u6765\u7684\u4f18\u52bf\uff0c\u672c\u8d28\u4e0a\u662f\u727a\u7272 ACID \u4e2d\u7684\u67d0\u4e2a\u6216\u8005\u67d0\u51e0\u4e2a\u7279\u6027\uff0c\u56e0\u6b64\u6211\u4eec\u4e0d\u80fd\u76f2\u76ee\u5730\u8ff7\u4fe1 NoSQL \u662f\u94f6\u5f39\uff0c\u800c\u5e94\u8be5\u5c06 NoSQL \u4f5c\u4e3a SQL \u7684\u4e00\u4e2a\u6709\u529b\u8865\u5145\uff0cNoSQL != No SQL\uff0c\u800c\u662f NoSQL = Not Only SQL\u3002"),(0,a.yg)("p",null,"\u5e38\u89c1\u7684 NoSQL \u65b9\u6848\u5206\u4e3a 4 \u7c7b\u3002"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"K-V \u5b58\u50a8\uff1a\u89e3\u51b3\u5173\u7cfb\u6570\u636e\u5e93\u65e0\u6cd5\u5b58\u50a8\u6570\u636e\u7ed3\u6784\u7684\u95ee\u9898\uff0c\u4ee5 Redis \u4e3a\u4ee3\u8868\u3002"),(0,a.yg)("li",{parentName:"ul"},"\u6587\u6863\u6570\u636e\u5e93\uff1a\u89e3\u51b3\u5173\u7cfb\u6570\u636e\u5e93\u5f3a schema \u7ea6\u675f\u7684\u95ee\u9898\uff0c\u4ee5 MongoDB \u4e3a\u4ee3\u8868\u3002"),(0,a.yg)("li",{parentName:"ul"},"\u5217\u5f0f\u6570\u636e\u5e93\uff1a\u89e3\u51b3\u5173\u7cfb\u6570\u636e\u5e93\u5927\u6570\u636e\u573a\u666f\u4e0b\u7684 I/O \u95ee\u9898\uff0c\u4ee5 HBase \u4e3a\u4ee3\u8868\u3002"),(0,a.yg)("li",{parentName:"ul"},"\u5168\u6587\u641c\u7d22\u5f15\u64ce\uff1a\u89e3\u51b3\u5173\u7cfb\u6570\u636e\u5e93\u7684\u5168\u6587\u641c\u7d22\u6027\u80fd\u95ee\u9898\uff0c\u4ee5 Elasticsearch \u4e3a\u4ee3\u8868\u3002")))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c9298fde.82505b6a.js b/assets/js/c9298fde.daf650ab.js similarity index 98% rename from assets/js/c9298fde.82505b6a.js rename to assets/js/c9298fde.daf650ab.js index 6e40e6e59..ab3ce7342 100644 --- a/assets/js/c9298fde.82505b6a.js +++ b/assets/js/c9298fde.daf650ab.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4423],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>y});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),p=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(i.Provider,{value:t},e.children)},d="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),d=p(r),f=a,y=d["".concat(i,".").concat(f)]||d[f]||s[f]||o;return r?n.createElement(y,l(l({ref:t},u),{},{components:r})):n.createElement(y,l({ref:t},u))}));function y(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=f;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[d]="string"==typeof e?e:a,l[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>s,frontMatter:()=>o,metadata:()=>c,toc:()=>p});var n=r(8168),a=(r(6540),r(5680));const o={},l=void 0,c={unversionedId:"study/back/POST\u7f16\u7801\u683c\u5f0f",id:"study/back/POST\u7f16\u7801\u683c\u5f0f",title:"POST\u7f16\u7801\u683c\u5f0f",description:"\u6982\u8ff0",source:"@site/docs/study/back/POST\u7f16\u7801\u683c\u5f0f.md",sourceDirName:"study/back",slug:"/study/back/POST\u7f16\u7801\u683c\u5f0f",permalink:"/docs/study/back/POST\u7f16\u7801\u683c\u5f0f",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Save Action",permalink:"/docs/study/back/IEDA/save-action"},next:{title:"WSL",permalink:"/docs/study/back/WSL"}},i={},p=[{value:"\u6982\u8ff0",id:"\u6982\u8ff0",level:3},{value:"application/x-www-form-urlencoded",id:"applicationx-www-form-urlencoded",level:3},{value:"multipart/form-data",id:"multipartform-data",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],u={toc:p},d="wrapper";function s(e){let{components:t,...r}=e;return(0,a.yg)(d,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,a.yg)("p",null,"\u8868\u5355\u6709\u4e00\u4e2a\u53eb enctype \u7684\u5c5e\u6027, \u5b83\u6709\u4e24\u4e2a\u503c, application/x-www-form-urlencoded \u548c multipart/form-data."),(0,a.yg)("p",null,"\u8fd9\u4e00\u5c5e\u6027\u5b9e\u9645\u53ea\u5bf9 post \u65b9\u5f0f\u8d77\u4f5c\u7528, \u56e0\u4e3a get \u65b9\u5f0f\u5b9e\u9645\u53ea\u652f\u6301\u524d\u4e00\u79cd\u7c7b\u578b, \u4e5f\u5c31\u662f application/x-www-form-urlencoded, \u8fd9\u662f\u7f3a\u7701\u7684\u7c7b\u578b."),(0,a.yg)("p",null,"\u5728\u4f7f\u7528 post \u65b9\u5f0f\u63d0\u4ea4\u65f6, \u7f3a\u7701\u7684\u7f16\u7801\u7c7b\u578b\u4e5f\u4f9d\u7136\u662f\u8fd9\u4e2a application/x-www-form-urlencoded."),(0,a.yg)("h3",{id:"applicationx-www-form-urlencoded"},"application/x-www-form-urlencoded"),(0,a.yg)("p",null,"\u6d4f\u89c8\u5668\u9ed8\u8ba4\u7684\u7f16\u7801\u683c\u5f0f\uff0c\u7528\u4e8e\u952e\u503c\u5bf9\u53c2\u6570\uff0c\u53c2\u6570\u4e4b\u95f4\u7528&\u95f4\u9694\uff1b"),(0,a.yg)("h3",{id:"multipartform-data"},"multipart/form-data"),(0,a.yg)("p",null,"\u5e38\u7528\u4e8e\u6587\u4ef6\u7b49\u4e8c\u8fdb\u5236\uff0c\u4e5f\u53ef\u7528\u4e8e\u952e\u503c\u5bf9\u53c2\u6570\uff0c\u6700\u540e\u8fde\u63a5\u6210\u4e00\u4e32\u5b57\u7b26\u4f20\u8f93"),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://blog.csdn.net/qq_45796667/article/details/125239247"},"Content-Type\u5e38\u89c1\u7684\u4e24\u79cd\u683c\u5f0f\uff1aapplication/x-www-form-urlencoded\u548cmultipart/form-data\u8be6\u89e3"))))}s.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4423],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>y});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),p=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(i.Provider,{value:t},e.children)},d="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),d=p(r),f=a,y=d["".concat(i,".").concat(f)]||d[f]||s[f]||o;return r?n.createElement(y,l(l({ref:t},u),{},{components:r})):n.createElement(y,l({ref:t},u))}));function y(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=f;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[d]="string"==typeof e?e:a,l[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>s,frontMatter:()=>o,metadata:()=>c,toc:()=>p});var n=r(8168),a=(r(6540),r(5680));const o={},l=void 0,c={unversionedId:"study/back/POST\u7f16\u7801\u683c\u5f0f",id:"study/back/POST\u7f16\u7801\u683c\u5f0f",title:"POST\u7f16\u7801\u683c\u5f0f",description:"\u6982\u8ff0",source:"@site/docs/study/back/POST\u7f16\u7801\u683c\u5f0f.md",sourceDirName:"study/back",slug:"/study/back/POST\u7f16\u7801\u683c\u5f0f",permalink:"/docs/study/back/POST\u7f16\u7801\u683c\u5f0f",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Save Action",permalink:"/docs/study/back/IEDA/save-action"},next:{title:"WSL",permalink:"/docs/study/back/WSL"}},i={},p=[{value:"\u6982\u8ff0",id:"\u6982\u8ff0",level:3},{value:"application/x-www-form-urlencoded",id:"applicationx-www-form-urlencoded",level:3},{value:"multipart/form-data",id:"multipartform-data",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],u={toc:p},d="wrapper";function s(e){let{components:t,...r}=e;return(0,a.yg)(d,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,a.yg)("p",null,"\u8868\u5355\u6709\u4e00\u4e2a\u53eb enctype \u7684\u5c5e\u6027, \u5b83\u6709\u4e24\u4e2a\u503c, application/x-www-form-urlencoded \u548c multipart/form-data."),(0,a.yg)("p",null,"\u8fd9\u4e00\u5c5e\u6027\u5b9e\u9645\u53ea\u5bf9 post \u65b9\u5f0f\u8d77\u4f5c\u7528, \u56e0\u4e3a get \u65b9\u5f0f\u5b9e\u9645\u53ea\u652f\u6301\u524d\u4e00\u79cd\u7c7b\u578b, \u4e5f\u5c31\u662f application/x-www-form-urlencoded, \u8fd9\u662f\u7f3a\u7701\u7684\u7c7b\u578b."),(0,a.yg)("p",null,"\u5728\u4f7f\u7528 post \u65b9\u5f0f\u63d0\u4ea4\u65f6, \u7f3a\u7701\u7684\u7f16\u7801\u7c7b\u578b\u4e5f\u4f9d\u7136\u662f\u8fd9\u4e2a application/x-www-form-urlencoded."),(0,a.yg)("h3",{id:"applicationx-www-form-urlencoded"},"application/x-www-form-urlencoded"),(0,a.yg)("p",null,"\u6d4f\u89c8\u5668\u9ed8\u8ba4\u7684\u7f16\u7801\u683c\u5f0f\uff0c\u7528\u4e8e\u952e\u503c\u5bf9\u53c2\u6570\uff0c\u53c2\u6570\u4e4b\u95f4\u7528&\u95f4\u9694\uff1b"),(0,a.yg)("h3",{id:"multipartform-data"},"multipart/form-data"),(0,a.yg)("p",null,"\u5e38\u7528\u4e8e\u6587\u4ef6\u7b49\u4e8c\u8fdb\u5236\uff0c\u4e5f\u53ef\u7528\u4e8e\u952e\u503c\u5bf9\u53c2\u6570\uff0c\u6700\u540e\u8fde\u63a5\u6210\u4e00\u4e32\u5b57\u7b26\u4f20\u8f93"),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://blog.csdn.net/qq_45796667/article/details/125239247"},"Content-Type\u5e38\u89c1\u7684\u4e24\u79cd\u683c\u5f0f\uff1aapplication/x-www-form-urlencoded\u548cmultipart/form-data\u8be6\u89e3"))))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c99ad496.827aeec7.js b/assets/js/c99ad496.3ab7edc8.js similarity index 99% rename from assets/js/c99ad496.827aeec7.js rename to assets/js/c99ad496.3ab7edc8.js index 889fce8a5..c461fd996 100644 --- a/assets/js/c99ad496.827aeec7.js +++ b/assets/js/c99ad496.3ab7edc8.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3088],{5680:(e,t,n)=>{n.d(t,{xA:()=>p,yg:()=>y});var r=n(6540);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},g="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),g=c(n),d=a,y=g["".concat(s,".").concat(d)]||g[d]||u[d]||o;return n?r.createElement(y,l(l({ref:t},p),{},{components:n})):r.createElement(y,l({ref:t},p))}));function y(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=d;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[g]="string"==typeof e?e:a,l[1]=i;for(var c=2;c{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var r=n(8168),a=(n(6540),n(5680));const o={},l="JDK17",i={unversionedId:"study/program/JAVA/JDK17",id:"study/program/JAVA/JDK17",title:"JDK17",description:"\u9650\u5236\u7c7b\u7ee7\u627f sealed \u7c7b",source:"@site/docs/study/program/JAVA/JDK17.md",sourceDirName:"study/program/JAVA",slug:"/study/program/JAVA/JDK17",permalink:"/docs/study/program/JAVA/JDK17",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"JDK17-bin",permalink:"/docs/study/program/JAVA/JDK17-bin"},next:{title:"JDK21",permalink:"/docs/study/program/JAVA/JDK21"}},s={},c=[{value:"\u9650\u5236\u7c7b\u7ee7\u627f sealed \u7c7b",id:"\u9650\u5236\u7c7b\u7ee7\u627f-sealed-\u7c7b",level:3},{value:"Pattern Matching for Switch \u8bed\u6cd5",id:"pattern-matching-for-switch-\u8bed\u6cd5",level:3},{value:"Record \u7c7b",id:"record-\u7c7b",level:3},{value:"\u589e\u5f3a\u7684 Java \u96c6\u5408\u5e93",id:"\u589e\u5f3a\u7684-java-\u96c6\u5408\u5e93",level:3},{value:"of() \u65b9\u6cd5\uff1a\u521b\u5efa\u4e00\u4e2a\u4e0d\u53ef\u53d8\u7684\u96c6\u5408",id:"of-\u65b9\u6cd5\u521b\u5efa\u4e00\u4e2a\u4e0d\u53ef\u53d8\u7684\u96c6\u5408",level:4},{value:"forEach() \u65b9\u6cd5\uff1a\u904d\u5386\u96c6\u5408",id:"foreach-\u65b9\u6cd5\u904d\u5386\u96c6\u5408",level:4},{value:"Collectors \u7c7b\uff1a\u63d0\u4f9b\u4e86\u4e00\u7cfb\u5217\u7684\u5f52\u7ea6\u64cd\u4f5c",id:"collectors-\u7c7b\u63d0\u4f9b\u4e86\u4e00\u7cfb\u5217\u7684\u5f52\u7ea6\u64cd\u4f5c",level:4},{value:"takeWhile() \u65b9\u6cd5\u548c dropWhile() \u65b9\u6cd5\uff1a\u6839\u636e\u6761\u4ef6\u622a\u53d6\u96c6\u5408",id:"takewhile-\u65b9\u6cd5\u548c-dropwhile-\u65b9\u6cd5\u6839\u636e\u6761\u4ef6\u622a\u53d6\u96c6\u5408",level:4},{value:"toArray(IntFunction<T[]>) \u65b9\u6cd5\uff1a\u8fd4\u56de\u96c6\u5408\u4e2d\u7684\u6240\u6709\u5143\u7d20\u5230\u4e00\u4e2a\u65b0\u6570\u7ec4\u4e2d",id:"toarrayintfunctiont-\u65b9\u6cd5\u8fd4\u56de\u96c6\u5408\u4e2d\u7684\u6240\u6709\u5143\u7d20\u5230\u4e00\u4e2a\u65b0\u6570\u7ec4\u4e2d",level:4}],p={toc:c},g="wrapper";function u(e){let{components:t,...n}=e;return(0,a.yg)(g,(0,r.A)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"jdk17"},"JDK17"),(0,a.yg)("h3",{id:"\u9650\u5236\u7c7b\u7ee7\u627f-sealed-\u7c7b"},"\u9650\u5236\u7c7b\u7ee7\u627f sealed \u7c7b"),(0,a.yg)("p",null,"Sealed \u7c7b\u662f\u4e00\u79cd\u65b0\u7684\u7c7b\u4fee\u9970\u7b26\uff0c\u7528\u4e8e\u9650\u5236\u7c7b\u7684\u7ee7\u627f\u3002Sealed \u7c7b\u53ef\u4ee5\u63a7\u5236\u54ea\u4e9b\u7c7b\u53ef\u4ee5\u7ee7\u627f\u81ea\u5b83\uff0c\u8fd9\u6837\u53ef\u4ee5\u4f7f\u5f97\u4ee3\u7801\u66f4\u52a0\u5b89\u5168\u3001\u53ef\u7ef4\u62a4\u3002Sealed \u7c7b\u7684\u4f7f\u7528\u53ef\u4ee5\u5728\u7f16\u8bd1\u65f6\u5f3a\u5236\u6267\u884c\u4e00\u4e9b\u89c4\u5219\uff0c\u4ece\u800c\u907f\u514d\u8fd0\u884c\u65f6\u9519\u8bef\u3002"),(0,a.yg)("h3",{id:"pattern-matching-for-switch-\u8bed\u6cd5"},"Pattern Matching for Switch \u8bed\u6cd5"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-Java"},'public static void main(String[] args) {\n Object obj = "hello";\n\n switch (obj) {\n case String s && s.length() > 5 -> System.out.println("\u957f\u5b57\u7b26\u4e32");\n case String s -> System.out.println("\u77ed\u5b57\u7b26\u4e32");\n case Integer i -> System.out.println("\u6574\u578b\u6570");\n default -> System.out.println("\u4e0d\u652f\u6301\u7684\u7c7b\u578b");\n }\n}\n')),(0,a.yg)("h3",{id:"record-\u7c7b"},"Record \u7c7b"),(0,a.yg)("p",null,"Record \u7c7b\u662f\u4e00\u79cd\u65b0\u7684\u6570\u636e\u7c7b\uff0c\u53ef\u4ee5\u7528\u4e8e\u5b9a\u4e49\u53ea\u6709\u5c5e\u6027\u548c\u8bbf\u95ee\u5668\u7684\u7b80\u5355\u6570\u636e\u5bf9\u8c61\u3002Record \u7c7b\u53ef\u4ee5\u7b80\u5316\u4ee3\u7801\uff0c\u4f7f\u5f97\u4ee3\u7801\u66f4\u52a0\u6613\u8bfb\u3001\u6613\u7ef4\u62a4\u3002Record \u7c7b\u7684\u4f7f\u7528\u53ef\u4ee5\u51cf\u5c11\u4ee3\u7801\u91cf\uff0c\u907f\u514d\u51fa\u73b0\u5927\u91cf\u7684 getter \u548c setter \u65b9\u6cd5\u3002"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-Java"},'public record Person(String name, int age) {}\n\npublic class RecordExample {\n public static void main(String[] args) {\n Person person = new Person("John", 30);\n\n System.out.println("Name: " + person.name());\n System.out.println("Age: " + person.age());\n }\n}\n')),(0,a.yg)("p",null,"\u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u5b9a\u4e49\u4e86\u4e00\u4e2a\u540d\u4e3a Person \u7684 Record \u7c7b\uff0c\u5b83\u6709\u4e24\u4e2a\u5b57\u6bb5\uff1aname \u548c age\u3002Record \u7c7b\u4f1a\u81ea\u52a8\u751f\u6210\u4e00\u4e2a\u5e26\u6709\u8fd9\u4e9b\u5b57\u6bb5\u7684\u6784\u9020\u51fd\u6570\u3001getter \u65b9\u6cd5\u548c equals\u3001hashCode \u548c toString \u65b9\u6cd5\u3002"),(0,a.yg)("h3",{id:"\u589e\u5f3a\u7684-java-\u96c6\u5408\u5e93"},"\u589e\u5f3a\u7684 Java \u96c6\u5408\u5e93"),(0,a.yg)("h4",{id:"of-\u65b9\u6cd5\u521b\u5efa\u4e00\u4e2a\u4e0d\u53ef\u53d8\u7684\u96c6\u5408"},"of() \u65b9\u6cd5\uff1a\u521b\u5efa\u4e00\u4e2a\u4e0d\u53ef\u53d8\u7684\u96c6\u5408"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-Java"},'List list = List.of("apple", "banana", "orange");\nSet set = Set.of(1, 2, 3, 4);\nMap map = Map.of("apple", 1, "banana", 2, "orange", 3);\n')),(0,a.yg)("h4",{id:"foreach-\u65b9\u6cd5\u904d\u5386\u96c6\u5408"},"forEach() \u65b9\u6cd5\uff1a\u904d\u5386\u96c6\u5408"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-Java"},'List list = List.of("apple", "banana", "orange");\nlist.forEach(name -> System.out.println(name));\nSet set = Set.of(1, 2, 3, 4);\nset.forEach(number -> System.out.println(number));\n')),(0,a.yg)("h4",{id:"collectors-\u7c7b\u63d0\u4f9b\u4e86\u4e00\u7cfb\u5217\u7684\u5f52\u7ea6\u64cd\u4f5c"},"Collectors \u7c7b\uff1a\u63d0\u4f9b\u4e86\u4e00\u7cfb\u5217\u7684\u5f52\u7ea6\u64cd\u4f5c"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-Java"},'List list = List.of("apple", "banana", "orange");\nString joinedString = list.stream().collect(Collectors.joining("-", "[", "]"));\nSystem.out.println(joinedString);\n\nMap map = Map.of("apple", 1, "banana", 2, "orange", 3);\nMap reversedMap = map.entrySet().stream().collect(Collectors.toMap(Map.Entry::getValue, Map.Entry::getKey));\nSystem.out.println(reversedMap);\n')),(0,a.yg)("h4",{id:"takewhile-\u65b9\u6cd5\u548c-dropwhile-\u65b9\u6cd5\u6839\u636e\u6761\u4ef6\u622a\u53d6\u96c6\u5408"},"takeWhile() \u65b9\u6cd5\u548c dropWhile() \u65b9\u6cd5\uff1a\u6839\u636e\u6761\u4ef6\u622a\u53d6\u96c6\u5408"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-Java"},"List list = List.of(1, 2, 3, 4, 5, 6, 7);\nList takenList = list.stream().takeWhile(number -> number < 5).collect(Collectors.toList());\nSystem.out.println(takenList);\n\nList dropedList = list.stream().dropWhile(number -> number < 5).collect(Collectors.toList());\nSystem.out.println(dropedList);\n")),(0,a.yg)("h4",{id:"toarrayintfunctiont-\u65b9\u6cd5\u8fd4\u56de\u96c6\u5408\u4e2d\u7684\u6240\u6709\u5143\u7d20\u5230\u4e00\u4e2a\u65b0\u6570\u7ec4\u4e2d"},"toArray(IntFunction) \u65b9\u6cd5\uff1a\u8fd4\u56de\u96c6\u5408\u4e2d\u7684\u6240\u6709\u5143\u7d20\u5230\u4e00\u4e2a\u65b0\u6570\u7ec4\u4e2d"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-Java"},'List list = List.of("apple", "banana", "orange");\nString[] array = list.toArray(String[]::new);\nSystem.out.println(Arrays.toString(array));\n')))}u.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3088],{5680:(e,t,n)=>{n.d(t,{xA:()=>p,yg:()=>y});var r=n(6540);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},g="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),g=c(n),d=a,y=g["".concat(s,".").concat(d)]||g[d]||u[d]||o;return n?r.createElement(y,l(l({ref:t},p),{},{components:n})):r.createElement(y,l({ref:t},p))}));function y(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=d;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[g]="string"==typeof e?e:a,l[1]=i;for(var c=2;c{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var r=n(8168),a=(n(6540),n(5680));const o={},l="JDK17",i={unversionedId:"study/program/JAVA/JDK17",id:"study/program/JAVA/JDK17",title:"JDK17",description:"\u9650\u5236\u7c7b\u7ee7\u627f sealed \u7c7b",source:"@site/docs/study/program/JAVA/JDK17.md",sourceDirName:"study/program/JAVA",slug:"/study/program/JAVA/JDK17",permalink:"/docs/study/program/JAVA/JDK17",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"JDK17-bin",permalink:"/docs/study/program/JAVA/JDK17-bin"},next:{title:"JDK21",permalink:"/docs/study/program/JAVA/JDK21"}},s={},c=[{value:"\u9650\u5236\u7c7b\u7ee7\u627f sealed \u7c7b",id:"\u9650\u5236\u7c7b\u7ee7\u627f-sealed-\u7c7b",level:3},{value:"Pattern Matching for Switch \u8bed\u6cd5",id:"pattern-matching-for-switch-\u8bed\u6cd5",level:3},{value:"Record \u7c7b",id:"record-\u7c7b",level:3},{value:"\u589e\u5f3a\u7684 Java \u96c6\u5408\u5e93",id:"\u589e\u5f3a\u7684-java-\u96c6\u5408\u5e93",level:3},{value:"of() \u65b9\u6cd5\uff1a\u521b\u5efa\u4e00\u4e2a\u4e0d\u53ef\u53d8\u7684\u96c6\u5408",id:"of-\u65b9\u6cd5\u521b\u5efa\u4e00\u4e2a\u4e0d\u53ef\u53d8\u7684\u96c6\u5408",level:4},{value:"forEach() \u65b9\u6cd5\uff1a\u904d\u5386\u96c6\u5408",id:"foreach-\u65b9\u6cd5\u904d\u5386\u96c6\u5408",level:4},{value:"Collectors \u7c7b\uff1a\u63d0\u4f9b\u4e86\u4e00\u7cfb\u5217\u7684\u5f52\u7ea6\u64cd\u4f5c",id:"collectors-\u7c7b\u63d0\u4f9b\u4e86\u4e00\u7cfb\u5217\u7684\u5f52\u7ea6\u64cd\u4f5c",level:4},{value:"takeWhile() \u65b9\u6cd5\u548c dropWhile() \u65b9\u6cd5\uff1a\u6839\u636e\u6761\u4ef6\u622a\u53d6\u96c6\u5408",id:"takewhile-\u65b9\u6cd5\u548c-dropwhile-\u65b9\u6cd5\u6839\u636e\u6761\u4ef6\u622a\u53d6\u96c6\u5408",level:4},{value:"toArray(IntFunction<T[]>) \u65b9\u6cd5\uff1a\u8fd4\u56de\u96c6\u5408\u4e2d\u7684\u6240\u6709\u5143\u7d20\u5230\u4e00\u4e2a\u65b0\u6570\u7ec4\u4e2d",id:"toarrayintfunctiont-\u65b9\u6cd5\u8fd4\u56de\u96c6\u5408\u4e2d\u7684\u6240\u6709\u5143\u7d20\u5230\u4e00\u4e2a\u65b0\u6570\u7ec4\u4e2d",level:4}],p={toc:c},g="wrapper";function u(e){let{components:t,...n}=e;return(0,a.yg)(g,(0,r.A)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"jdk17"},"JDK17"),(0,a.yg)("h3",{id:"\u9650\u5236\u7c7b\u7ee7\u627f-sealed-\u7c7b"},"\u9650\u5236\u7c7b\u7ee7\u627f sealed \u7c7b"),(0,a.yg)("p",null,"Sealed \u7c7b\u662f\u4e00\u79cd\u65b0\u7684\u7c7b\u4fee\u9970\u7b26\uff0c\u7528\u4e8e\u9650\u5236\u7c7b\u7684\u7ee7\u627f\u3002Sealed \u7c7b\u53ef\u4ee5\u63a7\u5236\u54ea\u4e9b\u7c7b\u53ef\u4ee5\u7ee7\u627f\u81ea\u5b83\uff0c\u8fd9\u6837\u53ef\u4ee5\u4f7f\u5f97\u4ee3\u7801\u66f4\u52a0\u5b89\u5168\u3001\u53ef\u7ef4\u62a4\u3002Sealed \u7c7b\u7684\u4f7f\u7528\u53ef\u4ee5\u5728\u7f16\u8bd1\u65f6\u5f3a\u5236\u6267\u884c\u4e00\u4e9b\u89c4\u5219\uff0c\u4ece\u800c\u907f\u514d\u8fd0\u884c\u65f6\u9519\u8bef\u3002"),(0,a.yg)("h3",{id:"pattern-matching-for-switch-\u8bed\u6cd5"},"Pattern Matching for Switch \u8bed\u6cd5"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-Java"},'public static void main(String[] args) {\n Object obj = "hello";\n\n switch (obj) {\n case String s && s.length() > 5 -> System.out.println("\u957f\u5b57\u7b26\u4e32");\n case String s -> System.out.println("\u77ed\u5b57\u7b26\u4e32");\n case Integer i -> System.out.println("\u6574\u578b\u6570");\n default -> System.out.println("\u4e0d\u652f\u6301\u7684\u7c7b\u578b");\n }\n}\n')),(0,a.yg)("h3",{id:"record-\u7c7b"},"Record \u7c7b"),(0,a.yg)("p",null,"Record \u7c7b\u662f\u4e00\u79cd\u65b0\u7684\u6570\u636e\u7c7b\uff0c\u53ef\u4ee5\u7528\u4e8e\u5b9a\u4e49\u53ea\u6709\u5c5e\u6027\u548c\u8bbf\u95ee\u5668\u7684\u7b80\u5355\u6570\u636e\u5bf9\u8c61\u3002Record \u7c7b\u53ef\u4ee5\u7b80\u5316\u4ee3\u7801\uff0c\u4f7f\u5f97\u4ee3\u7801\u66f4\u52a0\u6613\u8bfb\u3001\u6613\u7ef4\u62a4\u3002Record \u7c7b\u7684\u4f7f\u7528\u53ef\u4ee5\u51cf\u5c11\u4ee3\u7801\u91cf\uff0c\u907f\u514d\u51fa\u73b0\u5927\u91cf\u7684 getter \u548c setter \u65b9\u6cd5\u3002"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-Java"},'public record Person(String name, int age) {}\n\npublic class RecordExample {\n public static void main(String[] args) {\n Person person = new Person("John", 30);\n\n System.out.println("Name: " + person.name());\n System.out.println("Age: " + person.age());\n }\n}\n')),(0,a.yg)("p",null,"\u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u5b9a\u4e49\u4e86\u4e00\u4e2a\u540d\u4e3a Person \u7684 Record \u7c7b\uff0c\u5b83\u6709\u4e24\u4e2a\u5b57\u6bb5\uff1aname \u548c age\u3002Record \u7c7b\u4f1a\u81ea\u52a8\u751f\u6210\u4e00\u4e2a\u5e26\u6709\u8fd9\u4e9b\u5b57\u6bb5\u7684\u6784\u9020\u51fd\u6570\u3001getter \u65b9\u6cd5\u548c equals\u3001hashCode \u548c toString \u65b9\u6cd5\u3002"),(0,a.yg)("h3",{id:"\u589e\u5f3a\u7684-java-\u96c6\u5408\u5e93"},"\u589e\u5f3a\u7684 Java \u96c6\u5408\u5e93"),(0,a.yg)("h4",{id:"of-\u65b9\u6cd5\u521b\u5efa\u4e00\u4e2a\u4e0d\u53ef\u53d8\u7684\u96c6\u5408"},"of() \u65b9\u6cd5\uff1a\u521b\u5efa\u4e00\u4e2a\u4e0d\u53ef\u53d8\u7684\u96c6\u5408"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-Java"},'List list = List.of("apple", "banana", "orange");\nSet set = Set.of(1, 2, 3, 4);\nMap map = Map.of("apple", 1, "banana", 2, "orange", 3);\n')),(0,a.yg)("h4",{id:"foreach-\u65b9\u6cd5\u904d\u5386\u96c6\u5408"},"forEach() \u65b9\u6cd5\uff1a\u904d\u5386\u96c6\u5408"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-Java"},'List list = List.of("apple", "banana", "orange");\nlist.forEach(name -> System.out.println(name));\nSet set = Set.of(1, 2, 3, 4);\nset.forEach(number -> System.out.println(number));\n')),(0,a.yg)("h4",{id:"collectors-\u7c7b\u63d0\u4f9b\u4e86\u4e00\u7cfb\u5217\u7684\u5f52\u7ea6\u64cd\u4f5c"},"Collectors \u7c7b\uff1a\u63d0\u4f9b\u4e86\u4e00\u7cfb\u5217\u7684\u5f52\u7ea6\u64cd\u4f5c"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-Java"},'List list = List.of("apple", "banana", "orange");\nString joinedString = list.stream().collect(Collectors.joining("-", "[", "]"));\nSystem.out.println(joinedString);\n\nMap map = Map.of("apple", 1, "banana", 2, "orange", 3);\nMap reversedMap = map.entrySet().stream().collect(Collectors.toMap(Map.Entry::getValue, Map.Entry::getKey));\nSystem.out.println(reversedMap);\n')),(0,a.yg)("h4",{id:"takewhile-\u65b9\u6cd5\u548c-dropwhile-\u65b9\u6cd5\u6839\u636e\u6761\u4ef6\u622a\u53d6\u96c6\u5408"},"takeWhile() \u65b9\u6cd5\u548c dropWhile() \u65b9\u6cd5\uff1a\u6839\u636e\u6761\u4ef6\u622a\u53d6\u96c6\u5408"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-Java"},"List list = List.of(1, 2, 3, 4, 5, 6, 7);\nList takenList = list.stream().takeWhile(number -> number < 5).collect(Collectors.toList());\nSystem.out.println(takenList);\n\nList dropedList = list.stream().dropWhile(number -> number < 5).collect(Collectors.toList());\nSystem.out.println(dropedList);\n")),(0,a.yg)("h4",{id:"toarrayintfunctiont-\u65b9\u6cd5\u8fd4\u56de\u96c6\u5408\u4e2d\u7684\u6240\u6709\u5143\u7d20\u5230\u4e00\u4e2a\u65b0\u6570\u7ec4\u4e2d"},"toArray(IntFunction) \u65b9\u6cd5\uff1a\u8fd4\u56de\u96c6\u5408\u4e2d\u7684\u6240\u6709\u5143\u7d20\u5230\u4e00\u4e2a\u65b0\u6570\u7ec4\u4e2d"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-Java"},'List list = List.of("apple", "banana", "orange");\nString[] array = list.toArray(String[]::new);\nSystem.out.println(Arrays.toString(array));\n')))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c9e57e8c.6db6e867.js b/assets/js/c9e57e8c.6e03f511.js similarity index 99% rename from assets/js/c9e57e8c.6db6e867.js rename to assets/js/c9e57e8c.6e03f511.js index 9c2585305..ae6c5f197 100644 --- a/assets/js/c9e57e8c.6db6e867.js +++ b/assets/js/c9e57e8c.6e03f511.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8194],{5680:(e,t,n)=>{n.d(t,{xA:()=>y,yg:()=>g});var r=n(6540);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var p=r.createContext({}),c=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},y=function(e){var t=c(e.components);return r.createElement(p.Provider,{value:t},e.children)},u="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,a=e.originalType,p=e.parentName,y=o(e,["components","mdxType","originalType","parentName"]),u=c(n),d=i,g=u["".concat(p,".").concat(d)]||u[d]||s[d]||a;return n?r.createElement(g,l(l({ref:t},y),{},{components:n})):r.createElement(g,l({ref:t},y))}));function g(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=n.length,l=new Array(a);l[0]=d;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[u]="string"==typeof e?e:i,l[1]=o;for(var c=2;c{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>s,frontMatter:()=>a,metadata:()=>o,toc:()=>c});var r=n(8168),i=(n(6540),n(5680));const a={},l=void 0,o={unversionedId:"study/db/NewSQL/TiDB",id:"study/db/NewSQL/TiDB",title:"TiDB",description:"\u80cc\u666f",source:"@site/docs/study/db/NewSQL/TiDB.md",sourceDirName:"study/db/NewSQL",slug:"/study/db/NewSQL/TiDB",permalink:"/docs/study/db/NewSQL/TiDB",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u7efc\u5408",permalink:"/docs/study/db/\u7efc\u5408"},next:{title:"Cassandra",permalink:"/docs/study/db/NoSQL/Cassandra"}},p={},c=[{value:"\u80cc\u666f",id:"\u80cc\u666f",level:3},{value:"\u66ff\u6362 MySQL Sharding(\u5206\u7247) \u4f5c\u4e3a\u4e3b\u751f\u4ea7\u6570\u636e\u5e93",id:"\u66ff\u6362-mysql-sharding\u5206\u7247-\u4f5c\u4e3a\u4e3b\u751f\u4ea7\u6570\u636e\u5e93",level:4},{value:"\u66ff\u6362 HBase/C*/ES \u7b49 NoSQL \u6570\u636e\u5e93",id:"\u66ff\u6362-hbaseces-\u7b49-nosql-\u6570\u636e\u5e93",level:4},{value:"\u4f7f\u7528 TiDB \u4f5c\u4e3a HTAP \u6570\u636e\u5e93\uff08\u5b9e\u65f6\u4e8b\u52a1+\u5b9e\u65f6\u5206\u6790\uff09",id:"\u4f7f\u7528-tidb-\u4f5c\u4e3a-htap-\u6570\u636e\u5e93\u5b9e\u65f6\u4e8b\u52a1\u5b9e\u65f6\u5206\u6790",level:4},{value:"\u7b80\u4ecb",id:"\u7b80\u4ecb",level:3},{value:"\u76ee\u524d\u72b6\u51b5(V3.0)",id:"\u76ee\u524d\u72b6\u51b5v30",level:3}],y={toc:c},u="wrapper";function s(e){let{components:t,...n}=e;return(0,i.yg)(u,(0,r.A)({},y,n,{components:t,mdxType:"MDXLayout"}),(0,i.yg)("h3",{id:"\u80cc\u666f"},"\u80cc\u666f"),(0,i.yg)("h4",{id:"\u66ff\u6362-mysql-sharding\u5206\u7247-\u4f5c\u4e3a\u4e3b\u751f\u4ea7\u6570\u636e\u5e93"},"\u66ff\u6362 MySQL Sharding(\u5206\u7247) \u4f5c\u4e3a\u4e3b\u751f\u4ea7\u6570\u636e\u5e93"),(0,i.yg)("p",null,"\u8fd9\u4e2a\u573a\u666f\u5176\u5b9e\u662f TiDB \u8bbe\u8ba1\u7684\u521d\u8877\uff0c\u5728\u5355\u673a MySQL \u6570\u636e\u91cf\u592a\u5927\u540e\uff0c\u8fc7\u53bb\u80fd\u9009\u7684\u57fa\u672c\u5c31\u662f\u5206\u5e93\u5206\u8868\uff0c\u518d\u5206\u4e0d\u5f00\u7684\u8bdd\u5c31\u53ea\u80fd Sharding\uff0c\u4f46\u662f\u5206\u5e93\u5206\u8868\u3001Sharding\uff0c\u5176\u5b9e\u4e0d\u7ba1\u662f\u7ef4\u62a4\u6210\u672c\u548c\u5f00\u53d1\u6539\u9020\u6210\u672c\u90fd\u5f88\u9ad8\uff0c\u6240\u4ee5 TiDB \u7ed9\u8fd9\u4e9b\u7528\u6237\u63d0\u4f9b\u4e86\u4e00\u4e2a\u53ef\u4ee5\u5f39\u6027\u6269\u5c55\u7684\uff0c\u7528\u8d77\u6765\u5c31\u50cf\u5355\u673a MySQL \u4e00\u6837\u7684\uff0c\u652f\u6301\u4e8b\u52a1\u548c\u590d\u6742\u67e5\u8be2\u7684\u5206\u5e03\u5f0f\u6570\u636e\u5e93\uff0c\u540c\u65f6\u8fd8\u652f\u6301\u591a\u526f\u672c\u81ea\u52a8\u7684\u9ad8\u53ef\u7528\uff0c\u5f53\u7136\u5f88\u723d\u3002"),(0,i.yg)("p",null,"\u8fd9\u90e8\u5206\u7528\u6237\u4e00\u822c\u4e00\u5f00\u59cb\u4e0a\u7ebf\u524d\u90fd\u4f1a\u7528 TiDB \u7684 ",(0,i.yg)("a",{parentName:"p",href:"https://link.zhihu.com/?target=https%3A//github.com/pingcap/docs-cn/blob/master/tools/syncer.md"},"Syncer"),"\uff0c \u5c06 TiDB \u96c6\u7fa4\u4f5c\u4e3a\u7ebf\u4e0a MySQL \u7684\u4ece\u5e93\uff0c\u5b9e\u65f6\u540c\u6b65\u7ebf\u4e0a\u7684 MySQL \u4e3b\u5e93\uff0c\u89c2\u5bdf\u4e00\u6bb5\u65f6\u95f4\u7a33\u5b9a\u6027\u517c\u5bb9\u6027\u3001\u8fdb\u884c\u538b\u529b\u6d4b\u8bd5\u540e\uff0c\u76f4\u63a5\u5c06\u7ebf\u4e0a\u5e93\u6307\u5411 TiDB\uff0c\u4e0d\u7528\u4fee\u6539\u4e00\u884c\u4ee3\u7801\u3002"),(0,i.yg)("h4",{id:"\u66ff\u6362-hbaseces-\u7b49-nosql-\u6570\u636e\u5e93"},"\u66ff\u6362 HBase/C*/ES \u7b49 NoSQL \u6570\u636e\u5e93"),(0,i.yg)("p",null,"\u8fd9\u7c7b\u7528\u6237\u4e3b\u8981\u662f\u8fc7\u53bb\u7528\u7740 NoSQL\uff0c\u5e0c\u671b\u5728\u62e5\u6709\u5f39\u6027\u4f38\u7f29\u80fd\u529b\uff0c\u53ef\u4ee5\u7ebf\u6027\u6269\u5c55\u7684\u5b9e\u65f6\u5e76\u53d1\u5199\u5165\u80fd\u529b\uff0c\u518d\u80fd\u62e5\u6709\u66f4\u5f3a\u5927\u7684\u67e5\u8be2\u80fd\u529b\uff0c\u6bd4\u5982\u4e8c\u7ea7\u7d22\u5f15\u70b9\u67e5\uff0c\u6bd4\u5982\u590d\u6742\u7684 Join \u652f\u6301\u3002\u5178\u578b\u7684\u5e94\u7528\u573a\u666f\u662f\u5ba2\u670d\u67e5\u8be2\uff0cUser profile \u7cfb\u7edf\u7b49\u7b49\u3002\n\u901a\u5e38\u8fd9\u7c7b\u7528\u6237\u7684\u6570\u636e\u91cf\u5de8\u5927\uff0c\u53ef\u80fd\u5355\u5e93\u90fd\u6709\u4e0a\u767e T\uff0cTiDB \u80fd\u5f88\u597d\u7684\u6ee1\u8db3\uff1a"),(0,i.yg)("ol",null,(0,i.yg)("li",{parentName:"ol"},"\u5927\u6d77\u635e\u9488\u5f0f\u7684\u7cbe\u51c6\u67e5\u8be2"),(0,i.yg)("li",{parentName:"ol"},"Ad-hoc \u5206\u6790")),(0,i.yg)("p",null,"\u8fd9\u4e00\u5207\u90fd\u662f\u5728\u4e0d\u727a\u7272\u5b9e\u65f6\u5199\u5165\u80fd\u529b\u7684\u540c\u65f6\u62e5\u6709\u7684\u3002"),(0,i.yg)("h4",{id:"\u4f7f\u7528-tidb-\u4f5c\u4e3a-htap-\u6570\u636e\u5e93\u5b9e\u65f6\u4e8b\u52a1\u5b9e\u65f6\u5206\u6790"},"\u4f7f\u7528 TiDB \u4f5c\u4e3a HTAP \u6570\u636e\u5e93\uff08\u5b9e\u65f6\u4e8b\u52a1+\u5b9e\u65f6\u5206\u6790\uff09"),(0,i.yg)("p",null,"\u8fd9\u7c7b\u7528\u6237\u662f\u5728\u521a\u5f00\u59cb\u505a TiDB \u7684\u65f6\u5019\u5b8c\u5168\u6ca1\u60f3\u5230\u7684\uff0c\u968f\u7740 TiDB \u7684 SQL \u80fd\u529b\u8d8a\u6765\u8d8a\u5f3a\uff0c\u5e76\u4e14\u968f\u7740 TiDB \u7684\u5b50\u9879\u76ee TiSpark \u7684\u53d1\u5e03\uff0c\u8ba9\u7528\u6237\u5728\u62e5\u6709\u5173\u7cfb\u6570\u636e\u5e93\u7684\u4e8b\u52a1\u5199\u5165\u80fd\u529b\u540c\u65f6\u53ef\u4ee5\u5728\u540c\u4e00\u4efd\u6570\u636e\u4e0a\u8fdb\u884c\u590d\u6742\u7684\u5206\u6790\uff1b\u8fd9\u7c7b\u7528\u6237\u4e00\u822c\u7528 Syncer \u5c06\u6240\u6709\u7ebf\u4e0a\u751f\u4ea7\u6570\u636e\u5e93\u540c\u6b65\u5230\u4e00\u4e2a\u5927\u7684 TiDB \u96c6\u7fa4\u4e0a\uff08Syncer \u652f\u6301\u591a\u6e90\u540c\u6b65\uff0c\u5408\u5e76\u5206\u5e93\u5206\u8868\u7b49\u529f\u80fd\uff09\uff0c\u7136\u540e\u76f4\u63a5\u5728\u8fd9\u4e2a TiDB Cluster \u4e0a\u901a\u8fc7 TiDB \u6216\u8005 TiSpark \u8fdb\u884c\u5206\u6790\u3002"),(0,i.yg)("h3",{id:"\u7b80\u4ecb"},"\u7b80\u4ecb"),(0,i.yg)("p",null,"TiDB \u662f PingCAP \u516c\u53f8\u8bbe\u8ba1\u7684\u5f00\u6e90\u5206\u5e03\u5f0f HTAP (Hybrid Transactional and Analytical Processing) \u6570\u636e\u5e93\uff0c\u7ed3\u5408\u4e86\u4f20\u7edf\u7684 RDBMS \u548c NoSQL \u7684\u6700\u4f73\u7279\u6027\u3002TiDB \u517c\u5bb9 MySQL\uff0c\u652f\u6301\u65e0\u9650\u7684\u6c34\u5e73\u6269\u5c55\uff0c\u5177\u5907\u5f3a\u4e00\u81f4\u6027\u548c\u9ad8\u53ef\u7528\u6027\u3002TiDB \u7684\u76ee\u6807\u662f\u4e3a OLTP (Online Transactional Processing) \u548c OLAP (Online Analytical Processing) \u573a\u666f\u63d0\u4f9b\u4e00\u7ad9\u5f0f\u7684\u89e3\u51b3\u65b9\u6848\u3002"),(0,i.yg)("p",null,"TiDB \u5177\u5907\u5982\u4e0b\u7279\u6027\uff1a"),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},"\u9ad8\u5ea6\u517c\u5bb9 MySQL\n\u5927\u591a\u6570\u60c5\u51b5\u4e0b\uff0c\u65e0\u9700\u4fee\u6539\u4ee3\u7801\u5373\u53ef\u4ece MySQL \u8f7b\u677e\u8fc1\u79fb\u81f3 TiDB\uff0c\u5206\u5e93\u5206\u8868\u540e\u7684 MySQL \u96c6\u7fa4\u4ea6\u53ef\u901a\u8fc7 TiDB \u5de5\u5177\u8fdb\u884c\u5b9e\u65f6\u8fc1\u79fb\u3002"),(0,i.yg)("li",{parentName:"ul"},"\u6c34\u5e73\u5f39\u6027\u6269\u5c55\n\u901a\u8fc7\u7b80\u5355\u5730\u589e\u52a0\u65b0\u8282\u70b9\u5373\u53ef\u5b9e\u73b0 TiDB \u7684\u6c34\u5e73\u6269\u5c55\uff0c\u6309\u9700\u6269\u5c55\u541e\u5410\u6216\u5b58\u50a8\uff0c\u8f7b\u677e\u5e94\u5bf9\u9ad8\u5e76\u53d1\u3001\u6d77\u91cf\u6570\u636e\u573a\u666f\u3002"),(0,i.yg)("li",{parentName:"ul"},"\u5206\u5e03\u5f0f\u4e8b\u52a1\nTiDB 100% \u652f\u6301\u6807\u51c6\u7684 ACID \u4e8b\u52a1\u3002"),(0,i.yg)("li",{parentName:"ul"},"\u771f\u6b63\u91d1\u878d\u7ea7\u9ad8\u53ef\u7528\n\u76f8\u6bd4\u4e8e\u4f20\u7edf\u4e3b\u4ece (M-S) \u590d\u5236\u65b9\u6848\uff0c\u57fa\u4e8e Raft \u7684\u591a\u6570\u6d3e\u9009\u4e3e\u534f\u8bae\u53ef\u4ee5\u63d0\u4f9b\u91d1\u878d\u7ea7\u7684 100% \u6570\u636e\u5f3a\u4e00\u81f4\u6027\u4fdd\u8bc1\uff0c\u4e14\u5728\u4e0d\u4e22\u5931\u5927\u591a\u6570\u526f\u672c\u7684\u524d\u63d0\u4e0b\uff0c\u53ef\u4ee5\u5b9e\u73b0\u6545\u969c\u7684\u81ea\u52a8\u6062\u590d (auto-failover)\uff0c\u65e0\u9700\u4eba\u5de5\u4ecb\u5165\u3002"),(0,i.yg)("li",{parentName:"ul"},"\u4e00\u7ad9\u5f0f HTAP \u89e3\u51b3\u65b9\u6848\nTiDB \u4f5c\u4e3a\u5178\u578b\u7684 OLTP \u884c\u5b58\u6570\u636e\u5e93\uff0c\u540c\u65f6\u517c\u5177\u5f3a\u5927\u7684 OLAP \u6027\u80fd\uff0c\u914d\u5408 TiSpark\uff0c\u53ef\u63d0\u4f9b\u4e00\u7ad9\u5f0f HTAP \u89e3\u51b3\u65b9\u6848\uff0c\u4e00\u4efd\u5b58\u50a8\u540c\u65f6\u5904\u7406 OLTP & OLAP\uff0c\u65e0\u9700\u4f20\u7edf\u7e41\u7410\u7684 ETL \u8fc7\u7a0b\u3002"),(0,i.yg)("li",{parentName:"ul"},"\u4e91\u539f\u751f SQL \u6570\u636e\u5e93\nTiDB \u662f\u4e3a\u4e91\u800c\u8bbe\u8ba1\u7684\u6570\u636e\u5e93\uff0c\u652f\u6301\u516c\u6709\u4e91\u3001\u79c1\u6709\u4e91\u548c\u6df7\u5408\u4e91\uff0c\u4f7f\u90e8\u7f72\u3001\u914d\u7f6e\u548c\u7ef4\u62a4\u53d8\u5f97\u5341\u5206\u7b80\u5355\u3002")),(0,i.yg)("p",null,"TiDB \u7684\u8bbe\u8ba1\u76ee\u6807\u662f 100% \u7684 OLTP \u573a\u666f\u548c 80% \u7684 OLAP \u573a\u666f\uff0c\u66f4\u590d\u6742\u7684 OLAP \u5206\u6790\u53ef\u4ee5\u901a\u8fc7 TiSpark \u9879\u76ee\u6765\u5b8c\u6210\u3002"),(0,i.yg)("p",null,"TiDB \u5bf9\u4e1a\u52a1\u6ca1\u6709\u4efb\u4f55\u4fb5\u5165\u6027\uff0c\u80fd\u4f18\u96c5\u7684\u66ff\u6362\u4f20\u7edf\u7684\u6570\u636e\u5e93\u4e2d\u95f4\u4ef6\u3001\u6570\u636e\u5e93\u5206\u5e93\u5206\u8868\u7b49 Sharding \u65b9\u6848\u3002\u540c\u65f6\u5b83\u4e5f\u8ba9\u5f00\u53d1\u8fd0\u7ef4\u4eba\u5458\u4e0d\u7528\u5173\u6ce8\u6570\u636e\u5e93 Scale \u7684\u7ec6\u8282\u95ee\u9898\uff0c\u4e13\u6ce8\u4e8e\u4e1a\u52a1\u5f00\u53d1\uff0c\u6781\u5927\u7684\u63d0\u5347\u7814\u53d1\u7684\u751f\u4ea7\u529b\u3002"),(0,i.yg)("p",null,"\u4e09\u7bc7\u6587\u7ae0\u4e86\u89e3 TiDB \u6280\u672f\u5185\u5e55\uff1a"),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("a",{parentName:"li",href:"https://pingcap.com/blog-cn/tidb-internal-1/"},"\u8bf4\u5b58\u50a8")),(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("a",{parentName:"li",href:"https://pingcap.com/blog-cn/tidb-internal-2/"},"\u8bf4\u8ba1\u7b97")),(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("a",{parentName:"li",href:"https://pingcap.com/blog-cn/tidb-internal-3/"},"\u8c08\u8c03\u5ea6"))),(0,i.yg)("h3",{id:"\u76ee\u524d\u72b6\u51b5v30"},"\u76ee\u524d\u72b6\u51b5(V3.0)"),(0,i.yg)("p",null,"TiDB \u76ee\u524d\u8fd8\u4e0d\u652f\u6301\u89e6\u53d1\u5668\u3001\u5b58\u50a8\u8fc7\u7a0b\u3001\u81ea\u5b9a\u4e49\u51fd\u6570\u3001\u5916\u952e\uff0c\u9664\u6b64\u4e4b\u5916\uff0cTiDB \u652f\u6301\u7edd\u5927\u90e8\u5206 MySQL 5.7 \u7684\u8bed\u6cd5\u3002"))}s.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8194],{5680:(e,t,n)=>{n.d(t,{xA:()=>y,yg:()=>g});var r=n(6540);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var p=r.createContext({}),c=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},y=function(e){var t=c(e.components);return r.createElement(p.Provider,{value:t},e.children)},u="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,a=e.originalType,p=e.parentName,y=o(e,["components","mdxType","originalType","parentName"]),u=c(n),d=i,g=u["".concat(p,".").concat(d)]||u[d]||s[d]||a;return n?r.createElement(g,l(l({ref:t},y),{},{components:n})):r.createElement(g,l({ref:t},y))}));function g(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=n.length,l=new Array(a);l[0]=d;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[u]="string"==typeof e?e:i,l[1]=o;for(var c=2;c{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>s,frontMatter:()=>a,metadata:()=>o,toc:()=>c});var r=n(8168),i=(n(6540),n(5680));const a={},l=void 0,o={unversionedId:"study/db/NewSQL/TiDB",id:"study/db/NewSQL/TiDB",title:"TiDB",description:"\u80cc\u666f",source:"@site/docs/study/db/NewSQL/TiDB.md",sourceDirName:"study/db/NewSQL",slug:"/study/db/NewSQL/TiDB",permalink:"/docs/study/db/NewSQL/TiDB",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u7efc\u5408",permalink:"/docs/study/db/\u7efc\u5408"},next:{title:"Cassandra",permalink:"/docs/study/db/NoSQL/Cassandra"}},p={},c=[{value:"\u80cc\u666f",id:"\u80cc\u666f",level:3},{value:"\u66ff\u6362 MySQL Sharding(\u5206\u7247) \u4f5c\u4e3a\u4e3b\u751f\u4ea7\u6570\u636e\u5e93",id:"\u66ff\u6362-mysql-sharding\u5206\u7247-\u4f5c\u4e3a\u4e3b\u751f\u4ea7\u6570\u636e\u5e93",level:4},{value:"\u66ff\u6362 HBase/C*/ES \u7b49 NoSQL \u6570\u636e\u5e93",id:"\u66ff\u6362-hbaseces-\u7b49-nosql-\u6570\u636e\u5e93",level:4},{value:"\u4f7f\u7528 TiDB \u4f5c\u4e3a HTAP \u6570\u636e\u5e93\uff08\u5b9e\u65f6\u4e8b\u52a1+\u5b9e\u65f6\u5206\u6790\uff09",id:"\u4f7f\u7528-tidb-\u4f5c\u4e3a-htap-\u6570\u636e\u5e93\u5b9e\u65f6\u4e8b\u52a1\u5b9e\u65f6\u5206\u6790",level:4},{value:"\u7b80\u4ecb",id:"\u7b80\u4ecb",level:3},{value:"\u76ee\u524d\u72b6\u51b5(V3.0)",id:"\u76ee\u524d\u72b6\u51b5v30",level:3}],y={toc:c},u="wrapper";function s(e){let{components:t,...n}=e;return(0,i.yg)(u,(0,r.A)({},y,n,{components:t,mdxType:"MDXLayout"}),(0,i.yg)("h3",{id:"\u80cc\u666f"},"\u80cc\u666f"),(0,i.yg)("h4",{id:"\u66ff\u6362-mysql-sharding\u5206\u7247-\u4f5c\u4e3a\u4e3b\u751f\u4ea7\u6570\u636e\u5e93"},"\u66ff\u6362 MySQL Sharding(\u5206\u7247) \u4f5c\u4e3a\u4e3b\u751f\u4ea7\u6570\u636e\u5e93"),(0,i.yg)("p",null,"\u8fd9\u4e2a\u573a\u666f\u5176\u5b9e\u662f TiDB \u8bbe\u8ba1\u7684\u521d\u8877\uff0c\u5728\u5355\u673a MySQL \u6570\u636e\u91cf\u592a\u5927\u540e\uff0c\u8fc7\u53bb\u80fd\u9009\u7684\u57fa\u672c\u5c31\u662f\u5206\u5e93\u5206\u8868\uff0c\u518d\u5206\u4e0d\u5f00\u7684\u8bdd\u5c31\u53ea\u80fd Sharding\uff0c\u4f46\u662f\u5206\u5e93\u5206\u8868\u3001Sharding\uff0c\u5176\u5b9e\u4e0d\u7ba1\u662f\u7ef4\u62a4\u6210\u672c\u548c\u5f00\u53d1\u6539\u9020\u6210\u672c\u90fd\u5f88\u9ad8\uff0c\u6240\u4ee5 TiDB \u7ed9\u8fd9\u4e9b\u7528\u6237\u63d0\u4f9b\u4e86\u4e00\u4e2a\u53ef\u4ee5\u5f39\u6027\u6269\u5c55\u7684\uff0c\u7528\u8d77\u6765\u5c31\u50cf\u5355\u673a MySQL \u4e00\u6837\u7684\uff0c\u652f\u6301\u4e8b\u52a1\u548c\u590d\u6742\u67e5\u8be2\u7684\u5206\u5e03\u5f0f\u6570\u636e\u5e93\uff0c\u540c\u65f6\u8fd8\u652f\u6301\u591a\u526f\u672c\u81ea\u52a8\u7684\u9ad8\u53ef\u7528\uff0c\u5f53\u7136\u5f88\u723d\u3002"),(0,i.yg)("p",null,"\u8fd9\u90e8\u5206\u7528\u6237\u4e00\u822c\u4e00\u5f00\u59cb\u4e0a\u7ebf\u524d\u90fd\u4f1a\u7528 TiDB \u7684 ",(0,i.yg)("a",{parentName:"p",href:"https://link.zhihu.com/?target=https%3A//github.com/pingcap/docs-cn/blob/master/tools/syncer.md"},"Syncer"),"\uff0c \u5c06 TiDB \u96c6\u7fa4\u4f5c\u4e3a\u7ebf\u4e0a MySQL \u7684\u4ece\u5e93\uff0c\u5b9e\u65f6\u540c\u6b65\u7ebf\u4e0a\u7684 MySQL \u4e3b\u5e93\uff0c\u89c2\u5bdf\u4e00\u6bb5\u65f6\u95f4\u7a33\u5b9a\u6027\u517c\u5bb9\u6027\u3001\u8fdb\u884c\u538b\u529b\u6d4b\u8bd5\u540e\uff0c\u76f4\u63a5\u5c06\u7ebf\u4e0a\u5e93\u6307\u5411 TiDB\uff0c\u4e0d\u7528\u4fee\u6539\u4e00\u884c\u4ee3\u7801\u3002"),(0,i.yg)("h4",{id:"\u66ff\u6362-hbaseces-\u7b49-nosql-\u6570\u636e\u5e93"},"\u66ff\u6362 HBase/C*/ES \u7b49 NoSQL \u6570\u636e\u5e93"),(0,i.yg)("p",null,"\u8fd9\u7c7b\u7528\u6237\u4e3b\u8981\u662f\u8fc7\u53bb\u7528\u7740 NoSQL\uff0c\u5e0c\u671b\u5728\u62e5\u6709\u5f39\u6027\u4f38\u7f29\u80fd\u529b\uff0c\u53ef\u4ee5\u7ebf\u6027\u6269\u5c55\u7684\u5b9e\u65f6\u5e76\u53d1\u5199\u5165\u80fd\u529b\uff0c\u518d\u80fd\u62e5\u6709\u66f4\u5f3a\u5927\u7684\u67e5\u8be2\u80fd\u529b\uff0c\u6bd4\u5982\u4e8c\u7ea7\u7d22\u5f15\u70b9\u67e5\uff0c\u6bd4\u5982\u590d\u6742\u7684 Join \u652f\u6301\u3002\u5178\u578b\u7684\u5e94\u7528\u573a\u666f\u662f\u5ba2\u670d\u67e5\u8be2\uff0cUser profile \u7cfb\u7edf\u7b49\u7b49\u3002\n\u901a\u5e38\u8fd9\u7c7b\u7528\u6237\u7684\u6570\u636e\u91cf\u5de8\u5927\uff0c\u53ef\u80fd\u5355\u5e93\u90fd\u6709\u4e0a\u767e T\uff0cTiDB \u80fd\u5f88\u597d\u7684\u6ee1\u8db3\uff1a"),(0,i.yg)("ol",null,(0,i.yg)("li",{parentName:"ol"},"\u5927\u6d77\u635e\u9488\u5f0f\u7684\u7cbe\u51c6\u67e5\u8be2"),(0,i.yg)("li",{parentName:"ol"},"Ad-hoc \u5206\u6790")),(0,i.yg)("p",null,"\u8fd9\u4e00\u5207\u90fd\u662f\u5728\u4e0d\u727a\u7272\u5b9e\u65f6\u5199\u5165\u80fd\u529b\u7684\u540c\u65f6\u62e5\u6709\u7684\u3002"),(0,i.yg)("h4",{id:"\u4f7f\u7528-tidb-\u4f5c\u4e3a-htap-\u6570\u636e\u5e93\u5b9e\u65f6\u4e8b\u52a1\u5b9e\u65f6\u5206\u6790"},"\u4f7f\u7528 TiDB \u4f5c\u4e3a HTAP \u6570\u636e\u5e93\uff08\u5b9e\u65f6\u4e8b\u52a1+\u5b9e\u65f6\u5206\u6790\uff09"),(0,i.yg)("p",null,"\u8fd9\u7c7b\u7528\u6237\u662f\u5728\u521a\u5f00\u59cb\u505a TiDB \u7684\u65f6\u5019\u5b8c\u5168\u6ca1\u60f3\u5230\u7684\uff0c\u968f\u7740 TiDB \u7684 SQL \u80fd\u529b\u8d8a\u6765\u8d8a\u5f3a\uff0c\u5e76\u4e14\u968f\u7740 TiDB \u7684\u5b50\u9879\u76ee TiSpark \u7684\u53d1\u5e03\uff0c\u8ba9\u7528\u6237\u5728\u62e5\u6709\u5173\u7cfb\u6570\u636e\u5e93\u7684\u4e8b\u52a1\u5199\u5165\u80fd\u529b\u540c\u65f6\u53ef\u4ee5\u5728\u540c\u4e00\u4efd\u6570\u636e\u4e0a\u8fdb\u884c\u590d\u6742\u7684\u5206\u6790\uff1b\u8fd9\u7c7b\u7528\u6237\u4e00\u822c\u7528 Syncer \u5c06\u6240\u6709\u7ebf\u4e0a\u751f\u4ea7\u6570\u636e\u5e93\u540c\u6b65\u5230\u4e00\u4e2a\u5927\u7684 TiDB \u96c6\u7fa4\u4e0a\uff08Syncer \u652f\u6301\u591a\u6e90\u540c\u6b65\uff0c\u5408\u5e76\u5206\u5e93\u5206\u8868\u7b49\u529f\u80fd\uff09\uff0c\u7136\u540e\u76f4\u63a5\u5728\u8fd9\u4e2a TiDB Cluster \u4e0a\u901a\u8fc7 TiDB \u6216\u8005 TiSpark \u8fdb\u884c\u5206\u6790\u3002"),(0,i.yg)("h3",{id:"\u7b80\u4ecb"},"\u7b80\u4ecb"),(0,i.yg)("p",null,"TiDB \u662f PingCAP \u516c\u53f8\u8bbe\u8ba1\u7684\u5f00\u6e90\u5206\u5e03\u5f0f HTAP (Hybrid Transactional and Analytical Processing) \u6570\u636e\u5e93\uff0c\u7ed3\u5408\u4e86\u4f20\u7edf\u7684 RDBMS \u548c NoSQL \u7684\u6700\u4f73\u7279\u6027\u3002TiDB \u517c\u5bb9 MySQL\uff0c\u652f\u6301\u65e0\u9650\u7684\u6c34\u5e73\u6269\u5c55\uff0c\u5177\u5907\u5f3a\u4e00\u81f4\u6027\u548c\u9ad8\u53ef\u7528\u6027\u3002TiDB \u7684\u76ee\u6807\u662f\u4e3a OLTP (Online Transactional Processing) \u548c OLAP (Online Analytical Processing) \u573a\u666f\u63d0\u4f9b\u4e00\u7ad9\u5f0f\u7684\u89e3\u51b3\u65b9\u6848\u3002"),(0,i.yg)("p",null,"TiDB \u5177\u5907\u5982\u4e0b\u7279\u6027\uff1a"),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},"\u9ad8\u5ea6\u517c\u5bb9 MySQL\n\u5927\u591a\u6570\u60c5\u51b5\u4e0b\uff0c\u65e0\u9700\u4fee\u6539\u4ee3\u7801\u5373\u53ef\u4ece MySQL \u8f7b\u677e\u8fc1\u79fb\u81f3 TiDB\uff0c\u5206\u5e93\u5206\u8868\u540e\u7684 MySQL \u96c6\u7fa4\u4ea6\u53ef\u901a\u8fc7 TiDB \u5de5\u5177\u8fdb\u884c\u5b9e\u65f6\u8fc1\u79fb\u3002"),(0,i.yg)("li",{parentName:"ul"},"\u6c34\u5e73\u5f39\u6027\u6269\u5c55\n\u901a\u8fc7\u7b80\u5355\u5730\u589e\u52a0\u65b0\u8282\u70b9\u5373\u53ef\u5b9e\u73b0 TiDB \u7684\u6c34\u5e73\u6269\u5c55\uff0c\u6309\u9700\u6269\u5c55\u541e\u5410\u6216\u5b58\u50a8\uff0c\u8f7b\u677e\u5e94\u5bf9\u9ad8\u5e76\u53d1\u3001\u6d77\u91cf\u6570\u636e\u573a\u666f\u3002"),(0,i.yg)("li",{parentName:"ul"},"\u5206\u5e03\u5f0f\u4e8b\u52a1\nTiDB 100% \u652f\u6301\u6807\u51c6\u7684 ACID \u4e8b\u52a1\u3002"),(0,i.yg)("li",{parentName:"ul"},"\u771f\u6b63\u91d1\u878d\u7ea7\u9ad8\u53ef\u7528\n\u76f8\u6bd4\u4e8e\u4f20\u7edf\u4e3b\u4ece (M-S) \u590d\u5236\u65b9\u6848\uff0c\u57fa\u4e8e Raft \u7684\u591a\u6570\u6d3e\u9009\u4e3e\u534f\u8bae\u53ef\u4ee5\u63d0\u4f9b\u91d1\u878d\u7ea7\u7684 100% \u6570\u636e\u5f3a\u4e00\u81f4\u6027\u4fdd\u8bc1\uff0c\u4e14\u5728\u4e0d\u4e22\u5931\u5927\u591a\u6570\u526f\u672c\u7684\u524d\u63d0\u4e0b\uff0c\u53ef\u4ee5\u5b9e\u73b0\u6545\u969c\u7684\u81ea\u52a8\u6062\u590d (auto-failover)\uff0c\u65e0\u9700\u4eba\u5de5\u4ecb\u5165\u3002"),(0,i.yg)("li",{parentName:"ul"},"\u4e00\u7ad9\u5f0f HTAP \u89e3\u51b3\u65b9\u6848\nTiDB \u4f5c\u4e3a\u5178\u578b\u7684 OLTP \u884c\u5b58\u6570\u636e\u5e93\uff0c\u540c\u65f6\u517c\u5177\u5f3a\u5927\u7684 OLAP \u6027\u80fd\uff0c\u914d\u5408 TiSpark\uff0c\u53ef\u63d0\u4f9b\u4e00\u7ad9\u5f0f HTAP \u89e3\u51b3\u65b9\u6848\uff0c\u4e00\u4efd\u5b58\u50a8\u540c\u65f6\u5904\u7406 OLTP & OLAP\uff0c\u65e0\u9700\u4f20\u7edf\u7e41\u7410\u7684 ETL \u8fc7\u7a0b\u3002"),(0,i.yg)("li",{parentName:"ul"},"\u4e91\u539f\u751f SQL \u6570\u636e\u5e93\nTiDB \u662f\u4e3a\u4e91\u800c\u8bbe\u8ba1\u7684\u6570\u636e\u5e93\uff0c\u652f\u6301\u516c\u6709\u4e91\u3001\u79c1\u6709\u4e91\u548c\u6df7\u5408\u4e91\uff0c\u4f7f\u90e8\u7f72\u3001\u914d\u7f6e\u548c\u7ef4\u62a4\u53d8\u5f97\u5341\u5206\u7b80\u5355\u3002")),(0,i.yg)("p",null,"TiDB \u7684\u8bbe\u8ba1\u76ee\u6807\u662f 100% \u7684 OLTP \u573a\u666f\u548c 80% \u7684 OLAP \u573a\u666f\uff0c\u66f4\u590d\u6742\u7684 OLAP \u5206\u6790\u53ef\u4ee5\u901a\u8fc7 TiSpark \u9879\u76ee\u6765\u5b8c\u6210\u3002"),(0,i.yg)("p",null,"TiDB \u5bf9\u4e1a\u52a1\u6ca1\u6709\u4efb\u4f55\u4fb5\u5165\u6027\uff0c\u80fd\u4f18\u96c5\u7684\u66ff\u6362\u4f20\u7edf\u7684\u6570\u636e\u5e93\u4e2d\u95f4\u4ef6\u3001\u6570\u636e\u5e93\u5206\u5e93\u5206\u8868\u7b49 Sharding \u65b9\u6848\u3002\u540c\u65f6\u5b83\u4e5f\u8ba9\u5f00\u53d1\u8fd0\u7ef4\u4eba\u5458\u4e0d\u7528\u5173\u6ce8\u6570\u636e\u5e93 Scale \u7684\u7ec6\u8282\u95ee\u9898\uff0c\u4e13\u6ce8\u4e8e\u4e1a\u52a1\u5f00\u53d1\uff0c\u6781\u5927\u7684\u63d0\u5347\u7814\u53d1\u7684\u751f\u4ea7\u529b\u3002"),(0,i.yg)("p",null,"\u4e09\u7bc7\u6587\u7ae0\u4e86\u89e3 TiDB \u6280\u672f\u5185\u5e55\uff1a"),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("a",{parentName:"li",href:"https://pingcap.com/blog-cn/tidb-internal-1/"},"\u8bf4\u5b58\u50a8")),(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("a",{parentName:"li",href:"https://pingcap.com/blog-cn/tidb-internal-2/"},"\u8bf4\u8ba1\u7b97")),(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("a",{parentName:"li",href:"https://pingcap.com/blog-cn/tidb-internal-3/"},"\u8c08\u8c03\u5ea6"))),(0,i.yg)("h3",{id:"\u76ee\u524d\u72b6\u51b5v30"},"\u76ee\u524d\u72b6\u51b5(V3.0)"),(0,i.yg)("p",null,"TiDB \u76ee\u524d\u8fd8\u4e0d\u652f\u6301\u89e6\u53d1\u5668\u3001\u5b58\u50a8\u8fc7\u7a0b\u3001\u81ea\u5b9a\u4e49\u51fd\u6570\u3001\u5916\u952e\uff0c\u9664\u6b64\u4e4b\u5916\uff0cTiDB \u652f\u6301\u7edd\u5927\u90e8\u5206 MySQL 5.7 \u7684\u8bed\u6cd5\u3002"))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/cadc4043.f0c74ab6.js b/assets/js/cadc4043.0be5bea5.js similarity index 99% rename from assets/js/cadc4043.f0c74ab6.js rename to assets/js/cadc4043.0be5bea5.js index 21c000103..7dd60cdc1 100644 --- a/assets/js/cadc4043.f0c74ab6.js +++ b/assets/js/cadc4043.0be5bea5.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8399],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>g});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function u(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),s=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):u(u({},t),e)),r},p=function(e){var t=s(e.components);return n.createElement(i.Provider,{value:t},e.children)},c="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,l=e.originalType,i=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),c=s(r),d=a,g=c["".concat(i,".").concat(d)]||c[d]||y[d]||l;return r?n.createElement(g,u(u({ref:t},p),{},{components:r})):n.createElement(g,u({ref:t},p))}));function g(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=r.length,u=new Array(l);u[0]=d;var o={};for(var i in t)hasOwnProperty.call(t,i)&&(o[i]=t[i]);o.originalType=e,o[c]="string"==typeof e?e:a,u[1]=o;for(var s=2;s{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>u,default:()=>y,frontMatter:()=>l,metadata:()=>o,toc:()=>s});var n=r(8168),a=(r(6540),r(5680));const l={},u="Rust",o={unversionedId:"study/program/Rust/index",id:"study/program/Rust/index",title:"Rust",description:"\u4e00\u95e8\u8d4b\u4e88\u6bcf\u4e2a\u4eba\u6784\u5efa\u53ef\u9760\u4e14\u9ad8\u6548\u8f6f\u4ef6\u80fd\u529b\u7684\u8bed\u8a00\u3002",source:"@site/docs/study/program/Rust/index.md",sourceDirName:"study/program/Rust",slug:"/study/program/Rust/",permalink:"/docs/study/program/Rust/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Lua",permalink:"/docs/study/program/Lua/"},next:{title:"\u6280\u672f\u6587\u6863",permalink:"/docs/study/program/\u6280\u672f\u6587\u6863"}},i={},s=[{value:"\u4e3a\u4ec0\u4e48\u9009\u62e9 Rust",id:"\u4e3a\u4ec0\u4e48\u9009\u62e9-rust",level:3},{value:"\u9ad8\u6027\u80fd",id:"\u9ad8\u6027\u80fd",level:4},{value:"\u53ef\u9760\u6027",id:"\u53ef\u9760\u6027",level:4},{value:"\u751f\u4ea7\u529b",id:"\u751f\u4ea7\u529b",level:4},{value:"\u5185\u5b58\u7ba1\u7406",id:"\u5185\u5b58\u7ba1\u7406",level:3},{value:"\u6807\u51c6\u5e93",id:"\u6807\u51c6\u5e93",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],p={toc:s},c="wrapper";function y(e){let{components:t,...r}=e;return(0,a.yg)(c,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"rust"},"Rust"),(0,a.yg)("p",null,"\u4e00\u95e8\u8d4b\u4e88\u6bcf\u4e2a\u4eba\u6784\u5efa\u53ef\u9760\u4e14\u9ad8\u6548\u8f6f\u4ef6\u80fd\u529b\u7684\u8bed\u8a00\u3002"),(0,a.yg)("p",null,"\u521b\u5efa\u8fd9\u4e2a\u65b0\u8bed\u8a00\u7684\u76ee\u7684\u662f\u4e3a\u4e86\u89e3\u51b3\u4e00\u4e2a\u987d\u75be\uff1a\u8f6f\u4ef6\u7684\u6f14\u8fdb\u901f\u5ea6\u5927\u5927\u4f4e\u4e8e\u786c\u4ef6\u7684\u6f14\u8fdb\uff0c\u8f6f\u4ef6\u5728\u8bed\u8a00\u7ea7\u522b\u4e0a\u65e0\u6cd5\u771f\u6b63\u5229\u7528\u591a\u6838\u8ba1\u7b97\u5e26\u6765\u7684\u6027\u80fd\u63d0\u5347\u3002Rust \u662f\u9488\u5bf9\u591a\u6838\u4f53\u7cfb\u63d0\u51fa\u7684\u8bed\u8a00\uff0c\u5e76\u4e14\u5438\u6536\u4e00\u4e9b\u5176\u4ed6\u52a8\u6001\u8bed\u8a00\u7684\u91cd\u8981\u7279\u6027\uff0c\u6bd4\u5982\u4e0d\u9700\u8981\u7ba1\u7406\u5185\u5b58\uff0c\u6bd4\u5982\u4e0d\u4f1a\u51fa\u73b0 Null \u6307\u9488\u7b49\u7b49\u3002"),(0,a.yg)("p",null,"Rust \u81f4\u529b\u4e8e\u6210\u4e3a\u4f18\u96c5\u89e3\u51b3\u9ad8\u5e76\u53d1\u548c\u9ad8\u5b89\u5168\u6027\u7cfb\u7edf\u95ee\u9898\u7684\u7f16\u7a0b\u8bed\u8a00 \uff0c\u9002\u7528\u4e8e\u5927\u578b\u573a\u666f\uff0c\u5373\u521b\u9020\u7ef4\u62a4\u80fd\u591f\u4fdd\u6301\u5927\u578b\u7cfb\u7edf\u5b8c\u6574\u7684\u8fb9\u754c\u3002\u8fd9\u5c31\u5bfc\u81f4\u4e86\u5b83\u5f3a\u8c03\u5b89\u5168\uff0c\u5185\u5b58\u5e03\u5c40\u63a7\u5236\u548c\u5e76\u53d1\u7684\u7279\u70b9\u3002\u6807\u51c6 Rust \u6027\u80fd\u4e0e\u6807\u51c6 C++\u6027\u80fd\u4e0d\u76f8\u4e0a\u4e0b\u3002"),(0,a.yg)("p",null,"\u636e\u8bf4\uff0c\u6b64\u7f16\u7a0b\u8bed\u8a00\uff0c\u5165\u95e8\u8f83\u96be\uff0c\u6666\u6da9\u96be\u61c2\u3002"),(0,a.yg)("h3",{id:"\u4e3a\u4ec0\u4e48\u9009\u62e9-rust"},"\u4e3a\u4ec0\u4e48\u9009\u62e9 Rust"),(0,a.yg)("h4",{id:"\u9ad8\u6027\u80fd"},"\u9ad8\u6027\u80fd"),(0,a.yg)("p",null,"Rust \u901f\u5ea6\u60ca\u4eba\u4e14\u5185\u5b58\u5229\u7528\u7387\u6781\u9ad8\u3002\u7531\u4e8e\u6ca1\u6709\u8fd0\u884c\u65f6\u548c\u5783\u573e\u56de\u6536\uff0c\u5b83\u80fd\u591f\u80dc\u4efb\u5bf9\u6027\u80fd\u8981\u6c42\u7279\u522b\u9ad8\u7684\u670d\u52a1\uff0c\u53ef\u4ee5\u5728\u5d4c\u5165\u5f0f\u8bbe\u5907\u4e0a\u8fd0\u884c\uff0c\u8fd8\u80fd\u8f7b\u677e\u548c\u5176\u4ed6\u8bed\u8a00\u96c6\u6210\u3002"),(0,a.yg)("h4",{id:"\u53ef\u9760\u6027"},"\u53ef\u9760\u6027"),(0,a.yg)("p",null,"Rust \u4e30\u5bcc\u7684\u7c7b\u578b\u7cfb\u7edf\u548c\u6240\u6709\u6743\u6a21\u578b\u4fdd\u8bc1\u4e86\u5185\u5b58\u5b89\u5168\u548c\u7ebf\u7a0b\u5b89\u5168\uff0c\u8ba9\u60a8\u5728\u7f16\u8bd1\u671f\u5c31\u80fd\u591f\u6d88\u9664\u5404\u79cd\u5404\u6837\u7684\u9519\u8bef\u3002"),(0,a.yg)("h4",{id:"\u751f\u4ea7\u529b"},"\u751f\u4ea7\u529b"),(0,a.yg)("p",null,"Rust \u62e5\u6709\u51fa\u8272\u7684\u6587\u6863\u3001\u53cb\u597d\u7684\u7f16\u8bd1\u5668\u548c\u6e05\u6670\u7684\u9519\u8bef\u63d0\u793a\u4fe1\u606f\uff0c \u8fd8\u96c6\u6210\u4e86\u4e00\u6d41\u7684\u5de5\u5177\u2014\u2014\u5305\u7ba1\u7406\u5668\u548c\u6784\u5efa\u5de5\u5177\uff0c \u667a\u80fd\u5730\u81ea\u52a8\u8865\u5168\u548c\u7c7b\u578b\u68c0\u9a8c\u7684\u591a\u7f16\u8f91\u5668\u652f\u6301\uff0c \u4ee5\u53ca\u81ea\u52a8\u683c\u5f0f\u5316\u4ee3\u7801\u7b49\u7b49\u3002"),(0,a.yg)("h3",{id:"\u5185\u5b58\u7ba1\u7406"},"\u5185\u5b58\u7ba1\u7406"),(0,a.yg)("p",null,"Rust \u4e0d\u50cf Go,Java \u4ee5\u53ca.NET Framework \u90a3\u6837\u4f7f\u7528\u81ea\u52a8\u5783\u573e\u56de\u6536\u7cfb\u7edf\u3002\u4e0d\u540c\u7684\u662f Rust \u901a\u8fc7 RAII \u6765\u7ba1\u7406\u5185\u5b58\u548c\u8d44\u6e90\uff0c\u8fd8\u53ef\u9009\u5f15\u7528\u8ba1\u6570\u3002Rust \u4ee5\u4f4e\u5f00\u9500\u63d0\u4f9b\u8d44\u6e90\u786e\u5b9a\u6027\u7ba1\u7406\u3002Rust \u4e5f\u652f\u6301\u503c\u7684\u6808\u5206\u914d\u5e76\u4e0d\u8868\u73b0\u6697\u7bb1\u3002"),(0,a.yg)("h3",{id:"\u6807\u51c6\u5e93"},"\u6807\u51c6\u5e93"),(0,a.yg)("p",null,(0,a.yg)("a",{parentName:"p",href:"https://doc.rust-lang.org/std/index.html"},"https://doc.rust-lang.org/std/index.html")),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://www.rust-lang.org/zh-CN"},"\u5b98\u65b9\u7f51\u7ad9")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://baike.baidu.com/item/Rust%E8%AF%AD%E8%A8%80/9502634"},"\u767e\u5ea6\u767e\u79d1-Rust \u8bed\u8a00")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://kaisery.github.io/trpl-zh-cn/title-page.html"},"Rust \u7a0b\u5e8f\u8bbe\u8ba1\u9884\u7814 \u7b80\u4f53\u4e2d\u6587\u7248 \u975e\u5b98\u65b9")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://rust-book.junmajinlong.com/"},"\u9a8f\u9a6c\u91d1\u9f99-Rust \u7684\u5165\u95e8\u4e66\u7c4d"))))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8399],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>g});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function u(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),s=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):u(u({},t),e)),r},p=function(e){var t=s(e.components);return n.createElement(i.Provider,{value:t},e.children)},c="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,l=e.originalType,i=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),c=s(r),d=a,g=c["".concat(i,".").concat(d)]||c[d]||y[d]||l;return r?n.createElement(g,u(u({ref:t},p),{},{components:r})):n.createElement(g,u({ref:t},p))}));function g(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=r.length,u=new Array(l);u[0]=d;var o={};for(var i in t)hasOwnProperty.call(t,i)&&(o[i]=t[i]);o.originalType=e,o[c]="string"==typeof e?e:a,u[1]=o;for(var s=2;s{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>u,default:()=>y,frontMatter:()=>l,metadata:()=>o,toc:()=>s});var n=r(8168),a=(r(6540),r(5680));const l={},u="Rust",o={unversionedId:"study/program/Rust/index",id:"study/program/Rust/index",title:"Rust",description:"\u4e00\u95e8\u8d4b\u4e88\u6bcf\u4e2a\u4eba\u6784\u5efa\u53ef\u9760\u4e14\u9ad8\u6548\u8f6f\u4ef6\u80fd\u529b\u7684\u8bed\u8a00\u3002",source:"@site/docs/study/program/Rust/index.md",sourceDirName:"study/program/Rust",slug:"/study/program/Rust/",permalink:"/docs/study/program/Rust/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Lua",permalink:"/docs/study/program/Lua/"},next:{title:"\u6280\u672f\u6587\u6863",permalink:"/docs/study/program/\u6280\u672f\u6587\u6863"}},i={},s=[{value:"\u4e3a\u4ec0\u4e48\u9009\u62e9 Rust",id:"\u4e3a\u4ec0\u4e48\u9009\u62e9-rust",level:3},{value:"\u9ad8\u6027\u80fd",id:"\u9ad8\u6027\u80fd",level:4},{value:"\u53ef\u9760\u6027",id:"\u53ef\u9760\u6027",level:4},{value:"\u751f\u4ea7\u529b",id:"\u751f\u4ea7\u529b",level:4},{value:"\u5185\u5b58\u7ba1\u7406",id:"\u5185\u5b58\u7ba1\u7406",level:3},{value:"\u6807\u51c6\u5e93",id:"\u6807\u51c6\u5e93",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],p={toc:s},c="wrapper";function y(e){let{components:t,...r}=e;return(0,a.yg)(c,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"rust"},"Rust"),(0,a.yg)("p",null,"\u4e00\u95e8\u8d4b\u4e88\u6bcf\u4e2a\u4eba\u6784\u5efa\u53ef\u9760\u4e14\u9ad8\u6548\u8f6f\u4ef6\u80fd\u529b\u7684\u8bed\u8a00\u3002"),(0,a.yg)("p",null,"\u521b\u5efa\u8fd9\u4e2a\u65b0\u8bed\u8a00\u7684\u76ee\u7684\u662f\u4e3a\u4e86\u89e3\u51b3\u4e00\u4e2a\u987d\u75be\uff1a\u8f6f\u4ef6\u7684\u6f14\u8fdb\u901f\u5ea6\u5927\u5927\u4f4e\u4e8e\u786c\u4ef6\u7684\u6f14\u8fdb\uff0c\u8f6f\u4ef6\u5728\u8bed\u8a00\u7ea7\u522b\u4e0a\u65e0\u6cd5\u771f\u6b63\u5229\u7528\u591a\u6838\u8ba1\u7b97\u5e26\u6765\u7684\u6027\u80fd\u63d0\u5347\u3002Rust \u662f\u9488\u5bf9\u591a\u6838\u4f53\u7cfb\u63d0\u51fa\u7684\u8bed\u8a00\uff0c\u5e76\u4e14\u5438\u6536\u4e00\u4e9b\u5176\u4ed6\u52a8\u6001\u8bed\u8a00\u7684\u91cd\u8981\u7279\u6027\uff0c\u6bd4\u5982\u4e0d\u9700\u8981\u7ba1\u7406\u5185\u5b58\uff0c\u6bd4\u5982\u4e0d\u4f1a\u51fa\u73b0 Null \u6307\u9488\u7b49\u7b49\u3002"),(0,a.yg)("p",null,"Rust \u81f4\u529b\u4e8e\u6210\u4e3a\u4f18\u96c5\u89e3\u51b3\u9ad8\u5e76\u53d1\u548c\u9ad8\u5b89\u5168\u6027\u7cfb\u7edf\u95ee\u9898\u7684\u7f16\u7a0b\u8bed\u8a00 \uff0c\u9002\u7528\u4e8e\u5927\u578b\u573a\u666f\uff0c\u5373\u521b\u9020\u7ef4\u62a4\u80fd\u591f\u4fdd\u6301\u5927\u578b\u7cfb\u7edf\u5b8c\u6574\u7684\u8fb9\u754c\u3002\u8fd9\u5c31\u5bfc\u81f4\u4e86\u5b83\u5f3a\u8c03\u5b89\u5168\uff0c\u5185\u5b58\u5e03\u5c40\u63a7\u5236\u548c\u5e76\u53d1\u7684\u7279\u70b9\u3002\u6807\u51c6 Rust \u6027\u80fd\u4e0e\u6807\u51c6 C++\u6027\u80fd\u4e0d\u76f8\u4e0a\u4e0b\u3002"),(0,a.yg)("p",null,"\u636e\u8bf4\uff0c\u6b64\u7f16\u7a0b\u8bed\u8a00\uff0c\u5165\u95e8\u8f83\u96be\uff0c\u6666\u6da9\u96be\u61c2\u3002"),(0,a.yg)("h3",{id:"\u4e3a\u4ec0\u4e48\u9009\u62e9-rust"},"\u4e3a\u4ec0\u4e48\u9009\u62e9 Rust"),(0,a.yg)("h4",{id:"\u9ad8\u6027\u80fd"},"\u9ad8\u6027\u80fd"),(0,a.yg)("p",null,"Rust \u901f\u5ea6\u60ca\u4eba\u4e14\u5185\u5b58\u5229\u7528\u7387\u6781\u9ad8\u3002\u7531\u4e8e\u6ca1\u6709\u8fd0\u884c\u65f6\u548c\u5783\u573e\u56de\u6536\uff0c\u5b83\u80fd\u591f\u80dc\u4efb\u5bf9\u6027\u80fd\u8981\u6c42\u7279\u522b\u9ad8\u7684\u670d\u52a1\uff0c\u53ef\u4ee5\u5728\u5d4c\u5165\u5f0f\u8bbe\u5907\u4e0a\u8fd0\u884c\uff0c\u8fd8\u80fd\u8f7b\u677e\u548c\u5176\u4ed6\u8bed\u8a00\u96c6\u6210\u3002"),(0,a.yg)("h4",{id:"\u53ef\u9760\u6027"},"\u53ef\u9760\u6027"),(0,a.yg)("p",null,"Rust \u4e30\u5bcc\u7684\u7c7b\u578b\u7cfb\u7edf\u548c\u6240\u6709\u6743\u6a21\u578b\u4fdd\u8bc1\u4e86\u5185\u5b58\u5b89\u5168\u548c\u7ebf\u7a0b\u5b89\u5168\uff0c\u8ba9\u60a8\u5728\u7f16\u8bd1\u671f\u5c31\u80fd\u591f\u6d88\u9664\u5404\u79cd\u5404\u6837\u7684\u9519\u8bef\u3002"),(0,a.yg)("h4",{id:"\u751f\u4ea7\u529b"},"\u751f\u4ea7\u529b"),(0,a.yg)("p",null,"Rust \u62e5\u6709\u51fa\u8272\u7684\u6587\u6863\u3001\u53cb\u597d\u7684\u7f16\u8bd1\u5668\u548c\u6e05\u6670\u7684\u9519\u8bef\u63d0\u793a\u4fe1\u606f\uff0c \u8fd8\u96c6\u6210\u4e86\u4e00\u6d41\u7684\u5de5\u5177\u2014\u2014\u5305\u7ba1\u7406\u5668\u548c\u6784\u5efa\u5de5\u5177\uff0c \u667a\u80fd\u5730\u81ea\u52a8\u8865\u5168\u548c\u7c7b\u578b\u68c0\u9a8c\u7684\u591a\u7f16\u8f91\u5668\u652f\u6301\uff0c \u4ee5\u53ca\u81ea\u52a8\u683c\u5f0f\u5316\u4ee3\u7801\u7b49\u7b49\u3002"),(0,a.yg)("h3",{id:"\u5185\u5b58\u7ba1\u7406"},"\u5185\u5b58\u7ba1\u7406"),(0,a.yg)("p",null,"Rust \u4e0d\u50cf Go,Java \u4ee5\u53ca.NET Framework \u90a3\u6837\u4f7f\u7528\u81ea\u52a8\u5783\u573e\u56de\u6536\u7cfb\u7edf\u3002\u4e0d\u540c\u7684\u662f Rust \u901a\u8fc7 RAII \u6765\u7ba1\u7406\u5185\u5b58\u548c\u8d44\u6e90\uff0c\u8fd8\u53ef\u9009\u5f15\u7528\u8ba1\u6570\u3002Rust \u4ee5\u4f4e\u5f00\u9500\u63d0\u4f9b\u8d44\u6e90\u786e\u5b9a\u6027\u7ba1\u7406\u3002Rust \u4e5f\u652f\u6301\u503c\u7684\u6808\u5206\u914d\u5e76\u4e0d\u8868\u73b0\u6697\u7bb1\u3002"),(0,a.yg)("h3",{id:"\u6807\u51c6\u5e93"},"\u6807\u51c6\u5e93"),(0,a.yg)("p",null,(0,a.yg)("a",{parentName:"p",href:"https://doc.rust-lang.org/std/index.html"},"https://doc.rust-lang.org/std/index.html")),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://www.rust-lang.org/zh-CN"},"\u5b98\u65b9\u7f51\u7ad9")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://baike.baidu.com/item/Rust%E8%AF%AD%E8%A8%80/9502634"},"\u767e\u5ea6\u767e\u79d1-Rust \u8bed\u8a00")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://kaisery.github.io/trpl-zh-cn/title-page.html"},"Rust \u7a0b\u5e8f\u8bbe\u8ba1\u9884\u7814 \u7b80\u4f53\u4e2d\u6587\u7248 \u975e\u5b98\u65b9")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://rust-book.junmajinlong.com/"},"\u9a8f\u9a6c\u91d1\u9f99-Rust \u7684\u5165\u95e8\u4e66\u7c4d"))))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/cd56b708.3d56d553.js b/assets/js/cd56b708.44db628c.js similarity index 98% rename from assets/js/cd56b708.3d56d553.js rename to assets/js/cd56b708.44db628c.js index 7527ce7a2..7ef2c281b 100644 --- a/assets/js/cd56b708.3d56d553.js +++ b/assets/js/cd56b708.44db628c.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[590],{5680:(e,r,t)=>{t.d(r,{xA:()=>s,yg:()=>m});var n=t(6540);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function a(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function l(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var i=n.createContext({}),c=function(e){var r=n.useContext(i),t=r;return e&&(t="function"==typeof e?e(r):l(l({},r),e)),t},s=function(e){var r=c(e.components);return n.createElement(i.Provider,{value:r},e.children)},g="mdxType",u={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},y=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,s=p(e,["components","mdxType","originalType","parentName"]),g=c(t),y=o,m=g["".concat(i,".").concat(y)]||g[y]||u[y]||a;return t?n.createElement(m,l(l({ref:r},s),{},{components:t})):n.createElement(m,l({ref:r},s))}));function m(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var a=t.length,l=new Array(a);l[0]=y;var p={};for(var i in r)hasOwnProperty.call(r,i)&&(p[i]=r[i]);p.originalType=e,p[g]="string"==typeof e?e:o,l[1]=p;for(var c=2;c{t.r(r),t.d(r,{assets:()=>i,contentTitle:()=>l,default:()=>u,frontMatter:()=>a,metadata:()=>p,toc:()=>c});var n=t(8168),o=(t(6540),t(5680));const a={},l=void 0,p={unversionedId:"study/program/Golang/Golang\u4f9d\u8d56\u5e93\u4ee3\u7406",id:"study/program/Golang/Golang\u4f9d\u8d56\u5e93\u4ee3\u7406",title:"Golang\u4f9d\u8d56\u5e93\u4ee3\u7406",description:"\u811a\u672c",source:"@site/docs/study/program/Golang/Golang\u4f9d\u8d56\u5e93\u4ee3\u7406.md",sourceDirName:"study/program/Golang",slug:"/study/program/Golang/Golang\u4f9d\u8d56\u5e93\u4ee3\u7406",permalink:"/docs/study/program/Golang/Golang\u4f9d\u8d56\u5e93\u4ee3\u7406",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Golang",permalink:"/docs/study/program/Golang/"},next:{title:"\u5e38\u7528\u7684\u5de5\u5177",permalink:"/docs/study/program/Golang/\u5e38\u7528\u7684\u5de5\u5177"}},i={},c=[{value:"\u811a\u672c",id:"\u811a\u672c",level:3},{value:"\u5e38\u7528\u4ee3\u7406\u5730\u5740",id:"\u5e38\u7528\u4ee3\u7406\u5730\u5740",level:3}],s={toc:c},g="wrapper";function u(e){let{components:r,...t}=e;return(0,o.yg)(g,(0,n.A)({},s,t,{components:r,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u811a\u672c"},"\u811a\u672c"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-shell"},"go env -w GOPROXY=https://goproxy.cn\n")),(0,o.yg)("h3",{id:"\u5e38\u7528\u4ee3\u7406\u5730\u5740"},"\u5e38\u7528\u4ee3\u7406\u5730\u5740"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://goproxy.cn"},"https://goproxy.cn"),"\uff1a\u7531 Go \u793e\u533a\u63d0\u4f9b\u7684\u4e2d\u56fd\u5883\u5185\u7684\u4ee3\u7406\u670d\u52a1\u5668\uff0c\u652f\u6301 Go 1.13 \u53ca\u4ee5\u4e0a\u7248\u672c\u3002"),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://mirrors.aliyun.com/goproxy/"},"https://mirrors.aliyun.com/goproxy/"),"\uff1a\u963f\u91cc\u4e91\u63d0\u4f9b\u7684\u4ee3\u7406\u670d\u52a1\u5668\uff0c\u901f\u5ea6\u8f83\u5feb\uff0c\u652f\u6301 Go 1.13 \u53ca\u4ee5\u4e0a\u7248\u672c\u3002"),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://goproxy.io"},"https://goproxy.io"),"\uff1a\u7531 GOPROXY.IO \u63d0\u4f9b\u7684\u5168\u7403\u52a0\u901f\u7684\u4ee3\u7406\u670d\u52a1\u5668\uff0c\u652f\u6301 Go 1.13 \u53ca\u4ee5\u4e0a\u7248\u672c\u3002"),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://proxy.golang.org"},"https://proxy.golang.org"),"\uff1a\u7531 Google \u63d0\u4f9b\u7684\u5b98\u65b9\u4ee3\u7406\u670d\u52a1\u5668\uff0c\u652f\u6301 Go 1.11 \u53ca\u4ee5\u4e0a\u7248\u672c\u3002")))}u.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[590],{5680:(e,r,t)=>{t.d(r,{xA:()=>s,yg:()=>m});var n=t(6540);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function a(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function l(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var i=n.createContext({}),c=function(e){var r=n.useContext(i),t=r;return e&&(t="function"==typeof e?e(r):l(l({},r),e)),t},s=function(e){var r=c(e.components);return n.createElement(i.Provider,{value:r},e.children)},g="mdxType",u={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},y=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,s=p(e,["components","mdxType","originalType","parentName"]),g=c(t),y=o,m=g["".concat(i,".").concat(y)]||g[y]||u[y]||a;return t?n.createElement(m,l(l({ref:r},s),{},{components:t})):n.createElement(m,l({ref:r},s))}));function m(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var a=t.length,l=new Array(a);l[0]=y;var p={};for(var i in r)hasOwnProperty.call(r,i)&&(p[i]=r[i]);p.originalType=e,p[g]="string"==typeof e?e:o,l[1]=p;for(var c=2;c{t.r(r),t.d(r,{assets:()=>i,contentTitle:()=>l,default:()=>u,frontMatter:()=>a,metadata:()=>p,toc:()=>c});var n=t(8168),o=(t(6540),t(5680));const a={},l=void 0,p={unversionedId:"study/program/Golang/Golang\u4f9d\u8d56\u5e93\u4ee3\u7406",id:"study/program/Golang/Golang\u4f9d\u8d56\u5e93\u4ee3\u7406",title:"Golang\u4f9d\u8d56\u5e93\u4ee3\u7406",description:"\u811a\u672c",source:"@site/docs/study/program/Golang/Golang\u4f9d\u8d56\u5e93\u4ee3\u7406.md",sourceDirName:"study/program/Golang",slug:"/study/program/Golang/Golang\u4f9d\u8d56\u5e93\u4ee3\u7406",permalink:"/docs/study/program/Golang/Golang\u4f9d\u8d56\u5e93\u4ee3\u7406",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Golang",permalink:"/docs/study/program/Golang/"},next:{title:"\u5e38\u7528\u7684\u5de5\u5177",permalink:"/docs/study/program/Golang/\u5e38\u7528\u7684\u5de5\u5177"}},i={},c=[{value:"\u811a\u672c",id:"\u811a\u672c",level:3},{value:"\u5e38\u7528\u4ee3\u7406\u5730\u5740",id:"\u5e38\u7528\u4ee3\u7406\u5730\u5740",level:3}],s={toc:c},g="wrapper";function u(e){let{components:r,...t}=e;return(0,o.yg)(g,(0,n.A)({},s,t,{components:r,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u811a\u672c"},"\u811a\u672c"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-shell"},"go env -w GOPROXY=https://goproxy.cn\n")),(0,o.yg)("h3",{id:"\u5e38\u7528\u4ee3\u7406\u5730\u5740"},"\u5e38\u7528\u4ee3\u7406\u5730\u5740"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://goproxy.cn"},"https://goproxy.cn"),"\uff1a\u7531 Go \u793e\u533a\u63d0\u4f9b\u7684\u4e2d\u56fd\u5883\u5185\u7684\u4ee3\u7406\u670d\u52a1\u5668\uff0c\u652f\u6301 Go 1.13 \u53ca\u4ee5\u4e0a\u7248\u672c\u3002"),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://mirrors.aliyun.com/goproxy/"},"https://mirrors.aliyun.com/goproxy/"),"\uff1a\u963f\u91cc\u4e91\u63d0\u4f9b\u7684\u4ee3\u7406\u670d\u52a1\u5668\uff0c\u901f\u5ea6\u8f83\u5feb\uff0c\u652f\u6301 Go 1.13 \u53ca\u4ee5\u4e0a\u7248\u672c\u3002"),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://goproxy.io"},"https://goproxy.io"),"\uff1a\u7531 GOPROXY.IO \u63d0\u4f9b\u7684\u5168\u7403\u52a0\u901f\u7684\u4ee3\u7406\u670d\u52a1\u5668\uff0c\u652f\u6301 Go 1.13 \u53ca\u4ee5\u4e0a\u7248\u672c\u3002"),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://proxy.golang.org"},"https://proxy.golang.org"),"\uff1a\u7531 Google \u63d0\u4f9b\u7684\u5b98\u65b9\u4ee3\u7406\u670d\u52a1\u5668\uff0c\u652f\u6301 Go 1.11 \u53ca\u4ee5\u4e0a\u7248\u672c\u3002")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ce0c2574.d21e388d.js b/assets/js/ce0c2574.56fc44a0.js similarity index 98% rename from assets/js/ce0c2574.d21e388d.js rename to assets/js/ce0c2574.56fc44a0.js index f99adac77..48345a96b 100644 --- a/assets/js/ce0c2574.d21e388d.js +++ b/assets/js/ce0c2574.56fc44a0.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5074],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),l=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),s=l(r),y=o,f=s["".concat(p,".").concat(y)]||s[y]||d[y]||a;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=y;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:o,c[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,i={unversionedId:"study/program/CPP/CGI",id:"study/program/CPP/CGI",title:"CGI",description:"\u53c2\u8003",source:"@site/docs/study/program/CPP/CGI.md",sourceDirName:"study/program/CPP",slug:"/study/program/CPP/CGI",permalink:"/docs/study/program/CPP/CGI",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"C++",permalink:"/docs/study/program/CPP/"},next:{title:"C++\u8fdb\u7a0b\u95f4\u901a\u4fe1",permalink:"/docs/study/program/CPP/CPP\u8fdb\u7a0b\u95f4\u901a\u4fe1"}},p={},l=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],u={toc:l},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://blog.csdn.net/zhizhengguan/article/details/118519124"},"CSDN-C/C++\u7f16\u7a0b\uff1aCGI \u4e0e fastCGI"))))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5074],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),l=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),s=l(r),y=o,f=s["".concat(p,".").concat(y)]||s[y]||d[y]||a;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=y;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:o,c[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,i={unversionedId:"study/program/CPP/CGI",id:"study/program/CPP/CGI",title:"CGI",description:"\u53c2\u8003",source:"@site/docs/study/program/CPP/CGI.md",sourceDirName:"study/program/CPP",slug:"/study/program/CPP/CGI",permalink:"/docs/study/program/CPP/CGI",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"C++",permalink:"/docs/study/program/CPP/"},next:{title:"C++\u8fdb\u7a0b\u95f4\u901a\u4fe1",permalink:"/docs/study/program/CPP/CPP\u8fdb\u7a0b\u95f4\u901a\u4fe1"}},p={},l=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],u={toc:l},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://blog.csdn.net/zhizhengguan/article/details/118519124"},"CSDN-C/C++\u7f16\u7a0b\uff1aCGI \u4e0e fastCGI"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d1731c9c.abda2881.js b/assets/js/d1731c9c.a0ed16fc.js similarity index 98% rename from assets/js/d1731c9c.abda2881.js rename to assets/js/d1731c9c.a0ed16fc.js index 69a7ed5b7..b9fbeb714 100644 --- a/assets/js/d1731c9c.abda2881.js +++ b/assets/js/d1731c9c.a0ed16fc.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2840],{5680:(e,t,r)=>{r.d(t,{xA:()=>l,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function p(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var i=n.createContext({}),c=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):p(p({},t),e)),r},l=function(e){var t=c(e.components);return n.createElement(i.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,l=u(e,["components","mdxType","originalType","parentName"]),s=c(r),y=o,f=s["".concat(i,".").concat(y)]||s[y]||d[y]||a;return r?n.createElement(f,p(p({ref:t},l),{},{components:r})):n.createElement(f,p({ref:t},l))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,p=new Array(a);p[0]=y;var u={};for(var i in t)hasOwnProperty.call(t,i)&&(u[i]=t[i]);u.originalType=e,u[s]="string"==typeof e?e:o,p[1]=u;for(var c=2;c{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>p,default:()=>d,frontMatter:()=>a,metadata:()=>u,toc:()=>c});var n=r(8168),o=(r(6540),r(5680));const a={},p=void 0,u={unversionedId:"study/devops/Linux\u53d1\u884c\u7248",id:"study/devops/Linux\u53d1\u884c\u7248",title:"Linux\u53d1\u884c\u7248",description:"OpenEuler",source:"@site/docs/study/devops/Linux\u53d1\u884c\u7248.md",sourceDirName:"study/devops",slug:"/study/devops/Linux\u53d1\u884c\u7248",permalink:"/docs/study/devops/Linux\u53d1\u884c\u7248",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"API\u7684\u8bf7\u6c42\u91cf\u5206\u6790",permalink:"/docs/study/devops/API\u7684\u8bf7\u6c42\u91cf\u5206\u6790"},next:{title:"Linux\u8fd0\u7ef4-\u5e38\u7528",permalink:"/docs/study/devops/Linux\u8fd0\u7ef4-\u5e38\u7528"}},i={},c=[{value:"OpenEuler",id:"openeuler",level:3}],l={toc:c},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"openeuler"},"OpenEuler"),(0,o.yg)("p",null,(0,o.yg)("a",{parentName:"p",href:"https://www.openeuler.org/zh/"},"OpenEuler\u5b98\u7f51")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2840],{5680:(e,t,r)=>{r.d(t,{xA:()=>l,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function p(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var i=n.createContext({}),c=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):p(p({},t),e)),r},l=function(e){var t=c(e.components);return n.createElement(i.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,l=u(e,["components","mdxType","originalType","parentName"]),s=c(r),y=o,f=s["".concat(i,".").concat(y)]||s[y]||d[y]||a;return r?n.createElement(f,p(p({ref:t},l),{},{components:r})):n.createElement(f,p({ref:t},l))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,p=new Array(a);p[0]=y;var u={};for(var i in t)hasOwnProperty.call(t,i)&&(u[i]=t[i]);u.originalType=e,u[s]="string"==typeof e?e:o,p[1]=u;for(var c=2;c{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>p,default:()=>d,frontMatter:()=>a,metadata:()=>u,toc:()=>c});var n=r(8168),o=(r(6540),r(5680));const a={},p=void 0,u={unversionedId:"study/devops/Linux\u53d1\u884c\u7248",id:"study/devops/Linux\u53d1\u884c\u7248",title:"Linux\u53d1\u884c\u7248",description:"OpenEuler",source:"@site/docs/study/devops/Linux\u53d1\u884c\u7248.md",sourceDirName:"study/devops",slug:"/study/devops/Linux\u53d1\u884c\u7248",permalink:"/docs/study/devops/Linux\u53d1\u884c\u7248",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"API\u7684\u8bf7\u6c42\u91cf\u5206\u6790",permalink:"/docs/study/devops/API\u7684\u8bf7\u6c42\u91cf\u5206\u6790"},next:{title:"Linux\u8fd0\u7ef4-\u5e38\u7528",permalink:"/docs/study/devops/Linux\u8fd0\u7ef4-\u5e38\u7528"}},i={},c=[{value:"OpenEuler",id:"openeuler",level:3}],l={toc:c},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"openeuler"},"OpenEuler"),(0,o.yg)("p",null,(0,o.yg)("a",{parentName:"p",href:"https://www.openeuler.org/zh/"},"OpenEuler\u5b98\u7f51")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d188aee2.3a620c16.js b/assets/js/d188aee2.8c4dadda.js similarity index 99% rename from assets/js/d188aee2.3a620c16.js rename to assets/js/d188aee2.8c4dadda.js index ce0822514..953241fc8 100644 --- a/assets/js/d188aee2.3a620c16.js +++ b/assets/js/d188aee2.8c4dadda.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2709],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),l=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=l(r),y=o,f=p["".concat(s,".").concat(y)]||p[y]||d[y]||a;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=y;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:o,c[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,i={unversionedId:"study/think/\u6982\u5ff5\u6a21\u578b/Proactor",id:"study/think/\u6982\u5ff5\u6a21\u578b/Proactor",title:"Proactor",description:"Reactor \u662f\u975e\u963b\u585e\u540c\u6b65\u7f51\u7edc\u6a21\u578b\uff0c\u56e0\u4e3a\u771f\u6b63\u7684 read \u548c send \u64cd\u4f5c\u90fd\u9700\u8981\u7528\u6237\u8fdb\u7a0b\u540c\u6b65\u64cd\u4f5c\u3002\u8fd9\u91cc\u7684\u201c\u540c\u6b65\u201d\u6307\u7528\u6237\u8fdb\u7a0b\u5728\u6267\u884c read \u548c send \u8fd9\u7c7b I/O \u64cd\u4f5c\u7684\u65f6\u5019\u662f\u540c\u6b65\u7684\uff0c\u5982\u679c\u628a I/O \u64cd\u4f5c\u6539\u4e3a\u5f02\u6b65\u5c31\u80fd\u591f\u8fdb\u4e00\u6b65\u63d0\u5347\u6027\u80fd\uff0c\u8fd9\u5c31\u662f\u5f02\u6b65\u7f51\u7edc\u6a21\u578b Proactor\u3002",source:"@site/docs/study/think/\u6982\u5ff5\u6a21\u578b/Proactor.md",sourceDirName:"study/think/\u6982\u5ff5\u6a21\u578b",slug:"/study/think/\u6982\u5ff5\u6a21\u578b/Proactor",permalink:"/docs/study/think/\u6982\u5ff5\u6a21\u578b/Proactor",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Actor Model",permalink:"/docs/study/think/\u6982\u5ff5\u6a21\u578b/Actor Model"},next:{title:"Reactor\u6a21\u5f0f\u53cd\u5e94\u5806\u6a21\u5f0f",permalink:"/docs/study/think/\u6982\u5ff5\u6a21\u578b/Reactor\u6a21\u5f0f\u53cd\u5e94\u5806\u6a21\u5f0f"}},s={},l=[],u={toc:l},p="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(p,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"Reactor \u662f\u975e\u963b\u585e\u540c\u6b65\u7f51\u7edc\u6a21\u578b\uff0c\u56e0\u4e3a\u771f\u6b63\u7684 read \u548c send \u64cd\u4f5c\u90fd\u9700\u8981\u7528\u6237\u8fdb\u7a0b\u540c\u6b65\u64cd\u4f5c\u3002\u8fd9\u91cc\u7684\u201c\u540c\u6b65\u201d\u6307\u7528\u6237\u8fdb\u7a0b\u5728\u6267\u884c read \u548c send \u8fd9\u7c7b I/O \u64cd\u4f5c\u7684\u65f6\u5019\u662f\u540c\u6b65\u7684\uff0c\u5982\u679c\u628a I/O \u64cd\u4f5c\u6539\u4e3a\u5f02\u6b65\u5c31\u80fd\u591f\u8fdb\u4e00\u6b65\u63d0\u5347\u6027\u80fd\uff0c\u8fd9\u5c31\u662f\u5f02\u6b65\u7f51\u7edc\u6a21\u578b Proactor\u3002"),(0,o.yg)("p",null,"Proactor \u4e2d\u6587\u7ffb\u8bd1\u4e3a\u201c\u524d\u6444\u5668\u201d\u6bd4\u8f83\u96be\u7406\u89e3\uff0c\u4e0e\u5176\u7c7b\u4f3c\u7684\u5355\u8bcd\u662f proactive\uff0c\u542b\u4e49\u4e3a\u201c\u4e3b\u52a8\u7684\u201d\uff0c\u56e0\u6b64\u6211\u4eec\u7167\u732b\u753b\u864e\u7ffb\u8bd1\u4e3a\u201c\u4e3b\u52a8\u5668\u201d\u53cd\u800c\u66f4\u597d\u7406\u89e3\u3002Reactor \u53ef\u4ee5\u7406\u89e3\u4e3a\u201c\u6765\u4e86\u4e8b\u4ef6\u6211\u901a\u77e5\u4f60\uff0c\u4f60\u6765\u5904\u7406\u201d\uff0c\u800c Proactor \u53ef\u4ee5\u7406\u89e3\u4e3a\u201c\u6765\u4e86\u4e8b\u4ef6\u6211\u6765\u5904\u7406\uff0c\u5904\u7406\u5b8c\u4e86\u6211\u901a\u77e5\u4f60\u201d\u3002\u8fd9\u91cc\u7684\u201c\u6211\u201d\u5c31\u662f\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838\uff0c\u201c\u4e8b\u4ef6\u201d\u5c31\u662f\u6709\u65b0\u8fde\u63a5\u3001\u6709\u6570\u636e\u53ef\u8bfb\u3001\u6709\u6570\u636e\u53ef\u5199\u7684\u8fd9\u4e9b I/O \u4e8b\u4ef6\uff0c\u201c\u4f60\u201d\u5c31\u662f\u6211\u4eec\u7684\u7a0b\u5e8f\u4ee3\u7801\u3002"),(0,o.yg)("p",null,"\u7406\u8bba\u4e0a Proactor \u6bd4 Reactor \u6548\u7387\u8981\u9ad8\u4e00\u4e9b\uff0c\u5f02\u6b65 I/O \u80fd\u591f\u5145\u5206\u5229\u7528 DMA \u7279\u6027\uff0c\u8ba9 I/O \u64cd\u4f5c\u4e0e\u8ba1\u7b97\u91cd\u53e0\uff0c\u4f46\u8981\u5b9e\u73b0\u771f\u6b63\u7684\u5f02\u6b65 I/O\uff0c\u64cd\u4f5c\u7cfb\u7edf\u9700\u8981\u505a\u5927\u91cf\u7684\u5de5\u4f5c\u3002\u76ee\u524d Windows \u4e0b\u901a\u8fc7 IOCP \u5b9e\u73b0\u4e86\u771f\u6b63\u7684\u5f02\u6b65 I/O\uff0c\u800c\u5728 Linux \u7cfb\u7edf\u4e0b\u7684 AIO \u5e76\u4e0d\u5b8c\u5584\uff0c\u56e0\u6b64\u5728 Linux \u4e0b\u5b9e\u73b0\u9ad8\u5e76\u53d1\u7f51\u7edc\u7f16\u7a0b\u65f6\u90fd\u662f\u4ee5 Reactor \u6a21\u5f0f\u4e3a\u4e3b\u3002\u6240\u4ee5\u5373\u4f7f Boost.Asio \u53f7\u79f0\u5b9e\u73b0\u4e86 Proactor \u6a21\u578b\uff0c\u5176\u5b9e\u5b83\u5728 Windows \u4e0b\u91c7\u7528 IOCP\uff0c\u800c\u5728 Linux \u4e0b\u662f\u7528 Reactor \u6a21\u5f0f\uff08\u91c7\u7528 epoll\uff09\u6a21\u62df\u51fa\u6765\u7684\u5f02\u6b65\u6a21\u578b\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2709],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),l=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=l(r),y=o,f=p["".concat(s,".").concat(y)]||p[y]||d[y]||a;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=y;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:o,c[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,i={unversionedId:"study/think/\u6982\u5ff5\u6a21\u578b/Proactor",id:"study/think/\u6982\u5ff5\u6a21\u578b/Proactor",title:"Proactor",description:"Reactor \u662f\u975e\u963b\u585e\u540c\u6b65\u7f51\u7edc\u6a21\u578b\uff0c\u56e0\u4e3a\u771f\u6b63\u7684 read \u548c send \u64cd\u4f5c\u90fd\u9700\u8981\u7528\u6237\u8fdb\u7a0b\u540c\u6b65\u64cd\u4f5c\u3002\u8fd9\u91cc\u7684\u201c\u540c\u6b65\u201d\u6307\u7528\u6237\u8fdb\u7a0b\u5728\u6267\u884c read \u548c send \u8fd9\u7c7b I/O \u64cd\u4f5c\u7684\u65f6\u5019\u662f\u540c\u6b65\u7684\uff0c\u5982\u679c\u628a I/O \u64cd\u4f5c\u6539\u4e3a\u5f02\u6b65\u5c31\u80fd\u591f\u8fdb\u4e00\u6b65\u63d0\u5347\u6027\u80fd\uff0c\u8fd9\u5c31\u662f\u5f02\u6b65\u7f51\u7edc\u6a21\u578b Proactor\u3002",source:"@site/docs/study/think/\u6982\u5ff5\u6a21\u578b/Proactor.md",sourceDirName:"study/think/\u6982\u5ff5\u6a21\u578b",slug:"/study/think/\u6982\u5ff5\u6a21\u578b/Proactor",permalink:"/docs/study/think/\u6982\u5ff5\u6a21\u578b/Proactor",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Actor Model",permalink:"/docs/study/think/\u6982\u5ff5\u6a21\u578b/Actor Model"},next:{title:"Reactor\u6a21\u5f0f\u53cd\u5e94\u5806\u6a21\u5f0f",permalink:"/docs/study/think/\u6982\u5ff5\u6a21\u578b/Reactor\u6a21\u5f0f\u53cd\u5e94\u5806\u6a21\u5f0f"}},s={},l=[],u={toc:l},p="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(p,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"Reactor \u662f\u975e\u963b\u585e\u540c\u6b65\u7f51\u7edc\u6a21\u578b\uff0c\u56e0\u4e3a\u771f\u6b63\u7684 read \u548c send \u64cd\u4f5c\u90fd\u9700\u8981\u7528\u6237\u8fdb\u7a0b\u540c\u6b65\u64cd\u4f5c\u3002\u8fd9\u91cc\u7684\u201c\u540c\u6b65\u201d\u6307\u7528\u6237\u8fdb\u7a0b\u5728\u6267\u884c read \u548c send \u8fd9\u7c7b I/O \u64cd\u4f5c\u7684\u65f6\u5019\u662f\u540c\u6b65\u7684\uff0c\u5982\u679c\u628a I/O \u64cd\u4f5c\u6539\u4e3a\u5f02\u6b65\u5c31\u80fd\u591f\u8fdb\u4e00\u6b65\u63d0\u5347\u6027\u80fd\uff0c\u8fd9\u5c31\u662f\u5f02\u6b65\u7f51\u7edc\u6a21\u578b Proactor\u3002"),(0,o.yg)("p",null,"Proactor \u4e2d\u6587\u7ffb\u8bd1\u4e3a\u201c\u524d\u6444\u5668\u201d\u6bd4\u8f83\u96be\u7406\u89e3\uff0c\u4e0e\u5176\u7c7b\u4f3c\u7684\u5355\u8bcd\u662f proactive\uff0c\u542b\u4e49\u4e3a\u201c\u4e3b\u52a8\u7684\u201d\uff0c\u56e0\u6b64\u6211\u4eec\u7167\u732b\u753b\u864e\u7ffb\u8bd1\u4e3a\u201c\u4e3b\u52a8\u5668\u201d\u53cd\u800c\u66f4\u597d\u7406\u89e3\u3002Reactor \u53ef\u4ee5\u7406\u89e3\u4e3a\u201c\u6765\u4e86\u4e8b\u4ef6\u6211\u901a\u77e5\u4f60\uff0c\u4f60\u6765\u5904\u7406\u201d\uff0c\u800c Proactor \u53ef\u4ee5\u7406\u89e3\u4e3a\u201c\u6765\u4e86\u4e8b\u4ef6\u6211\u6765\u5904\u7406\uff0c\u5904\u7406\u5b8c\u4e86\u6211\u901a\u77e5\u4f60\u201d\u3002\u8fd9\u91cc\u7684\u201c\u6211\u201d\u5c31\u662f\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838\uff0c\u201c\u4e8b\u4ef6\u201d\u5c31\u662f\u6709\u65b0\u8fde\u63a5\u3001\u6709\u6570\u636e\u53ef\u8bfb\u3001\u6709\u6570\u636e\u53ef\u5199\u7684\u8fd9\u4e9b I/O \u4e8b\u4ef6\uff0c\u201c\u4f60\u201d\u5c31\u662f\u6211\u4eec\u7684\u7a0b\u5e8f\u4ee3\u7801\u3002"),(0,o.yg)("p",null,"\u7406\u8bba\u4e0a Proactor \u6bd4 Reactor \u6548\u7387\u8981\u9ad8\u4e00\u4e9b\uff0c\u5f02\u6b65 I/O \u80fd\u591f\u5145\u5206\u5229\u7528 DMA \u7279\u6027\uff0c\u8ba9 I/O \u64cd\u4f5c\u4e0e\u8ba1\u7b97\u91cd\u53e0\uff0c\u4f46\u8981\u5b9e\u73b0\u771f\u6b63\u7684\u5f02\u6b65 I/O\uff0c\u64cd\u4f5c\u7cfb\u7edf\u9700\u8981\u505a\u5927\u91cf\u7684\u5de5\u4f5c\u3002\u76ee\u524d Windows \u4e0b\u901a\u8fc7 IOCP \u5b9e\u73b0\u4e86\u771f\u6b63\u7684\u5f02\u6b65 I/O\uff0c\u800c\u5728 Linux \u7cfb\u7edf\u4e0b\u7684 AIO \u5e76\u4e0d\u5b8c\u5584\uff0c\u56e0\u6b64\u5728 Linux \u4e0b\u5b9e\u73b0\u9ad8\u5e76\u53d1\u7f51\u7edc\u7f16\u7a0b\u65f6\u90fd\u662f\u4ee5 Reactor \u6a21\u5f0f\u4e3a\u4e3b\u3002\u6240\u4ee5\u5373\u4f7f Boost.Asio \u53f7\u79f0\u5b9e\u73b0\u4e86 Proactor \u6a21\u578b\uff0c\u5176\u5b9e\u5b83\u5728 Windows \u4e0b\u91c7\u7528 IOCP\uff0c\u800c\u5728 Linux \u4e0b\u662f\u7528 Reactor \u6a21\u5f0f\uff08\u91c7\u7528 epoll\uff09\u6a21\u62df\u51fa\u6765\u7684\u5f02\u6b65\u6a21\u578b\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d29ac9c5.ce76ad4b.js b/assets/js/d29ac9c5.d6afbdd9.js similarity index 98% rename from assets/js/d29ac9c5.ce76ad4b.js rename to assets/js/d29ac9c5.d6afbdd9.js index a428c446f..d92287ba6 100644 --- a/assets/js/d29ac9c5.ce76ad4b.js +++ b/assets/js/d29ac9c5.d6afbdd9.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1648],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),p=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(i.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),s=p(r),m=a,f=s["".concat(i,".").concat(m)]||s[m]||y[m]||o;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,c=new Array(o);c[0]=m;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l[s]="string"==typeof e?e:a,c[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>c,default:()=>y,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var n=r(8168),a=(r(6540),r(5680));const o={},c=void 0,l={unversionedId:"study/back/mq/RocketMQ",id:"study/back/mq/RocketMQ",title:"RocketMQ",description:"RocketMQ \u548c Kafka \u6709\u4ec0\u4e48\u533a\u522b\uff1f",source:"@site/docs/study/back/mq/RocketMQ.md",sourceDirName:"study/back/mq",slug:"/study/back/mq/RocketMQ",permalink:"/docs/study/back/mq/RocketMQ",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"MQ\u5b9e\u73b0\u5bf9\u6bd4",permalink:"/docs/study/back/mq/MQ\u5b9e\u73b0\u5bf9\u6bd4"},next:{title:"@Configuration",permalink:"/docs/study/back/spring/@Configuration"}},i={},p=[{value:"RocketMQ \u548c Kafka \u6709\u4ec0\u4e48\u533a\u522b\uff1f",id:"rocketmq-\u548c-kafka-\u6709\u4ec0\u4e48\u533a\u522b",level:3},{value:"\u4e3a\u4ec0\u4e48\u963f\u91cc\u4f1a\u81ea\u7814RocketMQ\uff1f",id:"\u4e3a\u4ec0\u4e48\u963f\u91cc\u4f1a\u81ea\u7814rocketmq",level:3}],u={toc:p},s="wrapper";function y(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"rocketmq-\u548c-kafka-\u6709\u4ec0\u4e48\u533a\u522b"},"RocketMQ \u548c Kafka \u6709\u4ec0\u4e48\u533a\u522b\uff1f"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("strong",{parentName:"li"},"\u9002\u7528\u573a\u666f"),"\uff1aKafka\u9002\u5408\u65e5\u5fd7\u5904\u7406\uff1bRocketMQ\u9002\u5408\u4e1a\u52a1\u5904\u7406\u3002 "),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("strong",{parentName:"li"},"\u6027\u80fd"),"\uff1aKafka\u5355\u673a\u5199\u5165TPS\u53f7\u79f0\u5728\u767e\u4e07\u6761/\u79d2\uff1bRocketMQ\u5927\u7ea6\u572810\u4e07\u6761/\u79d2\u3002Kafka\u5355\u673a\u6027\u80fd\u66f4\u9ad8\u3002 "),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("strong",{parentName:"li"},"\u53ef\u9760\u6027"),"\uff1aRocketMQ\u652f\u6301\u5f02\u6b65/\u540c\u6b65\u5237\u76d8;\u5f02\u6b65/\u540c\u6b65Replication\uff1bKafka\u4f7f\u7528\u5f02\u6b65\u5237\u76d8\u65b9\u5f0f\uff0c\u5f02\u6b65Replication\u3002RocketMQ\u6240\u652f\u6301\u7684\u540c\u6b65\u65b9\u5f0f\u63d0\u5347\u4e86\u6570\u636e\u7684\u53ef\u9760\u6027\u3002 "),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("strong",{parentName:"li"},"\u5b9e\u65f6\u6027"),"\uff1a\u5747\u652f\u6301pull\u957f\u8f6e\u8be2\uff0cRocketMQ\u6d88\u606f\u5b9e\u65f6\u6027\u66f4\u597d "),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("strong",{parentName:"li"},"\u652f\u6301\u7684\u961f\u5217\u6570"),"\uff1aKafka\u5355\u673a\u8d85\u8fc764\u4e2a\u961f\u5217/\u5206\u533a\uff0c\u6d88\u606f\u53d1\u9001\u6027\u80fd\u964d\u4f4e\u4e25\u91cd\uff1bRocketMQ\u5355\u673a\u652f\u6301\u6700\u9ad85\u4e07\u4e2a\u961f\u5217\uff0c\u6027\u80fd\u7a33\u5b9a\uff08\u8fd9\u4e5f\u662f\u9002\u5408\u4e1a\u52a1\u5904\u7406\u7684\u539f\u56e0\u4e4b\u4e00\uff09")),(0,a.yg)("h3",{id:"\u4e3a\u4ec0\u4e48\u963f\u91cc\u4f1a\u81ea\u7814rocketmq"},"\u4e3a\u4ec0\u4e48\u963f\u91cc\u4f1a\u81ea\u7814RocketMQ\uff1f"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"Kafka\u7684\u4e1a\u52a1\u5e94\u7528\u573a\u666f\u4e3b\u8981\u5b9a\u4f4d\u4e8e\u65e5\u5fd7\u4f20\u8f93\uff1b\u5bf9\u4e8e\u590d\u6742\u4e1a\u52a1\u652f\u6301\u4e0d\u591f "),(0,a.yg)("li",{parentName:"ol"},"\u963f\u91cc\u5f88\u591a\u4e1a\u52a1\u573a\u666f\u5bf9\u6570\u636e\u53ef\u9760\u6027\u3001\u6570\u636e\u5b9e\u65f6\u6027\u3001\u6d88\u606f\u961f\u5217\u7684\u4e2a\u6570\u7b49\u65b9\u9762\u7684\u8981\u6c42\u5f88\u9ad8 "),(0,a.yg)("li",{parentName:"ol"},"\u5f53\u4e1a\u52a1\u6210\u957f\u5230\u4e00\u5b9a\u89c4\u6a21\uff0c\u91c7\u7528\u5f00\u6e90\u65b9\u6848\u7684\u6280\u672f\u6210\u672c\u4f1a\u53d8\u9ad8\uff08\u5f00\u6e90\u65b9\u6848\u65e0\u6cd5\u6ee1\u8db3\u4e1a\u52a1\u7684\u9700\u8981\uff1b\u65e7\u7248\u672c\u3001\u81ea\u5f00\u53d1\u4ee3\u7801\u4e0e\u65b0\u7248\u672c\u7684\u517c\u5bb9\u7b49\uff09 "),(0,a.yg)("li",{parentName:"ol"},"\u963f\u91cc\u5728\u56e2\u961f\u3001\u6210\u672c\u3001\u8d44\u6e90\u6295\u5165\u7b49\u65b9\u9762\u7ea6\u675f\u6027\u6761\u4ef6\u51e0\u4e4e\u6ca1\u6709")))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1648],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),p=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(i.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),s=p(r),m=a,f=s["".concat(i,".").concat(m)]||s[m]||y[m]||o;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,c=new Array(o);c[0]=m;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l[s]="string"==typeof e?e:a,c[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>c,default:()=>y,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var n=r(8168),a=(r(6540),r(5680));const o={},c=void 0,l={unversionedId:"study/back/mq/RocketMQ",id:"study/back/mq/RocketMQ",title:"RocketMQ",description:"RocketMQ \u548c Kafka \u6709\u4ec0\u4e48\u533a\u522b\uff1f",source:"@site/docs/study/back/mq/RocketMQ.md",sourceDirName:"study/back/mq",slug:"/study/back/mq/RocketMQ",permalink:"/docs/study/back/mq/RocketMQ",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"MQ\u5b9e\u73b0\u5bf9\u6bd4",permalink:"/docs/study/back/mq/MQ\u5b9e\u73b0\u5bf9\u6bd4"},next:{title:"@Configuration",permalink:"/docs/study/back/spring/@Configuration"}},i={},p=[{value:"RocketMQ \u548c Kafka \u6709\u4ec0\u4e48\u533a\u522b\uff1f",id:"rocketmq-\u548c-kafka-\u6709\u4ec0\u4e48\u533a\u522b",level:3},{value:"\u4e3a\u4ec0\u4e48\u963f\u91cc\u4f1a\u81ea\u7814RocketMQ\uff1f",id:"\u4e3a\u4ec0\u4e48\u963f\u91cc\u4f1a\u81ea\u7814rocketmq",level:3}],u={toc:p},s="wrapper";function y(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"rocketmq-\u548c-kafka-\u6709\u4ec0\u4e48\u533a\u522b"},"RocketMQ \u548c Kafka \u6709\u4ec0\u4e48\u533a\u522b\uff1f"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("strong",{parentName:"li"},"\u9002\u7528\u573a\u666f"),"\uff1aKafka\u9002\u5408\u65e5\u5fd7\u5904\u7406\uff1bRocketMQ\u9002\u5408\u4e1a\u52a1\u5904\u7406\u3002 "),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("strong",{parentName:"li"},"\u6027\u80fd"),"\uff1aKafka\u5355\u673a\u5199\u5165TPS\u53f7\u79f0\u5728\u767e\u4e07\u6761/\u79d2\uff1bRocketMQ\u5927\u7ea6\u572810\u4e07\u6761/\u79d2\u3002Kafka\u5355\u673a\u6027\u80fd\u66f4\u9ad8\u3002 "),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("strong",{parentName:"li"},"\u53ef\u9760\u6027"),"\uff1aRocketMQ\u652f\u6301\u5f02\u6b65/\u540c\u6b65\u5237\u76d8;\u5f02\u6b65/\u540c\u6b65Replication\uff1bKafka\u4f7f\u7528\u5f02\u6b65\u5237\u76d8\u65b9\u5f0f\uff0c\u5f02\u6b65Replication\u3002RocketMQ\u6240\u652f\u6301\u7684\u540c\u6b65\u65b9\u5f0f\u63d0\u5347\u4e86\u6570\u636e\u7684\u53ef\u9760\u6027\u3002 "),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("strong",{parentName:"li"},"\u5b9e\u65f6\u6027"),"\uff1a\u5747\u652f\u6301pull\u957f\u8f6e\u8be2\uff0cRocketMQ\u6d88\u606f\u5b9e\u65f6\u6027\u66f4\u597d "),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("strong",{parentName:"li"},"\u652f\u6301\u7684\u961f\u5217\u6570"),"\uff1aKafka\u5355\u673a\u8d85\u8fc764\u4e2a\u961f\u5217/\u5206\u533a\uff0c\u6d88\u606f\u53d1\u9001\u6027\u80fd\u964d\u4f4e\u4e25\u91cd\uff1bRocketMQ\u5355\u673a\u652f\u6301\u6700\u9ad85\u4e07\u4e2a\u961f\u5217\uff0c\u6027\u80fd\u7a33\u5b9a\uff08\u8fd9\u4e5f\u662f\u9002\u5408\u4e1a\u52a1\u5904\u7406\u7684\u539f\u56e0\u4e4b\u4e00\uff09")),(0,a.yg)("h3",{id:"\u4e3a\u4ec0\u4e48\u963f\u91cc\u4f1a\u81ea\u7814rocketmq"},"\u4e3a\u4ec0\u4e48\u963f\u91cc\u4f1a\u81ea\u7814RocketMQ\uff1f"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"Kafka\u7684\u4e1a\u52a1\u5e94\u7528\u573a\u666f\u4e3b\u8981\u5b9a\u4f4d\u4e8e\u65e5\u5fd7\u4f20\u8f93\uff1b\u5bf9\u4e8e\u590d\u6742\u4e1a\u52a1\u652f\u6301\u4e0d\u591f "),(0,a.yg)("li",{parentName:"ol"},"\u963f\u91cc\u5f88\u591a\u4e1a\u52a1\u573a\u666f\u5bf9\u6570\u636e\u53ef\u9760\u6027\u3001\u6570\u636e\u5b9e\u65f6\u6027\u3001\u6d88\u606f\u961f\u5217\u7684\u4e2a\u6570\u7b49\u65b9\u9762\u7684\u8981\u6c42\u5f88\u9ad8 "),(0,a.yg)("li",{parentName:"ol"},"\u5f53\u4e1a\u52a1\u6210\u957f\u5230\u4e00\u5b9a\u89c4\u6a21\uff0c\u91c7\u7528\u5f00\u6e90\u65b9\u6848\u7684\u6280\u672f\u6210\u672c\u4f1a\u53d8\u9ad8\uff08\u5f00\u6e90\u65b9\u6848\u65e0\u6cd5\u6ee1\u8db3\u4e1a\u52a1\u7684\u9700\u8981\uff1b\u65e7\u7248\u672c\u3001\u81ea\u5f00\u53d1\u4ee3\u7801\u4e0e\u65b0\u7248\u672c\u7684\u517c\u5bb9\u7b49\uff09 "),(0,a.yg)("li",{parentName:"ol"},"\u963f\u91cc\u5728\u56e2\u961f\u3001\u6210\u672c\u3001\u8d44\u6e90\u6295\u5165\u7b49\u65b9\u9762\u7ea6\u675f\u6027\u6761\u4ef6\u51e0\u4e4e\u6ca1\u6709")))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d3208707.84fb3cd4.js b/assets/js/d3208707.99faf58d.js similarity index 99% rename from assets/js/d3208707.84fb3cd4.js rename to assets/js/d3208707.99faf58d.js index 83b451d10..98b68cc3a 100644 --- a/assets/js/d3208707.84fb3cd4.js +++ b/assets/js/d3208707.99faf58d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9942],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>m});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),c=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},u=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},y="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,u=o(e,["components","mdxType","originalType","parentName"]),y=c(r),d=a,m=y["".concat(s,".").concat(d)]||y[d]||p[d]||i;return r?n.createElement(m,l(l({ref:t},u),{},{components:r})):n.createElement(m,l({ref:t},u))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=r.length,l=new Array(i);l[0]=d;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[y]="string"==typeof e?e:a,l[1]=o;for(var c=2;c{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>p,frontMatter:()=>i,metadata:()=>o,toc:()=>c});var n=r(8168),a=(r(6540),r(5680));const i={},l=void 0,o={unversionedId:"study/back/\u6570\u636e\u5e93\u76f8\u5173/MyBatis",id:"study/back/\u6570\u636e\u5e93\u76f8\u5173/MyBatis",title:"MyBatis",description:"\u4e00\u4e9b\u7ecf\u5e38\u8bfb\u7684\u5b98\u65b9\u6587\u6863",source:"@site/docs/study/back/\u6570\u636e\u5e93\u76f8\u5173/MyBatis.md",sourceDirName:"study/back/\u6570\u636e\u5e93\u76f8\u5173",slug:"/study/back/\u6570\u636e\u5e93\u76f8\u5173/MyBatis",permalink:"/docs/study/back/\u6570\u636e\u5e93\u76f8\u5173/MyBatis",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Java\u6570\u636e\u5e93\u8fde\u63a5\u6c60",permalink:"/docs/study/back/\u6570\u636e\u5e93\u76f8\u5173/Java\u6570\u636e\u5e93\u8fde\u63a5\u6c60"},next:{title:"log4jdbc",permalink:"/docs/study/back/\u6570\u636e\u5e93\u76f8\u5173/log4jdbc"}},s={},c=[{value:"\u4e00\u4e9b\u7ecf\u5e38\u8bfb\u7684\u5b98\u65b9\u6587\u6863",id:"\u4e00\u4e9b\u7ecf\u5e38\u8bfb\u7684\u5b98\u65b9\u6587\u6863",level:3},{value:"MyBatis \u7f13\u5b58",id:"mybatis-\u7f13\u5b58",level:3},{value:"\u4f5c\u7528\u8303\u56f4",id:"\u4f5c\u7528\u8303\u56f4",level:4},{value:"\u7f13\u5b58\u4f4d\u7f6e",id:"\u7f13\u5b58\u4f4d\u7f6e",level:4},{value:"\u7f13\u5b58\u8fc7\u671f",id:"\u7f13\u5b58\u8fc7\u671f",level:4}],u={toc:c},y="wrapper";function p(e){let{components:t,...r}=e;return(0,a.yg)(y,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u4e00\u4e9b\u7ecf\u5e38\u8bfb\u7684\u5b98\u65b9\u6587\u6863"},"\u4e00\u4e9b\u7ecf\u5e38\u8bfb\u7684\u5b98\u65b9\u6587\u6863"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://mybatis.org/mybatis-3/zh_CN/index.html"},"MyBatis \u5b98\u65b9\u53c2\u8003\u6587\u6863")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://github.com/mybatis"},"GitHub-MyBatis")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://github.com/mybatis/spring-boot-starter"},"MyBatis integration with Spring Boot"))),(0,a.yg)("h3",{id:"mybatis-\u7f13\u5b58"},"MyBatis \u7f13\u5b58"),(0,a.yg)("p",null,"myabtis \u7684\u7f13\u5b58\u5206\u4e3a\u4e00\u7ea7\u7f13\u5b58\u548c\u4e8c\u7ea7\u7f13\u5b58\uff0c\u9ed8\u8ba4\u5f00\u542f\u4e00\u7ea7\u7f13\u5b58\uff0c\u5173\u95ed\u4e8c\u7ea7\u7f13\u5b58\uff0c\u4e00\u7ea7\u7f13\u5b58\u65f6 sqlSession \u7ea7\u522b\uff0c\u4e8c\u7ea7\u7f13\u5b58\u662f namespace \u7ea7\u522b\u3002"),(0,a.yg)("h4",{id:"\u4f5c\u7528\u8303\u56f4"},"\u4f5c\u7528\u8303\u56f4"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u4e00\u7ea7\u7f13\u5b58\u662f\u4f1a\u8bdd\u7ea7\u522b\u7684\u7f13\u5b58\uff0c\u5373 sqlSession \u7ea7\u522b\uff0c\u4f1a\u8bdd\u7ed3\u675f\uff0c\u6e05\u9664\u4f1a\u8bdd\u4e2d\u7684\u7f13\u5b58\u6570\u636e\uff0c\u5b9e\u9645\u4ee3\u7801\u4e2d\u901a\u8fc7\u901a\u8fc7\u5f00\u542f\u4e8b\u52a1\u8ba9\u591a\u4e2a\u6570\u636e\u5e93\u64cd\u4f5c\u5171\u4eab\u4e00\u4e2a sqlSession\u3002"),(0,a.yg)("li",{parentName:"ul"},"\u4e8c\u7ea7\u7f13\u5b58: \u5168\u5c40\u7ea7\u522b\uff0c\u4e5f\u53eb namespace \u7ea7\u522b\uff0c\u4f1a\u8bdd\u7ed3\u675f\uff0c\u7f13\u5b58\u4f9d\u7136\u5b58\u5728\uff0c\u591a\u4e2a\u8bf7\u6c42\u53ef\u4ee5\u5171\u4eab\u7f13\u5b58\u6570\u636e\u3002")),(0,a.yg)("h4",{id:"\u7f13\u5b58\u4f4d\u7f6e"},"\u7f13\u5b58\u4f4d\u7f6e"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u4e00\u7ea7\u7f13\u5b58\u7531\u4e8e\u662f sqlSession \u7ea7\u522b\uff0c\u672c\u8d28\u4e0a\u662f\u5728 JVM \u4e2d\u521b\u5efa\u4e00\u4e2a Map \u96c6\u5408\u5bf9\u8c61\u4fdd\u5b58\u7f13\u5b58\u6570\u636e\uff0c\u6240\u4ee5\u7f13\u5b58\u6570\u636e\u4fdd\u7559\u7684\u5730\u65b9\u662f\u672c\u5730 JVM \u5185\u5b58\u4e2d\u3002"),(0,a.yg)("li",{parentName:"ul"},"\u4e8c\u7ea7\u7f13\u5b58\u9ed8\u8ba4\u4e5f\u662f\u4fdd\u5b58\u5728 JVM \u4e2d\uff0c\u4f46\u662f\u53ef\u4ee5\u901a\u8fc7\u914d\u7f6e\u5c06\u7f13\u5b58\u6570\u636e\u4fdd\u5b58\u5230\u7b2c\u4e09\u65b9\u7f13\u5b58\u4e2d\uff0c\u6bd4\u5982 ehcache\u3001redis\u3002\u4fdd\u5b58\u5728 redis \u8fd9\u4e9b\u7684\u5206\u5e03\u5f0f\u7f13\u5b58\u4e2d\uff0c\u80fd\u63d0\u4f9b\u66f4\u597d\u7684\u5206\u5e03\u5f0f\u573a\u666f\u7684\u652f\u6301\u3002")),(0,a.yg)("h4",{id:"\u7f13\u5b58\u8fc7\u671f"},"\u7f13\u5b58\u8fc7\u671f"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u4e00\u7ea7\u7f13\u5b58\u65e0\u8fc7\u671f\u65f6\u95f4\uff0c\u53ea\u6709\u751f\u547d\u5468\u671f\uff0c\u7f13\u5b58\u4f1a\u5148\u653e\u5728\u4e00\u7ea7\u7f13\u5b58\u4e2d\uff0c\u5f53 sqlSession \u4f1a\u8bdd\u63d0\u4ea4\u6216\u8005\u5173\u95ed\u65f6\u624d\u4f1a\u5c06\u4e00\u7ea7\u7f13\u5b58\u5237\u65b0\u5230\u4e8c\u7ea7\u7f13\u5b58\u4e2d\uff1b\u5f00\u542f\u4e8c\u7ea7\u7f13\u5b58\u540e\uff0c\u7528\u6237\u67e5\u8be2\u65f6\uff0c\u4f1a\u5148\u53bb\u4e8c\u7ea7\u7f13\u5b58\u4e2d\u627e\uff0c\u627e\u4e0d\u5230\u5728\u53bb\u4e00\u7ea7\u7f13\u5b58\u4e2d\u627e\uff0c\u7136\u540e\u624d\u53bb\u6570\u636e\u5e93\u67e5\u8be2\uff1b"),(0,a.yg)("li",{parentName:"ul"},"\u4e8c\u7ea7\u7f13\u5b58\u7684\u8fc7\u671f\u65f6\u95f4\u9ed8\u8ba4\u662f 1 \u5c0f\u65f6\uff0c\u5982\u679c\u8fd9\u4e2a cache \u5b58\u6d3b\u4e86\u4e00\u4e2a\u5c0f\u65f6\uff0c\u90a3\u4e48\u5c06\u6574\u4e2a\u6e05\u7a7a\u4e00\u4e0b\u3002\u9700\u8981\u6ce8\u610f\u7684\u662f\uff0c\u5e76\u4e0d\u662f key-value \u7684\u8fc7\u671f\u65f6\u95f4\uff0c\u800c\u662f\u8fd9\u4e2a cache \u7684\u8fc7\u671f\u65f6\u95f4\uff0c\u662f flushInterval\uff0c\u610f\u5473\u7740\u6574\u4e2a\u6e05\u7a7a\u7f13\u5b58 cache\uff0c\u6240\u4ee5\u4e0d\u9700\u8981\u540e\u53f0\u7ebf\u7a0b\u53bb\u5b9a\u65f6\u68c0\u6d4b\uff0c\u6bcf\u5f53\u5b58\u53d6\u6570\u636e\u7684\u65f6\u5019\uff0c\u90fd\u6709\u68c0\u6d4b\u4e00\u4e0b cache \u7684\u751f\u547d\u65f6\u95f4\u3002")))}p.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9942],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>m});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),c=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},u=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},y="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,u=o(e,["components","mdxType","originalType","parentName"]),y=c(r),d=a,m=y["".concat(s,".").concat(d)]||y[d]||p[d]||i;return r?n.createElement(m,l(l({ref:t},u),{},{components:r})):n.createElement(m,l({ref:t},u))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=r.length,l=new Array(i);l[0]=d;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[y]="string"==typeof e?e:a,l[1]=o;for(var c=2;c{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>p,frontMatter:()=>i,metadata:()=>o,toc:()=>c});var n=r(8168),a=(r(6540),r(5680));const i={},l=void 0,o={unversionedId:"study/back/\u6570\u636e\u5e93\u76f8\u5173/MyBatis",id:"study/back/\u6570\u636e\u5e93\u76f8\u5173/MyBatis",title:"MyBatis",description:"\u4e00\u4e9b\u7ecf\u5e38\u8bfb\u7684\u5b98\u65b9\u6587\u6863",source:"@site/docs/study/back/\u6570\u636e\u5e93\u76f8\u5173/MyBatis.md",sourceDirName:"study/back/\u6570\u636e\u5e93\u76f8\u5173",slug:"/study/back/\u6570\u636e\u5e93\u76f8\u5173/MyBatis",permalink:"/docs/study/back/\u6570\u636e\u5e93\u76f8\u5173/MyBatis",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Java\u6570\u636e\u5e93\u8fde\u63a5\u6c60",permalink:"/docs/study/back/\u6570\u636e\u5e93\u76f8\u5173/Java\u6570\u636e\u5e93\u8fde\u63a5\u6c60"},next:{title:"log4jdbc",permalink:"/docs/study/back/\u6570\u636e\u5e93\u76f8\u5173/log4jdbc"}},s={},c=[{value:"\u4e00\u4e9b\u7ecf\u5e38\u8bfb\u7684\u5b98\u65b9\u6587\u6863",id:"\u4e00\u4e9b\u7ecf\u5e38\u8bfb\u7684\u5b98\u65b9\u6587\u6863",level:3},{value:"MyBatis \u7f13\u5b58",id:"mybatis-\u7f13\u5b58",level:3},{value:"\u4f5c\u7528\u8303\u56f4",id:"\u4f5c\u7528\u8303\u56f4",level:4},{value:"\u7f13\u5b58\u4f4d\u7f6e",id:"\u7f13\u5b58\u4f4d\u7f6e",level:4},{value:"\u7f13\u5b58\u8fc7\u671f",id:"\u7f13\u5b58\u8fc7\u671f",level:4}],u={toc:c},y="wrapper";function p(e){let{components:t,...r}=e;return(0,a.yg)(y,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u4e00\u4e9b\u7ecf\u5e38\u8bfb\u7684\u5b98\u65b9\u6587\u6863"},"\u4e00\u4e9b\u7ecf\u5e38\u8bfb\u7684\u5b98\u65b9\u6587\u6863"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://mybatis.org/mybatis-3/zh_CN/index.html"},"MyBatis \u5b98\u65b9\u53c2\u8003\u6587\u6863")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://github.com/mybatis"},"GitHub-MyBatis")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://github.com/mybatis/spring-boot-starter"},"MyBatis integration with Spring Boot"))),(0,a.yg)("h3",{id:"mybatis-\u7f13\u5b58"},"MyBatis \u7f13\u5b58"),(0,a.yg)("p",null,"myabtis \u7684\u7f13\u5b58\u5206\u4e3a\u4e00\u7ea7\u7f13\u5b58\u548c\u4e8c\u7ea7\u7f13\u5b58\uff0c\u9ed8\u8ba4\u5f00\u542f\u4e00\u7ea7\u7f13\u5b58\uff0c\u5173\u95ed\u4e8c\u7ea7\u7f13\u5b58\uff0c\u4e00\u7ea7\u7f13\u5b58\u65f6 sqlSession \u7ea7\u522b\uff0c\u4e8c\u7ea7\u7f13\u5b58\u662f namespace \u7ea7\u522b\u3002"),(0,a.yg)("h4",{id:"\u4f5c\u7528\u8303\u56f4"},"\u4f5c\u7528\u8303\u56f4"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u4e00\u7ea7\u7f13\u5b58\u662f\u4f1a\u8bdd\u7ea7\u522b\u7684\u7f13\u5b58\uff0c\u5373 sqlSession \u7ea7\u522b\uff0c\u4f1a\u8bdd\u7ed3\u675f\uff0c\u6e05\u9664\u4f1a\u8bdd\u4e2d\u7684\u7f13\u5b58\u6570\u636e\uff0c\u5b9e\u9645\u4ee3\u7801\u4e2d\u901a\u8fc7\u901a\u8fc7\u5f00\u542f\u4e8b\u52a1\u8ba9\u591a\u4e2a\u6570\u636e\u5e93\u64cd\u4f5c\u5171\u4eab\u4e00\u4e2a sqlSession\u3002"),(0,a.yg)("li",{parentName:"ul"},"\u4e8c\u7ea7\u7f13\u5b58: \u5168\u5c40\u7ea7\u522b\uff0c\u4e5f\u53eb namespace \u7ea7\u522b\uff0c\u4f1a\u8bdd\u7ed3\u675f\uff0c\u7f13\u5b58\u4f9d\u7136\u5b58\u5728\uff0c\u591a\u4e2a\u8bf7\u6c42\u53ef\u4ee5\u5171\u4eab\u7f13\u5b58\u6570\u636e\u3002")),(0,a.yg)("h4",{id:"\u7f13\u5b58\u4f4d\u7f6e"},"\u7f13\u5b58\u4f4d\u7f6e"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u4e00\u7ea7\u7f13\u5b58\u7531\u4e8e\u662f sqlSession \u7ea7\u522b\uff0c\u672c\u8d28\u4e0a\u662f\u5728 JVM \u4e2d\u521b\u5efa\u4e00\u4e2a Map \u96c6\u5408\u5bf9\u8c61\u4fdd\u5b58\u7f13\u5b58\u6570\u636e\uff0c\u6240\u4ee5\u7f13\u5b58\u6570\u636e\u4fdd\u7559\u7684\u5730\u65b9\u662f\u672c\u5730 JVM \u5185\u5b58\u4e2d\u3002"),(0,a.yg)("li",{parentName:"ul"},"\u4e8c\u7ea7\u7f13\u5b58\u9ed8\u8ba4\u4e5f\u662f\u4fdd\u5b58\u5728 JVM \u4e2d\uff0c\u4f46\u662f\u53ef\u4ee5\u901a\u8fc7\u914d\u7f6e\u5c06\u7f13\u5b58\u6570\u636e\u4fdd\u5b58\u5230\u7b2c\u4e09\u65b9\u7f13\u5b58\u4e2d\uff0c\u6bd4\u5982 ehcache\u3001redis\u3002\u4fdd\u5b58\u5728 redis \u8fd9\u4e9b\u7684\u5206\u5e03\u5f0f\u7f13\u5b58\u4e2d\uff0c\u80fd\u63d0\u4f9b\u66f4\u597d\u7684\u5206\u5e03\u5f0f\u573a\u666f\u7684\u652f\u6301\u3002")),(0,a.yg)("h4",{id:"\u7f13\u5b58\u8fc7\u671f"},"\u7f13\u5b58\u8fc7\u671f"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u4e00\u7ea7\u7f13\u5b58\u65e0\u8fc7\u671f\u65f6\u95f4\uff0c\u53ea\u6709\u751f\u547d\u5468\u671f\uff0c\u7f13\u5b58\u4f1a\u5148\u653e\u5728\u4e00\u7ea7\u7f13\u5b58\u4e2d\uff0c\u5f53 sqlSession \u4f1a\u8bdd\u63d0\u4ea4\u6216\u8005\u5173\u95ed\u65f6\u624d\u4f1a\u5c06\u4e00\u7ea7\u7f13\u5b58\u5237\u65b0\u5230\u4e8c\u7ea7\u7f13\u5b58\u4e2d\uff1b\u5f00\u542f\u4e8c\u7ea7\u7f13\u5b58\u540e\uff0c\u7528\u6237\u67e5\u8be2\u65f6\uff0c\u4f1a\u5148\u53bb\u4e8c\u7ea7\u7f13\u5b58\u4e2d\u627e\uff0c\u627e\u4e0d\u5230\u5728\u53bb\u4e00\u7ea7\u7f13\u5b58\u4e2d\u627e\uff0c\u7136\u540e\u624d\u53bb\u6570\u636e\u5e93\u67e5\u8be2\uff1b"),(0,a.yg)("li",{parentName:"ul"},"\u4e8c\u7ea7\u7f13\u5b58\u7684\u8fc7\u671f\u65f6\u95f4\u9ed8\u8ba4\u662f 1 \u5c0f\u65f6\uff0c\u5982\u679c\u8fd9\u4e2a cache \u5b58\u6d3b\u4e86\u4e00\u4e2a\u5c0f\u65f6\uff0c\u90a3\u4e48\u5c06\u6574\u4e2a\u6e05\u7a7a\u4e00\u4e0b\u3002\u9700\u8981\u6ce8\u610f\u7684\u662f\uff0c\u5e76\u4e0d\u662f key-value \u7684\u8fc7\u671f\u65f6\u95f4\uff0c\u800c\u662f\u8fd9\u4e2a cache \u7684\u8fc7\u671f\u65f6\u95f4\uff0c\u662f flushInterval\uff0c\u610f\u5473\u7740\u6574\u4e2a\u6e05\u7a7a\u7f13\u5b58 cache\uff0c\u6240\u4ee5\u4e0d\u9700\u8981\u540e\u53f0\u7ebf\u7a0b\u53bb\u5b9a\u65f6\u68c0\u6d4b\uff0c\u6bcf\u5f53\u5b58\u53d6\u6570\u636e\u7684\u65f6\u5019\uff0c\u90fd\u6709\u68c0\u6d4b\u4e00\u4e0b cache \u7684\u751f\u547d\u65f6\u95f4\u3002")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d4bb2cb0.c4f0b7e5.js b/assets/js/d4bb2cb0.a328ce51.js similarity index 99% rename from assets/js/d4bb2cb0.c4f0b7e5.js rename to assets/js/d4bb2cb0.a328ce51.js index d71f9382c..fb3b272bc 100644 --- a/assets/js/d4bb2cb0.c4f0b7e5.js +++ b/assets/js/d4bb2cb0.a328ce51.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5552],{5680:(e,t,n)=>{n.d(t,{xA:()=>y,yg:()=>m});var r=n(6540);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var o=r.createContext({}),u=function(e){var t=r.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},y=function(e){var t=u(e.components);return r.createElement(o.Provider,{value:t},e.children)},s="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},g=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,l=e.originalType,o=e.parentName,y=p(e,["components","mdxType","originalType","parentName"]),s=u(n),g=a,m=s["".concat(o,".").concat(g)]||s[g]||c[g]||l;return n?r.createElement(m,i(i({ref:t},y),{},{components:n})):r.createElement(m,i({ref:t},y))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=n.length,i=new Array(l);i[0]=g;var p={};for(var o in t)hasOwnProperty.call(t,o)&&(p[o]=t[o]);p.originalType=e,p[s]="string"==typeof e?e:a,i[1]=p;for(var u=2;u{n.r(t),n.d(t,{assets:()=>o,contentTitle:()=>i,default:()=>c,frontMatter:()=>l,metadata:()=>p,toc:()=>u});var r=n(8168),a=(n(6540),n(5680));const l={},i=void 0,p={unversionedId:"study/encryption/\u4e2d\u56fd\u5546\u7528\u5bc6\u7801\u7b97\u6cd5",id:"study/encryption/\u4e2d\u56fd\u5546\u7528\u5bc6\u7801\u7b97\u6cd5",title:"\u4e2d\u56fd\u5546\u7528\u5bc6\u7801\u7b97\u6cd5",description:"\u7b80\u4ecb",source:"@site/docs/study/encryption/\u4e2d\u56fd\u5546\u7528\u5bc6\u7801\u7b97\u6cd5.md",sourceDirName:"study/encryption",slug:"/study/encryption/\u4e2d\u56fd\u5546\u7528\u5bc6\u7801\u7b97\u6cd5",permalink:"/docs/study/encryption/\u4e2d\u56fd\u5546\u7528\u5bc6\u7801\u7b97\u6cd5",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u52a0\u89e3\u5bc6",permalink:"/docs/study/encryption/"},next:{title:"\u52a0\u89e3\u5bc6\u670d\u52a1",permalink:"/docs/study/encryption/\u52a0\u89e3\u5bc6\u670d\u52a1"}},o={},u=[{value:"\u7b80\u4ecb",id:"\u7b80\u4ecb",level:3},{value:"SM1 \u5546\u5bc6 1 \u53f7",id:"sm1-\u5546\u5bc6-1-\u53f7",level:3},{value:"SM2",id:"sm2",level:3},{value:"SM3",id:"sm3",level:3},{value:"SMS4",id:"sms4",level:3},{value:"SM7",id:"sm7",level:3},{value:"SM9",id:"sm9",level:3},{value:"\u7956\u51b2&ZUC \u7b97\u6cd5",id:"\u7956\u51b2zuc-\u7b97\u6cd5",level:3}],y={toc:u},s="wrapper";function c(e){let{components:t,...n}=e;return(0,a.yg)(s,(0,r.A)({},y,n,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u7b80\u4ecb"},"\u7b80\u4ecb"),(0,a.yg)("p",null,"\u5546\u7528\u5bc6\u7801\u6280\u672f\uff0c\u662f\u6307\u80fd\u591f\u5b9e\u73b0\u5546\u7528\u5bc6\u7801\u7b97\u6cd5\u7684\u52a0\u5bc6\u3001\u89e3\u5bc6\u548c\u8ba4\u8bc1\u7b49\u529f\u80fd\u7684\u6280\u672f\u3002\uff08\u5305\u62ec\u5bc6\u7801\u7b97\u6cd5\u7f16\u7a0b\u6280\u672f\u548c\u5bc6\u7801\u7b97\u6cd5\u82af\u7247\u3001\u52a0\u5bc6\u5361\u7b49\u7684\u5b9e\u73b0\u6280\u672f\uff09\u3002\u5546\u7528\u5bc6\u7801\u6280\u672f\u662f\u5546\u7528\u5bc6\u7801\u7684\u6838\u5fc3\uff0c\u56fd\u5bb6\u5c06\u5546\u7528\u5bc6\u7801\u6280\u672f\u5217\u5165\u56fd\u5bb6\u79d8\u5bc6\uff0c\u4efb\u4f55\u5355\u4f4d\u548c\u4e2a\u4eba\u90fd\u6709\u8d23\u4efb\u548c\u4e49\u52a1\u4fdd\u62a4\u5546\u7528\u5bc6\u7801\u6280\u672f\u7684\u79d8\u5bc6\u3002"),(0,a.yg)("p",null,"\u5546\u7528\u5bc6\u7801\u7684\u5e94\u7528\u9886\u57df\u5341\u5206\u5e7f\u6cdb,\u4e3b\u8981\u7528\u4e8e\u5bf9\u4e0d\u6d89\u53ca\u56fd\u5bb6\u79d8\u5bc6\u5185\u5bb9\u4f46\u53c8\u5177\u6709\u654f\u611f\u6027\u7684\u5185\u90e8\u4fe1\u606f\u3001\u884c\u653f\u4e8b\u52a1\u4fe1\u606f\u3001\u7ecf\u6d4e\u4fe1\u606f\u7b49\u8fdb\u884c\u52a0\u5bc6\u4fdd\u62a4\u3002\u6bd4\u5982:\u5546\u7528\u5bc6\u7801\u53ef\u7528\u4e8e\u4f01\u4e1a\u5185\u90e8\u7684\u5404\u7c7b\u654f\u611f\u4fe1\u606f\u7684\u4f20\u8f93\u52a0\u5bc6\u3001\u5b58\u50a8\u52a0\u5bc6,\u9632\u6b62\u975e\u6cd5\u7b2c\u4e09\u65b9\u83b7\u53d6\u4fe1\u606f\u5185\u5bb9;\u4e5f\u53ef\u7528\u4e8e\u5404\u79cd\u5b89\u5168\u8ba4\u8bc1\u3001\u7f51\u4e0a\u94f6\u884c\u3001\u6570\u5b57\u7b7e\u540d\u7b49\u3002"),(0,a.yg)("p",null,"\u5bf9\u79f0\u5bc6\u7801\u53c8\u53ef\u5206\u4e3a\u5206\u7ec4\u5bc6\u7801\u548c\u5e8f\u5217\uff08\u6d41\uff09\u5bc6\u7801"),(0,a.yg)("p",null,"SM4 \u7b97\u6cd5\u662f SM \u7cfb\u5217\u7b97\u6cd5\u4e2d\u4f7f\u7528\u6700\u4e3a\u5e7f\u6cdb\u7684\u5bc6\u7801\u7b97\u6cd5\u3002"),(0,a.yg)("h3",{id:"sm1-\u5546\u5bc6-1-\u53f7"},"SM1 \u5546\u5bc6 1 \u53f7"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u5bf9\u79f0\u52a0\u5bc6\uff0c\u5206\u7ec4\u52a0\u5bc6"),(0,a.yg)("li",{parentName:"ul"},"\u4ea6\u79f0 SCB2 \u7b97\u6cd5"),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("strong",{parentName:"li"},(0,a.yg)("em",{parentName:"strong"},"\u4e0d\u516c\u5f00")),"\uff0c\u4ec5\u4ee5 IP \u6838\u7684\u5f62\u5f0f\u5b58\u5728\u4e8e\u82af\u7247\u4e2d"),(0,a.yg)("li",{parentName:"ul"},"\u91c7\u7528\u8be5\u7b97\u6cd5\u5df2\u7ecf\u7814\u5236\u4e86\u7cfb\u5217\u82af\u7247\u3001\u667a\u80fd IC \u5361\u3001\u667a\u80fd\u5bc6\u7801\u94a5\u5319\u3001\u52a0\u5bc6\u5361\u3001\u52a0\u5bc6\u673a\u7b49\u5b89\u5168\u4ea7\u54c1\uff0c\u5e7f\u6cdb\u5e94\u7528\u4e8e\u7535\u5b50\u653f\u52a1\u3001\u7535\u5b50\u5546\u52a1\u53ca\u56fd\u6c11\u7ecf\u6d4e\u7684\u5404\u4e2a\u5e94\u7528\u9886\u57df\uff08\u5305\u62ec\u56fd\u5bb6\u653f\u52a1\u901a\u3001\u8b66\u52a1\u901a\u7b49\u91cd\u8981\u9886\u57df\uff09\u3002"),(0,a.yg)("li",{parentName:"ul"},"\u66ff\u6362 AES\uff0c\u5206\u7ec4\u957f\u5ea6\u548c\u5bc6\u94a5\u957f\u5ea6\u90fd\u4e3a 128 \u6bd4\u7279")),(0,a.yg)("h3",{id:"sm2"},"SM2"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u516c\u94a5\u52a0\u5bc6\uff0c\u57fa\u4e8e\u692d\u5706\u66f2\u7ebf"),(0,a.yg)("li",{parentName:"ul"},"\u66ff\u6362 RSA"),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("strong",{parentName:"li"},(0,a.yg)("em",{parentName:"strong"},"\u516c\u5f00"))," ",(0,a.yg)("a",{parentName:"li",href:"https://sca.gov.cn/sca/xwdt/2010-12/17/content_1002386.shtml"},"\u56fd\u5bb6\u5bc6\u7801\u7ba1\u7406\u5c40-\u8be5\u7b97\u6cd5\u6587\u6863")),(0,a.yg)("li",{parentName:"ul"},"\u76ee\u524d\u652f\u6301 SM2 \u7b97\u6cd5\u7684\u4ea7\u54c1\u5df2\u8fbe 1000 \u4f59\u6b3e\uff0c\u5e7f\u6cdb\u5e94\u7528\u4e8e\u7535\u5b50\u653f\u52a1\u3001\u79fb\u52a8\u529e\u516c\u3001\u7535\u5b50\u5546\u52a1\u3001\u79fb\u52a8\u652f\u4ed8\u3001\u7535\u5b50\u8bc1\u4e66\u7b49\u57fa\u7840\u8bbe\u65bd\u3001\u4e91\u670d\u52a1\u7b49\u9886\u57df\u3002"),(0,a.yg)("li",{parentName:"ul"},"SM2\u9ed8\u8ba4\u66f2\u7ebf\u7b97\u6cd5 sm2p256v1")),(0,a.yg)("h3",{id:"sm3"},"SM3"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u54c8\u5e0c\u7b97\u6cd5"),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("strong",{parentName:"li"},(0,a.yg)("em",{parentName:"strong"},"\u516c\u5f00")),"\uff0c",(0,a.yg)("a",{parentName:"li",href:"https://sca.gov.cn/sca/xwdt/2010-12/17/content_1002389.shtml"},"\u56fd\u5bb6\u5bc6\u7801\u7ba1\u7406\u5c40-\u8be5\u7b97\u6cd5\u6587\u6863")),(0,a.yg)("li",{parentName:"ul"},"\u8be5\u7b97\u6cd5\u5df2\u6210\u4e3a\u6211\u56fd\u7535\u5b50\u7b7e\u540d\u7c7b\u5bc6\u7801\u7cfb\u7edf\u3001\u8ba1\u7b97\u673a\u5b89\u5168\u767b\u5f55\u7cfb\u7edf\u3001\u8ba1\u7b97\u673a\u5b89\u5168\u901a\u4fe1\u7cfb\u7edf\u3001\u6570\u5b57\u8bc1\u4e66\u3001 \u7f51\u7edc\u5b89\u5168\u57fa\u7840\u8bbe\u65bd\u3001\u5b89\u5168\u4e91\u8ba1\u7b97\u5e73\u53f0\u4e0e\u5927\u6570\u636e\u7b49\u9886\u57df\u4fe1\u606f\u5b89\u5168\u7684\u57fa\u7840\u6280\u672f\u3002")),(0,a.yg)("h3",{id:"sms4"},"SMS4"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u5bf9\u79f0\u52a0\u5bc6"),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("strong",{parentName:"li"},(0,a.yg)("em",{parentName:"strong"},"\u516c\u5f00"))," ",(0,a.yg)("a",{parentName:"li",href:"http://www.sca.gov.cn/sca/c100061/201611/1002423/files/330480f731f64e1ea75138211ea0dc27.pdf"},"\u56fd\u5bb6\u5bc6\u7801\u7ba1\u7406\u5c40-\u8be5\u7b97\u6cd5\u6587\u6863"))),(0,a.yg)("p",null,"SMS4 \u7b97\u6cd5\uff0c\u662f\u4e00\u4e2a\u5206\u7ec4\u7b97\u6cd5\uff0c\u5206\u7ec4\u957f\u5ea6\u548c\u5bc6\u94a5\u957f\u5ea6\u5747\u4e3a 128 \u6bd4\u7279\uff0c\u52a0\u5bc6\u7b97\u6cd5\u4e0e\u5bc6\u94a5\u6269\u5c55\u7b97\u6cd5\u90fd\u91c7\u7528 32 \u8f6e\u975e\u7ebf\u6027\u8fed\u4ee3\u7ed3\u6784\uff0c\u6700\u521d\u4f5c\u4e3a\u65e0\u7ebf\u5c40\u57df\u7f51\u4e13\u7528\u5bc6\u7801\u7b97\u6cd5\u53d1\u5e03\uff0c\u540e\u6210\u4e3a\u5206\u7ec4\u5bc6\u7801\u7b97\u6cd5\u884c\u4e1a\u6807\u51c6\u3002\u76ee\u524d\u652f\u6301 SMS4 \u7b97\u6cd5\u7684\u4ea7\u54c1\u5df2\u8fbe 700 \u4f59\u6b3e\uff0c\u8986\u76d6\u4e86\u5404\u79cd\u6709\u5bf9\u79f0\u52a0\u5bc6\u9700\u6c42\u7684\u5e94\u7528\u3002\u7531\u4e8e SMS4 \u7b97\u6cd5\u6700\u521d\u7528\u4e8e\u65e0\u7ebf\u5c40\u57df\u7f51\u82af\u7247 WAPI \u534f\u8bae\u4e2d\uff0c\u652f\u6301 SMS4 \u7b97\u6cd5\u7684 WAPI \u65e0\u7ebf\u5c40\u57df\u7f51\u82af\u7247\u5df2\u8d85\u8fc7 350 \u591a\u4e2a\u578b\u53f7\uff0c\u5168\u7403\u7d2f\u8ba1\u51fa \u8d27\u91cf\u8d85\u8fc7 70 \u4ebf\u9897\u3002\u5728\u91d1\u878d\u9886\u57df\uff0c\u4ec5\u7edf\u8ba1\u652f\u6301 SMS4 \u7b97\u6cd5\u7684\u667a\u80fd\u5bc6\u7801\u94a5\u5319\u51fa\u8d27\u91cf\u5df2\u8d85\u8fc7 1.5 \u4ebf\u652f\u3002\u6b64\u5916\uff0cSMS4 \u7b97\u6cd5\u5df2\u88ab\u7eb3\u4eba\u53ef\u4fe1\u8ba1\u7b97\u7ec4\u7ec7(TCG)\u53d1\u5e03\u7684\u53ef\u4fe1\u5e73\u53f0\u6a21\u5757\u5e93\u89c4\u8303(TPIM2.0)\u4e2d\u3002"),(0,a.yg)("h3",{id:"sm7"},"SM7"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u5bf9\u79f0\u52a0\u5bc6"),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("strong",{parentName:"li"},(0,a.yg)("em",{parentName:"strong"},"\u4e0d\u516c\u5f00")))),(0,a.yg)("p",null,"SM7 \u9002\u7528\u4e8e\u975e\u63a5\u89e6\u5f0f IC \u5361\uff0c\u5e94\u7528\u5305\u62ec\u8eab\u4efd\u8bc6\u522b\u7c7b\u5e94\u7528(\u95e8\u7981\u5361\u3001\u5de5\u4f5c\u8bc1\u3001\u53c2\u8d5b\u8bc1)\uff0c\u7968\u52a1\u7c7b\u5e94\u7528(\u5927\u578b\u8d5b\u4e8b\u95e8\u7968\u3001\u5c55\u4f1a\u95e8\u7968)\uff0c\u652f\u4ed8\u4e0e\u901a\u5361\u7c7b\u5e94\u7528\uff08\u79ef\u5206\u6d88\u8d39\u5361\u3001\u6821\u56ed\u4e00\u5361\u901a\u3001\u4f01\u4e1a\u4e00\u5361\u901a\u7b49\uff09\u3002"),(0,a.yg)("h3",{id:"sm9"},"SM9"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u6807\u8bc6\u5bc6\u7801\u7b97\u6cd5"),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("strong",{parentName:"li"},(0,a.yg)("em",{parentName:"strong"},"\u516c\u5f00"))),(0,a.yg)("li",{parentName:"ul"},"SM9 \u662f\u4e00\u79cd\u57fa\u4e8e\u8eab\u4efd\u6807\u8bc6\u7684\u516c\u94a5\u5bc6\u7801\u7b97\u6cd5\uff0c\u4e5f\u88ab\u79f0\u4e3a\u6807\u8bc6\u5bc6\u7801\uff0c\u91c7\u7528 256 \u6bd4\u7279\u7684\u692d\u5706\u66f2\u7ebf\u3002")),(0,a.yg)("p",null,"SM9 \u7b97\u6cd5\u4e0d\u9700\u8981\u7533\u8bf7\u6570\u5b57\u8bc1\u4e66\uff0c\u9002\u7528\u4e8e\u4e92\u8054\u7f51\u5e94\u7528\u7684\u5404\u79cd\u65b0\u5174\u5e94\u7528\u7684\u5b89\u5168\u4fdd\u5bc6\u4fdd\u969c\uff0c\u5982\u57fa\u4e8e\u4e91\u6280\u672f\u7684\u5bc6\u7801\u670d\u52a1\u3001\u7535\u5b50\u90ae\u4ef6\u5b89\u5168\u3001\u667a\u80fd\u7ec8\u7aef\u4fdd\u62a4\u3001\u7269\u8054\u7f51\u5b89\u5168\u3001\u4e91\u5b58\u50a8\u5b89\u5168\u7b49\u7b49\u3002"),(0,a.yg)("p",null,(0,a.yg)("a",{parentName:"p",href:"https://blog.csdn.net/qq_37340229/article/details/127937730"},"CSDN-\u57fa\u4e8eSM9\u7684\u5bc6\u94a5\u4ea4\u6362\u65b9\u6848\u7684\u5b9e\u73b0\u4e0e\u5e94\u7528")),(0,a.yg)("h3",{id:"\u7956\u51b2zuc-\u7b97\u6cd5"},"\u7956\u51b2&ZUC \u7b97\u6cd5"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u6d41\u5bc6\u7801"),(0,a.yg)("li",{parentName:"ul"},"\u4e3b\u8981\u7528\u4e8e\u901a\u4fe1\u9886\u57df"),(0,a.yg)("li",{parentName:"ul"},"\u8be5\u7b97\u6cd5\u901f\u5ea6\u5feb\uff0c\u5e38\u7528\u4e8e\u79fb\u52a8\u901a\u4fe1 4G \u7f51\u7edc\u3002")))}c.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5552],{5680:(e,t,n)=>{n.d(t,{xA:()=>y,yg:()=>m});var r=n(6540);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var o=r.createContext({}),u=function(e){var t=r.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},y=function(e){var t=u(e.components);return r.createElement(o.Provider,{value:t},e.children)},s="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},g=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,l=e.originalType,o=e.parentName,y=p(e,["components","mdxType","originalType","parentName"]),s=u(n),g=a,m=s["".concat(o,".").concat(g)]||s[g]||c[g]||l;return n?r.createElement(m,i(i({ref:t},y),{},{components:n})):r.createElement(m,i({ref:t},y))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=n.length,i=new Array(l);i[0]=g;var p={};for(var o in t)hasOwnProperty.call(t,o)&&(p[o]=t[o]);p.originalType=e,p[s]="string"==typeof e?e:a,i[1]=p;for(var u=2;u{n.r(t),n.d(t,{assets:()=>o,contentTitle:()=>i,default:()=>c,frontMatter:()=>l,metadata:()=>p,toc:()=>u});var r=n(8168),a=(n(6540),n(5680));const l={},i=void 0,p={unversionedId:"study/encryption/\u4e2d\u56fd\u5546\u7528\u5bc6\u7801\u7b97\u6cd5",id:"study/encryption/\u4e2d\u56fd\u5546\u7528\u5bc6\u7801\u7b97\u6cd5",title:"\u4e2d\u56fd\u5546\u7528\u5bc6\u7801\u7b97\u6cd5",description:"\u7b80\u4ecb",source:"@site/docs/study/encryption/\u4e2d\u56fd\u5546\u7528\u5bc6\u7801\u7b97\u6cd5.md",sourceDirName:"study/encryption",slug:"/study/encryption/\u4e2d\u56fd\u5546\u7528\u5bc6\u7801\u7b97\u6cd5",permalink:"/docs/study/encryption/\u4e2d\u56fd\u5546\u7528\u5bc6\u7801\u7b97\u6cd5",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u52a0\u89e3\u5bc6",permalink:"/docs/study/encryption/"},next:{title:"\u52a0\u89e3\u5bc6\u670d\u52a1",permalink:"/docs/study/encryption/\u52a0\u89e3\u5bc6\u670d\u52a1"}},o={},u=[{value:"\u7b80\u4ecb",id:"\u7b80\u4ecb",level:3},{value:"SM1 \u5546\u5bc6 1 \u53f7",id:"sm1-\u5546\u5bc6-1-\u53f7",level:3},{value:"SM2",id:"sm2",level:3},{value:"SM3",id:"sm3",level:3},{value:"SMS4",id:"sms4",level:3},{value:"SM7",id:"sm7",level:3},{value:"SM9",id:"sm9",level:3},{value:"\u7956\u51b2&ZUC \u7b97\u6cd5",id:"\u7956\u51b2zuc-\u7b97\u6cd5",level:3}],y={toc:u},s="wrapper";function c(e){let{components:t,...n}=e;return(0,a.yg)(s,(0,r.A)({},y,n,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u7b80\u4ecb"},"\u7b80\u4ecb"),(0,a.yg)("p",null,"\u5546\u7528\u5bc6\u7801\u6280\u672f\uff0c\u662f\u6307\u80fd\u591f\u5b9e\u73b0\u5546\u7528\u5bc6\u7801\u7b97\u6cd5\u7684\u52a0\u5bc6\u3001\u89e3\u5bc6\u548c\u8ba4\u8bc1\u7b49\u529f\u80fd\u7684\u6280\u672f\u3002\uff08\u5305\u62ec\u5bc6\u7801\u7b97\u6cd5\u7f16\u7a0b\u6280\u672f\u548c\u5bc6\u7801\u7b97\u6cd5\u82af\u7247\u3001\u52a0\u5bc6\u5361\u7b49\u7684\u5b9e\u73b0\u6280\u672f\uff09\u3002\u5546\u7528\u5bc6\u7801\u6280\u672f\u662f\u5546\u7528\u5bc6\u7801\u7684\u6838\u5fc3\uff0c\u56fd\u5bb6\u5c06\u5546\u7528\u5bc6\u7801\u6280\u672f\u5217\u5165\u56fd\u5bb6\u79d8\u5bc6\uff0c\u4efb\u4f55\u5355\u4f4d\u548c\u4e2a\u4eba\u90fd\u6709\u8d23\u4efb\u548c\u4e49\u52a1\u4fdd\u62a4\u5546\u7528\u5bc6\u7801\u6280\u672f\u7684\u79d8\u5bc6\u3002"),(0,a.yg)("p",null,"\u5546\u7528\u5bc6\u7801\u7684\u5e94\u7528\u9886\u57df\u5341\u5206\u5e7f\u6cdb,\u4e3b\u8981\u7528\u4e8e\u5bf9\u4e0d\u6d89\u53ca\u56fd\u5bb6\u79d8\u5bc6\u5185\u5bb9\u4f46\u53c8\u5177\u6709\u654f\u611f\u6027\u7684\u5185\u90e8\u4fe1\u606f\u3001\u884c\u653f\u4e8b\u52a1\u4fe1\u606f\u3001\u7ecf\u6d4e\u4fe1\u606f\u7b49\u8fdb\u884c\u52a0\u5bc6\u4fdd\u62a4\u3002\u6bd4\u5982:\u5546\u7528\u5bc6\u7801\u53ef\u7528\u4e8e\u4f01\u4e1a\u5185\u90e8\u7684\u5404\u7c7b\u654f\u611f\u4fe1\u606f\u7684\u4f20\u8f93\u52a0\u5bc6\u3001\u5b58\u50a8\u52a0\u5bc6,\u9632\u6b62\u975e\u6cd5\u7b2c\u4e09\u65b9\u83b7\u53d6\u4fe1\u606f\u5185\u5bb9;\u4e5f\u53ef\u7528\u4e8e\u5404\u79cd\u5b89\u5168\u8ba4\u8bc1\u3001\u7f51\u4e0a\u94f6\u884c\u3001\u6570\u5b57\u7b7e\u540d\u7b49\u3002"),(0,a.yg)("p",null,"\u5bf9\u79f0\u5bc6\u7801\u53c8\u53ef\u5206\u4e3a\u5206\u7ec4\u5bc6\u7801\u548c\u5e8f\u5217\uff08\u6d41\uff09\u5bc6\u7801"),(0,a.yg)("p",null,"SM4 \u7b97\u6cd5\u662f SM \u7cfb\u5217\u7b97\u6cd5\u4e2d\u4f7f\u7528\u6700\u4e3a\u5e7f\u6cdb\u7684\u5bc6\u7801\u7b97\u6cd5\u3002"),(0,a.yg)("h3",{id:"sm1-\u5546\u5bc6-1-\u53f7"},"SM1 \u5546\u5bc6 1 \u53f7"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u5bf9\u79f0\u52a0\u5bc6\uff0c\u5206\u7ec4\u52a0\u5bc6"),(0,a.yg)("li",{parentName:"ul"},"\u4ea6\u79f0 SCB2 \u7b97\u6cd5"),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("strong",{parentName:"li"},(0,a.yg)("em",{parentName:"strong"},"\u4e0d\u516c\u5f00")),"\uff0c\u4ec5\u4ee5 IP \u6838\u7684\u5f62\u5f0f\u5b58\u5728\u4e8e\u82af\u7247\u4e2d"),(0,a.yg)("li",{parentName:"ul"},"\u91c7\u7528\u8be5\u7b97\u6cd5\u5df2\u7ecf\u7814\u5236\u4e86\u7cfb\u5217\u82af\u7247\u3001\u667a\u80fd IC \u5361\u3001\u667a\u80fd\u5bc6\u7801\u94a5\u5319\u3001\u52a0\u5bc6\u5361\u3001\u52a0\u5bc6\u673a\u7b49\u5b89\u5168\u4ea7\u54c1\uff0c\u5e7f\u6cdb\u5e94\u7528\u4e8e\u7535\u5b50\u653f\u52a1\u3001\u7535\u5b50\u5546\u52a1\u53ca\u56fd\u6c11\u7ecf\u6d4e\u7684\u5404\u4e2a\u5e94\u7528\u9886\u57df\uff08\u5305\u62ec\u56fd\u5bb6\u653f\u52a1\u901a\u3001\u8b66\u52a1\u901a\u7b49\u91cd\u8981\u9886\u57df\uff09\u3002"),(0,a.yg)("li",{parentName:"ul"},"\u66ff\u6362 AES\uff0c\u5206\u7ec4\u957f\u5ea6\u548c\u5bc6\u94a5\u957f\u5ea6\u90fd\u4e3a 128 \u6bd4\u7279")),(0,a.yg)("h3",{id:"sm2"},"SM2"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u516c\u94a5\u52a0\u5bc6\uff0c\u57fa\u4e8e\u692d\u5706\u66f2\u7ebf"),(0,a.yg)("li",{parentName:"ul"},"\u66ff\u6362 RSA"),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("strong",{parentName:"li"},(0,a.yg)("em",{parentName:"strong"},"\u516c\u5f00"))," ",(0,a.yg)("a",{parentName:"li",href:"https://sca.gov.cn/sca/xwdt/2010-12/17/content_1002386.shtml"},"\u56fd\u5bb6\u5bc6\u7801\u7ba1\u7406\u5c40-\u8be5\u7b97\u6cd5\u6587\u6863")),(0,a.yg)("li",{parentName:"ul"},"\u76ee\u524d\u652f\u6301 SM2 \u7b97\u6cd5\u7684\u4ea7\u54c1\u5df2\u8fbe 1000 \u4f59\u6b3e\uff0c\u5e7f\u6cdb\u5e94\u7528\u4e8e\u7535\u5b50\u653f\u52a1\u3001\u79fb\u52a8\u529e\u516c\u3001\u7535\u5b50\u5546\u52a1\u3001\u79fb\u52a8\u652f\u4ed8\u3001\u7535\u5b50\u8bc1\u4e66\u7b49\u57fa\u7840\u8bbe\u65bd\u3001\u4e91\u670d\u52a1\u7b49\u9886\u57df\u3002"),(0,a.yg)("li",{parentName:"ul"},"SM2\u9ed8\u8ba4\u66f2\u7ebf\u7b97\u6cd5 sm2p256v1")),(0,a.yg)("h3",{id:"sm3"},"SM3"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u54c8\u5e0c\u7b97\u6cd5"),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("strong",{parentName:"li"},(0,a.yg)("em",{parentName:"strong"},"\u516c\u5f00")),"\uff0c",(0,a.yg)("a",{parentName:"li",href:"https://sca.gov.cn/sca/xwdt/2010-12/17/content_1002389.shtml"},"\u56fd\u5bb6\u5bc6\u7801\u7ba1\u7406\u5c40-\u8be5\u7b97\u6cd5\u6587\u6863")),(0,a.yg)("li",{parentName:"ul"},"\u8be5\u7b97\u6cd5\u5df2\u6210\u4e3a\u6211\u56fd\u7535\u5b50\u7b7e\u540d\u7c7b\u5bc6\u7801\u7cfb\u7edf\u3001\u8ba1\u7b97\u673a\u5b89\u5168\u767b\u5f55\u7cfb\u7edf\u3001\u8ba1\u7b97\u673a\u5b89\u5168\u901a\u4fe1\u7cfb\u7edf\u3001\u6570\u5b57\u8bc1\u4e66\u3001 \u7f51\u7edc\u5b89\u5168\u57fa\u7840\u8bbe\u65bd\u3001\u5b89\u5168\u4e91\u8ba1\u7b97\u5e73\u53f0\u4e0e\u5927\u6570\u636e\u7b49\u9886\u57df\u4fe1\u606f\u5b89\u5168\u7684\u57fa\u7840\u6280\u672f\u3002")),(0,a.yg)("h3",{id:"sms4"},"SMS4"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u5bf9\u79f0\u52a0\u5bc6"),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("strong",{parentName:"li"},(0,a.yg)("em",{parentName:"strong"},"\u516c\u5f00"))," ",(0,a.yg)("a",{parentName:"li",href:"http://www.sca.gov.cn/sca/c100061/201611/1002423/files/330480f731f64e1ea75138211ea0dc27.pdf"},"\u56fd\u5bb6\u5bc6\u7801\u7ba1\u7406\u5c40-\u8be5\u7b97\u6cd5\u6587\u6863"))),(0,a.yg)("p",null,"SMS4 \u7b97\u6cd5\uff0c\u662f\u4e00\u4e2a\u5206\u7ec4\u7b97\u6cd5\uff0c\u5206\u7ec4\u957f\u5ea6\u548c\u5bc6\u94a5\u957f\u5ea6\u5747\u4e3a 128 \u6bd4\u7279\uff0c\u52a0\u5bc6\u7b97\u6cd5\u4e0e\u5bc6\u94a5\u6269\u5c55\u7b97\u6cd5\u90fd\u91c7\u7528 32 \u8f6e\u975e\u7ebf\u6027\u8fed\u4ee3\u7ed3\u6784\uff0c\u6700\u521d\u4f5c\u4e3a\u65e0\u7ebf\u5c40\u57df\u7f51\u4e13\u7528\u5bc6\u7801\u7b97\u6cd5\u53d1\u5e03\uff0c\u540e\u6210\u4e3a\u5206\u7ec4\u5bc6\u7801\u7b97\u6cd5\u884c\u4e1a\u6807\u51c6\u3002\u76ee\u524d\u652f\u6301 SMS4 \u7b97\u6cd5\u7684\u4ea7\u54c1\u5df2\u8fbe 700 \u4f59\u6b3e\uff0c\u8986\u76d6\u4e86\u5404\u79cd\u6709\u5bf9\u79f0\u52a0\u5bc6\u9700\u6c42\u7684\u5e94\u7528\u3002\u7531\u4e8e SMS4 \u7b97\u6cd5\u6700\u521d\u7528\u4e8e\u65e0\u7ebf\u5c40\u57df\u7f51\u82af\u7247 WAPI \u534f\u8bae\u4e2d\uff0c\u652f\u6301 SMS4 \u7b97\u6cd5\u7684 WAPI \u65e0\u7ebf\u5c40\u57df\u7f51\u82af\u7247\u5df2\u8d85\u8fc7 350 \u591a\u4e2a\u578b\u53f7\uff0c\u5168\u7403\u7d2f\u8ba1\u51fa \u8d27\u91cf\u8d85\u8fc7 70 \u4ebf\u9897\u3002\u5728\u91d1\u878d\u9886\u57df\uff0c\u4ec5\u7edf\u8ba1\u652f\u6301 SMS4 \u7b97\u6cd5\u7684\u667a\u80fd\u5bc6\u7801\u94a5\u5319\u51fa\u8d27\u91cf\u5df2\u8d85\u8fc7 1.5 \u4ebf\u652f\u3002\u6b64\u5916\uff0cSMS4 \u7b97\u6cd5\u5df2\u88ab\u7eb3\u4eba\u53ef\u4fe1\u8ba1\u7b97\u7ec4\u7ec7(TCG)\u53d1\u5e03\u7684\u53ef\u4fe1\u5e73\u53f0\u6a21\u5757\u5e93\u89c4\u8303(TPIM2.0)\u4e2d\u3002"),(0,a.yg)("h3",{id:"sm7"},"SM7"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u5bf9\u79f0\u52a0\u5bc6"),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("strong",{parentName:"li"},(0,a.yg)("em",{parentName:"strong"},"\u4e0d\u516c\u5f00")))),(0,a.yg)("p",null,"SM7 \u9002\u7528\u4e8e\u975e\u63a5\u89e6\u5f0f IC \u5361\uff0c\u5e94\u7528\u5305\u62ec\u8eab\u4efd\u8bc6\u522b\u7c7b\u5e94\u7528(\u95e8\u7981\u5361\u3001\u5de5\u4f5c\u8bc1\u3001\u53c2\u8d5b\u8bc1)\uff0c\u7968\u52a1\u7c7b\u5e94\u7528(\u5927\u578b\u8d5b\u4e8b\u95e8\u7968\u3001\u5c55\u4f1a\u95e8\u7968)\uff0c\u652f\u4ed8\u4e0e\u901a\u5361\u7c7b\u5e94\u7528\uff08\u79ef\u5206\u6d88\u8d39\u5361\u3001\u6821\u56ed\u4e00\u5361\u901a\u3001\u4f01\u4e1a\u4e00\u5361\u901a\u7b49\uff09\u3002"),(0,a.yg)("h3",{id:"sm9"},"SM9"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u6807\u8bc6\u5bc6\u7801\u7b97\u6cd5"),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("strong",{parentName:"li"},(0,a.yg)("em",{parentName:"strong"},"\u516c\u5f00"))),(0,a.yg)("li",{parentName:"ul"},"SM9 \u662f\u4e00\u79cd\u57fa\u4e8e\u8eab\u4efd\u6807\u8bc6\u7684\u516c\u94a5\u5bc6\u7801\u7b97\u6cd5\uff0c\u4e5f\u88ab\u79f0\u4e3a\u6807\u8bc6\u5bc6\u7801\uff0c\u91c7\u7528 256 \u6bd4\u7279\u7684\u692d\u5706\u66f2\u7ebf\u3002")),(0,a.yg)("p",null,"SM9 \u7b97\u6cd5\u4e0d\u9700\u8981\u7533\u8bf7\u6570\u5b57\u8bc1\u4e66\uff0c\u9002\u7528\u4e8e\u4e92\u8054\u7f51\u5e94\u7528\u7684\u5404\u79cd\u65b0\u5174\u5e94\u7528\u7684\u5b89\u5168\u4fdd\u5bc6\u4fdd\u969c\uff0c\u5982\u57fa\u4e8e\u4e91\u6280\u672f\u7684\u5bc6\u7801\u670d\u52a1\u3001\u7535\u5b50\u90ae\u4ef6\u5b89\u5168\u3001\u667a\u80fd\u7ec8\u7aef\u4fdd\u62a4\u3001\u7269\u8054\u7f51\u5b89\u5168\u3001\u4e91\u5b58\u50a8\u5b89\u5168\u7b49\u7b49\u3002"),(0,a.yg)("p",null,(0,a.yg)("a",{parentName:"p",href:"https://blog.csdn.net/qq_37340229/article/details/127937730"},"CSDN-\u57fa\u4e8eSM9\u7684\u5bc6\u94a5\u4ea4\u6362\u65b9\u6848\u7684\u5b9e\u73b0\u4e0e\u5e94\u7528")),(0,a.yg)("h3",{id:"\u7956\u51b2zuc-\u7b97\u6cd5"},"\u7956\u51b2&ZUC \u7b97\u6cd5"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u6d41\u5bc6\u7801"),(0,a.yg)("li",{parentName:"ul"},"\u4e3b\u8981\u7528\u4e8e\u901a\u4fe1\u9886\u57df"),(0,a.yg)("li",{parentName:"ul"},"\u8be5\u7b97\u6cd5\u901f\u5ea6\u5feb\uff0c\u5e38\u7528\u4e8e\u79fb\u52a8\u901a\u4fe1 4G \u7f51\u7edc\u3002")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d864a059.c67fbeaa.js b/assets/js/d864a059.0e4d76fd.js similarity index 98% rename from assets/js/d864a059.c67fbeaa.js rename to assets/js/d864a059.0e4d76fd.js index 5894377b6..48f13d34f 100644 --- a/assets/js/d864a059.c67fbeaa.js +++ b/assets/js/d864a059.0e4d76fd.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6172],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>f});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function p(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),i=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):p(p({},t),e)),r},s=function(e){var t=i(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),u=i(r),y=a,f=u["".concat(l,".").concat(y)]||u[y]||d[y]||o;return r?n.createElement(f,p(p({ref:t},s),{},{components:r})):n.createElement(f,p({ref:t},s))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,p=new Array(o);p[0]=y;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[u]="string"==typeof e?e:a,p[1]=c;for(var i=2;i{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>p,default:()=>d,frontMatter:()=>o,metadata:()=>c,toc:()=>i});var n=r(8168),a=(r(6540),r(5680));const o={},p="P2P \u7f51\u7edc NAT \u7a7f\u900f\u539f\u7406(\u6253\u6d1e\u65b9\u6848)",c={unversionedId:"study/net/p2p",id:"study/net/p2p",title:"P2P \u7f51\u7edc NAT \u7a7f\u900f\u539f\u7406(\u6253\u6d1e\u65b9\u6848)",description:"\u53c2\u8003",source:"@site/docs/study/net/p2p.md",sourceDirName:"study/net",slug:"/study/net/p2p",permalink:"/docs/study/net/p2p",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Linux netns",permalink:"/docs/study/net/netns"},next:{title:"unix pfctl \u9632\u706b\u5899",permalink:"/docs/study/net/pfctl\u9632\u706b\u5899"}},l={},i=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],s={toc:i},u="wrapper";function d(e){let{components:t,...r}=e;return(0,a.yg)(u,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"p2p-\u7f51\u7edc-nat-\u7a7f\u900f\u539f\u7406\u6253\u6d1e\u65b9\u6848"},"P2P \u7f51\u7edc NAT \u7a7f\u900f\u539f\u7406(\u6253\u6d1e\u65b9\u6848)"),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://blog.csdn.net/yangowen/article/details/125787199"},"P2P \u7f51\u7edc NAT \u7a7f\u900f\u539f\u7406(\u6253\u6d1e\u65b9\u6848)")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://blog.csdn.net/u013051748/article/details/115413454"},"P2P \u6253\u6d1e\u6280\u672f\u8be6\u89e3")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://post.smzdm.com/p/allr4ngp/"},"\u5185\u7f51\u7a7f\u900f-nConnect \u4e0e zerotier \u5982\u4f55\u642d\u5efa\u6211\u7684\u8fdc\u7a0b\u79c1\u4eba\u670d\u52a1\u5668"))))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6172],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>f});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function p(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),i=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):p(p({},t),e)),r},s=function(e){var t=i(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),u=i(r),y=a,f=u["".concat(l,".").concat(y)]||u[y]||d[y]||o;return r?n.createElement(f,p(p({ref:t},s),{},{components:r})):n.createElement(f,p({ref:t},s))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,p=new Array(o);p[0]=y;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[u]="string"==typeof e?e:a,p[1]=c;for(var i=2;i{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>p,default:()=>d,frontMatter:()=>o,metadata:()=>c,toc:()=>i});var n=r(8168),a=(r(6540),r(5680));const o={},p="P2P \u7f51\u7edc NAT \u7a7f\u900f\u539f\u7406(\u6253\u6d1e\u65b9\u6848)",c={unversionedId:"study/net/p2p",id:"study/net/p2p",title:"P2P \u7f51\u7edc NAT \u7a7f\u900f\u539f\u7406(\u6253\u6d1e\u65b9\u6848)",description:"\u53c2\u8003",source:"@site/docs/study/net/p2p.md",sourceDirName:"study/net",slug:"/study/net/p2p",permalink:"/docs/study/net/p2p",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Linux netns",permalink:"/docs/study/net/netns"},next:{title:"unix pfctl \u9632\u706b\u5899",permalink:"/docs/study/net/pfctl\u9632\u706b\u5899"}},l={},i=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],s={toc:i},u="wrapper";function d(e){let{components:t,...r}=e;return(0,a.yg)(u,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"p2p-\u7f51\u7edc-nat-\u7a7f\u900f\u539f\u7406\u6253\u6d1e\u65b9\u6848"},"P2P \u7f51\u7edc NAT \u7a7f\u900f\u539f\u7406(\u6253\u6d1e\u65b9\u6848)"),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://blog.csdn.net/yangowen/article/details/125787199"},"P2P \u7f51\u7edc NAT \u7a7f\u900f\u539f\u7406(\u6253\u6d1e\u65b9\u6848)")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://blog.csdn.net/u013051748/article/details/115413454"},"P2P \u6253\u6d1e\u6280\u672f\u8be6\u89e3")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://post.smzdm.com/p/allr4ngp/"},"\u5185\u7f51\u7a7f\u900f-nConnect \u4e0e zerotier \u5982\u4f55\u642d\u5efa\u6211\u7684\u8fdc\u7a0b\u79c1\u4eba\u670d\u52a1\u5668"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d8990390.e2d957e4.js b/assets/js/d8990390.42cdaa2e.js similarity index 99% rename from assets/js/d8990390.e2d957e4.js rename to assets/js/d8990390.42cdaa2e.js index 8a36ca113..cd41cc6ee 100644 --- a/assets/js/d8990390.e2d957e4.js +++ b/assets/js/d8990390.42cdaa2e.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4429],{5680:(e,t,n)=>{n.d(t,{xA:()=>c,yg:()=>y});var r=n(6540);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var p=r.createContext({}),s=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=s(e.components);return r.createElement(p.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},g=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,a=e.originalType,p=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),u=s(n),g=i,y=u["".concat(p,".").concat(g)]||u[g]||d[g]||a;return n?r.createElement(y,o(o({ref:t},c),{},{components:n})):r.createElement(y,o({ref:t},c))}));function y(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=n.length,o=new Array(a);o[0]=g;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[u]="string"==typeof e?e:i,o[1]=l;for(var s=2;s{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>d,frontMatter:()=>a,metadata:()=>l,toc:()=>s});var r=n(8168),i=(n(6540),n(5680));const a={},o=void 0,l={unversionedId:"study/back/spring/Spring\u751f\u547d\u5468\u671f\u63a5\u53e3",id:"study/back/spring/Spring\u751f\u547d\u5468\u671f\u63a5\u53e3",title:"Spring\u751f\u547d\u5468\u671f\u63a5\u53e3",description:"InitializingBean",source:"@site/docs/study/back/spring/Spring\u751f\u547d\u5468\u671f\u63a5\u53e3.md",sourceDirName:"study/back/spring",slug:"/study/back/spring/Spring\u751f\u547d\u5468\u671f\u63a5\u53e3",permalink:"/docs/study/back/spring/Spring\u751f\u547d\u5468\u671f\u63a5\u53e3",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Spring Security",permalink:"/docs/study/back/spring/SpringSecurity"},next:{title:"SpringCloud\u4e94\u5927\u7ec4\u4ef6",permalink:"/docs/study/back/springcloud/SpringCloud\u4e94\u5927\u7ec4\u4ef6"}},p={},s=[{value:"InitializingBean",id:"initializingbean",level:3},{value:"DisposableBean",id:"disposablebean",level:3},{value:"ApplicationContextInitializer",id:"applicationcontextinitializer",level:3},{value:"ApplicationListener",id:"applicationlistener",level:3},{value:"EnvironmentPostProcessor",id:"environmentpostprocessor",level:3}],c={toc:s},u="wrapper";function d(e){let{components:t,...n}=e;return(0,i.yg)(u,(0,r.A)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,i.yg)("h3",{id:"initializingbean"},"InitializingBean"),(0,i.yg)("p",null,"\u9700\u8981\u5b9e\u73b0 afterPropertiesSet\u63a5\u53e3\u65b9\u6cd5"),(0,i.yg)("p",null,"\u53c2\u8003 ",(0,i.yg)("a",{parentName:"p",href:"https://blog.csdn.net/qq_37705525/article/details/124808168"},"https://blog.csdn.net/qq_37705525/article/details/124808168")),(0,i.yg)("h3",{id:"disposablebean"},"DisposableBean"),(0,i.yg)("p",null,"\u9700\u8981\u5b9e\u73b0 destroy\u63a5\u53e3\u65b9\u6cd5"),(0,i.yg)("p",null,"\u53c2\u8003 ",(0,i.yg)("a",{parentName:"p",href:"https://blog.csdn.net/zhangduilei/article/details/78606636"},"https://blog.csdn.net/zhangduilei/article/details/78606636")),(0,i.yg)("h3",{id:"applicationcontextinitializer"},"ApplicationContextInitializer"),(0,i.yg)("p",null,"ApplicationContextInitializer \u63a5\u53e3\u7528\u4e8e\u5728 Spring \u5bb9\u5668\u5237\u65b0\u4e4b\u524d\u6267\u884c\u7684\u4e00\u4e2a\u56de\u8c03\u51fd\u6570\uff0c\u901a\u5e38\u7528\u4e8e\u5411 SpringBoot \u5bb9\u5668\u4e2d\u6ce8\u5165\u5c5e\u6027\u3002"),(0,i.yg)("p",null,"\u53c2\u8003 ",(0,i.yg)("a",{parentName:"p",href:"https://zhuanlan.zhihu.com/p/509824476"},"https://zhuanlan.zhihu.com/p/509824476")),(0,i.yg)("h3",{id:"applicationlistener"},"ApplicationListener"),(0,i.yg)("p",null,"\u76d1\u542c\u4e8b\u4ef6\uff0c\u53ef\u4ee5\u5305\u542b\u90e8\u5206\u751f\u547d\u5468\u671f\u7c7b\u578b\u7684\u4e8b\u4ef6\uff0c\u4f8b\u5982ApplicationEnvironmentPreparedEvent"),(0,i.yg)("p",null,(0,i.yg)("a",{parentName:"p",href:"https://blog.csdn.net/qq_21484747/article/details/124855050"},"https://blog.csdn.net/qq_21484747/article/details/124855050")),(0,i.yg)("h3",{id:"environmentpostprocessor"},"EnvironmentPostProcessor"),(0,i.yg)("p",null,"\u4e00\u822c\u7528\u4e8e\u8bfb\u53d6\u73af\u5883\u53d8\u91cf\u8fbe\u5230\u591a\u4e2a\u5fae\u670d\u52a1\u5171\u540c\u914d\u7f6e\u7684\u4fee\u6539\u4e0e\u7ef4\u62a4\u3002\u5f53\u6211\u4eec\u6709\u591a\u5957\u73af\u5883(\u5f00\u53d1\u3001\u6d4b\u8bd5\u3001\u751f\u4ea7\u7b49\u7b49)\u65f6\uff0c\u6bcf\u5957\u73af\u5883\u90fd\u6709\u4e13\u5c5e\u7684\u914d\u7f6e\u6587\u4ef6\u5b58\u653e\u4e8e\u914d\u7f6e\u4e2d\u5fc3(\u4ee5nacos\u4e3a\u4f8b)\uff0c\u53ef\u80fd\u5b58\u653e\u4e8e\u4e0d\u540c\u7684\u914d\u7f6e\u4e2d\u5fc3(\u6bcf\u4e2a\u73af\u5883\u6709\u4e13\u5c5e\u7684\u914d\u7f6e\u4e2d\u5fc3\uff0c\u670d\u52a1\u5730\u5740\u4e0d\u540c)\uff0c\u4e5f\u53ef\u80fd\u5b58\u653e\u4e8e\u540c\u4e00nacos\u7684\u4e0d\u540c\u547d\u540d\u7a7a\u95f4\uff0c\u4e5f\u6216\u8005\u540c\u4e00\u547d\u540d\u7a7a\u95f4\u7684\u4e0d\u540c\u5206\u7ec4\u7b49\u7b49\u3002\u540c\u4e00\u5957\u4ee3\u7801\u5728\u4e0d\u540c\u73af\u5883\u8fd0\u884c\u9700\u8981\u4e0d\u540c\u7684\u914d\u7f6e\u6587\u4ef6\uff0c\u8fd9\u65f6\uff0c\u6211\u4eec\u5c31\u53ef\u4ee5\u5728\u9879\u76ee\u542f\u52a8\u65f6\uff0c\u5b9e\u73b0EnvironmentPostProcessor\u63a5\u53e3\uff0c\u5728postProcessEnvironment\u65b9\u6cd5\u4e2d\u8bfb\u53d6\u73af\u5883\u53d8\u91cf\u6216\u8005\u542f\u52a8\u547d\u4ee4\u53c2\u6570\uff0c\u4ece\u800c\u83b7\u53d6\u672c\u73af\u5883\u4e0bnacos\u7684\u670d\u52a1\u5730\u5740\uff0c\u6216\u547d\u540d\u7a7a\u95f4\u540d\u79f0\u3001\u5206\u7ec4\u540d\u79f0\u7b49\u7b49\uff0c\u7136\u540e\u5c31\u53ef\u4ee5\u6839\u636e\u83b7\u53d6\u7684\u914d\u7f6e\u53c2\u6570\u6216\u73af\u5883\u53d8\u91cf\u6765\u8bfb\u53d6\u4e0d\u540c\u7684\u914d\u7f6e\u6587\u4ef6\uff0c\u4ece\u800c\u5b9e\u73b0\u4e0d\u540c\u73af\u5883\u4f7f\u7528\u4e0d\u540c\u7684\u914d\u7f6e\u6587\u4ef6\uff0c\u4e0d\u7528\u4fee\u6539\u4ee3\u7801\u6216\u8005\u672c\u5730\u914d\u7f6e\u6587\u4ef6\u3002"),(0,i.yg)("p",null,(0,i.yg)("a",{parentName:"p",href:"https://blog.csdn.net/qq_40756113/article/details/123074848"},"https://blog.csdn.net/qq_40756113/article/details/123074848")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4429],{5680:(e,t,n)=>{n.d(t,{xA:()=>c,yg:()=>y});var r=n(6540);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var p=r.createContext({}),s=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=s(e.components);return r.createElement(p.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},g=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,a=e.originalType,p=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),u=s(n),g=i,y=u["".concat(p,".").concat(g)]||u[g]||d[g]||a;return n?r.createElement(y,o(o({ref:t},c),{},{components:n})):r.createElement(y,o({ref:t},c))}));function y(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=n.length,o=new Array(a);o[0]=g;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[u]="string"==typeof e?e:i,o[1]=l;for(var s=2;s{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>d,frontMatter:()=>a,metadata:()=>l,toc:()=>s});var r=n(8168),i=(n(6540),n(5680));const a={},o=void 0,l={unversionedId:"study/back/spring/Spring\u751f\u547d\u5468\u671f\u63a5\u53e3",id:"study/back/spring/Spring\u751f\u547d\u5468\u671f\u63a5\u53e3",title:"Spring\u751f\u547d\u5468\u671f\u63a5\u53e3",description:"InitializingBean",source:"@site/docs/study/back/spring/Spring\u751f\u547d\u5468\u671f\u63a5\u53e3.md",sourceDirName:"study/back/spring",slug:"/study/back/spring/Spring\u751f\u547d\u5468\u671f\u63a5\u53e3",permalink:"/docs/study/back/spring/Spring\u751f\u547d\u5468\u671f\u63a5\u53e3",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Spring Security",permalink:"/docs/study/back/spring/SpringSecurity"},next:{title:"SpringCloud\u4e94\u5927\u7ec4\u4ef6",permalink:"/docs/study/back/springcloud/SpringCloud\u4e94\u5927\u7ec4\u4ef6"}},p={},s=[{value:"InitializingBean",id:"initializingbean",level:3},{value:"DisposableBean",id:"disposablebean",level:3},{value:"ApplicationContextInitializer",id:"applicationcontextinitializer",level:3},{value:"ApplicationListener",id:"applicationlistener",level:3},{value:"EnvironmentPostProcessor",id:"environmentpostprocessor",level:3}],c={toc:s},u="wrapper";function d(e){let{components:t,...n}=e;return(0,i.yg)(u,(0,r.A)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,i.yg)("h3",{id:"initializingbean"},"InitializingBean"),(0,i.yg)("p",null,"\u9700\u8981\u5b9e\u73b0 afterPropertiesSet\u63a5\u53e3\u65b9\u6cd5"),(0,i.yg)("p",null,"\u53c2\u8003 ",(0,i.yg)("a",{parentName:"p",href:"https://blog.csdn.net/qq_37705525/article/details/124808168"},"https://blog.csdn.net/qq_37705525/article/details/124808168")),(0,i.yg)("h3",{id:"disposablebean"},"DisposableBean"),(0,i.yg)("p",null,"\u9700\u8981\u5b9e\u73b0 destroy\u63a5\u53e3\u65b9\u6cd5"),(0,i.yg)("p",null,"\u53c2\u8003 ",(0,i.yg)("a",{parentName:"p",href:"https://blog.csdn.net/zhangduilei/article/details/78606636"},"https://blog.csdn.net/zhangduilei/article/details/78606636")),(0,i.yg)("h3",{id:"applicationcontextinitializer"},"ApplicationContextInitializer"),(0,i.yg)("p",null,"ApplicationContextInitializer \u63a5\u53e3\u7528\u4e8e\u5728 Spring \u5bb9\u5668\u5237\u65b0\u4e4b\u524d\u6267\u884c\u7684\u4e00\u4e2a\u56de\u8c03\u51fd\u6570\uff0c\u901a\u5e38\u7528\u4e8e\u5411 SpringBoot \u5bb9\u5668\u4e2d\u6ce8\u5165\u5c5e\u6027\u3002"),(0,i.yg)("p",null,"\u53c2\u8003 ",(0,i.yg)("a",{parentName:"p",href:"https://zhuanlan.zhihu.com/p/509824476"},"https://zhuanlan.zhihu.com/p/509824476")),(0,i.yg)("h3",{id:"applicationlistener"},"ApplicationListener"),(0,i.yg)("p",null,"\u76d1\u542c\u4e8b\u4ef6\uff0c\u53ef\u4ee5\u5305\u542b\u90e8\u5206\u751f\u547d\u5468\u671f\u7c7b\u578b\u7684\u4e8b\u4ef6\uff0c\u4f8b\u5982ApplicationEnvironmentPreparedEvent"),(0,i.yg)("p",null,(0,i.yg)("a",{parentName:"p",href:"https://blog.csdn.net/qq_21484747/article/details/124855050"},"https://blog.csdn.net/qq_21484747/article/details/124855050")),(0,i.yg)("h3",{id:"environmentpostprocessor"},"EnvironmentPostProcessor"),(0,i.yg)("p",null,"\u4e00\u822c\u7528\u4e8e\u8bfb\u53d6\u73af\u5883\u53d8\u91cf\u8fbe\u5230\u591a\u4e2a\u5fae\u670d\u52a1\u5171\u540c\u914d\u7f6e\u7684\u4fee\u6539\u4e0e\u7ef4\u62a4\u3002\u5f53\u6211\u4eec\u6709\u591a\u5957\u73af\u5883(\u5f00\u53d1\u3001\u6d4b\u8bd5\u3001\u751f\u4ea7\u7b49\u7b49)\u65f6\uff0c\u6bcf\u5957\u73af\u5883\u90fd\u6709\u4e13\u5c5e\u7684\u914d\u7f6e\u6587\u4ef6\u5b58\u653e\u4e8e\u914d\u7f6e\u4e2d\u5fc3(\u4ee5nacos\u4e3a\u4f8b)\uff0c\u53ef\u80fd\u5b58\u653e\u4e8e\u4e0d\u540c\u7684\u914d\u7f6e\u4e2d\u5fc3(\u6bcf\u4e2a\u73af\u5883\u6709\u4e13\u5c5e\u7684\u914d\u7f6e\u4e2d\u5fc3\uff0c\u670d\u52a1\u5730\u5740\u4e0d\u540c)\uff0c\u4e5f\u53ef\u80fd\u5b58\u653e\u4e8e\u540c\u4e00nacos\u7684\u4e0d\u540c\u547d\u540d\u7a7a\u95f4\uff0c\u4e5f\u6216\u8005\u540c\u4e00\u547d\u540d\u7a7a\u95f4\u7684\u4e0d\u540c\u5206\u7ec4\u7b49\u7b49\u3002\u540c\u4e00\u5957\u4ee3\u7801\u5728\u4e0d\u540c\u73af\u5883\u8fd0\u884c\u9700\u8981\u4e0d\u540c\u7684\u914d\u7f6e\u6587\u4ef6\uff0c\u8fd9\u65f6\uff0c\u6211\u4eec\u5c31\u53ef\u4ee5\u5728\u9879\u76ee\u542f\u52a8\u65f6\uff0c\u5b9e\u73b0EnvironmentPostProcessor\u63a5\u53e3\uff0c\u5728postProcessEnvironment\u65b9\u6cd5\u4e2d\u8bfb\u53d6\u73af\u5883\u53d8\u91cf\u6216\u8005\u542f\u52a8\u547d\u4ee4\u53c2\u6570\uff0c\u4ece\u800c\u83b7\u53d6\u672c\u73af\u5883\u4e0bnacos\u7684\u670d\u52a1\u5730\u5740\uff0c\u6216\u547d\u540d\u7a7a\u95f4\u540d\u79f0\u3001\u5206\u7ec4\u540d\u79f0\u7b49\u7b49\uff0c\u7136\u540e\u5c31\u53ef\u4ee5\u6839\u636e\u83b7\u53d6\u7684\u914d\u7f6e\u53c2\u6570\u6216\u73af\u5883\u53d8\u91cf\u6765\u8bfb\u53d6\u4e0d\u540c\u7684\u914d\u7f6e\u6587\u4ef6\uff0c\u4ece\u800c\u5b9e\u73b0\u4e0d\u540c\u73af\u5883\u4f7f\u7528\u4e0d\u540c\u7684\u914d\u7f6e\u6587\u4ef6\uff0c\u4e0d\u7528\u4fee\u6539\u4ee3\u7801\u6216\u8005\u672c\u5730\u914d\u7f6e\u6587\u4ef6\u3002"),(0,i.yg)("p",null,(0,i.yg)("a",{parentName:"p",href:"https://blog.csdn.net/qq_40756113/article/details/123074848"},"https://blog.csdn.net/qq_40756113/article/details/123074848")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d8a12065.a01b8948.js b/assets/js/d8a12065.47e023f0.js similarity index 98% rename from assets/js/d8a12065.a01b8948.js rename to assets/js/d8a12065.47e023f0.js index db091fc59..a60e00315 100644 --- a/assets/js/d8a12065.a01b8948.js +++ b/assets/js/d8a12065.47e023f0.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[664],{5680:(e,t,r)=>{r.d(t,{xA:()=>l,yg:()=>f});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),o=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},l=function(e){var t=o(e.components);return n.createElement(p.Provider,{value:t},e.children)},y="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,c=e.originalType,p=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),y=o(r),u=a,f=y["".concat(p,".").concat(u)]||y[u]||d[u]||c;return r?n.createElement(f,i(i({ref:t},l),{},{components:r})):n.createElement(f,i({ref:t},l))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var c=r.length,i=new Array(c);i[0]=u;var s={};for(var p in t)hasOwnProperty.call(t,p)&&(s[p]=t[p]);s.originalType=e,s[y]="string"==typeof e?e:a,i[1]=s;for(var o=2;o{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>d,frontMatter:()=>c,metadata:()=>s,toc:()=>o});var n=r(8168),a=(r(6540),r(5680));const c={},i=void 0,s={unversionedId:"study/fe/TypeScript\u8bed\u6cd5\u56fe",id:"study/fe/TypeScript\u8bed\u6cd5\u56fe",title:"TypeScript\u8bed\u6cd5\u56fe",description:"\u8bed\u6cd5\u56fe",source:"@site/docs/study/fe/TypeScript\u8bed\u6cd5\u56fe.md",sourceDirName:"study/fe",slug:"/study/fe/TypeScript\u8bed\u6cd5\u56fe",permalink:"/docs/study/fe/TypeScript\u8bed\u6cd5\u56fe",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Flutter\u5f00\u53d1\u95ee\u9898\u8bb0\u5f55",permalink:"/docs/study/fe/Flutter\u5f00\u53d1\u95ee\u9898\u8bb0\u5f55"},next:{title:"WebGL",permalink:"/docs/study/fe/WebGL"}},p={},o=[{value:"\u8bed\u6cd5\u56fe",id:"\u8bed\u6cd5\u56fe",level:3},{value:"class",id:"class",level:4},{value:"\u63a7\u5236\u6d41\u7a0b",id:"\u63a7\u5236\u6d41\u7a0b",level:4},{value:"interface",id:"interface",level:4},{value:"type",id:"type",level:4}],l={toc:o},y="wrapper";function d(e){let{components:t,...c}=e;return(0,a.yg)(y,(0,n.A)({},l,c,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u8bed\u6cd5\u56fe"},"\u8bed\u6cd5\u56fe"),(0,a.yg)("h4",{id:"class"},"class"),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"TypeScript Classes",src:r(5243).A,width:"1330",height:"940"})),(0,a.yg)("h4",{id:"\u63a7\u5236\u6d41\u7a0b"},"\u63a7\u5236\u6d41\u7a0b"),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"TypeScript Control Flow Analysis",src:r(5090).A,width:"1330",height:"940"})),(0,a.yg)("h4",{id:"interface"},"interface"),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"TypeScript Interfaces",src:r(1311).A,width:"1330",height:"940"})),(0,a.yg)("h4",{id:"type"},"type"),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"TypeScript Types",src:r(9116).A,width:"5542",height:"3917"})))}d.isMDXComponent=!0},5243:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/TypeScript Classes-83cc6f8e42ba2002d5e2c04221fa78f9.png"},5090:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/TypeScript Control Flow Analysis-8a549253ad8470850b77c4c5c351d457.png"},1311:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/TypeScript Interfaces-34f1ad12132fb463bd1dfe5b85c5b2e6.png"},9116:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/TypeScript Types-ae199d69aeecf7d4a2704a528d0fd3f9.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[664],{5680:(e,t,r)=>{r.d(t,{xA:()=>l,yg:()=>f});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),o=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},l=function(e){var t=o(e.components);return n.createElement(p.Provider,{value:t},e.children)},y="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,c=e.originalType,p=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),y=o(r),u=a,f=y["".concat(p,".").concat(u)]||y[u]||d[u]||c;return r?n.createElement(f,i(i({ref:t},l),{},{components:r})):n.createElement(f,i({ref:t},l))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var c=r.length,i=new Array(c);i[0]=u;var s={};for(var p in t)hasOwnProperty.call(t,p)&&(s[p]=t[p]);s.originalType=e,s[y]="string"==typeof e?e:a,i[1]=s;for(var o=2;o{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>d,frontMatter:()=>c,metadata:()=>s,toc:()=>o});var n=r(8168),a=(r(6540),r(5680));const c={},i=void 0,s={unversionedId:"study/fe/TypeScript\u8bed\u6cd5\u56fe",id:"study/fe/TypeScript\u8bed\u6cd5\u56fe",title:"TypeScript\u8bed\u6cd5\u56fe",description:"\u8bed\u6cd5\u56fe",source:"@site/docs/study/fe/TypeScript\u8bed\u6cd5\u56fe.md",sourceDirName:"study/fe",slug:"/study/fe/TypeScript\u8bed\u6cd5\u56fe",permalink:"/docs/study/fe/TypeScript\u8bed\u6cd5\u56fe",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Flutter\u5f00\u53d1\u95ee\u9898\u8bb0\u5f55",permalink:"/docs/study/fe/Flutter\u5f00\u53d1\u95ee\u9898\u8bb0\u5f55"},next:{title:"WebGL",permalink:"/docs/study/fe/WebGL"}},p={},o=[{value:"\u8bed\u6cd5\u56fe",id:"\u8bed\u6cd5\u56fe",level:3},{value:"class",id:"class",level:4},{value:"\u63a7\u5236\u6d41\u7a0b",id:"\u63a7\u5236\u6d41\u7a0b",level:4},{value:"interface",id:"interface",level:4},{value:"type",id:"type",level:4}],l={toc:o},y="wrapper";function d(e){let{components:t,...c}=e;return(0,a.yg)(y,(0,n.A)({},l,c,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u8bed\u6cd5\u56fe"},"\u8bed\u6cd5\u56fe"),(0,a.yg)("h4",{id:"class"},"class"),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"TypeScript Classes",src:r(5243).A,width:"1330",height:"940"})),(0,a.yg)("h4",{id:"\u63a7\u5236\u6d41\u7a0b"},"\u63a7\u5236\u6d41\u7a0b"),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"TypeScript Control Flow Analysis",src:r(5090).A,width:"1330",height:"940"})),(0,a.yg)("h4",{id:"interface"},"interface"),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"TypeScript Interfaces",src:r(1311).A,width:"1330",height:"940"})),(0,a.yg)("h4",{id:"type"},"type"),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"TypeScript Types",src:r(9116).A,width:"5542",height:"3917"})))}d.isMDXComponent=!0},5243:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/TypeScript Classes-83cc6f8e42ba2002d5e2c04221fa78f9.png"},5090:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/TypeScript Control Flow Analysis-8a549253ad8470850b77c4c5c351d457.png"},1311:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/TypeScript Interfaces-34f1ad12132fb463bd1dfe5b85c5b2e6.png"},9116:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/TypeScript Types-ae199d69aeecf7d4a2704a528d0fd3f9.png"}}]); \ No newline at end of file diff --git a/assets/js/d924bf19.5114fada.js b/assets/js/d924bf19.f8d99d31.js similarity index 99% rename from assets/js/d924bf19.5114fada.js rename to assets/js/d924bf19.f8d99d31.js index 83f82b5c8..972b06e51 100644 --- a/assets/js/d924bf19.5114fada.js +++ b/assets/js/d924bf19.f8d99d31.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1226],{5680:(e,t,n)=>{n.d(t,{xA:()=>c,yg:()=>y});var r=n(6540);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),u=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=u(e.components);return r.createElement(s.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,l=e.originalType,s=e.parentName,c=a(e,["components","mdxType","originalType","parentName"]),d=u(n),m=o,y=d["".concat(s,".").concat(m)]||d[m]||p[m]||l;return n?r.createElement(y,i(i({ref:t},c),{},{components:n})):r.createElement(y,i({ref:t},c))}));function y(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var l=n.length,i=new Array(l);i[0]=m;var a={};for(var s in t)hasOwnProperty.call(t,s)&&(a[s]=t[s]);a.originalType=e,a[d]="string"==typeof e?e:o,i[1]=a;for(var u=2;u{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>p,frontMatter:()=>l,metadata:()=>a,toc:()=>u});var r=n(8168),o=(n(6540),n(5680));const l={sidebar_position:2},i=void 0,a={unversionedId:"study/fe/\u524d\u7aef\u6a21\u5757\u5316",id:"study/fe/\u524d\u7aef\u6a21\u5757\u5316",title:"\u524d\u7aef\u6a21\u5757\u5316",description:"\u80cc\u666f",source:"@site/docs/study/fe/\u524d\u7aef\u6a21\u5757\u5316.md",sourceDirName:"study/fe",slug:"/study/fe/\u524d\u7aef\u6a21\u5757\u5316",permalink:"/docs/study/fe/\u524d\u7aef\u6a21\u5757\u5316",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"studySidebar",previous:{title:"\u6982\u8ff0",permalink:"/docs/study/fe/"},next:{title:"ARMS\u524d\u7aef\u76d1\u63a7",permalink:"/docs/study/fe/ARMS\u524d\u7aef\u76d1\u63a7"}},s={},u=[{value:"\u80cc\u666f",id:"\u80cc\u666f",level:3},{value:"IIFE",id:"iife",level:3},{value:"CommonJSCJS",id:"commonjscjs",level:3},{value:"AMD",id:"amd",level:3},{value:"CMD",id:"cmd",level:3},{value:"UMD",id:"umd",level:3},{value:"ES6 Modules\u3010ESM\u3011\u3010ES6M\u3011",id:"es6-modulesesmes6m",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],c={toc:u},d="wrapper";function p(e){let{components:t,...l}=e;return(0,o.yg)(d,(0,r.A)({},c,l,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u80cc\u666f"},"\u80cc\u666f"),(0,o.yg)("p",null,"\u4e3a\u4ec0\u4e48\u524d\u7aef\u4f1a\u6709\u8fd9\u4e48\u591a\u6a21\u5757\u5316\u65b9\u6848\uff1f\u4e3b\u8981\u539f\u56e0\u5c31\u662fES5\u53ca\u4e4b\u524d\u662f\u4e0d\u652f\u6301\u6a21\u5757\u5316\u7684\u3002"),(0,o.yg)("p",null,(0,o.yg)("img",{alt:"\u6a21\u5757\u5316\u65b9\u6848",src:n(3206).A,width:"750",height:"541"})),(0,o.yg)("h3",{id:"iife"},"IIFE"),(0,o.yg)("p",null,"IIFE\uff0c\u5168\u79f0\u662f Immediately Invoked Function Expression\uff0c\u201c\u7acb\u5373\u6267\u884c\u51fd\u6570\u201d\u7684\u610f\u601d\u3002\u5982\u679c\u8981\u5b9e\u73b0\u6a21\u5757\u5316\uff0c\u5c31\u9700\u8981\u5728 IIFE \u4e2d\uff0c\u628a\u4ee3\u7801\u6302\u8f7d\u5728\u5168\u5c40\u53d8\u91cf\u4e0a\u3002"),(0,o.yg)("p",null,"\u8fd9\u4e5f\u662f\u65e9\u671f JavaScript \u7684\u6a21\u5757\u5316\u65b9\u6848\uff0c\u6839\u636e\u4e0d\u540c\u73af\u5883\uff0c\u628a\u6a21\u5757\u5168\u90e8\u6302\u8f7d\u5728\u5bf9\u5e94\u73af\u5883\u7684\u5168\u5c40\u53d8\u91cf\u4e0a\uff0c\u6d4f\u89c8\u5668\u5c31\u6302\u8f7d\u5728\u201cwindow\u201d\u5bf9\u8c61\u4e0a\uff0cNode.js \u5c31\u6302\u8f7d\u5728 global \u5168\u5c40\u53d8\u91cf\u4e0a\u3002"),(0,o.yg)("h3",{id:"commonjscjs"},"CommonJS","[CJS]"),(0,o.yg)("p",null,"CJS\uff0c\u5168\u79f0\u662f CommonJS \u6a21\u5757\u5316\u89c4\u8303\uff0c\u76ee\u524d\u7528\u7684\u6bd4\u8f83\u5e7f\u6cdb\u662f\u5728 Node.js \u73af\u5883\u91cc\uff0c\u56e0\u4e3a Node.js \u521a\u8bde\u751f\u7684\u65f6\u5019\uff0c\u6a21\u5757\u5316\u65b9\u6848\u662f\u57fa\u4e8e CommonJS \u89c4\u8303\u6765\u5b9e\u73b0\u7684\uff0c\u800c\u4e14\uff0cCJS \u89c4\u8303\u4e5f\u662f\u5728 ES6 \u8349\u6848\u786e\u5b9a\u4e4b\u524d\u8bde\u751f\u7684\u3001\u517c\u5bb9 ES5 \u7684\u73af\u5883\u3002"),(0,o.yg)("h3",{id:"amd"},"AMD"),(0,o.yg)("p",null,"AMD\uff0c\u5168\u79f0\u662f Asynchronous Module Definition\uff0c\u201c\u5f02\u6b65\u6a21\u5757\u5b9a\u4e49\u201d\uff0c\u662f\u4e00\u79cd\u9762\u5411\u6d4f\u89c8\u5668\u8fd0\u884c\u7684\u6a21\u5757\u5316\u65b9\u6848\u3002"),(0,o.yg)("p",null,"AMD \u5728 ES6 \u8fd8\u6ca1\u51fa\u73b0\u4e4b\u524d\uff0c\u662f ES5 \u73af\u5883\u4e0b\u5e38\u89c1\u7528\u7684\u6a21\u5757\u5316\u65b9\u6848\u3002\u8fd9\u91cc\u63d0\u5230\u7684\u201c\u5f02\u6b65\u6a21\u5757\u201d\uff0c\u662f\u6307\u6309\u6a21\u5757\u7684\u4f9d\u8d56\u6765\u5f02\u6b65\u52a0\u8f7d AMD \u6a21\u5757\uff0c\u7b49\u5f85\u4f9d\u8d56\u6a21\u5757\u5f02\u6b65\u52a0\u8f7d\u5b8c\uff0c\u5c31\u5f00\u59cb\u6267\u884c\u4e3b\u4f53\u4ee3\u7801\u3002\u5168\u7a0b\u7684\u8fd0\u884c\u65f6\u6267\u884c\u8fc7\u7a0b\uff0c\u90fd\u662f\u57fa\u4e8e ES5 \u7684\u8bed\u6cd5\u80fd\u529b\u6765\u5b9e\u73b0\u7684\u3002\u4f46\u662f\uff0cAMD \u53ea\u662f\u4e00\u79cd\u6280\u672f\u65b9\u6848\uff0c\u4e5f\u5c31\u662f\u89c4\u8303\uff0c\u5177\u4f53\u6280\u672f\u5b9e\u73b0\u9700\u8981\u6839\u636e\u89c4\u8303\uff0c\u5b9e\u73b0\u5176\u8fd0\u884c\u65f6\u3002\u76ee\u524d\u4e3b\u6d41\u7684 AMD \u6280\u672f\u6846\u67b6\u6709 RequireJS\u3002"),(0,o.yg)("h3",{id:"cmd"},"CMD"),(0,o.yg)("h3",{id:"umd"},"UMD"),(0,o.yg)("h3",{id:"es6-modulesesmes6m"},"ES6 Modules\u3010ESM\u3011\u3010ES6M\u3011"),(0,o.yg)("p",null,"export\u9700\u8981\u6ce8\u610fES6 module\u662f\u5411\u5916\u629b\u7684\u503c\u7684\u5f15\u7528\uff0c\u662f\u5f15\u7528\u3002\uff08\u8fd9\u548cCommonJS\u6a21\u5757\u4e0d\u4e00\u6837\uff0cCommonJS\u662f\u5411\u5916\u629b\u7684\u503c\u7684\u62f7\u8d1d\uff09"),(0,o.yg)("p",null,"export\u8bed\u53e5\u8f93\u51fa\u7684\u63a5\u53e3\uff0c\u4e0e\u5176\u5bf9\u5e94\u7684\u503c\u662f\u52a8\u6001\u7ed1\u5b9a\u5173\u7cfb\uff0c\u5373\u901a\u8fc7\u8be5\u63a5\u53e3\uff0c\u53ef\u4ee5\u53d6\u5230\u6a21\u5757\u5185\u90e8\u5b9e\u65f6\u7684\u503c\u3002\u8fd9\u4e00\u70b9\u4e0e CommonJS \u89c4\u8303\u5b8c\u5168\u4e0d\u540c\u3002CommonJS \u6a21\u5757\u8f93\u51fa\u7684\u662f\u503c\u7684\u7f13\u5b58\uff0c\u4e0d\u5b58\u5728\u52a8\u6001\u66f4\u65b0\u3002"),(0,o.yg)("p",null,"export\u547d\u4ee4\u53ef\u4ee5\u51fa\u73b0\u5728\u6a21\u5757\u7684\u4efb\u4f55\u4f4d\u7f6e\uff0c\u53ea\u8981\u5904\u4e8e\u6a21\u5757\u9876\u5c42\u5c31\u53ef\u4ee5\u3002\u5982\u679c\u5904\u4e8e\u5757\u7ea7\u4f5c\u7528\u57df\u5185\uff0c\u5c31\u4f1a\u62a5\u9519\uff0cimport\u547d\u4ee4\u4e5f\u662f\u5982\u6b64\u3002\u8fd9\u662f\u56e0\u4e3a\u5904\u4e8e\u6761\u4ef6\u4ee3\u7801\u5757\u4e4b\u4e2d\uff0c\u5c31\u6ca1\u6cd5\u505a\u9759\u6001\u4f18\u5316\u4e86\uff0c\u8fdd\u80cc\u4e86 ES6 \u6a21\u5757\u7684\u8bbe\u8ba1\u521d\u8877\u3010\u9759\u6001\u7f16\u8bd1\u3011\u3002"),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("a",{parentName:"li",href:"https://blog.csdn.net/leelxp/article/details/108101442"},"\u524d\u7aef\u5de5\u7a0b\u5316\uff1aCommonJS\u3001AMD\u3001CMD\u3001UMD\u548cES Modules\u7684\u533a\u522b"))))}p.isMDXComponent=!0},3206:(e,t,n)=>{n.d(t,{A:()=>r});const r=n.p+"assets/images/mo-kuai-hua-cced05ee2f85ff5f8102bec470c479ae.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1226],{5680:(e,t,n)=>{n.d(t,{xA:()=>c,yg:()=>y});var r=n(6540);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),u=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=u(e.components);return r.createElement(s.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,l=e.originalType,s=e.parentName,c=a(e,["components","mdxType","originalType","parentName"]),d=u(n),m=o,y=d["".concat(s,".").concat(m)]||d[m]||p[m]||l;return n?r.createElement(y,i(i({ref:t},c),{},{components:n})):r.createElement(y,i({ref:t},c))}));function y(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var l=n.length,i=new Array(l);i[0]=m;var a={};for(var s in t)hasOwnProperty.call(t,s)&&(a[s]=t[s]);a.originalType=e,a[d]="string"==typeof e?e:o,i[1]=a;for(var u=2;u{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>p,frontMatter:()=>l,metadata:()=>a,toc:()=>u});var r=n(8168),o=(n(6540),n(5680));const l={sidebar_position:2},i=void 0,a={unversionedId:"study/fe/\u524d\u7aef\u6a21\u5757\u5316",id:"study/fe/\u524d\u7aef\u6a21\u5757\u5316",title:"\u524d\u7aef\u6a21\u5757\u5316",description:"\u80cc\u666f",source:"@site/docs/study/fe/\u524d\u7aef\u6a21\u5757\u5316.md",sourceDirName:"study/fe",slug:"/study/fe/\u524d\u7aef\u6a21\u5757\u5316",permalink:"/docs/study/fe/\u524d\u7aef\u6a21\u5757\u5316",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"studySidebar",previous:{title:"\u6982\u8ff0",permalink:"/docs/study/fe/"},next:{title:"ARMS\u524d\u7aef\u76d1\u63a7",permalink:"/docs/study/fe/ARMS\u524d\u7aef\u76d1\u63a7"}},s={},u=[{value:"\u80cc\u666f",id:"\u80cc\u666f",level:3},{value:"IIFE",id:"iife",level:3},{value:"CommonJSCJS",id:"commonjscjs",level:3},{value:"AMD",id:"amd",level:3},{value:"CMD",id:"cmd",level:3},{value:"UMD",id:"umd",level:3},{value:"ES6 Modules\u3010ESM\u3011\u3010ES6M\u3011",id:"es6-modulesesmes6m",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],c={toc:u},d="wrapper";function p(e){let{components:t,...l}=e;return(0,o.yg)(d,(0,r.A)({},c,l,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u80cc\u666f"},"\u80cc\u666f"),(0,o.yg)("p",null,"\u4e3a\u4ec0\u4e48\u524d\u7aef\u4f1a\u6709\u8fd9\u4e48\u591a\u6a21\u5757\u5316\u65b9\u6848\uff1f\u4e3b\u8981\u539f\u56e0\u5c31\u662fES5\u53ca\u4e4b\u524d\u662f\u4e0d\u652f\u6301\u6a21\u5757\u5316\u7684\u3002"),(0,o.yg)("p",null,(0,o.yg)("img",{alt:"\u6a21\u5757\u5316\u65b9\u6848",src:n(3206).A,width:"750",height:"541"})),(0,o.yg)("h3",{id:"iife"},"IIFE"),(0,o.yg)("p",null,"IIFE\uff0c\u5168\u79f0\u662f Immediately Invoked Function Expression\uff0c\u201c\u7acb\u5373\u6267\u884c\u51fd\u6570\u201d\u7684\u610f\u601d\u3002\u5982\u679c\u8981\u5b9e\u73b0\u6a21\u5757\u5316\uff0c\u5c31\u9700\u8981\u5728 IIFE \u4e2d\uff0c\u628a\u4ee3\u7801\u6302\u8f7d\u5728\u5168\u5c40\u53d8\u91cf\u4e0a\u3002"),(0,o.yg)("p",null,"\u8fd9\u4e5f\u662f\u65e9\u671f JavaScript \u7684\u6a21\u5757\u5316\u65b9\u6848\uff0c\u6839\u636e\u4e0d\u540c\u73af\u5883\uff0c\u628a\u6a21\u5757\u5168\u90e8\u6302\u8f7d\u5728\u5bf9\u5e94\u73af\u5883\u7684\u5168\u5c40\u53d8\u91cf\u4e0a\uff0c\u6d4f\u89c8\u5668\u5c31\u6302\u8f7d\u5728\u201cwindow\u201d\u5bf9\u8c61\u4e0a\uff0cNode.js \u5c31\u6302\u8f7d\u5728 global \u5168\u5c40\u53d8\u91cf\u4e0a\u3002"),(0,o.yg)("h3",{id:"commonjscjs"},"CommonJS","[CJS]"),(0,o.yg)("p",null,"CJS\uff0c\u5168\u79f0\u662f CommonJS \u6a21\u5757\u5316\u89c4\u8303\uff0c\u76ee\u524d\u7528\u7684\u6bd4\u8f83\u5e7f\u6cdb\u662f\u5728 Node.js \u73af\u5883\u91cc\uff0c\u56e0\u4e3a Node.js \u521a\u8bde\u751f\u7684\u65f6\u5019\uff0c\u6a21\u5757\u5316\u65b9\u6848\u662f\u57fa\u4e8e CommonJS \u89c4\u8303\u6765\u5b9e\u73b0\u7684\uff0c\u800c\u4e14\uff0cCJS \u89c4\u8303\u4e5f\u662f\u5728 ES6 \u8349\u6848\u786e\u5b9a\u4e4b\u524d\u8bde\u751f\u7684\u3001\u517c\u5bb9 ES5 \u7684\u73af\u5883\u3002"),(0,o.yg)("h3",{id:"amd"},"AMD"),(0,o.yg)("p",null,"AMD\uff0c\u5168\u79f0\u662f Asynchronous Module Definition\uff0c\u201c\u5f02\u6b65\u6a21\u5757\u5b9a\u4e49\u201d\uff0c\u662f\u4e00\u79cd\u9762\u5411\u6d4f\u89c8\u5668\u8fd0\u884c\u7684\u6a21\u5757\u5316\u65b9\u6848\u3002"),(0,o.yg)("p",null,"AMD \u5728 ES6 \u8fd8\u6ca1\u51fa\u73b0\u4e4b\u524d\uff0c\u662f ES5 \u73af\u5883\u4e0b\u5e38\u89c1\u7528\u7684\u6a21\u5757\u5316\u65b9\u6848\u3002\u8fd9\u91cc\u63d0\u5230\u7684\u201c\u5f02\u6b65\u6a21\u5757\u201d\uff0c\u662f\u6307\u6309\u6a21\u5757\u7684\u4f9d\u8d56\u6765\u5f02\u6b65\u52a0\u8f7d AMD \u6a21\u5757\uff0c\u7b49\u5f85\u4f9d\u8d56\u6a21\u5757\u5f02\u6b65\u52a0\u8f7d\u5b8c\uff0c\u5c31\u5f00\u59cb\u6267\u884c\u4e3b\u4f53\u4ee3\u7801\u3002\u5168\u7a0b\u7684\u8fd0\u884c\u65f6\u6267\u884c\u8fc7\u7a0b\uff0c\u90fd\u662f\u57fa\u4e8e ES5 \u7684\u8bed\u6cd5\u80fd\u529b\u6765\u5b9e\u73b0\u7684\u3002\u4f46\u662f\uff0cAMD \u53ea\u662f\u4e00\u79cd\u6280\u672f\u65b9\u6848\uff0c\u4e5f\u5c31\u662f\u89c4\u8303\uff0c\u5177\u4f53\u6280\u672f\u5b9e\u73b0\u9700\u8981\u6839\u636e\u89c4\u8303\uff0c\u5b9e\u73b0\u5176\u8fd0\u884c\u65f6\u3002\u76ee\u524d\u4e3b\u6d41\u7684 AMD \u6280\u672f\u6846\u67b6\u6709 RequireJS\u3002"),(0,o.yg)("h3",{id:"cmd"},"CMD"),(0,o.yg)("h3",{id:"umd"},"UMD"),(0,o.yg)("h3",{id:"es6-modulesesmes6m"},"ES6 Modules\u3010ESM\u3011\u3010ES6M\u3011"),(0,o.yg)("p",null,"export\u9700\u8981\u6ce8\u610fES6 module\u662f\u5411\u5916\u629b\u7684\u503c\u7684\u5f15\u7528\uff0c\u662f\u5f15\u7528\u3002\uff08\u8fd9\u548cCommonJS\u6a21\u5757\u4e0d\u4e00\u6837\uff0cCommonJS\u662f\u5411\u5916\u629b\u7684\u503c\u7684\u62f7\u8d1d\uff09"),(0,o.yg)("p",null,"export\u8bed\u53e5\u8f93\u51fa\u7684\u63a5\u53e3\uff0c\u4e0e\u5176\u5bf9\u5e94\u7684\u503c\u662f\u52a8\u6001\u7ed1\u5b9a\u5173\u7cfb\uff0c\u5373\u901a\u8fc7\u8be5\u63a5\u53e3\uff0c\u53ef\u4ee5\u53d6\u5230\u6a21\u5757\u5185\u90e8\u5b9e\u65f6\u7684\u503c\u3002\u8fd9\u4e00\u70b9\u4e0e CommonJS \u89c4\u8303\u5b8c\u5168\u4e0d\u540c\u3002CommonJS \u6a21\u5757\u8f93\u51fa\u7684\u662f\u503c\u7684\u7f13\u5b58\uff0c\u4e0d\u5b58\u5728\u52a8\u6001\u66f4\u65b0\u3002"),(0,o.yg)("p",null,"export\u547d\u4ee4\u53ef\u4ee5\u51fa\u73b0\u5728\u6a21\u5757\u7684\u4efb\u4f55\u4f4d\u7f6e\uff0c\u53ea\u8981\u5904\u4e8e\u6a21\u5757\u9876\u5c42\u5c31\u53ef\u4ee5\u3002\u5982\u679c\u5904\u4e8e\u5757\u7ea7\u4f5c\u7528\u57df\u5185\uff0c\u5c31\u4f1a\u62a5\u9519\uff0cimport\u547d\u4ee4\u4e5f\u662f\u5982\u6b64\u3002\u8fd9\u662f\u56e0\u4e3a\u5904\u4e8e\u6761\u4ef6\u4ee3\u7801\u5757\u4e4b\u4e2d\uff0c\u5c31\u6ca1\u6cd5\u505a\u9759\u6001\u4f18\u5316\u4e86\uff0c\u8fdd\u80cc\u4e86 ES6 \u6a21\u5757\u7684\u8bbe\u8ba1\u521d\u8877\u3010\u9759\u6001\u7f16\u8bd1\u3011\u3002"),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("a",{parentName:"li",href:"https://blog.csdn.net/leelxp/article/details/108101442"},"\u524d\u7aef\u5de5\u7a0b\u5316\uff1aCommonJS\u3001AMD\u3001CMD\u3001UMD\u548cES Modules\u7684\u533a\u522b"))))}p.isMDXComponent=!0},3206:(e,t,n)=>{n.d(t,{A:()=>r});const r=n.p+"assets/images/mo-kuai-hua-cced05ee2f85ff5f8102bec470c479ae.png"}}]); \ No newline at end of file diff --git a/assets/js/d92575b7.833057b1.js b/assets/js/d92575b7.51959833.js similarity index 98% rename from assets/js/d92575b7.833057b1.js rename to assets/js/d92575b7.51959833.js index 0ef80dd4b..8a67bc668 100644 --- a/assets/js/d92575b7.833057b1.js +++ b/assets/js/d92575b7.51959833.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[700],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),s=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=s(e.components);return n.createElement(l.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),p=s(r),y=o,f=p["".concat(l,".").concat(y)]||p[y]||d[y]||a;return r?n.createElement(f,i(i({ref:t},u),{},{components:r})):n.createElement(f,i({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=y;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[p]="string"==typeof e?e:o,i[1]=c;for(var s=2;s{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>s});var n=r(8168),o=(r(6540),r(5680));const a={sidebar_position:1},i="\u6982\u8ff0",c={unversionedId:"study/db/index",id:"study/db/index",title:"\u6982\u8ff0",description:"\u5b58\u50a8\u6570\u636e\u7684\u670d\u52a1\u7edf\u4e00\u6210\u4e3a\u6570\u636e\u5e93\uff0c\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\uff1a",source:"@site/docs/study/db/index.md",sourceDirName:"study/db",slug:"/study/db/",permalink:"/docs/study/db/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"\u9519\u8bef\u6392\u9664\u96c6\u9526",permalink:"/docs/study/back/\u9519\u8bef\u6392\u9664\u96c6\u9526"},next:{title:"\u7efc\u5408",permalink:"/docs/study/db/\u7efc\u5408"}},l={},s=[],u={toc:s},p="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(p,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,o.yg)("p",null,"\u5b58\u50a8\u6570\u636e\u7684\u670d\u52a1\u7edf\u4e00\u6210\u4e3a\u6570\u636e\u5e93\uff0c\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\uff1a"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"\u5173\u7cfb\u6570\u636e\u5e93 msyql\u3001oracle \u7b49"),(0,o.yg)("li",{parentName:"ul"},"\u975e\u5173\u7cfb\u6570\u636e\u5e93 redis\u3001MongoDB \u7b49")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[700],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),s=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=s(e.components);return n.createElement(l.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),p=s(r),y=o,f=p["".concat(l,".").concat(y)]||p[y]||d[y]||a;return r?n.createElement(f,i(i({ref:t},u),{},{components:r})):n.createElement(f,i({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=y;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[p]="string"==typeof e?e:o,i[1]=c;for(var s=2;s{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>s});var n=r(8168),o=(r(6540),r(5680));const a={sidebar_position:1},i="\u6982\u8ff0",c={unversionedId:"study/db/index",id:"study/db/index",title:"\u6982\u8ff0",description:"\u5b58\u50a8\u6570\u636e\u7684\u670d\u52a1\u7edf\u4e00\u6210\u4e3a\u6570\u636e\u5e93\uff0c\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\uff1a",source:"@site/docs/study/db/index.md",sourceDirName:"study/db",slug:"/study/db/",permalink:"/docs/study/db/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"\u9519\u8bef\u6392\u9664\u96c6\u9526",permalink:"/docs/study/back/\u9519\u8bef\u6392\u9664\u96c6\u9526"},next:{title:"\u7efc\u5408",permalink:"/docs/study/db/\u7efc\u5408"}},l={},s=[],u={toc:s},p="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(p,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,o.yg)("p",null,"\u5b58\u50a8\u6570\u636e\u7684\u670d\u52a1\u7edf\u4e00\u6210\u4e3a\u6570\u636e\u5e93\uff0c\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\uff1a"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"\u5173\u7cfb\u6570\u636e\u5e93 msyql\u3001oracle \u7b49"),(0,o.yg)("li",{parentName:"ul"},"\u975e\u5173\u7cfb\u6570\u636e\u5e93 redis\u3001MongoDB \u7b49")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/da59034b.56274eb9.js b/assets/js/da59034b.e20cf0fd.js similarity index 98% rename from assets/js/da59034b.56274eb9.js rename to assets/js/da59034b.e20cf0fd.js index 1bcf4f960..784fa4c34 100644 --- a/assets/js/da59034b.56274eb9.js +++ b/assets/js/da59034b.e20cf0fd.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1053],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>m});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),p=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(i.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),s=p(r),d=a,m=s["".concat(i,".").concat(d)]||s[d]||y[d]||o;return r?n.createElement(m,l(l({ref:t},u),{},{components:r})):n.createElement(m,l({ref:t},u))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=d;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[s]="string"==typeof e?e:a,l[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>y,frontMatter:()=>o,metadata:()=>c,toc:()=>p});var n=r(8168),a=(r(6540),r(5680));const o={},l="C++",c={unversionedId:"study/program/CPP/index",id:"study/program/CPP/index",title:"C++",description:"C++\u6807\u51c6",source:"@site/docs/study/program/CPP/index.md",sourceDirName:"study/program/CPP",slug:"/study/program/CPP/",permalink:"/docs/study/program/CPP/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u865a\u62df\u7f51\u5361",permalink:"/docs/study/program/C/\u865a\u62df\u7f51\u5361"},next:{title:"CGI",permalink:"/docs/study/program/CPP/CGI"}},i={},p=[{value:"C++\u6807\u51c6",id:"c\u6807\u51c6",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],u={toc:p},s="wrapper";function y(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"c"},"C++"),(0,a.yg)("h3",{id:"c\u6807\u51c6"},"C++\u6807\u51c6"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"C++98 1998 \u5e74 \u7b2c\u4e00\u4e2a\u6807\u51c6"),(0,a.yg)("li",{parentName:"ul"},"C++03 2003 \u5e74 \u7b2c\u4e8c\u4e2a\u6807\u51c6"),(0,a.yg)("li",{parentName:"ul"},"C++11 2011 \u5e74 \u7b2c\u4e09\u4e2a\u6807\u51c6"),(0,a.yg)("li",{parentName:"ul"},"C++14 2014 \u5e74 \u7b2c\u56db\u4e2a\u6807\u51c6"),(0,a.yg)("li",{parentName:"ul"},"C++17 2017 \u5e74 \u7b2c\u4e94\u4e2a\u6807\u51c6"),(0,a.yg)("li",{parentName:"ul"},"C++20 2020 \u5e74 \u7b2c\u516d\u4e2a\u6807\u51c6")),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://www.w3cschool.cn/cpp/cpp-intro.html"},"W3Cshool-C++"))))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1053],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>m});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),p=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(i.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),s=p(r),d=a,m=s["".concat(i,".").concat(d)]||s[d]||y[d]||o;return r?n.createElement(m,l(l({ref:t},u),{},{components:r})):n.createElement(m,l({ref:t},u))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=d;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[s]="string"==typeof e?e:a,l[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>y,frontMatter:()=>o,metadata:()=>c,toc:()=>p});var n=r(8168),a=(r(6540),r(5680));const o={},l="C++",c={unversionedId:"study/program/CPP/index",id:"study/program/CPP/index",title:"C++",description:"C++\u6807\u51c6",source:"@site/docs/study/program/CPP/index.md",sourceDirName:"study/program/CPP",slug:"/study/program/CPP/",permalink:"/docs/study/program/CPP/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u865a\u62df\u7f51\u5361",permalink:"/docs/study/program/C/\u865a\u62df\u7f51\u5361"},next:{title:"CGI",permalink:"/docs/study/program/CPP/CGI"}},i={},p=[{value:"C++\u6807\u51c6",id:"c\u6807\u51c6",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],u={toc:p},s="wrapper";function y(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"c"},"C++"),(0,a.yg)("h3",{id:"c\u6807\u51c6"},"C++\u6807\u51c6"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"C++98 1998 \u5e74 \u7b2c\u4e00\u4e2a\u6807\u51c6"),(0,a.yg)("li",{parentName:"ul"},"C++03 2003 \u5e74 \u7b2c\u4e8c\u4e2a\u6807\u51c6"),(0,a.yg)("li",{parentName:"ul"},"C++11 2011 \u5e74 \u7b2c\u4e09\u4e2a\u6807\u51c6"),(0,a.yg)("li",{parentName:"ul"},"C++14 2014 \u5e74 \u7b2c\u56db\u4e2a\u6807\u51c6"),(0,a.yg)("li",{parentName:"ul"},"C++17 2017 \u5e74 \u7b2c\u4e94\u4e2a\u6807\u51c6"),(0,a.yg)("li",{parentName:"ul"},"C++20 2020 \u5e74 \u7b2c\u516d\u4e2a\u6807\u51c6")),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://www.w3cschool.cn/cpp/cpp-intro.html"},"W3Cshool-C++"))))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/dae804dd.5879bbb9.js b/assets/js/dae804dd.957054be.js similarity index 98% rename from assets/js/dae804dd.5879bbb9.js rename to assets/js/dae804dd.957054be.js index d936a03d6..8a131360b 100644 --- a/assets/js/dae804dd.5879bbb9.js +++ b/assets/js/dae804dd.957054be.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6501],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),l=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(c.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,u=p(e,["components","mdxType","originalType","parentName"]),s=l(r),f=o,y=s["".concat(c,".").concat(f)]||s[f]||d[f]||a;return r?n.createElement(y,i(i({ref:t},u),{},{components:r})):n.createElement(y,i({ref:t},u))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=f;var p={};for(var c in t)hasOwnProperty.call(t,c)&&(p[c]=t[c]);p.originalType=e,p[s]="string"==typeof e?e:o,i[1]=p;for(var l=2;l{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>p,toc:()=>l});var n=r(8168),o=(r(6540),r(5680));const a={},i=void 0,p={unversionedId:"study/program/JAVA/JDK8",id:"study/program/JAVA/JDK8",title:"JDK8",description:"Optional",source:"@site/docs/study/program/JAVA/JDK8.md",sourceDirName:"study/program/JAVA",slug:"/study/program/JAVA/JDK8",permalink:"/docs/study/program/JAVA/JDK8",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"JDK21",permalink:"/docs/study/program/JAVA/JDK21"},next:{title:"JNI",permalink:"/docs/study/program/JAVA/JNI"}},c={},l=[{value:"Optional",id:"optional",level:3}],u={toc:l},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"optional"},"Optional"),(0,o.yg)("p",null,(0,o.yg)("a",{parentName:"p",href:"https://baijiahao.baidu.com/s?id=1780195930536344267&wfr=spider&for=pc"},"JDK8\u65b0\u7279\u6027-Optional\u7c7b")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6501],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),l=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(c.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,u=p(e,["components","mdxType","originalType","parentName"]),s=l(r),f=o,y=s["".concat(c,".").concat(f)]||s[f]||d[f]||a;return r?n.createElement(y,i(i({ref:t},u),{},{components:r})):n.createElement(y,i({ref:t},u))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=f;var p={};for(var c in t)hasOwnProperty.call(t,c)&&(p[c]=t[c]);p.originalType=e,p[s]="string"==typeof e?e:o,i[1]=p;for(var l=2;l{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>p,toc:()=>l});var n=r(8168),o=(r(6540),r(5680));const a={},i=void 0,p={unversionedId:"study/program/JAVA/JDK8",id:"study/program/JAVA/JDK8",title:"JDK8",description:"Optional",source:"@site/docs/study/program/JAVA/JDK8.md",sourceDirName:"study/program/JAVA",slug:"/study/program/JAVA/JDK8",permalink:"/docs/study/program/JAVA/JDK8",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"JDK21",permalink:"/docs/study/program/JAVA/JDK21"},next:{title:"JNI",permalink:"/docs/study/program/JAVA/JNI"}},c={},l=[{value:"Optional",id:"optional",level:3}],u={toc:l},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"optional"},"Optional"),(0,o.yg)("p",null,(0,o.yg)("a",{parentName:"p",href:"https://baijiahao.baidu.com/s?id=1780195930536344267&wfr=spider&for=pc"},"JDK8\u65b0\u7279\u6027-Optional\u7c7b")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/dd0f37bd.8a0d5eef.js b/assets/js/dd0f37bd.587d9288.js similarity index 98% rename from assets/js/dd0f37bd.8a0d5eef.js rename to assets/js/dd0f37bd.587d9288.js index e89335317..c2e4cefd9 100644 --- a/assets/js/dd0f37bd.8a0d5eef.js +++ b/assets/js/dd0f37bd.587d9288.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4113],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),l=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),s=l(r),d=o,f=s["".concat(p,".").concat(d)]||s[d]||y[d]||a;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=d;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:o,c[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>c,default:()=>y,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var n=r(8168),o=(r(6540),r(5680));const a={},c="\u884c\u4e1a\u5206\u6790",i={unversionedId:"study/encryption/\u884c\u4e1a\u5206\u6790",id:"study/encryption/\u884c\u4e1a\u5206\u6790",title:"\u884c\u4e1a\u5206\u6790",description:"\u516c\u53f8",source:"@site/docs/study/encryption/\u884c\u4e1a\u5206\u6790.md",sourceDirName:"study/encryption",slug:"/study/encryption/\u884c\u4e1a\u5206\u6790",permalink:"/docs/study/encryption/\u884c\u4e1a\u5206\u6790",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u7b49\u4fdd\u548c\u5bc6\u8bc4",permalink:"/docs/study/encryption/\u7b49\u4fdd_\u5bc6\u8bc4"},next:{title:"\u8bfb\u4e66\u7b14\u8bb0-\u56fe\u89e3\u5bc6\u7801\u6280\u672f",permalink:"/docs/study/encryption/\u8bfb\u4e66\u7b14\u8bb0-\u56fe\u89e3\u5bc6\u7801\u6280\u672f"}},p={},l=[{value:"\u516c\u53f8",id:"\u516c\u53f8",level:3}],u={toc:l},s="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u884c\u4e1a\u5206\u6790"},"\u884c\u4e1a\u5206\u6790"),(0,o.yg)("h3",{id:"\u516c\u53f8"},"\u516c\u53f8"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://www.andang.cn/"},"\u4e0a\u6d77\u5b89\u5f53")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://www.sansec.com.cn/"},"\u5317\u4eac\u4e09\u672a\u4fe1\u5b89")," \u7814\u53d1\u5728\u6d4e\u5357")))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4113],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),l=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),s=l(r),d=o,f=s["".concat(p,".").concat(d)]||s[d]||y[d]||a;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=d;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:o,c[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>c,default:()=>y,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var n=r(8168),o=(r(6540),r(5680));const a={},c="\u884c\u4e1a\u5206\u6790",i={unversionedId:"study/encryption/\u884c\u4e1a\u5206\u6790",id:"study/encryption/\u884c\u4e1a\u5206\u6790",title:"\u884c\u4e1a\u5206\u6790",description:"\u516c\u53f8",source:"@site/docs/study/encryption/\u884c\u4e1a\u5206\u6790.md",sourceDirName:"study/encryption",slug:"/study/encryption/\u884c\u4e1a\u5206\u6790",permalink:"/docs/study/encryption/\u884c\u4e1a\u5206\u6790",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u7b49\u4fdd\u548c\u5bc6\u8bc4",permalink:"/docs/study/encryption/\u7b49\u4fdd_\u5bc6\u8bc4"},next:{title:"\u8bfb\u4e66\u7b14\u8bb0-\u56fe\u89e3\u5bc6\u7801\u6280\u672f",permalink:"/docs/study/encryption/\u8bfb\u4e66\u7b14\u8bb0-\u56fe\u89e3\u5bc6\u7801\u6280\u672f"}},p={},l=[{value:"\u516c\u53f8",id:"\u516c\u53f8",level:3}],u={toc:l},s="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u884c\u4e1a\u5206\u6790"},"\u884c\u4e1a\u5206\u6790"),(0,o.yg)("h3",{id:"\u516c\u53f8"},"\u516c\u53f8"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://www.andang.cn/"},"\u4e0a\u6d77\u5b89\u5f53")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://www.sansec.com.cn/"},"\u5317\u4eac\u4e09\u672a\u4fe1\u5b89")," \u7814\u53d1\u5728\u6d4e\u5357")))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/de78196c.6e123313.js b/assets/js/de78196c.8c3a9266.js similarity index 98% rename from assets/js/de78196c.6e123313.js rename to assets/js/de78196c.8c3a9266.js index ed3392707..f6233b9e8 100644 --- a/assets/js/de78196c.6e123313.js +++ b/assets/js/de78196c.8c3a9266.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7816],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),s=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=s(e.components);return n.createElement(l.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=s(r),y=o,f=p["".concat(l,".").concat(y)]||p[y]||d[y]||a;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=y;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[p]="string"==typeof e?e:o,c[1]=i;for(var s=2;s{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>s});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,i={unversionedId:"study/think/\u7f13\u5b58/\u5206\u5e03\u5f0f\u7f13\u5b58",id:"study/think/\u7f13\u5b58/\u5206\u5e03\u5f0f\u7f13\u5b58",title:"\u5206\u5e03\u5f0f\u7f13\u5b58",description:"\u7f13\u5b58\u4f5c\u4e3a\u78c1\u76d8\u4ee5\u5916\u7684\u4e00\u79cd\u5b58\u50a8\u6570\u636e\u7684\u65b9\u5f0f\uff0c\u5b83\u6709\u7740\u6bd4\u78c1\u76d8\u66f4\u5feb\u7684\u5b58\u53d6\u6548\u7387\uff0c\u56e0\u6b64\uff0c\u53ef\u4ee5\u6709\u6548\u63d0\u9ad8\u7cfb\u7edf\u7684\u6027\u80fd\u3002\u5728\u5355\u4f53\u7cfb\u7edf\u4e2d\uff0c\u4e00\u822c\u4f1a\u7528\u5230\u672c\u5730\u7f13\u5b58\u3002\u4f46\u5728\u5206\u5e03\u5f0f\u7cfb\u7edf\u4e2d\uff0c\u672c\u5730\u7f13\u5b58\u5c31\u663e\u5f97\u4e0d\u591f\u7528\u4e86\uff0c\u8fd9\u65f6\u5f80\u5f80\u8981\u7528\u5230\u5206\u5e03\u5f0f\u7f13\u5b58\u3002",source:"@site/docs/study/think/\u7f13\u5b58/\u5206\u5e03\u5f0f\u7f13\u5b58.md",sourceDirName:"study/think/\u7f13\u5b58",slug:"/study/think/\u7f13\u5b58/\u5206\u5e03\u5f0f\u7f13\u5b58",permalink:"/docs/study/think/\u7f13\u5b58/\u5206\u5e03\u5f0f\u7f13\u5b58",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u7f13\u5b58",permalink:"/docs/study/think/\u7f13\u5b58/"},next:{title:"\u8c08\u5de5\u4f5c\u5fc3\u5f97",permalink:"/docs/study/think/\u8c08\u5de5\u4f5c\u5fc3\u5f97"}},l={},s=[{value:"Jboss Cache",id:"jboss-cache",level:4},{value:"Memcache",id:"memcache",level:4},{value:"Redis",id:"redis",level:4},{value:"\u53c2\u8003\u8d44\u6599",id:"\u53c2\u8003\u8d44\u6599",level:4}],u={toc:s},p="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(p,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"\u7f13\u5b58\u4f5c\u4e3a\u78c1\u76d8\u4ee5\u5916\u7684\u4e00\u79cd\u5b58\u50a8\u6570\u636e\u7684\u65b9\u5f0f\uff0c\u5b83\u6709\u7740\u6bd4\u78c1\u76d8\u66f4\u5feb\u7684\u5b58\u53d6\u6548\u7387\uff0c\u56e0\u6b64\uff0c\u53ef\u4ee5\u6709\u6548\u63d0\u9ad8\u7cfb\u7edf\u7684\u6027\u80fd\u3002\u5728\u5355\u4f53\u7cfb\u7edf\u4e2d\uff0c\u4e00\u822c\u4f1a\u7528\u5230\u672c\u5730\u7f13\u5b58\u3002\u4f46\u5728\u5206\u5e03\u5f0f\u7cfb\u7edf\u4e2d\uff0c\u672c\u5730\u7f13\u5b58\u5c31\u663e\u5f97\u4e0d\u591f\u7528\u4e86\uff0c\u8fd9\u65f6\u5f80\u5f80\u8981\u7528\u5230\u5206\u5e03\u5f0f\u7f13\u5b58\u3002"),(0,o.yg)("h4",{id:"jboss-cache"},"Jboss Cache"),(0,o.yg)("h4",{id:"memcache"},"Memcache"),(0,o.yg)("h4",{id:"redis"},"Redis"),(0,o.yg)("h4",{id:"\u53c2\u8003\u8d44\u6599"},"\u53c2\u8003\u8d44\u6599"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("a",{parentName:"li",href:"https://www.cnblogs.com/ayic/p/17054981.html"},"\u804a\u804a\u5206\u5e03\u5f0f\u7f13\u5b58"))))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7816],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),s=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=s(e.components);return n.createElement(l.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=s(r),y=o,f=p["".concat(l,".").concat(y)]||p[y]||d[y]||a;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=y;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[p]="string"==typeof e?e:o,c[1]=i;for(var s=2;s{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>s});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,i={unversionedId:"study/think/\u7f13\u5b58/\u5206\u5e03\u5f0f\u7f13\u5b58",id:"study/think/\u7f13\u5b58/\u5206\u5e03\u5f0f\u7f13\u5b58",title:"\u5206\u5e03\u5f0f\u7f13\u5b58",description:"\u7f13\u5b58\u4f5c\u4e3a\u78c1\u76d8\u4ee5\u5916\u7684\u4e00\u79cd\u5b58\u50a8\u6570\u636e\u7684\u65b9\u5f0f\uff0c\u5b83\u6709\u7740\u6bd4\u78c1\u76d8\u66f4\u5feb\u7684\u5b58\u53d6\u6548\u7387\uff0c\u56e0\u6b64\uff0c\u53ef\u4ee5\u6709\u6548\u63d0\u9ad8\u7cfb\u7edf\u7684\u6027\u80fd\u3002\u5728\u5355\u4f53\u7cfb\u7edf\u4e2d\uff0c\u4e00\u822c\u4f1a\u7528\u5230\u672c\u5730\u7f13\u5b58\u3002\u4f46\u5728\u5206\u5e03\u5f0f\u7cfb\u7edf\u4e2d\uff0c\u672c\u5730\u7f13\u5b58\u5c31\u663e\u5f97\u4e0d\u591f\u7528\u4e86\uff0c\u8fd9\u65f6\u5f80\u5f80\u8981\u7528\u5230\u5206\u5e03\u5f0f\u7f13\u5b58\u3002",source:"@site/docs/study/think/\u7f13\u5b58/\u5206\u5e03\u5f0f\u7f13\u5b58.md",sourceDirName:"study/think/\u7f13\u5b58",slug:"/study/think/\u7f13\u5b58/\u5206\u5e03\u5f0f\u7f13\u5b58",permalink:"/docs/study/think/\u7f13\u5b58/\u5206\u5e03\u5f0f\u7f13\u5b58",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u7f13\u5b58",permalink:"/docs/study/think/\u7f13\u5b58/"},next:{title:"\u8c08\u5de5\u4f5c\u5fc3\u5f97",permalink:"/docs/study/think/\u8c08\u5de5\u4f5c\u5fc3\u5f97"}},l={},s=[{value:"Jboss Cache",id:"jboss-cache",level:4},{value:"Memcache",id:"memcache",level:4},{value:"Redis",id:"redis",level:4},{value:"\u53c2\u8003\u8d44\u6599",id:"\u53c2\u8003\u8d44\u6599",level:4}],u={toc:s},p="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(p,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"\u7f13\u5b58\u4f5c\u4e3a\u78c1\u76d8\u4ee5\u5916\u7684\u4e00\u79cd\u5b58\u50a8\u6570\u636e\u7684\u65b9\u5f0f\uff0c\u5b83\u6709\u7740\u6bd4\u78c1\u76d8\u66f4\u5feb\u7684\u5b58\u53d6\u6548\u7387\uff0c\u56e0\u6b64\uff0c\u53ef\u4ee5\u6709\u6548\u63d0\u9ad8\u7cfb\u7edf\u7684\u6027\u80fd\u3002\u5728\u5355\u4f53\u7cfb\u7edf\u4e2d\uff0c\u4e00\u822c\u4f1a\u7528\u5230\u672c\u5730\u7f13\u5b58\u3002\u4f46\u5728\u5206\u5e03\u5f0f\u7cfb\u7edf\u4e2d\uff0c\u672c\u5730\u7f13\u5b58\u5c31\u663e\u5f97\u4e0d\u591f\u7528\u4e86\uff0c\u8fd9\u65f6\u5f80\u5f80\u8981\u7528\u5230\u5206\u5e03\u5f0f\u7f13\u5b58\u3002"),(0,o.yg)("h4",{id:"jboss-cache"},"Jboss Cache"),(0,o.yg)("h4",{id:"memcache"},"Memcache"),(0,o.yg)("h4",{id:"redis"},"Redis"),(0,o.yg)("h4",{id:"\u53c2\u8003\u8d44\u6599"},"\u53c2\u8003\u8d44\u6599"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("a",{parentName:"li",href:"https://www.cnblogs.com/ayic/p/17054981.html"},"\u804a\u804a\u5206\u5e03\u5f0f\u7f13\u5b58"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e0041558.14594a4f.js b/assets/js/e0041558.fee4e886.js similarity index 98% rename from assets/js/e0041558.14594a4f.js rename to assets/js/e0041558.fee4e886.js index 0ca549f1c..69b75a309 100644 --- a/assets/js/e0041558.14594a4f.js +++ b/assets/js/e0041558.fee4e886.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6473],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>m});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),s=p(r),y=o,m=s["".concat(l,".").concat(y)]||s[y]||d[y]||i;return r?n.createElement(m,a(a({ref:t},u),{},{components:r})):n.createElement(m,a({ref:t},u))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=y;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[s]="string"==typeof e?e:o,a[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>c,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const i={sidebar_position:1},a="\u6982\u8ff0",c={unversionedId:"study/competitive/index",id:"study/competitive/index",title:"\u6982\u8ff0",description:"\u7269\u8054\u7f51\u884c\u4e1a\u7684\u4e00\u4e9b\u4e1a\u52a1\u5206\u6790\u3001\u516c\u53f8\u5206\u6790\u3001\u884c\u4e1a\u5206\u6790\u3002",source:"@site/docs/study/competitive/index.md",sourceDirName:"study/competitive",slug:"/study/competitive/",permalink:"/docs/study/competitive/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"docker-mysql",permalink:"/docs/study/docker/docker-mysql"},next:{title:"\u5de5\u4e1a\u4e92\u8054\u7f51\u63a2\u7a76",permalink:"/docs/study/competitive/\u5de5\u4e1a\u4e92\u8054\u7f51\u63a2\u7a76"}},l={},p=[{value:"\u963f\u91cc\u4e91\u7269\u8054\u7f51\u5e73\u53f0",id:"\u963f\u91cc\u4e91\u7269\u8054\u7f51\u5e73\u53f0",level:3}],u={toc:p},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,o.yg)("p",null,"\u7269\u8054\u7f51\u884c\u4e1a\u7684\u4e00\u4e9b\u4e1a\u52a1\u5206\u6790\u3001\u516c\u53f8\u5206\u6790\u3001\u884c\u4e1a\u5206\u6790\u3002"),(0,o.yg)("h3",{id:"\u963f\u91cc\u4e91\u7269\u8054\u7f51\u5e73\u53f0"},"\u963f\u91cc\u4e91\u7269\u8054\u7f51\u5e73\u53f0"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://help.aliyun.com/zh/iot"},"\u6587\u6863\u5730\u5740\u9996\u9875")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://help.aliyun.com/zh/iot/product-overview/terms/"},"\u57fa\u672c\u6982\u5ff5"),(0,o.yg)("ul",{parentName:"li"},(0,o.yg)("li",{parentName:"ul"},"\u7269\u6a21\u578b\uff1a\u5c5e\u6027\u3001\u670d\u52a1\u3001\u4e8b\u4ef6")))))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6473],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>m});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),s=p(r),y=o,m=s["".concat(l,".").concat(y)]||s[y]||d[y]||i;return r?n.createElement(m,a(a({ref:t},u),{},{components:r})):n.createElement(m,a({ref:t},u))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=y;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[s]="string"==typeof e?e:o,a[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>c,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const i={sidebar_position:1},a="\u6982\u8ff0",c={unversionedId:"study/competitive/index",id:"study/competitive/index",title:"\u6982\u8ff0",description:"\u7269\u8054\u7f51\u884c\u4e1a\u7684\u4e00\u4e9b\u4e1a\u52a1\u5206\u6790\u3001\u516c\u53f8\u5206\u6790\u3001\u884c\u4e1a\u5206\u6790\u3002",source:"@site/docs/study/competitive/index.md",sourceDirName:"study/competitive",slug:"/study/competitive/",permalink:"/docs/study/competitive/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"docker-mysql",permalink:"/docs/study/docker/docker-mysql"},next:{title:"\u5de5\u4e1a\u4e92\u8054\u7f51\u63a2\u7a76",permalink:"/docs/study/competitive/\u5de5\u4e1a\u4e92\u8054\u7f51\u63a2\u7a76"}},l={},p=[{value:"\u963f\u91cc\u4e91\u7269\u8054\u7f51\u5e73\u53f0",id:"\u963f\u91cc\u4e91\u7269\u8054\u7f51\u5e73\u53f0",level:3}],u={toc:p},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,o.yg)("p",null,"\u7269\u8054\u7f51\u884c\u4e1a\u7684\u4e00\u4e9b\u4e1a\u52a1\u5206\u6790\u3001\u516c\u53f8\u5206\u6790\u3001\u884c\u4e1a\u5206\u6790\u3002"),(0,o.yg)("h3",{id:"\u963f\u91cc\u4e91\u7269\u8054\u7f51\u5e73\u53f0"},"\u963f\u91cc\u4e91\u7269\u8054\u7f51\u5e73\u53f0"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://help.aliyun.com/zh/iot"},"\u6587\u6863\u5730\u5740\u9996\u9875")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://help.aliyun.com/zh/iot/product-overview/terms/"},"\u57fa\u672c\u6982\u5ff5"),(0,o.yg)("ul",{parentName:"li"},(0,o.yg)("li",{parentName:"ul"},"\u7269\u6a21\u578b\uff1a\u5c5e\u6027\u3001\u670d\u52a1\u3001\u4e8b\u4ef6")))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e17376a0.f9c6e8c4.js b/assets/js/e17376a0.e4af7b37.js similarity index 98% rename from assets/js/e17376a0.f9c6e8c4.js rename to assets/js/e17376a0.e4af7b37.js index eea5b5f2f..ba1738a86 100644 --- a/assets/js/e17376a0.f9c6e8c4.js +++ b/assets/js/e17376a0.e4af7b37.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7171],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),u=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),s=u(r),y=o,f=s["".concat(l,".").concat(y)]||s[y]||d[y]||a;return r?n.createElement(f,c(c({ref:t},p),{},{components:r})):n.createElement(f,c({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=y;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[s]="string"==typeof e?e:o,c[1]=i;for(var u=2;u{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,i={unversionedId:"study/net/TCP",id:"study/net/TCP",title:"TCP",description:"\u4e09\u6b21\u63e1\u624b\u56db\u6b21\u6325\u624b",source:"@site/docs/study/net/TCP.md",sourceDirName:"study/net",slug:"/study/net/TCP",permalink:"/docs/study/net/TCP",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"SNMP",permalink:"/docs/study/net/SNMP"},next:{title:"UDP",permalink:"/docs/study/net/UDP"}},l={},u=[{value:"\u4e09\u6b21\u63e1\u624b\u56db\u6b21\u6325\u624b",id:"\u4e09\u6b21\u63e1\u624b\u56db\u6b21\u6325\u624b",level:3}],p={toc:u},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u4e09\u6b21\u63e1\u624b\u56db\u6b21\u6325\u624b"},"\u4e09\u6b21\u63e1\u624b\u56db\u6b21\u6325\u624b"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/591865232"},"\u77e5\u4e4e-\u8d85\u8d85\u8d85\u8be6\u7ec6\u8bb2\u89e3 TCP \u4e09\u6b21\u63e1\u624b\u4e0e\u56db\u6b21\u6325\u624b\uff08\u5927\u56fe\u89e3\uff09"))))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7171],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),u=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),s=u(r),y=o,f=s["".concat(l,".").concat(y)]||s[y]||d[y]||a;return r?n.createElement(f,c(c({ref:t},p),{},{components:r})):n.createElement(f,c({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=y;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[s]="string"==typeof e?e:o,c[1]=i;for(var u=2;u{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,i={unversionedId:"study/net/TCP",id:"study/net/TCP",title:"TCP",description:"\u4e09\u6b21\u63e1\u624b\u56db\u6b21\u6325\u624b",source:"@site/docs/study/net/TCP.md",sourceDirName:"study/net",slug:"/study/net/TCP",permalink:"/docs/study/net/TCP",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"SNMP",permalink:"/docs/study/net/SNMP"},next:{title:"UDP",permalink:"/docs/study/net/UDP"}},l={},u=[{value:"\u4e09\u6b21\u63e1\u624b\u56db\u6b21\u6325\u624b",id:"\u4e09\u6b21\u63e1\u624b\u56db\u6b21\u6325\u624b",level:3}],p={toc:u},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u4e09\u6b21\u63e1\u624b\u56db\u6b21\u6325\u624b"},"\u4e09\u6b21\u63e1\u624b\u56db\u6b21\u6325\u624b"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/591865232"},"\u77e5\u4e4e-\u8d85\u8d85\u8d85\u8be6\u7ec6\u8bb2\u89e3 TCP \u4e09\u6b21\u63e1\u624b\u4e0e\u56db\u6b21\u6325\u624b\uff08\u5927\u56fe\u89e3\uff09"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e2835ef4.325a8b22.js b/assets/js/e2835ef4.627acfe3.js similarity index 99% rename from assets/js/e2835ef4.325a8b22.js rename to assets/js/e2835ef4.627acfe3.js index e7edc904b..57ddf03c3 100644 --- a/assets/js/e2835ef4.325a8b22.js +++ b/assets/js/e2835ef4.627acfe3.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8173],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>d});var n=r(6540);function l(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(l[r]=e[r]);return l}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(l[r]=e[r])}return l}var p=n.createContext({}),c=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=c(e.components);return n.createElement(p.Provider,{value:t},e.children)},y="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},s=n.forwardRef((function(e,t){var r=e.components,l=e.mdxType,a=e.originalType,p=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),y=c(r),s=l,d=y["".concat(p,".").concat(s)]||y[s]||m[s]||a;return r?n.createElement(d,o(o({ref:t},u),{},{components:r})):n.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var a=r.length,o=new Array(a);o[0]=s;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[y]="string"==typeof e?e:l,o[1]=i;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>m,frontMatter:()=>a,metadata:()=>i,toc:()=>c});var n=r(8168),l=(r(6540),r(5680));const a={},o=void 0,i={unversionedId:"study/think/\u5b9e\u65f6\u8ba1\u7b97Storm+Flink",id:"study/think/\u5b9e\u65f6\u8ba1\u7b97Storm+Flink",title:"\u5b9e\u65f6\u8ba1\u7b97Storm+Flink",description:"\u5b9e\u65f6\u8ba1\u7b97",source:"@site/docs/study/think/\u5b9e\u65f6\u8ba1\u7b97Storm+Flink.md",sourceDirName:"study/think",slug:"/study/think/\u5b9e\u65f6\u8ba1\u7b97Storm+Flink",permalink:"/docs/study/think/\u5b9e\u65f6\u8ba1\u7b97Storm+Flink",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u4ee3\u7801\u5ba1\u67e5\u95ee\u9898\u624b\u518c",permalink:"/docs/study/think/\u4ee3\u7801\u8bc4\u5ba1/\u4ee3\u7801\u5ba1\u67e5\u95ee\u9898\u624b\u518c"},next:{title:"\u5e76\u53d1\u6a21\u578b",permalink:"/docs/study/think/\u5e76\u53d1\u6a21\u578b"}},p={},c=[{value:"\u5b9e\u65f6\u8ba1\u7b97",id:"\u5b9e\u65f6\u8ba1\u7b97",level:3},{value:"\u4e3b\u8981\u5e94\u7528",id:"\u4e3b\u8981\u5e94\u7528",level:3},{value:"Storm",id:"storm",level:3},{value:"Flink",id:"flink",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],u={toc:c},y="wrapper";function m(e){let{components:t,...r}=e;return(0,l.yg)(y,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,l.yg)("h3",{id:"\u5b9e\u65f6\u8ba1\u7b97"},"\u5b9e\u65f6\u8ba1\u7b97"),(0,l.yg)("p",null,"\u4e00\u79cd\u8003\u8651\u4e86\u65e0\u7ebf\u6570\u636e\u96c6\u7684\u6570\u636e\u5904\u7406\u5f15\u64ce\u3002\u53c8\u79f0\u5b9e\u65f6\u6d41\u5f0f\u8ba1\u7b97\u3001\u6d41\u5f0f\u8ba1\u7b97\uff0c\u90fd\u662f\u5dee\u4e0d\u591a\u7684\u6982\u5ff5\uff1b"),(0,l.yg)("p",null,"\u4e09\u4e2a\u7279\u5f81\uff1a"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u65e0\u9650\u6570\u636e\uff0c\u662f\u6307\u4e00\u79cd\u4e0d\u65ad\u589e\u957f\uff0c\u57fa\u672c\u4e0a\u65e0\u9650\u7684\u6570\u636e\u96c6\uff0c\u4e5f\u53ef\u4ee5\u79f0\u4f5c\u6d41\u6570\u636e\uff0c\u4e0e\u4e4b\u5bf9\u5e94\u7684\u662f\u6709\u9650\u7684\u6570\u636e\u96c6\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u65e0\u754c\u6570\u636e\u5904\u7406\uff0c\u4e00\u79cd\u6301\u7eed\u7684\u6570\u636e\u5904\u7406\u6a21\u5f0f\uff0c\u80fd\u591f\u901a\u8fc7\u5904\u7406\u5f15\u64ce\u91cd\u590d\u7684\u53bb\u5904\u7406\u4e0a\u9762\u7684\u65e0\u9650\u6570\u636e\uff0c\u662f\u80fd\u591f\u7a81\u7834\u6709\u9650\u6570\u636e\u5904\u7406\u5f15\u64ce\u7684\u74f6\u9888\u7684\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u4f4e\u5ef6\u8fdf\uff0c\u5ef6\u8fdf\u662f\u591a\u5c11\u5e76\u6ca1\u6709\u660e\u786e\u7684\u5b9a\u4e49\u3002\u4f46\u6211\u4eec\u90fd\u77e5\u9053\u6570\u636e\u7684\u4ef7\u503c\u5c06\u968f\u7740\u65f6\u95f4\u7684\u6d41\u901d\u964d\u4f4e\uff0c\u65f6\u6548\u6027\u5c06\u662f\u9700\u8981\u6301\u7eed\u89e3\u51b3\u7684\u95ee\u9898\u3002")),(0,l.yg)("p",null,"\u5b9e\u65f6\u8ba1\u7b97\u5176\u5b9e\u662f\u4e00\u4e2a\u76f8\u5bf9\u7684\u6982\u5ff5\uff0c\u5bf9\u4e8e\u6279\u5904\u7406\u3001\u8fd1\u5b9e\u65f6\u3001\u5fae\u6279\uff0c\u4e0d\u591a\u662f\u65f6\u95f4\u7684\u95ee\u9898\uff1b\n\u5b9e\u65f6\u6846\u67b6\u6709\u5f88\u591a\uff0c\u4f8b\u5982Storm\u3001Fink\u3001Kafka Streaming\u3001Spark Streaming\uff1b\n\u540c\u65f6\u652f\u6301\u6d41\u5904\u7406\u548c\u6279\u5904\u7406\u7684\u8ba1\u7b97\u5f15\u64ce\uff0c\u6709\u4e24\u79cd\u9009\u62e9\uff1a\u4e00\u4e2a\u662fApache Spark\uff0c\u4e00\u4e2a\u662fApache Flink\u3002\u4ece\u6280\u672f\uff0c\u751f\u6001\u7b49\u5404\u65b9\u9762\u7684\u7efc\u5408\u8003\u8651\uff0c\u9996\u5148\uff0cSpark\u7684\u6280\u672f\u7406\u5ff5\u662f\u57fa\u4e8e\u6279\u6765\u6a21\u62df\u6d41\u7684\u8ba1\u7b97\u3002\u800cFlink\u5219\u5b8c\u5168\u76f8\u53cd\uff0c\u5b83\u91c7\u7528\u7684\u662f\u57fa\u4e8e\u6d41\u8ba1\u7b97\u6765\u6a21\u62df\u6279\u8ba1\u7b97\u3002\u4ece\u6280\u672f\u53d1\u5c55\u65b9\u5411\u770b\uff0c\u7528\u6279\u6765\u6a21\u62df\u6d41\u6709\u4e00\u5b9a\u7684\u6280\u672f\u5c40\u9650\u6027\uff0c\u5e76\u4e14\u8fd9\u4e2a\u5c40\u9650\u6027\u53ef\u80fd\u5f88\u96be\u7a81\u7834\u3002\u800cFlink\u57fa\u4e8e\u6d41\u6765\u6a21\u62df\u6279\uff0c\u5728\u6280\u672f\u4e0a\u6709\u66f4\u597d\u7684\u6269\u5c55\u6027\u3002"),(0,l.yg)("h3",{id:"\u4e3b\u8981\u5e94\u7528"},"\u4e3b\u8981\u5e94\u7528"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u65e5\u5fd7\u5206\u6790\uff0c\u6bd4\u5982\u5bf9\u7f51\u7ad9\u7684\u7528\u6237\u8bbf\u95ee\u65e5\u5fd7\u8fdb\u884c\u5b9e\u65f6\u7684\u5206\u6790\uff0c\u8ba1\u7b97\u8bbf\u95ee\u91cf\uff0c\u7528\u6237\u753b\u50cf\uff0c\u7559\u5b58\u7387\u7b49\u7b49\uff0c\u5b9e\u65f6\u7684\u8fdb\u884c\u6570\u636e\u5206\u6790\uff0c\u5e2e\u52a9\u4f01\u4e1a\u8fdb\u884c\u51b3\u7b56\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u7269\u8054\u7f51\uff0c\u6bd4\u5982\u5bf9\u7535\u529b\u7cfb\u7edf\u8fdb\u884c\u5b9e\u65f6\u7684\u6570\u636e\u68c0\u6d4b\uff0c\u8fdb\u884c\u62a5\u8b66\uff0c\u5b9e\u65f6\u7684\u663e\u793a\uff0c\u6216\u8005\u6839\u636e\u5386\u53f2\u6570\u636e\u8fdb\u884c\u5b9e\u65f6\u7684\u5206\u6790\uff0c\u9884\u6d4b\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u8f66\u8054\u7f51\uff0c\u5982\u4eca\u7684\u8f66\u8054\u7f51\u5df2\u7ecf\u4e0d\u9650\u4e8e\u7269\u8054\u7f51\uff0c\u8fd8\u5305\u62ec\u5bf9\u7528\u6237\uff0c\u4ea4\u901a\u7b49\u7b49\u8fdb\u884c\u5206\u6790\u7684\u4e00\u4e2a\u5e9e\u5927\u7684\u7cfb\u7edf\uff0c\u6539\u5584\u7528\u6237\u51fa\u884c\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u91d1\u878d\u5206\u63a7\uff0c\u901a\u8fc7\u5bf9\u4ea4\u6613\u7b49\u91d1\u878d\u884c\u4e3a\u5b9e\u65f6\u5206\u6790\uff0c\u9884\u6d4b\u51fa\u672a\u77e5\u98ce\u9669\u3002")),(0,l.yg)("h3",{id:"storm"},"Storm"),(0,l.yg)("p",null,"Twitter\u5f00\u6e90\u7684Storm\u6846\u67b6\u98ce\u9761\u4e00\u65f6\uff0c\u5728Hadoop\u8bde\u751f\u521d\u671f\uff0cStorm\u5f25\u8865\u4e86Hadoop\u4e0d\u80fd\u505a\u5b9e\u65f6\u6570\u636e\u5904\u7406\u7f3a\u9677\uff0c\u88ab\u5e7f\u6cdb\u4f7f\u7528\uff0c\u73b0\u5728\u7684\u5f88\u591a\u516c\u53f8\u4f9d\u7136\u5728\u4f7f\u7528\uff0cStorm\u5ef6\u8fdf\u662f\u6beb\u79d2\u7ea7\u7684\uff0c\u4f46\u662f\u5b83\u5f88\u96be\u5b9e\u73b0\u9ad8\u541e\u5410\uff0c\u4e0d\u80fd\u4fdd\u8bc1\u6d88\u606f\u6070\u597d\u4e00\u6b21\u7684\u4f20\u9012\u3002\u6211\u4eec\u53ef\u4ee5\u901a\u8fc7ack\u673a\u5236\u4fdd\u8bc1\uff0c\u4f46\u5f00\u9500\u6781\u5927\uff0c\u73b0\u5728\u5f88\u591a\u4f7f\u7528Storm\u7684\u516c\u53f8\u90fd\u51fa\u73b0\u4e86\u6d88\u606f\u79ef\u538b\u7684\u95ee\u9898\uff0c\u8fd9\u5176\u5b9e\u662f\u5f88\u96be\u907f\u514d\u7684\u3002"),(0,l.yg)("h3",{id:"flink"},"Flink"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},(0,l.yg)("a",{parentName:"li",href:"http://www.54tianzhisheng.cn/2018/10/13/flink-introduction/"},"Flink \u4ece 0 \u5230 1 \u5b66\u4e60"))),(0,l.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},(0,l.yg)("a",{parentName:"li",href:"https://mp.weixin.qq.com/s/p7PzA9qfDGKKLzmh5qM_Gg"},"Streaming-\u5927\u6570\u636e\u7684\u672a\u6765")),(0,l.yg)("li",{parentName:"ol"},(0,l.yg)("a",{parentName:"li",href:"https://www.jianshu.com/p/6c3210eaed57"},"\u963f\u91cc\u5df4\u5df4\u4e3a\u4ec0\u4e48\u9009\u62e9Apache Flink\uff1f"))))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8173],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>d});var n=r(6540);function l(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(l[r]=e[r]);return l}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(l[r]=e[r])}return l}var p=n.createContext({}),c=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=c(e.components);return n.createElement(p.Provider,{value:t},e.children)},y="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},s=n.forwardRef((function(e,t){var r=e.components,l=e.mdxType,a=e.originalType,p=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),y=c(r),s=l,d=y["".concat(p,".").concat(s)]||y[s]||m[s]||a;return r?n.createElement(d,o(o({ref:t},u),{},{components:r})):n.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var a=r.length,o=new Array(a);o[0]=s;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[y]="string"==typeof e?e:l,o[1]=i;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>m,frontMatter:()=>a,metadata:()=>i,toc:()=>c});var n=r(8168),l=(r(6540),r(5680));const a={},o=void 0,i={unversionedId:"study/think/\u5b9e\u65f6\u8ba1\u7b97Storm+Flink",id:"study/think/\u5b9e\u65f6\u8ba1\u7b97Storm+Flink",title:"\u5b9e\u65f6\u8ba1\u7b97Storm+Flink",description:"\u5b9e\u65f6\u8ba1\u7b97",source:"@site/docs/study/think/\u5b9e\u65f6\u8ba1\u7b97Storm+Flink.md",sourceDirName:"study/think",slug:"/study/think/\u5b9e\u65f6\u8ba1\u7b97Storm+Flink",permalink:"/docs/study/think/\u5b9e\u65f6\u8ba1\u7b97Storm+Flink",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u4ee3\u7801\u5ba1\u67e5\u95ee\u9898\u624b\u518c",permalink:"/docs/study/think/\u4ee3\u7801\u8bc4\u5ba1/\u4ee3\u7801\u5ba1\u67e5\u95ee\u9898\u624b\u518c"},next:{title:"\u5e76\u53d1\u6a21\u578b",permalink:"/docs/study/think/\u5e76\u53d1\u6a21\u578b"}},p={},c=[{value:"\u5b9e\u65f6\u8ba1\u7b97",id:"\u5b9e\u65f6\u8ba1\u7b97",level:3},{value:"\u4e3b\u8981\u5e94\u7528",id:"\u4e3b\u8981\u5e94\u7528",level:3},{value:"Storm",id:"storm",level:3},{value:"Flink",id:"flink",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],u={toc:c},y="wrapper";function m(e){let{components:t,...r}=e;return(0,l.yg)(y,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,l.yg)("h3",{id:"\u5b9e\u65f6\u8ba1\u7b97"},"\u5b9e\u65f6\u8ba1\u7b97"),(0,l.yg)("p",null,"\u4e00\u79cd\u8003\u8651\u4e86\u65e0\u7ebf\u6570\u636e\u96c6\u7684\u6570\u636e\u5904\u7406\u5f15\u64ce\u3002\u53c8\u79f0\u5b9e\u65f6\u6d41\u5f0f\u8ba1\u7b97\u3001\u6d41\u5f0f\u8ba1\u7b97\uff0c\u90fd\u662f\u5dee\u4e0d\u591a\u7684\u6982\u5ff5\uff1b"),(0,l.yg)("p",null,"\u4e09\u4e2a\u7279\u5f81\uff1a"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u65e0\u9650\u6570\u636e\uff0c\u662f\u6307\u4e00\u79cd\u4e0d\u65ad\u589e\u957f\uff0c\u57fa\u672c\u4e0a\u65e0\u9650\u7684\u6570\u636e\u96c6\uff0c\u4e5f\u53ef\u4ee5\u79f0\u4f5c\u6d41\u6570\u636e\uff0c\u4e0e\u4e4b\u5bf9\u5e94\u7684\u662f\u6709\u9650\u7684\u6570\u636e\u96c6\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u65e0\u754c\u6570\u636e\u5904\u7406\uff0c\u4e00\u79cd\u6301\u7eed\u7684\u6570\u636e\u5904\u7406\u6a21\u5f0f\uff0c\u80fd\u591f\u901a\u8fc7\u5904\u7406\u5f15\u64ce\u91cd\u590d\u7684\u53bb\u5904\u7406\u4e0a\u9762\u7684\u65e0\u9650\u6570\u636e\uff0c\u662f\u80fd\u591f\u7a81\u7834\u6709\u9650\u6570\u636e\u5904\u7406\u5f15\u64ce\u7684\u74f6\u9888\u7684\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u4f4e\u5ef6\u8fdf\uff0c\u5ef6\u8fdf\u662f\u591a\u5c11\u5e76\u6ca1\u6709\u660e\u786e\u7684\u5b9a\u4e49\u3002\u4f46\u6211\u4eec\u90fd\u77e5\u9053\u6570\u636e\u7684\u4ef7\u503c\u5c06\u968f\u7740\u65f6\u95f4\u7684\u6d41\u901d\u964d\u4f4e\uff0c\u65f6\u6548\u6027\u5c06\u662f\u9700\u8981\u6301\u7eed\u89e3\u51b3\u7684\u95ee\u9898\u3002")),(0,l.yg)("p",null,"\u5b9e\u65f6\u8ba1\u7b97\u5176\u5b9e\u662f\u4e00\u4e2a\u76f8\u5bf9\u7684\u6982\u5ff5\uff0c\u5bf9\u4e8e\u6279\u5904\u7406\u3001\u8fd1\u5b9e\u65f6\u3001\u5fae\u6279\uff0c\u4e0d\u591a\u662f\u65f6\u95f4\u7684\u95ee\u9898\uff1b\n\u5b9e\u65f6\u6846\u67b6\u6709\u5f88\u591a\uff0c\u4f8b\u5982Storm\u3001Fink\u3001Kafka Streaming\u3001Spark Streaming\uff1b\n\u540c\u65f6\u652f\u6301\u6d41\u5904\u7406\u548c\u6279\u5904\u7406\u7684\u8ba1\u7b97\u5f15\u64ce\uff0c\u6709\u4e24\u79cd\u9009\u62e9\uff1a\u4e00\u4e2a\u662fApache Spark\uff0c\u4e00\u4e2a\u662fApache Flink\u3002\u4ece\u6280\u672f\uff0c\u751f\u6001\u7b49\u5404\u65b9\u9762\u7684\u7efc\u5408\u8003\u8651\uff0c\u9996\u5148\uff0cSpark\u7684\u6280\u672f\u7406\u5ff5\u662f\u57fa\u4e8e\u6279\u6765\u6a21\u62df\u6d41\u7684\u8ba1\u7b97\u3002\u800cFlink\u5219\u5b8c\u5168\u76f8\u53cd\uff0c\u5b83\u91c7\u7528\u7684\u662f\u57fa\u4e8e\u6d41\u8ba1\u7b97\u6765\u6a21\u62df\u6279\u8ba1\u7b97\u3002\u4ece\u6280\u672f\u53d1\u5c55\u65b9\u5411\u770b\uff0c\u7528\u6279\u6765\u6a21\u62df\u6d41\u6709\u4e00\u5b9a\u7684\u6280\u672f\u5c40\u9650\u6027\uff0c\u5e76\u4e14\u8fd9\u4e2a\u5c40\u9650\u6027\u53ef\u80fd\u5f88\u96be\u7a81\u7834\u3002\u800cFlink\u57fa\u4e8e\u6d41\u6765\u6a21\u62df\u6279\uff0c\u5728\u6280\u672f\u4e0a\u6709\u66f4\u597d\u7684\u6269\u5c55\u6027\u3002"),(0,l.yg)("h3",{id:"\u4e3b\u8981\u5e94\u7528"},"\u4e3b\u8981\u5e94\u7528"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u65e5\u5fd7\u5206\u6790\uff0c\u6bd4\u5982\u5bf9\u7f51\u7ad9\u7684\u7528\u6237\u8bbf\u95ee\u65e5\u5fd7\u8fdb\u884c\u5b9e\u65f6\u7684\u5206\u6790\uff0c\u8ba1\u7b97\u8bbf\u95ee\u91cf\uff0c\u7528\u6237\u753b\u50cf\uff0c\u7559\u5b58\u7387\u7b49\u7b49\uff0c\u5b9e\u65f6\u7684\u8fdb\u884c\u6570\u636e\u5206\u6790\uff0c\u5e2e\u52a9\u4f01\u4e1a\u8fdb\u884c\u51b3\u7b56\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u7269\u8054\u7f51\uff0c\u6bd4\u5982\u5bf9\u7535\u529b\u7cfb\u7edf\u8fdb\u884c\u5b9e\u65f6\u7684\u6570\u636e\u68c0\u6d4b\uff0c\u8fdb\u884c\u62a5\u8b66\uff0c\u5b9e\u65f6\u7684\u663e\u793a\uff0c\u6216\u8005\u6839\u636e\u5386\u53f2\u6570\u636e\u8fdb\u884c\u5b9e\u65f6\u7684\u5206\u6790\uff0c\u9884\u6d4b\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u8f66\u8054\u7f51\uff0c\u5982\u4eca\u7684\u8f66\u8054\u7f51\u5df2\u7ecf\u4e0d\u9650\u4e8e\u7269\u8054\u7f51\uff0c\u8fd8\u5305\u62ec\u5bf9\u7528\u6237\uff0c\u4ea4\u901a\u7b49\u7b49\u8fdb\u884c\u5206\u6790\u7684\u4e00\u4e2a\u5e9e\u5927\u7684\u7cfb\u7edf\uff0c\u6539\u5584\u7528\u6237\u51fa\u884c\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u91d1\u878d\u5206\u63a7\uff0c\u901a\u8fc7\u5bf9\u4ea4\u6613\u7b49\u91d1\u878d\u884c\u4e3a\u5b9e\u65f6\u5206\u6790\uff0c\u9884\u6d4b\u51fa\u672a\u77e5\u98ce\u9669\u3002")),(0,l.yg)("h3",{id:"storm"},"Storm"),(0,l.yg)("p",null,"Twitter\u5f00\u6e90\u7684Storm\u6846\u67b6\u98ce\u9761\u4e00\u65f6\uff0c\u5728Hadoop\u8bde\u751f\u521d\u671f\uff0cStorm\u5f25\u8865\u4e86Hadoop\u4e0d\u80fd\u505a\u5b9e\u65f6\u6570\u636e\u5904\u7406\u7f3a\u9677\uff0c\u88ab\u5e7f\u6cdb\u4f7f\u7528\uff0c\u73b0\u5728\u7684\u5f88\u591a\u516c\u53f8\u4f9d\u7136\u5728\u4f7f\u7528\uff0cStorm\u5ef6\u8fdf\u662f\u6beb\u79d2\u7ea7\u7684\uff0c\u4f46\u662f\u5b83\u5f88\u96be\u5b9e\u73b0\u9ad8\u541e\u5410\uff0c\u4e0d\u80fd\u4fdd\u8bc1\u6d88\u606f\u6070\u597d\u4e00\u6b21\u7684\u4f20\u9012\u3002\u6211\u4eec\u53ef\u4ee5\u901a\u8fc7ack\u673a\u5236\u4fdd\u8bc1\uff0c\u4f46\u5f00\u9500\u6781\u5927\uff0c\u73b0\u5728\u5f88\u591a\u4f7f\u7528Storm\u7684\u516c\u53f8\u90fd\u51fa\u73b0\u4e86\u6d88\u606f\u79ef\u538b\u7684\u95ee\u9898\uff0c\u8fd9\u5176\u5b9e\u662f\u5f88\u96be\u907f\u514d\u7684\u3002"),(0,l.yg)("h3",{id:"flink"},"Flink"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},(0,l.yg)("a",{parentName:"li",href:"http://www.54tianzhisheng.cn/2018/10/13/flink-introduction/"},"Flink \u4ece 0 \u5230 1 \u5b66\u4e60"))),(0,l.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},(0,l.yg)("a",{parentName:"li",href:"https://mp.weixin.qq.com/s/p7PzA9qfDGKKLzmh5qM_Gg"},"Streaming-\u5927\u6570\u636e\u7684\u672a\u6765")),(0,l.yg)("li",{parentName:"ol"},(0,l.yg)("a",{parentName:"li",href:"https://www.jianshu.com/p/6c3210eaed57"},"\u963f\u91cc\u5df4\u5df4\u4e3a\u4ec0\u4e48\u9009\u62e9Apache Flink\uff1f"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e36fd319.bee5008f.js b/assets/js/e36fd319.274743c4.js similarity index 98% rename from assets/js/e36fd319.bee5008f.js rename to assets/js/e36fd319.274743c4.js index da02cafd2..8bb744dca 100644 --- a/assets/js/e36fd319.bee5008f.js +++ b/assets/js/e36fd319.274743c4.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5382],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},l="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),l=p(r),f=o,y=l["".concat(s,".").concat(f)]||l[f]||d[f]||a;return r?n.createElement(y,i(i({ref:t},u),{},{components:r})):n.createElement(y,i({ref:t},u))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=f;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[l]="string"==typeof e?e:o,i[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={},i=void 0,c={unversionedId:"study/think/\u67b6\u6784/\u67b6\u6784\u56fe\u793a\u4f8b",id:"study/think/\u67b6\u6784/\u67b6\u6784\u56fe\u793a\u4f8b",title:"\u67b6\u6784\u56fe\u793a\u4f8b",description:"image.png",source:"@site/docs/study/think/\u67b6\u6784/\u67b6\u6784\u56fe\u793a\u4f8b.md",sourceDirName:"study/think/\u67b6\u6784",slug:"/study/think/\u67b6\u6784/\u67b6\u6784\u56fe\u793a\u4f8b",permalink:"/docs/study/think/\u67b6\u6784/\u67b6\u6784\u56fe\u793a\u4f8b",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u6280\u672f\u4e2d\u53f0",permalink:"/docs/study/think/\u67b6\u6784/\u6280\u672f\u4e2d\u53f0"},next:{title:"\u8d1f\u8f7d\u5747\u8861",permalink:"/docs/study/think/\u67b6\u6784/\u8d1f\u8f7d\u5747\u8861"}},s={},p=[],u={toc:p},l="wrapper";function d(e){let{components:t,...a}=e;return(0,o.yg)(l,(0,n.A)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,(0,o.yg)("img",{alt:"image.png",src:r(4934).A,width:"1061",height:"618"})))}d.isMDXComponent=!0},4934:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/j1-795b3e3fa724f515965c72d16df4052b.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5382],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},l="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),l=p(r),f=o,y=l["".concat(s,".").concat(f)]||l[f]||d[f]||a;return r?n.createElement(y,i(i({ref:t},u),{},{components:r})):n.createElement(y,i({ref:t},u))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=f;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[l]="string"==typeof e?e:o,i[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={},i=void 0,c={unversionedId:"study/think/\u67b6\u6784/\u67b6\u6784\u56fe\u793a\u4f8b",id:"study/think/\u67b6\u6784/\u67b6\u6784\u56fe\u793a\u4f8b",title:"\u67b6\u6784\u56fe\u793a\u4f8b",description:"image.png",source:"@site/docs/study/think/\u67b6\u6784/\u67b6\u6784\u56fe\u793a\u4f8b.md",sourceDirName:"study/think/\u67b6\u6784",slug:"/study/think/\u67b6\u6784/\u67b6\u6784\u56fe\u793a\u4f8b",permalink:"/docs/study/think/\u67b6\u6784/\u67b6\u6784\u56fe\u793a\u4f8b",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u6280\u672f\u4e2d\u53f0",permalink:"/docs/study/think/\u67b6\u6784/\u6280\u672f\u4e2d\u53f0"},next:{title:"\u8d1f\u8f7d\u5747\u8861",permalink:"/docs/study/think/\u67b6\u6784/\u8d1f\u8f7d\u5747\u8861"}},s={},p=[],u={toc:p},l="wrapper";function d(e){let{components:t,...a}=e;return(0,o.yg)(l,(0,n.A)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,(0,o.yg)("img",{alt:"image.png",src:r(4934).A,width:"1061",height:"618"})))}d.isMDXComponent=!0},4934:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/j1-795b3e3fa724f515965c72d16df4052b.png"}}]); \ No newline at end of file diff --git a/assets/js/e3905ad3.38bd1942.js b/assets/js/e3905ad3.bfb0030c.js similarity index 98% rename from assets/js/e3905ad3.38bd1942.js rename to assets/js/e3905ad3.bfb0030c.js index d05773e8a..20b63214d 100644 --- a/assets/js/e3905ad3.38bd1942.js +++ b/assets/js/e3905ad3.bfb0030c.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9841],{5680:(e,t,r)=>{r.d(t,{xA:()=>d,yg:()=>m});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},d=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),u=p(r),f=o,m=u["".concat(l,".").concat(f)]||u[f]||s[f]||i;return r?n.createElement(m,a(a({ref:t},d),{},{components:r})):n.createElement(m,a({ref:t},d))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=f;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[u]="string"==typeof e?e:o,a[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>s,frontMatter:()=>i,metadata:()=>c,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const i={sidebar_position:3},a="\u8bbe\u5907\u7c7b\u578b\u7ba1\u7406",c={unversionedId:"iotcloud/devicemanager/device-type",id:"iotcloud/devicemanager/device-type",title:"\u8bbe\u5907\u7c7b\u578b\u7ba1\u7406",description:"",source:"@site/docs/iotcloud/devicemanager/device-type.md",sourceDirName:"iotcloud/devicemanager",slug:"/iotcloud/devicemanager/device-type",permalink:"/docs/iotcloud/devicemanager/device-type",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"iotCloudSidebar",previous:{title:"\u6982\u8ff0",permalink:"/docs/iotcloud/devicemanager/"},next:{title:"\u8bbe\u5907\u4fe1\u606f\u7ba1\u7406",permalink:"/docs/iotcloud/devicemanager/device-info"}},l={},p=[],d={toc:p},u="wrapper";function s(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u8bbe\u5907\u7c7b\u578b\u7ba1\u7406"},"\u8bbe\u5907\u7c7b\u578b\u7ba1\u7406"))}s.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9841],{5680:(e,t,r)=>{r.d(t,{xA:()=>d,yg:()=>m});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},d=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),u=p(r),f=o,m=u["".concat(l,".").concat(f)]||u[f]||s[f]||i;return r?n.createElement(m,a(a({ref:t},d),{},{components:r})):n.createElement(m,a({ref:t},d))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=f;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[u]="string"==typeof e?e:o,a[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>s,frontMatter:()=>i,metadata:()=>c,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const i={sidebar_position:3},a="\u8bbe\u5907\u7c7b\u578b\u7ba1\u7406",c={unversionedId:"iotcloud/devicemanager/device-type",id:"iotcloud/devicemanager/device-type",title:"\u8bbe\u5907\u7c7b\u578b\u7ba1\u7406",description:"",source:"@site/docs/iotcloud/devicemanager/device-type.md",sourceDirName:"iotcloud/devicemanager",slug:"/iotcloud/devicemanager/device-type",permalink:"/docs/iotcloud/devicemanager/device-type",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"iotCloudSidebar",previous:{title:"\u6982\u8ff0",permalink:"/docs/iotcloud/devicemanager/"},next:{title:"\u8bbe\u5907\u4fe1\u606f\u7ba1\u7406",permalink:"/docs/iotcloud/devicemanager/device-info"}},l={},p=[],d={toc:p},u="wrapper";function s(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u8bbe\u5907\u7c7b\u578b\u7ba1\u7406"},"\u8bbe\u5907\u7c7b\u578b\u7ba1\u7406"))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e49c089a.aca343db.js b/assets/js/e49c089a.cb5a3491.js similarity index 98% rename from assets/js/e49c089a.aca343db.js rename to assets/js/e49c089a.cb5a3491.js index 873a0553e..1c2d26656 100644 --- a/assets/js/e49c089a.aca343db.js +++ b/assets/js/e49c089a.cb5a3491.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4766],{5680:(e,r,t)=>{t.d(r,{xA:()=>l,yg:()=>m});var n=t(6540);function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function i(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function o(e){for(var r=1;r=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var c=n.createContext({}),s=function(e){var r=n.useContext(c),t=r;return e&&(t="function"==typeof e?e(r):o(o({},r),e)),t},l=function(e){var r=s(e.components);return n.createElement(c.Provider,{value:r},e.children)},u="mdxType",g={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},y=n.forwardRef((function(e,r){var t=e.components,a=e.mdxType,i=e.originalType,c=e.parentName,l=p(e,["components","mdxType","originalType","parentName"]),u=s(t),y=a,m=u["".concat(c,".").concat(y)]||u[y]||g[y]||i;return t?n.createElement(m,o(o({ref:r},l),{},{components:t})):n.createElement(m,o({ref:r},l))}));function m(e,r){var t=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var i=t.length,o=new Array(i);o[0]=y;var p={};for(var c in r)hasOwnProperty.call(r,c)&&(p[c]=r[c]);p.originalType=e,p[u]="string"==typeof e?e:a,o[1]=p;for(var s=2;s{t.r(r),t.d(r,{assets:()=>c,contentTitle:()=>o,default:()=>g,frontMatter:()=>i,metadata:()=>p,toc:()=>s});var n=t(8168),a=(t(6540),t(5680));const i={},o="Spirng Framework",p={unversionedId:"study/back/spring/SpringFramework",id:"study/back/spring/SpringFramework",title:"Spirng Framework",description:"\u5b98\u65b9\u53c2\u8003\u6587\u6863",source:"@site/docs/study/back/spring/SpringFramework.md",sourceDirName:"study/back/spring",slug:"/study/back/spring/SpringFramework",permalink:"/docs/study/back/spring/SpringFramework",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Spring Boot",permalink:"/docs/study/back/spring/SpringBoot"},next:{title:"Spring Security",permalink:"/docs/study/back/spring/SpringSecurity"}},c={},s=[{value:"\u7279\u6027",id:"\u7279\u6027",level:3}],l={toc:s},u="wrapper";function g(e){let{components:r,...t}=e;return(0,a.yg)(u,(0,n.A)({},l,t,{components:r,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"spirng-framework"},"Spirng Framework"),(0,a.yg)("p",null,(0,a.yg)("a",{parentName:"p",href:"https://docs.spring.io/spring-framework/reference/overview.html"},"\u5b98\u65b9\u53c2\u8003\u6587\u6863")),(0,a.yg)("h3",{id:"\u7279\u6027"},"\u7279\u6027"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"Core technologies: dependency injection, events, resources, i18n, validation, data binding, type conversion, SpEL, AOP.")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"Testing: mock objects, TestContext framework, Spring MVC Test, WebTestClient.")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"Data Access: transactions, DAO support, JDBC, ORM, Marshalling XML.")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"Spring MVC and Spring WebFlux web frameworks.")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"Integration: remoting, JMS, JCA, JMX, email, tasks, scheduling, cache and observability.")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"Languages: Kotlin, Groovy, dynamic languages."))))}g.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4766],{5680:(e,r,t)=>{t.d(r,{xA:()=>l,yg:()=>m});var n=t(6540);function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function i(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function o(e){for(var r=1;r=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var c=n.createContext({}),s=function(e){var r=n.useContext(c),t=r;return e&&(t="function"==typeof e?e(r):o(o({},r),e)),t},l=function(e){var r=s(e.components);return n.createElement(c.Provider,{value:r},e.children)},u="mdxType",g={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},y=n.forwardRef((function(e,r){var t=e.components,a=e.mdxType,i=e.originalType,c=e.parentName,l=p(e,["components","mdxType","originalType","parentName"]),u=s(t),y=a,m=u["".concat(c,".").concat(y)]||u[y]||g[y]||i;return t?n.createElement(m,o(o({ref:r},l),{},{components:t})):n.createElement(m,o({ref:r},l))}));function m(e,r){var t=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var i=t.length,o=new Array(i);o[0]=y;var p={};for(var c in r)hasOwnProperty.call(r,c)&&(p[c]=r[c]);p.originalType=e,p[u]="string"==typeof e?e:a,o[1]=p;for(var s=2;s{t.r(r),t.d(r,{assets:()=>c,contentTitle:()=>o,default:()=>g,frontMatter:()=>i,metadata:()=>p,toc:()=>s});var n=t(8168),a=(t(6540),t(5680));const i={},o="Spirng Framework",p={unversionedId:"study/back/spring/SpringFramework",id:"study/back/spring/SpringFramework",title:"Spirng Framework",description:"\u5b98\u65b9\u53c2\u8003\u6587\u6863",source:"@site/docs/study/back/spring/SpringFramework.md",sourceDirName:"study/back/spring",slug:"/study/back/spring/SpringFramework",permalink:"/docs/study/back/spring/SpringFramework",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Spring Boot",permalink:"/docs/study/back/spring/SpringBoot"},next:{title:"Spring Security",permalink:"/docs/study/back/spring/SpringSecurity"}},c={},s=[{value:"\u7279\u6027",id:"\u7279\u6027",level:3}],l={toc:s},u="wrapper";function g(e){let{components:r,...t}=e;return(0,a.yg)(u,(0,n.A)({},l,t,{components:r,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"spirng-framework"},"Spirng Framework"),(0,a.yg)("p",null,(0,a.yg)("a",{parentName:"p",href:"https://docs.spring.io/spring-framework/reference/overview.html"},"\u5b98\u65b9\u53c2\u8003\u6587\u6863")),(0,a.yg)("h3",{id:"\u7279\u6027"},"\u7279\u6027"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"Core technologies: dependency injection, events, resources, i18n, validation, data binding, type conversion, SpEL, AOP.")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"Testing: mock objects, TestContext framework, Spring MVC Test, WebTestClient.")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"Data Access: transactions, DAO support, JDBC, ORM, Marshalling XML.")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"Spring MVC and Spring WebFlux web frameworks.")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"Integration: remoting, JMS, JCA, JMX, email, tasks, scheduling, cache and observability.")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"Languages: Kotlin, Groovy, dynamic languages."))))}g.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e4e6cea9.edb078a9.js b/assets/js/e4e6cea9.d0fab417.js similarity index 98% rename from assets/js/e4e6cea9.edb078a9.js rename to assets/js/e4e6cea9.d0fab417.js index 887e0f629..cab922e3e 100644 --- a/assets/js/e4e6cea9.edb078a9.js +++ b/assets/js/e4e6cea9.d0fab417.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2863],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var a=n.createContext({}),u=function(e){var t=n.useContext(a),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},s=function(e){var t=u(e.components);return n.createElement(a.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,a=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),p=u(r),f=o,y=p["".concat(a,".").concat(f)]||p[f]||d[f]||i;return r?n.createElement(y,l(l({ref:t},s),{},{components:r})):n.createElement(y,l({ref:t},s))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,l=new Array(i);l[0]=f;var c={};for(var a in t)hasOwnProperty.call(t,a)&&(c[a]=t[a]);c.originalType=e,c[p]="string"==typeof e?e:o,l[1]=c;for(var u=2;u{r.r(t),r.d(t,{assets:()=>a,contentTitle:()=>l,default:()=>d,frontMatter:()=>i,metadata:()=>c,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const i={sidebar_position:3},l="\u7528\u6237\u65e5\u5fd7",c={unversionedId:"iotcloud/usercenter/user-log",id:"iotcloud/usercenter/user-log",title:"\u7528\u6237\u65e5\u5fd7",description:"\u672c\u6587\u4e3a\u60a8\u4ecb\u7ecd \u7528\u6237\u65e5\u5fd7 \u7684\u57fa\u672c\u6982\u5ff5\u3001\u4f7f\u7528\u6d41\u7a0b\u3001\u6700\u4f73\u5b9e\u8df5\u548c\u4f7f\u7528\u9650\u5236\u3002",source:"@site/docs/iotcloud/usercenter/user-log.md",sourceDirName:"iotcloud/usercenter",slug:"/iotcloud/usercenter/user-log",permalink:"/docs/iotcloud/usercenter/user-log",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"iotCloudSidebar",previous:{title:"\u6982\u8ff0",permalink:"/docs/iotcloud/usercenter/"},next:{title:"\u7528\u6237\u8bbe\u7f6e",permalink:"/docs/iotcloud/usercenter/user-settings"}},a={},u=[{value:"\u4ec0\u4e48\u662f\u7528\u6237\u65e5\u5fd7",id:"\u4ec0\u4e48\u662f\u7528\u6237\u65e5\u5fd7",level:3},{value:"\u4f7f\u7528\u6d41\u7a0b",id:"\u4f7f\u7528\u6d41\u7a0b",level:3},{value:"\u6700\u4f73\u5b9e\u8df5",id:"\u6700\u4f73\u5b9e\u8df5",level:3},{value:"\u4f7f\u7528\u9650\u5236",id:"\u4f7f\u7528\u9650\u5236",level:3}],s={toc:u},p="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(p,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u7528\u6237\u65e5\u5fd7"},"\u7528\u6237\u65e5\u5fd7"),(0,o.yg)("p",null,"\u672c\u6587\u4e3a\u60a8\u4ecb\u7ecd \u7528\u6237\u65e5\u5fd7 \u7684\u57fa\u672c\u6982\u5ff5\u3001\u4f7f\u7528\u6d41\u7a0b\u3001\u6700\u4f73\u5b9e\u8df5\u548c\u4f7f\u7528\u9650\u5236\u3002"),(0,o.yg)("h3",{id:"\u4ec0\u4e48\u662f\u7528\u6237\u65e5\u5fd7"},"\u4ec0\u4e48\u662f\u7528\u6237\u65e5\u5fd7"),(0,o.yg)("p",null,"\u7528\u6237\u65e5\u5fd7\u6307\u7684\u662f\u7528\u6237\u64cd\u4f5c\u7684\u5173\u952e\u4fe1\u606f\u8bb0\u5f55\u3002"),(0,o.yg)("h3",{id:"\u4f7f\u7528\u6d41\u7a0b"},"\u4f7f\u7528\u6d41\u7a0b"),(0,o.yg)("p",null,"GIF \u56fe"),(0,o.yg)("h3",{id:"\u6700\u4f73\u5b9e\u8df5"},"\u6700\u4f73\u5b9e\u8df5"),(0,o.yg)("p",null,"GIF \u56fe"),(0,o.yg)("h3",{id:"\u4f7f\u7528\u9650\u5236"},"\u4f7f\u7528\u9650\u5236"))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2863],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var a=n.createContext({}),u=function(e){var t=n.useContext(a),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},s=function(e){var t=u(e.components);return n.createElement(a.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,a=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),p=u(r),f=o,y=p["".concat(a,".").concat(f)]||p[f]||d[f]||i;return r?n.createElement(y,l(l({ref:t},s),{},{components:r})):n.createElement(y,l({ref:t},s))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,l=new Array(i);l[0]=f;var c={};for(var a in t)hasOwnProperty.call(t,a)&&(c[a]=t[a]);c.originalType=e,c[p]="string"==typeof e?e:o,l[1]=c;for(var u=2;u{r.r(t),r.d(t,{assets:()=>a,contentTitle:()=>l,default:()=>d,frontMatter:()=>i,metadata:()=>c,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const i={sidebar_position:3},l="\u7528\u6237\u65e5\u5fd7",c={unversionedId:"iotcloud/usercenter/user-log",id:"iotcloud/usercenter/user-log",title:"\u7528\u6237\u65e5\u5fd7",description:"\u672c\u6587\u4e3a\u60a8\u4ecb\u7ecd \u7528\u6237\u65e5\u5fd7 \u7684\u57fa\u672c\u6982\u5ff5\u3001\u4f7f\u7528\u6d41\u7a0b\u3001\u6700\u4f73\u5b9e\u8df5\u548c\u4f7f\u7528\u9650\u5236\u3002",source:"@site/docs/iotcloud/usercenter/user-log.md",sourceDirName:"iotcloud/usercenter",slug:"/iotcloud/usercenter/user-log",permalink:"/docs/iotcloud/usercenter/user-log",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"iotCloudSidebar",previous:{title:"\u6982\u8ff0",permalink:"/docs/iotcloud/usercenter/"},next:{title:"\u7528\u6237\u8bbe\u7f6e",permalink:"/docs/iotcloud/usercenter/user-settings"}},a={},u=[{value:"\u4ec0\u4e48\u662f\u7528\u6237\u65e5\u5fd7",id:"\u4ec0\u4e48\u662f\u7528\u6237\u65e5\u5fd7",level:3},{value:"\u4f7f\u7528\u6d41\u7a0b",id:"\u4f7f\u7528\u6d41\u7a0b",level:3},{value:"\u6700\u4f73\u5b9e\u8df5",id:"\u6700\u4f73\u5b9e\u8df5",level:3},{value:"\u4f7f\u7528\u9650\u5236",id:"\u4f7f\u7528\u9650\u5236",level:3}],s={toc:u},p="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(p,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u7528\u6237\u65e5\u5fd7"},"\u7528\u6237\u65e5\u5fd7"),(0,o.yg)("p",null,"\u672c\u6587\u4e3a\u60a8\u4ecb\u7ecd \u7528\u6237\u65e5\u5fd7 \u7684\u57fa\u672c\u6982\u5ff5\u3001\u4f7f\u7528\u6d41\u7a0b\u3001\u6700\u4f73\u5b9e\u8df5\u548c\u4f7f\u7528\u9650\u5236\u3002"),(0,o.yg)("h3",{id:"\u4ec0\u4e48\u662f\u7528\u6237\u65e5\u5fd7"},"\u4ec0\u4e48\u662f\u7528\u6237\u65e5\u5fd7"),(0,o.yg)("p",null,"\u7528\u6237\u65e5\u5fd7\u6307\u7684\u662f\u7528\u6237\u64cd\u4f5c\u7684\u5173\u952e\u4fe1\u606f\u8bb0\u5f55\u3002"),(0,o.yg)("h3",{id:"\u4f7f\u7528\u6d41\u7a0b"},"\u4f7f\u7528\u6d41\u7a0b"),(0,o.yg)("p",null,"GIF \u56fe"),(0,o.yg)("h3",{id:"\u6700\u4f73\u5b9e\u8df5"},"\u6700\u4f73\u5b9e\u8df5"),(0,o.yg)("p",null,"GIF \u56fe"),(0,o.yg)("h3",{id:"\u4f7f\u7528\u9650\u5236"},"\u4f7f\u7528\u9650\u5236"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e7da4cec.cd6a8ac9.js b/assets/js/e7da4cec.8a6e4f8e.js similarity index 98% rename from assets/js/e7da4cec.cd6a8ac9.js rename to assets/js/e7da4cec.8a6e4f8e.js index bc43a66d5..ad286bd93 100644 --- a/assets/js/e7da4cec.cd6a8ac9.js +++ b/assets/js/e7da4cec.8a6e4f8e.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9989],{5680:(e,r,t)=>{t.d(r,{xA:()=>u,yg:()=>f});var n=t(6540);function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function p(e){for(var r=1;r=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var c=n.createContext({}),l=function(e){var r=n.useContext(c),t=r;return e&&(t="function"==typeof e?e(r):p(p({},r),e)),t},u=function(e){var r=l(e.components);return n.createElement(c.Provider,{value:r},e.children)},s="mdxType",m={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},d=n.forwardRef((function(e,r){var t=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),s=l(t),d=a,f=s["".concat(c,".").concat(d)]||s[d]||m[d]||o;return t?n.createElement(f,p(p({ref:r},u),{},{components:t})):n.createElement(f,p({ref:r},u))}));function f(e,r){var t=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var o=t.length,p=new Array(o);p[0]=d;var i={};for(var c in r)hasOwnProperty.call(r,c)&&(i[c]=r[c]);i.originalType=e,i[s]="string"==typeof e?e:a,p[1]=i;for(var l=2;l{t.r(r),t.d(r,{assets:()=>c,contentTitle:()=>p,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>l});var n=t(8168),a=(t(6540),t(5680));const o={},p=void 0,i={unversionedId:"study/program/C/pragma",id:"study/program/C/pragma",title:"pragma",description:"pragma",source:"@site/docs/study/program/C/pragma.md",sourceDirName:"study/program/C",slug:"/study/program/C/pragma",permalink:"/docs/study/program/C/pragma",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"make",permalink:"/docs/study/program/C/make"},next:{title:"size_t-ptrdiff_t-intptr_t-uintptr_t",permalink:"/docs/study/program/C/size_t-ptrdiff_t-intptr_t-uintptr_t"}},c={},l=[{value:"#pragma",id:"pragma",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],u={toc:l},s="wrapper";function m(e){let{components:r,...t}=e;return(0,a.yg)(s,(0,n.A)({},u,t,{components:r,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"pragma"},"#pragma"),(0,a.yg)("p",null,"\u7f16\u8bd1\u5668\u6307\u4ee4"),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://blog.csdn.net/primeprime/article/details/105110827"},"#pragma \u7f16\u8bd1\u5668\u6307\u4ee4\u8be6\u89e3"))))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9989],{5680:(e,r,t)=>{t.d(r,{xA:()=>u,yg:()=>f});var n=t(6540);function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function p(e){for(var r=1;r=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var c=n.createContext({}),l=function(e){var r=n.useContext(c),t=r;return e&&(t="function"==typeof e?e(r):p(p({},r),e)),t},u=function(e){var r=l(e.components);return n.createElement(c.Provider,{value:r},e.children)},s="mdxType",m={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},d=n.forwardRef((function(e,r){var t=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),s=l(t),d=a,f=s["".concat(c,".").concat(d)]||s[d]||m[d]||o;return t?n.createElement(f,p(p({ref:r},u),{},{components:t})):n.createElement(f,p({ref:r},u))}));function f(e,r){var t=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var o=t.length,p=new Array(o);p[0]=d;var i={};for(var c in r)hasOwnProperty.call(r,c)&&(i[c]=r[c]);i.originalType=e,i[s]="string"==typeof e?e:a,p[1]=i;for(var l=2;l{t.r(r),t.d(r,{assets:()=>c,contentTitle:()=>p,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>l});var n=t(8168),a=(t(6540),t(5680));const o={},p=void 0,i={unversionedId:"study/program/C/pragma",id:"study/program/C/pragma",title:"pragma",description:"pragma",source:"@site/docs/study/program/C/pragma.md",sourceDirName:"study/program/C",slug:"/study/program/C/pragma",permalink:"/docs/study/program/C/pragma",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"make",permalink:"/docs/study/program/C/make"},next:{title:"size_t-ptrdiff_t-intptr_t-uintptr_t",permalink:"/docs/study/program/C/size_t-ptrdiff_t-intptr_t-uintptr_t"}},c={},l=[{value:"#pragma",id:"pragma",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],u={toc:l},s="wrapper";function m(e){let{components:r,...t}=e;return(0,a.yg)(s,(0,n.A)({},u,t,{components:r,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"pragma"},"#pragma"),(0,a.yg)("p",null,"\u7f16\u8bd1\u5668\u6307\u4ee4"),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://blog.csdn.net/primeprime/article/details/105110827"},"#pragma \u7f16\u8bd1\u5668\u6307\u4ee4\u8be6\u89e3"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e907057a.d053804a.js b/assets/js/e907057a.1b69b4d6.js similarity index 98% rename from assets/js/e907057a.d053804a.js rename to assets/js/e907057a.1b69b4d6.js index 6d720f525..2dfc30410 100644 --- a/assets/js/e907057a.d053804a.js +++ b/assets/js/e907057a.1b69b4d6.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2243],{5680:(e,t,n)=>{n.d(t,{xA:()=>s,yg:()=>g});var r=n(6540);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var i=r.createContext({}),p=function(e){var t=r.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},s=function(e){var t=p(e.components);return r.createElement(i.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),u=p(n),y=a,g=u["".concat(i,".").concat(y)]||u[y]||d[y]||o;return n?r.createElement(g,l(l({ref:t},s),{},{components:n})):r.createElement(g,l({ref:t},s))}));function g(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=y;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[u]="string"==typeof e?e:a,l[1]=c;for(var p=2;p{n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>c,toc:()=>p});var r=n(8168),a=(n(6540),n(5680));const o={},l=void 0,c={unversionedId:"study/devops/jar\u8fd0\u7ef4-\u76d1\u63a7",id:"study/devops/jar\u8fd0\u7ef4-\u76d1\u63a7",title:"jar\u8fd0\u7ef4-\u76d1\u63a7",description:"jstat",source:"@site/docs/study/devops/jar\u8fd0\u7ef4-\u76d1\u63a7.md",sourceDirName:"study/devops",slug:"/study/devops/jar\u8fd0\u7ef4-\u76d1\u63a7",permalink:"/docs/study/devops/jar\u8fd0\u7ef4-\u76d1\u63a7",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"centos-jdk17-app",permalink:"/docs/study/devops/centos-jdk17-app"},next:{title:"ssh",permalink:"/docs/study/devops/ssh"}},i={},p=[{value:"jstat",id:"jstat",level:3},{value:"about",id:"about",level:4},{value:"options",id:"options",level:4},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],s={toc:p},u="wrapper";function d(e){let{components:t,...n}=e;return(0,a.yg)(u,(0,r.A)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"jstat"},"jstat"),(0,a.yg)("h4",{id:"about"},"about"),(0,a.yg)("p",null,"jstat ","[Options]"," pid ","[interval][count]","\npid\uff0c\u5f53\u524d\u8fd0\u884c\u7684 java\u8fdb\u7a0b\u53f7 "),(0,a.yg)("p",null,"interval\uff0c\u95f4\u9694\u65f6\u95f4\uff0c\u5355\u4f4d\u4e3a\u79d2\u6216\u8005\u6beb\u79d2 "),(0,a.yg)("p",null,"count\uff0c\u6253\u5370\u6b21\u6570\uff0c\u5982\u679c\u7f3a\u7701\u5219\u6253\u5370\u65e0\u6570\u6b21"),(0,a.yg)("h4",{id:"options"},"options"),(0,a.yg)("p",null,"l class (\u7c7b\u52a0\u8f7d\u5668)\nl compiler (JIT)\nl gc (GC\u5806\u72b6\u6001)\nl gccapacity (\u5404\u533a\u5927\u5c0f)\nl gccause (\u6700\u8fd1\u4e00\u6b21GC\u7edf\u8ba1\u548c\u539f\u56e0)\nl gcnew (\u65b0\u533a\u7edf\u8ba1)\nl gcnewcapacity (\u65b0\u533a\u5927\u5c0f)\nl gcold (\u8001\u533a\u7edf\u8ba1)\nl gcoldcapacity (\u8001\u533a\u5927\u5c0f)\nl gcpermcapacity (\u6c38\u4e45\u533a\u5927\u5c0f)\nl gcutil (GC\u7edf\u8ba1\u6c47\u603b)\nl printcompilation (HotSpot\u7f16\u8bd1\u7edf\u8ba1)"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"#\njstat -gcutil 22573 5000\n")),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"https://blog.csdn.net/zhaozheng7758/article/details/8623549"},"jstat\u547d\u4ee4\u8be6\u89e3"))))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2243],{5680:(e,t,n)=>{n.d(t,{xA:()=>s,yg:()=>g});var r=n(6540);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var i=r.createContext({}),p=function(e){var t=r.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},s=function(e){var t=p(e.components);return r.createElement(i.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),u=p(n),y=a,g=u["".concat(i,".").concat(y)]||u[y]||d[y]||o;return n?r.createElement(g,l(l({ref:t},s),{},{components:n})):r.createElement(g,l({ref:t},s))}));function g(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=y;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[u]="string"==typeof e?e:a,l[1]=c;for(var p=2;p{n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>c,toc:()=>p});var r=n(8168),a=(n(6540),n(5680));const o={},l=void 0,c={unversionedId:"study/devops/jar\u8fd0\u7ef4-\u76d1\u63a7",id:"study/devops/jar\u8fd0\u7ef4-\u76d1\u63a7",title:"jar\u8fd0\u7ef4-\u76d1\u63a7",description:"jstat",source:"@site/docs/study/devops/jar\u8fd0\u7ef4-\u76d1\u63a7.md",sourceDirName:"study/devops",slug:"/study/devops/jar\u8fd0\u7ef4-\u76d1\u63a7",permalink:"/docs/study/devops/jar\u8fd0\u7ef4-\u76d1\u63a7",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"centos-jdk17-app",permalink:"/docs/study/devops/centos-jdk17-app"},next:{title:"ssh",permalink:"/docs/study/devops/ssh"}},i={},p=[{value:"jstat",id:"jstat",level:3},{value:"about",id:"about",level:4},{value:"options",id:"options",level:4},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],s={toc:p},u="wrapper";function d(e){let{components:t,...n}=e;return(0,a.yg)(u,(0,r.A)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"jstat"},"jstat"),(0,a.yg)("h4",{id:"about"},"about"),(0,a.yg)("p",null,"jstat ","[Options]"," pid ","[interval][count]","\npid\uff0c\u5f53\u524d\u8fd0\u884c\u7684 java\u8fdb\u7a0b\u53f7 "),(0,a.yg)("p",null,"interval\uff0c\u95f4\u9694\u65f6\u95f4\uff0c\u5355\u4f4d\u4e3a\u79d2\u6216\u8005\u6beb\u79d2 "),(0,a.yg)("p",null,"count\uff0c\u6253\u5370\u6b21\u6570\uff0c\u5982\u679c\u7f3a\u7701\u5219\u6253\u5370\u65e0\u6570\u6b21"),(0,a.yg)("h4",{id:"options"},"options"),(0,a.yg)("p",null,"l class (\u7c7b\u52a0\u8f7d\u5668)\nl compiler (JIT)\nl gc (GC\u5806\u72b6\u6001)\nl gccapacity (\u5404\u533a\u5927\u5c0f)\nl gccause (\u6700\u8fd1\u4e00\u6b21GC\u7edf\u8ba1\u548c\u539f\u56e0)\nl gcnew (\u65b0\u533a\u7edf\u8ba1)\nl gcnewcapacity (\u65b0\u533a\u5927\u5c0f)\nl gcold (\u8001\u533a\u7edf\u8ba1)\nl gcoldcapacity (\u8001\u533a\u5927\u5c0f)\nl gcpermcapacity (\u6c38\u4e45\u533a\u5927\u5c0f)\nl gcutil (GC\u7edf\u8ba1\u6c47\u603b)\nl printcompilation (HotSpot\u7f16\u8bd1\u7edf\u8ba1)"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"#\njstat -gcutil 22573 5000\n")),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"https://blog.csdn.net/zhaozheng7758/article/details/8623549"},"jstat\u547d\u4ee4\u8be6\u89e3"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e92b6e83.770b6a05.js b/assets/js/e92b6e83.c95b7a26.js similarity index 99% rename from assets/js/e92b6e83.770b6a05.js rename to assets/js/e92b6e83.c95b7a26.js index 0d4e46fc5..82d70e200 100644 --- a/assets/js/e92b6e83.770b6a05.js +++ b/assets/js/e92b6e83.c95b7a26.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[817],{5680:(e,t,n)=>{n.d(t,{xA:()=>p,yg:()=>f});var r=n(6540);function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function c(e){for(var t=1;t=0||(l[n]=e[n]);return l}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}var s=r.createContext({}),i=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):c(c({},t),e)),n},p=function(e){var t=i(e.components);return r.createElement(s.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,l=e.mdxType,a=e.originalType,s=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),d=i(n),y=l,f=d["".concat(s,".").concat(y)]||d[y]||u[y]||a;return n?r.createElement(f,c(c({ref:t},p),{},{components:n})):r.createElement(f,c({ref:t},p))}));function f(e,t){var n=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var a=n.length,c=new Array(a);c[0]=y;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[d]="string"==typeof e?e:l,c[1]=o;for(var i=2;i{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>u,frontMatter:()=>a,metadata:()=>o,toc:()=>i});var r=n(8168),l=(n(6540),n(5680));const a={},c=void 0,o={unversionedId:"study/db/NoSQL/Etcd",id:"study/db/NoSQL/Etcd",title:"Etcd",description:"ETCD\u662fCoreOs\u516c\u53f8\u53d1\u5e03\u7684\u4e00\u4e2a\u5206\u5e03\u5f0f\u7684\u3001\u9ad8\u53ef\u7528\u7684\u3001key-value\u5b58\u50a8\u7684\u6570\u636e\u5e93\u3002\u57fa\u4e8eGo\u8bed\u8a00\u5b9e\u73b0\uff0ck8s\u4e2d\u4e5f\u4f7f\u7528\u4e86ETCD\u4f5c\u4e3a\u6570\u636e\u5e93\u3002\u4e3b\u8981\u7528\u4e8e\u5171\u4eab\u914d\u7f6e\u548c\u670d\u52a1\u53d1\u73b0\u3002\u76f8\u5bf9\u4e8ezookeeper\u91c7\u7528\u7684Paxos\uff0cETCD\u91c7\u7528\u7684\u662fRaft\u7b97\u6cd5\uff0c\u8be5\u7b97\u6cd5\u5177\u5907\u7684\u6027\u80fd\u66f4\u4f73\u3001\u6570\u636e\u4e00\u81f4\u6027\u5f3a\u7b49\u4f18\u70b9\u3002",source:"@site/docs/study/db/NoSQL/Etcd.md",sourceDirName:"study/db/NoSQL",slug:"/study/db/NoSQL/Etcd",permalink:"/docs/study/db/NoSQL/Etcd",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Cassandra",permalink:"/docs/study/db/NoSQL/Cassandra"},next:{title:"Hadoop",permalink:"/docs/study/db/NoSQL/Hadoop"}},s={},i=[{value:"etcdctl",id:"etcdctl",level:3},{value:"\u6570\u636e\u76f8\u5173\u547d\u4ee4",id:"\u6570\u636e\u76f8\u5173\u547d\u4ee4",level:4},{value:"\u96c6\u7fa4\u7ef4\u62a4\u76f8\u5173\u547d\u4ee4",id:"\u96c6\u7fa4\u7ef4\u62a4\u76f8\u5173\u547d\u4ee4",level:4},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],p={toc:i},d="wrapper";function u(e){let{components:t,...n}=e;return(0,l.yg)(d,(0,r.A)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,l.yg)("p",null,"ETCD\u662fCoreOs\u516c\u53f8\u53d1\u5e03\u7684\u4e00\u4e2a\u5206\u5e03\u5f0f\u7684\u3001\u9ad8\u53ef\u7528\u7684\u3001key-value\u5b58\u50a8\u7684\u6570\u636e\u5e93\u3002\u57fa\u4e8eGo\u8bed\u8a00\u5b9e\u73b0\uff0ck8s\u4e2d\u4e5f\u4f7f\u7528\u4e86ETCD\u4f5c\u4e3a\u6570\u636e\u5e93\u3002\u4e3b\u8981\u7528\u4e8e\u5171\u4eab\u914d\u7f6e\u548c\u670d\u52a1\u53d1\u73b0\u3002\u76f8\u5bf9\u4e8ezookeeper\u91c7\u7528\u7684Paxos\uff0cETCD\u91c7\u7528\u7684\u662fRaft\u7b97\u6cd5\uff0c\u8be5\u7b97\u6cd5\u5177\u5907\u7684\u6027\u80fd\u66f4\u4f73\u3001\u6570\u636e\u4e00\u81f4\u6027\u5f3a\u7b49\u4f18\u70b9\u3002"),(0,l.yg)("p",null,"ETCD\u5b58\u50a8\u6570\u636e\u91cf\u9ed8\u8ba4\u4e3a2GB\uff0c\u6700\u5927\u53ef\u4ee5\u8bbe\u7f6e\u4e3a8GB\u3002\u9488\u5bf9ETCD\u5b58\u50a8\u6570\u636e\u91cf\u8f83\u5c0f\u7684\u7279\u6027\uff0c\u6545\u5efa\u8baeETCD\u6700\u597d\u4f5c\u4e3a\u70ed\u70b9\u6570\u636e\u5b58\u50a8\u7684\u6570\u636e\u5e93\u4f7f\u7528\uff0c\u800c\u4e0d\u80fd\u4f5c\u4e3a\u5e94\u7528\u6570\u636e\u6301\u4e45\u5316\u7684\u6570\u636e\u5e93\u4f7f\u7528\u3002\u5e38\u89c1\u7684\u4f7f\u7528\u573a\u666f\u5982\u4e0b\uff1a"),(0,l.yg)("p",null,"\u573a\u666f1\uff1a\u670d\u52a1\u53d1\u73b0\uff08Service Discovery\uff09"),(0,l.yg)("p",null,"\u573a\u666f2\uff1a\u6d88\u606f\u53d1\u5e03\u4e0e\u8ba2\u9605"),(0,l.yg)("p",null,"\u573a\u666f3\uff1a\u8d1f\u8f7d\u5747\u8861"),(0,l.yg)("p",null,"\u573a\u666f4\uff1a\u5206\u5e03\u5f0f\u901a\u77e5\u4e0e\u534f\u8c03"),(0,l.yg)("p",null,"\u573a\u666f5\uff1a\u5206\u5e03\u5f0f\u9501\u3001\u5206\u5e03\u5f0f\u961f\u5217"),(0,l.yg)("p",null,"\u573a\u666f6\uff1a\u96c6\u7fa4\u76d1\u63a7\u4e0eLeader\u7ade\u9009\u3002"),(0,l.yg)("p",null,"\u6bd4\u5982\uff1a\u67d0\u4e2a\u7528\u6237\u9700\u8981\u4e00\u4e2a\u5206\u5e03\u5f0f\u5b58\u50a8\u4ed3\u5e93\u6765\u5b58\u50a8\u914d\u7f6e\u4fe1\u606f\uff0c\u5e76\u4e14\u5bf9\u4e8e\u8bfb\u5199\u901f\u5ea6\u3001\u9ad8\u53ef\u7528\u3001\u90e8\u7f72\u4fbf\u6377\u7b49\u65b9\u9762\u90fd\u6709\u8981\u6c42\uff0c\u5219\u8be5\u573a\u666f\u53ef\u4ee5\u4f18\u5148\u8003\u8651ETCD\u6570\u636e\u5e93\u3002\u5f53\u524d\u4f7f\u5e7f\u6cdb\u7684kubernetes\uff0c\u4ea6\u4f7f\u7528ETCD\u6765\u5b58\u50a8docker\u96c6\u7fa4\u7684\u914d\u7f6e\u4fe1\u606f\u3002"),(0,l.yg)("p",null,(0,l.yg)("a",{parentName:"p",href:"https://etcd.io/docs/v3.5/"},"\u5b98\u65b9\u6587\u6863")),(0,l.yg)("h3",{id:"etcdctl"},"etcdctl"),(0,l.yg)("p",null,"etcdctl is a command line client for etcd."),(0,l.yg)("p",null,(0,l.yg)("a",{parentName:"p",href:"https://github.com/etcd-io/etcd/tree/main/etcdctl"},"\u5b98\u65b9\u6587\u6863")),(0,l.yg)("h4",{id:"\u6570\u636e\u76f8\u5173\u547d\u4ee4"},"\u6570\u636e\u76f8\u5173\u547d\u4ee4"),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-shell"},"# help \n./etcdctl --help\n# \u8fd4\u56de\u6240\u6709 \u5305\u62ecvalue\n./etcdctl get --from-key '' -w fields\n# \u8fd4\u56de\u6240\u6709 \u53ea\u6709key\n./etcdctl get --from-key '' --keys-only -w fields\n# \u6839\u636ekey\u7684\u524d\u7f00\u67e5\u8be2\n./etcdctl get --prefix /apisix/upstreams/451739158021407449 -w fields\n# \u5217\u5f62\u5f0f\u8fd4\u56de\n./etcdctl get --prefix /apisix/upstreams -w fields\n# \u53ea\u8fd4\u56dekey\n./etcdctl get --prefix /apisix/routes -w simple --keys-only\n./etcdctl get --insecure-skip-tls-verify=true --insecure-transport=false --prefix /apisix/routes -w simple --keys-only\n# \u8fd4\u56de\u6307\u5b9akey\n./etcdctl get /apisix/routes/488415811682173648\n# \u66f4\u65b0\u6307\u5b9akey\u7684value\n./etcdctl put /mykey \"my new value\" --if-exists\n")),(0,l.yg)("h4",{id:"\u96c6\u7fa4\u7ef4\u62a4\u76f8\u5173\u547d\u4ee4"},"\u96c6\u7fa4\u7ef4\u62a4\u76f8\u5173\u547d\u4ee4"),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-shell"},"# \u96c6\u7fa4\u5185\u6240\u6709\u8282\u70b9\n./etcdctl member list -w table\n# \u96c6\u7fa4\u5185\u6240\u6709\u8282\u70b9\u72b6\u6001\n./etcdctl endpoint --cluster health\n# \u96c6\u7fa4\u5185\u6240\u6709\u8282\u70b9\u72b6\u6001\n./etcdctl -w table endpoint --cluster status\n# \u62a5\u8b66\u5217\u8868\n./etcdctl alarm list\n")),(0,l.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/638288999"},"\u77e5\u4e4e-ETCD\u6982\u8ff0"))))}u.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[817],{5680:(e,t,n)=>{n.d(t,{xA:()=>p,yg:()=>f});var r=n(6540);function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function c(e){for(var t=1;t=0||(l[n]=e[n]);return l}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}var s=r.createContext({}),i=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):c(c({},t),e)),n},p=function(e){var t=i(e.components);return r.createElement(s.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,l=e.mdxType,a=e.originalType,s=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),d=i(n),y=l,f=d["".concat(s,".").concat(y)]||d[y]||u[y]||a;return n?r.createElement(f,c(c({ref:t},p),{},{components:n})):r.createElement(f,c({ref:t},p))}));function f(e,t){var n=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var a=n.length,c=new Array(a);c[0]=y;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[d]="string"==typeof e?e:l,c[1]=o;for(var i=2;i{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>u,frontMatter:()=>a,metadata:()=>o,toc:()=>i});var r=n(8168),l=(n(6540),n(5680));const a={},c=void 0,o={unversionedId:"study/db/NoSQL/Etcd",id:"study/db/NoSQL/Etcd",title:"Etcd",description:"ETCD\u662fCoreOs\u516c\u53f8\u53d1\u5e03\u7684\u4e00\u4e2a\u5206\u5e03\u5f0f\u7684\u3001\u9ad8\u53ef\u7528\u7684\u3001key-value\u5b58\u50a8\u7684\u6570\u636e\u5e93\u3002\u57fa\u4e8eGo\u8bed\u8a00\u5b9e\u73b0\uff0ck8s\u4e2d\u4e5f\u4f7f\u7528\u4e86ETCD\u4f5c\u4e3a\u6570\u636e\u5e93\u3002\u4e3b\u8981\u7528\u4e8e\u5171\u4eab\u914d\u7f6e\u548c\u670d\u52a1\u53d1\u73b0\u3002\u76f8\u5bf9\u4e8ezookeeper\u91c7\u7528\u7684Paxos\uff0cETCD\u91c7\u7528\u7684\u662fRaft\u7b97\u6cd5\uff0c\u8be5\u7b97\u6cd5\u5177\u5907\u7684\u6027\u80fd\u66f4\u4f73\u3001\u6570\u636e\u4e00\u81f4\u6027\u5f3a\u7b49\u4f18\u70b9\u3002",source:"@site/docs/study/db/NoSQL/Etcd.md",sourceDirName:"study/db/NoSQL",slug:"/study/db/NoSQL/Etcd",permalink:"/docs/study/db/NoSQL/Etcd",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Cassandra",permalink:"/docs/study/db/NoSQL/Cassandra"},next:{title:"Hadoop",permalink:"/docs/study/db/NoSQL/Hadoop"}},s={},i=[{value:"etcdctl",id:"etcdctl",level:3},{value:"\u6570\u636e\u76f8\u5173\u547d\u4ee4",id:"\u6570\u636e\u76f8\u5173\u547d\u4ee4",level:4},{value:"\u96c6\u7fa4\u7ef4\u62a4\u76f8\u5173\u547d\u4ee4",id:"\u96c6\u7fa4\u7ef4\u62a4\u76f8\u5173\u547d\u4ee4",level:4},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],p={toc:i},d="wrapper";function u(e){let{components:t,...n}=e;return(0,l.yg)(d,(0,r.A)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,l.yg)("p",null,"ETCD\u662fCoreOs\u516c\u53f8\u53d1\u5e03\u7684\u4e00\u4e2a\u5206\u5e03\u5f0f\u7684\u3001\u9ad8\u53ef\u7528\u7684\u3001key-value\u5b58\u50a8\u7684\u6570\u636e\u5e93\u3002\u57fa\u4e8eGo\u8bed\u8a00\u5b9e\u73b0\uff0ck8s\u4e2d\u4e5f\u4f7f\u7528\u4e86ETCD\u4f5c\u4e3a\u6570\u636e\u5e93\u3002\u4e3b\u8981\u7528\u4e8e\u5171\u4eab\u914d\u7f6e\u548c\u670d\u52a1\u53d1\u73b0\u3002\u76f8\u5bf9\u4e8ezookeeper\u91c7\u7528\u7684Paxos\uff0cETCD\u91c7\u7528\u7684\u662fRaft\u7b97\u6cd5\uff0c\u8be5\u7b97\u6cd5\u5177\u5907\u7684\u6027\u80fd\u66f4\u4f73\u3001\u6570\u636e\u4e00\u81f4\u6027\u5f3a\u7b49\u4f18\u70b9\u3002"),(0,l.yg)("p",null,"ETCD\u5b58\u50a8\u6570\u636e\u91cf\u9ed8\u8ba4\u4e3a2GB\uff0c\u6700\u5927\u53ef\u4ee5\u8bbe\u7f6e\u4e3a8GB\u3002\u9488\u5bf9ETCD\u5b58\u50a8\u6570\u636e\u91cf\u8f83\u5c0f\u7684\u7279\u6027\uff0c\u6545\u5efa\u8baeETCD\u6700\u597d\u4f5c\u4e3a\u70ed\u70b9\u6570\u636e\u5b58\u50a8\u7684\u6570\u636e\u5e93\u4f7f\u7528\uff0c\u800c\u4e0d\u80fd\u4f5c\u4e3a\u5e94\u7528\u6570\u636e\u6301\u4e45\u5316\u7684\u6570\u636e\u5e93\u4f7f\u7528\u3002\u5e38\u89c1\u7684\u4f7f\u7528\u573a\u666f\u5982\u4e0b\uff1a"),(0,l.yg)("p",null,"\u573a\u666f1\uff1a\u670d\u52a1\u53d1\u73b0\uff08Service Discovery\uff09"),(0,l.yg)("p",null,"\u573a\u666f2\uff1a\u6d88\u606f\u53d1\u5e03\u4e0e\u8ba2\u9605"),(0,l.yg)("p",null,"\u573a\u666f3\uff1a\u8d1f\u8f7d\u5747\u8861"),(0,l.yg)("p",null,"\u573a\u666f4\uff1a\u5206\u5e03\u5f0f\u901a\u77e5\u4e0e\u534f\u8c03"),(0,l.yg)("p",null,"\u573a\u666f5\uff1a\u5206\u5e03\u5f0f\u9501\u3001\u5206\u5e03\u5f0f\u961f\u5217"),(0,l.yg)("p",null,"\u573a\u666f6\uff1a\u96c6\u7fa4\u76d1\u63a7\u4e0eLeader\u7ade\u9009\u3002"),(0,l.yg)("p",null,"\u6bd4\u5982\uff1a\u67d0\u4e2a\u7528\u6237\u9700\u8981\u4e00\u4e2a\u5206\u5e03\u5f0f\u5b58\u50a8\u4ed3\u5e93\u6765\u5b58\u50a8\u914d\u7f6e\u4fe1\u606f\uff0c\u5e76\u4e14\u5bf9\u4e8e\u8bfb\u5199\u901f\u5ea6\u3001\u9ad8\u53ef\u7528\u3001\u90e8\u7f72\u4fbf\u6377\u7b49\u65b9\u9762\u90fd\u6709\u8981\u6c42\uff0c\u5219\u8be5\u573a\u666f\u53ef\u4ee5\u4f18\u5148\u8003\u8651ETCD\u6570\u636e\u5e93\u3002\u5f53\u524d\u4f7f\u5e7f\u6cdb\u7684kubernetes\uff0c\u4ea6\u4f7f\u7528ETCD\u6765\u5b58\u50a8docker\u96c6\u7fa4\u7684\u914d\u7f6e\u4fe1\u606f\u3002"),(0,l.yg)("p",null,(0,l.yg)("a",{parentName:"p",href:"https://etcd.io/docs/v3.5/"},"\u5b98\u65b9\u6587\u6863")),(0,l.yg)("h3",{id:"etcdctl"},"etcdctl"),(0,l.yg)("p",null,"etcdctl is a command line client for etcd."),(0,l.yg)("p",null,(0,l.yg)("a",{parentName:"p",href:"https://github.com/etcd-io/etcd/tree/main/etcdctl"},"\u5b98\u65b9\u6587\u6863")),(0,l.yg)("h4",{id:"\u6570\u636e\u76f8\u5173\u547d\u4ee4"},"\u6570\u636e\u76f8\u5173\u547d\u4ee4"),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-shell"},"# help \n./etcdctl --help\n# \u8fd4\u56de\u6240\u6709 \u5305\u62ecvalue\n./etcdctl get --from-key '' -w fields\n# \u8fd4\u56de\u6240\u6709 \u53ea\u6709key\n./etcdctl get --from-key '' --keys-only -w fields\n# \u6839\u636ekey\u7684\u524d\u7f00\u67e5\u8be2\n./etcdctl get --prefix /apisix/upstreams/451739158021407449 -w fields\n# \u5217\u5f62\u5f0f\u8fd4\u56de\n./etcdctl get --prefix /apisix/upstreams -w fields\n# \u53ea\u8fd4\u56dekey\n./etcdctl get --prefix /apisix/routes -w simple --keys-only\n./etcdctl get --insecure-skip-tls-verify=true --insecure-transport=false --prefix /apisix/routes -w simple --keys-only\n# \u8fd4\u56de\u6307\u5b9akey\n./etcdctl get /apisix/routes/488415811682173648\n# \u66f4\u65b0\u6307\u5b9akey\u7684value\n./etcdctl put /mykey \"my new value\" --if-exists\n")),(0,l.yg)("h4",{id:"\u96c6\u7fa4\u7ef4\u62a4\u76f8\u5173\u547d\u4ee4"},"\u96c6\u7fa4\u7ef4\u62a4\u76f8\u5173\u547d\u4ee4"),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-shell"},"# \u96c6\u7fa4\u5185\u6240\u6709\u8282\u70b9\n./etcdctl member list -w table\n# \u96c6\u7fa4\u5185\u6240\u6709\u8282\u70b9\u72b6\u6001\n./etcdctl endpoint --cluster health\n# \u96c6\u7fa4\u5185\u6240\u6709\u8282\u70b9\u72b6\u6001\n./etcdctl -w table endpoint --cluster status\n# \u62a5\u8b66\u5217\u8868\n./etcdctl alarm list\n")),(0,l.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/638288999"},"\u77e5\u4e4e-ETCD\u6982\u8ff0"))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e983cebe.0e5178b9.js b/assets/js/e983cebe.0557611e.js similarity index 99% rename from assets/js/e983cebe.0e5178b9.js rename to assets/js/e983cebe.0557611e.js index 108e5e943..e620a5685 100644 --- a/assets/js/e983cebe.0e5178b9.js +++ b/assets/js/e983cebe.0557611e.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9665],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var i=n.createContext({}),u=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(i.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),s=u(r),y=o,f=s["".concat(i,".").concat(y)]||s[y]||d[y]||a;return r?n.createElement(f,c(c({ref:t},p),{},{components:r})):n.createElement(f,c({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=y;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l[s]="string"==typeof e?e:o,c[1]=l;for(var u=2;u{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>l,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,l={unversionedId:"study/think/\u6982\u5ff5\u6a21\u578b/Actor Model",id:"study/think/\u6982\u5ff5\u6a21\u578b/Actor Model",title:"Actor Model",description:"Actor\u6a21\u578b\u662f\u4e00\u4e2a\u6982\u5ff5\u6a21\u578b\uff0c\u7528\u4e8e\u5904\u7406\u5e76\u53d1\u8ba1\u7b97\u3002\u5b83\u5b9a\u4e49\u4e86\u4e00\u7cfb\u5217\u7cfb\u7edf\u7ec4\u4ef6\u5e94\u8be5\u5982\u4f55\u52a8\u4f5c\u548c\u4ea4\u4e92\u7684\u901a\u7528\u89c4\u5219\uff0c\u6700\u8457\u540d\u7684\u4f7f\u7528\u8fd9\u5957\u89c4\u5219\u7684\u7f16\u7a0b\u8bed\u8a00\u662fErlang\u3002",source:"@site/docs/study/think/\u6982\u5ff5\u6a21\u578b/Actor Model.md",sourceDirName:"study/think/\u6982\u5ff5\u6a21\u578b",slug:"/study/think/\u6982\u5ff5\u6a21\u578b/Actor Model",permalink:"/docs/study/think/\u6982\u5ff5\u6a21\u578b/Actor Model",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u9ad8\u6027\u80fd\u67b6\u6784\u6a21\u5f0f",permalink:"/docs/study/think/\u67b6\u6784/\u9ad8\u6027\u80fd\u67b6\u6784\u6a21\u5f0f"},next:{title:"Proactor",permalink:"/docs/study/think/\u6982\u5ff5\u6a21\u578b/Proactor"}},i={},u=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],p={toc:u},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"Actor\u6a21\u578b\u662f\u4e00\u4e2a\u6982\u5ff5\u6a21\u578b\uff0c\u7528\u4e8e\u5904\u7406\u5e76\u53d1\u8ba1\u7b97\u3002\u5b83\u5b9a\u4e49\u4e86\u4e00\u7cfb\u5217\u7cfb\u7edf\u7ec4\u4ef6\u5e94\u8be5\u5982\u4f55\u52a8\u4f5c\u548c\u4ea4\u4e92\u7684\u901a\u7528\u89c4\u5219\uff0c\u6700\u8457\u540d\u7684\u4f7f\u7528\u8fd9\u5957\u89c4\u5219\u7684\u7f16\u7a0b\u8bed\u8a00\u662fErlang\u3002"),(0,o.yg)("p",null,"\u5728\u8ba1\u7b97\u673a\u79d1\u5b66\u4e2d\uff0c\u53c2\u4e0e\u8005\u6a21\u5f0f\uff08\u82f1\u8bed\uff1aActor model\uff09\u662f\u4e00\u79cd\u5e76\u884c\u8fd0\u7b97\u4e0a\u7684\u6a21\u578b\u3002\u201c\u53c2\u4e0e\u8005\u201d\u662f\u4e00\u79cd\u7a0b\u5e8f\u4e0a\u7684\u62bd\u8c61\u6982\u5ff5\uff0c\u88ab\u89c6\u4e3a\u5e76\u884c\u8fd0\u7b97\u7684\u57fa\u672c\u5355\u5143\uff1a\u5f53\u4e00\u4e2a\u53c2\u4e0e\u8005\u63a5\u6536\u5230\u4e00\u5219\u8baf\u606f\uff0c\u5b83\u53ef\u4ee5\u505a\u51fa\u4e00\u4e9b\u51b3\u7b56\u3001\u5efa\u7acb\u66f4\u591a\u7684\u53c2\u4e0e\u8005\u3001\u4f20\u9001\u66f4\u591a\u7684\u8baf\u606f\u3001\u51b3\u5b9a\u8981\u5982\u4f55\u56de\u7b54\u63a5\u4e0b\u6765\u7684\u8baf\u606f\u3002"),(0,o.yg)("p",null,"\u53d1\u9001\u8005\u4e0e\u5df2\u7ecf\u53d1\u9001\u7684\u6d88\u606f\u89e3\u8026\uff0c\u662f\u53c2\u4e0e\u8005\u6a21\u578b\u7684\u6839\u672c\u4f18\u52bf\u3002\u8fd9\u5141\u8bb8\u8fdb\u884c\u5f02\u6b65\u901a\u4fe1\uff0c\u540c\u65f6\u6ee1\u8db3\u6d88\u606f\u4f20\u9012\u7684\u63a7\u5236\u7ed3\u6784\u3002"),(0,o.yg)("p",null,"\u6d88\u606f\u63a5\u6536\u8005\u662f\u901a\u8fc7\u5730\u5740\u533a\u5206\u7684\uff0c\u6709\u65f6\u4e5f\u88ab\u79f0\u4f5c\u201c\u90ae\u4ef6\u5730\u5740\u201d\u3002\u56e0\u6b64\u53c2\u4e0e\u8005\u53ea\u80fd\u548c\u5b83\u62e5\u6709\u5730\u5740\u7684\u53c2\u4e0e\u8005\u901a\u4fe1\u3002\u5b83\u53ef\u4ee5\u901a\u8fc7\u63a5\u53d7\u5230\u7684\u4fe1\u606f\u83b7\u53d6\u5730\u5740\uff0c\u6216\u8005\u83b7\u53d6\u5b83\u521b\u5efa\u7684\u53c2\u4e0e\u8005\u7684\u5730\u5740\u3002"),(0,o.yg)("p",null,"\u53c2\u4e0e\u8005\u6a21\u578b\u7684\u7279\u5f81\u662f\uff0c\u53c2\u4e0e\u8005\u5185\u90e8\u6216\u4e4b\u95f4\u8fdb\u884c\u5e76\u884c\u8ba1\u7b97\uff0c\u53c2\u4e0e\u8005\u53ef\u4ee5\u52a8\u6001\u521b\u5efa\uff0c\u53c2\u4e0e\u8005\u5730\u5740\u5305\u542b\u5728\u6d88\u606f\u4e2d\uff0c\u4ea4\u4e92\u53ea\u6709\u901a\u8fc7\u76f4\u63a5\u7684\u5f02\u6b65\u6d88\u606f\u901a\u4fe1\uff0c\u4e0d\u9650\u5236\u6d88\u606f\u5230\u8fbe\u7684\u987a\u5e8f\u3002"),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://blog.csdn.net/weixin_42644249/article/details/114035587"},"java actor_\u5341\u5206\u949f\u7406\u89e3Actor\u6a21\u5f0f"))))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9665],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var i=n.createContext({}),u=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(i.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),s=u(r),y=o,f=s["".concat(i,".").concat(y)]||s[y]||d[y]||a;return r?n.createElement(f,c(c({ref:t},p),{},{components:r})):n.createElement(f,c({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=y;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l[s]="string"==typeof e?e:o,c[1]=l;for(var u=2;u{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>l,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,l={unversionedId:"study/think/\u6982\u5ff5\u6a21\u578b/Actor Model",id:"study/think/\u6982\u5ff5\u6a21\u578b/Actor Model",title:"Actor Model",description:"Actor\u6a21\u578b\u662f\u4e00\u4e2a\u6982\u5ff5\u6a21\u578b\uff0c\u7528\u4e8e\u5904\u7406\u5e76\u53d1\u8ba1\u7b97\u3002\u5b83\u5b9a\u4e49\u4e86\u4e00\u7cfb\u5217\u7cfb\u7edf\u7ec4\u4ef6\u5e94\u8be5\u5982\u4f55\u52a8\u4f5c\u548c\u4ea4\u4e92\u7684\u901a\u7528\u89c4\u5219\uff0c\u6700\u8457\u540d\u7684\u4f7f\u7528\u8fd9\u5957\u89c4\u5219\u7684\u7f16\u7a0b\u8bed\u8a00\u662fErlang\u3002",source:"@site/docs/study/think/\u6982\u5ff5\u6a21\u578b/Actor Model.md",sourceDirName:"study/think/\u6982\u5ff5\u6a21\u578b",slug:"/study/think/\u6982\u5ff5\u6a21\u578b/Actor Model",permalink:"/docs/study/think/\u6982\u5ff5\u6a21\u578b/Actor Model",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u9ad8\u6027\u80fd\u67b6\u6784\u6a21\u5f0f",permalink:"/docs/study/think/\u67b6\u6784/\u9ad8\u6027\u80fd\u67b6\u6784\u6a21\u5f0f"},next:{title:"Proactor",permalink:"/docs/study/think/\u6982\u5ff5\u6a21\u578b/Proactor"}},i={},u=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],p={toc:u},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"Actor\u6a21\u578b\u662f\u4e00\u4e2a\u6982\u5ff5\u6a21\u578b\uff0c\u7528\u4e8e\u5904\u7406\u5e76\u53d1\u8ba1\u7b97\u3002\u5b83\u5b9a\u4e49\u4e86\u4e00\u7cfb\u5217\u7cfb\u7edf\u7ec4\u4ef6\u5e94\u8be5\u5982\u4f55\u52a8\u4f5c\u548c\u4ea4\u4e92\u7684\u901a\u7528\u89c4\u5219\uff0c\u6700\u8457\u540d\u7684\u4f7f\u7528\u8fd9\u5957\u89c4\u5219\u7684\u7f16\u7a0b\u8bed\u8a00\u662fErlang\u3002"),(0,o.yg)("p",null,"\u5728\u8ba1\u7b97\u673a\u79d1\u5b66\u4e2d\uff0c\u53c2\u4e0e\u8005\u6a21\u5f0f\uff08\u82f1\u8bed\uff1aActor model\uff09\u662f\u4e00\u79cd\u5e76\u884c\u8fd0\u7b97\u4e0a\u7684\u6a21\u578b\u3002\u201c\u53c2\u4e0e\u8005\u201d\u662f\u4e00\u79cd\u7a0b\u5e8f\u4e0a\u7684\u62bd\u8c61\u6982\u5ff5\uff0c\u88ab\u89c6\u4e3a\u5e76\u884c\u8fd0\u7b97\u7684\u57fa\u672c\u5355\u5143\uff1a\u5f53\u4e00\u4e2a\u53c2\u4e0e\u8005\u63a5\u6536\u5230\u4e00\u5219\u8baf\u606f\uff0c\u5b83\u53ef\u4ee5\u505a\u51fa\u4e00\u4e9b\u51b3\u7b56\u3001\u5efa\u7acb\u66f4\u591a\u7684\u53c2\u4e0e\u8005\u3001\u4f20\u9001\u66f4\u591a\u7684\u8baf\u606f\u3001\u51b3\u5b9a\u8981\u5982\u4f55\u56de\u7b54\u63a5\u4e0b\u6765\u7684\u8baf\u606f\u3002"),(0,o.yg)("p",null,"\u53d1\u9001\u8005\u4e0e\u5df2\u7ecf\u53d1\u9001\u7684\u6d88\u606f\u89e3\u8026\uff0c\u662f\u53c2\u4e0e\u8005\u6a21\u578b\u7684\u6839\u672c\u4f18\u52bf\u3002\u8fd9\u5141\u8bb8\u8fdb\u884c\u5f02\u6b65\u901a\u4fe1\uff0c\u540c\u65f6\u6ee1\u8db3\u6d88\u606f\u4f20\u9012\u7684\u63a7\u5236\u7ed3\u6784\u3002"),(0,o.yg)("p",null,"\u6d88\u606f\u63a5\u6536\u8005\u662f\u901a\u8fc7\u5730\u5740\u533a\u5206\u7684\uff0c\u6709\u65f6\u4e5f\u88ab\u79f0\u4f5c\u201c\u90ae\u4ef6\u5730\u5740\u201d\u3002\u56e0\u6b64\u53c2\u4e0e\u8005\u53ea\u80fd\u548c\u5b83\u62e5\u6709\u5730\u5740\u7684\u53c2\u4e0e\u8005\u901a\u4fe1\u3002\u5b83\u53ef\u4ee5\u901a\u8fc7\u63a5\u53d7\u5230\u7684\u4fe1\u606f\u83b7\u53d6\u5730\u5740\uff0c\u6216\u8005\u83b7\u53d6\u5b83\u521b\u5efa\u7684\u53c2\u4e0e\u8005\u7684\u5730\u5740\u3002"),(0,o.yg)("p",null,"\u53c2\u4e0e\u8005\u6a21\u578b\u7684\u7279\u5f81\u662f\uff0c\u53c2\u4e0e\u8005\u5185\u90e8\u6216\u4e4b\u95f4\u8fdb\u884c\u5e76\u884c\u8ba1\u7b97\uff0c\u53c2\u4e0e\u8005\u53ef\u4ee5\u52a8\u6001\u521b\u5efa\uff0c\u53c2\u4e0e\u8005\u5730\u5740\u5305\u542b\u5728\u6d88\u606f\u4e2d\uff0c\u4ea4\u4e92\u53ea\u6709\u901a\u8fc7\u76f4\u63a5\u7684\u5f02\u6b65\u6d88\u606f\u901a\u4fe1\uff0c\u4e0d\u9650\u5236\u6d88\u606f\u5230\u8fbe\u7684\u987a\u5e8f\u3002"),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://blog.csdn.net/weixin_42644249/article/details/114035587"},"java actor_\u5341\u5206\u949f\u7406\u89e3Actor\u6a21\u5f0f"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/eb3908da.2438faa5.js b/assets/js/eb3908da.56b46bc2.js similarity index 99% rename from assets/js/eb3908da.2438faa5.js rename to assets/js/eb3908da.56b46bc2.js index 284ce2a8f..99d718e3c 100644 --- a/assets/js/eb3908da.2438faa5.js +++ b/assets/js/eb3908da.56b46bc2.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[403],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>d});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),l=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},s=function(e){var t=l(e.components);return n.createElement(p.Provider,{value:t},e.children)},u="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),u=l(r),f=o,d=u["".concat(p,".").concat(f)]||u[f]||y[f]||a;return r?n.createElement(d,c(c({ref:t},s),{},{components:r})):n.createElement(d,c({ref:t},s))}));function d(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=f;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[u]="string"==typeof e?e:o,c[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>c,default:()=>y,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,i={unversionedId:"study/encryption/\u6570\u5b57\u8bc1\u4e66",id:"study/encryption/\u6570\u5b57\u8bc1\u4e66",title:"\u6570\u5b57\u8bc1\u4e66",description:"\u6570\u5b57\u8bc1\u4e66\u5c31\u662f\u4e92\u8054\u7f51\u901a\u8baf\u4e2d\u6807\u5fd7\u901a\u8baf\u5404\u65b9\u8eab\u4efd\u4fe1\u606f\u7684\u4e00\u4e32\u6570\u5b57\uff0c\u63d0\u4f9b\u4e86\u4e00\u79cd\u5728Internet\u4e0a\u9a8c\u8bc1\u901a\u4fe1\u5b9e\u4f53\u8eab\u4efd\u7684\u65b9\u5f0f\uff0c\u6570\u5b57\u8bc1\u4e66\u4e0d\u662f\u6570\u5b57\u8eab\u4efd\u8bc1\uff0c\u800c\u662f\u8eab\u4efd\u8ba4\u8bc1\u673a\u6784\u76d6\u5728\u6570\u5b57\u8eab\u4efd\u8bc1\u4e0a\u7684\u4e00\u4e2a\u7ae0\u6216\u5370\uff08\u6216\u8005\u8bf4\u52a0\u5728\u6570\u5b57\u8eab\u4efd\u8bc1\u4e0a\u7684\u4e00\u4e2a\u7b7e\u540d\uff09\u3002\u5b83\u662f\u7531\u6743\u5a01\u673a\u6784\u2014\u2014CA\u673a\u6784\uff0c\u53c8\u79f0\u4e3a\u8bc1\u4e66\u6388\u6743\uff08Certificate Authority\uff09\u4e2d\u5fc3\u53d1\u884c\u7684\uff0c\u4eba\u4eec\u53ef\u4ee5\u5728\u7f51\u4e0a\u7528\u5b83\u6765\u8bc6\u522b\u5bf9\u65b9\u7684\u8eab\u4efd\u3002",source:"@site/docs/study/encryption/\u6570\u5b57\u8bc1\u4e66.md",sourceDirName:"study/encryption",slug:"/study/encryption/\u6570\u5b57\u8bc1\u4e66",permalink:"/docs/study/encryption/\u6570\u5b57\u8bc1\u4e66",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3",permalink:"/docs/study/encryption/\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3"},next:{title:"\u6d88\u606f\u6458\u8981\u7b97\u6cd5\u603b\u7ed3",permalink:"/docs/study/encryption/\u6d88\u606f\u6458\u8981\u7b97\u6cd5\u603b\u7ed3"}},p={},l=[{value:"pfx\u8bc1\u4e66\u8f6cpem\u548ckey",id:"pfx\u8bc1\u4e66\u8f6cpem\u548ckey",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],s={toc:l},u="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"\u6570\u5b57\u8bc1\u4e66\u5c31\u662f\u4e92\u8054\u7f51\u901a\u8baf\u4e2d\u6807\u5fd7\u901a\u8baf\u5404\u65b9\u8eab\u4efd\u4fe1\u606f\u7684\u4e00\u4e32\u6570\u5b57\uff0c\u63d0\u4f9b\u4e86\u4e00\u79cd\u5728Internet\u4e0a\u9a8c\u8bc1\u901a\u4fe1\u5b9e\u4f53\u8eab\u4efd\u7684\u65b9\u5f0f\uff0c\u6570\u5b57\u8bc1\u4e66\u4e0d\u662f\u6570\u5b57\u8eab\u4efd\u8bc1\uff0c\u800c\u662f\u8eab\u4efd\u8ba4\u8bc1\u673a\u6784\u76d6\u5728\u6570\u5b57\u8eab\u4efd\u8bc1\u4e0a\u7684\u4e00\u4e2a\u7ae0\u6216\u5370\uff08\u6216\u8005\u8bf4\u52a0\u5728\u6570\u5b57\u8eab\u4efd\u8bc1\u4e0a\u7684\u4e00\u4e2a\u7b7e\u540d\uff09\u3002\u5b83\u662f\u7531\u6743\u5a01\u673a\u6784\u2014\u2014CA\u673a\u6784\uff0c\u53c8\u79f0\u4e3a\u8bc1\u4e66\u6388\u6743\uff08Certificate Authority\uff09\u4e2d\u5fc3\u53d1\u884c\u7684\uff0c\u4eba\u4eec\u53ef\u4ee5\u5728\u7f51\u4e0a\u7528\u5b83\u6765\u8bc6\u522b\u5bf9\u65b9\u7684\u8eab\u4efd\u3002"),(0,o.yg)("h3",{id:"pfx\u8bc1\u4e66\u8f6cpem\u548ckey"},"pfx\u8bc1\u4e66\u8f6cpem\u548ckey"),(0,o.yg)("p",null,"\u8981\u5c06PFX\u683c\u5f0f\u7684\u8bc1\u4e66\u8f6c\u6362\u4e3aPEM\u683c\u5f0f\uff0c\u5e76\u4e14\u63d0\u53d6\u51fa\u79c1\u94a5\uff0c\u53ef\u4ee5\u4f7f\u7528OpenSSL\u5de5\u5177\u3002"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-shell"},"# \u6267\u884c\u4ee5\u4e0b\u547d\u4ee4\u5c06PFX\u8bc1\u4e66\u8f6c\u6362\u4e3aPEM\u683c\u5f0f\uff1a\nopenssl pkcs12 -in your_certificate.pfx -nodes -out certificate.pem\n# \u6267\u884c\u4ee5\u4e0b\u547d\u4ee4\u4ecePEM\u6587\u4ef6\u4e2d\u63d0\u53d6\u79c1\u94a5\uff1a\nopenssl rsa -in certificate.pem -out private_key.key\n")),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://www.cnblogs.com/xq1314/p/7987216.html"},"\u535a\u5ba2\u56ed-\u5e38\u89c1\u6570\u5b57\u8bc1\u4e66\u7c7b\u578b")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://www.cnblogs.com/xq1314/p/8080598.html"},"\u535a\u5ba2\u56ed-openssl\u5b9e\u73b0\u516c\u79c1\u94a5\u8bc1\u4e66\u751f\u6210\u53ca\u8f6c\u6362"))))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[403],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>d});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),l=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},s=function(e){var t=l(e.components);return n.createElement(p.Provider,{value:t},e.children)},u="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),u=l(r),f=o,d=u["".concat(p,".").concat(f)]||u[f]||y[f]||a;return r?n.createElement(d,c(c({ref:t},s),{},{components:r})):n.createElement(d,c({ref:t},s))}));function d(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=f;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[u]="string"==typeof e?e:o,c[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>c,default:()=>y,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,i={unversionedId:"study/encryption/\u6570\u5b57\u8bc1\u4e66",id:"study/encryption/\u6570\u5b57\u8bc1\u4e66",title:"\u6570\u5b57\u8bc1\u4e66",description:"\u6570\u5b57\u8bc1\u4e66\u5c31\u662f\u4e92\u8054\u7f51\u901a\u8baf\u4e2d\u6807\u5fd7\u901a\u8baf\u5404\u65b9\u8eab\u4efd\u4fe1\u606f\u7684\u4e00\u4e32\u6570\u5b57\uff0c\u63d0\u4f9b\u4e86\u4e00\u79cd\u5728Internet\u4e0a\u9a8c\u8bc1\u901a\u4fe1\u5b9e\u4f53\u8eab\u4efd\u7684\u65b9\u5f0f\uff0c\u6570\u5b57\u8bc1\u4e66\u4e0d\u662f\u6570\u5b57\u8eab\u4efd\u8bc1\uff0c\u800c\u662f\u8eab\u4efd\u8ba4\u8bc1\u673a\u6784\u76d6\u5728\u6570\u5b57\u8eab\u4efd\u8bc1\u4e0a\u7684\u4e00\u4e2a\u7ae0\u6216\u5370\uff08\u6216\u8005\u8bf4\u52a0\u5728\u6570\u5b57\u8eab\u4efd\u8bc1\u4e0a\u7684\u4e00\u4e2a\u7b7e\u540d\uff09\u3002\u5b83\u662f\u7531\u6743\u5a01\u673a\u6784\u2014\u2014CA\u673a\u6784\uff0c\u53c8\u79f0\u4e3a\u8bc1\u4e66\u6388\u6743\uff08Certificate Authority\uff09\u4e2d\u5fc3\u53d1\u884c\u7684\uff0c\u4eba\u4eec\u53ef\u4ee5\u5728\u7f51\u4e0a\u7528\u5b83\u6765\u8bc6\u522b\u5bf9\u65b9\u7684\u8eab\u4efd\u3002",source:"@site/docs/study/encryption/\u6570\u5b57\u8bc1\u4e66.md",sourceDirName:"study/encryption",slug:"/study/encryption/\u6570\u5b57\u8bc1\u4e66",permalink:"/docs/study/encryption/\u6570\u5b57\u8bc1\u4e66",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3",permalink:"/docs/study/encryption/\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3"},next:{title:"\u6d88\u606f\u6458\u8981\u7b97\u6cd5\u603b\u7ed3",permalink:"/docs/study/encryption/\u6d88\u606f\u6458\u8981\u7b97\u6cd5\u603b\u7ed3"}},p={},l=[{value:"pfx\u8bc1\u4e66\u8f6cpem\u548ckey",id:"pfx\u8bc1\u4e66\u8f6cpem\u548ckey",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],s={toc:l},u="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"\u6570\u5b57\u8bc1\u4e66\u5c31\u662f\u4e92\u8054\u7f51\u901a\u8baf\u4e2d\u6807\u5fd7\u901a\u8baf\u5404\u65b9\u8eab\u4efd\u4fe1\u606f\u7684\u4e00\u4e32\u6570\u5b57\uff0c\u63d0\u4f9b\u4e86\u4e00\u79cd\u5728Internet\u4e0a\u9a8c\u8bc1\u901a\u4fe1\u5b9e\u4f53\u8eab\u4efd\u7684\u65b9\u5f0f\uff0c\u6570\u5b57\u8bc1\u4e66\u4e0d\u662f\u6570\u5b57\u8eab\u4efd\u8bc1\uff0c\u800c\u662f\u8eab\u4efd\u8ba4\u8bc1\u673a\u6784\u76d6\u5728\u6570\u5b57\u8eab\u4efd\u8bc1\u4e0a\u7684\u4e00\u4e2a\u7ae0\u6216\u5370\uff08\u6216\u8005\u8bf4\u52a0\u5728\u6570\u5b57\u8eab\u4efd\u8bc1\u4e0a\u7684\u4e00\u4e2a\u7b7e\u540d\uff09\u3002\u5b83\u662f\u7531\u6743\u5a01\u673a\u6784\u2014\u2014CA\u673a\u6784\uff0c\u53c8\u79f0\u4e3a\u8bc1\u4e66\u6388\u6743\uff08Certificate Authority\uff09\u4e2d\u5fc3\u53d1\u884c\u7684\uff0c\u4eba\u4eec\u53ef\u4ee5\u5728\u7f51\u4e0a\u7528\u5b83\u6765\u8bc6\u522b\u5bf9\u65b9\u7684\u8eab\u4efd\u3002"),(0,o.yg)("h3",{id:"pfx\u8bc1\u4e66\u8f6cpem\u548ckey"},"pfx\u8bc1\u4e66\u8f6cpem\u548ckey"),(0,o.yg)("p",null,"\u8981\u5c06PFX\u683c\u5f0f\u7684\u8bc1\u4e66\u8f6c\u6362\u4e3aPEM\u683c\u5f0f\uff0c\u5e76\u4e14\u63d0\u53d6\u51fa\u79c1\u94a5\uff0c\u53ef\u4ee5\u4f7f\u7528OpenSSL\u5de5\u5177\u3002"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-shell"},"# \u6267\u884c\u4ee5\u4e0b\u547d\u4ee4\u5c06PFX\u8bc1\u4e66\u8f6c\u6362\u4e3aPEM\u683c\u5f0f\uff1a\nopenssl pkcs12 -in your_certificate.pfx -nodes -out certificate.pem\n# \u6267\u884c\u4ee5\u4e0b\u547d\u4ee4\u4ecePEM\u6587\u4ef6\u4e2d\u63d0\u53d6\u79c1\u94a5\uff1a\nopenssl rsa -in certificate.pem -out private_key.key\n")),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://www.cnblogs.com/xq1314/p/7987216.html"},"\u535a\u5ba2\u56ed-\u5e38\u89c1\u6570\u5b57\u8bc1\u4e66\u7c7b\u578b")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://www.cnblogs.com/xq1314/p/8080598.html"},"\u535a\u5ba2\u56ed-openssl\u5b9e\u73b0\u516c\u79c1\u94a5\u8bc1\u4e66\u751f\u6210\u53ca\u8f6c\u6362"))))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/eb846286.c2ba564b.js b/assets/js/eb846286.093871f7.js similarity index 98% rename from assets/js/eb846286.c2ba564b.js rename to assets/js/eb846286.093871f7.js index ef2d2e35e..39aea0c79 100644 --- a/assets/js/eb846286.c2ba564b.js +++ b/assets/js/eb846286.093871f7.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7368],{5680:(e,t,n)=>{n.d(t,{xA:()=>l,yg:()=>f});var r=n(6540);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function c(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var i=r.createContext({}),p=function(e){var t=r.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):c(c({},t),e)),n},l=function(e){var t=p(e.components);return r.createElement(i.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),u=p(n),y=o,f=u["".concat(i,".").concat(y)]||u[y]||d[y]||a;return n?r.createElement(f,c(c({ref:t},l),{},{components:n})):r.createElement(f,c({ref:t},l))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,c=new Array(a);c[0]=y;var s={};for(var i in t)hasOwnProperty.call(t,i)&&(s[i]=t[i]);s.originalType=e,s[u]="string"==typeof e?e:o,c[1]=s;for(var p=2;p{n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>s,toc:()=>p});var r=n(8168),o=(n(6540),n(5680));const a={},c="centos-nginx",s={unversionedId:"study/devops/centos-gninx-app",id:"study/devops/centos-gninx-app",title:"centos-nginx",description:"",source:"@site/docs/study/devops/centos-gninx-app.md",sourceDirName:"study/devops",slug:"/study/devops/centos-gninx-app",permalink:"/docs/study/devops/centos-gninx-app",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"ansible",permalink:"/docs/study/devops/ansible"},next:{title:"centos-jdk17-app",permalink:"/docs/study/devops/centos-jdk17-app"}},i={},p=[],l={toc:p},u="wrapper";function d(e){let{components:t,...n}=e;return(0,o.yg)(u,(0,r.A)({},l,n,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"centos-nginx"},"centos-nginx"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-shell"},"\nmkdir -p /root/iot-cloud-frontend/html\n\nyum install nginx\nsystemctl start nginx\n# \u914d\u7f6e\u6587\u4ef6\u76ee\u5f55 /etc/nginx\n# \u9ed8\u8ba4 root /usr/share/nginx/html;\n# \u4fee\u6539\u6210 root /root/iot-cloud-frontend/html;\nnginx -s reload\n\n# \u5982\u679c\u62a5\u9519403 \u8bf4\u660e\u542f\u52a8nginx\u7684\u7528\u6237\u548c\u6587\u4ef6\u4e0d\u4e00\u81f4 \u9700\u8981\u4fee\u6539\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7368],{5680:(e,t,n)=>{n.d(t,{xA:()=>l,yg:()=>f});var r=n(6540);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function c(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var i=r.createContext({}),p=function(e){var t=r.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):c(c({},t),e)),n},l=function(e){var t=p(e.components);return r.createElement(i.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),u=p(n),y=o,f=u["".concat(i,".").concat(y)]||u[y]||d[y]||a;return n?r.createElement(f,c(c({ref:t},l),{},{components:n})):r.createElement(f,c({ref:t},l))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,c=new Array(a);c[0]=y;var s={};for(var i in t)hasOwnProperty.call(t,i)&&(s[i]=t[i]);s.originalType=e,s[u]="string"==typeof e?e:o,c[1]=s;for(var p=2;p{n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>s,toc:()=>p});var r=n(8168),o=(n(6540),n(5680));const a={},c="centos-nginx",s={unversionedId:"study/devops/centos-gninx-app",id:"study/devops/centos-gninx-app",title:"centos-nginx",description:"",source:"@site/docs/study/devops/centos-gninx-app.md",sourceDirName:"study/devops",slug:"/study/devops/centos-gninx-app",permalink:"/docs/study/devops/centos-gninx-app",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"ansible",permalink:"/docs/study/devops/ansible"},next:{title:"centos-jdk17-app",permalink:"/docs/study/devops/centos-jdk17-app"}},i={},p=[],l={toc:p},u="wrapper";function d(e){let{components:t,...n}=e;return(0,o.yg)(u,(0,r.A)({},l,n,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"centos-nginx"},"centos-nginx"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-shell"},"\nmkdir -p /root/iot-cloud-frontend/html\n\nyum install nginx\nsystemctl start nginx\n# \u914d\u7f6e\u6587\u4ef6\u76ee\u5f55 /etc/nginx\n# \u9ed8\u8ba4 root /usr/share/nginx/html;\n# \u4fee\u6539\u6210 root /root/iot-cloud-frontend/html;\nnginx -s reload\n\n# \u5982\u679c\u62a5\u9519403 \u8bf4\u660e\u542f\u52a8nginx\u7684\u7528\u6237\u548c\u6587\u4ef6\u4e0d\u4e00\u81f4 \u9700\u8981\u4fee\u6539\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ecff2ea2.dff7464e.js b/assets/js/ecff2ea2.4aa923f3.js similarity index 98% rename from assets/js/ecff2ea2.dff7464e.js rename to assets/js/ecff2ea2.4aa923f3.js index 0b570d0b5..172fd228b 100644 --- a/assets/js/ecff2ea2.dff7464e.js +++ b/assets/js/ecff2ea2.4aa923f3.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2389],{5680:(e,n,t)=>{t.d(n,{xA:()=>p,yg:()=>f});var r=t(6540);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function l(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var u=r.createContext({}),c=function(e){var n=r.useContext(u),t=n;return e&&(t="function"==typeof e?e(n):l(l({},n),e)),t},p=function(e){var n=c(e.components);return r.createElement(u.Provider,{value:n},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},y=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,i=e.originalType,u=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),s=c(t),y=a,f=s["".concat(u,".").concat(y)]||s[y]||d[y]||i;return t?r.createElement(f,l(l({ref:n},p),{},{components:t})):r.createElement(f,l({ref:n},p))}));function f(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var i=t.length,l=new Array(i);l[0]=y;var o={};for(var u in n)hasOwnProperty.call(n,u)&&(o[u]=n[u]);o.originalType=e,o[s]="string"==typeof e?e:a,l[1]=o;for(var c=2;c{t.r(n),t.d(n,{assets:()=>u,contentTitle:()=>l,default:()=>d,frontMatter:()=>i,metadata:()=>o,toc:()=>c});var r=t(8168),a=(t(6540),t(5680));const i={sidebar_position:1},l="\u6982\u8ff0",o={unversionedId:"xuanxing/fe/index",id:"xuanxing/fe/index",title:"\u6982\u8ff0",description:"\u524d\u7aef\u5927\u6982\u5305\u542b\u4ee5\u4e0b\u51e0\u4e2a\u65b9\u9762\uff1a",source:"@site/docs/xuanxing/fe/index.md",sourceDirName:"xuanxing/fe",slug:"/xuanxing/fe/",permalink:"/docs/xuanxing/fe/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"xuanxingSidebar",previous:{title:"\u7efc\u8ff0",permalink:"/docs/xuanxing/"},next:{title:"\u5b98\u7f51",permalink:"/docs/xuanxing/fe/\u5b98\u7f51"}},u={},c=[{value:"\u5b98\u7f51",id:"\u5b98\u7f51",level:3},{value:"\u7528\u6237\u7aef\u3001\u7ba1\u7406\u7aef",id:"\u7528\u6237\u7aef\u7ba1\u7406\u7aef",level:3},{value:"\u79fb\u52a8\u7aef",id:"\u79fb\u52a8\u7aef",level:3},{value:"\u7ec4\u6001\u7f16\u8f91\u5668",id:"\u7ec4\u6001\u7f16\u8f91\u5668",level:3},{value:"\u5927\u5c4f\u7f16\u8f91\u5668",id:"\u5927\u5c4f\u7f16\u8f91\u5668",level:3}],p={toc:c},s="wrapper";function d(e){let{components:n,...t}=e;return(0,a.yg)(s,(0,r.A)({},p,t,{components:n,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,a.yg)("p",null,"\u524d\u7aef\u5927\u6982\u5305\u542b\u4ee5\u4e0b\u51e0\u4e2a\u65b9\u9762\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u5b98\u7f51"),(0,a.yg)("li",{parentName:"ul"},"\u7528\u6237\u7aef\u3010PC WEB\u3011"),(0,a.yg)("li",{parentName:"ul"},"\u7ba1\u7406\u7aef\u3010PC WEB\u3011"),(0,a.yg)("li",{parentName:"ul"},"\u79fb\u52a8\u7aef\u3010\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\u3001APP\u3001Mobile WEB\u3011"),(0,a.yg)("li",{parentName:"ul"},"\u7ec4\u6001\u7f16\u8f91\u5668\u3010PC WEB\u7f16\u8f91\u53ca\u8fd0\u884c\u3011\u3010Mobile WEB\u8fd0\u884c\u3011"),(0,a.yg)("li",{parentName:"ul"},"\u5927\u5c4f\u7f16\u8f91\u5668\u3010PC WEB\u7f16\u8f91\u53ca\u8fd0\u884c\u3011")),(0,a.yg)("h3",{id:"\u5b98\u7f51"},"\u5b98\u7f51"),(0,a.yg)("p",null,"\u5b98\u7f51\u6bd4\u8f83\u504f\u7eaf\u5c55\u793a\uff0c\u5bf9SEO\u6709\u8981\u6c42\uff0c\u5bf9CMS\u6709\u8981\u6c42\uff0c\u5bf9\u90e8\u5206\u8fd0\u8425\u6709\u9700\u6c42\uff1b"),(0,a.yg)("h3",{id:"\u7528\u6237\u7aef\u7ba1\u7406\u7aef"},"\u7528\u6237\u7aef\u3001\u7ba1\u7406\u7aef"),(0,a.yg)("p",null,"\u5728\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u4e0a\uff0c\u7528\u6237\u7aef\u548c\u7ba1\u7406\u7aef\u90fd\u662f\u504f\u4e2d\u540e\u53f0\u7684\u7ba1\u7406\u7cfb\u7edf\uff0c\u6240\u4ee5\u4ed6\u4eec\u4e24\u4e2a\u524d\u7aef\u7684\u6280\u672f\u9009\u578b\u4e0a\u5e94\u8be5\u662f\u7edf\u4e00\u7684\uff1b"),(0,a.yg)("h3",{id:"\u79fb\u52a8\u7aef"},"\u79fb\u52a8\u7aef"),(0,a.yg)("p",null,"\u5c0f\u7a0b\u5e8f\u7684\u8bdd\uff0c\u53ea\u8003\u8651\u5fae\u4fe1\u5e94\u8be5\u5c31\u53ef\u4ee5\u4e86\u3002\u56fd\u5185\u7684\u8bdd\uff0c\u53ef\u4ee5\u53ea\u8003\u8651\u5c0f\u7a0b\u5e8f\uff0cAPP\u548cMobile WEB\u53ef\u4ee5\u4e0d\u7528\u8003\u8651\uff1b"),(0,a.yg)("h3",{id:"\u7ec4\u6001\u7f16\u8f91\u5668"},"\u7ec4\u6001\u7f16\u8f91\u5668"),(0,a.yg)("p",null,"WEB\u7ec4\u6001\u5176\u5b9e\u662f\u5de5\u4e1a\u7ec4\u6001\u8f6f\u4ef6\u642c\u5230\u4e86\u4e91\u5e73\u53f0\u4e0a\uff0c\u6240\u4ee5\u7ec4\u6001\u7f16\u8f91\u5668\u5176\u5b9e\u504f\u5de5\u827a\u6d41\u7a0b\uff0c\u867d\u7136\u4ed6\u548c\u5927\u5c4f\u7f16\u8f91\u5668\u90fd\u662f\u6258\u62c9\u62fd\u7684\u53ef\u89c6\u5316\u8bbe\u8ba1\u65b9\u5f0f\uff0c\u4f46\u662f\u8fd8\u662f\u6709\u5f88\u5927\u7684\u533a\u522b\u7684\u3002"),(0,a.yg)("h3",{id:"\u5927\u5c4f\u7f16\u8f91\u5668"},"\u5927\u5c4f\u7f16\u8f91\u5668"),(0,a.yg)("p",null,"\u5728\u6570\u636e\u5c55\u793a\u65b9\u9762\uff0c\u5927\u5c4f\u7f16\u8f91\u5668\u53ef\u4ee5\u6258\u62c9\u62fd\u7684\u65b9\u5f0f\u6765\u8bbe\u8ba1\uff1b"))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2389],{5680:(e,n,t)=>{t.d(n,{xA:()=>p,yg:()=>f});var r=t(6540);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function l(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var u=r.createContext({}),c=function(e){var n=r.useContext(u),t=n;return e&&(t="function"==typeof e?e(n):l(l({},n),e)),t},p=function(e){var n=c(e.components);return r.createElement(u.Provider,{value:n},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},y=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,i=e.originalType,u=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),s=c(t),y=a,f=s["".concat(u,".").concat(y)]||s[y]||d[y]||i;return t?r.createElement(f,l(l({ref:n},p),{},{components:t})):r.createElement(f,l({ref:n},p))}));function f(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var i=t.length,l=new Array(i);l[0]=y;var o={};for(var u in n)hasOwnProperty.call(n,u)&&(o[u]=n[u]);o.originalType=e,o[s]="string"==typeof e?e:a,l[1]=o;for(var c=2;c{t.r(n),t.d(n,{assets:()=>u,contentTitle:()=>l,default:()=>d,frontMatter:()=>i,metadata:()=>o,toc:()=>c});var r=t(8168),a=(t(6540),t(5680));const i={sidebar_position:1},l="\u6982\u8ff0",o={unversionedId:"xuanxing/fe/index",id:"xuanxing/fe/index",title:"\u6982\u8ff0",description:"\u524d\u7aef\u5927\u6982\u5305\u542b\u4ee5\u4e0b\u51e0\u4e2a\u65b9\u9762\uff1a",source:"@site/docs/xuanxing/fe/index.md",sourceDirName:"xuanxing/fe",slug:"/xuanxing/fe/",permalink:"/docs/xuanxing/fe/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"xuanxingSidebar",previous:{title:"\u7efc\u8ff0",permalink:"/docs/xuanxing/"},next:{title:"\u5b98\u7f51",permalink:"/docs/xuanxing/fe/\u5b98\u7f51"}},u={},c=[{value:"\u5b98\u7f51",id:"\u5b98\u7f51",level:3},{value:"\u7528\u6237\u7aef\u3001\u7ba1\u7406\u7aef",id:"\u7528\u6237\u7aef\u7ba1\u7406\u7aef",level:3},{value:"\u79fb\u52a8\u7aef",id:"\u79fb\u52a8\u7aef",level:3},{value:"\u7ec4\u6001\u7f16\u8f91\u5668",id:"\u7ec4\u6001\u7f16\u8f91\u5668",level:3},{value:"\u5927\u5c4f\u7f16\u8f91\u5668",id:"\u5927\u5c4f\u7f16\u8f91\u5668",level:3}],p={toc:c},s="wrapper";function d(e){let{components:n,...t}=e;return(0,a.yg)(s,(0,r.A)({},p,t,{components:n,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,a.yg)("p",null,"\u524d\u7aef\u5927\u6982\u5305\u542b\u4ee5\u4e0b\u51e0\u4e2a\u65b9\u9762\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u5b98\u7f51"),(0,a.yg)("li",{parentName:"ul"},"\u7528\u6237\u7aef\u3010PC WEB\u3011"),(0,a.yg)("li",{parentName:"ul"},"\u7ba1\u7406\u7aef\u3010PC WEB\u3011"),(0,a.yg)("li",{parentName:"ul"},"\u79fb\u52a8\u7aef\u3010\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\u3001APP\u3001Mobile WEB\u3011"),(0,a.yg)("li",{parentName:"ul"},"\u7ec4\u6001\u7f16\u8f91\u5668\u3010PC WEB\u7f16\u8f91\u53ca\u8fd0\u884c\u3011\u3010Mobile WEB\u8fd0\u884c\u3011"),(0,a.yg)("li",{parentName:"ul"},"\u5927\u5c4f\u7f16\u8f91\u5668\u3010PC WEB\u7f16\u8f91\u53ca\u8fd0\u884c\u3011")),(0,a.yg)("h3",{id:"\u5b98\u7f51"},"\u5b98\u7f51"),(0,a.yg)("p",null,"\u5b98\u7f51\u6bd4\u8f83\u504f\u7eaf\u5c55\u793a\uff0c\u5bf9SEO\u6709\u8981\u6c42\uff0c\u5bf9CMS\u6709\u8981\u6c42\uff0c\u5bf9\u90e8\u5206\u8fd0\u8425\u6709\u9700\u6c42\uff1b"),(0,a.yg)("h3",{id:"\u7528\u6237\u7aef\u7ba1\u7406\u7aef"},"\u7528\u6237\u7aef\u3001\u7ba1\u7406\u7aef"),(0,a.yg)("p",null,"\u5728\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u4e0a\uff0c\u7528\u6237\u7aef\u548c\u7ba1\u7406\u7aef\u90fd\u662f\u504f\u4e2d\u540e\u53f0\u7684\u7ba1\u7406\u7cfb\u7edf\uff0c\u6240\u4ee5\u4ed6\u4eec\u4e24\u4e2a\u524d\u7aef\u7684\u6280\u672f\u9009\u578b\u4e0a\u5e94\u8be5\u662f\u7edf\u4e00\u7684\uff1b"),(0,a.yg)("h3",{id:"\u79fb\u52a8\u7aef"},"\u79fb\u52a8\u7aef"),(0,a.yg)("p",null,"\u5c0f\u7a0b\u5e8f\u7684\u8bdd\uff0c\u53ea\u8003\u8651\u5fae\u4fe1\u5e94\u8be5\u5c31\u53ef\u4ee5\u4e86\u3002\u56fd\u5185\u7684\u8bdd\uff0c\u53ef\u4ee5\u53ea\u8003\u8651\u5c0f\u7a0b\u5e8f\uff0cAPP\u548cMobile WEB\u53ef\u4ee5\u4e0d\u7528\u8003\u8651\uff1b"),(0,a.yg)("h3",{id:"\u7ec4\u6001\u7f16\u8f91\u5668"},"\u7ec4\u6001\u7f16\u8f91\u5668"),(0,a.yg)("p",null,"WEB\u7ec4\u6001\u5176\u5b9e\u662f\u5de5\u4e1a\u7ec4\u6001\u8f6f\u4ef6\u642c\u5230\u4e86\u4e91\u5e73\u53f0\u4e0a\uff0c\u6240\u4ee5\u7ec4\u6001\u7f16\u8f91\u5668\u5176\u5b9e\u504f\u5de5\u827a\u6d41\u7a0b\uff0c\u867d\u7136\u4ed6\u548c\u5927\u5c4f\u7f16\u8f91\u5668\u90fd\u662f\u6258\u62c9\u62fd\u7684\u53ef\u89c6\u5316\u8bbe\u8ba1\u65b9\u5f0f\uff0c\u4f46\u662f\u8fd8\u662f\u6709\u5f88\u5927\u7684\u533a\u522b\u7684\u3002"),(0,a.yg)("h3",{id:"\u5927\u5c4f\u7f16\u8f91\u5668"},"\u5927\u5c4f\u7f16\u8f91\u5668"),(0,a.yg)("p",null,"\u5728\u6570\u636e\u5c55\u793a\u65b9\u9762\uff0c\u5927\u5c4f\u7f16\u8f91\u5668\u53ef\u4ee5\u6258\u62c9\u62fd\u7684\u65b9\u5f0f\u6765\u8bbe\u8ba1\uff1b"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ed011da4.679d7751.js b/assets/js/ed011da4.fce7f23d.js similarity index 99% rename from assets/js/ed011da4.679d7751.js rename to assets/js/ed011da4.fce7f23d.js index 6cf462e5d..ebeebd5cb 100644 --- a/assets/js/ed011da4.679d7751.js +++ b/assets/js/ed011da4.fce7f23d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[493],{5680:(e,a,t)=>{t.d(a,{xA:()=>m,yg:()=>s});var l=t(6540);function r(e,a,t){return a in e?Object.defineProperty(e,a,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[a]=t,e}function n(e,a){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);a&&(l=l.filter((function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable}))),t.push.apply(t,l)}return t}function i(e){for(var a=1;a=0||(r[t]=e[t]);return r}(e,a);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(l=0;l=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var u=l.createContext({}),g=function(e){var a=l.useContext(u),t=a;return e&&(t="function"==typeof e?e(a):i(i({},a),e)),t},m=function(e){var a=g(e.components);return l.createElement(u.Provider,{value:a},e.children)},y="mdxType",o={inlineCode:"code",wrapper:function(e){var a=e.children;return l.createElement(l.Fragment,{},a)}},d=l.forwardRef((function(e,a){var t=e.components,r=e.mdxType,n=e.originalType,u=e.parentName,m=p(e,["components","mdxType","originalType","parentName"]),y=g(t),d=r,s=y["".concat(u,".").concat(d)]||y[d]||o[d]||n;return t?l.createElement(s,i(i({ref:a},m),{},{components:t})):l.createElement(s,i({ref:a},m))}));function s(e,a){var t=arguments,r=a&&a.mdxType;if("string"==typeof e||r){var n=t.length,i=new Array(n);i[0]=d;var p={};for(var u in a)hasOwnProperty.call(a,u)&&(p[u]=a[u]);p.originalType=e,p[y]="string"==typeof e?e:r,i[1]=p;for(var g=2;g{t.r(a),t.d(a,{assets:()=>u,contentTitle:()=>i,default:()=>o,frontMatter:()=>n,metadata:()=>p,toc:()=>g});var l=t(8168),r=(t(6540),t(5680));const n={sidebar_position:2},i="Java",p={unversionedId:"study/program/JAVA/index",id:"study/program/JAVA/index",title:"Java",description:"\u4e00\u79cd\u4f7f\u7528\u975e\u5e38\u5e7f\u6cdb\u7684\u8de8\u5e73\u53f0\u7f16\u7a0b\u8bed\u8a00\u3002",source:"@site/docs/study/program/JAVA/index.md",sourceDirName:"study/program/JAVA",slug:"/study/program/JAVA/",permalink:"/docs/study/program/JAVA/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"studySidebar",previous:{title:"\u6982\u8ff0",permalink:"/docs/study/program/"},next:{title:"GC",permalink:"/docs/study/program/JAVA/GC"}},u={},g=[{value:"\u4e00\u4e9b\u5b98\u65b9\u7f51\u7ad9",id:"\u4e00\u4e9b\u5b98\u65b9\u7f51\u7ad9",level:3},{value:"\u4ece JDK 8 \u5230 JDK 17 \u7684\u65b0\u7279\u6027",id:"\u4ece-jdk-8-\u5230-jdk-17-\u7684\u65b0\u7279\u6027",level:3},{value:"JDK 8 \u65b0\u7279\u6027\uff082014 \u5e74 3 \u6708\uff09",id:"jdk-8-\u65b0\u7279\u60272014-\u5e74-3-\u6708",level:4},{value:"JDK 9 \u65b0\u7279\u6027\uff082017 \u5e74 9 \u6708\uff09",id:"jdk-9-\u65b0\u7279\u60272017-\u5e74-9-\u6708",level:4},{value:"JDK 10 \u65b0\u7279\u6027\uff082018 \u5e74 3 \u6708\uff09",id:"jdk-10-\u65b0\u7279\u60272018-\u5e74-3-\u6708",level:4},{value:"JDK 11 \u65b0\u7279\u6027\uff082018 \u5e74 9 \u6708\uff09\uff08LTS \u7248\u672c\uff09",id:"jdk-11-\u65b0\u7279\u60272018-\u5e74-9-\u6708lts-\u7248\u672c",level:4},{value:"JDK 12 \u65b0\u7279\u6027\uff082019 \u5e74 3 \u6708\uff09",id:"jdk-12-\u65b0\u7279\u60272019-\u5e74-3-\u6708",level:4},{value:"JDK 13 \u65b0\u7279\u6027\uff082019 \u5e74 9 \u6708\uff09",id:"jdk-13-\u65b0\u7279\u60272019-\u5e74-9-\u6708",level:4},{value:"JDK 14 \u65b0\u7279\u6027\uff082020 \u5e74 3 \u6708\uff09",id:"jdk-14-\u65b0\u7279\u60272020-\u5e74-3-\u6708",level:4},{value:"JDK 16 \u65b0\u7279\u6027\uff082021 \u5e74 3 \u6708\uff09",id:"jdk-16-\u65b0\u7279\u60272021-\u5e74-3-\u6708",level:4},{value:"JDK 17 \u65b0\u7279\u6027\uff082021 \u5e74 9 \u6708\uff09\uff08LTS \u7248\u672c\uff09",id:"jdk-17-\u65b0\u7279\u60272021-\u5e74-9-\u6708lts-\u7248\u672c",level:4},{value:"JDK 21 \u65b0\u7279\u6027\uff082023 \u5e74 9 \u6708\uff09",id:"jdk-21-\u65b0\u7279\u60272023-\u5e74-9-\u6708",level:4}],m={toc:g},y="wrapper";function o(e){let{components:a,...t}=e;return(0,r.yg)(y,(0,l.A)({},m,t,{components:a,mdxType:"MDXLayout"}),(0,r.yg)("h1",{id:"java"},"Java"),(0,r.yg)("p",null,"\u4e00\u79cd\u4f7f\u7528\u975e\u5e38\u5e7f\u6cdb\u7684\u8de8\u5e73\u53f0\u7f16\u7a0b\u8bed\u8a00\u3002"),(0,r.yg)("h3",{id:"\u4e00\u4e9b\u5b98\u65b9\u7f51\u7ad9"},"\u4e00\u4e9b\u5b98\u65b9\u7f51\u7ad9"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("a",{parentName:"li",href:"https://dev.java/"},"dev.java")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("a",{parentName:"li",href:"https://jdk.java.net/"},"jdk.java.net")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("a",{parentName:"li",href:"https://openjdk.org/"},"openjdk.org")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("a",{parentName:"li",href:"https://www.oracle.com/java/technologies/java-se-glance.html"},"www.oracle.com/java"))),(0,r.yg)("h3",{id:"\u4ece-jdk-8-\u5230-jdk-17-\u7684\u65b0\u7279\u6027"},"\u4ece JDK 8 \u5230 JDK 17 \u7684\u65b0\u7279\u6027"),(0,r.yg)("h4",{id:"jdk-8-\u65b0\u7279\u60272014-\u5e74-3-\u6708"},"JDK 8 \u65b0\u7279\u6027\uff082014 \u5e74 3 \u6708\uff09"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"Lambda \u8868\u8fbe\u5f0f\uff1aLambda \u8868\u8fbe\u5f0f\u662f JDK 8 \u4e2d\u6700\u91cd\u8981\u7684\u65b0\u7279\u6027\u4e4b\u4e00\u3002\u5b83\u5141\u8bb8\u6211\u4eec\u4ee5\u4e00\u79cd\u66f4\u7b80\u6d01\u548c\u51fd\u6570\u5f0f\u7684\u65b9\u5f0f\u7f16\u5199\u4ee3\u7801\u3002\u901a\u8fc7 Lambda \u8868\u8fbe\u5f0f\uff0c\u6211\u4eec\u53ef\u4ee5\u5c06\u51fd\u6570\u4f5c\u4e3a\u53c2\u6570\u4f20\u9012\u7ed9\u5176\u4ed6\u65b9\u6cd5\uff0c\u4ece\u800c\u5b9e\u73b0\u66f4\u52a0\u7075\u6d3b\u7684\u7f16\u7a0b\u3002Lambda \u8868\u8fbe\u5f0f\u4f7f\u5f97\u4ee3\u7801\u66f4\u6613\u8bfb\u3001\u6613\u5199\uff0c\u5e76\u4e14\u53ef\u4ee5\u63d0\u5347\u4ee3\u7801\u7684\u53ef\u7ef4\u62a4\u6027\u3002"),(0,r.yg)("li",{parentName:"ul"},"Stream API\uff1aStream API \u662f JDK 8 \u4e2d\u5f15\u5165\u7684\u4e00\u5957\u7528\u4e8e\u5904\u7406\u96c6\u5408\u548c\u6570\u7ec4\u7684\u65b0 API\u3002\u5b83\u63d0\u4f9b\u4e86\u4e00\u79cd\u6d41\u5f0f\u5904\u7406\u7684\u65b9\u5f0f\uff0c\u53ef\u4ee5\u66f4\u65b9\u4fbf\u5730\u5bf9\u6570\u636e\u8fdb\u884c\u64cd\u4f5c\u548c\u5904\u7406\u3002Stream API \u652f\u6301\u5e76\u884c\u5904\u7406\uff0c\u53ef\u4ee5\u63d0\u9ad8\u7a0b\u5e8f\u7684\u6267\u884c\u6548\u7387\u3002\u901a\u8fc7\u4f7f\u7528 Stream API\uff0c\u6211\u4eec\u53ef\u4ee5\u66f4\u7b80\u5355\u5730\u5b9e\u73b0\u8fc7\u6ee4\u3001\u6620\u5c04\u3001\u5f52\u7ea6\u7b49\u64cd\u4f5c\uff0c\u5e76\u4e14\u53ef\u4ee5\u4ee5\u66f4\u4f18\u96c5\u7684\u65b9\u5f0f\u5904\u7406\u96c6\u5408\u6570\u636e\u3002"),(0,r.yg)("li",{parentName:"ul"},"\u51fd\u6570\u5f0f\u63a5\u53e3\uff1aJDK 8 \u5f15\u5165\u4e86\u51fd\u6570\u5f0f\u63a5\u53e3\u7684\u6982\u5ff5\u3002\u51fd\u6570\u5f0f\u63a5\u53e3\u662f\u53ea\u5305\u542b\u4e00\u4e2a\u62bd\u8c61\u65b9\u6cd5\u7684\u63a5\u53e3\uff0c\u5b83\u53ef\u4ee5\u7528\u4f5c Lambda \u8868\u8fbe\u5f0f\u7684\u7c7b\u578b\u3002\u51fd\u6570\u5f0f\u63a5\u53e3\u53ef\u4ee5\u901a\u8fc7@FunctionalInterface \u6ce8\u89e3\u6765\u6807\u8bb0\uff0c\u4ee5\u786e\u4fdd\u5b83\u53ea\u5305\u542b\u4e00\u4e2a\u62bd\u8c61\u65b9\u6cd5\u3002\u51fd\u6570\u5f0f\u63a5\u53e3\u7684\u5f15\u5165\u4f7f\u5f97 Java \u652f\u6301\u51fd\u6570\u5f0f\u7f16\u7a0b\uff0c\u53ef\u4ee5\u66f4\u65b9\u4fbf\u5730\u4f7f\u7528 Lambda \u8868\u8fbe\u5f0f\u3002"),(0,r.yg)("li",{parentName:"ul"},"\u9ed8\u8ba4\u65b9\u6cd5\uff1a\u5728 JDK 8 \u4e4b\u524d\uff0c\u63a5\u53e3\u53ea\u80fd\u5305\u542b\u62bd\u8c61\u65b9\u6cd5\u548c\u5e38\u91cf\u3002JDK 8 \u5f15\u5165\u4e86\u9ed8\u8ba4\u65b9\u6cd5\u7684\u6982\u5ff5\uff0c\u53ef\u4ee5\u5728\u63a5\u53e3\u4e2d\u5b9e\u73b0\u65b9\u6cd5\u7684\u9ed8\u8ba4\u5b9e\u73b0\u3002\u9ed8\u8ba4\u65b9\u6cd5\u53ef\u4ee5\u5728\u63a5\u53e3\u4e2d\u63d0\u4f9b\u4e00\u4e2a\u9ed8\u8ba4\u7684\u5b9e\u73b0\uff0c\u4ece\u800c\u907f\u514d\u56e0\u4e3a\u63a5\u53e3\u7684\u6539\u53d8\u800c\u5bfc\u81f4\u5b9e\u73b0\u7c7b\u9700\u8981\u8fdb\u884c\u4fee\u6539\u3002\u9ed8\u8ba4\u65b9\u6cd5\u4f7f\u5f97\u63a5\u53e3\u53ef\u4ee5\u66f4\u7075\u6d3b\u5730\u6269\u5c55\uff0c\u540c\u65f6\u4fdd\u6301\u5411\u540e\u517c\u5bb9\u6027\u3002"),(0,r.yg)("li",{parentName:"ul"},"\u65b9\u6cd5\u5f15\u7528\uff1a\u65b9\u6cd5\u5f15\u7528\u662f\u4e00\u79cd\u66f4\u7b80\u6d01\u5730\u8868\u793a Lambda \u8868\u8fbe\u5f0f\u7684\u65b9\u5f0f\u3002\u5b83\u5141\u8bb8\u6211\u4eec\u76f4\u63a5\u5f15\u7528\u5df2\u7ecf\u5b58\u5728\u7684\u65b9\u6cd5\uff0c\u800c\u4e0d\u662f\u901a\u8fc7 Lambda \u8868\u8fbe\u5f0f\u6765\u5b9e\u73b0\u3002\u65b9\u6cd5\u5f15\u7528\u53ef\u4ee5\u63d0\u9ad8\u4ee3\u7801\u7684\u53ef\u8bfb\u6027\u548c\u53ef\u7ef4\u62a4\u6027\uff0c\u540c\u65f6\u51cf\u5c11\u91cd\u590d\u4ee3\u7801\u7684\u7f16\u5199\u3002"),(0,r.yg)("li",{parentName:"ul"},"\u65b0\u7684\u65e5\u671f\u548c\u65f6\u95f4 API\uff1aJDK 8 \u5f15\u5165\u4e86\u4e00\u5957\u5168\u65b0\u7684\u65e5\u671f\u548c\u65f6\u95f4 API\uff0c\u7528\u4e8e\u66ff\u4ee3\u65e7\u7684 Date \u548c Calendar \u7c7b\u3002\u65b0\u7684\u65e5\u671f\u548c\u65f6\u95f4 API \u66f4\u52a0\u7b80\u5355\u6613\u7528\uff0c\u5e76\u4e14\u63d0\u4f9b\u4e86\u66f4\u591a\u7684\u529f\u80fd\u3002\u5b83\u652f\u6301\u65e5\u671f\u3001\u65f6\u95f4\u3001\u65f6\u533a\u3001\u65f6\u95f4\u95f4\u9694\u7b49\u7684\u5904\u7406\uff0c\u540c\u65f6\u63d0\u4f9b\u4e86\u66f4\u591a\u7684\u64cd\u4f5c\u65b9\u6cd5\u548c\u683c\u5f0f\u5316\u9009\u9879\u3002"),(0,r.yg)("li",{parentName:"ul"},"\u5e76\u53d1\u589e\u5f3a\uff1aJDK 8 \u5bf9\u5e76\u53d1\u7f16\u7a0b\u8fdb\u884c\u4e86\u589e\u5f3a\u3002\u5b83\u5f15\u5165\u4e86\u4e00\u4e9b\u65b0\u7684\u5e76\u53d1\u5de5\u5177\u548c\u7c7b\uff0c\u4f7f\u5f97\u5e76\u53d1\u7f16\u7a0b\u66f4\u52a0\u5bb9\u6613\u548c\u6709\u6548\u3002\u5176\u4e2d\u5305\u62ec CompletableFuture \u7c7b\u3001StampedLock \u7c7b\u3001\u5e76\u884c\u6570\u7ec4\u7b49\u3002\u8fd9\u4e9b\u589e\u5f3a\u4f7f\u5f97\u5f00\u53d1\u4eba\u5458\u80fd\u591f\u66f4\u597d\u5730\u5904\u7406\u5e76\u53d1\u95ee\u9898\uff0c\u63d0\u9ad8\u7a0b\u5e8f\u7684\u6027\u80fd\u548c\u53ef\u4f38\u7f29\u6027\u3002"),(0,r.yg)("li",{parentName:"ul"},"\u5176\u4ed6\u6539\u8fdb\uff1a\u9664\u4e86\u4ee5\u4e0a\u63d0\u5230\u7684\u4e3b\u8981\u65b0\u7279\u6027\u5916\uff0cJDK 8 \u8fd8\u5f15\u5165\u4e86\u8bb8\u591a\u5176\u4ed6\u7684\u6539\u8fdb\uff0c\u5305\u62ec\u6539\u8fdb\u7684\u7c7b\u578b\u63a8\u65ad\u3001\u91cd\u590d\u6ce8\u89e3\u3001\u65b0\u7684\u7f16\u8bd1\u5668 API \u7b49\u3002\u8fd9\u4e9b\u6539\u8fdb\u4f7f\u5f97 Java \u8bed\u8a00\u66f4\u52a0\u73b0\u4ee3\u5316\u548c\u5f3a\u5927\uff0c\u63d0\u4f9b\u4e86\u66f4\u591a\u7684\u7f16\u7a0b\u9009\u9879\u548c\u7075\u6d3b\u6027\u3002")),(0,r.yg)("h4",{id:"jdk-9-\u65b0\u7279\u60272017-\u5e74-9-\u6708"},"JDK 9 \u65b0\u7279\u6027\uff082017 \u5e74 9 \u6708\uff09"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"\u6a21\u5757\u5316"),(0,r.yg)("li",{parentName:"ul"},"\u63d0\u4f9b\u4e86 List.of()\u3001Set.of()\u3001Map.of() \u548c Map.ofEntries() \u7b49\u5de5\u5382\u65b9\u6cd5"),(0,r.yg)("li",{parentName:"ul"},"\u63a5\u53e3\u652f\u6301\u79c1\u6709\u65b9\u6cd5"),(0,r.yg)("li",{parentName:"ul"},"Optional \u7c7b\u6539\u8fdb"),(0,r.yg)("li",{parentName:"ul"},"\u591a\u7248\u672c\u517c\u5bb9 Jar \u5305"),(0,r.yg)("li",{parentName:"ul"},"JShell \u5de5\u5177"),(0,r.yg)("li",{parentName:"ul"},"try-with-resources \u7684\u6539\u8fdb"),(0,r.yg)("li",{parentName:"ul"},"Stream API \u7684\u6539\u8fdb"),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("em",{parentName:"strong"},"\u8bbe\u7f6e G1 \u4e3a JVM \u9ed8\u8ba4\u5783\u573e\u6536\u96c6\u5668"))),(0,r.yg)("li",{parentName:"ul"},"\u652f\u6301 HTTP 2.0 \u548c WebSocket \u7684 API\n",(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("em",{parentName:"strong"},"\u91cd\u8981\u7279\u6027\uff1aAPI \u7684\u4f18\u5316\uff0c\u5982\u652f\u6301 HTTP 2 \u7684 Client API\u3001JVM \u91c7\u7528 G1 \u4e3a\u9ed8\u8ba4\u5783\u573e\u6536\u96c6\u5668\u3002")))),(0,r.yg)("h4",{id:"jdk-10-\u65b0\u7279\u60272018-\u5e74-3-\u6708"},"JDK 10 \u65b0\u7279\u6027\uff082018 \u5e74 3 \u6708\uff09"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"\u5c40\u90e8\u53d8\u91cf\u7c7b\u578b\u63a8\u65ad\uff0c\u7c7b\u4f3c JS \u53ef\u4ee5\u901a\u8fc7 var \u6765\u4fee\u9970\u5c40\u90e8\u53d8\u91cf\uff0c\u7f16\u8bd1\u4e4b\u540e\u4f1a\u63a8\u65ad\u51fa\u503c\u7684\u771f\u5b9e\u7c7b\u578b"),(0,r.yg)("li",{parentName:"ul"},"\u4e0d\u53ef\u53d8\u96c6\u5408\u7684\u6539\u8fdb"),(0,r.yg)("li",{parentName:"ul"},"\u5e76\u884c\u5168\u5783\u573e\u56de\u6536\u5668 G1\uff0c\u6765\u4f18\u5316 G1 \u7684\u5ef6\u8fdf"),(0,r.yg)("li",{parentName:"ul"},"\u7ebf\u7a0b\u672c\u5730\u63e1\u624b\uff0c\u5141\u8bb8\u5728\u4e0d\u6267\u884c\u5168\u5c40 VM \u5b89\u5168\u70b9\u7684\u60c5\u51b5\u4e0b\u6267\u884c\u7ebf\u7a0b\u56de\u8c03\uff0c\u53ef\u4ee5\u505c\u6b62\u5355\u4e2a\u7ebf\u7a0b\uff0c\u800c\u4e0d\u9700\u8981\u505c\u6b62\u6240\u6709\u7ebf\u7a0b\u6216\u4e0d\u505c\u6b62\u7ebf\u7a0b"),(0,r.yg)("li",{parentName:"ul"},"Optional \u65b0\u589e orElseThrow() \u65b9\u6cd5"),(0,r.yg)("li",{parentName:"ul"},"\u7c7b\u6570\u636e\u5171\u4eab"),(0,r.yg)("li",{parentName:"ul"},"Unicode \u8bed\u8a00\u6807\u7b7e\u6269\u5c55"),(0,r.yg)("li",{parentName:"ul"},"\u6839\u8bc1\u4e66")),(0,r.yg)("p",null,(0,r.yg)("strong",{parentName:"p"},(0,r.yg)("em",{parentName:"strong"},"\u91cd\u8981\u7279\u6027\uff1a\u901a\u8fc7 var \u5173\u952e\u5b57\u5b9e\u73b0\u5c40\u90e8\u53d8\u91cf\u7c7b\u578b\u63a8\u65ad\uff0c\u4f7f Java \u8bed\u8a00\u53d8\u6210\u5f31\u7c7b\u578b\u8bed\u8a00\u3001JVM \u7684 G1 \u5783\u573e\u56de\u6536\u7531\u5355\u7ebf\u7a0b\u6539\u6210\u591a\u7ebf\u7a0b\u5e76\u884c\u5904\u7406\uff0c\u964d\u4f4e G1 \u7684\u505c\u987f\u65f6\u95f4\u3002"))),(0,r.yg)("h4",{id:"jdk-11-\u65b0\u7279\u60272018-\u5e74-9-\u6708lts-\u7248\u672c"},"JDK 11 \u65b0\u7279\u6027\uff082018 \u5e74 9 \u6708\uff09\uff08LTS \u7248\u672c\uff09"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"\u589e\u52a0\u4e00\u4e9b\u5b57\u7b26\u4e32\u5904\u7406\u65b9\u6cd5"),(0,r.yg)("li",{parentName:"ul"},"\u7528\u4e8e Lambda \u53c2\u6570\u7684\u5c40\u90e8\u53d8\u91cf\u8bed\u6cd5"),(0,r.yg)("li",{parentName:"ul"},"Http Client \u91cd\u5199\uff0c\u652f\u6301 HTTP/1.1 \u548c HTTP/2\uff0c\u4e5f\u652f\u6301 websockets"),(0,r.yg)("li",{parentName:"ul"},"\u53ef\u8fd0\u884c\u5355\u4e00 Java \u6e90\u7801\u6587\u4ef6\uff0c\u5982\uff1ajava Test.java"),(0,r.yg)("li",{parentName:"ul"},"ZGC\uff1a\u53ef\u4f38\u7f29\u4f4e\u5ef6\u8fdf\u5783\u573e\u6536\u96c6\u5668\u3002ZGC \u53ef\u4ee5\u770b\u4f5c\u662f G1 \u4e4b\u4e0a\u66f4\u7ec6\u7c92\u5ea6\u7684\u5185\u5b58\u7ba1\u7406\u7b56\u7565\u3002\u7531\u4e8e\u5185\u5b58\u7684\u4e0d\u65ad\u5206\u914d\u56de\u6536\u4f1a\u4ea7\u751f\u5927\u91cf\u7684\u5185\u5b58\u788e\u7247\u7a7a\u95f4\uff0c\u56e0\u6b64\u9700\u8981\u6574\u7406\u7b56\u7565\u9632\u6b62\u5185\u5b58\u7a7a\u95f4\u788e\u7247\u5316\u3002\u5728\u6574\u7406\u671f\u95f4\u9700\u8981\u5c06\u5bf9\u4e8e\u5185\u5b58\u5f15\u7528\u7684\u7ebf\u7a0b\u903b\u8f91\u6682\u505c\uff0c\u8fd9\u4e2a\u8fc7\u7a0b\u88ab\u79f0\u4e3a\u201cStop the world\u201d\u3002\u53ea\u6709\u5f53\u6574\u7406\u5b8c\u6210\u540e\uff0c\u7ebf\u7a0b\u903b\u8f91\u624d\u53ef\u4ee5\u7ee7\u7eed\u8fd0\u884c\u3002\uff08\u5e76\u884c\u56de\u6536\uff09"),(0,r.yg)("li",{parentName:"ul"},"\u652f\u6301 TLS 1.3 \u534f\u8bae"),(0,r.yg)("li",{parentName:"ul"},"Flight Recorder\uff08\u98de\u884c\u8bb0\u5f55\u5668\uff09\uff0c\u57fa\u4e8e OS\u3001JVM \u548c JDK \u7684\u4e8b\u4ef6\u4ea7\u751f\u7684\u6570\u636e\u6536\u96c6\u6846\u67b6"),(0,r.yg)("li",{parentName:"ul"},"\u5bf9 Stream\u3001Optional\u3001\u96c6\u5408 API \u8fdb\u884c\u589e\u5f3a")),(0,r.yg)("p",null,(0,r.yg)("strong",{parentName:"p"},(0,r.yg)("em",{parentName:"strong"},"\u91cd\u8981\u7279\u6027\uff1a\u5bf9\u4e8e JDK 9 \u548c JDK 10 \u7684\u5b8c\u5584\uff0c\u4e3b\u8981\u662f\u5bf9\u4e8e Stream\u3001\u96c6\u5408\u7b49 API \u7684\u589e\u5f3a\u3001\u65b0\u589e ZGC \u5783\u573e\u6536\u96c6\u5668\u3002"))),(0,r.yg)("h4",{id:"jdk-12-\u65b0\u7279\u60272019-\u5e74-3-\u6708"},"JDK 12 \u65b0\u7279\u6027\uff082019 \u5e74 3 \u6708\uff09"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"Switch \u8868\u8fbe\u5f0f\u6269\u5c55\uff0c\u53ef\u4ee5\u6709\u8fd4\u56de\u503c"),(0,r.yg)("li",{parentName:"ul"},"\u65b0\u589e NumberFormat \u5bf9\u590d\u6742\u6570\u5b57\u7684\u683c\u5f0f\u5316"),(0,r.yg)("li",{parentName:"ul"},"\u5b57\u7b26\u4e32\u652f\u6301 transform\u3001indent \u64cd\u4f5c"),(0,r.yg)("li",{parentName:"ul"},"\u65b0\u589e\u65b9\u6cd5 Files.mismatch(Path, Path)"),(0,r.yg)("li",{parentName:"ul"},"Teeing Collector"),(0,r.yg)("li",{parentName:"ul"},"\u652f\u6301 unicode 11"),(0,r.yg)("li",{parentName:"ul"},"Shenandoah GC\uff0c\u65b0\u589e\u7684 GC \u7b97\u6cd5"),(0,r.yg)("li",{parentName:"ul"},"G1 \u6536\u96c6\u5668\u7684\u4f18\u5316\uff0c\u5c06 GC \u7684\u5783\u573e\u5206\u4e3a\u5f3a\u5236\u90e8\u5206\u548c\u53ef\u9009\u90e8\u5206\uff0c\u5f3a\u5236\u90e8\u5206\u4f1a\u88ab\u56de\u6536\uff0c\u53ef\u9009\u90e8\u5206\u53ef\u80fd\u4e0d\u4f1a\u88ab\u56de\u6536\uff0c\u63d0\u9ad8 GC \u7684\u6548\u7387")),(0,r.yg)("p",null,(0,r.yg)("strong",{parentName:"p"},(0,r.yg)("em",{parentName:"strong"},"\u91cd\u8981\u7279\u6027\uff1aswitch \u8868\u8fbe\u5f0f\u8bed\u6cd5\u6269\u5c55\u3001G1 \u6536\u96c6\u5668\u4f18\u5316\u3001\u65b0\u589e Shenandoah GC \u5783\u573e\u56de\u6536\u7b97\u6cd5\u3002"))),(0,r.yg)("h4",{id:"jdk-13-\u65b0\u7279\u60272019-\u5e74-9-\u6708"},"JDK 13 \u65b0\u7279\u6027\uff082019 \u5e74 9 \u6708\uff09"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"Switch \u8868\u8fbe\u5f0f\u6269\u5c55\uff0cSwitch \u8868\u8fbe\u5f0f\u589e\u52a0 yield \u5173\u952e\u5b57\u7528\u4e8e\u8fd4\u56de\u7ed3\u679c\uff0c\u4f5c\u7528\u7c7b\u4f3c\u4e8e return\uff0c\u5982\u679c\u6ca1\u6709\u8fd4\u56de\u7ed3\u679c\u5219\u4f7f\u7528 break"),(0,r.yg)("li",{parentName:"ul"},'\u6587\u672c\u5757\u5347\u7ea7 """ \uff0c\u5f15\u5165\u4e86\u6587\u672c\u5757\uff0c\u53ef\u4ee5\u4f7f\u7528 3 \u4e2a\u53cc\u5f15\u53f7\u8868\u793a\u6587\u672c\u5757\uff0c\u6587\u672c\u5757\u5185\u90e8\u4e0d\u9700\u8981\u4f7f\u7528\u6362\u884c\u7684\u8f6c\u4e49\u5b57\u7b26'),(0,r.yg)("li",{parentName:"ul"},"SocketAPI \u91cd\u6784\uff0cSocket \u7684\u5e95\u5c42\u5b9e\u73b0\u4f18\u5316\uff0c\u5f15\u5165\u4e86 NIO"),(0,r.yg)("li",{parentName:"ul"},"FileSystems.newFileSystem \u65b0\u65b9\u6cd5"),(0,r.yg)("li",{parentName:"ul"},"ZGC \u4f18\u5316\uff0c\u589e\u5f3a ZGC \u91ca\u653e\u672a\u4f7f\u7528\u5185\u5b58\uff0c\u5c06\u6807\u8bb0\u957f\u65f6\u95f4\u7a7a\u95f2\u7684\u5806\u5185\u5b58\u7a7a\u95f4\u8fd4\u8fd8\u7ed9\u64cd\u4f5c\u7cfb\u7edf\uff0c\u4fdd\u8bc1\u5806\u5927\u5c0f\u4e0d\u4f1a\u5c0f\u4e8e\u914d\u7f6e\u7684\u6700\u5c0f\u5806\u5185\u5b58\u5927\u5c0f\uff0c\u5982\u679c\u5806\u6700\u5927\u548c\u6700\u5c0f\u5185\u5b58\u5927\u5c0f\u8bbe\u7f6e\u4e00\u6837\uff0c\u5219\u4e0d\u4f1a\u91ca\u653e\u5185\u5b58\u8fd8\u7ed9\u64cd\u4f5c\u7cfb\u7edf"),(0,r.yg)("li",{parentName:"ul"},"\u91cd\u8981\u7279\u6027\uff1aZGC \u4f18\u5316\uff0c\u91ca\u653e\u5185\u5b58\u8fd8\u7ed9\u64cd\u4f5c\u7cfb\u7edf\u3001Socket \u5e95\u5c42\u5b9e\u73b0\u5f15\u5165 NIO\u3002")),(0,r.yg)("h4",{id:"jdk-14-\u65b0\u7279\u60272020-\u5e74-3-\u6708"},"JDK 14 \u65b0\u7279\u6027\uff082020 \u5e74 3 \u6708\uff09"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"instanceof \u6a21\u5f0f\u5339\u914d\uff0cinstanceof \u7c7b\u578b\u5339\u914d\u8bed\u6cd5\u7b80\u5316\uff0c\u53ef\u4ee5\u76f4\u63a5\u7ed9\u5bf9\u8c61\u8d4b\u503c\uff0c\u5982 if(obj instanceof String str)\uff0c\u5982\u679c obj \u662f\u5b57\u7b26\u4e32\u7c7b\u578b\u5219\u76f4\u63a5\u8d4b\u503c\u7ed9\u4e86 str \u53d8\u91cf"),(0,r.yg)("li",{parentName:"ul"},"\u5f15\u5165 Record \u7c7b\u578b\uff0c\u7c7b\u4f3c\u4e8e Lombok \u7684 @Data \u6ce8\u89e3\uff0c\u53ef\u4ee5\u5411 Lombok \u4e00\u6837\u81ea\u52a8\u751f\u6210\u6784\u9020\u5668\u3001equals\u3001getter \u7b49\u65b9\u6cd5"),(0,r.yg)("li",{parentName:"ul"},"Switch \u8868\u8fbe\u5f0f-\u6807\u51c6\u5316"),(0,r.yg)("li",{parentName:"ul"},"\u6539\u8fdb NullPointerExceptions \u63d0\u793a\u4fe1\u606f\uff0c\u6253\u5370\u5177\u4f53\u54ea\u4e2a\u65b9\u6cd5\u629b\u7684\u7a7a\u6307\u9488\u5f02\u5e38\uff0c\u907f\u514d\u540c\u4e00\u884c\u4ee3\u7801\u591a\u4e2a\u51fd\u6570\u8c03\u7528\u65f6\u65e0\u6cd5\u5224\u65ad\u5177\u4f53\u662f\u54ea\u4e2a\u51fd\u6570\u629b\u5f02\u5e38\u7684\u56f0\u6270\uff0c\u65b9\u4fbf\u5f02\u5e38\u6392\u67e5"),(0,r.yg)("li",{parentName:"ul"},"\u5220\u9664 CMS \u5783\u573e\u56de\u6536\u5668"),(0,r.yg)("li",{parentName:"ul"},"JDK 15 \u65b0\u7279\u6027\uff082020 \u5e74 9 \u6708\uff09"),(0,r.yg)("li",{parentName:"ul"},"EdDSA \u6570\u5b57\u7b7e\u540d\u7b97\u6cd5"),(0,r.yg)("li",{parentName:"ul"},"Sealed Classes\uff08\u5c01\u95ed\u7c7b\uff0c\u9884\u89c8\uff09\uff0c\u901a\u8fc7 sealed \u5173\u952e\u5b57\u4fee\u9970\u62bd\u8c61\u7c7b\u9650\u5b9a\u53ea\u5141\u8bb8\u6307\u5b9a\u7684\u5b50\u7c7b\u624d\u53ef\u4ee5\u5b9e\u73b0\u6216\u7ee7\u627f\u62bd\u8c61\u7c7b\uff0c\u907f\u514d\u62bd\u8c61\u7c7b\u88ab\u6ee5\u7528"),(0,r.yg)("li",{parentName:"ul"},"Hidden Classes\uff08\u9690\u85cf\u7c7b\uff09"),(0,r.yg)("li",{parentName:"ul"},"\u79fb\u9664 Nashorn JavaScript \u5f15\u64ce"),(0,r.yg)("li",{parentName:"ul"},"\u6539\u8fdb java.net.DatagramSocket \u548c java.net.MulticastSocket \u5e95\u5c42\u5b9e\u73b0")),(0,r.yg)("h4",{id:"jdk-16-\u65b0\u7279\u60272021-\u5e74-3-\u6708"},"JDK 16 \u65b0\u7279\u6027\uff082021 \u5e74 3 \u6708\uff09"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"\u5141\u8bb8\u5728 JDK C ++\u6e90\u4ee3\u7801\u4e2d\u4f7f\u7528 C ++ 14 \u529f\u80fd"),(0,r.yg)("li",{parentName:"ul"},"ZGC \u6027\u80fd\u4f18\u5316\uff0c\u53bb\u6389 ZGC \u7ebf\u7a0b\u5806\u6808\u5904\u7406\u4ece\u5b89\u5168\u70b9\u5230\u5e76\u53d1\u9636\u6bb5"),(0,r.yg)("li",{parentName:"ul"},"\u589e\u52a0 Unix \u57df\u5957\u63a5\u5b57\u901a\u9053"),(0,r.yg)("li",{parentName:"ul"},"\u5f39\u6027\u5143\u7a7a\u95f4\u80fd\u529b"),(0,r.yg)("li",{parentName:"ul"},"\u63d0\u4f9b\u7528\u4e8e\u6253\u5305\u72ec\u7acb Java \u5e94\u7528\u7a0b\u5e8f\u7684 jpackage \u5de5\u5177")),(0,r.yg)("p",null,"JDK 16 \u76f8\u5f53\u4e8e\u662f\u5c06 JDK 14\u3001JDK 15 \u7684\u4e00\u4e9b\u7279\u6027\u8fdb\u884c\u4e86\u6b63\u5f0f\u5f15\u5165\uff0c\u5982 instanceof \u6a21\u5f0f\u5339\u914d\uff08Pattern matching\uff09\u3001record \u7684\u5f15\u5165\u7b49\u6700\u7ec8\u5230 JDK 16 \u53d8\u6210\u4e86 final \u7248\u672c\u3002"),(0,r.yg)("h4",{id:"jdk-17-\u65b0\u7279\u60272021-\u5e74-9-\u6708lts-\u7248\u672c"},"JDK 17 \u65b0\u7279\u6027\uff082021 \u5e74 9 \u6708\uff09\uff08LTS \u7248\u672c\uff09"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"Free Java License"),(0,r.yg)("li",{parentName:"ul"},"JDK 17 \u5c06\u53d6\u4ee3 JDK 11 \u6210\u4e3a\u4e0b\u4e00\u4e2a\u957f\u671f\u652f\u6301\u7248\u672c"),(0,r.yg)("li",{parentName:"ul"},"Spring 6 \u548c Spring Boot 3 \u9700\u8981 JDK17"),(0,r.yg)("li",{parentName:"ul"},"\u79fb\u9664\u5b9e\u9a8c\u6027\u7684 AOT \u548c JIT \u7f16\u8bd1\u5668"),(0,r.yg)("li",{parentName:"ul"},"\u6062\u590d\u59cb\u7ec8\u6267\u884c\u4e25\u683c\u6a21\u5f0f (Always-Strict) \u7684\u6d6e\u70b9\u5b9a\u4e49"),(0,r.yg)("li",{parentName:"ul"},"\u6b63\u5f0f\u5f15\u5165\u5bc6\u5c01\u7c7b sealed class\uff0c\u9650\u5236\u62bd\u8c61\u7c7b\u7684\u5b9e\u73b0"),(0,r.yg)("li",{parentName:"ul"},"\u7edf\u4e00\u65e5\u5fd7\u5f02\u6b65\u5237\u65b0\uff0c\u5148\u5c06\u65e5\u5fd7\u5199\u5165\u7f13\u5b58\uff0c\u7136\u540e\u518d\u5f02\u6b65\u5237\u65b0")),(0,r.yg)("p",null,"\u867d\u7136 JDK 17 \u4e5f\u662f\u4e00\u4e2a LTS \u7248\u672c\uff0c\u4f46\u662f\u5e76\u6ca1\u6709\u50cf JDK 8 \u548c JDK 11 \u4e00\u6837\u5f15\u5165\u6bd4\u8f83\u7a81\u51fa\u7684\u7279\u6027\uff0c\u4e3b\u8981\u662f\u5bf9\u524d\u51e0\u4e2a\u7248\u672c\u7684\u6574\u5408\u548c\u5b8c\u5584\u3002"),(0,r.yg)("h4",{id:"jdk-21-\u65b0\u7279\u60272023-\u5e74-9-\u6708"},"JDK 21 \u65b0\u7279\u6027\uff082023 \u5e74 9 \u6708\uff09"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"\u5b57\u7b26\u4e32\u6a21\u677f\uff0c\u53ef\u4ee5\u50cf\u5176\u4ed6\u8bed\u8a00\u90a3\u6837\u5b50\u65b9\u4fbf\u7684\u505a\u5b57\u7b26\u4e32\u62fc\u63a5\uff0c\u662f+\u53f7\uff0cStringBuilder\uff0cMessageFormat \u4e4b\u5916\u66f4\u65b9\u4fbf\u7684\u5b57\u7b26\u4e32\u62fc\u63a5\u65b9\u6cd5\u3002\n\u6ce8\u610f\uff1a\u8fd9\u4e2a\u7279\u6027\u867d\u7136\u8fd8\u5728\u9884\u89c8\u9636\u6bb5\uff0c\u8fd8\u4e0d\u5c5e\u4e8e\u6b63\u5f0f\u53d1\u5e03\uff0c\u4f46\u662f\u82e5\u80fd\u6700\u7ec8\u8fdb\u5165\u53d1\u5e03\uff0c\u80fd\u591f\u5927\u5927\u51cf\u8f7b\u4e86 Java \u7f16\u7a0b\u65f6\u590d\u6742\u5b57\u7b26\u4e32\u7684\u7f16\u8f91\u5904\u7406\u5de5\u4f5c\u91cf\u3002"),(0,r.yg)("li",{parentName:"ul"},"\u5f15\u5165\u65b0\u7684\u63a5\u53e3\u6765\u8868\u793a\u5177\u6709\u5b9a\u4e49\u76f8\u9047\u987a\u5e8f\u7684\u96c6\u5408\u3002\u6bcf\u4e2a\u8fd9\u6837\u7684\u96c6\u5408\u90fd\u6709\u5b9a\u4e49\u660e\u786e\u7684\u7b2c\u4e00\u4e2a\u5143\u7d20\u3001\u7b2c\u4e8c\u4e2a\u5143\u7d20\uff0c\u4ee5\u6b64\u7c7b\u63a8\uff0c\u76f4\u5230\u6700\u540e\u4e00\u4e2a\u5143\u7d20\u3002\u5b83\u8fd8\u63d0\u4f9b\u4e86\u7edf\u4e00\u7684\u5e94\u7528\u7a0b\u5e8f\u63a5\u53e3\uff0c\u7528\u4e8e\u8bbf\u95ee\u5176\u7b2c\u4e00\u4e2a\u548c\u6700\u540e\u4e00\u4e2a\u5143\u7d20\uff0c\u4ee5\u53ca\u4ee5\u76f8\u53cd\u7684\u987a\u5e8f\u5904\u7406\u5176\u5143\u7d20\u3002"),(0,r.yg)("li",{parentName:"ul"},"\u901a\u8fc7\u6269\u5c55 Z \u5783\u573e\u6536\u96c6\u5668\uff08ZGC\uff09\uff0c\u4e3a\u65b0\u65e7\u5bf9\u8c61\u5206\u522b\u4fdd\u7559\u4e0d\u540c\u7684\u4e16\u4ee3\uff0c\u4ece\u800c\u63d0\u9ad8\u5e94\u7528\u7a0b\u5e8f\u7684\u6027\u80fd\u3002\u8fd9\u5c06\u5141\u8bb8 ZGC \u66f4\u9891\u7e41\u5730\u6536\u96c6\u5e74\u8f7b\u4ee3\u7684\u5bf9\u8c61\uff08\u5bf9\u8c61\u5f80\u5f80\u9891\u7e41\u5730\u82f1\u5e74\u65e9\u901d\uff09\u3002"),(0,r.yg)("li",{parentName:"ul"},"\u4f7f\u7528\u8bb0\u5f55\u6a21\u5f0f\u6765\u89e3\u6784\u8bb0\u5f55\u503c\uff0c\u4ece\u800c\u589e\u5f3a Java \u7f16\u7a0b\u8bed\u8a00\u7684\u529f\u80fd\u3002\u8bb0\u5f55\u6a21\u5f0f\u548c\u7c7b\u578b\u6a21\u5f0f\u53ef\u4ee5\u5d4c\u5957\uff0c\u4ee5\u5b9e\u73b0\u5f3a\u5927\u3001\u58f0\u660e\u6027\u548c\u53ef\u7ec4\u5408\u7684\u6570\u636e\u5bfc\u822a\u548c\u5904\u7406\u5f62\u5f0f\u3002"),(0,r.yg)("li",{parentName:"ul"},"\u7528\u6a21\u5f0f\u5339\u914d\u6765\u589e\u5f3a Java \u7f16\u7a0b\u8bed\u8a00\u7684\u5f00\u5173\u8868\u8fbe\u5f0f\u548c\u8bed\u53e5\u3002\u5c06\u6a21\u5f0f\u5339\u914d\u6269\u5c55\u5230\u5f00\u5173\u540e\uff0c\u8868\u8fbe\u5f0f\u5c31\u53ef\u4ee5\u6839\u636e\u591a\u4e2a\u6a21\u5f0f\uff08\u6bcf\u4e2a\u6a21\u5f0f\u90fd\u6709\u7279\u5b9a\u7684\u64cd\u4f5c\uff09\u8fdb\u884c\u6d4b\u8bd5\uff0c\u4ece\u800c\u53ef\u4ee5\u7b80\u6d01\u5b89\u5168\u5730\u8868\u8fbe\u9762\u5411\u6570\u636e\u7684\u590d\u6742\u67e5\u8be2\u3002"),(0,r.yg)("li",{parentName:"ul"},"\u5f15\u5165\u4e00\u4e2a\u5e94\u7528\u7a0b\u5e8f\u63a5\u53e3\uff08API\uff09\uff0c\u4f7f Java \u7a0b\u5e8f\u80fd\u591f\u4e0e Java \u8fd0\u884c\u65f6\u4e4b\u5916\u7684\u4ee3\u7801\u548c\u6570\u636e\u4e92\u64cd\u4f5c\u3002\u901a\u8fc7\u9ad8\u6548\u5730\u8c03\u7528\u5916\u6765\u51fd\u6570\uff08\u5373 JVM \u4e4b\u5916\u7684\u4ee3\u7801\uff09\u548c\u5b89\u5168\u5730\u8bbf\u95ee\u5916\u6765\u5185\u5b58\uff08\u5373 JVM \u7ba1\u7406\u4e4b\u5916\u7684\u5185\u5b58\uff09\uff0c- API \u4f7f Java \u7a0b\u5e8f\u80fd\u591f\u8c03\u7528\u672c\u5730\u5e93\u548c\u5904\u7406\u672c\u5730\u6570\u636e\uff0c\u800c\u4e0d\u4f1a\u51fa\u73b0 JNI \u7684\u8106\u6027\u548c\u5371\u9669\u3002\u8fd9\u662f\u4e00\u4e2a\u9884\u89c8\u7248 API\u3002"),(0,r.yg)("li",{parentName:"ul"},"\u4f7f\u7528\u672a\u547d\u540d\u6a21\u5f0f\u548c\u672a\u547d\u540d\u53d8\u91cf\u6765\u589e\u5f3a Java \u8bed\u8a00\u7684\u529f\u80fd\u3002\u672a\u547d\u540d\u6a21\u5f0f\u7528\u4e8e\u5339\u914d\u8bb0\u5f55\u7ec4\u4ef6\uff0c\u4f46\u4e0d\u8bf4\u660e\u8be5\u7ec4\u4ef6\u7684\u540d\u79f0\u6216\u7c7b\u578b\uff1b\u672a\u547d\u540d\u53d8\u91cf\u7528\u4e8e\u521d\u59cb\u5316\u4f46\u4e0d\u4f7f\u7528\u3002\u4e24\u8005\u90fd\u7528\u4e0b\u5212\u7ebf\u5b57\u7b26 ","_"," \u8868\u793a\u3002\u8fd9\u662f\u4e00\u9879\u9884\u89c8\u8bed\u8a00\u529f\u80fd\u3002"),(0,r.yg)("li",{parentName:"ul"},"\u5c06\u865a\u62df\u7ebf\u7a0b\u5f15\u5165 Java \u5e73\u53f0\u3002\u865a\u62df\u7ebf\u7a0b\u662f\u4e00\u79cd\u8f7b\u91cf\u7ea7\u7ebf\u7a0b\uff0c\u53ef\u5927\u5927\u51cf\u5c11\u7f16\u5199\u3001\u7ef4\u62a4\u548c\u89c2\u5bdf\u9ad8\u541e\u5410\u91cf\u5e76\u53d1\u5e94\u7528\u7a0b\u5e8f\u7684\u5de5\u4f5c\u91cf\u3002"),(0,r.yg)("li",{parentName:"ul"},"\u5f15\u5165\u5bc6\u94a5\u5c01\u88c5\u673a\u5236\uff08KEM\uff09\u7684 API \u63a5\u53e3\uff0c\u8fd9\u662f\u4e00\u79cd\u4f7f\u7528\u516c\u94a5\u52a0\u5bc6\u6cd5\u786e\u4fdd\u5bf9\u79f0\u5bc6\u94a5\u5b89\u5168\u7684\u52a0\u5bc6\u6280\u672f\u3002"),(0,r.yg)("li",{parentName:"ul"},"\u901a\u8fc7\u5f15\u5165\u7ed3\u6784\u5316\u5e76\u53d1 API \u6765\u7b80\u5316\u5e76\u53d1\u7f16\u7a0b\u3002\u7ed3\u6784\u5316\u5e76\u53d1\u5c06\u5728\u4e0d\u540c\u7ebf\u7a0b\u4e2d\u8fd0\u884c\u7684\u4e00\u7ec4\u76f8\u5173\u4efb\u52a1\u89c6\u4e3a\u4e00\u4e2a\u5de5\u4f5c\u5355\u5143\uff0c\u4ece\u800c\u7b80\u5316\u4e86\u9519\u8bef\u5904\u7406\u548c\u53d6\u6d88\uff0c\u63d0\u9ad8\u4e86\u53ef\u9760\u6027\u5e76\u589e\u5f3a\u4e86\u53ef\u89c2\u5bdf\u6027\u3002\u8fd9\u662f\u4e00\u4e2a\u9884\u89c8\u7248 API\u3002")))}o.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[493],{5680:(e,a,t)=>{t.d(a,{xA:()=>m,yg:()=>s});var l=t(6540);function r(e,a,t){return a in e?Object.defineProperty(e,a,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[a]=t,e}function n(e,a){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);a&&(l=l.filter((function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable}))),t.push.apply(t,l)}return t}function i(e){for(var a=1;a=0||(r[t]=e[t]);return r}(e,a);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(l=0;l=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var u=l.createContext({}),g=function(e){var a=l.useContext(u),t=a;return e&&(t="function"==typeof e?e(a):i(i({},a),e)),t},m=function(e){var a=g(e.components);return l.createElement(u.Provider,{value:a},e.children)},y="mdxType",o={inlineCode:"code",wrapper:function(e){var a=e.children;return l.createElement(l.Fragment,{},a)}},d=l.forwardRef((function(e,a){var t=e.components,r=e.mdxType,n=e.originalType,u=e.parentName,m=p(e,["components","mdxType","originalType","parentName"]),y=g(t),d=r,s=y["".concat(u,".").concat(d)]||y[d]||o[d]||n;return t?l.createElement(s,i(i({ref:a},m),{},{components:t})):l.createElement(s,i({ref:a},m))}));function s(e,a){var t=arguments,r=a&&a.mdxType;if("string"==typeof e||r){var n=t.length,i=new Array(n);i[0]=d;var p={};for(var u in a)hasOwnProperty.call(a,u)&&(p[u]=a[u]);p.originalType=e,p[y]="string"==typeof e?e:r,i[1]=p;for(var g=2;g{t.r(a),t.d(a,{assets:()=>u,contentTitle:()=>i,default:()=>o,frontMatter:()=>n,metadata:()=>p,toc:()=>g});var l=t(8168),r=(t(6540),t(5680));const n={sidebar_position:2},i="Java",p={unversionedId:"study/program/JAVA/index",id:"study/program/JAVA/index",title:"Java",description:"\u4e00\u79cd\u4f7f\u7528\u975e\u5e38\u5e7f\u6cdb\u7684\u8de8\u5e73\u53f0\u7f16\u7a0b\u8bed\u8a00\u3002",source:"@site/docs/study/program/JAVA/index.md",sourceDirName:"study/program/JAVA",slug:"/study/program/JAVA/",permalink:"/docs/study/program/JAVA/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"studySidebar",previous:{title:"\u6982\u8ff0",permalink:"/docs/study/program/"},next:{title:"GC",permalink:"/docs/study/program/JAVA/GC"}},u={},g=[{value:"\u4e00\u4e9b\u5b98\u65b9\u7f51\u7ad9",id:"\u4e00\u4e9b\u5b98\u65b9\u7f51\u7ad9",level:3},{value:"\u4ece JDK 8 \u5230 JDK 17 \u7684\u65b0\u7279\u6027",id:"\u4ece-jdk-8-\u5230-jdk-17-\u7684\u65b0\u7279\u6027",level:3},{value:"JDK 8 \u65b0\u7279\u6027\uff082014 \u5e74 3 \u6708\uff09",id:"jdk-8-\u65b0\u7279\u60272014-\u5e74-3-\u6708",level:4},{value:"JDK 9 \u65b0\u7279\u6027\uff082017 \u5e74 9 \u6708\uff09",id:"jdk-9-\u65b0\u7279\u60272017-\u5e74-9-\u6708",level:4},{value:"JDK 10 \u65b0\u7279\u6027\uff082018 \u5e74 3 \u6708\uff09",id:"jdk-10-\u65b0\u7279\u60272018-\u5e74-3-\u6708",level:4},{value:"JDK 11 \u65b0\u7279\u6027\uff082018 \u5e74 9 \u6708\uff09\uff08LTS \u7248\u672c\uff09",id:"jdk-11-\u65b0\u7279\u60272018-\u5e74-9-\u6708lts-\u7248\u672c",level:4},{value:"JDK 12 \u65b0\u7279\u6027\uff082019 \u5e74 3 \u6708\uff09",id:"jdk-12-\u65b0\u7279\u60272019-\u5e74-3-\u6708",level:4},{value:"JDK 13 \u65b0\u7279\u6027\uff082019 \u5e74 9 \u6708\uff09",id:"jdk-13-\u65b0\u7279\u60272019-\u5e74-9-\u6708",level:4},{value:"JDK 14 \u65b0\u7279\u6027\uff082020 \u5e74 3 \u6708\uff09",id:"jdk-14-\u65b0\u7279\u60272020-\u5e74-3-\u6708",level:4},{value:"JDK 16 \u65b0\u7279\u6027\uff082021 \u5e74 3 \u6708\uff09",id:"jdk-16-\u65b0\u7279\u60272021-\u5e74-3-\u6708",level:4},{value:"JDK 17 \u65b0\u7279\u6027\uff082021 \u5e74 9 \u6708\uff09\uff08LTS \u7248\u672c\uff09",id:"jdk-17-\u65b0\u7279\u60272021-\u5e74-9-\u6708lts-\u7248\u672c",level:4},{value:"JDK 21 \u65b0\u7279\u6027\uff082023 \u5e74 9 \u6708\uff09",id:"jdk-21-\u65b0\u7279\u60272023-\u5e74-9-\u6708",level:4}],m={toc:g},y="wrapper";function o(e){let{components:a,...t}=e;return(0,r.yg)(y,(0,l.A)({},m,t,{components:a,mdxType:"MDXLayout"}),(0,r.yg)("h1",{id:"java"},"Java"),(0,r.yg)("p",null,"\u4e00\u79cd\u4f7f\u7528\u975e\u5e38\u5e7f\u6cdb\u7684\u8de8\u5e73\u53f0\u7f16\u7a0b\u8bed\u8a00\u3002"),(0,r.yg)("h3",{id:"\u4e00\u4e9b\u5b98\u65b9\u7f51\u7ad9"},"\u4e00\u4e9b\u5b98\u65b9\u7f51\u7ad9"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("a",{parentName:"li",href:"https://dev.java/"},"dev.java")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("a",{parentName:"li",href:"https://jdk.java.net/"},"jdk.java.net")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("a",{parentName:"li",href:"https://openjdk.org/"},"openjdk.org")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("a",{parentName:"li",href:"https://www.oracle.com/java/technologies/java-se-glance.html"},"www.oracle.com/java"))),(0,r.yg)("h3",{id:"\u4ece-jdk-8-\u5230-jdk-17-\u7684\u65b0\u7279\u6027"},"\u4ece JDK 8 \u5230 JDK 17 \u7684\u65b0\u7279\u6027"),(0,r.yg)("h4",{id:"jdk-8-\u65b0\u7279\u60272014-\u5e74-3-\u6708"},"JDK 8 \u65b0\u7279\u6027\uff082014 \u5e74 3 \u6708\uff09"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"Lambda \u8868\u8fbe\u5f0f\uff1aLambda \u8868\u8fbe\u5f0f\u662f JDK 8 \u4e2d\u6700\u91cd\u8981\u7684\u65b0\u7279\u6027\u4e4b\u4e00\u3002\u5b83\u5141\u8bb8\u6211\u4eec\u4ee5\u4e00\u79cd\u66f4\u7b80\u6d01\u548c\u51fd\u6570\u5f0f\u7684\u65b9\u5f0f\u7f16\u5199\u4ee3\u7801\u3002\u901a\u8fc7 Lambda \u8868\u8fbe\u5f0f\uff0c\u6211\u4eec\u53ef\u4ee5\u5c06\u51fd\u6570\u4f5c\u4e3a\u53c2\u6570\u4f20\u9012\u7ed9\u5176\u4ed6\u65b9\u6cd5\uff0c\u4ece\u800c\u5b9e\u73b0\u66f4\u52a0\u7075\u6d3b\u7684\u7f16\u7a0b\u3002Lambda \u8868\u8fbe\u5f0f\u4f7f\u5f97\u4ee3\u7801\u66f4\u6613\u8bfb\u3001\u6613\u5199\uff0c\u5e76\u4e14\u53ef\u4ee5\u63d0\u5347\u4ee3\u7801\u7684\u53ef\u7ef4\u62a4\u6027\u3002"),(0,r.yg)("li",{parentName:"ul"},"Stream API\uff1aStream API \u662f JDK 8 \u4e2d\u5f15\u5165\u7684\u4e00\u5957\u7528\u4e8e\u5904\u7406\u96c6\u5408\u548c\u6570\u7ec4\u7684\u65b0 API\u3002\u5b83\u63d0\u4f9b\u4e86\u4e00\u79cd\u6d41\u5f0f\u5904\u7406\u7684\u65b9\u5f0f\uff0c\u53ef\u4ee5\u66f4\u65b9\u4fbf\u5730\u5bf9\u6570\u636e\u8fdb\u884c\u64cd\u4f5c\u548c\u5904\u7406\u3002Stream API \u652f\u6301\u5e76\u884c\u5904\u7406\uff0c\u53ef\u4ee5\u63d0\u9ad8\u7a0b\u5e8f\u7684\u6267\u884c\u6548\u7387\u3002\u901a\u8fc7\u4f7f\u7528 Stream API\uff0c\u6211\u4eec\u53ef\u4ee5\u66f4\u7b80\u5355\u5730\u5b9e\u73b0\u8fc7\u6ee4\u3001\u6620\u5c04\u3001\u5f52\u7ea6\u7b49\u64cd\u4f5c\uff0c\u5e76\u4e14\u53ef\u4ee5\u4ee5\u66f4\u4f18\u96c5\u7684\u65b9\u5f0f\u5904\u7406\u96c6\u5408\u6570\u636e\u3002"),(0,r.yg)("li",{parentName:"ul"},"\u51fd\u6570\u5f0f\u63a5\u53e3\uff1aJDK 8 \u5f15\u5165\u4e86\u51fd\u6570\u5f0f\u63a5\u53e3\u7684\u6982\u5ff5\u3002\u51fd\u6570\u5f0f\u63a5\u53e3\u662f\u53ea\u5305\u542b\u4e00\u4e2a\u62bd\u8c61\u65b9\u6cd5\u7684\u63a5\u53e3\uff0c\u5b83\u53ef\u4ee5\u7528\u4f5c Lambda \u8868\u8fbe\u5f0f\u7684\u7c7b\u578b\u3002\u51fd\u6570\u5f0f\u63a5\u53e3\u53ef\u4ee5\u901a\u8fc7@FunctionalInterface \u6ce8\u89e3\u6765\u6807\u8bb0\uff0c\u4ee5\u786e\u4fdd\u5b83\u53ea\u5305\u542b\u4e00\u4e2a\u62bd\u8c61\u65b9\u6cd5\u3002\u51fd\u6570\u5f0f\u63a5\u53e3\u7684\u5f15\u5165\u4f7f\u5f97 Java \u652f\u6301\u51fd\u6570\u5f0f\u7f16\u7a0b\uff0c\u53ef\u4ee5\u66f4\u65b9\u4fbf\u5730\u4f7f\u7528 Lambda \u8868\u8fbe\u5f0f\u3002"),(0,r.yg)("li",{parentName:"ul"},"\u9ed8\u8ba4\u65b9\u6cd5\uff1a\u5728 JDK 8 \u4e4b\u524d\uff0c\u63a5\u53e3\u53ea\u80fd\u5305\u542b\u62bd\u8c61\u65b9\u6cd5\u548c\u5e38\u91cf\u3002JDK 8 \u5f15\u5165\u4e86\u9ed8\u8ba4\u65b9\u6cd5\u7684\u6982\u5ff5\uff0c\u53ef\u4ee5\u5728\u63a5\u53e3\u4e2d\u5b9e\u73b0\u65b9\u6cd5\u7684\u9ed8\u8ba4\u5b9e\u73b0\u3002\u9ed8\u8ba4\u65b9\u6cd5\u53ef\u4ee5\u5728\u63a5\u53e3\u4e2d\u63d0\u4f9b\u4e00\u4e2a\u9ed8\u8ba4\u7684\u5b9e\u73b0\uff0c\u4ece\u800c\u907f\u514d\u56e0\u4e3a\u63a5\u53e3\u7684\u6539\u53d8\u800c\u5bfc\u81f4\u5b9e\u73b0\u7c7b\u9700\u8981\u8fdb\u884c\u4fee\u6539\u3002\u9ed8\u8ba4\u65b9\u6cd5\u4f7f\u5f97\u63a5\u53e3\u53ef\u4ee5\u66f4\u7075\u6d3b\u5730\u6269\u5c55\uff0c\u540c\u65f6\u4fdd\u6301\u5411\u540e\u517c\u5bb9\u6027\u3002"),(0,r.yg)("li",{parentName:"ul"},"\u65b9\u6cd5\u5f15\u7528\uff1a\u65b9\u6cd5\u5f15\u7528\u662f\u4e00\u79cd\u66f4\u7b80\u6d01\u5730\u8868\u793a Lambda \u8868\u8fbe\u5f0f\u7684\u65b9\u5f0f\u3002\u5b83\u5141\u8bb8\u6211\u4eec\u76f4\u63a5\u5f15\u7528\u5df2\u7ecf\u5b58\u5728\u7684\u65b9\u6cd5\uff0c\u800c\u4e0d\u662f\u901a\u8fc7 Lambda \u8868\u8fbe\u5f0f\u6765\u5b9e\u73b0\u3002\u65b9\u6cd5\u5f15\u7528\u53ef\u4ee5\u63d0\u9ad8\u4ee3\u7801\u7684\u53ef\u8bfb\u6027\u548c\u53ef\u7ef4\u62a4\u6027\uff0c\u540c\u65f6\u51cf\u5c11\u91cd\u590d\u4ee3\u7801\u7684\u7f16\u5199\u3002"),(0,r.yg)("li",{parentName:"ul"},"\u65b0\u7684\u65e5\u671f\u548c\u65f6\u95f4 API\uff1aJDK 8 \u5f15\u5165\u4e86\u4e00\u5957\u5168\u65b0\u7684\u65e5\u671f\u548c\u65f6\u95f4 API\uff0c\u7528\u4e8e\u66ff\u4ee3\u65e7\u7684 Date \u548c Calendar \u7c7b\u3002\u65b0\u7684\u65e5\u671f\u548c\u65f6\u95f4 API \u66f4\u52a0\u7b80\u5355\u6613\u7528\uff0c\u5e76\u4e14\u63d0\u4f9b\u4e86\u66f4\u591a\u7684\u529f\u80fd\u3002\u5b83\u652f\u6301\u65e5\u671f\u3001\u65f6\u95f4\u3001\u65f6\u533a\u3001\u65f6\u95f4\u95f4\u9694\u7b49\u7684\u5904\u7406\uff0c\u540c\u65f6\u63d0\u4f9b\u4e86\u66f4\u591a\u7684\u64cd\u4f5c\u65b9\u6cd5\u548c\u683c\u5f0f\u5316\u9009\u9879\u3002"),(0,r.yg)("li",{parentName:"ul"},"\u5e76\u53d1\u589e\u5f3a\uff1aJDK 8 \u5bf9\u5e76\u53d1\u7f16\u7a0b\u8fdb\u884c\u4e86\u589e\u5f3a\u3002\u5b83\u5f15\u5165\u4e86\u4e00\u4e9b\u65b0\u7684\u5e76\u53d1\u5de5\u5177\u548c\u7c7b\uff0c\u4f7f\u5f97\u5e76\u53d1\u7f16\u7a0b\u66f4\u52a0\u5bb9\u6613\u548c\u6709\u6548\u3002\u5176\u4e2d\u5305\u62ec CompletableFuture \u7c7b\u3001StampedLock \u7c7b\u3001\u5e76\u884c\u6570\u7ec4\u7b49\u3002\u8fd9\u4e9b\u589e\u5f3a\u4f7f\u5f97\u5f00\u53d1\u4eba\u5458\u80fd\u591f\u66f4\u597d\u5730\u5904\u7406\u5e76\u53d1\u95ee\u9898\uff0c\u63d0\u9ad8\u7a0b\u5e8f\u7684\u6027\u80fd\u548c\u53ef\u4f38\u7f29\u6027\u3002"),(0,r.yg)("li",{parentName:"ul"},"\u5176\u4ed6\u6539\u8fdb\uff1a\u9664\u4e86\u4ee5\u4e0a\u63d0\u5230\u7684\u4e3b\u8981\u65b0\u7279\u6027\u5916\uff0cJDK 8 \u8fd8\u5f15\u5165\u4e86\u8bb8\u591a\u5176\u4ed6\u7684\u6539\u8fdb\uff0c\u5305\u62ec\u6539\u8fdb\u7684\u7c7b\u578b\u63a8\u65ad\u3001\u91cd\u590d\u6ce8\u89e3\u3001\u65b0\u7684\u7f16\u8bd1\u5668 API \u7b49\u3002\u8fd9\u4e9b\u6539\u8fdb\u4f7f\u5f97 Java \u8bed\u8a00\u66f4\u52a0\u73b0\u4ee3\u5316\u548c\u5f3a\u5927\uff0c\u63d0\u4f9b\u4e86\u66f4\u591a\u7684\u7f16\u7a0b\u9009\u9879\u548c\u7075\u6d3b\u6027\u3002")),(0,r.yg)("h4",{id:"jdk-9-\u65b0\u7279\u60272017-\u5e74-9-\u6708"},"JDK 9 \u65b0\u7279\u6027\uff082017 \u5e74 9 \u6708\uff09"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"\u6a21\u5757\u5316"),(0,r.yg)("li",{parentName:"ul"},"\u63d0\u4f9b\u4e86 List.of()\u3001Set.of()\u3001Map.of() \u548c Map.ofEntries() \u7b49\u5de5\u5382\u65b9\u6cd5"),(0,r.yg)("li",{parentName:"ul"},"\u63a5\u53e3\u652f\u6301\u79c1\u6709\u65b9\u6cd5"),(0,r.yg)("li",{parentName:"ul"},"Optional \u7c7b\u6539\u8fdb"),(0,r.yg)("li",{parentName:"ul"},"\u591a\u7248\u672c\u517c\u5bb9 Jar \u5305"),(0,r.yg)("li",{parentName:"ul"},"JShell \u5de5\u5177"),(0,r.yg)("li",{parentName:"ul"},"try-with-resources \u7684\u6539\u8fdb"),(0,r.yg)("li",{parentName:"ul"},"Stream API \u7684\u6539\u8fdb"),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("em",{parentName:"strong"},"\u8bbe\u7f6e G1 \u4e3a JVM \u9ed8\u8ba4\u5783\u573e\u6536\u96c6\u5668"))),(0,r.yg)("li",{parentName:"ul"},"\u652f\u6301 HTTP 2.0 \u548c WebSocket \u7684 API\n",(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("em",{parentName:"strong"},"\u91cd\u8981\u7279\u6027\uff1aAPI \u7684\u4f18\u5316\uff0c\u5982\u652f\u6301 HTTP 2 \u7684 Client API\u3001JVM \u91c7\u7528 G1 \u4e3a\u9ed8\u8ba4\u5783\u573e\u6536\u96c6\u5668\u3002")))),(0,r.yg)("h4",{id:"jdk-10-\u65b0\u7279\u60272018-\u5e74-3-\u6708"},"JDK 10 \u65b0\u7279\u6027\uff082018 \u5e74 3 \u6708\uff09"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"\u5c40\u90e8\u53d8\u91cf\u7c7b\u578b\u63a8\u65ad\uff0c\u7c7b\u4f3c JS \u53ef\u4ee5\u901a\u8fc7 var \u6765\u4fee\u9970\u5c40\u90e8\u53d8\u91cf\uff0c\u7f16\u8bd1\u4e4b\u540e\u4f1a\u63a8\u65ad\u51fa\u503c\u7684\u771f\u5b9e\u7c7b\u578b"),(0,r.yg)("li",{parentName:"ul"},"\u4e0d\u53ef\u53d8\u96c6\u5408\u7684\u6539\u8fdb"),(0,r.yg)("li",{parentName:"ul"},"\u5e76\u884c\u5168\u5783\u573e\u56de\u6536\u5668 G1\uff0c\u6765\u4f18\u5316 G1 \u7684\u5ef6\u8fdf"),(0,r.yg)("li",{parentName:"ul"},"\u7ebf\u7a0b\u672c\u5730\u63e1\u624b\uff0c\u5141\u8bb8\u5728\u4e0d\u6267\u884c\u5168\u5c40 VM \u5b89\u5168\u70b9\u7684\u60c5\u51b5\u4e0b\u6267\u884c\u7ebf\u7a0b\u56de\u8c03\uff0c\u53ef\u4ee5\u505c\u6b62\u5355\u4e2a\u7ebf\u7a0b\uff0c\u800c\u4e0d\u9700\u8981\u505c\u6b62\u6240\u6709\u7ebf\u7a0b\u6216\u4e0d\u505c\u6b62\u7ebf\u7a0b"),(0,r.yg)("li",{parentName:"ul"},"Optional \u65b0\u589e orElseThrow() \u65b9\u6cd5"),(0,r.yg)("li",{parentName:"ul"},"\u7c7b\u6570\u636e\u5171\u4eab"),(0,r.yg)("li",{parentName:"ul"},"Unicode \u8bed\u8a00\u6807\u7b7e\u6269\u5c55"),(0,r.yg)("li",{parentName:"ul"},"\u6839\u8bc1\u4e66")),(0,r.yg)("p",null,(0,r.yg)("strong",{parentName:"p"},(0,r.yg)("em",{parentName:"strong"},"\u91cd\u8981\u7279\u6027\uff1a\u901a\u8fc7 var \u5173\u952e\u5b57\u5b9e\u73b0\u5c40\u90e8\u53d8\u91cf\u7c7b\u578b\u63a8\u65ad\uff0c\u4f7f Java \u8bed\u8a00\u53d8\u6210\u5f31\u7c7b\u578b\u8bed\u8a00\u3001JVM \u7684 G1 \u5783\u573e\u56de\u6536\u7531\u5355\u7ebf\u7a0b\u6539\u6210\u591a\u7ebf\u7a0b\u5e76\u884c\u5904\u7406\uff0c\u964d\u4f4e G1 \u7684\u505c\u987f\u65f6\u95f4\u3002"))),(0,r.yg)("h4",{id:"jdk-11-\u65b0\u7279\u60272018-\u5e74-9-\u6708lts-\u7248\u672c"},"JDK 11 \u65b0\u7279\u6027\uff082018 \u5e74 9 \u6708\uff09\uff08LTS \u7248\u672c\uff09"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"\u589e\u52a0\u4e00\u4e9b\u5b57\u7b26\u4e32\u5904\u7406\u65b9\u6cd5"),(0,r.yg)("li",{parentName:"ul"},"\u7528\u4e8e Lambda \u53c2\u6570\u7684\u5c40\u90e8\u53d8\u91cf\u8bed\u6cd5"),(0,r.yg)("li",{parentName:"ul"},"Http Client \u91cd\u5199\uff0c\u652f\u6301 HTTP/1.1 \u548c HTTP/2\uff0c\u4e5f\u652f\u6301 websockets"),(0,r.yg)("li",{parentName:"ul"},"\u53ef\u8fd0\u884c\u5355\u4e00 Java \u6e90\u7801\u6587\u4ef6\uff0c\u5982\uff1ajava Test.java"),(0,r.yg)("li",{parentName:"ul"},"ZGC\uff1a\u53ef\u4f38\u7f29\u4f4e\u5ef6\u8fdf\u5783\u573e\u6536\u96c6\u5668\u3002ZGC \u53ef\u4ee5\u770b\u4f5c\u662f G1 \u4e4b\u4e0a\u66f4\u7ec6\u7c92\u5ea6\u7684\u5185\u5b58\u7ba1\u7406\u7b56\u7565\u3002\u7531\u4e8e\u5185\u5b58\u7684\u4e0d\u65ad\u5206\u914d\u56de\u6536\u4f1a\u4ea7\u751f\u5927\u91cf\u7684\u5185\u5b58\u788e\u7247\u7a7a\u95f4\uff0c\u56e0\u6b64\u9700\u8981\u6574\u7406\u7b56\u7565\u9632\u6b62\u5185\u5b58\u7a7a\u95f4\u788e\u7247\u5316\u3002\u5728\u6574\u7406\u671f\u95f4\u9700\u8981\u5c06\u5bf9\u4e8e\u5185\u5b58\u5f15\u7528\u7684\u7ebf\u7a0b\u903b\u8f91\u6682\u505c\uff0c\u8fd9\u4e2a\u8fc7\u7a0b\u88ab\u79f0\u4e3a\u201cStop the world\u201d\u3002\u53ea\u6709\u5f53\u6574\u7406\u5b8c\u6210\u540e\uff0c\u7ebf\u7a0b\u903b\u8f91\u624d\u53ef\u4ee5\u7ee7\u7eed\u8fd0\u884c\u3002\uff08\u5e76\u884c\u56de\u6536\uff09"),(0,r.yg)("li",{parentName:"ul"},"\u652f\u6301 TLS 1.3 \u534f\u8bae"),(0,r.yg)("li",{parentName:"ul"},"Flight Recorder\uff08\u98de\u884c\u8bb0\u5f55\u5668\uff09\uff0c\u57fa\u4e8e OS\u3001JVM \u548c JDK \u7684\u4e8b\u4ef6\u4ea7\u751f\u7684\u6570\u636e\u6536\u96c6\u6846\u67b6"),(0,r.yg)("li",{parentName:"ul"},"\u5bf9 Stream\u3001Optional\u3001\u96c6\u5408 API \u8fdb\u884c\u589e\u5f3a")),(0,r.yg)("p",null,(0,r.yg)("strong",{parentName:"p"},(0,r.yg)("em",{parentName:"strong"},"\u91cd\u8981\u7279\u6027\uff1a\u5bf9\u4e8e JDK 9 \u548c JDK 10 \u7684\u5b8c\u5584\uff0c\u4e3b\u8981\u662f\u5bf9\u4e8e Stream\u3001\u96c6\u5408\u7b49 API \u7684\u589e\u5f3a\u3001\u65b0\u589e ZGC \u5783\u573e\u6536\u96c6\u5668\u3002"))),(0,r.yg)("h4",{id:"jdk-12-\u65b0\u7279\u60272019-\u5e74-3-\u6708"},"JDK 12 \u65b0\u7279\u6027\uff082019 \u5e74 3 \u6708\uff09"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"Switch \u8868\u8fbe\u5f0f\u6269\u5c55\uff0c\u53ef\u4ee5\u6709\u8fd4\u56de\u503c"),(0,r.yg)("li",{parentName:"ul"},"\u65b0\u589e NumberFormat \u5bf9\u590d\u6742\u6570\u5b57\u7684\u683c\u5f0f\u5316"),(0,r.yg)("li",{parentName:"ul"},"\u5b57\u7b26\u4e32\u652f\u6301 transform\u3001indent \u64cd\u4f5c"),(0,r.yg)("li",{parentName:"ul"},"\u65b0\u589e\u65b9\u6cd5 Files.mismatch(Path, Path)"),(0,r.yg)("li",{parentName:"ul"},"Teeing Collector"),(0,r.yg)("li",{parentName:"ul"},"\u652f\u6301 unicode 11"),(0,r.yg)("li",{parentName:"ul"},"Shenandoah GC\uff0c\u65b0\u589e\u7684 GC \u7b97\u6cd5"),(0,r.yg)("li",{parentName:"ul"},"G1 \u6536\u96c6\u5668\u7684\u4f18\u5316\uff0c\u5c06 GC \u7684\u5783\u573e\u5206\u4e3a\u5f3a\u5236\u90e8\u5206\u548c\u53ef\u9009\u90e8\u5206\uff0c\u5f3a\u5236\u90e8\u5206\u4f1a\u88ab\u56de\u6536\uff0c\u53ef\u9009\u90e8\u5206\u53ef\u80fd\u4e0d\u4f1a\u88ab\u56de\u6536\uff0c\u63d0\u9ad8 GC \u7684\u6548\u7387")),(0,r.yg)("p",null,(0,r.yg)("strong",{parentName:"p"},(0,r.yg)("em",{parentName:"strong"},"\u91cd\u8981\u7279\u6027\uff1aswitch \u8868\u8fbe\u5f0f\u8bed\u6cd5\u6269\u5c55\u3001G1 \u6536\u96c6\u5668\u4f18\u5316\u3001\u65b0\u589e Shenandoah GC \u5783\u573e\u56de\u6536\u7b97\u6cd5\u3002"))),(0,r.yg)("h4",{id:"jdk-13-\u65b0\u7279\u60272019-\u5e74-9-\u6708"},"JDK 13 \u65b0\u7279\u6027\uff082019 \u5e74 9 \u6708\uff09"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"Switch \u8868\u8fbe\u5f0f\u6269\u5c55\uff0cSwitch \u8868\u8fbe\u5f0f\u589e\u52a0 yield \u5173\u952e\u5b57\u7528\u4e8e\u8fd4\u56de\u7ed3\u679c\uff0c\u4f5c\u7528\u7c7b\u4f3c\u4e8e return\uff0c\u5982\u679c\u6ca1\u6709\u8fd4\u56de\u7ed3\u679c\u5219\u4f7f\u7528 break"),(0,r.yg)("li",{parentName:"ul"},'\u6587\u672c\u5757\u5347\u7ea7 """ \uff0c\u5f15\u5165\u4e86\u6587\u672c\u5757\uff0c\u53ef\u4ee5\u4f7f\u7528 3 \u4e2a\u53cc\u5f15\u53f7\u8868\u793a\u6587\u672c\u5757\uff0c\u6587\u672c\u5757\u5185\u90e8\u4e0d\u9700\u8981\u4f7f\u7528\u6362\u884c\u7684\u8f6c\u4e49\u5b57\u7b26'),(0,r.yg)("li",{parentName:"ul"},"SocketAPI \u91cd\u6784\uff0cSocket \u7684\u5e95\u5c42\u5b9e\u73b0\u4f18\u5316\uff0c\u5f15\u5165\u4e86 NIO"),(0,r.yg)("li",{parentName:"ul"},"FileSystems.newFileSystem \u65b0\u65b9\u6cd5"),(0,r.yg)("li",{parentName:"ul"},"ZGC \u4f18\u5316\uff0c\u589e\u5f3a ZGC \u91ca\u653e\u672a\u4f7f\u7528\u5185\u5b58\uff0c\u5c06\u6807\u8bb0\u957f\u65f6\u95f4\u7a7a\u95f2\u7684\u5806\u5185\u5b58\u7a7a\u95f4\u8fd4\u8fd8\u7ed9\u64cd\u4f5c\u7cfb\u7edf\uff0c\u4fdd\u8bc1\u5806\u5927\u5c0f\u4e0d\u4f1a\u5c0f\u4e8e\u914d\u7f6e\u7684\u6700\u5c0f\u5806\u5185\u5b58\u5927\u5c0f\uff0c\u5982\u679c\u5806\u6700\u5927\u548c\u6700\u5c0f\u5185\u5b58\u5927\u5c0f\u8bbe\u7f6e\u4e00\u6837\uff0c\u5219\u4e0d\u4f1a\u91ca\u653e\u5185\u5b58\u8fd8\u7ed9\u64cd\u4f5c\u7cfb\u7edf"),(0,r.yg)("li",{parentName:"ul"},"\u91cd\u8981\u7279\u6027\uff1aZGC \u4f18\u5316\uff0c\u91ca\u653e\u5185\u5b58\u8fd8\u7ed9\u64cd\u4f5c\u7cfb\u7edf\u3001Socket \u5e95\u5c42\u5b9e\u73b0\u5f15\u5165 NIO\u3002")),(0,r.yg)("h4",{id:"jdk-14-\u65b0\u7279\u60272020-\u5e74-3-\u6708"},"JDK 14 \u65b0\u7279\u6027\uff082020 \u5e74 3 \u6708\uff09"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"instanceof \u6a21\u5f0f\u5339\u914d\uff0cinstanceof \u7c7b\u578b\u5339\u914d\u8bed\u6cd5\u7b80\u5316\uff0c\u53ef\u4ee5\u76f4\u63a5\u7ed9\u5bf9\u8c61\u8d4b\u503c\uff0c\u5982 if(obj instanceof String str)\uff0c\u5982\u679c obj \u662f\u5b57\u7b26\u4e32\u7c7b\u578b\u5219\u76f4\u63a5\u8d4b\u503c\u7ed9\u4e86 str \u53d8\u91cf"),(0,r.yg)("li",{parentName:"ul"},"\u5f15\u5165 Record \u7c7b\u578b\uff0c\u7c7b\u4f3c\u4e8e Lombok \u7684 @Data \u6ce8\u89e3\uff0c\u53ef\u4ee5\u5411 Lombok \u4e00\u6837\u81ea\u52a8\u751f\u6210\u6784\u9020\u5668\u3001equals\u3001getter \u7b49\u65b9\u6cd5"),(0,r.yg)("li",{parentName:"ul"},"Switch \u8868\u8fbe\u5f0f-\u6807\u51c6\u5316"),(0,r.yg)("li",{parentName:"ul"},"\u6539\u8fdb NullPointerExceptions \u63d0\u793a\u4fe1\u606f\uff0c\u6253\u5370\u5177\u4f53\u54ea\u4e2a\u65b9\u6cd5\u629b\u7684\u7a7a\u6307\u9488\u5f02\u5e38\uff0c\u907f\u514d\u540c\u4e00\u884c\u4ee3\u7801\u591a\u4e2a\u51fd\u6570\u8c03\u7528\u65f6\u65e0\u6cd5\u5224\u65ad\u5177\u4f53\u662f\u54ea\u4e2a\u51fd\u6570\u629b\u5f02\u5e38\u7684\u56f0\u6270\uff0c\u65b9\u4fbf\u5f02\u5e38\u6392\u67e5"),(0,r.yg)("li",{parentName:"ul"},"\u5220\u9664 CMS \u5783\u573e\u56de\u6536\u5668"),(0,r.yg)("li",{parentName:"ul"},"JDK 15 \u65b0\u7279\u6027\uff082020 \u5e74 9 \u6708\uff09"),(0,r.yg)("li",{parentName:"ul"},"EdDSA \u6570\u5b57\u7b7e\u540d\u7b97\u6cd5"),(0,r.yg)("li",{parentName:"ul"},"Sealed Classes\uff08\u5c01\u95ed\u7c7b\uff0c\u9884\u89c8\uff09\uff0c\u901a\u8fc7 sealed \u5173\u952e\u5b57\u4fee\u9970\u62bd\u8c61\u7c7b\u9650\u5b9a\u53ea\u5141\u8bb8\u6307\u5b9a\u7684\u5b50\u7c7b\u624d\u53ef\u4ee5\u5b9e\u73b0\u6216\u7ee7\u627f\u62bd\u8c61\u7c7b\uff0c\u907f\u514d\u62bd\u8c61\u7c7b\u88ab\u6ee5\u7528"),(0,r.yg)("li",{parentName:"ul"},"Hidden Classes\uff08\u9690\u85cf\u7c7b\uff09"),(0,r.yg)("li",{parentName:"ul"},"\u79fb\u9664 Nashorn JavaScript \u5f15\u64ce"),(0,r.yg)("li",{parentName:"ul"},"\u6539\u8fdb java.net.DatagramSocket \u548c java.net.MulticastSocket \u5e95\u5c42\u5b9e\u73b0")),(0,r.yg)("h4",{id:"jdk-16-\u65b0\u7279\u60272021-\u5e74-3-\u6708"},"JDK 16 \u65b0\u7279\u6027\uff082021 \u5e74 3 \u6708\uff09"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"\u5141\u8bb8\u5728 JDK C ++\u6e90\u4ee3\u7801\u4e2d\u4f7f\u7528 C ++ 14 \u529f\u80fd"),(0,r.yg)("li",{parentName:"ul"},"ZGC \u6027\u80fd\u4f18\u5316\uff0c\u53bb\u6389 ZGC \u7ebf\u7a0b\u5806\u6808\u5904\u7406\u4ece\u5b89\u5168\u70b9\u5230\u5e76\u53d1\u9636\u6bb5"),(0,r.yg)("li",{parentName:"ul"},"\u589e\u52a0 Unix \u57df\u5957\u63a5\u5b57\u901a\u9053"),(0,r.yg)("li",{parentName:"ul"},"\u5f39\u6027\u5143\u7a7a\u95f4\u80fd\u529b"),(0,r.yg)("li",{parentName:"ul"},"\u63d0\u4f9b\u7528\u4e8e\u6253\u5305\u72ec\u7acb Java \u5e94\u7528\u7a0b\u5e8f\u7684 jpackage \u5de5\u5177")),(0,r.yg)("p",null,"JDK 16 \u76f8\u5f53\u4e8e\u662f\u5c06 JDK 14\u3001JDK 15 \u7684\u4e00\u4e9b\u7279\u6027\u8fdb\u884c\u4e86\u6b63\u5f0f\u5f15\u5165\uff0c\u5982 instanceof \u6a21\u5f0f\u5339\u914d\uff08Pattern matching\uff09\u3001record \u7684\u5f15\u5165\u7b49\u6700\u7ec8\u5230 JDK 16 \u53d8\u6210\u4e86 final \u7248\u672c\u3002"),(0,r.yg)("h4",{id:"jdk-17-\u65b0\u7279\u60272021-\u5e74-9-\u6708lts-\u7248\u672c"},"JDK 17 \u65b0\u7279\u6027\uff082021 \u5e74 9 \u6708\uff09\uff08LTS \u7248\u672c\uff09"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"Free Java License"),(0,r.yg)("li",{parentName:"ul"},"JDK 17 \u5c06\u53d6\u4ee3 JDK 11 \u6210\u4e3a\u4e0b\u4e00\u4e2a\u957f\u671f\u652f\u6301\u7248\u672c"),(0,r.yg)("li",{parentName:"ul"},"Spring 6 \u548c Spring Boot 3 \u9700\u8981 JDK17"),(0,r.yg)("li",{parentName:"ul"},"\u79fb\u9664\u5b9e\u9a8c\u6027\u7684 AOT \u548c JIT \u7f16\u8bd1\u5668"),(0,r.yg)("li",{parentName:"ul"},"\u6062\u590d\u59cb\u7ec8\u6267\u884c\u4e25\u683c\u6a21\u5f0f (Always-Strict) \u7684\u6d6e\u70b9\u5b9a\u4e49"),(0,r.yg)("li",{parentName:"ul"},"\u6b63\u5f0f\u5f15\u5165\u5bc6\u5c01\u7c7b sealed class\uff0c\u9650\u5236\u62bd\u8c61\u7c7b\u7684\u5b9e\u73b0"),(0,r.yg)("li",{parentName:"ul"},"\u7edf\u4e00\u65e5\u5fd7\u5f02\u6b65\u5237\u65b0\uff0c\u5148\u5c06\u65e5\u5fd7\u5199\u5165\u7f13\u5b58\uff0c\u7136\u540e\u518d\u5f02\u6b65\u5237\u65b0")),(0,r.yg)("p",null,"\u867d\u7136 JDK 17 \u4e5f\u662f\u4e00\u4e2a LTS \u7248\u672c\uff0c\u4f46\u662f\u5e76\u6ca1\u6709\u50cf JDK 8 \u548c JDK 11 \u4e00\u6837\u5f15\u5165\u6bd4\u8f83\u7a81\u51fa\u7684\u7279\u6027\uff0c\u4e3b\u8981\u662f\u5bf9\u524d\u51e0\u4e2a\u7248\u672c\u7684\u6574\u5408\u548c\u5b8c\u5584\u3002"),(0,r.yg)("h4",{id:"jdk-21-\u65b0\u7279\u60272023-\u5e74-9-\u6708"},"JDK 21 \u65b0\u7279\u6027\uff082023 \u5e74 9 \u6708\uff09"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"\u5b57\u7b26\u4e32\u6a21\u677f\uff0c\u53ef\u4ee5\u50cf\u5176\u4ed6\u8bed\u8a00\u90a3\u6837\u5b50\u65b9\u4fbf\u7684\u505a\u5b57\u7b26\u4e32\u62fc\u63a5\uff0c\u662f+\u53f7\uff0cStringBuilder\uff0cMessageFormat \u4e4b\u5916\u66f4\u65b9\u4fbf\u7684\u5b57\u7b26\u4e32\u62fc\u63a5\u65b9\u6cd5\u3002\n\u6ce8\u610f\uff1a\u8fd9\u4e2a\u7279\u6027\u867d\u7136\u8fd8\u5728\u9884\u89c8\u9636\u6bb5\uff0c\u8fd8\u4e0d\u5c5e\u4e8e\u6b63\u5f0f\u53d1\u5e03\uff0c\u4f46\u662f\u82e5\u80fd\u6700\u7ec8\u8fdb\u5165\u53d1\u5e03\uff0c\u80fd\u591f\u5927\u5927\u51cf\u8f7b\u4e86 Java \u7f16\u7a0b\u65f6\u590d\u6742\u5b57\u7b26\u4e32\u7684\u7f16\u8f91\u5904\u7406\u5de5\u4f5c\u91cf\u3002"),(0,r.yg)("li",{parentName:"ul"},"\u5f15\u5165\u65b0\u7684\u63a5\u53e3\u6765\u8868\u793a\u5177\u6709\u5b9a\u4e49\u76f8\u9047\u987a\u5e8f\u7684\u96c6\u5408\u3002\u6bcf\u4e2a\u8fd9\u6837\u7684\u96c6\u5408\u90fd\u6709\u5b9a\u4e49\u660e\u786e\u7684\u7b2c\u4e00\u4e2a\u5143\u7d20\u3001\u7b2c\u4e8c\u4e2a\u5143\u7d20\uff0c\u4ee5\u6b64\u7c7b\u63a8\uff0c\u76f4\u5230\u6700\u540e\u4e00\u4e2a\u5143\u7d20\u3002\u5b83\u8fd8\u63d0\u4f9b\u4e86\u7edf\u4e00\u7684\u5e94\u7528\u7a0b\u5e8f\u63a5\u53e3\uff0c\u7528\u4e8e\u8bbf\u95ee\u5176\u7b2c\u4e00\u4e2a\u548c\u6700\u540e\u4e00\u4e2a\u5143\u7d20\uff0c\u4ee5\u53ca\u4ee5\u76f8\u53cd\u7684\u987a\u5e8f\u5904\u7406\u5176\u5143\u7d20\u3002"),(0,r.yg)("li",{parentName:"ul"},"\u901a\u8fc7\u6269\u5c55 Z \u5783\u573e\u6536\u96c6\u5668\uff08ZGC\uff09\uff0c\u4e3a\u65b0\u65e7\u5bf9\u8c61\u5206\u522b\u4fdd\u7559\u4e0d\u540c\u7684\u4e16\u4ee3\uff0c\u4ece\u800c\u63d0\u9ad8\u5e94\u7528\u7a0b\u5e8f\u7684\u6027\u80fd\u3002\u8fd9\u5c06\u5141\u8bb8 ZGC \u66f4\u9891\u7e41\u5730\u6536\u96c6\u5e74\u8f7b\u4ee3\u7684\u5bf9\u8c61\uff08\u5bf9\u8c61\u5f80\u5f80\u9891\u7e41\u5730\u82f1\u5e74\u65e9\u901d\uff09\u3002"),(0,r.yg)("li",{parentName:"ul"},"\u4f7f\u7528\u8bb0\u5f55\u6a21\u5f0f\u6765\u89e3\u6784\u8bb0\u5f55\u503c\uff0c\u4ece\u800c\u589e\u5f3a Java \u7f16\u7a0b\u8bed\u8a00\u7684\u529f\u80fd\u3002\u8bb0\u5f55\u6a21\u5f0f\u548c\u7c7b\u578b\u6a21\u5f0f\u53ef\u4ee5\u5d4c\u5957\uff0c\u4ee5\u5b9e\u73b0\u5f3a\u5927\u3001\u58f0\u660e\u6027\u548c\u53ef\u7ec4\u5408\u7684\u6570\u636e\u5bfc\u822a\u548c\u5904\u7406\u5f62\u5f0f\u3002"),(0,r.yg)("li",{parentName:"ul"},"\u7528\u6a21\u5f0f\u5339\u914d\u6765\u589e\u5f3a Java \u7f16\u7a0b\u8bed\u8a00\u7684\u5f00\u5173\u8868\u8fbe\u5f0f\u548c\u8bed\u53e5\u3002\u5c06\u6a21\u5f0f\u5339\u914d\u6269\u5c55\u5230\u5f00\u5173\u540e\uff0c\u8868\u8fbe\u5f0f\u5c31\u53ef\u4ee5\u6839\u636e\u591a\u4e2a\u6a21\u5f0f\uff08\u6bcf\u4e2a\u6a21\u5f0f\u90fd\u6709\u7279\u5b9a\u7684\u64cd\u4f5c\uff09\u8fdb\u884c\u6d4b\u8bd5\uff0c\u4ece\u800c\u53ef\u4ee5\u7b80\u6d01\u5b89\u5168\u5730\u8868\u8fbe\u9762\u5411\u6570\u636e\u7684\u590d\u6742\u67e5\u8be2\u3002"),(0,r.yg)("li",{parentName:"ul"},"\u5f15\u5165\u4e00\u4e2a\u5e94\u7528\u7a0b\u5e8f\u63a5\u53e3\uff08API\uff09\uff0c\u4f7f Java \u7a0b\u5e8f\u80fd\u591f\u4e0e Java \u8fd0\u884c\u65f6\u4e4b\u5916\u7684\u4ee3\u7801\u548c\u6570\u636e\u4e92\u64cd\u4f5c\u3002\u901a\u8fc7\u9ad8\u6548\u5730\u8c03\u7528\u5916\u6765\u51fd\u6570\uff08\u5373 JVM \u4e4b\u5916\u7684\u4ee3\u7801\uff09\u548c\u5b89\u5168\u5730\u8bbf\u95ee\u5916\u6765\u5185\u5b58\uff08\u5373 JVM \u7ba1\u7406\u4e4b\u5916\u7684\u5185\u5b58\uff09\uff0c- API \u4f7f Java \u7a0b\u5e8f\u80fd\u591f\u8c03\u7528\u672c\u5730\u5e93\u548c\u5904\u7406\u672c\u5730\u6570\u636e\uff0c\u800c\u4e0d\u4f1a\u51fa\u73b0 JNI \u7684\u8106\u6027\u548c\u5371\u9669\u3002\u8fd9\u662f\u4e00\u4e2a\u9884\u89c8\u7248 API\u3002"),(0,r.yg)("li",{parentName:"ul"},"\u4f7f\u7528\u672a\u547d\u540d\u6a21\u5f0f\u548c\u672a\u547d\u540d\u53d8\u91cf\u6765\u589e\u5f3a Java \u8bed\u8a00\u7684\u529f\u80fd\u3002\u672a\u547d\u540d\u6a21\u5f0f\u7528\u4e8e\u5339\u914d\u8bb0\u5f55\u7ec4\u4ef6\uff0c\u4f46\u4e0d\u8bf4\u660e\u8be5\u7ec4\u4ef6\u7684\u540d\u79f0\u6216\u7c7b\u578b\uff1b\u672a\u547d\u540d\u53d8\u91cf\u7528\u4e8e\u521d\u59cb\u5316\u4f46\u4e0d\u4f7f\u7528\u3002\u4e24\u8005\u90fd\u7528\u4e0b\u5212\u7ebf\u5b57\u7b26 ","_"," \u8868\u793a\u3002\u8fd9\u662f\u4e00\u9879\u9884\u89c8\u8bed\u8a00\u529f\u80fd\u3002"),(0,r.yg)("li",{parentName:"ul"},"\u5c06\u865a\u62df\u7ebf\u7a0b\u5f15\u5165 Java \u5e73\u53f0\u3002\u865a\u62df\u7ebf\u7a0b\u662f\u4e00\u79cd\u8f7b\u91cf\u7ea7\u7ebf\u7a0b\uff0c\u53ef\u5927\u5927\u51cf\u5c11\u7f16\u5199\u3001\u7ef4\u62a4\u548c\u89c2\u5bdf\u9ad8\u541e\u5410\u91cf\u5e76\u53d1\u5e94\u7528\u7a0b\u5e8f\u7684\u5de5\u4f5c\u91cf\u3002"),(0,r.yg)("li",{parentName:"ul"},"\u5f15\u5165\u5bc6\u94a5\u5c01\u88c5\u673a\u5236\uff08KEM\uff09\u7684 API \u63a5\u53e3\uff0c\u8fd9\u662f\u4e00\u79cd\u4f7f\u7528\u516c\u94a5\u52a0\u5bc6\u6cd5\u786e\u4fdd\u5bf9\u79f0\u5bc6\u94a5\u5b89\u5168\u7684\u52a0\u5bc6\u6280\u672f\u3002"),(0,r.yg)("li",{parentName:"ul"},"\u901a\u8fc7\u5f15\u5165\u7ed3\u6784\u5316\u5e76\u53d1 API \u6765\u7b80\u5316\u5e76\u53d1\u7f16\u7a0b\u3002\u7ed3\u6784\u5316\u5e76\u53d1\u5c06\u5728\u4e0d\u540c\u7ebf\u7a0b\u4e2d\u8fd0\u884c\u7684\u4e00\u7ec4\u76f8\u5173\u4efb\u52a1\u89c6\u4e3a\u4e00\u4e2a\u5de5\u4f5c\u5355\u5143\uff0c\u4ece\u800c\u7b80\u5316\u4e86\u9519\u8bef\u5904\u7406\u548c\u53d6\u6d88\uff0c\u63d0\u9ad8\u4e86\u53ef\u9760\u6027\u5e76\u589e\u5f3a\u4e86\u53ef\u89c2\u5bdf\u6027\u3002\u8fd9\u662f\u4e00\u4e2a\u9884\u89c8\u7248 API\u3002")))}o.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ed01863f.948180e2.js b/assets/js/ed01863f.7d6940fc.js similarity index 99% rename from assets/js/ed01863f.948180e2.js rename to assets/js/ed01863f.7d6940fc.js index b74c6e690..40de1f138 100644 --- a/assets/js/ed01863f.948180e2.js +++ b/assets/js/ed01863f.7d6940fc.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7144],{5680:(e,t,a)=>{a.d(t,{xA:()=>m,yg:()=>s});var r=a(6540);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var o=r.createContext({}),u=function(e){var t=r.useContext(o),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},m=function(e){var t=u(e.components);return r.createElement(o.Provider,{value:t},e.children)},c="mdxType",g={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,l=e.originalType,o=e.parentName,m=p(e,["components","mdxType","originalType","parentName"]),c=u(a),y=n,s=c["".concat(o,".").concat(y)]||c[y]||g[y]||l;return a?r.createElement(s,i(i({ref:t},m),{},{components:a})):r.createElement(s,i({ref:t},m))}));function s(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=a.length,i=new Array(l);i[0]=y;var p={};for(var o in t)hasOwnProperty.call(t,o)&&(p[o]=t[o]);p.originalType=e,p[c]="string"==typeof e?e:n,i[1]=p;for(var u=2;u{a.r(t),a.d(t,{assets:()=>o,contentTitle:()=>i,default:()=>g,frontMatter:()=>l,metadata:()=>p,toc:()=>u});var r=a(8168),n=(a(6540),a(5680));const l={},i=void 0,p={unversionedId:"xuanxing/thingsboard/\u6e90\u7801\u7ed3\u6784",id:"xuanxing/thingsboard/\u6e90\u7801\u7ed3\u6784",title:"\u6e90\u7801\u7ed3\u6784",description:"swagger",source:"@site/docs/xuanxing/thingsboard/\u6e90\u7801\u7ed3\u6784.md",sourceDirName:"xuanxing/thingsboard",slug:"/xuanxing/thingsboard/\u6e90\u7801\u7ed3\u6784",permalink:"/docs/xuanxing/thingsboard/\u6e90\u7801\u7ed3\u6784",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"xuanxingSidebar",previous:{title:"\u5982\u4f55\u4f7f\u7528",permalink:"/docs/xuanxing/thingsboard/\u5982\u4f55\u4f7f\u7528"}},o={},u=[{value:"swagger",id:"swagger",level:3},{value:"\u6e90\u7801\u7ed3\u6784",id:"\u6e90\u7801\u7ed3\u6784",level:3}],m={toc:u},c="wrapper";function g(e){let{components:t,...a}=e;return(0,n.yg)(c,(0,r.A)({},m,a,{components:t,mdxType:"MDXLayout"}),(0,n.yg)("h3",{id:"swagger"},"swagger"),(0,n.yg)("p",null,"http://localhost:8080/swagger-ui.html"),(0,n.yg)("h3",{id:"\u6e90\u7801\u7ed3\u6784"},"\u6e90\u7801\u7ed3\u6784"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},"application \u4e3b\u7a0b\u5e8f\u5165\u53e3\u6a21\u5757\uff0c\u91cd\u70b9\u5173\u6ce8ThingsboardServerApplication\u542f\u52a8\u7c7b"),(0,n.yg)("li",{parentName:"ul"},"common \u516c\u5171\u6a21\u5757\u7ec4",(0,n.yg)("ul",{parentName:"li"},(0,n.yg)("li",{parentName:"ul"},"actor actor\u5f00\u53d1\u6a21\u578b\u63a5\u53e3\u6a21\u5757 \u5b9e\u73b0\u5728application\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"cache Redis/Caffeine\u7f13\u5b58\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"cluster-api \u96c6\u7fa4\u529f\u80fd\u63a5\u53e3\u6a21\u5757\uff0c\u961f\u5217\u3001\u6d88\u606f\u901a\u77e5\u7b49"),(0,n.yg)("li",{parentName:"ul"},"coap-server coap\u534f\u8bae\u5b9e\u73b0\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"dao-api dao\u5c42\u63a5\u53e3\u6a21\u5757\uff0c\u5168\u662f\u63a5\u53e3\uff0c\u6ca1\u6709\u5b9e\u73b0"),(0,n.yg)("li",{parentName:"ul"},"data \u5b9e\u4f53\u6a21\u5757\uff0c\u5168\u662f\u4e00\u4e9bDTO\u3001entity\u3001pojo\u7b49\uff0c\u6700\u57fa\u7840\u7684\u6e90\u7801\u5305\uff0c\u4e0d\u4f9d\u8d56\u4efb\u4f55\u5176\u4ed6\u6e90\u7801\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"edge-api \u8fb9\u7f18\u7aefapi\uff0c\u4e3b\u8981\u662f\u8c03\u7528\u7f51\u5173\u7aef\u7684rpc\u8c03\u7528\uff0c\u76ee\u524d\u4ee3\u7801\u6ca1\u6709\u7528\u5230\u6b64\u5305\u7684\u5185\u5bb9"),(0,n.yg)("li",{parentName:"ul"},"message \u6d88\u606f\u901a\u7528\u6a21\u5757\uff0c\u4e2d\u95f4\u4ef6\u6d88\u606f\u3001\u89c4\u5219\u94fe\u6d88\u606f\u7b49\uff0c\u504f\u63a5\u53e3\u3001\u5b9e\u4f53\u3001\u5f02\u5e38\u7c7b"),(0,n.yg)("li",{parentName:"ul"},"queue \u6d88\u606f\u4e2d\u95f4\u4ef6\u3001\u6d88\u606f\u961f\u5217"),(0,n.yg)("li",{parentName:"ul"},"script",(0,n.yg)("ul",{parentName:"li"},(0,n.yg)("li",{parentName:"ul"},"remote-js-client \u8fdc\u7a0b\u6267\u884cjs\u5ba2\u6237\u7aef\uff0c\u6e90\u7801\u6ca1\u6709\u7528\u5230"),(0,n.yg)("li",{parentName:"ul"},"script-api js\u811a\u672c\u6267\u884c\u6a21\u5757\uff0c\u6e90\u7801\u6ca1\u6709\u7528\u5230"))),(0,n.yg)("li",{parentName:"ul"},"stats \u72b6\u6001\u7edf\u8ba1\u3001\u6d88\u606f\u7edf\u8ba1"),(0,n.yg)("li",{parentName:"ul"},"transport \u4f20\u8f93\u6a21\u5757\u7ec4",(0,n.yg)("ul",{parentName:"li"},(0,n.yg)("li",{parentName:"ul"},"coap coap\u534f\u8bae\u4f20\u8f93\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"http http\u534f\u8bae\u4f20\u8f93\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"lwm2m lwm2m\u534f\u8bae\u4f20\u8f93\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"mqtt mqtt\u534f\u8bae\u4f20\u8f93\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"snmp snmp\u534f\u8bae\u4f20\u8f93\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"transport-api \u57fa\u7840\u4f20\u8f93\u6a21\u5757 \u4e0a\u9762\u7684\u4f20\u8f93\u6a21\u5757\u90fd\u9700\u8981\u4f9d\u8d56\u4ed6\uff0c\u4ed6\u7b97\u662f\u6bd4\u8f83\u57fa\u7840\u7684\u6a21\u5757\u4e86"))),(0,n.yg)("li",{parentName:"ul"},"util \u5de5\u5177\u7c7b\u6a21\u5757\uff0c\u53ea\u4f9d\u8d56common/data\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"version-control TODO \u7248\u672c\u63a7\u5236\uff0c\u5177\u4f53\u4e1a\u52a1\u8fd8\u6ca1\u641e\u61c2"))),(0,n.yg)("li",{parentName:"ul"},"dao \u5177\u4f53\u7684dao\u5b9e\u73b0\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"docker \u542f\u7528\u5fae\u670d\u52a1\u7684docker\u914d\u7f6e\u76ee\u5f55\uff0c\u811a\u672c\u3001docker\u914d\u7f6e\u6587\u4ef6\u7b49"),(0,n.yg)("li",{parentName:"ul"},"msa microservices aplication\u5fae\u670d\u52a1\u6a21\u5757\u7ec4",(0,n.yg)("ul",{parentName:"li"},(0,n.yg)("li",{parentName:"ul"},"black-box-tests"),(0,n.yg)("li",{parentName:"ul"},"js-executor"),(0,n.yg)("li",{parentName:"ul"},"tb \u5355docker\u955c\u50cf"),(0,n.yg)("li",{parentName:"ul"},"tb-node"),(0,n.yg)("li",{parentName:"ul"},"transport \u534f\u8bae\u4f20\u8f93\u914d\u7f6edocker\u5fae\u670d\u52a1\u6a21\u5757\u7ec4",(0,n.yg)("ul",{parentName:"li"},(0,n.yg)("li",{parentName:"ul"},"coap coap\u534f\u8bae\u4f20\u8f93\u914d\u7f6edocker\u5fae\u670d\u52a1\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"http http\u534f\u8bae\u4f20\u8f93\u914d\u7f6edocker\u5fae\u670d\u52a1\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"lwm2m lwm2m\u534f\u8bae\u4f20\u8f93\u914d\u7f6edocker\u5fae\u670d\u52a1\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"mqtt mqtt\u534f\u8bae\u4f20\u8f93\u914d\u7f6edocker\u5fae\u670d\u52a1\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"snmp snmp\u534f\u8bae\u4f20\u8f93\u914d\u7f6edocker\u5fae\u670d\u52a1\u6a21\u5757"))),(0,n.yg)("li",{parentName:"ul"},"vc-executor TODO \u4f9d\u8d56common/version-control"),(0,n.yg)("li",{parentName:"ul"},"vc-executor-docker vc-executor\u7684docker\u914d\u7f6e\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"web-ui \u524d\u7aef\u7684docker\u914d\u7f6e\u6a21\u5757"))),(0,n.yg)("li",{parentName:"ul"},"netty-mqtt mqtt-broker\u534f\u8bae\u5b9e\u73b0\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"packing \u6253\u5305\u5de5\u5177\u76ee\u5f55\uff0c\u6253rpm\u3001deb\u5305"),(0,n.yg)("li",{parentName:"ul"},"rest-client \u4e8c\u5f00SDK\u6a21\u5757\uff0c\u4e8c\u5f00\u8bf7\u6c42\u5de5\u5177"),(0,n.yg)("li",{parentName:"ul"},"rule-engine \u89c4\u5219\u5f15\u64ce",(0,n.yg)("ul",{parentName:"li"},(0,n.yg)("li",{parentName:"ul"},"rule-engine-api \u89c4\u5219\u5f15\u64ce\u63a5\u53e3\u6a21\u5757\uff0c\u5168\u662f\u63a5\u53e3\uff0capplication\u4f1a\u5b9e\u73b0"),(0,n.yg)("li",{parentName:"ul"},"rule-engine-components \u89c4\u5219\u5f15\u64ce\u6240\u6709\u5143\u4ef6\u6a21\u5757"))),(0,n.yg)("li",{parentName:"ul"},"tools \u5404\u79cd\u5de5\u5177\u6a21\u5757\uff0c\u6570\u636e\u8fc1\u79fb\u5de5\u5177\u3001Python\u53d1\u9001\u6d88\u606f\u5de5\u5177\u3001shell\u5de5\u5177\u7b49\u7b49"),(0,n.yg)("li",{parentName:"ul"},"transport \u534f\u8bae\u4f20\u8f93\u914d\u7f6e\u542f\u52a8\u7c7b\u6a21\u5757",(0,n.yg)("ul",{parentName:"li"},(0,n.yg)("li",{parentName:"ul"},"coap coap\u534f\u8bae\u4f20\u8f93\u914d\u7f6e\u542f\u52a8\u7c7b\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"http http\u534f\u8bae\u4f20\u8f93\u914d\u7f6e\u542f\u52a8\u7c7b\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"lwm2m lwm2m\u534f\u8bae\u4f20\u8f93\u914d\u7f6e\u542f\u52a8\u7c7b\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"mqtt mqtt\u534f\u8bae\u4f20\u8f93\u914d\u7f6e\u542f\u52a8\u7c7b\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"snmp snmp\u534f\u8bae\u4f20\u8f93\u914d\u7f6e\u542f\u52a8\u7c7b\u6a21\u5757"))),(0,n.yg)("li",{parentName:"ul"},"ui-ngx \u524d\u7aef\u5de5\u7a0b\u6a21\u5757")))}g.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7144],{5680:(e,t,a)=>{a.d(t,{xA:()=>m,yg:()=>s});var r=a(6540);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var o=r.createContext({}),u=function(e){var t=r.useContext(o),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},m=function(e){var t=u(e.components);return r.createElement(o.Provider,{value:t},e.children)},c="mdxType",g={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,l=e.originalType,o=e.parentName,m=p(e,["components","mdxType","originalType","parentName"]),c=u(a),y=n,s=c["".concat(o,".").concat(y)]||c[y]||g[y]||l;return a?r.createElement(s,i(i({ref:t},m),{},{components:a})):r.createElement(s,i({ref:t},m))}));function s(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=a.length,i=new Array(l);i[0]=y;var p={};for(var o in t)hasOwnProperty.call(t,o)&&(p[o]=t[o]);p.originalType=e,p[c]="string"==typeof e?e:n,i[1]=p;for(var u=2;u{a.r(t),a.d(t,{assets:()=>o,contentTitle:()=>i,default:()=>g,frontMatter:()=>l,metadata:()=>p,toc:()=>u});var r=a(8168),n=(a(6540),a(5680));const l={},i=void 0,p={unversionedId:"xuanxing/thingsboard/\u6e90\u7801\u7ed3\u6784",id:"xuanxing/thingsboard/\u6e90\u7801\u7ed3\u6784",title:"\u6e90\u7801\u7ed3\u6784",description:"swagger",source:"@site/docs/xuanxing/thingsboard/\u6e90\u7801\u7ed3\u6784.md",sourceDirName:"xuanxing/thingsboard",slug:"/xuanxing/thingsboard/\u6e90\u7801\u7ed3\u6784",permalink:"/docs/xuanxing/thingsboard/\u6e90\u7801\u7ed3\u6784",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"xuanxingSidebar",previous:{title:"\u5982\u4f55\u4f7f\u7528",permalink:"/docs/xuanxing/thingsboard/\u5982\u4f55\u4f7f\u7528"}},o={},u=[{value:"swagger",id:"swagger",level:3},{value:"\u6e90\u7801\u7ed3\u6784",id:"\u6e90\u7801\u7ed3\u6784",level:3}],m={toc:u},c="wrapper";function g(e){let{components:t,...a}=e;return(0,n.yg)(c,(0,r.A)({},m,a,{components:t,mdxType:"MDXLayout"}),(0,n.yg)("h3",{id:"swagger"},"swagger"),(0,n.yg)("p",null,"http://localhost:8080/swagger-ui.html"),(0,n.yg)("h3",{id:"\u6e90\u7801\u7ed3\u6784"},"\u6e90\u7801\u7ed3\u6784"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},"application \u4e3b\u7a0b\u5e8f\u5165\u53e3\u6a21\u5757\uff0c\u91cd\u70b9\u5173\u6ce8ThingsboardServerApplication\u542f\u52a8\u7c7b"),(0,n.yg)("li",{parentName:"ul"},"common \u516c\u5171\u6a21\u5757\u7ec4",(0,n.yg)("ul",{parentName:"li"},(0,n.yg)("li",{parentName:"ul"},"actor actor\u5f00\u53d1\u6a21\u578b\u63a5\u53e3\u6a21\u5757 \u5b9e\u73b0\u5728application\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"cache Redis/Caffeine\u7f13\u5b58\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"cluster-api \u96c6\u7fa4\u529f\u80fd\u63a5\u53e3\u6a21\u5757\uff0c\u961f\u5217\u3001\u6d88\u606f\u901a\u77e5\u7b49"),(0,n.yg)("li",{parentName:"ul"},"coap-server coap\u534f\u8bae\u5b9e\u73b0\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"dao-api dao\u5c42\u63a5\u53e3\u6a21\u5757\uff0c\u5168\u662f\u63a5\u53e3\uff0c\u6ca1\u6709\u5b9e\u73b0"),(0,n.yg)("li",{parentName:"ul"},"data \u5b9e\u4f53\u6a21\u5757\uff0c\u5168\u662f\u4e00\u4e9bDTO\u3001entity\u3001pojo\u7b49\uff0c\u6700\u57fa\u7840\u7684\u6e90\u7801\u5305\uff0c\u4e0d\u4f9d\u8d56\u4efb\u4f55\u5176\u4ed6\u6e90\u7801\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"edge-api \u8fb9\u7f18\u7aefapi\uff0c\u4e3b\u8981\u662f\u8c03\u7528\u7f51\u5173\u7aef\u7684rpc\u8c03\u7528\uff0c\u76ee\u524d\u4ee3\u7801\u6ca1\u6709\u7528\u5230\u6b64\u5305\u7684\u5185\u5bb9"),(0,n.yg)("li",{parentName:"ul"},"message \u6d88\u606f\u901a\u7528\u6a21\u5757\uff0c\u4e2d\u95f4\u4ef6\u6d88\u606f\u3001\u89c4\u5219\u94fe\u6d88\u606f\u7b49\uff0c\u504f\u63a5\u53e3\u3001\u5b9e\u4f53\u3001\u5f02\u5e38\u7c7b"),(0,n.yg)("li",{parentName:"ul"},"queue \u6d88\u606f\u4e2d\u95f4\u4ef6\u3001\u6d88\u606f\u961f\u5217"),(0,n.yg)("li",{parentName:"ul"},"script",(0,n.yg)("ul",{parentName:"li"},(0,n.yg)("li",{parentName:"ul"},"remote-js-client \u8fdc\u7a0b\u6267\u884cjs\u5ba2\u6237\u7aef\uff0c\u6e90\u7801\u6ca1\u6709\u7528\u5230"),(0,n.yg)("li",{parentName:"ul"},"script-api js\u811a\u672c\u6267\u884c\u6a21\u5757\uff0c\u6e90\u7801\u6ca1\u6709\u7528\u5230"))),(0,n.yg)("li",{parentName:"ul"},"stats \u72b6\u6001\u7edf\u8ba1\u3001\u6d88\u606f\u7edf\u8ba1"),(0,n.yg)("li",{parentName:"ul"},"transport \u4f20\u8f93\u6a21\u5757\u7ec4",(0,n.yg)("ul",{parentName:"li"},(0,n.yg)("li",{parentName:"ul"},"coap coap\u534f\u8bae\u4f20\u8f93\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"http http\u534f\u8bae\u4f20\u8f93\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"lwm2m lwm2m\u534f\u8bae\u4f20\u8f93\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"mqtt mqtt\u534f\u8bae\u4f20\u8f93\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"snmp snmp\u534f\u8bae\u4f20\u8f93\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"transport-api \u57fa\u7840\u4f20\u8f93\u6a21\u5757 \u4e0a\u9762\u7684\u4f20\u8f93\u6a21\u5757\u90fd\u9700\u8981\u4f9d\u8d56\u4ed6\uff0c\u4ed6\u7b97\u662f\u6bd4\u8f83\u57fa\u7840\u7684\u6a21\u5757\u4e86"))),(0,n.yg)("li",{parentName:"ul"},"util \u5de5\u5177\u7c7b\u6a21\u5757\uff0c\u53ea\u4f9d\u8d56common/data\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"version-control TODO \u7248\u672c\u63a7\u5236\uff0c\u5177\u4f53\u4e1a\u52a1\u8fd8\u6ca1\u641e\u61c2"))),(0,n.yg)("li",{parentName:"ul"},"dao \u5177\u4f53\u7684dao\u5b9e\u73b0\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"docker \u542f\u7528\u5fae\u670d\u52a1\u7684docker\u914d\u7f6e\u76ee\u5f55\uff0c\u811a\u672c\u3001docker\u914d\u7f6e\u6587\u4ef6\u7b49"),(0,n.yg)("li",{parentName:"ul"},"msa microservices aplication\u5fae\u670d\u52a1\u6a21\u5757\u7ec4",(0,n.yg)("ul",{parentName:"li"},(0,n.yg)("li",{parentName:"ul"},"black-box-tests"),(0,n.yg)("li",{parentName:"ul"},"js-executor"),(0,n.yg)("li",{parentName:"ul"},"tb \u5355docker\u955c\u50cf"),(0,n.yg)("li",{parentName:"ul"},"tb-node"),(0,n.yg)("li",{parentName:"ul"},"transport \u534f\u8bae\u4f20\u8f93\u914d\u7f6edocker\u5fae\u670d\u52a1\u6a21\u5757\u7ec4",(0,n.yg)("ul",{parentName:"li"},(0,n.yg)("li",{parentName:"ul"},"coap coap\u534f\u8bae\u4f20\u8f93\u914d\u7f6edocker\u5fae\u670d\u52a1\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"http http\u534f\u8bae\u4f20\u8f93\u914d\u7f6edocker\u5fae\u670d\u52a1\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"lwm2m lwm2m\u534f\u8bae\u4f20\u8f93\u914d\u7f6edocker\u5fae\u670d\u52a1\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"mqtt mqtt\u534f\u8bae\u4f20\u8f93\u914d\u7f6edocker\u5fae\u670d\u52a1\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"snmp snmp\u534f\u8bae\u4f20\u8f93\u914d\u7f6edocker\u5fae\u670d\u52a1\u6a21\u5757"))),(0,n.yg)("li",{parentName:"ul"},"vc-executor TODO \u4f9d\u8d56common/version-control"),(0,n.yg)("li",{parentName:"ul"},"vc-executor-docker vc-executor\u7684docker\u914d\u7f6e\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"web-ui \u524d\u7aef\u7684docker\u914d\u7f6e\u6a21\u5757"))),(0,n.yg)("li",{parentName:"ul"},"netty-mqtt mqtt-broker\u534f\u8bae\u5b9e\u73b0\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"packing \u6253\u5305\u5de5\u5177\u76ee\u5f55\uff0c\u6253rpm\u3001deb\u5305"),(0,n.yg)("li",{parentName:"ul"},"rest-client \u4e8c\u5f00SDK\u6a21\u5757\uff0c\u4e8c\u5f00\u8bf7\u6c42\u5de5\u5177"),(0,n.yg)("li",{parentName:"ul"},"rule-engine \u89c4\u5219\u5f15\u64ce",(0,n.yg)("ul",{parentName:"li"},(0,n.yg)("li",{parentName:"ul"},"rule-engine-api \u89c4\u5219\u5f15\u64ce\u63a5\u53e3\u6a21\u5757\uff0c\u5168\u662f\u63a5\u53e3\uff0capplication\u4f1a\u5b9e\u73b0"),(0,n.yg)("li",{parentName:"ul"},"rule-engine-components \u89c4\u5219\u5f15\u64ce\u6240\u6709\u5143\u4ef6\u6a21\u5757"))),(0,n.yg)("li",{parentName:"ul"},"tools \u5404\u79cd\u5de5\u5177\u6a21\u5757\uff0c\u6570\u636e\u8fc1\u79fb\u5de5\u5177\u3001Python\u53d1\u9001\u6d88\u606f\u5de5\u5177\u3001shell\u5de5\u5177\u7b49\u7b49"),(0,n.yg)("li",{parentName:"ul"},"transport \u534f\u8bae\u4f20\u8f93\u914d\u7f6e\u542f\u52a8\u7c7b\u6a21\u5757",(0,n.yg)("ul",{parentName:"li"},(0,n.yg)("li",{parentName:"ul"},"coap coap\u534f\u8bae\u4f20\u8f93\u914d\u7f6e\u542f\u52a8\u7c7b\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"http http\u534f\u8bae\u4f20\u8f93\u914d\u7f6e\u542f\u52a8\u7c7b\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"lwm2m lwm2m\u534f\u8bae\u4f20\u8f93\u914d\u7f6e\u542f\u52a8\u7c7b\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"mqtt mqtt\u534f\u8bae\u4f20\u8f93\u914d\u7f6e\u542f\u52a8\u7c7b\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"snmp snmp\u534f\u8bae\u4f20\u8f93\u914d\u7f6e\u542f\u52a8\u7c7b\u6a21\u5757"))),(0,n.yg)("li",{parentName:"ul"},"ui-ngx \u524d\u7aef\u5de5\u7a0b\u6a21\u5757")))}g.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ed9ae553.8ffe15e1.js b/assets/js/ed9ae553.c539936a.js similarity index 99% rename from assets/js/ed9ae553.8ffe15e1.js rename to assets/js/ed9ae553.c539936a.js index 544fa0d92..b5943d35a 100644 --- a/assets/js/ed9ae553.8ffe15e1.js +++ b/assets/js/ed9ae553.c539936a.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5476],{5680:(e,l,a)=>{a.d(l,{xA:()=>m,yg:()=>s});var n=a(6540);function t(e,l,a){return l in e?Object.defineProperty(e,l,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[l]=a,e}function o(e,l){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);l&&(n=n.filter((function(l){return Object.getOwnPropertyDescriptor(e,l).enumerable}))),a.push.apply(a,n)}return a}function r(e){for(var l=1;l=0||(t[a]=e[a]);return t}(e,l);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(t[a]=e[a])}return t}var p=n.createContext({}),i=function(e){var l=n.useContext(p),a=l;return e&&(a="function"==typeof e?e(l):r(r({},l),e)),a},m=function(e){var l=i(e.components);return n.createElement(p.Provider,{value:l},e.children)},u="mdxType",y={inlineCode:"code",wrapper:function(e){var l=e.children;return n.createElement(n.Fragment,{},l)}},d=n.forwardRef((function(e,l){var a=e.components,t=e.mdxType,o=e.originalType,p=e.parentName,m=g(e,["components","mdxType","originalType","parentName"]),u=i(a),d=t,s=u["".concat(p,".").concat(d)]||u[d]||y[d]||o;return a?n.createElement(s,r(r({ref:l},m),{},{components:a})):n.createElement(s,r({ref:l},m))}));function s(e,l){var a=arguments,t=l&&l.mdxType;if("string"==typeof e||t){var o=a.length,r=new Array(o);r[0]=d;var g={};for(var p in l)hasOwnProperty.call(l,p)&&(g[p]=l[p]);g.originalType=e,g[u]="string"==typeof e?e:t,r[1]=g;for(var i=2;i{a.r(l),a.d(l,{assets:()=>p,contentTitle:()=>r,default:()=>y,frontMatter:()=>o,metadata:()=>g,toc:()=>i});var n=a(8168),t=(a(6540),a(5680));const o={},r="Golang",g={unversionedId:"study/program/Golang/index",id:"study/program/Golang/index",title:"Golang",description:"Go \u8bed\u8a00\u8bbe\u8ba1\u521d\u8877",source:"@site/docs/study/program/Golang/index.md",sourceDirName:"study/program/Golang",slug:"/study/program/Golang/",permalink:"/docs/study/program/Golang/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"PR\u548cMR",permalink:"/docs/study/program/GIT/PR\u548cMR"},next:{title:"Golang\u4f9d\u8d56\u5e93\u4ee3\u7406",permalink:"/docs/study/program/Golang/Golang\u4f9d\u8d56\u5e93\u4ee3\u7406"}},p={},i=[{value:"Go \u8bed\u8a00\u8bbe\u8ba1\u521d\u8877",id:"go-\u8bed\u8a00\u8bbe\u8ba1\u521d\u8877",level:3},{value:"Go \u8bed\u8a00\u7684\u7279\u8272",id:"go-\u8bed\u8a00\u7684\u7279\u8272",level:3},{value:"Go \u8bed\u8a00\u7684\u4f18\u52bf",id:"go-\u8bed\u8a00\u7684\u4f18\u52bf",level:3},{value:"\u6211\u4eec\u4e3a\u4ec0\u4e48\u9009\u62e9 Go \u8bed\u8a00",id:"\u6211\u4eec\u4e3a\u4ec0\u4e48\u9009\u62e9-go-\u8bed\u8a00",level:3},{value:"Go \u8bed\u8a00\u80fd\u505a\u4ec0\u4e48",id:"go-\u8bed\u8a00\u80fd\u505a\u4ec0\u4e48",level:3},{value:"\u4fe1\u606f",id:"\u4fe1\u606f",level:3},{value:"GC",id:"gc",level:3},{value:"\u5b89\u5168\u7f16\u8bd1",id:"\u5b89\u5168\u7f16\u8bd1",level:3},{value:"\u8de8\u5e73\u53f0\u7f16\u8bd1",id:"\u8de8\u5e73\u53f0\u7f16\u8bd1",level:3},{value:"CGO",id:"cgo",level:3},{value:"go mod \u4f9d\u8d56\u95ee\u9898",id:"go-mod-\u4f9d\u8d56\u95ee\u9898",level:3},{value:"\u4ee3\u7406",id:"\u4ee3\u7406",level:3}],m={toc:i},u="wrapper";function y(e){let{components:l,...a}=e;return(0,t.yg)(u,(0,n.A)({},m,a,{components:l,mdxType:"MDXLayout"}),(0,t.yg)("h1",{id:"golang"},"Golang"),(0,t.yg)("h3",{id:"go-\u8bed\u8a00\u8bbe\u8ba1\u521d\u8877"},"Go \u8bed\u8a00\u8bbe\u8ba1\u521d\u8877"),(0,t.yg)("p",null,"\u4e3a\u4e86\u89e3\u51b3\u5f53\u65f6 Google \u5f00\u53d1\u9047\u5230\u7684\u95ee\u9898\uff1a"),(0,t.yg)("ol",null,(0,t.yg)("li",{parentName:"ol"},"\u7f16\u8bd1\u6162\uff1b"),(0,t.yg)("li",{parentName:"ol"},"\u5927\u91cf\u7684 C++\u4ee3\u7801\uff0c\u540c\u65f6\u53c8\u5f15\u5165\u4e86 Java \u548c Python\uff1b"),(0,t.yg)("li",{parentName:"ol"},"\u66f4\u65b0\u7684\u82b1\u8d39\u8d8a\u6765\u8d8a\u957f\uff1b"),(0,t.yg)("li",{parentName:"ol"},"\u5206\u5e03\u5f0f\u7684\u7f16\u8bd1\u7cfb\u7edf\uff1b"),(0,t.yg)("li",{parentName:"ol"},"\u6570\u767e\u4e07\u7684\u670d\u52a1\u5668\uff1b")),(0,t.yg)("h3",{id:"go-\u8bed\u8a00\u7684\u7279\u8272"},"Go \u8bed\u8a00\u7684\u7279\u8272"),(0,t.yg)("ol",null,(0,t.yg)("li",{parentName:"ol"},"\u9ad8\u6548\u7684\u5e76\u53d1\u7f16\u7a0b\uff08",(0,t.yg)("a",{parentName:"li",href:"https://zh.wikipedia.org/wiki/%E9%80%9A%E4%BF%A1%E9%A1%BA%E5%BA%8F%E8%BF%9B%E7%A8%8B"},"\u57fa\u4e8e CSP"),"\uff09\uff1b"),(0,t.yg)("li",{parentName:"ol"},"\u5185\u5b58\u56de\u6536(GC)\uff1b"),(0,t.yg)("li",{parentName:"ol"},"\u7f16\u8bd1\u901f\u5ea6\u5feb\uff1b"),(0,t.yg)("li",{parentName:"ol"},"\u51fd\u6570\u591a\u8fd4\u56de\u503c\uff1b"),(0,t.yg)("li",{parentName:"ol"},"\u8bed\u8a00\u4ea4\u4e92\u6027\uff1b"),(0,t.yg)("li",{parentName:"ol"},"\u6ca1\u6709\u5f02\u5e38\u5904\u7406(Error is value)\uff1b")),(0,t.yg)("h3",{id:"go-\u8bed\u8a00\u7684\u4f18\u52bf"},"Go \u8bed\u8a00\u7684\u4f18\u52bf"),(0,t.yg)("ol",null,(0,t.yg)("li",{parentName:"ol"},"\u5b66\u4e60\u66f2\u7ebf\u5bb9\u6613\uff1b"),(0,t.yg)("li",{parentName:"ol"},"\u6548\u7387\uff1a\u5feb\u901f\u7684\u7f16\u8bd1\u65f6\u95f4\uff0c\u5f00\u53d1\u6548\u7387\u548c\u8fd0\u884c\u6548\u7387\u9ad8\uff1b"),(0,t.yg)("li",{parentName:"ol"},"\u51fa\u8eab\u540d\u95e8\uff0c\u8840\u7edf\u7eaf\u6b63\uff1b"),(0,t.yg)("li",{parentName:"ol"},"\u5e76\u884c\u548c\u5f02\u6b65\u7f16\u7a0b\u51e0\u4e4e\u6ca1\u6709\u75db\u70b9\uff1b"),(0,t.yg)("li",{parentName:"ol"},"\u81ea\u7531\u9ad8\u6548\uff1a\u7ec4\u5408\u7684\u601d\u60f3\u3001\u65e0\u4fb5\u5165\u5f0f\u7684\u63a5\u53e3\u3001\u5f3a\u5927\u7684\u6807\u51c6\u5e93\u3001\u90e8\u7f72\u65b9\u4fbf\u3001\u7a33\u5b9a\u6027\uff1b")),(0,t.yg)("h3",{id:"\u6211\u4eec\u4e3a\u4ec0\u4e48\u9009\u62e9-go-\u8bed\u8a00"},"\u6211\u4eec\u4e3a\u4ec0\u4e48\u9009\u62e9 Go \u8bed\u8a00"),(0,t.yg)("ol",null,(0,t.yg)("li",{parentName:"ol"},"\u6267\u884c\u6027\u80fd"),(0,t.yg)("li",{parentName:"ol"},"\u5f00\u53d1\u6548\u7387")),(0,t.yg)("h3",{id:"go-\u8bed\u8a00\u80fd\u505a\u4ec0\u4e48"},"Go \u8bed\u8a00\u80fd\u505a\u4ec0\u4e48"),(0,t.yg)("ol",null,(0,t.yg)("li",{parentName:"ol"},"\u670d\u52a1\u5668\u7f16\u7a0b\uff1b"),(0,t.yg)("li",{parentName:"ol"},"\u5206\u5e03\u5f0f\u7cfb\u7edf\u3001\u6570\u636e\u5e93\u4ee3\u7406\u5668\u3001\u4e2d\u95f4\u4ef6\u7b49\uff1b"),(0,t.yg)("li",{parentName:"ol"},"\u7f51\u7edc\u7f16\u7a0b\uff1b"),(0,t.yg)("li",{parentName:"ol"},"\u6570\u636e\u5e93\u64cd\u4f5c\uff1b"),(0,t.yg)("li",{parentName:"ol"},"\u5f00\u53d1\u4e91\u5e73\u53f0\uff1b")),(0,t.yg)("h3",{id:"\u4fe1\u606f"},"\u4fe1\u606f"),(0,t.yg)("ul",null,(0,t.yg)("li",{parentName:"ul"},"\u5b98\u7f51:",(0,t.yg)("a",{parentName:"li",href:"https://golang.google.cn/"},"https://golang.google.cn/")),(0,t.yg)("li",{parentName:"ul"},"API \u6587\u6863:",(0,t.yg)("a",{parentName:"li",href:"https://golang.google.cn/doc/"},"https://golang.google.cn/doc/")),(0,t.yg)("li",{parentName:"ul"},"\u6559\u7a0b:",(0,t.yg)("a",{parentName:"li",href:"http://www.w3cschool.cn/go/go-tutorial.html"},"http://www.w3cschool.cn/go/go-tutorial.html")),(0,t.yg)("li",{parentName:"ul"},"\u4e0b\u8f7d:",(0,t.yg)("a",{parentName:"li",href:"https://golang.google.cn/dl/"},"https://golang.google.cn/dl/")),(0,t.yg)("li",{parentName:"ul"},"\u6807\u51c6\u5e93\uff1a",(0,t.yg)("a",{parentName:"li",href:"https://pkg.go.dev/std"},"https://pkg.go.dev/std")),(0,t.yg)("li",{parentName:"ul"},(0,t.yg)("a",{parentName:"li",href:"https://draveness.me/golang/"},"Go \u8bed\u8a00\u8bbe\u8ba1\u4e0e\u5b9e\u73b0"),(0,t.yg)("ul",{parentName:"li"},(0,t.yg)("li",{parentName:"ul"},"\u91cd\u70b9\u662f\u8bbe\u8ba1\u539f\u7406 \u633a\u5e95\u5c42\u7684"))),(0,t.yg)("li",{parentName:"ul"},(0,t.yg)("a",{parentName:"li",href:"https://www.liwenzhou.com/posts/Go/golang-menu/"},"\u674e\u6587\u5468-Go \u8bed\u8a00\u5b66\u4e60\u4e4b\u8def/Go \u8bed\u8a00\u6559\u7a0b"),(0,t.yg)("ul",{parentName:"li"},(0,t.yg)("li",{parentName:"ul"},(0,t.yg)("a",{parentName:"li",href:"https://www.liwenzhou.com/posts/Go/fmt/"},"fmt \u683c\u5f0f\u5316\u8bed\u6cd5")))),(0,t.yg)("li",{parentName:"ul"},"Go\u8bed\u8a00\u4e2d\u6587\u6587\u6863 \uff1a",(0,t.yg)("a",{parentName:"li",href:"https://www.topgoer.com/"},"https://www.topgoer.com/"),(0,t.yg)("ul",{parentName:"li"},(0,t.yg)("li",{parentName:"ul"},"\u5fc5\u770b\uff0c\u975e\u5e38\u5168"))),(0,t.yg)("li",{parentName:"ul"},"GO\u8bed\u8a00\u8bbe\u8ba1\u6a21\u5f0f \uff1a",(0,t.yg)("a",{parentName:"li",href:"https://www.topgoer.cn/docs/golang-design-pattern/golang-design-pattern-1cbgha2ltg796"},"https://www.topgoer.cn/docs/golang-design-pattern/golang-design-pattern-1cbgha2ltg796")),(0,t.yg)("li",{parentName:"ul"},"GO\u8bed\u8a00\u6807\u51c6\u5e93\u6587\u6863\uff1a",(0,t.yg)("a",{parentName:"li",href:"https://topgoer.cn/docs/golangstandard/golangstandard-1cmks9a4kaj3c"},"https://topgoer.cn/docs/golangstandard/golangstandard-1cmks9a4kaj3c")),(0,t.yg)("li",{parentName:"ul"},"\u5730\u9f20\u6587\u6863\uff0c\u5b66\u4e60GO\u7684\u597d\u5730\u65b9\uff1a",(0,t.yg)("a",{parentName:"li",href:"https://www.topgoer.cn/"},"https://www.topgoer.cn/"),(0,t.yg)("ul",{parentName:"li"},(0,t.yg)("li",{parentName:"ul"},"\u5fc5\u770b")))),(0,t.yg)("h3",{id:"gc"},"GC"),(0,t.yg)("ul",null,(0,t.yg)("li",{parentName:"ul"},(0,t.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/593008674?utm_id=0"},"\u77e5\u4e4e-Golang \u5185\u5b58\u7ba1\u7406\u4e4b GC"))),(0,t.yg)("h3",{id:"\u5b89\u5168\u7f16\u8bd1"},"\u5b89\u5168\u7f16\u8bd1"),(0,t.yg)("p",null,"\u5728Go\u8bed\u8a00\u4e2d\uff0c\u201c\u5b89\u5168\u7f16\u8bd1\u201d\u53ef\u80fd\u6307\u7684\u662f\u4f7f\u7528\u5b89\u5168\u7684\u7f16\u8bd1\u53c2\u6570\uff0c\u4ee5\u786e\u4fdd\u4ee3\u7801\u7684\u5b89\u5168\u6027\u548c\u6027\u80fd\u6700\u4f18\u3002\u8fd9\u901a\u5e38\u6d89\u53ca\u5230\u4f7f\u7528\u7f16\u8bd1\u5668\u7684\u5404\u79cd\u5b89\u5168\u548c\u6027\u80fd\u53c2\u6570\uff0c\u6bd4\u5982\uff1a"),(0,t.yg)("p",null,"\u4f7f\u7528 -s \u6216 -w \u53c2\u6570\u6765\u51cf\u5c11\u7f16\u8bd1\u540e\u7684\u4e8c\u8fdb\u5236\u6587\u4ef6\u5927\u5c0f\uff0c\u53bb\u6389\u8c03\u8bd5\u4fe1\u606f\u548c\u7b26\u53f7\u4fe1\u606f\u3002"),(0,t.yg)("p",null,"\u4f7f\u7528 -ldflags \u6765\u8bbe\u7f6e\u94fe\u63a5\u5668\u7684\u6807\u5fd7\uff0c\u6bd4\u5982 -s -w \u6765\u8fdb\u4e00\u6b65\u4f18\u5316\u7f16\u8bd1\u7ed3\u679c\u3002"),(0,t.yg)("p",null,"\u4f7f\u7528 -buildmode \u53c2\u6570\u6765\u6307\u5b9a\u7f16\u8bd1\u6a21\u5f0f\uff0c\u6bd4\u5982 pie \u6765\u751f\u6210\u4f4d\u7f6e\u65e0\u5173\u7684\u53ef\u6267\u884c\u6587\u4ef6\uff0c\u589e\u52a0\u5b89\u5168\u6027\u3002"),(0,t.yg)("p",null,"\u4e0b\u9762\u662f\u4e00\u4e2a\u7b80\u5355\u7684\u4f8b\u5b50\uff0c\u6f14\u793a\u5982\u4f55\u4f7f\u7528 -ldflags \u6765\u4f18\u5316\u7f16\u8bd1\u7ed3\u679c\uff1a"),(0,t.yg)("p",null,'go build -ldflags "-s -w" -o myapp .'),(0,t.yg)("p",null,"\u8fd9\u6761\u547d\u4ee4\u4f1a\u7f16\u8bd1\u5f53\u524d\u76ee\u5f55\u4e0b\u7684Go\u4ee3\u7801\uff0c\u5e76\u8f93\u51fa\u4e00\u4e2a\u6ca1\u6709\u8c03\u8bd5\u4fe1\u606f\u3001\u7b26\u53f7\u548c\u4f18\u5316\u8fc7\u7684\u3001\u4f53\u79ef\u66f4\u5c0f\u7684\u53ef\u6267\u884c\u6587\u4ef6 myapp\u3002"),(0,t.yg)("p",null,"\u5982\u679c\u4f60\u60f3\u8fdb\u4e00\u6b65\u786e\u4fdd\u5b89\u5168\u6027\uff0c\u53ef\u4ee5\u4f7f\u7528Go\u7684\u5b89\u5168\u6027\u6807\u5fd7\uff0c\u6bd4\u5982 -tags safe\uff0c\u8fd9\u53d6\u51b3\u4e8e\u4f60\u4f7f\u7528\u7684\u7b2c\u4e09\u65b9\u5e93\u662f\u5426\u652f\u6301\u8fd9\u4e2atag\u3002"),(0,t.yg)("p",null,"go build -tags safe -o myapp ."),(0,t.yg)("p",null,"\u8bf7\u6ce8\u610f\uff0c\u6bcf\u4e2a\u9879\u76ee\u53ef\u80fd\u6709\u7279\u5b9a\u7684\u5b89\u5168\u548c\u6027\u80fd\u8981\u6c42\uff0c\u56e0\u6b64\u7f16\u8bd1\u53c2\u6570\u5e94\u6839\u636e\u5177\u4f53\u60c5\u51b5\u9009\u62e9\u548c\u8c03\u6574\u3002"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},'#\ngo build -ldflags "-s -w -buildmode=pie -linkmode external -extldflags=-Wl,-z,relro,-z,now" -o CcspUtilRemote-`uname -m`\n#\ngo build -tags safe -o myapp .\n# \u4f7f\u7528\u6b64\u547d\u4ee4\u67e5\u770b\ngo tool link --help\n')),(0,t.yg)("p",null,"\u5b9e\u9645\u95ee\u9898\u4f8b\u5b50\uff1a"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},'# \u5b89\u5168\u7f16\u8bd1\u68c0\u67e5 \u51fa\u73b0\u4e24\u4e2a\u95ee\u9898 [STACK CANARY/FORTIFY]\nchecksec --file=./xxx-x86_64\n# \u5904\u7406[STACK CANARY/FORTIFY] \u589e\u52a0CGO \u4ee5\u53caCGO\u4ee3\u7801\u6587\u4ef6cgo_safe.go\nCGO_ENABLED=1 CGO_CFLAGS="-fstack-protector-all -D_FORTIFY_SOURCE=2 -O" go build -ldflags "-s -w -buildmode=pie -linkmode external -extldflags=-Wl,-z,relro,-z,now" -o xxx-`uname -m`\n')),(0,t.yg)("p",null,"cgo_safe.go"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-go"},'package main\n\n/*\n\n#include \n#include \n\n*/\n\nimport "C"\nimport "fmt"\n\nfunc init() {\n s := C.CString("hello")\n fmt.Println(s)\n\n // C.puts(s)\n // C.free(unsafe.Pointer(s))\n}\n\n')),(0,t.yg)("h3",{id:"\u8de8\u5e73\u53f0\u7f16\u8bd1"},"\u8de8\u5e73\u53f0\u7f16\u8bd1"),(0,t.yg)("p",null,"\u5177\u4f53\u64cd\u4f5c"),(0,t.yg)("p",null,"\u7f16\u8bd1\u8de8\u5e73\u53f0\u7684\u53ea\u9700\u8981\u4fee\u6539GOOS\u3001GOARCH\u3001CGO_ENABLED\u4e09\u4e2a\u73af\u5883\u53d8\u91cf\u5373\u53ef"),(0,t.yg)("ul",null,(0,t.yg)("li",{parentName:"ul"},"GOOS\uff1a\u76ee\u6807\u5e73\u53f0\u7684\u64cd\u4f5c\u7cfb\u7edf(darwin\u3001freebsd\u3001linux\u3001windows)"),(0,t.yg)("li",{parentName:"ul"},"GOARCH\uff1a\u76ee\u6807\u5e73\u53f0\u7684\u4f53\u7cfb\u67b6\u678432\u4f4d\u8fd8\u662f64\u4f4d(386\u3001amd64\u3001arm)"),(0,t.yg)("li",{parentName:"ul"},"\u4ea4\u53c9\u7f16\u8bd1\u4e0d\u652f\u6301 CGO \u6240\u4ee5\u8981\u7981\u7528\u5b83")),(0,t.yg)("h3",{id:"cgo"},"CGO"),(0,t.yg)("ul",null,(0,t.yg)("li",{parentName:"ul"},(0,t.yg)("a",{parentName:"li",href:"https://blog.csdn.net/qq_42538588/article/details/131167683"},"CGO:\u8ba9Go\u7a0b\u5e8f\u8c03\u7528C\u51fd\u6570\u7684\u795e\u5668")),(0,t.yg)("li",{parentName:"ul"},(0,t.yg)("a",{parentName:"li",href:"https://blog.csdn.net/weixin_43128854/article/details/122956384"},"go\u8bed\u8a00\u8c03\u7528c\u8bed\u8a00\u52a8\u6001\u5e93\u53ca\u4ea4\u53c9\u7f16\u8bd1"))),(0,t.yg)("h3",{id:"go-mod-\u4f9d\u8d56\u95ee\u9898"},"go mod \u4f9d\u8d56\u95ee\u9898"),(0,t.yg)("ul",null,(0,t.yg)("li",{parentName:"ul"},"go mod init\uff1a\u521d\u59cb\u5316go mod\uff0c \u751f\u6210go.mod\u6587\u4ef6\uff0c\u540e\u53ef\u63a5\u53c2\u6570\u6307\u5b9a module \u540d\uff0c\u4e0a\u9762\u5df2\u7ecf\u6f14\u793a\u8fc7\u3002"),(0,t.yg)("li",{parentName:"ul"},"go mod download\uff1a\u624b\u52a8\u89e6\u53d1\u4e0b\u8f7d\u4f9d\u8d56\u5305\u5230\u672c\u5730cache\uff08\u9ed8\u8ba4\u4e3a$GOPATH/pkg/mod\u76ee\u5f55\uff09"),(0,t.yg)("li",{parentName:"ul"},"go mod graph\uff1a \u6253\u5370\u9879\u76ee\u7684\u6a21\u5757\u4f9d\u8d56\u7ed3\u6784"),(0,t.yg)("li",{parentName:"ul"},"go mod tidy \uff1a\u6dfb\u52a0\u7f3a\u5c11\u7684\u5305\uff0c\u4e14\u5220\u9664\u65e0\u7528\u7684\u5305"),(0,t.yg)("li",{parentName:"ul"},"go mod verify \uff1a\u6821\u9a8c\u6a21\u5757\u662f\u5426\u88ab\u7be1\u6539\u8fc7"),(0,t.yg)("li",{parentName:"ul"},"go mod why\uff1a \u67e5\u770b\u4e3a\u4ec0\u4e48\u9700\u8981\u4f9d\u8d56"),(0,t.yg)("li",{parentName:"ul"},"go mod vendor \uff1a\u5bfc\u51fa\u9879\u76ee\u6240\u6709\u4f9d\u8d56\u5230vendor\u4e0b"),(0,t.yg)("li",{parentName:"ul"},"go mod edit \uff1a\u7f16\u8f91go.mod\u6587\u4ef6\uff0c\u63a5 -fmt \u53c2\u6570\u683c\u5f0f\u5316 go.mod \u6587\u4ef6\uff0c\u63a5 -require=golang.org/x/text \u6dfb\u52a0\u4f9d\u8d56\uff0c\u63a5 -droprequire=golang.org/x/text \u5220\u9664\u4f9d\u8d56\uff0c\u8be6\u60c5\u53ef\u53c2\u8003 go help mod edit"),(0,t.yg)("li",{parentName:"ul"},"go list -m -json all\uff1a\u4ee5 json \u7684\u65b9\u5f0f\u6253\u5370\u4f9d\u8d56\u8be6\u60c5- "),(0,t.yg)("li",{parentName:"ul"},(0,t.yg)("a",{parentName:"li",href:"https://blog.csdn.net/kenkao/article/details/124550249"},"Golang\u4e2dGoPath\u548cGoModule\u6a21\u5f0f\u7684\u533a\u522b"))),(0,t.yg)("h3",{id:"\u4ee3\u7406"},"\u4ee3\u7406"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},"#\ngo env\n# \u539f\u4ee3\u7406\n# GOPROXY='https://proxy.golang.org,direct'\n# go\u6a21\u5757\uff08\u4e03\u725b\u4e91\uff09\u4ee3\u7406\ngo env -w GOPROXY=https://goproxy.cn,direct\n")))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5476],{5680:(e,l,a)=>{a.d(l,{xA:()=>m,yg:()=>s});var n=a(6540);function t(e,l,a){return l in e?Object.defineProperty(e,l,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[l]=a,e}function o(e,l){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);l&&(n=n.filter((function(l){return Object.getOwnPropertyDescriptor(e,l).enumerable}))),a.push.apply(a,n)}return a}function r(e){for(var l=1;l=0||(t[a]=e[a]);return t}(e,l);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(t[a]=e[a])}return t}var p=n.createContext({}),i=function(e){var l=n.useContext(p),a=l;return e&&(a="function"==typeof e?e(l):r(r({},l),e)),a},m=function(e){var l=i(e.components);return n.createElement(p.Provider,{value:l},e.children)},u="mdxType",y={inlineCode:"code",wrapper:function(e){var l=e.children;return n.createElement(n.Fragment,{},l)}},d=n.forwardRef((function(e,l){var a=e.components,t=e.mdxType,o=e.originalType,p=e.parentName,m=g(e,["components","mdxType","originalType","parentName"]),u=i(a),d=t,s=u["".concat(p,".").concat(d)]||u[d]||y[d]||o;return a?n.createElement(s,r(r({ref:l},m),{},{components:a})):n.createElement(s,r({ref:l},m))}));function s(e,l){var a=arguments,t=l&&l.mdxType;if("string"==typeof e||t){var o=a.length,r=new Array(o);r[0]=d;var g={};for(var p in l)hasOwnProperty.call(l,p)&&(g[p]=l[p]);g.originalType=e,g[u]="string"==typeof e?e:t,r[1]=g;for(var i=2;i{a.r(l),a.d(l,{assets:()=>p,contentTitle:()=>r,default:()=>y,frontMatter:()=>o,metadata:()=>g,toc:()=>i});var n=a(8168),t=(a(6540),a(5680));const o={},r="Golang",g={unversionedId:"study/program/Golang/index",id:"study/program/Golang/index",title:"Golang",description:"Go \u8bed\u8a00\u8bbe\u8ba1\u521d\u8877",source:"@site/docs/study/program/Golang/index.md",sourceDirName:"study/program/Golang",slug:"/study/program/Golang/",permalink:"/docs/study/program/Golang/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"PR\u548cMR",permalink:"/docs/study/program/GIT/PR\u548cMR"},next:{title:"Golang\u4f9d\u8d56\u5e93\u4ee3\u7406",permalink:"/docs/study/program/Golang/Golang\u4f9d\u8d56\u5e93\u4ee3\u7406"}},p={},i=[{value:"Go \u8bed\u8a00\u8bbe\u8ba1\u521d\u8877",id:"go-\u8bed\u8a00\u8bbe\u8ba1\u521d\u8877",level:3},{value:"Go \u8bed\u8a00\u7684\u7279\u8272",id:"go-\u8bed\u8a00\u7684\u7279\u8272",level:3},{value:"Go \u8bed\u8a00\u7684\u4f18\u52bf",id:"go-\u8bed\u8a00\u7684\u4f18\u52bf",level:3},{value:"\u6211\u4eec\u4e3a\u4ec0\u4e48\u9009\u62e9 Go \u8bed\u8a00",id:"\u6211\u4eec\u4e3a\u4ec0\u4e48\u9009\u62e9-go-\u8bed\u8a00",level:3},{value:"Go \u8bed\u8a00\u80fd\u505a\u4ec0\u4e48",id:"go-\u8bed\u8a00\u80fd\u505a\u4ec0\u4e48",level:3},{value:"\u4fe1\u606f",id:"\u4fe1\u606f",level:3},{value:"GC",id:"gc",level:3},{value:"\u5b89\u5168\u7f16\u8bd1",id:"\u5b89\u5168\u7f16\u8bd1",level:3},{value:"\u8de8\u5e73\u53f0\u7f16\u8bd1",id:"\u8de8\u5e73\u53f0\u7f16\u8bd1",level:3},{value:"CGO",id:"cgo",level:3},{value:"go mod \u4f9d\u8d56\u95ee\u9898",id:"go-mod-\u4f9d\u8d56\u95ee\u9898",level:3},{value:"\u4ee3\u7406",id:"\u4ee3\u7406",level:3}],m={toc:i},u="wrapper";function y(e){let{components:l,...a}=e;return(0,t.yg)(u,(0,n.A)({},m,a,{components:l,mdxType:"MDXLayout"}),(0,t.yg)("h1",{id:"golang"},"Golang"),(0,t.yg)("h3",{id:"go-\u8bed\u8a00\u8bbe\u8ba1\u521d\u8877"},"Go \u8bed\u8a00\u8bbe\u8ba1\u521d\u8877"),(0,t.yg)("p",null,"\u4e3a\u4e86\u89e3\u51b3\u5f53\u65f6 Google \u5f00\u53d1\u9047\u5230\u7684\u95ee\u9898\uff1a"),(0,t.yg)("ol",null,(0,t.yg)("li",{parentName:"ol"},"\u7f16\u8bd1\u6162\uff1b"),(0,t.yg)("li",{parentName:"ol"},"\u5927\u91cf\u7684 C++\u4ee3\u7801\uff0c\u540c\u65f6\u53c8\u5f15\u5165\u4e86 Java \u548c Python\uff1b"),(0,t.yg)("li",{parentName:"ol"},"\u66f4\u65b0\u7684\u82b1\u8d39\u8d8a\u6765\u8d8a\u957f\uff1b"),(0,t.yg)("li",{parentName:"ol"},"\u5206\u5e03\u5f0f\u7684\u7f16\u8bd1\u7cfb\u7edf\uff1b"),(0,t.yg)("li",{parentName:"ol"},"\u6570\u767e\u4e07\u7684\u670d\u52a1\u5668\uff1b")),(0,t.yg)("h3",{id:"go-\u8bed\u8a00\u7684\u7279\u8272"},"Go \u8bed\u8a00\u7684\u7279\u8272"),(0,t.yg)("ol",null,(0,t.yg)("li",{parentName:"ol"},"\u9ad8\u6548\u7684\u5e76\u53d1\u7f16\u7a0b\uff08",(0,t.yg)("a",{parentName:"li",href:"https://zh.wikipedia.org/wiki/%E9%80%9A%E4%BF%A1%E9%A1%BA%E5%BA%8F%E8%BF%9B%E7%A8%8B"},"\u57fa\u4e8e CSP"),"\uff09\uff1b"),(0,t.yg)("li",{parentName:"ol"},"\u5185\u5b58\u56de\u6536(GC)\uff1b"),(0,t.yg)("li",{parentName:"ol"},"\u7f16\u8bd1\u901f\u5ea6\u5feb\uff1b"),(0,t.yg)("li",{parentName:"ol"},"\u51fd\u6570\u591a\u8fd4\u56de\u503c\uff1b"),(0,t.yg)("li",{parentName:"ol"},"\u8bed\u8a00\u4ea4\u4e92\u6027\uff1b"),(0,t.yg)("li",{parentName:"ol"},"\u6ca1\u6709\u5f02\u5e38\u5904\u7406(Error is value)\uff1b")),(0,t.yg)("h3",{id:"go-\u8bed\u8a00\u7684\u4f18\u52bf"},"Go \u8bed\u8a00\u7684\u4f18\u52bf"),(0,t.yg)("ol",null,(0,t.yg)("li",{parentName:"ol"},"\u5b66\u4e60\u66f2\u7ebf\u5bb9\u6613\uff1b"),(0,t.yg)("li",{parentName:"ol"},"\u6548\u7387\uff1a\u5feb\u901f\u7684\u7f16\u8bd1\u65f6\u95f4\uff0c\u5f00\u53d1\u6548\u7387\u548c\u8fd0\u884c\u6548\u7387\u9ad8\uff1b"),(0,t.yg)("li",{parentName:"ol"},"\u51fa\u8eab\u540d\u95e8\uff0c\u8840\u7edf\u7eaf\u6b63\uff1b"),(0,t.yg)("li",{parentName:"ol"},"\u5e76\u884c\u548c\u5f02\u6b65\u7f16\u7a0b\u51e0\u4e4e\u6ca1\u6709\u75db\u70b9\uff1b"),(0,t.yg)("li",{parentName:"ol"},"\u81ea\u7531\u9ad8\u6548\uff1a\u7ec4\u5408\u7684\u601d\u60f3\u3001\u65e0\u4fb5\u5165\u5f0f\u7684\u63a5\u53e3\u3001\u5f3a\u5927\u7684\u6807\u51c6\u5e93\u3001\u90e8\u7f72\u65b9\u4fbf\u3001\u7a33\u5b9a\u6027\uff1b")),(0,t.yg)("h3",{id:"\u6211\u4eec\u4e3a\u4ec0\u4e48\u9009\u62e9-go-\u8bed\u8a00"},"\u6211\u4eec\u4e3a\u4ec0\u4e48\u9009\u62e9 Go \u8bed\u8a00"),(0,t.yg)("ol",null,(0,t.yg)("li",{parentName:"ol"},"\u6267\u884c\u6027\u80fd"),(0,t.yg)("li",{parentName:"ol"},"\u5f00\u53d1\u6548\u7387")),(0,t.yg)("h3",{id:"go-\u8bed\u8a00\u80fd\u505a\u4ec0\u4e48"},"Go \u8bed\u8a00\u80fd\u505a\u4ec0\u4e48"),(0,t.yg)("ol",null,(0,t.yg)("li",{parentName:"ol"},"\u670d\u52a1\u5668\u7f16\u7a0b\uff1b"),(0,t.yg)("li",{parentName:"ol"},"\u5206\u5e03\u5f0f\u7cfb\u7edf\u3001\u6570\u636e\u5e93\u4ee3\u7406\u5668\u3001\u4e2d\u95f4\u4ef6\u7b49\uff1b"),(0,t.yg)("li",{parentName:"ol"},"\u7f51\u7edc\u7f16\u7a0b\uff1b"),(0,t.yg)("li",{parentName:"ol"},"\u6570\u636e\u5e93\u64cd\u4f5c\uff1b"),(0,t.yg)("li",{parentName:"ol"},"\u5f00\u53d1\u4e91\u5e73\u53f0\uff1b")),(0,t.yg)("h3",{id:"\u4fe1\u606f"},"\u4fe1\u606f"),(0,t.yg)("ul",null,(0,t.yg)("li",{parentName:"ul"},"\u5b98\u7f51:",(0,t.yg)("a",{parentName:"li",href:"https://golang.google.cn/"},"https://golang.google.cn/")),(0,t.yg)("li",{parentName:"ul"},"API \u6587\u6863:",(0,t.yg)("a",{parentName:"li",href:"https://golang.google.cn/doc/"},"https://golang.google.cn/doc/")),(0,t.yg)("li",{parentName:"ul"},"\u6559\u7a0b:",(0,t.yg)("a",{parentName:"li",href:"http://www.w3cschool.cn/go/go-tutorial.html"},"http://www.w3cschool.cn/go/go-tutorial.html")),(0,t.yg)("li",{parentName:"ul"},"\u4e0b\u8f7d:",(0,t.yg)("a",{parentName:"li",href:"https://golang.google.cn/dl/"},"https://golang.google.cn/dl/")),(0,t.yg)("li",{parentName:"ul"},"\u6807\u51c6\u5e93\uff1a",(0,t.yg)("a",{parentName:"li",href:"https://pkg.go.dev/std"},"https://pkg.go.dev/std")),(0,t.yg)("li",{parentName:"ul"},(0,t.yg)("a",{parentName:"li",href:"https://draveness.me/golang/"},"Go \u8bed\u8a00\u8bbe\u8ba1\u4e0e\u5b9e\u73b0"),(0,t.yg)("ul",{parentName:"li"},(0,t.yg)("li",{parentName:"ul"},"\u91cd\u70b9\u662f\u8bbe\u8ba1\u539f\u7406 \u633a\u5e95\u5c42\u7684"))),(0,t.yg)("li",{parentName:"ul"},(0,t.yg)("a",{parentName:"li",href:"https://www.liwenzhou.com/posts/Go/golang-menu/"},"\u674e\u6587\u5468-Go \u8bed\u8a00\u5b66\u4e60\u4e4b\u8def/Go \u8bed\u8a00\u6559\u7a0b"),(0,t.yg)("ul",{parentName:"li"},(0,t.yg)("li",{parentName:"ul"},(0,t.yg)("a",{parentName:"li",href:"https://www.liwenzhou.com/posts/Go/fmt/"},"fmt \u683c\u5f0f\u5316\u8bed\u6cd5")))),(0,t.yg)("li",{parentName:"ul"},"Go\u8bed\u8a00\u4e2d\u6587\u6587\u6863 \uff1a",(0,t.yg)("a",{parentName:"li",href:"https://www.topgoer.com/"},"https://www.topgoer.com/"),(0,t.yg)("ul",{parentName:"li"},(0,t.yg)("li",{parentName:"ul"},"\u5fc5\u770b\uff0c\u975e\u5e38\u5168"))),(0,t.yg)("li",{parentName:"ul"},"GO\u8bed\u8a00\u8bbe\u8ba1\u6a21\u5f0f \uff1a",(0,t.yg)("a",{parentName:"li",href:"https://www.topgoer.cn/docs/golang-design-pattern/golang-design-pattern-1cbgha2ltg796"},"https://www.topgoer.cn/docs/golang-design-pattern/golang-design-pattern-1cbgha2ltg796")),(0,t.yg)("li",{parentName:"ul"},"GO\u8bed\u8a00\u6807\u51c6\u5e93\u6587\u6863\uff1a",(0,t.yg)("a",{parentName:"li",href:"https://topgoer.cn/docs/golangstandard/golangstandard-1cmks9a4kaj3c"},"https://topgoer.cn/docs/golangstandard/golangstandard-1cmks9a4kaj3c")),(0,t.yg)("li",{parentName:"ul"},"\u5730\u9f20\u6587\u6863\uff0c\u5b66\u4e60GO\u7684\u597d\u5730\u65b9\uff1a",(0,t.yg)("a",{parentName:"li",href:"https://www.topgoer.cn/"},"https://www.topgoer.cn/"),(0,t.yg)("ul",{parentName:"li"},(0,t.yg)("li",{parentName:"ul"},"\u5fc5\u770b")))),(0,t.yg)("h3",{id:"gc"},"GC"),(0,t.yg)("ul",null,(0,t.yg)("li",{parentName:"ul"},(0,t.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/593008674?utm_id=0"},"\u77e5\u4e4e-Golang \u5185\u5b58\u7ba1\u7406\u4e4b GC"))),(0,t.yg)("h3",{id:"\u5b89\u5168\u7f16\u8bd1"},"\u5b89\u5168\u7f16\u8bd1"),(0,t.yg)("p",null,"\u5728Go\u8bed\u8a00\u4e2d\uff0c\u201c\u5b89\u5168\u7f16\u8bd1\u201d\u53ef\u80fd\u6307\u7684\u662f\u4f7f\u7528\u5b89\u5168\u7684\u7f16\u8bd1\u53c2\u6570\uff0c\u4ee5\u786e\u4fdd\u4ee3\u7801\u7684\u5b89\u5168\u6027\u548c\u6027\u80fd\u6700\u4f18\u3002\u8fd9\u901a\u5e38\u6d89\u53ca\u5230\u4f7f\u7528\u7f16\u8bd1\u5668\u7684\u5404\u79cd\u5b89\u5168\u548c\u6027\u80fd\u53c2\u6570\uff0c\u6bd4\u5982\uff1a"),(0,t.yg)("p",null,"\u4f7f\u7528 -s \u6216 -w \u53c2\u6570\u6765\u51cf\u5c11\u7f16\u8bd1\u540e\u7684\u4e8c\u8fdb\u5236\u6587\u4ef6\u5927\u5c0f\uff0c\u53bb\u6389\u8c03\u8bd5\u4fe1\u606f\u548c\u7b26\u53f7\u4fe1\u606f\u3002"),(0,t.yg)("p",null,"\u4f7f\u7528 -ldflags \u6765\u8bbe\u7f6e\u94fe\u63a5\u5668\u7684\u6807\u5fd7\uff0c\u6bd4\u5982 -s -w \u6765\u8fdb\u4e00\u6b65\u4f18\u5316\u7f16\u8bd1\u7ed3\u679c\u3002"),(0,t.yg)("p",null,"\u4f7f\u7528 -buildmode \u53c2\u6570\u6765\u6307\u5b9a\u7f16\u8bd1\u6a21\u5f0f\uff0c\u6bd4\u5982 pie \u6765\u751f\u6210\u4f4d\u7f6e\u65e0\u5173\u7684\u53ef\u6267\u884c\u6587\u4ef6\uff0c\u589e\u52a0\u5b89\u5168\u6027\u3002"),(0,t.yg)("p",null,"\u4e0b\u9762\u662f\u4e00\u4e2a\u7b80\u5355\u7684\u4f8b\u5b50\uff0c\u6f14\u793a\u5982\u4f55\u4f7f\u7528 -ldflags \u6765\u4f18\u5316\u7f16\u8bd1\u7ed3\u679c\uff1a"),(0,t.yg)("p",null,'go build -ldflags "-s -w" -o myapp .'),(0,t.yg)("p",null,"\u8fd9\u6761\u547d\u4ee4\u4f1a\u7f16\u8bd1\u5f53\u524d\u76ee\u5f55\u4e0b\u7684Go\u4ee3\u7801\uff0c\u5e76\u8f93\u51fa\u4e00\u4e2a\u6ca1\u6709\u8c03\u8bd5\u4fe1\u606f\u3001\u7b26\u53f7\u548c\u4f18\u5316\u8fc7\u7684\u3001\u4f53\u79ef\u66f4\u5c0f\u7684\u53ef\u6267\u884c\u6587\u4ef6 myapp\u3002"),(0,t.yg)("p",null,"\u5982\u679c\u4f60\u60f3\u8fdb\u4e00\u6b65\u786e\u4fdd\u5b89\u5168\u6027\uff0c\u53ef\u4ee5\u4f7f\u7528Go\u7684\u5b89\u5168\u6027\u6807\u5fd7\uff0c\u6bd4\u5982 -tags safe\uff0c\u8fd9\u53d6\u51b3\u4e8e\u4f60\u4f7f\u7528\u7684\u7b2c\u4e09\u65b9\u5e93\u662f\u5426\u652f\u6301\u8fd9\u4e2atag\u3002"),(0,t.yg)("p",null,"go build -tags safe -o myapp ."),(0,t.yg)("p",null,"\u8bf7\u6ce8\u610f\uff0c\u6bcf\u4e2a\u9879\u76ee\u53ef\u80fd\u6709\u7279\u5b9a\u7684\u5b89\u5168\u548c\u6027\u80fd\u8981\u6c42\uff0c\u56e0\u6b64\u7f16\u8bd1\u53c2\u6570\u5e94\u6839\u636e\u5177\u4f53\u60c5\u51b5\u9009\u62e9\u548c\u8c03\u6574\u3002"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},'#\ngo build -ldflags "-s -w -buildmode=pie -linkmode external -extldflags=-Wl,-z,relro,-z,now" -o CcspUtilRemote-`uname -m`\n#\ngo build -tags safe -o myapp .\n# \u4f7f\u7528\u6b64\u547d\u4ee4\u67e5\u770b\ngo tool link --help\n')),(0,t.yg)("p",null,"\u5b9e\u9645\u95ee\u9898\u4f8b\u5b50\uff1a"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},'# \u5b89\u5168\u7f16\u8bd1\u68c0\u67e5 \u51fa\u73b0\u4e24\u4e2a\u95ee\u9898 [STACK CANARY/FORTIFY]\nchecksec --file=./xxx-x86_64\n# \u5904\u7406[STACK CANARY/FORTIFY] \u589e\u52a0CGO \u4ee5\u53caCGO\u4ee3\u7801\u6587\u4ef6cgo_safe.go\nCGO_ENABLED=1 CGO_CFLAGS="-fstack-protector-all -D_FORTIFY_SOURCE=2 -O" go build -ldflags "-s -w -buildmode=pie -linkmode external -extldflags=-Wl,-z,relro,-z,now" -o xxx-`uname -m`\n')),(0,t.yg)("p",null,"cgo_safe.go"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-go"},'package main\n\n/*\n\n#include \n#include \n\n*/\n\nimport "C"\nimport "fmt"\n\nfunc init() {\n s := C.CString("hello")\n fmt.Println(s)\n\n // C.puts(s)\n // C.free(unsafe.Pointer(s))\n}\n\n')),(0,t.yg)("h3",{id:"\u8de8\u5e73\u53f0\u7f16\u8bd1"},"\u8de8\u5e73\u53f0\u7f16\u8bd1"),(0,t.yg)("p",null,"\u5177\u4f53\u64cd\u4f5c"),(0,t.yg)("p",null,"\u7f16\u8bd1\u8de8\u5e73\u53f0\u7684\u53ea\u9700\u8981\u4fee\u6539GOOS\u3001GOARCH\u3001CGO_ENABLED\u4e09\u4e2a\u73af\u5883\u53d8\u91cf\u5373\u53ef"),(0,t.yg)("ul",null,(0,t.yg)("li",{parentName:"ul"},"GOOS\uff1a\u76ee\u6807\u5e73\u53f0\u7684\u64cd\u4f5c\u7cfb\u7edf(darwin\u3001freebsd\u3001linux\u3001windows)"),(0,t.yg)("li",{parentName:"ul"},"GOARCH\uff1a\u76ee\u6807\u5e73\u53f0\u7684\u4f53\u7cfb\u67b6\u678432\u4f4d\u8fd8\u662f64\u4f4d(386\u3001amd64\u3001arm)"),(0,t.yg)("li",{parentName:"ul"},"\u4ea4\u53c9\u7f16\u8bd1\u4e0d\u652f\u6301 CGO \u6240\u4ee5\u8981\u7981\u7528\u5b83")),(0,t.yg)("h3",{id:"cgo"},"CGO"),(0,t.yg)("ul",null,(0,t.yg)("li",{parentName:"ul"},(0,t.yg)("a",{parentName:"li",href:"https://blog.csdn.net/qq_42538588/article/details/131167683"},"CGO:\u8ba9Go\u7a0b\u5e8f\u8c03\u7528C\u51fd\u6570\u7684\u795e\u5668")),(0,t.yg)("li",{parentName:"ul"},(0,t.yg)("a",{parentName:"li",href:"https://blog.csdn.net/weixin_43128854/article/details/122956384"},"go\u8bed\u8a00\u8c03\u7528c\u8bed\u8a00\u52a8\u6001\u5e93\u53ca\u4ea4\u53c9\u7f16\u8bd1"))),(0,t.yg)("h3",{id:"go-mod-\u4f9d\u8d56\u95ee\u9898"},"go mod \u4f9d\u8d56\u95ee\u9898"),(0,t.yg)("ul",null,(0,t.yg)("li",{parentName:"ul"},"go mod init\uff1a\u521d\u59cb\u5316go mod\uff0c \u751f\u6210go.mod\u6587\u4ef6\uff0c\u540e\u53ef\u63a5\u53c2\u6570\u6307\u5b9a module \u540d\uff0c\u4e0a\u9762\u5df2\u7ecf\u6f14\u793a\u8fc7\u3002"),(0,t.yg)("li",{parentName:"ul"},"go mod download\uff1a\u624b\u52a8\u89e6\u53d1\u4e0b\u8f7d\u4f9d\u8d56\u5305\u5230\u672c\u5730cache\uff08\u9ed8\u8ba4\u4e3a$GOPATH/pkg/mod\u76ee\u5f55\uff09"),(0,t.yg)("li",{parentName:"ul"},"go mod graph\uff1a \u6253\u5370\u9879\u76ee\u7684\u6a21\u5757\u4f9d\u8d56\u7ed3\u6784"),(0,t.yg)("li",{parentName:"ul"},"go mod tidy \uff1a\u6dfb\u52a0\u7f3a\u5c11\u7684\u5305\uff0c\u4e14\u5220\u9664\u65e0\u7528\u7684\u5305"),(0,t.yg)("li",{parentName:"ul"},"go mod verify \uff1a\u6821\u9a8c\u6a21\u5757\u662f\u5426\u88ab\u7be1\u6539\u8fc7"),(0,t.yg)("li",{parentName:"ul"},"go mod why\uff1a \u67e5\u770b\u4e3a\u4ec0\u4e48\u9700\u8981\u4f9d\u8d56"),(0,t.yg)("li",{parentName:"ul"},"go mod vendor \uff1a\u5bfc\u51fa\u9879\u76ee\u6240\u6709\u4f9d\u8d56\u5230vendor\u4e0b"),(0,t.yg)("li",{parentName:"ul"},"go mod edit \uff1a\u7f16\u8f91go.mod\u6587\u4ef6\uff0c\u63a5 -fmt \u53c2\u6570\u683c\u5f0f\u5316 go.mod \u6587\u4ef6\uff0c\u63a5 -require=golang.org/x/text \u6dfb\u52a0\u4f9d\u8d56\uff0c\u63a5 -droprequire=golang.org/x/text \u5220\u9664\u4f9d\u8d56\uff0c\u8be6\u60c5\u53ef\u53c2\u8003 go help mod edit"),(0,t.yg)("li",{parentName:"ul"},"go list -m -json all\uff1a\u4ee5 json \u7684\u65b9\u5f0f\u6253\u5370\u4f9d\u8d56\u8be6\u60c5- "),(0,t.yg)("li",{parentName:"ul"},(0,t.yg)("a",{parentName:"li",href:"https://blog.csdn.net/kenkao/article/details/124550249"},"Golang\u4e2dGoPath\u548cGoModule\u6a21\u5f0f\u7684\u533a\u522b"))),(0,t.yg)("h3",{id:"\u4ee3\u7406"},"\u4ee3\u7406"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},"#\ngo env\n# \u539f\u4ee3\u7406\n# GOPROXY='https://proxy.golang.org,direct'\n# go\u6a21\u5757\uff08\u4e03\u725b\u4e91\uff09\u4ee3\u7406\ngo env -w GOPROXY=https://goproxy.cn,direct\n")))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ee028c53.cea852e6.js b/assets/js/ee028c53.920c03c3.js similarity index 98% rename from assets/js/ee028c53.cea852e6.js rename to assets/js/ee028c53.920c03c3.js index c4c9101c6..8462ec366 100644 --- a/assets/js/ee028c53.cea852e6.js +++ b/assets/js/ee028c53.920c03c3.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6240],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),s=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=s(e.components);return n.createElement(l.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),d=s(r),y=o,f=d["".concat(l,".").concat(y)]||d[y]||u[y]||a;return r?n.createElement(f,i(i({ref:t},p),{},{components:r})):n.createElement(f,i({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=y;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[d]="string"==typeof e?e:o,i[1]=c;for(var s=2;s{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>u,frontMatter:()=>a,metadata:()=>c,toc:()=>s});var n=r(8168),o=(r(6540),r(5680));const a={},i=void 0,c={unversionedId:"study/think/\u9886\u57df\u9a71\u52a8\u8bbe\u8ba1DDD",id:"study/think/\u9886\u57df\u9a71\u52a8\u8bbe\u8ba1DDD",title:"\u9886\u57df\u9a71\u52a8\u8bbe\u8ba1DDD",description:"\u4ec0\u4e48\u662fDDD",source:"@site/docs/study/think/\u9886\u57df\u9a71\u52a8\u8bbe\u8ba1DDD.md",sourceDirName:"study/think",slug:"/study/think/\u9886\u57df\u9a71\u52a8\u8bbe\u8ba1DDD",permalink:"/docs/study/think/\u9886\u57df\u9a71\u52a8\u8bbe\u8ba1DDD",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u9650\u6d41",permalink:"/docs/study/think/\u9650\u6d41"},next:{title:"\u6982\u8ff0",permalink:"/docs/study/docker/"}},l={},s=[{value:"\u4ec0\u4e48\u662fDDD",id:"\u4ec0\u4e48\u662fddd",level:3},{value:"\u67b6\u6784\u56fe",id:"\u67b6\u6784\u56fe",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],p={toc:s},d="wrapper";function u(e){let{components:t,...a}=e;return(0,o.yg)(d,(0,n.A)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u4ec0\u4e48\u662fddd"},"\u4ec0\u4e48\u662fDDD"),(0,o.yg)("h3",{id:"\u67b6\u6784\u56fe"},"\u67b6\u6784\u56fe"),(0,o.yg)("p",null,(0,o.yg)("img",{alt:"image.png",src:r(819).A,width:"750",height:"559"})),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("a",{parentName:"li",href:"https://blog.csdn.net/ityouknow/article/details/81572072"},"\u53ef\u4ee5\u843d\u5730\u7684DDD\u5230\u5e95\u957f\u4ec0\u4e48\u6837\uff1f")),(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("a",{parentName:"li",href:"https://www.cnblogs.com/lesofn/p/15898137.html"},"\u4eceMVC\u5230DDD\u7684\u67b6\u6784\u6f14\u8fdb"))))}u.isMDXComponent=!0},819:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/image-f553779fb500c890cbd3dd9a0c3024ea.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6240],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),s=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=s(e.components);return n.createElement(l.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),d=s(r),y=o,f=d["".concat(l,".").concat(y)]||d[y]||u[y]||a;return r?n.createElement(f,i(i({ref:t},p),{},{components:r})):n.createElement(f,i({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=y;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[d]="string"==typeof e?e:o,i[1]=c;for(var s=2;s{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>u,frontMatter:()=>a,metadata:()=>c,toc:()=>s});var n=r(8168),o=(r(6540),r(5680));const a={},i=void 0,c={unversionedId:"study/think/\u9886\u57df\u9a71\u52a8\u8bbe\u8ba1DDD",id:"study/think/\u9886\u57df\u9a71\u52a8\u8bbe\u8ba1DDD",title:"\u9886\u57df\u9a71\u52a8\u8bbe\u8ba1DDD",description:"\u4ec0\u4e48\u662fDDD",source:"@site/docs/study/think/\u9886\u57df\u9a71\u52a8\u8bbe\u8ba1DDD.md",sourceDirName:"study/think",slug:"/study/think/\u9886\u57df\u9a71\u52a8\u8bbe\u8ba1DDD",permalink:"/docs/study/think/\u9886\u57df\u9a71\u52a8\u8bbe\u8ba1DDD",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u9650\u6d41",permalink:"/docs/study/think/\u9650\u6d41"},next:{title:"\u6982\u8ff0",permalink:"/docs/study/docker/"}},l={},s=[{value:"\u4ec0\u4e48\u662fDDD",id:"\u4ec0\u4e48\u662fddd",level:3},{value:"\u67b6\u6784\u56fe",id:"\u67b6\u6784\u56fe",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],p={toc:s},d="wrapper";function u(e){let{components:t,...a}=e;return(0,o.yg)(d,(0,n.A)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u4ec0\u4e48\u662fddd"},"\u4ec0\u4e48\u662fDDD"),(0,o.yg)("h3",{id:"\u67b6\u6784\u56fe"},"\u67b6\u6784\u56fe"),(0,o.yg)("p",null,(0,o.yg)("img",{alt:"image.png",src:r(819).A,width:"750",height:"559"})),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("a",{parentName:"li",href:"https://blog.csdn.net/ityouknow/article/details/81572072"},"\u53ef\u4ee5\u843d\u5730\u7684DDD\u5230\u5e95\u957f\u4ec0\u4e48\u6837\uff1f")),(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("a",{parentName:"li",href:"https://www.cnblogs.com/lesofn/p/15898137.html"},"\u4eceMVC\u5230DDD\u7684\u67b6\u6784\u6f14\u8fdb"))))}u.isMDXComponent=!0},819:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/image-f553779fb500c890cbd3dd9a0c3024ea.png"}}]); \ No newline at end of file diff --git a/assets/js/ee6139c1.5896c960.js b/assets/js/ee6139c1.649eec1c.js similarity index 98% rename from assets/js/ee6139c1.5896c960.js rename to assets/js/ee6139c1.649eec1c.js index 57bdb86a2..5b3cf4031 100644 --- a/assets/js/ee6139c1.5896c960.js +++ b/assets/js/ee6139c1.649eec1c.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8810],{5680:(e,t,r)=>{r.d(t,{xA:()=>l,yg:()=>f});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),u=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},l=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,l=i(e,["components","mdxType","originalType","parentName"]),s=u(r),d=a,f=s["".concat(p,".").concat(d)]||s[d]||y[d]||o;return r?n.createElement(f,c(c({ref:t},l),{},{components:r})):n.createElement(f,c({ref:t},l))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,c=new Array(o);c[0]=d;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:a,c[1]=i;for(var u=2;u{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>c,default:()=>y,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var n=r(8168),a=(r(6540),r(5680));const o={},c=void 0,i={unversionedId:"study/back/\u4fe1\u606f\u5b89\u5168/\u9632\u8303\u6f0f\u6d1e\u653b\u51fb",id:"study/back/\u4fe1\u606f\u5b89\u5168/\u9632\u8303\u6f0f\u6d1e\u653b\u51fb",title:"\u9632\u8303\u6f0f\u6d1e\u653b\u51fb",description:"\u53c2\u8003 Spring Security \u9632\u8303\u6f0f\u6d1e\u653b\u51fb",source:"@site/docs/study/back/\u4fe1\u606f\u5b89\u5168/\u9632\u8303\u6f0f\u6d1e\u653b\u51fb.md",sourceDirName:"study/back/\u4fe1\u606f\u5b89\u5168",slug:"/study/back/\u4fe1\u606f\u5b89\u5168/\u9632\u8303\u6f0f\u6d1e\u653b\u51fb",permalink:"/docs/study/back/\u4fe1\u606f\u5b89\u5168/\u9632\u8303\u6f0f\u6d1e\u653b\u51fb",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u8ba4\u8bc1",permalink:"/docs/study/back/\u4fe1\u606f\u5b89\u5168/\u8ba4\u8bc1"},next:{title:"JPA-MyBatis",permalink:"/docs/study/back/\u6570\u636e\u5e93\u76f8\u5173/JPA-MyBatis"}},p={},u=[],l={toc:u},s="wrapper";function y(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("p",null,"\u53c2\u8003 ",(0,a.yg)("a",{parentName:"p",href:"https://springdoc.cn/spring-security/features/exploits/index.html"},"Spring Security \u9632\u8303\u6f0f\u6d1e\u653b\u51fb")),(0,a.yg)("p",null,"\u5305\u62ec\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"CSRF \u8de8\u7ad9\u8bf7\u6c42\u4f2a\u9020"),(0,a.yg)("li",{parentName:"ul"},"HTTP Header : Spring Security \u63d0\u4f9b\u4e86\u4e00\u5957\u9ed8\u8ba4\u7684\u5b89\u5168\u76f8\u5173\u7684 HTTP \u54cd\u5e94\u5934\uff0c\u4ee5\u63d0\u4f9b\u5b89\u5168\u7684\u9ed8\u8ba4\u503c\u3002"),(0,a.yg)("li",{parentName:"ul"},"HTTP : \u6240\u6709\u57fa\u4e8e HTTP \u7684\u901a\u4fe1\uff0c\u5305\u62ec \u9759\u6001\u8d44\u6e90\uff0c\u90fd\u5e94\u8be5\u901a\u8fc7\u4f7f\u7528 TLS \u8fdb\u884c\u4fdd\u62a4\u3002\u4f5c\u4e3a\u4e00\u4e2a\u6846\u67b6\uff0cSpring Security \u5e76\u4e0d\u5904\u7406 HTTP \u8fde\u63a5\uff0c\u56e0\u6b64\u5e76\u4e0d\u76f4\u63a5\u63d0\u4f9b\u5bf9 HTTPS \u7684\u652f\u6301\u3002\u7136\u800c\uff0c\u5b83\u786e\u5b9e\u63d0\u4f9b\u4e86\u4e00\u4e9b\u6709\u52a9\u4e8e HTTPS \u4f7f\u7528\u7684\u529f\u80fd\u3002")))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8810],{5680:(e,t,r)=>{r.d(t,{xA:()=>l,yg:()=>f});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),u=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},l=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,l=i(e,["components","mdxType","originalType","parentName"]),s=u(r),d=a,f=s["".concat(p,".").concat(d)]||s[d]||y[d]||o;return r?n.createElement(f,c(c({ref:t},l),{},{components:r})):n.createElement(f,c({ref:t},l))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,c=new Array(o);c[0]=d;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:a,c[1]=i;for(var u=2;u{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>c,default:()=>y,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var n=r(8168),a=(r(6540),r(5680));const o={},c=void 0,i={unversionedId:"study/back/\u4fe1\u606f\u5b89\u5168/\u9632\u8303\u6f0f\u6d1e\u653b\u51fb",id:"study/back/\u4fe1\u606f\u5b89\u5168/\u9632\u8303\u6f0f\u6d1e\u653b\u51fb",title:"\u9632\u8303\u6f0f\u6d1e\u653b\u51fb",description:"\u53c2\u8003 Spring Security \u9632\u8303\u6f0f\u6d1e\u653b\u51fb",source:"@site/docs/study/back/\u4fe1\u606f\u5b89\u5168/\u9632\u8303\u6f0f\u6d1e\u653b\u51fb.md",sourceDirName:"study/back/\u4fe1\u606f\u5b89\u5168",slug:"/study/back/\u4fe1\u606f\u5b89\u5168/\u9632\u8303\u6f0f\u6d1e\u653b\u51fb",permalink:"/docs/study/back/\u4fe1\u606f\u5b89\u5168/\u9632\u8303\u6f0f\u6d1e\u653b\u51fb",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u8ba4\u8bc1",permalink:"/docs/study/back/\u4fe1\u606f\u5b89\u5168/\u8ba4\u8bc1"},next:{title:"JPA-MyBatis",permalink:"/docs/study/back/\u6570\u636e\u5e93\u76f8\u5173/JPA-MyBatis"}},p={},u=[],l={toc:u},s="wrapper";function y(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("p",null,"\u53c2\u8003 ",(0,a.yg)("a",{parentName:"p",href:"https://springdoc.cn/spring-security/features/exploits/index.html"},"Spring Security \u9632\u8303\u6f0f\u6d1e\u653b\u51fb")),(0,a.yg)("p",null,"\u5305\u62ec\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"CSRF \u8de8\u7ad9\u8bf7\u6c42\u4f2a\u9020"),(0,a.yg)("li",{parentName:"ul"},"HTTP Header : Spring Security \u63d0\u4f9b\u4e86\u4e00\u5957\u9ed8\u8ba4\u7684\u5b89\u5168\u76f8\u5173\u7684 HTTP \u54cd\u5e94\u5934\uff0c\u4ee5\u63d0\u4f9b\u5b89\u5168\u7684\u9ed8\u8ba4\u503c\u3002"),(0,a.yg)("li",{parentName:"ul"},"HTTP : \u6240\u6709\u57fa\u4e8e HTTP \u7684\u901a\u4fe1\uff0c\u5305\u62ec \u9759\u6001\u8d44\u6e90\uff0c\u90fd\u5e94\u8be5\u901a\u8fc7\u4f7f\u7528 TLS \u8fdb\u884c\u4fdd\u62a4\u3002\u4f5c\u4e3a\u4e00\u4e2a\u6846\u67b6\uff0cSpring Security \u5e76\u4e0d\u5904\u7406 HTTP \u8fde\u63a5\uff0c\u56e0\u6b64\u5e76\u4e0d\u76f4\u63a5\u63d0\u4f9b\u5bf9 HTTPS \u7684\u652f\u6301\u3002\u7136\u800c\uff0c\u5b83\u786e\u5b9e\u63d0\u4f9b\u4e86\u4e00\u4e9b\u6709\u52a9\u4e8e HTTPS \u4f7f\u7528\u7684\u529f\u80fd\u3002")))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/eef634fe.53980a4b.js b/assets/js/eef634fe.911e7e74.js similarity index 99% rename from assets/js/eef634fe.53980a4b.js rename to assets/js/eef634fe.911e7e74.js index 73e780022..744ae5b4f 100644 --- a/assets/js/eef634fe.53980a4b.js +++ b/assets/js/eef634fe.911e7e74.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7575],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>g});var n=r(6540);function l(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(l[r]=e[r]);return l}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(l[r]=e[r])}return l}var c=n.createContext({}),p=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(c.Provider,{value:t},e.children)},y="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},s=n.forwardRef((function(e,t){var r=e.components,l=e.mdxType,a=e.originalType,c=e.parentName,u=o(e,["components","mdxType","originalType","parentName"]),y=p(r),s=l,g=y["".concat(c,".").concat(s)]||y[s]||d[s]||a;return r?n.createElement(g,i(i({ref:t},u),{},{components:r})):n.createElement(g,i({ref:t},u))}));function g(e,t){var r=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var a=r.length,i=new Array(a);i[0]=s;var o={};for(var c in t)hasOwnProperty.call(t,c)&&(o[c]=t[c]);o.originalType=e,o[y]="string"==typeof e?e:l,i[1]=o;for(var p=2;p{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>o,toc:()=>p});var n=r(8168),l=(r(6540),r(5680));const a={},i=void 0,o={unversionedId:"study/encryption/\u975e\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3",id:"study/encryption/\u975e\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3",title:"\u975e\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3",description:"\u672c\u6587\u5c06\u8be6\u7ec6\u4ecb\u7ecd\u51e0\u79cd\u5e38\u89c1\u7684\u975e\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\uff0c\u5305\u62ec\u5b83\u4eec\u7684\u5de5\u4f5c\u539f\u7406\u3001\u4f18\u7f3a\u70b9\u548c\u5e94\u7528\u573a\u666f\u3002",source:"@site/docs/study/encryption/\u975e\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3.md",sourceDirName:"study/encryption",slug:"/study/encryption/\u975e\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3",permalink:"/docs/study/encryption/\u975e\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u8bfb\u4e66\u7b14\u8bb0-\u56fe\u89e3\u5bc6\u7801\u6280\u672f",permalink:"/docs/study/encryption/\u8bfb\u4e66\u7b14\u8bb0-\u56fe\u89e3\u5bc6\u7801\u6280\u672f"},next:{title:"\u4eba\u5de5\u667a\u80fd",permalink:"/docs/study/ai/"}},c={},p=[{value:"\u4e00\u3001RSA \u7b97\u6cd5",id:"\u4e00rsa-\u7b97\u6cd5",level:3},{value:"\u4e8c\u3001ECC\uff08Elliptic Curve Cryptography\uff09",id:"\u4e8ceccelliptic-curve-cryptography",level:3},{value:"\u4e09\u3001Diffie-Hellman \u7b97\u6cd5",id:"\u4e09diffie-hellman-\u7b97\u6cd5",level:3},{value:"\u56db\u3001ElGamal \u7b97\u6cd5",id:"\u56dbelgamal-\u7b97\u6cd5",level:3},{value:"\u4e94\u3001DSA\uff08Digital Signature Algorithm\uff09",id:"\u4e94dsadigital-signature-algorithm",level:3}],u={toc:p},y="wrapper";function d(e){let{components:t,...r}=e;return(0,l.yg)(y,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,l.yg)("p",null,"\u672c\u6587\u5c06\u8be6\u7ec6\u4ecb\u7ecd\u51e0\u79cd\u5e38\u89c1\u7684\u975e\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\uff0c\u5305\u62ec\u5b83\u4eec\u7684\u5de5\u4f5c\u539f\u7406\u3001\u4f18\u7f3a\u70b9\u548c\u5e94\u7528\u573a\u666f\u3002"),(0,l.yg)("h3",{id:"\u4e00rsa-\u7b97\u6cd5"},"\u4e00\u3001RSA \u7b97\u6cd5"),(0,l.yg)("p",null,"\u7b97\u6cd5\u7684\u540d\u5b57\u4ee5\u53d1\u660e\u8005\u7684\u540d\u5b57\u547d\u540d\uff1aRon Rivest, AdiShamir \u548c Leonard Adleman\u3002"),(0,l.yg)("p",null,"RSA \u7b97\u6cd5\u662f\u6700\u65e9\u7684\u975e\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u4e4b\u4e00\uff0c\u4e5f\u662f\u76ee\u524d\u4f7f\u7528\u6700\u5e7f\u6cdb\u7684\u975e\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u3002"),(0,l.yg)("p",null,"\u5b83\u57fa\u4e8e\u5927\u6570\u56e0\u5b50\u5206\u89e3\u95ee\u9898\uff0c\u63d0\u4f9b\u4e86\u826f\u597d\u7684\u5b89\u5168\u6027\u3002\u4f46\u7531\u4e8e\u5176\u8fd0\u7b97\u590d\u6742\uff0c\u6548\u7387\u76f8\u5bf9\u8f83\u4f4e\u3002"),(0,l.yg)("p",null,"RSA \u7b97\u6cd5\u88ab\u5e7f\u6cdb\u5e94\u7528\u4e8e\u7f51\u7edc\u901a\u4fe1\u3001\u7535\u5b50\u7b7e\u540d\u3001SSL/TLS \u7b49\u9886\u57df\u3002"),(0,l.yg)("h3",{id:"\u4e8ceccelliptic-curve-cryptography"},"\u4e8c\u3001ECC\uff08Elliptic Curve Cryptography\uff09"),(0,l.yg)("p",null,"ECC \u662f\u57fa\u4e8e\u692d\u5706\u66f2\u7ebf\u6570\u5b66\u7684\u4e00\u79cd\u975e\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u3002\u76f8\u6bd4\u4e8e RSA\uff0cECC \u5728\u63d0\u4f9b\u76f8\u540c\u5b89\u5168\u6027\u7684\u60c5\u51b5\u4e0b\uff0c\u9700\u8981\u7684\u5bc6\u94a5\u957f\u5ea6\u66f4\u77ed\uff0c\u8fd9\u4f7f\u5f97 ECC \u5728\u5904\u7406\u901f\u5ea6\u548c\u5b58\u50a8\u7a7a\u95f4\u4e0a\u90fd\u6bd4 RSA \u66f4\u4f18\u79c0\u3002"),(0,l.yg)("p",null,"ECC \u5e38\u88ab\u7528\u4e8e\u79fb\u52a8\u8bbe\u5907\u3001\u5d4c\u5165\u5f0f\u7cfb\u7edf\u7b49\u8d44\u6e90\u53d7\u9650\u7684\u73af\u5883\uff0c\u4e5f\u88ab\u7528\u4e8e SSL/TLS\u3001IPSec \u7b49\u7f51\u7edc\u5b89\u5168\u534f\u8bae\u3002"),(0,l.yg)("h3",{id:"\u4e09diffie-hellman-\u7b97\u6cd5"},"\u4e09\u3001Diffie-Hellman \u7b97\u6cd5"),(0,l.yg)("p",null,"Diffie-Hellman \u7b97\u6cd5\u662f\u4e00\u79cd\u5bc6\u94a5\u4ea4\u6362\u534f\u8bae\uff0c\u5b83\u5141\u8bb8\u53cc\u65b9\u5728\u516c\u5f00\u901a\u9053\u4e0a\u751f\u6210\u4e00\u4e2a\u5171\u4eab\u7684\u5bc6\u94a5\u3002\u867d\u7136 Diffie-Hellman \u7b97\u6cd5\u672c\u8eab\u4e0d\u662f\u7528\u6765\u52a0\u5bc6\u6216\u7b7e\u540d\u7684\uff0c\u4f46\u5b83\u5728\u8bb8\u591a\u975e\u5bf9\u79f0\u52a0\u5bc6\u548c\u6570\u5b57\u7b7e\u540d\u7b97\u6cd5\u4e2d\u8d77\u5230\u4e86\u5173\u952e\u4f5c\u7528\u3002"),(0,l.yg)("p",null,"Diffie-Hellman \u7b97\u6cd5\u88ab\u5e7f\u6cdb\u5e94\u7528\u4e8e VPN\u3001\u5b89\u5168\u901a\u4fe1\u7b49\u573a\u666f\u3002"),(0,l.yg)("h3",{id:"\u56dbelgamal-\u7b97\u6cd5"},"\u56db\u3001ElGamal \u7b97\u6cd5"),(0,l.yg)("p",null,"ElGamal \u7b97\u6cd5\u662f\u53e6\u4e00\u79cd\u57fa\u4e8e\u79bb\u6563\u5bf9\u6570\u95ee\u9898\u7684\u975e\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\uff0c\u5b83\u53ef\u4ee5\u7528\u4e8e\u52a0\u5bc6\u548c\u6570\u5b57\u7b7e\u540d\u3002"),(0,l.yg)("p",null,"ElGamal \u52a0\u5bc6\u7684\u5b89\u5168\u6027\u5728\u4e8e\u6c42\u89e3\u79bb\u6563\u5bf9\u6570\u95ee\u9898\u7684\u56f0\u96be\u6027\uff0c\u4f46\u662f\u5176\u8fd0\u7b97\u6548\u7387\u76f8\u5bf9\u8f83\u4f4e\u3002"),(0,l.yg)("p",null,"ElGamal \u7b97\u6cd5\u5728\u7535\u5b50\u90ae\u4ef6\u52a0\u5bc6\uff08\u4f8b\u5982 OpenPGP\uff09\u548c\u7535\u5b50\u7b7e\u540d\u7b49\u9886\u57df\u6709\u5e94\u7528\u3002"),(0,l.yg)("h3",{id:"\u4e94dsadigital-signature-algorithm"},"\u4e94\u3001DSA\uff08Digital Signature Algorithm\uff09"),(0,l.yg)("p",null,"DSA \u662f\u4e00\u79cd\u4e3b\u8981\u7528\u4e8e\u6570\u5b57\u7b7e\u540d\u7684\u975e\u5bf9\u79f0\u7b97\u6cd5\uff0c\u5b83\u662f NIST \u5236\u5b9a\u7684 DSS\uff08Digital Signature Standard\uff09\u7684\u4e00\u90e8\u5206\u3002"),(0,l.yg)("p",null,"DSA \u7684\u5b89\u5168\u6027\u57fa\u4e8e\u79bb\u6563\u5bf9\u6570\u95ee\u9898\u3002"),(0,l.yg)("p",null,"DSA \u7b97\u6cd5\u88ab\u5e7f\u6cdb\u5e94\u7528\u4e8e\u6570\u5b57\u7b7e\u540d\u3001\u8bc1\u4e66\u8ba4\u8bc1\u7b49\u9886\u57df\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7575],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>g});var n=r(6540);function l(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(l[r]=e[r]);return l}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(l[r]=e[r])}return l}var c=n.createContext({}),p=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(c.Provider,{value:t},e.children)},y="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},s=n.forwardRef((function(e,t){var r=e.components,l=e.mdxType,a=e.originalType,c=e.parentName,u=o(e,["components","mdxType","originalType","parentName"]),y=p(r),s=l,g=y["".concat(c,".").concat(s)]||y[s]||d[s]||a;return r?n.createElement(g,i(i({ref:t},u),{},{components:r})):n.createElement(g,i({ref:t},u))}));function g(e,t){var r=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var a=r.length,i=new Array(a);i[0]=s;var o={};for(var c in t)hasOwnProperty.call(t,c)&&(o[c]=t[c]);o.originalType=e,o[y]="string"==typeof e?e:l,i[1]=o;for(var p=2;p{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>o,toc:()=>p});var n=r(8168),l=(r(6540),r(5680));const a={},i=void 0,o={unversionedId:"study/encryption/\u975e\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3",id:"study/encryption/\u975e\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3",title:"\u975e\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3",description:"\u672c\u6587\u5c06\u8be6\u7ec6\u4ecb\u7ecd\u51e0\u79cd\u5e38\u89c1\u7684\u975e\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\uff0c\u5305\u62ec\u5b83\u4eec\u7684\u5de5\u4f5c\u539f\u7406\u3001\u4f18\u7f3a\u70b9\u548c\u5e94\u7528\u573a\u666f\u3002",source:"@site/docs/study/encryption/\u975e\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3.md",sourceDirName:"study/encryption",slug:"/study/encryption/\u975e\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3",permalink:"/docs/study/encryption/\u975e\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u603b\u7ed3",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u8bfb\u4e66\u7b14\u8bb0-\u56fe\u89e3\u5bc6\u7801\u6280\u672f",permalink:"/docs/study/encryption/\u8bfb\u4e66\u7b14\u8bb0-\u56fe\u89e3\u5bc6\u7801\u6280\u672f"},next:{title:"\u4eba\u5de5\u667a\u80fd",permalink:"/docs/study/ai/"}},c={},p=[{value:"\u4e00\u3001RSA \u7b97\u6cd5",id:"\u4e00rsa-\u7b97\u6cd5",level:3},{value:"\u4e8c\u3001ECC\uff08Elliptic Curve Cryptography\uff09",id:"\u4e8ceccelliptic-curve-cryptography",level:3},{value:"\u4e09\u3001Diffie-Hellman \u7b97\u6cd5",id:"\u4e09diffie-hellman-\u7b97\u6cd5",level:3},{value:"\u56db\u3001ElGamal \u7b97\u6cd5",id:"\u56dbelgamal-\u7b97\u6cd5",level:3},{value:"\u4e94\u3001DSA\uff08Digital Signature Algorithm\uff09",id:"\u4e94dsadigital-signature-algorithm",level:3}],u={toc:p},y="wrapper";function d(e){let{components:t,...r}=e;return(0,l.yg)(y,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,l.yg)("p",null,"\u672c\u6587\u5c06\u8be6\u7ec6\u4ecb\u7ecd\u51e0\u79cd\u5e38\u89c1\u7684\u975e\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\uff0c\u5305\u62ec\u5b83\u4eec\u7684\u5de5\u4f5c\u539f\u7406\u3001\u4f18\u7f3a\u70b9\u548c\u5e94\u7528\u573a\u666f\u3002"),(0,l.yg)("h3",{id:"\u4e00rsa-\u7b97\u6cd5"},"\u4e00\u3001RSA \u7b97\u6cd5"),(0,l.yg)("p",null,"\u7b97\u6cd5\u7684\u540d\u5b57\u4ee5\u53d1\u660e\u8005\u7684\u540d\u5b57\u547d\u540d\uff1aRon Rivest, AdiShamir \u548c Leonard Adleman\u3002"),(0,l.yg)("p",null,"RSA \u7b97\u6cd5\u662f\u6700\u65e9\u7684\u975e\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u4e4b\u4e00\uff0c\u4e5f\u662f\u76ee\u524d\u4f7f\u7528\u6700\u5e7f\u6cdb\u7684\u975e\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u3002"),(0,l.yg)("p",null,"\u5b83\u57fa\u4e8e\u5927\u6570\u56e0\u5b50\u5206\u89e3\u95ee\u9898\uff0c\u63d0\u4f9b\u4e86\u826f\u597d\u7684\u5b89\u5168\u6027\u3002\u4f46\u7531\u4e8e\u5176\u8fd0\u7b97\u590d\u6742\uff0c\u6548\u7387\u76f8\u5bf9\u8f83\u4f4e\u3002"),(0,l.yg)("p",null,"RSA \u7b97\u6cd5\u88ab\u5e7f\u6cdb\u5e94\u7528\u4e8e\u7f51\u7edc\u901a\u4fe1\u3001\u7535\u5b50\u7b7e\u540d\u3001SSL/TLS \u7b49\u9886\u57df\u3002"),(0,l.yg)("h3",{id:"\u4e8ceccelliptic-curve-cryptography"},"\u4e8c\u3001ECC\uff08Elliptic Curve Cryptography\uff09"),(0,l.yg)("p",null,"ECC \u662f\u57fa\u4e8e\u692d\u5706\u66f2\u7ebf\u6570\u5b66\u7684\u4e00\u79cd\u975e\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u3002\u76f8\u6bd4\u4e8e RSA\uff0cECC \u5728\u63d0\u4f9b\u76f8\u540c\u5b89\u5168\u6027\u7684\u60c5\u51b5\u4e0b\uff0c\u9700\u8981\u7684\u5bc6\u94a5\u957f\u5ea6\u66f4\u77ed\uff0c\u8fd9\u4f7f\u5f97 ECC \u5728\u5904\u7406\u901f\u5ea6\u548c\u5b58\u50a8\u7a7a\u95f4\u4e0a\u90fd\u6bd4 RSA \u66f4\u4f18\u79c0\u3002"),(0,l.yg)("p",null,"ECC \u5e38\u88ab\u7528\u4e8e\u79fb\u52a8\u8bbe\u5907\u3001\u5d4c\u5165\u5f0f\u7cfb\u7edf\u7b49\u8d44\u6e90\u53d7\u9650\u7684\u73af\u5883\uff0c\u4e5f\u88ab\u7528\u4e8e SSL/TLS\u3001IPSec \u7b49\u7f51\u7edc\u5b89\u5168\u534f\u8bae\u3002"),(0,l.yg)("h3",{id:"\u4e09diffie-hellman-\u7b97\u6cd5"},"\u4e09\u3001Diffie-Hellman \u7b97\u6cd5"),(0,l.yg)("p",null,"Diffie-Hellman \u7b97\u6cd5\u662f\u4e00\u79cd\u5bc6\u94a5\u4ea4\u6362\u534f\u8bae\uff0c\u5b83\u5141\u8bb8\u53cc\u65b9\u5728\u516c\u5f00\u901a\u9053\u4e0a\u751f\u6210\u4e00\u4e2a\u5171\u4eab\u7684\u5bc6\u94a5\u3002\u867d\u7136 Diffie-Hellman \u7b97\u6cd5\u672c\u8eab\u4e0d\u662f\u7528\u6765\u52a0\u5bc6\u6216\u7b7e\u540d\u7684\uff0c\u4f46\u5b83\u5728\u8bb8\u591a\u975e\u5bf9\u79f0\u52a0\u5bc6\u548c\u6570\u5b57\u7b7e\u540d\u7b97\u6cd5\u4e2d\u8d77\u5230\u4e86\u5173\u952e\u4f5c\u7528\u3002"),(0,l.yg)("p",null,"Diffie-Hellman \u7b97\u6cd5\u88ab\u5e7f\u6cdb\u5e94\u7528\u4e8e VPN\u3001\u5b89\u5168\u901a\u4fe1\u7b49\u573a\u666f\u3002"),(0,l.yg)("h3",{id:"\u56dbelgamal-\u7b97\u6cd5"},"\u56db\u3001ElGamal \u7b97\u6cd5"),(0,l.yg)("p",null,"ElGamal \u7b97\u6cd5\u662f\u53e6\u4e00\u79cd\u57fa\u4e8e\u79bb\u6563\u5bf9\u6570\u95ee\u9898\u7684\u975e\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\uff0c\u5b83\u53ef\u4ee5\u7528\u4e8e\u52a0\u5bc6\u548c\u6570\u5b57\u7b7e\u540d\u3002"),(0,l.yg)("p",null,"ElGamal \u52a0\u5bc6\u7684\u5b89\u5168\u6027\u5728\u4e8e\u6c42\u89e3\u79bb\u6563\u5bf9\u6570\u95ee\u9898\u7684\u56f0\u96be\u6027\uff0c\u4f46\u662f\u5176\u8fd0\u7b97\u6548\u7387\u76f8\u5bf9\u8f83\u4f4e\u3002"),(0,l.yg)("p",null,"ElGamal \u7b97\u6cd5\u5728\u7535\u5b50\u90ae\u4ef6\u52a0\u5bc6\uff08\u4f8b\u5982 OpenPGP\uff09\u548c\u7535\u5b50\u7b7e\u540d\u7b49\u9886\u57df\u6709\u5e94\u7528\u3002"),(0,l.yg)("h3",{id:"\u4e94dsadigital-signature-algorithm"},"\u4e94\u3001DSA\uff08Digital Signature Algorithm\uff09"),(0,l.yg)("p",null,"DSA \u662f\u4e00\u79cd\u4e3b\u8981\u7528\u4e8e\u6570\u5b57\u7b7e\u540d\u7684\u975e\u5bf9\u79f0\u7b97\u6cd5\uff0c\u5b83\u662f NIST \u5236\u5b9a\u7684 DSS\uff08Digital Signature Standard\uff09\u7684\u4e00\u90e8\u5206\u3002"),(0,l.yg)("p",null,"DSA \u7684\u5b89\u5168\u6027\u57fa\u4e8e\u79bb\u6563\u5bf9\u6570\u95ee\u9898\u3002"),(0,l.yg)("p",null,"DSA \u7b97\u6cd5\u88ab\u5e7f\u6cdb\u5e94\u7528\u4e8e\u6570\u5b57\u7b7e\u540d\u3001\u8bc1\u4e66\u8ba4\u8bc1\u7b49\u9886\u57df\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f12f9261.841f6379.js b/assets/js/f12f9261.25961184.js similarity index 99% rename from assets/js/f12f9261.841f6379.js rename to assets/js/f12f9261.25961184.js index df9b3de6d..a4bcc4d28 100644 --- a/assets/js/f12f9261.841f6379.js +++ b/assets/js/f12f9261.25961184.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[30],{5680:(e,n,r)=>{r.d(n,{xA:()=>c,yg:()=>g});var t=r(6540);function a(e,n,r){return n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r,e}function o(e,n){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n&&(t=t.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),r.push.apply(r,t)}return r}function l(e){for(var n=1;n=0||(a[r]=e[r]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=t.createContext({}),p=function(e){var n=t.useContext(s),r=n;return e&&(r="function"==typeof e?e(n):l(l({},n),e)),r},c=function(e){var n=p(e.components);return t.createElement(s.Provider,{value:n},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return t.createElement(t.Fragment,{},n)}},d=t.forwardRef((function(e,n){var r=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),u=p(r),d=a,g=u["".concat(s,".").concat(d)]||u[d]||m[d]||o;return r?t.createElement(g,l(l({ref:n},c),{},{components:r})):t.createElement(g,l({ref:n},c))}));function g(e,n){var r=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=d;var i={};for(var s in n)hasOwnProperty.call(n,s)&&(i[s]=n[s]);i.originalType=e,i[u]="string"==typeof e?e:a,l[1]=i;for(var p=2;p{r.r(n),r.d(n,{assets:()=>s,contentTitle:()=>l,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var t=r(8168),a=(r(6540),r(5680));const o={},l=void 0,i={unversionedId:"study/program/JAVA/GC",id:"study/program/JAVA/GC",title:"GC",description:"JVM \u4e2d\u5e38\u89c1\u7684\u5783\u573e\u6536\u96c6\u7b97\u6cd5",source:"@site/docs/study/program/JAVA/GC.md",sourceDirName:"study/program/JAVA",slug:"/study/program/JAVA/GC",permalink:"/docs/study/program/JAVA/GC",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Java",permalink:"/docs/study/program/JAVA/"},next:{title:"GraalVM",permalink:"/docs/study/program/JAVA/GraalVM"}},s={},p=[{value:"JVM \u4e2d\u5e38\u89c1\u7684\u5783\u573e\u6536\u96c6\u7b97\u6cd5",id:"jvm-\u4e2d\u5e38\u89c1\u7684\u5783\u573e\u6536\u96c6\u7b97\u6cd5",level:3},{value:"\u67e5\u770b\u5404\u4e2a\u7248\u672c\u7684 GC",id:"\u67e5\u770b\u5404\u4e2a\u7248\u672c\u7684-gc",level:3},{value:"JVM \u5185\u5b58\u95ee\u9898\u6392\u67e5",id:"jvm-\u5185\u5b58\u95ee\u9898\u6392\u67e5",level:3}],c={toc:p},u="wrapper";function m(e){let{components:n,...r}=e;return(0,a.yg)(u,(0,t.A)({},c,r,{components:n,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"jvm-\u4e2d\u5e38\u89c1\u7684\u5783\u573e\u6536\u96c6\u7b97\u6cd5"},"JVM \u4e2d\u5e38\u89c1\u7684\u5783\u573e\u6536\u96c6\u7b97\u6cd5"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u6807\u8bb0-\u6e05\u9664\uff08Mark-Sweep\uff09: \u8fd9\u662f\u6700\u57fa\u672c\u7684\u5783\u573e\u6536\u96c6\u7b97\u6cd5\uff0c\u5b83\u5206\u4e3a\u4e24\u4e2a\u9636\u6bb5\uff0c\u6807\u8bb0\u548c\u6e05\u9664\u3002\u9996\u5148\u6807\u8bb0\u51fa\u6240\u6709\u9700\u8981\u56de\u6536\u7684\u5bf9\u8c61\uff0c\u7136\u540e\u8fdb\u884c\u6e05\u9664\u3002\u7f3a\u70b9\u662f\u6548\u7387\u4e0d\u9ad8\uff0c\u5e76\u4e14\u4f1a\u4ea7\u751f\u5927\u91cf\u4e0d\u8fde\u7eed\u7684\u5185\u5b58\u788e\u7247\u3002"),(0,a.yg)("li",{parentName:"ul"},"\uff08Copying\uff09: \u4e3a\u4e86\u89e3\u51b3\u6807\u8bb0-\u6e05\u9664\u7b97\u6cd5\u7684\u5185\u5b58\u788e\u7247\u95ee\u9898\uff0c\u51fa\u73b0\u4e86\u590d\u5236\u7b97\u6cd5\u3002\u5b83\u5c06\u53ef\u7528\u5185\u5b58\u5206\u4e3a\u4e24\u4e2a\u533a\u57df\uff0c\u6bcf\u6b21\u53ea\u4f7f\u7528\u5176\u4e2d\u4e00\u4e2a\u533a\u57df\u3002\u5f53\u8fd9\u4e2a\u533a\u57df\u6ee1\u65f6\uff0c\u5b83\u4f1a\u628a\u5b58\u6d3b\u7684\u5bf9\u8c61\u590d\u5236\u5230\u53e6\u4e00\u4e2a\u533a\u57df\uff0c\u7136\u540e\u6e05\u9664\u6b63\u5728\u4f7f\u7528\u7684\u90a3\u4e2a\u533a\u57df\u7684\u6240\u6709\u5bf9\u8c61\u3002\u8fd9\u79cd\u7b97\u6cd5\u5b9e\u73b0\u7b80\u5355\uff0c\u8fd0\u884c\u9ad8\u6548\uff0c\u4f46\u662f\u9700\u8981\u4e24\u500d\u7684\u5185\u5b58\u7a7a\u95f4\u3002"),(0,a.yg)("li",{parentName:"ul"},"\u6807\u8bb0-\u6574\u7406\uff08Mark-Compact\uff09: \u7ed3\u5408\u4e86\u6807\u8bb0-\u6e05\u9664\u548c\u590d\u5236\u7684\u4f18\u70b9\uff0c\u5b83\u5148\u6807\u8bb0\u9700\u8981\u56de\u6536\u7684\u5bf9\u8c61\uff0c\u7136\u540e\u628a\u6240\u6709\u5b58\u6d3b\u7684\u5bf9\u8c61\u90fd\u5411\u4e00\u7aef\u79fb\u52a8\uff0c\u63a5\u7740\u6e05\u9664\u6389\u7aef\u8fb9\u754c\u4ee5\u5916\u7684\u5185\u5b58\u3002"),(0,a.yg)("li",{parentName:"ul"},"\u5206\u4ee3\u6536\u96c6\uff08Generational Collector\uff09: \u57fa\u4e8e\u5bf9\u8c61\u751f\u547d\u5468\u671f\u7684\u4e0d\u540c\uff0c\u5b83\u5c06\u5806\u5206\u4e3a\u65b0\u751f\u4ee3\u548c\u8001\u5e74\u4ee3\u3002\u65b0\u751f\u4ee3\u4e2d\uff0c\u5927\u90e8\u5206\u5bf9\u8c61\u662f\u671d\u751f\u5915\u6b7b\u7684\uff0c\u6240\u4ee5\u53ef\u4ee5\u4f7f\u7528\u590d\u5236\u7b97\u6cd5\uff1b\u8001\u5e74\u4ee3\u4e2d\u5bf9\u8c61\u5b58\u6d3b\u7387\u9ad8\uff0c\u4e00\u822c\u4f7f\u7528\u6807\u8bb0-\u6574\u7406\u6216\u6807\u8bb0-\u6e05\u9664\u7b97\u6cd5\u3002"),(0,a.yg)("li",{parentName:"ul"},"\u589e\u91cf\u6536\u96c6\uff08Incremental Collector\uff09: \u8fd9\u79cd\u7b97\u6cd5\u5141\u8bb8\u5783\u573e\u6536\u96c6\u5728\u5e94\u7528\u8fdb\u884c\u7684\u540c\u65f6\u8fdb\u884c\uff0c\u51cf\u5c11\u5e94\u7528\u7684\u6682\u505c\u65f6\u95f4\u3002"),(0,a.yg)("li",{parentName:"ul"},"\u5e76\u53d1\u6807\u8bb0-\u6e05\u9664\uff08Concurrent Mark-Sweep, CMS\uff09: \u4e3a\u4e86\u51cf\u5c11\u5783\u573e\u6536\u96c6\u5bf9\u5e94\u7528\u7684\u5f71\u54cd\uff0c\u51fa\u73b0\u4e86\u5e76\u53d1\u6536\u96c6\u7b97\u6cd5\uff0c\u5b83\u5c1d\u8bd5\u8ba9\u5783\u573e\u6536\u96c6\u7684\u8fc7\u7a0b\u5e76\u53d1\u8fdb\u884c\u3002CMS \u7b97\u6cd5\u5206\u4e3a\u56db\u4e2a\u9636\u6bb5\uff0c\u5e76\u53d1\u6807\u8bb0\u3001\u5e76\u53d1\u9884\u6e05\u7406\u3001\u91cd\u65b0\u6807\u8bb0\u3001\u5e76\u53d1\u6e05\u9664\uff0c\u5c3d\u91cf\u51cf\u5c11\u5bf9\u5e94\u7528\u7684\u5f71\u54cd\u3002"),(0,a.yg)("li",{parentName:"ul"},"\u6539\u8fdb\u7684\u5e76\u53d1\u6807\u8bb0-\u6e05\u9664\uff08G1\uff09: \u4e3a\u4e86\u8fdb\u4e00\u6b65\u51cf\u5c11\u6682\u505c\u65f6\u95f4\u548c\u63d0\u9ad8\u541e\u5410\u91cf\uff0cJVM \u5728 Java 7 Update 4 \u4e2d\u5f15\u5165\u4e86 G1 \u5783\u573e\u6536\u96c6\u5668\u3002G1 \u5c1d\u8bd5\u628a\u5806\u7a7a\u95f4\u5212\u5206\u4e3a\u591a\u4e2a\u5927\u5c0f\u76f8\u7b49\u7684\u533a\u57df\uff0c\u5e76\u4e14\u53ef\u4ee5\u5e76\u53d1\u5904\u7406\u8fd9\u4e9b\u533a\u57df\u3002")),(0,a.yg)("h3",{id:"\u67e5\u770b\u5404\u4e2a\u7248\u672c\u7684-gc"},"\u67e5\u770b\u5404\u4e2a\u7248\u672c\u7684 GC"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"java -XX:+PrintCommandLineFlags -version\njava -XX:+PrintGCDetails -version\n")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},'java8 -XX:+PrintCommandLineFlags -version\n-XX:InitialHeapSize=268435456\n-XX:MaxHeapSize=4294967296\n-XX:+PrintCommandLineFlags\n-XX:+UseCompressedClassPointers\n-XX:+UseCompressedOops\n-XX:+UseParallelGC\njava version "1.8.0_181"\nJava(TM) SE Runtime Environment (build 1.8.0_181-b13)\nJava HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)\n')),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},'java17 -XX:+PrintCommandLineFlags -version\n-XX:ConcGCThreads=2\n-XX:G1ConcRefinementThreads=8\n-XX:GCDrainStackTargetSize=64\n-XX:InitialHeapSize=268435456\n-XX:MarkStackSize=4194304\n-XX:MaxHeapSize=4294967296\n-XX:MinHeapSize=6815736\n-XX:+PrintCommandLineFlags\n-XX:ReservedCodeCacheSize=251658240\n-XX:+SegmentedCodeCache\n-XX:+UseCompressedClassPointers\n-XX:+UseCompressedOops\n-XX:+UseG1GC\njava version "17.0.6" 2023-01-17 LTS\nJava(TM) SE Runtime Environment (build 17.0.6+9-LTS-190)\nJava HotSpot(TM) 64-Bit Server VM (build 17.0.6+9-LTS-190, mixed mode, sharing)\n')),(0,a.yg)("h3",{id:"jvm-\u5185\u5b58\u95ee\u9898\u6392\u67e5"},"JVM \u5185\u5b58\u95ee\u9898\u6392\u67e5"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u53c2\u8003 ",(0,a.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/679783776"},"\u77e5\u4e4e-\u4e09\u4e07\u5b57\u957f\u6587\uff1aJVM \u5185\u5b58\u95ee\u9898\u6392\u67e5 Cookbook"))))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[30],{5680:(e,n,r)=>{r.d(n,{xA:()=>c,yg:()=>g});var t=r(6540);function a(e,n,r){return n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r,e}function o(e,n){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n&&(t=t.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),r.push.apply(r,t)}return r}function l(e){for(var n=1;n=0||(a[r]=e[r]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=t.createContext({}),p=function(e){var n=t.useContext(s),r=n;return e&&(r="function"==typeof e?e(n):l(l({},n),e)),r},c=function(e){var n=p(e.components);return t.createElement(s.Provider,{value:n},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return t.createElement(t.Fragment,{},n)}},d=t.forwardRef((function(e,n){var r=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),u=p(r),d=a,g=u["".concat(s,".").concat(d)]||u[d]||m[d]||o;return r?t.createElement(g,l(l({ref:n},c),{},{components:r})):t.createElement(g,l({ref:n},c))}));function g(e,n){var r=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=d;var i={};for(var s in n)hasOwnProperty.call(n,s)&&(i[s]=n[s]);i.originalType=e,i[u]="string"==typeof e?e:a,l[1]=i;for(var p=2;p{r.r(n),r.d(n,{assets:()=>s,contentTitle:()=>l,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var t=r(8168),a=(r(6540),r(5680));const o={},l=void 0,i={unversionedId:"study/program/JAVA/GC",id:"study/program/JAVA/GC",title:"GC",description:"JVM \u4e2d\u5e38\u89c1\u7684\u5783\u573e\u6536\u96c6\u7b97\u6cd5",source:"@site/docs/study/program/JAVA/GC.md",sourceDirName:"study/program/JAVA",slug:"/study/program/JAVA/GC",permalink:"/docs/study/program/JAVA/GC",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Java",permalink:"/docs/study/program/JAVA/"},next:{title:"GraalVM",permalink:"/docs/study/program/JAVA/GraalVM"}},s={},p=[{value:"JVM \u4e2d\u5e38\u89c1\u7684\u5783\u573e\u6536\u96c6\u7b97\u6cd5",id:"jvm-\u4e2d\u5e38\u89c1\u7684\u5783\u573e\u6536\u96c6\u7b97\u6cd5",level:3},{value:"\u67e5\u770b\u5404\u4e2a\u7248\u672c\u7684 GC",id:"\u67e5\u770b\u5404\u4e2a\u7248\u672c\u7684-gc",level:3},{value:"JVM \u5185\u5b58\u95ee\u9898\u6392\u67e5",id:"jvm-\u5185\u5b58\u95ee\u9898\u6392\u67e5",level:3}],c={toc:p},u="wrapper";function m(e){let{components:n,...r}=e;return(0,a.yg)(u,(0,t.A)({},c,r,{components:n,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"jvm-\u4e2d\u5e38\u89c1\u7684\u5783\u573e\u6536\u96c6\u7b97\u6cd5"},"JVM \u4e2d\u5e38\u89c1\u7684\u5783\u573e\u6536\u96c6\u7b97\u6cd5"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u6807\u8bb0-\u6e05\u9664\uff08Mark-Sweep\uff09: \u8fd9\u662f\u6700\u57fa\u672c\u7684\u5783\u573e\u6536\u96c6\u7b97\u6cd5\uff0c\u5b83\u5206\u4e3a\u4e24\u4e2a\u9636\u6bb5\uff0c\u6807\u8bb0\u548c\u6e05\u9664\u3002\u9996\u5148\u6807\u8bb0\u51fa\u6240\u6709\u9700\u8981\u56de\u6536\u7684\u5bf9\u8c61\uff0c\u7136\u540e\u8fdb\u884c\u6e05\u9664\u3002\u7f3a\u70b9\u662f\u6548\u7387\u4e0d\u9ad8\uff0c\u5e76\u4e14\u4f1a\u4ea7\u751f\u5927\u91cf\u4e0d\u8fde\u7eed\u7684\u5185\u5b58\u788e\u7247\u3002"),(0,a.yg)("li",{parentName:"ul"},"\uff08Copying\uff09: \u4e3a\u4e86\u89e3\u51b3\u6807\u8bb0-\u6e05\u9664\u7b97\u6cd5\u7684\u5185\u5b58\u788e\u7247\u95ee\u9898\uff0c\u51fa\u73b0\u4e86\u590d\u5236\u7b97\u6cd5\u3002\u5b83\u5c06\u53ef\u7528\u5185\u5b58\u5206\u4e3a\u4e24\u4e2a\u533a\u57df\uff0c\u6bcf\u6b21\u53ea\u4f7f\u7528\u5176\u4e2d\u4e00\u4e2a\u533a\u57df\u3002\u5f53\u8fd9\u4e2a\u533a\u57df\u6ee1\u65f6\uff0c\u5b83\u4f1a\u628a\u5b58\u6d3b\u7684\u5bf9\u8c61\u590d\u5236\u5230\u53e6\u4e00\u4e2a\u533a\u57df\uff0c\u7136\u540e\u6e05\u9664\u6b63\u5728\u4f7f\u7528\u7684\u90a3\u4e2a\u533a\u57df\u7684\u6240\u6709\u5bf9\u8c61\u3002\u8fd9\u79cd\u7b97\u6cd5\u5b9e\u73b0\u7b80\u5355\uff0c\u8fd0\u884c\u9ad8\u6548\uff0c\u4f46\u662f\u9700\u8981\u4e24\u500d\u7684\u5185\u5b58\u7a7a\u95f4\u3002"),(0,a.yg)("li",{parentName:"ul"},"\u6807\u8bb0-\u6574\u7406\uff08Mark-Compact\uff09: \u7ed3\u5408\u4e86\u6807\u8bb0-\u6e05\u9664\u548c\u590d\u5236\u7684\u4f18\u70b9\uff0c\u5b83\u5148\u6807\u8bb0\u9700\u8981\u56de\u6536\u7684\u5bf9\u8c61\uff0c\u7136\u540e\u628a\u6240\u6709\u5b58\u6d3b\u7684\u5bf9\u8c61\u90fd\u5411\u4e00\u7aef\u79fb\u52a8\uff0c\u63a5\u7740\u6e05\u9664\u6389\u7aef\u8fb9\u754c\u4ee5\u5916\u7684\u5185\u5b58\u3002"),(0,a.yg)("li",{parentName:"ul"},"\u5206\u4ee3\u6536\u96c6\uff08Generational Collector\uff09: \u57fa\u4e8e\u5bf9\u8c61\u751f\u547d\u5468\u671f\u7684\u4e0d\u540c\uff0c\u5b83\u5c06\u5806\u5206\u4e3a\u65b0\u751f\u4ee3\u548c\u8001\u5e74\u4ee3\u3002\u65b0\u751f\u4ee3\u4e2d\uff0c\u5927\u90e8\u5206\u5bf9\u8c61\u662f\u671d\u751f\u5915\u6b7b\u7684\uff0c\u6240\u4ee5\u53ef\u4ee5\u4f7f\u7528\u590d\u5236\u7b97\u6cd5\uff1b\u8001\u5e74\u4ee3\u4e2d\u5bf9\u8c61\u5b58\u6d3b\u7387\u9ad8\uff0c\u4e00\u822c\u4f7f\u7528\u6807\u8bb0-\u6574\u7406\u6216\u6807\u8bb0-\u6e05\u9664\u7b97\u6cd5\u3002"),(0,a.yg)("li",{parentName:"ul"},"\u589e\u91cf\u6536\u96c6\uff08Incremental Collector\uff09: \u8fd9\u79cd\u7b97\u6cd5\u5141\u8bb8\u5783\u573e\u6536\u96c6\u5728\u5e94\u7528\u8fdb\u884c\u7684\u540c\u65f6\u8fdb\u884c\uff0c\u51cf\u5c11\u5e94\u7528\u7684\u6682\u505c\u65f6\u95f4\u3002"),(0,a.yg)("li",{parentName:"ul"},"\u5e76\u53d1\u6807\u8bb0-\u6e05\u9664\uff08Concurrent Mark-Sweep, CMS\uff09: \u4e3a\u4e86\u51cf\u5c11\u5783\u573e\u6536\u96c6\u5bf9\u5e94\u7528\u7684\u5f71\u54cd\uff0c\u51fa\u73b0\u4e86\u5e76\u53d1\u6536\u96c6\u7b97\u6cd5\uff0c\u5b83\u5c1d\u8bd5\u8ba9\u5783\u573e\u6536\u96c6\u7684\u8fc7\u7a0b\u5e76\u53d1\u8fdb\u884c\u3002CMS \u7b97\u6cd5\u5206\u4e3a\u56db\u4e2a\u9636\u6bb5\uff0c\u5e76\u53d1\u6807\u8bb0\u3001\u5e76\u53d1\u9884\u6e05\u7406\u3001\u91cd\u65b0\u6807\u8bb0\u3001\u5e76\u53d1\u6e05\u9664\uff0c\u5c3d\u91cf\u51cf\u5c11\u5bf9\u5e94\u7528\u7684\u5f71\u54cd\u3002"),(0,a.yg)("li",{parentName:"ul"},"\u6539\u8fdb\u7684\u5e76\u53d1\u6807\u8bb0-\u6e05\u9664\uff08G1\uff09: \u4e3a\u4e86\u8fdb\u4e00\u6b65\u51cf\u5c11\u6682\u505c\u65f6\u95f4\u548c\u63d0\u9ad8\u541e\u5410\u91cf\uff0cJVM \u5728 Java 7 Update 4 \u4e2d\u5f15\u5165\u4e86 G1 \u5783\u573e\u6536\u96c6\u5668\u3002G1 \u5c1d\u8bd5\u628a\u5806\u7a7a\u95f4\u5212\u5206\u4e3a\u591a\u4e2a\u5927\u5c0f\u76f8\u7b49\u7684\u533a\u57df\uff0c\u5e76\u4e14\u53ef\u4ee5\u5e76\u53d1\u5904\u7406\u8fd9\u4e9b\u533a\u57df\u3002")),(0,a.yg)("h3",{id:"\u67e5\u770b\u5404\u4e2a\u7248\u672c\u7684-gc"},"\u67e5\u770b\u5404\u4e2a\u7248\u672c\u7684 GC"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"java -XX:+PrintCommandLineFlags -version\njava -XX:+PrintGCDetails -version\n")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},'java8 -XX:+PrintCommandLineFlags -version\n-XX:InitialHeapSize=268435456\n-XX:MaxHeapSize=4294967296\n-XX:+PrintCommandLineFlags\n-XX:+UseCompressedClassPointers\n-XX:+UseCompressedOops\n-XX:+UseParallelGC\njava version "1.8.0_181"\nJava(TM) SE Runtime Environment (build 1.8.0_181-b13)\nJava HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)\n')),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},'java17 -XX:+PrintCommandLineFlags -version\n-XX:ConcGCThreads=2\n-XX:G1ConcRefinementThreads=8\n-XX:GCDrainStackTargetSize=64\n-XX:InitialHeapSize=268435456\n-XX:MarkStackSize=4194304\n-XX:MaxHeapSize=4294967296\n-XX:MinHeapSize=6815736\n-XX:+PrintCommandLineFlags\n-XX:ReservedCodeCacheSize=251658240\n-XX:+SegmentedCodeCache\n-XX:+UseCompressedClassPointers\n-XX:+UseCompressedOops\n-XX:+UseG1GC\njava version "17.0.6" 2023-01-17 LTS\nJava(TM) SE Runtime Environment (build 17.0.6+9-LTS-190)\nJava HotSpot(TM) 64-Bit Server VM (build 17.0.6+9-LTS-190, mixed mode, sharing)\n')),(0,a.yg)("h3",{id:"jvm-\u5185\u5b58\u95ee\u9898\u6392\u67e5"},"JVM \u5185\u5b58\u95ee\u9898\u6392\u67e5"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u53c2\u8003 ",(0,a.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/679783776"},"\u77e5\u4e4e-\u4e09\u4e07\u5b57\u957f\u6587\uff1aJVM \u5185\u5b58\u95ee\u9898\u6392\u67e5 Cookbook"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f1999a3d.9b5dd8e0.js b/assets/js/f1999a3d.01ab1538.js similarity index 99% rename from assets/js/f1999a3d.9b5dd8e0.js rename to assets/js/f1999a3d.01ab1538.js index 6c31e32b2..d65ae6b26 100644 --- a/assets/js/f1999a3d.9b5dd8e0.js +++ b/assets/js/f1999a3d.01ab1538.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3329],{5680:(e,t,r)=>{r.d(t,{xA:()=>c,yg:()=>g});var n=r(6540);function l(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(l[r]=e[r]);return l}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(l[r]=e[r])}return l}var u=n.createContext({}),p=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},c=function(e){var t=p(e.components);return n.createElement(u.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,l=e.mdxType,a=e.originalType,u=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),s=p(r),d=l,g=s["".concat(u,".").concat(d)]||s[d]||y[d]||a;return r?n.createElement(g,o(o({ref:t},c),{},{components:r})):n.createElement(g,o({ref:t},c))}));function g(e,t){var r=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var a=r.length,o=new Array(a);o[0]=d;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[s]="string"==typeof e?e:l,o[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>o,default:()=>y,frontMatter:()=>a,metadata:()=>i,toc:()=>p});var n=r(8168),l=(r(6540),r(5680));const a={},o=void 0,i={unversionedId:"study/program/JAVA/Vert.x",id:"study/program/JAVA/Vert.x",title:"Vert.x",description:"\u7b80\u4ecb",source:"@site/docs/study/program/JAVA/Vert.x.md",sourceDirName:"study/program/JAVA",slug:"/study/program/JAVA/Vert.x",permalink:"/docs/study/program/JAVA/Vert.x",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"RxJava",permalink:"/docs/study/program/JAVA/RxJava"},next:{title:"\u4ee3\u7801\u751f\u6210",permalink:"/docs/study/program/JAVA/\u4ee3\u7801\u751f\u6210"}},u={},p=[{value:"\u7b80\u4ecb",id:"\u7b80\u4ecb",level:3},{value:"Vert.x Core",id:"vertx-core",level:3},{value:"\u6d41\u5f0f\u4ee3\u7801\u98ce\u683c",id:"\u6d41\u5f0f\u4ee3\u7801\u98ce\u683c",level:3},{value:"Don\u2019t call us, we\u2019ll call you",id:"dont-call-us-well-call-you",level:3},{value:"Verticle",id:"verticle",level:3},{value:"Event Bus",id:"event-bus",level:3}],c={toc:p},s="wrapper";function y(e){let{components:t,...r}=e;return(0,l.yg)(s,(0,n.A)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,l.yg)("h3",{id:"\u7b80\u4ecb"},"\u7b80\u4ecb"),(0,l.yg)("p",null,(0,l.yg)("a",{parentName:"p",href:"https://github.com/eclipse-vertx/vert.x"},"GitHub\u5730\u5740"),"\n",(0,l.yg)("a",{parentName:"p",href:"https://vertx.io"},"\u5b98\u7f51"),"\n",(0,l.yg)("a",{parentName:"p",href:"http://vertxchina.github.io/vertx-translation-chinese/"},"Vert.x \u5b98\u65b9\u6587\u6863\u4e2d\u6587\u7ffb\u8bd1")),(0,l.yg)("p",null,"Vert.x is a tool-kit for building reactive applications on the JVM.\nVert.x\u662f\u5efa\u7acb\u5728JVM\u4e0a\u7528\u4e8e\u6784\u5efa\u201c\u5f02\u6b65\u975e\u963b\u585e\u5e94\u7528\u201d\u7684\u4e00\u5957\u5de5\u5177\u96c6\u5408\u3002\n\u6ce8\u610f\uff1a\u4ed6\u4e0d\u662fjava\u6846\u67b6\uff0c\u5b83\u662f\u4e00\u5957\u5de5\u5177\u96c6\uff0c\u6216\u8005\u8bf4\u53eb\u7c7b\u5e93\u3002"),(0,l.yg)("h3",{id:"vertx-core"},"Vert.x Core"),(0,l.yg)("p",null,"Vert.x \u7684\u6838\u5fc3 Java API \u88ab\u6211\u4eec\u79f0\u4e3a Vert.x Core\u3002\nVert.x Core \u63d0\u4f9b\u4e86\u4e0b\u5217\u529f\u80fd:"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u7f16\u5199 TCP \u5ba2\u6237\u7aef\u548c\u670d\u52a1\u7aef"),(0,l.yg)("li",{parentName:"ul"},"\u7f16\u5199\u652f\u6301 WebSocket \u7684 HTTP \u5ba2\u6237\u7aef\u548c\u670d\u52a1\u7aef"),(0,l.yg)("li",{parentName:"ul"},"\u4e8b\u4ef6\u603b\u7ebf"),(0,l.yg)("li",{parentName:"ul"},"\u5171\u4eab\u6570\u636e \u2014\u2014 \u672c\u5730\u7684Map\u548c\u5206\u5e03\u5f0f\u96c6\u7fa4Map"),(0,l.yg)("li",{parentName:"ul"},"\u5468\u671f\u6027\u3001\u5ef6\u8fdf\u6027\u52a8\u4f5c"),(0,l.yg)("li",{parentName:"ul"},"\u90e8\u7f72\u548c\u64a4\u9500 Verticle \u5b9e\u4f8b"),(0,l.yg)("li",{parentName:"ul"},"\u6570\u636e\u62a5\u5957\u63a5\u5b57"),(0,l.yg)("li",{parentName:"ul"},"DNS\u5ba2\u6237\u7aef"),(0,l.yg)("li",{parentName:"ul"},"\u6587\u4ef6\u7cfb\u7edf\u8bbf\u95ee"),(0,l.yg)("li",{parentName:"ul"},"\u9ad8\u53ef\u7528\u6027"),(0,l.yg)("li",{parentName:"ul"},"\u96c6\u7fa4")),(0,l.yg)("h3",{id:"\u6d41\u5f0f\u4ee3\u7801\u98ce\u683c"},"\u6d41\u5f0f\u4ee3\u7801\u98ce\u683c"),(0,l.yg)("p",null,"\u4e00\u4e2a\u6d41\u5f0f\u7684API\u8868\u793a\u5c06\u591a\u4e2a\u65b9\u6cd5\u7684\u8c03\u7528\u94fe\u5728\u4e00\u8d77\u3002\u4f8b\u5982\uff1a"),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-shell"},'request.response().putHeader("Content-Type", "text/plain").write("some text").end();\n')),(0,l.yg)("p",null,"\u8fd9\u662f\u8d2f\u7a7f Vert.x API \u4e2d\u7684\u4e00\u4e2a\u901a\u7528\u6a21\u5f0f\uff0c\u6240\u4ee5\u8bf7\u9002\u5e94\u8fd9\u79cd\u4ee3\u7801\u98ce\u683c\u3002"),(0,l.yg)("h3",{id:"dont-call-us-well-call-you"},"Don\u2019t call us, we\u2019ll call you"),(0,l.yg)("p",null,"Vert.x \u7684 API \u5927\u90e8\u5206\u90fd\u662f\u4e8b\u4ef6\u9a71\u52a8\u7684\u3002\u8fd9\u610f\u5473\u7740\u5f53\u60a8\u611f\u5174\u8da3\u7684\u4e8b\u60c5\u53d1\u751f\u65f6\uff0c\u5b83\u4f1a\u4ee5\u4e8b\u4ef6\u7684\u5f62\u5f0f\u53d1\u9001\u7ed9\u60a8\u3002"),(0,l.yg)("p",null,'\u9664\u4e86\u5f88\u5c11\u7684\u7279\u4f8b\uff08\u5982\u4ee5 "Sync" \u7ed3\u5c3e\u7684\u67d0\u4e9b\u6587\u4ef6\u7cfb\u7edf\u64cd\u4f5c\uff09\uff0cVert.x\u4e2d\u7684\u6240\u6709API\u90fd\u4e0d\u4f1a\u963b\u585e\u8c03\u7528\u7ebf\u7a0b\u3002'),(0,l.yg)("p",null,"\u6211\u4eec\u524d\u8fb9\u63d0\u8fc7 Vert.x \u7684 API \u90fd\u662f\u4e8b\u4ef6\u9a71\u52a8\u7684\uff0c\u5f53\u6709\u4e8b\u4ef6\u65f6 Vert.x \u4f1a\u5c06\u4e8b\u4ef6\u4f20\u7ed9\u5904\u7406\u5668\u6765\u5904\u7406\u3002\u5728\u591a\u6570\u60c5\u51b5\u4e0b\uff0cVert.x\u4f7f\u7528\u88ab\u79f0\u4e3a Event Loop \u7684\u7ebf\u7a0b\u6765\u8c03\u7528\u60a8\u7684\u5904\u7406\u5668\u3002\u6211\u4eec\u79f0\u4e4b\u4e3a Reactor \u6a21\u5f0f\uff08\u8bd1\u8005\u6ce8\uff1aReactor Pattern \u7ffb\u8bd1\u6210\u4e86\u53cd\u5e94\u5668\u6a21\u5f0f\uff09\u3002\u60a8\u4e4b\u524d\u4e5f\u8bb8\u542c\u8bf4\u8fc7\u5b83\uff0c\u4f8b\u5982 Node.js \u5b9e\u73b0\u4e86\u8fd9\u79cd\u6a21\u5f0f\u3002\n\u5728\u4e00\u4e2a\u6807\u51c6\u7684\u53cd\u5e94\u5668\u5b9e\u73b0\u4e2d\uff0c\u6709 \u4e00\u4e2a\u72ec\u7acb\u7684 Event Loop \u4f1a\u5faa\u73af\u6267\u884c\uff0c\u5904\u7406\u6240\u6709\u5230\u8fbe\u7684\u4e8b\u4ef6\u5e76\u4f20\u9012\u7ed9\u5904\u7406\u5668\u5904\u7406\u3002\n\u5355\u4e00\u7ebf\u7a0b\u7684\u95ee\u9898\u5728\u4e8e\u5b83\u5728\u4efb\u610f\u65f6\u523b\u53ea\u80fd\u8fd0\u884c\u5728\u4e00\u4e2a\u6838\u4e0a\u3002\u5982\u679c\u60a8\u5e0c\u671b\u5355\u7ebf\u7a0b\u53cd\u5e94\u5668\u5e94\u7528\uff08\u5982\u60a8\u7684 Node.js \u5e94\u7528\uff09\u6269\u5c55\u5230\u591a\u6838\u670d\u52a1\u5668\u4e0a\uff0c\u5219\u9700\u8981\u542f\u52a8\u5e76\u4e14\u7ba1\u7406\u591a\u4e2a\u4e0d\u540c\u7684\u8fdb\u7a0b\u3002\nVert.x\u7684\u5de5\u4f5c\u65b9\u5f0f\u6709\u6240\u4e0d\u540c\u3002\u6bcf\u4e2a Vertx \u5b9e\u4f8b\u7ef4\u62a4\u7684\u662f \u591a\u4e2aEvent Loop \u7ebf\u7a0b\u3002\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u6211\u4eec\u4f1a\u6839\u636e\u673a\u5668\u4e0a\u53ef\u7528\u7684\u6838\u6570\u91cf\u6765\u8bbe\u7f6e Event Loop \u7684\u6570\u91cf\uff0c\u60a8\u4ea6\u53ef\u81ea\u884c\u8bbe\u7f6e\u3002\n\u8fd9\u610f\u5473\u7740 Vertx \u8fdb\u7a0b\u80fd\u591f\u5728\u60a8\u7684\u670d\u52a1\u5668\u4e0a\u6269\u5c55\uff0c\u4e0e Node.js \u4e0d\u540c\u3002\n\u6211\u4eec\u5c06\u8fd9\u79cd\u6a21\u5f0f\u79f0\u4e3a Multi-Reactor \u6a21\u5f0f\uff08\u591a\u53cd\u5e94\u5668\u6a21\u5f0f\uff09\uff0c\u533a\u522b\u4e8e\u5355\u7ebf\u7a0b\u7684 Reactor \u6a21\u5f0f\uff08\u53cd\u5e94\u5668\u6a21\u5f0f\uff09\u3002"),(0,l.yg)("p",null,"Vert.x \u4e2d\u7684 ",(0,l.yg)("a",{parentName:"p",href:"http://vertx.io/docs/apidocs/io/vertx/core/Future.html"},"Future")," \u53ef\u4ee5\u7528\u6765\u534f\u8c03\u591a\u4e2a\u5f02\u6b65\u64cd\u4f5c\u7684\u7ed3\u679c\u3002\u5b83\u652f\u6301\u5e76\u53d1\u7ec4\u5408\uff08\u5e76\u884c\u6267\u884c\u591a\u4e2a\u5f02\u6b65\u8c03\u7528\uff09\u548c\u987a\u5e8f\u7ec4\u5408\uff08\u4f9d\u6b21\u6267\u884c\u5f02\u6b65\u8c03\u7528\uff09\u3002"),(0,l.yg)("h3",{id:"verticle"},"Verticle"),(0,l.yg)("p",null,"Verticle \u662f\u7531 Vert.x \u90e8\u7f72\u548c\u8fd0\u884c\u7684\u4ee3\u7801\u5757\u3002\u9ed8\u8ba4\u60c5\u51b5\u4e00\u4e2a Vert.x \u5b9e\u4f8b\u7ef4\u62a4\u4e86N\uff08\u9ed8\u8ba4\u60c5\u51b5\u4e0bN = CPU\u6838\u6570 x 2\uff09\u4e2a Event Loop \u7ebf\u7a0b\u3002Verticle \u5b9e\u4f8b\u53ef\u4f7f\u7528\u4efb\u610f Vert.x \u652f\u6301\u7684\u7f16\u7a0b\u8bed\u8a00\u7f16\u5199\uff0c\u800c\u4e14\u4e00\u4e2a\u7b80\u5355\u7684\u5e94\u7528\u7a0b\u5e8f\u4e5f\u53ef\u4ee5\u5305\u542b\u591a\u79cd\u8bed\u8a00\u7f16\u5199\u7684 Verticle\u3002\u60a8\u53ef\u4ee5\u5c06 Verticle \u60f3\u6210 Actor Model \u4e2d\u7684 Actor\u3002"),(0,l.yg)("p",null,"\u4e00\u4e2a\u5e94\u7528\u7a0b\u5e8f\u901a\u5e38\u662f\u7531\u5728\u540c\u4e00\u4e2a Vert.x \u5b9e\u4f8b\u4e2d\u540c\u65f6\u8fd0\u884c\u7684\u8bb8\u591a Verticle \u5b9e\u4f8b\u7ec4\u5408\u800c\u6210\u3002\u4e0d\u540c\u7684 Verticle \u5b9e\u4f8b\u901a\u8fc7\u5411 Event Bus \u4e0a\u53d1\u9001\u6d88\u606f\u6765\u76f8\u4e92\u901a\u4fe1\u3002"),(0,l.yg)("p",null,"\u8fd9\u513f\u6709\u4e09\u79cd\u4e0d\u540c\u7c7b\u578b\u7684 Verticle\uff1a"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"Stardand Verticle\uff1a\u8fd9\u662f\u6700\u5e38\u7528\u7684\u4e00\u7c7b Verticle \u2014\u2014 \u5b83\u4eec\u6c38\u8fdc\u8fd0\u884c\u5728 Event Loop \u7ebf\u7a0b\u4e0a\u3002\u7a0d\u540e\u7684\u7ae0\u8282\u6211\u4eec\u4f1a\u8ba8\u8bba\u66f4\u591a\u3002"),(0,l.yg)("li",{parentName:"ul"},"Worker Verticle\uff1a\u8fd9\u7c7b Verticle \u4f1a\u8fd0\u884c\u5728 Worker Pool \u4e2d\u7684\u7ebf\u7a0b\u4e0a\u3002\u4e00\u4e2a\u5b9e\u4f8b\u7edd\u5bf9\u4e0d\u4f1a\u88ab\u591a\u4e2a\u7ebf\u7a0b\u540c\u65f6\u6267\u884c\u3002"),(0,l.yg)("li",{parentName:"ul"},"Multi-Threaded Worker Verticle\uff1a\u8fd9\u7c7b Verticle \u4e5f\u4f1a\u8fd0\u884c\u5728 Worker Pool \u4e2d\u7684\u7ebf\u7a0b\u4e0a\u3002\u4e00\u4e2a\u5b9e\u4f8b\u53ef\u4ee5\u7531\u591a\u4e2a\u7ebf\u7a0b\u540c\u65f6\u6267\u884c\uff08\u8bd1\u8005\u6ce8\uff1a\u56e0\u6b64\u9700\u8981\u5f00\u53d1\u8005\u81ea\u5df1\u786e\u4fdd\u7ebf\u7a0b\u5b89\u5168\uff09\u3002")),(0,l.yg)("h3",{id:"event-bus"},"Event Bus"),(0,l.yg)("p",null,"Event Bus \u662f Vert.x \u7684\u795e\u7ecf\u7cfb\u7edf\u3002\n\u6bcf\u4e00\u4e2a Vert.x \u5b9e\u4f8b\u90fd\u6709\u4e00\u4e2a\u5355\u72ec\u7684 Event Bus \u5b9e\u4f8b\u3002\u60a8\u53ef\u4ee5\u901a\u8fc7 Vertx \u5b9e\u4f8b\u7684 ",(0,l.yg)("a",{parentName:"p",href:"http://vertx.io/docs/apidocs/io/vertx/core/Vertx.html#eventBus--"},"eventBus")," \u65b9\u6cd5\u6765\u83b7\u5f97\u5bf9\u5e94\u7684 EventBus \u5b9e\u4f8b\u3002\nVert.x\u4f1a\u5c3d\u5b83\u6700\u5927\u52aa\u529b\u53bb\u4f20\u9012\u6d88\u606f\uff0c\u5e76\u4e14\u4e0d\u4f1a\u4e3b\u52a8\u4e22\u5f03\u6d88\u606f\u3002\u8fd9\u79cd\u65b9\u5f0f\u79f0\u4e3a \u5c3d\u529b\u4f20\u8f93(Best-effort delivery)\u3002\n\u4f46\u662f\uff0c\u5f53 Event Bus \u4e2d\u7684\u5168\u90e8\u6216\u90e8\u5206\u53d1\u751f\u6545\u969c\u65f6\uff0c\u5219\u53ef\u80fd\u4f1a\u4e22\u5931\u6d88\u606f\u3002\n\u82e5\u60a8\u7684\u5e94\u7528\u5173\u5fc3\u4e22\u5931\u7684\u6d88\u606f\uff0c\u60a8\u5e94\u8be5\u7f16\u5199\u5177\u6709\u5e42\u7b49\u6027\u7684\u5904\u7406\u5668\uff0c\u5e76\u4e14\u60a8\u7684\u53d1\u9001\u8005\u53ef\u4ee5\u5728\u6062\u590d\u540e\u91cd\u8bd5\u3002"),(0,l.yg)("p",null,"Event Bus \u4e0d\u4ec5\u4ec5\u5b58\u5728\u4e8e\u5355\u4e2a Vert.x \u5b9e\u4f8b\u4e2d\u3002\u901a\u8fc7\u60a8\u5728\u7f51\u7edc\u4e0a\u5c06\u4e0d\u540c\u7684 Vert.x \u5b9e\u4f8b\u96c6\u7fa4\u5728\u4e00\u8d77\uff0c\u5b83\u53ef\u4ee5\u5f62\u6210\u4e00\u4e2a\u5355\u4e00\u7684\u3001\u5206\u5e03\u5f0f\u7684Event Bus\u3002"))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3329],{5680:(e,t,r)=>{r.d(t,{xA:()=>c,yg:()=>g});var n=r(6540);function l(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(l[r]=e[r]);return l}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(l[r]=e[r])}return l}var u=n.createContext({}),p=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},c=function(e){var t=p(e.components);return n.createElement(u.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,l=e.mdxType,a=e.originalType,u=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),s=p(r),d=l,g=s["".concat(u,".").concat(d)]||s[d]||y[d]||a;return r?n.createElement(g,o(o({ref:t},c),{},{components:r})):n.createElement(g,o({ref:t},c))}));function g(e,t){var r=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var a=r.length,o=new Array(a);o[0]=d;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[s]="string"==typeof e?e:l,o[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>o,default:()=>y,frontMatter:()=>a,metadata:()=>i,toc:()=>p});var n=r(8168),l=(r(6540),r(5680));const a={},o=void 0,i={unversionedId:"study/program/JAVA/Vert.x",id:"study/program/JAVA/Vert.x",title:"Vert.x",description:"\u7b80\u4ecb",source:"@site/docs/study/program/JAVA/Vert.x.md",sourceDirName:"study/program/JAVA",slug:"/study/program/JAVA/Vert.x",permalink:"/docs/study/program/JAVA/Vert.x",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"RxJava",permalink:"/docs/study/program/JAVA/RxJava"},next:{title:"\u4ee3\u7801\u751f\u6210",permalink:"/docs/study/program/JAVA/\u4ee3\u7801\u751f\u6210"}},u={},p=[{value:"\u7b80\u4ecb",id:"\u7b80\u4ecb",level:3},{value:"Vert.x Core",id:"vertx-core",level:3},{value:"\u6d41\u5f0f\u4ee3\u7801\u98ce\u683c",id:"\u6d41\u5f0f\u4ee3\u7801\u98ce\u683c",level:3},{value:"Don\u2019t call us, we\u2019ll call you",id:"dont-call-us-well-call-you",level:3},{value:"Verticle",id:"verticle",level:3},{value:"Event Bus",id:"event-bus",level:3}],c={toc:p},s="wrapper";function y(e){let{components:t,...r}=e;return(0,l.yg)(s,(0,n.A)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,l.yg)("h3",{id:"\u7b80\u4ecb"},"\u7b80\u4ecb"),(0,l.yg)("p",null,(0,l.yg)("a",{parentName:"p",href:"https://github.com/eclipse-vertx/vert.x"},"GitHub\u5730\u5740"),"\n",(0,l.yg)("a",{parentName:"p",href:"https://vertx.io"},"\u5b98\u7f51"),"\n",(0,l.yg)("a",{parentName:"p",href:"http://vertxchina.github.io/vertx-translation-chinese/"},"Vert.x \u5b98\u65b9\u6587\u6863\u4e2d\u6587\u7ffb\u8bd1")),(0,l.yg)("p",null,"Vert.x is a tool-kit for building reactive applications on the JVM.\nVert.x\u662f\u5efa\u7acb\u5728JVM\u4e0a\u7528\u4e8e\u6784\u5efa\u201c\u5f02\u6b65\u975e\u963b\u585e\u5e94\u7528\u201d\u7684\u4e00\u5957\u5de5\u5177\u96c6\u5408\u3002\n\u6ce8\u610f\uff1a\u4ed6\u4e0d\u662fjava\u6846\u67b6\uff0c\u5b83\u662f\u4e00\u5957\u5de5\u5177\u96c6\uff0c\u6216\u8005\u8bf4\u53eb\u7c7b\u5e93\u3002"),(0,l.yg)("h3",{id:"vertx-core"},"Vert.x Core"),(0,l.yg)("p",null,"Vert.x \u7684\u6838\u5fc3 Java API \u88ab\u6211\u4eec\u79f0\u4e3a Vert.x Core\u3002\nVert.x Core \u63d0\u4f9b\u4e86\u4e0b\u5217\u529f\u80fd:"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u7f16\u5199 TCP \u5ba2\u6237\u7aef\u548c\u670d\u52a1\u7aef"),(0,l.yg)("li",{parentName:"ul"},"\u7f16\u5199\u652f\u6301 WebSocket \u7684 HTTP \u5ba2\u6237\u7aef\u548c\u670d\u52a1\u7aef"),(0,l.yg)("li",{parentName:"ul"},"\u4e8b\u4ef6\u603b\u7ebf"),(0,l.yg)("li",{parentName:"ul"},"\u5171\u4eab\u6570\u636e \u2014\u2014 \u672c\u5730\u7684Map\u548c\u5206\u5e03\u5f0f\u96c6\u7fa4Map"),(0,l.yg)("li",{parentName:"ul"},"\u5468\u671f\u6027\u3001\u5ef6\u8fdf\u6027\u52a8\u4f5c"),(0,l.yg)("li",{parentName:"ul"},"\u90e8\u7f72\u548c\u64a4\u9500 Verticle \u5b9e\u4f8b"),(0,l.yg)("li",{parentName:"ul"},"\u6570\u636e\u62a5\u5957\u63a5\u5b57"),(0,l.yg)("li",{parentName:"ul"},"DNS\u5ba2\u6237\u7aef"),(0,l.yg)("li",{parentName:"ul"},"\u6587\u4ef6\u7cfb\u7edf\u8bbf\u95ee"),(0,l.yg)("li",{parentName:"ul"},"\u9ad8\u53ef\u7528\u6027"),(0,l.yg)("li",{parentName:"ul"},"\u96c6\u7fa4")),(0,l.yg)("h3",{id:"\u6d41\u5f0f\u4ee3\u7801\u98ce\u683c"},"\u6d41\u5f0f\u4ee3\u7801\u98ce\u683c"),(0,l.yg)("p",null,"\u4e00\u4e2a\u6d41\u5f0f\u7684API\u8868\u793a\u5c06\u591a\u4e2a\u65b9\u6cd5\u7684\u8c03\u7528\u94fe\u5728\u4e00\u8d77\u3002\u4f8b\u5982\uff1a"),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-shell"},'request.response().putHeader("Content-Type", "text/plain").write("some text").end();\n')),(0,l.yg)("p",null,"\u8fd9\u662f\u8d2f\u7a7f Vert.x API \u4e2d\u7684\u4e00\u4e2a\u901a\u7528\u6a21\u5f0f\uff0c\u6240\u4ee5\u8bf7\u9002\u5e94\u8fd9\u79cd\u4ee3\u7801\u98ce\u683c\u3002"),(0,l.yg)("h3",{id:"dont-call-us-well-call-you"},"Don\u2019t call us, we\u2019ll call you"),(0,l.yg)("p",null,"Vert.x \u7684 API \u5927\u90e8\u5206\u90fd\u662f\u4e8b\u4ef6\u9a71\u52a8\u7684\u3002\u8fd9\u610f\u5473\u7740\u5f53\u60a8\u611f\u5174\u8da3\u7684\u4e8b\u60c5\u53d1\u751f\u65f6\uff0c\u5b83\u4f1a\u4ee5\u4e8b\u4ef6\u7684\u5f62\u5f0f\u53d1\u9001\u7ed9\u60a8\u3002"),(0,l.yg)("p",null,'\u9664\u4e86\u5f88\u5c11\u7684\u7279\u4f8b\uff08\u5982\u4ee5 "Sync" \u7ed3\u5c3e\u7684\u67d0\u4e9b\u6587\u4ef6\u7cfb\u7edf\u64cd\u4f5c\uff09\uff0cVert.x\u4e2d\u7684\u6240\u6709API\u90fd\u4e0d\u4f1a\u963b\u585e\u8c03\u7528\u7ebf\u7a0b\u3002'),(0,l.yg)("p",null,"\u6211\u4eec\u524d\u8fb9\u63d0\u8fc7 Vert.x \u7684 API \u90fd\u662f\u4e8b\u4ef6\u9a71\u52a8\u7684\uff0c\u5f53\u6709\u4e8b\u4ef6\u65f6 Vert.x \u4f1a\u5c06\u4e8b\u4ef6\u4f20\u7ed9\u5904\u7406\u5668\u6765\u5904\u7406\u3002\u5728\u591a\u6570\u60c5\u51b5\u4e0b\uff0cVert.x\u4f7f\u7528\u88ab\u79f0\u4e3a Event Loop \u7684\u7ebf\u7a0b\u6765\u8c03\u7528\u60a8\u7684\u5904\u7406\u5668\u3002\u6211\u4eec\u79f0\u4e4b\u4e3a Reactor \u6a21\u5f0f\uff08\u8bd1\u8005\u6ce8\uff1aReactor Pattern \u7ffb\u8bd1\u6210\u4e86\u53cd\u5e94\u5668\u6a21\u5f0f\uff09\u3002\u60a8\u4e4b\u524d\u4e5f\u8bb8\u542c\u8bf4\u8fc7\u5b83\uff0c\u4f8b\u5982 Node.js \u5b9e\u73b0\u4e86\u8fd9\u79cd\u6a21\u5f0f\u3002\n\u5728\u4e00\u4e2a\u6807\u51c6\u7684\u53cd\u5e94\u5668\u5b9e\u73b0\u4e2d\uff0c\u6709 \u4e00\u4e2a\u72ec\u7acb\u7684 Event Loop \u4f1a\u5faa\u73af\u6267\u884c\uff0c\u5904\u7406\u6240\u6709\u5230\u8fbe\u7684\u4e8b\u4ef6\u5e76\u4f20\u9012\u7ed9\u5904\u7406\u5668\u5904\u7406\u3002\n\u5355\u4e00\u7ebf\u7a0b\u7684\u95ee\u9898\u5728\u4e8e\u5b83\u5728\u4efb\u610f\u65f6\u523b\u53ea\u80fd\u8fd0\u884c\u5728\u4e00\u4e2a\u6838\u4e0a\u3002\u5982\u679c\u60a8\u5e0c\u671b\u5355\u7ebf\u7a0b\u53cd\u5e94\u5668\u5e94\u7528\uff08\u5982\u60a8\u7684 Node.js \u5e94\u7528\uff09\u6269\u5c55\u5230\u591a\u6838\u670d\u52a1\u5668\u4e0a\uff0c\u5219\u9700\u8981\u542f\u52a8\u5e76\u4e14\u7ba1\u7406\u591a\u4e2a\u4e0d\u540c\u7684\u8fdb\u7a0b\u3002\nVert.x\u7684\u5de5\u4f5c\u65b9\u5f0f\u6709\u6240\u4e0d\u540c\u3002\u6bcf\u4e2a Vertx \u5b9e\u4f8b\u7ef4\u62a4\u7684\u662f \u591a\u4e2aEvent Loop \u7ebf\u7a0b\u3002\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u6211\u4eec\u4f1a\u6839\u636e\u673a\u5668\u4e0a\u53ef\u7528\u7684\u6838\u6570\u91cf\u6765\u8bbe\u7f6e Event Loop \u7684\u6570\u91cf\uff0c\u60a8\u4ea6\u53ef\u81ea\u884c\u8bbe\u7f6e\u3002\n\u8fd9\u610f\u5473\u7740 Vertx \u8fdb\u7a0b\u80fd\u591f\u5728\u60a8\u7684\u670d\u52a1\u5668\u4e0a\u6269\u5c55\uff0c\u4e0e Node.js \u4e0d\u540c\u3002\n\u6211\u4eec\u5c06\u8fd9\u79cd\u6a21\u5f0f\u79f0\u4e3a Multi-Reactor \u6a21\u5f0f\uff08\u591a\u53cd\u5e94\u5668\u6a21\u5f0f\uff09\uff0c\u533a\u522b\u4e8e\u5355\u7ebf\u7a0b\u7684 Reactor \u6a21\u5f0f\uff08\u53cd\u5e94\u5668\u6a21\u5f0f\uff09\u3002"),(0,l.yg)("p",null,"Vert.x \u4e2d\u7684 ",(0,l.yg)("a",{parentName:"p",href:"http://vertx.io/docs/apidocs/io/vertx/core/Future.html"},"Future")," \u53ef\u4ee5\u7528\u6765\u534f\u8c03\u591a\u4e2a\u5f02\u6b65\u64cd\u4f5c\u7684\u7ed3\u679c\u3002\u5b83\u652f\u6301\u5e76\u53d1\u7ec4\u5408\uff08\u5e76\u884c\u6267\u884c\u591a\u4e2a\u5f02\u6b65\u8c03\u7528\uff09\u548c\u987a\u5e8f\u7ec4\u5408\uff08\u4f9d\u6b21\u6267\u884c\u5f02\u6b65\u8c03\u7528\uff09\u3002"),(0,l.yg)("h3",{id:"verticle"},"Verticle"),(0,l.yg)("p",null,"Verticle \u662f\u7531 Vert.x \u90e8\u7f72\u548c\u8fd0\u884c\u7684\u4ee3\u7801\u5757\u3002\u9ed8\u8ba4\u60c5\u51b5\u4e00\u4e2a Vert.x \u5b9e\u4f8b\u7ef4\u62a4\u4e86N\uff08\u9ed8\u8ba4\u60c5\u51b5\u4e0bN = CPU\u6838\u6570 x 2\uff09\u4e2a Event Loop \u7ebf\u7a0b\u3002Verticle \u5b9e\u4f8b\u53ef\u4f7f\u7528\u4efb\u610f Vert.x \u652f\u6301\u7684\u7f16\u7a0b\u8bed\u8a00\u7f16\u5199\uff0c\u800c\u4e14\u4e00\u4e2a\u7b80\u5355\u7684\u5e94\u7528\u7a0b\u5e8f\u4e5f\u53ef\u4ee5\u5305\u542b\u591a\u79cd\u8bed\u8a00\u7f16\u5199\u7684 Verticle\u3002\u60a8\u53ef\u4ee5\u5c06 Verticle \u60f3\u6210 Actor Model \u4e2d\u7684 Actor\u3002"),(0,l.yg)("p",null,"\u4e00\u4e2a\u5e94\u7528\u7a0b\u5e8f\u901a\u5e38\u662f\u7531\u5728\u540c\u4e00\u4e2a Vert.x \u5b9e\u4f8b\u4e2d\u540c\u65f6\u8fd0\u884c\u7684\u8bb8\u591a Verticle \u5b9e\u4f8b\u7ec4\u5408\u800c\u6210\u3002\u4e0d\u540c\u7684 Verticle \u5b9e\u4f8b\u901a\u8fc7\u5411 Event Bus \u4e0a\u53d1\u9001\u6d88\u606f\u6765\u76f8\u4e92\u901a\u4fe1\u3002"),(0,l.yg)("p",null,"\u8fd9\u513f\u6709\u4e09\u79cd\u4e0d\u540c\u7c7b\u578b\u7684 Verticle\uff1a"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"Stardand Verticle\uff1a\u8fd9\u662f\u6700\u5e38\u7528\u7684\u4e00\u7c7b Verticle \u2014\u2014 \u5b83\u4eec\u6c38\u8fdc\u8fd0\u884c\u5728 Event Loop \u7ebf\u7a0b\u4e0a\u3002\u7a0d\u540e\u7684\u7ae0\u8282\u6211\u4eec\u4f1a\u8ba8\u8bba\u66f4\u591a\u3002"),(0,l.yg)("li",{parentName:"ul"},"Worker Verticle\uff1a\u8fd9\u7c7b Verticle \u4f1a\u8fd0\u884c\u5728 Worker Pool \u4e2d\u7684\u7ebf\u7a0b\u4e0a\u3002\u4e00\u4e2a\u5b9e\u4f8b\u7edd\u5bf9\u4e0d\u4f1a\u88ab\u591a\u4e2a\u7ebf\u7a0b\u540c\u65f6\u6267\u884c\u3002"),(0,l.yg)("li",{parentName:"ul"},"Multi-Threaded Worker Verticle\uff1a\u8fd9\u7c7b Verticle \u4e5f\u4f1a\u8fd0\u884c\u5728 Worker Pool \u4e2d\u7684\u7ebf\u7a0b\u4e0a\u3002\u4e00\u4e2a\u5b9e\u4f8b\u53ef\u4ee5\u7531\u591a\u4e2a\u7ebf\u7a0b\u540c\u65f6\u6267\u884c\uff08\u8bd1\u8005\u6ce8\uff1a\u56e0\u6b64\u9700\u8981\u5f00\u53d1\u8005\u81ea\u5df1\u786e\u4fdd\u7ebf\u7a0b\u5b89\u5168\uff09\u3002")),(0,l.yg)("h3",{id:"event-bus"},"Event Bus"),(0,l.yg)("p",null,"Event Bus \u662f Vert.x \u7684\u795e\u7ecf\u7cfb\u7edf\u3002\n\u6bcf\u4e00\u4e2a Vert.x \u5b9e\u4f8b\u90fd\u6709\u4e00\u4e2a\u5355\u72ec\u7684 Event Bus \u5b9e\u4f8b\u3002\u60a8\u53ef\u4ee5\u901a\u8fc7 Vertx \u5b9e\u4f8b\u7684 ",(0,l.yg)("a",{parentName:"p",href:"http://vertx.io/docs/apidocs/io/vertx/core/Vertx.html#eventBus--"},"eventBus")," \u65b9\u6cd5\u6765\u83b7\u5f97\u5bf9\u5e94\u7684 EventBus \u5b9e\u4f8b\u3002\nVert.x\u4f1a\u5c3d\u5b83\u6700\u5927\u52aa\u529b\u53bb\u4f20\u9012\u6d88\u606f\uff0c\u5e76\u4e14\u4e0d\u4f1a\u4e3b\u52a8\u4e22\u5f03\u6d88\u606f\u3002\u8fd9\u79cd\u65b9\u5f0f\u79f0\u4e3a \u5c3d\u529b\u4f20\u8f93(Best-effort delivery)\u3002\n\u4f46\u662f\uff0c\u5f53 Event Bus \u4e2d\u7684\u5168\u90e8\u6216\u90e8\u5206\u53d1\u751f\u6545\u969c\u65f6\uff0c\u5219\u53ef\u80fd\u4f1a\u4e22\u5931\u6d88\u606f\u3002\n\u82e5\u60a8\u7684\u5e94\u7528\u5173\u5fc3\u4e22\u5931\u7684\u6d88\u606f\uff0c\u60a8\u5e94\u8be5\u7f16\u5199\u5177\u6709\u5e42\u7b49\u6027\u7684\u5904\u7406\u5668\uff0c\u5e76\u4e14\u60a8\u7684\u53d1\u9001\u8005\u53ef\u4ee5\u5728\u6062\u590d\u540e\u91cd\u8bd5\u3002"),(0,l.yg)("p",null,"Event Bus \u4e0d\u4ec5\u4ec5\u5b58\u5728\u4e8e\u5355\u4e2a Vert.x \u5b9e\u4f8b\u4e2d\u3002\u901a\u8fc7\u60a8\u5728\u7f51\u7edc\u4e0a\u5c06\u4e0d\u540c\u7684 Vert.x \u5b9e\u4f8b\u96c6\u7fa4\u5728\u4e00\u8d77\uff0c\u5b83\u53ef\u4ee5\u5f62\u6210\u4e00\u4e2a\u5355\u4e00\u7684\u3001\u5206\u5e03\u5f0f\u7684Event Bus\u3002"))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f1ef9b9d.ab3450f7.js b/assets/js/f1ef9b9d.7358ee86.js similarity index 98% rename from assets/js/f1ef9b9d.ab3450f7.js rename to assets/js/f1ef9b9d.7358ee86.js index 6e35a3017..ff65b6ab4 100644 --- a/assets/js/f1ef9b9d.ab3450f7.js +++ b/assets/js/f1ef9b9d.7358ee86.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4123],{5680:(e,t,r)=>{r.d(t,{xA:()=>i,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function s(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):s(s({},t),e)),r},i=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,i=c(e,["components","mdxType","originalType","parentName"]),u=p(r),d=o,f=u["".concat(l,".").concat(d)]||u[d]||y[d]||a;return r?n.createElement(f,s(s({ref:t},i),{},{components:r})):n.createElement(f,s({ref:t},i))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,s=new Array(a);s[0]=d;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[u]="string"==typeof e?e:o,s[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>y,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={},s=void 0,c={unversionedId:"study/system/Open\u6b27\u62c9",id:"study/system/Open\u6b27\u62c9",title:"Open\u6b27\u62c9",description:"\u5b57\u7b26\u96c6\u95ee\u9898",source:"@site/docs/study/system/Open\u6b27\u62c9.md",sourceDirName:"study/system",slug:"/study/system/Open\u6b27\u62c9",permalink:"/docs/study/system/Open\u6b27\u62c9",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u64cd\u4f5c\u7cfb\u7edf IO \u77e5\u8bc6",permalink:"/docs/study/system/IO"},next:{title:"openWRT",permalink:"/docs/study/system/openWRT"}},l={},p=[{value:"\u5b57\u7b26\u96c6\u95ee\u9898",id:"\u5b57\u7b26\u96c6\u95ee\u9898",level:3}],i={toc:p},u="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},i,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u5b57\u7b26\u96c6\u95ee\u9898"},"\u5b57\u7b26\u96c6\u95ee\u9898"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-shell"},'# \u5b89\u88c5\u5b57\u7b26\u96c6\ndnf install -y glibc-all-langpacks\n# \u67e5\u8be2\u6240\u6709\u5b89\u88c5\u7684\u5b57\u7b26\u96c6\nlocale -a\n# \u8bbe\u7f6e\u5b57\u7b26\u96c6\nexport LANG="en_US.utf8"\n')))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4123],{5680:(e,t,r)=>{r.d(t,{xA:()=>i,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function s(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):s(s({},t),e)),r},i=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,i=c(e,["components","mdxType","originalType","parentName"]),u=p(r),d=o,f=u["".concat(l,".").concat(d)]||u[d]||y[d]||a;return r?n.createElement(f,s(s({ref:t},i),{},{components:r})):n.createElement(f,s({ref:t},i))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,s=new Array(a);s[0]=d;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[u]="string"==typeof e?e:o,s[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>y,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={},s=void 0,c={unversionedId:"study/system/Open\u6b27\u62c9",id:"study/system/Open\u6b27\u62c9",title:"Open\u6b27\u62c9",description:"\u5b57\u7b26\u96c6\u95ee\u9898",source:"@site/docs/study/system/Open\u6b27\u62c9.md",sourceDirName:"study/system",slug:"/study/system/Open\u6b27\u62c9",permalink:"/docs/study/system/Open\u6b27\u62c9",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u64cd\u4f5c\u7cfb\u7edf IO \u77e5\u8bc6",permalink:"/docs/study/system/IO"},next:{title:"openWRT",permalink:"/docs/study/system/openWRT"}},l={},p=[{value:"\u5b57\u7b26\u96c6\u95ee\u9898",id:"\u5b57\u7b26\u96c6\u95ee\u9898",level:3}],i={toc:p},u="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},i,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u5b57\u7b26\u96c6\u95ee\u9898"},"\u5b57\u7b26\u96c6\u95ee\u9898"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-shell"},'# \u5b89\u88c5\u5b57\u7b26\u96c6\ndnf install -y glibc-all-langpacks\n# \u67e5\u8be2\u6240\u6709\u5b89\u88c5\u7684\u5b57\u7b26\u96c6\nlocale -a\n# \u8bbe\u7f6e\u5b57\u7b26\u96c6\nexport LANG="en_US.utf8"\n')))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f1f3474f.57a881f5.js b/assets/js/f1f3474f.166af15d.js similarity index 99% rename from assets/js/f1f3474f.57a881f5.js rename to assets/js/f1f3474f.166af15d.js index ce2f87ed0..3c3e6952e 100644 --- a/assets/js/f1f3474f.57a881f5.js +++ b/assets/js/f1f3474f.166af15d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[568],{5680:(e,n,t)=>{t.d(n,{xA:()=>u,yg:()=>d});var r=t(6540);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function l(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var p=r.createContext({}),s=function(e){var n=r.useContext(p),t=n;return e&&(t="function"==typeof e?e(n):l(l({},n),e)),t},u=function(e){var n=s(e.components);return r.createElement(p.Provider,{value:n},e.children)},c="mdxType",g={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},y=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),c=s(t),y=a,d=c["".concat(p,".").concat(y)]||c[y]||g[y]||o;return t?r.createElement(d,l(l({ref:n},u),{},{components:t})):r.createElement(d,l({ref:n},u))}));function d(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var o=t.length,l=new Array(o);l[0]=y;var i={};for(var p in n)hasOwnProperty.call(n,p)&&(i[p]=n[p]);i.originalType=e,i[c]="string"==typeof e?e:a,l[1]=i;for(var s=2;s{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>l,default:()=>g,frontMatter:()=>o,metadata:()=>i,toc:()=>s});var r=t(8168),a=(t(6540),t(5680));const o={sidebar_position:2},l="\u5b98\u7f51",i={unversionedId:"xuanxing/fe/\u5b98\u7f51",id:"xuanxing/fe/\u5b98\u7f51",title:"\u5b98\u7f51",description:"\u5b98\u7f51\u6bd4\u8f83\u504f\u7eaf\u5c55\u793a\uff0c\u5bf9SEO\u6709\u8981\u6c42\uff0c\u5bf9CMS\u6709\u8981\u6c42\uff0c\u5bf9\u90e8\u5206\u8fd0\u8425\u6709\u9700\u6c42\uff1b",source:"@site/docs/xuanxing/fe/2-\u5b98\u7f51.md",sourceDirName:"xuanxing/fe",slug:"/xuanxing/fe/\u5b98\u7f51",permalink:"/docs/xuanxing/fe/\u5b98\u7f51",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"xuanxingSidebar",previous:{title:"\u6982\u8ff0",permalink:"/docs/xuanxing/fe/"},next:{title:"\u7528\u6237\u7aef+\u7ba1\u7406\u7aef",permalink:"/docs/xuanxing/fe/\u7528\u6237\u7aef\u7ba1\u7406\u7aef"}},p={},s=[{value:"\u9759\u6001\u9875\u9762\u5c55\u793a",id:"\u9759\u6001\u9875\u9762\u5c55\u793a",level:3},{value:"SEO",id:"seo",level:3},{value:"CMS+\u8fd0\u8425",id:"cms\u8fd0\u8425",level:3},{value:"\u6700\u7ec8",id:"\u6700\u7ec8",level:3},{value:"\u5173\u4e8e\u65b9\u68482\u7684\u540e\u7aefJS\u7684\u6280\u672f\u9009\u578b",id:"\u5173\u4e8e\u65b9\u68482\u7684\u540e\u7aefjs\u7684\u6280\u672f\u9009\u578b",level:4}],u={toc:s},c="wrapper";function g(e){let{components:n,...t}=e;return(0,a.yg)(c,(0,r.A)({},u,t,{components:n,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"\u5b98\u7f51"},"\u5b98\u7f51"),(0,a.yg)("p",null,"\u5b98\u7f51\u6bd4\u8f83\u504f\u7eaf\u5c55\u793a\uff0c\u5bf9SEO\u6709\u8981\u6c42\uff0c\u5bf9CMS\u6709\u8981\u6c42\uff0c\u5bf9\u90e8\u5206\u8fd0\u8425\u6709\u9700\u6c42\uff1b"),(0,a.yg)("h3",{id:"\u9759\u6001\u9875\u9762\u5c55\u793a"},"\u9759\u6001\u9875\u9762\u5c55\u793a"),(0,a.yg)("p",null,"\u5b98\u7f51\u5176\u5b9e\u9664\u4e86\u5927\u6539\u7248\u7684\u65f6\u5019\uff0c\u57fa\u672c\u4e0a60%\u7684\u9875\u9762\u90fd\u662f\u5e38\u5e74\u4e0d\u52a8\u7684\u3002\u800c\u4e14\u90fd\u662f\u4e00\u4e9b\u6587\u6848\u548c\u56fe\u7247\u3002\n\u8fd9\u4e2a\u7279\u70b9\u7b2c\u4e00\u4e2a\u53ef\u4ee5\u60f3\u5230\u7684\u6280\u672f\u9009\u578b\u5c31\u662f ",(0,a.yg)("strong",{parentName:"p"},(0,a.yg)("em",{parentName:"strong"},"Bootstrap")),"\uff1b"),(0,a.yg)("h3",{id:"seo"},"SEO"),(0,a.yg)("p",null,"\u5b98\u7f51\u80af\u5b9a\u5bf9SEO\u6709\u5f3a\u9700\u6c42\uff0c\u8bf4\u4ee5\uff0c\u6280\u672f\u9009\u578b\u662f\u5305\u62ec\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"SSR"),(0,a.yg)("li",{parentName:"ul"},"\u524d\u540e\u7aef\u4e0d\u5206\u79bb\u7684\u673a\u5236\uff0c\u4f8b\u5982PHP\u3001JSP\u7b49\u52a8\u6001\u7f51\u9875\u6280\u672f")),(0,a.yg)("h3",{id:"cms\u8fd0\u8425"},"CMS+\u8fd0\u8425"),(0,a.yg)("p",null,"\u867d\u7136\u5b98\u7f51\u5347\u7ea7\u6539\u7248\u5f88\u4e0d\u9891\u7e41\uff0c\u4f46\u662f\u5bf9CMS\u8fd8\u662f\u6709\u9700\u6c42\u7684\uff0c\u4e3b\u8981\u4f53\u73b0\u5728\u8f6e\u64ad\u56fe\u7684\u66f4\u6362\uff0c\u6216\u8005\u8bf4\u660e\u6587\u6863\u7684\u65b0\u589e\u4fee\u6539\u7b49\uff0c\n\u6709\u65f6\u5019\u5b98\u7f51\u4e0a\u4e5f\u4f1a\u6709\u4e00\u4e9b\u8fd0\u8425\u6d3b\u52a8\u9875\u9762\uff1b"),(0,a.yg)("p",null,"\u6240\u4ee5\u6280\u672f\u9009\u578b\u4e0a\u4ed6\u662f\u9700\u8981\u540e\u7aef\u7684\uff0c\u5927\u6982\u7387\u4f1a\u5305\u62ecAPI\u3001\u6570\u636e\u5e93\u3001\u7f13\u5b58\u670d\u52a1\u7b49\uff1b"),(0,a.yg)("h3",{id:"\u6700\u7ec8"},"\u6700\u7ec8"),(0,a.yg)("p",null,"\u5907\u9009\u5217\u8868\u4e3a\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u65b9\u68481\uff1aBootstrap + Java + Springboot + SpringMVC + MyBatis + MySQL"),(0,a.yg)("li",{parentName:"ul"},"\u65b9\u68482\uff1aBootstrap + midway.js + MySQL")),(0,a.yg)("p",null,"\u65b9\u68481\u662f\u524d\u540e\u7aef\u7684\u6280\u672f\u6808\u5206\u79bb\uff1b\u65b9\u68482\u662f\u524d\u540e\u7aef\u7684\u6280\u672f\u6808\u4e0d\u5206\u79bb\uff0c\u4f7f\u7528\u7684\u662f\u524d\u7aef\u6280\u672f\u6808JS\uff1b"),(0,a.yg)("p",null,"\u5982\u679c\u524d\u7aef\u56e2\u961f\u76f8\u5bf9\u5f3a\u52bf\u7684\u8bdd\uff0c\u53ef\u4ee5\u9009\u62e9 ",(0,a.yg)("strong",{parentName:"p"},(0,a.yg)("em",{parentName:"strong"},"\u65b9\u68481"))," \u5426\u5219\uff0c\u76f4\u63a5\u9009\u62e9",(0,a.yg)("strong",{parentName:"p"},(0,a.yg)("em",{parentName:"strong"},"\u65b9\u68482"))),(0,a.yg)("p",null,"\u8bf4\u660e\u6587\u6863\u5355\u72ec\u8bf4\uff0c\u63a8\u8350",(0,a.yg)("strong",{parentName:"p"},(0,a.yg)("em",{parentName:"strong"},"docusaurus"))),(0,a.yg)("h4",{id:"\u5173\u4e8e\u65b9\u68482\u7684\u540e\u7aefjs\u7684\u6280\u672f\u9009\u578b"},"\u5173\u4e8e\u65b9\u68482\u7684\u540e\u7aefJS\u7684\u6280\u672f\u9009\u578b"),(0,a.yg)("p",null,"koa.js >> egg.js >> midway.js \u8fd9\u4e48\u4e2a\u6280\u672f\u6f14\u8fdb\u548c\u5c01\u88c5\u5173\u7cfb\uff1b"),(0,a.yg)("p",null,"express.js >> nest.js \u8fd9\u4e48\u4e2a\u6280\u672f\u6f14\u8fdb\u548c\u5c01\u88c5\u5173\u7cfb\uff1b"),(0,a.yg)("p",null,"Koa.js \u662f Express.js \u539f\u73ed\u4eba\u9a6c\u7528\u65b0\u7406\u5ff5\u91cd\u65b0\u521b\u4f5c\u7684\u6846\u67b6\uff1b\n\u800c Express.js \u56e0\u4e3a\u4ea7\u751f\u5386\u53f2\u65e9\uff0c\u800c\u6709\u66f4\u597d\u7684\u751f\u6001\u57fa\u7840\uff0c\u5468\u8fb9\u7684\u63d2\u4ef6\u3001\u4e2d\u95f4\u4ef6\u4ec0\u4e48\u7684\u53ef\u80fd\u66f4\u4e30\u5bcc\uff1b"),(0,a.yg)("p",null,"Midway.js \u80cc\u540e\u662f\u963f\u91cc\u7684\u56e2\u961f\uff0c\u800c Nest.js \u80cc\u540e\u662f\u56fd\u5916\u7684 Trilon \u56e2\u961f\u3002"))}g.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[568],{5680:(e,n,t)=>{t.d(n,{xA:()=>u,yg:()=>d});var r=t(6540);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function l(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var p=r.createContext({}),s=function(e){var n=r.useContext(p),t=n;return e&&(t="function"==typeof e?e(n):l(l({},n),e)),t},u=function(e){var n=s(e.components);return r.createElement(p.Provider,{value:n},e.children)},c="mdxType",g={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},y=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),c=s(t),y=a,d=c["".concat(p,".").concat(y)]||c[y]||g[y]||o;return t?r.createElement(d,l(l({ref:n},u),{},{components:t})):r.createElement(d,l({ref:n},u))}));function d(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var o=t.length,l=new Array(o);l[0]=y;var i={};for(var p in n)hasOwnProperty.call(n,p)&&(i[p]=n[p]);i.originalType=e,i[c]="string"==typeof e?e:a,l[1]=i;for(var s=2;s{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>l,default:()=>g,frontMatter:()=>o,metadata:()=>i,toc:()=>s});var r=t(8168),a=(t(6540),t(5680));const o={sidebar_position:2},l="\u5b98\u7f51",i={unversionedId:"xuanxing/fe/\u5b98\u7f51",id:"xuanxing/fe/\u5b98\u7f51",title:"\u5b98\u7f51",description:"\u5b98\u7f51\u6bd4\u8f83\u504f\u7eaf\u5c55\u793a\uff0c\u5bf9SEO\u6709\u8981\u6c42\uff0c\u5bf9CMS\u6709\u8981\u6c42\uff0c\u5bf9\u90e8\u5206\u8fd0\u8425\u6709\u9700\u6c42\uff1b",source:"@site/docs/xuanxing/fe/2-\u5b98\u7f51.md",sourceDirName:"xuanxing/fe",slug:"/xuanxing/fe/\u5b98\u7f51",permalink:"/docs/xuanxing/fe/\u5b98\u7f51",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"xuanxingSidebar",previous:{title:"\u6982\u8ff0",permalink:"/docs/xuanxing/fe/"},next:{title:"\u7528\u6237\u7aef+\u7ba1\u7406\u7aef",permalink:"/docs/xuanxing/fe/\u7528\u6237\u7aef\u7ba1\u7406\u7aef"}},p={},s=[{value:"\u9759\u6001\u9875\u9762\u5c55\u793a",id:"\u9759\u6001\u9875\u9762\u5c55\u793a",level:3},{value:"SEO",id:"seo",level:3},{value:"CMS+\u8fd0\u8425",id:"cms\u8fd0\u8425",level:3},{value:"\u6700\u7ec8",id:"\u6700\u7ec8",level:3},{value:"\u5173\u4e8e\u65b9\u68482\u7684\u540e\u7aefJS\u7684\u6280\u672f\u9009\u578b",id:"\u5173\u4e8e\u65b9\u68482\u7684\u540e\u7aefjs\u7684\u6280\u672f\u9009\u578b",level:4}],u={toc:s},c="wrapper";function g(e){let{components:n,...t}=e;return(0,a.yg)(c,(0,r.A)({},u,t,{components:n,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"\u5b98\u7f51"},"\u5b98\u7f51"),(0,a.yg)("p",null,"\u5b98\u7f51\u6bd4\u8f83\u504f\u7eaf\u5c55\u793a\uff0c\u5bf9SEO\u6709\u8981\u6c42\uff0c\u5bf9CMS\u6709\u8981\u6c42\uff0c\u5bf9\u90e8\u5206\u8fd0\u8425\u6709\u9700\u6c42\uff1b"),(0,a.yg)("h3",{id:"\u9759\u6001\u9875\u9762\u5c55\u793a"},"\u9759\u6001\u9875\u9762\u5c55\u793a"),(0,a.yg)("p",null,"\u5b98\u7f51\u5176\u5b9e\u9664\u4e86\u5927\u6539\u7248\u7684\u65f6\u5019\uff0c\u57fa\u672c\u4e0a60%\u7684\u9875\u9762\u90fd\u662f\u5e38\u5e74\u4e0d\u52a8\u7684\u3002\u800c\u4e14\u90fd\u662f\u4e00\u4e9b\u6587\u6848\u548c\u56fe\u7247\u3002\n\u8fd9\u4e2a\u7279\u70b9\u7b2c\u4e00\u4e2a\u53ef\u4ee5\u60f3\u5230\u7684\u6280\u672f\u9009\u578b\u5c31\u662f ",(0,a.yg)("strong",{parentName:"p"},(0,a.yg)("em",{parentName:"strong"},"Bootstrap")),"\uff1b"),(0,a.yg)("h3",{id:"seo"},"SEO"),(0,a.yg)("p",null,"\u5b98\u7f51\u80af\u5b9a\u5bf9SEO\u6709\u5f3a\u9700\u6c42\uff0c\u8bf4\u4ee5\uff0c\u6280\u672f\u9009\u578b\u662f\u5305\u62ec\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"SSR"),(0,a.yg)("li",{parentName:"ul"},"\u524d\u540e\u7aef\u4e0d\u5206\u79bb\u7684\u673a\u5236\uff0c\u4f8b\u5982PHP\u3001JSP\u7b49\u52a8\u6001\u7f51\u9875\u6280\u672f")),(0,a.yg)("h3",{id:"cms\u8fd0\u8425"},"CMS+\u8fd0\u8425"),(0,a.yg)("p",null,"\u867d\u7136\u5b98\u7f51\u5347\u7ea7\u6539\u7248\u5f88\u4e0d\u9891\u7e41\uff0c\u4f46\u662f\u5bf9CMS\u8fd8\u662f\u6709\u9700\u6c42\u7684\uff0c\u4e3b\u8981\u4f53\u73b0\u5728\u8f6e\u64ad\u56fe\u7684\u66f4\u6362\uff0c\u6216\u8005\u8bf4\u660e\u6587\u6863\u7684\u65b0\u589e\u4fee\u6539\u7b49\uff0c\n\u6709\u65f6\u5019\u5b98\u7f51\u4e0a\u4e5f\u4f1a\u6709\u4e00\u4e9b\u8fd0\u8425\u6d3b\u52a8\u9875\u9762\uff1b"),(0,a.yg)("p",null,"\u6240\u4ee5\u6280\u672f\u9009\u578b\u4e0a\u4ed6\u662f\u9700\u8981\u540e\u7aef\u7684\uff0c\u5927\u6982\u7387\u4f1a\u5305\u62ecAPI\u3001\u6570\u636e\u5e93\u3001\u7f13\u5b58\u670d\u52a1\u7b49\uff1b"),(0,a.yg)("h3",{id:"\u6700\u7ec8"},"\u6700\u7ec8"),(0,a.yg)("p",null,"\u5907\u9009\u5217\u8868\u4e3a\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u65b9\u68481\uff1aBootstrap + Java + Springboot + SpringMVC + MyBatis + MySQL"),(0,a.yg)("li",{parentName:"ul"},"\u65b9\u68482\uff1aBootstrap + midway.js + MySQL")),(0,a.yg)("p",null,"\u65b9\u68481\u662f\u524d\u540e\u7aef\u7684\u6280\u672f\u6808\u5206\u79bb\uff1b\u65b9\u68482\u662f\u524d\u540e\u7aef\u7684\u6280\u672f\u6808\u4e0d\u5206\u79bb\uff0c\u4f7f\u7528\u7684\u662f\u524d\u7aef\u6280\u672f\u6808JS\uff1b"),(0,a.yg)("p",null,"\u5982\u679c\u524d\u7aef\u56e2\u961f\u76f8\u5bf9\u5f3a\u52bf\u7684\u8bdd\uff0c\u53ef\u4ee5\u9009\u62e9 ",(0,a.yg)("strong",{parentName:"p"},(0,a.yg)("em",{parentName:"strong"},"\u65b9\u68481"))," \u5426\u5219\uff0c\u76f4\u63a5\u9009\u62e9",(0,a.yg)("strong",{parentName:"p"},(0,a.yg)("em",{parentName:"strong"},"\u65b9\u68482"))),(0,a.yg)("p",null,"\u8bf4\u660e\u6587\u6863\u5355\u72ec\u8bf4\uff0c\u63a8\u8350",(0,a.yg)("strong",{parentName:"p"},(0,a.yg)("em",{parentName:"strong"},"docusaurus"))),(0,a.yg)("h4",{id:"\u5173\u4e8e\u65b9\u68482\u7684\u540e\u7aefjs\u7684\u6280\u672f\u9009\u578b"},"\u5173\u4e8e\u65b9\u68482\u7684\u540e\u7aefJS\u7684\u6280\u672f\u9009\u578b"),(0,a.yg)("p",null,"koa.js >> egg.js >> midway.js \u8fd9\u4e48\u4e2a\u6280\u672f\u6f14\u8fdb\u548c\u5c01\u88c5\u5173\u7cfb\uff1b"),(0,a.yg)("p",null,"express.js >> nest.js \u8fd9\u4e48\u4e2a\u6280\u672f\u6f14\u8fdb\u548c\u5c01\u88c5\u5173\u7cfb\uff1b"),(0,a.yg)("p",null,"Koa.js \u662f Express.js \u539f\u73ed\u4eba\u9a6c\u7528\u65b0\u7406\u5ff5\u91cd\u65b0\u521b\u4f5c\u7684\u6846\u67b6\uff1b\n\u800c Express.js \u56e0\u4e3a\u4ea7\u751f\u5386\u53f2\u65e9\uff0c\u800c\u6709\u66f4\u597d\u7684\u751f\u6001\u57fa\u7840\uff0c\u5468\u8fb9\u7684\u63d2\u4ef6\u3001\u4e2d\u95f4\u4ef6\u4ec0\u4e48\u7684\u53ef\u80fd\u66f4\u4e30\u5bcc\uff1b"),(0,a.yg)("p",null,"Midway.js \u80cc\u540e\u662f\u963f\u91cc\u7684\u56e2\u961f\uff0c\u800c Nest.js \u80cc\u540e\u662f\u56fd\u5916\u7684 Trilon \u56e2\u961f\u3002"))}g.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f3a30e95.8134eb85.js b/assets/js/f3a30e95.3f34e3b3.js similarity index 99% rename from assets/js/f3a30e95.8134eb85.js rename to assets/js/f3a30e95.3f34e3b3.js index b44fd8433..9929c0479 100644 --- a/assets/js/f3a30e95.8134eb85.js +++ b/assets/js/f3a30e95.3f34e3b3.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2373],{5680:(e,n,t)=>{t.d(n,{xA:()=>p,yg:()=>g});var r=t(6540);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function l(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var i=r.createContext({}),u=function(e){var n=r.useContext(i),t=n;return e&&(t="function"==typeof e?e(n):l(l({},n),e)),t},p=function(e){var n=u(e.components);return r.createElement(i.Provider,{value:n},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},y=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),s=u(t),y=a,g=s["".concat(i,".").concat(y)]||s[y]||d[y]||o;return t?r.createElement(g,l(l({ref:n},p),{},{components:t})):r.createElement(g,l({ref:n},p))}));function g(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var o=t.length,l=new Array(o);l[0]=y;var c={};for(var i in n)hasOwnProperty.call(n,i)&&(c[i]=n[i]);c.originalType=e,c[s]="string"==typeof e?e:a,l[1]=c;for(var u=2;u{t.r(n),t.d(n,{assets:()=>i,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>c,toc:()=>u});var r=t(8168),a=(t(6540),t(5680));const o={},l="\u9501\uff08\u591a\u7ebf\u7a0b\uff09",c={unversionedId:"study/program/JAVA/\u9501",id:"study/program/JAVA/\u9501",title:"\u9501\uff08\u591a\u7ebf\u7a0b\uff09",description:"\u591a\u7ebf\u7a0b\u7f16\u7a0b\u5728\u73b0\u4ee3\u8f6f\u4ef6\u5f00\u53d1\u4e2d\u626e\u6f14\u7740\u81f3\u5173\u91cd\u8981\u7684\u89d2\u8272\u3002\u5b83\u4f7f\u6211\u4eec\u80fd\u591f\u6709\u6548\u5730\u5229\u7528\u591a\u6838\u5904\u7406\u5668\u548c\u63d0\u9ad8\u5e94\u7528\u7a0b\u5e8f\u7684\u6027\u80fd\u3002\u7136\u800c\uff0c\u591a\u7ebf\u7a0b\u7f16\u7a0b\u4e5f\u4f34\u968f\u7740\u4e00\u7cfb\u5217\u6311\u6218\uff0c\u5176\u4e2d\u6700\u91cd\u8981\u7684\u4e4b\u4e00\u5c31\u662f\u5904\u7406\u5171\u4eab\u8d44\u6e90\u7684\u7ebf\u7a0b\u5b89\u5168\u6027\u3002\u5728\u8fd9\u4e2a\u9886\u57df\uff0c\u9501\uff08Lock\uff09\u662f\u4e00\u4e2a\u5173\u952e\u7684\u6982\u5ff5\uff0c\u7528\u4e8e\u534f\u8c03\u7ebf\u7a0b\u4e4b\u95f4\u5bf9\u5171\u4eab\u8d44\u6e90\u7684\u8bbf\u95ee\u3002",source:"@site/docs/study/program/JAVA/\u9501.md",sourceDirName:"study/program/JAVA",slug:"/study/program/JAVA/\u9501",permalink:"/docs/study/program/JAVA/\u9501",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u4ee3\u7801\u751f\u6210",permalink:"/docs/study/program/JAVA/\u4ee3\u7801\u751f\u6210"},next:{title:"ABIAPI",permalink:"/docs/study/program/ABIAPI"}},i={},u=[{value:"\u91cd\u5165\u9501\uff08Reentrant Lock\uff09",id:"\u91cd\u5165\u9501reentrant-lock",level:3},{value:"\u4e92\u65a5\u9501\u548c synchronized \u5173\u952e\u5b57",id:"\u4e92\u65a5\u9501\u548c-synchronized-\u5173\u952e\u5b57",level:3},{value:"\u8bfb\u5199\u9501\uff08ReadWrite Lock\uff09",id:"\u8bfb\u5199\u9501readwrite-lock",level:3},{value:"\u81ea\u65cb\u9501\uff08Spin Lock\uff09",id:"\u81ea\u65cb\u9501spin-lock",level:3},{value:"\u9501\u7684\u6027\u80fd\u548c\u53ef\u4f38\u7f29\u6027",id:"\u9501\u7684\u6027\u80fd\u548c\u53ef\u4f38\u7f29\u6027",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],p={toc:u},s="wrapper";function d(e){let{components:n,...t}=e;return(0,a.yg)(s,(0,r.A)({},p,t,{components:n,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"\u9501\u591a\u7ebf\u7a0b"},"\u9501\uff08\u591a\u7ebf\u7a0b\uff09"),(0,a.yg)("p",null,"\u591a\u7ebf\u7a0b\u7f16\u7a0b\u5728\u73b0\u4ee3\u8f6f\u4ef6\u5f00\u53d1\u4e2d\u626e\u6f14\u7740\u81f3\u5173\u91cd\u8981\u7684\u89d2\u8272\u3002\u5b83\u4f7f\u6211\u4eec\u80fd\u591f\u6709\u6548\u5730\u5229\u7528\u591a\u6838\u5904\u7406\u5668\u548c\u63d0\u9ad8\u5e94\u7528\u7a0b\u5e8f\u7684\u6027\u80fd\u3002\u7136\u800c\uff0c\u591a\u7ebf\u7a0b\u7f16\u7a0b\u4e5f\u4f34\u968f\u7740\u4e00\u7cfb\u5217\u6311\u6218\uff0c\u5176\u4e2d\u6700\u91cd\u8981\u7684\u4e4b\u4e00\u5c31\u662f\u5904\u7406\u5171\u4eab\u8d44\u6e90\u7684\u7ebf\u7a0b\u5b89\u5168\u6027\u3002\u5728\u8fd9\u4e2a\u9886\u57df\uff0c\u9501\uff08Lock\uff09\u662f\u4e00\u4e2a\u5173\u952e\u7684\u6982\u5ff5\uff0c\u7528\u4e8e\u534f\u8c03\u7ebf\u7a0b\u4e4b\u95f4\u5bf9\u5171\u4eab\u8d44\u6e90\u7684\u8bbf\u95ee\u3002\n\u4f5c\u8005\uff1aflydean\n\u94fe\u63a5\uff1a",(0,a.yg)("a",{parentName:"p",href:"https://www.zhihu.com/question/550510128/answer/3227011144"},"https://www.zhihu.com/question/550510128/answer/3227011144"),"\n\u6765\u6e90\uff1a\u77e5\u4e4e\n\u8457\u4f5c\u6743\u5f52\u4f5c\u8005\u6240\u6709\u3002\u5546\u4e1a\u8f6c\u8f7d\u8bf7\u8054\u7cfb\u4f5c\u8005\u83b7\u5f97\u6388\u6743\uff0c\u975e\u5546\u4e1a\u8f6c\u8f7d\u8bf7\u6ce8\u660e\u51fa\u5904\u3002"),(0,a.yg)("h3",{id:"\u91cd\u5165\u9501reentrant-lock"},"\u91cd\u5165\u9501\uff08Reentrant Lock\uff09"),(0,a.yg)("p",null,"\u9996\u5148\uff0c\u8ba9\u6211\u4eec\u6df1\u5165\u7814\u7a76\u4e00\u4e0b\u91cd\u5165\u9501\uff0c\u8fd9\u662f Java \u4e2d\u6700\u5e38\u89c1\u7684\u9501\u4e4b\u4e00\u3002\u91cd\u5165\u9501\u662f\u4e00\u79cd\u53ef\u91cd\u5165\u9501\uff0c\u8fd9\u610f\u5473\u7740\u540c\u4e00\u7ebf\u7a0b\u53ef\u4ee5\u591a\u6b21\u83b7\u53d6\u540c\u4e00\u4e2a\u9501\uff0c\u800c\u4e0d\u4f1a\u9020\u6210\u6b7b\u9501\u3002\u8fd9\u79cd\u7279\u6027\u4f7f\u5f97\u91cd\u5165\u9501\u5728\u8bb8\u591a\u590d\u6742\u7684\u591a\u7ebf\u7a0b\u573a\u666f\u4e2d\u975e\u5e38\u6709\u7528\u3002\u91cd\u5165\u9501\u7684\u5b9e\u73b0\u901a\u5e38\u9700\u8981\u663e\u5f0f\u5730\u9501\u5b9a\u548c\u89e3\u9501\uff0c\u8fd9\u4f7f\u5f97\u5b83\u66f4\u52a0\u7075\u6d3b\uff0c\u4f46\u4e5f\u9700\u8981\u5f00\u53d1\u4eba\u5458\u66f4\u5c0f\u5fc3\u5730\u7ba1\u7406\u9501\u7684\u72b6\u6001\u3002\u4e0b\u9762\u662f\u4e00\u4e2a\u7b80\u5355\u7684\u793a\u4f8b\uff0c\u6f14\u793a\u5982\u4f55\u4f7f\u7528\u91cd\u5165\u9501\u6765\u5b9e\u73b0\u7ebf\u7a0b\u5b89\u5168\uff1a"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-Java"},"import java.util.concurrent.locks.ReentrantLock;\n\npublic class Counter {\n private int count = 0;\n private ReentrantLock lock = new ReentrantLock();\n\n public void increment() {\n lock.lock(); // \u83b7\u53d6\u9501\n try {\n count++;\n } finally {\n lock.unlock(); // \u91ca\u653e\u9501\n }\n }\n\n public int getCount() {\n lock.lock(); // \u83b7\u53d6\u9501\n try {\n return count;\n } finally {\n lock.unlock(); // \u91ca\u653e\u9501\n }\n }\n}\n")),(0,a.yg)("p",null,"\u5728\u4e0a\u9762\u7684\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528 ReentrantLock \u6765\u4fdd\u62a4 count \u5b57\u6bb5\u7684\u8bbf\u95ee\uff0c\u786e\u4fdd increment \u548c getCount \u65b9\u6cd5\u7684\u7ebf\u7a0b\u5b89\u5168\u6027\u3002\u8bf7\u6ce8\u610f\uff0c\u6211\u4eec\u5728\u83b7\u53d6\u9501\u540e\u4f7f\u7528 try-finally \u5757\u6765\u786e\u4fdd\u5728\u5b8c\u6210\u64cd\u4f5c\u540e\u91ca\u653e\u9501\uff0c\u4ee5\u9632\u6b62\u6b7b\u9501\u3002"),(0,a.yg)("p",null,(0,a.yg)("a",{parentName:"p",href:"https://blog.csdn.net/weixin_46121031/article/details/106121238"},"CSDN-ReentrantLock \u9501")),(0,a.yg)("h3",{id:"\u4e92\u65a5\u9501\u548c-synchronized-\u5173\u952e\u5b57"},"\u4e92\u65a5\u9501\u548c synchronized \u5173\u952e\u5b57"),(0,a.yg)("p",null,"\u9664\u4e86\u91cd\u5165\u9501\uff0cJava \u4e2d\u8fd8\u63d0\u4f9b\u4e86\u4e92\u65a5\u9501\u7684\u6982\u5ff5\uff0c\u6700\u5e38\u89c1\u7684\u65b9\u5f0f\u662f\u4f7f\u7528 synchronized \u5173\u952e\u5b57\u3002synchronized \u5173\u952e\u5b57\u53ef\u4ee5\u7528\u4e8e\u65b9\u6cd5\u6216\u4ee3\u7801\u5757\uff0c\u4ee5\u786e\u4fdd\u540c\u4e00\u65f6\u523b\u53ea\u6709\u4e00\u4e2a\u7ebf\u7a0b\u53ef\u4ee5\u8bbf\u95ee\u88ab\u9501\u5b9a\u7684\u8d44\u6e90\u3002"),(0,a.yg)("p",null,"\u4f8b\u5982\uff0c\u6211\u4eec\u53ef\u4ee5\u4f7f\u7528 synchronized \u6765\u5b9e\u73b0\u4e0e\u4e0a\u9762\u793a\u4f8b\u76f8\u540c\u7684 Counter \u7c7b\uff1a"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-Java"},"public class Counter {\n private int count = 0;\n\n public synchronized void increment() {\n count++;\n }\n\n public synchronized int getCount() {\n return count;\n }\n}\n")),(0,a.yg)("p",null,"\u5728\u8fd9\u4e2a\u4f8b\u5b50\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528 synchronized \u5173\u952e\u5b57\u6765\u6807\u8bb0 increment \u548c getCount \u65b9\u6cd5\uff0c\u4f7f\u5b83\u4eec\u6210\u4e3a\u540c\u6b65\u65b9\u6cd5\u3002\u8fd9\u610f\u5473\u7740\u540c\u4e00\u65f6\u523b\u53ea\u6709\u4e00\u4e2a\u7ebf\u7a0b\u53ef\u4ee5\u8bbf\u95ee\u8fd9\u4e24\u4e2a\u65b9\u6cd5\uff0c\u4ece\u800c\u786e\u4fdd\u4e86\u7ebf\u7a0b\u5b89\u5168\u6027\u3002"),(0,a.yg)("p",null,"\u4e92\u65a5\u9501\u548c\u91cd\u5165\u9501\u4e4b\u95f4\u7684\u4e3b\u8981\u533a\u522b\u5728\u4e8e\u7075\u6d3b\u6027\u548c\u63a7\u5236\u3002\u4f7f\u7528 synchronized \u5173\u952e\u5b57\u66f4\u7b80\u5355\uff0c\u4f46\u76f8\u5bf9\u4e0d\u591f\u7075\u6d3b\uff0c\u56e0\u4e3a\u5b83\u9690\u5f0f\u5730\u7ba1\u7406\u9501\u3002\u91cd\u5165\u9501\u5219\u9700\u8981\u66f4\u663e\u5f0f\u7684\u9501\u5b9a\u548c\u89e3\u9501\u64cd\u4f5c\uff0c\u4f46\u63d0\u4f9b\u4e86\u66f4\u591a\u7684\u63a7\u5236\u9009\u9879\u3002"),(0,a.yg)("h3",{id:"\u8bfb\u5199\u9501readwrite-lock"},"\u8bfb\u5199\u9501\uff08ReadWrite Lock\uff09"),(0,a.yg)("p",null,"\u8bfb\u5199\u9501\u662f\u4e00\u79cd\u7279\u6b8a\u7c7b\u578b\u7684\u9501\uff0c\u5b83\u5728\u67d0\u4e9b\u573a\u666f\u4e0b\u53ef\u4ee5\u63d0\u9ad8\u591a\u7ebf\u7a0b\u7a0b\u5e8f\u7684\u6027\u80fd\u3002\u8bfb\u5199\u9501\u5141\u8bb8\u591a\u4e2a\u7ebf\u7a0b\u540c\u65f6\u8bfb\u53d6\u5171\u4eab\u8d44\u6e90\uff0c\u4f46\u53ea\u5141\u8bb8\u4e00\u4e2a\u7ebf\u7a0b\u5199\u5165\u5171\u4eab\u8d44\u6e90\u3002\u8fd9\u79cd\u673a\u5236\u5bf9\u4e8e\u8bfb\u64cd\u4f5c\u8fdc\u8fdc\u591a\u4e8e\u5199\u64cd\u4f5c\u7684\u60c5\u51b5\u975e\u5e38\u6709\u6548\uff0c\u56e0\u4e3a\u5b83\u53ef\u4ee5\u63d0\u9ad8\u8bfb\u64cd\u4f5c\u7684\u5e76\u53d1\u6027\u3002\u8ba9\u6211\u4eec\u770b\u4e00\u4e2a\u793a\u4f8b\uff0c\u6f14\u793a\u5982\u4f55\u4f7f\u7528 ReadWriteLock \u63a5\u53e3\u53ca\u5176\u5b9e\u73b0\u6765\u7ba1\u7406\u8d44\u6e90\u7684\u8bfb\u5199\u8bbf\u95ee\uff1a"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-Java"},"import java.util.concurrent.locks.ReadWriteLock;\nimport java.util.concurrent.locks.ReentrantReadWriteLock;\n\npublic class SharedResource {\n private int data = 0;\n private final ReadWriteLock lock = new ReentrantReadWriteLock();\n\n public int readData() {\n lock.readLock().lock(); // \u83b7\u53d6\u8bfb\u9501\n try {\n return data;\n } finally {\n lock.readLock().unlock(); // \u91ca\u653e\u8bfb\u9501\n }\n }\n\n public void writeData(int newValue) {\n lock.writeLock().lock(); // \u83b7\u53d6\u5199\u9501\n try {\n data = newValue;\n } finally {\n lock.writeLock().unlock(); // \u91ca\u653e\u5199\u9501\n }\n }\n}\n")),(0,a.yg)("p",null,"\u5728\u4e0a\u9762\u7684\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528 ReentrantReadWriteLock \u5b9e\u73b0\u4e86\u4e00\u4e2a\u7b80\u5355\u7684\u5171\u4eab\u8d44\u6e90\u7ba1\u7406\u7c7b\u3002readData \u65b9\u6cd5\u4f7f\u7528\u8bfb\u9501\u6765\u5141\u8bb8\u591a\u4e2a\u7ebf\u7a0b\u5e76\u53d1\u8bfb\u53d6 data \u7684\u503c\uff0c\u800c writeData \u65b9\u6cd5\u4f7f\u7528\u5199\u9501\u6765\u786e\u4fdd\u53ea\u6709\u4e00\u4e2a\u7ebf\u7a0b\u53ef\u4ee5\u4fee\u6539 data \u7684\u503c\u3002\u8fd9\u79cd\u65b9\u5f0f\u53ef\u4ee5\u63d0\u9ad8\u8bfb\u64cd\u4f5c\u7684\u5e76\u53d1\u6027\uff0c\u4ece\u800c\u63d0\u9ad8\u6027\u80fd\u3002"),(0,a.yg)("h3",{id:"\u81ea\u65cb\u9501spin-lock"},"\u81ea\u65cb\u9501\uff08Spin Lock\uff09"),(0,a.yg)("p",null,"\u81ea\u65cb\u9501\u662f\u4e00\u79cd\u9501\u5b9a\u673a\u5236\uff0c\u4e0d\u4f1a\u8ba9\u7ebf\u7a0b\u8fdb\u5165\u4f11\u7720\u72b6\u6001\uff0c\u800c\u662f\u4f1a\u53cd\u590d\u68c0\u67e5\u9501\u662f\u5426\u53ef\u7528\u3002\u8fd9\u79cd\u9501\u9002\u7528\u4e8e\u90a3\u4e9b\u671f\u671b\u9501\u88ab\u6301\u6709\u65f6\u95f4\u975e\u5e38\u77ed\u6682\u7684\u60c5\u51b5\uff0c\u56e0\u4e3a\u5b83\u907f\u514d\u4e86\u7ebf\u7a0b\u8fdb\u5165\u548c\u9000\u51fa\u4f11\u7720\u72b6\u6001\u7684\u5f00\u9500\u3002\u81ea\u65cb\u9501\u901a\u5e38\u5728\u5355\u6838\u6216\u4f4e\u5e76\u53d1\u60c5\u51b5\u4e0b\u66f4\u4e3a\u6709\u6548\uff0c\u56e0\u4e3a\u5728\u9ad8\u5e76\u53d1\u60c5\u51b5\u4e0b\u4f1a\u5bfc\u81f4 CPU \u8d44\u6e90\u7684\u6d6a\u8d39\u3002\u4ee5\u4e0b\u662f\u4e00\u4e2a\u7b80\u5355\u7684\u81ea\u65cb\u9501\u793a\u4f8b\uff1a"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-Java"},"import java.util.concurrent.atomic.AtomicBoolean;\n\npublic class SpinLock {\n private AtomicBoolean locked = new AtomicBoolean(false);\n\n public void lock() {\n while (!locked.compareAndSet(false, true)) {\n // \u81ea\u65cb\u7b49\u5f85\u9501\u7684\u91ca\u653e\n }\n }\n\n public void unlock() {\n locked.set(false);\n }\n}\n")),(0,a.yg)("p",null,"\u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528\u4e86 AtomicBoolean \u6765\u5b9e\u73b0\u81ea\u65cb\u9501\u3002lock \u65b9\u6cd5\u4f7f\u7528\u81ea\u65cb\u7b49\u5f85\u9501\u7684\u91ca\u653e\uff0c\u76f4\u5230\u6210\u529f\u83b7\u53d6\u9501\u3002unlock \u65b9\u6cd5\u7528\u4e8e\u91ca\u653e\u9501\u3002\u81ea\u65cb\u9501\u7684\u6027\u80fd\u548c\u9002\u7528\u6027\u53d6\u51b3\u4e8e\u5177\u4f53\u7684\u5e94\u7528\u573a\u666f\uff0c\u56e0\u6b64\u5728\u9009\u62e9\u9501\u7684\u7c7b\u578b\u65f6\u9700\u8981\u8c28\u614e\u8003\u8651\u3002"),(0,a.yg)("h3",{id:"\u9501\u7684\u6027\u80fd\u548c\u53ef\u4f38\u7f29\u6027"},"\u9501\u7684\u6027\u80fd\u548c\u53ef\u4f38\u7f29\u6027"),(0,a.yg)("p",null,"\u9009\u62e9\u9002\u5f53\u7c7b\u578b\u7684\u9501\u4ee5\u6ee1\u8db3\u6027\u80fd\u9700\u6c42\u662f\u591a\u7ebf\u7a0b\u7f16\u7a0b\u7684\u91cd\u8981\u65b9\u9762\u3002\u4e0d\u540c\u7c7b\u578b\u7684\u9501\u5728\u6027\u80fd\u548c\u53ef\u4f38\u7f29\u6027\u65b9\u9762\u5177\u6709\u4e0d\u540c\u7684\u7279\u70b9\u3002\u5728\u67d0\u4e9b\u60c5\u51b5\u4e0b\uff0c\u4f7f\u7528\u8fc7\u591a\u7684\u9501\u53ef\u80fd\u5bfc\u81f4\u6027\u80fd\u4e0b\u964d\uff0c\u800c\u5728\u5176\u4ed6\u60c5\u51b5\u4e0b\uff0c\u9009\u62e9\u9519\u8bef\u7684\u9501\u7c7b\u578b\u53ef\u80fd\u4f1a\u5bfc\u81f4\u7ade\u4e89\u548c\u74f6\u9888\u3002"),(0,a.yg)("p",null,"\u6027\u80fd\u6d4b\u8bd5\u548c\u6bd4\u8f83\u662f\u8bc4\u4f30\u9501\u6027\u80fd\u7684\u5173\u952e\u6b65\u9aa4\u3002\u901a\u8fc7\u5bf9\u4e0d\u540c\u9501\u7c7b\u578b\u7684\u6027\u80fd\u8fdb\u884c\u57fa\u51c6\u6d4b\u8bd5\uff0c\u5f00\u53d1\u4eba\u5458\u53ef\u4ee5\u66f4\u597d\u5730\u4e86\u89e3\u5b83\u4eec\u5728\u7279\u5b9a\u60c5\u51b5\u4e0b\u7684\u8868\u73b0\u3002\u6b64\u5916\uff0c\u6027\u80fd\u6d4b\u8bd5\u8fd8\u53ef\u4ee5\u5e2e\u52a9\u786e\u5b9a\u662f\u5426\u9700\u8981\u8c03\u6574\u9501\u7684\u914d\u7f6e\uff0c\u5982\u5e76\u53d1\u7ea7\u522b\u6216\u7b49\u5f85\u7b56\u7565\u3002"),(0,a.yg)("p",null,"\u9664\u4e86\u6027\u80fd\u5916\uff0c\u53ef\u4f38\u7f29\u6027\u4e5f\u662f\u4e00\u4e2a\u5173\u952e\u8003\u8651\u56e0\u7d20\u3002\u53ef\u4f38\u7f29\u6027\u6307\u7684\u662f\u5728\u589e\u52a0\u6838\u5fc3\u6570\u6216\u7ebf\u7a0b\u6570\u65f6\uff0c\u7cfb\u7edf\u7684\u6027\u80fd\u662f\u5426\u80fd\u591f\u7ebf\u6027\u63d0\u9ad8\u3002\u67d0\u4e9b\u9501\u7c7b\u578b\u5728\u9ad8\u5ea6\u5e76\u53d1\u7684\u60c5\u51b5\u4e0b\u53ef\u80fd\u4f1a\u4ea7\u751f\u4e89\u7528\uff0c\u4ece\u800c\u964d\u4f4e\u53ef\u4f38\u7f29\u6027\u3002"),(0,a.yg)("p",null,"\u56e0\u6b64\uff0c\u5728\u9009\u62e9\u9501\u65f6\uff0c\u9700\u8981\u6839\u636e\u5e94\u7528\u7a0b\u5e8f\u7684\u6027\u80fd\u9700\u6c42\u548c\u5e76\u53d1\u8d1f\u8f7d\u6765\u6743\u8861\u6027\u80fd\u548c\u53ef\u4f38\u7f29\u6027\u3002\u4e00\u4e9b\u5e38\u89c1\u7684\u9501\u4f18\u5316\u7b56\u7565\u5305\u62ec\u8c03\u6574\u5e76\u53d1\u7ea7\u522b\u3001\u9009\u62e9\u5408\u9002\u7684\u7b49\u5f85\u7b56\u7565\u4ee5\u53ca\u4f7f\u7528\u5206\u79bb\u9501\u6765\u51cf\u5c0f\u7ade\u4e89\u8303\u56f4\u3002"),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://www.zhihu.com/question/550510128/answer/3227011144"},"\u77e5\u4e4e-Java \u591a\u7ebf\u7a0b\u9501"))))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2373],{5680:(e,n,t)=>{t.d(n,{xA:()=>p,yg:()=>g});var r=t(6540);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function l(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var i=r.createContext({}),u=function(e){var n=r.useContext(i),t=n;return e&&(t="function"==typeof e?e(n):l(l({},n),e)),t},p=function(e){var n=u(e.components);return r.createElement(i.Provider,{value:n},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},y=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),s=u(t),y=a,g=s["".concat(i,".").concat(y)]||s[y]||d[y]||o;return t?r.createElement(g,l(l({ref:n},p),{},{components:t})):r.createElement(g,l({ref:n},p))}));function g(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var o=t.length,l=new Array(o);l[0]=y;var c={};for(var i in n)hasOwnProperty.call(n,i)&&(c[i]=n[i]);c.originalType=e,c[s]="string"==typeof e?e:a,l[1]=c;for(var u=2;u{t.r(n),t.d(n,{assets:()=>i,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>c,toc:()=>u});var r=t(8168),a=(t(6540),t(5680));const o={},l="\u9501\uff08\u591a\u7ebf\u7a0b\uff09",c={unversionedId:"study/program/JAVA/\u9501",id:"study/program/JAVA/\u9501",title:"\u9501\uff08\u591a\u7ebf\u7a0b\uff09",description:"\u591a\u7ebf\u7a0b\u7f16\u7a0b\u5728\u73b0\u4ee3\u8f6f\u4ef6\u5f00\u53d1\u4e2d\u626e\u6f14\u7740\u81f3\u5173\u91cd\u8981\u7684\u89d2\u8272\u3002\u5b83\u4f7f\u6211\u4eec\u80fd\u591f\u6709\u6548\u5730\u5229\u7528\u591a\u6838\u5904\u7406\u5668\u548c\u63d0\u9ad8\u5e94\u7528\u7a0b\u5e8f\u7684\u6027\u80fd\u3002\u7136\u800c\uff0c\u591a\u7ebf\u7a0b\u7f16\u7a0b\u4e5f\u4f34\u968f\u7740\u4e00\u7cfb\u5217\u6311\u6218\uff0c\u5176\u4e2d\u6700\u91cd\u8981\u7684\u4e4b\u4e00\u5c31\u662f\u5904\u7406\u5171\u4eab\u8d44\u6e90\u7684\u7ebf\u7a0b\u5b89\u5168\u6027\u3002\u5728\u8fd9\u4e2a\u9886\u57df\uff0c\u9501\uff08Lock\uff09\u662f\u4e00\u4e2a\u5173\u952e\u7684\u6982\u5ff5\uff0c\u7528\u4e8e\u534f\u8c03\u7ebf\u7a0b\u4e4b\u95f4\u5bf9\u5171\u4eab\u8d44\u6e90\u7684\u8bbf\u95ee\u3002",source:"@site/docs/study/program/JAVA/\u9501.md",sourceDirName:"study/program/JAVA",slug:"/study/program/JAVA/\u9501",permalink:"/docs/study/program/JAVA/\u9501",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u4ee3\u7801\u751f\u6210",permalink:"/docs/study/program/JAVA/\u4ee3\u7801\u751f\u6210"},next:{title:"ABIAPI",permalink:"/docs/study/program/ABIAPI"}},i={},u=[{value:"\u91cd\u5165\u9501\uff08Reentrant Lock\uff09",id:"\u91cd\u5165\u9501reentrant-lock",level:3},{value:"\u4e92\u65a5\u9501\u548c synchronized \u5173\u952e\u5b57",id:"\u4e92\u65a5\u9501\u548c-synchronized-\u5173\u952e\u5b57",level:3},{value:"\u8bfb\u5199\u9501\uff08ReadWrite Lock\uff09",id:"\u8bfb\u5199\u9501readwrite-lock",level:3},{value:"\u81ea\u65cb\u9501\uff08Spin Lock\uff09",id:"\u81ea\u65cb\u9501spin-lock",level:3},{value:"\u9501\u7684\u6027\u80fd\u548c\u53ef\u4f38\u7f29\u6027",id:"\u9501\u7684\u6027\u80fd\u548c\u53ef\u4f38\u7f29\u6027",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],p={toc:u},s="wrapper";function d(e){let{components:n,...t}=e;return(0,a.yg)(s,(0,r.A)({},p,t,{components:n,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"\u9501\u591a\u7ebf\u7a0b"},"\u9501\uff08\u591a\u7ebf\u7a0b\uff09"),(0,a.yg)("p",null,"\u591a\u7ebf\u7a0b\u7f16\u7a0b\u5728\u73b0\u4ee3\u8f6f\u4ef6\u5f00\u53d1\u4e2d\u626e\u6f14\u7740\u81f3\u5173\u91cd\u8981\u7684\u89d2\u8272\u3002\u5b83\u4f7f\u6211\u4eec\u80fd\u591f\u6709\u6548\u5730\u5229\u7528\u591a\u6838\u5904\u7406\u5668\u548c\u63d0\u9ad8\u5e94\u7528\u7a0b\u5e8f\u7684\u6027\u80fd\u3002\u7136\u800c\uff0c\u591a\u7ebf\u7a0b\u7f16\u7a0b\u4e5f\u4f34\u968f\u7740\u4e00\u7cfb\u5217\u6311\u6218\uff0c\u5176\u4e2d\u6700\u91cd\u8981\u7684\u4e4b\u4e00\u5c31\u662f\u5904\u7406\u5171\u4eab\u8d44\u6e90\u7684\u7ebf\u7a0b\u5b89\u5168\u6027\u3002\u5728\u8fd9\u4e2a\u9886\u57df\uff0c\u9501\uff08Lock\uff09\u662f\u4e00\u4e2a\u5173\u952e\u7684\u6982\u5ff5\uff0c\u7528\u4e8e\u534f\u8c03\u7ebf\u7a0b\u4e4b\u95f4\u5bf9\u5171\u4eab\u8d44\u6e90\u7684\u8bbf\u95ee\u3002\n\u4f5c\u8005\uff1aflydean\n\u94fe\u63a5\uff1a",(0,a.yg)("a",{parentName:"p",href:"https://www.zhihu.com/question/550510128/answer/3227011144"},"https://www.zhihu.com/question/550510128/answer/3227011144"),"\n\u6765\u6e90\uff1a\u77e5\u4e4e\n\u8457\u4f5c\u6743\u5f52\u4f5c\u8005\u6240\u6709\u3002\u5546\u4e1a\u8f6c\u8f7d\u8bf7\u8054\u7cfb\u4f5c\u8005\u83b7\u5f97\u6388\u6743\uff0c\u975e\u5546\u4e1a\u8f6c\u8f7d\u8bf7\u6ce8\u660e\u51fa\u5904\u3002"),(0,a.yg)("h3",{id:"\u91cd\u5165\u9501reentrant-lock"},"\u91cd\u5165\u9501\uff08Reentrant Lock\uff09"),(0,a.yg)("p",null,"\u9996\u5148\uff0c\u8ba9\u6211\u4eec\u6df1\u5165\u7814\u7a76\u4e00\u4e0b\u91cd\u5165\u9501\uff0c\u8fd9\u662f Java \u4e2d\u6700\u5e38\u89c1\u7684\u9501\u4e4b\u4e00\u3002\u91cd\u5165\u9501\u662f\u4e00\u79cd\u53ef\u91cd\u5165\u9501\uff0c\u8fd9\u610f\u5473\u7740\u540c\u4e00\u7ebf\u7a0b\u53ef\u4ee5\u591a\u6b21\u83b7\u53d6\u540c\u4e00\u4e2a\u9501\uff0c\u800c\u4e0d\u4f1a\u9020\u6210\u6b7b\u9501\u3002\u8fd9\u79cd\u7279\u6027\u4f7f\u5f97\u91cd\u5165\u9501\u5728\u8bb8\u591a\u590d\u6742\u7684\u591a\u7ebf\u7a0b\u573a\u666f\u4e2d\u975e\u5e38\u6709\u7528\u3002\u91cd\u5165\u9501\u7684\u5b9e\u73b0\u901a\u5e38\u9700\u8981\u663e\u5f0f\u5730\u9501\u5b9a\u548c\u89e3\u9501\uff0c\u8fd9\u4f7f\u5f97\u5b83\u66f4\u52a0\u7075\u6d3b\uff0c\u4f46\u4e5f\u9700\u8981\u5f00\u53d1\u4eba\u5458\u66f4\u5c0f\u5fc3\u5730\u7ba1\u7406\u9501\u7684\u72b6\u6001\u3002\u4e0b\u9762\u662f\u4e00\u4e2a\u7b80\u5355\u7684\u793a\u4f8b\uff0c\u6f14\u793a\u5982\u4f55\u4f7f\u7528\u91cd\u5165\u9501\u6765\u5b9e\u73b0\u7ebf\u7a0b\u5b89\u5168\uff1a"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-Java"},"import java.util.concurrent.locks.ReentrantLock;\n\npublic class Counter {\n private int count = 0;\n private ReentrantLock lock = new ReentrantLock();\n\n public void increment() {\n lock.lock(); // \u83b7\u53d6\u9501\n try {\n count++;\n } finally {\n lock.unlock(); // \u91ca\u653e\u9501\n }\n }\n\n public int getCount() {\n lock.lock(); // \u83b7\u53d6\u9501\n try {\n return count;\n } finally {\n lock.unlock(); // \u91ca\u653e\u9501\n }\n }\n}\n")),(0,a.yg)("p",null,"\u5728\u4e0a\u9762\u7684\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528 ReentrantLock \u6765\u4fdd\u62a4 count \u5b57\u6bb5\u7684\u8bbf\u95ee\uff0c\u786e\u4fdd increment \u548c getCount \u65b9\u6cd5\u7684\u7ebf\u7a0b\u5b89\u5168\u6027\u3002\u8bf7\u6ce8\u610f\uff0c\u6211\u4eec\u5728\u83b7\u53d6\u9501\u540e\u4f7f\u7528 try-finally \u5757\u6765\u786e\u4fdd\u5728\u5b8c\u6210\u64cd\u4f5c\u540e\u91ca\u653e\u9501\uff0c\u4ee5\u9632\u6b62\u6b7b\u9501\u3002"),(0,a.yg)("p",null,(0,a.yg)("a",{parentName:"p",href:"https://blog.csdn.net/weixin_46121031/article/details/106121238"},"CSDN-ReentrantLock \u9501")),(0,a.yg)("h3",{id:"\u4e92\u65a5\u9501\u548c-synchronized-\u5173\u952e\u5b57"},"\u4e92\u65a5\u9501\u548c synchronized \u5173\u952e\u5b57"),(0,a.yg)("p",null,"\u9664\u4e86\u91cd\u5165\u9501\uff0cJava \u4e2d\u8fd8\u63d0\u4f9b\u4e86\u4e92\u65a5\u9501\u7684\u6982\u5ff5\uff0c\u6700\u5e38\u89c1\u7684\u65b9\u5f0f\u662f\u4f7f\u7528 synchronized \u5173\u952e\u5b57\u3002synchronized \u5173\u952e\u5b57\u53ef\u4ee5\u7528\u4e8e\u65b9\u6cd5\u6216\u4ee3\u7801\u5757\uff0c\u4ee5\u786e\u4fdd\u540c\u4e00\u65f6\u523b\u53ea\u6709\u4e00\u4e2a\u7ebf\u7a0b\u53ef\u4ee5\u8bbf\u95ee\u88ab\u9501\u5b9a\u7684\u8d44\u6e90\u3002"),(0,a.yg)("p",null,"\u4f8b\u5982\uff0c\u6211\u4eec\u53ef\u4ee5\u4f7f\u7528 synchronized \u6765\u5b9e\u73b0\u4e0e\u4e0a\u9762\u793a\u4f8b\u76f8\u540c\u7684 Counter \u7c7b\uff1a"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-Java"},"public class Counter {\n private int count = 0;\n\n public synchronized void increment() {\n count++;\n }\n\n public synchronized int getCount() {\n return count;\n }\n}\n")),(0,a.yg)("p",null,"\u5728\u8fd9\u4e2a\u4f8b\u5b50\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528 synchronized \u5173\u952e\u5b57\u6765\u6807\u8bb0 increment \u548c getCount \u65b9\u6cd5\uff0c\u4f7f\u5b83\u4eec\u6210\u4e3a\u540c\u6b65\u65b9\u6cd5\u3002\u8fd9\u610f\u5473\u7740\u540c\u4e00\u65f6\u523b\u53ea\u6709\u4e00\u4e2a\u7ebf\u7a0b\u53ef\u4ee5\u8bbf\u95ee\u8fd9\u4e24\u4e2a\u65b9\u6cd5\uff0c\u4ece\u800c\u786e\u4fdd\u4e86\u7ebf\u7a0b\u5b89\u5168\u6027\u3002"),(0,a.yg)("p",null,"\u4e92\u65a5\u9501\u548c\u91cd\u5165\u9501\u4e4b\u95f4\u7684\u4e3b\u8981\u533a\u522b\u5728\u4e8e\u7075\u6d3b\u6027\u548c\u63a7\u5236\u3002\u4f7f\u7528 synchronized \u5173\u952e\u5b57\u66f4\u7b80\u5355\uff0c\u4f46\u76f8\u5bf9\u4e0d\u591f\u7075\u6d3b\uff0c\u56e0\u4e3a\u5b83\u9690\u5f0f\u5730\u7ba1\u7406\u9501\u3002\u91cd\u5165\u9501\u5219\u9700\u8981\u66f4\u663e\u5f0f\u7684\u9501\u5b9a\u548c\u89e3\u9501\u64cd\u4f5c\uff0c\u4f46\u63d0\u4f9b\u4e86\u66f4\u591a\u7684\u63a7\u5236\u9009\u9879\u3002"),(0,a.yg)("h3",{id:"\u8bfb\u5199\u9501readwrite-lock"},"\u8bfb\u5199\u9501\uff08ReadWrite Lock\uff09"),(0,a.yg)("p",null,"\u8bfb\u5199\u9501\u662f\u4e00\u79cd\u7279\u6b8a\u7c7b\u578b\u7684\u9501\uff0c\u5b83\u5728\u67d0\u4e9b\u573a\u666f\u4e0b\u53ef\u4ee5\u63d0\u9ad8\u591a\u7ebf\u7a0b\u7a0b\u5e8f\u7684\u6027\u80fd\u3002\u8bfb\u5199\u9501\u5141\u8bb8\u591a\u4e2a\u7ebf\u7a0b\u540c\u65f6\u8bfb\u53d6\u5171\u4eab\u8d44\u6e90\uff0c\u4f46\u53ea\u5141\u8bb8\u4e00\u4e2a\u7ebf\u7a0b\u5199\u5165\u5171\u4eab\u8d44\u6e90\u3002\u8fd9\u79cd\u673a\u5236\u5bf9\u4e8e\u8bfb\u64cd\u4f5c\u8fdc\u8fdc\u591a\u4e8e\u5199\u64cd\u4f5c\u7684\u60c5\u51b5\u975e\u5e38\u6709\u6548\uff0c\u56e0\u4e3a\u5b83\u53ef\u4ee5\u63d0\u9ad8\u8bfb\u64cd\u4f5c\u7684\u5e76\u53d1\u6027\u3002\u8ba9\u6211\u4eec\u770b\u4e00\u4e2a\u793a\u4f8b\uff0c\u6f14\u793a\u5982\u4f55\u4f7f\u7528 ReadWriteLock \u63a5\u53e3\u53ca\u5176\u5b9e\u73b0\u6765\u7ba1\u7406\u8d44\u6e90\u7684\u8bfb\u5199\u8bbf\u95ee\uff1a"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-Java"},"import java.util.concurrent.locks.ReadWriteLock;\nimport java.util.concurrent.locks.ReentrantReadWriteLock;\n\npublic class SharedResource {\n private int data = 0;\n private final ReadWriteLock lock = new ReentrantReadWriteLock();\n\n public int readData() {\n lock.readLock().lock(); // \u83b7\u53d6\u8bfb\u9501\n try {\n return data;\n } finally {\n lock.readLock().unlock(); // \u91ca\u653e\u8bfb\u9501\n }\n }\n\n public void writeData(int newValue) {\n lock.writeLock().lock(); // \u83b7\u53d6\u5199\u9501\n try {\n data = newValue;\n } finally {\n lock.writeLock().unlock(); // \u91ca\u653e\u5199\u9501\n }\n }\n}\n")),(0,a.yg)("p",null,"\u5728\u4e0a\u9762\u7684\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528 ReentrantReadWriteLock \u5b9e\u73b0\u4e86\u4e00\u4e2a\u7b80\u5355\u7684\u5171\u4eab\u8d44\u6e90\u7ba1\u7406\u7c7b\u3002readData \u65b9\u6cd5\u4f7f\u7528\u8bfb\u9501\u6765\u5141\u8bb8\u591a\u4e2a\u7ebf\u7a0b\u5e76\u53d1\u8bfb\u53d6 data \u7684\u503c\uff0c\u800c writeData \u65b9\u6cd5\u4f7f\u7528\u5199\u9501\u6765\u786e\u4fdd\u53ea\u6709\u4e00\u4e2a\u7ebf\u7a0b\u53ef\u4ee5\u4fee\u6539 data \u7684\u503c\u3002\u8fd9\u79cd\u65b9\u5f0f\u53ef\u4ee5\u63d0\u9ad8\u8bfb\u64cd\u4f5c\u7684\u5e76\u53d1\u6027\uff0c\u4ece\u800c\u63d0\u9ad8\u6027\u80fd\u3002"),(0,a.yg)("h3",{id:"\u81ea\u65cb\u9501spin-lock"},"\u81ea\u65cb\u9501\uff08Spin Lock\uff09"),(0,a.yg)("p",null,"\u81ea\u65cb\u9501\u662f\u4e00\u79cd\u9501\u5b9a\u673a\u5236\uff0c\u4e0d\u4f1a\u8ba9\u7ebf\u7a0b\u8fdb\u5165\u4f11\u7720\u72b6\u6001\uff0c\u800c\u662f\u4f1a\u53cd\u590d\u68c0\u67e5\u9501\u662f\u5426\u53ef\u7528\u3002\u8fd9\u79cd\u9501\u9002\u7528\u4e8e\u90a3\u4e9b\u671f\u671b\u9501\u88ab\u6301\u6709\u65f6\u95f4\u975e\u5e38\u77ed\u6682\u7684\u60c5\u51b5\uff0c\u56e0\u4e3a\u5b83\u907f\u514d\u4e86\u7ebf\u7a0b\u8fdb\u5165\u548c\u9000\u51fa\u4f11\u7720\u72b6\u6001\u7684\u5f00\u9500\u3002\u81ea\u65cb\u9501\u901a\u5e38\u5728\u5355\u6838\u6216\u4f4e\u5e76\u53d1\u60c5\u51b5\u4e0b\u66f4\u4e3a\u6709\u6548\uff0c\u56e0\u4e3a\u5728\u9ad8\u5e76\u53d1\u60c5\u51b5\u4e0b\u4f1a\u5bfc\u81f4 CPU \u8d44\u6e90\u7684\u6d6a\u8d39\u3002\u4ee5\u4e0b\u662f\u4e00\u4e2a\u7b80\u5355\u7684\u81ea\u65cb\u9501\u793a\u4f8b\uff1a"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-Java"},"import java.util.concurrent.atomic.AtomicBoolean;\n\npublic class SpinLock {\n private AtomicBoolean locked = new AtomicBoolean(false);\n\n public void lock() {\n while (!locked.compareAndSet(false, true)) {\n // \u81ea\u65cb\u7b49\u5f85\u9501\u7684\u91ca\u653e\n }\n }\n\n public void unlock() {\n locked.set(false);\n }\n}\n")),(0,a.yg)("p",null,"\u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528\u4e86 AtomicBoolean \u6765\u5b9e\u73b0\u81ea\u65cb\u9501\u3002lock \u65b9\u6cd5\u4f7f\u7528\u81ea\u65cb\u7b49\u5f85\u9501\u7684\u91ca\u653e\uff0c\u76f4\u5230\u6210\u529f\u83b7\u53d6\u9501\u3002unlock \u65b9\u6cd5\u7528\u4e8e\u91ca\u653e\u9501\u3002\u81ea\u65cb\u9501\u7684\u6027\u80fd\u548c\u9002\u7528\u6027\u53d6\u51b3\u4e8e\u5177\u4f53\u7684\u5e94\u7528\u573a\u666f\uff0c\u56e0\u6b64\u5728\u9009\u62e9\u9501\u7684\u7c7b\u578b\u65f6\u9700\u8981\u8c28\u614e\u8003\u8651\u3002"),(0,a.yg)("h3",{id:"\u9501\u7684\u6027\u80fd\u548c\u53ef\u4f38\u7f29\u6027"},"\u9501\u7684\u6027\u80fd\u548c\u53ef\u4f38\u7f29\u6027"),(0,a.yg)("p",null,"\u9009\u62e9\u9002\u5f53\u7c7b\u578b\u7684\u9501\u4ee5\u6ee1\u8db3\u6027\u80fd\u9700\u6c42\u662f\u591a\u7ebf\u7a0b\u7f16\u7a0b\u7684\u91cd\u8981\u65b9\u9762\u3002\u4e0d\u540c\u7c7b\u578b\u7684\u9501\u5728\u6027\u80fd\u548c\u53ef\u4f38\u7f29\u6027\u65b9\u9762\u5177\u6709\u4e0d\u540c\u7684\u7279\u70b9\u3002\u5728\u67d0\u4e9b\u60c5\u51b5\u4e0b\uff0c\u4f7f\u7528\u8fc7\u591a\u7684\u9501\u53ef\u80fd\u5bfc\u81f4\u6027\u80fd\u4e0b\u964d\uff0c\u800c\u5728\u5176\u4ed6\u60c5\u51b5\u4e0b\uff0c\u9009\u62e9\u9519\u8bef\u7684\u9501\u7c7b\u578b\u53ef\u80fd\u4f1a\u5bfc\u81f4\u7ade\u4e89\u548c\u74f6\u9888\u3002"),(0,a.yg)("p",null,"\u6027\u80fd\u6d4b\u8bd5\u548c\u6bd4\u8f83\u662f\u8bc4\u4f30\u9501\u6027\u80fd\u7684\u5173\u952e\u6b65\u9aa4\u3002\u901a\u8fc7\u5bf9\u4e0d\u540c\u9501\u7c7b\u578b\u7684\u6027\u80fd\u8fdb\u884c\u57fa\u51c6\u6d4b\u8bd5\uff0c\u5f00\u53d1\u4eba\u5458\u53ef\u4ee5\u66f4\u597d\u5730\u4e86\u89e3\u5b83\u4eec\u5728\u7279\u5b9a\u60c5\u51b5\u4e0b\u7684\u8868\u73b0\u3002\u6b64\u5916\uff0c\u6027\u80fd\u6d4b\u8bd5\u8fd8\u53ef\u4ee5\u5e2e\u52a9\u786e\u5b9a\u662f\u5426\u9700\u8981\u8c03\u6574\u9501\u7684\u914d\u7f6e\uff0c\u5982\u5e76\u53d1\u7ea7\u522b\u6216\u7b49\u5f85\u7b56\u7565\u3002"),(0,a.yg)("p",null,"\u9664\u4e86\u6027\u80fd\u5916\uff0c\u53ef\u4f38\u7f29\u6027\u4e5f\u662f\u4e00\u4e2a\u5173\u952e\u8003\u8651\u56e0\u7d20\u3002\u53ef\u4f38\u7f29\u6027\u6307\u7684\u662f\u5728\u589e\u52a0\u6838\u5fc3\u6570\u6216\u7ebf\u7a0b\u6570\u65f6\uff0c\u7cfb\u7edf\u7684\u6027\u80fd\u662f\u5426\u80fd\u591f\u7ebf\u6027\u63d0\u9ad8\u3002\u67d0\u4e9b\u9501\u7c7b\u578b\u5728\u9ad8\u5ea6\u5e76\u53d1\u7684\u60c5\u51b5\u4e0b\u53ef\u80fd\u4f1a\u4ea7\u751f\u4e89\u7528\uff0c\u4ece\u800c\u964d\u4f4e\u53ef\u4f38\u7f29\u6027\u3002"),(0,a.yg)("p",null,"\u56e0\u6b64\uff0c\u5728\u9009\u62e9\u9501\u65f6\uff0c\u9700\u8981\u6839\u636e\u5e94\u7528\u7a0b\u5e8f\u7684\u6027\u80fd\u9700\u6c42\u548c\u5e76\u53d1\u8d1f\u8f7d\u6765\u6743\u8861\u6027\u80fd\u548c\u53ef\u4f38\u7f29\u6027\u3002\u4e00\u4e9b\u5e38\u89c1\u7684\u9501\u4f18\u5316\u7b56\u7565\u5305\u62ec\u8c03\u6574\u5e76\u53d1\u7ea7\u522b\u3001\u9009\u62e9\u5408\u9002\u7684\u7b49\u5f85\u7b56\u7565\u4ee5\u53ca\u4f7f\u7528\u5206\u79bb\u9501\u6765\u51cf\u5c0f\u7ade\u4e89\u8303\u56f4\u3002"),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://www.zhihu.com/question/550510128/answer/3227011144"},"\u77e5\u4e4e-Java \u591a\u7ebf\u7a0b\u9501"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f5515f41.768d4f24.js b/assets/js/f5515f41.b8097466.js similarity index 98% rename from assets/js/f5515f41.768d4f24.js rename to assets/js/f5515f41.b8097466.js index 05b35314e..b45cc0755 100644 --- a/assets/js/f5515f41.768d4f24.js +++ b/assets/js/f5515f41.b8097466.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3034],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},s=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),u=p(r),d=o,f=u["".concat(l,".").concat(d)]||u[d]||y[d]||a;return r?n.createElement(f,c(c({ref:t},s),{},{components:r})):n.createElement(f,c({ref:t},s))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[u]="string"==typeof e?e:o,c[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>y,frontMatter:()=>a,metadata:()=>i,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,i={unversionedId:"study/db/OLAP/Kylin",id:"study/db/OLAP/Kylin",title:"Kylin",description:"Apache Kylin\u2122\u662f\u4e00\u4e2a\u5f00\u6e90\u7684\u3001\u5206\u5e03\u5f0f\u7684\u5206\u6790\u578b\u6570\u636e\u4ed3\u5e93\uff0c\u63d0\u4f9bHadoop/Spark \u4e4b\u4e0a\u7684 SQL \u67e5\u8be2\u63a5\u53e3\u53ca\u591a\u7ef4\u5206\u6790\uff08OLAP\uff09\u80fd\u529b\u4ee5\u652f\u6301\u8d85\u5927\u89c4\u6a21\u6570\u636e\uff0c\u6700\u521d\u7531 eBay \u5f00\u53d1\u5e76\u8d21\u732e\u81f3\u5f00\u6e90\u793e\u533a\u3002\u5b83\u80fd\u5728\u4e9a\u79d2\u5185\u67e5\u8be2\u5de8\u5927\u7684\u8868\u3002",source:"@site/docs/study/db/OLAP/Kylin.md",sourceDirName:"study/db/OLAP",slug:"/study/db/OLAP/Kylin",permalink:"/docs/study/db/OLAP/Kylin",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"ClickHouse",permalink:"/docs/study/db/OLAP/ClickHouse"},next:{title:"StarRocks",permalink:"/docs/study/db/OLAP/StarRocks"}},l={},p=[],s={toc:p},u="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"Apache Kylin\u2122\u662f\u4e00\u4e2a\u5f00\u6e90\u7684\u3001\u5206\u5e03\u5f0f\u7684\u5206\u6790\u578b\u6570\u636e\u4ed3\u5e93\uff0c\u63d0\u4f9bHadoop/Spark \u4e4b\u4e0a\u7684 SQL \u67e5\u8be2\u63a5\u53e3\u53ca\u591a\u7ef4\u5206\u6790\uff08OLAP\uff09\u80fd\u529b\u4ee5\u652f\u6301\u8d85\u5927\u89c4\u6a21\u6570\u636e\uff0c\u6700\u521d\u7531 eBay \u5f00\u53d1\u5e76\u8d21\u732e\u81f3\u5f00\u6e90\u793e\u533a\u3002\u5b83\u80fd\u5728\u4e9a\u79d2\u5185\u67e5\u8be2\u5de8\u5927\u7684\u8868\u3002"),(0,o.yg)("p",null,(0,o.yg)("a",{parentName:"p",href:"https://kylin.apache.org/cn/"},"\u5b98\u7f51")))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3034],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},s=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),u=p(r),d=o,f=u["".concat(l,".").concat(d)]||u[d]||y[d]||a;return r?n.createElement(f,c(c({ref:t},s),{},{components:r})):n.createElement(f,c({ref:t},s))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[u]="string"==typeof e?e:o,c[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>y,frontMatter:()=>a,metadata:()=>i,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,i={unversionedId:"study/db/OLAP/Kylin",id:"study/db/OLAP/Kylin",title:"Kylin",description:"Apache Kylin\u2122\u662f\u4e00\u4e2a\u5f00\u6e90\u7684\u3001\u5206\u5e03\u5f0f\u7684\u5206\u6790\u578b\u6570\u636e\u4ed3\u5e93\uff0c\u63d0\u4f9bHadoop/Spark \u4e4b\u4e0a\u7684 SQL \u67e5\u8be2\u63a5\u53e3\u53ca\u591a\u7ef4\u5206\u6790\uff08OLAP\uff09\u80fd\u529b\u4ee5\u652f\u6301\u8d85\u5927\u89c4\u6a21\u6570\u636e\uff0c\u6700\u521d\u7531 eBay \u5f00\u53d1\u5e76\u8d21\u732e\u81f3\u5f00\u6e90\u793e\u533a\u3002\u5b83\u80fd\u5728\u4e9a\u79d2\u5185\u67e5\u8be2\u5de8\u5927\u7684\u8868\u3002",source:"@site/docs/study/db/OLAP/Kylin.md",sourceDirName:"study/db/OLAP",slug:"/study/db/OLAP/Kylin",permalink:"/docs/study/db/OLAP/Kylin",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"ClickHouse",permalink:"/docs/study/db/OLAP/ClickHouse"},next:{title:"StarRocks",permalink:"/docs/study/db/OLAP/StarRocks"}},l={},p=[],s={toc:p},u="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"Apache Kylin\u2122\u662f\u4e00\u4e2a\u5f00\u6e90\u7684\u3001\u5206\u5e03\u5f0f\u7684\u5206\u6790\u578b\u6570\u636e\u4ed3\u5e93\uff0c\u63d0\u4f9bHadoop/Spark \u4e4b\u4e0a\u7684 SQL \u67e5\u8be2\u63a5\u53e3\u53ca\u591a\u7ef4\u5206\u6790\uff08OLAP\uff09\u80fd\u529b\u4ee5\u652f\u6301\u8d85\u5927\u89c4\u6a21\u6570\u636e\uff0c\u6700\u521d\u7531 eBay \u5f00\u53d1\u5e76\u8d21\u732e\u81f3\u5f00\u6e90\u793e\u533a\u3002\u5b83\u80fd\u5728\u4e9a\u79d2\u5185\u67e5\u8be2\u5de8\u5927\u7684\u8868\u3002"),(0,o.yg)("p",null,(0,o.yg)("a",{parentName:"p",href:"https://kylin.apache.org/cn/"},"\u5b98\u7f51")))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f6ece308.a482f197.js b/assets/js/f6ece308.76a8675c.js similarity index 98% rename from assets/js/f6ece308.a482f197.js rename to assets/js/f6ece308.76a8675c.js index b6cb59a33..f31ea0b77 100644 --- a/assets/js/f6ece308.a482f197.js +++ b/assets/js/f6ece308.76a8675c.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8391],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),s=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=s(e.components);return n.createElement(c.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=s(r),y=o,f=u["".concat(c,".").concat(y)]||u[y]||d[y]||a;return r?n.createElement(f,i(i({ref:t},p),{},{components:r})):n.createElement(f,i({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=y;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[u]="string"==typeof e?e:o,i[1]=l;for(var s=2;s{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>l,toc:()=>s});var n=r(8168),o=(r(6540),r(5680));const a={sidebar_position:1},i=void 0,l={unversionedId:"study/db/OLAP/\u7efc\u5408\u6982\u8ff0",id:"study/db/OLAP/\u7efc\u5408\u6982\u8ff0",title:"\u7efc\u5408\u6982\u8ff0",description:"1. OLAP\u4e0eOLTP\u7684\u533a\u522b\uff1f",source:"@site/docs/study/db/OLAP/\u7efc\u5408\u6982\u8ff0.md",sourceDirName:"study/db/OLAP",slug:"/study/db/OLAP/\u7efc\u5408\u6982\u8ff0",permalink:"/docs/study/db/OLAP/\u7efc\u5408\u6982\u8ff0",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"Redis",permalink:"/docs/study/db/NoSQL/Redis"},next:{title:"ClickHouse",permalink:"/docs/study/db/OLAP/ClickHouse"}},c={},s=[{value:"1. OLAP\u4e0eOLTP\u7684\u533a\u522b\uff1f",id:"1-olap\u4e0eoltp\u7684\u533a\u522b",level:4},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:4}],p={toc:s},u="wrapper";function d(e){let{components:t,...a}=e;return(0,o.yg)(u,(0,n.A)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h4",{id:"1-olap\u4e0eoltp\u7684\u533a\u522b"},"1. OLAP\u4e0eOLTP\u7684\u533a\u522b\uff1f"),(0,o.yg)("p",null,"OLTP(Online transaction processing):\u5728\u7ebf/\u8054\u673a\u4e8b\u52a1\u5904\u7406\u3002\u5178\u578b\u7684OLTP\u7c7b\u64cd\u4f5c\u90fd\u6bd4\u8f83\u7b80\u5355\uff0c\u4e3b\u8981\u662f\u5bf9\u6570\u636e\u5e93\u4e2d\u7684\u6570\u636e\u8fdb\u884c\u589e\u5220\u6539\u67e5\uff0c\u64cd\u4f5c\u4e3b\u4f53\u4e00\u822c\u662f\u4ea7\u54c1\u7684\u7528\u6237\u3002"),(0,o.yg)("p",null,"OLAP(Online analytical processing):\u6307\u8054\u673a\u5206\u6790\u5904\u7406\u3002\u901a\u8fc7\u5206\u6790\u6570\u636e\u5e93\u4e2d\u7684\u6570\u636e\u6765\u5f97\u51fa\u4e00\u4e9b\u7ed3\u8bba\u6027\u7684\u4e1c\u897f\u3002\u6bd4\u5982\u7ed9\u8001\u603b\u4eec\u770b\u7684\u62a5\u8868\uff0c\u7528\u4e8e\u8fdb\u884c\u5e02\u573a\u5f00\u62d3\u7684\u7528\u6237\u884c\u4e3a\u7edf\u8ba1\uff0c\u4e0d\u540c\u7ef4\u5ea6\u7684\u6c47\u603b\u5206\u6790\u7ed3\u679c\u7b49\u7b49\u3002\u64cd\u4f5c\u4e3b\u4f53\u4e00\u822c\u662f\u8fd0\u8425\u3001\u9500\u552e\u548c\u5e02\u573a\u7b49\u56e2\u961f\u4eba\u5458\u3002"),(0,o.yg)("p",null,"\u5355\u6b21OLTP\u5904\u7406\u7684\u6570\u636e\u91cf\u6bd4\u8f83\u5c0f\uff0c\u6240\u6d89\u53ca\u7684\u8868\u975e\u5e38\u6709\u9650\uff0c\u4e00\u822c\u4ec5\u4e00\u4e24\u5f20\u8868\u3002\u800cOLAP\u662f\u4e3a\u4e86\u4ece\u5927\u91cf\u7684\u6570\u636e\u4e2d\u627e\u51fa\u67d0\u79cd\u89c4\u5f8b\u6027\u7684\u4e1c\u897f\uff0c\u7ecf\u5e38\u7528\u5230count()\u3001sum()\u548cavg()\u7b49\u805a\u5408\u65b9\u6cd5\uff0c\u7528\u4e8e\u4e86\u89e3\u73b0\u72b6\u5e76\u4e3a\u5c06\u6765\u7684\u8ba1\u5212/\u51b3\u7b56\u63d0\u4f9b\u6570\u636e\u652f\u6491\uff0c\u6240\u4ee5\u5bf9\u591a\u5f20\u8868\u7684\u6570\u636e\u8fdb\u884c\u8fde\u63a5\u6c47\u603b\u975e\u5e38\u666e\u904d\u3002"),(0,o.yg)("p",null,"\u4e3a\u4e86\u8868\u793a\u8ddfOLTP\u7684\u6570\u636e\u5e93\uff08database\uff09\u5728\u6570\u636e\u91cf\u548c\u590d\u6742\u5ea6\u4e0a\u7684\u4e0d\u540c\uff0c\u4e00\u822c\u79f0OLAP\u7684\u64cd\u4f5c\u5bf9\u8c61\u4e3a\u6570\u636e\u4ed3\u5e93\uff08data warehouse\uff09\uff0c\u7b80\u79f0\u6570\u4ed3\u3002\u6570\u636e\u5e93\u4ed3\u5e93\u4e2d\u7684\u6570\u636e\uff0c\u5f80\u5f80\u6765\u6e90\u4e8e\u591a\u4e2a\u6570\u636e\u5e93\uff0c\u4ee5\u53ca\u76f8\u5e94\u7684\u4e1a\u52a1\u65e5\u5fd7\u3002"),(0,o.yg)("p",null,(0,o.yg)("img",{alt:"image.png",src:r(5978).A,width:"720",height:"504"})),(0,o.yg)("h4",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("a",{parentName:"li",href:"https://blog.csdn.net/weixin_44087159/article/details/124477313"},"OLAP\u4e0eOLTP\u7684\u533a\u522b"))))}d.isMDXComponent=!0},5978:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/image-9929ccd934ed6146e051f490f500d91a.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8391],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),s=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=s(e.components);return n.createElement(c.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=s(r),y=o,f=u["".concat(c,".").concat(y)]||u[y]||d[y]||a;return r?n.createElement(f,i(i({ref:t},p),{},{components:r})):n.createElement(f,i({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=y;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[u]="string"==typeof e?e:o,i[1]=l;for(var s=2;s{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>l,toc:()=>s});var n=r(8168),o=(r(6540),r(5680));const a={sidebar_position:1},i=void 0,l={unversionedId:"study/db/OLAP/\u7efc\u5408\u6982\u8ff0",id:"study/db/OLAP/\u7efc\u5408\u6982\u8ff0",title:"\u7efc\u5408\u6982\u8ff0",description:"1. OLAP\u4e0eOLTP\u7684\u533a\u522b\uff1f",source:"@site/docs/study/db/OLAP/\u7efc\u5408\u6982\u8ff0.md",sourceDirName:"study/db/OLAP",slug:"/study/db/OLAP/\u7efc\u5408\u6982\u8ff0",permalink:"/docs/study/db/OLAP/\u7efc\u5408\u6982\u8ff0",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"Redis",permalink:"/docs/study/db/NoSQL/Redis"},next:{title:"ClickHouse",permalink:"/docs/study/db/OLAP/ClickHouse"}},c={},s=[{value:"1. OLAP\u4e0eOLTP\u7684\u533a\u522b\uff1f",id:"1-olap\u4e0eoltp\u7684\u533a\u522b",level:4},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:4}],p={toc:s},u="wrapper";function d(e){let{components:t,...a}=e;return(0,o.yg)(u,(0,n.A)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h4",{id:"1-olap\u4e0eoltp\u7684\u533a\u522b"},"1. OLAP\u4e0eOLTP\u7684\u533a\u522b\uff1f"),(0,o.yg)("p",null,"OLTP(Online transaction processing):\u5728\u7ebf/\u8054\u673a\u4e8b\u52a1\u5904\u7406\u3002\u5178\u578b\u7684OLTP\u7c7b\u64cd\u4f5c\u90fd\u6bd4\u8f83\u7b80\u5355\uff0c\u4e3b\u8981\u662f\u5bf9\u6570\u636e\u5e93\u4e2d\u7684\u6570\u636e\u8fdb\u884c\u589e\u5220\u6539\u67e5\uff0c\u64cd\u4f5c\u4e3b\u4f53\u4e00\u822c\u662f\u4ea7\u54c1\u7684\u7528\u6237\u3002"),(0,o.yg)("p",null,"OLAP(Online analytical processing):\u6307\u8054\u673a\u5206\u6790\u5904\u7406\u3002\u901a\u8fc7\u5206\u6790\u6570\u636e\u5e93\u4e2d\u7684\u6570\u636e\u6765\u5f97\u51fa\u4e00\u4e9b\u7ed3\u8bba\u6027\u7684\u4e1c\u897f\u3002\u6bd4\u5982\u7ed9\u8001\u603b\u4eec\u770b\u7684\u62a5\u8868\uff0c\u7528\u4e8e\u8fdb\u884c\u5e02\u573a\u5f00\u62d3\u7684\u7528\u6237\u884c\u4e3a\u7edf\u8ba1\uff0c\u4e0d\u540c\u7ef4\u5ea6\u7684\u6c47\u603b\u5206\u6790\u7ed3\u679c\u7b49\u7b49\u3002\u64cd\u4f5c\u4e3b\u4f53\u4e00\u822c\u662f\u8fd0\u8425\u3001\u9500\u552e\u548c\u5e02\u573a\u7b49\u56e2\u961f\u4eba\u5458\u3002"),(0,o.yg)("p",null,"\u5355\u6b21OLTP\u5904\u7406\u7684\u6570\u636e\u91cf\u6bd4\u8f83\u5c0f\uff0c\u6240\u6d89\u53ca\u7684\u8868\u975e\u5e38\u6709\u9650\uff0c\u4e00\u822c\u4ec5\u4e00\u4e24\u5f20\u8868\u3002\u800cOLAP\u662f\u4e3a\u4e86\u4ece\u5927\u91cf\u7684\u6570\u636e\u4e2d\u627e\u51fa\u67d0\u79cd\u89c4\u5f8b\u6027\u7684\u4e1c\u897f\uff0c\u7ecf\u5e38\u7528\u5230count()\u3001sum()\u548cavg()\u7b49\u805a\u5408\u65b9\u6cd5\uff0c\u7528\u4e8e\u4e86\u89e3\u73b0\u72b6\u5e76\u4e3a\u5c06\u6765\u7684\u8ba1\u5212/\u51b3\u7b56\u63d0\u4f9b\u6570\u636e\u652f\u6491\uff0c\u6240\u4ee5\u5bf9\u591a\u5f20\u8868\u7684\u6570\u636e\u8fdb\u884c\u8fde\u63a5\u6c47\u603b\u975e\u5e38\u666e\u904d\u3002"),(0,o.yg)("p",null,"\u4e3a\u4e86\u8868\u793a\u8ddfOLTP\u7684\u6570\u636e\u5e93\uff08database\uff09\u5728\u6570\u636e\u91cf\u548c\u590d\u6742\u5ea6\u4e0a\u7684\u4e0d\u540c\uff0c\u4e00\u822c\u79f0OLAP\u7684\u64cd\u4f5c\u5bf9\u8c61\u4e3a\u6570\u636e\u4ed3\u5e93\uff08data warehouse\uff09\uff0c\u7b80\u79f0\u6570\u4ed3\u3002\u6570\u636e\u5e93\u4ed3\u5e93\u4e2d\u7684\u6570\u636e\uff0c\u5f80\u5f80\u6765\u6e90\u4e8e\u591a\u4e2a\u6570\u636e\u5e93\uff0c\u4ee5\u53ca\u76f8\u5e94\u7684\u4e1a\u52a1\u65e5\u5fd7\u3002"),(0,o.yg)("p",null,(0,o.yg)("img",{alt:"image.png",src:r(5978).A,width:"720",height:"504"})),(0,o.yg)("h4",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("a",{parentName:"li",href:"https://blog.csdn.net/weixin_44087159/article/details/124477313"},"OLAP\u4e0eOLTP\u7684\u533a\u522b"))))}d.isMDXComponent=!0},5978:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/image-9929ccd934ed6146e051f490f500d91a.png"}}]); \ No newline at end of file diff --git a/assets/js/f702ddaf.255ba422.js b/assets/js/f702ddaf.dc81f34f.js similarity index 99% rename from assets/js/f702ddaf.255ba422.js rename to assets/js/f702ddaf.dc81f34f.js index 0fe897404..761f3e3a3 100644 --- a/assets/js/f702ddaf.255ba422.js +++ b/assets/js/f702ddaf.dc81f34f.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9033],{5680:(e,r,t)=>{t.d(r,{xA:()=>u,yg:()=>y});var n=t(6540);function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function i(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function o(e){for(var r=1;r=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var l=n.createContext({}),c=function(e){var r=n.useContext(l),t=r;return e&&(t="function"==typeof e?e(r):o(o({},r),e)),t},u=function(e){var r=c(e.components);return n.createElement(l.Provider,{value:r},e.children)},s="mdxType",O={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},g=n.forwardRef((function(e,r){var t=e.components,a=e.mdxType,i=e.originalType,l=e.parentName,u=p(e,["components","mdxType","originalType","parentName"]),s=c(t),g=a,y=s["".concat(l,".").concat(g)]||s[g]||O[g]||i;return t?n.createElement(y,o(o({ref:r},u),{},{components:t})):n.createElement(y,o({ref:r},u))}));function y(e,r){var t=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var i=t.length,o=new Array(i);o[0]=g;var p={};for(var l in r)hasOwnProperty.call(r,l)&&(p[l]=r[l]);p.originalType=e,p[s]="string"==typeof e?e:a,o[1]=p;for(var c=2;c{t.r(r),t.d(r,{assets:()=>l,contentTitle:()=>o,default:()=>O,frontMatter:()=>i,metadata:()=>p,toc:()=>c});var n=t(8168),a=(t(6540),t(5680));const i={},o="Spring AOP",p={unversionedId:"study/back/spring/SpringAOP",id:"study/back/spring/SpringAOP",title:"Spring AOP",description:"\u7b80\u4ecb",source:"@site/docs/study/back/spring/SpringAOP.md",sourceDirName:"study/back/spring",slug:"/study/back/spring/SpringAOP",permalink:"/docs/study/back/spring/SpringAOP",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"@Resource@Autowired",permalink:"/docs/study/back/spring/@Resource@Autowired"},next:{title:"Spring Boot",permalink:"/docs/study/back/spring/SpringBoot"}},l={},c=[{value:"\u7b80\u4ecb",id:"\u7b80\u4ecb",level:3},{value:"AOP \u7684\u5b58\u5728\u4ef7\u503c",id:"aop-\u7684\u5b58\u5728\u4ef7\u503c",level:3},{value:"AOP \u7684\u5206\u7c7b",id:"aop-\u7684\u5206\u7c7b",level:3},{value:"\u603b\u7ed3",id:"\u603b\u7ed3",level:3}],u={toc:c},s="wrapper";function O(e){let{components:r,...t}=e;return(0,a.yg)(s,(0,n.A)({},u,t,{components:r,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"spring-aop"},"Spring AOP"),(0,a.yg)("h3",{id:"\u7b80\u4ecb"},"\u7b80\u4ecb"),(0,a.yg)("p",null,"AOP\uff08Aspect-Oriented Programming\uff0c\u9762\u5411\u5207\u9762\u7f16\u7a0b\uff09\u662f\u4e00\u79cd\u7f16\u7a0b\u8303\u5f0f\uff0c\u65e8\u5728\u5c06\u5e94\u7528\u7a0b\u5e8f\u4e2d\u7684\u5404\u79cd\u529f\u80fd\u5206\u79bb\u51fa\u6765\uff0c\u4ee5\u63d0\u9ad8\u4ee3\u7801\u7684\u53ef\u91cd\u7528\u6027\u548c\u53ef\u7ef4\u62a4\u6027\u3002AOP \u901a\u8fc7\u5c06\u4ea4\u53c9\u4e1a\u52a1\u903b\u8f91\u5c01\u88c5\u5230\u5207\u9762\u4e2d\uff0c\u53ef\u4ee5\u5728\u4e0d\u4fee\u6539\u539f\u6709\u4ee3\u7801\u7684\u60c5\u51b5\u4e0b\u5bf9\u5176\u8fdb\u884c\u6269\u5c55\u548c\u7ef4\u62a4\u3002"),(0,a.yg)("h3",{id:"aop-\u7684\u5b58\u5728\u4ef7\u503c"},"AOP \u7684\u5b58\u5728\u4ef7\u503c"),(0,a.yg)("p",null,"\u5728\u4f20\u7edf OOP \u7f16\u7a0b\u91cc\u4ee5\u5bf9\u8c61\u4e3a\u6838\u5fc3\uff0c\u6574\u4e2a\u8f6f\u4ef6\u7cfb\u7edf\u7531\u7cfb\u5217\u76f8\u4e92\u4f9d\u8d56\u7684\u5bf9\u8c61\u6240\u7ec4\u6210\uff0c\u800c\u8fd9\u4e9b\u5bf9\u8c61\u5c06\u88ab\u62bd\u8c61\u6210\u4e00\u4e2a\u4e00\u4e2a\u7684\u7c7b\uff0c\u5e76\u5141\u8bb8\u4f7f\u7528\u7c7b\u7ee7\u627f\u6765\u7ba1\u7406\u7c7b\u4e0e\u7c7b\u4e4b\u95f4\u4e00\u822c\u5230\u7279\u6b8a\u7684\u5173\u7cfb\u3002\u968f\u7740\u8f6f\u4ef6\u89c4\u6a21\u7684\u589e\u5927\uff0c\u5e94\u7528\u7684\u9010\u6e10\u5347\u7ea7\uff0c\u6162\u6162\u51fa\u73b0\u4e86\u4e00\u4e9b OOP \u5f88\u96be\u89e3\u51b3\u7684\u95ee\u9898\u3002"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("strong",{parentName:"li"},"\u4ee3\u7801\u590d\u7528\u6027\u5dee"),"\uff1a\u7531\u4e8e\u9762\u5411\u5bf9\u8c61\u7684\u8bbe\u8ba1\u601d\u60f3\uff0c\u5bfc\u81f4\u4ee3\u7801\u590d\u7528\u6027\u5dee\u3002\u6bd4\u5982\uff0c\u5728\u4e24\u4e2a\u7c7b\u4e2d\uff0c\u6709\u5f88\u591a\u76f8\u4f3c\u7684\u4ee3\u7801\uff0c\u5982\u679c\u4f7f\u7528 OOP \u601d\u60f3\uff0c\u9700\u8981\u5c06\u76f8\u4f3c\u7684\u4ee3\u7801\u590d\u5236\u5230\u4e24\u4e2a\u7c7b\u4e2d\uff0c\u8fd9\u4f1a\u5bfc\u81f4\u4ee3\u7801\u7684\u91cd\u590d\u6027\u5f88\u9ad8\u3002"),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("strong",{parentName:"li"},"\u4ee3\u7801\u53ef\u7ef4\u62a4\u6027\u5dee"),"\uff1a\u7531\u4e8e OOP \u601d\u60f3\u5c06\u4ee3\u7801\u5c01\u88c5\u5230\u7c7b\u4e2d\uff0c\u5bfc\u81f4\u4ee3\u7801\u7684\u53ef\u7ef4\u62a4\u6027\u5dee\u3002\u5982\u679c\u9700\u8981\u4fee\u6539\u67d0\u4e2a\u529f\u80fd\uff0c\u9700\u8981\u4fee\u6539\u6574\u4e2a\u7c7b\u7684\u4ee3\u7801\uff0c\u8fd9\u4f1a\u5bfc\u81f4\u4ee3\u7801\u7684\u7ef4\u62a4\u6027\u5f88\u4f4e\u3002"),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("strong",{parentName:"li"},"\u4ee3\u7801\u53ef\u6269\u5c55\u6027\u5dee"),"\uff1a\u7531\u4e8e OOP \u601d\u60f3\u5c06\u4ee3\u7801\u5c01\u88c5\u5230\u7c7b\u4e2d\uff0c\u5bfc\u81f4\u4ee3\u7801\u7684\u53ef\u6269\u5c55\u6027\u5dee\u3002\u5982\u679c\u9700\u8981\u6dfb\u52a0\u4e00\u4e2a\u65b0\u7684\u529f\u80fd\uff0c\u9700\u8981\u4fee\u6539\u6574\u4e2a\u7c7b\u7684\u4ee3\u7801\uff0c\u8fd9\u4f1a\u5bfc\u81f4\u4ee3\u7801\u7684\u6269\u5c55\u6027\u5f88\u4f4e\u3002")),(0,a.yg)("p",null,"AOP \u5c31\u662f\u4e3a\u4e86\u89e3\u51b3\u8fd9\u4e9b\u95ee\u9898\u800c\u51fa\u73b0\u7684\u3002AOP \u53ef\u4ee5\u5c06\u4ea4\u53c9\u4e1a\u52a1\u903b\u8f91\u5c01\u88c5\u5230\u5207\u9762\u4e2d\uff0c\u5728\u8fd0\u884c\u65f6\u5c06\u5207\u9762\u4e0e\u4e1a\u52a1\u903b\u8f91\u7f16\u7ec7\u5728\u4e00\u8d77\uff0c\u4ece\u800c\u5b9e\u73b0\u4ee3\u7801\u7684\u590d\u7528\u3001\u53ef\u7ef4\u62a4\u6027\u548c\u53ef\u6269\u5c55\u6027\u3002"),(0,a.yg)("h3",{id:"aop-\u7684\u5206\u7c7b"},"AOP \u7684\u5206\u7c7b"),(0,a.yg)("p",null,"AOP \u5b9e\u73b0\u7684\u5173\u952e\u5c31\u5728\u4e8e AOP \u6846\u67b6\u81ea\u52a8\u521b\u5efa\u7684 AOP \u4ee3\u7406\uff0cAOP \u4ee3\u7406\u4e3b\u8981\u5206\u4e3a\u9759\u6001\u4ee3\u7406\u548c\u52a8\u6001\u4ee3\u7406\u4e24\u5927\u7c7b\uff0c\u9759\u6001\u4ee3\u7406\u4ee5 AspectJ \u4e3a\u4ee3\u8868\uff1b\u800c\u52a8\u6001\u4ee3\u7406\u5219\u4ee5 Spring AOP \u4e3a\u4ee3\u8868\u3002"),(0,a.yg)("p",null,"\u5176\u4e2d\u9759\u6001\u4ee3\u7406\u662f\u6307\u4f7f\u7528 AOP \u6846\u67b6\u63d0\u4f9b\u7684\u547d\u4ee4\u8fdb\u884c\u7f16\u8bd1\uff0c\u4ece\u800c\u5728\u7f16\u8bd1\u9636\u6bb5\u5c31\u53ef\u751f\u6210 AOP \u4ee3\u7406\u7c7b\uff0c\u56e0\u6b64\u4e5f\u79f0\u4e3a\u7f16\u8bd1\u65f6\u589e\u5f3a\uff1b\u800c\u52a8\u6001\u4ee3\u7406\u5219\u5728\u8fd0\u884c\u65f6\u501f\u52a9\u4e8e JDK \u52a8\u6001\u4ee3\u7406\u3001CGLIB \u7b49\u5728\u5185\u5b58\u4e2d\u201c\u4e34\u65f6\u201d\u751f\u6210 AOP \u52a8\u6001\u4ee3\u7406\u7c7b\uff0c\u56e0\u6b64\u4e5f\u88ab\u79f0\u4e3a\u8fd0\u884c\u65f6\u589e\u5f3a\u3002"),(0,a.yg)("p",null,"Spring AOP \u65e2\u652f\u6301\u9759\u6001\u4ee3\u7406\u4e5f\u652f\u6301\u52a8\u6001\u4ee3\u7406\u3002"),(0,a.yg)("h3",{id:"\u603b\u7ed3"},"\u603b\u7ed3"),(0,a.yg)("p",null,"AOP \u5e7f\u6cdb\u5e94\u7528\u4e8e\u5904\u7406\u4e00\u4e9b\u5177\u6709\u6a2a\u5207\u6027\u8d28\u7684\u7cfb\u7edf\u7ea7\u670d\u52a1\uff0cAOP \u7684\u51fa\u73b0\u662f\u5bf9 OOP \u7684\u826f\u597d\u8865\u5145\uff0c\u5b83\u4f7f\u5f97\u5f00\u53d1\u8005\u80fd\u7528\u66f4\u4f18\u96c5\u7684\u65b9\u5f0f\u5904\u7406\u5177\u6709\u6a2a\u5207\u6027\u8d28\u7684\u670d\u52a1\u3002\u4e0d\u7ba1\u662f\u90a3\u79cd AOP \u5b9e\u73b0\uff0c\u4e0d\u8bba\u662f AspectJ\u3001\u8fd8\u662f Spring AOP\uff0c\u5b83\u4eec\u90fd\u9700\u8981\u52a8\u6001\u5730\u751f\u6210\u4e00\u4e2a AOP \u4ee3\u7406\u7c7b\uff0c\u533a\u522b\u53ea\u662f\u751f\u6210 AOP \u4ee3\u7406\u7c7b\u7684\u65f6\u673a\u4e0d\u540c\uff1aAspectJ \u91c7\u7528\u7f16\u8bd1\u65f6\u751f\u6210 AOP \u4ee3\u7406\u7c7b\uff0c\u56e0\u6b64\u5177\u6709\u66f4\u597d\u7684\u6027\u80fd\uff0c\u4f46\u9700\u8981\u4f7f\u7528\u7279\u5b9a\u7684\u7f16\u8bd1\u5668\u8fdb\u884c\u5904\u7406\uff1b\u800c Spring AOP \u5219\u91c7\u7528\u8fd0\u884c\u65f6\u751f\u6210 AOP \u4ee3\u7406\u7c7b\uff0c\u56e0\u6b64\u65e0\u9700\u4f7f\u7528\u7279\u5b9a\u7f16\u8bd1\u5668\u8fdb\u884c\u5904\u7406\u3002\u7531\u4e8e Spring AOP \u9700\u8981\u5728\u6bcf\u6b21\u8fd0\u884c\u65f6\u751f\u6210 AOP \u4ee3\u7406\uff0c\u56e0\u6b64\u6027\u80fd\u7565\u5dee\u4e00\u4e9b\u3002"))}O.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9033],{5680:(e,r,t)=>{t.d(r,{xA:()=>u,yg:()=>y});var n=t(6540);function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function i(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function o(e){for(var r=1;r=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var l=n.createContext({}),c=function(e){var r=n.useContext(l),t=r;return e&&(t="function"==typeof e?e(r):o(o({},r),e)),t},u=function(e){var r=c(e.components);return n.createElement(l.Provider,{value:r},e.children)},s="mdxType",O={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},g=n.forwardRef((function(e,r){var t=e.components,a=e.mdxType,i=e.originalType,l=e.parentName,u=p(e,["components","mdxType","originalType","parentName"]),s=c(t),g=a,y=s["".concat(l,".").concat(g)]||s[g]||O[g]||i;return t?n.createElement(y,o(o({ref:r},u),{},{components:t})):n.createElement(y,o({ref:r},u))}));function y(e,r){var t=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var i=t.length,o=new Array(i);o[0]=g;var p={};for(var l in r)hasOwnProperty.call(r,l)&&(p[l]=r[l]);p.originalType=e,p[s]="string"==typeof e?e:a,o[1]=p;for(var c=2;c{t.r(r),t.d(r,{assets:()=>l,contentTitle:()=>o,default:()=>O,frontMatter:()=>i,metadata:()=>p,toc:()=>c});var n=t(8168),a=(t(6540),t(5680));const i={},o="Spring AOP",p={unversionedId:"study/back/spring/SpringAOP",id:"study/back/spring/SpringAOP",title:"Spring AOP",description:"\u7b80\u4ecb",source:"@site/docs/study/back/spring/SpringAOP.md",sourceDirName:"study/back/spring",slug:"/study/back/spring/SpringAOP",permalink:"/docs/study/back/spring/SpringAOP",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"@Resource@Autowired",permalink:"/docs/study/back/spring/@Resource@Autowired"},next:{title:"Spring Boot",permalink:"/docs/study/back/spring/SpringBoot"}},l={},c=[{value:"\u7b80\u4ecb",id:"\u7b80\u4ecb",level:3},{value:"AOP \u7684\u5b58\u5728\u4ef7\u503c",id:"aop-\u7684\u5b58\u5728\u4ef7\u503c",level:3},{value:"AOP \u7684\u5206\u7c7b",id:"aop-\u7684\u5206\u7c7b",level:3},{value:"\u603b\u7ed3",id:"\u603b\u7ed3",level:3}],u={toc:c},s="wrapper";function O(e){let{components:r,...t}=e;return(0,a.yg)(s,(0,n.A)({},u,t,{components:r,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"spring-aop"},"Spring AOP"),(0,a.yg)("h3",{id:"\u7b80\u4ecb"},"\u7b80\u4ecb"),(0,a.yg)("p",null,"AOP\uff08Aspect-Oriented Programming\uff0c\u9762\u5411\u5207\u9762\u7f16\u7a0b\uff09\u662f\u4e00\u79cd\u7f16\u7a0b\u8303\u5f0f\uff0c\u65e8\u5728\u5c06\u5e94\u7528\u7a0b\u5e8f\u4e2d\u7684\u5404\u79cd\u529f\u80fd\u5206\u79bb\u51fa\u6765\uff0c\u4ee5\u63d0\u9ad8\u4ee3\u7801\u7684\u53ef\u91cd\u7528\u6027\u548c\u53ef\u7ef4\u62a4\u6027\u3002AOP \u901a\u8fc7\u5c06\u4ea4\u53c9\u4e1a\u52a1\u903b\u8f91\u5c01\u88c5\u5230\u5207\u9762\u4e2d\uff0c\u53ef\u4ee5\u5728\u4e0d\u4fee\u6539\u539f\u6709\u4ee3\u7801\u7684\u60c5\u51b5\u4e0b\u5bf9\u5176\u8fdb\u884c\u6269\u5c55\u548c\u7ef4\u62a4\u3002"),(0,a.yg)("h3",{id:"aop-\u7684\u5b58\u5728\u4ef7\u503c"},"AOP \u7684\u5b58\u5728\u4ef7\u503c"),(0,a.yg)("p",null,"\u5728\u4f20\u7edf OOP \u7f16\u7a0b\u91cc\u4ee5\u5bf9\u8c61\u4e3a\u6838\u5fc3\uff0c\u6574\u4e2a\u8f6f\u4ef6\u7cfb\u7edf\u7531\u7cfb\u5217\u76f8\u4e92\u4f9d\u8d56\u7684\u5bf9\u8c61\u6240\u7ec4\u6210\uff0c\u800c\u8fd9\u4e9b\u5bf9\u8c61\u5c06\u88ab\u62bd\u8c61\u6210\u4e00\u4e2a\u4e00\u4e2a\u7684\u7c7b\uff0c\u5e76\u5141\u8bb8\u4f7f\u7528\u7c7b\u7ee7\u627f\u6765\u7ba1\u7406\u7c7b\u4e0e\u7c7b\u4e4b\u95f4\u4e00\u822c\u5230\u7279\u6b8a\u7684\u5173\u7cfb\u3002\u968f\u7740\u8f6f\u4ef6\u89c4\u6a21\u7684\u589e\u5927\uff0c\u5e94\u7528\u7684\u9010\u6e10\u5347\u7ea7\uff0c\u6162\u6162\u51fa\u73b0\u4e86\u4e00\u4e9b OOP \u5f88\u96be\u89e3\u51b3\u7684\u95ee\u9898\u3002"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("strong",{parentName:"li"},"\u4ee3\u7801\u590d\u7528\u6027\u5dee"),"\uff1a\u7531\u4e8e\u9762\u5411\u5bf9\u8c61\u7684\u8bbe\u8ba1\u601d\u60f3\uff0c\u5bfc\u81f4\u4ee3\u7801\u590d\u7528\u6027\u5dee\u3002\u6bd4\u5982\uff0c\u5728\u4e24\u4e2a\u7c7b\u4e2d\uff0c\u6709\u5f88\u591a\u76f8\u4f3c\u7684\u4ee3\u7801\uff0c\u5982\u679c\u4f7f\u7528 OOP \u601d\u60f3\uff0c\u9700\u8981\u5c06\u76f8\u4f3c\u7684\u4ee3\u7801\u590d\u5236\u5230\u4e24\u4e2a\u7c7b\u4e2d\uff0c\u8fd9\u4f1a\u5bfc\u81f4\u4ee3\u7801\u7684\u91cd\u590d\u6027\u5f88\u9ad8\u3002"),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("strong",{parentName:"li"},"\u4ee3\u7801\u53ef\u7ef4\u62a4\u6027\u5dee"),"\uff1a\u7531\u4e8e OOP \u601d\u60f3\u5c06\u4ee3\u7801\u5c01\u88c5\u5230\u7c7b\u4e2d\uff0c\u5bfc\u81f4\u4ee3\u7801\u7684\u53ef\u7ef4\u62a4\u6027\u5dee\u3002\u5982\u679c\u9700\u8981\u4fee\u6539\u67d0\u4e2a\u529f\u80fd\uff0c\u9700\u8981\u4fee\u6539\u6574\u4e2a\u7c7b\u7684\u4ee3\u7801\uff0c\u8fd9\u4f1a\u5bfc\u81f4\u4ee3\u7801\u7684\u7ef4\u62a4\u6027\u5f88\u4f4e\u3002"),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("strong",{parentName:"li"},"\u4ee3\u7801\u53ef\u6269\u5c55\u6027\u5dee"),"\uff1a\u7531\u4e8e OOP \u601d\u60f3\u5c06\u4ee3\u7801\u5c01\u88c5\u5230\u7c7b\u4e2d\uff0c\u5bfc\u81f4\u4ee3\u7801\u7684\u53ef\u6269\u5c55\u6027\u5dee\u3002\u5982\u679c\u9700\u8981\u6dfb\u52a0\u4e00\u4e2a\u65b0\u7684\u529f\u80fd\uff0c\u9700\u8981\u4fee\u6539\u6574\u4e2a\u7c7b\u7684\u4ee3\u7801\uff0c\u8fd9\u4f1a\u5bfc\u81f4\u4ee3\u7801\u7684\u6269\u5c55\u6027\u5f88\u4f4e\u3002")),(0,a.yg)("p",null,"AOP \u5c31\u662f\u4e3a\u4e86\u89e3\u51b3\u8fd9\u4e9b\u95ee\u9898\u800c\u51fa\u73b0\u7684\u3002AOP \u53ef\u4ee5\u5c06\u4ea4\u53c9\u4e1a\u52a1\u903b\u8f91\u5c01\u88c5\u5230\u5207\u9762\u4e2d\uff0c\u5728\u8fd0\u884c\u65f6\u5c06\u5207\u9762\u4e0e\u4e1a\u52a1\u903b\u8f91\u7f16\u7ec7\u5728\u4e00\u8d77\uff0c\u4ece\u800c\u5b9e\u73b0\u4ee3\u7801\u7684\u590d\u7528\u3001\u53ef\u7ef4\u62a4\u6027\u548c\u53ef\u6269\u5c55\u6027\u3002"),(0,a.yg)("h3",{id:"aop-\u7684\u5206\u7c7b"},"AOP \u7684\u5206\u7c7b"),(0,a.yg)("p",null,"AOP \u5b9e\u73b0\u7684\u5173\u952e\u5c31\u5728\u4e8e AOP \u6846\u67b6\u81ea\u52a8\u521b\u5efa\u7684 AOP \u4ee3\u7406\uff0cAOP \u4ee3\u7406\u4e3b\u8981\u5206\u4e3a\u9759\u6001\u4ee3\u7406\u548c\u52a8\u6001\u4ee3\u7406\u4e24\u5927\u7c7b\uff0c\u9759\u6001\u4ee3\u7406\u4ee5 AspectJ \u4e3a\u4ee3\u8868\uff1b\u800c\u52a8\u6001\u4ee3\u7406\u5219\u4ee5 Spring AOP \u4e3a\u4ee3\u8868\u3002"),(0,a.yg)("p",null,"\u5176\u4e2d\u9759\u6001\u4ee3\u7406\u662f\u6307\u4f7f\u7528 AOP \u6846\u67b6\u63d0\u4f9b\u7684\u547d\u4ee4\u8fdb\u884c\u7f16\u8bd1\uff0c\u4ece\u800c\u5728\u7f16\u8bd1\u9636\u6bb5\u5c31\u53ef\u751f\u6210 AOP \u4ee3\u7406\u7c7b\uff0c\u56e0\u6b64\u4e5f\u79f0\u4e3a\u7f16\u8bd1\u65f6\u589e\u5f3a\uff1b\u800c\u52a8\u6001\u4ee3\u7406\u5219\u5728\u8fd0\u884c\u65f6\u501f\u52a9\u4e8e JDK \u52a8\u6001\u4ee3\u7406\u3001CGLIB \u7b49\u5728\u5185\u5b58\u4e2d\u201c\u4e34\u65f6\u201d\u751f\u6210 AOP \u52a8\u6001\u4ee3\u7406\u7c7b\uff0c\u56e0\u6b64\u4e5f\u88ab\u79f0\u4e3a\u8fd0\u884c\u65f6\u589e\u5f3a\u3002"),(0,a.yg)("p",null,"Spring AOP \u65e2\u652f\u6301\u9759\u6001\u4ee3\u7406\u4e5f\u652f\u6301\u52a8\u6001\u4ee3\u7406\u3002"),(0,a.yg)("h3",{id:"\u603b\u7ed3"},"\u603b\u7ed3"),(0,a.yg)("p",null,"AOP \u5e7f\u6cdb\u5e94\u7528\u4e8e\u5904\u7406\u4e00\u4e9b\u5177\u6709\u6a2a\u5207\u6027\u8d28\u7684\u7cfb\u7edf\u7ea7\u670d\u52a1\uff0cAOP \u7684\u51fa\u73b0\u662f\u5bf9 OOP \u7684\u826f\u597d\u8865\u5145\uff0c\u5b83\u4f7f\u5f97\u5f00\u53d1\u8005\u80fd\u7528\u66f4\u4f18\u96c5\u7684\u65b9\u5f0f\u5904\u7406\u5177\u6709\u6a2a\u5207\u6027\u8d28\u7684\u670d\u52a1\u3002\u4e0d\u7ba1\u662f\u90a3\u79cd AOP \u5b9e\u73b0\uff0c\u4e0d\u8bba\u662f AspectJ\u3001\u8fd8\u662f Spring AOP\uff0c\u5b83\u4eec\u90fd\u9700\u8981\u52a8\u6001\u5730\u751f\u6210\u4e00\u4e2a AOP \u4ee3\u7406\u7c7b\uff0c\u533a\u522b\u53ea\u662f\u751f\u6210 AOP \u4ee3\u7406\u7c7b\u7684\u65f6\u673a\u4e0d\u540c\uff1aAspectJ \u91c7\u7528\u7f16\u8bd1\u65f6\u751f\u6210 AOP \u4ee3\u7406\u7c7b\uff0c\u56e0\u6b64\u5177\u6709\u66f4\u597d\u7684\u6027\u80fd\uff0c\u4f46\u9700\u8981\u4f7f\u7528\u7279\u5b9a\u7684\u7f16\u8bd1\u5668\u8fdb\u884c\u5904\u7406\uff1b\u800c Spring AOP \u5219\u91c7\u7528\u8fd0\u884c\u65f6\u751f\u6210 AOP \u4ee3\u7406\u7c7b\uff0c\u56e0\u6b64\u65e0\u9700\u4f7f\u7528\u7279\u5b9a\u7f16\u8bd1\u5668\u8fdb\u884c\u5904\u7406\u3002\u7531\u4e8e Spring AOP \u9700\u8981\u5728\u6bcf\u6b21\u8fd0\u884c\u65f6\u751f\u6210 AOP \u4ee3\u7406\uff0c\u56e0\u6b64\u6027\u80fd\u7565\u5dee\u4e00\u4e9b\u3002"))}O.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f7453080.07fb8db9.js b/assets/js/f7453080.cb71f9be.js similarity index 99% rename from assets/js/f7453080.07fb8db9.js rename to assets/js/f7453080.cb71f9be.js index 2280ef946..e318541a2 100644 --- a/assets/js/f7453080.07fb8db9.js +++ b/assets/js/f7453080.cb71f9be.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9314],{5680:(e,n,t)=>{t.d(n,{xA:()=>g,yg:()=>m});var r=t(6540);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function o(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var s=r.createContext({}),p=function(e){var n=r.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},g=function(e){var n=p(e.components);return r.createElement(s.Provider,{value:n},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},d=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,l=e.originalType,s=e.parentName,g=i(e,["components","mdxType","originalType","parentName"]),u=p(t),d=a,m=u["".concat(s,".").concat(d)]||u[d]||c[d]||l;return t?r.createElement(m,o(o({ref:n},g),{},{components:t})):r.createElement(m,o({ref:n},g))}));function m(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var l=t.length,o=new Array(l);o[0]=d;var i={};for(var s in n)hasOwnProperty.call(n,s)&&(i[s]=n[s]);i.originalType=e,i[u]="string"==typeof e?e:a,o[1]=i;for(var p=2;p{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>o,default:()=>c,frontMatter:()=>l,metadata:()=>i,toc:()=>p});var r=t(8168),a=(t(6540),t(5680));const l={sidebar_position:1},o="\u7efc\u8ff0",i={unversionedId:"xuanxing/thingsboard/index",id:"xuanxing/thingsboard/index",title:"\u7efc\u8ff0",description:"thingsboard \u5e94\u8be5\u7b97\u662f\u9876\u7ea7\u7684\u5f00\u6e90\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u4e86\u3002\u4f46\u662f\uff0c\u7ecf\u6211\u7814\u7a76\uff0c\u4e0d\u662f\u5f88\u9002\u5408\u56fd\u5185\u7528\u6237\u3002\u4f46\u662f\u5374\u6709\u5f88\u591a\u5b66\u4e60\u548c\u501f\u9274\u7684\u5730\u65b9\uff0c\u4f8b\u5982\u89c4\u5219\u5f15\u64ce\u3002",source:"@site/docs/xuanxing/thingsboard/index.md",sourceDirName:"xuanxing/thingsboard",slug:"/xuanxing/thingsboard/",permalink:"/docs/xuanxing/thingsboard/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"xuanxingSidebar",previous:{title:"\u6982\u8ff0",permalink:"/docs/xuanxing/devops/"},next:{title:"\u5982\u4f55\u4f7f\u7528",permalink:"/docs/xuanxing/thingsboard/\u5982\u4f55\u4f7f\u7528"}},s={},p=[{value:"\u73af\u5883\u8981\u6c42",id:"\u73af\u5883\u8981\u6c42",level:3},{value:"Maven \u7248\u672c",id:"maven-\u7248\u672c",level:3},{value:"\u5b89\u88c5 postgres",id:"\u5b89\u88c5-postgres",level:3},{value:"\u521b\u5efa\u6570\u636e\u5e93",id:"\u521b\u5efa\u6570\u636e\u5e93",level:3},{value:"\u6267\u884c mvn package \u6253\u5305\u5e76\u521d\u59cb\u5316\u6570\u636e\u5e93",id:"\u6267\u884c-mvn-package-\u6253\u5305\u5e76\u521d\u59cb\u5316\u6570\u636e\u5e93",level:3},{value:"IDEA \u8fd0\u884c",id:"idea-\u8fd0\u884c",level:3}],g={toc:p},u="wrapper";function c(e){let{components:n,...t}=e;return(0,a.yg)(u,(0,r.A)({},g,t,{components:n,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"\u7efc\u8ff0"},"\u7efc\u8ff0"),(0,a.yg)("p",null,"thingsboard \u5e94\u8be5\u7b97\u662f\u9876\u7ea7\u7684\u5f00\u6e90\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u4e86\u3002\u4f46\u662f\uff0c\u7ecf\u6211\u7814\u7a76\uff0c\u4e0d\u662f\u5f88\u9002\u5408\u56fd\u5185\u7528\u6237\u3002\u4f46\u662f\u5374\u6709\u5f88\u591a\u5b66\u4e60\u548c\u501f\u9274\u7684\u5730\u65b9\uff0c\u4f8b\u5982\u89c4\u5219\u5f15\u64ce\u3002"),(0,a.yg)("h3",{id:"\u73af\u5883\u8981\u6c42"},"\u73af\u5883\u8981\u6c42"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"JDK 11"),(0,a.yg)("li",{parentName:"ul"},"Maven 3.6.0+")),(0,a.yg)("h3",{id:"maven-\u7248\u672c"},"Maven \u7248\u672c"),(0,a.yg)("p",null,"\u6709\u95ee\u9898\uff0c\u81f3\u5c11\u5f97\u662f 3.6.0\uff0c\u5b98\u7f51\u6587\u6863\u6709\u8bef\uff1b"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"[ERROR] Failed to execute goal com.github.eirslett:frontend-maven-plugin:1.12.0:install-node-and-yarn (install node and npm) on project ui-ngx: The plugin com.github.eirslett:frontend-maven-plugin:1.12.0 requires Maven version 3.6.0 -> [Help 1]\n")),(0,a.yg)("h3",{id:"\u5b89\u88c5-postgres"},"\u5b89\u88c5 postgres"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"#\ndocker pull postgres:11.19-bullseye\n#\ndocker run \\\n--privileged=true \\\n--restart=always \\\n--name postgres \\\n-e POSTGRES_PASSWORD=Aa0123 \\\n-p 5432:5432 \\\n-v /mnt/docker/postgresql/data:/var/lib/postgresql/data \\\n-d postgres:11.19-bullseye\n# \u53d1\u73b0\u4f7f\u7528DBeaver\u8fde\u63a5\u4e0d\u4e0a\uff0c\u9700\u8981\u4fee\u6539/mnt/docker/postgresql/data/pg_hba.conf\n# \u589e\u52a0\u4e00\u884chost all all 192.168.41.69/32 trust\n# 192.168.41.69\u662f\u6211\u81ea\u5df1\u7684ip\n\n")),(0,a.yg)("h1",{id:"\u6267\u884c-mvn-compile-\u62a5\u9519"},"\u6267\u884c mvn compile \u62a5\u9519"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"[ERROR] Failed to execute goal org.apache.maven.plugins:maven-dependency-plugin:2.8:unpack (extract-web-ui) on project web-ui: Artifact has not been packaged yet. When used on reactor artifact, unpack should be executed after packaging: see MDEP-98. -> [Help 1]\n")),(0,a.yg)("p",null,"\u78b0\u5230\u8fd9\u4e2a\u9519\u8bef\uff0c\u662f\u56e0\u4e3a ui-ngx \u6ca1\u6709 install\uff0cinstall \u4e00\u4e0b\u5373\u53ef"),(0,a.yg)("h3",{id:"\u521b\u5efa\u6570\u636e\u5e93"},"\u521b\u5efa\u6570\u636e\u5e93"),(0,a.yg)("p",null,"\u4f7f\u7528 DBeaver \u8fde\u63a5\u6570\u636e\u5e93 postgresql\uff0c\u5e76\u521b\u5efa\u6570\u636e\u5e93",(0,a.yg)("strong",{parentName:"p"},"thingsboard")),(0,a.yg)("p",null,"\u4fee\u6539",(0,a.yg)("strong",{parentName:"p"},"thingsboard/application/src/main/resources/thingsboard.yml"),"\u6587\u4ef6\u4e2d\u7684\u6570\u636e\u5e93\u914d\u7f6e\uff0c"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-yml"},'url: "${SPRING_DATASOURCE_URL:jdbc:postgresql://192.168.0.40:5432/thingsboard}"\npassword: "${SPRING_DATASOURCE_PASSWORD:Aa0123}"\n')),(0,a.yg)("h3",{id:"\u6267\u884c-mvn-package-\u6253\u5305\u5e76\u521d\u59cb\u5316\u6570\u636e\u5e93"},"\u6267\u884c mvn package \u6253\u5305\u5e76\u521d\u59cb\u5316\u6570\u636e\u5e93"),(0,a.yg)("p",null,"mvn package \u547d\u4ee4\u76f4\u63a5\u6210\u529f\u3002"),(0,a.yg)("p",null,"\u7136\u540e\u6267\u884c",(0,a.yg)("strong",{parentName:"p"},"application/target/bin/install/install_dev_db.sh"),"\u6b64\u811a\u672c\uff0c\u4e5f\u6210\u529f\u4e86"),(0,a.yg)("h3",{id:"idea-\u8fd0\u884c"},"IDEA \u8fd0\u884c"),(0,a.yg)("p",null,"\u6267\u884c",(0,a.yg)("strong",{parentName:"p"},"application/src/main/java/org/thingsboard/server/ThingsboardServerApplication.java")," debug \u6b64\u6587\u4ef6\uff0c\n\u5982\u679c\u5b58\u5728 JDK \u7248\u672c\u95ee\u9898\uff0c\u628a\u6240\u6709 JDK \u7684\u914d\u7f6e\u5207\u6362\u6210 JDK11."),(0,a.yg)("p",null,"\u7b49\u7a0b\u5e8f\u8dd1\u8d77\u6765\u6210\u529f\u540e\uff0c\u65b9\u4f4d",(0,a.yg)("strong",{parentName:"p"},"http://localhost:8080"),"\u5373\u53ef\u3002\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u4e09\u79cd\u7c7b\u578b\u7684\u8d26\u53f7\u767b\u5f55\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u7cfb\u7edf \u7ba1\u7406\u5458: ",(0,a.yg)("a",{parentName:"li",href:"mailto:sysadmin@thingsboard.org"},"sysadmin@thingsboard.org")," / sysadmin"),(0,a.yg)("li",{parentName:"ul"},"\u79df\u6237 \u8d26\u53f7: ",(0,a.yg)("a",{parentName:"li",href:"mailto:tenant@thingsboard.org"},"tenant@thingsboard.org")," / tenant"),(0,a.yg)("li",{parentName:"ul"},"\u5ba2\u6237 \u8d26\u53f7: ",(0,a.yg)("a",{parentName:"li",href:"mailto:customer@thingsboard.org"},"customer@thingsboard.org")," / customer")),(0,a.yg)("p",null,"\u81f3\u6b64\uff0cThingsBoard \u5728\u672c\u5730\u6210\u529f\u8fd0\u884c\u3002"))}c.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9314],{5680:(e,n,t)=>{t.d(n,{xA:()=>g,yg:()=>m});var r=t(6540);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function o(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var s=r.createContext({}),p=function(e){var n=r.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},g=function(e){var n=p(e.components);return r.createElement(s.Provider,{value:n},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},d=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,l=e.originalType,s=e.parentName,g=i(e,["components","mdxType","originalType","parentName"]),u=p(t),d=a,m=u["".concat(s,".").concat(d)]||u[d]||c[d]||l;return t?r.createElement(m,o(o({ref:n},g),{},{components:t})):r.createElement(m,o({ref:n},g))}));function m(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var l=t.length,o=new Array(l);o[0]=d;var i={};for(var s in n)hasOwnProperty.call(n,s)&&(i[s]=n[s]);i.originalType=e,i[u]="string"==typeof e?e:a,o[1]=i;for(var p=2;p{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>o,default:()=>c,frontMatter:()=>l,metadata:()=>i,toc:()=>p});var r=t(8168),a=(t(6540),t(5680));const l={sidebar_position:1},o="\u7efc\u8ff0",i={unversionedId:"xuanxing/thingsboard/index",id:"xuanxing/thingsboard/index",title:"\u7efc\u8ff0",description:"thingsboard \u5e94\u8be5\u7b97\u662f\u9876\u7ea7\u7684\u5f00\u6e90\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u4e86\u3002\u4f46\u662f\uff0c\u7ecf\u6211\u7814\u7a76\uff0c\u4e0d\u662f\u5f88\u9002\u5408\u56fd\u5185\u7528\u6237\u3002\u4f46\u662f\u5374\u6709\u5f88\u591a\u5b66\u4e60\u548c\u501f\u9274\u7684\u5730\u65b9\uff0c\u4f8b\u5982\u89c4\u5219\u5f15\u64ce\u3002",source:"@site/docs/xuanxing/thingsboard/index.md",sourceDirName:"xuanxing/thingsboard",slug:"/xuanxing/thingsboard/",permalink:"/docs/xuanxing/thingsboard/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"xuanxingSidebar",previous:{title:"\u6982\u8ff0",permalink:"/docs/xuanxing/devops/"},next:{title:"\u5982\u4f55\u4f7f\u7528",permalink:"/docs/xuanxing/thingsboard/\u5982\u4f55\u4f7f\u7528"}},s={},p=[{value:"\u73af\u5883\u8981\u6c42",id:"\u73af\u5883\u8981\u6c42",level:3},{value:"Maven \u7248\u672c",id:"maven-\u7248\u672c",level:3},{value:"\u5b89\u88c5 postgres",id:"\u5b89\u88c5-postgres",level:3},{value:"\u521b\u5efa\u6570\u636e\u5e93",id:"\u521b\u5efa\u6570\u636e\u5e93",level:3},{value:"\u6267\u884c mvn package \u6253\u5305\u5e76\u521d\u59cb\u5316\u6570\u636e\u5e93",id:"\u6267\u884c-mvn-package-\u6253\u5305\u5e76\u521d\u59cb\u5316\u6570\u636e\u5e93",level:3},{value:"IDEA \u8fd0\u884c",id:"idea-\u8fd0\u884c",level:3}],g={toc:p},u="wrapper";function c(e){let{components:n,...t}=e;return(0,a.yg)(u,(0,r.A)({},g,t,{components:n,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"\u7efc\u8ff0"},"\u7efc\u8ff0"),(0,a.yg)("p",null,"thingsboard \u5e94\u8be5\u7b97\u662f\u9876\u7ea7\u7684\u5f00\u6e90\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u4e86\u3002\u4f46\u662f\uff0c\u7ecf\u6211\u7814\u7a76\uff0c\u4e0d\u662f\u5f88\u9002\u5408\u56fd\u5185\u7528\u6237\u3002\u4f46\u662f\u5374\u6709\u5f88\u591a\u5b66\u4e60\u548c\u501f\u9274\u7684\u5730\u65b9\uff0c\u4f8b\u5982\u89c4\u5219\u5f15\u64ce\u3002"),(0,a.yg)("h3",{id:"\u73af\u5883\u8981\u6c42"},"\u73af\u5883\u8981\u6c42"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"JDK 11"),(0,a.yg)("li",{parentName:"ul"},"Maven 3.6.0+")),(0,a.yg)("h3",{id:"maven-\u7248\u672c"},"Maven \u7248\u672c"),(0,a.yg)("p",null,"\u6709\u95ee\u9898\uff0c\u81f3\u5c11\u5f97\u662f 3.6.0\uff0c\u5b98\u7f51\u6587\u6863\u6709\u8bef\uff1b"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"[ERROR] Failed to execute goal com.github.eirslett:frontend-maven-plugin:1.12.0:install-node-and-yarn (install node and npm) on project ui-ngx: The plugin com.github.eirslett:frontend-maven-plugin:1.12.0 requires Maven version 3.6.0 -> [Help 1]\n")),(0,a.yg)("h3",{id:"\u5b89\u88c5-postgres"},"\u5b89\u88c5 postgres"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"#\ndocker pull postgres:11.19-bullseye\n#\ndocker run \\\n--privileged=true \\\n--restart=always \\\n--name postgres \\\n-e POSTGRES_PASSWORD=Aa0123 \\\n-p 5432:5432 \\\n-v /mnt/docker/postgresql/data:/var/lib/postgresql/data \\\n-d postgres:11.19-bullseye\n# \u53d1\u73b0\u4f7f\u7528DBeaver\u8fde\u63a5\u4e0d\u4e0a\uff0c\u9700\u8981\u4fee\u6539/mnt/docker/postgresql/data/pg_hba.conf\n# \u589e\u52a0\u4e00\u884chost all all 192.168.41.69/32 trust\n# 192.168.41.69\u662f\u6211\u81ea\u5df1\u7684ip\n\n")),(0,a.yg)("h1",{id:"\u6267\u884c-mvn-compile-\u62a5\u9519"},"\u6267\u884c mvn compile \u62a5\u9519"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"[ERROR] Failed to execute goal org.apache.maven.plugins:maven-dependency-plugin:2.8:unpack (extract-web-ui) on project web-ui: Artifact has not been packaged yet. When used on reactor artifact, unpack should be executed after packaging: see MDEP-98. -> [Help 1]\n")),(0,a.yg)("p",null,"\u78b0\u5230\u8fd9\u4e2a\u9519\u8bef\uff0c\u662f\u56e0\u4e3a ui-ngx \u6ca1\u6709 install\uff0cinstall \u4e00\u4e0b\u5373\u53ef"),(0,a.yg)("h3",{id:"\u521b\u5efa\u6570\u636e\u5e93"},"\u521b\u5efa\u6570\u636e\u5e93"),(0,a.yg)("p",null,"\u4f7f\u7528 DBeaver \u8fde\u63a5\u6570\u636e\u5e93 postgresql\uff0c\u5e76\u521b\u5efa\u6570\u636e\u5e93",(0,a.yg)("strong",{parentName:"p"},"thingsboard")),(0,a.yg)("p",null,"\u4fee\u6539",(0,a.yg)("strong",{parentName:"p"},"thingsboard/application/src/main/resources/thingsboard.yml"),"\u6587\u4ef6\u4e2d\u7684\u6570\u636e\u5e93\u914d\u7f6e\uff0c"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-yml"},'url: "${SPRING_DATASOURCE_URL:jdbc:postgresql://192.168.0.40:5432/thingsboard}"\npassword: "${SPRING_DATASOURCE_PASSWORD:Aa0123}"\n')),(0,a.yg)("h3",{id:"\u6267\u884c-mvn-package-\u6253\u5305\u5e76\u521d\u59cb\u5316\u6570\u636e\u5e93"},"\u6267\u884c mvn package \u6253\u5305\u5e76\u521d\u59cb\u5316\u6570\u636e\u5e93"),(0,a.yg)("p",null,"mvn package \u547d\u4ee4\u76f4\u63a5\u6210\u529f\u3002"),(0,a.yg)("p",null,"\u7136\u540e\u6267\u884c",(0,a.yg)("strong",{parentName:"p"},"application/target/bin/install/install_dev_db.sh"),"\u6b64\u811a\u672c\uff0c\u4e5f\u6210\u529f\u4e86"),(0,a.yg)("h3",{id:"idea-\u8fd0\u884c"},"IDEA \u8fd0\u884c"),(0,a.yg)("p",null,"\u6267\u884c",(0,a.yg)("strong",{parentName:"p"},"application/src/main/java/org/thingsboard/server/ThingsboardServerApplication.java")," debug \u6b64\u6587\u4ef6\uff0c\n\u5982\u679c\u5b58\u5728 JDK \u7248\u672c\u95ee\u9898\uff0c\u628a\u6240\u6709 JDK \u7684\u914d\u7f6e\u5207\u6362\u6210 JDK11."),(0,a.yg)("p",null,"\u7b49\u7a0b\u5e8f\u8dd1\u8d77\u6765\u6210\u529f\u540e\uff0c\u65b9\u4f4d",(0,a.yg)("strong",{parentName:"p"},"http://localhost:8080"),"\u5373\u53ef\u3002\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u4e09\u79cd\u7c7b\u578b\u7684\u8d26\u53f7\u767b\u5f55\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u7cfb\u7edf \u7ba1\u7406\u5458: ",(0,a.yg)("a",{parentName:"li",href:"mailto:sysadmin@thingsboard.org"},"sysadmin@thingsboard.org")," / sysadmin"),(0,a.yg)("li",{parentName:"ul"},"\u79df\u6237 \u8d26\u53f7: ",(0,a.yg)("a",{parentName:"li",href:"mailto:tenant@thingsboard.org"},"tenant@thingsboard.org")," / tenant"),(0,a.yg)("li",{parentName:"ul"},"\u5ba2\u6237 \u8d26\u53f7: ",(0,a.yg)("a",{parentName:"li",href:"mailto:customer@thingsboard.org"},"customer@thingsboard.org")," / customer")),(0,a.yg)("p",null,"\u81f3\u6b64\uff0cThingsBoard \u5728\u672c\u5730\u6210\u529f\u8fd0\u884c\u3002"))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f7ec4137.45dd7613.js b/assets/js/f7ec4137.8c01c8d1.js similarity index 98% rename from assets/js/f7ec4137.45dd7613.js rename to assets/js/f7ec4137.8c01c8d1.js index 34d6a435d..83a07160c 100644 --- a/assets/js/f7ec4137.45dd7613.js +++ b/assets/js/f7ec4137.8c01c8d1.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4793],{5680:(e,t,r)=>{r.d(t,{xA:()=>c,yg:()=>d});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var u=n.createContext({}),p=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},c=function(e){var t=p(e.components);return n.createElement(u.Provider,{value:t},e.children)},s="mdxType",f={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,i=e.originalType,u=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),s=p(r),y=a,d=s["".concat(u,".").concat(y)]||s[y]||f[y]||i;return r?n.createElement(d,o(o({ref:t},c),{},{components:r})):n.createElement(d,o({ref:t},c))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=r.length,o=new Array(i);o[0]=y;var l={};for(var u in t)hasOwnProperty.call(t,u)&&(l[u]=t[u]);l.originalType=e,l[s]="string"==typeof e?e:a,o[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>o,default:()=>f,frontMatter:()=>i,metadata:()=>l,toc:()=>p});var n=r(8168),a=(r(6540),r(5680));const i={sidebar_position:5},o="\u7ec4\u6001\u7f16\u8f91\u5668/\u5927\u5c4f\u7f16\u8f91\u5668",l={unversionedId:"xuanxing/fe/\u7ec4\u6001+\u5927\u5c4f\u7f16\u8f91\u5668",id:"xuanxing/fe/\u7ec4\u6001+\u5927\u5c4f\u7f16\u8f91\u5668",title:"\u7ec4\u6001\u7f16\u8f91\u5668/\u5927\u5c4f\u7f16\u8f91\u5668",description:"\u5728\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u4e0a\uff0c\u7ec4\u6001\u7f16\u8f91\u5668\u548c\u5927\u5c4f\u7f16\u8f91\u5668\u90fd\u662f\u5c5e\u4e8e\u53ef\u89c6\u5316\u7f16\u8f91\u5668\u7684\u8303\u7574\u3002",source:"@site/docs/xuanxing/fe/5-\u7ec4\u6001+\u5927\u5c4f\u7f16\u8f91\u5668.md",sourceDirName:"xuanxing/fe",slug:"/xuanxing/fe/\u7ec4\u6001+\u5927\u5c4f\u7f16\u8f91\u5668",permalink:"/docs/xuanxing/fe/\u7ec4\u6001+\u5927\u5c4f\u7f16\u8f91\u5668",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"xuanxingSidebar",previous:{title:"\u79fb\u52a8\u7aef",permalink:"/docs/xuanxing/fe/\u79fb\u52a8\u7aef"},next:{title:"\u6982\u8ff0",permalink:"/docs/xuanxing/back/"}},u={},p=[{value:"\u7ec4\u6001\u7f16\u8f91\u5668",id:"\u7ec4\u6001\u7f16\u8f91\u5668",level:3},{value:"\u5927\u5c4f\u7f16\u8f91\u5668",id:"\u5927\u5c4f\u7f16\u8f91\u5668",level:3},{value:"\u6700\u7ec8\uff0c\u6280\u672f\u9009\u578b\u4e2a\u4eba\u63a8\u8350\uff1a",id:"\u6700\u7ec8\u6280\u672f\u9009\u578b\u4e2a\u4eba\u63a8\u8350",level:3}],c={toc:p},s="wrapper";function f(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"\u7ec4\u6001\u7f16\u8f91\u5668\u5927\u5c4f\u7f16\u8f91\u5668"},"\u7ec4\u6001\u7f16\u8f91\u5668/\u5927\u5c4f\u7f16\u8f91\u5668"),(0,a.yg)("p",null,"\u5728\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u4e0a\uff0c\u7ec4\u6001\u7f16\u8f91\u5668\u548c\u5927\u5c4f\u7f16\u8f91\u5668\u90fd\u662f\u5c5e\u4e8e\u53ef\u89c6\u5316\u7f16\u8f91\u5668\u7684\u8303\u7574\u3002"),(0,a.yg)("p",null,"\u7ec4\u6001\u7f16\u8f91\u5668\u6bd4\u8f83\u6ce8\u91cd\u62d3\u6251\u7ed3\u6784\u56fe\u3001\u73b0\u573a\u7684\u5de5\u827a\u6d41\u7a0b\uff0c\u4e14\u5bf9\u52a8\u753b\u6709\u8981\u6c42\uff0c\u80fd\u591f\u6a21\u62df\u5b9e\u65f6\u7684\u573a\u666f\u52a8\u753b\u3002"),(0,a.yg)("h3",{id:"\u7ec4\u6001\u7f16\u8f91\u5668"},"\u7ec4\u6001\u7f16\u8f91\u5668"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u57fa\u4e8e draw.io \u6539\u9020\uff0cdraw.io \u57fa\u4e8e mxGraph\uff0c\u4f46\u662f mxGraph \u5728 2020 \u5e74 11 \u6708\u5df2\u7ecf\u4f53\u8d28\u7ef4\u62a4\u4e86",(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},"mxGraph \u63a8\u8350\u7684 fork\uff0cmaxGraph"))),(0,a.yg)("li",{parentName:"ul"},"\u57fa\u4e8e meta2d+vue3 \u81ea\u7814\uff08\u53c2\u8003\u4f18\u8bfa\u79d1\u6280\u7684\u68ee\u62d3\u6251\uff09"),(0,a.yg)("li",{parentName:"ul"},"\u7eaf\u81ea\u7814\uff08Canvas\uff09\uff08\u53c2\u8003\u4f18\u8bfa\u79d1\u6280\u7684\u68ee\u62d3\u6251\uff09"),(0,a.yg)("li",{parentName:"ul"},"\u91c7\u8d2d\uff08\u4f18\u8bfa\u79d1\u6280\u7684\u68ee\u62d3\u6251\uff09")),(0,a.yg)("h3",{id:"\u5927\u5c4f\u7f16\u8f91\u5668"},"\u5927\u5c4f\u7f16\u8f91\u5668"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u81ea\u7814(\u53c2\u8003\u4f18\u8bfa\u79d1\u6280\u7684\u68ee\u5927\u5c4f)"),(0,a.yg)("li",{parentName:"ul"},"\u91c7\u8d2d\uff08\u4f18\u8bfa\u79d1\u6280\u7684\u68ee\u5927\u5c4f\uff09")),(0,a.yg)("h3",{id:"\u6700\u7ec8\u6280\u672f\u9009\u578b\u4e2a\u4eba\u63a8\u8350"},"\u6700\u7ec8\uff0c\u6280\u672f\u9009\u578b\u4e2a\u4eba\u63a8\u8350\uff1a"),(0,a.yg)("p",null,"\u57fa\u4e8e meta2d+vue3 \u81ea\u7814\uff08\u53c2\u8003\u4f18\u8bfa\u79d1\u6280\u7684\u68ee\u62d3\u6251\uff09"))}f.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4793],{5680:(e,t,r)=>{r.d(t,{xA:()=>c,yg:()=>d});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var u=n.createContext({}),p=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},c=function(e){var t=p(e.components);return n.createElement(u.Provider,{value:t},e.children)},s="mdxType",f={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,i=e.originalType,u=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),s=p(r),y=a,d=s["".concat(u,".").concat(y)]||s[y]||f[y]||i;return r?n.createElement(d,o(o({ref:t},c),{},{components:r})):n.createElement(d,o({ref:t},c))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=r.length,o=new Array(i);o[0]=y;var l={};for(var u in t)hasOwnProperty.call(t,u)&&(l[u]=t[u]);l.originalType=e,l[s]="string"==typeof e?e:a,o[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>o,default:()=>f,frontMatter:()=>i,metadata:()=>l,toc:()=>p});var n=r(8168),a=(r(6540),r(5680));const i={sidebar_position:5},o="\u7ec4\u6001\u7f16\u8f91\u5668/\u5927\u5c4f\u7f16\u8f91\u5668",l={unversionedId:"xuanxing/fe/\u7ec4\u6001+\u5927\u5c4f\u7f16\u8f91\u5668",id:"xuanxing/fe/\u7ec4\u6001+\u5927\u5c4f\u7f16\u8f91\u5668",title:"\u7ec4\u6001\u7f16\u8f91\u5668/\u5927\u5c4f\u7f16\u8f91\u5668",description:"\u5728\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u4e0a\uff0c\u7ec4\u6001\u7f16\u8f91\u5668\u548c\u5927\u5c4f\u7f16\u8f91\u5668\u90fd\u662f\u5c5e\u4e8e\u53ef\u89c6\u5316\u7f16\u8f91\u5668\u7684\u8303\u7574\u3002",source:"@site/docs/xuanxing/fe/5-\u7ec4\u6001+\u5927\u5c4f\u7f16\u8f91\u5668.md",sourceDirName:"xuanxing/fe",slug:"/xuanxing/fe/\u7ec4\u6001+\u5927\u5c4f\u7f16\u8f91\u5668",permalink:"/docs/xuanxing/fe/\u7ec4\u6001+\u5927\u5c4f\u7f16\u8f91\u5668",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"xuanxingSidebar",previous:{title:"\u79fb\u52a8\u7aef",permalink:"/docs/xuanxing/fe/\u79fb\u52a8\u7aef"},next:{title:"\u6982\u8ff0",permalink:"/docs/xuanxing/back/"}},u={},p=[{value:"\u7ec4\u6001\u7f16\u8f91\u5668",id:"\u7ec4\u6001\u7f16\u8f91\u5668",level:3},{value:"\u5927\u5c4f\u7f16\u8f91\u5668",id:"\u5927\u5c4f\u7f16\u8f91\u5668",level:3},{value:"\u6700\u7ec8\uff0c\u6280\u672f\u9009\u578b\u4e2a\u4eba\u63a8\u8350\uff1a",id:"\u6700\u7ec8\u6280\u672f\u9009\u578b\u4e2a\u4eba\u63a8\u8350",level:3}],c={toc:p},s="wrapper";function f(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"\u7ec4\u6001\u7f16\u8f91\u5668\u5927\u5c4f\u7f16\u8f91\u5668"},"\u7ec4\u6001\u7f16\u8f91\u5668/\u5927\u5c4f\u7f16\u8f91\u5668"),(0,a.yg)("p",null,"\u5728\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u4e0a\uff0c\u7ec4\u6001\u7f16\u8f91\u5668\u548c\u5927\u5c4f\u7f16\u8f91\u5668\u90fd\u662f\u5c5e\u4e8e\u53ef\u89c6\u5316\u7f16\u8f91\u5668\u7684\u8303\u7574\u3002"),(0,a.yg)("p",null,"\u7ec4\u6001\u7f16\u8f91\u5668\u6bd4\u8f83\u6ce8\u91cd\u62d3\u6251\u7ed3\u6784\u56fe\u3001\u73b0\u573a\u7684\u5de5\u827a\u6d41\u7a0b\uff0c\u4e14\u5bf9\u52a8\u753b\u6709\u8981\u6c42\uff0c\u80fd\u591f\u6a21\u62df\u5b9e\u65f6\u7684\u573a\u666f\u52a8\u753b\u3002"),(0,a.yg)("h3",{id:"\u7ec4\u6001\u7f16\u8f91\u5668"},"\u7ec4\u6001\u7f16\u8f91\u5668"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u57fa\u4e8e draw.io \u6539\u9020\uff0cdraw.io \u57fa\u4e8e mxGraph\uff0c\u4f46\u662f mxGraph \u5728 2020 \u5e74 11 \u6708\u5df2\u7ecf\u4f53\u8d28\u7ef4\u62a4\u4e86",(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},"mxGraph \u63a8\u8350\u7684 fork\uff0cmaxGraph"))),(0,a.yg)("li",{parentName:"ul"},"\u57fa\u4e8e meta2d+vue3 \u81ea\u7814\uff08\u53c2\u8003\u4f18\u8bfa\u79d1\u6280\u7684\u68ee\u62d3\u6251\uff09"),(0,a.yg)("li",{parentName:"ul"},"\u7eaf\u81ea\u7814\uff08Canvas\uff09\uff08\u53c2\u8003\u4f18\u8bfa\u79d1\u6280\u7684\u68ee\u62d3\u6251\uff09"),(0,a.yg)("li",{parentName:"ul"},"\u91c7\u8d2d\uff08\u4f18\u8bfa\u79d1\u6280\u7684\u68ee\u62d3\u6251\uff09")),(0,a.yg)("h3",{id:"\u5927\u5c4f\u7f16\u8f91\u5668"},"\u5927\u5c4f\u7f16\u8f91\u5668"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u81ea\u7814(\u53c2\u8003\u4f18\u8bfa\u79d1\u6280\u7684\u68ee\u5927\u5c4f)"),(0,a.yg)("li",{parentName:"ul"},"\u91c7\u8d2d\uff08\u4f18\u8bfa\u79d1\u6280\u7684\u68ee\u5927\u5c4f\uff09")),(0,a.yg)("h3",{id:"\u6700\u7ec8\u6280\u672f\u9009\u578b\u4e2a\u4eba\u63a8\u8350"},"\u6700\u7ec8\uff0c\u6280\u672f\u9009\u578b\u4e2a\u4eba\u63a8\u8350\uff1a"),(0,a.yg)("p",null,"\u57fa\u4e8e meta2d+vue3 \u81ea\u7814\uff08\u53c2\u8003\u4f18\u8bfa\u79d1\u6280\u7684\u68ee\u62d3\u6251\uff09"))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f90dc98f.5df4dc0d.js b/assets/js/f90dc98f.57930f25.js similarity index 99% rename from assets/js/f90dc98f.5df4dc0d.js rename to assets/js/f90dc98f.57930f25.js index 9dfdbf711..38ac2469a 100644 --- a/assets/js/f90dc98f.5df4dc0d.js +++ b/assets/js/f90dc98f.57930f25.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4586],{5680:(e,t,n)=>{n.d(t,{xA:()=>i,yg:()=>g});var r=n(6540);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var u=r.createContext({}),c=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},i=function(e){var t=c(e.components);return r.createElement(u.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,u=e.parentName,i=p(e,["components","mdxType","originalType","parentName"]),s=c(n),d=o,g=s["".concat(u,".").concat(d)]||s[d]||y[d]||a;return n?r.createElement(g,l(l({ref:t},i),{},{components:n})):r.createElement(g,l({ref:t},i))}));function g(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,l=new Array(a);l[0]=d;var p={};for(var u in t)hasOwnProperty.call(t,u)&&(p[u]=t[u]);p.originalType=e,p[s]="string"==typeof e?e:o,l[1]=p;for(var c=2;c{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>l,default:()=>y,frontMatter:()=>a,metadata:()=>p,toc:()=>c});var r=n(8168),o=(n(6540),n(5680));const a={},l=void 0,p={unversionedId:"study/devops/Linux\u8fd0\u7ef4-\u76d1\u63a7\u6570\u636e",id:"study/devops/Linux\u8fd0\u7ef4-\u76d1\u63a7\u6570\u636e",title:"Linux\u8fd0\u7ef4-\u76d1\u63a7\u6570\u636e",description:"\u7cfb\u7edf\u5e73\u5747\u8d1f\u8f7d\u548cCPU\u4f7f\u7528\u7387",source:"@site/docs/study/devops/Linux\u8fd0\u7ef4-\u76d1\u63a7\u6570\u636e.md",sourceDirName:"study/devops",slug:"/study/devops/Linux\u8fd0\u7ef4-\u76d1\u63a7\u6570\u636e",permalink:"/docs/study/devops/Linux\u8fd0\u7ef4-\u76d1\u63a7\u6570\u636e",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Linux\u8fd0\u7ef4-\u5e38\u7528",permalink:"/docs/study/devops/Linux\u8fd0\u7ef4-\u5e38\u7528"},next:{title:"Linux\u8fd0\u7ef4-\u81ea\u542f",permalink:"/docs/study/devops/Linux\u8fd0\u7ef4-\u81ea\u542f"}},u={},c=[{value:"\u7cfb\u7edf\u5e73\u5747\u8d1f\u8f7d\u548cCPU\u4f7f\u7528\u7387",id:"\u7cfb\u7edf\u5e73\u5747\u8d1f\u8f7d\u548ccpu\u4f7f\u7528\u7387",level:3}],i={toc:c},s="wrapper";function y(e){let{components:t,...n}=e;return(0,o.yg)(s,(0,r.A)({},i,n,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u7cfb\u7edf\u5e73\u5747\u8d1f\u8f7d\u548ccpu\u4f7f\u7528\u7387"},"\u7cfb\u7edf\u5e73\u5747\u8d1f\u8f7d\u548cCPU\u4f7f\u7528\u7387"),(0,o.yg)("p",null,"\u73b0\u5b9e\u5de5\u4f5c\u4e2d\uff0c\u6211\u4eec\u7ecf\u5e38\u5bb9\u6613\u628a\u5e73\u5747\u8d1f\u8f7d\u503c\u548cCPU\u4f7f\u7528\u7387\u6df7\u6dc6\uff0c\u6240\u4ee5\u5728\u8fd9\u91cc\uff0c\u6211\u4e5f\u505a\u4e00\u4e2a\u533a\u5206\u3002"),(0,o.yg)("p",null,"\u53ef\u80fd\u4f60\u4f1a\u7591\u60d1\uff0c\u65e2\u7136\u5e73\u5747\u8d1f\u8f7d\u4ee3\u8868\u7684\u662f\u6d3b\u8dc3\u8fdb\u7a0b\u6570\uff0c\u90a3\u5e73\u5747\u8d1f\u8f7d\u9ad8\u4e86\uff0c\u4e0d\u5c31\u610f\u5473\u7740CPU\u4f7f\u7528\u7387\u9ad8\u5417\uff1f"),(0,o.yg)("p",null,"\u6211\u4eec\u8fd8\u662f\u8981\u56de\u5230\u5e73\u5747\u8d1f\u8f7d\u7684\u542b\u4e49\u4e0a\u6765\uff0c\u5e73\u5747\u8d1f\u8f7d\u662f\u6307\u5355\u4f4d\u65f6\u95f4\u5185\uff0c\u5904\u4e8e\u53ef\u8fd0\u884c\u72b6\u6001\u548c\u4e0d\u53ef\u4e2d\u65ad\u72b6\u6001\u7684\u8fdb\u7a0b\u6570\u3002\u6240\u4ee5\uff0c\u5b83\u4e0d\u4ec5\u5305\u62ec\u4e86",(0,o.yg)("strong",{parentName:"p"},"\u6b63\u5728\u4f7f\u7528CPU\u7684\u8fdb\u7a0b"),"\uff0c\u8fd8\u5305\u62ec",(0,o.yg)("strong",{parentName:"p"},"\u7b49\u5f85CPU\u548c\u7b49\u5f85I/O\u7684\u8fdb\u7a0b"),"\u3002"),(0,o.yg)("blockquote",null,(0,o.yg)("p",{parentName:"blockquote"},"\u800cCPU\u4f7f\u7528\u7387\uff0c\u662f\u5355\u4f4d\u65f6\u95f4\u5185CPU\u7e41\u5fd9\u60c5\u51b5\u7684\u7edf\u8ba1\uff0c\u8ddf\u5e73\u5747\u8d1f\u8f7d\u5e76\u4e0d\u4e00\u5b9a\u5b8c\u5168\u5bf9\u5e94\u3002\u6bd4\u5982\uff1a"),(0,o.yg)("ul",{parentName:"blockquote"},(0,o.yg)("li",{parentName:"ul"},"CPU\u5bc6\u96c6\u578b\u8fdb\u7a0b\uff0c\u4f7f\u7528\u5927\u91cfCPU\u4f1a\u5bfc\u81f4\u5e73\u5747\u8d1f\u8f7d\u5347\u9ad8\uff0c\u6b64\u65f6\u4e24\u8005\u662f\u4e00\u81f4\u7684\u3002"),(0,o.yg)("li",{parentName:"ul"},"I/O\u5bc6\u96c6\u578b\u8fdb\u7a0b\uff0c\u7b49\u5f85I/O\u4e5f\u4f1a\u5bfc\u81f4\u5e73\u5747\u8d1f\u8f7d\u5347\u9ad8\uff0c\u4f46CPU\u4f7f\u7528\u7387\u4e0d\u4e00\u5b9a\u5f88\u9ad8\u3002"),(0,o.yg)("li",{parentName:"ul"},"\u5927\u91cf\u7b49\u5f85CPU\u7684\u8fdb\u7a0b\u8c03\u5ea6\u4e5f\u4f1a\u5bfc\u81f4\u5e73\u5747\u8d1f\u8f7d\u5347\u9ad8\uff0c\u6b64\u65f6\u7684CPU\u4f7f\u7528\u7387\u4e5f\u4f1a\u6bd4\u8f83\u9ad8\u3002"))),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"\u90a3\u4e48\uff0c\u5728\u5b9e\u9645\u751f\u4ea7\u73af\u5883\u4e2d\uff0c\u5e73\u5747\u8d1f\u8f7d\u591a\u9ad8\u65f6\uff0c\u9700\u8981\u6211\u4eec\u91cd\u70b9\u5173\u6ce8\u5462\uff1f")),(0,o.yg)("p",null,"\u5728\u6211\u770b\u6765\uff0c",(0,o.yg)("strong",{parentName:"p"},"\u5f53\u5e73\u5747\u8d1f\u8f7d\u9ad8\u4e8e\u903b\u8f91CPU\u6570\u91cf\u768470%\u7684\u65f6\u5019"),"\uff0c\u4f60\u5c31\u5e94\u8be5\u5206\u6790\u6392\u67e5\u8d1f\u8f7d\u9ad8\u7684\u95ee\u9898\u4e86\u3002\u4e00\u65e6\u8d1f\u8f7d\u8fc7\u9ad8\uff0c\u5c31\u53ef\u80fd\u5bfc\u81f4\u8fdb\u7a0b\u54cd\u5e94\u53d8\u6162\uff0c\u8fdb\u800c\u5f71\u54cd\u670d\u52a1\u7684\u6b63\u5e38\u529f\u80fd\u3002"),(0,o.yg)("p",null,"\u4f46\u662f\uff0c70%\u8fd9\u4e2a\u6570\u5b57\u5e76\u4e0d\u662f\u7edd\u5bf9\u7684\uff0c\u6700\u63a8\u8350\u7684\u65b9\u6cd5\uff0c\u8fd8\u662f\u628a\u7cfb\u7edf\u7684\u5e73\u5747\u8d1f\u8f7d\u76d1\u63a7\u8d77\u6765\uff0c\u7136\u540e\u6839\u636e\u66f4\u591a\u7684\u5386\u53f2\u6570\u636e\uff0c\u5224\u65ad\u8d1f\u8f7d\u7684\u53d8\u5316\u8d8b\u52bf\u3002\u5f53\u53d1\u73b0\u8d1f\u8f7d\u6709\u660e\u663e\u5347\u9ad8\u8d8b\u52bf\u65f6\uff0c\u6bd4\u5982\u8bf4\u8d1f\u8f7d\u7ffb\u500d\u4e86\uff0c\u4f60\u518d\u53bb\u505a\u5206\u6790\u548c\u8c03\u67e5\u3002"),(0,o.yg)("p",null,"\u83b7\u53d6\u7cfb\u7edf\u5e73\u5747\u8d1f\u8f7d"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-shell"},"cat /proc/loadavg\n# 0.32 0.29 0.13 1/357 1909\n")),(0,o.yg)("p",null,"\u4e00\u822c\u6765\u8bf4\u6bcf\u4e2aCPU\u7684\u5f53\u524d\u6d3b\u52a8\u8fdb\u7a0b\u6570\u4e0d\u5927\u4e8e3\u90a3\u4e48\u7cfb\u7edf\u7684\u6027\u80fd\u5c31\u662f\u826f\u597d\u7684\u3002\u5982\u679c\u6bcf\u4e2aCPU\u7684\u4efb\u52a1\u6570\u5927\u4e8e5\uff0c\u90a3\u4e48\u5c31\u8868\u660e\u673a\u5668\u7684\u6027\u80fd\u6709\u4e25\u91cd\u95ee\u9898\u3002"),(0,o.yg)("p",null,"\u5bf9\u4e8e\u4e0a\u9762\u7684\u4f8b\u5b50\u6765\u8bf4\uff0c\u5047\u8bbe\u7cfb\u7edf\u67098\u4e2aCPU\uff0c\u90a3\u4e48\u5176\u6bcf\u4e2aCPU\u57281\u5206\u949f\u5185\u7684\u8fdb\u7a0b\u6570\u4e3a\uff1a0.32/8=0.04\u3002"),(0,o.yg)("p",null,"\u5982\u4f55\u83b7\u53d6CPU\u6570\u91cf\u5462\uff1f\u4e0d\u540c\u7684\u64cd\u4f5c\u7cfb\u7edf\u7684\u53ef\u80fd\u4e0d\u592a\u4e00\u6837\u3002"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-shell"},'# Euler OS 2.0 SP8\ncat /proc/cpuinfo | grep processor | wc -l\n# Centos 7\n# Ubuntu 22.04.3 LTS\ncat /proc/cpuinfo | grep "model name" | wc -l\n')))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4586],{5680:(e,t,n)=>{n.d(t,{xA:()=>i,yg:()=>g});var r=n(6540);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var u=r.createContext({}),c=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},i=function(e){var t=c(e.components);return r.createElement(u.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,u=e.parentName,i=p(e,["components","mdxType","originalType","parentName"]),s=c(n),d=o,g=s["".concat(u,".").concat(d)]||s[d]||y[d]||a;return n?r.createElement(g,l(l({ref:t},i),{},{components:n})):r.createElement(g,l({ref:t},i))}));function g(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,l=new Array(a);l[0]=d;var p={};for(var u in t)hasOwnProperty.call(t,u)&&(p[u]=t[u]);p.originalType=e,p[s]="string"==typeof e?e:o,l[1]=p;for(var c=2;c{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>l,default:()=>y,frontMatter:()=>a,metadata:()=>p,toc:()=>c});var r=n(8168),o=(n(6540),n(5680));const a={},l=void 0,p={unversionedId:"study/devops/Linux\u8fd0\u7ef4-\u76d1\u63a7\u6570\u636e",id:"study/devops/Linux\u8fd0\u7ef4-\u76d1\u63a7\u6570\u636e",title:"Linux\u8fd0\u7ef4-\u76d1\u63a7\u6570\u636e",description:"\u7cfb\u7edf\u5e73\u5747\u8d1f\u8f7d\u548cCPU\u4f7f\u7528\u7387",source:"@site/docs/study/devops/Linux\u8fd0\u7ef4-\u76d1\u63a7\u6570\u636e.md",sourceDirName:"study/devops",slug:"/study/devops/Linux\u8fd0\u7ef4-\u76d1\u63a7\u6570\u636e",permalink:"/docs/study/devops/Linux\u8fd0\u7ef4-\u76d1\u63a7\u6570\u636e",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Linux\u8fd0\u7ef4-\u5e38\u7528",permalink:"/docs/study/devops/Linux\u8fd0\u7ef4-\u5e38\u7528"},next:{title:"Linux\u8fd0\u7ef4-\u81ea\u542f",permalink:"/docs/study/devops/Linux\u8fd0\u7ef4-\u81ea\u542f"}},u={},c=[{value:"\u7cfb\u7edf\u5e73\u5747\u8d1f\u8f7d\u548cCPU\u4f7f\u7528\u7387",id:"\u7cfb\u7edf\u5e73\u5747\u8d1f\u8f7d\u548ccpu\u4f7f\u7528\u7387",level:3}],i={toc:c},s="wrapper";function y(e){let{components:t,...n}=e;return(0,o.yg)(s,(0,r.A)({},i,n,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u7cfb\u7edf\u5e73\u5747\u8d1f\u8f7d\u548ccpu\u4f7f\u7528\u7387"},"\u7cfb\u7edf\u5e73\u5747\u8d1f\u8f7d\u548cCPU\u4f7f\u7528\u7387"),(0,o.yg)("p",null,"\u73b0\u5b9e\u5de5\u4f5c\u4e2d\uff0c\u6211\u4eec\u7ecf\u5e38\u5bb9\u6613\u628a\u5e73\u5747\u8d1f\u8f7d\u503c\u548cCPU\u4f7f\u7528\u7387\u6df7\u6dc6\uff0c\u6240\u4ee5\u5728\u8fd9\u91cc\uff0c\u6211\u4e5f\u505a\u4e00\u4e2a\u533a\u5206\u3002"),(0,o.yg)("p",null,"\u53ef\u80fd\u4f60\u4f1a\u7591\u60d1\uff0c\u65e2\u7136\u5e73\u5747\u8d1f\u8f7d\u4ee3\u8868\u7684\u662f\u6d3b\u8dc3\u8fdb\u7a0b\u6570\uff0c\u90a3\u5e73\u5747\u8d1f\u8f7d\u9ad8\u4e86\uff0c\u4e0d\u5c31\u610f\u5473\u7740CPU\u4f7f\u7528\u7387\u9ad8\u5417\uff1f"),(0,o.yg)("p",null,"\u6211\u4eec\u8fd8\u662f\u8981\u56de\u5230\u5e73\u5747\u8d1f\u8f7d\u7684\u542b\u4e49\u4e0a\u6765\uff0c\u5e73\u5747\u8d1f\u8f7d\u662f\u6307\u5355\u4f4d\u65f6\u95f4\u5185\uff0c\u5904\u4e8e\u53ef\u8fd0\u884c\u72b6\u6001\u548c\u4e0d\u53ef\u4e2d\u65ad\u72b6\u6001\u7684\u8fdb\u7a0b\u6570\u3002\u6240\u4ee5\uff0c\u5b83\u4e0d\u4ec5\u5305\u62ec\u4e86",(0,o.yg)("strong",{parentName:"p"},"\u6b63\u5728\u4f7f\u7528CPU\u7684\u8fdb\u7a0b"),"\uff0c\u8fd8\u5305\u62ec",(0,o.yg)("strong",{parentName:"p"},"\u7b49\u5f85CPU\u548c\u7b49\u5f85I/O\u7684\u8fdb\u7a0b"),"\u3002"),(0,o.yg)("blockquote",null,(0,o.yg)("p",{parentName:"blockquote"},"\u800cCPU\u4f7f\u7528\u7387\uff0c\u662f\u5355\u4f4d\u65f6\u95f4\u5185CPU\u7e41\u5fd9\u60c5\u51b5\u7684\u7edf\u8ba1\uff0c\u8ddf\u5e73\u5747\u8d1f\u8f7d\u5e76\u4e0d\u4e00\u5b9a\u5b8c\u5168\u5bf9\u5e94\u3002\u6bd4\u5982\uff1a"),(0,o.yg)("ul",{parentName:"blockquote"},(0,o.yg)("li",{parentName:"ul"},"CPU\u5bc6\u96c6\u578b\u8fdb\u7a0b\uff0c\u4f7f\u7528\u5927\u91cfCPU\u4f1a\u5bfc\u81f4\u5e73\u5747\u8d1f\u8f7d\u5347\u9ad8\uff0c\u6b64\u65f6\u4e24\u8005\u662f\u4e00\u81f4\u7684\u3002"),(0,o.yg)("li",{parentName:"ul"},"I/O\u5bc6\u96c6\u578b\u8fdb\u7a0b\uff0c\u7b49\u5f85I/O\u4e5f\u4f1a\u5bfc\u81f4\u5e73\u5747\u8d1f\u8f7d\u5347\u9ad8\uff0c\u4f46CPU\u4f7f\u7528\u7387\u4e0d\u4e00\u5b9a\u5f88\u9ad8\u3002"),(0,o.yg)("li",{parentName:"ul"},"\u5927\u91cf\u7b49\u5f85CPU\u7684\u8fdb\u7a0b\u8c03\u5ea6\u4e5f\u4f1a\u5bfc\u81f4\u5e73\u5747\u8d1f\u8f7d\u5347\u9ad8\uff0c\u6b64\u65f6\u7684CPU\u4f7f\u7528\u7387\u4e5f\u4f1a\u6bd4\u8f83\u9ad8\u3002"))),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"\u90a3\u4e48\uff0c\u5728\u5b9e\u9645\u751f\u4ea7\u73af\u5883\u4e2d\uff0c\u5e73\u5747\u8d1f\u8f7d\u591a\u9ad8\u65f6\uff0c\u9700\u8981\u6211\u4eec\u91cd\u70b9\u5173\u6ce8\u5462\uff1f")),(0,o.yg)("p",null,"\u5728\u6211\u770b\u6765\uff0c",(0,o.yg)("strong",{parentName:"p"},"\u5f53\u5e73\u5747\u8d1f\u8f7d\u9ad8\u4e8e\u903b\u8f91CPU\u6570\u91cf\u768470%\u7684\u65f6\u5019"),"\uff0c\u4f60\u5c31\u5e94\u8be5\u5206\u6790\u6392\u67e5\u8d1f\u8f7d\u9ad8\u7684\u95ee\u9898\u4e86\u3002\u4e00\u65e6\u8d1f\u8f7d\u8fc7\u9ad8\uff0c\u5c31\u53ef\u80fd\u5bfc\u81f4\u8fdb\u7a0b\u54cd\u5e94\u53d8\u6162\uff0c\u8fdb\u800c\u5f71\u54cd\u670d\u52a1\u7684\u6b63\u5e38\u529f\u80fd\u3002"),(0,o.yg)("p",null,"\u4f46\u662f\uff0c70%\u8fd9\u4e2a\u6570\u5b57\u5e76\u4e0d\u662f\u7edd\u5bf9\u7684\uff0c\u6700\u63a8\u8350\u7684\u65b9\u6cd5\uff0c\u8fd8\u662f\u628a\u7cfb\u7edf\u7684\u5e73\u5747\u8d1f\u8f7d\u76d1\u63a7\u8d77\u6765\uff0c\u7136\u540e\u6839\u636e\u66f4\u591a\u7684\u5386\u53f2\u6570\u636e\uff0c\u5224\u65ad\u8d1f\u8f7d\u7684\u53d8\u5316\u8d8b\u52bf\u3002\u5f53\u53d1\u73b0\u8d1f\u8f7d\u6709\u660e\u663e\u5347\u9ad8\u8d8b\u52bf\u65f6\uff0c\u6bd4\u5982\u8bf4\u8d1f\u8f7d\u7ffb\u500d\u4e86\uff0c\u4f60\u518d\u53bb\u505a\u5206\u6790\u548c\u8c03\u67e5\u3002"),(0,o.yg)("p",null,"\u83b7\u53d6\u7cfb\u7edf\u5e73\u5747\u8d1f\u8f7d"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-shell"},"cat /proc/loadavg\n# 0.32 0.29 0.13 1/357 1909\n")),(0,o.yg)("p",null,"\u4e00\u822c\u6765\u8bf4\u6bcf\u4e2aCPU\u7684\u5f53\u524d\u6d3b\u52a8\u8fdb\u7a0b\u6570\u4e0d\u5927\u4e8e3\u90a3\u4e48\u7cfb\u7edf\u7684\u6027\u80fd\u5c31\u662f\u826f\u597d\u7684\u3002\u5982\u679c\u6bcf\u4e2aCPU\u7684\u4efb\u52a1\u6570\u5927\u4e8e5\uff0c\u90a3\u4e48\u5c31\u8868\u660e\u673a\u5668\u7684\u6027\u80fd\u6709\u4e25\u91cd\u95ee\u9898\u3002"),(0,o.yg)("p",null,"\u5bf9\u4e8e\u4e0a\u9762\u7684\u4f8b\u5b50\u6765\u8bf4\uff0c\u5047\u8bbe\u7cfb\u7edf\u67098\u4e2aCPU\uff0c\u90a3\u4e48\u5176\u6bcf\u4e2aCPU\u57281\u5206\u949f\u5185\u7684\u8fdb\u7a0b\u6570\u4e3a\uff1a0.32/8=0.04\u3002"),(0,o.yg)("p",null,"\u5982\u4f55\u83b7\u53d6CPU\u6570\u91cf\u5462\uff1f\u4e0d\u540c\u7684\u64cd\u4f5c\u7cfb\u7edf\u7684\u53ef\u80fd\u4e0d\u592a\u4e00\u6837\u3002"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-shell"},'# Euler OS 2.0 SP8\ncat /proc/cpuinfo | grep processor | wc -l\n# Centos 7\n# Ubuntu 22.04.3 LTS\ncat /proc/cpuinfo | grep "model name" | wc -l\n')))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f9b897e3.cee8415a.js b/assets/js/f9b897e3.76ac1e9c.js similarity index 98% rename from assets/js/f9b897e3.cee8415a.js rename to assets/js/f9b897e3.76ac1e9c.js index 401cb521b..dd4a53f47 100644 --- a/assets/js/f9b897e3.cee8415a.js +++ b/assets/js/f9b897e3.76ac1e9c.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3006],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>m});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var u=n.createContext({}),l=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},p=function(e){var t=l(e.components);return n.createElement(u.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,i=e.originalType,u=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),s=l(r),d=a,m=s["".concat(u,".").concat(d)]||s[d]||y[d]||i;return r?n.createElement(m,o(o({ref:t},p),{},{components:r})):n.createElement(m,o({ref:t},p))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=r.length,o=new Array(i);o[0]=d;var c={};for(var u in t)hasOwnProperty.call(t,u)&&(c[u]=t[u]);c.originalType=e,c[s]="string"==typeof e?e:a,o[1]=c;for(var l=2;l{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>o,default:()=>y,frontMatter:()=>i,metadata:()=>c,toc:()=>l});var n=r(8168),a=(r(6540),r(5680));const i={},o="\u8ba4\u8bc1",c={unversionedId:"study/back/\u4fe1\u606f\u5b89\u5168/\u8ba4\u8bc1",id:"study/back/\u4fe1\u606f\u5b89\u5168/\u8ba4\u8bc1",title:"\u8ba4\u8bc1",description:"\u53c2\u8003 Spring Security \u8ba4\u8bc1",source:"@site/docs/study/back/\u4fe1\u606f\u5b89\u5168/\u8ba4\u8bc1.md",sourceDirName:"study/back/\u4fe1\u606f\u5b89\u5168",slug:"/study/back/\u4fe1\u606f\u5b89\u5168/\u8ba4\u8bc1",permalink:"/docs/study/back/\u4fe1\u606f\u5b89\u5168/\u8ba4\u8bc1",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Oauth2",permalink:"/docs/study/back/\u4fe1\u606f\u5b89\u5168/Oauth2"},next:{title:"\u9632\u8303\u6f0f\u6d1e\u653b\u51fb",permalink:"/docs/study/back/\u4fe1\u606f\u5b89\u5168/\u9632\u8303\u6f0f\u6d1e\u653b\u51fb"}},u={},l=[{value:"\u8ba4\u8bc1\u673a\u5236",id:"\u8ba4\u8bc1\u673a\u5236",level:3}],p={toc:l},s="wrapper";function y(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"\u8ba4\u8bc1"},"\u8ba4\u8bc1"),(0,a.yg)("p",null,"\u53c2\u8003 ",(0,a.yg)("a",{parentName:"p",href:"https://springdoc.cn/spring-security/servlet/authentication/index.html#servlet-authentication-mechanisms"},"Spring Security \u8ba4\u8bc1")),(0,a.yg)("h3",{id:"\u8ba4\u8bc1\u673a\u5236"},"\u8ba4\u8bc1\u673a\u5236"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"Username \u548c Password - \u5982\u4f55\u7528\u7528\u6237\u540d/\u5bc6\u7801\u8fdb\u884c\u8ba4\u8bc1"),(0,a.yg)("li",{parentName:"ul"},"OAuth 2.0 Login - \u4f7f\u7528 OpenID Connect \u548c\u975e\u6807\u51c6\u7684 OAuth 2.0 \u767b\u5f55\uff08\u5373 GitHub\uff09\u7684 OAuth 2.0 \u767b\u5f55\u3002"),(0,a.yg)("li",{parentName:"ul"},"SAML 2.0 Login - SAML 2.0 \u767b\u5f55"),(0,a.yg)("li",{parentName:"ul"},"Central Authentication Server (CAS) - \u4e2d\u592e\u8ba4\u8bc1\u670d\u52a1\u5668\uff08CAS\uff09\u652f\u6301\u3002"),(0,a.yg)("li",{parentName:"ul"},"Remember Me - \u5982\u4f55\u8bb0\u4f4f\u4e00\u4e2a\u8fc7\u4e86 session \u6709\u6548\u671f\u7684\u7528\u6237\u3002"),(0,a.yg)("li",{parentName:"ul"},"JAAS Authentication - \u7528 JAAS \u8fdb\u884c\u8ba4\u8bc1"),(0,a.yg)("li",{parentName:"ul"},"Pre-Authentication Scenarios - \u4f7f\u7528\u5916\u90e8\u673a\u5236\uff08\u5982 SiteMinder \u6216 Java EE security\uff09\u8fdb\u884c\u8ba4\u8bc1\uff0c\u4f46\u4ecd\u4f7f\u7528 Spring Security \u8fdb\u884c\u6388\u6743\u5e76\u4fdd\u62a4\u5176\u514d\u53d7\u5e38\u89c1\u6f0f\u6d1e\u7684\u4fb5\u5bb3\u3002"),(0,a.yg)("li",{parentName:"ul"},"X509 Authentication - X509 \u8ba4\u8bc1")))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3006],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>m});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var u=n.createContext({}),l=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},p=function(e){var t=l(e.components);return n.createElement(u.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,i=e.originalType,u=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),s=l(r),d=a,m=s["".concat(u,".").concat(d)]||s[d]||y[d]||i;return r?n.createElement(m,o(o({ref:t},p),{},{components:r})):n.createElement(m,o({ref:t},p))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=r.length,o=new Array(i);o[0]=d;var c={};for(var u in t)hasOwnProperty.call(t,u)&&(c[u]=t[u]);c.originalType=e,c[s]="string"==typeof e?e:a,o[1]=c;for(var l=2;l{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>o,default:()=>y,frontMatter:()=>i,metadata:()=>c,toc:()=>l});var n=r(8168),a=(r(6540),r(5680));const i={},o="\u8ba4\u8bc1",c={unversionedId:"study/back/\u4fe1\u606f\u5b89\u5168/\u8ba4\u8bc1",id:"study/back/\u4fe1\u606f\u5b89\u5168/\u8ba4\u8bc1",title:"\u8ba4\u8bc1",description:"\u53c2\u8003 Spring Security \u8ba4\u8bc1",source:"@site/docs/study/back/\u4fe1\u606f\u5b89\u5168/\u8ba4\u8bc1.md",sourceDirName:"study/back/\u4fe1\u606f\u5b89\u5168",slug:"/study/back/\u4fe1\u606f\u5b89\u5168/\u8ba4\u8bc1",permalink:"/docs/study/back/\u4fe1\u606f\u5b89\u5168/\u8ba4\u8bc1",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Oauth2",permalink:"/docs/study/back/\u4fe1\u606f\u5b89\u5168/Oauth2"},next:{title:"\u9632\u8303\u6f0f\u6d1e\u653b\u51fb",permalink:"/docs/study/back/\u4fe1\u606f\u5b89\u5168/\u9632\u8303\u6f0f\u6d1e\u653b\u51fb"}},u={},l=[{value:"\u8ba4\u8bc1\u673a\u5236",id:"\u8ba4\u8bc1\u673a\u5236",level:3}],p={toc:l},s="wrapper";function y(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"\u8ba4\u8bc1"},"\u8ba4\u8bc1"),(0,a.yg)("p",null,"\u53c2\u8003 ",(0,a.yg)("a",{parentName:"p",href:"https://springdoc.cn/spring-security/servlet/authentication/index.html#servlet-authentication-mechanisms"},"Spring Security \u8ba4\u8bc1")),(0,a.yg)("h3",{id:"\u8ba4\u8bc1\u673a\u5236"},"\u8ba4\u8bc1\u673a\u5236"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"Username \u548c Password - \u5982\u4f55\u7528\u7528\u6237\u540d/\u5bc6\u7801\u8fdb\u884c\u8ba4\u8bc1"),(0,a.yg)("li",{parentName:"ul"},"OAuth 2.0 Login - \u4f7f\u7528 OpenID Connect \u548c\u975e\u6807\u51c6\u7684 OAuth 2.0 \u767b\u5f55\uff08\u5373 GitHub\uff09\u7684 OAuth 2.0 \u767b\u5f55\u3002"),(0,a.yg)("li",{parentName:"ul"},"SAML 2.0 Login - SAML 2.0 \u767b\u5f55"),(0,a.yg)("li",{parentName:"ul"},"Central Authentication Server (CAS) - \u4e2d\u592e\u8ba4\u8bc1\u670d\u52a1\u5668\uff08CAS\uff09\u652f\u6301\u3002"),(0,a.yg)("li",{parentName:"ul"},"Remember Me - \u5982\u4f55\u8bb0\u4f4f\u4e00\u4e2a\u8fc7\u4e86 session \u6709\u6548\u671f\u7684\u7528\u6237\u3002"),(0,a.yg)("li",{parentName:"ul"},"JAAS Authentication - \u7528 JAAS \u8fdb\u884c\u8ba4\u8bc1"),(0,a.yg)("li",{parentName:"ul"},"Pre-Authentication Scenarios - \u4f7f\u7528\u5916\u90e8\u673a\u5236\uff08\u5982 SiteMinder \u6216 Java EE security\uff09\u8fdb\u884c\u8ba4\u8bc1\uff0c\u4f46\u4ecd\u4f7f\u7528 Spring Security \u8fdb\u884c\u6388\u6743\u5e76\u4fdd\u62a4\u5176\u514d\u53d7\u5e38\u89c1\u6f0f\u6d1e\u7684\u4fb5\u5bb3\u3002"),(0,a.yg)("li",{parentName:"ul"},"X509 Authentication - X509 \u8ba4\u8bc1")))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/fa157919.24bd13ba.js b/assets/js/fa157919.9ae63740.js similarity index 99% rename from assets/js/fa157919.24bd13ba.js rename to assets/js/fa157919.9ae63740.js index 7c7105cfd..e0b194f5d 100644 --- a/assets/js/fa157919.24bd13ba.js +++ b/assets/js/fa157919.9ae63740.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1208],{5680:(e,t,r)=>{r.d(t,{xA:()=>c,yg:()=>g});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),u=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},c=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},y="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,l=e.originalType,p=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),y=u(r),d=a,g=y["".concat(p,".").concat(d)]||y[d]||s[d]||l;return r?n.createElement(g,i(i({ref:t},c),{},{components:r})):n.createElement(g,i({ref:t},c))}));function g(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=r.length,i=new Array(l);i[0]=d;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[y]="string"==typeof e?e:a,i[1]=o;for(var u=2;u{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>s,frontMatter:()=>l,metadata:()=>o,toc:()=>u});var n=r(8168),a=(r(6540),r(5680));const l={},i=void 0,o={unversionedId:"study/think/\u67b6\u6784/\u67b6\u6784",id:"study/think/\u67b6\u6784/\u67b6\u6784",title:"\u67b6\u6784",description:"\u5b9a\u4e49",source:"@site/docs/study/think/\u67b6\u6784/\u67b6\u6784.md",sourceDirName:"study/think/\u67b6\u6784",slug:"/study/think/\u67b6\u6784/",permalink:"/docs/study/think/\u67b6\u6784/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u5e76\u53d1\u6a21\u578b",permalink:"/docs/study/think/\u5e76\u53d1\u6a21\u578b"},next:{title:"CAP\u7406\u8bba",permalink:"/docs/study/think/\u67b6\u6784/CAP\u7406\u8bba"}},p={},u=[{value:"\u5b9a\u4e49",id:"\u5b9a\u4e49",level:3},{value:"\u5206\u7c7b",id:"\u5206\u7c7b",level:3},{value:"\u4ea7\u54c1\u67b6\u6784",id:"\u4ea7\u54c1\u67b6\u6784",level:4},{value:"\u8f6f\u4ef6\u67b6\u6784",id:"\u8f6f\u4ef6\u67b6\u6784",level:4},{value:"\u67b6\u6784\u5e08\u7684\u80fd\u529b",id:"\u67b6\u6784\u5e08\u7684\u80fd\u529b",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],c={toc:u},y="wrapper";function s(e){let{components:t,...l}=e;return(0,a.yg)(y,(0,n.A)({},c,l,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u5b9a\u4e49"},"\u5b9a\u4e49"),(0,a.yg)("p",null,"\u67b6\u6784\u8fd9\u4e2a\u8bcd\u6700\u65e9\u662f\u8ddf\u968f\u7740\u5efa\u7b51\u51fa\u73b0\u7684\uff0c\u8fdb\u5165\u5230\u8f6f\u4ef6\u884c\u4e1a\u540e\uff0c\u5b83\u7684\u542b\u4e49\u6709\u4e86\u4e00\u4e9b\u53d8\u5316\uff0c\u4f46\u6700\u57fa\u7840\u7684\u542b\u4e49\u8fd8\u662f\u6ca1\u6709\u53d8\u7684\u3002\u672c\u8d28\u4e0a\u6765\u8bf4\uff0c\u67b6\u6784\u662f\u4e00\u4e2a\u8bbe\u8ba1\u52a8\u4f5c\u548c\u5b9e\u73b0\u52a8\u4f5c\uff1b\u8bbe\u8ba1\u52a8\u4f5c\u63cf\u8ff0\u7684\u662f\u52fe\u52d2\u51fa\u6ee1\u8db3\u5ba2\u6237\u6218\u7565\u89c4\u5212\u9700\u6c42\u7684\u4ea7\u54c1\uff1b\u5b9e\u73b0\u52a8\u4f5c\u63cf\u8ff0\u7684\u662f\u5c06\u6784\u4ef6\u7ec4\u5408\u6210\u7ed3\u6784\u7684\u8fc7\u7a0b\u3002"),(0,a.yg)("h3",{id:"\u5206\u7c7b"},"\u5206\u7c7b"),(0,a.yg)("p",null,"\u4f9d\u636e\u67b6\u6784\u7684\u5b9a\u4e49\uff0c\u53ef\u4ee5\u5c06\u67b6\u6784\u5206\u7c7b\u4e3a\u4ea7\u54c1\u67b6\u6784\u548c\u8f6f\u4ef6\u67b6\u6784\u4e24\u4e2a\u5927\u7c7b\u3002\n\u5728\u8fd9\u4e24\u4e2a\u5927\u7c7b\u4e0b\uff0c\u8fd8\u53ef\u4ee5\u7ee7\u7eed\u5212\u5206\u5b50\u7c7b\uff0c\u5982\u4e0b\uff1a"),(0,a.yg)("h4",{id:"\u4ea7\u54c1\u67b6\u6784"},"\u4ea7\u54c1\u67b6\u6784"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"\u4e1a\u52a1\u67b6\u6784")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"\u5e94\u7528\u67b6\u6784")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"\u89e3\u51b3\u65b9\u6848\u67b6\u6784"))),(0,a.yg)("h4",{id:"\u8f6f\u4ef6\u67b6\u6784"},"\u8f6f\u4ef6\u67b6\u6784"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"\u6570\u636e\u67b6\u6784")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"\u57fa\u7840\u7ed3\u6784\u67b6\u6784")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"\u7279\u5b9a\u6280\u672f\u67b6\u6784"))),(0,a.yg)("p",null,"\u4e0a\u9762\u53ea\u662f\u5217\u51fa\u4e86\u4e00\u90e8\u5206\u67b6\u6784\u5b50\u5206\u7c7b\uff0c\u7406\u8bba\u4e0a\u8fd8\u53ef\u4ee5\u7ee7\u7eed\u5212\u5206\uff0c\u4f46\u5728\u5927\u591a\u6570\u7684\u5b9e\u9645\u751f\u4ea7\u4e2d\uff0c\u901a\u5e38\u4e0d\u4f1a\u6709\u8fd9\u4e48\u8be6\u7ec6\u7684\u5206\u7c7b\uff0c\u5e38\u6001\u662f\u8f6f\u4ef6\u67b6\u6784\u4e0e\u4ea7\u54c1\u67b6\u6784\u90fd\u7531\u4e00\u4e2a\u4eba\u8d1f\u8d23\u5b9e\u73b0\u3002"),(0,a.yg)("h3",{id:"\u67b6\u6784\u5e08\u7684\u80fd\u529b"},"\u67b6\u6784\u5e08\u7684\u80fd\u529b"),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"1",src:r(6072).A,width:"750",height:"432"})),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"https://chunsoft.blog.csdn.net/article/details/112793766"},"\u67b6\u6784\u7684\u672c\u8d28"))))}s.isMDXComponent=!0},6072:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/1-13c1c55dd9336f3367f2bd51a8149288.jpg"}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1208],{5680:(e,t,r)=>{r.d(t,{xA:()=>c,yg:()=>g});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),u=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},c=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},y="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,l=e.originalType,p=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),y=u(r),d=a,g=y["".concat(p,".").concat(d)]||y[d]||s[d]||l;return r?n.createElement(g,i(i({ref:t},c),{},{components:r})):n.createElement(g,i({ref:t},c))}));function g(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=r.length,i=new Array(l);i[0]=d;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[y]="string"==typeof e?e:a,i[1]=o;for(var u=2;u{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>s,frontMatter:()=>l,metadata:()=>o,toc:()=>u});var n=r(8168),a=(r(6540),r(5680));const l={},i=void 0,o={unversionedId:"study/think/\u67b6\u6784/\u67b6\u6784",id:"study/think/\u67b6\u6784/\u67b6\u6784",title:"\u67b6\u6784",description:"\u5b9a\u4e49",source:"@site/docs/study/think/\u67b6\u6784/\u67b6\u6784.md",sourceDirName:"study/think/\u67b6\u6784",slug:"/study/think/\u67b6\u6784/",permalink:"/docs/study/think/\u67b6\u6784/",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u5e76\u53d1\u6a21\u578b",permalink:"/docs/study/think/\u5e76\u53d1\u6a21\u578b"},next:{title:"CAP\u7406\u8bba",permalink:"/docs/study/think/\u67b6\u6784/CAP\u7406\u8bba"}},p={},u=[{value:"\u5b9a\u4e49",id:"\u5b9a\u4e49",level:3},{value:"\u5206\u7c7b",id:"\u5206\u7c7b",level:3},{value:"\u4ea7\u54c1\u67b6\u6784",id:"\u4ea7\u54c1\u67b6\u6784",level:4},{value:"\u8f6f\u4ef6\u67b6\u6784",id:"\u8f6f\u4ef6\u67b6\u6784",level:4},{value:"\u67b6\u6784\u5e08\u7684\u80fd\u529b",id:"\u67b6\u6784\u5e08\u7684\u80fd\u529b",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],c={toc:u},y="wrapper";function s(e){let{components:t,...l}=e;return(0,a.yg)(y,(0,n.A)({},c,l,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u5b9a\u4e49"},"\u5b9a\u4e49"),(0,a.yg)("p",null,"\u67b6\u6784\u8fd9\u4e2a\u8bcd\u6700\u65e9\u662f\u8ddf\u968f\u7740\u5efa\u7b51\u51fa\u73b0\u7684\uff0c\u8fdb\u5165\u5230\u8f6f\u4ef6\u884c\u4e1a\u540e\uff0c\u5b83\u7684\u542b\u4e49\u6709\u4e86\u4e00\u4e9b\u53d8\u5316\uff0c\u4f46\u6700\u57fa\u7840\u7684\u542b\u4e49\u8fd8\u662f\u6ca1\u6709\u53d8\u7684\u3002\u672c\u8d28\u4e0a\u6765\u8bf4\uff0c\u67b6\u6784\u662f\u4e00\u4e2a\u8bbe\u8ba1\u52a8\u4f5c\u548c\u5b9e\u73b0\u52a8\u4f5c\uff1b\u8bbe\u8ba1\u52a8\u4f5c\u63cf\u8ff0\u7684\u662f\u52fe\u52d2\u51fa\u6ee1\u8db3\u5ba2\u6237\u6218\u7565\u89c4\u5212\u9700\u6c42\u7684\u4ea7\u54c1\uff1b\u5b9e\u73b0\u52a8\u4f5c\u63cf\u8ff0\u7684\u662f\u5c06\u6784\u4ef6\u7ec4\u5408\u6210\u7ed3\u6784\u7684\u8fc7\u7a0b\u3002"),(0,a.yg)("h3",{id:"\u5206\u7c7b"},"\u5206\u7c7b"),(0,a.yg)("p",null,"\u4f9d\u636e\u67b6\u6784\u7684\u5b9a\u4e49\uff0c\u53ef\u4ee5\u5c06\u67b6\u6784\u5206\u7c7b\u4e3a\u4ea7\u54c1\u67b6\u6784\u548c\u8f6f\u4ef6\u67b6\u6784\u4e24\u4e2a\u5927\u7c7b\u3002\n\u5728\u8fd9\u4e24\u4e2a\u5927\u7c7b\u4e0b\uff0c\u8fd8\u53ef\u4ee5\u7ee7\u7eed\u5212\u5206\u5b50\u7c7b\uff0c\u5982\u4e0b\uff1a"),(0,a.yg)("h4",{id:"\u4ea7\u54c1\u67b6\u6784"},"\u4ea7\u54c1\u67b6\u6784"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"\u4e1a\u52a1\u67b6\u6784")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"\u5e94\u7528\u67b6\u6784")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"\u89e3\u51b3\u65b9\u6848\u67b6\u6784"))),(0,a.yg)("h4",{id:"\u8f6f\u4ef6\u67b6\u6784"},"\u8f6f\u4ef6\u67b6\u6784"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"\u6570\u636e\u67b6\u6784")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"\u57fa\u7840\u7ed3\u6784\u67b6\u6784")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"\u7279\u5b9a\u6280\u672f\u67b6\u6784"))),(0,a.yg)("p",null,"\u4e0a\u9762\u53ea\u662f\u5217\u51fa\u4e86\u4e00\u90e8\u5206\u67b6\u6784\u5b50\u5206\u7c7b\uff0c\u7406\u8bba\u4e0a\u8fd8\u53ef\u4ee5\u7ee7\u7eed\u5212\u5206\uff0c\u4f46\u5728\u5927\u591a\u6570\u7684\u5b9e\u9645\u751f\u4ea7\u4e2d\uff0c\u901a\u5e38\u4e0d\u4f1a\u6709\u8fd9\u4e48\u8be6\u7ec6\u7684\u5206\u7c7b\uff0c\u5e38\u6001\u662f\u8f6f\u4ef6\u67b6\u6784\u4e0e\u4ea7\u54c1\u67b6\u6784\u90fd\u7531\u4e00\u4e2a\u4eba\u8d1f\u8d23\u5b9e\u73b0\u3002"),(0,a.yg)("h3",{id:"\u67b6\u6784\u5e08\u7684\u80fd\u529b"},"\u67b6\u6784\u5e08\u7684\u80fd\u529b"),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"1",src:r(6072).A,width:"750",height:"432"})),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"https://chunsoft.blog.csdn.net/article/details/112793766"},"\u67b6\u6784\u7684\u672c\u8d28"))))}s.isMDXComponent=!0},6072:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/1-13c1c55dd9336f3367f2bd51a8149288.jpg"}}]); \ No newline at end of file diff --git a/assets/js/fb9c91a0.5698a5a7.js b/assets/js/fb9c91a0.f5d29b35.js similarity index 71% rename from assets/js/fb9c91a0.5698a5a7.js rename to assets/js/fb9c91a0.f5d29b35.js index 47f8e7830..2e7124020 100644 --- a/assets/js/fb9c91a0.5698a5a7.js +++ b/assets/js/fb9c91a0.f5d29b35.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2702],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),l=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),s=l(r),d=o,f=s["".concat(p,".").concat(d)]||s[d]||y[d]||a;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=d;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:o,c[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>c,default:()=>y,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var n=r(8168),o=(r(6540),r(5680));const a={},c="PKI",i={unversionedId:"study/encryption/PKI",id:"study/encryption/PKI",title:"PKI",description:"\u53c2\u8003",source:"@site/docs/study/encryption/PKI.md",sourceDirName:"study/encryption",slug:"/study/encryption/PKI",permalink:"/docs/study/encryption/PKI",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"HSM",permalink:"/docs/study/encryption/HSM"},next:{title:"SSL TLS HTTPS",permalink:"/docs/study/encryption/SSL_TLS"}},p={},l=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],u={toc:l},s="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"pki"},"PKI"),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/615409220"},"\u5bc6\u94a5\u7ba1\u7406\u4e0ePKI"))))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2702],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),l=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),s=l(r),d=o,f=s["".concat(p,".").concat(d)]||s[d]||y[d]||a;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=d;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:o,c[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>c,default:()=>y,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var n=r(8168),o=(r(6540),r(5680));const a={},c="PKI",i={unversionedId:"study/encryption/PKI",id:"study/encryption/PKI",title:"PKI",description:"PKI",source:"@site/docs/study/encryption/PKI.md",sourceDirName:"study/encryption",slug:"/study/encryption/PKI",permalink:"/docs/study/encryption/PKI",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"HSM",permalink:"/docs/study/encryption/HSM"},next:{title:"SSL TLS HTTPS",permalink:"/docs/study/encryption/SSL_TLS"}},p={},l=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],u={toc:l},s="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"pki"},"PKI"),(0,o.yg)("p",null,"PKI"),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/615409220"},"\u5bc6\u94a5\u7ba1\u7406\u4e0ePKI"))))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/fbc1a65b.5348b48d.js b/assets/js/fbc1a65b.24b4ac24.js similarity index 98% rename from assets/js/fbc1a65b.5348b48d.js rename to assets/js/fbc1a65b.24b4ac24.js index 7a558cb59..4ce5aa849 100644 --- a/assets/js/fbc1a65b.5348b48d.js +++ b/assets/js/fbc1a65b.24b4ac24.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6987],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),u=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),s=u(r),y=o,f=s["".concat(l,".").concat(y)]||s[y]||d[y]||a;return r?n.createElement(f,i(i({ref:t},p),{},{components:r})):n.createElement(f,i({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=y;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[s]="string"==typeof e?e:o,i[1]=c;for(var u=2;u{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={},i=void 0,c={unversionedId:"study/other/\u6807\u51c6\u540d\u79f0\u7f29\u5199",id:"study/other/\u6807\u51c6\u540d\u79f0\u7f29\u5199",title:"\u6807\u51c6\u540d\u79f0\u7f29\u5199",description:"\u56fd\u5185\u6807\u51c6",source:"@site/docs/study/other/\u6807\u51c6\u540d\u79f0\u7f29\u5199.md",sourceDirName:"study/other",slug:"/study/other/\u6807\u51c6\u540d\u79f0\u7f29\u5199",permalink:"/docs/study/other/\u6807\u51c6\u540d\u79f0\u7f29\u5199",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u5b57\u8282\u5e8f Big Endian Little Endian",permalink:"/docs/study/other/\u5b57\u8282\u5e8f"}},l={},u=[{value:"\u56fd\u5185\u6807\u51c6",id:"\u56fd\u5185\u6807\u51c6",level:3}],p={toc:u},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u56fd\u5185\u6807\u51c6"},"\u56fd\u5185\u6807\u51c6"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"GB/T\uff1a\u4e2d\u56fd\u7684\u56fd\u5bb6\u7684\u63a8\u8350\u6807\u51c6\uff0c\u56fd\u6807"),(0,o.yg)("li",{parentName:"ul"},"GM/T\uff1a\u4e2d\u56fd\u5bc6\u7801\u884c\u4e1a\u7684\u63a8\u8350\u6807\u51c6\uff0c\u56fd\u5bc6"),(0,o.yg)("li",{parentName:"ul"},"GA/T\uff1a\u4e2d\u56fd\u516c\u5171\u5b89\u5168\u884c\u4e1a\u7684\u63a8\u8350\u6807\u51c6\uff0c\u56fd\u5b89")),(0,o.yg)("p",null,(0,o.yg)("a",{parentName:"p",href:"https://github.com/guanzhi/GM-Standards"},"\u4e2d\u534e\u4eba\u6c11\u5171\u548c\u56fd\u5bc6\u7801\u884c\u4e1a\u6807\u51c6(GM/T)\u6587\u672c")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6987],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),u=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),s=u(r),y=o,f=s["".concat(l,".").concat(y)]||s[y]||d[y]||a;return r?n.createElement(f,i(i({ref:t},p),{},{components:r})):n.createElement(f,i({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=y;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[s]="string"==typeof e?e:o,i[1]=c;for(var u=2;u{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={},i=void 0,c={unversionedId:"study/other/\u6807\u51c6\u540d\u79f0\u7f29\u5199",id:"study/other/\u6807\u51c6\u540d\u79f0\u7f29\u5199",title:"\u6807\u51c6\u540d\u79f0\u7f29\u5199",description:"\u56fd\u5185\u6807\u51c6",source:"@site/docs/study/other/\u6807\u51c6\u540d\u79f0\u7f29\u5199.md",sourceDirName:"study/other",slug:"/study/other/\u6807\u51c6\u540d\u79f0\u7f29\u5199",permalink:"/docs/study/other/\u6807\u51c6\u540d\u79f0\u7f29\u5199",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u5b57\u8282\u5e8f Big Endian Little Endian",permalink:"/docs/study/other/\u5b57\u8282\u5e8f"}},l={},u=[{value:"\u56fd\u5185\u6807\u51c6",id:"\u56fd\u5185\u6807\u51c6",level:3}],p={toc:u},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u56fd\u5185\u6807\u51c6"},"\u56fd\u5185\u6807\u51c6"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"GB/T\uff1a\u4e2d\u56fd\u7684\u56fd\u5bb6\u7684\u63a8\u8350\u6807\u51c6\uff0c\u56fd\u6807"),(0,o.yg)("li",{parentName:"ul"},"GM/T\uff1a\u4e2d\u56fd\u5bc6\u7801\u884c\u4e1a\u7684\u63a8\u8350\u6807\u51c6\uff0c\u56fd\u5bc6"),(0,o.yg)("li",{parentName:"ul"},"GA/T\uff1a\u4e2d\u56fd\u516c\u5171\u5b89\u5168\u884c\u4e1a\u7684\u63a8\u8350\u6807\u51c6\uff0c\u56fd\u5b89")),(0,o.yg)("p",null,(0,o.yg)("a",{parentName:"p",href:"https://github.com/guanzhi/GM-Standards"},"\u4e2d\u534e\u4eba\u6c11\u5171\u548c\u56fd\u5bc6\u7801\u884c\u4e1a\u6807\u51c6(GM/T)\u6587\u672c")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ff928e4a.0389e650.js b/assets/js/ff928e4a.c57b728a.js similarity index 98% rename from assets/js/ff928e4a.0389e650.js rename to assets/js/ff928e4a.c57b728a.js index 1b63d1898..d85ad7fdb 100644 --- a/assets/js/ff928e4a.0389e650.js +++ b/assets/js/ff928e4a.c57b728a.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1958],{5680:(e,n,t)=>{t.d(n,{xA:()=>l,yg:()=>y});var r=t(6540);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function a(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var c=r.createContext({}),p=function(e){var n=r.useContext(c),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},l=function(e){var n=p(e.components);return r.createElement(c.Provider,{value:n},e.children)},s="mdxType",f={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},d=r.forwardRef((function(e,n){var t=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,l=u(e,["components","mdxType","originalType","parentName"]),s=p(t),d=o,y=s["".concat(c,".").concat(d)]||s[d]||f[d]||a;return t?r.createElement(y,i(i({ref:n},l),{},{components:t})):r.createElement(y,i({ref:n},l))}));function y(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var a=t.length,i=new Array(a);i[0]=d;var u={};for(var c in n)hasOwnProperty.call(n,c)&&(u[c]=n[c]);u.originalType=e,u[s]="string"==typeof e?e:o,i[1]=u;for(var p=2;p{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>i,default:()=>f,frontMatter:()=>a,metadata:()=>u,toc:()=>p});var r=t(8168),o=(t(6540),t(5680));const a={},i=void 0,u={unversionedId:"study/back/spring/@Configuration",id:"study/back/spring/@Configuration",title:"@Configuration",description:"\u5728 Spring \u6846\u67b6\u4e2d\uff0c@Configuration \u6ce8\u89e3\u7528\u4e8e\u58f0\u660e\u4e00\u4e2a Java \u7c7b\u4f5c\u4e3a\u914d\u7f6e\u7c7b\uff0c\u5b83\u66ff\u4ee3\u4e86\u4f20\u7edf\u7684 XML \u914d\u7f6e\u65b9\u5f0f\u3002\u901a\u8fc7@Configuration \u6ce8\u89e3\u6807\u8bb0\u7684\u7c7b\u53ef\u4ee5\u5305\u542b@Bean \u6ce8\u89e3\uff0c\u7528\u4e8e\u5b9a\u4e49 Spring \u5bb9\u5668\u4e2d\u7684 Bean \u5bf9\u8c61\u3002",source:"@site/docs/study/back/spring/@Configuration.md",sourceDirName:"study/back/spring",slug:"/study/back/spring/@Configuration",permalink:"/docs/study/back/spring/@Configuration",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"RocketMQ",permalink:"/docs/study/back/mq/RocketMQ"},next:{title:"@Resource@Autowired",permalink:"/docs/study/back/spring/@Resource@Autowired"}},c={},p=[{value:"proxyBeanMethods",id:"proxybeanmethods",level:3},{value:"@bean",id:"bean",level:3}],l={toc:p},s="wrapper";function f(e){let{components:n,...t}=e;return(0,o.yg)(s,(0,r.A)({},l,t,{components:n,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"\u5728 Spring \u6846\u67b6\u4e2d\uff0c@Configuration \u6ce8\u89e3\u7528\u4e8e\u58f0\u660e\u4e00\u4e2a Java \u7c7b\u4f5c\u4e3a\u914d\u7f6e\u7c7b\uff0c\u5b83\u66ff\u4ee3\u4e86\u4f20\u7edf\u7684 XML \u914d\u7f6e\u65b9\u5f0f\u3002\u901a\u8fc7@Configuration \u6ce8\u89e3\u6807\u8bb0\u7684\u7c7b\u53ef\u4ee5\u5305\u542b@Bean \u6ce8\u89e3\uff0c\u7528\u4e8e\u5b9a\u4e49 Spring \u5bb9\u5668\u4e2d\u7684 Bean \u5bf9\u8c61\u3002"),(0,o.yg)("h3",{id:"proxybeanmethods"},"proxyBeanMethods"),(0,o.yg)("p",null,"@Configuration \u6ce8\u89e3\u4e2d\uff0c\u6709\u4e00\u4e2a\u975e\u5e38\u91cd\u8981\u7684\u5c5e\u6027 proxyBeanMethods\uff0c\u5b83\u63a7\u5236\u7740@Configuration \u7c7b\u4e2d@Bean \u65b9\u6cd5\u7684\u4ee3\u7406\u884c\u4e3a\u3002"),(0,o.yg)("p",null,"\u8be5\u5c5e\u6027\u63a5\u53d7\u4e00\u4e2a\u5e03\u5c14\u503c\uff0c\u8bbe\u7f6e\u4e3a true \u8868\u793a\u542f\u7528\u4ee3\u7406\u6a21\u5f0f\uff0c\u8bbe\u7f6e\u4e3a false \u8868\u793a\u7981\u7528\u4ee3\u7406\u6a21\u5f0f\u3002"),(0,o.yg)("p",null,"\u5728@Configuration \u7c7b\u4e2d\uff0c\u5f53 proxyBeanMethods \u5c5e\u6027\u8bbe\u7f6e\u4e3a true \u65f6\uff0cSpring \u4f1a\u5bf9@Configuration \u7c7b\u8fdb\u884c CGLIB \u4ee3\u7406\u3002"),(0,o.yg)("p",null,"\u5bf9@Configuration \u7c7b\u8fdb\u884c\u4ee3\u7406\u540e\uff0c\u8c03\u7528@Bean \u65b9\u6cd5\u65f6\uff0cSpring \u4f1a\u68c0\u67e5\u662f\u5426\u5df2\u7ecf\u5b58\u5728\u8be5 Bean\uff0c\u5982\u679c\u5b58\u5728\uff0c\u5219\u76f4\u63a5\u8fd4\u56de\u5df2\u5b58\u5728\u7684 Bean\uff0c\u5426\u5219\u8c03\u7528\u65b9\u6cd5\u521b\u5efa\u65b0\u7684 Bean \u5e76\u7f13\u5b58\u8d77\u6765\u3002"),(0,o.yg)("p",null,"\u5728\u7981\u7528\u4ee3\u7406\u6a21\u5f0f\u4e0b\uff0cSpring \u5bb9\u5668\u6bcf\u6b21\u8c03\u7528@Bean \u65b9\u6cd5\u65f6\u90fd\u4f1a\u6267\u884c\u4e00\u6b21\u65b9\u6cd5\u4f53\uff0c\u4e0d\u4f1a\u7f13\u5b58 Bean \u5bf9\u8c61\u3002"),(0,o.yg)("h3",{id:"bean"},"@bean"),(0,o.yg)("p",null,"@bean\uff1a\u7ed9\u5bb9\u5668\u4e2d\u6dfb\u52a0\u7ec4\u4ef6\uff0c\u4ee5\u65b9\u6cd5\u540d\u4f5c\u4e3a\u7ec4\u4ef6\u7684 id\uff0c\u8fd4\u56de\u7c7b\u578b\u4e3a\u7ec4\u4ef6\u7c7b\u578b\uff0c\u8fd4\u56de\u7684\u503c\uff0c\u5c31\u662f\u7ec4\u4ef6\u5728\u5bb9\u5668\u4e2d\u7684\u5b9e\u4f8b"))}f.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1958],{5680:(e,n,t)=>{t.d(n,{xA:()=>l,yg:()=>y});var r=t(6540);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function a(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var c=r.createContext({}),p=function(e){var n=r.useContext(c),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},l=function(e){var n=p(e.components);return r.createElement(c.Provider,{value:n},e.children)},s="mdxType",f={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},d=r.forwardRef((function(e,n){var t=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,l=u(e,["components","mdxType","originalType","parentName"]),s=p(t),d=o,y=s["".concat(c,".").concat(d)]||s[d]||f[d]||a;return t?r.createElement(y,i(i({ref:n},l),{},{components:t})):r.createElement(y,i({ref:n},l))}));function y(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var a=t.length,i=new Array(a);i[0]=d;var u={};for(var c in n)hasOwnProperty.call(n,c)&&(u[c]=n[c]);u.originalType=e,u[s]="string"==typeof e?e:o,i[1]=u;for(var p=2;p{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>i,default:()=>f,frontMatter:()=>a,metadata:()=>u,toc:()=>p});var r=t(8168),o=(t(6540),t(5680));const a={},i=void 0,u={unversionedId:"study/back/spring/@Configuration",id:"study/back/spring/@Configuration",title:"@Configuration",description:"\u5728 Spring \u6846\u67b6\u4e2d\uff0c@Configuration \u6ce8\u89e3\u7528\u4e8e\u58f0\u660e\u4e00\u4e2a Java \u7c7b\u4f5c\u4e3a\u914d\u7f6e\u7c7b\uff0c\u5b83\u66ff\u4ee3\u4e86\u4f20\u7edf\u7684 XML \u914d\u7f6e\u65b9\u5f0f\u3002\u901a\u8fc7@Configuration \u6ce8\u89e3\u6807\u8bb0\u7684\u7c7b\u53ef\u4ee5\u5305\u542b@Bean \u6ce8\u89e3\uff0c\u7528\u4e8e\u5b9a\u4e49 Spring \u5bb9\u5668\u4e2d\u7684 Bean \u5bf9\u8c61\u3002",source:"@site/docs/study/back/spring/@Configuration.md",sourceDirName:"study/back/spring",slug:"/study/back/spring/@Configuration",permalink:"/docs/study/back/spring/@Configuration",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"RocketMQ",permalink:"/docs/study/back/mq/RocketMQ"},next:{title:"@Resource@Autowired",permalink:"/docs/study/back/spring/@Resource@Autowired"}},c={},p=[{value:"proxyBeanMethods",id:"proxybeanmethods",level:3},{value:"@bean",id:"bean",level:3}],l={toc:p},s="wrapper";function f(e){let{components:n,...t}=e;return(0,o.yg)(s,(0,r.A)({},l,t,{components:n,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"\u5728 Spring \u6846\u67b6\u4e2d\uff0c@Configuration \u6ce8\u89e3\u7528\u4e8e\u58f0\u660e\u4e00\u4e2a Java \u7c7b\u4f5c\u4e3a\u914d\u7f6e\u7c7b\uff0c\u5b83\u66ff\u4ee3\u4e86\u4f20\u7edf\u7684 XML \u914d\u7f6e\u65b9\u5f0f\u3002\u901a\u8fc7@Configuration \u6ce8\u89e3\u6807\u8bb0\u7684\u7c7b\u53ef\u4ee5\u5305\u542b@Bean \u6ce8\u89e3\uff0c\u7528\u4e8e\u5b9a\u4e49 Spring \u5bb9\u5668\u4e2d\u7684 Bean \u5bf9\u8c61\u3002"),(0,o.yg)("h3",{id:"proxybeanmethods"},"proxyBeanMethods"),(0,o.yg)("p",null,"@Configuration \u6ce8\u89e3\u4e2d\uff0c\u6709\u4e00\u4e2a\u975e\u5e38\u91cd\u8981\u7684\u5c5e\u6027 proxyBeanMethods\uff0c\u5b83\u63a7\u5236\u7740@Configuration \u7c7b\u4e2d@Bean \u65b9\u6cd5\u7684\u4ee3\u7406\u884c\u4e3a\u3002"),(0,o.yg)("p",null,"\u8be5\u5c5e\u6027\u63a5\u53d7\u4e00\u4e2a\u5e03\u5c14\u503c\uff0c\u8bbe\u7f6e\u4e3a true \u8868\u793a\u542f\u7528\u4ee3\u7406\u6a21\u5f0f\uff0c\u8bbe\u7f6e\u4e3a false \u8868\u793a\u7981\u7528\u4ee3\u7406\u6a21\u5f0f\u3002"),(0,o.yg)("p",null,"\u5728@Configuration \u7c7b\u4e2d\uff0c\u5f53 proxyBeanMethods \u5c5e\u6027\u8bbe\u7f6e\u4e3a true \u65f6\uff0cSpring \u4f1a\u5bf9@Configuration \u7c7b\u8fdb\u884c CGLIB \u4ee3\u7406\u3002"),(0,o.yg)("p",null,"\u5bf9@Configuration \u7c7b\u8fdb\u884c\u4ee3\u7406\u540e\uff0c\u8c03\u7528@Bean \u65b9\u6cd5\u65f6\uff0cSpring \u4f1a\u68c0\u67e5\u662f\u5426\u5df2\u7ecf\u5b58\u5728\u8be5 Bean\uff0c\u5982\u679c\u5b58\u5728\uff0c\u5219\u76f4\u63a5\u8fd4\u56de\u5df2\u5b58\u5728\u7684 Bean\uff0c\u5426\u5219\u8c03\u7528\u65b9\u6cd5\u521b\u5efa\u65b0\u7684 Bean \u5e76\u7f13\u5b58\u8d77\u6765\u3002"),(0,o.yg)("p",null,"\u5728\u7981\u7528\u4ee3\u7406\u6a21\u5f0f\u4e0b\uff0cSpring \u5bb9\u5668\u6bcf\u6b21\u8c03\u7528@Bean \u65b9\u6cd5\u65f6\u90fd\u4f1a\u6267\u884c\u4e00\u6b21\u65b9\u6cd5\u4f53\uff0c\u4e0d\u4f1a\u7f13\u5b58 Bean \u5bf9\u8c61\u3002"),(0,o.yg)("h3",{id:"bean"},"@bean"),(0,o.yg)("p",null,"@bean\uff1a\u7ed9\u5bb9\u5668\u4e2d\u6dfb\u52a0\u7ec4\u4ef6\uff0c\u4ee5\u65b9\u6cd5\u540d\u4f5c\u4e3a\u7ec4\u4ef6\u7684 id\uff0c\u8fd4\u56de\u7c7b\u578b\u4e3a\u7ec4\u4ef6\u7c7b\u578b\uff0c\u8fd4\u56de\u7684\u503c\uff0c\u5c31\u662f\u7ec4\u4ef6\u5728\u5bb9\u5668\u4e2d\u7684\u5b9e\u4f8b"))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ffb15ddc.4a21d931.js b/assets/js/ffb15ddc.554efaa0.js similarity index 98% rename from assets/js/ffb15ddc.4a21d931.js rename to assets/js/ffb15ddc.554efaa0.js index 48bd31f9d..6fa4c46ad 100644 --- a/assets/js/ffb15ddc.4a21d931.js +++ b/assets/js/ffb15ddc.554efaa0.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1120],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>m});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function p(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),l=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):p(p({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(i.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),s=l(r),y=a,m=s["".concat(i,".").concat(y)]||s[y]||d[y]||o;return r?n.createElement(m,p(p({ref:t},u),{},{components:r})):n.createElement(m,p({ref:t},u))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,p=new Array(o);p[0]=y;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[s]="string"==typeof e?e:a,p[1]=c;for(var l=2;l{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>p,default:()=>d,frontMatter:()=>o,metadata:()=>c,toc:()=>l});var n=r(8168),a=(r(6540),r(5680));const o={},p=void 0,c={unversionedId:"study/program/ETL/dataX",id:"study/program/ETL/dataX",title:"dataX",description:"\u6982\u8ff0",source:"@site/docs/study/program/ETL/dataX.md",sourceDirName:"study/program/ETL",slug:"/study/program/ETL/dataX",permalink:"/docs/study/program/ETL/dataX",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999752,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Dart \u5b66\u4e60\u8d44\u6599",permalink:"/docs/study/program/Dart/\u5b66\u4e60\u8d44\u6599"},next:{title:"flume",permalink:"/docs/study/program/ETL/flume"}},i={},l=[{value:"\u6982\u8ff0",id:"\u6982\u8ff0",level:3}],u={toc:l},s="wrapper";function d(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,a.yg)("p",null,"DataX \u662f\u963f\u91cc\u5df4\u5df4\u96c6\u56e2\u5185\u88ab\u5e7f\u6cdb\u4f7f\u7528\u7684",(0,a.yg)("strong",{parentName:"p"},"\u79bb\u7ebf\u6570\u636e\u540c\u6b65\u5de5\u5177/\u5e73\u53f0"),"\uff0c\u5b9e\u73b0\u5305\u62ec MySQL\u3001Oracle\u3001SqlServer\u3001Postgre\u3001HDFS\u3001Hive\u3001ADS\u3001HBase\u3001TableStore(OTS)\u3001MaxCompute(ODPS)\u3001DRDS \u7b49\u5404\u79cd\u5f02\u6784\u6570\u636e\u6e90\u4e4b\u95f4\u9ad8\u6548\u7684\u6570\u636e\u540c\u6b65\u529f\u80fd\u3002"),(0,a.yg)("p",null,(0,a.yg)("strong",{parentName:"p"},"\u5f00\u6e90\u5730\u5740"),"\uff1a",(0,a.yg)("a",{parentName:"p",href:"https://github.com/alibaba/DataX"},"https://github.com/alibaba/DataX")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1120],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>m});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function p(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),l=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):p(p({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(i.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),s=l(r),y=a,m=s["".concat(i,".").concat(y)]||s[y]||d[y]||o;return r?n.createElement(m,p(p({ref:t},u),{},{components:r})):n.createElement(m,p({ref:t},u))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,p=new Array(o);p[0]=y;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[s]="string"==typeof e?e:a,p[1]=c;for(var l=2;l{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>p,default:()=>d,frontMatter:()=>o,metadata:()=>c,toc:()=>l});var n=r(8168),a=(r(6540),r(5680));const o={},p=void 0,c={unversionedId:"study/program/ETL/dataX",id:"study/program/ETL/dataX",title:"dataX",description:"\u6982\u8ff0",source:"@site/docs/study/program/ETL/dataX.md",sourceDirName:"study/program/ETL",slug:"/study/program/ETL/dataX",permalink:"/docs/study/program/ETL/dataX",draft:!1,tags:[],version:"current",lastUpdatedAt:1719999946,formattedLastUpdatedAt:"2024\u5e747\u67083\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Dart \u5b66\u4e60\u8d44\u6599",permalink:"/docs/study/program/Dart/\u5b66\u4e60\u8d44\u6599"},next:{title:"flume",permalink:"/docs/study/program/ETL/flume"}},i={},l=[{value:"\u6982\u8ff0",id:"\u6982\u8ff0",level:3}],u={toc:l},s="wrapper";function d(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,a.yg)("p",null,"DataX \u662f\u963f\u91cc\u5df4\u5df4\u96c6\u56e2\u5185\u88ab\u5e7f\u6cdb\u4f7f\u7528\u7684",(0,a.yg)("strong",{parentName:"p"},"\u79bb\u7ebf\u6570\u636e\u540c\u6b65\u5de5\u5177/\u5e73\u53f0"),"\uff0c\u5b9e\u73b0\u5305\u62ec MySQL\u3001Oracle\u3001SqlServer\u3001Postgre\u3001HDFS\u3001Hive\u3001ADS\u3001HBase\u3001TableStore(OTS)\u3001MaxCompute(ODPS)\u3001DRDS \u7b49\u5404\u79cd\u5f02\u6784\u6570\u636e\u6e90\u4e4b\u95f4\u9ad8\u6548\u7684\u6570\u636e\u540c\u6b65\u529f\u80fd\u3002"),(0,a.yg)("p",null,(0,a.yg)("strong",{parentName:"p"},"\u5f00\u6e90\u5730\u5740"),"\uff1a",(0,a.yg)("a",{parentName:"p",href:"https://github.com/alibaba/DataX"},"https://github.com/alibaba/DataX")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/runtime~main.040c76f4.js b/assets/js/runtime~main.f0445b5d.js similarity index 58% rename from assets/js/runtime~main.040c76f4.js rename to assets/js/runtime~main.f0445b5d.js index 572570038..89d27e9bf 100644 --- a/assets/js/runtime~main.040c76f4.js +++ b/assets/js/runtime~main.f0445b5d.js @@ -1 +1 @@ -(()=>{"use strict";var e,a,c,d,f,b={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var c=t[e]={id:e,loaded:!1,exports:{}};return b[e].call(c.exports,c,c.exports,r),c.loaded=!0,c.exports}r.m=b,r.c=t,e=[],r.O=(a,c,d,f)=>{if(!c){var b=1/0;for(i=0;i=f)&&Object.keys(r.O).every((e=>r.O[e](c[o])))?c.splice(o--,1):(t=!1,f0&&e[i-1][2]>f;i--)e[i]=e[i-1];e[i]=[c,d,f]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},c=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,d){if(1&d&&(e=this(e)),8&d)return e;if("object"==typeof e&&e){if(4&d&&e.__esModule)return e;if(16&d&&"function"==typeof e.then)return e}var f=Object.create(null);r.r(f);var b={};a=a||[null,c({}),c([]),c(c)];for(var t=2&d&&e;"object"==typeof t&&!~a.indexOf(t);t=c(t))Object.getOwnPropertyNames(t).forEach((a=>b[a]=()=>e[a]));return b.default=()=>e,r.d(f,b),f},r.d=(e,a)=>{for(var c in a)r.o(a,c)&&!r.o(e,c)&&Object.defineProperty(e,c,{enumerable:!0,get:a[c]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((a,c)=>(r.f[c](e,a),a)),[])),r.u=e=>"assets/js/"+({0:"84ea7d53",15:"576ec208",30:"f12f9261",159:"01d46eee",184:"5f897b5c",225:"b14b689b",256:"15ae2b3f",344:"1b135b54",379:"b2645d4e",385:"35b5dc5a",403:"eb3908da",407:"1df90d44",439:"2064198b",493:"ed011da4",496:"3b2c25df",497:"a80da1cf",568:"f1f3474f",590:"cd56b708",664:"d8a12065",695:"68699a4c",700:"d92575b7",720:"b4a7dd16",748:"8fdf64da",767:"350be966",817:"e92b6e83",821:"a5cbff69",822:"3e116dbc",842:"1b25ada3",855:"0b24b89a",927:"9d0163be",1053:"da59034b",1056:"955edfb7",1084:"1c123384",1090:"4d86c8f8",1120:"ffb15ddc",1149:"90f76576",1176:"ba902cdb",1197:"80403a0b",1208:"fa157919",1213:"36351059",1226:"d924bf19",1256:"bc4e745a",1293:"12d1694e",1312:"8f9566ba",1366:"3815e5ff",1399:"74adc76f",1521:"7c0c45cc",1522:"c7fe4f6d",1570:"01c8f07b",1648:"d29ac9c5",1746:"62465e63",1808:"2b486500",1812:"52135254",1821:"8ac6cabb",1902:"a633caa1",1956:"3eef7308",1958:"ff928e4a",1980:"6c0bce26",1991:"b2b675dd",1995:"aae926f6",1999:"086f0ef7",2039:"6cce85b2",2041:"8b59d635",2042:"399850d1",2143:"46c2ebc5",2168:"5f2eed60",2189:"5ca6a2d2",2190:"a47a01cb",2202:"5b89160d",2228:"28f5562e",2243:"e907057a",2320:"b38419a7",2325:"42fe7d73",2347:"1d6606cd",2368:"c06ef779",2373:"f3a30e95",2389:"ecff2ea2",2424:"c624ce3c",2502:"04e0d125",2582:"3c356cd2",2613:"2a0a68ae",2634:"c4f5d8e4",2677:"04e22f3f",2700:"72b2f356",2702:"fb9c91a0",2709:"d188aee2",2711:"9e4087bc",2747:"35d73bf2",2750:"356a0ac6",2788:"2015f8aa",2840:"d1731c9c",2861:"33a0b88e",2863:"e4e6cea9",2923:"c86c7bbe",2961:"ac6e53b7",2996:"94529d15",3006:"f9b897e3",3011:"b39354b4",3034:"f5515f41",3066:"6de29db3",3088:"c99ad496",3108:"8b70c8d9",3114:"3790afcd",3125:"9f5c6157",3180:"1c40b03d",3213:"75219fff",3228:"b34206f0",3249:"ccc49370",3310:"03101150",3325:"013f59b8",3329:"f1999a3d",3338:"8cc20a8d",3353:"917fe9d9",3402:"a76cbea0",3428:"96162fed",3441:"1ea907ab",3493:"74b4aa98",3624:"4b0ccf38",3637:"f4f34a3a",3751:"1830dc74",3783:"1ad4833d",3806:"62781bcd",3845:"3c4f1597",3946:"461e82b5",3971:"aef8cf14",3991:"89a98191",4003:"04cddcee",4056:"916bb7d8",4072:"4af85ab8",4080:"5d0c646c",4113:"dd0f37bd",4116:"8d7693a3",4123:"f1ef9b9d",4134:"393be207",4152:"1fa31a57",4243:"0eefe494",4283:"2d2ef872",4377:"319ed101",4423:"c9298fde",4429:"d8990390",4501:"3f06bf29",4504:"22d8222a",4586:"f90dc98f",4630:"9ad28e53",4632:"817aa27b",4680:"9703c56f",4722:"608ae6a4",4766:"e49c089a",4793:"f7ec4137",4813:"6875c492",4816:"3bd11cc0",4908:"0dfb2733",4963:"0a1f7513",4968:"795941ce",5006:"5b270517",5034:"9c88f308",5074:"ce0c2574",5093:"009da349",5175:"2fa90042",5218:"61127ee0",5290:"c3633f34",5350:"2b5f2f35",5382:"e36fd319",5452:"4f086afd",5464:"6c9e9146",5476:"ed9ae553",5537:"588433b1",5543:"6360ef06",5552:"d4bb2cb0",5565:"2e250d6d",5599:"7c66c59a",5631:"9a914db6",5650:"32dcf95e",5731:"5e266219",5755:"5535d7af",5779:"20ecba9b",5861:"50eef34b",5878:"a4c44b85",5894:"b2f554cd",5902:"8dc1e402",5979:"582dea03",6019:"1aa9ac35",6021:"2a4fe0d4",6061:"1f391b9e",6093:"47d775f0",6097:"455d41bc",6172:"d864a059",6215:"b3480cf8",6240:"ee028c53",6316:"c348e262",6349:"7f32d532",6393:"18536aaa",6407:"1e8406f2",6427:"5ae76acd",6473:"e0041558",6493:"0b36e747",6501:"dae804dd",6550:"2e955f05",6598:"1387c807",6784:"0f04c4bf",6819:"26739764",6898:"73162314",6902:"6b91e1af",6923:"4f6149ca",6987:"fbc1a65b",7005:"34be6e6a",7017:"eb43d790",7021:"64c9ca80",7055:"32ef234c",7133:"afde6f8f",7134:"3474579f",7144:"ed01863f",7145:"281494d0",7152:"228940c7",7165:"6bfc7002",7171:"e17376a0",7269:"65c56656",7368:"eb846286",7401:"9801fcb7",7420:"1c2262cb",7441:"8497e197",7445:"398dd9ed",7448:"2a714a8e",7452:"b8eb6aba",7472:"814f3328",7484:"7a58d7fa",7486:"03cd0d32",7575:"eef634fe",7643:"a6aa9e1f",7649:"a6c94d4c",7671:"826108d9",7686:"4d36f4bb",7748:"2c29bcc5",7782:"25692582",7808:"4a7a0e3b",7816:"de78196c",7817:"0b7620c8",7840:"5886a939",7876:"489cc4f4",8173:"e2835ef4",8194:"c9e57e8c",8209:"01a85c17",8274:"42c9ab86",8295:"5d4ec3d4",8302:"68202b49",8351:"97b42080",8391:"f6ece308",8399:"cadc4043",8401:"17896441",8451:"4ed715ca",8529:"0e133684",8581:"935f2afb",8714:"1be78505",8723:"8303fa10",8788:"2bc909a9",8810:"ee6139c1",8816:"c38cd4f0",8859:"4fb554a1",8901:"0dc7fd42",8906:"2dda2596",8922:"a7f1c1ae",8985:"06a5f76a",8998:"4cf8b132",9033:"f702ddaf",9063:"9062da7c",9089:"c7df6888",9121:"0ad179ee",9136:"29ac29a0",9203:"947d4688",9229:"037fbca4",9253:"39e40f36",9267:"a7023ddc",9304:"397e604e",9314:"f7453080",9325:"59362658",9343:"26299e01",9376:"67e91227",9390:"b153ec3c",9450:"be2a55e4",9489:"44c08670",9583:"a53f992a",9624:"b6694e92",9665:"e983cebe",9684:"249c18b0",9688:"3b47b6b5",9694:"e0868071",9726:"8a1a07c4",9826:"c50996a1",9841:"e3905ad3",9878:"a3633e48",9942:"d3208707",9967:"bb29b3f8",9989:"e7da4cec"}[e]||e)+"."+{0:"7dd21578",15:"2ad686f2",30:"841f6379",159:"b216857f",184:"76b666ac",225:"a1fcb599",256:"bd6c06d8",344:"f0d7ce3c",379:"c35e97d2",385:"cc9b5176",403:"2438faa5",407:"67807d71",439:"ac7cf158",493:"679d7751",496:"96f88b59",497:"5dd6d1e5",568:"57a881f5",590:"3d56d553",664:"a01b8948",695:"ba00d9ee",700:"833057b1",720:"edf90dda",748:"bbdc61a6",767:"1b3e6221",817:"770b6a05",821:"fbbaab27",822:"7e483a79",842:"d8a21729",855:"5f740366",927:"17682dd7",1053:"56274eb9",1056:"0b86b94f",1084:"13b547c0",1090:"b112c4d2",1120:"4a21d931",1149:"b3dae0e2",1176:"ce0823dd",1197:"16116f75",1208:"24bd13ba",1213:"d238766b",1226:"5114fada",1256:"4a72e410",1293:"5d56002f",1312:"e191767a",1366:"bd41bde2",1399:"fcbcb610",1521:"643a00a0",1522:"886d50c2",1570:"1f68a217",1648:"ce76ad4b",1746:"2e9e0896",1774:"e76e375b",1808:"28b5a011",1812:"782697c6",1821:"48b06724",1902:"59c9e998",1956:"97c971e4",1958:"0389e650",1980:"2fe608bb",1991:"3faf1380",1995:"c4a0ded7",1999:"06740d57",2039:"a94972e8",2041:"04d7277d",2042:"439fd7ad",2143:"407f7609",2168:"4965f123",2189:"f1a3fbd5",2190:"2d2c2f02",2202:"ca3041cc",2228:"0c48756e",2243:"d053804a",2320:"5b9dd0e4",2325:"e61b9001",2347:"0ad9f51e",2368:"872f6b30",2373:"8134eb85",2389:"dff7464e",2424:"5e1c80bc",2502:"53edd610",2582:"94cf967e",2613:"7dd79c0b",2634:"c1cdf980",2677:"84875dff",2700:"a35af79a",2702:"5698a5a7",2709:"3a620c16",2711:"fd7711ba",2747:"be489659",2750:"745b46da",2788:"547bde0e",2840:"abda2881",2861:"2d8ce75c",2863:"edb078a9",2923:"6ba3aa7f",2961:"015f41fe",2996:"4ca1b589",3006:"cee8415a",3011:"5e1e0b8d",3034:"768d4f24",3066:"df7732ec",3088:"827aeec7",3108:"f748a378",3114:"93c5acb9",3125:"b232f354",3180:"54e3bf01",3213:"9970b0e0",3228:"0b4f30bb",3249:"db557050",3310:"6c735f0f",3325:"7d48438c",3329:"9b5dd8e0",3338:"54f2cca8",3353:"617ecd0b",3369:"d5f1cfe4",3402:"abcf50b0",3428:"8df9de03",3441:"d54ea7c8",3493:"8c07f8f9",3624:"9ef8f6e9",3637:"0fe4b6ce",3751:"d556ae5c",3783:"397fbce0",3806:"96f71929",3845:"359fabbd",3946:"427796e5",3971:"3bd4dc09",3991:"64ebcfef",4003:"215f67b3",4056:"64a906f4",4072:"49c16c42",4080:"46b0bfa5",4113:"8a0d5eef",4116:"914c5c91",4123:"ab3450f7",4134:"03b51e49",4152:"7bd0a209",4243:"18ba6973",4283:"0e5d2435",4377:"ee06c352",4423:"82505b6a",4429:"e2d957e4",4501:"f4f78dbc",4504:"60fecca2",4586:"5df4dc0d",4630:"452a51b6",4632:"b523675b",4680:"1584be30",4722:"e70382e0",4766:"aca343db",4793:"45dd7613",4813:"17f4aa3a",4816:"867f1a45",4908:"1473ab62",4963:"1a8d8709",4968:"ac4c5e96",5006:"e4eb019e",5034:"5e96b36b",5074:"d21e388d",5093:"214eefd6",5175:"650aa37e",5218:"8d7ef7d6",5290:"f4690953",5350:"b603469a",5382:"bee5008f",5452:"72650a3f",5464:"3f988669",5476:"8ffe15e1",5537:"366631af",5543:"ac828409",5552:"c4f0b7e5",5565:"6e626755",5599:"4c8280f8",5631:"567aee39",5650:"f73cd1af",5731:"5ae846d6",5755:"a62da13a",5779:"be50a049",5861:"231af15e",5878:"ab722ef8",5894:"1f9c36c5",5902:"fa5cf5a8",5979:"bff6b099",6019:"afb0f9ba",6021:"2d0804a8",6061:"7a171a68",6093:"36ef99b3",6097:"eff58370",6172:"c67fbeaa",6215:"75e7d455",6240:"cea852e6",6316:"943cda73",6349:"b835f723",6393:"3e9101c2",6407:"3569aba0",6427:"c7a970d3",6473:"14594a4f",6493:"48951afd",6501:"5879bbb9",6550:"50b622f6",6598:"1a2cdcb5",6784:"08303893",6819:"a8f7d37f",6898:"ccda7320",6902:"6ff87f1d",6923:"fb80bb24",6987:"5348b48d",7005:"58c2a41e",7017:"28621b88",7021:"c9db806a",7055:"04f8cc18",7133:"5c99c68b",7134:"eedc05a4",7144:"948180e2",7145:"df284659",7152:"9894dd93",7165:"29c1b97a",7171:"f9c6e8c4",7269:"8225f00e",7368:"c2ba564b",7401:"c44cd820",7420:"86e99cde",7441:"17aca05f",7445:"7a094a8d",7448:"e6fe5c76",7452:"cb8c54e1",7472:"7d117c8f",7484:"9e3ddda1",7486:"b67912a9",7575:"53980a4b",7643:"c5d6d672",7649:"5b5b9d87",7671:"045ca77a",7686:"1c89bc29",7748:"9cacb31e",7782:"6b7c8ff2",7808:"b50196cc",7816:"6e123313",7817:"c07dc691",7840:"1b7a773f",7876:"56438c24",8173:"325a8b22",8194:"6db6e867",8209:"de44d5e4",8274:"fb4d466e",8295:"fbc1fa68",8302:"a71e5b4f",8351:"33630eb4",8391:"a482f197",8399:"f0c74ab6",8401:"779b1fef",8451:"38633ace",8529:"244cfd6d",8581:"283bb44c",8714:"1d3f5e4a",8723:"a92d1772",8788:"5b63bb79",8810:"5896c960",8816:"d921778b",8859:"2ca029ea",8901:"a4c05598",8906:"f4bd4794",8922:"665a16ab",8985:"173adf7a",8998:"cb8aac3a",9033:"255ba422",9063:"24a339cc",9089:"5113cef7",9121:"bec8593d",9136:"5746f86d",9203:"a4ae18ab",9229:"e454ad88",9253:"cd8f95a9",9267:"e42af808",9304:"46cbf351",9314:"07fb8db9",9325:"263ed787",9343:"774c72bc",9376:"1af35cd9",9390:"f0c06148",9450:"95989fc7",9489:"e97ee001",9583:"e6759ef2",9624:"85a07f44",9665:"0e5178b9",9684:"daf6c1e9",9688:"82b21006",9694:"1fe16512",9717:"d49fc58b",9726:"8782edfd",9826:"630fa230",9841:"38bd1942",9878:"e628211d",9942:"84fb3cd4",9967:"76d98e17",9989:"cd6a8ac9"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),d={},f="docs:",r.l=(e,a,c,b)=>{if(d[e])d[e].push(a);else{var t,o;if(void 0!==c)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var f=d[e];if(delete d[e],t.parentNode&&t.parentNode.removeChild(t),f&&f.forEach((e=>e(c))),a)return a(c)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/",r.gca=function(e){return e={17896441:"8401",25692582:"7782",26739764:"6819",36351059:"1213",52135254:"1812",59362658:"9325",73162314:"6898","84ea7d53":"0","576ec208":"15",f12f9261:"30","01d46eee":"159","5f897b5c":"184",b14b689b:"225","15ae2b3f":"256","1b135b54":"344",b2645d4e:"379","35b5dc5a":"385",eb3908da:"403","1df90d44":"407","2064198b":"439",ed011da4:"493","3b2c25df":"496",a80da1cf:"497",f1f3474f:"568",cd56b708:"590",d8a12065:"664","68699a4c":"695",d92575b7:"700",b4a7dd16:"720","8fdf64da":"748","350be966":"767",e92b6e83:"817",a5cbff69:"821","3e116dbc":"822","1b25ada3":"842","0b24b89a":"855","9d0163be":"927",da59034b:"1053","955edfb7":"1056","1c123384":"1084","4d86c8f8":"1090",ffb15ddc:"1120","90f76576":"1149",ba902cdb:"1176","80403a0b":"1197",fa157919:"1208",d924bf19:"1226",bc4e745a:"1256","12d1694e":"1293","8f9566ba":"1312","3815e5ff":"1366","74adc76f":"1399","7c0c45cc":"1521",c7fe4f6d:"1522","01c8f07b":"1570",d29ac9c5:"1648","62465e63":"1746","2b486500":"1808","8ac6cabb":"1821",a633caa1:"1902","3eef7308":"1956",ff928e4a:"1958","6c0bce26":"1980",b2b675dd:"1991",aae926f6:"1995","086f0ef7":"1999","6cce85b2":"2039","8b59d635":"2041","399850d1":"2042","46c2ebc5":"2143","5f2eed60":"2168","5ca6a2d2":"2189",a47a01cb:"2190","5b89160d":"2202","28f5562e":"2228",e907057a:"2243",b38419a7:"2320","42fe7d73":"2325","1d6606cd":"2347",c06ef779:"2368",f3a30e95:"2373",ecff2ea2:"2389",c624ce3c:"2424","04e0d125":"2502","3c356cd2":"2582","2a0a68ae":"2613",c4f5d8e4:"2634","04e22f3f":"2677","72b2f356":"2700",fb9c91a0:"2702",d188aee2:"2709","9e4087bc":"2711","35d73bf2":"2747","356a0ac6":"2750","2015f8aa":"2788",d1731c9c:"2840","33a0b88e":"2861",e4e6cea9:"2863",c86c7bbe:"2923",ac6e53b7:"2961","94529d15":"2996",f9b897e3:"3006",b39354b4:"3011",f5515f41:"3034","6de29db3":"3066",c99ad496:"3088","8b70c8d9":"3108","3790afcd":"3114","9f5c6157":"3125","1c40b03d":"3180","75219fff":"3213",b34206f0:"3228",ccc49370:"3249","03101150":"3310","013f59b8":"3325",f1999a3d:"3329","8cc20a8d":"3338","917fe9d9":"3353",a76cbea0:"3402","96162fed":"3428","1ea907ab":"3441","74b4aa98":"3493","4b0ccf38":"3624",f4f34a3a:"3637","1830dc74":"3751","1ad4833d":"3783","62781bcd":"3806","3c4f1597":"3845","461e82b5":"3946",aef8cf14:"3971","89a98191":"3991","04cddcee":"4003","916bb7d8":"4056","4af85ab8":"4072","5d0c646c":"4080",dd0f37bd:"4113","8d7693a3":"4116",f1ef9b9d:"4123","393be207":"4134","1fa31a57":"4152","0eefe494":"4243","2d2ef872":"4283","319ed101":"4377",c9298fde:"4423",d8990390:"4429","3f06bf29":"4501","22d8222a":"4504",f90dc98f:"4586","9ad28e53":"4630","817aa27b":"4632","9703c56f":"4680","608ae6a4":"4722",e49c089a:"4766",f7ec4137:"4793","6875c492":"4813","3bd11cc0":"4816","0dfb2733":"4908","0a1f7513":"4963","795941ce":"4968","5b270517":"5006","9c88f308":"5034",ce0c2574:"5074","009da349":"5093","2fa90042":"5175","61127ee0":"5218",c3633f34:"5290","2b5f2f35":"5350",e36fd319:"5382","4f086afd":"5452","6c9e9146":"5464",ed9ae553:"5476","588433b1":"5537","6360ef06":"5543",d4bb2cb0:"5552","2e250d6d":"5565","7c66c59a":"5599","9a914db6":"5631","32dcf95e":"5650","5e266219":"5731","5535d7af":"5755","20ecba9b":"5779","50eef34b":"5861",a4c44b85:"5878",b2f554cd:"5894","8dc1e402":"5902","582dea03":"5979","1aa9ac35":"6019","2a4fe0d4":"6021","1f391b9e":"6061","47d775f0":"6093","455d41bc":"6097",d864a059:"6172",b3480cf8:"6215",ee028c53:"6240",c348e262:"6316","7f32d532":"6349","18536aaa":"6393","1e8406f2":"6407","5ae76acd":"6427",e0041558:"6473","0b36e747":"6493",dae804dd:"6501","2e955f05":"6550","1387c807":"6598","0f04c4bf":"6784","6b91e1af":"6902","4f6149ca":"6923",fbc1a65b:"6987","34be6e6a":"7005",eb43d790:"7017","64c9ca80":"7021","32ef234c":"7055",afde6f8f:"7133","3474579f":"7134",ed01863f:"7144","281494d0":"7145","228940c7":"7152","6bfc7002":"7165",e17376a0:"7171","65c56656":"7269",eb846286:"7368","9801fcb7":"7401","1c2262cb":"7420","8497e197":"7441","398dd9ed":"7445","2a714a8e":"7448",b8eb6aba:"7452","814f3328":"7472","7a58d7fa":"7484","03cd0d32":"7486",eef634fe:"7575",a6aa9e1f:"7643",a6c94d4c:"7649","826108d9":"7671","4d36f4bb":"7686","2c29bcc5":"7748","4a7a0e3b":"7808",de78196c:"7816","0b7620c8":"7817","5886a939":"7840","489cc4f4":"7876",e2835ef4:"8173",c9e57e8c:"8194","01a85c17":"8209","42c9ab86":"8274","5d4ec3d4":"8295","68202b49":"8302","97b42080":"8351",f6ece308:"8391",cadc4043:"8399","4ed715ca":"8451","0e133684":"8529","935f2afb":"8581","1be78505":"8714","8303fa10":"8723","2bc909a9":"8788",ee6139c1:"8810",c38cd4f0:"8816","4fb554a1":"8859","0dc7fd42":"8901","2dda2596":"8906",a7f1c1ae:"8922","06a5f76a":"8985","4cf8b132":"8998",f702ddaf:"9033","9062da7c":"9063",c7df6888:"9089","0ad179ee":"9121","29ac29a0":"9136","947d4688":"9203","037fbca4":"9229","39e40f36":"9253",a7023ddc:"9267","397e604e":"9304",f7453080:"9314","26299e01":"9343","67e91227":"9376",b153ec3c:"9390",be2a55e4:"9450","44c08670":"9489",a53f992a:"9583",b6694e92:"9624",e983cebe:"9665","249c18b0":"9684","3b47b6b5":"9688",e0868071:"9694","8a1a07c4":"9726",c50996a1:"9826",e3905ad3:"9841",a3633e48:"9878",d3208707:"9942",bb29b3f8:"9967",e7da4cec:"9989"}[e]||e,r.p+r.u(e)},(()=>{var e={5354:0,1869:0};r.f.j=(a,c)=>{var d=r.o(e,a)?e[a]:void 0;if(0!==d)if(d)c.push(d[2]);else if(/^(1869|5354)$/.test(a))e[a]=0;else{var f=new Promise(((c,f)=>d=e[a]=[c,f]));c.push(d[2]=f);var b=r.p+r.u(a),t=new Error;r.l(b,(c=>{if(r.o(e,a)&&(0!==(d=e[a])&&(e[a]=void 0),d)){var f=c&&("load"===c.type?"missing":c.type),b=c&&c.target&&c.target.src;t.message="Loading chunk "+a+" failed.\n("+f+": "+b+")",t.name="ChunkLoadError",t.type=f,t.request=b,d[1](t)}}),"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,c)=>{var d,f,b=c[0],t=c[1],o=c[2],n=0;if(b.some((a=>0!==e[a]))){for(d in t)r.o(t,d)&&(r.m[d]=t[d]);if(o)var i=o(r)}for(a&&a(c);n{"use strict";var e,c,a,f,b,d={},t={};function r(e){var c=t[e];if(void 0!==c)return c.exports;var a=t[e]={id:e,loaded:!1,exports:{}};return d[e].call(a.exports,a,a.exports,r),a.loaded=!0,a.exports}r.m=d,r.c=t,e=[],r.O=(c,a,f,b)=>{if(!a){var d=1/0;for(i=0;i=b)&&Object.keys(r.O).every((e=>r.O[e](a[o])))?a.splice(o--,1):(t=!1,b0&&e[i-1][2]>b;i--)e[i]=e[i-1];e[i]=[a,f,b]},r.n=e=>{var c=e&&e.__esModule?()=>e.default:()=>e;return r.d(c,{a:c}),c},a=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,f){if(1&f&&(e=this(e)),8&f)return e;if("object"==typeof e&&e){if(4&f&&e.__esModule)return e;if(16&f&&"function"==typeof e.then)return e}var b=Object.create(null);r.r(b);var d={};c=c||[null,a({}),a([]),a(a)];for(var t=2&f&&e;"object"==typeof t&&!~c.indexOf(t);t=a(t))Object.getOwnPropertyNames(t).forEach((c=>d[c]=()=>e[c]));return d.default=()=>e,r.d(b,d),b},r.d=(e,c)=>{for(var a in c)r.o(c,a)&&!r.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:c[a]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((c,a)=>(r.f[a](e,c),c)),[])),r.u=e=>"assets/js/"+({0:"84ea7d53",15:"576ec208",30:"f12f9261",159:"01d46eee",184:"5f897b5c",225:"b14b689b",256:"15ae2b3f",344:"1b135b54",379:"b2645d4e",385:"35b5dc5a",403:"eb3908da",407:"1df90d44",439:"2064198b",493:"ed011da4",496:"3b2c25df",497:"a80da1cf",568:"f1f3474f",590:"cd56b708",664:"d8a12065",695:"68699a4c",700:"d92575b7",720:"b4a7dd16",748:"8fdf64da",767:"350be966",817:"e92b6e83",821:"a5cbff69",822:"3e116dbc",842:"1b25ada3",855:"0b24b89a",927:"9d0163be",1053:"da59034b",1056:"955edfb7",1084:"1c123384",1090:"4d86c8f8",1120:"ffb15ddc",1149:"90f76576",1176:"ba902cdb",1197:"80403a0b",1208:"fa157919",1213:"36351059",1226:"d924bf19",1256:"bc4e745a",1293:"12d1694e",1312:"8f9566ba",1366:"3815e5ff",1399:"74adc76f",1521:"7c0c45cc",1522:"c7fe4f6d",1570:"01c8f07b",1648:"d29ac9c5",1746:"62465e63",1808:"2b486500",1812:"52135254",1821:"8ac6cabb",1902:"a633caa1",1956:"3eef7308",1958:"ff928e4a",1980:"6c0bce26",1991:"b2b675dd",1995:"aae926f6",1999:"086f0ef7",2039:"6cce85b2",2041:"8b59d635",2042:"399850d1",2143:"46c2ebc5",2168:"5f2eed60",2189:"5ca6a2d2",2190:"a47a01cb",2202:"5b89160d",2228:"28f5562e",2243:"e907057a",2320:"b38419a7",2325:"42fe7d73",2347:"1d6606cd",2368:"c06ef779",2373:"f3a30e95",2389:"ecff2ea2",2424:"c624ce3c",2502:"04e0d125",2582:"3c356cd2",2613:"2a0a68ae",2634:"c4f5d8e4",2677:"04e22f3f",2700:"72b2f356",2702:"fb9c91a0",2709:"d188aee2",2711:"9e4087bc",2747:"35d73bf2",2750:"356a0ac6",2788:"2015f8aa",2840:"d1731c9c",2861:"33a0b88e",2863:"e4e6cea9",2923:"c86c7bbe",2961:"ac6e53b7",2996:"94529d15",3006:"f9b897e3",3011:"b39354b4",3034:"f5515f41",3066:"6de29db3",3088:"c99ad496",3108:"8b70c8d9",3114:"3790afcd",3125:"9f5c6157",3180:"1c40b03d",3213:"75219fff",3228:"b34206f0",3249:"ccc49370",3310:"03101150",3325:"013f59b8",3329:"f1999a3d",3338:"8cc20a8d",3353:"917fe9d9",3402:"a76cbea0",3428:"96162fed",3441:"1ea907ab",3493:"74b4aa98",3624:"4b0ccf38",3637:"f4f34a3a",3751:"1830dc74",3783:"1ad4833d",3806:"62781bcd",3845:"3c4f1597",3946:"461e82b5",3971:"aef8cf14",3991:"89a98191",4003:"04cddcee",4056:"916bb7d8",4072:"4af85ab8",4080:"5d0c646c",4113:"dd0f37bd",4116:"8d7693a3",4123:"f1ef9b9d",4134:"393be207",4152:"1fa31a57",4243:"0eefe494",4283:"2d2ef872",4377:"319ed101",4423:"c9298fde",4429:"d8990390",4501:"3f06bf29",4504:"22d8222a",4586:"f90dc98f",4630:"9ad28e53",4632:"817aa27b",4680:"9703c56f",4722:"608ae6a4",4766:"e49c089a",4793:"f7ec4137",4813:"6875c492",4816:"3bd11cc0",4908:"0dfb2733",4963:"0a1f7513",4968:"795941ce",5006:"5b270517",5034:"9c88f308",5074:"ce0c2574",5093:"009da349",5175:"2fa90042",5218:"61127ee0",5290:"c3633f34",5350:"2b5f2f35",5382:"e36fd319",5452:"4f086afd",5464:"6c9e9146",5476:"ed9ae553",5537:"588433b1",5543:"6360ef06",5552:"d4bb2cb0",5565:"2e250d6d",5599:"7c66c59a",5631:"9a914db6",5650:"32dcf95e",5731:"5e266219",5755:"5535d7af",5779:"20ecba9b",5861:"50eef34b",5878:"a4c44b85",5894:"b2f554cd",5902:"8dc1e402",5979:"582dea03",6019:"1aa9ac35",6021:"2a4fe0d4",6061:"1f391b9e",6093:"47d775f0",6097:"455d41bc",6172:"d864a059",6215:"b3480cf8",6240:"ee028c53",6316:"c348e262",6349:"7f32d532",6393:"18536aaa",6407:"1e8406f2",6427:"5ae76acd",6473:"e0041558",6493:"0b36e747",6501:"dae804dd",6550:"2e955f05",6598:"1387c807",6784:"0f04c4bf",6819:"26739764",6898:"73162314",6902:"6b91e1af",6923:"4f6149ca",6987:"fbc1a65b",7005:"34be6e6a",7017:"eb43d790",7021:"64c9ca80",7055:"32ef234c",7133:"afde6f8f",7134:"3474579f",7144:"ed01863f",7145:"281494d0",7152:"228940c7",7165:"6bfc7002",7171:"e17376a0",7269:"65c56656",7368:"eb846286",7401:"9801fcb7",7420:"1c2262cb",7441:"8497e197",7445:"398dd9ed",7448:"2a714a8e",7452:"b8eb6aba",7472:"814f3328",7484:"7a58d7fa",7486:"03cd0d32",7575:"eef634fe",7643:"a6aa9e1f",7649:"a6c94d4c",7671:"826108d9",7686:"4d36f4bb",7748:"2c29bcc5",7782:"25692582",7808:"4a7a0e3b",7816:"de78196c",7817:"0b7620c8",7840:"5886a939",7876:"489cc4f4",8173:"e2835ef4",8194:"c9e57e8c",8209:"01a85c17",8274:"42c9ab86",8295:"5d4ec3d4",8302:"68202b49",8351:"97b42080",8391:"f6ece308",8399:"cadc4043",8401:"17896441",8451:"4ed715ca",8529:"0e133684",8581:"935f2afb",8714:"1be78505",8723:"8303fa10",8788:"2bc909a9",8810:"ee6139c1",8816:"c38cd4f0",8859:"4fb554a1",8901:"0dc7fd42",8906:"2dda2596",8922:"a7f1c1ae",8985:"06a5f76a",8998:"4cf8b132",9033:"f702ddaf",9063:"9062da7c",9089:"c7df6888",9121:"0ad179ee",9136:"29ac29a0",9203:"947d4688",9229:"037fbca4",9253:"39e40f36",9267:"a7023ddc",9304:"397e604e",9314:"f7453080",9325:"59362658",9343:"26299e01",9376:"67e91227",9390:"b153ec3c",9450:"be2a55e4",9489:"44c08670",9583:"a53f992a",9624:"b6694e92",9665:"e983cebe",9684:"249c18b0",9688:"3b47b6b5",9694:"e0868071",9726:"8a1a07c4",9826:"c50996a1",9841:"e3905ad3",9878:"a3633e48",9942:"d3208707",9967:"bb29b3f8",9989:"e7da4cec"}[e]||e)+"."+{0:"c3cd7483",15:"7c9697ee",30:"25961184",159:"78e5d8c2",184:"1809de10",225:"c59f402d",256:"fa2d1957",344:"5e747482",379:"29470d76",385:"7829f5c5",403:"56b46bc2",407:"0612e746",439:"0fa14954",493:"fce7f23d",496:"5882c2aa",497:"5dd6d1e5",568:"166af15d",590:"44db628c",664:"47e023f0",695:"7610f53d",700:"51959833",720:"64a2b0ba",748:"7f7d11bd",767:"a9a61c84",817:"c95b7a26",821:"36836426",822:"7fcb0d09",842:"e67ac2c2",855:"5f740366",927:"7e969d5d",1053:"e20cf0fd",1056:"dc907cae",1084:"6fcf45db",1090:"8b1f146e",1120:"554efaa0",1149:"c482fe87",1176:"ce0823dd",1197:"037e6f78",1208:"9ae63740",1213:"20dee2ae",1226:"f8d99d31",1256:"4a32cf30",1293:"169552a5",1312:"d7dfe29e",1366:"c26dce9c",1399:"f1f48d11",1521:"519f0122",1522:"f207a55e",1570:"a6a72472",1648:"d6afbdd9",1746:"d6d29435",1774:"e76e375b",1808:"75cd73c8",1812:"b376a4de",1821:"caaf6c92",1902:"c9ec87bb",1956:"a32bcc05",1958:"c57b728a",1980:"d115ccbc",1991:"3faf1380",1995:"0107ebee",1999:"71fc63d0",2039:"474c3b81",2041:"00f2a92e",2042:"9ee49c22",2143:"3deeab56",2168:"4f1bcaa2",2189:"2e6a9a6c",2190:"2a8830b4",2202:"705cd254",2228:"e0a044d9",2243:"1b69b4d6",2320:"81960b8c",2325:"68f0873a",2347:"349f8550",2368:"82be93a6",2373:"3f34e3b3",2389:"4aa923f3",2424:"20559fe0",2502:"19647afe",2582:"bb5d4b18",2613:"0cbc192d",2634:"c1cdf980",2677:"a0e39142",2700:"a49e096d",2702:"f5d29b35",2709:"8c4dadda",2711:"fd7711ba",2747:"ec4e916a",2750:"745b46da",2788:"3d200b54",2840:"a0ed16fc",2861:"2d8ce75c",2863:"d0fab417",2923:"d172dc30",2961:"06984711",2996:"0133ad38",3006:"76ac1e9c",3011:"2ae3c876",3034:"b8097466",3066:"50405f2f",3088:"3ab7edc8",3108:"b7375323",3114:"c27c4cb8",3125:"05e31138",3180:"9f44da13",3213:"b99b318c",3228:"75c8fee8",3249:"db557050",3310:"4299d01e",3325:"8d1e76c5",3329:"01ab1538",3338:"25e38ce2",3353:"5c92e351",3369:"d5f1cfe4",3402:"abcf50b0",3428:"8e6916cc",3441:"4d9c1c7e",3493:"8c07f8f9",3624:"5cd1f43d",3637:"0fe4b6ce",3751:"c0f37f30",3783:"21bccc7d",3806:"b25aa34a",3845:"7da9beb2",3946:"30e79dc5",3971:"1b3d1d15",3991:"48b42cfe",4003:"16794d28",4056:"9a833032",4072:"944cf0a1",4080:"ef82c2a2",4113:"587d9288",4116:"7aed3b76",4123:"7358ee86",4134:"03b51e49",4152:"a927347a",4243:"4c031b20",4283:"d9932977",4377:"cec8ab22",4423:"daf650ab",4429:"42cdaa2e",4501:"8df782b0",4504:"ca2d177b",4586:"57930f25",4630:"4e3a6ebc",4632:"7871b478",4680:"2e1faa5b",4722:"e70382e0",4766:"cb5a3491",4793:"8c01c8d1",4813:"17f4aa3a",4816:"e9f9f3c4",4908:"b8f854cb",4963:"bfcb5015",4968:"fe823bff",5006:"e33ff50f",5034:"24effc97",5074:"56fc44a0",5093:"a9881680",5175:"b2f6f7c3",5218:"4d6c2b6c",5290:"612fd3ee",5350:"176f01bf",5382:"274743c4",5452:"9e2fb63c",5464:"c5e4e932",5476:"c539936a",5537:"86081721",5543:"861b4d47",5552:"a328ce51",5565:"2865959b",5599:"f3c3d8d5",5631:"7e565bfe",5650:"97c92707",5731:"214696cf",5755:"a725cde6",5779:"08be5d8a",5861:"99f6638b",5878:"1ced885d",5894:"1f9c36c5",5902:"02e6634b",5979:"8d0c3fff",6019:"635e5190",6021:"f01aeb6e",6061:"7a171a68",6093:"8d8f1c71",6097:"492f72cc",6172:"0e4d76fd",6215:"75e7d455",6240:"920c03c3",6316:"c40a1436",6349:"8f07cf33",6393:"72efd3c2",6407:"e00fc99a",6427:"50942ceb",6473:"fee4e886",6493:"141a564a",6501:"957054be",6550:"8bddec1d",6598:"c71101bd",6784:"078cb5b4",6819:"f52d7217",6898:"5c49cc87",6902:"502ff697",6923:"6da63705",6987:"24b4ac24",7005:"3e7c90ac",7017:"28621b88",7021:"c39c9465",7055:"63168f39",7133:"6a078c10",7134:"5b350339",7144:"7d6940fc",7145:"778bf9a1",7152:"6bc04ae3",7165:"885c7667",7171:"e4af7b37",7269:"e6f0696a",7368:"093871f7",7401:"6252203f",7420:"b08dddb7",7441:"259bf307",7445:"db4897c0",7448:"efc328b7",7452:"45bec3e0",7472:"7d117c8f",7484:"74cd9703",7486:"06660db6",7575:"911e7e74",7643:"c5d6d672",7649:"31bbb729",7671:"3d2a574d",7686:"11513ed3",7748:"d65d4e1b",7782:"ba1a7e12",7808:"2b4626d6",7816:"8c3a9266",7817:"f73f20aa",7840:"643a03e9",7876:"548c8178",8173:"627acfe3",8194:"6e03f511",8209:"de44d5e4",8274:"67242235",8295:"25f0fa19",8302:"64d11bdb",8351:"eccf773e",8391:"76a8675c",8399:"0be5bea5",8401:"779b1fef",8451:"4d8052db",8529:"aa505b43",8581:"212b0314",8714:"1d3f5e4a",8723:"d5c53bd3",8788:"3b82b900",8810:"649eec1c",8816:"d9124b31",8859:"45adcf24",8901:"04ec3dc5",8906:"e92fe0f2",8922:"b3423448",8985:"d7395418",8998:"cb8aac3a",9033:"dc81f34f",9063:"0d6a871e",9089:"5ddc01d8",9121:"896ee1d9",9136:"6f0cb8ce",9203:"3fbfa52a",9229:"e7347376",9253:"006c70ba",9267:"e42af808",9304:"3db42bde",9314:"cb71f9be",9325:"263ed787",9343:"78d70061",9376:"f3d66ef3",9390:"0b98d037",9450:"e57f52df",9489:"29705e97",9583:"33532fe0",9624:"f6d5bb77",9665:"0557611e",9684:"cbdb44df",9688:"a099bb48",9694:"1fe16512",9717:"d49fc58b",9726:"26cb9082",9826:"7a64c4d0",9841:"bfb0030c",9878:"394bbaed",9942:"99faf58d",9967:"75f19d8f",9989:"8a6e4f8e"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,c)=>Object.prototype.hasOwnProperty.call(e,c),f={},b="docs:",r.l=(e,c,a,d)=>{if(f[e])f[e].push(c);else{var t,o;if(void 0!==a)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var b=f[e];if(delete f[e],t.parentNode&&t.parentNode.removeChild(t),b&&b.forEach((e=>e(a))),c)return c(a)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/",r.gca=function(e){return e={17896441:"8401",25692582:"7782",26739764:"6819",36351059:"1213",52135254:"1812",59362658:"9325",73162314:"6898","84ea7d53":"0","576ec208":"15",f12f9261:"30","01d46eee":"159","5f897b5c":"184",b14b689b:"225","15ae2b3f":"256","1b135b54":"344",b2645d4e:"379","35b5dc5a":"385",eb3908da:"403","1df90d44":"407","2064198b":"439",ed011da4:"493","3b2c25df":"496",a80da1cf:"497",f1f3474f:"568",cd56b708:"590",d8a12065:"664","68699a4c":"695",d92575b7:"700",b4a7dd16:"720","8fdf64da":"748","350be966":"767",e92b6e83:"817",a5cbff69:"821","3e116dbc":"822","1b25ada3":"842","0b24b89a":"855","9d0163be":"927",da59034b:"1053","955edfb7":"1056","1c123384":"1084","4d86c8f8":"1090",ffb15ddc:"1120","90f76576":"1149",ba902cdb:"1176","80403a0b":"1197",fa157919:"1208",d924bf19:"1226",bc4e745a:"1256","12d1694e":"1293","8f9566ba":"1312","3815e5ff":"1366","74adc76f":"1399","7c0c45cc":"1521",c7fe4f6d:"1522","01c8f07b":"1570",d29ac9c5:"1648","62465e63":"1746","2b486500":"1808","8ac6cabb":"1821",a633caa1:"1902","3eef7308":"1956",ff928e4a:"1958","6c0bce26":"1980",b2b675dd:"1991",aae926f6:"1995","086f0ef7":"1999","6cce85b2":"2039","8b59d635":"2041","399850d1":"2042","46c2ebc5":"2143","5f2eed60":"2168","5ca6a2d2":"2189",a47a01cb:"2190","5b89160d":"2202","28f5562e":"2228",e907057a:"2243",b38419a7:"2320","42fe7d73":"2325","1d6606cd":"2347",c06ef779:"2368",f3a30e95:"2373",ecff2ea2:"2389",c624ce3c:"2424","04e0d125":"2502","3c356cd2":"2582","2a0a68ae":"2613",c4f5d8e4:"2634","04e22f3f":"2677","72b2f356":"2700",fb9c91a0:"2702",d188aee2:"2709","9e4087bc":"2711","35d73bf2":"2747","356a0ac6":"2750","2015f8aa":"2788",d1731c9c:"2840","33a0b88e":"2861",e4e6cea9:"2863",c86c7bbe:"2923",ac6e53b7:"2961","94529d15":"2996",f9b897e3:"3006",b39354b4:"3011",f5515f41:"3034","6de29db3":"3066",c99ad496:"3088","8b70c8d9":"3108","3790afcd":"3114","9f5c6157":"3125","1c40b03d":"3180","75219fff":"3213",b34206f0:"3228",ccc49370:"3249","03101150":"3310","013f59b8":"3325",f1999a3d:"3329","8cc20a8d":"3338","917fe9d9":"3353",a76cbea0:"3402","96162fed":"3428","1ea907ab":"3441","74b4aa98":"3493","4b0ccf38":"3624",f4f34a3a:"3637","1830dc74":"3751","1ad4833d":"3783","62781bcd":"3806","3c4f1597":"3845","461e82b5":"3946",aef8cf14:"3971","89a98191":"3991","04cddcee":"4003","916bb7d8":"4056","4af85ab8":"4072","5d0c646c":"4080",dd0f37bd:"4113","8d7693a3":"4116",f1ef9b9d:"4123","393be207":"4134","1fa31a57":"4152","0eefe494":"4243","2d2ef872":"4283","319ed101":"4377",c9298fde:"4423",d8990390:"4429","3f06bf29":"4501","22d8222a":"4504",f90dc98f:"4586","9ad28e53":"4630","817aa27b":"4632","9703c56f":"4680","608ae6a4":"4722",e49c089a:"4766",f7ec4137:"4793","6875c492":"4813","3bd11cc0":"4816","0dfb2733":"4908","0a1f7513":"4963","795941ce":"4968","5b270517":"5006","9c88f308":"5034",ce0c2574:"5074","009da349":"5093","2fa90042":"5175","61127ee0":"5218",c3633f34:"5290","2b5f2f35":"5350",e36fd319:"5382","4f086afd":"5452","6c9e9146":"5464",ed9ae553:"5476","588433b1":"5537","6360ef06":"5543",d4bb2cb0:"5552","2e250d6d":"5565","7c66c59a":"5599","9a914db6":"5631","32dcf95e":"5650","5e266219":"5731","5535d7af":"5755","20ecba9b":"5779","50eef34b":"5861",a4c44b85:"5878",b2f554cd:"5894","8dc1e402":"5902","582dea03":"5979","1aa9ac35":"6019","2a4fe0d4":"6021","1f391b9e":"6061","47d775f0":"6093","455d41bc":"6097",d864a059:"6172",b3480cf8:"6215",ee028c53:"6240",c348e262:"6316","7f32d532":"6349","18536aaa":"6393","1e8406f2":"6407","5ae76acd":"6427",e0041558:"6473","0b36e747":"6493",dae804dd:"6501","2e955f05":"6550","1387c807":"6598","0f04c4bf":"6784","6b91e1af":"6902","4f6149ca":"6923",fbc1a65b:"6987","34be6e6a":"7005",eb43d790:"7017","64c9ca80":"7021","32ef234c":"7055",afde6f8f:"7133","3474579f":"7134",ed01863f:"7144","281494d0":"7145","228940c7":"7152","6bfc7002":"7165",e17376a0:"7171","65c56656":"7269",eb846286:"7368","9801fcb7":"7401","1c2262cb":"7420","8497e197":"7441","398dd9ed":"7445","2a714a8e":"7448",b8eb6aba:"7452","814f3328":"7472","7a58d7fa":"7484","03cd0d32":"7486",eef634fe:"7575",a6aa9e1f:"7643",a6c94d4c:"7649","826108d9":"7671","4d36f4bb":"7686","2c29bcc5":"7748","4a7a0e3b":"7808",de78196c:"7816","0b7620c8":"7817","5886a939":"7840","489cc4f4":"7876",e2835ef4:"8173",c9e57e8c:"8194","01a85c17":"8209","42c9ab86":"8274","5d4ec3d4":"8295","68202b49":"8302","97b42080":"8351",f6ece308:"8391",cadc4043:"8399","4ed715ca":"8451","0e133684":"8529","935f2afb":"8581","1be78505":"8714","8303fa10":"8723","2bc909a9":"8788",ee6139c1:"8810",c38cd4f0:"8816","4fb554a1":"8859","0dc7fd42":"8901","2dda2596":"8906",a7f1c1ae:"8922","06a5f76a":"8985","4cf8b132":"8998",f702ddaf:"9033","9062da7c":"9063",c7df6888:"9089","0ad179ee":"9121","29ac29a0":"9136","947d4688":"9203","037fbca4":"9229","39e40f36":"9253",a7023ddc:"9267","397e604e":"9304",f7453080:"9314","26299e01":"9343","67e91227":"9376",b153ec3c:"9390",be2a55e4:"9450","44c08670":"9489",a53f992a:"9583",b6694e92:"9624",e983cebe:"9665","249c18b0":"9684","3b47b6b5":"9688",e0868071:"9694","8a1a07c4":"9726",c50996a1:"9826",e3905ad3:"9841",a3633e48:"9878",d3208707:"9942",bb29b3f8:"9967",e7da4cec:"9989"}[e]||e,r.p+r.u(e)},(()=>{var e={5354:0,1869:0};r.f.j=(c,a)=>{var f=r.o(e,c)?e[c]:void 0;if(0!==f)if(f)a.push(f[2]);else if(/^(1869|5354)$/.test(c))e[c]=0;else{var b=new Promise(((a,b)=>f=e[c]=[a,b]));a.push(f[2]=b);var d=r.p+r.u(c),t=new Error;r.l(d,(a=>{if(r.o(e,c)&&(0!==(f=e[c])&&(e[c]=void 0),f)){var b=a&&("load"===a.type?"missing":a.type),d=a&&a.target&&a.target.src;t.message="Loading chunk "+c+" failed.\n("+b+": "+d+")",t.name="ChunkLoadError",t.type=b,t.request=d,f[1](t)}}),"chunk-"+c,c)}},r.O.j=c=>0===e[c];var c=(c,a)=>{var f,b,d=a[0],t=a[1],o=a[2],n=0;if(d.some((c=>0!==e[c]))){for(f in t)r.o(t,f)&&(r.m[f]=t[f]);if(o)var i=o(r)}for(c&&c(a);n - +

关于如何制作此网站

· 阅读需 1 分钟
wei c

创建 docusaurus 前端工程

此网站主要使用的技术是docusaurus,创建工程参考 Docusaurus 介绍

提示

核心命令很简单

npx create-docusaurus@latest my-website classic
cd my-website
npx docusaurus start

GITHUB 的 Action 功能

使用 GITHUB 的 Action 功能,在工程内创建.github/workflows/documentation.yml 文件,内容如下:

提示

.github/workflows/documentation.yml

name: Deploy Github pages
on:
push:
branches:
- master
permissions:
contents: write
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3

- name: Install and Build 🔧
run: |
npm i
npm run build

- name: Deploy 🚀
uses: JamesIves/github-pages-deploy-action@v4
with:
folder: build # The folder the action should deploy.

Action

- + \ No newline at end of file diff --git a/blog/archive/index.html b/blog/archive/index.html index 8d919d024..178c67e33 100644 --- a/blog/archive/index.html +++ b/blog/archive/index.html @@ -11,13 +11,13 @@ - + - + \ No newline at end of file diff --git a/blog/index.html b/blog/index.html index da7ac4bee..3a31073c9 100644 --- a/blog/index.html +++ b/blog/index.html @@ -11,13 +11,13 @@ - +

· 阅读需 1 分钟
wei c

创建 docusaurus 前端工程

此网站主要使用的技术是docusaurus,创建工程参考 Docusaurus 介绍

提示

核心命令很简单

npx create-docusaurus@latest my-website classic
cd my-website
npx docusaurus start

GITHUB 的 Action 功能

使用 GITHUB 的 Action 功能,在工程内创建.github/workflows/documentation.yml 文件,内容如下:

提示

.github/workflows/documentation.yml

name: Deploy Github pages
on:
push:
branches:
- master
permissions:
contents: write
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3

- name: Install and Build 🔧
run: |
npm i
npm run build

- name: Deploy 🚀
uses: JamesIves/github-pages-deploy-action@v4
with:
folder: build # The folder the action should deploy.

Action

· 阅读需 1 分钟
wei c

CHATGPT 就是一个全能的长者,他知道的很多,只要你能正确的表达,他几乎可以完美的回答你。

提示

Use the power of React to create interactive blog posts.

<button onClick={() => alert("button clicked!")}>Click me!</button>
- + \ No newline at end of file diff --git a/blog/mdx-blog-post/index.html b/blog/mdx-blog-post/index.html index 2b9cbd0af..7264a1020 100644 --- a/blog/mdx-blog-post/index.html +++ b/blog/mdx-blog-post/index.html @@ -11,13 +11,13 @@ - +

关于CHATGPT

· 阅读需 1 分钟
wei c

CHATGPT 就是一个全能的长者,他知道的很多,只要你能正确的表达,他几乎可以完美的回答你。

提示

Use the power of React to create interactive blog posts.

<button onClick={() => alert("button clicked!")}>Click me!</button>
- + \ No newline at end of file diff --git a/blog/tags/docusaurus/index.html b/blog/tags/docusaurus/index.html index bd522915c..959e7795f 100644 --- a/blog/tags/docusaurus/index.html +++ b/blog/tags/docusaurus/index.html @@ -11,13 +11,13 @@ - +

1 篇博文 含有标签「docusaurus」

查看所有标签

· 阅读需 1 分钟
wei c

创建 docusaurus 前端工程

此网站主要使用的技术是docusaurus,创建工程参考 Docusaurus 介绍

提示

核心命令很简单

npx create-docusaurus@latest my-website classic
cd my-website
npx docusaurus start

GITHUB 的 Action 功能

使用 GITHUB 的 Action 功能,在工程内创建.github/workflows/documentation.yml 文件,内容如下:

提示

.github/workflows/documentation.yml

name: Deploy Github pages
on:
push:
branches:
- master
permissions:
contents: write
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3

- name: Install and Build 🔧
run: |
npm i
npm run build

- name: Deploy 🚀
uses: JamesIves/github-pages-deploy-action@v4
with:
folder: build # The folder the action should deploy.

Action

- + \ No newline at end of file diff --git a/blog/tags/github-page/index.html b/blog/tags/github-page/index.html index 85de321a3..345877ba0 100644 --- a/blog/tags/github-page/index.html +++ b/blog/tags/github-page/index.html @@ -11,13 +11,13 @@ - +

1 篇博文 含有标签「GITHUB Page」

查看所有标签

· 阅读需 1 分钟
wei c

创建 docusaurus 前端工程

此网站主要使用的技术是docusaurus,创建工程参考 Docusaurus 介绍

提示

核心命令很简单

npx create-docusaurus@latest my-website classic
cd my-website
npx docusaurus start

GITHUB 的 Action 功能

使用 GITHUB 的 Action 功能,在工程内创建.github/workflows/documentation.yml 文件,内容如下:

提示

.github/workflows/documentation.yml

name: Deploy Github pages
on:
push:
branches:
- master
permissions:
contents: write
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3

- name: Install and Build 🔧
run: |
npm i
npm run build

- name: Deploy 🚀
uses: JamesIves/github-pages-deploy-action@v4
with:
folder: build # The folder the action should deploy.

Action

- + \ No newline at end of file diff --git a/blog/tags/index.html b/blog/tags/index.html index 680137382..44a1cdc0c 100644 --- a/blog/tags/index.html +++ b/blog/tags/index.html @@ -11,13 +11,13 @@ - + - + \ No newline at end of file diff --git "a/blog/tags/\347\211\251\350\201\224\347\275\221\345\271\263\345\217\260/index.html" "b/blog/tags/\347\211\251\350\201\224\347\275\221\345\271\263\345\217\260/index.html" index 3a980119f..dcfae568b 100644 --- "a/blog/tags/\347\211\251\350\201\224\347\275\221\345\271\263\345\217\260/index.html" +++ "b/blog/tags/\347\211\251\350\201\224\347\275\221\345\271\263\345\217\260/index.html" @@ -11,13 +11,13 @@ - +

1 篇博文 含有标签「物联网平台」

查看所有标签

· 阅读需 1 分钟
wei c

CHATGPT 就是一个全能的长者,他知道的很多,只要你能正确的表达,他几乎可以完美的回答你。

提示

Use the power of React to create interactive blog posts.

<button onClick={() => alert("button clicked!")}>Click me!</button>
- + \ No newline at end of file diff --git a/docs/iotcloud/alarmlinkage/index.html b/docs/iotcloud/alarmlinkage/index.html index 426e62801..041b3544c 100644 --- a/docs/iotcloud/alarmlinkage/index.html +++ b/docs/iotcloud/alarmlinkage/index.html @@ -11,13 +11,13 @@ - +
-

概述

报警联动主要是管理报警推送和报警联系人。

- +

概述

报警联动主要是管理报警推送和报警联系人。

+ \ No newline at end of file diff --git a/docs/iotcloud/connect/http/index.html b/docs/iotcloud/connect/http/index.html index c08049f03..aeddf9ebf 100644 --- a/docs/iotcloud/connect/http/index.html +++ b/docs/iotcloud/connect/http/index.html @@ -11,13 +11,13 @@ - + - +
+ \ No newline at end of file diff --git a/docs/iotcloud/connect/index.html b/docs/iotcloud/connect/index.html index 2023d1356..e15a2cb50 100644 --- a/docs/iotcloud/connect/index.html +++ b/docs/iotcloud/connect/index.html @@ -11,13 +11,13 @@ - +
-

概述

设备接入云平台,最核心的点是接入协议,本平台目前支持最流行的 MQTT,传统的 TCP,以及处理异构系统或简单使用的 HTTP 协议。

- +

概述

设备接入云平台,最核心的点是接入协议,本平台目前支持最流行的 MQTT,传统的 TCP,以及处理异构系统或简单使用的 HTTP 协议。

+ \ No newline at end of file diff --git a/docs/iotcloud/connect/mqtt/index.html b/docs/iotcloud/connect/mqtt/index.html index a379bd38b..ade3394df 100644 --- a/docs/iotcloud/connect/mqtt/index.html +++ b/docs/iotcloud/connect/mqtt/index.html @@ -11,14 +11,14 @@ - +

MQTT 设备接入

我觉得大概分两种模式:

  • 设备对接本平台的属性协议
  • 设备对接本平台的透传协议

两种模式的设备 connect 是一样的。

设备 connect


  • ClientID device:{deviceCode} 举例:device:XoVnVQ2
  • Username {deviceCode} 举例:XoVnVQ2
  • Password {devicePwd} 举例:YXOsHbV

连接成功后,默认订阅

  • /device/${device.code}/attributes/d

可根据具体应用场景,发布

  • /device/${device.code}/attributes/u
  • /device/${device.code}/attributes/req/u

可根据具体应用场景,订阅

  • /device/${device.code}/attributes/res/d

设备对接本平台的属性协议

设备上报属性


数据流向

  • 设备 >> 云端 >> 用户

允许属性类型

  • 设备上报
  • 设备云端共享

topic

  • /device/${device.code}/attributes/u
  • /account/${user.account}/${device.code}/attributes/d

plyload

  • [attributeCode:string] : [value:number|string]

用户写入属性


数据流向

  • 用户 >> 云端 >> 设备

允许属性类型

  • 云端下发
  • 设备云端共享 注:云端收到此属性后,会立即存储;设备收到此属性后,应该立即上报;
  • 云端私有 注:此类属性只会到云端,不会下发给设备

topic

  • /account/${user.account}/${device.code}/attributes/u
  • /device/${device.code}/attributes/d

plyload

  • [attributeCode:string] : [value:number|string]

设备对接本平台的透传协议

设备上报透传数据


数据流向

  • 设备 >> 云端 >> 用户

允许属性类型

  • 设备上报
  • 设备云端共享

topic

  • /device/${device.code}/t/u
  • 协议解析后模拟 /device/${device.code}/attributes/u
  • /account/${user.account}/${device.code}/attributes/d

plyload

  • [attributeCode:string] : [value:number|string]

用户写入属性


数据流向

  • 用户 >> 云端 >> 设备

允许属性类型

  • 云端下发
  • 设备云端共享 注:云端收到此属性后,会立即存储;设备收到此属性后,应该立即上报;
  • 云端私有 注:此类属性只会到云端,不会下发给设备

topic

  • /account/${user.account}/${device.code}/attributes/u
  • 协议解析后模拟 /device/${device.code}/t/d

plyload

  • [attributeCode:string] : [value:number|string]

举例说明

自行实现

有设备端研发能力的可以根据上面的协议自行研发实现。

或者设备量大的,可以让 DTU 或模组厂商根据上面的协议实现。

目前,本平台还无法做到让下面的 DTU 厂商实现属性交互协议,下面举例,只举例透传协议方式。 -相对于 MQTT 透传,100%的 DTU 厂商都实现了 TCP 协议接入,大家购买 DTU 的时候请仔细辨别,并非所有的 DTU 都支持 MQTT 透传。

塔石 DTU

有人 DTU

四信 DTU

- +相对于 MQTT 透传,100%的 DTU 厂商都实现了 TCP 协议接入,大家购买 DTU 的时候请仔细辨别,并非所有的 DTU 都支持 MQTT 透传。

塔石 DTU

有人 DTU

四信 DTU

+ \ No newline at end of file diff --git a/docs/iotcloud/connect/tcp/index.html b/docs/iotcloud/connect/tcp/index.html index 51134ad89..44f65e719 100644 --- a/docs/iotcloud/connect/tcp/index.html +++ b/docs/iotcloud/connect/tcp/index.html @@ -11,13 +11,13 @@ - +
-

TCP 设备接入

TCP 接入应该属于最为传统的接入方式,协议可以采用私有协议或通用的 Modbus 等。

本平台实现了 ModbusRTU 协议,以及支持私有协议的 TCP 二进制、TCP 文本协议。

特别说明,TCP 设备接入,云端作为 TCP 的服务端,暴漏的 15000 端口号,设备端作为 TCP 的客户端。

目前,该平台实现以下三种模式:

  • ModbusRTU 云端轮询模式
  • 二级制私有协议 云端轮询模式
  • 文本私有协议 云端轮询模式

TCP 注册包

三种模式的设备端注册到云端的方式是一样的。

设备端发起到云端的 TCP 的连接成功后,应该立即发送注册包,注册包的格式为 ${device.code}&${device.pwd}

云端验证成功后,后续设备端发送的消息才会被正常的解析,否则云端会离开断掉 TCP 连接。

ModbusRTU 云端轮询模式

选择了此种协议格式的设备,应该配置 Modbus 配置 ,让属性和寄存器建立关系,以保证云端可以根据关系去轮询设备的数据。

二级制私有协议 云端轮询模式

文本私有协议 云端轮询模式

- +

TCP 设备接入

TCP 接入应该属于最为传统的接入方式,协议可以采用私有协议或通用的 Modbus 等。

本平台实现了 ModbusRTU 协议,以及支持私有协议的 TCP 二进制、TCP 文本协议。

特别说明,TCP 设备接入,云端作为 TCP 的服务端,暴漏的 15000 端口号,设备端作为 TCP 的客户端。

目前,该平台实现以下三种模式:

  • ModbusRTU 云端轮询模式
  • 二级制私有协议 云端轮询模式
  • 文本私有协议 云端轮询模式

TCP 注册包

三种模式的设备端注册到云端的方式是一样的。

设备端发起到云端的 TCP 的连接成功后,应该立即发送注册包,注册包的格式为 ${device.code}&${device.pwd}

云端验证成功后,后续设备端发送的消息才会被正常的解析,否则云端会离开断掉 TCP 连接。

ModbusRTU 云端轮询模式

选择了此种协议格式的设备,应该配置 Modbus 配置 ,让属性和寄存器建立关系,以保证云端可以根据关系去轮询设备的数据。

二级制私有协议 云端轮询模式

文本私有协议 云端轮询模式

+ \ No newline at end of file diff --git a/docs/iotcloud/devicemanager/device-group/index.html b/docs/iotcloud/devicemanager/device-group/index.html index cb2ca973f..df447ba38 100644 --- a/docs/iotcloud/devicemanager/device-group/index.html +++ b/docs/iotcloud/devicemanager/device-group/index.html @@ -11,13 +11,13 @@ - +
-

设备分组管理

为什么需要设计设备分组这个功能?

  • 设备太多,查询的时候很不方便,需要设备重新归纳;如果设备太少(低于 100),使用这个功能意义不大。
  • 还是设备太多,分配权限的时候,不好划分,主要是分给客户系统用户,这种情况下可以直接划分分组给他们,这样这个分组下面的设备的增删也会直接影响客户和系统用户的设备权限。
- +

设备分组管理

为什么需要设计设备分组这个功能?

  • 设备太多,查询的时候很不方便,需要设备重新归纳;如果设备太少(低于 100),使用这个功能意义不大。
  • 还是设备太多,分配权限的时候,不好划分,主要是分给客户系统用户,这种情况下可以直接划分分组给他们,这样这个分组下面的设备的增删也会直接影响客户和系统用户的设备权限。
+ \ No newline at end of file diff --git a/docs/iotcloud/devicemanager/device-info/index.html b/docs/iotcloud/devicemanager/device-info/index.html index 7b84c1b5e..13b42c47e 100644 --- a/docs/iotcloud/devicemanager/device-info/index.html +++ b/docs/iotcloud/devicemanager/device-info/index.html @@ -11,13 +11,13 @@ - + - +
+ \ No newline at end of file diff --git a/docs/iotcloud/devicemanager/device-type/index.html b/docs/iotcloud/devicemanager/device-type/index.html index 3d1fda362..6b1286a27 100644 --- a/docs/iotcloud/devicemanager/device-type/index.html +++ b/docs/iotcloud/devicemanager/device-type/index.html @@ -11,13 +11,13 @@ - + - +
+ \ No newline at end of file diff --git a/docs/iotcloud/devicemanager/index.html b/docs/iotcloud/devicemanager/index.html index dcaf7bb86..1c12c07ef 100644 --- a/docs/iotcloud/devicemanager/index.html +++ b/docs/iotcloud/devicemanager/index.html @@ -11,13 +11,13 @@ - +
-

概述

设备管理的内容包括设备类型及其附属功能的管理、设备信息及其附属功能的管理、设备分组及其附属功能的管理。

- +

概述

设备管理的内容包括设备类型及其附属功能的管理、设备信息及其附属功能的管理、设备分组及其附属功能的管理。

+ \ No newline at end of file diff --git a/docs/iotcloud/index.html b/docs/iotcloud/index.html index 601394b30..99ff1c085 100644 --- a/docs/iotcloud/index.html +++ b/docs/iotcloud/index.html @@ -11,13 +11,13 @@ - +
-

概述

所有程序的代码全部开源,免费商用,不受任何限制,致力于打造免费、开源、性能优异的物联网云平台生态。

  • 云平台-后端源码
  • 云平台-前端源码
  • 云平台-微信小程序源码
  • 云平台-移动端 APP 源码

虽然本平台的全部源码公开且免费商用,但是我个人还是需要生存,可提供如下付费服务:

  • 技术支持,可进 VIP 微信群,提供技术方案指导;
  • 数据库说明文档,主要是表名、字段名含义解释,对于要二开非常有帮助;
  • 后端源码说明文档,主要是和用户的协议文档、和设备的协议文档、后端数据内部数据流转、后端架构图、提供给前端的接口文档等,对于二开非常有帮助;
  • 前端源码说明文档,主要是架构图、前端编码规范、前端手机组态编辑器二开文档等,对于二开非常有帮助;
  • 微信小程序源码说明文档,主要是架构图、编码规范、手机组态渲染逻辑等,对于二开非常有帮助;
  • 移动端 APP 源码说明文档,包括架构图、编码规范、上线 APP 商店流程说明等;
  • 私有部署;
  • 功能定制;
- +

概述

所有程序的代码全部开源,免费商用,不受任何限制,致力于打造免费、开源、性能优异的物联网云平台生态。

  • 云平台-后端源码
  • 云平台-前端源码
  • 云平台-微信小程序源码
  • 云平台-移动端 APP 源码

虽然本平台的全部源码公开且免费商用,但是我个人还是需要生存,可提供如下付费服务:

  • 技术支持,可进 VIP 微信群,提供技术方案指导;
  • 数据库说明文档,主要是表名、字段名含义解释,对于要二开非常有帮助;
  • 后端源码说明文档,主要是和用户的协议文档、和设备的协议文档、后端数据内部数据流转、后端架构图、提供给前端的接口文档等,对于二开非常有帮助;
  • 前端源码说明文档,主要是架构图、前端编码规范、前端手机组态编辑器二开文档等,对于二开非常有帮助;
  • 微信小程序源码说明文档,主要是架构图、编码规范、手机组态渲染逻辑等,对于二开非常有帮助;
  • 移动端 APP 源码说明文档,包括架构图、编码规范、上线 APP 商店流程说明等;
  • 私有部署;
  • 功能定制;
+ \ No newline at end of file diff --git a/docs/iotcloud/usercenter/customer/index.html b/docs/iotcloud/usercenter/customer/index.html index 63643d659..4a0055f74 100644 --- a/docs/iotcloud/usercenter/customer/index.html +++ b/docs/iotcloud/usercenter/customer/index.html @@ -11,13 +11,13 @@ - +
-

客户管理

本文为您介绍 客户 的基本概念、使用流程、最佳实践和使用限制。

什么是客户

我们认为这里的客户是简单使用设备的用户,他们只需要管理几台最多几十台设备。

他们是 RAM 用户的一种简单实用的划分,只需要给他们分一下设备权限即可。

设备权限应该分两种:支持设备分组、支持单独设备,两种权限选择一种。

如果选择设备分组,后续往设备分组里面增删设备,该客户会受到影响。

如果选择单独设备,只有设备删除,该客户设备权限才会受到影响。

使用流程

GIF 图

最佳实践

GIF 图

使用限制

  • 客户不能登录 PC 控制台,可以使用小程序。
- +

客户管理

本文为您介绍 客户 的基本概念、使用流程、最佳实践和使用限制。

什么是客户

我们认为这里的客户是简单使用设备的用户,他们只需要管理几台最多几十台设备。

他们是 RAM 用户的一种简单实用的划分,只需要给他们分一下设备权限即可。

设备权限应该分两种:支持设备分组、支持单独设备,两种权限选择一种。

如果选择设备分组,后续往设备分组里面增删设备,该客户会受到影响。

如果选择单独设备,只有设备删除,该客户设备权限才会受到影响。

使用流程

GIF 图

最佳实践

GIF 图

使用限制

  • 客户不能登录 PC 控制台,可以使用小程序。
+ \ No newline at end of file diff --git a/docs/iotcloud/usercenter/index.html b/docs/iotcloud/usercenter/index.html index 5bbaeccf0..53c4b997c 100644 --- a/docs/iotcloud/usercenter/index.html +++ b/docs/iotcloud/usercenter/index.html @@ -11,13 +11,13 @@ - +
-

概述

用户中心包括:当前登录用户的用户日志,注册用户及其相关功能的信息设置,RAM 用户的管理,客户的管理。

平台用户相关的名词解释:

  • 注册用户:注册到Iot Cloud平台的用户,这些用户之间都是独立的,一般都是制造设备的企业、使用设备的企业以及设备代理/服务企业;
  • RAM 用户:由注册用户手动添加,一般是企业内部员工,配合注册用户一块管理维护平台;
  • 客户:可由注册用户或有权限的系统用户添加,一般是实际使用设备的个人或企业;如果注册用户是使用设备的企业,可能这种情况无需使用客户功能;
- +

概述

用户中心包括:当前登录用户的用户日志,注册用户及其相关功能的信息设置,RAM 用户的管理,客户的管理。

平台用户相关的名词解释:

  • 注册用户:注册到Iot Cloud平台的用户,这些用户之间都是独立的,一般都是制造设备的企业、使用设备的企业以及设备代理/服务企业;
  • RAM 用户:由注册用户手动添加,一般是企业内部员工,配合注册用户一块管理维护平台;
  • 客户:可由注册用户或有权限的系统用户添加,一般是实际使用设备的个人或企业;如果注册用户是使用设备的企业,可能这种情况无需使用客户功能;
+ \ No newline at end of file diff --git a/docs/iotcloud/usercenter/system-user/index.html b/docs/iotcloud/usercenter/system-user/index.html index 3a72db6ef..50123b243 100644 --- a/docs/iotcloud/usercenter/system-user/index.html +++ b/docs/iotcloud/usercenter/system-user/index.html @@ -11,13 +11,13 @@ - +
-

RAM 用户

本文为您介绍 RAM(Resource Access Management)用户的基本概念、使用流程、最佳实践和使用限制。

什么是 RAM 用户

  • RAM 用户只能由注册用户创建;
  • 他只是协助注册用户管理系统的,不具有资源的所属权限,受控于注册用户;
  • RAM 用户不拥有资源,不能独立计量计费,由所属的注册用户统一付费。

使用流程

GIF 图

最佳实践

GIF 图

使用限制

  • 不能拥有【用户中心-RAM 用户】的所有功能权限;
- +

RAM 用户

本文为您介绍 RAM(Resource Access Management)用户的基本概念、使用流程、最佳实践和使用限制。

什么是 RAM 用户

  • RAM 用户只能由注册用户创建;
  • 他只是协助注册用户管理系统的,不具有资源的所属权限,受控于注册用户;
  • RAM 用户不拥有资源,不能独立计量计费,由所属的注册用户统一付费。

使用流程

GIF 图

最佳实践

GIF 图

使用限制

  • 不能拥有【用户中心-RAM 用户】的所有功能权限;
+ \ No newline at end of file diff --git a/docs/iotcloud/usercenter/user-log/index.html b/docs/iotcloud/usercenter/user-log/index.html index 0e41fcb39..530fb1714 100644 --- a/docs/iotcloud/usercenter/user-log/index.html +++ b/docs/iotcloud/usercenter/user-log/index.html @@ -11,13 +11,13 @@ - +
-

用户日志

本文为您介绍 用户日志 的基本概念、使用流程、最佳实践和使用限制。

什么是用户日志

用户日志指的是用户操作的关键信息记录。

使用流程

GIF 图

最佳实践

GIF 图

使用限制

- +

用户日志

本文为您介绍 用户日志 的基本概念、使用流程、最佳实践和使用限制。

什么是用户日志

用户日志指的是用户操作的关键信息记录。

使用流程

GIF 图

最佳实践

GIF 图

使用限制

+ \ No newline at end of file diff --git a/docs/iotcloud/usercenter/user-settings/index.html b/docs/iotcloud/usercenter/user-settings/index.html index 426f6e8ce..aab32f83b 100644 --- a/docs/iotcloud/usercenter/user-settings/index.html +++ b/docs/iotcloud/usercenter/user-settings/index.html @@ -11,13 +11,13 @@ - +
-

用户设置

本文为您介绍 用户设置 的基本概念、使用流程、最佳实践和使用限制。

什么是用户设置

如果是注册用户,可以管理用户信息、以及一些重要的服务信息配置;

如果是 RAM 用户,只允许管理用户信息。

使用流程

GIF 图

最佳实践

GIF 图

使用限制

- +

用户设置

本文为您介绍 用户设置 的基本概念、使用流程、最佳实践和使用限制。

什么是用户设置

如果是注册用户,可以管理用户信息、以及一些重要的服务信息配置;

如果是 RAM 用户,只允许管理用户信息。

使用流程

GIF 图

最佳实践

GIF 图

使用限制

+ \ No newline at end of file diff --git a/docs/study/ai/index.html b/docs/study/ai/index.html index 2625704bb..205ec2049 100644 --- a/docs/study/ai/index.html +++ b/docs/study/ai/index.html @@ -11,13 +11,13 @@ - +
-

人工智能

LLM

大语言模型 Large Language Models,人类要走向人工智能时代,离不开 LLM 的发展,或者说,LLM 是通往 AI 时代的核心途径。

ChatGPT 是最知名的 LLM 案例,LLM 的发展又离不开机器学习、神经网络、深度学习等技术的突破。大语言模型的关键之一是一个“大”字,训练的数据非常多,堪称海量,如 ChatGPT 就包含了 8000 亿以上的数据。

- +

人工智能

LLM

大语言模型 Large Language Models,人类要走向人工智能时代,离不开 LLM 的发展,或者说,LLM 是通往 AI 时代的核心途径。

ChatGPT 是最知名的 LLM 案例,LLM 的发展又离不开机器学习、神经网络、深度学习等技术的突破。大语言模型的关键之一是一个“大”字,训练的数据非常多,堪称海量,如 ChatGPT 就包含了 8000 亿以上的数据。

+ \ No newline at end of file diff --git "a/docs/study/back/API\347\275\221\345\205\263/APISIX/index.html" "b/docs/study/back/API\347\275\221\345\205\263/APISIX/index.html" index 1928361c6..4d3a5a77e 100644 --- "a/docs/study/back/API\347\275\221\345\205\263/APISIX/index.html" +++ "b/docs/study/back/API\347\275\221\345\205\263/APISIX/index.html" @@ -11,13 +11,13 @@ - +
-

Apache APISIX

Apache APISIX 是一个动态、实时、高性能的云原生 API 网关,提供了负载均衡、动态上游、灰度发布、服务熔断、身份认证、可观测性等丰富的流量管理功能。

官方网站

官方文档

基于 OpenRestyetcd

APISIX 所展现出的性能如何?

与其它 API 网关相比,Apache APISIX 提供了更好的性能,其单核 QPS 高达 18,000,平均延迟仅为 0.2 ms。

如果您想获取性能基准测试的具体结果,请查看 benchmark

- +

Apache APISIX

Apache APISIX 是一个动态、实时、高性能的云原生 API 网关,提供了负载均衡、动态上游、灰度发布、服务熔断、身份认证、可观测性等丰富的流量管理功能。

官方网站

官方文档

基于 OpenRestyetcd

APISIX 所展现出的性能如何?

与其它 API 网关相比,Apache APISIX 提供了更好的性能,其单核 QPS 高达 18,000,平均延迟仅为 0.2 ms。

如果您想获取性能基准测试的具体结果,请查看 benchmark

+ \ No newline at end of file diff --git "a/docs/study/back/API\347\275\221\345\205\263/index.html" "b/docs/study/back/API\347\275\221\345\205\263/index.html" index d9aaae53c..e5ef2bc14 100644 --- "a/docs/study/back/API\347\275\221\345\205\263/index.html" +++ "b/docs/study/back/API\347\275\221\345\205\263/index.html" @@ -11,13 +11,13 @@ - + - +
+ \ No newline at end of file diff --git a/docs/study/back/IEDA/Maven/index.html b/docs/study/back/IEDA/Maven/index.html index b820f8478..4ef3ce48b 100644 --- a/docs/study/back/IEDA/Maven/index.html +++ b/docs/study/back/IEDA/Maven/index.html @@ -11,13 +11,13 @@ - +
-

Maven

Maven 在 IDEA 的最佳配置

团队固定使用某个版本的 Maven,自行在官网下载 https://maven.apache.org/download.cgi

在 IDEA 中设置

maven

注意 settings.xml 的一些配置


<localRepository>D:\soft\.m2\repository</localRepository>

<server>
<id>xx-nexus</id>
<username>admin</username>
<password>123456</password>
</server>

<!-- 阿里镜像地址 -->
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
<mirrorOf>central</mirrorOf>
</mirror>

- +

Maven

Maven 在 IDEA 的最佳配置

团队固定使用某个版本的 Maven,自行在官网下载 https://maven.apache.org/download.cgi

在 IDEA 中设置

maven

注意 settings.xml 的一些配置


<localRepository>D:\soft\.m2\repository</localRepository>

<server>
<id>xx-nexus</id>
<username>admin</username>
<password>123456</password>
</server>

<!-- 阿里镜像地址 -->
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
<mirrorOf>central</mirrorOf>
</mirror>

+ \ No newline at end of file diff --git a/docs/study/back/IEDA/encoding/index.html b/docs/study/back/IEDA/encoding/index.html index 3e3257a82..41ae8f216 100644 --- a/docs/study/back/IEDA/encoding/index.html +++ b/docs/study/back/IEDA/encoding/index.html @@ -11,13 +11,13 @@ - + - +
+ \ No newline at end of file diff --git a/docs/study/back/IEDA/fileandcodetemplates/index.html b/docs/study/back/IEDA/fileandcodetemplates/index.html index a07c5adcb..3671b22f6 100644 --- a/docs/study/back/IEDA/fileandcodetemplates/index.html +++ b/docs/study/back/IEDA/fileandcodetemplates/index.html @@ -11,13 +11,13 @@ - + - +
+ \ No newline at end of file diff --git a/docs/study/back/IEDA/save-action/index.html b/docs/study/back/IEDA/save-action/index.html index 64337856d..89505b291 100644 --- a/docs/study/back/IEDA/save-action/index.html +++ b/docs/study/back/IEDA/save-action/index.html @@ -11,13 +11,13 @@ - + - +
+ \ No newline at end of file diff --git "a/docs/study/back/POST\347\274\226\347\240\201\346\240\274\345\274\217/index.html" "b/docs/study/back/POST\347\274\226\347\240\201\346\240\274\345\274\217/index.html" index 7fd44136f..5cdcf47d7 100644 --- "a/docs/study/back/POST\347\274\226\347\240\201\346\240\274\345\274\217/index.html" +++ "b/docs/study/back/POST\347\274\226\347\240\201\346\240\274\345\274\217/index.html" @@ -11,13 +11,13 @@ - +
-

POST编码格式

概述

表单有一个叫 enctype 的属性, 它有两个值, application/x-www-form-urlencoded 和 multipart/form-data.

这一属性实际只对 post 方式起作用, 因为 get 方式实际只支持前一种类型, 也就是 application/x-www-form-urlencoded, 这是缺省的类型.

在使用 post 方式提交时, 缺省的编码类型也依然是这个 application/x-www-form-urlencoded.

application/x-www-form-urlencoded

浏览器默认的编码格式,用于键值对参数,参数之间用&间隔;

multipart/form-data

常用于文件等二进制,也可用于键值对参数,最后连接成一串字符传输

参考

- +

POST编码格式

概述

表单有一个叫 enctype 的属性, 它有两个值, application/x-www-form-urlencoded 和 multipart/form-data.

这一属性实际只对 post 方式起作用, 因为 get 方式实际只支持前一种类型, 也就是 application/x-www-form-urlencoded, 这是缺省的类型.

在使用 post 方式提交时, 缺省的编码类型也依然是这个 application/x-www-form-urlencoded.

application/x-www-form-urlencoded

浏览器默认的编码格式,用于键值对参数,参数之间用&间隔;

multipart/form-data

常用于文件等二进制,也可用于键值对参数,最后连接成一串字符传输

参考

+ \ No newline at end of file diff --git a/docs/study/back/WSL/index.html b/docs/study/back/WSL/index.html index 54900dc0b..454d562f9 100644 --- a/docs/study/back/WSL/index.html +++ b/docs/study/back/WSL/index.html @@ -11,13 +11,13 @@ - +
-

WSL

用本地的ssh命令连接WSL

windows下面的cmd和ps太难用,需要用好用的ssh客户端连接wsl,根据晚上的配置,怎么都连不上,后来发现,

ip改成localhost,立即就可以了,记录一下。

- +

WSL

用本地的ssh命令连接WSL

windows下面的cmd和ps太难用,需要用好用的ssh客户端连接wsl,根据晚上的配置,怎么都连不上,后来发现,

ip改成localhost,立即就可以了,记录一下。

+ \ No newline at end of file diff --git a/docs/study/back/Zookeeper/index.html b/docs/study/back/Zookeeper/index.html index d9e1fd8ba..d2252f986 100644 --- a/docs/study/back/Zookeeper/index.html +++ b/docs/study/back/Zookeeper/index.html @@ -11,13 +11,13 @@ - +
-

Zookeeper

Zookeeper概述

Zookeeper 是一个分布式协调服务的开源框架。主要用来解决分布式集群中应用系统的一致性问题,例如怎样避免同时操作同一数据造成脏读的问题。

ZooKeeper 本质上是一个分布式的小文件存储系统。提供基于类似于文件系 统的目录树方式的数据存储,并且可以对树中的节点进行有效管理。从而用来维护和监控你存储的数据的状态变化。通过监控这些数据状态的变化,从而可以达 到基于数据的集群管理。诸如:统一命名服务分布式配置管理分布式消息队列分布式锁分布式协调等功能。

上面的解释有点抽象,简单来说zookeeper=文件系统+监听通知机制。

  1. 文件系统,Zookeeper维护一个类似文件系统的数据结构,每个子目录项如 NameService 都被称作为 znode(目录节点),和文件系统一样,我们能够自由的增加、删除znode,在一个znode下增加、删除子znode,唯一的不同在于znode是可以存储数据的。
  2. 监听通知机制,客户端注册监听它关心的目录节点,当目录节点发生变化(数据改变、被删除、子目录节点增加删除)时,zookeeper会通知客户端。

Zookeeper 特性

  1. 全局数据一致:每个 server 保存一份相同的数据副本,client 无论连 接到哪个 server,展示的数据都是一致的,这是最重要的特征;

  2. 可靠性:如果消息被其中一台服务器接受,那么将被所有的服务器接受。

  3. 顺序性:包括全局有序和偏序两种:全局有序是指如果在一台服务器上 消息 a 在消息 b 前发布,则在所有 Server 上消息 a 都将在消息 b 前被 发布;偏序是指如果一个消息 b 在消息 a 后被同一个发送者发布,a 必将排在 b 前面。

  4. 数据更新原子性:一次数据更新要么成功(半数以上节点成功),要么失 败,不存在中间状态;

  5. 实时性:Zookeeper 保证客户端将在一个时间间隔范围内获得服务器的更新信息,或者服务器失效的信息。

- +

Zookeeper

Zookeeper概述

Zookeeper 是一个分布式协调服务的开源框架。主要用来解决分布式集群中应用系统的一致性问题,例如怎样避免同时操作同一数据造成脏读的问题。

ZooKeeper 本质上是一个分布式的小文件存储系统。提供基于类似于文件系 统的目录树方式的数据存储,并且可以对树中的节点进行有效管理。从而用来维护和监控你存储的数据的状态变化。通过监控这些数据状态的变化,从而可以达 到基于数据的集群管理。诸如:统一命名服务分布式配置管理分布式消息队列分布式锁分布式协调等功能。

上面的解释有点抽象,简单来说zookeeper=文件系统+监听通知机制。

  1. 文件系统,Zookeeper维护一个类似文件系统的数据结构,每个子目录项如 NameService 都被称作为 znode(目录节点),和文件系统一样,我们能够自由的增加、删除znode,在一个znode下增加、删除子znode,唯一的不同在于znode是可以存储数据的。
  2. 监听通知机制,客户端注册监听它关心的目录节点,当目录节点发生变化(数据改变、被删除、子目录节点增加删除)时,zookeeper会通知客户端。

Zookeeper 特性

  1. 全局数据一致:每个 server 保存一份相同的数据副本,client 无论连 接到哪个 server,展示的数据都是一致的,这是最重要的特征;

  2. 可靠性:如果消息被其中一台服务器接受,那么将被所有的服务器接受。

  3. 顺序性:包括全局有序和偏序两种:全局有序是指如果在一台服务器上 消息 a 在消息 b 前发布,则在所有 Server 上消息 a 都将在消息 b 前被 发布;偏序是指如果一个消息 b 在消息 a 后被同一个发送者发布,a 必将排在 b 前面。

  4. 数据更新原子性:一次数据更新要么成功(半数以上节点成功),要么失 败,不存在中间状态;

  5. 实时性:Zookeeper 保证客户端将在一个时间间隔范围内获得服务器的更新信息,或者服务器失效的信息。

+ \ No newline at end of file diff --git a/docs/study/back/index.html b/docs/study/back/index.html index 150f2cd28..cf8c7253f 100644 --- a/docs/study/back/index.html +++ b/docs/study/back/index.html @@ -11,13 +11,13 @@ - +
-
- +
+ \ No newline at end of file diff --git a/docs/study/back/maven/mvnw/index.html b/docs/study/back/maven/mvnw/index.html index 8a9c3da93..13f50a3dd 100644 --- a/docs/study/back/maven/mvnw/index.html +++ b/docs/study/back/maven/mvnw/index.html @@ -11,13 +11,13 @@ - + - +
+ \ No newline at end of file diff --git "a/docs/study/back/maven/pom\346\226\207\344\273\266\344\270\255\347\232\204scope\346\240\207\347\255\276/index.html" "b/docs/study/back/maven/pom\346\226\207\344\273\266\344\270\255\347\232\204scope\346\240\207\347\255\276/index.html" index 8816f8a07..b5a316cef 100644 --- "a/docs/study/back/maven/pom\346\226\207\344\273\266\344\270\255\347\232\204scope\346\240\207\347\255\276/index.html" +++ "b/docs/study/back/maven/pom\346\226\207\344\273\266\344\270\255\347\232\204scope\346\240\207\347\255\276/index.html" @@ -11,14 +11,14 @@ - +

pom文件中的scope标签

分类

compile

默认的scope,表示 dependency 都可以在生命周期中使用。而且,这些dependencies 会传递到依赖的项目中。适用于所有阶段,会随着项目一起发布。

provided

跟compile相似,但是表明了dependency 由JDK或者容器提供,例如Servlet AP和一些Java EE APIs。这个scope 只能作用在编译和测试时,同时没有传递性。

runtime

表示dependency不作用在编译时,但会作用在运行和测试时,如JDBC驱动,适用运行和测试阶段。

test

表示dependency作用在测试时,不作用在运行时。 只在测试时使用,用于编译和运行测试代码。不会随项目发布。

system

跟provided 相似,但是在系统中要以外部JAR包的形式提供,maven不会在repository查找它。

import

这个标签就是 引入该dependency的pom中定义的所有dependency定义

注意:

import标签值只能在dependencyManagement标签下使用! -并且仅用于type为"pom"的dependency,其意义为引入该dependency的pom中定义的所有dependency定义

- +并且仅用于type为"pom"的dependency,其意义为引入该dependency的pom中定义的所有dependency定义

+ \ No newline at end of file diff --git "a/docs/study/back/maven/\345\270\270\347\224\250\345\217\202\346\225\260/index.html" "b/docs/study/back/maven/\345\270\270\347\224\250\345\217\202\346\225\260/index.html" index f63dd39b2..ec37b0ed3 100644 --- "a/docs/study/back/maven/\345\270\270\347\224\250\345\217\202\346\225\260/index.html" +++ "b/docs/study/back/maven/\345\270\270\347\224\250\345\217\202\346\225\260/index.html" @@ -11,13 +11,13 @@ - + - +
+ \ No newline at end of file diff --git "a/docs/study/back/maven/\346\236\204\345\273\272Docker/index.html" "b/docs/study/back/maven/\346\236\204\345\273\272Docker/index.html" index 23495d13c..85e49e3f6 100644 --- "a/docs/study/back/maven/\346\236\204\345\273\272Docker/index.html" +++ "b/docs/study/back/maven/\346\236\204\345\273\272Docker/index.html" @@ -11,13 +11,13 @@ - +
-

构建Docker

构建 Java SpringBoot Docker 镜像

最为原始的方式

也就是使用 Docker 的打包命令去打包

spring-boot-maven-plugin

SpringBoot 自己内置了一个 Docker 镜像打包工具,在 spring-boot-starter-parent 中,我们无需多余的设置。

优点:不需要写 DockerFile,Spring 建议的安全、内存、性能等问题都不需要管。

jib-maven-plugin

来自 Google 的一款打包插件。

优点:不需要本地安装 Docker,也不需要写 DockerFile,Jib 可以直接推送到指定的 Docker 仓库。

dockerfle-maven-plugin

需要写 DockerFile 也需要本地 Docker 环境,但是恰恰是最好用的,最稳定的,最自由把控的。

优点:稳定,不受网络限制,DockerFile 自己写,自由度很高,想怎么改怎么改,个人推荐这个。

- +

构建Docker

构建 Java SpringBoot Docker 镜像

最为原始的方式

也就是使用 Docker 的打包命令去打包

spring-boot-maven-plugin

SpringBoot 自己内置了一个 Docker 镜像打包工具,在 spring-boot-starter-parent 中,我们无需多余的设置。

优点:不需要写 DockerFile,Spring 建议的安全、内存、性能等问题都不需要管。

jib-maven-plugin

来自 Google 的一款打包插件。

优点:不需要本地安装 Docker,也不需要写 DockerFile,Jib 可以直接推送到指定的 Docker 仓库。

dockerfle-maven-plugin

需要写 DockerFile 也需要本地 Docker 环境,但是恰恰是最好用的,最稳定的,最自由把控的。

优点:稳定,不受网络限制,DockerFile 自己写,自由度很高,想怎么改怎么改,个人推荐这个。

+ \ No newline at end of file diff --git a/docs/study/back/mq/Kafka/index.html b/docs/study/back/mq/Kafka/index.html index d00ebd384..a4898dbee 100644 --- a/docs/study/back/mq/Kafka/index.html +++ b/docs/study/back/mq/Kafka/index.html @@ -11,15 +11,15 @@ - +

Kafka

简介

kafka 最新定义为:分布式流式平台,而不是单纯的消息系统,更具有持久化、流处理的特点;主要处理两类应用:实时流数据管道和实时流应用程序。

实时流数据管道:举个例子 Kafka+ELK 处理日志; 实时流应用程序:举个例子 Kafka+报警模块 APP; -持久化,可以作为存储系统,每个消费者对每个 topic 都有一个 offset 来记录上次消费的位置;

常见使用场景

  1. 消息,可以媲美 ActiveMQ 和 RabbitMQ;
  2. 网站活动跟踪,数据>>Kafka>>ELK/Hbase/Hadoop;
  3. 度量,运营监控数据;
  4. 日志聚合,Kafka+ELK;
  5. 流处理,从 0.10 开始,Kafka Streams 是一个轻量级但功能强大的流处理库;

常用命令

参考 quickstart

# 进程+kafka启动方式
tar -xzf kafka_2.13-3.7.0.tgz
cd kafka_2.13-3.7.0
#
nohup bin/zookeeper-server-start.sh config/zookeeper.properties > /dev/null 2>&1 &
#
nohup bin/kafka-server-start.sh config/server.properties > /dev/null 2>&1 &
#
nohup ./chongqing.sh > /dev/null 2&>1 &
#!/bin/sh
echo -e "循环处理 ..."
while [ 1 ]
do
echo '{"cloudID":"DcqcCcspgExtXcKp","orgID":1,"serviceCloudID":"HwygExtXcKp","serviceDirectoryID":"xc-kp_basicencryption_dataencryptioin_1","usedPercent":"30%","csID":6802687148295450000,"configNum":10,"serviceUsed":150,"serviceTotal":500,"serviceSpecification":50,"serviceCountUnit":"Mb/s"}' | ./bin/kafka-console-producer.sh --bootstrap-server localhost:9092 --topic quickstart-events
sleep 10s
done
# 查看topic列表
./bin/kafka-topics.sh --list --bootstrap-server localhost:9092
# 创建topic
./bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --topic xxx
# 创建生产者
./bin/kafka-console-producer.sh --bootstrap-server localhost:9092 --topic jiot.cloud
./bin/kafka-console-producer.sh --bootstrap-server localhost:9092 --topic quickstart-events
# 创建消费者
./bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 \
--topic quickstart-events \
--from-beginning
- +持久化,可以作为存储系统,每个消费者对每个 topic 都有一个 offset 来记录上次消费的位置;

常见使用场景

  1. 消息,可以媲美 ActiveMQ 和 RabbitMQ;
  2. 网站活动跟踪,数据>>Kafka>>ELK/Hbase/Hadoop;
  3. 度量,运营监控数据;
  4. 日志聚合,Kafka+ELK;
  5. 流处理,从 0.10 开始,Kafka Streams 是一个轻量级但功能强大的流处理库;

常用命令

参考 quickstart

# 进程+kafka启动方式
tar -xzf kafka_2.13-3.7.0.tgz
cd kafka_2.13-3.7.0
#
nohup bin/zookeeper-server-start.sh config/zookeeper.properties > /dev/null 2>&1 &
#
nohup bin/kafka-server-start.sh config/server.properties > /dev/null 2>&1 &
#
nohup ./chongqing.sh > /dev/null 2&>1 &
#!/bin/sh
echo -e "循环处理 ..."
while [ 1 ]
do
echo '{"cloudID":"DcqcCcspgExtXcKp","orgID":1,"serviceCloudID":"HwygExtXcKp","serviceDirectoryID":"xc-kp_basicencryption_dataencryptioin_1","usedPercent":"30%","csID":6802687148295450000,"configNum":10,"serviceUsed":150,"serviceTotal":500,"serviceSpecification":50,"serviceCountUnit":"Mb/s"}' | ./bin/kafka-console-producer.sh --bootstrap-server localhost:9092 --topic quickstart-events
sleep 10s
done
# 查看topic列表
./bin/kafka-topics.sh --list --bootstrap-server localhost:9092
# 创建topic
./bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --topic xxx
# 创建生产者
./bin/kafka-console-producer.sh --bootstrap-server localhost:9092 --topic jiot.cloud
./bin/kafka-console-producer.sh --bootstrap-server localhost:9092 --topic quickstart-events
# 创建消费者
./bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 \
--topic quickstart-events \
--from-beginning
+ \ No newline at end of file diff --git a/docs/study/back/mq/MQTT broker/index.html b/docs/study/back/mq/MQTT broker/index.html index 981188358..899e44992 100644 --- a/docs/study/back/mq/MQTT broker/index.html +++ b/docs/study/back/mq/MQTT broker/index.html @@ -11,13 +11,13 @@ - +
-

MQTT broker

EMQ EMQX

  1. 官网
  2. 开发语言:Erlang/OTP,一个不常见的语言;
  3. 国人开发;又称 emqttd;
  4. 开源&商业化 MQTT 鼻祖

BifroMQ

  • 百度开源的一款 MQTT 产品
  • 开发语言:JDK17 Maven3.5+
  • 开源

FluxMQ

TBMQ

  • Thingsboard 开源的⼀款 MQTT 产品
  • 开发语言:JDK17 Maven3.5+
  • 开源

Eclipse Mosquitto

  1. 官网
  2. 开发语言:C/C++

Moquette

  1. 官网
  2. 开发语言:Java
  3. 据大佬说这就是一个玩具项目,但是基于 Java 开源的并不多,且网上很多是基于他开发出来的;
  4. 0.10 支持集群;0.12 不支持集群;

总结

- +

MQTT broker

EMQ EMQX

  1. 官网
  2. 开发语言:Erlang/OTP,一个不常见的语言;
  3. 国人开发;又称 emqttd;
  4. 开源&商业化 MQTT 鼻祖

BifroMQ

  • 百度开源的一款 MQTT 产品
  • 开发语言:JDK17 Maven3.5+
  • 开源

FluxMQ

TBMQ

  • Thingsboard 开源的⼀款 MQTT 产品
  • 开发语言:JDK17 Maven3.5+
  • 开源

Eclipse Mosquitto

  1. 官网
  2. 开发语言:C/C++

Moquette

  1. 官网
  2. 开发语言:Java
  3. 据大佬说这就是一个玩具项目,但是基于 Java 开源的并不多,且网上很多是基于他开发出来的;
  4. 0.10 支持集群;0.12 不支持集群;

总结

+ \ No newline at end of file diff --git "a/docs/study/back/mq/MQ\345\256\236\347\216\260\345\257\271\346\257\224/index.html" "b/docs/study/back/mq/MQ\345\256\236\347\216\260\345\257\271\346\257\224/index.html" index 7ef0ad8b7..d03b03a5b 100644 --- "a/docs/study/back/mq/MQ\345\256\236\347\216\260\345\257\271\346\257\224/index.html" +++ "b/docs/study/back/mq/MQ\345\256\236\347\216\260\345\257\271\346\257\224/index.html" @@ -11,13 +11,13 @@ - + - +
+ \ No newline at end of file diff --git a/docs/study/back/mq/RocketMQ/index.html b/docs/study/back/mq/RocketMQ/index.html index ea5655988..4739754e1 100644 --- a/docs/study/back/mq/RocketMQ/index.html +++ b/docs/study/back/mq/RocketMQ/index.html @@ -11,13 +11,13 @@ - +
-

RocketMQ

RocketMQ 和 Kafka 有什么区别?

  1. 适用场景:Kafka适合日志处理;RocketMQ适合业务处理。
  2. 性能:Kafka单机写入TPS号称在百万条/秒;RocketMQ大约在10万条/秒。Kafka单机性能更高。
  3. 可靠性:RocketMQ支持异步/同步刷盘;异步/同步Replication;Kafka使用异步刷盘方式,异步Replication。RocketMQ所支持的同步方式提升了数据的可靠性。
  4. 实时性:均支持pull长轮询,RocketMQ消息实时性更好
  5. 支持的队列数:Kafka单机超过64个队列/分区,消息发送性能降低严重;RocketMQ单机支持最高5万个队列,性能稳定(这也是适合业务处理的原因之一)

为什么阿里会自研RocketMQ?

  1. Kafka的业务应用场景主要定位于日志传输;对于复杂业务支持不够
  2. 阿里很多业务场景对数据可靠性、数据实时性、消息队列的个数等方面的要求很高
  3. 当业务成长到一定规模,采用开源方案的技术成本会变高(开源方案无法满足业务的需要;旧版本、自开发代码与新版本的兼容等)
  4. 阿里在团队、成本、资源投入等方面约束性条件几乎没有
- +

RocketMQ

RocketMQ 和 Kafka 有什么区别?

  1. 适用场景:Kafka适合日志处理;RocketMQ适合业务处理。
  2. 性能:Kafka单机写入TPS号称在百万条/秒;RocketMQ大约在10万条/秒。Kafka单机性能更高。
  3. 可靠性:RocketMQ支持异步/同步刷盘;异步/同步Replication;Kafka使用异步刷盘方式,异步Replication。RocketMQ所支持的同步方式提升了数据的可靠性。
  4. 实时性:均支持pull长轮询,RocketMQ消息实时性更好
  5. 支持的队列数:Kafka单机超过64个队列/分区,消息发送性能降低严重;RocketMQ单机支持最高5万个队列,性能稳定(这也是适合业务处理的原因之一)

为什么阿里会自研RocketMQ?

  1. Kafka的业务应用场景主要定位于日志传输;对于复杂业务支持不够
  2. 阿里很多业务场景对数据可靠性、数据实时性、消息队列的个数等方面的要求很高
  3. 当业务成长到一定规模,采用开源方案的技术成本会变高(开源方案无法满足业务的需要;旧版本、自开发代码与新版本的兼容等)
  4. 阿里在团队、成本、资源投入等方面约束性条件几乎没有
+ \ No newline at end of file diff --git a/docs/study/back/spring/@Configuration/index.html b/docs/study/back/spring/@Configuration/index.html index 72b6f9a8f..1f9cdcb0d 100644 --- a/docs/study/back/spring/@Configuration/index.html +++ b/docs/study/back/spring/@Configuration/index.html @@ -11,13 +11,13 @@ - +
-

@Configuration

在 Spring 框架中,@Configuration 注解用于声明一个 Java 类作为配置类,它替代了传统的 XML 配置方式。通过@Configuration 注解标记的类可以包含@Bean 注解,用于定义 Spring 容器中的 Bean 对象。

proxyBeanMethods

@Configuration 注解中,有一个非常重要的属性 proxyBeanMethods,它控制着@Configuration 类中@Bean 方法的代理行为。

该属性接受一个布尔值,设置为 true 表示启用代理模式,设置为 false 表示禁用代理模式。

在@Configuration 类中,当 proxyBeanMethods 属性设置为 true 时,Spring 会对@Configuration 类进行 CGLIB 代理。

对@Configuration 类进行代理后,调用@Bean 方法时,Spring 会检查是否已经存在该 Bean,如果存在,则直接返回已存在的 Bean,否则调用方法创建新的 Bean 并缓存起来。

在禁用代理模式下,Spring 容器每次调用@Bean 方法时都会执行一次方法体,不会缓存 Bean 对象。

@bean

@bean:给容器中添加组件,以方法名作为组件的 id,返回类型为组件类型,返回的值,就是组件在容器中的实例

- +

@Configuration

在 Spring 框架中,@Configuration 注解用于声明一个 Java 类作为配置类,它替代了传统的 XML 配置方式。通过@Configuration 注解标记的类可以包含@Bean 注解,用于定义 Spring 容器中的 Bean 对象。

proxyBeanMethods

@Configuration 注解中,有一个非常重要的属性 proxyBeanMethods,它控制着@Configuration 类中@Bean 方法的代理行为。

该属性接受一个布尔值,设置为 true 表示启用代理模式,设置为 false 表示禁用代理模式。

在@Configuration 类中,当 proxyBeanMethods 属性设置为 true 时,Spring 会对@Configuration 类进行 CGLIB 代理。

对@Configuration 类进行代理后,调用@Bean 方法时,Spring 会检查是否已经存在该 Bean,如果存在,则直接返回已存在的 Bean,否则调用方法创建新的 Bean 并缓存起来。

在禁用代理模式下,Spring 容器每次调用@Bean 方法时都会执行一次方法体,不会缓存 Bean 对象。

@bean

@bean:给容器中添加组件,以方法名作为组件的 id,返回类型为组件类型,返回的值,就是组件在容器中的实例

+ \ No newline at end of file diff --git a/docs/study/back/spring/@Resource@Autowired/index.html b/docs/study/back/spring/@Resource@Autowired/index.html index f67d36676..eb4312e72 100644 --- a/docs/study/back/spring/@Resource@Autowired/index.html +++ b/docs/study/back/spring/@Resource@Autowired/index.html @@ -11,13 +11,13 @@ - +
-

@Resource@Autowired

@Autowired 和 @Resource 都是用来实现依赖注入的注解(在 Spring/Spring Boot 项目中),但二者却有着 5 点不同:

  • 来源不同:@Autowired 来自 Spring 框架,而 @Resource 来自于(Java)JSR-250;
  • 依赖查找的顺序不同:@Autowired 先根据类型再根据名称查询,而 @Resource 先根据名称再根据类型查询;
  • 支持的参数不同:@Autowired 只支持设置 1 个参数,而 @Resource 支持设置 7 个参数;
  • 依赖注入的用法支持不同:@Autowired 既支持构造方法注入,又支持属性注入和 Setter 注入,而 @Resource 只支持属性注入和 Setter 注入;
  • 编译器 IDEA 的提示不同:当注入 Mapper 对象时,使用 @Autowired 注解编译器会提示错误,而使用 @Resource 注解则不会提示错误。

参考

- +

@Resource@Autowired

@Autowired 和 @Resource 都是用来实现依赖注入的注解(在 Spring/Spring Boot 项目中),但二者却有着 5 点不同:

  • 来源不同:@Autowired 来自 Spring 框架,而 @Resource 来自于(Java)JSR-250;
  • 依赖查找的顺序不同:@Autowired 先根据类型再根据名称查询,而 @Resource 先根据名称再根据类型查询;
  • 支持的参数不同:@Autowired 只支持设置 1 个参数,而 @Resource 支持设置 7 个参数;
  • 依赖注入的用法支持不同:@Autowired 既支持构造方法注入,又支持属性注入和 Setter 注入,而 @Resource 只支持属性注入和 Setter 注入;
  • 编译器 IDEA 的提示不同:当注入 Mapper 对象时,使用 @Autowired 注解编译器会提示错误,而使用 @Resource 注解则不会提示错误。

参考

+ \ No newline at end of file diff --git a/docs/study/back/spring/SpringAOP/index.html b/docs/study/back/spring/SpringAOP/index.html index 3943f97e4..5027acc2f 100644 --- a/docs/study/back/spring/SpringAOP/index.html +++ b/docs/study/back/spring/SpringAOP/index.html @@ -11,13 +11,13 @@ - +
-

Spring AOP

简介

AOP(Aspect-Oriented Programming,面向切面编程)是一种编程范式,旨在将应用程序中的各种功能分离出来,以提高代码的可重用性和可维护性。AOP 通过将交叉业务逻辑封装到切面中,可以在不修改原有代码的情况下对其进行扩展和维护。

AOP 的存在价值

在传统 OOP 编程里以对象为核心,整个软件系统由系列相互依赖的对象所组成,而这些对象将被抽象成一个一个的类,并允许使用类继承来管理类与类之间一般到特殊的关系。随着软件规模的增大,应用的逐渐升级,慢慢出现了一些 OOP 很难解决的问题。

  • 代码复用性差:由于面向对象的设计思想,导致代码复用性差。比如,在两个类中,有很多相似的代码,如果使用 OOP 思想,需要将相似的代码复制到两个类中,这会导致代码的重复性很高。
  • 代码可维护性差:由于 OOP 思想将代码封装到类中,导致代码的可维护性差。如果需要修改某个功能,需要修改整个类的代码,这会导致代码的维护性很低。
  • 代码可扩展性差:由于 OOP 思想将代码封装到类中,导致代码的可扩展性差。如果需要添加一个新的功能,需要修改整个类的代码,这会导致代码的扩展性很低。

AOP 就是为了解决这些问题而出现的。AOP 可以将交叉业务逻辑封装到切面中,在运行时将切面与业务逻辑编织在一起,从而实现代码的复用、可维护性和可扩展性。

AOP 的分类

AOP 实现的关键就在于 AOP 框架自动创建的 AOP 代理,AOP 代理主要分为静态代理和动态代理两大类,静态代理以 AspectJ 为代表;而动态代理则以 Spring AOP 为代表。

其中静态代理是指使用 AOP 框架提供的命令进行编译,从而在编译阶段就可生成 AOP 代理类,因此也称为编译时增强;而动态代理则在运行时借助于 JDK 动态代理、CGLIB 等在内存中“临时”生成 AOP 动态代理类,因此也被称为运行时增强。

Spring AOP 既支持静态代理也支持动态代理。

总结

AOP 广泛应用于处理一些具有横切性质的系统级服务,AOP 的出现是对 OOP 的良好补充,它使得开发者能用更优雅的方式处理具有横切性质的服务。不管是那种 AOP 实现,不论是 AspectJ、还是 Spring AOP,它们都需要动态地生成一个 AOP 代理类,区别只是生成 AOP 代理类的时机不同:AspectJ 采用编译时生成 AOP 代理类,因此具有更好的性能,但需要使用特定的编译器进行处理;而 Spring AOP 则采用运行时生成 AOP 代理类,因此无需使用特定编译器进行处理。由于 Spring AOP 需要在每次运行时生成 AOP 代理,因此性能略差一些。

- +

Spring AOP

简介

AOP(Aspect-Oriented Programming,面向切面编程)是一种编程范式,旨在将应用程序中的各种功能分离出来,以提高代码的可重用性和可维护性。AOP 通过将交叉业务逻辑封装到切面中,可以在不修改原有代码的情况下对其进行扩展和维护。

AOP 的存在价值

在传统 OOP 编程里以对象为核心,整个软件系统由系列相互依赖的对象所组成,而这些对象将被抽象成一个一个的类,并允许使用类继承来管理类与类之间一般到特殊的关系。随着软件规模的增大,应用的逐渐升级,慢慢出现了一些 OOP 很难解决的问题。

  • 代码复用性差:由于面向对象的设计思想,导致代码复用性差。比如,在两个类中,有很多相似的代码,如果使用 OOP 思想,需要将相似的代码复制到两个类中,这会导致代码的重复性很高。
  • 代码可维护性差:由于 OOP 思想将代码封装到类中,导致代码的可维护性差。如果需要修改某个功能,需要修改整个类的代码,这会导致代码的维护性很低。
  • 代码可扩展性差:由于 OOP 思想将代码封装到类中,导致代码的可扩展性差。如果需要添加一个新的功能,需要修改整个类的代码,这会导致代码的扩展性很低。

AOP 就是为了解决这些问题而出现的。AOP 可以将交叉业务逻辑封装到切面中,在运行时将切面与业务逻辑编织在一起,从而实现代码的复用、可维护性和可扩展性。

AOP 的分类

AOP 实现的关键就在于 AOP 框架自动创建的 AOP 代理,AOP 代理主要分为静态代理和动态代理两大类,静态代理以 AspectJ 为代表;而动态代理则以 Spring AOP 为代表。

其中静态代理是指使用 AOP 框架提供的命令进行编译,从而在编译阶段就可生成 AOP 代理类,因此也称为编译时增强;而动态代理则在运行时借助于 JDK 动态代理、CGLIB 等在内存中“临时”生成 AOP 动态代理类,因此也被称为运行时增强。

Spring AOP 既支持静态代理也支持动态代理。

总结

AOP 广泛应用于处理一些具有横切性质的系统级服务,AOP 的出现是对 OOP 的良好补充,它使得开发者能用更优雅的方式处理具有横切性质的服务。不管是那种 AOP 实现,不论是 AspectJ、还是 Spring AOP,它们都需要动态地生成一个 AOP 代理类,区别只是生成 AOP 代理类的时机不同:AspectJ 采用编译时生成 AOP 代理类,因此具有更好的性能,但需要使用特定的编译器进行处理;而 Spring AOP 则采用运行时生成 AOP 代理类,因此无需使用特定编译器进行处理。由于 Spring AOP 需要在每次运行时生成 AOP 代理,因此性能略差一些。

+ \ No newline at end of file diff --git a/docs/study/back/spring/SpringBoot/index.html b/docs/study/back/spring/SpringBoot/index.html index 2375f98b7..83d4ed7d1 100644 --- a/docs/study/back/spring/SpringBoot/index.html +++ b/docs/study/back/spring/SpringBoot/index.html @@ -11,13 +11,13 @@ - +
-

Spring Boot

常看文档

两种方式管理依赖

继承

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.1.RELEASE</version>
</parent>

依赖管理

<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.1.1.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

bootstrap.properties/yml

单纯做 Spring Boot 开发,可能不太容易遇到 bootstrap.properties 配置文件,但是在结合 Spring Cloud 时,这个配置就会经常遇到了,特别是在需要加载一些远程配置文件的时侯。

bootstrap.properties 在 application.properties 之前加载,配置在应用程序上下文的引导阶段生效。一般来说我们在 Spring Cloud Config 或者 Nacos 中会用到它。bootstrap.properties 被 Spring ApplicationContext 的父类加载,这个类先于加载 application.properties 的 ApplicatonContext 启动。

- +

Spring Boot

常看文档

两种方式管理依赖

继承

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.1.RELEASE</version>
</parent>

依赖管理

<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.1.1.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

bootstrap.properties/yml

单纯做 Spring Boot 开发,可能不太容易遇到 bootstrap.properties 配置文件,但是在结合 Spring Cloud 时,这个配置就会经常遇到了,特别是在需要加载一些远程配置文件的时侯。

bootstrap.properties 在 application.properties 之前加载,配置在应用程序上下文的引导阶段生效。一般来说我们在 Spring Cloud Config 或者 Nacos 中会用到它。bootstrap.properties 被 Spring ApplicationContext 的父类加载,这个类先于加载 application.properties 的 ApplicatonContext 启动。

+ \ No newline at end of file diff --git a/docs/study/back/spring/SpringFramework/index.html b/docs/study/back/spring/SpringFramework/index.html index 6c992526a..d20d24ea2 100644 --- a/docs/study/back/spring/SpringFramework/index.html +++ b/docs/study/back/spring/SpringFramework/index.html @@ -11,13 +11,13 @@ - +
-

Spirng Framework

官方参考文档

特性

  • Core technologies: dependency injection, events, resources, i18n, validation, data binding, type conversion, SpEL, AOP.

  • Testing: mock objects, TestContext framework, Spring MVC Test, WebTestClient.

  • Data Access: transactions, DAO support, JDBC, ORM, Marshalling XML.

  • Spring MVC and Spring WebFlux web frameworks.

  • Integration: remoting, JMS, JCA, JMX, email, tasks, scheduling, cache and observability.

  • Languages: Kotlin, Groovy, dynamic languages.

- +

Spirng Framework

官方参考文档

特性

  • Core technologies: dependency injection, events, resources, i18n, validation, data binding, type conversion, SpEL, AOP.

  • Testing: mock objects, TestContext framework, Spring MVC Test, WebTestClient.

  • Data Access: transactions, DAO support, JDBC, ORM, Marshalling XML.

  • Spring MVC and Spring WebFlux web frameworks.

  • Integration: remoting, JMS, JCA, JMX, email, tasks, scheduling, cache and observability.

  • Languages: Kotlin, Groovy, dynamic languages.

+ \ No newline at end of file diff --git a/docs/study/back/spring/SpringSecurity/index.html b/docs/study/back/spring/SpringSecurity/index.html index 085bc2777..3b0aac315 100644 --- a/docs/study/back/spring/SpringSecurity/index.html +++ b/docs/study/back/spring/SpringSecurity/index.html @@ -11,13 +11,13 @@ - +
-

Spring Security

Spring Security 是一套安全框架,可以基于 RBAC(基于角色的权限控制)对用户的访问权限进行控制,

核心思想是通过一系列的 filter chain 来进行拦截过滤,对用户的访问权限进行控制,

​spring security 的核心功能主要包括:

  • 认证 (你是谁)
  • 授权 (你能干什么)
  • 攻击防护 (防止伪造身份)

其核心就是一组过滤器链,项目启动后将会自动配置。最核心的就是 Basic Authentication Filter 用来认证用户的身份,一个在 spring security 中一种过滤器处理一种认证方式。

官方参考文档

这样的安全框架还有,

Apache Shiro

Sa-Token

- +

Spring Security

Spring Security 是一套安全框架,可以基于 RBAC(基于角色的权限控制)对用户的访问权限进行控制,

核心思想是通过一系列的 filter chain 来进行拦截过滤,对用户的访问权限进行控制,

​spring security 的核心功能主要包括:

  • 认证 (你是谁)
  • 授权 (你能干什么)
  • 攻击防护 (防止伪造身份)

其核心就是一组过滤器链,项目启动后将会自动配置。最核心的就是 Basic Authentication Filter 用来认证用户的身份,一个在 spring security 中一种过滤器处理一种认证方式。

官方参考文档

这样的安全框架还有,

Apache Shiro

Sa-Token

+ \ No newline at end of file diff --git "a/docs/study/back/spring/Spring\347\224\237\345\221\275\345\221\250\346\234\237\346\216\245\345\217\243/index.html" "b/docs/study/back/spring/Spring\347\224\237\345\221\275\345\221\250\346\234\237\346\216\245\345\217\243/index.html" index 7f382e39d..79739356e 100644 --- "a/docs/study/back/spring/Spring\347\224\237\345\221\275\345\221\250\346\234\237\346\216\245\345\217\243/index.html" +++ "b/docs/study/back/spring/Spring\347\224\237\345\221\275\345\221\250\346\234\237\346\216\245\345\217\243/index.html" @@ -11,13 +11,13 @@ - +
-

Spring生命周期接口

InitializingBean

需要实现 afterPropertiesSet接口方法

参考 https://blog.csdn.net/qq_37705525/article/details/124808168

DisposableBean

需要实现 destroy接口方法

参考 https://blog.csdn.net/zhangduilei/article/details/78606636

ApplicationContextInitializer

ApplicationContextInitializer 接口用于在 Spring 容器刷新之前执行的一个回调函数,通常用于向 SpringBoot 容器中注入属性。

参考 https://zhuanlan.zhihu.com/p/509824476

ApplicationListener

监听事件,可以包含部分生命周期类型的事件,例如ApplicationEnvironmentPreparedEvent

https://blog.csdn.net/qq_21484747/article/details/124855050

EnvironmentPostProcessor

一般用于读取环境变量达到多个微服务共同配置的修改与维护。当我们有多套环境(开发、测试、生产等等)时,每套环境都有专属的配置文件存放于配置中心(以nacos为例),可能存放于不同的配置中心(每个环境有专属的配置中心,服务地址不同),也可能存放于同一nacos的不同命名空间,也或者同一命名空间的不同分组等等。同一套代码在不同环境运行需要不同的配置文件,这时,我们就可以在项目启动时,实现EnvironmentPostProcessor接口,在postProcessEnvironment方法中读取环境变量或者启动命令参数,从而获取本环境下nacos的服务地址,或命名空间名称、分组名称等等,然后就可以根据获取的配置参数或环境变量来读取不同的配置文件,从而实现不同环境使用不同的配置文件,不用修改代码或者本地配置文件。

https://blog.csdn.net/qq_40756113/article/details/123074848

- +

Spring生命周期接口

InitializingBean

需要实现 afterPropertiesSet接口方法

参考 https://blog.csdn.net/qq_37705525/article/details/124808168

DisposableBean

需要实现 destroy接口方法

参考 https://blog.csdn.net/zhangduilei/article/details/78606636

ApplicationContextInitializer

ApplicationContextInitializer 接口用于在 Spring 容器刷新之前执行的一个回调函数,通常用于向 SpringBoot 容器中注入属性。

参考 https://zhuanlan.zhihu.com/p/509824476

ApplicationListener

监听事件,可以包含部分生命周期类型的事件,例如ApplicationEnvironmentPreparedEvent

https://blog.csdn.net/qq_21484747/article/details/124855050

EnvironmentPostProcessor

一般用于读取环境变量达到多个微服务共同配置的修改与维护。当我们有多套环境(开发、测试、生产等等)时,每套环境都有专属的配置文件存放于配置中心(以nacos为例),可能存放于不同的配置中心(每个环境有专属的配置中心,服务地址不同),也可能存放于同一nacos的不同命名空间,也或者同一命名空间的不同分组等等。同一套代码在不同环境运行需要不同的配置文件,这时,我们就可以在项目启动时,实现EnvironmentPostProcessor接口,在postProcessEnvironment方法中读取环境变量或者启动命令参数,从而获取本环境下nacos的服务地址,或命名空间名称、分组名称等等,然后就可以根据获取的配置参数或环境变量来读取不同的配置文件,从而实现不同环境使用不同的配置文件,不用修改代码或者本地配置文件。

https://blog.csdn.net/qq_40756113/article/details/123074848

+ \ No newline at end of file diff --git "a/docs/study/back/springcloud/SpringCloud\344\272\224\345\244\247\347\273\204\344\273\266/index.html" "b/docs/study/back/springcloud/SpringCloud\344\272\224\345\244\247\347\273\204\344\273\266/index.html" index 0c65f9b0e..9a8624822 100644 --- "a/docs/study/back/springcloud/SpringCloud\344\272\224\345\244\247\347\273\204\344\273\266/index.html" +++ "b/docs/study/back/springcloud/SpringCloud\344\272\224\345\244\247\347\273\204\344\273\266/index.html" @@ -11,13 +11,13 @@ - + - +
+ \ No newline at end of file diff --git a/docs/study/back/springcloud/nacos/index.html b/docs/study/back/springcloud/nacos/index.html index 649f7f8fd..94c9255d7 100644 --- a/docs/study/back/springcloud/nacos/index.html +++ b/docs/study/back/springcloud/nacos/index.html @@ -11,13 +11,13 @@ - +
-

nacos

一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台

Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。

官方网站

官方文档

- +

nacos

一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台

Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。

官方网站

官方文档

+ \ No newline at end of file diff --git "a/docs/study/back/springcloud/\345\276\256\346\234\215\345\212\241/index.html" "b/docs/study/back/springcloud/\345\276\256\346\234\215\345\212\241/index.html" index 129e30106..9eefcb7ff 100644 --- "a/docs/study/back/springcloud/\345\276\256\346\234\215\345\212\241/index.html" +++ "b/docs/study/back/springcloud/\345\276\256\346\234\215\345\212\241/index.html" @@ -11,13 +11,13 @@ - +
-

微服务

微服务是分布式架构的一种;

分布式架构是相对单体架构来说的。

分布式架构相对于单体架构是复杂的,单体架构耦合多很高,适用于系统相对简单,业务相对单一的场景。

分布式架构相对于分布式架构来说,耦合性低,相对独立,适用于系统相对复杂,业务相对多元的场景。

分布式架构需要考虑的问题:

  • 服务拆分的粒度如何?不能太小,也不能太大,总体来说,先大后小;
  • 服务集群的地址如何维护?就是上注册中心了;
  • 服务之间如何通信?HTTP、RPC、消息队列等;
  • 服务之间如何容错?服务降级、服务熔断、服务限流等;
  • 服务健康状态如何感知?

分布式架构有很多,其中包括 WebService、ESB、Hession、Dubbo、SpringCloud、gRPC 等;

dubbo-springcloud

- +

微服务

微服务是分布式架构的一种;

分布式架构是相对单体架构来说的。

分布式架构相对于单体架构是复杂的,单体架构耦合多很高,适用于系统相对简单,业务相对单一的场景。

分布式架构相对于分布式架构来说,耦合性低,相对独立,适用于系统相对复杂,业务相对多元的场景。

分布式架构需要考虑的问题:

  • 服务拆分的粒度如何?不能太小,也不能太大,总体来说,先大后小;
  • 服务集群的地址如何维护?就是上注册中心了;
  • 服务之间如何通信?HTTP、RPC、消息队列等;
  • 服务之间如何容错?服务降级、服务熔断、服务限流等;
  • 服务健康状态如何感知?

分布式架构有很多,其中包括 WebService、ESB、Hession、Dubbo、SpringCloud、gRPC 等;

dubbo-springcloud

+ \ No newline at end of file diff --git "a/docs/study/back/\344\277\241\346\201\257\345\256\211\345\205\250/Oauth2/index.html" "b/docs/study/back/\344\277\241\346\201\257\345\256\211\345\205\250/Oauth2/index.html" index 4c485eb97..32c3ea68b 100644 --- "a/docs/study/back/\344\277\241\346\201\257\345\256\211\345\205\250/Oauth2/index.html" +++ "b/docs/study/back/\344\277\241\346\201\257\345\256\211\345\205\250/Oauth2/index.html" @@ -11,13 +11,13 @@ - +
-

Oauth2

Oauth2 是目前最流行的授权机制,用来授权第三方应用,获取用户数据。

Oauth2 有四种角色,一个是客户端,一个是资源所有者,一个是授权服务器,还有一个是资源服务器。

Oauth2 四种认证方式

  • 授权码模式(authorization code):要授权,同意,给授权码,拿授权码要令牌
  • 简化模式(隐藏模式)(implicit):要授权,同意,直接拿令牌,一般是第三方应用只有前端
  • 密码模式(resource owner password credentials),要授权,直接给用户名和密码,及其信任,很少用到
  • 客户端模式(client credentials),要授权,直接给令牌;一般是第三方应用的后端,同时支持很多自己的用户

不管是哪一种授权方式,第三方应用申请令牌之前,都必须先到系统备案,说明自己的身份,然后拿到两个身份的识别码,客户端和客户端密钥,这是防止密钥被滥用,没有备案过的第三方的应用,是不会拿到令牌的

参考文档

- +

Oauth2

Oauth2 是目前最流行的授权机制,用来授权第三方应用,获取用户数据。

Oauth2 有四种角色,一个是客户端,一个是资源所有者,一个是授权服务器,还有一个是资源服务器。

Oauth2 四种认证方式

  • 授权码模式(authorization code):要授权,同意,给授权码,拿授权码要令牌
  • 简化模式(隐藏模式)(implicit):要授权,同意,直接拿令牌,一般是第三方应用只有前端
  • 密码模式(resource owner password credentials),要授权,直接给用户名和密码,及其信任,很少用到
  • 客户端模式(client credentials),要授权,直接给令牌;一般是第三方应用的后端,同时支持很多自己的用户

不管是哪一种授权方式,第三方应用申请令牌之前,都必须先到系统备案,说明自己的身份,然后拿到两个身份的识别码,客户端和客户端密钥,这是防止密钥被滥用,没有备案过的第三方的应用,是不会拿到令牌的

参考文档

+ \ No newline at end of file diff --git "a/docs/study/back/\344\277\241\346\201\257\345\256\211\345\205\250/\350\256\244\350\257\201/index.html" "b/docs/study/back/\344\277\241\346\201\257\345\256\211\345\205\250/\350\256\244\350\257\201/index.html" index 5d822794f..989420215 100644 --- "a/docs/study/back/\344\277\241\346\201\257\345\256\211\345\205\250/\350\256\244\350\257\201/index.html" +++ "b/docs/study/back/\344\277\241\346\201\257\345\256\211\345\205\250/\350\256\244\350\257\201/index.html" @@ -11,13 +11,13 @@ - +
-

认证

参考 Spring Security 认证

认证机制

  • Username 和 Password - 如何用用户名/密码进行认证
  • OAuth 2.0 Login - 使用 OpenID Connect 和非标准的 OAuth 2.0 登录(即 GitHub)的 OAuth 2.0 登录。
  • SAML 2.0 Login - SAML 2.0 登录
  • Central Authentication Server (CAS) - 中央认证服务器(CAS)支持。
  • Remember Me - 如何记住一个过了 session 有效期的用户。
  • JAAS Authentication - 用 JAAS 进行认证
  • Pre-Authentication Scenarios - 使用外部机制(如 SiteMinder 或 Java EE security)进行认证,但仍使用 Spring Security 进行授权并保护其免受常见漏洞的侵害。
  • X509 Authentication - X509 认证
- +

认证

参考 Spring Security 认证

认证机制

  • Username 和 Password - 如何用用户名/密码进行认证
  • OAuth 2.0 Login - 使用 OpenID Connect 和非标准的 OAuth 2.0 登录(即 GitHub)的 OAuth 2.0 登录。
  • SAML 2.0 Login - SAML 2.0 登录
  • Central Authentication Server (CAS) - 中央认证服务器(CAS)支持。
  • Remember Me - 如何记住一个过了 session 有效期的用户。
  • JAAS Authentication - 用 JAAS 进行认证
  • Pre-Authentication Scenarios - 使用外部机制(如 SiteMinder 或 Java EE security)进行认证,但仍使用 Spring Security 进行授权并保护其免受常见漏洞的侵害。
  • X509 Authentication - X509 认证
+ \ No newline at end of file diff --git "a/docs/study/back/\344\277\241\346\201\257\345\256\211\345\205\250/\351\230\262\350\214\203\346\274\217\346\264\236\346\224\273\345\207\273/index.html" "b/docs/study/back/\344\277\241\346\201\257\345\256\211\345\205\250/\351\230\262\350\214\203\346\274\217\346\264\236\346\224\273\345\207\273/index.html" index 60c552c83..dab907890 100644 --- "a/docs/study/back/\344\277\241\346\201\257\345\256\211\345\205\250/\351\230\262\350\214\203\346\274\217\346\264\236\346\224\273\345\207\273/index.html" +++ "b/docs/study/back/\344\277\241\346\201\257\345\256\211\345\205\250/\351\230\262\350\214\203\346\274\217\346\264\236\346\224\273\345\207\273/index.html" @@ -11,13 +11,13 @@ - +
-

防范漏洞攻击

参考 Spring Security 防范漏洞攻击

包括:

  • CSRF 跨站请求伪造
  • HTTP Header : Spring Security 提供了一套默认的安全相关的 HTTP 响应头,以提供安全的默认值。
  • HTTP : 所有基于 HTTP 的通信,包括 静态资源,都应该通过使用 TLS 进行保护。作为一个框架,Spring Security 并不处理 HTTP 连接,因此并不直接提供对 HTTPS 的支持。然而,它确实提供了一些有助于 HTTPS 使用的功能。
- +

防范漏洞攻击

参考 Spring Security 防范漏洞攻击

包括:

  • CSRF 跨站请求伪造
  • HTTP Header : Spring Security 提供了一套默认的安全相关的 HTTP 响应头,以提供安全的默认值。
  • HTTP : 所有基于 HTTP 的通信,包括 静态资源,都应该通过使用 TLS 进行保护。作为一个框架,Spring Security 并不处理 HTTP 连接,因此并不直接提供对 HTTPS 的支持。然而,它确实提供了一些有助于 HTTPS 使用的功能。
+ \ No newline at end of file diff --git "a/docs/study/back/\346\225\260\346\215\256\345\272\223\347\233\270\345\205\263/JPA-MyBatis/index.html" "b/docs/study/back/\346\225\260\346\215\256\345\272\223\347\233\270\345\205\263/JPA-MyBatis/index.html" index 72576ffda..24d0b71f4 100644 --- "a/docs/study/back/\346\225\260\346\215\256\345\272\223\347\233\270\345\205\263/JPA-MyBatis/index.html" +++ "b/docs/study/back/\346\225\260\346\215\256\345\272\223\347\233\270\345\205\263/JPA-MyBatis/index.html" @@ -11,13 +11,13 @@ - +
-

JPA-MyBatis

JPA

  • JPA 是 Java Persistence API 的简称,中文名 Java 持久层 API 。
  • 是 Java EE 5.0 平台标准的 ORM 规范,使得应用程序以统一的方式访问持久层。既然是规范,那肯定就需要技术来实现这个规范,所以 Hibernate3.2+、TopLink 10.1.3 以及 OpenJPA 都提供了 JPA 的实现。

MyBatis

  • MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。
  • MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及结果集的检索。
  • MyBatis 使用简单的 XML 或注解用于配置和原始映射,将接口和 Java 的 POJOs(Plain Ordinary Java Objects,普通的 Java 对象)映射成数据库中的记录。

两者对比

  • MyBatis 没有实现 JPA 规范,属于半自动 ORM 映射工具,在 MyBatis 中,程序员需要自己编写 Sql 语句。
  • JPA 是 Repository,MyBatis 是 Mapper。
  • MyBatis 支持定制化 SQL、存储过程以及高级映射。JPA 仅支持简单的映射,它映射实体类属性到数据库表的字段上。
  • MyBatis 需要手动进行分页,而 JPA 可以使用框架自带的分页机制。

总结

  • JPA 对于单表的简单查询确实简单方便又实用。
  • mybatis ,只能说对于多表查询确实是比较支持。尤其是在业务逻辑多是多表关联的情况下,mybatis 绝对比 jpa 要更加适合。无论是以后的维护还是业务的变更都方便不少。

参考

- +

JPA-MyBatis

JPA

  • JPA 是 Java Persistence API 的简称,中文名 Java 持久层 API 。
  • 是 Java EE 5.0 平台标准的 ORM 规范,使得应用程序以统一的方式访问持久层。既然是规范,那肯定就需要技术来实现这个规范,所以 Hibernate3.2+、TopLink 10.1.3 以及 OpenJPA 都提供了 JPA 的实现。

MyBatis

  • MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。
  • MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及结果集的检索。
  • MyBatis 使用简单的 XML 或注解用于配置和原始映射,将接口和 Java 的 POJOs(Plain Ordinary Java Objects,普通的 Java 对象)映射成数据库中的记录。

两者对比

  • MyBatis 没有实现 JPA 规范,属于半自动 ORM 映射工具,在 MyBatis 中,程序员需要自己编写 Sql 语句。
  • JPA 是 Repository,MyBatis 是 Mapper。
  • MyBatis 支持定制化 SQL、存储过程以及高级映射。JPA 仅支持简单的映射,它映射实体类属性到数据库表的字段上。
  • MyBatis 需要手动进行分页,而 JPA 可以使用框架自带的分页机制。

总结

  • JPA 对于单表的简单查询确实简单方便又实用。
  • mybatis ,只能说对于多表查询确实是比较支持。尤其是在业务逻辑多是多表关联的情况下,mybatis 绝对比 jpa 要更加适合。无论是以后的维护还是业务的变更都方便不少。

参考

+ \ No newline at end of file diff --git "a/docs/study/back/\346\225\260\346\215\256\345\272\223\347\233\270\345\205\263/Java\346\225\260\346\215\256\345\272\223\350\277\236\346\216\245\346\261\240/index.html" "b/docs/study/back/\346\225\260\346\215\256\345\272\223\347\233\270\345\205\263/Java\346\225\260\346\215\256\345\272\223\350\277\236\346\216\245\346\261\240/index.html" index c0c4ec1e5..6015a3ef8 100644 --- "a/docs/study/back/\346\225\260\346\215\256\345\272\223\347\233\270\345\205\263/Java\346\225\260\346\215\256\345\272\223\350\277\236\346\216\245\346\261\240/index.html" +++ "b/docs/study/back/\346\225\260\346\215\256\345\272\223\347\233\270\345\205\263/Java\346\225\260\346\215\256\345\272\223\350\277\236\346\216\245\346\261\240/index.html" @@ -11,13 +11,13 @@ - +
-

Java数据库连接池

Java 数据库连接池

是用于管理数据库连接的软件组件,它们提供了连接的创建、管理和释放等功能,以提高数据库访问的效率和性能。

目前,流行的 Java 数据库连接池包括:

  • DBCP:DBCP 是 Apache 开源组织提供的连接池实现,它直接依赖于 Jakarta commons-pool 对象池机制。DBCP 支持 JNDI 数据源和 JDBC 数据源,并且可以直接在应用程序中使用。Tomcat 的数据源就是使用的 DBCP。
  • C3P0:C3P0 是一个老牌的 Java 数据库连接池,它实现了 JDBC 3 和 JDBC 4 的规范,支持 JNDI 数据源和 JDBC 数据源。C3P0 连接池可以配置多种参数进行调优,并支持自动回收空闲连接。
  • HikariCP:HikariCP 是一个轻量级、高效的连接池,它在高并发环境下表现出色。HikariCP 支持 JNDI 数据源和 JDBC 数据源,并具有超时线程等配置参数。
  • Tomcat-JDBC:Tomcat-JDBC 是 Tomcat 服务器提供的 JDBC 连接池实现,它与 Tomcat 服务器紧密集成,适用于 Tomcat 应用场景。
  • Druid:Druid 是阿里巴巴开发的数据库连接池,它支持 JNDI 数据源和 JDBC 数据源,并且提供了实时监控功能。Druid 不仅仅是一个数据库连接池,它还包括一个 ProxyDriver,一系列内置的 JDBC 组件库,一个 SQL Parser。它支持所有 JDBC 兼容的数据库,包括 Oracle、MySQL、Derby、PostgreSQL、SQL Server、H2 等,并对 Oracle 和 MySQL 做了特别优化。

以上连接池各有特点,适用于不同的应用场景和数据库类型。

- +

Java数据库连接池

Java 数据库连接池

是用于管理数据库连接的软件组件,它们提供了连接的创建、管理和释放等功能,以提高数据库访问的效率和性能。

目前,流行的 Java 数据库连接池包括:

  • DBCP:DBCP 是 Apache 开源组织提供的连接池实现,它直接依赖于 Jakarta commons-pool 对象池机制。DBCP 支持 JNDI 数据源和 JDBC 数据源,并且可以直接在应用程序中使用。Tomcat 的数据源就是使用的 DBCP。
  • C3P0:C3P0 是一个老牌的 Java 数据库连接池,它实现了 JDBC 3 和 JDBC 4 的规范,支持 JNDI 数据源和 JDBC 数据源。C3P0 连接池可以配置多种参数进行调优,并支持自动回收空闲连接。
  • HikariCP:HikariCP 是一个轻量级、高效的连接池,它在高并发环境下表现出色。HikariCP 支持 JNDI 数据源和 JDBC 数据源,并具有超时线程等配置参数。
  • Tomcat-JDBC:Tomcat-JDBC 是 Tomcat 服务器提供的 JDBC 连接池实现,它与 Tomcat 服务器紧密集成,适用于 Tomcat 应用场景。
  • Druid:Druid 是阿里巴巴开发的数据库连接池,它支持 JNDI 数据源和 JDBC 数据源,并且提供了实时监控功能。Druid 不仅仅是一个数据库连接池,它还包括一个 ProxyDriver,一系列内置的 JDBC 组件库,一个 SQL Parser。它支持所有 JDBC 兼容的数据库,包括 Oracle、MySQL、Derby、PostgreSQL、SQL Server、H2 等,并对 Oracle 和 MySQL 做了特别优化。

以上连接池各有特点,适用于不同的应用场景和数据库类型。

+ \ No newline at end of file diff --git "a/docs/study/back/\346\225\260\346\215\256\345\272\223\347\233\270\345\205\263/MyBatis/index.html" "b/docs/study/back/\346\225\260\346\215\256\345\272\223\347\233\270\345\205\263/MyBatis/index.html" index 1377a5e99..c5a61ffdf 100644 --- "a/docs/study/back/\346\225\260\346\215\256\345\272\223\347\233\270\345\205\263/MyBatis/index.html" +++ "b/docs/study/back/\346\225\260\346\215\256\345\272\223\347\233\270\345\205\263/MyBatis/index.html" @@ -11,13 +11,13 @@ - +
-

MyBatis

一些经常读的官方文档

MyBatis 缓存

myabtis 的缓存分为一级缓存和二级缓存,默认开启一级缓存,关闭二级缓存,一级缓存时 sqlSession 级别,二级缓存是 namespace 级别。

作用范围

  • 一级缓存是会话级别的缓存,即 sqlSession 级别,会话结束,清除会话中的缓存数据,实际代码中通过通过开启事务让多个数据库操作共享一个 sqlSession。
  • 二级缓存: 全局级别,也叫 namespace 级别,会话结束,缓存依然存在,多个请求可以共享缓存数据。

缓存位置

  • 一级缓存由于是 sqlSession 级别,本质上是在 JVM 中创建一个 Map 集合对象保存缓存数据,所以缓存数据保留的地方是本地 JVM 内存中。
  • 二级缓存默认也是保存在 JVM 中,但是可以通过配置将缓存数据保存到第三方缓存中,比如 ehcache、redis。保存在 redis 这些的分布式缓存中,能提供更好的分布式场景的支持。

缓存过期

  • 一级缓存无过期时间,只有生命周期,缓存会先放在一级缓存中,当 sqlSession 会话提交或者关闭时才会将一级缓存刷新到二级缓存中;开启二级缓存后,用户查询时,会先去二级缓存中找,找不到在去一级缓存中找,然后才去数据库查询;
  • 二级缓存的过期时间默认是 1 小时,如果这个 cache 存活了一个小时,那么将整个清空一下。需要注意的是,并不是 key-value 的过期时间,而是这个 cache 的过期时间,是 flushInterval,意味着整个清空缓存 cache,所以不需要后台线程去定时检测,每当存取数据的时候,都有检测一下 cache 的生命时间。
- +

MyBatis

一些经常读的官方文档

MyBatis 缓存

myabtis 的缓存分为一级缓存和二级缓存,默认开启一级缓存,关闭二级缓存,一级缓存时 sqlSession 级别,二级缓存是 namespace 级别。

作用范围

  • 一级缓存是会话级别的缓存,即 sqlSession 级别,会话结束,清除会话中的缓存数据,实际代码中通过通过开启事务让多个数据库操作共享一个 sqlSession。
  • 二级缓存: 全局级别,也叫 namespace 级别,会话结束,缓存依然存在,多个请求可以共享缓存数据。

缓存位置

  • 一级缓存由于是 sqlSession 级别,本质上是在 JVM 中创建一个 Map 集合对象保存缓存数据,所以缓存数据保留的地方是本地 JVM 内存中。
  • 二级缓存默认也是保存在 JVM 中,但是可以通过配置将缓存数据保存到第三方缓存中,比如 ehcache、redis。保存在 redis 这些的分布式缓存中,能提供更好的分布式场景的支持。

缓存过期

  • 一级缓存无过期时间,只有生命周期,缓存会先放在一级缓存中,当 sqlSession 会话提交或者关闭时才会将一级缓存刷新到二级缓存中;开启二级缓存后,用户查询时,会先去二级缓存中找,找不到在去一级缓存中找,然后才去数据库查询;
  • 二级缓存的过期时间默认是 1 小时,如果这个 cache 存活了一个小时,那么将整个清空一下。需要注意的是,并不是 key-value 的过期时间,而是这个 cache 的过期时间,是 flushInterval,意味着整个清空缓存 cache,所以不需要后台线程去定时检测,每当存取数据的时候,都有检测一下 cache 的生命时间。
+ \ No newline at end of file diff --git "a/docs/study/back/\346\225\260\346\215\256\345\272\223\347\233\270\345\205\263/log4jdbc/index.html" "b/docs/study/back/\346\225\260\346\215\256\345\272\223\347\233\270\345\205\263/log4jdbc/index.html" index 2125efe11..3ea5b9294 100644 --- "a/docs/study/back/\346\225\260\346\215\256\345\272\223\347\233\270\345\205\263/log4jdbc/index.html" +++ "b/docs/study/back/\346\225\260\346\215\256\345\272\223\347\233\270\345\205\263/log4jdbc/index.html" @@ -11,13 +11,13 @@ - + - +
+ \ No newline at end of file diff --git "a/docs/study/back/\351\224\231\350\257\257\346\216\222\351\231\244\351\233\206\351\224\246/index.html" "b/docs/study/back/\351\224\231\350\257\257\346\216\222\351\231\244\351\233\206\351\224\246/index.html" index ae4d5cd68..02701544f 100644 --- "a/docs/study/back/\351\224\231\350\257\257\346\216\222\351\231\244\351\233\206\351\224\246/index.html" +++ "b/docs/study/back/\351\224\231\350\257\257\346\216\222\351\231\244\351\233\206\351\224\246/index.html" @@ -11,13 +11,13 @@ - +
-

错误排除集锦

内存不足,导致上传文件失败

HTTP请求上传文件

报错如下

2024-05-09 11:09:36.896 [ccsp-aggregate-pt,TASK,6727263067663369608,] [task-2] INFO  c.s.c.p.b.s.s.service.impl.ServiceInfoServiceImpl - start upload image fi
le to remote ---
2024-05-09 11:09:38.672 [ccsp-aggregate-pt,TASK,6727263067663369608,] [task-2] INFO org.apache.http.impl.execchain.RetryExec - I/O exception (java.net.Socket
Exception) caught when processing request to {s}->https://10.20.37.101:18086: Connection reset
2024-05-09 11:09:38.673 [ccsp-aggregate-pt,TASK,6727263067663369608,] [task-2] INFO org.apache.http.impl.execchain.RetryExec - Retrying request to {s}->https
://10.20.37.101:18086
2024-05-09 11:09:40.552 [ccsp-aggregate-pt,TASK,6727263067663369608,] [task-2] INFO org.apache.http.impl.execchain.RetryExec - I/O exception (java.net.Socket
Exception) caught when processing request to {s}->https://10.20.37.101:18086: Connection reset
2024-05-09 11:09:40.552 [ccsp-aggregate-pt,TASK,6727263067663369608,] [task-2] INFO org.apache.http.impl.execchain.RetryExec - Retrying request to {s}->https
://10.20.37.101:18086
2024-05-09 11:09:42.355 [ccsp-aggregate-pt,TASK,6727263067663369608,] [task-2] INFO org.apache.http.impl.execchain.RetryExec - I/O exception (java.net.Socket
Exception) caught when processing request to {s}->https://10.20.37.101:18086: Connection reset
2024-05-09 11:09:42.355 [ccsp-aggregate-pt,TASK,6727263067663369608,] [task-2] INFO org.apache.http.impl.execchain.RetryExec - Retrying request to {s}->https
://10.20.37.101:18086

宿主机server端的内存不足,比上传的文件要小,导致无法接受,从而直接断联了HTTP请求。

- +

错误排除集锦

内存不足,导致上传文件失败

HTTP请求上传文件

报错如下

2024-05-09 11:09:36.896 [ccsp-aggregate-pt,TASK,6727263067663369608,] [task-2] INFO  c.s.c.p.b.s.s.service.impl.ServiceInfoServiceImpl - start upload image fi
le to remote ---
2024-05-09 11:09:38.672 [ccsp-aggregate-pt,TASK,6727263067663369608,] [task-2] INFO org.apache.http.impl.execchain.RetryExec - I/O exception (java.net.Socket
Exception) caught when processing request to {s}->https://10.20.37.101:18086: Connection reset
2024-05-09 11:09:38.673 [ccsp-aggregate-pt,TASK,6727263067663369608,] [task-2] INFO org.apache.http.impl.execchain.RetryExec - Retrying request to {s}->https
://10.20.37.101:18086
2024-05-09 11:09:40.552 [ccsp-aggregate-pt,TASK,6727263067663369608,] [task-2] INFO org.apache.http.impl.execchain.RetryExec - I/O exception (java.net.Socket
Exception) caught when processing request to {s}->https://10.20.37.101:18086: Connection reset
2024-05-09 11:09:40.552 [ccsp-aggregate-pt,TASK,6727263067663369608,] [task-2] INFO org.apache.http.impl.execchain.RetryExec - Retrying request to {s}->https
://10.20.37.101:18086
2024-05-09 11:09:42.355 [ccsp-aggregate-pt,TASK,6727263067663369608,] [task-2] INFO org.apache.http.impl.execchain.RetryExec - I/O exception (java.net.Socket
Exception) caught when processing request to {s}->https://10.20.37.101:18086: Connection reset
2024-05-09 11:09:42.355 [ccsp-aggregate-pt,TASK,6727263067663369608,] [task-2] INFO org.apache.http.impl.execchain.RetryExec - Retrying request to {s}->https
://10.20.37.101:18086

宿主机server端的内存不足,比上传的文件要小,导致无法接受,从而直接断联了HTTP请求。

+ \ No newline at end of file diff --git "a/docs/study/back/\351\253\230\345\271\266\345\217\221API/index.html" "b/docs/study/back/\351\253\230\345\271\266\345\217\221API/index.html" index 125997edd..aa2b9b6ce 100644 --- "a/docs/study/back/\351\253\230\345\271\266\345\217\221API/index.html" +++ "b/docs/study/back/\351\253\230\345\271\266\345\217\221API/index.html" @@ -11,13 +11,13 @@ - +
-

高并发API

总结

  1. 单机百万QPS的Nginx是没有问题的,具体能到多少,受限于:
    1. 服务器的CPU数量、内存大小、磁盘性能;
    2. 服务器Linux的配置
    3. Nginx的参数配置
    4. 网卡的配置、路由器的配置、交换机的配置
  2. 单机Tomcat受限于JVM和web框架等原因,也就最多1万左右的QPS;
    1. 如果需要简单查询数据库的,也就2~3K的QPS;
    2. 如果需要数据库事务操作的,也就100~150的QPS;
  3. 什么时候需要水平拓展QPS
  4. HTTP压测工具之wrk;
    1. HTTP压测工具之wrk
    2. 性能测试工具wrk使用教程
  5. 一般来说,不一定很准确,参考:
    1. 2C4G机器单机一般1000QPS。
    2. 8C8G机器单机可承受7000QPS。

wrk操作

#scripts/post.lua
vim post.lua
#
wrk.method = "POST"
wrk.body = '{"domain":"xxx.xxx.xxx"}'
wrk.headers["Content-Type"] = "application/json"
#
./wrk -t4 -c1000 -d5s -s /root/code/wrk/scripts/post.lua {具体的URL}

Nginx统计访问量

根据访问IP统计UV

# 根据访问IP统计UV
cat /mnt/docker/tomcat/logs/{具体的nginx log} \
| grep "21/May/2020" | awk '{print $1}' \
|sort | uniq -c |wc -l

根据访问URL统计PV

# 根据访问URL统计PV
cat /mnt/docker/tomcat/logs/{具体的nginx log文件} \
| grep "21/May/2020" \
| awk '{print $7}' |wc -l

根据访问URL统计QPS

# 根据访问URL统计QPS
cat /mnt/docker/tomcat/logs/{具体的nginx log文件} \
| grep "21/May/2020:16:39:" \
| awk '{print $7}' |wc -l

查询访问最频繁的URL

# 查询访问最频繁的URL
cat /usr/local/nginx/logs/access.log \
| grep "29/Feb/2020" | awk '{print $7}' \
|sort | uniq -c |sort -n -k 1 -r|more

查询访问最频繁的IP

# 查询访问最频繁的IP
cat /mnt/docker/tomcat/logs/{具体的nginx log文件} \
| grep "12/May/2020" | awk '{print $1}' \
|sort | uniq -c |sort -n -k 1 -r|more

根据时间段统计查看日志

# 根据时间段统计查看日志
cat /usr/local/nginx/logs/access.log \
| sed -n '/14\/Mar\/2015/,/14\/Mar\/2020/p'|more

某个时间段访问总次数

# 某个时间段访问总次数
cat /usr/local/nginx/logs/access.log \
| grep -E '16\/Feb\/2020:1[2-9]|29\/Feb\/2020:2[0-3]'| wc -

查看访问最频繁的前5个IP,并列出访问次数

#查看访问最频繁的前5个IP,并列出访问次数
cat /usr/local/nginx/logs/access.log \
| grep "29/Feb/2020" | awk '{print $1}'|sort -n|uniq -c| sort -rn| head -5

统计状态码为200次数

# 统计状态码为200次数
cat /usr/local/nginx/logs/access.log \
| grep "29/Feb/2020" | awk '{if($9 == 200) print $9}'|wc -l

统计状态码不是200的次数

#统计状态码不是200的次数
cat /usr/local/nginx/logs/access.log \
| grep "29/Feb/2020" | awk '{if($9 != 200) print }'|less

查看404错误码的请求

#查看404错误码的请求
cat /usr/local/nginx/logs/access.log \
| grep "29/Feb/2020" | grep "404"|less

每隔5分钟访问次数列表

#每隔5分钟访问次数列表
cat /usr/local/nginx/logs/access.log \
| grep "29/Feb/2020" \
| awk -F: '{a[$2":"($3-$3%5)]++}END\
{for(i in a){split(i,t);print i" 至",t[1]":"t[2]+4," \
访问 "a[i] " 次" | "sort -t: -k1n -k2n"}}'

查询某个IP的详细访问情况,按访问频率排序

#查询某个IP的详细访问情况,按访问频率排序
cat /usr/local/nginx/logs/access.log \
| grep "29/Feb/2020" | grep '122.4.22.242' \
| awk '{print $7}'|sort |uniq -c |sort -rn |head -n 100

统计每秒的请求数,top100的时间点(精确到秒)

#统计每秒的请求数,top100的时间点(精确到秒)
cat /usr/local/nginx/logs/access.log \
| grep "29/Feb/2020" | awk '{print $4}' \
|cut -c 14-21|sort|uniq -c|sort -nr|head -n 100

统计每分钟的请求数,top100的时间点(精确到分钟)

#统计每分钟的请求数,top100的时间点(精确到分钟)
cat /usr/local/nginx/logs/access.log \
| grep "29/Feb/2020" | awk '{print $4}' \
|cut -c 14-18|sort|uniq -c|sort -nr|head -n 100

统计每小时的请求数,top100的时间点(精确到小时)

#统计每小时的请求数,top100的时间点(精确到小时)
cat /mnt/docker/tomcat/logs/{具体的nginx log文件} \
| grep "21/May/2020" | awk '{print $4}' \
|cut -c 14-15|sort|uniq -c|sort -nr|head -n 100

其他,未分类


##性能分析
#在nginx log中最后一个字段加入$request_time
#列出传输时间超过 3 秒的页面,显示前20条
cat /usr/local/nginx/logs/access.log | grep "29/Feb/2020" \
| awk '($NF > 3){print $7}'|sort -n|uniq -c|sort -nr|head -20

##TCP连接统计
#查看当前TCP连接数
netstat -tan | grep "ESTABLISHED" | grep ":80" | wc -l
#用tcpdump嗅探80端口的访问看看谁最高
tcpdump -i eth0 -tnn dst port 80 -c 1000 \
| awk -F"." '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -nr

名词解释

  1. PV(Page View)访问量, 即页面浏览量或点击量,衡量网站用户访问的网页数量;在一定统计周期内用户每打开或刷新一个页面就记录1次,多次打开或刷新同一页面则浏览量累计。
  2. UV(Unique Visitor)独立访客,统计1天内访问某站点的用户数(以cookie为依据);访问网站的一台电脑客户端为一个访客。可以理解成访问某网站的电脑的数量。网站判断来访电脑的身份是通过来访电脑的cookies实现的。如果更换了IP后但不清除cookies,再访问相同网站,该网站的统计中UV数是不变的。如果用户不保存cookies访问、清除了cookies或者更换设备访问,计数会加1。00:00-24:00内相同的客户端多次访问只计为1个访客。
  3. IP(Internet Protocol)独立IP数,是指1天内多少个独立的IP浏览了页面,即统计不同的IP浏览用户数量。同一IP不管访问了几个页面,独立IP数均为1;不同的IP浏览页面,计数会加1。 IP是基于用户广域网IP地址来区分不同的访问者的,所以,多个用户(多个局域网IP)在同一个路由器(同一个广域网IP)内上网,可能被记录为一个独立IP访问者。如果用户不断更换IP,则有可能被多次统计。
  4. 会话次数(网站访问量)Session,会话是指在指定的时间段内在您的网站上发生的一系列互动,所以会话次数是一段时间内用户向您的网站发起的会话(Session)总数量。一次会话会浏览一个或多个页面

参考

  1. Nginx 单机百万QPS环境搭建
- +

高并发API

总结

  1. 单机百万QPS的Nginx是没有问题的,具体能到多少,受限于:
    1. 服务器的CPU数量、内存大小、磁盘性能;
    2. 服务器Linux的配置
    3. Nginx的参数配置
    4. 网卡的配置、路由器的配置、交换机的配置
  2. 单机Tomcat受限于JVM和web框架等原因,也就最多1万左右的QPS;
    1. 如果需要简单查询数据库的,也就2~3K的QPS;
    2. 如果需要数据库事务操作的,也就100~150的QPS;
  3. 什么时候需要水平拓展QPS
  4. HTTP压测工具之wrk;
    1. HTTP压测工具之wrk
    2. 性能测试工具wrk使用教程
  5. 一般来说,不一定很准确,参考:
    1. 2C4G机器单机一般1000QPS。
    2. 8C8G机器单机可承受7000QPS。

wrk操作

#scripts/post.lua
vim post.lua
#
wrk.method = "POST"
wrk.body = '{"domain":"xxx.xxx.xxx"}'
wrk.headers["Content-Type"] = "application/json"
#
./wrk -t4 -c1000 -d5s -s /root/code/wrk/scripts/post.lua {具体的URL}

Nginx统计访问量

根据访问IP统计UV

# 根据访问IP统计UV
cat /mnt/docker/tomcat/logs/{具体的nginx log} \
| grep "21/May/2020" | awk '{print $1}' \
|sort | uniq -c |wc -l

根据访问URL统计PV

# 根据访问URL统计PV
cat /mnt/docker/tomcat/logs/{具体的nginx log文件} \
| grep "21/May/2020" \
| awk '{print $7}' |wc -l

根据访问URL统计QPS

# 根据访问URL统计QPS
cat /mnt/docker/tomcat/logs/{具体的nginx log文件} \
| grep "21/May/2020:16:39:" \
| awk '{print $7}' |wc -l

查询访问最频繁的URL

# 查询访问最频繁的URL
cat /usr/local/nginx/logs/access.log \
| grep "29/Feb/2020" | awk '{print $7}' \
|sort | uniq -c |sort -n -k 1 -r|more

查询访问最频繁的IP

# 查询访问最频繁的IP
cat /mnt/docker/tomcat/logs/{具体的nginx log文件} \
| grep "12/May/2020" | awk '{print $1}' \
|sort | uniq -c |sort -n -k 1 -r|more

根据时间段统计查看日志

# 根据时间段统计查看日志
cat /usr/local/nginx/logs/access.log \
| sed -n '/14\/Mar\/2015/,/14\/Mar\/2020/p'|more

某个时间段访问总次数

# 某个时间段访问总次数
cat /usr/local/nginx/logs/access.log \
| grep -E '16\/Feb\/2020:1[2-9]|29\/Feb\/2020:2[0-3]'| wc -

查看访问最频繁的前5个IP,并列出访问次数

#查看访问最频繁的前5个IP,并列出访问次数
cat /usr/local/nginx/logs/access.log \
| grep "29/Feb/2020" | awk '{print $1}'|sort -n|uniq -c| sort -rn| head -5

统计状态码为200次数

# 统计状态码为200次数
cat /usr/local/nginx/logs/access.log \
| grep "29/Feb/2020" | awk '{if($9 == 200) print $9}'|wc -l

统计状态码不是200的次数

#统计状态码不是200的次数
cat /usr/local/nginx/logs/access.log \
| grep "29/Feb/2020" | awk '{if($9 != 200) print }'|less

查看404错误码的请求

#查看404错误码的请求
cat /usr/local/nginx/logs/access.log \
| grep "29/Feb/2020" | grep "404"|less

每隔5分钟访问次数列表

#每隔5分钟访问次数列表
cat /usr/local/nginx/logs/access.log \
| grep "29/Feb/2020" \
| awk -F: '{a[$2":"($3-$3%5)]++}END\
{for(i in a){split(i,t);print i" 至",t[1]":"t[2]+4," \
访问 "a[i] " 次" | "sort -t: -k1n -k2n"}}'

查询某个IP的详细访问情况,按访问频率排序

#查询某个IP的详细访问情况,按访问频率排序
cat /usr/local/nginx/logs/access.log \
| grep "29/Feb/2020" | grep '122.4.22.242' \
| awk '{print $7}'|sort |uniq -c |sort -rn |head -n 100

统计每秒的请求数,top100的时间点(精确到秒)

#统计每秒的请求数,top100的时间点(精确到秒)
cat /usr/local/nginx/logs/access.log \
| grep "29/Feb/2020" | awk '{print $4}' \
|cut -c 14-21|sort|uniq -c|sort -nr|head -n 100

统计每分钟的请求数,top100的时间点(精确到分钟)

#统计每分钟的请求数,top100的时间点(精确到分钟)
cat /usr/local/nginx/logs/access.log \
| grep "29/Feb/2020" | awk '{print $4}' \
|cut -c 14-18|sort|uniq -c|sort -nr|head -n 100

统计每小时的请求数,top100的时间点(精确到小时)

#统计每小时的请求数,top100的时间点(精确到小时)
cat /mnt/docker/tomcat/logs/{具体的nginx log文件} \
| grep "21/May/2020" | awk '{print $4}' \
|cut -c 14-15|sort|uniq -c|sort -nr|head -n 100

其他,未分类


##性能分析
#在nginx log中最后一个字段加入$request_time
#列出传输时间超过 3 秒的页面,显示前20条
cat /usr/local/nginx/logs/access.log | grep "29/Feb/2020" \
| awk '($NF > 3){print $7}'|sort -n|uniq -c|sort -nr|head -20

##TCP连接统计
#查看当前TCP连接数
netstat -tan | grep "ESTABLISHED" | grep ":80" | wc -l
#用tcpdump嗅探80端口的访问看看谁最高
tcpdump -i eth0 -tnn dst port 80 -c 1000 \
| awk -F"." '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -nr

名词解释

  1. PV(Page View)访问量, 即页面浏览量或点击量,衡量网站用户访问的网页数量;在一定统计周期内用户每打开或刷新一个页面就记录1次,多次打开或刷新同一页面则浏览量累计。
  2. UV(Unique Visitor)独立访客,统计1天内访问某站点的用户数(以cookie为依据);访问网站的一台电脑客户端为一个访客。可以理解成访问某网站的电脑的数量。网站判断来访电脑的身份是通过来访电脑的cookies实现的。如果更换了IP后但不清除cookies,再访问相同网站,该网站的统计中UV数是不变的。如果用户不保存cookies访问、清除了cookies或者更换设备访问,计数会加1。00:00-24:00内相同的客户端多次访问只计为1个访客。
  3. IP(Internet Protocol)独立IP数,是指1天内多少个独立的IP浏览了页面,即统计不同的IP浏览用户数量。同一IP不管访问了几个页面,独立IP数均为1;不同的IP浏览页面,计数会加1。 IP是基于用户广域网IP地址来区分不同的访问者的,所以,多个用户(多个局域网IP)在同一个路由器(同一个广域网IP)内上网,可能被记录为一个独立IP访问者。如果用户不断更换IP,则有可能被多次统计。
  4. 会话次数(网站访问量)Session,会话是指在指定的时间段内在您的网站上发生的一系列互动,所以会话次数是一段时间内用户向您的网站发起的会话(Session)总数量。一次会话会浏览一个或多个页面

参考

  1. Nginx 单机百万QPS环境搭建
+ \ No newline at end of file diff --git a/docs/study/competitive/CMP-DMP-AEP-BAP/index.html b/docs/study/competitive/CMP-DMP-AEP-BAP/index.html index 264594f0b..f983cf2fd 100644 --- a/docs/study/competitive/CMP-DMP-AEP-BAP/index.html +++ b/docs/study/competitive/CMP-DMP-AEP-BAP/index.html @@ -11,14 +11,14 @@ - +

CMP-DMP-AEP-BAP

简述

物联网云平台处于物联网四个逻辑层(感知层、网络层、平台层、应用层)中处于平台层这一环,平台层于物联网的作用在于收集、处理数据等。我们可根据云平台的功能将其分为CMP、DMP、AEP和BAP等四个平台。到目前为止还没有一家公司可在业务上涵盖四个子平台,每个公司有各自擅长领域 和独特优势。

根据各类参与者所提供的服务类型,按照Machina Research的分类方法,物联网平台可分为连接管理平台CMP(Connectivity Management Platform)、设备管理平台DMP(Device Management Platform)、应用使能平台AEP(Application Enablement Platform)和业务分析平台BAP(Business Analytics Platform)。

image.png

一、连接管理平台CMP

CMP(Connectivity Management Platform)为连接管理平台。一般运用于运营商网络上,具体来说连接的物联网SIM卡。该平台可以实现对物联网连接配置和故障管理、保证终端联网通道稳定、网络资源用量管理、连接资费管理、账单管理、套餐变更等。

连接管理平台通常指基于电信运营商网络(蜂窝,LTE等)提供可连接性管理、优化以及终端管理,维护等方面的功能的平台。其功能通常包括号码/IP地址/Mac资源管理、SIM卡管控、连接资费管理、套餐管理、网络资源用量管理、账单管理、故障管理等。物联网连接具备M2M连接数大、单个物品连接ARPU值低(人类连接客户ARPU值的3%-5%)的特点,直接结果就是多数运营商将放弃自建CMP平台,转与专门化的CMP平台供应商合作。根据物联网智库的分析,对于拥有超过1000个连接的企业,长期来看,使用云平台比自建IT设施将节省90%的成本。另外,很多物联网客户都是跨国企业,选择运营商时更青睐一点接入全球通用,因此全球化的龙头CMP企业优势显著。

典型的连接管理平台包括思科的Jasper平台、爱立信的DCP、沃达丰的GDSP,Telit的M2M平台、PTC的Thingworx和Axeda。目前全球化的CMP主要有三家:Jasper平台、爱立信DCP平台和沃达丰GDSP平台,其中Jasper最大,与全球超过100家运营商、3500家企业客户展开合作,国内的中国联通也通过宜通世纪与Jasper平台进行合作。

在国内三大运营商中,中国移动选择自研One NET连接管理平台,中国联通与Jasper战略合作,选择其Control平台提供物联网连接服务;中国电信也先后自研及与爱立信合作建立两套连接管理平台。

二、设备管理平台DMP

DMP(Device Management Platform)是设备管理平台。主要对物联网终端进行远程监控、设置调整 、软件升级、故障排查等一系列等功能。并通过提供开放的API调用接口帮助客户进行系统的集成在整套端到端M2M设备管理解决方案中,整体报价收费。可以认为DMP主要面向设备的开、关、停等基本状态的控制,或实时的物联网设备警告等不涉及物联网上层应用场景的设备管理。

物联网设备管理平台DMP往往集成在端到端的全套设备管理解决方案中,进行整体报价收费。DMP功能包括用户管理以及物联网设备管理,例如配置、重启、关闭、恢复出厂、升级/回退等,设备现场产生的数据的查询,以及基于现场数据的报警功能,设备生命周期管理等。据IDC数据显示,2020年全球将超过250亿台设备联网。

设备管理的核心不在基础的连接和的管理职能,而在增值性的经营和维护业务上。通过大量设备的接入数据,识别出业务流程的优化甚至新的商业模式,对设备进行生命周期管理和运维,能够对客户起到降本增效的作用。

典型的DMP平台包括BOSCHIoTSuite、IBMWatson、DiGi、百度云物接入IoTHub、三一重工根云、GEPredix等。以百度云为例,百度云物接入IoTHub是建立在IaaS上的PaaS平台,提供全托管的云服务,帮助建立设备与云端之间的双向连接,支撑海量设备的数据收集、监控、故障预测等各种物联网场景。一些垂直领域巨头本身就是设备提供商,业务外延至平台层面,通常能够提供整体解决方案,部分能够集成CRM、ERP、MES等信息系统。

三、应用使能平台AEP

AEP(Application Enablement Platform)是上层的业务使能平台,该逻辑层是结合了上层的应用场景,为开发者提供成套应用开发工具(SDK)、中间件、数据存储、业务逻辑引擎、第三方API接口等功能。我们可将其理解为结合应用场景的系统开发平台。随着企业在行业中对业务经验、所涉及技术的持续积累,平台的竞争力将逐渐从连接能力转移到平台的多场景化的业务能力。

应用使能平台AEP是提供快速开发部署物联网应用服务的PaaS平台。AEP为开发者提供了成套应用开发工具、中间件、业务逻辑引擎、API接口、应用服务器等工具,以节省大量开发时间和预算。

物联网市场天然碎片化,AEP平台商通过提供完善的开发资料库、多样化的部署方式、企业级SDK及可拓展的通用中间件,大大降低开发门槛。应用AEP平台能够使应用的开发成本大幅降低,并及时推向市场抢占先机。

典型的AEP平台提供商包括PTCThing worx,艾拉物联,机智云,Comulo city,AWS -IoT,Watson IoT Platform等。

以机智云为例,中国电信的白色家电行业使能套件是与日海物联及机智云合作完成的,主要服务于智能家电行业,帮助客户进行产品开发。套件提供数据的管理、分析、调取的标准化接口,应用开发者只需要调用接口,就能够快速进行手机APP或者应用软件平台的搭建。最终用户通过手机或者电脑,就可以轻松控制控制智能家电。

四、业务分析平台BAP

BAP(Business Analytics Platform)可被称为业务分析平台,该逻辑层包含大数据服务和机器学习两个主要功能。将汇集在云平台的数据进行分析、处理,并将其可视化。而机器学习是将沉淀在平台上结构化和非结构化数据进行训练,形成具有预测性的、认知的、或复杂的业务分析逻辑。而未来,机器学习必然将向人工智能过度。从数据累计量、人工智能技术的发展程度等角度考虑,目前还没有企业的业务可以达到这一层级。

业务分析平台BAP主要通过大数据分析和机器学习等方法,对数据进行深度解析,以图表、数据报告等方式进行可视化展示,并应用于垂直行业。物联网应用可以通过对BAP模块的调用来建立模型,进行业务发展预测分析及设备的预防性维护等。由于人工智能技术及数据感知层搭建的进度限制,目前BAP平台发展仍未成熟。

- +IoT,Watson IoT Platform等。

以机智云为例,中国电信的白色家电行业使能套件是与日海物联及机智云合作完成的,主要服务于智能家电行业,帮助客户进行产品开发。套件提供数据的管理、分析、调取的标准化接口,应用开发者只需要调用接口,就能够快速进行手机APP或者应用软件平台的搭建。最终用户通过手机或者电脑,就可以轻松控制控制智能家电。

四、业务分析平台BAP

BAP(Business Analytics Platform)可被称为业务分析平台,该逻辑层包含大数据服务和机器学习两个主要功能。将汇集在云平台的数据进行分析、处理,并将其可视化。而机器学习是将沉淀在平台上结构化和非结构化数据进行训练,形成具有预测性的、认知的、或复杂的业务分析逻辑。而未来,机器学习必然将向人工智能过度。从数据累计量、人工智能技术的发展程度等角度考虑,目前还没有企业的业务可以达到这一层级。

业务分析平台BAP主要通过大数据分析和机器学习等方法,对数据进行深度解析,以图表、数据报告等方式进行可视化展示,并应用于垂直行业。物联网应用可以通过对BAP模块的调用来建立模型,进行业务发展预测分析及设备的预防性维护等。由于人工智能技术及数据感知层搭建的进度限制,目前BAP平台发展仍未成熟。

+ \ No newline at end of file diff --git a/docs/study/competitive/TP-LINK/index.html b/docs/study/competitive/TP-LINK/index.html index 608a63f85..38a9bc160 100644 --- a/docs/study/competitive/TP-LINK/index.html +++ b/docs/study/competitive/TP-LINK/index.html @@ -11,13 +11,13 @@ - + - +
+ \ No newline at end of file diff --git a/docs/study/competitive/ThingsCloud/index.html b/docs/study/competitive/ThingsCloud/index.html index 09992cd8b..4732ca4d7 100644 --- a/docs/study/competitive/ThingsCloud/index.html +++ b/docs/study/competitive/ThingsCloud/index.html @@ -11,13 +11,13 @@ - + - +
+ \ No newline at end of file diff --git a/docs/study/competitive/index.html b/docs/study/competitive/index.html index 66d055c55..add40cf7d 100644 --- a/docs/study/competitive/index.html +++ b/docs/study/competitive/index.html @@ -11,13 +11,13 @@ - + - +
+ \ No newline at end of file diff --git "a/docs/study/competitive/\345\267\245\344\270\232\344\272\222\350\201\224\347\275\221\346\216\242\347\251\266/index.html" "b/docs/study/competitive/\345\267\245\344\270\232\344\272\222\350\201\224\347\275\221\346\216\242\347\251\266/index.html" index e21642a51..22e4e0d7a 100644 --- "a/docs/study/competitive/\345\267\245\344\270\232\344\272\222\350\201\224\347\275\221\346\216\242\347\251\266/index.html" +++ "b/docs/study/competitive/\345\267\245\344\270\232\344\272\222\350\201\224\347\275\221\346\216\242\347\251\266/index.html" @@ -11,13 +11,13 @@ - +
-

工业互联网探究

分类:行业+场景+模式

  1. “场景”指设备资产管理、业务运营优化和产业生态创新三种;
  2. “模式”则包括通用型平台、垂直行业平台、平台解决方案、工业App/细分解决方案以及IAAS层(主要提供云服务,基本就是阿里云、华为云、腾讯云、AWS等,不在本文讨论范围)五类

通用型工业互联网平台

通用型工业互联网平台跨多行业多领域,往往会基于自身PaaS层与生态伙伴合作推动在各行业、领域的工业互联网建设。也正是因为其跨行业跨领域特性,工业互联网通用型平台建设难度大,属于资源和资金密集型的机会。

2019年8月26日,工信部公布2019年十大跨行业跨领域工业互联网平台清单,入选平台分别是:海尔COSMOPlat工业互联网平台东方国信Cloudiip工业互联网平台用友精智工业互联网平台树根互联根云工业互联网平台航天云网INDICS工业互联网平台浪潮云In-Cloud工业互联网平台华为FusionPlant工业互联网平台富士康BEACON工业互联网平台阿里supET工业互联网平台徐工信息汉云工业互联网平台,这十家工业互联网平台即是通用型平台的典型案例。

  1. 树根互联(三一重工)
  2. 汉云工业物联网平台(徐工信息)

垂直工业互联网平台及解决方案

通用型平台“一个平台包打天下”的模式比较难在行业内深耕,不同行业生产场景的巨大差别也给了垂直领域互联网平台及解决方案发展的机会。下面从工业互联网三大应用场景设备资产管理、业务运营优化、产业生态创新出发,列举垂直行业平台、平台解决方案以及工业App等细分解决方案三类国内工业互联网公司。其中,垂直行业平台只聚焦于某一个领域或行业;平台解决方案除了平台,还会提供整体解决方案,模式更“重”。除了以上端到端的平台模式,还有一类公司是针对工业场景中的某一个痛点提供细分解决方案,这种就是工业APP/细分应用。 

  1. 蘑菇互联(垂直行业平台)
    1. 设备产业链三大主题:设备制造企业、设备代理/服务企业、设备用户企业;
    2. 蘑菇云盒+蘑菇云+蘑菇圈;
    3. 为设备制造商定制"物联网集成管理系统";
    4. 为设备代理/服务商提供"一站式物联网管理工具";
    5. 为设备用户企业打造"数字智能管理车间系";
  2. 智能云科(垂直行业平台)
  3. 普奥云科技(平台解决方案)
  4. 寄云科技(平台解决方案)
  5. 湃方科技(平台解决方案)
  6. 天泽智云(平台解决方案)

参考

  1. 近万亿工业互联网赛道有哪些玩家?这里有一份行业图谱
- +

工业互联网探究

分类:行业+场景+模式

  1. “场景”指设备资产管理、业务运营优化和产业生态创新三种;
  2. “模式”则包括通用型平台、垂直行业平台、平台解决方案、工业App/细分解决方案以及IAAS层(主要提供云服务,基本就是阿里云、华为云、腾讯云、AWS等,不在本文讨论范围)五类

通用型工业互联网平台

通用型工业互联网平台跨多行业多领域,往往会基于自身PaaS层与生态伙伴合作推动在各行业、领域的工业互联网建设。也正是因为其跨行业跨领域特性,工业互联网通用型平台建设难度大,属于资源和资金密集型的机会。

2019年8月26日,工信部公布2019年十大跨行业跨领域工业互联网平台清单,入选平台分别是:海尔COSMOPlat工业互联网平台东方国信Cloudiip工业互联网平台用友精智工业互联网平台树根互联根云工业互联网平台航天云网INDICS工业互联网平台浪潮云In-Cloud工业互联网平台华为FusionPlant工业互联网平台富士康BEACON工业互联网平台阿里supET工业互联网平台徐工信息汉云工业互联网平台,这十家工业互联网平台即是通用型平台的典型案例。

  1. 树根互联(三一重工)
  2. 汉云工业物联网平台(徐工信息)

垂直工业互联网平台及解决方案

通用型平台“一个平台包打天下”的模式比较难在行业内深耕,不同行业生产场景的巨大差别也给了垂直领域互联网平台及解决方案发展的机会。下面从工业互联网三大应用场景设备资产管理、业务运营优化、产业生态创新出发,列举垂直行业平台、平台解决方案以及工业App等细分解决方案三类国内工业互联网公司。其中,垂直行业平台只聚焦于某一个领域或行业;平台解决方案除了平台,还会提供整体解决方案,模式更“重”。除了以上端到端的平台模式,还有一类公司是针对工业场景中的某一个痛点提供细分解决方案,这种就是工业APP/细分应用。 

  1. 蘑菇互联(垂直行业平台)
    1. 设备产业链三大主题:设备制造企业、设备代理/服务企业、设备用户企业;
    2. 蘑菇云盒+蘑菇云+蘑菇圈;
    3. 为设备制造商定制"物联网集成管理系统";
    4. 为设备代理/服务商提供"一站式物联网管理工具";
    5. 为设备用户企业打造"数字智能管理车间系";
  2. 智能云科(垂直行业平台)
  3. 普奥云科技(平台解决方案)
  4. 寄云科技(平台解决方案)
  5. 湃方科技(平台解决方案)
  6. 天泽智云(平台解决方案)

参考

  1. 近万亿工业互联网赛道有哪些玩家?这里有一份行业图谱
+ \ No newline at end of file diff --git "a/docs/study/competitive/\347\211\251\350\201\224\347\275\221\345\271\263\345\217\260\345\261\202\346\246\202\350\277\260/index.html" "b/docs/study/competitive/\347\211\251\350\201\224\347\275\221\345\271\263\345\217\260\345\261\202\346\246\202\350\277\260/index.html" index 6d62308d3..730e14e8d 100644 --- "a/docs/study/competitive/\347\211\251\350\201\224\347\275\221\345\271\263\345\217\260\345\261\202\346\246\202\350\277\260/index.html" +++ "b/docs/study/competitive/\347\211\251\350\201\224\347\275\221\345\271\263\345\217\260\345\261\202\346\246\202\350\277\260/index.html" @@ -11,13 +11,13 @@ - +
-

物联网平台层概述

在大众熟知的物联网感知层、网络层、平台层、应用层四大层次里,平台层将作为物联网从设备连接到场景应用的关键“桥梁”而发挥作用。

物联网平台是一款提供丰富功能组合的商业软件产品,主要体现在:

  1. 负责物联网设备的连接与管理;
  2. 负责物联网数据的访问、摄取与存储;
  3. 对数据的可视化与分析;
  4. 作为物联网应用程序开发和集成的工具。

甚至还有观点认为,物联网未来一定是平台为王。尤其随着数据量剧增、用户对计算能力的需求越来越大,具有强大接入与运维管理能力的云平台将是企业打造品牌的重要关键。

物联网平台被认为是推动物联网大规模连接的基础软件,是促进 IoT 项目规模落地的关键基础设施,是全球物联网企业争夺发力的战略高地。

物联网平台属于云计算三种服务模型(IaaS、PaaS、SaaS)中 PaaS 层的一部分,起源于物联网中间件的形式,其目的是在硬件层和应用层之间起到中介作用,管理二者之间的所有交互。

物联网平台企业较高频地提到 4 大功能,分别是连接管理设备管理应用开发数据分析

连接管理是基础、设备管理是核心、应用开发是价值体现、数据分析是应用潜能、安全是重要保障。

从根本上理解,物联网平台玩家的经营策略主要可分为两点:

  • 一种是横向的,专门做泛行业的连接;
  • 另一种是纵向的,持续在垂直领域挖掘深耕。

构筑芯端边网云全栈物联网产品和解决方案。在网络侧,除了大家比较熟悉的 2、3、4G、5G 外,华为还在推进 NB-IoT、eLTE 等物联网网络的建设,为产业领域万物互联准备好网络。

设备接入服务实现多(亿级联接、百万并发)、快(小时级接入、分钟级安装部署)、好(高安全高可靠)、省(低功耗、低成本)的设备上云接入;数据分析服务实现开箱即用的一站式数据处理 & 分析,为开发者提供物联网实时分析、时需分析、离线分析,快速挖掘物联网数据的价值。

物联网平台层主要有三种客户:设备生产厂家、工业现场(设备用户)、垂直行业物联网解决方案商。

物联网云平台处于物联网四个逻辑层(感知层、网络层、平台层、应用层)中处于平台层这一环,平台层于物联网的作用在于收集、处理数据等。我们可根据云平台的功能将其分为CMP、DMP、AEP和BAP等四个平台。到目前为止还没有一家公司可在业务上涵盖四个子平台,每个公司有各自擅长领域 和独特优势。

- +

物联网平台层概述

在大众熟知的物联网感知层、网络层、平台层、应用层四大层次里,平台层将作为物联网从设备连接到场景应用的关键“桥梁”而发挥作用。

物联网平台是一款提供丰富功能组合的商业软件产品,主要体现在:

  1. 负责物联网设备的连接与管理;
  2. 负责物联网数据的访问、摄取与存储;
  3. 对数据的可视化与分析;
  4. 作为物联网应用程序开发和集成的工具。

甚至还有观点认为,物联网未来一定是平台为王。尤其随着数据量剧增、用户对计算能力的需求越来越大,具有强大接入与运维管理能力的云平台将是企业打造品牌的重要关键。

物联网平台被认为是推动物联网大规模连接的基础软件,是促进 IoT 项目规模落地的关键基础设施,是全球物联网企业争夺发力的战略高地。

物联网平台属于云计算三种服务模型(IaaS、PaaS、SaaS)中 PaaS 层的一部分,起源于物联网中间件的形式,其目的是在硬件层和应用层之间起到中介作用,管理二者之间的所有交互。

物联网平台企业较高频地提到 4 大功能,分别是连接管理设备管理应用开发数据分析

连接管理是基础、设备管理是核心、应用开发是价值体现、数据分析是应用潜能、安全是重要保障。

从根本上理解,物联网平台玩家的经营策略主要可分为两点:

  • 一种是横向的,专门做泛行业的连接;
  • 另一种是纵向的,持续在垂直领域挖掘深耕。

构筑芯端边网云全栈物联网产品和解决方案。在网络侧,除了大家比较熟悉的 2、3、4G、5G 外,华为还在推进 NB-IoT、eLTE 等物联网网络的建设,为产业领域万物互联准备好网络。

设备接入服务实现多(亿级联接、百万并发)、快(小时级接入、分钟级安装部署)、好(高安全高可靠)、省(低功耗、低成本)的设备上云接入;数据分析服务实现开箱即用的一站式数据处理 & 分析,为开发者提供物联网实时分析、时需分析、离线分析,快速挖掘物联网数据的价值。

物联网平台层主要有三种客户:设备生产厂家、工业现场(设备用户)、垂直行业物联网解决方案商。

物联网云平台处于物联网四个逻辑层(感知层、网络层、平台层、应用层)中处于平台层这一环,平台层于物联网的作用在于收集、处理数据等。我们可根据云平台的功能将其分为CMP、DMP、AEP和BAP等四个平台。到目前为止还没有一家公司可在业务上涵盖四个子平台,每个公司有各自擅长领域 和独特优势。

+ \ No newline at end of file diff --git a/docs/study/db/NewSQL/TiDB/index.html b/docs/study/db/NewSQL/TiDB/index.html index 0534ed974..873816bb1 100644 --- a/docs/study/db/NewSQL/TiDB/index.html +++ b/docs/study/db/NewSQL/TiDB/index.html @@ -11,7 +11,7 @@ - + @@ -23,8 +23,8 @@ TiDB 100% 支持标准的 ACID 事务。
  • 真正金融级高可用 相比于传统主从 (M-S) 复制方案,基于 Raft 的多数派选举协议可以提供金融级的 100% 数据强一致性保证,且在不丢失大多数副本的前提下,可以实现故障的自动恢复 (auto-failover),无需人工介入。
  • 一站式 HTAP 解决方案 TiDB 作为典型的 OLTP 行存数据库,同时兼具强大的 OLAP 性能,配合 TiSpark,可提供一站式 HTAP 解决方案,一份存储同时处理 OLTP & OLAP,无需传统繁琐的 ETL 过程。
  • 云原生 SQL 数据库 -TiDB 是为云而设计的数据库,支持公有云、私有云和混合云,使部署、配置和维护变得十分简单。
  • TiDB 的设计目标是 100% 的 OLTP 场景和 80% 的 OLAP 场景,更复杂的 OLAP 分析可以通过 TiSpark 项目来完成。

    TiDB 对业务没有任何侵入性,能优雅的替换传统的数据库中间件、数据库分库分表等 Sharding 方案。同时它也让开发运维人员不用关注数据库 Scale 的细节问题,专注于业务开发,极大的提升研发的生产力。

    三篇文章了解 TiDB 技术内幕:

    目前状况(V3.0)

    TiDB 目前还不支持触发器、存储过程、自定义函数、外键,除此之外,TiDB 支持绝大部分 MySQL 5.7 的语法。

    - +TiDB 是为云而设计的数据库,支持公有云、私有云和混合云,使部署、配置和维护变得十分简单。

    TiDB 的设计目标是 100% 的 OLTP 场景和 80% 的 OLAP 场景,更复杂的 OLAP 分析可以通过 TiSpark 项目来完成。

    TiDB 对业务没有任何侵入性,能优雅的替换传统的数据库中间件、数据库分库分表等 Sharding 方案。同时它也让开发运维人员不用关注数据库 Scale 的细节问题,专注于业务开发,极大的提升研发的生产力。

    三篇文章了解 TiDB 技术内幕:

    目前状况(V3.0)

    TiDB 目前还不支持触发器、存储过程、自定义函数、外键,除此之外,TiDB 支持绝大部分 MySQL 5.7 的语法。

    + \ No newline at end of file diff --git a/docs/study/db/NoSQL/Cassandra/index.html b/docs/study/db/NoSQL/Cassandra/index.html index 4dc6eddc8..613431c75 100644 --- a/docs/study/db/NoSQL/Cassandra/index.html +++ b/docs/study/db/NoSQL/Cassandra/index.html @@ -11,13 +11,13 @@ - +
    -

    Cassandra

    简介

    Apache Cassandra 是一套开源分布式 Key-Value 存储系统。它最初由 Facebook 开发,用于储存特别大的数据。

    主要特性:

    • 分布式
    • 基于column的结构化
    • 高伸缩性

    Cassandra 的主要特点就是它不是一个数据库,而是由一堆数据库节点共同构成的一个分布式网络服务,对 Cassandra 的一个写操作,会被复制到其他节点上去,对 Cassandra 的读操作,也会被路由到某个节点上面去读取。对于一个 Cassandra 群集来说,扩展性能 是比较简单的事情,只管在群集里面添加节点就可以了。

    Cassandra 是一个混合型的非关系的数据库,类似于 Google 的 BigTable。其主要功能比 Dynomite(分布式的 Key-Value 存 储系统)更丰富,但支持度却不如文档存储 MongoDB(介于关系数据库和非关系数据库之间的开源产品,是非关系数据库当中功能最丰富,最像关系数据库 的。支持的数据结构非常松散,是类似 json 的 bjson 格式,因此可以存储比较复杂的数据类型。)Cassandra 最初由 Facebook 开发,后转变成了开源项目。它是一个网络社交云计算方面理想的数据库。以 Amazon 专有的完全分布式的 Dynamo 为基础,结合了 Google BigTable 基于列族(Column Family)的数据模型。P2P 去中心化的存储。很多方面都可以称之为 Dynamo 2.0。

    中文官网地址

    - +

    Cassandra

    简介

    Apache Cassandra 是一套开源分布式 Key-Value 存储系统。它最初由 Facebook 开发,用于储存特别大的数据。

    主要特性:

    • 分布式
    • 基于column的结构化
    • 高伸缩性

    Cassandra 的主要特点就是它不是一个数据库,而是由一堆数据库节点共同构成的一个分布式网络服务,对 Cassandra 的一个写操作,会被复制到其他节点上去,对 Cassandra 的读操作,也会被路由到某个节点上面去读取。对于一个 Cassandra 群集来说,扩展性能 是比较简单的事情,只管在群集里面添加节点就可以了。

    Cassandra 是一个混合型的非关系的数据库,类似于 Google 的 BigTable。其主要功能比 Dynomite(分布式的 Key-Value 存 储系统)更丰富,但支持度却不如文档存储 MongoDB(介于关系数据库和非关系数据库之间的开源产品,是非关系数据库当中功能最丰富,最像关系数据库 的。支持的数据结构非常松散,是类似 json 的 bjson 格式,因此可以存储比较复杂的数据类型。)Cassandra 最初由 Facebook 开发,后转变成了开源项目。它是一个网络社交云计算方面理想的数据库。以 Amazon 专有的完全分布式的 Dynamo 为基础,结合了 Google BigTable 基于列族(Column Family)的数据模型。P2P 去中心化的存储。很多方面都可以称之为 Dynamo 2.0。

    中文官网地址

    + \ No newline at end of file diff --git a/docs/study/db/NoSQL/Etcd/index.html b/docs/study/db/NoSQL/Etcd/index.html index b1226f02f..e0e086c4b 100644 --- a/docs/study/db/NoSQL/Etcd/index.html +++ b/docs/study/db/NoSQL/Etcd/index.html @@ -11,13 +11,13 @@ - +
    -

    Etcd

    ETCD是CoreOs公司发布的一个分布式的、高可用的、key-value存储的数据库。基于Go语言实现,k8s中也使用了ETCD作为数据库。主要用于共享配置和服务发现。相对于zookeeper采用的Paxos,ETCD采用的是Raft算法,该算法具备的性能更佳、数据一致性强等优点。

    ETCD存储数据量默认为2GB,最大可以设置为8GB。针对ETCD存储数据量较小的特性,故建议ETCD最好作为热点数据存储的数据库使用,而不能作为应用数据持久化的数据库使用。常见的使用场景如下:

    场景1:服务发现(Service Discovery)

    场景2:消息发布与订阅

    场景3:负载均衡

    场景4:分布式通知与协调

    场景5:分布式锁、分布式队列

    场景6:集群监控与Leader竞选。

    比如:某个用户需要一个分布式存储仓库来存储配置信息,并且对于读写速度、高可用、部署便捷等方面都有要求,则该场景可以优先考虑ETCD数据库。当前使广泛的kubernetes,亦使用ETCD来存储docker集群的配置信息。

    官方文档

    etcdctl

    etcdctl is a command line client for etcd.

    官方文档

    数据相关命令

    # help 
    ./etcdctl --help
    # 返回所有 包括value
    ./etcdctl get --from-key '' -w fields
    # 返回所有 只有key
    ./etcdctl get --from-key '' --keys-only -w fields
    # 根据key的前缀查询
    ./etcdctl get --prefix /apisix/upstreams/451739158021407449 -w fields
    # 列形式返回
    ./etcdctl get --prefix /apisix/upstreams -w fields
    # 只返回key
    ./etcdctl get --prefix /apisix/routes -w simple --keys-only
    ./etcdctl get --insecure-skip-tls-verify=true --insecure-transport=false --prefix /apisix/routes -w simple --keys-only
    # 返回指定key
    ./etcdctl get /apisix/routes/488415811682173648
    # 更新指定key的value
    ./etcdctl put /mykey "my new value" --if-exists

    集群维护相关命令

    # 集群内所有节点
    ./etcdctl member list -w table
    # 集群内所有节点状态
    ./etcdctl endpoint --cluster health
    # 集群内所有节点状态
    ./etcdctl -w table endpoint --cluster status
    # 报警列表
    ./etcdctl alarm list

    参考

    - +

    Etcd

    ETCD是CoreOs公司发布的一个分布式的、高可用的、key-value存储的数据库。基于Go语言实现,k8s中也使用了ETCD作为数据库。主要用于共享配置和服务发现。相对于zookeeper采用的Paxos,ETCD采用的是Raft算法,该算法具备的性能更佳、数据一致性强等优点。

    ETCD存储数据量默认为2GB,最大可以设置为8GB。针对ETCD存储数据量较小的特性,故建议ETCD最好作为热点数据存储的数据库使用,而不能作为应用数据持久化的数据库使用。常见的使用场景如下:

    场景1:服务发现(Service Discovery)

    场景2:消息发布与订阅

    场景3:负载均衡

    场景4:分布式通知与协调

    场景5:分布式锁、分布式队列

    场景6:集群监控与Leader竞选。

    比如:某个用户需要一个分布式存储仓库来存储配置信息,并且对于读写速度、高可用、部署便捷等方面都有要求,则该场景可以优先考虑ETCD数据库。当前使广泛的kubernetes,亦使用ETCD来存储docker集群的配置信息。

    官方文档

    etcdctl

    etcdctl is a command line client for etcd.

    官方文档

    数据相关命令

    # help 
    ./etcdctl --help
    # 返回所有 包括value
    ./etcdctl get --from-key '' -w fields
    # 返回所有 只有key
    ./etcdctl get --from-key '' --keys-only -w fields
    # 根据key的前缀查询
    ./etcdctl get --prefix /apisix/upstreams/451739158021407449 -w fields
    # 列形式返回
    ./etcdctl get --prefix /apisix/upstreams -w fields
    # 只返回key
    ./etcdctl get --prefix /apisix/routes -w simple --keys-only
    ./etcdctl get --insecure-skip-tls-verify=true --insecure-transport=false --prefix /apisix/routes -w simple --keys-only
    # 返回指定key
    ./etcdctl get /apisix/routes/488415811682173648
    # 更新指定key的value
    ./etcdctl put /mykey "my new value" --if-exists

    集群维护相关命令

    # 集群内所有节点
    ./etcdctl member list -w table
    # 集群内所有节点状态
    ./etcdctl endpoint --cluster health
    # 集群内所有节点状态
    ./etcdctl -w table endpoint --cluster status
    # 报警列表
    ./etcdctl alarm list

    参考

    + \ No newline at end of file diff --git a/docs/study/db/NoSQL/Hadoop/index.html b/docs/study/db/NoSQL/Hadoop/index.html index 6146f574b..0fd87531c 100644 --- a/docs/study/db/NoSQL/Hadoop/index.html +++ b/docs/study/db/NoSQL/Hadoop/index.html @@ -11,13 +11,13 @@ - + - +
    + \ No newline at end of file diff --git a/docs/study/db/NoSQL/Hbase/index.html b/docs/study/db/NoSQL/Hbase/index.html index 9d079bb09..6e2d792da 100644 --- a/docs/study/db/NoSQL/Hbase/index.html +++ b/docs/study/db/NoSQL/Hbase/index.html @@ -11,13 +11,13 @@ - +
    -

    Hbase

    列式数据库

    顾名思义,列式数据库就是按照列来存储数据的数据库,与之对应的传统关系数据库被称为“行式数据库”,因为关系数据库是按照行来存储数据的。

    关系数据库按照行式来存储数据,主要有以下几个优势:

    • 业务同时读取多个列时效率高,因为这些列都是按行存储在一起的,一次磁盘操作就能够把一行数据中的各个列都读取到内存中。
    • 能够一次性完成对一行中的多个列的写操作,保证了针对行数据写操作的原子性和一致性;否则如果采用列存储,可能会出现某次写操作,有的列成功了,有的列失败了,导致数据不一致。

    我们可以看到,行式存储的优势是在特定的业务场景下才能体现,如果不存在这样的业务场景,那么行式存储的优势也将不复存在,甚至成为劣势,典型的场景就是海量数据进行统计。例如,计算某个城市体重超重的人员数据,实际上只需要读取每个人的体重这一列并进行统计即可,而行式存储即使最终只使用一列,也会将所有行数据都读取出来。如果单行用户信息有 1KB,其中体重只有 4 个字节,行式存储还是会将整行 1KB 数据全部读取到内存中,这是明显的浪费。而如果采用列式存储,每个用户只需要读取 4 字节的体重数据即可,I/O 将大大减少。

    除了节省 I/O,列式存储还具备更高的存储压缩比,能够节省更多的存储空间。普通的行式数据库一般压缩率在 3:1 到 5:1 左右,而列式数据库的压缩率一般在 8:1 到 30:1 左右,因为单个列的数据相似度相比行来说更高,能够达到更高的压缩率。

    同样,如果场景发生变化,列式存储的优势又会变成劣势。典型的场景是需要频繁地更新多个列。因为列式存储将不同列存储在磁盘上不连续的空间,导致更新多个列时磁盘是随机写操作;而行式存储时同一行多个列都存储在连续的空间,一次磁盘写操作就可以完成,列式存储的随机写效率要远远低于行式存储的写效率。此外,列式存储高压缩率在更新场景下也会成为劣势,因为更新时需要将存储数据解压后更新,然后再压缩,最后写入磁盘。

    基于上述列式存储的优缺点,一般将列式存储应用在离线的大数据分析和统计场景中,因为这种场景主要是针对部分列单列进行操作,且数据写入后就无须再更新删除。

    - +

    Hbase

    列式数据库

    顾名思义,列式数据库就是按照列来存储数据的数据库,与之对应的传统关系数据库被称为“行式数据库”,因为关系数据库是按照行来存储数据的。

    关系数据库按照行式来存储数据,主要有以下几个优势:

    • 业务同时读取多个列时效率高,因为这些列都是按行存储在一起的,一次磁盘操作就能够把一行数据中的各个列都读取到内存中。
    • 能够一次性完成对一行中的多个列的写操作,保证了针对行数据写操作的原子性和一致性;否则如果采用列存储,可能会出现某次写操作,有的列成功了,有的列失败了,导致数据不一致。

    我们可以看到,行式存储的优势是在特定的业务场景下才能体现,如果不存在这样的业务场景,那么行式存储的优势也将不复存在,甚至成为劣势,典型的场景就是海量数据进行统计。例如,计算某个城市体重超重的人员数据,实际上只需要读取每个人的体重这一列并进行统计即可,而行式存储即使最终只使用一列,也会将所有行数据都读取出来。如果单行用户信息有 1KB,其中体重只有 4 个字节,行式存储还是会将整行 1KB 数据全部读取到内存中,这是明显的浪费。而如果采用列式存储,每个用户只需要读取 4 字节的体重数据即可,I/O 将大大减少。

    除了节省 I/O,列式存储还具备更高的存储压缩比,能够节省更多的存储空间。普通的行式数据库一般压缩率在 3:1 到 5:1 左右,而列式数据库的压缩率一般在 8:1 到 30:1 左右,因为单个列的数据相似度相比行来说更高,能够达到更高的压缩率。

    同样,如果场景发生变化,列式存储的优势又会变成劣势。典型的场景是需要频繁地更新多个列。因为列式存储将不同列存储在磁盘上不连续的空间,导致更新多个列时磁盘是随机写操作;而行式存储时同一行多个列都存储在连续的空间,一次磁盘写操作就可以完成,列式存储的随机写效率要远远低于行式存储的写效率。此外,列式存储高压缩率在更新场景下也会成为劣势,因为更新时需要将存储数据解压后更新,然后再压缩,最后写入磁盘。

    基于上述列式存储的优缺点,一般将列式存储应用在离线的大数据分析和统计场景中,因为这种场景主要是针对部分列单列进行操作,且数据写入后就无须再更新删除。

    + \ No newline at end of file diff --git a/docs/study/db/NoSQL/Ignite/index.html b/docs/study/db/NoSQL/Ignite/index.html index 6b456075f..31a2c7c56 100644 --- a/docs/study/db/NoSQL/Ignite/index.html +++ b/docs/study/db/NoSQL/Ignite/index.html @@ -11,13 +11,13 @@ - +
    -

    Ignite

    定义

    一个以内存为中心的分布式数据库、缓存和处理平台,可以在PB级数据中,以内存级的速度进行事务性、分析性以及流式负载的处理。

    参考

    1. Apache Ignite中文网
    - +

    Ignite

    定义

    一个以内存为中心的分布式数据库、缓存和处理平台,可以在PB级数据中,以内存级的速度进行事务性、分析性以及流式负载的处理。

    参考

    1. Apache Ignite中文网
    + \ No newline at end of file diff --git a/docs/study/db/NoSQL/MongoDB/index.html b/docs/study/db/NoSQL/MongoDB/index.html index b6e89b9e9..d47bdd075 100644 --- a/docs/study/db/NoSQL/MongoDB/index.html +++ b/docs/study/db/NoSQL/MongoDB/index.html @@ -11,7 +11,7 @@ - + @@ -20,8 +20,8 @@ 集合就是 MongoDB 文档组,类似于 RDBMS (关系数据库管理系统:Relational Database Management System)中的表格。 集合存在于数据库中,集合没有固定的结构,这意味着你在对集合可以插入不同格式和类型的数据,但通常情况下我们插入集合的数据都会有一定的关联性。

    document

    数据记录行/文档 文档是一组键值(key-value)对(即 BSON)。MongoDB 的文档不需要设置相同的字段,并且相同的字段不需要相同的数据类型,这与关系型数据库有很大的区别,也是 MongoDB 非常突出的特点。

    集群概念

    mongodb集群有三种模式,主从模式,副本集模式、sharding分片模式。主从模式官网也不再推荐上生产环境,主要是安全性太低。副本集和sharding模式目前是用的最广的方案,通常这2种方案的选择通过数据量和并发数来权衡。在GB级别的基本上副本集方案可满足,TB级别或以上采用sharding模式,解决单机容量和单机并发能力。 -这两种既有自己的优势也有自己的缺点,比如sharding模式分片越多,性能自然下降越多。

    不是所用的使用场景都必须上集群,要因地制宜。

    mongostat

    #
    mongostat -u admin -p Aa0123 --authenticationDatabase=admin

    mongotop

    #
    mongotop -u admin -p Aa0123 --authenticationDatabase=admin

    备份/恢复

    #备份所有表
    mongodump -h 172.18.92.170 --port 27017 -u 用户名 -p 密码 -o /usr/local/mongodb/bak/

    #恢复所有表
    mongorestore --port 27017 -u 用户名 -p 密码 --authenticationDatabase admin /usr/local/mongodb/bak/

    分页查询

    mongo的分页相关功能性能较差,针对这个问题经过研究发现在分页中skip数值越大性能就越低,符合条件的数据越多count性能就越低。针对这2个问题我们进行了详细的测试,共总结出2种效果不错的方案。

    方案一

    使用Top N的方式限制检索数量最大5000条,例如统计符合条件的报警记录条数:

    db.AlarmHistory.find({
    "did": {$in: [
    "10000000000000001000"
    ]},
    "createTime":{ "$gte":1636949672, "$lt":1637381672}
    }).limit(5000).count(true);

    通过limit(5000)限制统计最大值即为5000,从而提高了count效率,但也有一些局限性就是只能统计符合条件的最后5000条数据,而不是符合条件的全部数据。

    方案二

    通过加载更多的方式分页,即查询下一页时需要传递当前页的最后一条数据的序号,这样就绕过count统计,但这种方式的弊端在于页面不会显示总共多少条数据、共分多少页等数据。

    参考

    1. MongoDB教程
    - +这两种既有自己的优势也有自己的缺点,比如sharding模式分片越多,性能自然下降越多。

    不是所用的使用场景都必须上集群,要因地制宜。

    mongostat

    #
    mongostat -u admin -p Aa0123 --authenticationDatabase=admin

    mongotop

    #
    mongotop -u admin -p Aa0123 --authenticationDatabase=admin

    备份/恢复

    #备份所有表
    mongodump -h 172.18.92.170 --port 27017 -u 用户名 -p 密码 -o /usr/local/mongodb/bak/

    #恢复所有表
    mongorestore --port 27017 -u 用户名 -p 密码 --authenticationDatabase admin /usr/local/mongodb/bak/

    分页查询

    mongo的分页相关功能性能较差,针对这个问题经过研究发现在分页中skip数值越大性能就越低,符合条件的数据越多count性能就越低。针对这2个问题我们进行了详细的测试,共总结出2种效果不错的方案。

    方案一

    使用Top N的方式限制检索数量最大5000条,例如统计符合条件的报警记录条数:

    db.AlarmHistory.find({
    "did": {$in: [
    "10000000000000001000"
    ]},
    "createTime":{ "$gte":1636949672, "$lt":1637381672}
    }).limit(5000).count(true);

    通过limit(5000)限制统计最大值即为5000,从而提高了count效率,但也有一些局限性就是只能统计符合条件的最后5000条数据,而不是符合条件的全部数据。

    方案二

    通过加载更多的方式分页,即查询下一页时需要传递当前页的最后一条数据的序号,这样就绕过count统计,但这种方式的弊端在于页面不会显示总共多少条数据、共分多少页等数据。

    参考

    1. MongoDB教程
    + \ No newline at end of file diff --git a/docs/study/db/NoSQL/Redis/index.html b/docs/study/db/NoSQL/Redis/index.html index ad74c20da..068d5841e 100644 --- a/docs/study/db/NoSQL/Redis/index.html +++ b/docs/study/db/NoSQL/Redis/index.html @@ -11,14 +11,14 @@ - +

    Redis

    Redis 是什么

    redis 是一个开源的、使用 C 语言编写的、支持网络交互的、可基于内存也可持久化的 Key-Value 数据库。官网

    目前,Vmware 在资助着 redis 项目的开发和维护。

    redis 的作者,他叫 Salvatore Sanfilippo,网名是 antirez,去他的博客逛逛,地址是 antirez.com,当然也可以去 follow 他的 github,地址是http://github.com/antirez

    Redis 是 K-V 存储的典型代表,它是一款开源(基于 BSD 许可)的高性能 K-V 缓存和存储系统。Redis 的 Value 是具体的数据结构,包括 string、hash、list、set、sorted set、bitmap 和 hyperloglog,所以常常被称为数据结构服务器。

    Redis 数据结构

    redis 是一种高级的 key:value 存储系统,其中 value 支持五种数据类型:

    1. 字符串(strings)
    2. 字符串列表(lists)
    3. 字符串集合(sets)
    4. 有序字符串集合(sorted sets)
    5. 哈希(hashes)
      1. hashes 存的是字符串和字符串值之间的映射,比如一个用户要存储其全名、姓氏、年龄等等,就很适合使用哈希。

    key 的命名规则:

    1. key 不要太长,尽量不要超过 1024 字节,这不仅消耗内存,而且会降低查找的效率;
    2. key 也不要太短,太短的话,key 的可读性会降低;
    3. 在一个项目中,key 最好使用统一的命名模式,例如 user:10000:passwd。

    Redis 持久化

    redis 提供了两种持久化的方式,分别是 RDB(Redis DataBase)和 AOF(Append Only File)。

    RDB,简而言之,就是在不同的时间点,将 redis 存储的数据生成快照并存储到磁盘等介质上; -AOF,则是换了一个角度来实现持久化,那就是将 redis 执行过的所有写指令记录下来,在下次 redis 重新启动时,只要把这些写指令从前到后再重复执行一遍,就可以实现数据恢复了。

    其实 RDB 和 AOF 两种方式也可以同时使用,在这种情况下,如果 redis 重启的话,则会优先采用 AOF 方式来进行数据恢复,这是因为 AOF 方式的数据恢复完整度更高。

    如果你没有数据持久化的需求,也完全可以关闭 RDB 和 AOF 方式,这样的话,redis 将变成一个纯内存数据库,就像 memcache 一样。

    四种模式

    深入理解Redis的单机、主从、哨兵、集群四种模式

    单机

    主从

    像 MySQL 一样,redis 是支持主从同步的,而且也支持一主多从以及多级从结构。

    主从结构,一是为了纯粹的冗余备份,二是为了提升读性能,比如很消耗性能的 SORT 就可以由从服务器来承担。

    redis 的主从同步是异步进行的,这意味着主从同步不会影响主逻辑,也不会降低 redis 的处理性能。

    主从架构中,可以考虑关闭主服务器的数据持久化功能,只让从服务器进行持久化,这样可以提高主服务器的处理性能。

    在主从架构中,从服务器通常被设置为只读模式,这样可以避免从服务器的数据被误修改。但是从服务器仍然可以接受 CONFIG 等指令,所以还是不应该将从服务器直接暴露到不安全的网络环境中。如果必须如此,那可以考虑给重要指令进行重命名,来避免命令被外人误执行。

    哨兵

    集群

    参考资料

    - +AOF,则是换了一个角度来实现持久化,那就是将 redis 执行过的所有写指令记录下来,在下次 redis 重新启动时,只要把这些写指令从前到后再重复执行一遍,就可以实现数据恢复了。

    其实 RDB 和 AOF 两种方式也可以同时使用,在这种情况下,如果 redis 重启的话,则会优先采用 AOF 方式来进行数据恢复,这是因为 AOF 方式的数据恢复完整度更高。

    如果你没有数据持久化的需求,也完全可以关闭 RDB 和 AOF 方式,这样的话,redis 将变成一个纯内存数据库,就像 memcache 一样。

    四种模式

    深入理解Redis的单机、主从、哨兵、集群四种模式

    单机

    主从

    像 MySQL 一样,redis 是支持主从同步的,而且也支持一主多从以及多级从结构。

    主从结构,一是为了纯粹的冗余备份,二是为了提升读性能,比如很消耗性能的 SORT 就可以由从服务器来承担。

    redis 的主从同步是异步进行的,这意味着主从同步不会影响主逻辑,也不会降低 redis 的处理性能。

    主从架构中,可以考虑关闭主服务器的数据持久化功能,只让从服务器进行持久化,这样可以提高主服务器的处理性能。

    在主从架构中,从服务器通常被设置为只读模式,这样可以避免从服务器的数据被误修改。但是从服务器仍然可以接受 CONFIG 等指令,所以还是不应该将从服务器直接暴露到不安全的网络环境中。如果必须如此,那可以考虑给重要指令进行重命名,来避免命令被外人误执行。

    哨兵

    集群

    参考资料

    + \ No newline at end of file diff --git a/docs/study/db/OLAP/ClickHouse/index.html b/docs/study/db/OLAP/ClickHouse/index.html index 5581e8699..6039f372d 100644 --- a/docs/study/db/OLAP/ClickHouse/index.html +++ b/docs/study/db/OLAP/ClickHouse/index.html @@ -11,13 +11,13 @@ - +
    -

    ClickHouse

    Clickhouse是Yandex开源的一个用于实时数据分析的数据库,一开始就用在yandex内部的多个数据分析业务上。要介绍clickhouse,还是需要先介绍一下yandex。Clickhouse为什么会出现,其实和yandex的业务关系非常大。Yandex是俄罗斯最大的搜索引擎,会有很多数据分析的业务,其中数据量最大的业务,就是Yandex.Metrica,这是一个和百度统计类似的网站数据分析服务,数据量也仅次于google analysis。自从Clickhouse开源后,在国内外的很多公司的线上业务都已经开始使用。

    概述

    Clickhouse是极其适合OLAP(联机分析处理)问题的一个数据库。这类问题有如下一些特点:

    • 请求以读为主,数据添加、更新一般以批量的形式进行;
    • 表可以很宽,但是实际查询时只会用到有限的几列;
    • 列值较小,一般是数字或者短字符串;
    • 查询结果集的大小显著小于源数据;
    • 事务处理需求较弱
    - +

    ClickHouse

    Clickhouse是Yandex开源的一个用于实时数据分析的数据库,一开始就用在yandex内部的多个数据分析业务上。要介绍clickhouse,还是需要先介绍一下yandex。Clickhouse为什么会出现,其实和yandex的业务关系非常大。Yandex是俄罗斯最大的搜索引擎,会有很多数据分析的业务,其中数据量最大的业务,就是Yandex.Metrica,这是一个和百度统计类似的网站数据分析服务,数据量也仅次于google analysis。自从Clickhouse开源后,在国内外的很多公司的线上业务都已经开始使用。

    概述

    Clickhouse是极其适合OLAP(联机分析处理)问题的一个数据库。这类问题有如下一些特点:

    • 请求以读为主,数据添加、更新一般以批量的形式进行;
    • 表可以很宽,但是实际查询时只会用到有限的几列;
    • 列值较小,一般是数字或者短字符串;
    • 查询结果集的大小显著小于源数据;
    • 事务处理需求较弱
    + \ No newline at end of file diff --git a/docs/study/db/OLAP/Kylin/index.html b/docs/study/db/OLAP/Kylin/index.html index 9624371c2..ce9502dd4 100644 --- a/docs/study/db/OLAP/Kylin/index.html +++ b/docs/study/db/OLAP/Kylin/index.html @@ -11,13 +11,13 @@ - +
    -

    Kylin

    Apache Kylin™是一个开源的、分布式的分析型数据仓库,提供Hadoop/Spark 之上的 SQL 查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由 eBay 开发并贡献至开源社区。它能在亚秒内查询巨大的表。

    官网

    - +

    Kylin

    Apache Kylin™是一个开源的、分布式的分析型数据仓库,提供Hadoop/Spark 之上的 SQL 查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由 eBay 开发并贡献至开源社区。它能在亚秒内查询巨大的表。

    官网

    + \ No newline at end of file diff --git a/docs/study/db/OLAP/StarRocks/index.html b/docs/study/db/OLAP/StarRocks/index.html index 0843dc0fa..ae31afc52 100644 --- a/docs/study/db/OLAP/StarRocks/index.html +++ b/docs/study/db/OLAP/StarRocks/index.html @@ -11,13 +11,13 @@ - +
    -

    StarRocks

    背景信息

    Doris 最早是解决百度凤巢统计报表的专用系统,随着百度业务的飞速发展对系统进行了多次迭代,逐渐承担起百度内部业务的统计报表和多维分析需求。2013 年,我们把 Doris 进行了 MPP 框架的升级,并将新系统命名为 Palo ,2017 年我们以百度 Palo 的名字在 GitHub 上进行了开源,2018 年贡献给 Apache 基金会时,由于与国外数据库厂商重名,因此选择用回最初的名字,这就是 Apache Doris 的由来。

    2020 年 2 月,百度 Doris 团队的个别同学离职创业,基于 Apache Doris做了自己的商业化闭源产品 DorisDB ,这就是 StarRocks 的前身。

    【总结】Doris属于百度的,Apache Doris是有百度贡献给Apache 的,DorisDB是百度前员工基于Apache Doris做的商业版本属于另外的公司,后面因为版权的问题,将DorisDB改名为StarRocks,所以StarRocks和DorisDB是属于一个产品,一个公司的。不知道小伙伴,还记不记得另外一个产品的经历跟Doris的经历非常的相似,那就是presto。这里主要讲StarRocks,因为StarRocks更新迭代很快,活跃度也高。

    Apache Doris GitHub地址:https://github.com/apache/doris

    Apache Doris 官网文档:https://doris.apache.org/docs/get-starting/get-starting.html

    StarRocks GitHub地址:https://github.com/StarRocks/starrocks

    StarRocks官方文档:https://docs.starrocks.com/zh-cn/main/introduction/StarRocks_intro

    概述

    StarRocks 是一款高性能分析型数据仓库,使用向量化、MPP(Massively Parallel Processing:大规模并行处理) 架构、可实时更新的列式存储引擎等技术实现多维、实时、高并发的数据分析。StarRocks 既支持从各类实时和离线的数据源高效导入数据,也支持直接分析数据湖上各种格式的数据。StarRocks 兼容 MySQL 协议,可使用 MySQL 客户端和常用 BI 工具对接。同时 StarRocks 具备水平扩展,高可用,高可靠,易运维等特性。广泛应用于实时数仓、OLAP 报表、数据湖分析等场景。

    - +

    StarRocks

    背景信息

    Doris 最早是解决百度凤巢统计报表的专用系统,随着百度业务的飞速发展对系统进行了多次迭代,逐渐承担起百度内部业务的统计报表和多维分析需求。2013 年,我们把 Doris 进行了 MPP 框架的升级,并将新系统命名为 Palo ,2017 年我们以百度 Palo 的名字在 GitHub 上进行了开源,2018 年贡献给 Apache 基金会时,由于与国外数据库厂商重名,因此选择用回最初的名字,这就是 Apache Doris 的由来。

    2020 年 2 月,百度 Doris 团队的个别同学离职创业,基于 Apache Doris做了自己的商业化闭源产品 DorisDB ,这就是 StarRocks 的前身。

    【总结】Doris属于百度的,Apache Doris是有百度贡献给Apache 的,DorisDB是百度前员工基于Apache Doris做的商业版本属于另外的公司,后面因为版权的问题,将DorisDB改名为StarRocks,所以StarRocks和DorisDB是属于一个产品,一个公司的。不知道小伙伴,还记不记得另外一个产品的经历跟Doris的经历非常的相似,那就是presto。这里主要讲StarRocks,因为StarRocks更新迭代很快,活跃度也高。

    Apache Doris GitHub地址:https://github.com/apache/doris

    Apache Doris 官网文档:https://doris.apache.org/docs/get-starting/get-starting.html

    StarRocks GitHub地址:https://github.com/StarRocks/starrocks

    StarRocks官方文档:https://docs.starrocks.com/zh-cn/main/introduction/StarRocks_intro

    概述

    StarRocks 是一款高性能分析型数据仓库,使用向量化、MPP(Massively Parallel Processing:大规模并行处理) 架构、可实时更新的列式存储引擎等技术实现多维、实时、高并发的数据分析。StarRocks 既支持从各类实时和离线的数据源高效导入数据,也支持直接分析数据湖上各种格式的数据。StarRocks 兼容 MySQL 协议,可使用 MySQL 客户端和常用 BI 工具对接。同时 StarRocks 具备水平扩展,高可用,高可靠,易运维等特性。广泛应用于实时数仓、OLAP 报表、数据湖分析等场景。

    + \ No newline at end of file diff --git "a/docs/study/db/OLAP/\347\273\274\345\220\210\346\246\202\350\277\260/index.html" "b/docs/study/db/OLAP/\347\273\274\345\220\210\346\246\202\350\277\260/index.html" index d5384cde8..bfb6bdf12 100644 --- "a/docs/study/db/OLAP/\347\273\274\345\220\210\346\246\202\350\277\260/index.html" +++ "b/docs/study/db/OLAP/\347\273\274\345\220\210\346\246\202\350\277\260/index.html" @@ -11,13 +11,13 @@ - +
    -

    综合概述

    1. OLAP与OLTP的区别?

    OLTP(Online transaction processing):在线/联机事务处理。典型的OLTP类操作都比较简单,主要是对数据库中的数据进行增删改查,操作主体一般是产品的用户。

    OLAP(Online analytical processing):指联机分析处理。通过分析数据库中的数据来得出一些结论性的东西。比如给老总们看的报表,用于进行市场开拓的用户行为统计,不同维度的汇总分析结果等等。操作主体一般是运营、销售和市场等团队人员。

    单次OLTP处理的数据量比较小,所涉及的表非常有限,一般仅一两张表。而OLAP是为了从大量的数据中找出某种规律性的东西,经常用到count()、sum()和avg()等聚合方法,用于了解现状并为将来的计划/决策提供数据支撑,所以对多张表的数据进行连接汇总非常普遍。

    为了表示跟OLTP的数据库(database)在数据量和复杂度上的不同,一般称OLAP的操作对象为数据仓库(data warehouse),简称数仓。数据库仓库中的数据,往往来源于多个数据库,以及相应的业务日志。

    image.png

    参考

    1. OLAP与OLTP的区别
    - +

    综合概述

    1. OLAP与OLTP的区别?

    OLTP(Online transaction processing):在线/联机事务处理。典型的OLTP类操作都比较简单,主要是对数据库中的数据进行增删改查,操作主体一般是产品的用户。

    OLAP(Online analytical processing):指联机分析处理。通过分析数据库中的数据来得出一些结论性的东西。比如给老总们看的报表,用于进行市场开拓的用户行为统计,不同维度的汇总分析结果等等。操作主体一般是运营、销售和市场等团队人员。

    单次OLTP处理的数据量比较小,所涉及的表非常有限,一般仅一两张表。而OLAP是为了从大量的数据中找出某种规律性的东西,经常用到count()、sum()和avg()等聚合方法,用于了解现状并为将来的计划/决策提供数据支撑,所以对多张表的数据进行连接汇总非常普遍。

    为了表示跟OLTP的数据库(database)在数据量和复杂度上的不同,一般称OLAP的操作对象为数据仓库(data warehouse),简称数仓。数据库仓库中的数据,往往来源于多个数据库,以及相应的业务日志。

    image.png

    参考

    1. OLAP与OLTP的区别
    + \ No newline at end of file diff --git a/docs/study/db/SQL/MariaDB/index.html b/docs/study/db/SQL/MariaDB/index.html index b30fb49b9..0d5b49083 100644 --- a/docs/study/db/SQL/MariaDB/index.html +++ b/docs/study/db/SQL/MariaDB/index.html @@ -11,13 +11,13 @@ - +
    -

    MariaDB

    MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。

    - +

    MariaDB

    MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。

    + \ No newline at end of file diff --git "a/docs/study/db/SQL/MySQL-\347\254\224\350\256\260/index.html" "b/docs/study/db/SQL/MySQL-\347\254\224\350\256\260/index.html" index a52859fb6..21924ebc8 100644 --- "a/docs/study/db/SQL/MySQL-\347\254\224\350\256\260/index.html" +++ "b/docs/study/db/SQL/MySQL-\347\254\224\350\256\260/index.html" @@ -11,13 +11,13 @@ - +
    -

    MySQL 笔记

    WITH 查询

    MySQL 语句 WITH 是 MySQL 8.0 中的一个新特性,用于帮助简化复杂查询以及提高查询效率。在大多数情况下,查询都需要多次嵌套使用,这导致查询语句写得很长且难以维护。WITH 语句就是用来解决这个问题的,它是一种临时表的方式,得到的结果集可以作为查询的结果集。在 WITH 语句中,可以定义多个别名,然后嵌套使用。

    WITH t1 AS (
    SELECT col1 FROM table1
    ),
    t2 as (
    SELECT col1 FROM table2
    )
    --使用
    SELECT * FROM t1 INNER JOIN t2 ON t1.col1 = t2.col1;

    在这个例子中,我们定义了两张表,t1 和 t2,然后使用了这两张表来进行查询,这样我们就可以避免在查询语句中多次嵌套使用相同的子查询,并且也不需要为每个查询定义一个临时表。

    with 特性:

    • with 其实就是一个子查询抽取出来,换了一个别名
    • 和视图的区别:with as 等同于一次性视图,只会持续到下一个查询。在之后就不能再被引用
    • 主要用于简化复杂的 数据集 和 递归

    其实 WITH 表达式除了和 SELECT 一起用, 还可以有下面的组合:

    insert with 、with update、with delete、with with、with recursive(可以模拟数字、日期等序列)、WITH 可以定义多张表

    with_clause:
    WITH [RECURSIVE]
    cte_name [(col_name [, col_name] ...)] AS (subquery)
    [, cte_name [(col_name [, col_name] ...)] AS (subquery)] ...

    递归共用表达式 with recursive

    WITH RECURSIVE cte (n) AS
    (
    SELECT 1
    UNION ALL
    SELECT n + 1 FROM cte WHERE n < 5
    )
    SELECT * FROM cte;

    事件/定时任务

    -- 先检查是否开启 一般都是默认关闭的
    show variables like 'event%'
    set global event_scheduler=on;
    --
    CREATE EVENT handle_server_count_schedule
    ON SCHEDULE EVERY 10 SECOND
    STARTS '2024-03-13 00:00:00.000'
    ON COMPLETION NOT PRESERVE
    ENABLE
    DO begin
    update server_count set COUNT = COUNT + (FLOOR(RAND() * 100) + 1)
    where REGION_ID in(1,2) and TENANT_NAME in('联通信创云','浪潮政务云');
    END

    参考文档

    - +

    MySQL 笔记

    WITH 查询

    MySQL 语句 WITH 是 MySQL 8.0 中的一个新特性,用于帮助简化复杂查询以及提高查询效率。在大多数情况下,查询都需要多次嵌套使用,这导致查询语句写得很长且难以维护。WITH 语句就是用来解决这个问题的,它是一种临时表的方式,得到的结果集可以作为查询的结果集。在 WITH 语句中,可以定义多个别名,然后嵌套使用。

    WITH t1 AS (
    SELECT col1 FROM table1
    ),
    t2 as (
    SELECT col1 FROM table2
    )
    --使用
    SELECT * FROM t1 INNER JOIN t2 ON t1.col1 = t2.col1;

    在这个例子中,我们定义了两张表,t1 和 t2,然后使用了这两张表来进行查询,这样我们就可以避免在查询语句中多次嵌套使用相同的子查询,并且也不需要为每个查询定义一个临时表。

    with 特性:

    • with 其实就是一个子查询抽取出来,换了一个别名
    • 和视图的区别:with as 等同于一次性视图,只会持续到下一个查询。在之后就不能再被引用
    • 主要用于简化复杂的 数据集 和 递归

    其实 WITH 表达式除了和 SELECT 一起用, 还可以有下面的组合:

    insert with 、with update、with delete、with with、with recursive(可以模拟数字、日期等序列)、WITH 可以定义多张表

    with_clause:
    WITH [RECURSIVE]
    cte_name [(col_name [, col_name] ...)] AS (subquery)
    [, cte_name [(col_name [, col_name] ...)] AS (subquery)] ...

    递归共用表达式 with recursive

    WITH RECURSIVE cte (n) AS
    (
    SELECT 1
    UNION ALL
    SELECT n + 1 FROM cte WHERE n < 5
    )
    SELECT * FROM cte;

    事件/定时任务

    -- 先检查是否开启 一般都是默认关闭的
    show variables like 'event%'
    set global event_scheduler=on;
    --
    CREATE EVENT handle_server_count_schedule
    ON SCHEDULE EVERY 10 SECOND
    STARTS '2024-03-13 00:00:00.000'
    ON COMPLETION NOT PRESERVE
    ENABLE
    DO begin
    update server_count set COUNT = COUNT + (FLOOR(RAND() * 100) + 1)
    where REGION_ID in(1,2) and TENANT_NAME in('联通信创云','浪潮政务云');
    END

    参考文档

    + \ No newline at end of file diff --git a/docs/study/db/SQL/MySQL/index.html b/docs/study/db/SQL/MySQL/index.html index 033632ccd..aba57f7b2 100644 --- a/docs/study/db/SQL/MySQL/index.html +++ b/docs/study/db/SQL/MySQL/index.html @@ -11,7 +11,7 @@ - + @@ -29,8 +29,8 @@ 不同于上面各个 session 层次的 buffer,这个参数可以在控制台上修改。该参数是指用户内存临时表的大小,如果该 thread 创建的临时表超过它设置的大小会把临时表转换为磁盘上的一张 MyISAM 临时表。如果用户在执行事务时遇到类似如下这样的错误,可以考虑增大 tmp_table 的值。

    如何设置

    针对当前MySQL企业用户的实际环境(大内存):

    1. 在专用数据库服务器上,可以将innodb_buffer_pool_size设置为计算机物理内存大小的80%;
    2. 在innodb_buffer_pool_size设置比较大的情况下,可以将innodb_buffer_pool_instances的值设置为8-16,保证一个pool 10G以上。

    (注意innodb_buffer_pool_size必须为 innodb_buffer_pool_instances 的倍数)

    #通过SQL修改 重启后失效 2G
    set global innodb_buffer_pool_size = 2147483648

    #修改my.cnf配置 需要重启
    innodb_buffer_pool_size = 2147483648
    innodb_buffer_pool_size = 2G
    innodb_buffer_pool_size = 2048M

    查询优化

    #
    -- 查询缓存
    show variables where variable_name in (
    'have_query_cache','query_cache_limit','query_cache_min_res_unit','query_cache_size','query_cache_type','query_cache_wlock_invalidate'
    );
    1. have_query_cache:当前的MYSQL版本是否支持“查询缓存”功能。
    2. query_cache_min_res_unit:查询缓存分配的最小块(字节)。默认值是4096(4KB)。当查询进行时,MySQL把查询结果保存在query cache,但是如果保存的结果比较大,超过了query_cache_min_res_unit的值,这时候MySQL将一边检索结果,一边进行保存结果。他保存结果也是按默认大小先分配一块空间,如果不够,又要申请新的空间给他。如果查询结果比较小,默认的query_cache_min_res_unit可能造成大量的内存碎片,如果查询结果比较大,默认的query_cache_min_res_unit又不够,导致一直分配块空间,所以可以根据实际需求,调节query_cache_min_res_unit的大小。注:如果上面说的内容有点弯弯绕,那举个现实生活中的例子,比如咱现在要给运动员送水,默认的是500ml的瓶子,如果过来的是少年运动员,可能500ml太大了,他们喝不完,造成了浪费,那我们就可以选择300ml的瓶子,如果过来的是成年运动员,可能500ml不够,那他们一瓶喝完了,又开一瓶,直接不渴为止。那么那样开瓶子也要时间,我们就可以选择1000ml的瓶子。
    3. query_cache_size:为缓存查询结果分配的总内存。
    4. query_cache_type:默认为on。
    5. query_cache_wlock_invalidate:如果该表被锁住,是否返回缓存中的数据,默认是关闭的。

    MYSQL的查询缓存实质上是缓存SQL的hash值和该SQL的查询结果,如果运行相同的SQL,服务器直接从缓存中去掉结果,而不再去解析,优化,寻找最低成本的执行计划等一系列操作,大大提升了查询速度。 但是万事有利也有弊。

    • 第一个弊端就是如果表的数据有一条发生变化,那么缓存好的结果将全部不再有效。这对于频繁更新的表,查询缓存是不适合的。
    • 第二个弊端就是缓存机制是通过对SQL的hash,得出的值为key,查询结果为value来存放的,那么就意味着SQL必须完完全全一模一样,否则就命不中缓存。

    默认query_cache_type设置为OFF,其实网上资料和各大云厂商提供的云服务器都是将这个功能关闭的,从上面的原理来看,在一般情况下,他的弊端大于优点。

    冗余索引

    冗余索引指的是索引的功能相同,能够命中就肯定能命中 ,那么就是冗余索引如(name,city )和(name )这两个索引就是冗余索引,能够命中后者的查询肯定是能够命中前者的 在大多数情况下,都应该尽量扩展已有的索引而不是创建新索引。 MySQLS.7 版本后,可以通过查询 sys 库的 schema_redundant_indexes 表来查看冗余索引。

    存储引擎

    -- 查询当前数据库服务器支持的存储引擎列表
    show engines;
    -- 查看默认的存储引擎
    show variables like '%storage_engine%';
    -- 查看表的存储引擎及其他相关信息
    show table status like "table_name";

    MyISAM和InnoDB区别

    MyISAM是MySQL的默认数据库引擎(5.5版之前)。虽然性能极佳,而且提供了大量的特性,包括全文索引、压缩、空间函数等,但MyISAM不支持事务和行级锁,而且最大的缺陷就是崩溃后无法安全恢复。不过,5.5版本之后,MySQL引入了InnoDB(事务性数据库引擎),MySQL 5.5版本后默认的存储引擎为InnoDB。 -大多数时候我们使用的都是 InnoDB 存储引擎,但是在某些情况下使用 MyISAM 也是合适的比如读密集的情况下。(如果你不介意 MyISAM 崩溃回复问题的话)。

    两者的对比:

    1. 是否支持行级锁: MyISAM 只有表级锁(table-level locking),而InnoDB 支持行级锁(row-level locking)和表级锁,默认为行级锁。
    2. 是否支持事务和崩溃后的安全恢复:MyISAM强调的是性能,每次查询具有原子性,其执行比InnoDB类型更快,但是不提供事务支持。但是InnoDB提供事务支持事务,外部键等高级数据库功能。具有事务(commit)、回滚(rollback)和崩溃修复能力(crash recovery capabilities)的事务安全(transaction-safe (ACID compliant))型表。
    3. 是否支持外键:MyISAM不支持,而InnoDB支持。
    4. 是否支持MVCC:仅 InnoDB 支持。应对高并发事务, MVCC比单纯的加锁更高效;MVCC只在 READ COMMITTED和 REPEATABLE READ两个隔离级别下工作;MVCC可以使用 乐观(optimistic)锁 和 悲观(pessimistic)锁来实现;各数据库中MVCC实现并不统一。
    5. ......

    《MySQL高性能》上面有一句话这样写到:

    不要轻易相信“MyISAM比InnoDB快”之类的经验之谈,这个结论往往不是绝对的。在很多我们已知场景中,InnoDB的速度都可以让MyISAM望尘莫及,尤其是用到了聚簇索引,或者需要访问的数据都可以放入内存的应用。

    一般情况下我们选择 InnoDB 都是没有问题的,但是某事情况下你并不在乎可扩展能力和并发能力,也不需要事务支持,也不在乎崩溃后的安全恢复问题的话,选择MyISAM也是一个不错的选择。但是一般情况下,我们都是需要考虑到这些问题的。

    乐观锁与悲观锁的区别

    悲观锁

    总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。Java中synchronized和ReentrantLock等独占锁就是悲观锁思想的实现。

    乐观锁

    总是假设最好的情况,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使用版本号机制和CAS算法实现。乐观锁适用于多读的应用类型,这样可以提高吞吐量,像数据库提供的类似于write_condition机制,其实都是提供的乐观锁。在Java中java.util.concurrent.atomic包下面的原子变量类就是使用了乐观锁的一种实现方式CAS实现的。

    两种锁的使用场景

    从上面对两种锁的介绍,我们知道两种锁各有优缺点,不可认为一种好于另一种,像乐观锁适用于写比较少的情况下(多读场景),即冲突真的很少发生的时候,这样可以省去了锁的开销,加大了系统的整个吞吐量。但如果是多写的情况,一般会经常产生冲突,这就会导致上层应用会不断的进行retry,这样反倒是降低了性能,所以一般多写的场景下用悲观锁就比较合适。

    日志相关/Binlog等

    Binlog录入格式

    • 有三种格式,statement,row和mixed。
      • statement模式下,每一条会修改数据的sql都会记录在binlog中。不需要记录每一行的变化,减少了binlog日志量,节约了IO,提高性能。由于sql的执行是有上下文的,因此在保存的时候需要保存相关的信息,同时还有一些使用了函数之类的语句无法被记录复制。
      • row级别下,不记录sql语句上下文相关信息,仅保存哪条记录被修改。记录单元为每一行的改动,基本是可以全部记下来但是由于很多操作,会导致大量行的改动(比如alter table),因此这种模式的文件保存的信息太多,日志量太大。
      • mixed,一种折中的方案,普通操作使用statement记录,当无法使用statement的时候使用row。
    • 此外,新版的MySQL中对row级别也做了一些优化,当表结构发生变化的时候,会记录语句而不是逐行记录。

    参考

    1. MySQL 服务器中的 6 种日志类型

    占用磁盘大小/数据大小/索引大小

    -- 查看所有数据库数据大小和索引大小
    select TABLE_SCHEMA,
    concat(truncate(sum(data_length)/1024/1024,2),' MB') as data_size,
    sum(data_length) as data_size_B,
    concat(truncate(sum(index_length)/1024/1024,2),'MB') as index_size,
    sum(index_length) as index_size_B
    from information_schema.tables
    group by TABLE_SCHEMA
    order by data_size_B desc;

    -- 查看某个数据库所有数据表数据大小和索引大小
    select TABLE_NAME,
    concat(truncate(sum(data_length)/1024/1024,2),' MB') as data_size,
    sum(data_length) as data_size_B,
    concat(truncate(sum(index_length)/1024/1024,2),'MB') as index_size,
    sum(index_length) as index_size_B
    from information_schema.tables
    where TABLE_SCHEMA = 'newcloud'
    group by TABLE_NAME
    order by data_size_B desc;

    -- 查看某个数据库某个数据表数据大小和索引大小
    select TABLE_NAME,
    concat(truncate(sum(data_length)/1024/1024,2),' MB') as data_size,
    sum(data_length) as data_size_B,
    concat(truncate(sum(index_length)/1024/1024,2),'MB') as index_size,
    sum(index_length) as index_size_B
    from information_schema.tables
    where TABLE_SCHEMA = 'newcloud'
    and table_name='log_err_flow'
    group by TABLE_NAME
    order by data_size_B desc;

    优化

    1. 程序员进阶必读,万字总结Mysql优化精华篇
    - +大多数时候我们使用的都是 InnoDB 存储引擎,但是在某些情况下使用 MyISAM 也是合适的比如读密集的情况下。(如果你不介意 MyISAM 崩溃回复问题的话)。

    两者的对比:

    1. 是否支持行级锁: MyISAM 只有表级锁(table-level locking),而InnoDB 支持行级锁(row-level locking)和表级锁,默认为行级锁。
    2. 是否支持事务和崩溃后的安全恢复:MyISAM强调的是性能,每次查询具有原子性,其执行比InnoDB类型更快,但是不提供事务支持。但是InnoDB提供事务支持事务,外部键等高级数据库功能。具有事务(commit)、回滚(rollback)和崩溃修复能力(crash recovery capabilities)的事务安全(transaction-safe (ACID compliant))型表。
    3. 是否支持外键:MyISAM不支持,而InnoDB支持。
    4. 是否支持MVCC:仅 InnoDB 支持。应对高并发事务, MVCC比单纯的加锁更高效;MVCC只在 READ COMMITTED和 REPEATABLE READ两个隔离级别下工作;MVCC可以使用 乐观(optimistic)锁 和 悲观(pessimistic)锁来实现;各数据库中MVCC实现并不统一。
    5. ......

    《MySQL高性能》上面有一句话这样写到:

    不要轻易相信“MyISAM比InnoDB快”之类的经验之谈,这个结论往往不是绝对的。在很多我们已知场景中,InnoDB的速度都可以让MyISAM望尘莫及,尤其是用到了聚簇索引,或者需要访问的数据都可以放入内存的应用。

    一般情况下我们选择 InnoDB 都是没有问题的,但是某事情况下你并不在乎可扩展能力和并发能力,也不需要事务支持,也不在乎崩溃后的安全恢复问题的话,选择MyISAM也是一个不错的选择。但是一般情况下,我们都是需要考虑到这些问题的。

    乐观锁与悲观锁的区别

    悲观锁

    总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。Java中synchronized和ReentrantLock等独占锁就是悲观锁思想的实现。

    乐观锁

    总是假设最好的情况,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使用版本号机制和CAS算法实现。乐观锁适用于多读的应用类型,这样可以提高吞吐量,像数据库提供的类似于write_condition机制,其实都是提供的乐观锁。在Java中java.util.concurrent.atomic包下面的原子变量类就是使用了乐观锁的一种实现方式CAS实现的。

    两种锁的使用场景

    从上面对两种锁的介绍,我们知道两种锁各有优缺点,不可认为一种好于另一种,像乐观锁适用于写比较少的情况下(多读场景),即冲突真的很少发生的时候,这样可以省去了锁的开销,加大了系统的整个吞吐量。但如果是多写的情况,一般会经常产生冲突,这就会导致上层应用会不断的进行retry,这样反倒是降低了性能,所以一般多写的场景下用悲观锁就比较合适。

    日志相关/Binlog等

    Binlog录入格式

    • 有三种格式,statement,row和mixed。
      • statement模式下,每一条会修改数据的sql都会记录在binlog中。不需要记录每一行的变化,减少了binlog日志量,节约了IO,提高性能。由于sql的执行是有上下文的,因此在保存的时候需要保存相关的信息,同时还有一些使用了函数之类的语句无法被记录复制。
      • row级别下,不记录sql语句上下文相关信息,仅保存哪条记录被修改。记录单元为每一行的改动,基本是可以全部记下来但是由于很多操作,会导致大量行的改动(比如alter table),因此这种模式的文件保存的信息太多,日志量太大。
      • mixed,一种折中的方案,普通操作使用statement记录,当无法使用statement的时候使用row。
    • 此外,新版的MySQL中对row级别也做了一些优化,当表结构发生变化的时候,会记录语句而不是逐行记录。

    参考

    1. MySQL 服务器中的 6 种日志类型

    占用磁盘大小/数据大小/索引大小

    -- 查看所有数据库数据大小和索引大小
    select TABLE_SCHEMA,
    concat(truncate(sum(data_length)/1024/1024,2),' MB') as data_size,
    sum(data_length) as data_size_B,
    concat(truncate(sum(index_length)/1024/1024,2),'MB') as index_size,
    sum(index_length) as index_size_B
    from information_schema.tables
    group by TABLE_SCHEMA
    order by data_size_B desc;

    -- 查看某个数据库所有数据表数据大小和索引大小
    select TABLE_NAME,
    concat(truncate(sum(data_length)/1024/1024,2),' MB') as data_size,
    sum(data_length) as data_size_B,
    concat(truncate(sum(index_length)/1024/1024,2),'MB') as index_size,
    sum(index_length) as index_size_B
    from information_schema.tables
    where TABLE_SCHEMA = 'newcloud'
    group by TABLE_NAME
    order by data_size_B desc;

    -- 查看某个数据库某个数据表数据大小和索引大小
    select TABLE_NAME,
    concat(truncate(sum(data_length)/1024/1024,2),' MB') as data_size,
    sum(data_length) as data_size_B,
    concat(truncate(sum(index_length)/1024/1024,2),'MB') as index_size,
    sum(index_length) as index_size_B
    from information_schema.tables
    where TABLE_SCHEMA = 'newcloud'
    and table_name='log_err_flow'
    group by TABLE_NAME
    order by data_size_B desc;

    优化

    1. 程序员进阶必读,万字总结Mysql优化精华篇
    + \ No newline at end of file diff --git a/docs/study/db/SQL/OpenGauss/index.html b/docs/study/db/SQL/OpenGauss/index.html index 97d7ecd98..a037fcbc0 100644 --- a/docs/study/db/SQL/OpenGauss/index.html +++ b/docs/study/db/SQL/OpenGauss/index.html @@ -11,13 +11,13 @@ - +
    -

    OpenGauss

    官网 https://opengauss.org/zh/

    对标的是PostgreSQL

    修改最大连接数报错

    2024-05-14 10:02:06.004 [unknown] [unknown] localhost 140450292528512 0[0:0#0]  0 [CACHE] LOG:  set data cache  size(402653184)
    2024-05-14 10:02:06.247 [unknown] [unknown] localhost 140450292528512 0[0:0#0] 0 [BACKEND] FATAL: could not create semaphores: No space left on device
    2024-05-14 10:02:06.247 [unknown] [unknown] localhost 140450292528512 0[0:0#0] 0 [BACKEND] DETAIL: Failed system call was semget(5432129, 17, 03600).
    2024-05-14 10:02:06.247 [unknown] [unknown] localhost 140450292528512 0[0:0#0] 0 [BACKEND] HINT: This error does *not* mean that you have run out of disk space. It occurs when either the system limit for the maximum number of semaphore sets (SEMMNI), or the system wide maximum number of semaphores (SEMMNS), would be exceeded. You need to raise the respective kernel parameter. Alternatively, reduce openGauss's consumption of semaphores by reducing its max_connections parameter.
    The openGauss documentation contains more information about configuring your system for openGauss.
    2024-05-14 10:02:06.247 [unknown] [unknown] localhost 140450292528512 0[0:0#0] 0 [BACKEND] BACKTRACELOG: tid[1]'s backtrace:
    gaussdb(+0xe3a41e) [0x55c87d3c041e]
    gaussdb(_Z9errfinishiz+0x441) [0x55c87d3b8651]
    gaussdb(+0xbb6618) [0x55c87d13c618]
    gaussdb(_Z17PGSemaphoreCreateP15PGSemaphoreData+0x9c) [0x55c87d13c93c]
    gaussdb(_Z14InitProcGlobalv+0x7dd) [0x55c87e18bddd]
    gaussdb(_Z31CreateSharedMemoryAndSemaphoresbi+0x3a5) [0x55c87e165605]
    gaussdb(_Z14PostmasterMainiPPc+0x183f) [0x55c87d982a4f]
    gaussdb(main+0x3f2) [0x55c87ce545f2]
    /usr/lib64/libc.so.6(+0x2d210) [0x7fbd21d16210]
    /usr/lib64/libc.so.6(__libc_start_main+0x7c) [0x7fbd21d162bc]
    gaussdb(_start+0x25) [0x55c87cec57f5]
    Use addr2line to get pretty function name and line

    2024-05-14 10:02:06.342 [unknown] [unknown] localhost 140450292528512 0[0:0#0] 0 [BACKEND] LOG: FiniNuma allocIndex: 0.
    [root@f37c6d33715e /]# ipcs -ls

    ------ Semaphore Limits --------
    max number of arrays = 128
    max semaphores per array = 250
    max semaphores system wide = 32000
    max ops per semop call = 32
    semaphore max value = 32767

    [root@f37c6d33715e /]# cat /proc/sys/kernel/sem
    250 32000 32 128
    修改 vi /etc/sysctl.conf 的以下参数
    kernel.sem = 50100 128256000 50100 2560
    sysctl -p 生效
    重启数据库即可
    docker cp ./postgresql.conf f37c6d33715e:/var/lib/opengauss/data/postgresql.conf
    docker cp ./sysctl.conf f37c6d33715e:/etc/sysctl.conf
    docker restart f37c6d33715e
    docker ps -a | grep opengauss
    /var/lib/opengauss/data/postgresql.conf
    - +

    OpenGauss

    官网 https://opengauss.org/zh/

    对标的是PostgreSQL

    修改最大连接数报错

    2024-05-14 10:02:06.004 [unknown] [unknown] localhost 140450292528512 0[0:0#0]  0 [CACHE] LOG:  set data cache  size(402653184)
    2024-05-14 10:02:06.247 [unknown] [unknown] localhost 140450292528512 0[0:0#0] 0 [BACKEND] FATAL: could not create semaphores: No space left on device
    2024-05-14 10:02:06.247 [unknown] [unknown] localhost 140450292528512 0[0:0#0] 0 [BACKEND] DETAIL: Failed system call was semget(5432129, 17, 03600).
    2024-05-14 10:02:06.247 [unknown] [unknown] localhost 140450292528512 0[0:0#0] 0 [BACKEND] HINT: This error does *not* mean that you have run out of disk space. It occurs when either the system limit for the maximum number of semaphore sets (SEMMNI), or the system wide maximum number of semaphores (SEMMNS), would be exceeded. You need to raise the respective kernel parameter. Alternatively, reduce openGauss's consumption of semaphores by reducing its max_connections parameter.
    The openGauss documentation contains more information about configuring your system for openGauss.
    2024-05-14 10:02:06.247 [unknown] [unknown] localhost 140450292528512 0[0:0#0] 0 [BACKEND] BACKTRACELOG: tid[1]'s backtrace:
    gaussdb(+0xe3a41e) [0x55c87d3c041e]
    gaussdb(_Z9errfinishiz+0x441) [0x55c87d3b8651]
    gaussdb(+0xbb6618) [0x55c87d13c618]
    gaussdb(_Z17PGSemaphoreCreateP15PGSemaphoreData+0x9c) [0x55c87d13c93c]
    gaussdb(_Z14InitProcGlobalv+0x7dd) [0x55c87e18bddd]
    gaussdb(_Z31CreateSharedMemoryAndSemaphoresbi+0x3a5) [0x55c87e165605]
    gaussdb(_Z14PostmasterMainiPPc+0x183f) [0x55c87d982a4f]
    gaussdb(main+0x3f2) [0x55c87ce545f2]
    /usr/lib64/libc.so.6(+0x2d210) [0x7fbd21d16210]
    /usr/lib64/libc.so.6(__libc_start_main+0x7c) [0x7fbd21d162bc]
    gaussdb(_start+0x25) [0x55c87cec57f5]
    Use addr2line to get pretty function name and line

    2024-05-14 10:02:06.342 [unknown] [unknown] localhost 140450292528512 0[0:0#0] 0 [BACKEND] LOG: FiniNuma allocIndex: 0.
    [root@f37c6d33715e /]# ipcs -ls

    ------ Semaphore Limits --------
    max number of arrays = 128
    max semaphores per array = 250
    max semaphores system wide = 32000
    max ops per semop call = 32
    semaphore max value = 32767

    [root@f37c6d33715e /]# cat /proc/sys/kernel/sem
    250 32000 32 128
    修改 vi /etc/sysctl.conf 的以下参数
    kernel.sem = 50100 128256000 50100 2560
    sysctl -p 生效
    重启数据库即可
    docker cp ./postgresql.conf f37c6d33715e:/var/lib/opengauss/data/postgresql.conf
    docker cp ./sysctl.conf f37c6d33715e:/etc/sysctl.conf
    docker restart f37c6d33715e
    docker ps -a | grep opengauss
    /var/lib/opengauss/data/postgresql.conf
    + \ No newline at end of file diff --git a/docs/study/db/SQL/PostgreSQL/index.html b/docs/study/db/SQL/PostgreSQL/index.html index 9ceff5fab..001ddd600 100644 --- a/docs/study/db/SQL/PostgreSQL/index.html +++ b/docs/study/db/SQL/PostgreSQL/index.html @@ -11,13 +11,13 @@ - +
    -

    PostgreSQL

    简介

    PostgreSQL (也叫 Postgres)是一个自由的对象-关系数据库服务器(数据库管理系统),它在灵活的 BSD-风格许可证下发行。它提供了相对其他开放源代码数据库系统(比如 MySQL 和 Firebird),和对专有系统比如 Oracle、Sybase、IBM 的 DB2 和 Microsoft SQL Server的一种选择。

    PostgreSQL 的 Slogan(口号) 是 "世界上最先进的开源关系型数据库"。

    PostGIS

    PostGIS在对象关系型数据库PostgreSQL上增加了存储管理空间数据的能力,相当于Oracle的spatial部分。PostGIS最大的特点是符合并且实现了OpenGIS的一些规范,是最著名的开源GIS数据库。

    PostGIS通过向PostgreSQL添加对空间数据类型、空间索引和空间函数的支持,将PostgreSQL数据库管理系统转换为空间数据库。

    因为PostGIS是建立在PostgreSQL之上的,所以PostGIS自动继承了重要的"企业级"特性以及开放源代码的标准。

    可以说PostGIS仅仅只是PostgreSQL的一个插件,但是它将PostgreSQL变成了一个强大的空间数据库!

    问题描述:

    对车辆的位置信息进行存储,查询车辆的行驶轨迹和里程。

    安装postgres

    #
    docker pull postgres:11.19-bullseye
    #
    docker run \
    --privileged=true \
    --restart=always \
    --name postgres \
    -e POSTGRES_PASSWORD=Aa0123 \
    -p 5432:5432 \
    -v /mnt/docker/postgresql/data:/var/lib/postgresql/data \
    -d postgres:11.19-bullseye
    # 发现使用DBeaver连接不上,需要修改/mnt/docker/postgresql/data/pg_hba.conf
    # 增加一行host all all 192.168.41.69/32 trust
    # 192.168.41.69是我自己的ip

    # 在ubuntu上安装
    sudo apt-get install postgresql -y
    sudo systemctl status postgresql
    #
    passwd postgres
    #
    su - postgres
    #
    pgsql
    #
    \password postgres
    # 查看所有数据库
    \l
    # 创建数据库
    create database xxx with owner=postgres encoding='UTF-8';

    mysql迁移到postgres

    mysql迁移到opengauss 就相当于 mysql迁移到postgres

    # 在ubuntu上安装
    sudo apt-get install pgloader -y
    # 注意密码的使用,如果携带特殊字符@,可以用两个@标识
    pgloader mysql://root:yyyyyyyyy@10.20.37.101:3306/ccsp_common pgsql://postgres:yyyyyyyyyy@127.0.0.1:5432/class

    参考文档 https://pgloader.readthedocs.io/en/latest/ref/mysql.html#using-default-settings

    - +

    PostgreSQL

    简介

    PostgreSQL (也叫 Postgres)是一个自由的对象-关系数据库服务器(数据库管理系统),它在灵活的 BSD-风格许可证下发行。它提供了相对其他开放源代码数据库系统(比如 MySQL 和 Firebird),和对专有系统比如 Oracle、Sybase、IBM 的 DB2 和 Microsoft SQL Server的一种选择。

    PostgreSQL 的 Slogan(口号) 是 "世界上最先进的开源关系型数据库"。

    PostGIS

    PostGIS在对象关系型数据库PostgreSQL上增加了存储管理空间数据的能力,相当于Oracle的spatial部分。PostGIS最大的特点是符合并且实现了OpenGIS的一些规范,是最著名的开源GIS数据库。

    PostGIS通过向PostgreSQL添加对空间数据类型、空间索引和空间函数的支持,将PostgreSQL数据库管理系统转换为空间数据库。

    因为PostGIS是建立在PostgreSQL之上的,所以PostGIS自动继承了重要的"企业级"特性以及开放源代码的标准。

    可以说PostGIS仅仅只是PostgreSQL的一个插件,但是它将PostgreSQL变成了一个强大的空间数据库!

    问题描述:

    对车辆的位置信息进行存储,查询车辆的行驶轨迹和里程。

    安装postgres

    #
    docker pull postgres:11.19-bullseye
    #
    docker run \
    --privileged=true \
    --restart=always \
    --name postgres \
    -e POSTGRES_PASSWORD=Aa0123 \
    -p 5432:5432 \
    -v /mnt/docker/postgresql/data:/var/lib/postgresql/data \
    -d postgres:11.19-bullseye
    # 发现使用DBeaver连接不上,需要修改/mnt/docker/postgresql/data/pg_hba.conf
    # 增加一行host all all 192.168.41.69/32 trust
    # 192.168.41.69是我自己的ip

    # 在ubuntu上安装
    sudo apt-get install postgresql -y
    sudo systemctl status postgresql
    #
    passwd postgres
    #
    su - postgres
    #
    pgsql
    #
    \password postgres
    # 查看所有数据库
    \l
    # 创建数据库
    create database xxx with owner=postgres encoding='UTF-8';

    mysql迁移到postgres

    mysql迁移到opengauss 就相当于 mysql迁移到postgres

    # 在ubuntu上安装
    sudo apt-get install pgloader -y
    # 注意密码的使用,如果携带特殊字符@,可以用两个@标识
    pgloader mysql://root:yyyyyyyyy@10.20.37.101:3306/ccsp_common pgsql://postgres:yyyyyyyyyy@127.0.0.1:5432/class

    参考文档 https://pgloader.readthedocs.io/en/latest/ref/mysql.html#using-default-settings

    + \ No newline at end of file diff --git "a/docs/study/db/SQL/\347\273\274\345\220\210\346\246\202\350\277\260/index.html" "b/docs/study/db/SQL/\347\273\274\345\220\210\346\246\202\350\277\260/index.html" index dd04518d3..ba09dae0b 100644 --- "a/docs/study/db/SQL/\347\273\274\345\220\210\346\246\202\350\277\260/index.html" +++ "b/docs/study/db/SQL/\347\273\274\345\220\210\346\246\202\350\277\260/index.html" @@ -11,14 +11,14 @@ - +

    综合概述

    背景

    随着互联网的不断普及特别是移动互联网的兴起,数据规模爆炸式增长,而硬件这些年的进步速度却在逐渐减慢,人们也在担心摩尔定律会失效。在此消彼长的情况下,单机数据库越来越难以满足用户需求,即使是将数据保存下来这个最基本的需求。

    分布式数据库

    所以 2005 年左右,人们开始探索分布式数据库,带起了 NoSQL 这波浪潮。这些数据库解决的首要问题是单机上无法保存全部数据,其中以 HBase/Cassadra/MongoDB 为代表。为了实现容量的水平扩展,这些数据库往往要放弃事务,或者是只提供简单的 KV 接口。存储模型的简化为存储系统的开发带来了便利,但是降低了对业务的支撑。

    NoSQL的进击

    HBase 是其中的典型代表。 HBase 是 Hadoop 生态中的重要产品,Google BigTable 的开源实现,所以这里先说一下 BigTable 。

    BigTable 是 Google 内部使用的分布式数据库,构建在 GFS 的基础上,弥补了分布式文件系统对于小对象的插入、更新、随机读请求的缺陷。HBase 也按照这个架构实现,底层基于HDFS 。 HBase 本身并不实际存储数据,持久化的日志和 SST file 存储在 HDFS 上,Region Server 通过 MemTable 提供快速的查询,写入都是先写日志,后台进行Compact ,将随机写转换为顺序写。数据通过 Region 在逻辑上进行分割,负载均衡通过调节各个 Region Server 负责的Region区间实现,Region在 持续写入后,会进行分裂,然后被负载均衡策略调度到多个 Region Server 上。

    前面提到了, HBase 本身并不存储数据,这里的 Region 仅是逻辑上的概念,数据还是以文件的形式存储在 HDFS 上,HBase 并不关心副本个数、位置以及水平扩展问题,这些都依赖于 HDFS 实现。和 BigTable 一样, HBase 提供行级的一致性,从 CAP 理论的角度来看,它是一个 CP 的系统,并且没有更进一步提供 ACID 的跨行事务,也是很遗憾。

    HBase 的优势在于通过扩展 Region Server 可以几乎线性提升系统的吞吐,及 HDFS 本身就具有的水平扩展能力,且整个系统成熟稳定。但 HBase 依然有一些不足。首先, Hadoop 使用 Java 开发, GC 延迟是一个无法避免问题,这对系统的延迟造成一些影响。另外,由于HBase 本身并不存储数据,和 HDFS 之间的交互会多一层性能损耗。第三, HBase 和BigTable 一样,并不支持跨行事务,所以在 Google 内部有团队开发了 MegaStore 、 Percolator 这些基于 BigTable 的事务层。 Jeff Dean 承认很后悔没有在 BigTable 中加入跨行事务,这也是 Spanner 出现的一个原因。

    RDMS 的救赎

    除了 NoSQL 之外, RDMS 系统也做了不少努力来适应业务的变化,也就是关系型数据库的中间件和分库分表方案。做一款中间件需要考虑很多,比如解析 SQL ,解析出 ShardKey ,然后根据 ShardKey 分发请求,再合并结果。另外在中间件这层还需要维护 Session 及事务状态,而且大多数方案并不支持跨 shard 的事务,这就不可避免地导致了业务使用起来会比较麻烦,需要自己维护事务状态。此外,还有动态的扩容缩容和自动的故障恢复,在集群规模越来越大的情况下,运维和 DDL 的复杂度是指数级上升。

    国内开发者在这个领域有过很多的著名的项目,比如阿里的 Cobar 、 TDDL ,后来社区基于Cobar 改进的 MyCAT , 360 开源的 Atlas 等,都属于这一类中间件产品。在中间件这个方案上有一个知名的开源项目是 Youtube 的 Vitess ,这是一个集大成的中间件产品,内置了热数据缓存、水平动态分片、读写分离等,但这也造成了整个项目非常复杂。

    另外一个值得一提的是 PostgreSQL XC 这个项目,其整体的架构有点像早期版本的OceanBase ,由一个中央节点来处理协调分布式事务,数据分散在各个存储节点上,应该是目前 PG 社区最好的分布式扩展方案,不少人在基于这个项目做自己的系统。

    关系型数据库中间件

    RDMS的救赎就是关系型数据库中间件产生的原因。

    NewSQL的发展

    2012 ~ 2013 年 Google 相继发表了 Spanner 和 F1 两套系统的论文,让业界第一次看到了关系模型和 NoSQL 的扩展性在一个大规模生产系统上融合的可能性。 Spanner 通过使用硬件设备( GPS 时钟+原子钟)巧妙地解决时钟同步的问题,而在分布式系统里,时钟正是最让人头痛的问题。Spanner 的强大之处在于即使两个数据中心隔得非常远,也能保证通过TrueTime API 获取的时间误差在一个很小的范围内( 10ms ),并且不需要通讯。 Spanner 的底层仍然基于分布式文件系统,不过论文里也说是可以未来优化的点。

    Google 的内部的数据库存储业务,大多是 3 ~ 5 副本,重要的数据需要 7 副本,且这些副本遍布全球各大洲的数据中心,由于普遍使用了Paxos ,延迟是可以缩短到一个可以接受的范围(写入延迟 100 ms以上),另外由 Paxos 带来的 Auto-Failover 能力,更是让整个集群即使数据中心瘫痪,业务层都是透明无感知的。 F1 是构建在 Spanner 之上,对外提供了 SQL 接口, F1 是一个分布式 MPP SQL 层,其本身并不存储数据,而是将客户端的 SQL 翻译成对KV 的操作,调用 Spanner 来完成请求。

    Spanner 和 F1 的出现标志着第一个 NewSQL 在生产环境中提供服务,将下面几个功能在一套系统中提供:

    1. SQL 支持
    2. ACID 事务
    3. 水平扩展
    4. Auto Failover
    5. 多机房异地容灾

    正因为具备如此多的诱人特性,在 Google 内部,大量的业务已经从原来的 BigTable 切换到Spanner 之上。相信这对业界的思路会有巨大的影响,就像当年的 Hadoop 一样, Google 的基础软件的技术趋势是走在社区前面的。 -Spanner/F1 论文引起了社区的广泛的关注,很快开始出现了追随者。第一个团队是CockroachLabs 做的 CockroachDB 。 CockroachDB 的设计和 Spanner 很像,但是没有选择 TrueTime API ,而是使用 HLC( Hybrid logical clock ),也就是 NTP +逻辑时钟来代替 TrueTime 时间戳,另外 CockroachDB 选用 Raft 做数据复制协议,底层存储落地在RocksDB 中,对外的接口选择了 PG 协议。

    CockroachDB 的技术选型比较激进,比如依赖了 HLC 来做事务,时间戳的精确度并没有办法做到 10 ms内的延迟,所以 Commit Wait 需要用户自己指定,其选择取决于用户的 NTP 服务时钟误差,这点对于用户来说非常不友好。当然 CockroachDB 的这些技术选择也带来了很好的易用性,所有逻辑都在一个组件中,部署非常简单,这个是非常大的优点。

    - +Spanner/F1 论文引起了社区的广泛的关注,很快开始出现了追随者。第一个团队是CockroachLabs 做的 CockroachDB 。 CockroachDB 的设计和 Spanner 很像,但是没有选择 TrueTime API ,而是使用 HLC( Hybrid logical clock ),也就是 NTP +逻辑时钟来代替 TrueTime 时间戳,另外 CockroachDB 选用 Raft 做数据复制协议,底层存储落地在RocksDB 中,对外的接口选择了 PG 协议。

    CockroachDB 的技术选型比较激进,比如依赖了 HLC 来做事务,时间戳的精确度并没有办法做到 10 ms内的延迟,所以 Commit Wait 需要用户自己指定,其选择取决于用户的 NTP 服务时钟误差,这点对于用户来说非常不友好。当然 CockroachDB 的这些技术选择也带来了很好的易用性,所有逻辑都在一个组件中,部署非常简单,这个是非常大的优点。

    + \ No newline at end of file diff --git "a/docs/study/db/SQL/\350\276\276\346\242\246/index.html" "b/docs/study/db/SQL/\350\276\276\346\242\246/index.html" index 078743634..505738243 100644 --- "a/docs/study/db/SQL/\350\276\276\346\242\246/index.html" +++ "b/docs/study/db/SQL/\350\276\276\346\242\246/index.html" @@ -11,13 +11,13 @@ - +
    -

    达梦数据库

    为了保证数据库系统的安全性,DM 数据库采用“三权分立”或“四权分立”的安全机制,“三权分立”时系统内置三种系统管理员,包括数据库管理员、数据库安全员和数据库审计员,“四权分立”时新增了一类用户,称为数据库对象操作员。它们各司其职,互相制约,有效地避免了将所有权限集中于一人的风险,保证了系统的安全性。

    需要说明的是,在 DM 数据库中有一个特殊的预定义用户“SYS”,此用户仅用于保存系统内部对象,并非数据库管理员,也无法进行登录。

    三权分立的用户设计的原子,参考https://eco.dameng.com/document/dm/zh-cn/pm/system-administrator.html

    官网 https://www.dameng.com/

    对标的是Oracle

    参考

    - +

    达梦数据库

    为了保证数据库系统的安全性,DM 数据库采用“三权分立”或“四权分立”的安全机制,“三权分立”时系统内置三种系统管理员,包括数据库管理员、数据库安全员和数据库审计员,“四权分立”时新增了一类用户,称为数据库对象操作员。它们各司其职,互相制约,有效地避免了将所有权限集中于一人的风险,保证了系统的安全性。

    需要说明的是,在 DM 数据库中有一个特殊的预定义用户“SYS”,此用户仅用于保存系统内部对象,并非数据库管理员,也无法进行登录。

    三权分立的用户设计的原子,参考https://eco.dameng.com/document/dm/zh-cn/pm/system-administrator.html

    官网 https://www.dameng.com/

    对标的是Oracle

    参考

    + \ No newline at end of file diff --git a/docs/study/db/index.html b/docs/study/db/index.html index 9e37bd358..678267ddc 100644 --- a/docs/study/db/index.html +++ b/docs/study/db/index.html @@ -11,13 +11,13 @@ - +
    -

    概述

    存储数据的服务统一成为数据库,包括但不限于:

    • 关系数据库 msyql、oracle 等
    • 非关系数据库 redis、MongoDB 等
    - +

    概述

    存储数据的服务统一成为数据库,包括但不限于:

    • 关系数据库 msyql、oracle 等
    • 非关系数据库 redis、MongoDB 等
    + \ No newline at end of file diff --git "a/docs/study/db/\345\205\250\346\226\207\346\220\234\347\264\242\345\274\225\346\223\216/Elasticsearch/index.html" "b/docs/study/db/\345\205\250\346\226\207\346\220\234\347\264\242\345\274\225\346\223\216/Elasticsearch/index.html" index faf79bb22..ae3246121 100644 --- "a/docs/study/db/\345\205\250\346\226\207\346\220\234\347\264\242\345\274\225\346\223\216/Elasticsearch/index.html" +++ "b/docs/study/db/\345\205\250\346\226\207\346\220\234\347\264\242\345\274\225\346\223\216/Elasticsearch/index.html" @@ -11,7 +11,7 @@ - + @@ -23,8 +23,8 @@ http://127.0.0.1:9200/{具体的索引库}/_forcemerge?only_expunge_deletes=true \ -H "Content-Type: application/json" \ -d '{}'


    ## 近实时搜索/refresh

    在 Elasticsearch 中,写入和打开一个新段的轻量的过程叫做 refresh 。 默认情况下每个分片会每秒自动刷新一次。这就是为什么我们说 Elasticsearch 是 近 实时搜索: 文档的变化并不是立即对搜索可见,但会在一秒之内变为可见。

    这些行为可能会对新用户造成困惑: 他们索引了一个文档然后尝试搜索它,但却没有搜到。这个问题的解决办法是用 refresh API 执行一次手动刷新:
    ```shell
    POST /_refresh
    POST /blogs/_refresh

    es访问权限

    因为开源的es是不带访问权限控制的,并不能用于生产环境;商业版插件x-pack是支持用户权限的,但是收费。 -可以使用nginx增加访问权限来方向代理es,但是es的9200/9300端口不能外网开放;

    #安装httpd-tools
    yum install httpd-tools
    mkdir /usr/local/nginx/conf/passwd
    htpasswd -c /usr/local/nginx/conf/passwd/es admin
    #nginx配置反向代理增加
    server
    {
    listen 8443;
    location / {
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_pass http://172.17.0.1:9200;
    proxy_connect_timeout 18000;
    proxy_send_timeout 18000;
    proxy_read_timeout 18000;
    #
    auth_basic "Please input password";
    auth_basic_user_file /usr/local/nginx/conf/passwd/es;
    }
    }

    GEOIP

    #
    yum install GeoIP-data -y

    相关资料

    1. 从零学Elasticsearch系列——JAVA API操作
    2. 如何把Elasticsearch发挥到极致?
    3. ebatis【ebatis 是一个简单方便上手的 Elasticsearch ORM 框架】
    - +可以使用nginx增加访问权限来方向代理es,但是es的9200/9300端口不能外网开放;

    #安装httpd-tools
    yum install httpd-tools
    mkdir /usr/local/nginx/conf/passwd
    htpasswd -c /usr/local/nginx/conf/passwd/es admin
    #nginx配置反向代理增加
    server
    {
    listen 8443;
    location / {
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_pass http://172.17.0.1:9200;
    proxy_connect_timeout 18000;
    proxy_send_timeout 18000;
    proxy_read_timeout 18000;
    #
    auth_basic "Please input password";
    auth_basic_user_file /usr/local/nginx/conf/passwd/es;
    }
    }

    GEOIP

    #
    yum install GeoIP-data -y

    相关资料

    1. 从零学Elasticsearch系列——JAVA API操作
    2. 如何把Elasticsearch发挥到极致?
    3. ebatis【ebatis 是一个简单方便上手的 Elasticsearch ORM 框架】
    + \ No newline at end of file diff --git "a/docs/study/db/\345\205\250\346\226\207\346\220\234\347\264\242\345\274\225\346\223\216/\347\273\274\345\220\210\346\246\202\350\277\260/index.html" "b/docs/study/db/\345\205\250\346\226\207\346\220\234\347\264\242\345\274\225\346\223\216/\347\273\274\345\220\210\346\246\202\350\277\260/index.html" index 69cd6587e..e31206758 100644 --- "a/docs/study/db/\345\205\250\346\226\207\346\220\234\347\264\242\345\274\225\346\223\216/\347\273\274\345\220\210\346\246\202\350\277\260/index.html" +++ "b/docs/study/db/\345\205\250\346\226\207\346\220\234\347\264\242\345\274\225\346\223\216/\347\273\274\345\220\210\346\246\202\350\277\260/index.html" @@ -11,13 +11,13 @@ - +
    -

    综合概述

    传统的关系型数据库通过索引来达到快速查询的目的,但是在全文搜索的业务场景下,索引也无能为力,主要体现在:

    • 全文搜索的条件可以随意排列组合,如果通过索引来满足,则索引的数量会非常多。
    • 全文搜索的模糊匹配方式,索引无法满足,只能用 like 查询,而 like 查询是整表扫描,效率非常低。

    全文搜索基本原理

    全文搜索引擎的技术原理被称为“倒排索引”(Inverted index),也常被称为反向索引、置入档案或反向档案,是一种索引方法,其基本原理是建立单词到文档的索引。之所以被称为“倒排”索引,是和“正排“索引相对的,“正排索引”的基本原理是建立文档到单词的索引。我们通过一个简单的样例来说明这两种索引的差异。

    全文搜索引擎的索引对象是单词和文档,而关系数据库的索引对象是键和行,两者的术语差异很大,不能简单地等同起来。因此,为了让全文搜索引擎支持关系型数据的全文搜索,需要做一些转换操作,即将关系型数据转换为文档数据。

    - +

    综合概述

    传统的关系型数据库通过索引来达到快速查询的目的,但是在全文搜索的业务场景下,索引也无能为力,主要体现在:

    • 全文搜索的条件可以随意排列组合,如果通过索引来满足,则索引的数量会非常多。
    • 全文搜索的模糊匹配方式,索引无法满足,只能用 like 查询,而 like 查询是整表扫描,效率非常低。

    全文搜索基本原理

    全文搜索引擎的技术原理被称为“倒排索引”(Inverted index),也常被称为反向索引、置入档案或反向档案,是一种索引方法,其基本原理是建立单词到文档的索引。之所以被称为“倒排”索引,是和“正排“索引相对的,“正排索引”的基本原理是建立文档到单词的索引。我们通过一个简单的样例来说明这两种索引的差异。

    全文搜索引擎的索引对象是单词和文档,而关系数据库的索引对象是键和行,两者的术语差异很大,不能简单地等同起来。因此,为了让全文搜索引擎支持关系型数据的全文搜索,需要做一些转换操作,即将关系型数据转换为文档数据。

    + \ No newline at end of file diff --git "a/docs/study/db/\346\227\266\345\272\217\346\225\260\346\215\256\345\272\223/Apache IoTDB/index.html" "b/docs/study/db/\346\227\266\345\272\217\346\225\260\346\215\256\345\272\223/Apache IoTDB/index.html" index 77991613e..4d76edee7 100644 --- "a/docs/study/db/\346\227\266\345\272\217\346\225\260\346\215\256\345\272\223/Apache IoTDB/index.html" +++ "b/docs/study/db/\346\227\266\345\272\217\346\225\260\346\215\256\345\272\223/Apache IoTDB/index.html" @@ -11,13 +11,13 @@ - +
    -

    Apache IoTDB

    官方文档

    官网

    基本信息

    1. 编程语言:Java
    2. 开源地址:https://github.com/apache/iotdb
    3. 集群模式:支持
    4. 开发人员:最早始于清华大学软件学院,后贡献给了apache
    5. 定位:IoTDB 是针对时间序列数据收集、存储与分析一体化的数据管理引擎。
    6. 目标需求:高速写入、复杂分析查询

    实际使用

    1. 据官网说明,IoTDB是专门为“物联网(IoT)或者工业物联网(Industrial IoT,缩写 IIoT)场景开发”

    源码编译

    - +

    Apache IoTDB

    官方文档

    官网

    基本信息

    1. 编程语言:Java
    2. 开源地址:https://github.com/apache/iotdb
    3. 集群模式:支持
    4. 开发人员:最早始于清华大学软件学院,后贡献给了apache
    5. 定位:IoTDB 是针对时间序列数据收集、存储与分析一体化的数据管理引擎。
    6. 目标需求:高速写入、复杂分析查询

    实际使用

    1. 据官网说明,IoTDB是专门为“物联网(IoT)或者工业物联网(Industrial IoT,缩写 IIoT)场景开发”

    源码编译

    + \ No newline at end of file diff --git "a/docs/study/db/\346\227\266\345\272\217\346\225\260\346\215\256\345\272\223/Druid/index.html" "b/docs/study/db/\346\227\266\345\272\217\346\225\260\346\215\256\345\272\223/Druid/index.html" index 55656cbd0..4cff9d228 100644 --- "a/docs/study/db/\346\227\266\345\272\217\346\225\260\346\215\256\345\272\223/Druid/index.html" +++ "b/docs/study/db/\346\227\266\345\272\217\346\225\260\346\215\256\345\272\223/Druid/index.html" @@ -11,13 +11,13 @@ - +
    -

    Druid

    基本信息

    1. 编程语言:Java
    2. 开源:是
    3. 备注:Druid严格上不能算时序数据库,应该算一个OLAP数据库,定位还是不太一样的
    4. Prometheus 和 Druid 也因为时间序列数据管理而闻名,但是 Prometheus 聚焦在数据采集、可视化和报警,Druid 聚焦在 OLAP 负载的数据分析,因此本文省略了 Prometheus 和 Druid。
    - +

    Druid

    基本信息

    1. 编程语言:Java
    2. 开源:是
    3. 备注:Druid严格上不能算时序数据库,应该算一个OLAP数据库,定位还是不太一样的
    4. Prometheus 和 Druid 也因为时间序列数据管理而闻名,但是 Prometheus 聚焦在数据采集、可视化和报警,Druid 聚焦在 OLAP 负载的数据分析,因此本文省略了 Prometheus 和 Druid。
    + \ No newline at end of file diff --git "a/docs/study/db/\346\227\266\345\272\217\346\225\260\346\215\256\345\272\223/InfluxDB/index.html" "b/docs/study/db/\346\227\266\345\272\217\346\225\260\346\215\256\345\272\223/InfluxDB/index.html" index 074713e0a..f21e7302b 100644 --- "a/docs/study/db/\346\227\266\345\272\217\346\225\260\346\215\256\345\272\223/InfluxDB/index.html" +++ "b/docs/study/db/\346\227\266\345\272\217\346\225\260\346\215\256\345\272\223/InfluxDB/index.html" @@ -11,14 +11,14 @@ - +

    InfluxDB

    官方文档

    官网 -学习笔记

    基础信息

    1. 编程语言:Rust
    2. 集群方案:非集群开源,集群收费
    3. 影响力:影响力很大,社区也比较活跃,如果数据量没这么大,其实还可以的,最好不要做公有云用这个数据库,因为数据量大了之后,很难受,必须的上集群,但是集群是收费的。需要花大精力去处理集群问题。
    4. 运维难度:非集群开源版本运维难度还是简单的。
    5. 接口:InfluxQL and HTTP API
    6. 开源协议:MIT

    评价

    1. InfluxDB 单机版本安装简单,维护也方便;运维人员少(1-3 个)数量少(1T 以下)的情况下是最合适的选择;
    2. InfluxDB 单机版本性能并不够卓越,数据量超过 1T 存在性能瓶颈,QPS 超过 1K 后负载极高;
    3. 开源版本不支持集群,拓展性不行;

    常用概念

    1. database,数据库
    2. measurement,表
    3. field,字段,field set,a=1,field 没有索引
    4. tag,标签,tag set,b=1,tag 有索引
    5. rp,retention policy,数据保留策略,滚动式,旧数据会删除,默认 autogen,永不删除
    6. cq,continuous query,连续查询,类似存储过程,自动采样
    7. series:series 是共同 retention policy,measurement 和 tag set 的集合。
    8. point:point 是具有相同 timestamp、相同 series(measurement,rp,tag set 相同)的 field。这个点在此时刻是唯一存在的。
    9. wal(Write Ahead Log) ,最近写的点数的临时缓存。为了减少访问永久存储文件的频率,InfluxDB 将最新的数据点缓冲进 WAL 中,直到其总大小或时间触发然后 flush 到长久的存储空间。这样可以有效地将写入 batch 处理到 TSM 中。

    快速入门

    # v2
    wget https://dl.influxdata.com/influxdb/releases/influxdb2-2.7.5-1.x86_64.rpm
    sudo yum localinstall influxdb2-2.7.5-1.x86_64.rpm
    sudo service influxdb start
    sudo service influxdb status
    # influx
    wget https://dl.influxdata.com/influxdb/releases/influxdb2-client-2.7.3-linux-arm64.tar.gz
    tar xvzf ./influxdb2-client-2.7.3-linux-arm64.tar.gz
    sudo cp ./influx /usr/local/bin/


    > create database mydb
    > use mydb
    > show measurements
    > insert mymeasurement,tag1=value1 field1=value2
    > select * from mymeasurement where tag1='value1'
    > select * from mymeasurement
    > select * from mymeasurement where tag1='value1' and field1 > 10 order by time desc limit 1

    其他

    - +学习笔记

    基础信息

    1. 编程语言:Rust
    2. 集群方案:非集群开源,集群收费
    3. 影响力:影响力很大,社区也比较活跃,如果数据量没这么大,其实还可以的,最好不要做公有云用这个数据库,因为数据量大了之后,很难受,必须的上集群,但是集群是收费的。需要花大精力去处理集群问题。
    4. 运维难度:非集群开源版本运维难度还是简单的。
    5. 接口:InfluxQL and HTTP API
    6. 开源协议:MIT

    评价

    1. InfluxDB 单机版本安装简单,维护也方便;运维人员少(1-3 个)数量少(1T 以下)的情况下是最合适的选择;
    2. InfluxDB 单机版本性能并不够卓越,数据量超过 1T 存在性能瓶颈,QPS 超过 1K 后负载极高;
    3. 开源版本不支持集群,拓展性不行;

    常用概念

    1. database,数据库
    2. measurement,表
    3. field,字段,field set,a=1,field 没有索引
    4. tag,标签,tag set,b=1,tag 有索引
    5. rp,retention policy,数据保留策略,滚动式,旧数据会删除,默认 autogen,永不删除
    6. cq,continuous query,连续查询,类似存储过程,自动采样
    7. series:series 是共同 retention policy,measurement 和 tag set 的集合。
    8. point:point 是具有相同 timestamp、相同 series(measurement,rp,tag set 相同)的 field。这个点在此时刻是唯一存在的。
    9. wal(Write Ahead Log) ,最近写的点数的临时缓存。为了减少访问永久存储文件的频率,InfluxDB 将最新的数据点缓冲进 WAL 中,直到其总大小或时间触发然后 flush 到长久的存储空间。这样可以有效地将写入 batch 处理到 TSM 中。

    快速入门

    # v2
    wget https://dl.influxdata.com/influxdb/releases/influxdb2-2.7.5-1.x86_64.rpm
    sudo yum localinstall influxdb2-2.7.5-1.x86_64.rpm
    sudo service influxdb start
    sudo service influxdb status
    # influx
    wget https://dl.influxdata.com/influxdb/releases/influxdb2-client-2.7.3-linux-arm64.tar.gz
    tar xvzf ./influxdb2-client-2.7.3-linux-arm64.tar.gz
    sudo cp ./influx /usr/local/bin/


    > create database mydb
    > use mydb
    > show measurements
    > insert mymeasurement,tag1=value1 field1=value2
    > select * from mymeasurement where tag1='value1'
    > select * from mymeasurement
    > select * from mymeasurement where tag1='value1' and field1 > 10 order by time desc limit 1

    其他

    + \ No newline at end of file diff --git "a/docs/study/db/\346\227\266\345\272\217\346\225\260\346\215\256\345\272\223/KairosDB/index.html" "b/docs/study/db/\346\227\266\345\272\217\346\225\260\346\215\256\345\272\223/KairosDB/index.html" index 5b372df61..48002fe27 100644 --- "a/docs/study/db/\346\227\266\345\272\217\346\225\260\346\215\256\345\272\223/KairosDB/index.html" +++ "b/docs/study/db/\346\227\266\345\272\217\346\225\260\346\215\256\345\272\223/KairosDB/index.html" @@ -11,13 +11,13 @@ - +
    -

    KairosDB

    基本信息

    1. 编程语言:Java
    2. 开源:是,他是OpenTSDB的fork,不过存储系统用的是Cassandra
    3. 存储方案:Cassandra,Cassandra 是一个比较流行的NoSQL数据库,很多开源软件基于此数据库。
    4. 接口:Restful API
    - +

    KairosDB

    基本信息

    1. 编程语言:Java
    2. 开源:是,他是OpenTSDB的fork,不过存储系统用的是Cassandra
    3. 存储方案:Cassandra,Cassandra 是一个比较流行的NoSQL数据库,很多开源软件基于此数据库。
    4. 接口:Restful API
    + \ No newline at end of file diff --git "a/docs/study/db/\346\227\266\345\272\217\346\225\260\346\215\256\345\272\223/OpenTSDB/index.html" "b/docs/study/db/\346\227\266\345\272\217\346\225\260\346\215\256\345\272\223/OpenTSDB/index.html" index d1ba43ea3..4a0073c95 100644 --- "a/docs/study/db/\346\227\266\345\272\217\346\225\260\346\215\256\345\272\223/OpenTSDB/index.html" +++ "b/docs/study/db/\346\227\266\345\272\217\346\225\260\346\215\256\345\272\223/OpenTSDB/index.html" @@ -11,13 +11,13 @@ - +
    -

    OpenTSDB

    基本信息

    1. 编程语言:Java
    2. 集群模式:支持集群,开源
    3. 存储系统:HBase
    4. 运维难度:复杂
    5. 接口:Restful API

    评价

    1. 因存储系统使用的hbase,hbase存在性能和压缩率的问题,并没有被解决;
    2. hbase本身对非结构化的数据支持很好,如果存的是结构化数据,有些不合适;
    - +

    OpenTSDB

    基本信息

    1. 编程语言:Java
    2. 集群模式:支持集群,开源
    3. 存储系统:HBase
    4. 运维难度:复杂
    5. 接口:Restful API

    评价

    1. 因存储系统使用的hbase,hbase存在性能和压缩率的问题,并没有被解决;
    2. hbase本身对非结构化的数据支持很好,如果存的是结构化数据,有些不合适;
    + \ No newline at end of file diff --git "a/docs/study/db/\346\227\266\345\272\217\346\225\260\346\215\256\345\272\223/TDengine/index.html" "b/docs/study/db/\346\227\266\345\272\217\346\225\260\346\215\256\345\272\223/TDengine/index.html" index c62847ab9..49165396b 100644 --- "a/docs/study/db/\346\227\266\345\272\217\346\225\260\346\215\256\345\272\223/TDengine/index.html" +++ "b/docs/study/db/\346\227\266\345\272\217\346\225\260\346\215\256\345\272\223/TDengine/index.html" @@ -11,7 +11,7 @@ - + @@ -43,8 +43,8 @@ 在 TDengine 的设计里,表用来代表一个具体的数据采集点,超级表用来代表一组相同类型的数据采集点集合

    这里的超级表、子表的设计很有意思,子表就是某个设备(虚拟的,其他也行),这个是数据放到一块的最小单位,这里和其他时序数据库的很大区别,可有有效处理“设备删了,数据还存在的问题”。

    子表 (Subtable)

    当为某个具体数据采集点创建表时,用户可以使用超级表的定义做模板,同时指定该具体采集点(表)的具体标签值来创建该表。通过超级表创建的表称之为子表。正常的表与子表的差异在于:

    1. 子表就是表,因此所有正常表的 SQL 操作都可以在子表上执行。
    2. 子表在正常表的基础上有扩展,它是带有静态标签的,而且这些标签可以事后增加、删除、修改,而正常的表没有。
    3. 子表一定属于一张超级表,但普通表不属于任何超级表
    4. 普通表无法转为子表,子表也无法转为普通表。

    超级表与与基于超级表建立的子表之间的关系表现在:

    1. 一张超级表包含有多张子表,这些子表具有相同的采集量 schema,但带有不同的标签值。
    2. 不能通过子表调整数据或标签的模式,对于超级表的数据模式修改立即对所有的子表生效。
    3. 超级表只定义一个模板,自身不存储任何数据或标签信息。因此,不能向一个超级表写入数据,只能将数据写入子表中。

    查询既可以在表上进行,也可以在超级表上进行。针对超级表的查询,TDengine 将把所有子表中的数据视为一个整体数据集进行处理,会先把满足标签过滤条件的表从超级表中找出来,然后再扫描这些表的时序数据,进行聚合操作,这样需要扫描的数据集会大幅减少,从而显著提高查询的性能。本质上,TDengine 通过对超级表查询的支持,实现了多个同类数据采集点的高效聚合。 TDengine 系统建议给一个数据采集点建表,需要通过超级表建表,而不是建普通表。

    库 (database)

    库是指一组表的集合。TDengine 容许一个运行实例有多个库,而且每个库可以配置不同的存储策略。不同类型的数据采集点往往具有不同的数据特征,包括数据采集频率的高低,数据保留时间的长短,副本的数目,数据块的大小,是否允许更新数据等等。为了在各种场景下 TDengine 都能最大效率的工作,TDengine 建议将不同数据特征的超级表创建在不同的库里。

    一个库里,可以有一到多个超级表,但一个超级表只属于一个库。一个超级表所拥有的子表全部存在一个库里。

    这里一定要注意,我们在设计库的时候,一定要根据数据的情况来,例如上下线消息和设备历史数据应该分两个库,因为他们的数据保留时间不同,设备上下线消息存 1 年就很多了,设备历史数据可能需要存 5 年以上。

    准备数据

    结合上面的概念以及 SQL 语法可以创建表做压测了,SQL 是参考目前 influxdb 存储的历史数据来的。

    # 保存10年 1个副本
    create database ucloud keep 3650 REPLICA 2;
    use ucloud;

    #创建超级表
    create stable datapoint_record(ts timestamp,value double,StringValue NCHAR(128),DataType NCHAR(10),StorageFlag int)
    tags(DeviceId NCHAR(32),DataPointId int,SlaveIndex int);
    #插入测试数据
    insert into D00500221122700004100_1_1 using datapoint_record
    tags(00500221122700004100,1,1)
    values(now(),1,"1","ushort",1);
    insert into D00500221122700004100_1_2 using datapoint_record
    tags(00500221122700004100,1,2)
    values(now(),1,"1","ushort",1);
    #查询
    select * from datapoint_record;

    最重点的其实是表结构的设计了,结合我们的业务,我们平台的“采集量”是配置出来,所以采集量是不固定的,用户会根据自己的事情情况动态的增删。所以我们的子表只能有一个采集量,这个是关键。

    我们目前用的时序数据库是 InfluxDB,所以需要有个中间件,软实时同步到 TDengine。实现思路为:

    1. 定时每分钟;
    2. 导出 InfluxDB 数据,一分钟的;
    3. 读取这个导出文件,并插入到 TDengine 中;

    压测

    自带 taosBenchmark 性能测试工具,可以使用。

    无命令行参数直接运行 taosBenchmark,回车直接执行,默认在 TDengine 中创建一个名为 test 的数据库,test 数据库下创建名为 meters 的一张超级表,超级表下创建 10000 张表,每张表中写入 10000 条记录。

    image.png 1w 张表用了接近 4 分钟创建完成,当然了和测试服务器的机械硬盘应该有很大关系;

    image.png -插入 1 亿调数据用了 18 秒,当然了和测试服务器的机械硬盘应该有很大关系;

    坑点汇总

    1. 社区版本不支持“删除指定时间范围的数据”的功能,企业版才支持,但是有些特殊情况还是需要删除数据的,可以通过增加“删除标记字段”来迂回处理这个问题。
    2. 社区版本不支持“UAF”,也就是用户自定义函数,某些特殊聚合或计算算法无法做到,不过社区版本提供的已经是绝对部分了。
    3. java client 使用 RS 怎么也连接不上,后来发现是服务端没有启动 taosadapter,使用命令 systemctl start taosadapter 启动后,java client 就可以正常连接了。

    附录

    开源协议说明

    image.png

    - +插入 1 亿调数据用了 18 秒,当然了和测试服务器的机械硬盘应该有很大关系;

    坑点汇总

    1. 社区版本不支持“删除指定时间范围的数据”的功能,企业版才支持,但是有些特殊情况还是需要删除数据的,可以通过增加“删除标记字段”来迂回处理这个问题。
    2. 社区版本不支持“UAF”,也就是用户自定义函数,某些特殊聚合或计算算法无法做到,不过社区版本提供的已经是绝对部分了。
    3. java client 使用 RS 怎么也连接不上,后来发现是服务端没有启动 taosadapter,使用命令 systemctl start taosadapter 启动后,java client 就可以正常连接了。

    附录

    开源协议说明

    image.png

    + \ No newline at end of file diff --git "a/docs/study/db/\346\227\266\345\272\217\346\225\260\346\215\256\345\272\223/TimescaleDB/index.html" "b/docs/study/db/\346\227\266\345\272\217\346\225\260\346\215\256\345\272\223/TimescaleDB/index.html" index 8cc8d0d81..f3b0160f7 100644 --- "a/docs/study/db/\346\227\266\345\272\217\346\225\260\346\215\256\345\272\223/TimescaleDB/index.html" +++ "b/docs/study/db/\346\227\266\345\272\217\346\225\260\346\215\256\345\272\223/TimescaleDB/index.html" @@ -11,13 +11,13 @@ - + - +
    + \ No newline at end of file diff --git "a/docs/study/db/\347\273\274\345\220\210/index.html" "b/docs/study/db/\347\273\274\345\220\210/index.html" index 791dcc298..e1d28597a 100644 --- "a/docs/study/db/\347\273\274\345\220\210/index.html" +++ "b/docs/study/db/\347\273\274\345\220\210/index.html" @@ -11,13 +11,13 @@ - +
    -

    综合

    软件系统根据存储结构的分类

    关于NoSQL,看过一张图,挺形象:“1970,We have no SQL”->“1980,Know SQL”->“2000,NoSQL”->“2005,Not only SQL”->“2015,No,SQL”。目前,一些新型数据库,同时具备了NoSQL的扩展性和关系型数据库的很多特性。

    关系型和NoSQL数据库的选型。考虑几个指标,数据量、并发量、实时性、一致性要求、读写分布和类型、安全性、运维性等。根据这些指标,软件系统可分成几类。

    1. 管理型系统,如运营类系统,首选关系型。
    2. 大流量系统,如电商单品页的某个服务,后台选关系型,前台选内存型。
    3. 日志型系统,原始数据选列式,日志搜索选倒排索引。
    4. 搜索型系统,指站内搜索,非通用搜索,如商品搜索,后台选关系型,前台选倒排索引。
    5. 事务型系统,如库存、交易、记账,选关系型+缓存+一致性协议,或新型关系数据库。
    6. 离线计算,如大量数据分析,首选列式,关系型也可以。
    7. 实时计算,如实时监控,可以选时序数据库,或列式数据库。

    NOSQL出现的历史原因

    关系数据库经过几十年的发展后已经非常成熟,强大的 SQL 功能和 ACID 的属性,使得关系数据库广泛应用于各式各样的系统中,但这并不意味着关系数据库是完美的,关系数据库存在如下缺点。

    • 关系数据库存储的是行记录,无法存储数据结构
      • 以微博的关注关系为例,“我关注的人”是一个用户 ID 列表,使用关系数据库存储只能将列表拆成多行,然后再查询出来组装,无法直接存储一个列表。
    • 关系数据库的 schema 扩展很不方便
      • 关系数据库的表结构 schema 是强约束,操作不存在的列会报错,业务变化时扩充列也比较麻烦,需要执行 DDL(data definition language,如 CREATE、ALTER、DROP 等)语句修改,而且修改时可能会长时间锁表(例如,MySQL 可能将表锁住 1 个小时)。
    • 关系数据库在大数据场景下 I/O 较高
      • 如果对一些大量数据的表进行统计之类的运算,关系数据库的 I/O 会很高,因为即使只针对其中某一列进行运算,关系数据库也会将整行数据从存储设备读入内存。
    • 关系数据库的全文搜索功能比较弱
      • 关系数据库的全文搜索只能使用 like 进行整表扫描匹配,性能非常低,在互联网这种搜索复杂的场景下无法满足业务要求。

    针对上述问题,分别诞生了不同的 NoSQL 解决方案,这些方案与关系数据库相比,在某些应用场景下表现更好。但世上没有免费的午餐,NoSQL 方案带来的优势,本质上是牺牲 ACID 中的某个或者某几个特性,因此我们不能盲目地迷信 NoSQL 是银弹,而应该将 NoSQL 作为 SQL 的一个有力补充,NoSQL != No SQL,而是 NoSQL = Not Only SQL。

    常见的 NoSQL 方案分为 4 类。

    • K-V 存储:解决关系数据库无法存储数据结构的问题,以 Redis 为代表。
    • 文档数据库:解决关系数据库强 schema 约束的问题,以 MongoDB 为代表。
    • 列式数据库:解决关系数据库大数据场景下的 I/O 问题,以 HBase 为代表。
    • 全文搜索引擎:解决关系数据库的全文搜索性能问题,以 Elasticsearch 为代表。
    - +

    综合

    软件系统根据存储结构的分类

    关于NoSQL,看过一张图,挺形象:“1970,We have no SQL”->“1980,Know SQL”->“2000,NoSQL”->“2005,Not only SQL”->“2015,No,SQL”。目前,一些新型数据库,同时具备了NoSQL的扩展性和关系型数据库的很多特性。

    关系型和NoSQL数据库的选型。考虑几个指标,数据量、并发量、实时性、一致性要求、读写分布和类型、安全性、运维性等。根据这些指标,软件系统可分成几类。

    1. 管理型系统,如运营类系统,首选关系型。
    2. 大流量系统,如电商单品页的某个服务,后台选关系型,前台选内存型。
    3. 日志型系统,原始数据选列式,日志搜索选倒排索引。
    4. 搜索型系统,指站内搜索,非通用搜索,如商品搜索,后台选关系型,前台选倒排索引。
    5. 事务型系统,如库存、交易、记账,选关系型+缓存+一致性协议,或新型关系数据库。
    6. 离线计算,如大量数据分析,首选列式,关系型也可以。
    7. 实时计算,如实时监控,可以选时序数据库,或列式数据库。

    NOSQL出现的历史原因

    关系数据库经过几十年的发展后已经非常成熟,强大的 SQL 功能和 ACID 的属性,使得关系数据库广泛应用于各式各样的系统中,但这并不意味着关系数据库是完美的,关系数据库存在如下缺点。

    • 关系数据库存储的是行记录,无法存储数据结构
      • 以微博的关注关系为例,“我关注的人”是一个用户 ID 列表,使用关系数据库存储只能将列表拆成多行,然后再查询出来组装,无法直接存储一个列表。
    • 关系数据库的 schema 扩展很不方便
      • 关系数据库的表结构 schema 是强约束,操作不存在的列会报错,业务变化时扩充列也比较麻烦,需要执行 DDL(data definition language,如 CREATE、ALTER、DROP 等)语句修改,而且修改时可能会长时间锁表(例如,MySQL 可能将表锁住 1 个小时)。
    • 关系数据库在大数据场景下 I/O 较高
      • 如果对一些大量数据的表进行统计之类的运算,关系数据库的 I/O 会很高,因为即使只针对其中某一列进行运算,关系数据库也会将整行数据从存储设备读入内存。
    • 关系数据库的全文搜索功能比较弱
      • 关系数据库的全文搜索只能使用 like 进行整表扫描匹配,性能非常低,在互联网这种搜索复杂的场景下无法满足业务要求。

    针对上述问题,分别诞生了不同的 NoSQL 解决方案,这些方案与关系数据库相比,在某些应用场景下表现更好。但世上没有免费的午餐,NoSQL 方案带来的优势,本质上是牺牲 ACID 中的某个或者某几个特性,因此我们不能盲目地迷信 NoSQL 是银弹,而应该将 NoSQL 作为 SQL 的一个有力补充,NoSQL != No SQL,而是 NoSQL = Not Only SQL。

    常见的 NoSQL 方案分为 4 类。

    • K-V 存储:解决关系数据库无法存储数据结构的问题,以 Redis 为代表。
    • 文档数据库:解决关系数据库强 schema 约束的问题,以 MongoDB 为代表。
    • 列式数据库:解决关系数据库大数据场景下的 I/O 问题,以 HBase 为代表。
    • 全文搜索引擎:解决关系数据库的全文搜索性能问题,以 Elasticsearch 为代表。
    + \ No newline at end of file diff --git "a/docs/study/devops/API\347\232\204\350\257\267\346\261\202\351\207\217\345\210\206\346\236\220/index.html" "b/docs/study/devops/API\347\232\204\350\257\267\346\261\202\351\207\217\345\210\206\346\236\220/index.html" index 4069a940d..edf108c77 100644 --- "a/docs/study/devops/API\347\232\204\350\257\267\346\261\202\351\207\217\345\210\206\346\236\220/index.html" +++ "b/docs/study/devops/API\347\232\204\350\257\267\346\261\202\351\207\217\345\210\206\346\236\220/index.html" @@ -11,13 +11,13 @@ - +
    -

    API的请求量分析

    数据流向

    浏览器 》Nginx 》API 》产生Nginx log日志 》Filebeat 》Logstash 》ElasticSearch

    分析点

    接口访问量

    #访问总量
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d '{"size" : 0 }'

    #昨日访问总量
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"sort": [{"ts": {"order": "desc"}}],
    "size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"24/May/2020:00:00:00 +0800",
    "lte":"25/May/2020:00:00:00 +0800"
    }}}}}
    }'

    #昨日访问总量--按照小时聚合--按照时间排序
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"sort": [{"ts": {"order": "desc"}}],
    "size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"16/Jun/2020:00:00:00 +0800",
    "lte":"17/Jun/2020:00:00:00 +0800"
    }}}}},
    "aggs": {
    "groupby_hour_reqs":{
    "date_histogram":{
    "field":"ts",
    "interval":"1h",
    "format":"yyyy-MM-dd:HH",
    "time_zone":"+08:00",
    "min_doc_count": 0
    }
    }
    }
    }'

    #昨日访问总量--按照小时聚合--按照访问量排序
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"sort": [{"ts": {"order": "desc"}}],
    "size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"25/May/2020:00:00:00 +0800",
    "lte":"26/May/2020:00:00:00 +0800"
    }}}}},
    "aggs": {
    "groupby_hour_reqs":{
    "date_histogram":{
    "field":"ts",
    "interval":"1h",
    "format":"yyyy-MM-dd:HH",
    "time_zone":"+08:00",
    "min_doc_count": 0,
    "order" : {
    "_count" : "desc"
    }
    }
    }
    }
    }'
    #100s内访问总量--按照秒聚合--按照访问量排序==QPS###################
    #########所有访问
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"sort": [{"ts": {"order": "desc"}}],
    "size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"now-100s"
    }}}}},
    "aggs": {
    "groupby_hour_reqs":{
    "date_histogram":{
    "field":"ts",
    "interval":"1s",
    "format":"yyyy-MM-dd:HH:mm:ss",
    "time_zone":"+08:00",
    "min_doc_count": 20,
    "order" : {
    "_count" : "desc"
    }
    }
    }
    }
    }'
    #########某个IP
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"sort": [{"ts": {"order": "desc"}}],
    "size" : 0,
    "query":{"constant_score":{
    "filter":{
    "bool":{
    "must":[{"term":{"ip":"101.132.122.94"}},
    {"range":{"ts":{
    "gte":"now-600s"
    }}}
    ]
    }
    }
    }},
    "aggs": {
    "groupby_hour_reqs":{
    "date_histogram":{
    "field":"ts",
    "interval":"1s",
    "format":"yyyy-MM-dd:HH:mm:ss",
    "time_zone":"+08:00",
    "min_doc_count": 1,
    "order" : {
    "_count" : "desc"
    }
    }
    }
    }
    }'

    #今日访问总量
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"sort": [{"ts": {"order": "desc"}}],
    "size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"23/May/2020:00:00:00 +0800"
    }}}}}
    }'

    #当前小时访问总量
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"sort": [{"ts": {"order": "asc"}}],
    "size" : 1,
    "query":{"constant_score":{"filter":{"range":{"ts":{"gte":"now/h"}}}}}
    }'

    #近一个月访问总量--按照天聚合--按照时间排序 --非二开
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"sort": [{"ts": {"order": "desc"}}],
    "size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"now-1M"
    }}}}},
    "aggs": {
    "groupby_hour_reqs":{
    "date_histogram":{
    "field":"ts",
    "interval":"1d",
    "format":"yyyy-MM-dd",
    "time_zone":"+08:00",
    "min_doc_count": 0
    }
    }
    }
    }'
    #近一个月访问总量--按照天聚合--按照时间排序 --二开
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"sort": [{"ts": {"order": "desc"}}],
    "size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"now-1M"
    }}}}},
    "aggs": {
    "groupby_hour_reqs":{
    "date_histogram":{
    "field":"ts",
    "interval":"1d",
    "format":"yyyy-MM-dd",
    "time_zone":"+08:00",
    "min_doc_count": 0
    }
    }
    }
    }'

    访问最多的接口排名

    # 所有接口分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"22/May/2018:00:00:00 +0800"
    }}}}},
    "aggs": {"all_urls": {"terms": { "field": "url" }}}
    }'

    # 昨日接口分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 10,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"17/Dec/2020:00:00:00 +0800",
    "lte":"18/Dec/2020:00:00:00 +0800"
    }}}}},
    "aggs": {"all_urls": {"terms": { "field": "url" }}}
    }'
    # 今日接口分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"23/May/2020:00:00:00 +0800",
    "lte":"24/May/2020:00:00:00 +0800"
    }}}}},
    "aggs": {"all_urls": {"terms": { "field": "url" }}}
    }'

    访问最多的IP排名

    # 所有IP分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"23/May/2018:00:00:00 +0800"
    }}}}},
    "aggs": {"all_ips": {"terms": { "field": "ip" , "size":10 }}}
    }'

    # 昨日IP分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"25/May/2020:00:00:00 +0800",
    "lte":"26/May/2020:00:00:00 +0800"
    }}}}},
    "aggs": {"all_ips": {"terms": { "field": "ip" , "size":10 }}}
    }'

    # 今日IP分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"7/Sep/2020:00:00:00 +0800",
    "lte":"8/Sep/2020:00:00:00 +0800"
    }}}}},
    "aggs": {"all_ips": {"terms": { "field": "ip" , "size":10 }}}
    }'

    1. doc_count_error_upper_bound表示的是每个分片返回的最小的数量总和,比如这里的6就是第一个分片中的d中的4加上第二分片中的b中的2。也就是说ES认为那些本应该返回回来的文档假设它在每个分片上的最大值就是返回的最小值。
    2. sum_other_doc_count就是总文档数量减去返回的文档总数量。

    访问最多的URL排名

    # 所有URL分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"23/May/2018:00:00:00 +0800"
    }}}}},
    "aggs": {"all_ips": {"terms": { "field": "url" , "size":10 }}}
    }'

    # 昨日URL分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"25/May/2020:00:00:00 +0800",
    "lte":"26/May/2020:00:00:00 +0800"
    }}}}},
    "aggs": {"all_ips": {"terms": { "field": "url" , "size":10 }}}
    }'

    # 今日URL分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"8/Jun/2020:00:00:00 +0800",
    "lte":"9/Jun/2020:00:00:00 +0800"
    }}}}},
    "aggs": {"all_ips": {"terms": { "field": "url" , "size":10 }}}
    }'
    #########################################################
    # 某个IP所有URL分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{"constant_score":{
    "filter":{
    "bool":{
    "must":[{"term":{"ip":"101.132.122.94"}},
    {"range":{"ts":{
    "gte":"23/May/2018:00:00:00 +0800"
    }}}
    ]
    }
    }
    }},
    "aggs": {"all_ips": {"terms": { "field": "url" , "size":10 }}}
    }'
    # 某个IP今日URL分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 1,
    "query":{"constant_score":{
    "filter":{
    "bool":{
    "must":[{"term":{"ip":"114.115.190.201"}},
    {"range":{"ts":{
    "gte":"7/Sep/2020:00:00:00 +0800",
    "lte":"8/Sep/2020:00:00:00 +0800"
    }}}
    ]
    }
    }
    }},
    "aggs": {"all_ips": {"terms": { "field": "url" , "size":10 }}}
    }'


    ip和url查询列表

    # 
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 10,"sort": [{"ts": {"order": "desc"}}],
    "query":{"constant_score":{
    "filter":{
    "bool":{
    "must":[{"term":{"ip":"113.110.165.243"}},
    {"term":{"url":"/xxx/xxx"}},
    {"range":{"ts":{
    "gte":"11/Jun/2020:00:00:00 +0800",
    "lte":"12/Jun/2020:00:00:00 +0800"
    }}}
    ]
    }
    }
    }}
    }'

    访问浏览器类型分类及数量

    # 所有浏览器分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/rc_nginx_api/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"22/May/2018:00:00:00 +0800"
    }}}}},
    "aggs": {"all_uajnames": {"terms": { "field": "uaj.name" , "size":100 }}}
    }'
    # 昨日浏览器分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 1,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"22/May/2020:00:00:00 +0800",
    "lte":"23/May/2020:00:00:00 +0800"
    }}}}},
    "aggs": {"all_uajnames": {"terms": { "field": "uaj.name" , "size":10 }}}
    }'

    访问浏览器Chrome版本及数量

    # 所有浏览器分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/rc_nginx_api/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 1,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"22/May/2018:00:00:00 +0800"
    }}}}},
    "aggs": {"all_uajoss": {"terms": { "field": "uaj.major" , "size":10 }}}
    }'
    # 昨日浏览器分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 1,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"22/May/2020:00:00:00 +0800",
    "lte":"23/May/2020:00:00:00 +0800"
    }}}}},
    "aggs": {"all_uajoss": {"terms": { "field": "uaj.major" , "size":10 }}}
    }'

    访问操作系统类型分类及数量

    # 所有操作系统分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 1,
    "query":{
    "constant_score":{
    "filter":{
    "bool":{
    "must":[
    {"range":{"ts":{
    "gte":"22/May/2018:00:00:00 +0800"
    }}}
    ]
    }
    }
    }},
    "aggs": {"all_uajoss": {"terms": { "field": "uaj.os" , "size":100 }}}
    }'

    访问最多的国家排名

    # 所有访问国家分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"22/May/2018:00:00:00 +0800"
    }}}}},
    "aggs": {"all_uajoss": {"terms": { "field": "ipj.country_name" , "size":10 }}}
    }'
    # 昨日访问国家分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 1,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"1/Jun/2020:00:00:00 +0800",
    "lte":"2/Jun/2020:00:00:00 +0800"
    }}}}},
    "aggs": {"all_uajoss": {"terms": { "field": "ipj.country_name" , "size":10 }}}
    }'

    访问最多的省份排名

    # 所有访问省份分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 10,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"22/May/2018:00:00:00 +0800"
    }}}}},
    "aggs": {"all_uajoss": {"terms": { "field": "ipj.region_name" , "size":10 }}}
    }'
    # 昨日访问省份分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 1,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"31/May/2020:00:00:00 +0800",
    "lte":"2/Jun/2020:00:00:00 +0800"
    }}}}},
    "aggs": {"all_uajoss": {"terms": { "field": "ipj.region_name" , "size":10 }}}
    }'

    访问最多的城市排名

    # 所有访问城市分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"22/May/2018:00:00:00 +0800"
    }}}}},
    "aggs": {"all_uajoss": {"terms": { "field": "ipj.city_name" , "size":10 }}}
    }'
    # 昨日访问城市分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"1/Jun/2020:00:00:00 +0800",
    "lte":"2/Jun/2020:00:00:00 +0800"
    }}}}},
    "aggs": {"all_uajoss": {"terms": { "field": "ipj.city_name" , "size":10 }}}
    }'

    HTTP响应码非200数量及列表

    # 所有HTTP响应码非200列表
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 100,
    "query":{
    "constant_score":{
    "filter":{
    "bool":{
    "must_not":[
    {"term":{"code":"200"}}
    ],
    "must":[
    {"range":{"ts":{
    "gte":"22/May/2018:00:00:00 +0800"
    }}}
    ]
    }
    }
    }}
    }'


    # 昨日HTTP响应码非200列表
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 10,
    "query":{
    "constant_score":{
    "filter":{
    "bool":{
    "must_not":[
    {"term":{"code":"200"}}
    ],
    "must":[
    {"range":{"ts":{
    "gte":"25/May/2020:00:00:00 +0800",
    "lte":"26/May/2020:00:00:00 +0800"
    }}}
    ]
    }
    }
    }}
    }'


    # 所有HTTP响应码非200分类及调用数量
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 1,
    "query":{
    "constant_score":{
    "filter":{
    "bool":{
    "must_not":[
    {"term":{"code":"200"}}
    ],
    "must":[
    {"range":{"ts":{
    "gte":"22/May/2018:00:00:00 +0800"
    }}}
    ]
    }
    }
    }},
    "aggs": {"all_uajoss": {"terms": { "field": "code" , "size":100 }}}
    }'


    # 昨日HTTP响应码非200分类及调用数量
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 1,
    "query":{
    "constant_score":{
    "filter":{
    "bool":{
    "must_not":[
    {"term":{"code":"200"}}
    ],
    "must":[
    {"range":{"ts":{
    "gte":"22/May/2020:00:00:00 +0800",
    "lte":"23/May/2020:00:00:00 +0800"
    }}}
    ]
    }
    }
    }},
    "aggs": {"all_uajoss": {"terms": { "field": "code" , "size":100 }}}
    }'


    # 所有HTTP响应码非200(499)url分类及调用数量
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 1,
    "query":{
    "constant_score":{
    "filter":{
    "bool":{
    "must":[{"term":{"code":"499"}},
    {"range":{"ts":{
    "gte":"22/May/2018:00:00:00 +0800"
    }}}
    ]
    }
    }
    }},
    "aggs": {"all_uajoss": {"terms": { "field": "url" , "size":10 }}}
    }'

    # 昨日HTTP响应码非200(499)url分类及调用数量
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 1,
    "query":{
    "constant_score":{
    "filter":{
    "bool":{
    "must":[{"term":{"code":"499"}},
    {"range":{"ts":{
    "gte":"22/May/2020:00:00:00 +0800",
    "lte":"23/May/2020:00:00:00 +0800"
    }}}
    ]
    }
    }
    }},
    "aggs": {"all_uajoss": {"terms": { "field": "url" , "size":10 }}}
    }'


    # 所有HTTP响应码非200(404)url分类及调用数量
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 1,
    "query":{
    "constant_score":{
    "filter":{
    "bool":{
    "must":[{"term":{"code":"404"}},
    {"range":{"ts":{
    "gte":"22/May/2018:00:00:00 +0800"
    }}}
    ]
    }
    }
    }},
    "aggs": {"all_uajoss": {"terms": { "field": "url" , "size":10 }}}
    }'

    # 昨日HTTP响应码非200(404)url分类及调用数量
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 1,
    "query":{
    "constant_score":{
    "filter":{
    "bool":{
    "must":[{"term":{"code":"404"}},
    {"range":{"ts":{
    "gte":"22/May/2020:00:00:00 +0800",
    "lte":"23/May/2020:00:00:00 +0800"
    }}}
    ]
    }
    }
    }},
    "aggs": {"all_uajoss": {"terms": { "field": "url" , "size":10 }}}
    }'

    HTTP method分类及调用次数

    # 所有HTTP method分类及数量
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 1,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"22/May/2018:00:00:00 +0800"
    }}}}},
    "aggs": {"all_uajnames": {"terms": { "field": "method" , "size":10 }}}
    }'

    site分类及调用次数

    # 所有site分类及数量
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"22/May/2018:00:00:00 +0800"
    }}}}},
    "aggs": {"all_uajnames": {"terms": { "field": "site" , "size":100 }}}
    }'
    # 某个IP今日site分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,"sort": [{"ts": {"order": "desc"}}],
    "query":{"constant_score":{
    "filter":{
    "bool":{
    "must":[{"term":{"ip":"114.115.190.196"}},
    {"range":{"ts":{
    "gte":"8/Jun/2020:00:00:00 +0800",
    "lte":"9/Jun/2020:00:00:00 +0800"
    }}}
    ]
    }
    }
    }},
    "aggs": {"all_ips": {"terms": { "field": "site" , "size":10 }}}
    }'

    httpv分类及调用次数

    # 所有HTTP method分类及数量
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 1,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"22/May/2018:00:00:00 +0800"
    }}}}},
    "aggs": {"all_uajnames": {"terms": { "field": "httpv" , "size":10 }}}
    }'

    URL访问IP分类及调用次数

    # URL访问IP分类及调用次数--查询历史记录
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{"constant_score":{
    "filter":{
    "bool":{
    "must":[{"term":{"url":"/xxx/xx/xx"}},
    {"range":{"ts":{
    "gte":"8/Jun/2020:00:00:00 +0800",
    "lte":"9/Jun/2020:00:00:00 +0800"
    }}}
    ]
    }
    }
    }},
    "aggs": {"all_urls": {"terms": { "field": "ip" }}}
    }'

    # URL访问IP分类及调用次数--登录
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{"constant_score":{
    "filter":{
    "bool":{
    "must":[{"term":{"url":"/xx/xx/xx"}},
    {"range":{"ts":{
    "gte":"8/Jun/2020:00:00:00 +0800",
    "lte":"9/Jun/2020:00:00:00 +0800"
    }}}
    ]
    }
    }
    }},
    "aggs": {"all_urls": {"terms": { "field": "ip" }}}
    }'

    最活跃的某类site

    #10大最活跃的分享组态
    curl -XPOST 'http://127.0.0.1:9200/{具体的e's}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{
    "wildcard": {
    "site": "*show.html*share*"
    }
    },
    "aggs": {"all_ips": {"terms": { "field": "site" , "size":100 }}}
    }'
    - +

    API的请求量分析

    数据流向

    浏览器 》Nginx 》API 》产生Nginx log日志 》Filebeat 》Logstash 》ElasticSearch

    分析点

    接口访问量

    #访问总量
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d '{"size" : 0 }'

    #昨日访问总量
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"sort": [{"ts": {"order": "desc"}}],
    "size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"24/May/2020:00:00:00 +0800",
    "lte":"25/May/2020:00:00:00 +0800"
    }}}}}
    }'

    #昨日访问总量--按照小时聚合--按照时间排序
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"sort": [{"ts": {"order": "desc"}}],
    "size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"16/Jun/2020:00:00:00 +0800",
    "lte":"17/Jun/2020:00:00:00 +0800"
    }}}}},
    "aggs": {
    "groupby_hour_reqs":{
    "date_histogram":{
    "field":"ts",
    "interval":"1h",
    "format":"yyyy-MM-dd:HH",
    "time_zone":"+08:00",
    "min_doc_count": 0
    }
    }
    }
    }'

    #昨日访问总量--按照小时聚合--按照访问量排序
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"sort": [{"ts": {"order": "desc"}}],
    "size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"25/May/2020:00:00:00 +0800",
    "lte":"26/May/2020:00:00:00 +0800"
    }}}}},
    "aggs": {
    "groupby_hour_reqs":{
    "date_histogram":{
    "field":"ts",
    "interval":"1h",
    "format":"yyyy-MM-dd:HH",
    "time_zone":"+08:00",
    "min_doc_count": 0,
    "order" : {
    "_count" : "desc"
    }
    }
    }
    }
    }'
    #100s内访问总量--按照秒聚合--按照访问量排序==QPS###################
    #########所有访问
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"sort": [{"ts": {"order": "desc"}}],
    "size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"now-100s"
    }}}}},
    "aggs": {
    "groupby_hour_reqs":{
    "date_histogram":{
    "field":"ts",
    "interval":"1s",
    "format":"yyyy-MM-dd:HH:mm:ss",
    "time_zone":"+08:00",
    "min_doc_count": 20,
    "order" : {
    "_count" : "desc"
    }
    }
    }
    }
    }'
    #########某个IP
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"sort": [{"ts": {"order": "desc"}}],
    "size" : 0,
    "query":{"constant_score":{
    "filter":{
    "bool":{
    "must":[{"term":{"ip":"101.132.122.94"}},
    {"range":{"ts":{
    "gte":"now-600s"
    }}}
    ]
    }
    }
    }},
    "aggs": {
    "groupby_hour_reqs":{
    "date_histogram":{
    "field":"ts",
    "interval":"1s",
    "format":"yyyy-MM-dd:HH:mm:ss",
    "time_zone":"+08:00",
    "min_doc_count": 1,
    "order" : {
    "_count" : "desc"
    }
    }
    }
    }
    }'

    #今日访问总量
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"sort": [{"ts": {"order": "desc"}}],
    "size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"23/May/2020:00:00:00 +0800"
    }}}}}
    }'

    #当前小时访问总量
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"sort": [{"ts": {"order": "asc"}}],
    "size" : 1,
    "query":{"constant_score":{"filter":{"range":{"ts":{"gte":"now/h"}}}}}
    }'

    #近一个月访问总量--按照天聚合--按照时间排序 --非二开
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"sort": [{"ts": {"order": "desc"}}],
    "size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"now-1M"
    }}}}},
    "aggs": {
    "groupby_hour_reqs":{
    "date_histogram":{
    "field":"ts",
    "interval":"1d",
    "format":"yyyy-MM-dd",
    "time_zone":"+08:00",
    "min_doc_count": 0
    }
    }
    }
    }'
    #近一个月访问总量--按照天聚合--按照时间排序 --二开
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"sort": [{"ts": {"order": "desc"}}],
    "size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"now-1M"
    }}}}},
    "aggs": {
    "groupby_hour_reqs":{
    "date_histogram":{
    "field":"ts",
    "interval":"1d",
    "format":"yyyy-MM-dd",
    "time_zone":"+08:00",
    "min_doc_count": 0
    }
    }
    }
    }'

    访问最多的接口排名

    # 所有接口分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"22/May/2018:00:00:00 +0800"
    }}}}},
    "aggs": {"all_urls": {"terms": { "field": "url" }}}
    }'

    # 昨日接口分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 10,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"17/Dec/2020:00:00:00 +0800",
    "lte":"18/Dec/2020:00:00:00 +0800"
    }}}}},
    "aggs": {"all_urls": {"terms": { "field": "url" }}}
    }'
    # 今日接口分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"23/May/2020:00:00:00 +0800",
    "lte":"24/May/2020:00:00:00 +0800"
    }}}}},
    "aggs": {"all_urls": {"terms": { "field": "url" }}}
    }'

    访问最多的IP排名

    # 所有IP分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"23/May/2018:00:00:00 +0800"
    }}}}},
    "aggs": {"all_ips": {"terms": { "field": "ip" , "size":10 }}}
    }'

    # 昨日IP分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"25/May/2020:00:00:00 +0800",
    "lte":"26/May/2020:00:00:00 +0800"
    }}}}},
    "aggs": {"all_ips": {"terms": { "field": "ip" , "size":10 }}}
    }'

    # 今日IP分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"7/Sep/2020:00:00:00 +0800",
    "lte":"8/Sep/2020:00:00:00 +0800"
    }}}}},
    "aggs": {"all_ips": {"terms": { "field": "ip" , "size":10 }}}
    }'

    1. doc_count_error_upper_bound表示的是每个分片返回的最小的数量总和,比如这里的6就是第一个分片中的d中的4加上第二分片中的b中的2。也就是说ES认为那些本应该返回回来的文档假设它在每个分片上的最大值就是返回的最小值。
    2. sum_other_doc_count就是总文档数量减去返回的文档总数量。

    访问最多的URL排名

    # 所有URL分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"23/May/2018:00:00:00 +0800"
    }}}}},
    "aggs": {"all_ips": {"terms": { "field": "url" , "size":10 }}}
    }'

    # 昨日URL分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"25/May/2020:00:00:00 +0800",
    "lte":"26/May/2020:00:00:00 +0800"
    }}}}},
    "aggs": {"all_ips": {"terms": { "field": "url" , "size":10 }}}
    }'

    # 今日URL分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"8/Jun/2020:00:00:00 +0800",
    "lte":"9/Jun/2020:00:00:00 +0800"
    }}}}},
    "aggs": {"all_ips": {"terms": { "field": "url" , "size":10 }}}
    }'
    #########################################################
    # 某个IP所有URL分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{"constant_score":{
    "filter":{
    "bool":{
    "must":[{"term":{"ip":"101.132.122.94"}},
    {"range":{"ts":{
    "gte":"23/May/2018:00:00:00 +0800"
    }}}
    ]
    }
    }
    }},
    "aggs": {"all_ips": {"terms": { "field": "url" , "size":10 }}}
    }'
    # 某个IP今日URL分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 1,
    "query":{"constant_score":{
    "filter":{
    "bool":{
    "must":[{"term":{"ip":"114.115.190.201"}},
    {"range":{"ts":{
    "gte":"7/Sep/2020:00:00:00 +0800",
    "lte":"8/Sep/2020:00:00:00 +0800"
    }}}
    ]
    }
    }
    }},
    "aggs": {"all_ips": {"terms": { "field": "url" , "size":10 }}}
    }'


    ip和url查询列表

    # 
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 10,"sort": [{"ts": {"order": "desc"}}],
    "query":{"constant_score":{
    "filter":{
    "bool":{
    "must":[{"term":{"ip":"113.110.165.243"}},
    {"term":{"url":"/xxx/xxx"}},
    {"range":{"ts":{
    "gte":"11/Jun/2020:00:00:00 +0800",
    "lte":"12/Jun/2020:00:00:00 +0800"
    }}}
    ]
    }
    }
    }}
    }'

    访问浏览器类型分类及数量

    # 所有浏览器分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/rc_nginx_api/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"22/May/2018:00:00:00 +0800"
    }}}}},
    "aggs": {"all_uajnames": {"terms": { "field": "uaj.name" , "size":100 }}}
    }'
    # 昨日浏览器分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 1,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"22/May/2020:00:00:00 +0800",
    "lte":"23/May/2020:00:00:00 +0800"
    }}}}},
    "aggs": {"all_uajnames": {"terms": { "field": "uaj.name" , "size":10 }}}
    }'

    访问浏览器Chrome版本及数量

    # 所有浏览器分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/rc_nginx_api/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 1,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"22/May/2018:00:00:00 +0800"
    }}}}},
    "aggs": {"all_uajoss": {"terms": { "field": "uaj.major" , "size":10 }}}
    }'
    # 昨日浏览器分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 1,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"22/May/2020:00:00:00 +0800",
    "lte":"23/May/2020:00:00:00 +0800"
    }}}}},
    "aggs": {"all_uajoss": {"terms": { "field": "uaj.major" , "size":10 }}}
    }'

    访问操作系统类型分类及数量

    # 所有操作系统分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 1,
    "query":{
    "constant_score":{
    "filter":{
    "bool":{
    "must":[
    {"range":{"ts":{
    "gte":"22/May/2018:00:00:00 +0800"
    }}}
    ]
    }
    }
    }},
    "aggs": {"all_uajoss": {"terms": { "field": "uaj.os" , "size":100 }}}
    }'

    访问最多的国家排名

    # 所有访问国家分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"22/May/2018:00:00:00 +0800"
    }}}}},
    "aggs": {"all_uajoss": {"terms": { "field": "ipj.country_name" , "size":10 }}}
    }'
    # 昨日访问国家分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 1,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"1/Jun/2020:00:00:00 +0800",
    "lte":"2/Jun/2020:00:00:00 +0800"
    }}}}},
    "aggs": {"all_uajoss": {"terms": { "field": "ipj.country_name" , "size":10 }}}
    }'

    访问最多的省份排名

    # 所有访问省份分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 10,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"22/May/2018:00:00:00 +0800"
    }}}}},
    "aggs": {"all_uajoss": {"terms": { "field": "ipj.region_name" , "size":10 }}}
    }'
    # 昨日访问省份分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 1,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"31/May/2020:00:00:00 +0800",
    "lte":"2/Jun/2020:00:00:00 +0800"
    }}}}},
    "aggs": {"all_uajoss": {"terms": { "field": "ipj.region_name" , "size":10 }}}
    }'

    访问最多的城市排名

    # 所有访问城市分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"22/May/2018:00:00:00 +0800"
    }}}}},
    "aggs": {"all_uajoss": {"terms": { "field": "ipj.city_name" , "size":10 }}}
    }'
    # 昨日访问城市分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"1/Jun/2020:00:00:00 +0800",
    "lte":"2/Jun/2020:00:00:00 +0800"
    }}}}},
    "aggs": {"all_uajoss": {"terms": { "field": "ipj.city_name" , "size":10 }}}
    }'

    HTTP响应码非200数量及列表

    # 所有HTTP响应码非200列表
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 100,
    "query":{
    "constant_score":{
    "filter":{
    "bool":{
    "must_not":[
    {"term":{"code":"200"}}
    ],
    "must":[
    {"range":{"ts":{
    "gte":"22/May/2018:00:00:00 +0800"
    }}}
    ]
    }
    }
    }}
    }'


    # 昨日HTTP响应码非200列表
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 10,
    "query":{
    "constant_score":{
    "filter":{
    "bool":{
    "must_not":[
    {"term":{"code":"200"}}
    ],
    "must":[
    {"range":{"ts":{
    "gte":"25/May/2020:00:00:00 +0800",
    "lte":"26/May/2020:00:00:00 +0800"
    }}}
    ]
    }
    }
    }}
    }'


    # 所有HTTP响应码非200分类及调用数量
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 1,
    "query":{
    "constant_score":{
    "filter":{
    "bool":{
    "must_not":[
    {"term":{"code":"200"}}
    ],
    "must":[
    {"range":{"ts":{
    "gte":"22/May/2018:00:00:00 +0800"
    }}}
    ]
    }
    }
    }},
    "aggs": {"all_uajoss": {"terms": { "field": "code" , "size":100 }}}
    }'


    # 昨日HTTP响应码非200分类及调用数量
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 1,
    "query":{
    "constant_score":{
    "filter":{
    "bool":{
    "must_not":[
    {"term":{"code":"200"}}
    ],
    "must":[
    {"range":{"ts":{
    "gte":"22/May/2020:00:00:00 +0800",
    "lte":"23/May/2020:00:00:00 +0800"
    }}}
    ]
    }
    }
    }},
    "aggs": {"all_uajoss": {"terms": { "field": "code" , "size":100 }}}
    }'


    # 所有HTTP响应码非200(499)url分类及调用数量
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 1,
    "query":{
    "constant_score":{
    "filter":{
    "bool":{
    "must":[{"term":{"code":"499"}},
    {"range":{"ts":{
    "gte":"22/May/2018:00:00:00 +0800"
    }}}
    ]
    }
    }
    }},
    "aggs": {"all_uajoss": {"terms": { "field": "url" , "size":10 }}}
    }'

    # 昨日HTTP响应码非200(499)url分类及调用数量
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 1,
    "query":{
    "constant_score":{
    "filter":{
    "bool":{
    "must":[{"term":{"code":"499"}},
    {"range":{"ts":{
    "gte":"22/May/2020:00:00:00 +0800",
    "lte":"23/May/2020:00:00:00 +0800"
    }}}
    ]
    }
    }
    }},
    "aggs": {"all_uajoss": {"terms": { "field": "url" , "size":10 }}}
    }'


    # 所有HTTP响应码非200(404)url分类及调用数量
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 1,
    "query":{
    "constant_score":{
    "filter":{
    "bool":{
    "must":[{"term":{"code":"404"}},
    {"range":{"ts":{
    "gte":"22/May/2018:00:00:00 +0800"
    }}}
    ]
    }
    }
    }},
    "aggs": {"all_uajoss": {"terms": { "field": "url" , "size":10 }}}
    }'

    # 昨日HTTP响应码非200(404)url分类及调用数量
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 1,
    "query":{
    "constant_score":{
    "filter":{
    "bool":{
    "must":[{"term":{"code":"404"}},
    {"range":{"ts":{
    "gte":"22/May/2020:00:00:00 +0800",
    "lte":"23/May/2020:00:00:00 +0800"
    }}}
    ]
    }
    }
    }},
    "aggs": {"all_uajoss": {"terms": { "field": "url" , "size":10 }}}
    }'

    HTTP method分类及调用次数

    # 所有HTTP method分类及数量
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 1,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"22/May/2018:00:00:00 +0800"
    }}}}},
    "aggs": {"all_uajnames": {"terms": { "field": "method" , "size":10 }}}
    }'

    site分类及调用次数

    # 所有site分类及数量
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"22/May/2018:00:00:00 +0800"
    }}}}},
    "aggs": {"all_uajnames": {"terms": { "field": "site" , "size":100 }}}
    }'
    # 某个IP今日site分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,"sort": [{"ts": {"order": "desc"}}],
    "query":{"constant_score":{
    "filter":{
    "bool":{
    "must":[{"term":{"ip":"114.115.190.196"}},
    {"range":{"ts":{
    "gte":"8/Jun/2020:00:00:00 +0800",
    "lte":"9/Jun/2020:00:00:00 +0800"
    }}}
    ]
    }
    }
    }},
    "aggs": {"all_ips": {"terms": { "field": "site" , "size":10 }}}
    }'

    httpv分类及调用次数

    # 所有HTTP method分类及数量
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 1,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"22/May/2018:00:00:00 +0800"
    }}}}},
    "aggs": {"all_uajnames": {"terms": { "field": "httpv" , "size":10 }}}
    }'

    URL访问IP分类及调用次数

    # URL访问IP分类及调用次数--查询历史记录
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{"constant_score":{
    "filter":{
    "bool":{
    "must":[{"term":{"url":"/xxx/xx/xx"}},
    {"range":{"ts":{
    "gte":"8/Jun/2020:00:00:00 +0800",
    "lte":"9/Jun/2020:00:00:00 +0800"
    }}}
    ]
    }
    }
    }},
    "aggs": {"all_urls": {"terms": { "field": "ip" }}}
    }'

    # URL访问IP分类及调用次数--登录
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{"constant_score":{
    "filter":{
    "bool":{
    "must":[{"term":{"url":"/xx/xx/xx"}},
    {"range":{"ts":{
    "gte":"8/Jun/2020:00:00:00 +0800",
    "lte":"9/Jun/2020:00:00:00 +0800"
    }}}
    ]
    }
    }
    }},
    "aggs": {"all_urls": {"terms": { "field": "ip" }}}
    }'

    最活跃的某类site

    #10大最活跃的分享组态
    curl -XPOST 'http://127.0.0.1:9200/{具体的e's}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{
    "wildcard": {
    "site": "*show.html*share*"
    }
    },
    "aggs": {"all_ips": {"terms": { "field": "site" , "size":100 }}}
    }'
    + \ No newline at end of file diff --git "a/docs/study/devops/Linux\345\217\221\350\241\214\347\211\210/index.html" "b/docs/study/devops/Linux\345\217\221\350\241\214\347\211\210/index.html" index 49bb62bd5..22aad9037 100644 --- "a/docs/study/devops/Linux\345\217\221\350\241\214\347\211\210/index.html" +++ "b/docs/study/devops/Linux\345\217\221\350\241\214\347\211\210/index.html" @@ -11,13 +11,13 @@ - + - +
    + \ No newline at end of file diff --git "a/docs/study/devops/Linux\350\277\220\347\273\264-\345\270\270\347\224\250/index.html" "b/docs/study/devops/Linux\350\277\220\347\273\264-\345\270\270\347\224\250/index.html" index 2971fc9b0..fd9c5e573 100644 --- "a/docs/study/devops/Linux\350\277\220\347\273\264-\345\270\270\347\224\250/index.html" +++ "b/docs/study/devops/Linux\350\277\220\347\273\264-\345\270\270\347\224\250/index.html" @@ -11,13 +11,13 @@ - +
    -

    Linux运维-常用

    内核/发行版

    # 内核 CPU架构
    uname -a
    # 发行版
    lsb_release -a

    删除多余的备份

    # 删除90之前的备份文件
    find /root/sh/bak/*.gz -mtime +90 -type f -exec rm -f {} \;
    # 删除60之前的备份文件
    find /root/sh/bak/*.gz -mtime +60 -type f -exec rm -f {} \;
    # 删除10之前的备份文件
    find /mnt/docker/tomcat/logs/*.log -mtime +10 -type f -exec rm -f {} \;

    文件/目录大小查看

    #查看当前目录总共占的容量。而不单独列出各子项占用的容量
    du -sh
    #查看当前目录下一级子文件和子目录占用的磁盘容量。
    du -lh --max-depth=1
    #按照文件大小 从小到大排序
    ls -hSlr
    #按照修改时间 从小到大排序
    ls -hlt

    网络带宽问题

    yum install libpcap nethogs
    nethogs -a
    lsof -i:被占用的端口号

    定时任务

    防火墙

    #检查防火墙 如果防火强修改了 记得重启docker
    systemctl status firewalld
    #
    firewall-cmd --list-ports

    #开启防火墙端口
    #
    firewall-cmd --permanent --add-port=9100/tcp && \
    firewall-cmd --permanent --add-port=9200/tcp && \
    firewall-cmd --permanent --add-port=9300/tcp && \
    firewall-cmd --reload
    #
    firewall-cmd --permanent --add-port=5044-5054/tcp && \
    firewall-cmd --reload
    #
    firewall-cmd --permanent --add-port=8090-8099/tcp && \
    firewall-cmd --reload

    #关闭防火墙端口
    firewall-cmd --permanent --remove-port=9100/tcp && \
    firewall-cmd --permanent --remove-port=9200/tcp && \
    firewall-cmd --permanent --remove-port=9300/tcp && \
    firewall-cmd --reload

    后台运行

    nohup python ./analyse_init_stocks.py > /dev/null 2>&1 &

    zip/tar 文件

    #
    yum install -y unzip zip
    # 只看不解压
    tar -tf xxx.tar.gz
    # 解压到当前目录
    tar -xzvf xxx.tar.gz
    # 解压到指定目录
    tar -xzvf xxx.tar.gz -C ./xxx/
    # 创建压缩文件
    tar -czvf ./xxx.tar.gz ./xxx

    centos 字符集问题

    1. CentOS7 及 Docker 配置中文字符集问题

    宝塔相关

    1. 如果不知道宝塔的管理员的用户名和密码,但是可以登录服务器,使用脚本 bt default 来获取管理员的用户名和密码。

    登录用户

    #
    w
    #
    who
    #
    whoami
    # 查看当前用户分组
    id [user]

    常用的 ls 命令

    #忽略某些文件名展示
    ll -h --ignore="*bak*"

    CPU

    #该服务器一共有几个物理CPU
    grep "physical id" /proc/cpuinfo | uniq | wc -l
    #该服务器一共有几个逻辑CPU
    grep "processor" /proc/cpuinfo | wc -l
    #查看cpu核心数
    cat /proc/cpuinfo| grep "cpu cores"| uniq
    #查看cpu详细信息
    lscpu
    #查看CPU位数
    getconf LONG_BIT
    # 列出CPU占用最多的5个进程
    ps -aux | sort -k3nr | head -5
    # P按照内存大小排序 c显示进程全称
    top

    apt-get

    #
    apt-get update
    #
    apt-get install vim

    系统盘符

    #查看系统支持的盘符,查看分区和磁盘
    lsblk
    #查看空间使用情况
    df -h
    #查看硬盘label(别名)磁盘文件类型
    blkid

    内存

    # 查看内存大小
    free -h  
    # 内存占用最多的5个进程
    ps -aux | sort -k4nr | head -5
    # >或M按照内存大小排序 c显示进程全称
    top

    操作系统版本

    #红帽系列 centos
    cat /etc/redhat-release
    #查看内核/操作系统/CPU信息:
    uname -a

    端口/连接

    #查看所有监听的端口
    netstat -lntp
    #查看已经建立的链接
    netstat -antp
    #
    yum list |grep telnet
    yum -y install telnet.x86_64
    telnet 172.19.74.146 9200
    # 根据监听端口查找进程,根据进程号查找进程命令
    netstat -tulnp | grep ':端口号'
    ss -tulnp | grep ':端口号'
    ps -f -p 99382|cat

    vi/vim 中文乱码

    #
    vi /etc/vimrc
    #在文件头增加如下内容
    set fileencodings=utf-8,gb2312,gbk,gb18030
    set termencoding=utf-8
    set fileformats=unix
    set encoding=prc

    htop/top

    #支持鼠标 支持左右方向键
    htop
    #
    H 只展示进程/显示线程
    h, ? F1查看htop使用说明
    S F2 htop 设定
    / F3 搜索进程
    \ F4 增量进程过滤器
    t F5 显示树形结构
    <, > F6 选择排序方式
    [ F7 可减少nice值可以提高对应进程的优先级
    ] F8 可增加nice值,降低对应进程的优先级
    k F9 可对进程传递信号
    q F10 结束htop
    u 只显示一个给定的用户的过程
    U 取消标记所有的进程
    H 显示或隐藏用户线程
    K 显示或隐藏内核线程
    F 跟踪进程
    P 按CPU 使用排序
    M 按内存使用排序
    T 按Time+ 使用排序
    l 显示进程打开的文件
    I 倒转排序顺序
    s 选择某进程,按s:用strace追踪进程的系统调用

    grep

    #
    less user-func-flow-for-res.2022-03-11.log | grep -E '61.166.240.34' |grep get | more


    pstree

    #pstree 命令是以树形结构显示程序和进程之间的关系
    man pstree
    #展示进程命令行
    pstree -a

    创建大文件

    fallocate -l 1G largefile
    truncate -s 1G largefile

    ulimit

    ulimit -a
    ulimit -n
    ulimit -u

    ipcs 进程通信【共享内存、消息队列、信号量】

    ipcs命令是一个用于显示系统中进程间通信(IPC)设施状态的命令行工具。

    ipcs命令主要显示消息队队列、共享内存和信号量的信息。这些IPC设施是操作系统提供给进程间进行数据交换的机制。在处理多线程或者多进程问题时,它能够提供大量有价值的信息。

    消息队列(Message Queues)

    消息队列是一个链表,存放在内核中并由消息队列标识符标识。Linux内核维护了一个消息队列和相关操作函数的集合,用户进程可以调用操作函数完成消息发送和接收。

    信号量(Semaphores)

    信号量主要作为进程间以及同一进程不同线程之间的同步手段。

    共享内存(Shared Memories)

    让任何需要的进程都能访问的内存区域。因为多个进程可以同时操作,所以必须通过某种同步操作,如信号量,来确保进程间互不干扰。

    # 显示所有
    ipcs
    # 只显示信号量 nsems信号量集中的信号量数
    ipcs -s
    # 只显示内存
    ipcs -m
    # 只显示消息队列
    ipcs -q
    # 获取系统信号量的最大值设置
    cat /proc/sys/kernel/sem
    sysctl kernel.sem

    DNS 域名解析问题

    # nameserver 8.8.8.8 #或其他域名服务器
    cat /etc/resolv.conf

    时间同步

    # 当前时间
    date
    #
    # SWXA.sansec.cn/10.0.8.18 本地电脑使用的时间同步服务器
    # 保持云平台的第一台服务器和上面一致
    # 保持云平台的其他服务器和第一台保持一致即可
    sudo ntpdate 10.0.8.18

    磁盘占用 删除文件但未释放空间

    # 实际的磁盘占用情况
    sudo df -h
    # 实际的文件大小 如果和上面的不匹配,说明有删除文件但是空间未被释放
    sudo du -lh --max-depth=1 /
    # 进程占用文件,但是文件已被删除,文件所占磁盘空间未被释放;重启进程可以释放;
    # 存在这种情况的例子就是,启动进程 > 日志文件 2>&1 这个日志文件被删了之后不能够有效释放
    sudo lsof | grep deleted
    - +

    Linux运维-常用

    内核/发行版

    # 内核 CPU架构
    uname -a
    # 发行版
    lsb_release -a

    删除多余的备份

    # 删除90之前的备份文件
    find /root/sh/bak/*.gz -mtime +90 -type f -exec rm -f {} \;
    # 删除60之前的备份文件
    find /root/sh/bak/*.gz -mtime +60 -type f -exec rm -f {} \;
    # 删除10之前的备份文件
    find /mnt/docker/tomcat/logs/*.log -mtime +10 -type f -exec rm -f {} \;

    文件/目录大小查看

    #查看当前目录总共占的容量。而不单独列出各子项占用的容量
    du -sh
    #查看当前目录下一级子文件和子目录占用的磁盘容量。
    du -lh --max-depth=1
    #按照文件大小 从小到大排序
    ls -hSlr
    #按照修改时间 从小到大排序
    ls -hlt

    网络带宽问题

    yum install libpcap nethogs
    nethogs -a
    lsof -i:被占用的端口号

    定时任务

    防火墙

    #检查防火墙 如果防火强修改了 记得重启docker
    systemctl status firewalld
    #
    firewall-cmd --list-ports

    #开启防火墙端口
    #
    firewall-cmd --permanent --add-port=9100/tcp && \
    firewall-cmd --permanent --add-port=9200/tcp && \
    firewall-cmd --permanent --add-port=9300/tcp && \
    firewall-cmd --reload
    #
    firewall-cmd --permanent --add-port=5044-5054/tcp && \
    firewall-cmd --reload
    #
    firewall-cmd --permanent --add-port=8090-8099/tcp && \
    firewall-cmd --reload

    #关闭防火墙端口
    firewall-cmd --permanent --remove-port=9100/tcp && \
    firewall-cmd --permanent --remove-port=9200/tcp && \
    firewall-cmd --permanent --remove-port=9300/tcp && \
    firewall-cmd --reload

    后台运行

    nohup python ./analyse_init_stocks.py > /dev/null 2>&1 &

    zip/tar 文件

    #
    yum install -y unzip zip
    # 只看不解压
    tar -tf xxx.tar.gz
    # 解压到当前目录
    tar -xzvf xxx.tar.gz
    # 解压到指定目录
    tar -xzvf xxx.tar.gz -C ./xxx/
    # 创建压缩文件
    tar -czvf ./xxx.tar.gz ./xxx

    centos 字符集问题

    1. CentOS7 及 Docker 配置中文字符集问题

    宝塔相关

    1. 如果不知道宝塔的管理员的用户名和密码,但是可以登录服务器,使用脚本 bt default 来获取管理员的用户名和密码。

    登录用户

    #
    w
    #
    who
    #
    whoami
    # 查看当前用户分组
    id [user]

    常用的 ls 命令

    #忽略某些文件名展示
    ll -h --ignore="*bak*"

    CPU

    #该服务器一共有几个物理CPU
    grep "physical id" /proc/cpuinfo | uniq | wc -l
    #该服务器一共有几个逻辑CPU
    grep "processor" /proc/cpuinfo | wc -l
    #查看cpu核心数
    cat /proc/cpuinfo| grep "cpu cores"| uniq
    #查看cpu详细信息
    lscpu
    #查看CPU位数
    getconf LONG_BIT
    # 列出CPU占用最多的5个进程
    ps -aux | sort -k3nr | head -5
    # P按照内存大小排序 c显示进程全称
    top

    apt-get

    #
    apt-get update
    #
    apt-get install vim

    系统盘符

    #查看系统支持的盘符,查看分区和磁盘
    lsblk
    #查看空间使用情况
    df -h
    #查看硬盘label(别名)磁盘文件类型
    blkid

    内存

    # 查看内存大小
    free -h  
    # 内存占用最多的5个进程
    ps -aux | sort -k4nr | head -5
    # >或M按照内存大小排序 c显示进程全称
    top

    操作系统版本

    #红帽系列 centos
    cat /etc/redhat-release
    #查看内核/操作系统/CPU信息:
    uname -a

    端口/连接

    #查看所有监听的端口
    netstat -lntp
    #查看已经建立的链接
    netstat -antp
    #
    yum list |grep telnet
    yum -y install telnet.x86_64
    telnet 172.19.74.146 9200
    # 根据监听端口查找进程,根据进程号查找进程命令
    netstat -tulnp | grep ':端口号'
    ss -tulnp | grep ':端口号'
    ps -f -p 99382|cat

    vi/vim 中文乱码

    #
    vi /etc/vimrc
    #在文件头增加如下内容
    set fileencodings=utf-8,gb2312,gbk,gb18030
    set termencoding=utf-8
    set fileformats=unix
    set encoding=prc

    htop/top

    #支持鼠标 支持左右方向键
    htop
    #
    H 只展示进程/显示线程
    h, ? F1查看htop使用说明
    S F2 htop 设定
    / F3 搜索进程
    \ F4 增量进程过滤器
    t F5 显示树形结构
    <, > F6 选择排序方式
    [ F7 可减少nice值可以提高对应进程的优先级
    ] F8 可增加nice值,降低对应进程的优先级
    k F9 可对进程传递信号
    q F10 结束htop
    u 只显示一个给定的用户的过程
    U 取消标记所有的进程
    H 显示或隐藏用户线程
    K 显示或隐藏内核线程
    F 跟踪进程
    P 按CPU 使用排序
    M 按内存使用排序
    T 按Time+ 使用排序
    l 显示进程打开的文件
    I 倒转排序顺序
    s 选择某进程,按s:用strace追踪进程的系统调用

    grep

    #
    less user-func-flow-for-res.2022-03-11.log | grep -E '61.166.240.34' |grep get | more


    pstree

    #pstree 命令是以树形结构显示程序和进程之间的关系
    man pstree
    #展示进程命令行
    pstree -a

    创建大文件

    fallocate -l 1G largefile
    truncate -s 1G largefile

    ulimit

    ulimit -a
    ulimit -n
    ulimit -u

    ipcs 进程通信【共享内存、消息队列、信号量】

    ipcs命令是一个用于显示系统中进程间通信(IPC)设施状态的命令行工具。

    ipcs命令主要显示消息队队列、共享内存和信号量的信息。这些IPC设施是操作系统提供给进程间进行数据交换的机制。在处理多线程或者多进程问题时,它能够提供大量有价值的信息。

    消息队列(Message Queues)

    消息队列是一个链表,存放在内核中并由消息队列标识符标识。Linux内核维护了一个消息队列和相关操作函数的集合,用户进程可以调用操作函数完成消息发送和接收。

    信号量(Semaphores)

    信号量主要作为进程间以及同一进程不同线程之间的同步手段。

    共享内存(Shared Memories)

    让任何需要的进程都能访问的内存区域。因为多个进程可以同时操作,所以必须通过某种同步操作,如信号量,来确保进程间互不干扰。

    # 显示所有
    ipcs
    # 只显示信号量 nsems信号量集中的信号量数
    ipcs -s
    # 只显示内存
    ipcs -m
    # 只显示消息队列
    ipcs -q
    # 获取系统信号量的最大值设置
    cat /proc/sys/kernel/sem
    sysctl kernel.sem

    DNS 域名解析问题

    # nameserver 8.8.8.8 #或其他域名服务器
    cat /etc/resolv.conf

    时间同步

    # 当前时间
    date
    #
    # SWXA.sansec.cn/10.0.8.18 本地电脑使用的时间同步服务器
    # 保持云平台的第一台服务器和上面一致
    # 保持云平台的其他服务器和第一台保持一致即可
    sudo ntpdate 10.0.8.18

    磁盘占用 删除文件但未释放空间

    # 实际的磁盘占用情况
    sudo df -h
    # 实际的文件大小 如果和上面的不匹配,说明有删除文件但是空间未被释放
    sudo du -lh --max-depth=1 /
    # 进程占用文件,但是文件已被删除,文件所占磁盘空间未被释放;重启进程可以释放;
    # 存在这种情况的例子就是,启动进程 > 日志文件 2>&1 这个日志文件被删了之后不能够有效释放
    sudo lsof | grep deleted
    + \ No newline at end of file diff --git "a/docs/study/devops/Linux\350\277\220\347\273\264-\347\233\221\346\216\247\346\225\260\346\215\256/index.html" "b/docs/study/devops/Linux\350\277\220\347\273\264-\347\233\221\346\216\247\346\225\260\346\215\256/index.html" index fa98e604f..1129b4302 100644 --- "a/docs/study/devops/Linux\350\277\220\347\273\264-\347\233\221\346\216\247\346\225\260\346\215\256/index.html" +++ "b/docs/study/devops/Linux\350\277\220\347\273\264-\347\233\221\346\216\247\346\225\260\346\215\256/index.html" @@ -11,13 +11,13 @@ - +
    -

    Linux运维-监控数据

    系统平均负载和CPU使用率

    现实工作中,我们经常容易把平均负载值和CPU使用率混淆,所以在这里,我也做一个区分。

    可能你会疑惑,既然平均负载代表的是活跃进程数,那平均负载高了,不就意味着CPU使用率高吗?

    我们还是要回到平均负载的含义上来,平均负载是指单位时间内,处于可运行状态和不可中断状态的进程数。所以,它不仅包括了正在使用CPU的进程,还包括等待CPU和等待I/O的进程

    而CPU使用率,是单位时间内CPU繁忙情况的统计,跟平均负载并不一定完全对应。比如:

    • CPU密集型进程,使用大量CPU会导致平均负载升高,此时两者是一致的。
    • I/O密集型进程,等待I/O也会导致平均负载升高,但CPU使用率不一定很高。
    • 大量等待CPU的进程调度也会导致平均负载升高,此时的CPU使用率也会比较高。

    那么,在实际生产环境中,平均负载多高时,需要我们重点关注呢?

    在我看来,当平均负载高于逻辑CPU数量的70%的时候,你就应该分析排查负载高的问题了。一旦负载过高,就可能导致进程响应变慢,进而影响服务的正常功能。

    但是,70%这个数字并不是绝对的,最推荐的方法,还是把系统的平均负载监控起来,然后根据更多的历史数据,判断负载的变化趋势。当发现负载有明显升高趋势时,比如说负载翻倍了,你再去做分析和调查。

    获取系统平均负载

    cat /proc/loadavg
    # 0.32 0.29 0.13 1/357 1909

    一般来说每个CPU的当前活动进程数不大于3那么系统的性能就是良好的。如果每个CPU的任务数大于5,那么就表明机器的性能有严重问题。

    对于上面的例子来说,假设系统有8个CPU,那么其每个CPU在1分钟内的进程数为:0.32/8=0.04。

    如何获取CPU数量呢?不同的操作系统的可能不太一样。

    # Euler OS 2.0 SP8
    cat /proc/cpuinfo | grep processor | wc -l
    # Centos 7
    # Ubuntu 22.04.3 LTS
    cat /proc/cpuinfo | grep "model name" | wc -l
    - +

    Linux运维-监控数据

    系统平均负载和CPU使用率

    现实工作中,我们经常容易把平均负载值和CPU使用率混淆,所以在这里,我也做一个区分。

    可能你会疑惑,既然平均负载代表的是活跃进程数,那平均负载高了,不就意味着CPU使用率高吗?

    我们还是要回到平均负载的含义上来,平均负载是指单位时间内,处于可运行状态和不可中断状态的进程数。所以,它不仅包括了正在使用CPU的进程,还包括等待CPU和等待I/O的进程

    而CPU使用率,是单位时间内CPU繁忙情况的统计,跟平均负载并不一定完全对应。比如:

    • CPU密集型进程,使用大量CPU会导致平均负载升高,此时两者是一致的。
    • I/O密集型进程,等待I/O也会导致平均负载升高,但CPU使用率不一定很高。
    • 大量等待CPU的进程调度也会导致平均负载升高,此时的CPU使用率也会比较高。

    那么,在实际生产环境中,平均负载多高时,需要我们重点关注呢?

    在我看来,当平均负载高于逻辑CPU数量的70%的时候,你就应该分析排查负载高的问题了。一旦负载过高,就可能导致进程响应变慢,进而影响服务的正常功能。

    但是,70%这个数字并不是绝对的,最推荐的方法,还是把系统的平均负载监控起来,然后根据更多的历史数据,判断负载的变化趋势。当发现负载有明显升高趋势时,比如说负载翻倍了,你再去做分析和调查。

    获取系统平均负载

    cat /proc/loadavg
    # 0.32 0.29 0.13 1/357 1909

    一般来说每个CPU的当前活动进程数不大于3那么系统的性能就是良好的。如果每个CPU的任务数大于5,那么就表明机器的性能有严重问题。

    对于上面的例子来说,假设系统有8个CPU,那么其每个CPU在1分钟内的进程数为:0.32/8=0.04。

    如何获取CPU数量呢?不同的操作系统的可能不太一样。

    # Euler OS 2.0 SP8
    cat /proc/cpuinfo | grep processor | wc -l
    # Centos 7
    # Ubuntu 22.04.3 LTS
    cat /proc/cpuinfo | grep "model name" | wc -l
    + \ No newline at end of file diff --git "a/docs/study/devops/Linux\350\277\220\347\273\264-\350\207\252\345\220\257/index.html" "b/docs/study/devops/Linux\350\277\220\347\273\264-\350\207\252\345\220\257/index.html" index 0a83a63f1..16a9fa9a9 100644 --- "a/docs/study/devops/Linux\350\277\220\347\273\264-\350\207\252\345\220\257/index.html" +++ "b/docs/study/devops/Linux\350\277\220\347\273\264-\350\207\252\345\220\257/index.html" @@ -11,13 +11,13 @@ - +
    -

    Linux运维-自启

    systemd和init是Linux系统中用于启动和管理系统的两个不同工具。

    init

    它是Linux内核启动后的第一个用户进程,用于初始化和管理系统服务和守护进程。init使用service命令来管理服务,如启动、停止和重启服务。init的主要缺点是启动时间长,因为它在启动过程中是串行的,这意味着必须依次启动每个服务。此外,init的配置脚本较为复杂,需要自行处理各种情况,这可能导致脚本变得很长。

    systemd

    它是较新的Linux系统守护进程管理工具,在CentOS 7及更高版本中,systemd取代了init作为系统的默认进程管理器。systemd提供了并行启动服务的能力,使用socket和D-Bus激活机制,这显著提高了系统的启动速度。systemd还支持SysV和LSB初始化脚本,并能够管理系统的各项功能,如日志记录、网络配置、电源管理等。systemd的核心概念包括基于依赖关系的服务控制和统一任务定义,这使得管理更加高效和简化。

    Docker systemd

    - +

    Linux运维-自启

    systemd和init是Linux系统中用于启动和管理系统的两个不同工具。

    init

    它是Linux内核启动后的第一个用户进程,用于初始化和管理系统服务和守护进程。init使用service命令来管理服务,如启动、停止和重启服务。init的主要缺点是启动时间长,因为它在启动过程中是串行的,这意味着必须依次启动每个服务。此外,init的配置脚本较为复杂,需要自行处理各种情况,这可能导致脚本变得很长。

    systemd

    它是较新的Linux系统守护进程管理工具,在CentOS 7及更高版本中,systemd取代了init作为系统的默认进程管理器。systemd提供了并行启动服务的能力,使用socket和D-Bus激活机制,这显著提高了系统的启动速度。systemd还支持SysV和LSB初始化脚本,并能够管理系统的各项功能,如日志记录、网络配置、电源管理等。systemd的核心概念包括基于依赖关系的服务控制和统一任务定义,这使得管理更加高效和简化。

    Docker systemd

    + \ No newline at end of file diff --git "a/docs/study/devops/Linux\350\277\220\347\273\264-\351\253\230\345\271\266\345\217\221/index.html" "b/docs/study/devops/Linux\350\277\220\347\273\264-\351\253\230\345\271\266\345\217\221/index.html" index a9e24e247..28af6d30b 100644 --- "a/docs/study/devops/Linux\350\277\220\347\273\264-\351\253\230\345\271\266\345\217\221/index.html" +++ "b/docs/study/devops/Linux\350\277\220\347\273\264-\351\253\230\345\271\266\345\217\221/index.html" @@ -11,13 +11,13 @@ - +
    -

    Linux运维-高并发

    最大文件描述符

    ulimit -n 控制进程级别能够打开的文件句柄的数量。提供对shell及其启动的进程的可用文件句柄的控制。这是进程级别的。

    #最大文件描述符 100W
    ulimit -SHn 1000000
    echo "ulimit -SHn 1000000" >> /etc/rc.d/rc.local
    source /etc/rc.d/rc.local
    ulimit -n

    max-file

    表示系统级别的能够打开的文件句柄的数量。是对整个系统的限制,并不是针对用户的。

    #查看系统级别的能够打开的文件句柄的数量,Centos7默认是794168
    cat /proc/sys/fs/file-max
    #
    vim /etc/sysctl.conf
    #
    fs.file-max = 1000000
    #然后执行命令,使修改配置立即生效:
    sysctl -p

    内核参数优化/etc/sysctl.conf

    #关闭ipv6
    net.ipv6.conf.all.disable_ipv6 = 1
    net.ipv6.conf.default.disable_ipv6 = 1

    #决定检查过期多久邻居条目
    net.ipv4.neigh.default.gc_stale_time=120

    #使用arp_announce / arp_ignore解决ARP映射问题
    net.ipv4.conf.default.arp_announce = 2
    net.ipv4.conf.all.arp_announce=2
    net.ipv4.conf.lo.arp_announce=2 # 避免放大攻击
    net.ipv4.icmp_echo_ignore_broadcasts = 1 # 开启恶意icmp错误消息保护
    net.ipv4.icmp_ignore_bogus_error_responses = 1

    #处理无源路由的包
    net.ipv4.conf.all.accept_source_route = 0
    net.ipv4.conf.default.accept_source_route = 0

    #core文件名中添加pid作为扩展名
    kernel.core_uses_pid = 1 # 开启SYN洪水攻击保护
    net.ipv4.tcp_syncookies = 1

    #修改消息队列长度
    kernel.msgmnb = 65536
    kernel.msgmax = 65536

    #timewait的数量,默认180000
    net.ipv4.tcp_max_tw_buckets = 6000
    net.ipv4.tcp_sack = 1
    net.ipv4.tcp_window_scaling = 1
    net.ipv4.tcp_rmem = 4096 87380 4194304
    net.ipv4.tcp_wmem = 4096 16384 4194304
    net.core.wmem_default = 8388608
    net.core.rmem_default = 8388608
    net.core.rmem_max = 16777216
    net.core.wmem_max = 16777216

    #限制仅仅是为了防止简单的DoS 攻击
    net.ipv4.tcp_max_orphans = 3276800

    #未收到客户端确认信息的连接请求的最大值
    net.ipv4.tcp_max_syn_backlog = 262144
    net.ipv4.tcp_timestamps = 0

    #内核放弃建立连接之前发送SYNACK 包的数量
    net.ipv4.tcp_synack_retries = 1

    #内核放弃建立连接之前发送SYN 包的数量
    net.ipv4.tcp_syn_retries = 1

    #启用timewait 快速回收
    net.ipv4.tcp_tw_recycle = 1

    #开启重用。允许将TIME-WAIT sockets 重新用于新的TCP 连接
    net.ipv4.tcp_tw_reuse = 1
    net.ipv4.tcp_mem = 94500000 915000000 927000000
    net.ipv4.tcp_fin_timeout = 1

    #然后执行以下命令重载配置
    sysctl -p
    - +

    Linux运维-高并发

    最大文件描述符

    ulimit -n 控制进程级别能够打开的文件句柄的数量。提供对shell及其启动的进程的可用文件句柄的控制。这是进程级别的。

    #最大文件描述符 100W
    ulimit -SHn 1000000
    echo "ulimit -SHn 1000000" >> /etc/rc.d/rc.local
    source /etc/rc.d/rc.local
    ulimit -n

    max-file

    表示系统级别的能够打开的文件句柄的数量。是对整个系统的限制,并不是针对用户的。

    #查看系统级别的能够打开的文件句柄的数量,Centos7默认是794168
    cat /proc/sys/fs/file-max
    #
    vim /etc/sysctl.conf
    #
    fs.file-max = 1000000
    #然后执行命令,使修改配置立即生效:
    sysctl -p

    内核参数优化/etc/sysctl.conf

    #关闭ipv6
    net.ipv6.conf.all.disable_ipv6 = 1
    net.ipv6.conf.default.disable_ipv6 = 1

    #决定检查过期多久邻居条目
    net.ipv4.neigh.default.gc_stale_time=120

    #使用arp_announce / arp_ignore解决ARP映射问题
    net.ipv4.conf.default.arp_announce = 2
    net.ipv4.conf.all.arp_announce=2
    net.ipv4.conf.lo.arp_announce=2 # 避免放大攻击
    net.ipv4.icmp_echo_ignore_broadcasts = 1 # 开启恶意icmp错误消息保护
    net.ipv4.icmp_ignore_bogus_error_responses = 1

    #处理无源路由的包
    net.ipv4.conf.all.accept_source_route = 0
    net.ipv4.conf.default.accept_source_route = 0

    #core文件名中添加pid作为扩展名
    kernel.core_uses_pid = 1 # 开启SYN洪水攻击保护
    net.ipv4.tcp_syncookies = 1

    #修改消息队列长度
    kernel.msgmnb = 65536
    kernel.msgmax = 65536

    #timewait的数量,默认180000
    net.ipv4.tcp_max_tw_buckets = 6000
    net.ipv4.tcp_sack = 1
    net.ipv4.tcp_window_scaling = 1
    net.ipv4.tcp_rmem = 4096 87380 4194304
    net.ipv4.tcp_wmem = 4096 16384 4194304
    net.core.wmem_default = 8388608
    net.core.rmem_default = 8388608
    net.core.rmem_max = 16777216
    net.core.wmem_max = 16777216

    #限制仅仅是为了防止简单的DoS 攻击
    net.ipv4.tcp_max_orphans = 3276800

    #未收到客户端确认信息的连接请求的最大值
    net.ipv4.tcp_max_syn_backlog = 262144
    net.ipv4.tcp_timestamps = 0

    #内核放弃建立连接之前发送SYNACK 包的数量
    net.ipv4.tcp_synack_retries = 1

    #内核放弃建立连接之前发送SYN 包的数量
    net.ipv4.tcp_syn_retries = 1

    #启用timewait 快速回收
    net.ipv4.tcp_tw_recycle = 1

    #开启重用。允许将TIME-WAIT sockets 重新用于新的TCP 连接
    net.ipv4.tcp_tw_reuse = 1
    net.ipv4.tcp_mem = 94500000 915000000 927000000
    net.ipv4.tcp_fin_timeout = 1

    #然后执行以下命令重载配置
    sysctl -p
    + \ No newline at end of file diff --git a/docs/study/devops/SHELL/index.html b/docs/study/devops/SHELL/index.html index b89afb5e3..15758e502 100644 --- a/docs/study/devops/SHELL/index.html +++ b/docs/study/devops/SHELL/index.html @@ -11,13 +11,13 @@ - +
    -

    SHELL

    SHELL脚本参数

    位置参数

    脚本通过位置参数来获取命令行中的参数。位置参数通过标准数字表示,例如$0代表脚本名称,$1代表第一个参数,$2代表第二个参数,依此类推。

    参数计数

    使用$#可以测试执行脚本时包含的命令行参数个数。如果无参数,$#为0。

    获取所有数据:

    使用$*可以将命令行中提供的所有参数作为一个单词处理,它将多个参数看成一个参数。使用$@则将命令行中提供的所有参数作为同一个字符串中的多个单词处理。

    移位:

    使用shift命令可以改变命令行参数的相对位置。默认为每个参数变量左移一个位置,$0不变。

    处理选项:

    选项是由破折号引导的单个字母,用于更改命令的行为。例如,-n参数可以用来检查参数是否存在。

    - +

    SHELL

    SHELL脚本参数

    位置参数

    脚本通过位置参数来获取命令行中的参数。位置参数通过标准数字表示,例如$0代表脚本名称,$1代表第一个参数,$2代表第二个参数,依此类推。

    参数计数

    使用$#可以测试执行脚本时包含的命令行参数个数。如果无参数,$#为0。

    获取所有数据:

    使用$*可以将命令行中提供的所有参数作为一个单词处理,它将多个参数看成一个参数。使用$@则将命令行中提供的所有参数作为同一个字符串中的多个单词处理。

    移位:

    使用shift命令可以改变命令行参数的相对位置。默认为每个参数变量左移一个位置,$0不变。

    处理选项:

    选项是由破折号引导的单个字母,用于更改命令的行为。例如,-n参数可以用来检查参数是否存在。

    + \ No newline at end of file diff --git a/docs/study/devops/ansible/index.html b/docs/study/devops/ansible/index.html index 29e267d8e..eb8b02c86 100644 --- a/docs/study/devops/ansible/index.html +++ b/docs/study/devops/ansible/index.html @@ -11,13 +11,13 @@ - +
    -

    ansible

    常用

    # 获取最新时间 看时间是否同步
    ansible ssh_host -o -m shell -a 'date'
    ansible ssh_host -b -o -m shell -a 'sudo ntpdate 10.0.8.18'
    #
    cat /opt/ansible/ansible-2.9.9/hosts
    cat /opt/ansible/var_file.yaml
    ansible pt_host -o -e @/opt/ansible/var_file.yaml -m shell -a 'echo {{odbc_type}}'

    参考

    - +

    ansible

    常用

    # 获取最新时间 看时间是否同步
    ansible ssh_host -o -m shell -a 'date'
    ansible ssh_host -b -o -m shell -a 'sudo ntpdate 10.0.8.18'
    #
    cat /opt/ansible/ansible-2.9.9/hosts
    cat /opt/ansible/var_file.yaml
    ansible pt_host -o -e @/opt/ansible/var_file.yaml -m shell -a 'echo {{odbc_type}}'

    参考

    + \ No newline at end of file diff --git a/docs/study/devops/centos-gninx-app/index.html b/docs/study/devops/centos-gninx-app/index.html index 5cdc1b880..c544d83e8 100644 --- a/docs/study/devops/centos-gninx-app/index.html +++ b/docs/study/devops/centos-gninx-app/index.html @@ -11,13 +11,13 @@ - +
    -

    centos-nginx


    mkdir -p /root/iot-cloud-frontend/html

    yum install nginx
    systemctl start nginx
    # 配置文件目录 /etc/nginx
    # 默认 root /usr/share/nginx/html;
    # 修改成 root /root/iot-cloud-frontend/html;
    nginx -s reload

    # 如果报错403 说明启动nginx的用户和文件不一致 需要修改
    - +

    centos-nginx


    mkdir -p /root/iot-cloud-frontend/html

    yum install nginx
    systemctl start nginx
    # 配置文件目录 /etc/nginx
    # 默认 root /usr/share/nginx/html;
    # 修改成 root /root/iot-cloud-frontend/html;
    nginx -s reload

    # 如果报错403 说明启动nginx的用户和文件不一致 需要修改
    + \ No newline at end of file diff --git a/docs/study/devops/centos-jdk17-app/index.html b/docs/study/devops/centos-jdk17-app/index.html index 9bd0f5f39..7a9d8196d 100644 --- a/docs/study/devops/centos-jdk17-app/index.html +++ b/docs/study/devops/centos-jdk17-app/index.html @@ -11,13 +11,13 @@ - +
    -

    centos-jdk17-app

    安装 jdk

    #需要看cpu架构 x64
    uname -a
    cd ~
    mkdir iot-cloud-backend
    cd iot-cloud-backend
    wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz
    tar -zxvf jdk-17_linux-x64_bin.tar.gz

    #需要看cpu架构 aarch64
    uname -a
    cd ~
    mkdir iot-cloud-backend
    cd iot-cloud-backend
    wget https://download.oracle.com/java/17/latest/jdk-17_linux-aarch64_bin.tar.gz
    tar -zxvf jdk-17_linux-aarch64_bin.tar.gz

    配置 java

    vim /etc/profile

    # 增加如下
    export JAVA_HOME=/root/iot-cloud-backend/jdk-17.0.8;
    export PATH=$JAVA_HOME/bin:$PATH;
    export CLASSPATH=.:$JAVA_HOME/lib;

    # 保存后
    source /etc/profile

    配置应用所需的环境变量

    vim ~/.bash_profile

    # 增加如下
    export IOT_MYSQL_HOST=127.0.0.1
    export IOT_MYSQL_PORT=13306
    # HIVEMQ_HOME=/Users/weic/Documents/GITREP/GITHUB/net-cloud-backend/hivemq
    export IOT_ALIYUN_KEY=xxx
    export IOT_ALIYUN_SECRET=xxx
    export IOT_SMS_REAL=0

    #保存后
    source /etc/profile

    创建 hivemq 文件夹

    mkdir -p /root/iot-cloud-backend/hivemq/embedded-config-folder
    mkdir -p /root/iot-cloud-backend/hivemq/embedded-data-folder
    mkdir -p /root/iot-cloud-backend/hivemq/embedded-extensions-folder
    # config下面有三个配置文件需要传过去

    启动应用

    # 启动
    java -jar application-0.0.1-SNAPSHOT.jar > iot-cloud-backend.log &

    启动脚本

    #!/bin/sh
    # 查找Java进程,并将结果保存到变量中
    java_pid=$(ps aux | grep java | grep application | grep -v grep | awk '{print $2}')

    if [ -n "$java_pid" ]; then
    echo "已存在 $java_pid"
    else
    java -jar application-0.0.1-SNAPSHOT.jar > net-cloud-backend.log &
    echo "启动中..."
    tail -f net-cloud-backend.log
    fi

    停止脚本

    #!/bin/sh

    # 查找Java进程,并将结果保存到变量中
    java_pid=$(ps aux | grep java | grep application | grep -v grep | awk '{print $2}')

    if [ -n "$java_pid" ]; then
    echo "正在终止Java进程 $java_pid"
    kill -9 $java_pid
    echo "Java进程已终止"
    else
    echo "未找到Java进程"
    fi
    - +

    centos-jdk17-app

    安装 jdk

    #需要看cpu架构 x64
    uname -a
    cd ~
    mkdir iot-cloud-backend
    cd iot-cloud-backend
    wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz
    tar -zxvf jdk-17_linux-x64_bin.tar.gz

    #需要看cpu架构 aarch64
    uname -a
    cd ~
    mkdir iot-cloud-backend
    cd iot-cloud-backend
    wget https://download.oracle.com/java/17/latest/jdk-17_linux-aarch64_bin.tar.gz
    tar -zxvf jdk-17_linux-aarch64_bin.tar.gz

    配置 java

    vim /etc/profile

    # 增加如下
    export JAVA_HOME=/root/iot-cloud-backend/jdk-17.0.8;
    export PATH=$JAVA_HOME/bin:$PATH;
    export CLASSPATH=.:$JAVA_HOME/lib;

    # 保存后
    source /etc/profile

    配置应用所需的环境变量

    vim ~/.bash_profile

    # 增加如下
    export IOT_MYSQL_HOST=127.0.0.1
    export IOT_MYSQL_PORT=13306
    # HIVEMQ_HOME=/Users/weic/Documents/GITREP/GITHUB/net-cloud-backend/hivemq
    export IOT_ALIYUN_KEY=xxx
    export IOT_ALIYUN_SECRET=xxx
    export IOT_SMS_REAL=0

    #保存后
    source /etc/profile

    创建 hivemq 文件夹

    mkdir -p /root/iot-cloud-backend/hivemq/embedded-config-folder
    mkdir -p /root/iot-cloud-backend/hivemq/embedded-data-folder
    mkdir -p /root/iot-cloud-backend/hivemq/embedded-extensions-folder
    # config下面有三个配置文件需要传过去

    启动应用

    # 启动
    java -jar application-0.0.1-SNAPSHOT.jar > iot-cloud-backend.log &

    启动脚本

    #!/bin/sh
    # 查找Java进程,并将结果保存到变量中
    java_pid=$(ps aux | grep java | grep application | grep -v grep | awk '{print $2}')

    if [ -n "$java_pid" ]; then
    echo "已存在 $java_pid"
    else
    java -jar application-0.0.1-SNAPSHOT.jar > net-cloud-backend.log &
    echo "启动中..."
    tail -f net-cloud-backend.log
    fi

    停止脚本

    #!/bin/sh

    # 查找Java进程,并将结果保存到变量中
    java_pid=$(ps aux | grep java | grep application | grep -v grep | awk '{print $2}')

    if [ -n "$java_pid" ]; then
    echo "正在终止Java进程 $java_pid"
    kill -9 $java_pid
    echo "Java进程已终止"
    else
    echo "未找到Java进程"
    fi
    + \ No newline at end of file diff --git a/docs/study/devops/index.html b/docs/study/devops/index.html index 1c996652b..e320948bd 100644 --- a/docs/study/devops/index.html +++ b/docs/study/devops/index.html @@ -11,13 +11,13 @@ - + - +
    + \ No newline at end of file diff --git "a/docs/study/devops/jar\350\277\220\347\273\264-\347\233\221\346\216\247/index.html" "b/docs/study/devops/jar\350\277\220\347\273\264-\347\233\221\346\216\247/index.html" index a11bb0918..70b42ade0 100644 --- "a/docs/study/devops/jar\350\277\220\347\273\264-\347\233\221\346\216\247/index.html" +++ "b/docs/study/devops/jar\350\277\220\347\273\264-\347\233\221\346\216\247/index.html" @@ -11,7 +11,7 @@ - + @@ -28,8 +28,8 @@ l gcoldcapacity (老区大小) l gcpermcapacity (永久区大小) l gcutil (GC统计汇总) -l printcompilation (HotSpot编译统计)

    #
    jstat -gcutil 22573 5000

    参考

    1. jstat命令详解
    - +l printcompilation (HotSpot编译统计)

    #
    jstat -gcutil 22573 5000

    参考

    1. jstat命令详解
    + \ No newline at end of file diff --git a/docs/study/devops/ssh/index.html b/docs/study/devops/ssh/index.html index 6e9341e53..733787356 100644 --- a/docs/study/devops/ssh/index.html +++ b/docs/study/devops/ssh/index.html @@ -11,13 +11,13 @@ - +
    -

    ssh

    ssh连接不上

    现场描述:

    使用ssh ccsp@10.0.120.44 命令后,过了很久才返回

    Connection closed by 10.0.120.44 port 22

    有的服务器是可以,当时连接不上的这个服务器是Ubuntu,10.0.120.44所在操作系统是欧拉。

    解决方案:

    我一度怀疑是ssh的问题,因为有的服务器能够正常的连接,而且用自己的windows客户端都是可以正常连接的。

    使用命令

    ssh -v  ccsp@10.0.120.44

    输出打印日志,发现了一点踪迹,

    debug1: Unspecified GSS failure.  Minor code may provide more information
    No Kerberos credentials available (default cache: FILE:/tmp/krb5cc_994)

    解决方案

    ssh -v -o GSSAPIAuthentication=no ccsp@10.0.120.44

    增加参数 禁用GSSAPIAuthentication

    原因是client和server的ssh版本是不一致的,client的版本有点低。

    配置ssh免密登录

    配置SSH免密登录的步骤如下:

    生成SSH密钥对。在本地计算机的终端或命令提示符中执行以下命令来生成SSH密钥对:ssh-keygen -t rsa,这将创建一个私钥(id_rsa)和一个公钥(id_rsa.pub)。

    #
    ssh-keygen -t rsa
    #
    ssh-copy-id username@remote_host
    # 特殊端口
    ssh-copy-id -p 10212 username@remote_host
    #

    将公钥复制到目标服务器。使用ssh-copy-id命令将公钥复制到远程服务器上,例如ssh-copy-id username@remote_host,其中username是远程服务器的用户名,remote_host是远程服务器的地址或域名。

    测试免密登录。在本地计算机上执行ssh命令,无需输入密码,例如ssh username@remote_host,如果一切正常,则表示SSH免密登录已成功配置。

    此外,在目标服务器上,可能需要配置SSH服务以允许免密登录,这通常涉及编辑/etc/ssh/sshd_config文件,并添加RSAAuthentication和PubkeyAuthentication选项,并重启SSH服务。

    - +

    ssh

    ssh连接不上

    现场描述:

    使用ssh ccsp@10.0.120.44 命令后,过了很久才返回

    Connection closed by 10.0.120.44 port 22

    有的服务器是可以,当时连接不上的这个服务器是Ubuntu,10.0.120.44所在操作系统是欧拉。

    解决方案:

    我一度怀疑是ssh的问题,因为有的服务器能够正常的连接,而且用自己的windows客户端都是可以正常连接的。

    使用命令

    ssh -v  ccsp@10.0.120.44

    输出打印日志,发现了一点踪迹,

    debug1: Unspecified GSS failure.  Minor code may provide more information
    No Kerberos credentials available (default cache: FILE:/tmp/krb5cc_994)

    解决方案

    ssh -v -o GSSAPIAuthentication=no ccsp@10.0.120.44

    增加参数 禁用GSSAPIAuthentication

    原因是client和server的ssh版本是不一致的,client的版本有点低。

    配置ssh免密登录

    配置SSH免密登录的步骤如下:

    生成SSH密钥对。在本地计算机的终端或命令提示符中执行以下命令来生成SSH密钥对:ssh-keygen -t rsa,这将创建一个私钥(id_rsa)和一个公钥(id_rsa.pub)。

    #
    ssh-keygen -t rsa
    #
    ssh-copy-id username@remote_host
    # 特殊端口
    ssh-copy-id -p 10212 username@remote_host
    #

    将公钥复制到目标服务器。使用ssh-copy-id命令将公钥复制到远程服务器上,例如ssh-copy-id username@remote_host,其中username是远程服务器的用户名,remote_host是远程服务器的地址或域名。

    测试免密登录。在本地计算机上执行ssh命令,无需输入密码,例如ssh username@remote_host,如果一切正常,则表示SSH免密登录已成功配置。

    此外,在目标服务器上,可能需要配置SSH服务以允许免密登录,这通常涉及编辑/etc/ssh/sshd_config文件,并添加RSAAuthentication和PubkeyAuthentication选项,并重启SSH服务。

    + \ No newline at end of file diff --git "a/docs/study/devops/\351\223\276\350\267\257\350\277\275\350\270\252\347\233\221\346\216\247/index.html" "b/docs/study/devops/\351\223\276\350\267\257\350\277\275\350\270\252\347\233\221\346\216\247/index.html" index 8a5eeac66..0f1d2465a 100644 --- "a/docs/study/devops/\351\223\276\350\267\257\350\277\275\350\270\252\347\233\221\346\216\247/index.html" +++ "b/docs/study/devops/\351\223\276\350\267\257\350\277\275\350\270\252\347\233\221\346\216\247/index.html" @@ -11,13 +11,13 @@ - + - +
    + \ No newline at end of file diff --git a/docs/study/docker/Docker-compose/index.html b/docs/study/docker/Docker-compose/index.html index 76ec9a4e8..149baf902 100644 --- a/docs/study/docker/Docker-compose/index.html +++ b/docs/study/docker/Docker-compose/index.html @@ -11,13 +11,13 @@ - +
    -

    Docker Compose

    定义

    Docker 是一个开源的容器引擎,它有助于更快地交付应用。方便快捷已经是 Docker 的最大优势,过去需要用数天乃至数周的任务,在 Docker 容器的处理下,只需要数秒就能完成。

    为什么要用 Docker

    1. 一致的运行环境:Docker 的镜像提供了除内核外完整的运行时环境,确保了应用运行环境一致性。
    2. 持续交付和部署:使用 Docker 可以通过定制应用镜像来实现持续集成、持续交付、部署。一次创建或配置,可以在任意地方正常运行。
    3. 更轻松的迁移:Docker 确保了执行环境的一致性,使得应用的迁移更加容易。Docker 可以在很多平台上运行,无论是物理机、虚拟机、公有云、私有云,甚至是笔记本,其运行结果是一致的。
    4. 更快速的启动时间:Docker 容器应用,由于直接运行于宿主内核,无需启动完整的操作系统,因此可以做到秒级、甚至毫秒级的启动时间。
    5. 更高效的利用系统资源:由于容器不需要进行硬件虚拟以及运行完整操作系统等额外开销,Docker 对系统资源的利用率更高。

    Docker 基本组成

    1. 镜像(Images)
    2. 容器(Container)
    3. 镜像仓库(Registry)

    常用命令

    1. docker ps
    2. docker ps -a
    3. docker start xxx
    4. dcoker stop xxx
    5. docker rm xxx
    6. docker rmi xxx
    7. docker save -o ./xxx.tar xxx 导出镜像
    8. docker load -i xxx.tar 导入镜像
    9. docker logs
    10. docker inspect xxx 查看容器详细信息
    11. docker port xxx 列出或指定容器端口映射
    12. docker cp [dir] xxx:[dir]
    13. docker diff xxx 查看容器和镜像的差异
    14. docker kill 容器 id 强制停止容器
    15. docker container logs 容器 id:查看容器日志
    16. docker top 容器 id:查看容器里的进程

    Docker Compose

    Docker Compose 是 docker 提供的一个命令行工具,用来定义和运行由多个容器组成的应用。使用 compose,我们可以通过 YAML 文件声明式的定义应用程序的各个服务,并由单个命令完成应用的创建和启动。

    安装

    #需要先把python3和pip3安装好
    pip3 install docker-compose
    docker-compose --version

    常用命令

    1. docker-compose up -d   后台启动
    2. docker-compose ps/stop/start/restart/rm
    3. docker-compose scale service=num  设置指定服务运行的容器个数。通过 service=num 的参数来设置数量

    问题处理

    1. python 安装 pandas 库出现 No module named ‘_lzma’
    2. docker 之网络配置
    3. Docker 入门之 docker-compose
    - +

    Docker Compose

    定义

    Docker 是一个开源的容器引擎,它有助于更快地交付应用。方便快捷已经是 Docker 的最大优势,过去需要用数天乃至数周的任务,在 Docker 容器的处理下,只需要数秒就能完成。

    为什么要用 Docker

    1. 一致的运行环境:Docker 的镜像提供了除内核外完整的运行时环境,确保了应用运行环境一致性。
    2. 持续交付和部署:使用 Docker 可以通过定制应用镜像来实现持续集成、持续交付、部署。一次创建或配置,可以在任意地方正常运行。
    3. 更轻松的迁移:Docker 确保了执行环境的一致性,使得应用的迁移更加容易。Docker 可以在很多平台上运行,无论是物理机、虚拟机、公有云、私有云,甚至是笔记本,其运行结果是一致的。
    4. 更快速的启动时间:Docker 容器应用,由于直接运行于宿主内核,无需启动完整的操作系统,因此可以做到秒级、甚至毫秒级的启动时间。
    5. 更高效的利用系统资源:由于容器不需要进行硬件虚拟以及运行完整操作系统等额外开销,Docker 对系统资源的利用率更高。

    Docker 基本组成

    1. 镜像(Images)
    2. 容器(Container)
    3. 镜像仓库(Registry)

    常用命令

    1. docker ps
    2. docker ps -a
    3. docker start xxx
    4. dcoker stop xxx
    5. docker rm xxx
    6. docker rmi xxx
    7. docker save -o ./xxx.tar xxx 导出镜像
    8. docker load -i xxx.tar 导入镜像
    9. docker logs
    10. docker inspect xxx 查看容器详细信息
    11. docker port xxx 列出或指定容器端口映射
    12. docker cp [dir] xxx:[dir]
    13. docker diff xxx 查看容器和镜像的差异
    14. docker kill 容器 id 强制停止容器
    15. docker container logs 容器 id:查看容器日志
    16. docker top 容器 id:查看容器里的进程

    Docker Compose

    Docker Compose 是 docker 提供的一个命令行工具,用来定义和运行由多个容器组成的应用。使用 compose,我们可以通过 YAML 文件声明式的定义应用程序的各个服务,并由单个命令完成应用的创建和启动。

    安装

    #需要先把python3和pip3安装好
    pip3 install docker-compose
    docker-compose --version

    常用命令

    1. docker-compose up -d   后台启动
    2. docker-compose ps/stop/start/restart/rm
    3. docker-compose scale service=num  设置指定服务运行的容器个数。通过 service=num 的参数来设置数量

    问题处理

    1. python 安装 pandas 库出现 No module named ‘_lzma’
    2. docker 之网络配置
    3. Docker 入门之 docker-compose
    + \ No newline at end of file diff --git a/docs/study/docker/Docker-swarm/index.html b/docs/study/docker/Docker-swarm/index.html index bba57c84f..9c3269266 100644 --- a/docs/study/docker/Docker-swarm/index.html +++ b/docs/study/docker/Docker-swarm/index.html @@ -11,13 +11,13 @@ - +
    -

    Docker Swarm

    Docker Compose 是一个在单个服务器或主机上创建多个容器的工具

    Docker Swarm 则可以在多个服务器或主机上创建容器集群服务,对于微服务的部署,显然 Docker Swarm 会更加适合。

    基本架构图

    基本架构图

    参考

    - +

    Docker Swarm

    Docker Compose 是一个在单个服务器或主机上创建多个容器的工具

    Docker Swarm 则可以在多个服务器或主机上创建容器集群服务,对于微服务的部署,显然 Docker Swarm 会更加适合。

    基本架构图

    基本架构图

    参考

    + \ No newline at end of file diff --git "a/docs/study/docker/Dockerfile\344\275\277\347\224\250\350\257\246\350\247\243/index.html" "b/docs/study/docker/Dockerfile\344\275\277\347\224\250\350\257\246\350\247\243/index.html" index 3b5e63678..95950b790 100644 --- "a/docs/study/docker/Dockerfile\344\275\277\347\224\250\350\257\246\350\247\243/index.html" +++ "b/docs/study/docker/Dockerfile\344\275\277\347\224\250\350\257\246\350\247\243/index.html" @@ -11,13 +11,13 @@ - +
    -

    Dockerfile使用详解

    官方参考文档

    SpringBoot Dockerfile 示例

    示例 1

    # JDK17环境
    FROM ubuntu:23.10 as ujdk17
    WORKDIR /root/jdk
    ADD jdk-17_linux-x64_bin.tar.gz ./
    ENV JAVA_HOME=/root/jdk/jdk-17.0.8
    ENV PATH=$JAVA_HOME/bin:$PATH
    RUN java --version
    # 直接运行SpringBoot Jar包模式
    FROM ujdk17 as xxx
    WORKDIR /root/application
    ARG JAR_FILE=target/*.jar
    COPY ${JAR_FILE} application.jar
    EXPOSE 8080
    ENTRYPOINT java -jar application.jarca

    示例 2

    没有成功!!(原因是 SpringBoot 的版本用的是 3.0.3)

    成功!!(原因是 SpringBoot 的版本用的是 3.2.3)

    一定要看清 SpringBoot 的版本号,差异还是很大的

    # JDK17环境
    FROM ubuntu:23.10 as ujdk17
    WORKDIR /root/jdk
    ADD jdk-17_linux-x64_bin.tar.gz ./
    ENV JAVA_HOME=/root/jdk/jdk-17.0.8
    ENV PATH=$JAVA_HOME/bin:$PATH
    RUN java --version
    # 构建环境 主要是想利用Docker的分层缓存概念达到快速构建的目的 jarmode模式
    FROM ujdk17 as builder
    WORKDIR /root/application
    ARG JAR_FILE=target/*.jar
    COPY ${JAR_FILE} application.jar
    RUN java -Djarmode=layertools -jar application.jar extract
    # jarmode模式启动
    FROM ujdk17 as xxx
    WORKDIR /root/application
    COPY --from=builder /root/application/dependencies/ ./
    COPY --from=builder /root/application/spring-boot-loader/ ./
    COPY --from=builder /root/application/snapshot-dependencies/ ./
    COPY --from=builder /root/application/application/ ./
    EXPOSE 8080
    ENTRYPOINT ["java", "org.springframework.boot.loader.launch.JarLauncher"]

    参考文档

    - +

    Dockerfile使用详解

    官方参考文档

    SpringBoot Dockerfile 示例

    示例 1

    # JDK17环境
    FROM ubuntu:23.10 as ujdk17
    WORKDIR /root/jdk
    ADD jdk-17_linux-x64_bin.tar.gz ./
    ENV JAVA_HOME=/root/jdk/jdk-17.0.8
    ENV PATH=$JAVA_HOME/bin:$PATH
    RUN java --version
    # 直接运行SpringBoot Jar包模式
    FROM ujdk17 as xxx
    WORKDIR /root/application
    ARG JAR_FILE=target/*.jar
    COPY ${JAR_FILE} application.jar
    EXPOSE 8080
    ENTRYPOINT java -jar application.jarca

    示例 2

    没有成功!!(原因是 SpringBoot 的版本用的是 3.0.3)

    成功!!(原因是 SpringBoot 的版本用的是 3.2.3)

    一定要看清 SpringBoot 的版本号,差异还是很大的

    # JDK17环境
    FROM ubuntu:23.10 as ujdk17
    WORKDIR /root/jdk
    ADD jdk-17_linux-x64_bin.tar.gz ./
    ENV JAVA_HOME=/root/jdk/jdk-17.0.8
    ENV PATH=$JAVA_HOME/bin:$PATH
    RUN java --version
    # 构建环境 主要是想利用Docker的分层缓存概念达到快速构建的目的 jarmode模式
    FROM ujdk17 as builder
    WORKDIR /root/application
    ARG JAR_FILE=target/*.jar
    COPY ${JAR_FILE} application.jar
    RUN java -Djarmode=layertools -jar application.jar extract
    # jarmode模式启动
    FROM ujdk17 as xxx
    WORKDIR /root/application
    COPY --from=builder /root/application/dependencies/ ./
    COPY --from=builder /root/application/spring-boot-loader/ ./
    COPY --from=builder /root/application/snapshot-dependencies/ ./
    COPY --from=builder /root/application/application/ ./
    EXPOSE 8080
    ENTRYPOINT ["java", "org.springframework.boot.loader.launch.JarLauncher"]

    参考文档

    + \ No newline at end of file diff --git "a/docs/study/docker/Docker\347\232\204\344\275\277\347\224\250\346\200\273\347\273\223/index.html" "b/docs/study/docker/Docker\347\232\204\344\275\277\347\224\250\346\200\273\347\273\223/index.html" index 36caee757..fd384c5ab 100644 --- "a/docs/study/docker/Docker\347\232\204\344\275\277\347\224\250\346\200\273\347\273\223/index.html" +++ "b/docs/study/docker/Docker\347\232\204\344\275\277\347\224\250\346\200\273\347\273\223/index.html" @@ -11,13 +11,13 @@ - +
    -

    Docker的使用总结

    1. Docker 官方仓库  https://hub.docker.com
    2. 脚本搜索版本号  docker-tags

    修改镜像源

    /etc/docker/daemon.json

    {
    "registry-mirrors": ["https://registry.docker-cn.com", "http://hub-mirror.c.163.com", "https://docker.mirrors.ustc.edu.cn"]
    }
    docker info | grep Reg

    常用命令大全

    docker --help

    1.png

    获取某个 docker 容器的 IP 地址

    docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name_or_id

    容器自动启动

    docker run  --restart=always
    #no - 容器退出时,不重启容器;
    #on-failure - 只有在非0状态退出时才从新启动容器;
    #always - 无论退出状态是如何,都重启容器;
    #如果创建时未指定 --restart=always ,可通过update 命令
    docker update --restart=always container_name_or_id
    docker update --restart=no container_name_or_id

    容器时区问题

    # 创建容器的时候加上这个参数 会让容器采用宿主机的时区
    -v /etc/localtime:/etc/localtime

    查看和清除容器日志

    #
    ls -lh $(find /var/lib/docker/containers/ -name *-json.log)
    #
    truncate -s 0 /var/lib/docker/containers/*/*-json.log
    #用于查看Docker的磁盘使用情况
    docker system df
    #用于查看Docker的磁盘使用情况 详细情况
    docker system df -v
    #用于清理磁盘,删除关闭的容器、无用的数据卷和网络,以及dangling镜像(即无tag的镜像)
    docker system prune
    #清理得更加彻底,可以将没有容器使用Docker镜像都删掉。
    docker system prune -a

    版本太低 需要升级

    # docker build 报错如下
    is not a valid repository/tag: invalid reference format
    # 检查版本 docker 版本太低
    docker version


    # 卸载旧版本
    yum -y remove docker*
    # 安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
    sudo yum install -y yum-utils
    # 设置yum源
    yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    # 安装docker
    yum install docker-ce docker-ce-cli containerd.io
    # 配置国内docker镜像源
    mkdir -p /etc/docker
    tee /etc/docker/daemon.json <<-'EOF'
    {
    "registry-mirrors": [
    "https://kfwkfulq.mirror.aliyuncs.com",
    "https://2lqq34jg.mirror.aliyuncs.com",
    "https://pee6w651.mirror.aliyuncs.com",
    "https://registry.docker-cn.com",
    "http://hub-mirror.c.163.com"
    ],
    "dns": ["8.8.8.8","8.8.4.4"]
    }
    EOF
    # 重启docker
    systemctl daemon-reload
    systemctl restart docker
    # 验证docker版本
    docker version
    #!/bin/bash

    echo "stop docker"
    systemctl stop docker


    echo "uninstall rpm docker"
    rpm -e --nodeps --docfiles docker-ce-rootless-extras-26.0.0-1.el7.aarch64
    rpm -e --nodeps --docfiles docker-ce-26.0.0-1.el7.aarch64
    rpm -e --nodeps --docfiles docker-ce-cli-26.0.0-1.el7.aarch64
    rpm -e --nodeps --docfiles docker-buildx-plugin-0.13.1-1.el7.aarch64
    rpm -e --nodeps --docfiles containerd.io-1.6.28-3.2.el7.aarch64

    echo "rm -rf /opt/containerd /var/lib/containerd /var/lib/docker"
    rm -rf /opt/containerd
    rm -rf /var/lib/containerd
    rm -rf /var/lib/docker

    echo "success"

    run后保持运行状态

    #
    docker run -tid \
    --privileged=true \
    --name test-ubuntu \
    ubuntu
    #
    docker run -tid \
    --privileged=true \
    --name test-nginx \
    nginx:stable-alpine3.17-slim

    绑定随机端口

    #
    docker run -tid \
    -p :80 \
    --privileged=true \
    --name test-ubuntu \
    ubuntu
    # 重启之后 随机的端口会换掉
    docker port test-ubuntu
    # 重启之后 随机的端口会换掉
    docker restart test-ubuntu
    # 重启之后 随机的端口会换掉
    docker port test-ubuntu

    dcoker save/load 保存和加载镜像

    对镜像的保存和加载

    docker load < xx.tar.xz

    docker export/import 导出和导入容器

    对容器的导出和导入

    Linux修改网络后,导致Docker容器网络出现问题

    Docker容器生成镜像

    docker   commit -m="描述信息" -a="作者" 容器id 目标镜像名: [TAG]

    也可以用于容器端口修改,先把容器生成镜像,然后再根据镜像重新创建容器

    4661cf0ef60f   ccsp-svs-openeuler-x86:3.3.1.5.16          "/bin/bash -c 'sh /o…"   52 minutes ago   Up 52 minutes   10.0.101.147:21008->20010/tcp, 10.0.101.147:21011->20012/tcp, 10.0.101.147:21009->20014/tcp, 10.0.101.147:21010->20015/tcp                                  ccsp-svs-6751369239214162560
    #
    docker commit -m="test" -a="weic" ccsp-svs-6751369239214162560 svstest:20016-12
    #
    docker stop ccsp-svs-6751369239214162560
    #
    docker run \
    -td \
    -p 10.0.101.147:21008:20010 \
    -p 10.0.101.147:21011:20012 \
    -p 10.0.101.147:21009:20014 \
    -p 10.0.101.147:21010:20015 \
    -p 10.0.101.147:20016:20016 \
    -p 10.0.101.147:20018:20018 \
    --name ccsp-svs-6751369239214162560-c \
    svstest:20016-12 \
    /bin/bash -c "sh /opt/sansec/ccsp/startService.sh&bash"

    修改shmsize 共享内存

    fbaabf1d7e74   ccsp-tsc-openeuler-x86:3.3.1.3             "/bin/bash -c 'sh /o…"   4 minutes ago       Up 4 minutes       10.0.101.146:26501->8011/tcp, 10.0.101.146:26502->8099/tcp                                                                                                                                 ccsp-tsc-6745104769515389829
    #
    docker commit -m="test" -a="weic" ccsp-tsc-6745104769515389829 tsctest:shmsize-1
    #
    docker stop ccsp-tsc-6745104769515389829
    #
    docker run \
    -td \
    --shm-size 1gb \
    -p 10.0.101.146:26501:8011 \
    -p 10.0.101.146:26502:8099 \
    --name ccsp-tsc-6745104769515389829-c \
    tsctest:shmsize-1 \
    /bin/bash -c "sh /opt/sansec/ccsp/startService.sh&bash"

    docker run \
    -td \
    --name ccsp-tsc-6745104769515389829-c \
    tsctest:shmsize-1 \
    /bin/bash -c "sh /opt/sansec/ccsp/startService.sh&bash"

    删除几天之前的容器

    #!/bin/bash

    # 设置天数阈值
    days=2

    # 找到创建时间在几天前的容器ID
    container_ids=$(docker ps --format '{{.ID}} {{.CreatedAt}}' | awk -v days_ago=$days '$2 < "'$(date -d "$days days ago" +'%Y-%m-%d')'"' | cut -d ' ' -f1)

    # 删除这些容器
    docker rm -f $container_ids

    未运行的容器中的文件修改

    # 先copy出来
    docker cp {containerID}:/xxx/xxx ./xxx
    # 修改完之后 在copy进去
    docker cp ./xxx {containerID}:/xxx/xxx

    设置cpu数量以及内存大小

    docker update --cpus 4 --memory 8g {容器名称或ID}

    清理容器和镜像


    # 停止所有正在运行的容器
    docker stop $(docker ps -aq)

    # 删除所有容器
    docker rm $(docker ps -aq)

    # 删除所有镜像
    docker rmi $(docker images -q)

    参考

    参考 1

    - +

    Docker的使用总结

    1. Docker 官方仓库  https://hub.docker.com
    2. 脚本搜索版本号  docker-tags

    修改镜像源

    /etc/docker/daemon.json

    {
    "registry-mirrors": ["https://registry.docker-cn.com", "http://hub-mirror.c.163.com", "https://docker.mirrors.ustc.edu.cn"]
    }
    docker info | grep Reg

    常用命令大全

    docker --help

    1.png

    获取某个 docker 容器的 IP 地址

    docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name_or_id

    容器自动启动

    docker run  --restart=always
    #no - 容器退出时,不重启容器;
    #on-failure - 只有在非0状态退出时才从新启动容器;
    #always - 无论退出状态是如何,都重启容器;
    #如果创建时未指定 --restart=always ,可通过update 命令
    docker update --restart=always container_name_or_id
    docker update --restart=no container_name_or_id

    容器时区问题

    # 创建容器的时候加上这个参数 会让容器采用宿主机的时区
    -v /etc/localtime:/etc/localtime

    查看和清除容器日志

    #
    ls -lh $(find /var/lib/docker/containers/ -name *-json.log)
    #
    truncate -s 0 /var/lib/docker/containers/*/*-json.log
    #用于查看Docker的磁盘使用情况
    docker system df
    #用于查看Docker的磁盘使用情况 详细情况
    docker system df -v
    #用于清理磁盘,删除关闭的容器、无用的数据卷和网络,以及dangling镜像(即无tag的镜像)
    docker system prune
    #清理得更加彻底,可以将没有容器使用Docker镜像都删掉。
    docker system prune -a

    版本太低 需要升级

    # docker build 报错如下
    is not a valid repository/tag: invalid reference format
    # 检查版本 docker 版本太低
    docker version


    # 卸载旧版本
    yum -y remove docker*
    # 安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
    sudo yum install -y yum-utils
    # 设置yum源
    yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    # 安装docker
    yum install docker-ce docker-ce-cli containerd.io
    # 配置国内docker镜像源
    mkdir -p /etc/docker
    tee /etc/docker/daemon.json <<-'EOF'
    {
    "registry-mirrors": [
    "https://kfwkfulq.mirror.aliyuncs.com",
    "https://2lqq34jg.mirror.aliyuncs.com",
    "https://pee6w651.mirror.aliyuncs.com",
    "https://registry.docker-cn.com",
    "http://hub-mirror.c.163.com"
    ],
    "dns": ["8.8.8.8","8.8.4.4"]
    }
    EOF
    # 重启docker
    systemctl daemon-reload
    systemctl restart docker
    # 验证docker版本
    docker version
    #!/bin/bash

    echo "stop docker"
    systemctl stop docker


    echo "uninstall rpm docker"
    rpm -e --nodeps --docfiles docker-ce-rootless-extras-26.0.0-1.el7.aarch64
    rpm -e --nodeps --docfiles docker-ce-26.0.0-1.el7.aarch64
    rpm -e --nodeps --docfiles docker-ce-cli-26.0.0-1.el7.aarch64
    rpm -e --nodeps --docfiles docker-buildx-plugin-0.13.1-1.el7.aarch64
    rpm -e --nodeps --docfiles containerd.io-1.6.28-3.2.el7.aarch64

    echo "rm -rf /opt/containerd /var/lib/containerd /var/lib/docker"
    rm -rf /opt/containerd
    rm -rf /var/lib/containerd
    rm -rf /var/lib/docker

    echo "success"

    run后保持运行状态

    #
    docker run -tid \
    --privileged=true \
    --name test-ubuntu \
    ubuntu
    #
    docker run -tid \
    --privileged=true \
    --name test-nginx \
    nginx:stable-alpine3.17-slim

    绑定随机端口

    #
    docker run -tid \
    -p :80 \
    --privileged=true \
    --name test-ubuntu \
    ubuntu
    # 重启之后 随机的端口会换掉
    docker port test-ubuntu
    # 重启之后 随机的端口会换掉
    docker restart test-ubuntu
    # 重启之后 随机的端口会换掉
    docker port test-ubuntu

    dcoker save/load 保存和加载镜像

    对镜像的保存和加载

    docker load < xx.tar.xz

    docker export/import 导出和导入容器

    对容器的导出和导入

    Linux修改网络后,导致Docker容器网络出现问题

    Docker容器生成镜像

    docker   commit -m="描述信息" -a="作者" 容器id 目标镜像名: [TAG]

    也可以用于容器端口修改,先把容器生成镜像,然后再根据镜像重新创建容器

    4661cf0ef60f   ccsp-svs-openeuler-x86:3.3.1.5.16          "/bin/bash -c 'sh /o…"   52 minutes ago   Up 52 minutes   10.0.101.147:21008->20010/tcp, 10.0.101.147:21011->20012/tcp, 10.0.101.147:21009->20014/tcp, 10.0.101.147:21010->20015/tcp                                  ccsp-svs-6751369239214162560
    #
    docker commit -m="test" -a="weic" ccsp-svs-6751369239214162560 svstest:20016-12
    #
    docker stop ccsp-svs-6751369239214162560
    #
    docker run \
    -td \
    -p 10.0.101.147:21008:20010 \
    -p 10.0.101.147:21011:20012 \
    -p 10.0.101.147:21009:20014 \
    -p 10.0.101.147:21010:20015 \
    -p 10.0.101.147:20016:20016 \
    -p 10.0.101.147:20018:20018 \
    --name ccsp-svs-6751369239214162560-c \
    svstest:20016-12 \
    /bin/bash -c "sh /opt/sansec/ccsp/startService.sh&bash"

    修改shmsize 共享内存

    fbaabf1d7e74   ccsp-tsc-openeuler-x86:3.3.1.3             "/bin/bash -c 'sh /o…"   4 minutes ago       Up 4 minutes       10.0.101.146:26501->8011/tcp, 10.0.101.146:26502->8099/tcp                                                                                                                                 ccsp-tsc-6745104769515389829
    #
    docker commit -m="test" -a="weic" ccsp-tsc-6745104769515389829 tsctest:shmsize-1
    #
    docker stop ccsp-tsc-6745104769515389829
    #
    docker run \
    -td \
    --shm-size 1gb \
    -p 10.0.101.146:26501:8011 \
    -p 10.0.101.146:26502:8099 \
    --name ccsp-tsc-6745104769515389829-c \
    tsctest:shmsize-1 \
    /bin/bash -c "sh /opt/sansec/ccsp/startService.sh&bash"

    docker run \
    -td \
    --name ccsp-tsc-6745104769515389829-c \
    tsctest:shmsize-1 \
    /bin/bash -c "sh /opt/sansec/ccsp/startService.sh&bash"

    删除几天之前的容器

    #!/bin/bash

    # 设置天数阈值
    days=2

    # 找到创建时间在几天前的容器ID
    container_ids=$(docker ps --format '{{.ID}} {{.CreatedAt}}' | awk -v days_ago=$days '$2 < "'$(date -d "$days days ago" +'%Y-%m-%d')'"' | cut -d ' ' -f1)

    # 删除这些容器
    docker rm -f $container_ids

    未运行的容器中的文件修改

    # 先copy出来
    docker cp {containerID}:/xxx/xxx ./xxx
    # 修改完之后 在copy进去
    docker cp ./xxx {containerID}:/xxx/xxx

    设置cpu数量以及内存大小

    docker update --cpus 4 --memory 8g {容器名称或ID}

    清理容器和镜像


    # 停止所有正在运行的容器
    docker stop $(docker ps -aq)

    # 删除所有容器
    docker rm $(docker ps -aq)

    # 删除所有镜像
    docker rmi $(docker images -q)

    参考

    参考 1

    + \ No newline at end of file diff --git a/docs/study/docker/docker-kafka/index.html b/docs/study/docker/docker-kafka/index.html index 7156ab437..ef15a2d8b 100644 --- a/docs/study/docker/docker-kafka/index.html +++ b/docs/study/docker/docker-kafka/index.html @@ -11,13 +11,13 @@ - +
    -

    docker-kafka

    docker kafka

    #
    docker pull apache/kafka:3.7.0
    #
    docker run -d \
    -p 9092:9092 \
    --privileged=true \
    -e TZ=Asia/Shanghai \
    --name kafka-study \
    apache/kafka:3.7.0
    - +

    docker-kafka

    docker kafka

    #
    docker pull apache/kafka:3.7.0
    #
    docker run -d \
    -p 9092:9092 \
    --privileged=true \
    -e TZ=Asia/Shanghai \
    --name kafka-study \
    apache/kafka:3.7.0
    + \ No newline at end of file diff --git a/docs/study/docker/docker-linux/index.html b/docs/study/docker/docker-linux/index.html index 7e6d1c6ff..456c33925 100644 --- a/docs/study/docker/docker-linux/index.html +++ b/docs/study/docker/docker-linux/index.html @@ -11,13 +11,13 @@ - +
    -

    docker-linux

    alpine

    docker pull alpine:3.18.3

    docker run -d \
    -p 1883:1883 \
    -p 8080:8080 \
    -p 8081:8081 \
    -p 8000:8000 \
    -p 15000:15000 \
    --privileged=true \
    -e TZ=Asia/Shanghai \
    --name alpine-study \
    alpine:3.18.3
    FROM alpine:3.18.3
    MAINTAINER jiot.cloud "cniiot@163.com"
    WORKDIR /root/iot-cloud-backend
    ADD jdk-17_linux-x64_bin.tar.gz /root/iot-cloud-backend/
    ENV JAVA_HOME=/root/iot-cloud-backend/jdk-17.0.8
    ENV PATH=$JAVA_HOME/bin:$PATH
    docker build -t jdk17:jiot.cloud .

    docker run -it jdk17:jiot.cloud /bin/sh

    docker pull debian:stable-slim

    docker run -d \
    -p 1883:1883 \
    -p 8080:8080 \
    -p 8081:8081 \
    --privileged=true \
    -e TZ=Asia/Shanghai \
    --name debian-study \
    debian:stable-slim
    FROM debian:stable-slim
    MAINTAINER jiot.cloud "cniiot@163.com"
    WORKDIR /root/iot-cloud-backend
    ADD jdk-17_linux-x64_bin.tar.gz /root/iot-cloud-backend/
    ENV JAVA_HOME=/root/iot-cloud-backend/jdk-17.0.8
    ENV PATH=$JAVA_HOME/bin:$PATH
    docker build -t jdk17:jiot.cloud .

    docker run -it jdk17:jiot.cloud /bin/sh

    docker pull centos:centos7.9.2009

    docker run -d \
    -p 1883:1883 \
    -p 8080:8080 \
    -p 8081:8081 \
    --privileged=true \
    -e TZ=Asia/Shanghai \
    --name debian-study \
    centos:centos7.9.2009
    FROM centos:centos7.9.2009
    MAINTAINER jiot.cloud "cniiot@163.com"
    WORKDIR /root/iot-cloud-backend
    ADD jdk-17_linux-x64_bin.tar.gz /root/iot-cloud-backend/
    ENV JAVA_HOME=/root/iot-cloud-backend/jdk-17.0.8
    ENV PATH=$JAVA_HOME/bin:$PATH
    docker build -t jdk17:jiot.cloud .

    docker run -it jdk17:jiot.cloud /bin/sh
    - +

    docker-linux

    alpine

    docker pull alpine:3.18.3

    docker run -d \
    -p 1883:1883 \
    -p 8080:8080 \
    -p 8081:8081 \
    -p 8000:8000 \
    -p 15000:15000 \
    --privileged=true \
    -e TZ=Asia/Shanghai \
    --name alpine-study \
    alpine:3.18.3
    FROM alpine:3.18.3
    MAINTAINER jiot.cloud "cniiot@163.com"
    WORKDIR /root/iot-cloud-backend
    ADD jdk-17_linux-x64_bin.tar.gz /root/iot-cloud-backend/
    ENV JAVA_HOME=/root/iot-cloud-backend/jdk-17.0.8
    ENV PATH=$JAVA_HOME/bin:$PATH
    docker build -t jdk17:jiot.cloud .

    docker run -it jdk17:jiot.cloud /bin/sh

    docker pull debian:stable-slim

    docker run -d \
    -p 1883:1883 \
    -p 8080:8080 \
    -p 8081:8081 \
    --privileged=true \
    -e TZ=Asia/Shanghai \
    --name debian-study \
    debian:stable-slim
    FROM debian:stable-slim
    MAINTAINER jiot.cloud "cniiot@163.com"
    WORKDIR /root/iot-cloud-backend
    ADD jdk-17_linux-x64_bin.tar.gz /root/iot-cloud-backend/
    ENV JAVA_HOME=/root/iot-cloud-backend/jdk-17.0.8
    ENV PATH=$JAVA_HOME/bin:$PATH
    docker build -t jdk17:jiot.cloud .

    docker run -it jdk17:jiot.cloud /bin/sh

    docker pull centos:centos7.9.2009

    docker run -d \
    -p 1883:1883 \
    -p 8080:8080 \
    -p 8081:8081 \
    --privileged=true \
    -e TZ=Asia/Shanghai \
    --name debian-study \
    centos:centos7.9.2009
    FROM centos:centos7.9.2009
    MAINTAINER jiot.cloud "cniiot@163.com"
    WORKDIR /root/iot-cloud-backend
    ADD jdk-17_linux-x64_bin.tar.gz /root/iot-cloud-backend/
    ENV JAVA_HOME=/root/iot-cloud-backend/jdk-17.0.8
    ENV PATH=$JAVA_HOME/bin:$PATH
    docker build -t jdk17:jiot.cloud .

    docker run -it jdk17:jiot.cloud /bin/sh
    + \ No newline at end of file diff --git a/docs/study/docker/docker-mysql/index.html b/docs/study/docker/docker-mysql/index.html index 7566052ca..06c6b0809 100644 --- a/docs/study/docker/docker-mysql/index.html +++ b/docs/study/docker/docker-mysql/index.html @@ -11,13 +11,13 @@ - +
    -

    docker-mysql

    # 如果还没安装docker服务的话(centos)
    yum install docker
    # 如果还没启动docker服务的话
    systemctl start docker
    #
    docker pull mysql:8.0.33
    # 纯粹学习使用
    docker run -d \
    -p 13306:3306 \
    --privileged=true \
    -e TZ=Asia/Shanghai \
    -e MYSQL_ROOT_PASSWORD=Aa0123 \
    --name mysql-study \
    mysql:8.0.33


    docker exec -it mysql-study bash

    mysql -u root -p

    use mysql
    update user set authentication_string ='' where user = 'root';
    flush privileges;
    ALTER user 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'Aa0123';
    ALTER user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Aa0123';
    flush privileges;


    docker stop mysql-study
    docker rm mysql-study
    - +

    docker-mysql

    # 如果还没安装docker服务的话(centos)
    yum install docker
    # 如果还没启动docker服务的话
    systemctl start docker
    #
    docker pull mysql:8.0.33
    # 纯粹学习使用
    docker run -d \
    -p 13306:3306 \
    --privileged=true \
    -e TZ=Asia/Shanghai \
    -e MYSQL_ROOT_PASSWORD=Aa0123 \
    --name mysql-study \
    mysql:8.0.33


    docker exec -it mysql-study bash

    mysql -u root -p

    use mysql
    update user set authentication_string ='' where user = 'root';
    flush privileges;
    ALTER user 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'Aa0123';
    ALTER user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Aa0123';
    flush privileges;


    docker stop mysql-study
    docker rm mysql-study
    + \ No newline at end of file diff --git a/docs/study/docker/index.html b/docs/study/docker/index.html index b58779cf1..92d838a19 100644 --- a/docs/study/docker/index.html +++ b/docs/study/docker/index.html @@ -11,15 +11,15 @@ - +

    概述

    一种虚拟技术。

    windows/linux docker

    • windows docker 宿主机 可以运行 windows 和 linux 容器;
    • linux docker 宿主机只能运行 linux 容器;
    • windows 宿主机可以运行 linux 容器的原因是: windows 在后台创建了一个 Linux 子系统(WSL),因此 Linux 容器仍在 Linux 上运行;

    官方参考文档

    没什么好的办法。把这个文档多读多实践,基本上也算半个专家了。

    没事多看看, docker --help -dockerd --hlep

    docker cli

    docker engine api

    docker 官方镜像库 docker hub

    docker 私有镜像仓库软件

    - +dockerd --hlep

    docker cli

    docker engine api

    docker 官方镜像库 docker hub

    docker 私有镜像仓库软件

    + \ No newline at end of file diff --git a/docs/study/encryption/ASN.1/index.html b/docs/study/encryption/ASN.1/index.html index 1758f436e..ba47a3161 100644 --- a/docs/study/encryption/ASN.1/index.html +++ b/docs/study/encryption/ASN.1/index.html @@ -11,13 +11,13 @@ - +
    -

    ASN.1

    抽象语法标记、

    包含编码规则,如下

    ASN.1 取得成功的一个主要原因是它与几个标准化编码规则相关,如基本编码规则(BER) -X.209 、规范编码规则(CER)、识别名编码规则(DER)、压缩编码规则(PER)和 XML编码规则(XER)。这些编码规则描述了如何对 ASN.1 中定义的数值进行编码,以便用于传输,而不管计算机、编程语言或它在应用程序中如何表示等因素。ASN.1 的编码方法比许多与之相竞争的标记系统更先进,它支持可扩展信息快速可靠的传输 — 在无线宽带中,这是一种优势。1984年,ASN.1 就已经成为了一种国际标准,它的编码规则已经成熟并在可靠性和兼容性方面拥有更丰富的历程。

    简洁的二进制编码规则(BER、CER、DER、PER,但不包括 XER)可当作更现代 XML 的替代。然而,ASN.1 支持对数据的语义进行描述,所以它是比 XML 更为高级的语言。

    参考

    - +

    ASN.1

    抽象语法标记、

    包含编码规则,如下

    ASN.1 取得成功的一个主要原因是它与几个标准化编码规则相关,如基本编码规则(BER) -X.209 、规范编码规则(CER)、识别名编码规则(DER)、压缩编码规则(PER)和 XML编码规则(XER)。这些编码规则描述了如何对 ASN.1 中定义的数值进行编码,以便用于传输,而不管计算机、编程语言或它在应用程序中如何表示等因素。ASN.1 的编码方法比许多与之相竞争的标记系统更先进,它支持可扩展信息快速可靠的传输 — 在无线宽带中,这是一种优势。1984年,ASN.1 就已经成为了一种国际标准,它的编码规则已经成熟并在可靠性和兼容性方面拥有更丰富的历程。

    简洁的二进制编码规则(BER、CER、DER、PER,但不包括 XER)可当作更现代 XML 的替代。然而,ASN.1 支持对数据的语义进行描述,所以它是比 XML 更为高级的语言。

    参考

    + \ No newline at end of file diff --git a/docs/study/encryption/HSM/index.html b/docs/study/encryption/HSM/index.html index 4c9cd6d11..48ebcab1e 100644 --- a/docs/study/encryption/HSM/index.html +++ b/docs/study/encryption/HSM/index.html @@ -11,13 +11,13 @@ - +
    -

    HSM

    HSM 加密机原理

    硬件安全模块(HSM)是一种物理设备,设计用于安全地管理、处理和存储加密密钥和数字证书。HSM广泛应用于需要高安全性的场景,如金融服务、数据保护、企业安全以及政府和军事领域。HSM提供了一种比软件存储密钥更安全的方式,因为密钥材料从不以未加密形式离开模块。

    VSM 虚拟密码机

    - +

    HSM

    HSM 加密机原理

    硬件安全模块(HSM)是一种物理设备,设计用于安全地管理、处理和存储加密密钥和数字证书。HSM广泛应用于需要高安全性的场景,如金融服务、数据保护、企业安全以及政府和军事领域。HSM提供了一种比软件存储密钥更安全的方式,因为密钥材料从不以未加密形式离开模块。

    VSM 虚拟密码机

    + \ No newline at end of file diff --git a/docs/study/encryption/PKI/index.html b/docs/study/encryption/PKI/index.html index 79ca5233e..7369442a1 100644 --- a/docs/study/encryption/PKI/index.html +++ b/docs/study/encryption/PKI/index.html @@ -3,7 +3,7 @@ -PKI | YiRanCN +PKI | YiRanCN @@ -11,13 +11,13 @@ - + - +
    + \ No newline at end of file diff --git a/docs/study/encryption/SSL_TLS/index.html b/docs/study/encryption/SSL_TLS/index.html index 4bd3a2ecf..7ca83ca90 100644 --- a/docs/study/encryption/SSL_TLS/index.html +++ b/docs/study/encryption/SSL_TLS/index.html @@ -11,13 +11,13 @@ - +
    -

    SSL TLS HTTPS

    为了保证网络通信的安全性,需要对网络上传递的数据进行加密。现在主流的加密方法就是 SSL (Secure Socket Layer),TLS (Transport Layer Security)。后者比前者要新一些,不过在很多场合还是用 SSL 指代 SSL 和 TLS。

    SSL/TLS

    SSL(Secure Socket Layer)是指安全套接字层,简而言之,它是一项标准技术,可确保互联网连接安全,保护两个系统之间发送的任何敏感数据,防止网络犯罪分子读取和修改任何传输信息,包括个人资料。TLS(Transport Layer Security,传输层安全)是更为安全的升级版 SSL。

    TLS 1.0 版实际上最初作为 SSL 3.1 版开发,HTTPS 是在 HTTP 协议基础上实施 TLS 加密,所有网站以及其他部分 web 服务都使用该协议。因此,任何使用 HTTPS 的网站都使用 TLS 加密。不同版本的 TLS 协议内容约定不一样,这也会给 HTTPS 建立连接时需要握手协商的信息造成差异。

    TLS 已经完全的代替掉 SSL 了,所以只推荐 TLS;目前的 SSL 证书许可,下发的其实都是 SSL/TLS 证书。

    HTTP 是超文本传输协议,信息是明文传输;HTTPS,也称作 HTTP over TLS,则是具有安全性的 SSL 加密传输协议。

    HTTPS 协议需要到证书颁发机构 (Certificate Authority,简称 CA)申请证书,通过数字证书管理服务完成证书购买、申请,并将证书部署到您的 Web 服务器后,Web 服务将会通过 HTTPS 加密协议来传输数据。

    参考

    - +

    SSL TLS HTTPS

    为了保证网络通信的安全性,需要对网络上传递的数据进行加密。现在主流的加密方法就是 SSL (Secure Socket Layer),TLS (Transport Layer Security)。后者比前者要新一些,不过在很多场合还是用 SSL 指代 SSL 和 TLS。

    SSL/TLS

    SSL(Secure Socket Layer)是指安全套接字层,简而言之,它是一项标准技术,可确保互联网连接安全,保护两个系统之间发送的任何敏感数据,防止网络犯罪分子读取和修改任何传输信息,包括个人资料。TLS(Transport Layer Security,传输层安全)是更为安全的升级版 SSL。

    TLS 1.0 版实际上最初作为 SSL 3.1 版开发,HTTPS 是在 HTTP 协议基础上实施 TLS 加密,所有网站以及其他部分 web 服务都使用该协议。因此,任何使用 HTTPS 的网站都使用 TLS 加密。不同版本的 TLS 协议内容约定不一样,这也会给 HTTPS 建立连接时需要握手协商的信息造成差异。

    TLS 已经完全的代替掉 SSL 了,所以只推荐 TLS;目前的 SSL 证书许可,下发的其实都是 SSL/TLS 证书。

    HTTP 是超文本传输协议,信息是明文传输;HTTPS,也称作 HTTP over TLS,则是具有安全性的 SSL 加密传输协议。

    HTTPS 协议需要到证书颁发机构 (Certificate Authority,简称 CA)申请证书,通过数字证书管理服务完成证书购买、申请,并将证书部署到您的 Web 服务器后,Web 服务将会通过 HTTPS 加密协议来传输数据。

    参考

    + \ No newline at end of file diff --git a/docs/study/encryption/index.html b/docs/study/encryption/index.html index 9dbc69214..df3e3411b 100644 --- a/docs/study/encryption/index.html +++ b/docs/study/encryption/index.html @@ -11,13 +11,13 @@ - +
    -

    加解密

    加密和解密

    加密是以某种特定的算法,改变原有的数据信息,使得未授权的用户即使获得了加密后的数据,但因不知解密的方法(确切的说是不知道密钥),仍然无法了解其信息内容。而解密则是加密的逆过程。

    明文和密文

    我们称尚未加密的数据为明文,通过固定算法加密后的数据为密文。

    加密的密钥

    密钥是一种参数,它是在明文转换为密文或密文转换为明文时算法的输入参数。可以理解成密码的钥匙。

    对称与非对称

    对称加密

    对称加密算法中,数据发送方将明文和密钥一起经过特殊加密算法处理成密文后,将它发送出去。接收方收到密文后,若想解读原文,则需要使用加密用到的相同密钥及相同算法的逆算法对密文进行解密,才能使其恢复成原文。

    它的最大优势是加/解密速度快,适用于大数据量进行加密,缺点是密钥管理困难,最典型的问题就是如何同步这个密钥,同步过程如果在公网上,不进行加密是可以抓包拿到的,那么这里就遇到了要对密钥加密的问题。

    常见的对称加密算法有 AES、DES、Blowfish 等等。

    对称加密的核心是只有一把密钥。

    非对称加密

    非对称加密算法中,有两个密钥:公钥和私钥。它们是一对,如果用公钥进行加密,只有用对应的私钥才能解密;如果用私钥进行加密,只有用对应的公钥才能解密。

    非对称加密算法实现机密信息的交换过程为:甲方生成一对密钥并将其中一个作为公钥向其他方公开;得到该公钥的乙方使用该密钥对机密信息进行加密后发送给甲方;甲方再用自己的另一个专用密钥对加密后的信息进行解密。

    最有名的非对称加密算法当属 RSA 了,本文将对 RSA 算法的加/解密过程进行详细剖析。

    非对称加密拥有两把密钥。

    参考

    - +

    加解密

    加密和解密

    加密是以某种特定的算法,改变原有的数据信息,使得未授权的用户即使获得了加密后的数据,但因不知解密的方法(确切的说是不知道密钥),仍然无法了解其信息内容。而解密则是加密的逆过程。

    明文和密文

    我们称尚未加密的数据为明文,通过固定算法加密后的数据为密文。

    加密的密钥

    密钥是一种参数,它是在明文转换为密文或密文转换为明文时算法的输入参数。可以理解成密码的钥匙。

    对称与非对称

    对称加密

    对称加密算法中,数据发送方将明文和密钥一起经过特殊加密算法处理成密文后,将它发送出去。接收方收到密文后,若想解读原文,则需要使用加密用到的相同密钥及相同算法的逆算法对密文进行解密,才能使其恢复成原文。

    它的最大优势是加/解密速度快,适用于大数据量进行加密,缺点是密钥管理困难,最典型的问题就是如何同步这个密钥,同步过程如果在公网上,不进行加密是可以抓包拿到的,那么这里就遇到了要对密钥加密的问题。

    常见的对称加密算法有 AES、DES、Blowfish 等等。

    对称加密的核心是只有一把密钥。

    非对称加密

    非对称加密算法中,有两个密钥:公钥和私钥。它们是一对,如果用公钥进行加密,只有用对应的私钥才能解密;如果用私钥进行加密,只有用对应的公钥才能解密。

    非对称加密算法实现机密信息的交换过程为:甲方生成一对密钥并将其中一个作为公钥向其他方公开;得到该公钥的乙方使用该密钥对机密信息进行加密后发送给甲方;甲方再用自己的另一个专用密钥对加密后的信息进行解密。

    最有名的非对称加密算法当属 RSA 了,本文将对 RSA 算法的加/解密过程进行详细剖析。

    非对称加密拥有两把密钥。

    参考

    + \ No newline at end of file diff --git "a/docs/study/encryption/\344\270\255\345\233\275\345\225\206\347\224\250\345\257\206\347\240\201\347\256\227\346\263\225/index.html" "b/docs/study/encryption/\344\270\255\345\233\275\345\225\206\347\224\250\345\257\206\347\240\201\347\256\227\346\263\225/index.html" index 59f675282..83d9d4cdd 100644 --- "a/docs/study/encryption/\344\270\255\345\233\275\345\225\206\347\224\250\345\257\206\347\240\201\347\256\227\346\263\225/index.html" +++ "b/docs/study/encryption/\344\270\255\345\233\275\345\225\206\347\224\250\345\257\206\347\240\201\347\256\227\346\263\225/index.html" @@ -11,13 +11,13 @@ - +
    -

    中国商用密码算法

    简介

    商用密码技术,是指能够实现商用密码算法的加密、解密和认证等功能的技术。(包括密码算法编程技术和密码算法芯片、加密卡等的实现技术)。商用密码技术是商用密码的核心,国家将商用密码技术列入国家秘密,任何单位和个人都有责任和义务保护商用密码技术的秘密。

    商用密码的应用领域十分广泛,主要用于对不涉及国家秘密内容但又具有敏感性的内部信息、行政事务信息、经济信息等进行加密保护。比如:商用密码可用于企业内部的各类敏感信息的传输加密、存储加密,防止非法第三方获取信息内容;也可用于各种安全认证、网上银行、数字签名等。

    对称密码又可分为分组密码和序列(流)密码

    SM4 算法是 SM 系列算法中使用最为广泛的密码算法。

    SM1 商密 1 号

    • 对称加密,分组加密
    • 亦称 SCB2 算法
    • 不公开,仅以 IP 核的形式存在于芯片中
    • 采用该算法已经研制了系列芯片、智能 IC 卡、智能密码钥匙、加密卡、加密机等安全产品,广泛应用于电子政务、电子商务及国民经济的各个应用领域(包括国家政务通、警务通等重要领域)。
    • 替换 AES,分组长度和密钥长度都为 128 比特

    SM2

    • 公钥加密,基于椭圆曲线
    • 替换 RSA
    • 公开 国家密码管理局-该算法文档
    • 目前支持 SM2 算法的产品已达 1000 余款,广泛应用于电子政务、移动办公、电子商务、移动支付、电子证书等基础设施、云服务等领域。
    • SM2默认曲线算法 sm2p256v1

    SM3

    • 哈希算法
    • 公开国家密码管理局-该算法文档
    • 该算法已成为我国电子签名类密码系统、计算机安全登录系统、计算机安全通信系统、数字证书、 网络安全基础设施、安全云计算平台与大数据等领域信息安全的基础技术。

    SMS4

    SMS4 算法,是一个分组算法,分组长度和密钥长度均为 128 比特,加密算法与密钥扩展算法都采用 32 轮非线性迭代结构,最初作为无线局域网专用密码算法发布,后成为分组密码算法行业标准。目前支持 SMS4 算法的产品已达 700 余款,覆盖了各种有对称加密需求的应用。由于 SMS4 算法最初用于无线局域网芯片 WAPI 协议中,支持 SMS4 算法的 WAPI 无线局域网芯片已超过 350 多个型号,全球累计出 货量超过 70 亿颗。在金融领域,仅统计支持 SMS4 算法的智能密码钥匙出货量已超过 1.5 亿支。此外,SMS4 算法已被纳人可信计算组织(TCG)发布的可信平台模块库规范(TPIM2.0)中。

    SM7

    • 对称加密
    • 不公开

    SM7 适用于非接触式 IC 卡,应用包括身份识别类应用(门禁卡、工作证、参赛证),票务类应用(大型赛事门票、展会门票),支付与通卡类应用(积分消费卡、校园一卡通、企业一卡通等)。

    SM9

    • 标识密码算法
    • 公开
    • SM9 是一种基于身份标识的公钥密码算法,也被称为标识密码,采用 256 比特的椭圆曲线。

    SM9 算法不需要申请数字证书,适用于互联网应用的各种新兴应用的安全保密保障,如基于云技术的密码服务、电子邮件安全、智能终端保护、物联网安全、云存储安全等等。

    CSDN-基于SM9的密钥交换方案的实现与应用

    祖冲&ZUC 算法

    • 流密码
    • 主要用于通信领域
    • 该算法速度快,常用于移动通信 4G 网络。
    - +

    中国商用密码算法

    简介

    商用密码技术,是指能够实现商用密码算法的加密、解密和认证等功能的技术。(包括密码算法编程技术和密码算法芯片、加密卡等的实现技术)。商用密码技术是商用密码的核心,国家将商用密码技术列入国家秘密,任何单位和个人都有责任和义务保护商用密码技术的秘密。

    商用密码的应用领域十分广泛,主要用于对不涉及国家秘密内容但又具有敏感性的内部信息、行政事务信息、经济信息等进行加密保护。比如:商用密码可用于企业内部的各类敏感信息的传输加密、存储加密,防止非法第三方获取信息内容;也可用于各种安全认证、网上银行、数字签名等。

    对称密码又可分为分组密码和序列(流)密码

    SM4 算法是 SM 系列算法中使用最为广泛的密码算法。

    SM1 商密 1 号

    • 对称加密,分组加密
    • 亦称 SCB2 算法
    • 不公开,仅以 IP 核的形式存在于芯片中
    • 采用该算法已经研制了系列芯片、智能 IC 卡、智能密码钥匙、加密卡、加密机等安全产品,广泛应用于电子政务、电子商务及国民经济的各个应用领域(包括国家政务通、警务通等重要领域)。
    • 替换 AES,分组长度和密钥长度都为 128 比特

    SM2

    • 公钥加密,基于椭圆曲线
    • 替换 RSA
    • 公开 国家密码管理局-该算法文档
    • 目前支持 SM2 算法的产品已达 1000 余款,广泛应用于电子政务、移动办公、电子商务、移动支付、电子证书等基础设施、云服务等领域。
    • SM2默认曲线算法 sm2p256v1

    SM3

    • 哈希算法
    • 公开国家密码管理局-该算法文档
    • 该算法已成为我国电子签名类密码系统、计算机安全登录系统、计算机安全通信系统、数字证书、 网络安全基础设施、安全云计算平台与大数据等领域信息安全的基础技术。

    SMS4

    SMS4 算法,是一个分组算法,分组长度和密钥长度均为 128 比特,加密算法与密钥扩展算法都采用 32 轮非线性迭代结构,最初作为无线局域网专用密码算法发布,后成为分组密码算法行业标准。目前支持 SMS4 算法的产品已达 700 余款,覆盖了各种有对称加密需求的应用。由于 SMS4 算法最初用于无线局域网芯片 WAPI 协议中,支持 SMS4 算法的 WAPI 无线局域网芯片已超过 350 多个型号,全球累计出 货量超过 70 亿颗。在金融领域,仅统计支持 SMS4 算法的智能密码钥匙出货量已超过 1.5 亿支。此外,SMS4 算法已被纳人可信计算组织(TCG)发布的可信平台模块库规范(TPIM2.0)中。

    SM7

    • 对称加密
    • 不公开

    SM7 适用于非接触式 IC 卡,应用包括身份识别类应用(门禁卡、工作证、参赛证),票务类应用(大型赛事门票、展会门票),支付与通卡类应用(积分消费卡、校园一卡通、企业一卡通等)。

    SM9

    • 标识密码算法
    • 公开
    • SM9 是一种基于身份标识的公钥密码算法,也被称为标识密码,采用 256 比特的椭圆曲线。

    SM9 算法不需要申请数字证书,适用于互联网应用的各种新兴应用的安全保密保障,如基于云技术的密码服务、电子邮件安全、智能终端保护、物联网安全、云存储安全等等。

    CSDN-基于SM9的密钥交换方案的实现与应用

    祖冲&ZUC 算法

    • 流密码
    • 主要用于通信领域
    • 该算法速度快,常用于移动通信 4G 网络。
    + \ No newline at end of file diff --git "a/docs/study/encryption/\345\212\240\350\247\243\345\257\206\346\234\215\345\212\241/index.html" "b/docs/study/encryption/\345\212\240\350\247\243\345\257\206\346\234\215\345\212\241/index.html" index 19a2a6002..0482623d8 100644 --- "a/docs/study/encryption/\345\212\240\350\247\243\345\257\206\346\234\215\345\212\241/index.html" +++ "b/docs/study/encryption/\345\212\240\350\247\243\345\257\206\346\234\215\345\212\241/index.html" @@ -11,13 +11,13 @@ - +
    -

    加解密服务

    加解密服务

    对称加密、非对称加密、数据摘要

    签名验签服务

    知乎-签名验签

    秘钥管理

    密钥是加密通信、保护数据的重要工具。密钥管理是指对密钥的产生、存储、使用和销毁等全过程进行管理,确保密钥的安全性和可靠性。

    密钥管理服务(KMS)

    文件加密

    数据库加密

    时间戳服务

    协同签名

    动态令牌

    电子签章

    SSLVPN加密通道

    数字证书认证

    证书实际是由证书签证机关(CA)签发的对用户的公钥的认证。

    证书的内容包括:电子签证机关的信息、公钥用户信息、公钥、权威机构的签字和有效期等等。目前,证书的格式和验证方法普遍遵循X.509 国际标准。

    • 加密:ca认证将文字转换成不能直接阅读的形式(即密文)的过程称为加密。

    • 解密:将密文转换成能够直接阅读的文字(即明文)的过程称为解密。

    - +

    加解密服务

    加解密服务

    对称加密、非对称加密、数据摘要

    签名验签服务

    知乎-签名验签

    秘钥管理

    密钥是加密通信、保护数据的重要工具。密钥管理是指对密钥的产生、存储、使用和销毁等全过程进行管理,确保密钥的安全性和可靠性。

    密钥管理服务(KMS)

    文件加密

    数据库加密

    时间戳服务

    协同签名

    动态令牌

    电子签章

    SSLVPN加密通道

    数字证书认证

    证书实际是由证书签证机关(CA)签发的对用户的公钥的认证。

    证书的内容包括:电子签证机关的信息、公钥用户信息、公钥、权威机构的签字和有效期等等。目前,证书的格式和验证方法普遍遵循X.509 国际标准。

    • 加密:ca认证将文字转换成不能直接阅读的形式(即密文)的过程称为加密。

    • 解密:将密文转换成能够直接阅读的文字(即明文)的过程称为解密。

    + \ No newline at end of file diff --git "a/docs/study/encryption/\345\257\206\347\240\201\345\223\210\345\270\214\347\256\227\346\263\225\346\200\273\347\273\223/index.html" "b/docs/study/encryption/\345\257\206\347\240\201\345\223\210\345\270\214\347\256\227\346\263\225\346\200\273\347\273\223/index.html" index 74dd3217a..f36b9b48c 100644 --- "a/docs/study/encryption/\345\257\206\347\240\201\345\223\210\345\270\214\347\256\227\346\263\225\346\200\273\347\273\223/index.html" +++ "b/docs/study/encryption/\345\257\206\347\240\201\345\223\210\345\270\214\347\256\227\346\263\225\346\200\273\347\273\223/index.html" @@ -11,13 +11,13 @@ - + - +
    + \ No newline at end of file diff --git "a/docs/study/encryption/\345\257\271\347\247\260\345\212\240\345\257\206-\345\210\206\347\273\204\345\257\206\347\240\201\347\232\204\346\250\241\345\274\217/index.html" "b/docs/study/encryption/\345\257\271\347\247\260\345\212\240\345\257\206-\345\210\206\347\273\204\345\257\206\347\240\201\347\232\204\346\250\241\345\274\217/index.html" index 6684c3af3..15897bc9a 100644 --- "a/docs/study/encryption/\345\257\271\347\247\260\345\212\240\345\257\206-\345\210\206\347\273\204\345\257\206\347\240\201\347\232\204\346\250\241\345\274\217/index.html" +++ "b/docs/study/encryption/\345\257\271\347\247\260\345\212\240\345\257\206-\345\210\206\347\273\204\345\257\206\347\240\201\347\232\204\346\250\241\345\274\217/index.html" @@ -11,13 +11,13 @@ - +
    -

    对称加密-分组密码的模式

    DES、3DES 和 AES 都属于分组密码,它们只能加密固定长度的明文。如果需要加密更长的明文,就需要对分组密码进行迭代,而分组密码的迭代方法称为分组密码的模式(Model)。简而一句话:分组密码的模式,就是分组密码的迭代方式。

    分组密码有很多种模式,这里主要介绍以下几种:ECB、CBC、CFB、OFB、CTR。

    ECB 模式

    ECB(Electronic CodeBook)模式,即电子密码本模式。该模式是将明文分组,加密后直接成为密文分组,分组之间没有关系。

    ECB 模式是所有模式中最简单的一种,该模式的明文分组与密文分组是一一对应的关系,若明文分组相同,其密文分组也一定相同。因此,ECB 模式也是最不安全的模式。

    CBC 模式

    CBC(Cipher Block Chaining)模式,即密码分组链接模式。该模式首先将明文分组与前一个密文分组进行 XOR 运算,然后再进行加密。只有第一个明文分组特殊,需要提前为其生成一个与分组长度相同的比特序列,进行 XOR 运算,这个比特序列称为初始化向量(Initialization Vector),简称 IV。

    CFB 模式

    CFB(Cipher FeedBack)模式,即密文反馈模式。该模式首先将前一个密文分组进行加密,再与当前明文分组进行 XOR 运算,来生成密文分组。同样 CFB 模式也需要一个 IV。

    OFB 模式

    OFB(Output FeedBack)模式,即输出反馈模式。该模式会产生一个密钥流,即将密码算法的前一个输出值,做为当前密码算法的输入值。该输入值再与明文分组进行 XOR 运行,计算得出密文分组。该模式需要一个 IV,进行加密后做为第一个分组的输入。

    CTR 模式

    CTR(CounTeR)模式,即计数器模式。该模式也会产生一个密钥流,它通过递增一个计数器来产生连续的密钥流。对该计数器进行加密,再与明文分组进行 XOR 运算,计算得出密文分组。

    分组密码的填充

    在分组密码中,当数据长度不符合分组长度时,需要按一定的方式,将尾部明文分组进行填充,这种将尾部分组数据填满的方法称为填充(Padding)。

    No Padding

    即不填充,要求明文的长度,必须是加密算法分组长度的整数倍。

    ANSI X9.23

    在填充字节序列中,最后一个字节填充为需要填充的字节长度,其余字节填充 0。

    ISO 10126

    在填充字节序列中,最后一个字节填充为需要填充的字节长度,其余字节填充随机数。

    PKCS#5 和 PKCS#7

    在填充字节序列中,每个字节填充为需要填充的字节长度。

    ISO/IEC 7816-4

    在填充字节序列中,第一个字节填充固定值 80,其余字节填充 0。若只需填充一个字节,则直接填充 80。

    Zero Padding

    在填充字节序列中,每个字节填充为 0。

    - +

    对称加密-分组密码的模式

    DES、3DES 和 AES 都属于分组密码,它们只能加密固定长度的明文。如果需要加密更长的明文,就需要对分组密码进行迭代,而分组密码的迭代方法称为分组密码的模式(Model)。简而一句话:分组密码的模式,就是分组密码的迭代方式。

    分组密码有很多种模式,这里主要介绍以下几种:ECB、CBC、CFB、OFB、CTR。

    ECB 模式

    ECB(Electronic CodeBook)模式,即电子密码本模式。该模式是将明文分组,加密后直接成为密文分组,分组之间没有关系。

    ECB 模式是所有模式中最简单的一种,该模式的明文分组与密文分组是一一对应的关系,若明文分组相同,其密文分组也一定相同。因此,ECB 模式也是最不安全的模式。

    CBC 模式

    CBC(Cipher Block Chaining)模式,即密码分组链接模式。该模式首先将明文分组与前一个密文分组进行 XOR 运算,然后再进行加密。只有第一个明文分组特殊,需要提前为其生成一个与分组长度相同的比特序列,进行 XOR 运算,这个比特序列称为初始化向量(Initialization Vector),简称 IV。

    CFB 模式

    CFB(Cipher FeedBack)模式,即密文反馈模式。该模式首先将前一个密文分组进行加密,再与当前明文分组进行 XOR 运算,来生成密文分组。同样 CFB 模式也需要一个 IV。

    OFB 模式

    OFB(Output FeedBack)模式,即输出反馈模式。该模式会产生一个密钥流,即将密码算法的前一个输出值,做为当前密码算法的输入值。该输入值再与明文分组进行 XOR 运行,计算得出密文分组。该模式需要一个 IV,进行加密后做为第一个分组的输入。

    CTR 模式

    CTR(CounTeR)模式,即计数器模式。该模式也会产生一个密钥流,它通过递增一个计数器来产生连续的密钥流。对该计数器进行加密,再与明文分组进行 XOR 运算,计算得出密文分组。

    分组密码的填充

    在分组密码中,当数据长度不符合分组长度时,需要按一定的方式,将尾部明文分组进行填充,这种将尾部分组数据填满的方法称为填充(Padding)。

    No Padding

    即不填充,要求明文的长度,必须是加密算法分组长度的整数倍。

    ANSI X9.23

    在填充字节序列中,最后一个字节填充为需要填充的字节长度,其余字节填充 0。

    ISO 10126

    在填充字节序列中,最后一个字节填充为需要填充的字节长度,其余字节填充随机数。

    PKCS#5 和 PKCS#7

    在填充字节序列中,每个字节填充为需要填充的字节长度。

    ISO/IEC 7816-4

    在填充字节序列中,第一个字节填充固定值 80,其余字节填充 0。若只需填充一个字节,则直接填充 80。

    Zero Padding

    在填充字节序列中,每个字节填充为 0。

    + \ No newline at end of file diff --git "a/docs/study/encryption/\345\257\271\347\247\260\345\212\240\345\257\206\347\256\227\346\263\225\346\200\273\347\273\223/index.html" "b/docs/study/encryption/\345\257\271\347\247\260\345\212\240\345\257\206\347\256\227\346\263\225\346\200\273\347\273\223/index.html" index 624376424..44a65bbe9 100644 --- "a/docs/study/encryption/\345\257\271\347\247\260\345\212\240\345\257\206\347\256\227\346\263\225\346\200\273\347\273\223/index.html" +++ "b/docs/study/encryption/\345\257\271\347\247\260\345\212\240\345\257\206\347\256\227\346\263\225\346\200\273\347\273\223/index.html" @@ -11,13 +11,13 @@ - +
    -

    对称加密算法总结

    对称加密算法总结

    • DES,已被破解,不建议使用,是对称加密算法的基石,具有学习价值
    • 3DES,早于 AES 出现,用来代替 DES,计算秘钥时间太长,加密效率不高,所以基本不在使用,除非一些老的系统兼容
    • AES,对称加密算法中性能最高的,速度快,安全级别高,是现在最流行的对称加密算法,Rijndael 算法是 AES 算法的基础,AES 算法是 Rijndael 算法的一个具体实现,AES 算法有 5 种密钥长度,分别是 128 位,192 位,256 位
    • IDEA,常用的电子邮件加密算法
    • PBE,不推荐使用
    - +

    对称加密算法总结

    对称加密算法总结

    • DES,已被破解,不建议使用,是对称加密算法的基石,具有学习价值
    • 3DES,早于 AES 出现,用来代替 DES,计算秘钥时间太长,加密效率不高,所以基本不在使用,除非一些老的系统兼容
    • AES,对称加密算法中性能最高的,速度快,安全级别高,是现在最流行的对称加密算法,Rijndael 算法是 AES 算法的基础,AES 算法是 Rijndael 算法的一个具体实现,AES 算法有 5 种密钥长度,分别是 128 位,192 位,256 位
    • IDEA,常用的电子邮件加密算法
    • PBE,不推荐使用
    + \ No newline at end of file diff --git "a/docs/study/encryption/\346\225\260\345\255\227\350\257\201\344\271\246/index.html" "b/docs/study/encryption/\346\225\260\345\255\227\350\257\201\344\271\246/index.html" index eadf2b804..c8c77374d 100644 --- "a/docs/study/encryption/\346\225\260\345\255\227\350\257\201\344\271\246/index.html" +++ "b/docs/study/encryption/\346\225\260\345\255\227\350\257\201\344\271\246/index.html" @@ -11,13 +11,13 @@ - +
    -

    数字证书

    数字证书就是互联网通讯中标志通讯各方身份信息的一串数字,提供了一种在Internet上验证通信实体身份的方式,数字证书不是数字身份证,而是身份认证机构盖在数字身份证上的一个章或印(或者说加在数字身份证上的一个签名)。它是由权威机构——CA机构,又称为证书授权(Certificate Authority)中心发行的,人们可以在网上用它来识别对方的身份。

    pfx证书转pem和key

    要将PFX格式的证书转换为PEM格式,并且提取出私钥,可以使用OpenSSL工具。

    # 执行以下命令将PFX证书转换为PEM格式:
    openssl pkcs12 -in your_certificate.pfx -nodes -out certificate.pem
    # 执行以下命令从PEM文件中提取私钥:
    openssl rsa -in certificate.pem -out private_key.key

    参考

    - +

    数字证书

    数字证书就是互联网通讯中标志通讯各方身份信息的一串数字,提供了一种在Internet上验证通信实体身份的方式,数字证书不是数字身份证,而是身份认证机构盖在数字身份证上的一个章或印(或者说加在数字身份证上的一个签名)。它是由权威机构——CA机构,又称为证书授权(Certificate Authority)中心发行的,人们可以在网上用它来识别对方的身份。

    pfx证书转pem和key

    要将PFX格式的证书转换为PEM格式,并且提取出私钥,可以使用OpenSSL工具。

    # 执行以下命令将PFX证书转换为PEM格式:
    openssl pkcs12 -in your_certificate.pfx -nodes -out certificate.pem
    # 执行以下命令从PEM文件中提取私钥:
    openssl rsa -in certificate.pem -out private_key.key

    参考

    + \ No newline at end of file diff --git "a/docs/study/encryption/\346\266\210\346\201\257\346\221\230\350\246\201\347\256\227\346\263\225\346\200\273\347\273\223/index.html" "b/docs/study/encryption/\346\266\210\346\201\257\346\221\230\350\246\201\347\256\227\346\263\225\346\200\273\347\273\223/index.html" index 45a644d4e..9fc9f0ec4 100644 --- "a/docs/study/encryption/\346\266\210\346\201\257\346\221\230\350\246\201\347\256\227\346\263\225\346\200\273\347\273\223/index.html" +++ "b/docs/study/encryption/\346\266\210\346\201\257\346\221\230\350\246\201\347\256\227\346\263\225\346\200\273\347\273\223/index.html" @@ -11,13 +11,13 @@ - +
    -

    消息摘要算法总结

    消息摘要(Message Digest)又称为数字摘要(Digital Digest)。它是一个唯一对应一个消息或文本的固定长度的值,它由一个单向 Hash 加密函数对消息进行作用而产生。如果消息在途中改变了,则接收者通过对收到消息的新产生的摘要与原摘要比较,就可知道消息是否被改变了。因此消息摘要保证了消息的完整性。

    消息摘要采用单向 Hash 函数将需加密的明文"摘要"成一串固定位数(如 128bit)的密文,这一串密文亦称为数字指纹(Finger Print),它有固定的长度,且不同的明文摘要成密文,其结果总是不同的,而同样的明文其摘要必定一致。这样这串摘要便可成为验证明文是否是“真身”的“指纹”了。

    消息摘要具有不可逆性,在消息摘要生成过程中,会丢失很多原文的信息,而且无法找回。一个好的摘要算法,是极难产生 Hash 碰撞的,也就是找到另一段明文经计算后产生相同的摘要。

    MD5

    MD 是应用非常广泛的一个算法家族,尤其是 MD5(Message-Digest Algorithm 5,消息摘要算法版本 5),它由 MD2、MD3、MD4 发展而来,由 Ron Rivest(RSA 公司)在 1992 年提出,目前被广泛应用于数据完整性校验、数据(消息)摘要、数据加密等。MD2、MD4、MD5 都产生 16 字节(128 位)的校验值,一般用 32 位十六进制数表示。MD2 的算法较慢但相对安全,MD4 速度很快,但安全性下降,MD5 比 MD4 更安全、速度更快。

    目前在互联网上进行大文件传输时,都要得用 MD5 算法产生一个与文件匹配的、存储 MD5 值的文本文件(后缀名为 .md5 或.md5sum),这样接收者在接收到文件后,就可以利用与 SFV 类似的方法来检查文件完整性,目前绝大多数大型软件公司或开源组织都是以这种方式来校验数据完整性,而且部分操作系统也使用此算法来对用户密码进行加密,另外,它也是目前计算机犯罪中数据取证的最常用算法。与 MD5 相关的工具有很多,如 WinMD5 等。

    SHA

    SHA(Secure Hash Algorithm)是由美国专门制定密码算法的标准机构——美国国家标准技术研究院(NIST)制定的,SHA 系列算法的摘要长度分别为:SHA-1 为 20 字节(160 位)、SHA-224 为 32 字节(224 位)、SHA-256 为 32 字节(256 位)、SHA-384 为 48 字节(384 位)、SHA-512 为 64 字节(512 位),由于它产生的数据摘要的长度更长,因此更难以发生碰撞,因此较之 MD5 更为安全,它是未来数据摘要算法的发展方向。由于 SHA 系列算法的数据摘要长度较长,因此其运算速度与 MD5 相比,也相对较慢。

    目前 SHA1 的应用较为广泛,主要应用于 CA 和数字证书中,另外在目前互联网中流行的 BT 软件中,也是使用 SHA1 来进行文件校验的。

    MAC

    MAC 算法 (Message Authentication Codes 消息认证码算法) 含有密钥的散列函数算法,兼容了 MD 和 SHA 算法的特性,并在此基础上加上了密钥。因此 MAC 算法也经常被称作 HMAC 算法。消息的散列值由只有通信双方知道的密钥来控制。此时 Hash 值称作 MAC。

    经过 MAC 算法得到的摘要值也可以使用十六进制编码表示,其摘要值得长度与实现算法的摘要值长度相同。例如 HmacSHA 算法得到的摘要长度就是 SHA1 算法得到的摘要长度,都是 160 位二进制数,换算成十六进制的编码为 40 位。

    流程分析:

    甲乙双方进行数据交换可以采取如下流程:

    1.甲方向乙方公布摘要算法(就是指定要使用的摘要算法名)

    2.甲乙双方按照约定构造密钥,双方拥有相同的密钥(一般是一方构造密钥后通知另外一方,此过程不需要通过程序实现,就是双方约定个字符串,但是这个字符串可不是随便设定的,也是通过相关算法获取的)

    3.甲方使用密钥对消息做摘要处理,然后将消息和生成的摘要消息一同发送给乙方

    4.乙方收到消息后,使用甲方已经公布的摘要算法+约定好的密钥 对收到的消息进行摘要处理。然后比对自己的摘要消息和甲方发过来的摘要消息。甄别消息是否是甲方发送过来的。

    - +

    消息摘要算法总结

    消息摘要(Message Digest)又称为数字摘要(Digital Digest)。它是一个唯一对应一个消息或文本的固定长度的值,它由一个单向 Hash 加密函数对消息进行作用而产生。如果消息在途中改变了,则接收者通过对收到消息的新产生的摘要与原摘要比较,就可知道消息是否被改变了。因此消息摘要保证了消息的完整性。

    消息摘要采用单向 Hash 函数将需加密的明文"摘要"成一串固定位数(如 128bit)的密文,这一串密文亦称为数字指纹(Finger Print),它有固定的长度,且不同的明文摘要成密文,其结果总是不同的,而同样的明文其摘要必定一致。这样这串摘要便可成为验证明文是否是“真身”的“指纹”了。

    消息摘要具有不可逆性,在消息摘要生成过程中,会丢失很多原文的信息,而且无法找回。一个好的摘要算法,是极难产生 Hash 碰撞的,也就是找到另一段明文经计算后产生相同的摘要。

    MD5

    MD 是应用非常广泛的一个算法家族,尤其是 MD5(Message-Digest Algorithm 5,消息摘要算法版本 5),它由 MD2、MD3、MD4 发展而来,由 Ron Rivest(RSA 公司)在 1992 年提出,目前被广泛应用于数据完整性校验、数据(消息)摘要、数据加密等。MD2、MD4、MD5 都产生 16 字节(128 位)的校验值,一般用 32 位十六进制数表示。MD2 的算法较慢但相对安全,MD4 速度很快,但安全性下降,MD5 比 MD4 更安全、速度更快。

    目前在互联网上进行大文件传输时,都要得用 MD5 算法产生一个与文件匹配的、存储 MD5 值的文本文件(后缀名为 .md5 或.md5sum),这样接收者在接收到文件后,就可以利用与 SFV 类似的方法来检查文件完整性,目前绝大多数大型软件公司或开源组织都是以这种方式来校验数据完整性,而且部分操作系统也使用此算法来对用户密码进行加密,另外,它也是目前计算机犯罪中数据取证的最常用算法。与 MD5 相关的工具有很多,如 WinMD5 等。

    SHA

    SHA(Secure Hash Algorithm)是由美国专门制定密码算法的标准机构——美国国家标准技术研究院(NIST)制定的,SHA 系列算法的摘要长度分别为:SHA-1 为 20 字节(160 位)、SHA-224 为 32 字节(224 位)、SHA-256 为 32 字节(256 位)、SHA-384 为 48 字节(384 位)、SHA-512 为 64 字节(512 位),由于它产生的数据摘要的长度更长,因此更难以发生碰撞,因此较之 MD5 更为安全,它是未来数据摘要算法的发展方向。由于 SHA 系列算法的数据摘要长度较长,因此其运算速度与 MD5 相比,也相对较慢。

    目前 SHA1 的应用较为广泛,主要应用于 CA 和数字证书中,另外在目前互联网中流行的 BT 软件中,也是使用 SHA1 来进行文件校验的。

    MAC

    MAC 算法 (Message Authentication Codes 消息认证码算法) 含有密钥的散列函数算法,兼容了 MD 和 SHA 算法的特性,并在此基础上加上了密钥。因此 MAC 算法也经常被称作 HMAC 算法。消息的散列值由只有通信双方知道的密钥来控制。此时 Hash 值称作 MAC。

    经过 MAC 算法得到的摘要值也可以使用十六进制编码表示,其摘要值得长度与实现算法的摘要值长度相同。例如 HmacSHA 算法得到的摘要长度就是 SHA1 算法得到的摘要长度,都是 160 位二进制数,换算成十六进制的编码为 40 位。

    流程分析:

    甲乙双方进行数据交换可以采取如下流程:

    1.甲方向乙方公布摘要算法(就是指定要使用的摘要算法名)

    2.甲乙双方按照约定构造密钥,双方拥有相同的密钥(一般是一方构造密钥后通知另外一方,此过程不需要通过程序实现,就是双方约定个字符串,但是这个字符串可不是随便设定的,也是通过相关算法获取的)

    3.甲方使用密钥对消息做摘要处理,然后将消息和生成的摘要消息一同发送给乙方

    4.乙方收到消息后,使用甲方已经公布的摘要算法+约定好的密钥 对收到的消息进行摘要处理。然后比对自己的摘要消息和甲方发过来的摘要消息。甄别消息是否是甲方发送过来的。

    + \ No newline at end of file diff --git "a/docs/study/encryption/\347\255\211\344\277\235_\345\257\206\350\257\204/index.html" "b/docs/study/encryption/\347\255\211\344\277\235_\345\257\206\350\257\204/index.html" index 427894e58..fabfaf19f 100644 --- "a/docs/study/encryption/\347\255\211\344\277\235_\345\257\206\350\257\204/index.html" +++ "b/docs/study/encryption/\347\255\211\344\277\235_\345\257\206\350\257\204/index.html" @@ -11,13 +11,13 @@ - +
    -

    等保和密评

    “等保”即网络安全等级保护,旨在通过不同安全等级的管理和技术措施,确保信息系统的安全稳定运行。我国于2017年颁布的《网络安全法》中第二十一条规定“国家实行网络安全等级保护制度”。法律要求网络运营者需按照网络安全等级保护制度要求,履行制定安全管理制度、采取防范技术措施、监测记录网络状态、保护数据安全等多项义务,确保网络安全稳定。

    “密评”即商用密码应用安全性评估,是对网络信息系统中所使用的商用密码产品和应用进行的安全性评估。《密码法》于2020年开始实施,其中第二十七条要求关键信息基础设施的运营者需依法使用商用密码进行保护,并自行或委托专业机构开展安全性评估,确保与其他安全检测评估制度相衔接,避免重复工作。

    参考

    - +

    等保和密评

    “等保”即网络安全等级保护,旨在通过不同安全等级的管理和技术措施,确保信息系统的安全稳定运行。我国于2017年颁布的《网络安全法》中第二十一条规定“国家实行网络安全等级保护制度”。法律要求网络运营者需按照网络安全等级保护制度要求,履行制定安全管理制度、采取防范技术措施、监测记录网络状态、保护数据安全等多项义务,确保网络安全稳定。

    “密评”即商用密码应用安全性评估,是对网络信息系统中所使用的商用密码产品和应用进行的安全性评估。《密码法》于2020年开始实施,其中第二十七条要求关键信息基础设施的运营者需依法使用商用密码进行保护,并自行或委托专业机构开展安全性评估,确保与其他安全检测评估制度相衔接,避免重复工作。

    参考

    + \ No newline at end of file diff --git "a/docs/study/encryption/\350\241\214\344\270\232\345\210\206\346\236\220/index.html" "b/docs/study/encryption/\350\241\214\344\270\232\345\210\206\346\236\220/index.html" index b7a6a677d..23eaa1b46 100644 --- "a/docs/study/encryption/\350\241\214\344\270\232\345\210\206\346\236\220/index.html" +++ "b/docs/study/encryption/\350\241\214\344\270\232\345\210\206\346\236\220/index.html" @@ -11,13 +11,13 @@ - + - +
    + \ No newline at end of file diff --git "a/docs/study/encryption/\350\257\273\344\271\246\347\254\224\350\256\260-\345\233\276\350\247\243\345\257\206\347\240\201\346\212\200\346\234\257/index.html" "b/docs/study/encryption/\350\257\273\344\271\246\347\254\224\350\256\260-\345\233\276\350\247\243\345\257\206\347\240\201\346\212\200\346\234\257/index.html" index 8542b9c79..0fe60c8f4 100644 --- "a/docs/study/encryption/\350\257\273\344\271\246\347\254\224\350\256\260-\345\233\276\350\247\243\345\257\206\347\240\201\346\212\200\346\234\257/index.html" +++ "b/docs/study/encryption/\350\257\273\344\271\246\347\254\224\350\256\260-\345\233\276\350\247\243\345\257\206\347\240\201\346\212\200\346\234\257/index.html" @@ -11,7 +11,7 @@ - + @@ -19,8 +19,8 @@

    读书笔记-图解密码技术

    密码学家的工具箱

    包括:

    1. 对称加密,加密和解密的秘钥是一样的;
    2. 非对称加密,加密和解密的秘钥是不一样的;
    3. 单项散列函数,就是哈希;
    4. 消息认证码;
    5. 数字签名;
    6. 伪随机数生成器;

    image.png

    凯撒密码加密:是通过将明文中所使用的字母表按照一定的字数“平移”来进行加密的。 简单替换加密:是将明文中所有使用的字母替换成另一套字母表的密码。

    一种密码能够使用的“所有秘钥的集合”称为秘钥空间。

    虽然用暴力破解很难破解简单替换密码,但使用被称为频率分析的密码破译方法,就能够破译简单替换密码。所谓的频率分析是指对密文中出现的字母次数进行统计,然后根据经验尝试去解读简单替换的含义。从公元前开始,简单替换密码在几百年的时间里一直被用于秘密通信。然而在阿拉伯学者发明频率分析法之后,这种密码很容易就被破译了。

    将密码算法和秘钥分开考虑,就解决了希望重复使用,但重复使用会增加风险这个难题。

    XOR=异或

    DES》三重 DES

    AES 所使用的密码算法是比利时密码学家开发的 R'ijndael。

    一般来说,我们不应该使用任何自制的密码算法,而是应该使用 AES。因为 AES 在其选定过程中,经过了全世界密码学家的所进行的高品质的验证工,而对于自制的密码算法则很难进行这样的验证。

    密码算法可以分为分组密码和流密码两种;分组密码是每次只能处理特定长度的一块数据的一类密码算法,这里的一块就成为分组。刺猬一个分组的比特数就称为分组长度。例如 DES 和三重 DES 的分组长度都是 64 比特。这些密码算法一次只能加密 64 比特的明文,并生成 64 比特的密文。AES 的分组长度可以从 128 比特、192 比特和 256 比特中进行选择。

    流密码是对数据流进行连续处理的一类密码算法。流密码中一般以 1 比特、8 比特或 32 比特为单位进行加密和解密。

    在对称密码中所介绍的算法中,只有一次性密码本属于流密码,而 DES、三重 DES、AES 等大多数对称密码算法都属于分组密码。

    分组密码算法只能加密固定长度的分组,但是我们需要加密的密文长度可能会超过分组密码的分组长度,这时就需要对分组密码算法进行迭代,以便讲一段很长的明文全部加密。而迭代的方法就成为分组密码的模式。模式有很多种类,主要有:

    1. ECB 模式,电子密码本模式;将明文分组加密之后的结果直接成为密文分组;模式简单,通常不会被使用;
    2. CBC 模式,密码分组链接模式;确保互联网安全的通信协议之一 IPsec,就是使用 CBC 模式来确保通信机密性的,如使用 CBC 模式三重 DES 的 3DES-CBC 以及 CBC 模式 AES 的 AES-CBC 等。
    3. CFB 模式,密文反馈模式;
    4. OFB 模式,输出反馈模式;
    5. CTR 模式,计数器模式;

    image.png

    在对称密码中,由于加密和解密的秘钥是相同的,因此必须向接收者佩松秘钥。用于解密的秘钥必须被配送给接收者,这一问题被称为秘钥配送问题。如果使用公钥密码,则无需向接收者佩松用于解密的秘钥,这样就解决了秘钥配送问题。可以说公钥密码是密码学历史上最伟大的发明。

    公钥密码中

    加密秘钥一般是公开的。正式由于加密秘钥是可以任意公开,因此该秘钥被称为公钥。相对的,解密秘钥是绝对不能公开的,这个秘钥只能由你自己来使用,因此成为私钥。秘钥对中的两个秘钥之间具有非常密切的关系-数学上的关系-因此公钥和私钥是不能分别独立生成的。

    RSA 可以说是现在公钥密码的事实标准。

    公钥密码无法解决的问题:

    1. 公钥是否合法的问题,也就是公钥认证问题,因为存在中间人替换公钥的问题;
    2. 他的处理速度只有对称密码的几百分之一;

    image.png

    image.png

    对称密码通过将明文转换成复杂的形式来保证其机密性,相对的,公钥密码则是基于数学上的困难的问题来保证机密性的。例如 RSA 就利用了大整数的质因数分解问题的困难度。因此,对称密码和公钥密码源于两种根本不同的思路。

    混合密码系统,用对称密码提高速度,用公钥密码来包含会话秘钥。会话秘钥是对称密码的秘钥,同时也是公钥密码的明文。

    单向散列函数

    就是一种采集文件指纹的技术,单向散列函数有一个输入和一个输出,其中输入成为消息,输出成为散列值。单向散列函数可以根据消息的内容计算出散列值,而散列值就可以被用来检查消息的完整性。

    散列值的长度和消息的长度无关。无论消息是 1 比特还是 100MB,甚至是 100GB,单向散列函数斗湖自己算出固定长度的散列值。以 SHA-1 单向散列函数为例,他所计算出的散列值的长度永远是 160 比特(20 字节)。

    单向散列函数也称为消息摘要函数,哈希函数或者杂凑函数。输入单向散列函数的消息也称为原像。单向散列函数输出的散列值也称为消息摘要或者指纹。完整性也称为一致性。

    单向散列函数的实际应用:基于口令的加密、消息认证码、数字签名、伪随机数生成器、一次性口令。

    几种单向散列函数:

    1. MD4,消息摘要 Message Digest 4,已经找到散列碰撞的方法,已不安全;
    2. MD5,强抗碰撞性已被攻破,已不安全。
    3. SHA-1,已被攻破;
    4. SHA-2,包括 SHA-256、SHA-384、SHA-512,尚未被攻破;
    5. RIPEMD,已被攻破;
    6. RIPEMD-160,尚未被攻破;

    单向散列函数无法解决的问题:单向散列函数能够辨别出“篡改”,但无法辨别出“伪装”。

    消息认证码

    是一种确认完整性并进行认证的技术,取三个单词的首字母,简称 MAC。消息认证码的输入包括任意长度的消息和一个发送者与接收者之间共享的秘钥,他可以输出固定长度的数据,这个数据称为 MAC 值。消息认证码有很多实现方法,大家可以暂且这样理解:消息认证码是一种与秘钥相关联的单向散列函数。

    几个消息认证码在现实世界中应用的实例,

    1. SWIFT,环球银行金融电信协会,是一个为国际银行间的交易保驾护航的组织;用的就是消息认证码,消息认证码的秘钥是通过人来进行配送的。
    2. IPSec
    3. SSL/TLS

    消息认证码有很多实现方式,

    1. 使用 SHA-1、MD5 之类的单向散列函数可以实现消息认证码,成为 HMAC;
    2. 使用分组密码实现,例如 DES、AES
    3. 使用流密码和公钥密码等;

    消息认证码无法解决的问题,包括“对第三方证明”和“防止否认”。

    数字签名-消息到底是谁写的。

    数字签名是一种将相当于现实世界中的签章、签字的功能在计算机世界中进行实现的技术。使用数字签名可以识别篡改和伪装,还可防止否认。

    实际上,数字签名和公钥密码有着非常紧密的联系,简而言之,数字签名就是通过讲公钥密码“反过来用”而实现的。

    image.png

    数字签名的作用本来就不是保证机密性的,而是被用于代表一种只有持有该秘钥的人才能够生成信息。

    image.png

    对称密码的秘钥是机密性的精华,单向散列函数的散列值是完整性的精华。

    证书-为公钥加上数字签名

    证书是由认证机构颁发的,使用者需要对证书进行验证,因此如果证书的格式千奇百怪那就不方便了,于是,人们制定了证书的标准规范,使用最广泛的是 X.509 规范。

    公钥基础设施 PKI 是为了能够有效地运用公钥而制定的一些列规范和规格的总称。公钥基础设施一般根据其应用缩写而简称为 PKI。

    请记住,使用公开的技术和把自己的技术公开是两码事。采用已经公开的,并积累了大量成果的技术是正确的决定,然而并不需要将自己公司所采用的技术上的细节公开出来。我们拿员工访问公司内部网络的方法为例。验证员工的合法身份可以采用公开的,积累了大量成果的技术,但是我们并不需要将这些细节公开出来,而是只要告诉相关的员工就可以了。这样我们就可以将自己的风险控制到最小,万一有人恶意讲技术的详细信息公开出来,也不会产生严重的问题,因为我们所使用的技术原本就是公开的。反过来说,如果我们使用的技术是依靠对细节的保密来保证安全的,那么一旦有人恶意泄漏技术细节,就会造成严重的问题。

    有限群的离散对数问题的复杂度正式支撑 Diffie-Hellman 秘钥交换算法的基础。

    随机数-不可预测性的源泉

    我们将随机数的性质分为以下三类:

    1. 随机性,不存在统计学偏差,是完全杂乱的数列;
    2. 不可预测性,不能从过去的数列推测出下一个出现的数;
    3. 不可重现性,除非将数列本身保存下来,否则不能重现相同的数列;

    image.png

    仅靠软件是无法生成出具备不可重现性的随机数列的。软件只能生成伪随机数列,这是因为运行软件的计算机本身具备优先的内部状态。而在内部状态相同的条件下,软件必然只能生成相同的数,因为软件所生成的数列在某个时刻一定会出现重复。首次出现重复之前的数列长度称为周期,对于软件所生成的数列,其周期必定是有限的。当然,这个周期可能会很长,但总归是有限的。凡是具有周期的数列,都不具备不可重现性。

    随机数可以通过硬件来生成,也可以通过软件来生成。 通过硬件生成的随机数列,是根据传感器收集的热量、声音的变化等事实上无法预测和重现的自然现象信息来生成的。像这样的硬件设备就成为随机数生成器。 -而可以生成随机数的软件则称为伪随机数生成器。因为仅靠软件无法生成真随机数,因此要加上一个伪字。

    一些具体的伪随机数生成器:

    1. 乱来的方法,不行,不具备不可预测性;
    2. 线性同余法,是一种应用非常广泛的伪随机数生成器算法,很多预研的随机数函数都是用的他,例如 js、java,然而他不能用于密码技术。不具备不可预测性;
    3. 单向散列函数法,具备不可预测性;
    4. 密码法,具备不可预测性,既可以使用 AES 等对称密码,也可以使用 RSA 等公钥密码;

    伪随机数的种子和密码的秘钥同等重要。如果攻击者知道了伪随机数的种子,那么他就能够知道这个伪随机数生成器所生成的全部伪随机数数列。因为伪随机数的种子不可能被攻击者知道。要避免种子被攻击者知道,我们需要使用具备不可重现性的真随机数作为种子。

    PGP-密码技术的完美组合

    SSL/TLS

    为了更安全的通信,是世界上应用最广泛的密码通信方法。

    image.png

    - +而可以生成随机数的软件则称为伪随机数生成器。因为仅靠软件无法生成真随机数,因此要加上一个伪字。

    一些具体的伪随机数生成器:

    1. 乱来的方法,不行,不具备不可预测性;
    2. 线性同余法,是一种应用非常广泛的伪随机数生成器算法,很多预研的随机数函数都是用的他,例如 js、java,然而他不能用于密码技术。不具备不可预测性;
    3. 单向散列函数法,具备不可预测性;
    4. 密码法,具备不可预测性,既可以使用 AES 等对称密码,也可以使用 RSA 等公钥密码;

    伪随机数的种子和密码的秘钥同等重要。如果攻击者知道了伪随机数的种子,那么他就能够知道这个伪随机数生成器所生成的全部伪随机数数列。因为伪随机数的种子不可能被攻击者知道。要避免种子被攻击者知道,我们需要使用具备不可重现性的真随机数作为种子。

    PGP-密码技术的完美组合

    SSL/TLS

    为了更安全的通信,是世界上应用最广泛的密码通信方法。

    image.png

    + \ No newline at end of file diff --git "a/docs/study/encryption/\351\235\236\345\257\271\347\247\260\345\212\240\345\257\206\347\256\227\346\263\225\346\200\273\347\273\223/index.html" "b/docs/study/encryption/\351\235\236\345\257\271\347\247\260\345\212\240\345\257\206\347\256\227\346\263\225\346\200\273\347\273\223/index.html" index 541a07880..b545963c6 100644 --- "a/docs/study/encryption/\351\235\236\345\257\271\347\247\260\345\212\240\345\257\206\347\256\227\346\263\225\346\200\273\347\273\223/index.html" +++ "b/docs/study/encryption/\351\235\236\345\257\271\347\247\260\345\212\240\345\257\206\347\256\227\346\263\225\346\200\273\347\273\223/index.html" @@ -11,13 +11,13 @@ - +
    -

    非对称加密算法总结

    本文将详细介绍几种常见的非对称加密算法,包括它们的工作原理、优缺点和应用场景。

    一、RSA 算法

    算法的名字以发明者的名字命名:Ron Rivest, AdiShamir 和 Leonard Adleman。

    RSA 算法是最早的非对称加密算法之一,也是目前使用最广泛的非对称加密算法。

    它基于大数因子分解问题,提供了良好的安全性。但由于其运算复杂,效率相对较低。

    RSA 算法被广泛应用于网络通信、电子签名、SSL/TLS 等领域。

    二、ECC(Elliptic Curve Cryptography)

    ECC 是基于椭圆曲线数学的一种非对称加密算法。相比于 RSA,ECC 在提供相同安全性的情况下,需要的密钥长度更短,这使得 ECC 在处理速度和存储空间上都比 RSA 更优秀。

    ECC 常被用于移动设备、嵌入式系统等资源受限的环境,也被用于 SSL/TLS、IPSec 等网络安全协议。

    三、Diffie-Hellman 算法

    Diffie-Hellman 算法是一种密钥交换协议,它允许双方在公开通道上生成一个共享的密钥。虽然 Diffie-Hellman 算法本身不是用来加密或签名的,但它在许多非对称加密和数字签名算法中起到了关键作用。

    Diffie-Hellman 算法被广泛应用于 VPN、安全通信等场景。

    四、ElGamal 算法

    ElGamal 算法是另一种基于离散对数问题的非对称加密算法,它可以用于加密和数字签名。

    ElGamal 加密的安全性在于求解离散对数问题的困难性,但是其运算效率相对较低。

    ElGamal 算法在电子邮件加密(例如 OpenPGP)和电子签名等领域有应用。

    五、DSA(Digital Signature Algorithm)

    DSA 是一种主要用于数字签名的非对称算法,它是 NIST 制定的 DSS(Digital Signature Standard)的一部分。

    DSA 的安全性基于离散对数问题。

    DSA 算法被广泛应用于数字签名、证书认证等领域。

    - +

    非对称加密算法总结

    本文将详细介绍几种常见的非对称加密算法,包括它们的工作原理、优缺点和应用场景。

    一、RSA 算法

    算法的名字以发明者的名字命名:Ron Rivest, AdiShamir 和 Leonard Adleman。

    RSA 算法是最早的非对称加密算法之一,也是目前使用最广泛的非对称加密算法。

    它基于大数因子分解问题,提供了良好的安全性。但由于其运算复杂,效率相对较低。

    RSA 算法被广泛应用于网络通信、电子签名、SSL/TLS 等领域。

    二、ECC(Elliptic Curve Cryptography)

    ECC 是基于椭圆曲线数学的一种非对称加密算法。相比于 RSA,ECC 在提供相同安全性的情况下,需要的密钥长度更短,这使得 ECC 在处理速度和存储空间上都比 RSA 更优秀。

    ECC 常被用于移动设备、嵌入式系统等资源受限的环境,也被用于 SSL/TLS、IPSec 等网络安全协议。

    三、Diffie-Hellman 算法

    Diffie-Hellman 算法是一种密钥交换协议,它允许双方在公开通道上生成一个共享的密钥。虽然 Diffie-Hellman 算法本身不是用来加密或签名的,但它在许多非对称加密和数字签名算法中起到了关键作用。

    Diffie-Hellman 算法被广泛应用于 VPN、安全通信等场景。

    四、ElGamal 算法

    ElGamal 算法是另一种基于离散对数问题的非对称加密算法,它可以用于加密和数字签名。

    ElGamal 加密的安全性在于求解离散对数问题的困难性,但是其运算效率相对较低。

    ElGamal 算法在电子邮件加密(例如 OpenPGP)和电子签名等领域有应用。

    五、DSA(Digital Signature Algorithm)

    DSA 是一种主要用于数字签名的非对称算法,它是 NIST 制定的 DSS(Digital Signature Standard)的一部分。

    DSA 的安全性基于离散对数问题。

    DSA 算法被广泛应用于数字签名、证书认证等领域。

    + \ No newline at end of file diff --git "a/docs/study/fe/ARMS\345\211\215\347\253\257\347\233\221\346\216\247/index.html" "b/docs/study/fe/ARMS\345\211\215\347\253\257\347\233\221\346\216\247/index.html" index ff4caa133..3d4e161bd 100644 --- "a/docs/study/fe/ARMS\345\211\215\347\253\257\347\233\221\346\216\247/index.html" +++ "b/docs/study/fe/ARMS\345\211\215\347\253\257\347\233\221\346\216\247/index.html" @@ -11,13 +11,13 @@ - +
    -

    ARMS前端监控

    ARMS前端监控专注于对Web场景、Weex场景和小程序场景的监控,从页面打开速度(测速)、页面稳定性(JS诊断错误)和外部服务调用成功率(API)这三个方面监测Web和小程序页面的健康度。

    为什么要有前端监控?

    用户访问您的业务时,整个访问过程大致可以分为三个阶段:页面生产时(服务器端状态)、页面加载时和页面运行时。

    为了保证线上业务稳定运行,我们会在服务器端对业务的运行状态进行各种监控。现有的服务器端监控系统相对已经很成熟,而页面加载和页面运行时的状态监控一直比较欠缺。例如:

    • 无法第一时间获知用户访问您的站点时遇到的错误。
    • 各个国家、各个地区的用户访问您的站点的真实速度未知。
    • 每个应用内有大量的异步数据调用,而它们的性能、成功率都是未知的。

    我们的解决方案

    ARMS前端监控重点监控页面的加载过程和运行时状态,同时将页面加载性能、运行时异常以及API调用状态和耗时等数据,上报到日志服务器。之后借助ARMS提供的海量实时日志分析和处理服务,对当前线上所有真实用户的访问情况进行监控。最后通过直观的报表展示,帮助您及时发现并诊断问题。

    参考

    - +

    ARMS前端监控

    ARMS前端监控专注于对Web场景、Weex场景和小程序场景的监控,从页面打开速度(测速)、页面稳定性(JS诊断错误)和外部服务调用成功率(API)这三个方面监测Web和小程序页面的健康度。

    为什么要有前端监控?

    用户访问您的业务时,整个访问过程大致可以分为三个阶段:页面生产时(服务器端状态)、页面加载时和页面运行时。

    为了保证线上业务稳定运行,我们会在服务器端对业务的运行状态进行各种监控。现有的服务器端监控系统相对已经很成熟,而页面加载和页面运行时的状态监控一直比较欠缺。例如:

    • 无法第一时间获知用户访问您的站点时遇到的错误。
    • 各个国家、各个地区的用户访问您的站点的真实速度未知。
    • 每个应用内有大量的异步数据调用,而它们的性能、成功率都是未知的。

    我们的解决方案

    ARMS前端监控重点监控页面的加载过程和运行时状态,同时将页面加载性能、运行时异常以及API调用状态和耗时等数据,上报到日志服务器。之后借助ARMS提供的海量实时日志分析和处理服务,对当前线上所有真实用户的访问情况进行监控。最后通过直观的报表展示,帮助您及时发现并诊断问题。

    参考

    + \ No newline at end of file diff --git "a/docs/study/fe/Flutter\345\274\200\345\217\221\351\227\256\351\242\230\350\256\260\345\275\225/index.html" "b/docs/study/fe/Flutter\345\274\200\345\217\221\351\227\256\351\242\230\350\256\260\345\275\225/index.html" index 56130fdf3..98987263c 100644 --- "a/docs/study/fe/Flutter\345\274\200\345\217\221\351\227\256\351\242\230\350\256\260\345\275\225/index.html" +++ "b/docs/study/fe/Flutter\345\274\200\345\217\221\351\227\256\351\242\230\350\256\260\345\275\225/index.html" @@ -11,15 +11,15 @@ - +

    Flutter开发问题记录

    记录 Flutter 开发的一些问题、经验

    Mac 如何安装老版本的 Android 模拟器

    因为特殊原因,我的老 Mac 电脑无法升级,最新的安卓模拟器启动不起来,可以到这里下载老的模拟器,并手动安装模拟器下载归档

    flutter windows

    基于 Flutter 实现 Windows 平台离线大模型对话应用实战

    ffi插件

    flutter create -t plugin_ffi --platforms macos,windows,android,ios p2psdk

    android使用gradle构建 ios和macos使用xcode通过CocoaPods构建 -linux和windows通过cmake构建

    绑定本地原生代码

    - +linux和windows通过cmake构建

    绑定本地原生代码

    + \ No newline at end of file diff --git "a/docs/study/fe/TypeScript\350\257\255\346\263\225\345\233\276/index.html" "b/docs/study/fe/TypeScript\350\257\255\346\263\225\345\233\276/index.html" index 8836d2132..ac7d88259 100644 --- "a/docs/study/fe/TypeScript\350\257\255\346\263\225\345\233\276/index.html" +++ "b/docs/study/fe/TypeScript\350\257\255\346\263\225\345\233\276/index.html" @@ -11,13 +11,13 @@ - + - +
    + \ No newline at end of file diff --git a/docs/study/fe/WebGL/index.html b/docs/study/fe/WebGL/index.html index 0c0a14276..c609e9f31 100644 --- a/docs/study/fe/WebGL/index.html +++ b/docs/study/fe/WebGL/index.html @@ -11,13 +11,13 @@ - +
    -

    WebGL

    概述

    WebGL(全写 Web Graphics Library)是一种 3D 绘图协议,这种绘图技术标准允许把 JavaScript 和 OpenGL ES 2.0 结合在一起,通过增加 OpenGL ES 2.0 的一个 JavaScript 绑定,WebGL 可以为 HTML5 Canvas 提供硬件 3D 加速渲染,这样 Web 开发人员就可以借助系统显卡来在浏览器里更流畅地展示 3D 场景和模型了,还能创建复杂的导航和数据视觉化。显然,WebGL 技术标准免去了开发网页专用渲染插件的麻烦,可被用于创建具有复杂 3D 结构的网站页面,甚至可以用来设计 3D 网页游戏等等。

    WebGL1.0 基于 OpenGL ES 2.0,并提供了 3D 图形的 API。它使用 HTML5Canvas 并允许利用文档对象模型接口。WebGL 2.0 基于 OpenGL ES 3.0,确保了提供许多选择性的 WebGL 1.0 扩展,并引入新的 API。可利用部分 Javascript 实现自动存储器管理。

    webgl 和 threejs 区别

    WebGL 和 Three.js 都是用于在浏览器中进行 3D 图形渲染的技术,但它们的用途和实现方式有所不同。

    WebGL 是一个 JavaScript API,它允许开发者在不依赖外部插件的情况下,利用浏览器的 GPU 能力,实现在线交互式 2D 和 3D 网页效果。WebGL 的工作原理是在 GPU 上执行着色器语言(GLSL),这是一种强类型的编程语言,与 C/C++类似。WebGL 的核心功能包括顶点和片元的着色器,分别负责计算顶点和像素的颜色值。它的工作流程主要包括将顶点从模型空间转换到裁剪空间,然后基于这些信息绘制像素点。

    Three.js 则是一个开源的 JavaScript 库,它提供了许多预制的对象和函数,以简化 3D 开发的复杂性。Three.js 封装了 WebGL 的功能,并提供了一系列方便的工具和方法,如摄像机、灯光、几何形状等。它可以单独使用也可以与其他库结合使用。Three.js 的设计目的是让开发者能够快速地构建三维场景和应用,而无需手动编写大量的 WebGL 代码。

    总结来说,WebGL 是浏览器内置的标准 API,主要用于实现 3D 图形的基本操作;而 Three.js 是一个更高级别的库,它包含了 WebGL 的功能和一些额外的工具和算法,旨在简化 3D 开发的任务。

    学习、个人发展

    学习他需要计算机图形学知识、扎实的数学功底、丰富的空间想象力。你需要面对很多问题,比如中文文档不丰富、低封装度的引擎和框架、全新的上下游工具链、难以理解的数学、古怪和难以调试的 gl 语言、奇奇怪怪专业文件格式、各种各样的专业领域知识,等等等等……

    除了可以使用 js 编程以外,跟传统的 web 前端开发几乎毫无关系。

    - +

    WebGL

    概述

    WebGL(全写 Web Graphics Library)是一种 3D 绘图协议,这种绘图技术标准允许把 JavaScript 和 OpenGL ES 2.0 结合在一起,通过增加 OpenGL ES 2.0 的一个 JavaScript 绑定,WebGL 可以为 HTML5 Canvas 提供硬件 3D 加速渲染,这样 Web 开发人员就可以借助系统显卡来在浏览器里更流畅地展示 3D 场景和模型了,还能创建复杂的导航和数据视觉化。显然,WebGL 技术标准免去了开发网页专用渲染插件的麻烦,可被用于创建具有复杂 3D 结构的网站页面,甚至可以用来设计 3D 网页游戏等等。

    WebGL1.0 基于 OpenGL ES 2.0,并提供了 3D 图形的 API。它使用 HTML5Canvas 并允许利用文档对象模型接口。WebGL 2.0 基于 OpenGL ES 3.0,确保了提供许多选择性的 WebGL 1.0 扩展,并引入新的 API。可利用部分 Javascript 实现自动存储器管理。

    webgl 和 threejs 区别

    WebGL 和 Three.js 都是用于在浏览器中进行 3D 图形渲染的技术,但它们的用途和实现方式有所不同。

    WebGL 是一个 JavaScript API,它允许开发者在不依赖外部插件的情况下,利用浏览器的 GPU 能力,实现在线交互式 2D 和 3D 网页效果。WebGL 的工作原理是在 GPU 上执行着色器语言(GLSL),这是一种强类型的编程语言,与 C/C++类似。WebGL 的核心功能包括顶点和片元的着色器,分别负责计算顶点和像素的颜色值。它的工作流程主要包括将顶点从模型空间转换到裁剪空间,然后基于这些信息绘制像素点。

    Three.js 则是一个开源的 JavaScript 库,它提供了许多预制的对象和函数,以简化 3D 开发的复杂性。Three.js 封装了 WebGL 的功能,并提供了一系列方便的工具和方法,如摄像机、灯光、几何形状等。它可以单独使用也可以与其他库结合使用。Three.js 的设计目的是让开发者能够快速地构建三维场景和应用,而无需手动编写大量的 WebGL 代码。

    总结来说,WebGL 是浏览器内置的标准 API,主要用于实现 3D 图形的基本操作;而 Three.js 是一个更高级别的库,它包含了 WebGL 的功能和一些额外的工具和算法,旨在简化 3D 开发的任务。

    学习、个人发展

    学习他需要计算机图形学知识、扎实的数学功底、丰富的空间想象力。你需要面对很多问题,比如中文文档不丰富、低封装度的引擎和框架、全新的上下游工具链、难以理解的数学、古怪和难以调试的 gl 语言、奇奇怪怪专业文件格式、各种各样的专业领域知识,等等等等……

    除了可以使用 js 编程以外,跟传统的 web 前端开发几乎毫无关系。

    + \ No newline at end of file diff --git a/docs/study/fe/index.html b/docs/study/fe/index.html index bce5b4096..57ef4312b 100644 --- a/docs/study/fe/index.html +++ b/docs/study/fe/index.html @@ -11,13 +11,13 @@ - + - +
    + \ No newline at end of file diff --git a/docs/study/fe/mqtt.js/index.html b/docs/study/fe/mqtt.js/index.html index e0c5bf6df..2fa36b26f 100644 --- a/docs/study/fe/mqtt.js/index.html +++ b/docs/study/fe/mqtt.js/index.html @@ -11,13 +11,13 @@ - + - +
    + \ No newline at end of file diff --git "a/docs/study/fe/\344\270\213\350\275\275\345\233\276\347\211\207/index.html" "b/docs/study/fe/\344\270\213\350\275\275\345\233\276\347\211\207/index.html" index f326005b5..68404d206 100644 --- "a/docs/study/fe/\344\270\213\350\275\275\345\233\276\347\211\207/index.html" +++ "b/docs/study/fe/\344\270\213\350\275\275\345\233\276\347\211\207/index.html" @@ -11,13 +11,13 @@ - +
    -

    下载图片

    function download(src, name) {
    var $a = document.createElement("a");
    $a.setAttribute("href", src);
    $a.setAttribute("download", name);
    var evObj = document.createEvent("MouseEvents");
    evObj.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, true, false, 0, null);
    $a.dispatchEvent(evObj);
    }
    document.querySelectorAll(".wrap-card:nth-child(15) img.icon").forEach((item, i) => {
    if (i >= 120 && i < 130) {
    console.log(item.src);
    download(item.src, item.src.split("/").slice(-1)[0]);
    }
    });
    document.querySelectorAll(".chart img").forEach((item, i) => {
    console.log(i);
    if (i >= 30 && i < 40) {
    console.log(item.src);
    download(item.src, item.src.split("/").slice(-1)[0]);
    }
    });
    - +

    下载图片

    function download(src, name) {
    var $a = document.createElement("a");
    $a.setAttribute("href", src);
    $a.setAttribute("download", name);
    var evObj = document.createEvent("MouseEvents");
    evObj.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, true, false, 0, null);
    $a.dispatchEvent(evObj);
    }
    document.querySelectorAll(".wrap-card:nth-child(15) img.icon").forEach((item, i) => {
    if (i >= 120 && i < 130) {
    console.log(item.src);
    download(item.src, item.src.split("/").slice(-1)[0]);
    }
    });
    document.querySelectorAll(".chart img").forEach((item, i) => {
    console.log(i);
    if (i >= 30 && i < 40) {
    console.log(item.src);
    download(item.src, item.src.split("/").slice(-1)[0]);
    }
    });
    + \ No newline at end of file diff --git "a/docs/study/fe/\344\275\216\344\273\243\347\240\201\345\217\257\350\247\206\345\214\226\345\271\263\345\217\260/index.html" "b/docs/study/fe/\344\275\216\344\273\243\347\240\201\345\217\257\350\247\206\345\214\226\345\271\263\345\217\260/index.html" index 8ca353ed6..38d625de4 100644 --- "a/docs/study/fe/\344\275\216\344\273\243\347\240\201\345\217\257\350\247\206\345\214\226\345\271\263\345\217\260/index.html" +++ "b/docs/study/fe/\344\275\216\344\273\243\347\240\201\345\217\257\350\247\206\345\214\226\345\271\263\345\217\260/index.html" @@ -11,13 +11,13 @@ - + - +
    + \ No newline at end of file diff --git "a/docs/study/fe/\345\211\215\347\253\257\346\250\241\345\235\227\345\214\226/index.html" "b/docs/study/fe/\345\211\215\347\253\257\346\250\241\345\235\227\345\214\226/index.html" index 35399a6dd..a07c08fe6 100644 --- "a/docs/study/fe/\345\211\215\347\253\257\346\250\241\345\235\227\345\214\226/index.html" +++ "b/docs/study/fe/\345\211\215\347\253\257\346\250\241\345\235\227\345\214\226/index.html" @@ -11,13 +11,13 @@ - +
    -

    前端模块化

    背景

    为什么前端会有这么多模块化方案?主要原因就是ES5及之前是不支持模块化的。

    模块化方案

    IIFE

    IIFE,全称是 Immediately Invoked Function Expression,“立即执行函数”的意思。如果要实现模块化,就需要在 IIFE 中,把代码挂载在全局变量上。

    这也是早期 JavaScript 的模块化方案,根据不同环境,把模块全部挂载在对应环境的全局变量上,浏览器就挂载在“window”对象上,Node.js 就挂载在 global 全局变量上。

    CommonJS[CJS]

    CJS,全称是 CommonJS 模块化规范,目前用的比较广泛是在 Node.js 环境里,因为 Node.js 刚诞生的时候,模块化方案是基于 CommonJS 规范来实现的,而且,CJS 规范也是在 ES6 草案确定之前诞生的、兼容 ES5 的环境。

    AMD

    AMD,全称是 Asynchronous Module Definition,“异步模块定义”,是一种面向浏览器运行的模块化方案。

    AMD 在 ES6 还没出现之前,是 ES5 环境下常见用的模块化方案。这里提到的“异步模块”,是指按模块的依赖来异步加载 AMD 模块,等待依赖模块异步加载完,就开始执行主体代码。全程的运行时执行过程,都是基于 ES5 的语法能力来实现的。但是,AMD 只是一种技术方案,也就是规范,具体技术实现需要根据规范,实现其运行时。目前主流的 AMD 技术框架有 RequireJS。

    CMD

    UMD

    ES6 Modules【ESM】【ES6M】

    export需要注意ES6 module是向外抛的值的引用,是引用。(这和CommonJS模块不一样,CommonJS是向外抛的值的拷贝)

    export语句输出的接口,与其对应的值是动态绑定关系,即通过该接口,可以取到模块内部实时的值。这一点与 CommonJS 规范完全不同。CommonJS 模块输出的是值的缓存,不存在动态更新。

    export命令可以出现在模块的任何位置,只要处于模块顶层就可以。如果处于块级作用域内,就会报错,import命令也是如此。这是因为处于条件代码块之中,就没法做静态优化了,违背了 ES6 模块的设计初衷【静态编译】。

    参考

    1. 前端工程化:CommonJS、AMD、CMD、UMD和ES Modules的区别
    - +

    前端模块化

    背景

    为什么前端会有这么多模块化方案?主要原因就是ES5及之前是不支持模块化的。

    模块化方案

    IIFE

    IIFE,全称是 Immediately Invoked Function Expression,“立即执行函数”的意思。如果要实现模块化,就需要在 IIFE 中,把代码挂载在全局变量上。

    这也是早期 JavaScript 的模块化方案,根据不同环境,把模块全部挂载在对应环境的全局变量上,浏览器就挂载在“window”对象上,Node.js 就挂载在 global 全局变量上。

    CommonJS[CJS]

    CJS,全称是 CommonJS 模块化规范,目前用的比较广泛是在 Node.js 环境里,因为 Node.js 刚诞生的时候,模块化方案是基于 CommonJS 规范来实现的,而且,CJS 规范也是在 ES6 草案确定之前诞生的、兼容 ES5 的环境。

    AMD

    AMD,全称是 Asynchronous Module Definition,“异步模块定义”,是一种面向浏览器运行的模块化方案。

    AMD 在 ES6 还没出现之前,是 ES5 环境下常见用的模块化方案。这里提到的“异步模块”,是指按模块的依赖来异步加载 AMD 模块,等待依赖模块异步加载完,就开始执行主体代码。全程的运行时执行过程,都是基于 ES5 的语法能力来实现的。但是,AMD 只是一种技术方案,也就是规范,具体技术实现需要根据规范,实现其运行时。目前主流的 AMD 技术框架有 RequireJS。

    CMD

    UMD

    ES6 Modules【ESM】【ES6M】

    export需要注意ES6 module是向外抛的值的引用,是引用。(这和CommonJS模块不一样,CommonJS是向外抛的值的拷贝)

    export语句输出的接口,与其对应的值是动态绑定关系,即通过该接口,可以取到模块内部实时的值。这一点与 CommonJS 规范完全不同。CommonJS 模块输出的是值的缓存,不存在动态更新。

    export命令可以出现在模块的任何位置,只要处于模块顶层就可以。如果处于块级作用域内,就会报错,import命令也是如此。这是因为处于条件代码块之中,就没法做静态优化了,违背了 ES6 模块的设计初衷【静态编译】。

    参考

    1. 前端工程化:CommonJS、AMD、CMD、UMD和ES Modules的区别
    + \ No newline at end of file diff --git a/docs/study/hard/index.html b/docs/study/hard/index.html index aae2925dd..579c0f802 100644 --- a/docs/study/hard/index.html +++ b/docs/study/hard/index.html @@ -11,13 +11,13 @@ - + - +
    + \ No newline at end of file diff --git "a/docs/study/hard/\345\265\214\345\205\245\345\274\217_\345\215\225\347\211\207\346\234\272/index.html" "b/docs/study/hard/\345\265\214\345\205\245\345\274\217_\345\215\225\347\211\207\346\234\272/index.html" index 87a15fcaf..e3b6c01bd 100644 --- "a/docs/study/hard/\345\265\214\345\205\245\345\274\217_\345\215\225\347\211\207\346\234\272/index.html" +++ "b/docs/study/hard/\345\265\214\345\205\245\345\274\217_\345\215\225\347\211\207\346\234\272/index.html" @@ -11,13 +11,13 @@ - +
    -

    嵌入式_单片机

    嵌入式和单片机的区别到底是什么。

    从前文的介绍来看,嵌入式系统是一个大类,单片机是其中一个重要的子类。嵌入式系统像是一个完整的计算机,而单片机更像是一个没有外设的计算机。

    以前单片机包括的东西并不算多,两者的硬件区别较为明显。但是,随着半导体技术的突飞猛进,现在各种硬件功能都能被做进单片机之中。所以,嵌入式系统和单片机之间的硬件区别越来越小,分界线也越来越模糊。

    于是,人们倾向于在软件上进行区分。

    从软件上,行业里经常把芯片中不带MMU(memory management unit,内存管理单元)从而不支持虚拟地址,只能裸奔或运行RTOS(实时操作系统,例如ucos、华为LiteOS、RT-Thread、freertos等)的system,叫做单片机(如STM32、NXP LPC系列、NXP imxRT1052系列等)。而把芯片自带MMU可以支持虚拟地址,能够跑Linux、Vxworks、WinCE、Android这样的“高级”操作系统的system,叫做嵌入式。

    在某些时候,单片机本身已经足够强大,可以作为嵌入式系统使用。它的成本更低,开发和维护的难度相对较小,尤其是针对一些针对性更强的应用。而嵌入式系统理论上性能更强,应用更广泛,但复杂度高,开发难度大。

    参考

    1. 到底什么是嵌入式?什么是单片机?
    - +

    嵌入式_单片机

    嵌入式和单片机的区别到底是什么。

    从前文的介绍来看,嵌入式系统是一个大类,单片机是其中一个重要的子类。嵌入式系统像是一个完整的计算机,而单片机更像是一个没有外设的计算机。

    以前单片机包括的东西并不算多,两者的硬件区别较为明显。但是,随着半导体技术的突飞猛进,现在各种硬件功能都能被做进单片机之中。所以,嵌入式系统和单片机之间的硬件区别越来越小,分界线也越来越模糊。

    于是,人们倾向于在软件上进行区分。

    从软件上,行业里经常把芯片中不带MMU(memory management unit,内存管理单元)从而不支持虚拟地址,只能裸奔或运行RTOS(实时操作系统,例如ucos、华为LiteOS、RT-Thread、freertos等)的system,叫做单片机(如STM32、NXP LPC系列、NXP imxRT1052系列等)。而把芯片自带MMU可以支持虚拟地址,能够跑Linux、Vxworks、WinCE、Android这样的“高级”操作系统的system,叫做嵌入式。

    在某些时候,单片机本身已经足够强大,可以作为嵌入式系统使用。它的成本更低,开发和维护的难度相对较小,尤其是针对一些针对性更强的应用。而嵌入式系统理论上性能更强,应用更广泛,但复杂度高,开发难度大。

    参考

    1. 到底什么是嵌入式?什么是单片机?
    + \ No newline at end of file diff --git "a/docs/study/hard/\347\241\254\344\273\266\345\274\200\345\217\221\345\222\214\345\265\214\345\205\245\345\274\217\345\274\200\345\217\221/index.html" "b/docs/study/hard/\347\241\254\344\273\266\345\274\200\345\217\221\345\222\214\345\265\214\345\205\245\345\274\217\345\274\200\345\217\221/index.html" index 85ffe58d6..efc81c595 100644 --- "a/docs/study/hard/\347\241\254\344\273\266\345\274\200\345\217\221\345\222\214\345\265\214\345\205\245\345\274\217\345\274\200\345\217\221/index.html" +++ "b/docs/study/hard/\347\241\254\344\273\266\345\274\200\345\217\221\345\222\214\345\265\214\345\205\245\345\274\217\345\274\200\345\217\221/index.html" @@ -11,13 +11,13 @@ - +
    -

    硬件开发和嵌入式开发

    1. 嵌入式linux 和 用stm32进行的嵌入式开发 这两者之间有什么关联性吗?
      1. =====基于STM32的开发属于微控制器开发领域,主要开发工具是keilIAR,这种开发更准确的说法是单片机开发或者硬件开发;
      2. 嵌入式开发,开发环境是基于Linux操作系统,这种开发一般会分为几个层次:驱动开发、操作系统层开发、应用层开发。
      3. 如果玩过Arduino和树莓派,那么这个就很好理解了。STM32开发和Arduino是同一个层次,处于微控制器级别;嵌入式Linux开发和树莓派一个层次,属于微处理器级别。
      4. 单片机开发主要在于控制检测传输数据,比如控制继电器开关以控制门锁,检测温湿度上传数据到网关。而处理器除了可以做单片机的事,还可以处理音视频等计算量很大的任务,有文件管理系统也有更多的存储空间,以及该平台所提供的「开封即用」的工具(即安装后就可以直接使用),比如在树莓派上运行一个人脸检测系统是没问题的,在树莓派上搭建Web网站也是很方便的。
      5. =====嵌入式开发,主要有三条技术路线:
        • 51单片机
        • STM32 + RTOS
        • ARM + Linux    
        • 51单片机主要用在一些控制简单的电路、电器行业
        • STM32 + RTOS 主要用在一些实时要求比较高的行业:航空航天等,还有物联网、工业控制
        • ARM + Linux主要用在消费电子领域:手机、平板、智能手表、智能音箱等
      6. =====按照系列划分:
        1. 微控制器系列:8051, MSP 430 , STM32 F0-3( ARM Cortext M0 - M3系列)等
        2. 主要特点没有内存管理单元,不能运行linux 这类有着虚拟内存的操作系统,只能运行裸机程序或是ucOS一类的实时操作系统。主要工作就是外设驱动开发(比如写个编码器的驱动,液晶的驱动,usb的驱动)和基于驱动的应用程序开发,如控制类和简单的图像处理功能。
        3. 微处理器系列: ARM Cortex A系列的处理器
        4. 内存管理单元MMU,可以运行linux程序,开发其实和在windows pc上写程序是一样的,只是由于arm编译慢,一般会选在在PC上用针对ARM特定编译器去编译出程序放在ARM上运行,就是交叉编译。这里涉及到的驱动开发比较复杂,一般会遵循linux定义的规则去写。
    - +

    硬件开发和嵌入式开发

    1. 嵌入式linux 和 用stm32进行的嵌入式开发 这两者之间有什么关联性吗?
      1. =====基于STM32的开发属于微控制器开发领域,主要开发工具是keilIAR,这种开发更准确的说法是单片机开发或者硬件开发;
      2. 嵌入式开发,开发环境是基于Linux操作系统,这种开发一般会分为几个层次:驱动开发、操作系统层开发、应用层开发。
      3. 如果玩过Arduino和树莓派,那么这个就很好理解了。STM32开发和Arduino是同一个层次,处于微控制器级别;嵌入式Linux开发和树莓派一个层次,属于微处理器级别。
      4. 单片机开发主要在于控制检测传输数据,比如控制继电器开关以控制门锁,检测温湿度上传数据到网关。而处理器除了可以做单片机的事,还可以处理音视频等计算量很大的任务,有文件管理系统也有更多的存储空间,以及该平台所提供的「开封即用」的工具(即安装后就可以直接使用),比如在树莓派上运行一个人脸检测系统是没问题的,在树莓派上搭建Web网站也是很方便的。
      5. =====嵌入式开发,主要有三条技术路线:
        • 51单片机
        • STM32 + RTOS
        • ARM + Linux    
        • 51单片机主要用在一些控制简单的电路、电器行业
        • STM32 + RTOS 主要用在一些实时要求比较高的行业:航空航天等,还有物联网、工业控制
        • ARM + Linux主要用在消费电子领域:手机、平板、智能手表、智能音箱等
      6. =====按照系列划分:
        1. 微控制器系列:8051, MSP 430 , STM32 F0-3( ARM Cortext M0 - M3系列)等
        2. 主要特点没有内存管理单元,不能运行linux 这类有着虚拟内存的操作系统,只能运行裸机程序或是ucOS一类的实时操作系统。主要工作就是外设驱动开发(比如写个编码器的驱动,液晶的驱动,usb的驱动)和基于驱动的应用程序开发,如控制类和简单的图像处理功能。
        3. 微处理器系列: ARM Cortex A系列的处理器
        4. 内存管理单元MMU,可以运行linux程序,开发其实和在windows pc上写程序是一样的,只是由于arm编译慢,一般会选在在PC上用针对ARM特定编译器去编译出程序放在ARM上运行,就是交叉编译。这里涉及到的驱动开发比较复杂,一般会遵循linux定义的规则去写。
    + \ No newline at end of file diff --git "a/docs/study/hard/\350\267\257\347\224\261\345\231\250\345\222\214\344\272\244\346\215\242\346\234\272\347\232\204\345\214\272\345\210\253/index.html" "b/docs/study/hard/\350\267\257\347\224\261\345\231\250\345\222\214\344\272\244\346\215\242\346\234\272\347\232\204\345\214\272\345\210\253/index.html" index 1ae06d54c..05d0c8504 100644 --- "a/docs/study/hard/\350\267\257\347\224\261\345\231\250\345\222\214\344\272\244\346\215\242\346\234\272\347\232\204\345\214\272\345\210\253/index.html" +++ "b/docs/study/hard/\350\267\257\347\224\261\345\231\250\345\222\214\344\272\244\346\215\242\346\234\272\347\232\204\345\214\272\345\210\253/index.html" @@ -11,7 +11,7 @@ - + @@ -30,8 +30,8 @@ 路由还可以提供防火墙的功能。 路由配置比交换机复杂。 价格不同 -交换机是看门大爷,路由是邮差。

    - +交换机是看门大爷,路由是邮差。

    + \ No newline at end of file diff --git "a/docs/study/hard/\351\200\232\344\277\241\346\250\241\347\273\204/index.html" "b/docs/study/hard/\351\200\232\344\277\241\346\250\241\347\273\204/index.html" index d3d5449e5..98e67b9a9 100644 --- "a/docs/study/hard/\351\200\232\344\277\241\346\250\241\347\273\204/index.html" +++ "b/docs/study/hard/\351\200\232\344\277\241\346\250\241\347\273\204/index.html" @@ -11,14 +11,14 @@ - + - +images

    参考

    1. 漫谈通信模组厂商发展历史
    2. 无线通信模组产业链及竞争格局分析
    3. OEM
    + \ No newline at end of file diff --git a/docs/study/index.html b/docs/study/index.html index 9d1e1c226..acc564b2f 100644 --- a/docs/study/index.html +++ b/docs/study/index.html @@ -11,13 +11,13 @@ - +
    -

    学无止境

    物联网云平台是一个不断发展和变化的领域,学无止境。随着技术和市场的不断变化,我们需要始终保持敏锐的观察力和学习能力。

    首先,我们需要了解并掌握最新的物联网技术和云计算技术,例如边缘计算、人工智能等。其次,我们需要深入理解客户的需求,以构建更加智能和高效的物联网解决方案。同时,我们还需要对各种安全问题保持高度警惕,并采取措施保护用户数据的安全性。

    不断学习和提升自己的技能是非常重要的,可以帮助我们更好地适应快速变化的市场和技术环境。因此,我相信在这个快速发展的行业中,持续不断地学习和进步是必不可少的。

    - +

    学无止境

    物联网云平台是一个不断发展和变化的领域,学无止境。随着技术和市场的不断变化,我们需要始终保持敏锐的观察力和学习能力。

    首先,我们需要了解并掌握最新的物联网技术和云计算技术,例如边缘计算、人工智能等。其次,我们需要深入理解客户的需求,以构建更加智能和高效的物联网解决方案。同时,我们还需要对各种安全问题保持高度警惕,并采取措施保护用户数据的安全性。

    不断学习和提升自己的技能是非常重要的,可以帮助我们更好地适应快速变化的市场和技术环境。因此,我相信在这个快速发展的行业中,持续不断地学习和进步是必不可少的。

    + \ No newline at end of file diff --git a/docs/study/net/IPV6/index.html b/docs/study/net/IPV6/index.html index 9d64d87a8..7629ca153 100644 --- a/docs/study/net/IPV6/index.html +++ b/docs/study/net/IPV6/index.html @@ -11,13 +11,13 @@ - + - +
    + \ No newline at end of file diff --git "a/docs/study/net/MacOS\347\274\226\350\257\221OpenVPN/index.html" "b/docs/study/net/MacOS\347\274\226\350\257\221OpenVPN/index.html" index 04074ee2b..1e2ac9698 100644 --- "a/docs/study/net/MacOS\347\274\226\350\257\221OpenVPN/index.html" +++ "b/docs/study/net/MacOS\347\274\226\350\257\221OpenVPN/index.html" @@ -11,13 +11,13 @@ - + - +
    + \ No newline at end of file diff --git a/docs/study/net/OpenVPN/index.html b/docs/study/net/OpenVPN/index.html index 85cc4007f..437368cbb 100644 --- a/docs/study/net/OpenVPN/index.html +++ b/docs/study/net/OpenVPN/index.html @@ -11,13 +11,13 @@ - +
    -

    OpenVPN

    配置

    脚本

    # 安装
    yum install openvpn
    yum install easy-rsa

    # 准备目录 注意版本号 需要自行更改
    cp /usr/share/doc/openvpn-2.4.5/sample/sample-config-files/server.conf /etc/openvpn
    cp -r /usr/share/easy-rsa/ /etc/openvpn
    cp /usr/share/doc/easy-rsa-3.0.3/vars.example easy-rsa/3.0/vars

    # 初始化pki
    cd /etc/openvpn/easy-rsa/3.0
    ./easyrsa init-pki

    # 创建ca,记住ca密码
    ./easyrsa build-ca

    # 创建Diffie-Hellman,确保key穿越不安全网络
    ./easyrsa gen-dh
    # 生成防攻击key文件
    openvpn --genkey --secret ta.key

    # 创建服务器证书 注意名字为vpnserver 可以更改
    ./easyrsa gen-req vpnserver nopass
    # 签约服务端证书 注意名字为vpnserver
    ./easyrsa sign server vpnserver

    # 将服务器证书整理到一起
    cd /etc/openvpn/
    mkdir pki
    cd pki
    /usr/bin/cp -rf ../easy-rsa/3.0/ta.key ./
    /usr/bin/cp -rf ../easy-rsa/3.0/pki/ca.crt ./
    /usr/bin/cp -rf ../easy-rsa/3.0/pki/dh.pem ./
    /usr/bin/cp -rf ../easy-rsa/3.0/pki/issued/vpnserver.crt ./
    /usr/bin/cp -rf ../easy-rsa/3.0/pki/private/vpnserver.key ./
    # 将客户端所需证书整理到一起
    mkdir /etc/openvpn/client
    cd /etc/openvpn/client
    /usr/bin/cp -rf ../easy-rsa/3.0/ta.key ./
    /usr/bin/cp -rf ../easy-rsa/3.0/pki/ca.crt ./
    /usr/bin/cp -rf ../easy-rsa/3.0/pki/issued/client001.crt ./
    /usr/bin/cp -rf ../easy-rsa/3.0/pki/private/client001.key ./

    # 启动 停止 状态
    systemctl start openvpn@server
    systemctl stop openvpn@server
    systemctl status openvpn@server
    systemctl restart openvpn@server

    server.conf

    #################################################
    # Sample OpenVPN 2.0 config file for #
    # multi-client server. #
    # #
    # This file is for the server side #
    # of a many-clients <-> one-server #
    # OpenVPN configuration. #
    # #
    # OpenVPN also supports #
    # single-machine <-> single-machine #
    # configurations (See the Examples page #
    # on the web site for more info). #
    # #
    # This config should work on Windows #
    # or Linux/BSD systems. Remember on #
    # Windows to quote pathnames and use #
    # double backslashes, e.g.: #
    # "C:\\Program Files\\OpenVPN\\config\\foo.key" #
    # #
    # Comments are preceded with '#' or ';' #
    #################################################

    # Which local IP address should OpenVPN
    # listen on? (optional)
    ;local a.b.c.d

    # Which TCP/UDP port should OpenVPN listen on?
    # If you want to run multiple OpenVPN instances
    # on the same machine, use a different port
    # number for each one. You will need to
    # open up this port on your firewall.
    port 1194

    # TCP or UDP server?
    ;proto tcp
    proto udp

    # "dev tun" will create a routed IP tunnel,
    # "dev tap" will create an ethernet tunnel.
    # Use "dev tap0" if you are ethernet bridging
    # and have precreated a tap0 virtual interface
    # and bridged it with your ethernet interface.
    # If you want to control access policies
    # over the VPN, you must create firewall
    # rules for the the TUN/TAP interface.
    # On non-Windows systems, you can give
    # an explicit unit number, such as tun0.
    # On Windows, use "dev-node" for this.
    # On most systems, the VPN will not function
    # unless you partially or fully disable
    # the firewall for the TUN/TAP interface.
    ;dev tap
    dev tun

    # Windows needs the TAP-Win32 adapter name
    # from the Network Connections panel if you
    # have more than one. On XP SP2 or higher,
    # you may need to selectively disable the
    # Windows firewall for the TAP adapter.
    # Non-Windows systems usually don't need this.
    ;dev-node MyTap

    # SSL/TLS root certificate (ca), certificate
    # (cert), and private key (key). Each client
    # and the server must have their own cert and
    # key file. The server and all clients will
    # use the same ca file.
    #
    # See the "easy-rsa" directory for a series
    # of scripts for generating RSA certificates
    # and private keys. Remember to use
    # a unique Common Name for the server
    # and each of the client certificates.
    #
    # Any X509 key management system can be used.
    # OpenVPN can also use a PKCS #12 formatted key file
    # (see "pkcs12" directive in man page).
    ca /etc/openvpn/pki/ca.crt
    cert /etc/openvpn/pki/vpnserver.crt
    key /etc/openvpn/pki/vpnserver.key # This file should be kept secret

    # Diffie hellman parameters.
    # Generate your own with:
    # openssl dhparam -out dh2048.pem 2048
    dh /etc/openvpn/pki/dh.pem

    # Network topology
    # Should be subnet (addressing via IP)
    # unless Windows clients v2.0.9 and lower have to
    # be supported (then net30, i.e. a /30 per client)
    # Defaults to net30 (not recommended)
    ;topology subnet

    # Configure server mode and supply a VPN subnet
    # for OpenVPN to draw client addresses from.
    # The server will take 10.8.0.1 for itself,
    # the rest will be made available to clients.
    # Each client will be able to reach the server
    # on 10.8.0.1. Comment this line out if you are
    # ethernet bridging. See the man page for more info.
    server 10.8.0.0 255.255.255.0

    # Maintain a record of client <-> virtual IP address
    # associations in this file. If OpenVPN goes down or
    # is restarted, reconnecting clients can be assigned
    # the same virtual IP address from the pool that was
    # previously assigned.
    ifconfig-pool-persist ipp.txt

    # Configure server mode for ethernet bridging.
    # You must first use your OS's bridging capability
    # to bridge the TAP interface with the ethernet
    # NIC interface. Then you must manually set the
    # IP/netmask on the bridge interface, here we
    # assume 10.8.0.4/255.255.255.0. Finally we
    # must set aside an IP range in this subnet
    # (start=10.8.0.50 end=10.8.0.100) to allocate
    # to connecting clients. Leave this line commented
    # out unless you are ethernet bridging.
    ;server-bridge 10.8.0.4 255.255.255.0 10.8.0.50 10.8.0.100

    # Configure server mode for ethernet bridging
    # using a DHCP-proxy, where clients talk
    # to the OpenVPN server-side DHCP server
    # to receive their IP address allocation
    # and DNS server addresses. You must first use
    # your OS's bridging capability to bridge the TAP
    # interface with the ethernet NIC interface.
    # Note: this mode only works on clients (such as
    # Windows), where the client-side TAP adapter is
    # bound to a DHCP client.
    ;server-bridge

    # Push routes to the client to allow it
    # to reach other private subnets behind
    # the server. Remember that these
    # private subnets will also need
    # to know to route the OpenVPN client
    # address pool (10.8.0.0/255.255.255.0)
    # back to the OpenVPN server.
    ;push "route 192.168.10.0 255.255.255.0"
    ;push "route 192.168.20.0 255.255.255.0"

    # To assign specific IP addresses to specific
    # clients or if a connecting client has a private
    # subnet behind it that should also have VPN access,
    # use the subdirectory "ccd" for client-specific
    # configuration files (see man page for more info).

    # EXAMPLE: Suppose the client
    # having the certificate common name "Thelonious"
    # also has a small subnet behind his connecting
    # machine, such as 192.168.40.128/255.255.255.248.
    # First, uncomment out these lines:
    ;client-config-dir ccd
    ;route 192.168.40.128 255.255.255.248
    # Then create a file ccd/Thelonious with this line:
    # iroute 192.168.40.128 255.255.255.248
    # This will allow Thelonious' private subnet to
    # access the VPN. This example will only work
    # if you are routing, not bridging, i.e. you are
    # using "dev tun" and "server" directives.

    # EXAMPLE: Suppose you want to give
    # Thelonious a fixed VPN IP address of 10.9.0.1.
    # First uncomment out these lines:
    ;client-config-dir ccd
    ;route 10.9.0.0 255.255.255.252
    # Then add this line to ccd/Thelonious:
    # ifconfig-push 10.9.0.1 10.9.0.2

    # Suppose that you want to enable different
    # firewall access policies for different groups
    # of clients. There are two methods:
    # (1) Run multiple OpenVPN daemons, one for each
    # group, and firewall the TUN/TAP interface
    # for each group/daemon appropriately.
    # (2) (Advanced) Create a script to dynamically
    # modify the firewall in response to access
    # from different clients. See man
    # page for more info on learn-address script.
    ;learn-address ./script

    # If enabled, this directive will configure
    # all clients to redirect their default
    # network gateway through the VPN, causing
    # all IP traffic such as web browsing and
    # and DNS lookups to go through the VPN
    # (The OpenVPN server machine may need to NAT
    # or bridge the TUN/TAP interface to the internet
    # in order for this to work properly).
    ;push "redirect-gateway def1 bypass-dhcp"

    # Certain Windows-specific network settings
    # can be pushed to clients, such as DNS
    # or WINS server addresses. CAVEAT:
    # http://openvpn.net/faq.html#dhcpcaveats
    # The addresses below refer to the public
    # DNS servers provided by opendns.com.
    ;push "dhcp-option DNS 208.67.222.222"
    ;push "dhcp-option DNS 208.67.220.220"
    push "dhcp-option DNS 8.8.8.8"

    # Uncomment this directive to allow different
    # clients to be able to "see" each other.
    # By default, clients will only see the server.
    # To force clients to only see the server, you
    # will also need to appropriately firewall the
    # server's TUN/TAP interface.
    client-to-client

    # Uncomment this directive if multiple clients
    # might connect with the same certificate/key
    # files or common names. This is recommended
    # only for testing purposes. For production use,
    # each client should have its own certificate/key
    # pair.
    #
    # IF YOU HAVE NOT GENERATED INDIVIDUAL
    # CERTIFICATE/KEY PAIRS FOR EACH CLIENT,
    # EACH HAVING ITS OWN UNIQUE "COMMON NAME",
    # UNCOMMENT THIS LINE OUT.
    ;duplicate-cn

    # The keepalive directive causes ping-like
    # messages to be sent back and forth over
    # the link so that each side knows when
    # the other side has gone down.
    # Ping every 10 seconds, assume that remote
    # peer is down if no ping received during
    # a 120 second time period.
    keepalive 10 120

    # For extra security beyond that provided
    # by SSL/TLS, create an "HMAC firewall"
    # to help block DoS attacks and UDP port flooding.
    #
    # Generate with:
    # openvpn --genkey --secret ta.key
    #
    # The server and each client must have
    # a copy of this key.
    # The second parameter should be '0'
    # on the server and '1' on the clients.
    tls-auth /etc/openvpn/pki/ta.key 0 # This file is secret

    # Select a cryptographic cipher.
    # This config item must be copied to
    # the client config file as well.
    # Note that v2.4 client/server will automatically
    # negotiate AES-256-GCM in TLS mode.
    # See also the ncp-cipher option in the manpage
    cipher AES-256-CBC

    # Enable compression on the VPN link and push the
    # option to the client (v2.4+ only, for earlier
    # versions see below)
    ;compress lz4-v2
    ;push "compress lz4-v2"

    # For compression compatible with older clients use comp-lzo
    # If you enable it here, you must also
    # enable it in the client config file.
    comp-lzo

    # The maximum number of concurrently connected
    # clients we want to allow.
    max-clients 999

    # It's a good idea to reduce the OpenVPN
    # daemon's privileges after initialization.
    #
    # You can uncomment this out on
    # non-Windows systems.
    ;user nobody
    ;group nobody

    # The persist options will try to avoid
    # accessing certain resources on restart
    # that may no longer be accessible because
    # of the privilege downgrade.
    persist-key
    persist-tun

    # Output a short status file showing
    # current connections, truncated
    # and rewritten every minute.
    status openvpn-status.log

    # By default, log messages will go to the syslog (or
    # on Windows, if running as a service, they will go to
    # the "\Program Files\OpenVPN\log" directory).
    # Use log or log-append to override this default.
    # "log" will truncate the log file on OpenVPN startup,
    # while "log-append" will append to it. Use one
    # or the other (but not both).
    ;log openvpn.log
    ;log-append openvpn.log

    # Set the appropriate level of log
    # file verbosity.
    #
    # 0 is silent, except for fatal errors
    # 4 is reasonable for general usage
    # 5 and 6 can help to debug connection problems
    # 9 is extremely verbose
    verb 3

    # Silence repeating messages. At most 20
    # sequential messages of the same message
    # category will be output to the log.
    ;mute 20

    # Notify the client that when the server restarts so it
    # can automatically reconnect.
    explicit-exit-notify 1

    配置 IP 转发功能

    # 查询
    sysctl net.ipv4.ip_forward
    # 设置
    echo 'net.ipv4.ip_forward = 1' >/etc/sysctl.conf
    sysctl -p

    参考net.ipv4.ip_forward

    client.ovpn

    # 相当于 pull tls-client
    client
    #
    dev tun
    #
    proto udp
    # 连接远程openvpn server,可以有多个,但同时连接只有一个
    remote 60.204.171.251 1194
    resolv-retry infinite
    nobind
    persist-key
    persist-tun
    #
    ca ca.crt
    cert client001.crt
    key client001.key
    tls-auth ta.key 1
    #
    comp-lzo
    # 日志容易级别
    verb 3

    生成客户端证书

    cd /etc/openvpn/easy-rsa/3.0/
    ./easyrsa build-client-full client003
    /usr/bin/cp -rf /etc/openvpn/easy-rsa/3.0/pki/issued/client003.crt /etc/openvpn/client
    /usr/bin/cp -rf /etc/openvpn/easy-rsa/3.0/pki/private/client003.key /etc/openvpn/client

    配置不同的客户端启用不同的子网

    修改 server.conf 文件

    # 启用ccd 增加两个子网路由
    client-config-dir ccd
    ;route 10.9.0.0 255.255.255.252
    route 10.9.0.0 255.255.255.0
    route 10.9.1.0 255.255.255.0
    # 修改topology为subnet
    topology subnet

    topology

    tun 模式:

    • subnet:

      • a. 从 pool 中选择一个 ip 作为 client 的虚拟网卡 ip;

      • b. 将自己的子网掩码作为 client 的子网掩码。

    • p2p:

      • a.从 pool 中选择一个 ip 作为 client 的虚拟网卡 ip;

      • b.将自己的实际虚拟网卡 ip 作为 client 的对端 ip。

    • net30:

      • a.从 pool 中选择 4 个掩码为 30 的 ip,将中间两个 ip 中的大者作为 client 的虚拟网卡 ip;

      • b.将小者作为 client 的对端 ip。

    tap 模式:

    完全按照 tun 模式的 1 来分配。

    脚本创建 client

    脚本创建 client,自动输入 ca 密码,

    #!/usr/bin/expect

    set timeout 30

    spawn ./easyrsa build-client-full client014 nopass
    expect "pass"
    send "weichuang"
    send "\n"
    interact

    管理端接口

    包过滤

    可实现简单的防火墙控制

    问题:连接成功后,客户端无法正常访问其他网站

    将 server.conf 的

    ;push "redirect-gateway def1 bypass-dhcp"

    注释掉

    问题:tcpdump 监听不了 tun0

    如果开启了 client-to-client,流量是不走 tun 的的。

    可以参考openvpn server not showing traffic using tcpdump

    - +

    OpenVPN

    配置

    脚本

    # 安装
    yum install openvpn
    yum install easy-rsa

    # 准备目录 注意版本号 需要自行更改
    cp /usr/share/doc/openvpn-2.4.5/sample/sample-config-files/server.conf /etc/openvpn
    cp -r /usr/share/easy-rsa/ /etc/openvpn
    cp /usr/share/doc/easy-rsa-3.0.3/vars.example easy-rsa/3.0/vars

    # 初始化pki
    cd /etc/openvpn/easy-rsa/3.0
    ./easyrsa init-pki

    # 创建ca,记住ca密码
    ./easyrsa build-ca

    # 创建Diffie-Hellman,确保key穿越不安全网络
    ./easyrsa gen-dh
    # 生成防攻击key文件
    openvpn --genkey --secret ta.key

    # 创建服务器证书 注意名字为vpnserver 可以更改
    ./easyrsa gen-req vpnserver nopass
    # 签约服务端证书 注意名字为vpnserver
    ./easyrsa sign server vpnserver

    # 将服务器证书整理到一起
    cd /etc/openvpn/
    mkdir pki
    cd pki
    /usr/bin/cp -rf ../easy-rsa/3.0/ta.key ./
    /usr/bin/cp -rf ../easy-rsa/3.0/pki/ca.crt ./
    /usr/bin/cp -rf ../easy-rsa/3.0/pki/dh.pem ./
    /usr/bin/cp -rf ../easy-rsa/3.0/pki/issued/vpnserver.crt ./
    /usr/bin/cp -rf ../easy-rsa/3.0/pki/private/vpnserver.key ./
    # 将客户端所需证书整理到一起
    mkdir /etc/openvpn/client
    cd /etc/openvpn/client
    /usr/bin/cp -rf ../easy-rsa/3.0/ta.key ./
    /usr/bin/cp -rf ../easy-rsa/3.0/pki/ca.crt ./
    /usr/bin/cp -rf ../easy-rsa/3.0/pki/issued/client001.crt ./
    /usr/bin/cp -rf ../easy-rsa/3.0/pki/private/client001.key ./

    # 启动 停止 状态
    systemctl start openvpn@server
    systemctl stop openvpn@server
    systemctl status openvpn@server
    systemctl restart openvpn@server

    server.conf

    #################################################
    # Sample OpenVPN 2.0 config file for #
    # multi-client server. #
    # #
    # This file is for the server side #
    # of a many-clients <-> one-server #
    # OpenVPN configuration. #
    # #
    # OpenVPN also supports #
    # single-machine <-> single-machine #
    # configurations (See the Examples page #
    # on the web site for more info). #
    # #
    # This config should work on Windows #
    # or Linux/BSD systems. Remember on #
    # Windows to quote pathnames and use #
    # double backslashes, e.g.: #
    # "C:\\Program Files\\OpenVPN\\config\\foo.key" #
    # #
    # Comments are preceded with '#' or ';' #
    #################################################

    # Which local IP address should OpenVPN
    # listen on? (optional)
    ;local a.b.c.d

    # Which TCP/UDP port should OpenVPN listen on?
    # If you want to run multiple OpenVPN instances
    # on the same machine, use a different port
    # number for each one. You will need to
    # open up this port on your firewall.
    port 1194

    # TCP or UDP server?
    ;proto tcp
    proto udp

    # "dev tun" will create a routed IP tunnel,
    # "dev tap" will create an ethernet tunnel.
    # Use "dev tap0" if you are ethernet bridging
    # and have precreated a tap0 virtual interface
    # and bridged it with your ethernet interface.
    # If you want to control access policies
    # over the VPN, you must create firewall
    # rules for the the TUN/TAP interface.
    # On non-Windows systems, you can give
    # an explicit unit number, such as tun0.
    # On Windows, use "dev-node" for this.
    # On most systems, the VPN will not function
    # unless you partially or fully disable
    # the firewall for the TUN/TAP interface.
    ;dev tap
    dev tun

    # Windows needs the TAP-Win32 adapter name
    # from the Network Connections panel if you
    # have more than one. On XP SP2 or higher,
    # you may need to selectively disable the
    # Windows firewall for the TAP adapter.
    # Non-Windows systems usually don't need this.
    ;dev-node MyTap

    # SSL/TLS root certificate (ca), certificate
    # (cert), and private key (key). Each client
    # and the server must have their own cert and
    # key file. The server and all clients will
    # use the same ca file.
    #
    # See the "easy-rsa" directory for a series
    # of scripts for generating RSA certificates
    # and private keys. Remember to use
    # a unique Common Name for the server
    # and each of the client certificates.
    #
    # Any X509 key management system can be used.
    # OpenVPN can also use a PKCS #12 formatted key file
    # (see "pkcs12" directive in man page).
    ca /etc/openvpn/pki/ca.crt
    cert /etc/openvpn/pki/vpnserver.crt
    key /etc/openvpn/pki/vpnserver.key # This file should be kept secret

    # Diffie hellman parameters.
    # Generate your own with:
    # openssl dhparam -out dh2048.pem 2048
    dh /etc/openvpn/pki/dh.pem

    # Network topology
    # Should be subnet (addressing via IP)
    # unless Windows clients v2.0.9 and lower have to
    # be supported (then net30, i.e. a /30 per client)
    # Defaults to net30 (not recommended)
    ;topology subnet

    # Configure server mode and supply a VPN subnet
    # for OpenVPN to draw client addresses from.
    # The server will take 10.8.0.1 for itself,
    # the rest will be made available to clients.
    # Each client will be able to reach the server
    # on 10.8.0.1. Comment this line out if you are
    # ethernet bridging. See the man page for more info.
    server 10.8.0.0 255.255.255.0

    # Maintain a record of client <-> virtual IP address
    # associations in this file. If OpenVPN goes down or
    # is restarted, reconnecting clients can be assigned
    # the same virtual IP address from the pool that was
    # previously assigned.
    ifconfig-pool-persist ipp.txt

    # Configure server mode for ethernet bridging.
    # You must first use your OS's bridging capability
    # to bridge the TAP interface with the ethernet
    # NIC interface. Then you must manually set the
    # IP/netmask on the bridge interface, here we
    # assume 10.8.0.4/255.255.255.0. Finally we
    # must set aside an IP range in this subnet
    # (start=10.8.0.50 end=10.8.0.100) to allocate
    # to connecting clients. Leave this line commented
    # out unless you are ethernet bridging.
    ;server-bridge 10.8.0.4 255.255.255.0 10.8.0.50 10.8.0.100

    # Configure server mode for ethernet bridging
    # using a DHCP-proxy, where clients talk
    # to the OpenVPN server-side DHCP server
    # to receive their IP address allocation
    # and DNS server addresses. You must first use
    # your OS's bridging capability to bridge the TAP
    # interface with the ethernet NIC interface.
    # Note: this mode only works on clients (such as
    # Windows), where the client-side TAP adapter is
    # bound to a DHCP client.
    ;server-bridge

    # Push routes to the client to allow it
    # to reach other private subnets behind
    # the server. Remember that these
    # private subnets will also need
    # to know to route the OpenVPN client
    # address pool (10.8.0.0/255.255.255.0)
    # back to the OpenVPN server.
    ;push "route 192.168.10.0 255.255.255.0"
    ;push "route 192.168.20.0 255.255.255.0"

    # To assign specific IP addresses to specific
    # clients or if a connecting client has a private
    # subnet behind it that should also have VPN access,
    # use the subdirectory "ccd" for client-specific
    # configuration files (see man page for more info).

    # EXAMPLE: Suppose the client
    # having the certificate common name "Thelonious"
    # also has a small subnet behind his connecting
    # machine, such as 192.168.40.128/255.255.255.248.
    # First, uncomment out these lines:
    ;client-config-dir ccd
    ;route 192.168.40.128 255.255.255.248
    # Then create a file ccd/Thelonious with this line:
    # iroute 192.168.40.128 255.255.255.248
    # This will allow Thelonious' private subnet to
    # access the VPN. This example will only work
    # if you are routing, not bridging, i.e. you are
    # using "dev tun" and "server" directives.

    # EXAMPLE: Suppose you want to give
    # Thelonious a fixed VPN IP address of 10.9.0.1.
    # First uncomment out these lines:
    ;client-config-dir ccd
    ;route 10.9.0.0 255.255.255.252
    # Then add this line to ccd/Thelonious:
    # ifconfig-push 10.9.0.1 10.9.0.2

    # Suppose that you want to enable different
    # firewall access policies for different groups
    # of clients. There are two methods:
    # (1) Run multiple OpenVPN daemons, one for each
    # group, and firewall the TUN/TAP interface
    # for each group/daemon appropriately.
    # (2) (Advanced) Create a script to dynamically
    # modify the firewall in response to access
    # from different clients. See man
    # page for more info on learn-address script.
    ;learn-address ./script

    # If enabled, this directive will configure
    # all clients to redirect their default
    # network gateway through the VPN, causing
    # all IP traffic such as web browsing and
    # and DNS lookups to go through the VPN
    # (The OpenVPN server machine may need to NAT
    # or bridge the TUN/TAP interface to the internet
    # in order for this to work properly).
    ;push "redirect-gateway def1 bypass-dhcp"

    # Certain Windows-specific network settings
    # can be pushed to clients, such as DNS
    # or WINS server addresses. CAVEAT:
    # http://openvpn.net/faq.html#dhcpcaveats
    # The addresses below refer to the public
    # DNS servers provided by opendns.com.
    ;push "dhcp-option DNS 208.67.222.222"
    ;push "dhcp-option DNS 208.67.220.220"
    push "dhcp-option DNS 8.8.8.8"

    # Uncomment this directive to allow different
    # clients to be able to "see" each other.
    # By default, clients will only see the server.
    # To force clients to only see the server, you
    # will also need to appropriately firewall the
    # server's TUN/TAP interface.
    client-to-client

    # Uncomment this directive if multiple clients
    # might connect with the same certificate/key
    # files or common names. This is recommended
    # only for testing purposes. For production use,
    # each client should have its own certificate/key
    # pair.
    #
    # IF YOU HAVE NOT GENERATED INDIVIDUAL
    # CERTIFICATE/KEY PAIRS FOR EACH CLIENT,
    # EACH HAVING ITS OWN UNIQUE "COMMON NAME",
    # UNCOMMENT THIS LINE OUT.
    ;duplicate-cn

    # The keepalive directive causes ping-like
    # messages to be sent back and forth over
    # the link so that each side knows when
    # the other side has gone down.
    # Ping every 10 seconds, assume that remote
    # peer is down if no ping received during
    # a 120 second time period.
    keepalive 10 120

    # For extra security beyond that provided
    # by SSL/TLS, create an "HMAC firewall"
    # to help block DoS attacks and UDP port flooding.
    #
    # Generate with:
    # openvpn --genkey --secret ta.key
    #
    # The server and each client must have
    # a copy of this key.
    # The second parameter should be '0'
    # on the server and '1' on the clients.
    tls-auth /etc/openvpn/pki/ta.key 0 # This file is secret

    # Select a cryptographic cipher.
    # This config item must be copied to
    # the client config file as well.
    # Note that v2.4 client/server will automatically
    # negotiate AES-256-GCM in TLS mode.
    # See also the ncp-cipher option in the manpage
    cipher AES-256-CBC

    # Enable compression on the VPN link and push the
    # option to the client (v2.4+ only, for earlier
    # versions see below)
    ;compress lz4-v2
    ;push "compress lz4-v2"

    # For compression compatible with older clients use comp-lzo
    # If you enable it here, you must also
    # enable it in the client config file.
    comp-lzo

    # The maximum number of concurrently connected
    # clients we want to allow.
    max-clients 999

    # It's a good idea to reduce the OpenVPN
    # daemon's privileges after initialization.
    #
    # You can uncomment this out on
    # non-Windows systems.
    ;user nobody
    ;group nobody

    # The persist options will try to avoid
    # accessing certain resources on restart
    # that may no longer be accessible because
    # of the privilege downgrade.
    persist-key
    persist-tun

    # Output a short status file showing
    # current connections, truncated
    # and rewritten every minute.
    status openvpn-status.log

    # By default, log messages will go to the syslog (or
    # on Windows, if running as a service, they will go to
    # the "\Program Files\OpenVPN\log" directory).
    # Use log or log-append to override this default.
    # "log" will truncate the log file on OpenVPN startup,
    # while "log-append" will append to it. Use one
    # or the other (but not both).
    ;log openvpn.log
    ;log-append openvpn.log

    # Set the appropriate level of log
    # file verbosity.
    #
    # 0 is silent, except for fatal errors
    # 4 is reasonable for general usage
    # 5 and 6 can help to debug connection problems
    # 9 is extremely verbose
    verb 3

    # Silence repeating messages. At most 20
    # sequential messages of the same message
    # category will be output to the log.
    ;mute 20

    # Notify the client that when the server restarts so it
    # can automatically reconnect.
    explicit-exit-notify 1

    配置 IP 转发功能

    # 查询
    sysctl net.ipv4.ip_forward
    # 设置
    echo 'net.ipv4.ip_forward = 1' >/etc/sysctl.conf
    sysctl -p

    参考net.ipv4.ip_forward

    client.ovpn

    # 相当于 pull tls-client
    client
    #
    dev tun
    #
    proto udp
    # 连接远程openvpn server,可以有多个,但同时连接只有一个
    remote 60.204.171.251 1194
    resolv-retry infinite
    nobind
    persist-key
    persist-tun
    #
    ca ca.crt
    cert client001.crt
    key client001.key
    tls-auth ta.key 1
    #
    comp-lzo
    # 日志容易级别
    verb 3

    生成客户端证书

    cd /etc/openvpn/easy-rsa/3.0/
    ./easyrsa build-client-full client003
    /usr/bin/cp -rf /etc/openvpn/easy-rsa/3.0/pki/issued/client003.crt /etc/openvpn/client
    /usr/bin/cp -rf /etc/openvpn/easy-rsa/3.0/pki/private/client003.key /etc/openvpn/client

    配置不同的客户端启用不同的子网

    修改 server.conf 文件

    # 启用ccd 增加两个子网路由
    client-config-dir ccd
    ;route 10.9.0.0 255.255.255.252
    route 10.9.0.0 255.255.255.0
    route 10.9.1.0 255.255.255.0
    # 修改topology为subnet
    topology subnet

    topology

    tun 模式:

    • subnet:

      • a. 从 pool 中选择一个 ip 作为 client 的虚拟网卡 ip;

      • b. 将自己的子网掩码作为 client 的子网掩码。

    • p2p:

      • a.从 pool 中选择一个 ip 作为 client 的虚拟网卡 ip;

      • b.将自己的实际虚拟网卡 ip 作为 client 的对端 ip。

    • net30:

      • a.从 pool 中选择 4 个掩码为 30 的 ip,将中间两个 ip 中的大者作为 client 的虚拟网卡 ip;

      • b.将小者作为 client 的对端 ip。

    tap 模式:

    完全按照 tun 模式的 1 来分配。

    脚本创建 client

    脚本创建 client,自动输入 ca 密码,

    #!/usr/bin/expect

    set timeout 30

    spawn ./easyrsa build-client-full client014 nopass
    expect "pass"
    send "weichuang"
    send "\n"
    interact

    管理端接口

    包过滤

    可实现简单的防火墙控制

    问题:连接成功后,客户端无法正常访问其他网站

    将 server.conf 的

    ;push "redirect-gateway def1 bypass-dhcp"

    注释掉

    问题:tcpdump 监听不了 tun0

    如果开启了 client-to-client,流量是不走 tun 的的。

    可以参考openvpn server not showing traffic using tcpdump

    + \ No newline at end of file diff --git a/docs/study/net/SNMP/index.html b/docs/study/net/SNMP/index.html index fd00c8869..2f236836d 100644 --- a/docs/study/net/SNMP/index.html +++ b/docs/study/net/SNMP/index.html @@ -11,13 +11,13 @@ - + - +
    + \ No newline at end of file diff --git a/docs/study/net/TCP/index.html b/docs/study/net/TCP/index.html index f396225b2..cc88d0044 100644 --- a/docs/study/net/TCP/index.html +++ b/docs/study/net/TCP/index.html @@ -11,13 +11,13 @@ - + - +
    + \ No newline at end of file diff --git a/docs/study/net/UDP/index.html b/docs/study/net/UDP/index.html index 85e0df9bb..d118449ed 100644 --- a/docs/study/net/UDP/index.html +++ b/docs/study/net/UDP/index.html @@ -11,13 +11,13 @@ - +
    -

    UDP

    UDP

    UDP (User Datagram Protocol) 是一种无连接的网络传输协议,它不保证数据传输的可靠性和顺序,但具有高效、低延迟和灵活的特点。UDP 常用于实时通信应用程序,例如音频、视频和在线游戏等。由于 UDP 将数据包发送到目标地址,而不需要建立连接,因此它比 TCP 更加简单、轻量级和快速。但是,由于它不提供数据完整性检查和重传机制,因此在一些应用场景下可能会出现数据丢失或错误的问题。

    基于 UDP 的可靠性协议

    QUIC

    RUDP

    RTP

    UDT

    - +

    UDP

    UDP

    UDP (User Datagram Protocol) 是一种无连接的网络传输协议,它不保证数据传输的可靠性和顺序,但具有高效、低延迟和灵活的特点。UDP 常用于实时通信应用程序,例如音频、视频和在线游戏等。由于 UDP 将数据包发送到目标地址,而不需要建立连接,因此它比 TCP 更加简单、轻量级和快速。但是,由于它不提供数据完整性检查和重传机制,因此在一些应用场景下可能会出现数据丢失或错误的问题。

    基于 UDP 的可靠性协议

    QUIC

    RUDP

    RTP

    UDT

    + \ No newline at end of file diff --git a/docs/study/net/VLAN-VXLAN/index.html b/docs/study/net/VLAN-VXLAN/index.html index b3691b66a..e900027a7 100644 --- a/docs/study/net/VLAN-VXLAN/index.html +++ b/docs/study/net/VLAN-VXLAN/index.html @@ -11,13 +11,13 @@ - +
    -

    VLAN-VXLAN

    VLAN

    VLAN(Virtual LAN),翻译成中文是“虚拟局域网”。LAN可以是由少数几台家用计算机构成的网络,也可以是数以百计的计算机构成的企业网络。VLAN所指的LAN特指使用路由器分割的网络(也就是广播域).

    VLAN作为传统的网络隔离技术,在标准定义中VLAN的数量只有4000个左右,无法满足大型数据中心的租户间隔离需求。另外,VLAN的二层范围一般较小且固定,无法支持虚拟机大范围的动态迁移.

    VXLAN

    VXLAN(Virtual eXtensible Local Area Network,虚拟扩展局域网),是由IETF定义的NVO3(Network Virtualization over Layer 3)标准技术之一,是对传统VLAN协议的一种扩展。VXLAN的特点是将L2的以太帧封装到UDP消息(即L2 over L4)中,并在L3网络中传输。是overlay网络的实现技术之一。

    vxlan解决了什么关键问题

    虚拟化服务器动态迁移

    服务器从该二层交换机的一个端口迁移到另一个端口时,IP地址是可以保持不变的,VXLAN利用此设计理念,在数据中心IP网络基础上,构建一张全互联的二层隧道虚拟网络,保证任意两点之间都能通过VXLAN隧道来通信,并忽略底层网络的结构和细节,VXLAN为它们将整个数据中心基础网络虚拟成了一台巨大的“二层交换机(大二层)”,所有服务器都连接在这台虚拟二层交换机上。

    大规模数据中心,海量租户隔离能力

    在标准定义中VLAN的数量只有4000个左右,无法满足大型数据中心的租户间隔离需求。 VXLAN完美地弥补了VLAN的上述不足,一方面通过VXLAN中的24比特VNI字段。提供多达16M租户的标识能力

    参考

    - +

    VLAN-VXLAN

    VLAN

    VLAN(Virtual LAN),翻译成中文是“虚拟局域网”。LAN可以是由少数几台家用计算机构成的网络,也可以是数以百计的计算机构成的企业网络。VLAN所指的LAN特指使用路由器分割的网络(也就是广播域).

    VLAN作为传统的网络隔离技术,在标准定义中VLAN的数量只有4000个左右,无法满足大型数据中心的租户间隔离需求。另外,VLAN的二层范围一般较小且固定,无法支持虚拟机大范围的动态迁移.

    VXLAN

    VXLAN(Virtual eXtensible Local Area Network,虚拟扩展局域网),是由IETF定义的NVO3(Network Virtualization over Layer 3)标准技术之一,是对传统VLAN协议的一种扩展。VXLAN的特点是将L2的以太帧封装到UDP消息(即L2 over L4)中,并在L3网络中传输。是overlay网络的实现技术之一。

    vxlan解决了什么关键问题

    虚拟化服务器动态迁移

    服务器从该二层交换机的一个端口迁移到另一个端口时,IP地址是可以保持不变的,VXLAN利用此设计理念,在数据中心IP网络基础上,构建一张全互联的二层隧道虚拟网络,保证任意两点之间都能通过VXLAN隧道来通信,并忽略底层网络的结构和细节,VXLAN为它们将整个数据中心基础网络虚拟成了一台巨大的“二层交换机(大二层)”,所有服务器都连接在这台虚拟二层交换机上。

    大规模数据中心,海量租户隔离能力

    在标准定义中VLAN的数量只有4000个左右,无法满足大型数据中心的租户间隔离需求。 VXLAN完美地弥补了VLAN的上述不足,一方面通过VXLAN中的24比特VNI字段。提供多达16M租户的标识能力

    参考

    + \ No newline at end of file diff --git a/docs/study/net/ip/index.html b/docs/study/net/ip/index.html index 1f5b74089..b6dbceb9a 100644 --- a/docs/study/net/ip/index.html +++ b/docs/study/net/ip/index.html @@ -11,14 +11,14 @@ - +

    Linux ip 命令

    ip 命令来自 iproute 软件包,软件包提供了很多命令(rpm -ql iproute |grep bin),如 ss 命令、bridge,这些命令可以完全替代 ifconfig、netstat、route 等命令。

    ip 命令有很多子命令,可以通过 man ip 查看

    link - address - addrlabel - route - rule - neigh - ntable - tunnel - tuntap - maddress - mroute - mrule - monitor - xfrm - netns - l2tp - tcp_metrics - -token - macsec

    查看命令的用法:

    • ip netns help
    • ip address help
    • ip route help
    • ip link help
    • ip neigh help

    查看帮助文档:

    • man ip-netns
    • man ip-address
    • man ip-route
    • man ip-link
    • man ip-neighbour

    更多命令的帮助文档可以通过以下命令查看:

    rpm -ql iproute |grep man

    ip netns

    查看所有网络命名空间,用于隔离网络

    ip address

    address 可以简写为 a 或 ad 或 add 或 addr

    查看 ip

    ip route

    route 可以简写为 r 或 ro 或 rou

    查看路由

    link 表示链路层。link 可以简写为 l 或 li 或 lin

    ip l:查看所有的网络设备(因为是链路层,所以只显示 MAC 地址,不显示 IP 地址)。其中,lo、ens33 等是真实的物理设备,通过 ip l add 命令创建的都是虚拟设备。

    ip neigh

    neigh 可以简写为 n 或 ne 或 nei

    ip n:查看内核中记录的 ARP 表(也就是链路层直连的主机的 IP 和 MAC 地址,不一定准确,需要之前连过)。

    - +token - macsec

    查看命令的用法:

    • ip netns help
    • ip address help
    • ip route help
    • ip link help
    • ip neigh help

    查看帮助文档:

    • man ip-netns
    • man ip-address
    • man ip-route
    • man ip-link
    • man ip-neighbour

    更多命令的帮助文档可以通过以下命令查看:

    rpm -ql iproute |grep man

    ip netns

    查看所有网络命名空间,用于隔离网络

    ip address

    address 可以简写为 a 或 ad 或 add 或 addr

    查看 ip

    ip route

    route 可以简写为 r 或 ro 或 rou

    查看路由

    link 表示链路层。link 可以简写为 l 或 li 或 lin

    ip l:查看所有的网络设备(因为是链路层,所以只显示 MAC 地址,不显示 IP 地址)。其中,lo、ens33 等是真实的物理设备,通过 ip l add 命令创建的都是虚拟设备。

    ip neigh

    neigh 可以简写为 n 或 ne 或 nei

    ip n:查看内核中记录的 ARP 表(也就是链路层直连的主机的 IP 和 MAC 地址,不一定准确,需要之前连过)。

    + \ No newline at end of file diff --git a/docs/study/net/iptables/index.html b/docs/study/net/iptables/index.html index 44e91319f..aa9a7b885 100644 --- a/docs/study/net/iptables/index.html +++ b/docs/study/net/iptables/index.html @@ -11,13 +11,13 @@ - + - +
    + \ No newline at end of file diff --git a/docs/study/net/netns/index.html b/docs/study/net/netns/index.html index 615160e10..47b394feb 100644 --- a/docs/study/net/netns/index.html +++ b/docs/study/net/netns/index.html @@ -11,13 +11,13 @@ - + - +
    + \ No newline at end of file diff --git a/docs/study/net/p2p/index.html b/docs/study/net/p2p/index.html index c4b0df61d..6cfedb28a 100644 --- a/docs/study/net/p2p/index.html +++ b/docs/study/net/p2p/index.html @@ -11,13 +11,13 @@ - + - +
    + \ No newline at end of file diff --git "a/docs/study/net/pfctl\351\230\262\347\201\253\345\242\231/index.html" "b/docs/study/net/pfctl\351\230\262\347\201\253\345\242\231/index.html" index 13b3e6573..ff99a6859 100644 --- "a/docs/study/net/pfctl\351\230\262\347\201\253\345\242\231/index.html" +++ "b/docs/study/net/pfctl\351\230\262\347\201\253\345\242\231/index.html" @@ -11,13 +11,13 @@ - +
    -

    unix pfctl 防火墙

    iptables 是 Linux 下的防火墙,可以进行数据包的过滤,在网络层进行数据的转发、拦截或丢弃等,使用非常普遍,功能也非常强大。但是 Mac 下没有 iptables,为了实现流量转发和过滤,要使用到 Mac 自带的 PFctl。PFctl 即 control the packet filter,是 Unix LIKE 系统上进行 TCP/IP 流量过滤和网络地址转换的系统,也能提供流量整形和控制等

    参考

    - +

    unix pfctl 防火墙

    iptables 是 Linux 下的防火墙,可以进行数据包的过滤,在网络层进行数据的转发、拦截或丢弃等,使用非常普遍,功能也非常强大。但是 Mac 下没有 iptables,为了实现流量转发和过滤,要使用到 Mac 自带的 PFctl。PFctl 即 control the packet filter,是 Unix LIKE 系统上进行 TCP/IP 流量过滤和网络地址转换的系统,也能提供流量整形和控制等

    参考

    + \ No newline at end of file diff --git a/docs/study/net/tc/index.html b/docs/study/net/tc/index.html index 79b514213..e3e97f03f 100644 --- a/docs/study/net/tc/index.html +++ b/docs/study/net/tc/index.html @@ -11,13 +11,13 @@ - + - +
    + \ No newline at end of file diff --git a/docs/study/net/tuntap/index.html b/docs/study/net/tuntap/index.html index dd768ecf9..480504d2f 100644 --- a/docs/study/net/tuntap/index.html +++ b/docs/study/net/tuntap/index.html @@ -11,13 +11,13 @@ - +
    -

    tuntap

    Tun/Tap

    在计算机网络中,TUN 与 TAP 是操作系统内核中的虚拟网络设备。不同于普通靠硬件网路板卡实现的设备,这些虚拟的网络设备全部用软件实现,并向运行于操作系统上的软件提供与硬件的网络设备完全相同的功能。

    TAP 等同于一个以太网设备,它操作第二层数据包如以太网数据帧。TUN 模拟了网络层设备,操作第三层数据包比如 IP 数据封包。

    操作系统通过 TUN/TAP 设备向绑定该设备的用户空间的程序发送数据,反之,用户空间的程序也可以像操作硬件网络设备那样,通过 TUN/TAP 设备发送数据。在后种情况下,TUN/TAP 设备向操作系统的网络栈投递(或“注入”)数据包,从而模拟从外部接受数据的过程。

    Tun 虚拟设备和物理网卡的区别是 Tun 虚拟设备是 IP 层设备,从/dev/net/tun 字符设备上读取的是 IP 数据包,写入的也只能是 IP 数据包,因此不能进行二层操作,如发送 ARP 请求和以太网广播。与之相对的是,Tap 虚拟设备是以太网设备,处理的是二层以太网数据帧,从/dev/net/tun 字符设备上读取的是以太网数据帧,写入的也只能是以太网数据帧。从这点来看,Tap 虚拟设备和真实的物理网卡的能力更接近。

    原理图

    - +

    tuntap

    Tun/Tap

    在计算机网络中,TUN 与 TAP 是操作系统内核中的虚拟网络设备。不同于普通靠硬件网路板卡实现的设备,这些虚拟的网络设备全部用软件实现,并向运行于操作系统上的软件提供与硬件的网络设备完全相同的功能。

    TAP 等同于一个以太网设备,它操作第二层数据包如以太网数据帧。TUN 模拟了网络层设备,操作第三层数据包比如 IP 数据封包。

    操作系统通过 TUN/TAP 设备向绑定该设备的用户空间的程序发送数据,反之,用户空间的程序也可以像操作硬件网络设备那样,通过 TUN/TAP 设备发送数据。在后种情况下,TUN/TAP 设备向操作系统的网络栈投递(或“注入”)数据包,从而模拟从外部接受数据的过程。

    Tun 虚拟设备和物理网卡的区别是 Tun 虚拟设备是 IP 层设备,从/dev/net/tun 字符设备上读取的是 IP 数据包,写入的也只能是 IP 数据包,因此不能进行二层操作,如发送 ARP 请求和以太网广播。与之相对的是,Tap 虚拟设备是以太网设备,处理的是二层以太网数据帧,从/dev/net/tun 字符设备上读取的是以太网数据帧,写入的也只能是以太网数据帧。从这点来看,Tap 虚拟设备和真实的物理网卡的能力更接近。

    原理图

    + \ No newline at end of file diff --git a/docs/study/net/vpn/index.html b/docs/study/net/vpn/index.html index d756766ca..ca09e9a9e 100644 --- a/docs/study/net/vpn/index.html +++ b/docs/study/net/vpn/index.html @@ -11,13 +11,13 @@ - +
    -

    vpn

    简介

    虚拟专用网络(VPN)的功能是:在公用网络上建立专用网络,进行加密通讯。在企业网络中有广泛应用。VPN 网关通过对数据包的加密和数据包目标地址的转换实现远程访问。VPN 可通过服务器、硬件、软件等多种方式实现。

    VPN 属于远程访问技术,简单地说就是利用公用网络架设专用网络。例如某公司员工出差到外地,他想访问企业内网的服务器资源,这种访问就属于远程访问。

    让外地员工访问到内网资源,利用 VPN 的解决方法就是在内网中架设一台 VPN 服务器。外地员工在当地连上互联网后,通过互联网连接 VPN 服务器,然后通过 VPN 服务器进入企业内网。为了保证数据安全,VPN 服务器和客户机之间的通讯数据都进行了加密处理。有了数据加密,就可以认为数据是在一条专用的数据链路上进行安全传输,就如同专门架设了一个专用网络一样,但实际上 VPN 使用的是互联网上的公用链路,因此 VPN 称为虚拟专用网络,其实质上就是利用加密技术在公网上封装出一个数据通讯隧道。有了 VPN 技术,用户无论是在外地出差还是在家中办公,只要能上互联网就能利用 VPN 访问内网资源,这就是 VPN 在企业中应用得如此广泛的原因。

    分类

    按 VPN 的协议分类

    VPN 的隧道协议主要有三种,PPTP、L2TP 和 IPSec,其中 PPTP 和 L2TP 协议工作在 OSI 模型的第二层,又称为二层隧道协议;IPSec 是第三层隧道协议。

    OSI 模型

    分类比较

    VPN 分类速度安全加密
    OpenVPN
    PPTP
    L2TP差(除非和 IPSec 配合)
    IKEv2/IPSec
    SSTP
    WireGuard
    Shadowsocks

    OpenVPN

    OpenVPN 是一个基于 OpenSSL 库的应用层 VPN 实现。和传统 VPN 相比,它的优点是简单易用。

    OpenVpn 的技术核心是虚拟网卡,其次是 SSL 协议实现。

    对虚拟网卡及其在 OpenVpn 的中的工作机理进行介绍:

    虚拟网卡是使用网络底层编程技术实现的一个驱动软件,安装后在主机上多出现一个网卡,可以像其它网卡一样进行配置。服务程序可以在应用层打开虚拟网卡,如果应用软件(如 IE)向虚拟网卡发送数据,则服务程序可以读取到该数据,如果服务程序写合适的数据到虚拟网卡,应用软件也可以接收得到。虚拟网卡在很多的操作系统下都有相应的实现,这也是 OpenVpn 能够跨平台一个很重要的理由。

    在 OpenVpn 中,如果用户访问一个远程的虚拟地址(属于虚拟网卡配用的地址系列,区别于真实地址),则操作系统会通过路由机制将数据包(TUN 模式)或数据帧(TAP 模式)发送到虚拟网卡上,服务程序接收该数据并进行相应的处理后,通过 SOCKET 从外网上发送出去,远程服务程序通过 SOCKET 从外网上接收数据,并进行相应的处理后,发送给虚拟网卡,则应用软件可以接收到,完成了一个单向传输的过程,反之亦然。

    https://community.openvpn.net/openvpn

    https://pritunl.com/

    PPTP

    由微软和其他公司于 1999 年开发,应用非常广泛,但是现在基本被认为是不安全的、过时的。

    L2TP

    第二层隧道协议大约与 PPTP 同时开发。作为一种隧道协议,它本身不加密数据,因此通常与 IPSec 配对。这种模块化使它能够利用 AES 加密。

    和 PPTP 差不多,应用也很广泛,但是存在一定的防火墙问题。

    IKEv2/IPSec

    思科和微软开发,也有很多开源版本,对移动端支持更加友好一些。

    SSTP

    是微软开发用于替代 PPTP 的新协议,但是不是开源的。

    WireGuard

    WireGuard 是最新的,于 2016 年开发。他的代码量非常小,只有 4K,代码量小,意味着好维护以及容易发现问题。开源。

    又快又安全,但是对操作系统的版本要求较高。

    Shadowsocks

    Shadowsocks 是一个免费的开源加密协议项目。它基于 SOCKS5 代理,即 SOCKS 协议的第五个版本,用于通过代理路由您的流量。

    Shadowsocks 旨在提供这种加密,因为它的目的只有一个:绕过中国防火长城。

    对比

    IPSec 协议工作在 OSI 模型的第三层,使其在单独使用时适于保护基于 TCP 或 UDP 的协议(如安全套接子层(SSL)就不能保护 UDP 层的通信流)。这就意味着,与传输层或更高层的协议相比,IPSec 协议必须处理可靠性和分片的问题,这同时也增加了它的复杂性和处理开销。相对而言,SSL/TLS 依靠更高层的 TCP(OSI 的第四层)来管理可靠性和分片。

    参考

    - +

    vpn

    简介

    虚拟专用网络(VPN)的功能是:在公用网络上建立专用网络,进行加密通讯。在企业网络中有广泛应用。VPN 网关通过对数据包的加密和数据包目标地址的转换实现远程访问。VPN 可通过服务器、硬件、软件等多种方式实现。

    VPN 属于远程访问技术,简单地说就是利用公用网络架设专用网络。例如某公司员工出差到外地,他想访问企业内网的服务器资源,这种访问就属于远程访问。

    让外地员工访问到内网资源,利用 VPN 的解决方法就是在内网中架设一台 VPN 服务器。外地员工在当地连上互联网后,通过互联网连接 VPN 服务器,然后通过 VPN 服务器进入企业内网。为了保证数据安全,VPN 服务器和客户机之间的通讯数据都进行了加密处理。有了数据加密,就可以认为数据是在一条专用的数据链路上进行安全传输,就如同专门架设了一个专用网络一样,但实际上 VPN 使用的是互联网上的公用链路,因此 VPN 称为虚拟专用网络,其实质上就是利用加密技术在公网上封装出一个数据通讯隧道。有了 VPN 技术,用户无论是在外地出差还是在家中办公,只要能上互联网就能利用 VPN 访问内网资源,这就是 VPN 在企业中应用得如此广泛的原因。

    分类

    按 VPN 的协议分类

    VPN 的隧道协议主要有三种,PPTP、L2TP 和 IPSec,其中 PPTP 和 L2TP 协议工作在 OSI 模型的第二层,又称为二层隧道协议;IPSec 是第三层隧道协议。

    OSI 模型

    分类比较

    VPN 分类速度安全加密
    OpenVPN
    PPTP
    L2TP差(除非和 IPSec 配合)
    IKEv2/IPSec
    SSTP
    WireGuard
    Shadowsocks

    OpenVPN

    OpenVPN 是一个基于 OpenSSL 库的应用层 VPN 实现。和传统 VPN 相比,它的优点是简单易用。

    OpenVpn 的技术核心是虚拟网卡,其次是 SSL 协议实现。

    对虚拟网卡及其在 OpenVpn 的中的工作机理进行介绍:

    虚拟网卡是使用网络底层编程技术实现的一个驱动软件,安装后在主机上多出现一个网卡,可以像其它网卡一样进行配置。服务程序可以在应用层打开虚拟网卡,如果应用软件(如 IE)向虚拟网卡发送数据,则服务程序可以读取到该数据,如果服务程序写合适的数据到虚拟网卡,应用软件也可以接收得到。虚拟网卡在很多的操作系统下都有相应的实现,这也是 OpenVpn 能够跨平台一个很重要的理由。

    在 OpenVpn 中,如果用户访问一个远程的虚拟地址(属于虚拟网卡配用的地址系列,区别于真实地址),则操作系统会通过路由机制将数据包(TUN 模式)或数据帧(TAP 模式)发送到虚拟网卡上,服务程序接收该数据并进行相应的处理后,通过 SOCKET 从外网上发送出去,远程服务程序通过 SOCKET 从外网上接收数据,并进行相应的处理后,发送给虚拟网卡,则应用软件可以接收到,完成了一个单向传输的过程,反之亦然。

    https://community.openvpn.net/openvpn

    https://pritunl.com/

    PPTP

    由微软和其他公司于 1999 年开发,应用非常广泛,但是现在基本被认为是不安全的、过时的。

    L2TP

    第二层隧道协议大约与 PPTP 同时开发。作为一种隧道协议,它本身不加密数据,因此通常与 IPSec 配对。这种模块化使它能够利用 AES 加密。

    和 PPTP 差不多,应用也很广泛,但是存在一定的防火墙问题。

    IKEv2/IPSec

    思科和微软开发,也有很多开源版本,对移动端支持更加友好一些。

    SSTP

    是微软开发用于替代 PPTP 的新协议,但是不是开源的。

    WireGuard

    WireGuard 是最新的,于 2016 年开发。他的代码量非常小,只有 4K,代码量小,意味着好维护以及容易发现问题。开源。

    又快又安全,但是对操作系统的版本要求较高。

    Shadowsocks

    Shadowsocks 是一个免费的开源加密协议项目。它基于 SOCKS5 代理,即 SOCKS 协议的第五个版本,用于通过代理路由您的流量。

    Shadowsocks 旨在提供这种加密,因为它的目的只有一个:绕过中国防火长城。

    对比

    IPSec 协议工作在 OSI 模型的第三层,使其在单独使用时适于保护基于 TCP 或 UDP 的协议(如安全套接子层(SSL)就不能保护 UDP 层的通信流)。这就意味着,与传输层或更高层的协议相比,IPSec 协议必须处理可靠性和分片的问题,这同时也增加了它的复杂性和处理开销。相对而言,SSL/TLS 依靠更高层的 TCP(OSI 的第四层)来管理可靠性和分片。

    参考

    + \ No newline at end of file diff --git "a/docs/study/net/\344\273\243\347\220\206/index.html" "b/docs/study/net/\344\273\243\347\220\206/index.html" index ac2140687..cbaaeb346 100644 --- "a/docs/study/net/\344\273\243\347\220\206/index.html" +++ "b/docs/study/net/\344\273\243\347\220\206/index.html" @@ -11,13 +11,13 @@ - + - +
    + \ No newline at end of file diff --git "a/docs/study/net/\345\206\205\347\275\221\347\251\277\351\200\217/index.html" "b/docs/study/net/\345\206\205\347\275\221\347\251\277\351\200\217/index.html" index 6e02eb1d9..d2df4c353 100644 --- "a/docs/study/net/\345\206\205\347\275\221\347\251\277\351\200\217/index.html" +++ "b/docs/study/net/\345\206\205\347\275\221\347\251\277\351\200\217/index.html" @@ -11,13 +11,13 @@ - +
    -

    内网穿透

    内网穿透

    内网,就是在公司或者家庭内部,建立的局域网络或者是办公网络,可以实现多台电脑之间的资源共享,包括设备、资料、数据等。而外网则是通过一个网关与其它的网络系统连接,相对于内网而言,这种网络系统称之为外部网络,常见的就是我们日常使用的互联网。

    一般而言,在没有固定公网 IP 的情况下,外网设备无法直接访问内网设备。而内网穿透技术,顾名思义就是能让外网的设备找到处于内网的设备,从而实现数据通信。

    内网穿透原理

    内网穿透,又称为 NAT 穿透。NAT 背后的设备,它们的主要特点是 ,可以访问外网,但不能被外网设备有效访问。基于这一特点,NAT 穿透技术是让 NAT 背后的设备,先访问指定的外网服务器,由指定的外网服务器搭建桥梁,打通内、外网设备的访问通道,实现外网设备访问到内网设备。

    该技术除了可以访问隐藏在 NAT 后的设备,同样可以穿透防火墙。这是因为防火墙一般只拦截了入站没有拦截出站,所以也可以让防火墙内的设备对外提供服务。

    由于内网设备并不是与外网设备直接相连,所以在安全性上是毋庸置疑的,内网穿透可以说是安全与效率兼得。

    竞品分析

    - +

    内网穿透

    内网穿透

    内网,就是在公司或者家庭内部,建立的局域网络或者是办公网络,可以实现多台电脑之间的资源共享,包括设备、资料、数据等。而外网则是通过一个网关与其它的网络系统连接,相对于内网而言,这种网络系统称之为外部网络,常见的就是我们日常使用的互联网。

    一般而言,在没有固定公网 IP 的情况下,外网设备无法直接访问内网设备。而内网穿透技术,顾名思义就是能让外网的设备找到处于内网的设备,从而实现数据通信。

    内网穿透原理

    内网穿透,又称为 NAT 穿透。NAT 背后的设备,它们的主要特点是 ,可以访问外网,但不能被外网设备有效访问。基于这一特点,NAT 穿透技术是让 NAT 背后的设备,先访问指定的外网服务器,由指定的外网服务器搭建桥梁,打通内、外网设备的访问通道,实现外网设备访问到内网设备。

    该技术除了可以访问隐藏在 NAT 后的设备,同样可以穿透防火墙。这是因为防火墙一般只拦截了入站没有拦截出站,所以也可以让防火墙内的设备对外提供服务。

    由于内网设备并不是与外网设备直接相连,所以在安全性上是毋庸置疑的,内网穿透可以说是安全与效率兼得。

    竞品分析

    + \ No newline at end of file diff --git "a/docs/study/net/\345\261\200\345\237\237\347\275\221IP\345\234\260\345\235\200\350\214\203\345\233\264/index.html" "b/docs/study/net/\345\261\200\345\237\237\347\275\221IP\345\234\260\345\235\200\350\214\203\345\233\264/index.html" index 07bf657d6..977a805fd 100644 --- "a/docs/study/net/\345\261\200\345\237\237\347\275\221IP\345\234\260\345\235\200\350\214\203\345\233\264/index.html" +++ "b/docs/study/net/\345\261\200\345\237\237\347\275\221IP\345\234\260\345\235\200\350\214\203\345\233\264/index.html" @@ -11,14 +11,14 @@ - + - +-- 192.168.0.0 ~ 192.168.255.255

    + \ No newline at end of file diff --git "a/docs/study/net/\345\274\202\345\234\260\347\273\204\347\275\221/index.html" "b/docs/study/net/\345\274\202\345\234\260\347\273\204\347\275\221/index.html" index 5c4c2cd5d..f6f77de59 100644 --- "a/docs/study/net/\345\274\202\345\234\260\347\273\204\347\275\221/index.html" +++ "b/docs/study/net/\345\274\202\345\234\260\347\273\204\347\275\221/index.html" @@ -11,13 +11,13 @@ - +
    -

    异地组网

    网络类型

    对等网络

    组网内各成员身份对等,均可实现互访。

    对等网络(Peer-to-Peer,简称 P2P)是一种分布式网络结构,它允许网络中的节点(又称“对等体”或“用户”)直接进行数据共享和通信,而无需依赖于中心服务器。在对等网络中,每个节点既是客户端又是服务器,因此网络资源和计算能力是分散的,不集中在特定的服务器上。

    集散网络

    组网内区分中心成员和普通成员,普通成员只能访问中心成员,普通成员之间无法互访。

    竞品分析

    贝锐蒲公英

    p2p 的技术方案

    映翰通

    OpenVPN 的技术方案

    可选方案

    • 方案一:SD-VPN:硬件(路由器)来实现 VPN 的 Server(需要公网 IP),参考 TP-LINK,需要公网 IP 这一条就很局限
    • 方案二:OpenVPN:要求是实现多租户隔离
      • 方案二 A:采用多实例的模式,不适合最终方案,不适合运营、维护
      • 方案二 B:采用单实例的模式,不适合最终方案,可以运营、维护
    • 方案三:基于开源的 P2P 项目改造,研发周期长,需要 C/C++人才
    • 方案四:自研 P2P,研发周期长,需要 C/C++人才
    - +

    异地组网

    网络类型

    对等网络

    组网内各成员身份对等,均可实现互访。

    对等网络(Peer-to-Peer,简称 P2P)是一种分布式网络结构,它允许网络中的节点(又称“对等体”或“用户”)直接进行数据共享和通信,而无需依赖于中心服务器。在对等网络中,每个节点既是客户端又是服务器,因此网络资源和计算能力是分散的,不集中在特定的服务器上。

    集散网络

    组网内区分中心成员和普通成员,普通成员只能访问中心成员,普通成员之间无法互访。

    竞品分析

    贝锐蒲公英

    p2p 的技术方案

    映翰通

    OpenVPN 的技术方案

    可选方案

    • 方案一:SD-VPN:硬件(路由器)来实现 VPN 的 Server(需要公网 IP),参考 TP-LINK,需要公网 IP 这一条就很局限
    • 方案二:OpenVPN:要求是实现多租户隔离
      • 方案二 A:采用多实例的模式,不适合最终方案,不适合运营、维护
      • 方案二 B:采用单实例的模式,不适合最终方案,可以运营、维护
    • 方案三:基于开源的 P2P 项目改造,研发周期长,需要 C/C++人才
    • 方案四:自研 P2P,研发周期长,需要 C/C++人才
    + \ No newline at end of file diff --git "a/docs/study/net/\346\212\223\345\214\205\345\267\245\345\205\267/index.html" "b/docs/study/net/\346\212\223\345\214\205\345\267\245\345\205\267/index.html" index 923c97f0a..c4b29ddfd 100644 --- "a/docs/study/net/\346\212\223\345\214\205\345\267\245\345\205\267/index.html" +++ "b/docs/study/net/\346\212\223\345\214\205\345\267\245\345\205\267/index.html" @@ -11,13 +11,13 @@ - +
    -

    抓包工具

    tcpdump

    tcpdump 是一个很常用的网络包分析工具,可以用来显示通过网络传输到本系统的 TCP/IP 以及其他网络的数据包。tcpdump 使用 libpcap 库来抓取网络报,这个库在几乎在所有的 Linux/Unix 中都有。

    tcpdump -i eth0   #捕获指定接口(网卡)的数据包 可通过 netstat -i查看网卡设备
    tcpdump -i eth0 -c 3 #捕获指定个数的数据包(3个数据包)
    tcpdump -A -i eth0 #用ASCII码格式输出捕获的数据包
    tcpdump -D #显示可用的系统接口
    tcpdump -XX -i eth0 #用十六进制和ASCII码格式显示捕获的数据包
    tcpdump -w tempDump.pcap -i eth0 #把捕获的数据包写入到一个.pcap后缀的文件中
    tcpdump -r tempDump.pcap #读取捕获数据包文件的内容
    tcpdump -n -i eth0 # 单个 n 表示不解析域名,直接显示 IP
    tcpdump -i eth0 tcp #捕获TCP类型的数据包
    tcpdump -i eth0 port 22 #捕获指定端口(这里是22)的数据包
    tcpdump -i eth0 src 源ip地址 #捕获请求源是 192.169.12.101 的数据包
    tcpdump -i eth0 dst 目标ip地址 #捕获指定目的IP的数据包
    tcpdump -i eth6 dst host 目标ip地址 and port 8800 -w data.pcap #抓取指定网卡,指定IP和端口的数据包 并写入到data.pcap文件中
    tcpdump host 192.168.12.101 and 192.168.1.201 -w out & #后台抓取两主机之间的数据
    tcpdump -nn #单个 n 表示不解析域名,直接显示 IP;两个 n 表示不解析域名和端口。这样不仅方便查看 IP 和端口号,而且在抓取大量数据时非常高效,因为域名解析会降低抓取速度

    netstat

    netstat 是一个监控 TCP/IP 网络的非常有用的工具,它可以显示路由表、网络连接以及每一个网络接口设备的状态信息。netstat 用于显示与 IP、TCP、UDP 和 ICMP 协议相关的统计数据,一般用于检验本机各端口的网络连接情况。

    netstat -at          #查看当前已经建立的tcp连接
    netstat -au #列出所有 udp 端口
    netstat -lt #只列出所有监听中的 tcp类型的 端口
    netstat -lu #只列出所有监听中的 udp类型的端口
    netstat -antp #查看所有已经建立的tcp连接,并且域名以数字形式显示
    netstat -tupl #查看所有监听的tcp和udp及进程名信息(udp不能监听,但可以查看是否在占用)
    netstat -s #显示所有端口的统计信息
    netstat -st 或 -su #显示 TCP 或 UDP 端口的统计信息
    netstat -i #查看网卡接口信息
    netstat -tulnp |grep nginx #查看nginx服务的网络信息
    - +

    抓包工具

    tcpdump

    tcpdump 是一个很常用的网络包分析工具,可以用来显示通过网络传输到本系统的 TCP/IP 以及其他网络的数据包。tcpdump 使用 libpcap 库来抓取网络报,这个库在几乎在所有的 Linux/Unix 中都有。

    tcpdump -i eth0   #捕获指定接口(网卡)的数据包 可通过 netstat -i查看网卡设备
    tcpdump -i eth0 -c 3 #捕获指定个数的数据包(3个数据包)
    tcpdump -A -i eth0 #用ASCII码格式输出捕获的数据包
    tcpdump -D #显示可用的系统接口
    tcpdump -XX -i eth0 #用十六进制和ASCII码格式显示捕获的数据包
    tcpdump -w tempDump.pcap -i eth0 #把捕获的数据包写入到一个.pcap后缀的文件中
    tcpdump -r tempDump.pcap #读取捕获数据包文件的内容
    tcpdump -n -i eth0 # 单个 n 表示不解析域名,直接显示 IP
    tcpdump -i eth0 tcp #捕获TCP类型的数据包
    tcpdump -i eth0 port 22 #捕获指定端口(这里是22)的数据包
    tcpdump -i eth0 src 源ip地址 #捕获请求源是 192.169.12.101 的数据包
    tcpdump -i eth0 dst 目标ip地址 #捕获指定目的IP的数据包
    tcpdump -i eth6 dst host 目标ip地址 and port 8800 -w data.pcap #抓取指定网卡,指定IP和端口的数据包 并写入到data.pcap文件中
    tcpdump host 192.168.12.101 and 192.168.1.201 -w out & #后台抓取两主机之间的数据
    tcpdump -nn #单个 n 表示不解析域名,直接显示 IP;两个 n 表示不解析域名和端口。这样不仅方便查看 IP 和端口号,而且在抓取大量数据时非常高效,因为域名解析会降低抓取速度

    netstat

    netstat 是一个监控 TCP/IP 网络的非常有用的工具,它可以显示路由表、网络连接以及每一个网络接口设备的状态信息。netstat 用于显示与 IP、TCP、UDP 和 ICMP 协议相关的统计数据,一般用于检验本机各端口的网络连接情况。

    netstat -at          #查看当前已经建立的tcp连接
    netstat -au #列出所有 udp 端口
    netstat -lt #只列出所有监听中的 tcp类型的 端口
    netstat -lu #只列出所有监听中的 udp类型的端口
    netstat -antp #查看所有已经建立的tcp连接,并且域名以数字形式显示
    netstat -tupl #查看所有监听的tcp和udp及进程名信息(udp不能监听,但可以查看是否在占用)
    netstat -s #显示所有端口的统计信息
    netstat -st 或 -su #显示 TCP 或 UDP 端口的统计信息
    netstat -i #查看网卡接口信息
    netstat -tulnp |grep nginx #查看nginx服务的网络信息
    + \ No newline at end of file diff --git "a/docs/study/net/\347\275\221\347\273\234\345\220\236\345\220\220\351\207\217\346\265\213\351\207\217\345\267\245\345\205\267/index.html" "b/docs/study/net/\347\275\221\347\273\234\345\220\236\345\220\220\351\207\217\346\265\213\351\207\217\345\267\245\345\205\267/index.html" index 0188150c7..7d6b098f1 100644 --- "a/docs/study/net/\347\275\221\347\273\234\345\220\236\345\220\220\351\207\217\346\265\213\351\207\217\345\267\245\345\205\267/index.html" +++ "b/docs/study/net/\347\275\221\347\273\234\345\220\236\345\220\220\351\207\217\346\265\213\351\207\217\345\267\245\345\205\267/index.html" @@ -11,13 +11,13 @@ - +
    -

    网络吞吐量测量工具

    iperf3

    iPerf3 是一种用于主动测量 IP 网络上可实现的最大带宽的工具。它支持调整与定时、缓冲区和协议(TCP、UDP、带有 IPv4 和 IPv6 的 SCTP)相关的各种参数。对于每个测试,它都会报告带宽、损耗和其他参数。这是一个新的实现,与原始 iPerf 不共享代码,也不向后兼容。

    netperf

    qperf

    - +

    网络吞吐量测量工具

    iperf3

    iPerf3 是一种用于主动测量 IP 网络上可实现的最大带宽的工具。它支持调整与定时、缓冲区和协议(TCP、UDP、带有 IPv4 和 IPv6 的 SCTP)相关的各种参数。对于每个测试,它都会报告带宽、损耗和其他参数。这是一个新的实现,与原始 iPerf 不共享代码,也不向后兼容。

    netperf

    qperf

    + \ No newline at end of file diff --git "a/docs/study/other/\345\255\227\350\212\202\345\272\217/index.html" "b/docs/study/other/\345\255\227\350\212\202\345\272\217/index.html" index a9b0776d0..9afc544b6 100644 --- "a/docs/study/other/\345\255\227\350\212\202\345\272\217/index.html" +++ "b/docs/study/other/\345\255\227\350\212\202\345\272\217/index.html" @@ -11,15 +11,15 @@ - +

    字节序 Big Endian Little Endian

    字节序,也就是字节的顺序,指的是多字节的数据在内存中的存放顺序。

    在几乎所有的机器上,多字节对象都被存储为连续的字节序列。例如:如果 C/C++中的一个 int 型变量 a 的起始地址是&a = 0x100,那么 a 的四个字节将被存储在存储器的 0x100, 0x101, 0x102, 0x103 位置。

    根据整数 a 在连续的 4 byte 内存中的存储顺序,字节序被分为大端序(Big Endian) 与 小端序(Little Endian)两类。 然后就牵涉出两大 CPU 派系:

    Motorola 6800,PowerPC 970,SPARC(除 V9 外)等处理器采用 Big Endian 方式存储数据; x86 系列,VAX,PDP-11 等处理器采用 Little Endian 方式存储数据。 -另外,还有一些处理器像 ARM, DEC Alpha 的字节序是可配置的。

    大端与小端

    大端与小端

    • Big Endian 是指低地址端 存放 高位字节。
    • Little Endian 是指低地址端 存放 低位字节。

    两种字节序:网络序和主机序

    网络字节序:TCP/IP 各层协议将字节序定义为 Big Endian,因此 TCP/IP 协议中使用的字节序是大端序。是确定的

    主机字节序:整数在内存中存储的顺序,由 CPU 架构决定,可能是小端,也可能是大端,常用的 Intel 与 AMD 的 CPU 均为小端字节序。

    在进行网络通信时 通常需要调用相应的函数进行主机序和网络序的转换。

    参考

    - +另外,还有一些处理器像 ARM, DEC Alpha 的字节序是可配置的。

    大端与小端

    大端与小端

    • Big Endian 是指低地址端 存放 高位字节。
    • Little Endian 是指低地址端 存放 低位字节。

    两种字节序:网络序和主机序

    网络字节序:TCP/IP 各层协议将字节序定义为 Big Endian,因此 TCP/IP 协议中使用的字节序是大端序。是确定的

    主机字节序:整数在内存中存储的顺序,由 CPU 架构决定,可能是小端,也可能是大端,常用的 Intel 与 AMD 的 CPU 均为小端字节序。

    在进行网络通信时 通常需要调用相应的函数进行主机序和网络序的转换。

    参考

    + \ No newline at end of file diff --git "a/docs/study/other/\346\240\207\345\207\206\345\220\215\347\247\260\347\274\251\345\206\231/index.html" "b/docs/study/other/\346\240\207\345\207\206\345\220\215\347\247\260\347\274\251\345\206\231/index.html" index 06c1b2c30..7028d44e4 100644 --- "a/docs/study/other/\346\240\207\345\207\206\345\220\215\347\247\260\347\274\251\345\206\231/index.html" +++ "b/docs/study/other/\346\240\207\345\207\206\345\220\215\347\247\260\347\274\251\345\206\231/index.html" @@ -11,13 +11,13 @@ - +
    -

    标准名称缩写

    国内标准

    • GB/T:中国的国家的推荐标准,国标
    • GM/T:中国密码行业的推荐标准,国密
    • GA/T:中国公共安全行业的推荐标准,国安

    中华人民共和国密码行业标准(GM/T)文本

    - +

    标准名称缩写

    国内标准

    • GB/T:中国的国家的推荐标准,国标
    • GM/T:中国密码行业的推荐标准,国密
    • GA/T:中国公共安全行业的推荐标准,国安

    中华人民共和国密码行业标准(GM/T)文本

    + \ No newline at end of file diff --git a/docs/study/program/ABIAPI/index.html b/docs/study/program/ABIAPI/index.html index d48c9c2b4..c247a4730 100644 --- a/docs/study/program/ABIAPI/index.html +++ b/docs/study/program/ABIAPI/index.html @@ -11,13 +11,13 @@ - +
    -

    ABIAPI

    ABI

    ABI(Application Binary Interface):应用程序二进制接口,描述了应用程序和操作系统之间,一个应用和它的库之间,或者应用的组成部分之间的低接口。

    API

    应用程序接口(Application Programming Interface,API),又称为应用编程接口,就是软件系统不同组成部分衔接的约定。

    参考

    - +

    ABIAPI

    ABI

    ABI(Application Binary Interface):应用程序二进制接口,描述了应用程序和操作系统之间,一个应用和它的库之间,或者应用的组成部分之间的低接口。

    API

    应用程序接口(Application Programming Interface,API),又称为应用编程接口,就是软件系统不同组成部分衔接的约定。

    参考

    + \ No newline at end of file diff --git "a/docs/study/program/C/C\350\257\255\350\250\200\346\240\207\345\207\206\345\272\223/index.html" "b/docs/study/program/C/C\350\257\255\350\250\200\346\240\207\345\207\206\345\272\223/index.html" index 833e14973..a1be48b31 100644 --- "a/docs/study/program/C/C\350\257\255\350\250\200\346\240\207\345\207\206\345\272\223/index.html" +++ "b/docs/study/program/C/C\350\257\255\350\250\200\346\240\207\345\207\206\345\272\223/index.html" @@ -11,13 +11,13 @@ - +
    -

    C语言标准库

    C 语言标准库

    C 语言标准库是一组预定义函数、宏和文件的集合,这些函数和文件提供了一些基本的功能和操作,可供 C 语言程序使用。C 语言标准库由 C 语言的制定者定义,并包含在 C 语言的编译器中。

    C 语言没有官方网站,ISO 的官方网站和 ANSI 的网站,提供了 C 语言标准的相关信息。

    不同编译器对 C 语言标准的支持程度是不同,在进行开发的时候,不仅要选择适当的编译器,可能还需要手动指定 C 语言标准。

    C 语言有多少个标准头文件呢呢?

    不确定:这和编译器、编译器的版本和配置有关。

    常用的 C 语言标准库有:

    • stdio.h:提供输入输出函数,如 printf()和 scanf()等。
    • stdlib.h:提供通用工具函数,如 malloc()和 free()等。
    • string.h:提供字符串处理函数,如 strcpy()和 strcat()等。
    • math.h:提供数学函数,如 sin()和 cos()等。
    • time.h:提供时间处理函数,如 time()和 clock()等。
    • ctype.h:提供字符处理函数,如 isalpha()和 isdigit()等。
    • assert.h:提供断言宏,用于调试程序。
    • stdarg.h:提供可变参数列表的函数,如 printf()和 scanf()等。
    • errno.h:提供错误码宏,用于标识错误类型。
    • setjmp.h:提供非局部跳转函数,如 setjmp()和 longjmp()等。
    • signal.h:提供信号处理函数,如 signal()和 raise()等。
    • locale.h:提供本地化处理函数,如 setlocale()和 localeconv()等。
    • float.h:提供浮点数处理宏,如 FLT_DIG 和 DBL_MAX 等。
    • limits.h:提供整数处理宏,如 INT_MAX 和 LONG_MAX 等。
    • stddef.h:提供基本类型定义,如 size_t 和 ptrdiff_t 等。

    参考

    - +

    C语言标准库

    C 语言标准库

    C 语言标准库是一组预定义函数、宏和文件的集合,这些函数和文件提供了一些基本的功能和操作,可供 C 语言程序使用。C 语言标准库由 C 语言的制定者定义,并包含在 C 语言的编译器中。

    C 语言没有官方网站,ISO 的官方网站和 ANSI 的网站,提供了 C 语言标准的相关信息。

    不同编译器对 C 语言标准的支持程度是不同,在进行开发的时候,不仅要选择适当的编译器,可能还需要手动指定 C 语言标准。

    C 语言有多少个标准头文件呢呢?

    不确定:这和编译器、编译器的版本和配置有关。

    常用的 C 语言标准库有:

    • stdio.h:提供输入输出函数,如 printf()和 scanf()等。
    • stdlib.h:提供通用工具函数,如 malloc()和 free()等。
    • string.h:提供字符串处理函数,如 strcpy()和 strcat()等。
    • math.h:提供数学函数,如 sin()和 cos()等。
    • time.h:提供时间处理函数,如 time()和 clock()等。
    • ctype.h:提供字符处理函数,如 isalpha()和 isdigit()等。
    • assert.h:提供断言宏,用于调试程序。
    • stdarg.h:提供可变参数列表的函数,如 printf()和 scanf()等。
    • errno.h:提供错误码宏,用于标识错误类型。
    • setjmp.h:提供非局部跳转函数,如 setjmp()和 longjmp()等。
    • signal.h:提供信号处理函数,如 signal()和 raise()等。
    • locale.h:提供本地化处理函数,如 setlocale()和 localeconv()等。
    • float.h:提供浮点数处理宏,如 FLT_DIG 和 DBL_MAX 等。
    • limits.h:提供整数处理宏,如 INT_MAX 和 LONG_MAX 等。
    • stddef.h:提供基本类型定义,如 size_t 和 ptrdiff_t 等。

    参考

    + \ No newline at end of file diff --git "a/docs/study/program/C/MFC-WinForm-WPF-DotNet\347\255\211/index.html" "b/docs/study/program/C/MFC-WinForm-WPF-DotNet\347\255\211/index.html" index 486a9650c..74055453d 100644 --- "a/docs/study/program/C/MFC-WinForm-WPF-DotNet\347\255\211/index.html" +++ "b/docs/study/program/C/MFC-WinForm-WPF-DotNet\347\255\211/index.html" @@ -11,13 +11,13 @@ - +
    -

    MFC-WinForm-WPF-DotNet等

    MFC

    MFC(Microsoft Foundation Classes),是微软公司提供的一个类库(class libraries),以 C++类的形式封装了 Windows 的 API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。其中包含的类包含大量 Windows 句柄封装类和很多 Windows 的内建控件和组件的封装类。

    WinForm

    Windows Form,简称 WinForm 是微软 .NET 平台 下用于开发“图形界面”应用程序的组件。

    WPF

    WPF(Windows Presentation Foundation)是微软推出的基于 Windows 的用户界面框架,属于.NET Framework 3.0 的一部分。它提供了统一的编程模型、语言和框架,真正做到了分离界面设计人员与开发人员的工作;同时它提供了全新的多媒体交互用户图形界面。

    DirectX

    DirectX(Direct eXtension,简称 DX)是由微软公司创建的多媒体编程接口,是一种应用程序接口(API)。DirectX 可以让以 windows 为平台的游戏或多媒体程序获得更高的执行效率,加强 3D 图形和声音效果,并提供设计人员一个共同的硬件驱动标准,让游戏开发者不必为每一品牌的硬件来写不同的驱动程序,也降低用户安装及设置硬件的复杂度。DirectX 已被广泛使用于 Microsoft Windows、Microsoft XBOX、Microsoft XBOX 360 和 Microsoft XBOX ONE 电子游戏开发。

    .NET

    .NET 是一种用于构建多种应用的免费开源开发平台,可以使用 C#、F#或 Visual Basic 编写.NET 应用。 .NET 用于生成多种类型的应用程序和库开发 Web 应用、Web API 和微服务、云中的无服务器函数、云原生应用、移动应用、桌面应用、Windows WPF、Windows 窗体、通用 Windows 平台 (UWP)、游戏、物联网 (IoT)、机器学习、控制台应用、Windows 服务。.NET 类库在不同应用和应用类型中共享功能,无论构建哪种类型的应用,代码和项目文件看起来都一样,可以访问每个应用的相同运行时、API 和语言功能。

    .NET core

    .NET Core 是适用于 Windows、Linux 和 macOS 的免费、开源托管的计算机软件框架,是微软开发的第一个官方版本,具有跨平台能力的应用程序开发框架 (Application Framework),未来也将会支持 FreeBSD 与 Alpine 平台,也是微软在一开始发展时就开源的软件平台 ,它经常也会拿来和现有的开源 .NET 平台 Mono 比较。

    UWP

    UWP 即 Windows 10 中的 Universal Windows Platform 简称。即 Windows 通用应用平台,在 Windows 10 Mobile/Surface(Windows 平板电脑)/PC/Xbox/HoloLens 等平台上运行,uwp 不同于传统 pc 上的 exe 应用,也跟只适用于手机端的 app 有本质区别。它并不是为某一个终端而设计,而是可以在所有 Windows10 设备上运行。

    C#

    C#是微软公司发布的一种由 C 和 C++衍生出来的面向对象的编程语言、运行于.NET Framework 和.NET Core(完全开源,跨平台)之上的高级程序设计语言。

    C#是由 C 和 C++衍生出来的一种安全的、稳定的、简单的、优雅的面向对象编程语言。它在继承 C 和 C++强大功能的同时去掉了一些它们的复杂特性(例如没有宏以及不允许多重继承)。C#综合了 VB 简单的可视化操作和 C++的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET 开发的首选语言。

    Delphi

    Delphi,是 Windows 平台下著名的快速应用程序开发工具(Rapid Application Development,简称 RAD)。它的前身,即是 DOS 时代盛行一时的“BorlandTurbo Pascal”,最早的版本由美国 Borland(宝兰)公司于 1995 年开发。主创者为 Anders Hejlsberg。经过数年的发展,此产品也转移至 Embarcadero 公司旗下。Delphi 是一个集成开发环境(IDE),使用的核心是由传统 Pascal 语言发展而来的 Object Pascal,以图形用户界面为开发环境,透过 IDE、VCL 工具与编译器,配合连结数据库的功能,构成一个以面向对象程序设计为中心的应用程序开发工具。已没落,现在很少有人用了

    参考

    - +

    MFC-WinForm-WPF-DotNet等

    MFC

    MFC(Microsoft Foundation Classes),是微软公司提供的一个类库(class libraries),以 C++类的形式封装了 Windows 的 API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。其中包含的类包含大量 Windows 句柄封装类和很多 Windows 的内建控件和组件的封装类。

    WinForm

    Windows Form,简称 WinForm 是微软 .NET 平台 下用于开发“图形界面”应用程序的组件。

    WPF

    WPF(Windows Presentation Foundation)是微软推出的基于 Windows 的用户界面框架,属于.NET Framework 3.0 的一部分。它提供了统一的编程模型、语言和框架,真正做到了分离界面设计人员与开发人员的工作;同时它提供了全新的多媒体交互用户图形界面。

    DirectX

    DirectX(Direct eXtension,简称 DX)是由微软公司创建的多媒体编程接口,是一种应用程序接口(API)。DirectX 可以让以 windows 为平台的游戏或多媒体程序获得更高的执行效率,加强 3D 图形和声音效果,并提供设计人员一个共同的硬件驱动标准,让游戏开发者不必为每一品牌的硬件来写不同的驱动程序,也降低用户安装及设置硬件的复杂度。DirectX 已被广泛使用于 Microsoft Windows、Microsoft XBOX、Microsoft XBOX 360 和 Microsoft XBOX ONE 电子游戏开发。

    .NET

    .NET 是一种用于构建多种应用的免费开源开发平台,可以使用 C#、F#或 Visual Basic 编写.NET 应用。 .NET 用于生成多种类型的应用程序和库开发 Web 应用、Web API 和微服务、云中的无服务器函数、云原生应用、移动应用、桌面应用、Windows WPF、Windows 窗体、通用 Windows 平台 (UWP)、游戏、物联网 (IoT)、机器学习、控制台应用、Windows 服务。.NET 类库在不同应用和应用类型中共享功能,无论构建哪种类型的应用,代码和项目文件看起来都一样,可以访问每个应用的相同运行时、API 和语言功能。

    .NET core

    .NET Core 是适用于 Windows、Linux 和 macOS 的免费、开源托管的计算机软件框架,是微软开发的第一个官方版本,具有跨平台能力的应用程序开发框架 (Application Framework),未来也将会支持 FreeBSD 与 Alpine 平台,也是微软在一开始发展时就开源的软件平台 ,它经常也会拿来和现有的开源 .NET 平台 Mono 比较。

    UWP

    UWP 即 Windows 10 中的 Universal Windows Platform 简称。即 Windows 通用应用平台,在 Windows 10 Mobile/Surface(Windows 平板电脑)/PC/Xbox/HoloLens 等平台上运行,uwp 不同于传统 pc 上的 exe 应用,也跟只适用于手机端的 app 有本质区别。它并不是为某一个终端而设计,而是可以在所有 Windows10 设备上运行。

    C#

    C#是微软公司发布的一种由 C 和 C++衍生出来的面向对象的编程语言、运行于.NET Framework 和.NET Core(完全开源,跨平台)之上的高级程序设计语言。

    C#是由 C 和 C++衍生出来的一种安全的、稳定的、简单的、优雅的面向对象编程语言。它在继承 C 和 C++强大功能的同时去掉了一些它们的复杂特性(例如没有宏以及不允许多重继承)。C#综合了 VB 简单的可视化操作和 C++的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET 开发的首选语言。

    Delphi

    Delphi,是 Windows 平台下著名的快速应用程序开发工具(Rapid Application Development,简称 RAD)。它的前身,即是 DOS 时代盛行一时的“BorlandTurbo Pascal”,最早的版本由美国 Borland(宝兰)公司于 1995 年开发。主创者为 Anders Hejlsberg。经过数年的发展,此产品也转移至 Embarcadero 公司旗下。Delphi 是一个集成开发环境(IDE),使用的核心是由传统 Pascal 语言发展而来的 Object Pascal,以图形用户界面为开发环境,透过 IDE、VCL 工具与编译器,配合连结数据库的功能,构成一个以面向对象程序设计为中心的应用程序开发工具。已没落,现在很少有人用了

    参考

    + \ No newline at end of file diff --git a/docs/study/program/C/cmake/index.html b/docs/study/program/C/cmake/index.html index ccbdbcbc2..bdd62342d 100644 --- a/docs/study/program/C/cmake/index.html +++ b/docs/study/program/C/cmake/index.html @@ -11,13 +11,13 @@ - +
    -

    cmake

    cmake 介绍

    你或许听过好几种 Make 工具,例如 GNU Make ,QT 的 qmake ,微软的 MS nmake,BSD Make(pmake),Makepp,等等。这些 Make 工具遵循着不同的规范和标准,所执行的 Makefile 格式也千差万别。这样就带来了一个严峻的问题:如果软件想跨平台,必须要保证能够在不同平台编译。而如果使用上面的 Make 工具,就得为每一种标准写一次 Makefile ,这将是一件让人抓狂的工作。

    CMake 就是针对上面问题所设计的工具:它首先允许开发者编写一种平台无关的 CMakeList.txt 文件来定制整个编译流程,然后再根据目标用户的平台进一步生成所需的本地化 Makefile 和工程文件,如 Unix 的 Makefile 或 Windows 的 Visual Studio 工程。从而做到“Write once, run everywhere”。显然,CMake 是一个比上述几种 make 更高级的编译配置工具。一些使用 CMake 作为项目架构系统的知名开源项目有 VTK、ITK、KDE、OpenCV、OSG 等 。

    在 linux 平台下使用 CMake 生成 Makefile 并编译的流程如下:

    • 写 CMake 配置文件 CMakeLists.txt 。
    • 执行命令 cmake PATH 或者 ccmake PATH 生成 Makefile(ccmake 和 cmake 的区别在于前者提供了一个交互式的界面)。其中, PATH 是 CMakeLists.txt 所在的目录。
    • 使用 make 命令进行编译。
    - +

    cmake

    cmake 介绍

    你或许听过好几种 Make 工具,例如 GNU Make ,QT 的 qmake ,微软的 MS nmake,BSD Make(pmake),Makepp,等等。这些 Make 工具遵循着不同的规范和标准,所执行的 Makefile 格式也千差万别。这样就带来了一个严峻的问题:如果软件想跨平台,必须要保证能够在不同平台编译。而如果使用上面的 Make 工具,就得为每一种标准写一次 Makefile ,这将是一件让人抓狂的工作。

    CMake 就是针对上面问题所设计的工具:它首先允许开发者编写一种平台无关的 CMakeList.txt 文件来定制整个编译流程,然后再根据目标用户的平台进一步生成所需的本地化 Makefile 和工程文件,如 Unix 的 Makefile 或 Windows 的 Visual Studio 工程。从而做到“Write once, run everywhere”。显然,CMake 是一个比上述几种 make 更高级的编译配置工具。一些使用 CMake 作为项目架构系统的知名开源项目有 VTK、ITK、KDE、OpenCV、OSG 等 。

    在 linux 平台下使用 CMake 生成 Makefile 并编译的流程如下:

    • 写 CMake 配置文件 CMakeLists.txt 。
    • 执行命令 cmake PATH 或者 ccmake PATH 生成 Makefile(ccmake 和 cmake 的区别在于前者提供了一个交互式的界面)。其中, PATH 是 CMakeLists.txt 所在的目录。
    • 使用 make 命令进行编译。
    + \ No newline at end of file diff --git a/docs/study/program/C/extern-c/index.html b/docs/study/program/C/extern-c/index.html index 1acf0c81c..f750a4d8a 100644 --- a/docs/study/program/C/extern-c/index.html +++ b/docs/study/program/C/extern-c/index.html @@ -11,13 +11,13 @@ - + - +
    + \ No newline at end of file diff --git a/docs/study/program/C/index.html b/docs/study/program/C/index.html index 8312736ac..95d076f4f 100644 --- a/docs/study/program/C/index.html +++ b/docs/study/program/C/index.html @@ -11,13 +11,13 @@ - + - +
    + \ No newline at end of file diff --git a/docs/study/program/C/make/index.html b/docs/study/program/C/make/index.html index 79092fa20..46477cedb 100644 --- a/docs/study/program/C/make/index.html +++ b/docs/study/program/C/make/index.html @@ -11,13 +11,13 @@ - +
    -

    make

    make 是一条计算机指令,是在安装有 GNU Make 的计算机上的可执行指令。该指令是读入一个名为 makefile 的文件,然后执行这个文件中指定的指令。

    make 的一些常用参数

    • make :根据 Makefile 编译源代码,连接,生成目标文件,可执行文件。
    • make install :安装编译好的程序和库,头文件到系统中,一般为/usr/local/bin 目录。
    • make clean : 清除上次的 make 命令所产生的 object 文件(后缀为“.o”的文件)及可执行文件。(make 的反向操作)

    参考

    - +

    make

    make 是一条计算机指令,是在安装有 GNU Make 的计算机上的可执行指令。该指令是读入一个名为 makefile 的文件,然后执行这个文件中指定的指令。

    make 的一些常用参数

    • make :根据 Makefile 编译源代码,连接,生成目标文件,可执行文件。
    • make install :安装编译好的程序和库,头文件到系统中,一般为/usr/local/bin 目录。
    • make clean : 清除上次的 make 命令所产生的 object 文件(后缀为“.o”的文件)及可执行文件。(make 的反向操作)

    参考

    + \ No newline at end of file diff --git a/docs/study/program/C/pragma/index.html b/docs/study/program/C/pragma/index.html index f67c1d352..0c0791e1e 100644 --- a/docs/study/program/C/pragma/index.html +++ b/docs/study/program/C/pragma/index.html @@ -11,13 +11,13 @@ - + - +
    + \ No newline at end of file diff --git a/docs/study/program/C/size_t-ptrdiff_t-intptr_t-uintptr_t/index.html b/docs/study/program/C/size_t-ptrdiff_t-intptr_t-uintptr_t/index.html index c17f1b379..fa2d471e4 100644 --- a/docs/study/program/C/size_t-ptrdiff_t-intptr_t-uintptr_t/index.html +++ b/docs/study/program/C/size_t-ptrdiff_t-intptr_t-uintptr_t/index.html @@ -11,13 +11,13 @@ - +
    -

    size_t-ptrdiff_t-intptr_t-uintptr_t

    • size_t

    size_t 是无符号整数类型,这是 sizeof 操作符结果的类型。如果设备的地址空间为 32 位,这就是一个 32 位无符号整数;如果设备的地址空间是 64 位,这就是一个 64 位无符号整数。换而言之,一个 size_t 类型的变量能够安全保存一个指针(唯一的例外是指向类函数的指针)。size_t 通常用于 loop 计数器,数组索引和地址算数。

    • ptrdiff_t

    ptrdiff_t 是有符号整数类型,这是两个指针相减结果的类型。如果设备的地址空间为 32 位,这就是一个 32 位有符号整数;如果设备的地址空间是 64 位,这就是一个 64 位有符号整数。与 size_t 一样,ptrdiff_t 能安全存储除类函数指针外的指针。

    size_t 和 ptr_diff 的大小总是和指针的大小一致,因此适合用来索引大数组、存储指针以及指针运算等。

    • intptr_t

    有符号整数类型,它有一个性质,任何指向 void 的合法指针都可以转化为这个类型,然后还可以再转换回指向 void 的指针,其结果与原指针比较是相等的。

    • uintptr_t

    无符号整数类型,它有一个性质,任何指向 void 的合法指针都可以转化为这个类型,然后还可以再转换回指向 void 的指针,其结果与原指针比较是相等的。

    - +

    size_t-ptrdiff_t-intptr_t-uintptr_t

    • size_t

    size_t 是无符号整数类型,这是 sizeof 操作符结果的类型。如果设备的地址空间为 32 位,这就是一个 32 位无符号整数;如果设备的地址空间是 64 位,这就是一个 64 位无符号整数。换而言之,一个 size_t 类型的变量能够安全保存一个指针(唯一的例外是指向类函数的指针)。size_t 通常用于 loop 计数器,数组索引和地址算数。

    • ptrdiff_t

    ptrdiff_t 是有符号整数类型,这是两个指针相减结果的类型。如果设备的地址空间为 32 位,这就是一个 32 位有符号整数;如果设备的地址空间是 64 位,这就是一个 64 位有符号整数。与 size_t 一样,ptrdiff_t 能安全存储除类函数指针外的指针。

    size_t 和 ptr_diff 的大小总是和指针的大小一致,因此适合用来索引大数组、存储指针以及指针运算等。

    • intptr_t

    有符号整数类型,它有一个性质,任何指向 void 的合法指针都可以转化为这个类型,然后还可以再转换回指向 void 的指针,其结果与原指针比较是相等的。

    • uintptr_t

    无符号整数类型,它有一个性质,任何指向 void 的合法指针都可以转化为这个类型,然后还可以再转换回指向 void 的指针,其结果与原指针比较是相等的。

    + \ No newline at end of file diff --git "a/docs/study/program/C/\346\226\271\346\263\225\345\272\223-\351\235\231\346\200\201\345\272\223-\345\212\250\346\200\201\345\272\223-\345\205\261\344\272\253\345\272\223/index.html" "b/docs/study/program/C/\346\226\271\346\263\225\345\272\223-\351\235\231\346\200\201\345\272\223-\345\212\250\346\200\201\345\272\223-\345\205\261\344\272\253\345\272\223/index.html" index c61d71fc4..a77f0d61c 100644 --- "a/docs/study/program/C/\346\226\271\346\263\225\345\272\223-\351\235\231\346\200\201\345\272\223-\345\212\250\346\200\201\345\272\223-\345\205\261\344\272\253\345\272\223/index.html" +++ "b/docs/study/program/C/\346\226\271\346\263\225\345\272\223-\351\235\231\346\200\201\345\272\223-\345\212\250\346\200\201\345\272\223-\345\205\261\344\272\253\345\272\223/index.html" @@ -11,13 +11,13 @@ - +
    -

    方法库-静态库-动态库-共享库

    方法库可以分为两类:

    • 静态库

    • 动态库(也可以称为共享库)

    • windows 下静态库以.lib 为后缀,动态库以.dll 为后缀

    • linux 下静态库以.a 为后缀,动态库以.so 为后缀

    • mac 下静态库以.a 为后缀,动态库以.dylib 为后缀;同时.framework 为后缀的文件,有可能是静态库,也有可能是动态库

    因为在操作系统中运行的是可执行程序,静态库会 copy 到可执行程序中,而动态库只是被可执行程序引用;

    一个在里面,一个在外面,两者是有区别的。

    - +

    方法库-静态库-动态库-共享库

    方法库可以分为两类:

    • 静态库

    • 动态库(也可以称为共享库)

    • windows 下静态库以.lib 为后缀,动态库以.dll 为后缀

    • linux 下静态库以.a 为后缀,动态库以.so 为后缀

    • mac 下静态库以.a 为后缀,动态库以.dylib 为后缀;同时.framework 为后缀的文件,有可能是静态库,也有可能是动态库

    因为在操作系统中运行的是可执行程序,静态库会 copy 到可执行程序中,而动态库只是被可执行程序引用;

    一个在里面,一个在外面,两者是有区别的。

    + \ No newline at end of file diff --git "a/docs/study/program/C/\346\236\204\345\273\272\345\267\245\345\205\267/index.html" "b/docs/study/program/C/\346\236\204\345\273\272\345\267\245\345\205\267/index.html" index 916061ef4..ac7a39cb1 100644 --- "a/docs/study/program/C/\346\236\204\345\273\272\345\267\245\345\205\267/index.html" +++ "b/docs/study/program/C/\346\236\204\345\273\272\345\267\245\345\205\267/index.html" @@ -11,14 +11,14 @@ - +

    构建工具

    C 语言构建工具

    在 C 语言开发中,使用构建工具可以简化代码编译、构建和部署等过程,提高开发效率和代码质量。

    下面介绍一些常用的 C 语言构建工具。

    Make:

    Make 是一个流行的构建工具,它可以自动化执行代码编译、构建和部署等过程。Make 基于 Makefile 文件进行配置,通过 Makefile 文件中的规则和依赖关系,可以定义源代码文件、头文件和可执行文件等各个部分之间的关系。Make 具有简单易用、可扩展性强等优点,因此被广泛应用于 C 语言开发中。

    CMake:

    CMake 是一个跨平台的构建工具,可以自动生成 Makefile 文件,从而简化构建过程。CMake 支持多种平台和编译器,可以通过简单的命令行参数和配置文件进行配置。CMake 具有简单易用、跨平台、可扩展性强等优点,因此被广泛应用于 C 语言开发中。

    Autotools:

    Autotools 是一个流行的自动化构建工具集,包括 Autoconf、Automake 和 Libtool 等组件。其中,Autoconf 用于检查系统环境和生成 Makefile.in 文件,Automake 用于生成 Makefile 文件,Libtool 用于管理库文件的编译和链接。Autotools 具有跨平台、可扩展性强等优点,被广泛应用于 C 语言开发中。

    在 linux 上编译一个工程需要先调用./configure,大部分 linux 开源项目都使用 autotools 编译架构来生成 configure 这个脚本文件。通过在执行./configure,产生 Makefile,src/Makefile,config.h,为下一步编译做准备。随后调用 make 进行编译。

    GNU 构建系统,是利用脚本和 make 程序在特定的平台上构建软件的过程。一般过程是 configure,make,make install 三部曲。这种方式成为一种习惯,被广泛使用。 -为了简化可移植构建的难度,早期有一套 AutoTools 的工具帮助程序员构建软件。configure,make,make install 三部曲,大多都是基于 Auto Tools 来构建的。Auto Tools 是 GNU 程序的标准构建系统。

    SCons:

    SCons 是一个 Python 编写的构建工具,它可以自动化执行代码编译、构建和部署等过程。SCons 基于 Python 语言进行配置,通过 Python 脚本文件中的规则和依赖关系,可以定义源代码文件、头文件和可执行文件等各个部分之间的关系。SCons 具有可扩展性强、易于配置等优点,因此被广泛应用于 C 语言开发中。

    Ninja:

    Ninja 是一个快速的构建工具,可以生成高效的构建图谱,从而提高代码编译、构建和部署的速度。Ninja 可以使用 Ninjafile 文件进行配置,通过 Ninjafile 文件中的规则和依赖关系,可以定义源代码文件、头文件和可执行文件等各个部分之间的关系。Ninja 具有速度快、可扩展性强等优点,因此被广泛应用于 C 语言开发中。

    bazel

    xmake

    https://xmake.io/#/zh-cn/

    一个基于 Lua 的轻量级跨平台自动构建工具

    简单,快速,轻量无依赖

    现代化的 C/C++ 构建工具,强大的依赖包管理和集成

    参考

    - +为了简化可移植构建的难度,早期有一套 AutoTools 的工具帮助程序员构建软件。configure,make,make install 三部曲,大多都是基于 Auto Tools 来构建的。Auto Tools 是 GNU 程序的标准构建系统。

    SCons:

    SCons 是一个 Python 编写的构建工具,它可以自动化执行代码编译、构建和部署等过程。SCons 基于 Python 语言进行配置,通过 Python 脚本文件中的规则和依赖关系,可以定义源代码文件、头文件和可执行文件等各个部分之间的关系。SCons 具有可扩展性强、易于配置等优点,因此被广泛应用于 C 语言开发中。

    Ninja:

    Ninja 是一个快速的构建工具,可以生成高效的构建图谱,从而提高代码编译、构建和部署的速度。Ninja 可以使用 Ninjafile 文件进行配置,通过 Ninjafile 文件中的规则和依赖关系,可以定义源代码文件、头文件和可执行文件等各个部分之间的关系。Ninja 具有速度快、可扩展性强等优点,因此被广泛应用于 C 语言开发中。

    bazel

    xmake

    https://xmake.io/#/zh-cn/

    一个基于 Lua 的轻量级跨平台自动构建工具

    简单,快速,轻量无依赖

    现代化的 C/C++ 构建工具,强大的依赖包管理和集成

    参考

    + \ No newline at end of file diff --git "a/docs/study/program/C/\350\231\232\346\213\237\347\275\221\345\215\241/index.html" "b/docs/study/program/C/\350\231\232\346\213\237\347\275\221\345\215\241/index.html" index 7d3912166..67cfdb2af 100644 --- "a/docs/study/program/C/\350\231\232\346\213\237\347\275\221\345\215\241/index.html" +++ "b/docs/study/program/C/\350\231\232\346\213\237\347\275\221\345\215\241/index.html" @@ -11,13 +11,13 @@ - +
    -

    虚拟网卡

    TUN/TAP(Linux)

    在计算机网络中,TUN 与 TAP 是操作系统内核中的虚拟网络设备。不同于普通靠硬件网路板卡实现的设备,这些虚拟的网络设备全部用软件实现,并向运行于操作系统上的软件提供与硬件的网络设备完全相同的功能。

    TAP 等同于一个以太网设备,它操作第二层数据包如以太网数据帧。TUN 模拟了网络层设备,操作第三层数据包比如 IP 数据封包。

    操作系统通过 TUN/TAP 设备向绑定该设备的用户空间的程序发送数据,反之,用户空间的程序也可以像操作硬件网络设备那样,通过 TUN/TAP 设备发送数据。在后种情况下,TUN/TAP 设备向操作系统的网络栈投递(或“注入”)数据包,从而模拟从外部接受数据的过程。

    服务器如果拥有 TUN/TAP 模块,就可以开启 VPN 代理功能。

    WinTun

    https://www.wintun.net/

    WinTun 是 Windows 内核的一个非常简单和最小的 TUN 驱动程序,它为用户空间程序提供了一个简单的网络适配器,用于读取和写入数据包。

    参考

    - +

    虚拟网卡

    TUN/TAP(Linux)

    在计算机网络中,TUN 与 TAP 是操作系统内核中的虚拟网络设备。不同于普通靠硬件网路板卡实现的设备,这些虚拟的网络设备全部用软件实现,并向运行于操作系统上的软件提供与硬件的网络设备完全相同的功能。

    TAP 等同于一个以太网设备,它操作第二层数据包如以太网数据帧。TUN 模拟了网络层设备,操作第三层数据包比如 IP 数据封包。

    操作系统通过 TUN/TAP 设备向绑定该设备的用户空间的程序发送数据,反之,用户空间的程序也可以像操作硬件网络设备那样,通过 TUN/TAP 设备发送数据。在后种情况下,TUN/TAP 设备向操作系统的网络栈投递(或“注入”)数据包,从而模拟从外部接受数据的过程。

    服务器如果拥有 TUN/TAP 模块,就可以开启 VPN 代理功能。

    WinTun

    https://www.wintun.net/

    WinTun 是 Windows 内核的一个非常简单和最小的 TUN 驱动程序,它为用户空间程序提供了一个简单的网络适配器,用于读取和写入数据包。

    参考

    + \ No newline at end of file diff --git a/docs/study/program/CPP/CGI/index.html b/docs/study/program/CPP/CGI/index.html index 2c682d62a..3d15bad95 100644 --- a/docs/study/program/CPP/CGI/index.html +++ b/docs/study/program/CPP/CGI/index.html @@ -11,13 +11,13 @@ - + - +
    + \ No newline at end of file diff --git "a/docs/study/program/CPP/CPP\350\277\233\347\250\213\351\227\264\351\200\232\344\277\241/index.html" "b/docs/study/program/CPP/CPP\350\277\233\347\250\213\351\227\264\351\200\232\344\277\241/index.html" index 6296a5957..6cbef322b 100644 --- "a/docs/study/program/CPP/CPP\350\277\233\347\250\213\351\227\264\351\200\232\344\277\241/index.html" +++ "b/docs/study/program/CPP/CPP\350\277\233\347\250\213\351\227\264\351\200\232\344\277\241/index.html" @@ -11,13 +11,13 @@ - +
    -

    C++进程间通信

    管道

    管道(Pipe):是一种半双工的通信方式,适用于具有亲缘关系的两个进程之间的通信。管道分为匿名管道和命名管道。

    共享内存

    共享内存(Shared Memory):是一种高效的进程间通信方式,可以在多个进程之间共享同一块内存区域,需要使用信号量等同步机制保证数据的正确性。

    消息队列

    消息队列(Message Queue):是一种可靠的进程间通信方式,允许一个进程向消息队列发送消息,另一个进程从该队列接收消息。

    信号量

    信号量(Semaphore):是一种特殊的变量,主要用于多个进程对共享资源的访问控制问题,以保证程序正常运行。

    套接字

    套接字(Socket):是一种网络编程技术,但也可用于实现进程间通信,支持不同主机上的进程进行通信。

    文件映射

    文件映射(File Mapping):将磁盘上的文件映射到进程的地址空间中,多个进程可以同时对该文件进行读写操作,需要使用同步机制确保数据的完整性。

    参考

    - +

    C++进程间通信

    管道

    管道(Pipe):是一种半双工的通信方式,适用于具有亲缘关系的两个进程之间的通信。管道分为匿名管道和命名管道。

    共享内存

    共享内存(Shared Memory):是一种高效的进程间通信方式,可以在多个进程之间共享同一块内存区域,需要使用信号量等同步机制保证数据的正确性。

    消息队列

    消息队列(Message Queue):是一种可靠的进程间通信方式,允许一个进程向消息队列发送消息,另一个进程从该队列接收消息。

    信号量

    信号量(Semaphore):是一种特殊的变量,主要用于多个进程对共享资源的访问控制问题,以保证程序正常运行。

    套接字

    套接字(Socket):是一种网络编程技术,但也可用于实现进程间通信,支持不同主机上的进程进行通信。

    文件映射

    文件映射(File Mapping):将磁盘上的文件映射到进程的地址空间中,多个进程可以同时对该文件进行读写操作,需要使用同步机制确保数据的完整性。

    参考

    + \ No newline at end of file diff --git a/docs/study/program/CPP/index.html b/docs/study/program/CPP/index.html index a35a719c1..60ac8e534 100644 --- a/docs/study/program/CPP/index.html +++ b/docs/study/program/CPP/index.html @@ -11,13 +11,13 @@ - +
    -

    C++

    C++标准

    • C++98 1998 年 第一个标准
    • C++03 2003 年 第二个标准
    • C++11 2011 年 第三个标准
    • C++14 2014 年 第四个标准
    • C++17 2017 年 第五个标准
    • C++20 2020 年 第六个标准

    参考

    - +

    C++

    C++标准

    • C++98 1998 年 第一个标准
    • C++03 2003 年 第二个标准
    • C++11 2011 年 第三个标准
    • C++14 2014 年 第四个标准
    • C++17 2017 年 第五个标准
    • C++20 2020 年 第六个标准

    参考

    + \ No newline at end of file diff --git a/docs/study/program/CSharp/index.html b/docs/study/program/CSharp/index.html index d3be22a7b..2bceb18d7 100644 --- a/docs/study/program/CSharp/index.html +++ b/docs/study/program/CSharp/index.html @@ -11,13 +11,13 @@ - +
    -

    CSharp

    C#是微软推出的一种基于.NET 框架的、面向对象的高级编程语言。

    虽然 C# 的构想十分接近于传统高级语言 C 和 C++,是一门面向对象的编程语言,但是它与 Java 非常相似,有许多强大的编程功能,因此得到广大程序员的亲睐。

    .Net 框架(.Net Framework)

    .Net 框架应用程序是多平台的应用程序。框架的设计方式使它适用于下列各种语言:C#、C++、Visual Basic、Jscript、COBOL 等等。所有这些语言可以访问框架,彼此之间也可以互相交互。

    虽然 .NET 框架是运行在 Windows 操作系统上,但是也有一些运行于其它操作系统上的版本可供选择。Mono 是 .NET 框架的一个开源版本,它包含了一个 C# 编译器,且可运行于多种操作系统上,比如各种版本的 Linux 和 Mac OS。

    - +

    CSharp

    C#是微软推出的一种基于.NET 框架的、面向对象的高级编程语言。

    虽然 C# 的构想十分接近于传统高级语言 C 和 C++,是一门面向对象的编程语言,但是它与 Java 非常相似,有许多强大的编程功能,因此得到广大程序员的亲睐。

    .Net 框架(.Net Framework)

    .Net 框架应用程序是多平台的应用程序。框架的设计方式使它适用于下列各种语言:C#、C++、Visual Basic、Jscript、COBOL 等等。所有这些语言可以访问框架,彼此之间也可以互相交互。

    虽然 .NET 框架是运行在 Windows 操作系统上,但是也有一些运行于其它操作系统上的版本可供选择。Mono 是 .NET 框架的一个开源版本,它包含了一个 C# 编译器,且可运行于多种操作系统上,比如各种版本的 Linux 和 Mac OS。

    + \ No newline at end of file diff --git a/docs/study/program/Dart/Flutter/index.html b/docs/study/program/Dart/Flutter/index.html index fc24de867..0198bccea 100644 --- a/docs/study/program/Dart/Flutter/index.html +++ b/docs/study/program/Dart/Flutter/index.html @@ -11,13 +11,13 @@ - + - +
    + \ No newline at end of file diff --git "a/docs/study/program/Dart/\345\255\246\344\271\240\350\265\204\346\226\231/index.html" "b/docs/study/program/Dart/\345\255\246\344\271\240\350\265\204\346\226\231/index.html" index 32285ed3c..c1a27c39d 100644 --- "a/docs/study/program/Dart/\345\255\246\344\271\240\350\265\204\346\226\231/index.html" +++ "b/docs/study/program/Dart/\345\255\246\344\271\240\350\265\204\346\226\231/index.html" @@ -11,13 +11,13 @@ - +
    -

    Dart 学习资料

    特点

    • 针对客户端优化,亚秒级的状态热重载
    • 优先考虑多平台 (Web,移动端和桌面端)
    • Dart 也是 Flutter 的基础
    • 静态类型,但支持类型推断
    • 针对面向移动和桌面设备的应用程序, Dart 拥有具有实时 (JIT) 编译功能的 Dart VM 和用于生成机器代码的提前 (AOT) 编译器。

    官方文档

    - +

    Dart 学习资料

    特点

    • 针对客户端优化,亚秒级的状态热重载
    • 优先考虑多平台 (Web,移动端和桌面端)
    • Dart 也是 Flutter 的基础
    • 静态类型,但支持类型推断
    • 针对面向移动和桌面设备的应用程序, Dart 拥有具有实时 (JIT) 编译功能的 Dart VM 和用于生成机器代码的提前 (AOT) 编译器。

    官方文档

    + \ No newline at end of file diff --git a/docs/study/program/ETL/dataX/index.html b/docs/study/program/ETL/dataX/index.html index 337cbf1b7..c15085219 100644 --- a/docs/study/program/ETL/dataX/index.html +++ b/docs/study/program/ETL/dataX/index.html @@ -11,13 +11,13 @@ - +
    -

    dataX

    概述

    DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL、Oracle、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、DRDS 等各种异构数据源之间高效的数据同步功能。

    开源地址https://github.com/alibaba/DataX

    - +

    dataX

    概述

    DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL、Oracle、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、DRDS 等各种异构数据源之间高效的数据同步功能。

    开源地址https://github.com/alibaba/DataX

    + \ No newline at end of file diff --git a/docs/study/program/ETL/flume/index.html b/docs/study/program/ETL/flume/index.html index cb1603f65..db35b1bb6 100644 --- a/docs/study/program/ETL/flume/index.html +++ b/docs/study/program/ETL/flume/index.html @@ -11,13 +11,13 @@ - +
    -

    flume

    Flume的定义

    • Flume是一个分布式的、高可靠的、高可用的将大批量的不同数据源的日志数据收集、聚合、移动到数据中心(HDFS)进行存储的系统。即是日志采集和汇总的工具
    • Logstash、FileBeat是ES栈的日志数据抽取工具,他们和Flume很类似,前者是轻量级、后者是重量级,若项目组使用的是ES栈技术,那完全可以使用Logstash取代Flume。
    - +

    flume

    Flume的定义

    • Flume是一个分布式的、高可靠的、高可用的将大批量的不同数据源的日志数据收集、聚合、移动到数据中心(HDFS)进行存储的系统。即是日志采集和汇总的工具
    • Logstash、FileBeat是ES栈的日志数据抽取工具,他们和Flume很类似,前者是轻量级、后者是重量级,若项目组使用的是ES栈技术,那完全可以使用Logstash取代Flume。
    + \ No newline at end of file diff --git a/docs/study/program/ETL/kettle/index.html b/docs/study/program/ETL/kettle/index.html index 6376ab9ed..4f8d726d1 100644 --- a/docs/study/program/ETL/kettle/index.html +++ b/docs/study/program/ETL/kettle/index.html @@ -11,7 +11,7 @@ - + @@ -19,8 +19,8 @@

    kettle

    ETL(Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程),对于企业或行业应用来说,我们经常会遇到各种数据的处理,转换,迁移,所以了解并掌握一种etl工具的使用,必不可少。kettle是纯java编写,支持图形化的GUI设计界面,然后可以以工作流的形式流转,在做一些简单或复杂的数据抽取、质量检测、数据清洗、数据转换、数据过滤等方面有着比较稳定的表现,其中最主要的我们通过熟练的应用它,减少了非常多的研发工作量,提高了我们的工作效率。

    Kettle概念

    Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定。 Kettle 中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出。 Kettle这个ETL工具集,它允许你管理来自不同数据库的数据,通过提供一个图形化的用户环境来描述你想做什么,而不是你想怎么做。 -Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。

    - +Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。

    + \ No newline at end of file diff --git a/docs/study/program/ETL/sqoop/index.html b/docs/study/program/ETL/sqoop/index.html index e0c8b5c87..3d196dcf4 100644 --- a/docs/study/program/ETL/sqoop/index.html +++ b/docs/study/program/ETL/sqoop/index.html @@ -11,13 +11,13 @@ - +
    -

    sqoop

    概述

    sqoop产生的原因:

    1. 多数使用hadoop技术的处理大数据业务的企业,有大量的数据存储在关系型数据中。
    2. 由于没有工具支持,对hadoop和关系型数据库之间数据传输是一个很困难的事。
    3. 依据以上的原因sqoop产生的。

    sqoop的介绍

    sqoop是连接关系型数据库和hadoop的桥梁,主要有两个方面(导入和导出):

    1. 将关系型数据库的数据导入到Hadoop 及其相关的系统中,如 Hive和HBase
    2. 将数据从Hadoop 系统里抽取并导出到关系型数据库
    - +

    sqoop

    概述

    sqoop产生的原因:

    1. 多数使用hadoop技术的处理大数据业务的企业,有大量的数据存储在关系型数据中。
    2. 由于没有工具支持,对hadoop和关系型数据库之间数据传输是一个很困难的事。
    3. 依据以上的原因sqoop产生的。

    sqoop的介绍

    sqoop是连接关系型数据库和hadoop的桥梁,主要有两个方面(导入和导出):

    1. 将关系型数据库的数据导入到Hadoop 及其相关的系统中,如 Hive和HBase
    2. 将数据从Hadoop 系统里抽取并导出到关系型数据库
    + \ No newline at end of file diff --git a/docs/study/program/Erlang/index.html b/docs/study/program/Erlang/index.html index bc613017a..5d32cafa9 100644 --- a/docs/study/program/Erlang/index.html +++ b/docs/study/program/Erlang/index.html @@ -11,15 +11,15 @@ - +

    Erlang

    简介

    Erlang 的设计目标非常明确,就是专门为大型的电信系统设计。 所以它的应用场景和设计需求就是电信领域里需要解决的问题。 -主要是三个: 高并发高容错软实时。电信系统负载非常大,需要同时服务大量用户的能力;同时不允许出错,电话频繁掉线会很快把客户赶到竞争对手那边;再者,即便某个通话再繁忙也不能影响其他通话的正常进行,到技术层面就是,不能因为某个任务很重,就把其他的任务的资源都占用了,while loop 占用 100% CPU 是绝对不允许的。

    参考

    1. 30 分钟学 Erlang (一)
    - +主要是三个: 高并发高容错软实时。电信系统负载非常大,需要同时服务大量用户的能力;同时不允许出错,电话频繁掉线会很快把客户赶到竞争对手那边;再者,即便某个通话再繁忙也不能影响其他通话的正常进行,到技术层面就是,不能因为某个任务很重,就把其他的任务的资源都占用了,while loop 占用 100% CPU 是绝对不允许的。

    参考

    1. 30 分钟学 Erlang (一)
    + \ No newline at end of file diff --git "a/docs/study/program/GIT/GIT-\345\270\270\347\224\250\345\221\275\344\273\244/index.html" "b/docs/study/program/GIT/GIT-\345\270\270\347\224\250\345\221\275\344\273\244/index.html" index d7c922636..1ca6c7b65 100644 --- "a/docs/study/program/GIT/GIT-\345\270\270\347\224\250\345\221\275\344\273\244/index.html" +++ "b/docs/study/program/GIT/GIT-\345\270\270\347\224\250\345\221\275\344\273\244/index.html" @@ -11,15 +11,15 @@ - +

    GIT-常用命令

    clone

    #用户名如果携带@需要使用%40替换
    git clone https://用户名:密码@git.coding.net/sample/HelloWorld.git

    把非必要文件已经上传到 git,如何处理

    先增加到.gitignore,然后删除本地缓存,再上传到远程仓库 git rm --cached .xxx -git rm-r --cached .yyy

    - +git rm-r --cached .yyy

    + \ No newline at end of file diff --git a/docs/study/program/GIT/GitHubDesktop/index.html b/docs/study/program/GIT/GitHubDesktop/index.html index 7ce28a08f..5a1f68ca2 100644 --- a/docs/study/program/GIT/GitHubDesktop/index.html +++ b/docs/study/program/GIT/GitHubDesktop/index.html @@ -11,13 +11,13 @@ - +
    -

    GitHub Desktop

    我一般是使用这个工具,但是有一次更新之后,报错如下

    ERROR: Couldn't connect to 127.0.0.1:49196 - Please make sure you don't have an antivirus or firewall blocking this connection. (10013): fatal: could not read Username for 'http://10.0.8.45': terminal prompts disabled

    解决方式:

    找到.git文件夹,下面有个config文件,找到如下,增加用户名和密码

    [remote "origin"]
    url = http://{用户名}:{增加}@10.0.8.45/ccsp/vuemanagementplatform.git
    fetch = +refs/heads/*:refs/remotes/origin/*
    - +

    GitHub Desktop

    我一般是使用这个工具,但是有一次更新之后,报错如下

    ERROR: Couldn't connect to 127.0.0.1:49196 - Please make sure you don't have an antivirus or firewall blocking this connection. (10013): fatal: could not read Username for 'http://10.0.8.45': terminal prompts disabled

    解决方式:

    找到.git文件夹,下面有个config文件,找到如下,增加用户名和密码

    [remote "origin"]
    url = http://{用户名}:{增加}@10.0.8.45/ccsp/vuemanagementplatform.git
    fetch = +refs/heads/*:refs/remotes/origin/*
    + \ No newline at end of file diff --git "a/docs/study/program/GIT/PR\345\222\214MR/index.html" "b/docs/study/program/GIT/PR\345\222\214MR/index.html" index fa8b69bed..a93e2c58a 100644 --- "a/docs/study/program/GIT/PR\345\222\214MR/index.html" +++ "b/docs/study/program/GIT/PR\345\222\214MR/index.html" @@ -11,13 +11,13 @@ - +
    -

    PR和MR

    简介

    我们知道Git协作中最重要的一个步骤是Pull Requests(简称PR,Gitlab中也叫Merge requests,MR),PR和MR这两个操作的目的是一个意思,只不过PR是GitHub的使用方法,MR是Gitlab的的使用方法。

    GitHub的Fork-PR模式

    1. 首先fork一个工程
    2. 修改代码并提交PR请求
    3. 开源作者review代码,并根据情况PR请求

    Gitlab的MR模式

    1. 一般MR到的分支都是master,master是受保护的,普通开发者是没有权限push的;
    2. 普通开发者提交MR请求;
    3. 主开发人员review代码,并根据情况同意合并请求
    - +

    PR和MR

    简介

    我们知道Git协作中最重要的一个步骤是Pull Requests(简称PR,Gitlab中也叫Merge requests,MR),PR和MR这两个操作的目的是一个意思,只不过PR是GitHub的使用方法,MR是Gitlab的的使用方法。

    GitHub的Fork-PR模式

    1. 首先fork一个工程
    2. 修改代码并提交PR请求
    3. 开源作者review代码,并根据情况PR请求

    Gitlab的MR模式

    1. 一般MR到的分支都是master,master是受保护的,普通开发者是没有权限push的;
    2. 普通开发者提交MR请求;
    3. 主开发人员review代码,并根据情况同意合并请求
    + \ No newline at end of file diff --git "a/docs/study/program/Golang/Golang\344\276\235\350\265\226\345\272\223\344\273\243\347\220\206/index.html" "b/docs/study/program/Golang/Golang\344\276\235\350\265\226\345\272\223\344\273\243\347\220\206/index.html" index 6671a500f..30d18fd08 100644 --- "a/docs/study/program/Golang/Golang\344\276\235\350\265\226\345\272\223\344\273\243\347\220\206/index.html" +++ "b/docs/study/program/Golang/Golang\344\276\235\350\265\226\345\272\223\344\273\243\347\220\206/index.html" @@ -11,13 +11,13 @@ - +
    -

    Golang依赖库代理

    脚本

    go env -w GOPROXY=https://goproxy.cn

    常用代理地址

    - +

    Golang依赖库代理

    脚本

    go env -w GOPROXY=https://goproxy.cn

    常用代理地址

    + \ No newline at end of file diff --git a/docs/study/program/Golang/index.html b/docs/study/program/Golang/index.html index 09ce0bc33..eff88159e 100644 --- a/docs/study/program/Golang/index.html +++ b/docs/study/program/Golang/index.html @@ -11,13 +11,13 @@ - +
    -

    Golang

    Go 语言设计初衷

    为了解决当时 Google 开发遇到的问题:

    1. 编译慢;
    2. 大量的 C++代码,同时又引入了 Java 和 Python;
    3. 更新的花费越来越长;
    4. 分布式的编译系统;
    5. 数百万的服务器;

    Go 语言的特色

    1. 高效的并发编程(基于 CSP);
    2. 内存回收(GC);
    3. 编译速度快;
    4. 函数多返回值;
    5. 语言交互性;
    6. 没有异常处理(Error is value);

    Go 语言的优势

    1. 学习曲线容易;
    2. 效率:快速的编译时间,开发效率和运行效率高;
    3. 出身名门,血统纯正;
    4. 并行和异步编程几乎没有痛点;
    5. 自由高效:组合的思想、无侵入式的接口、强大的标准库、部署方便、稳定性;

    我们为什么选择 Go 语言

    1. 执行性能
    2. 开发效率

    Go 语言能做什么

    1. 服务器编程;
    2. 分布式系统、数据库代理器、中间件等;
    3. 网络编程;
    4. 数据库操作;
    5. 开发云平台;

    信息

    GC

    安全编译

    在Go语言中,“安全编译”可能指的是使用安全的编译参数,以确保代码的安全性和性能最优。这通常涉及到使用编译器的各种安全和性能参数,比如:

    使用 -s 或 -w 参数来减少编译后的二进制文件大小,去掉调试信息和符号信息。

    使用 -ldflags 来设置链接器的标志,比如 -s -w 来进一步优化编译结果。

    使用 -buildmode 参数来指定编译模式,比如 pie 来生成位置无关的可执行文件,增加安全性。

    下面是一个简单的例子,演示如何使用 -ldflags 来优化编译结果:

    go build -ldflags "-s -w" -o myapp .

    这条命令会编译当前目录下的Go代码,并输出一个没有调试信息、符号和优化过的、体积更小的可执行文件 myapp。

    如果你想进一步确保安全性,可以使用Go的安全性标志,比如 -tags safe,这取决于你使用的第三方库是否支持这个tag。

    go build -tags safe -o myapp .

    请注意,每个项目可能有特定的安全和性能要求,因此编译参数应根据具体情况选择和调整。

    #
    go build -ldflags "-s -w -buildmode=pie -linkmode external -extldflags=-Wl,-z,relro,-z,now" -o CcspUtilRemote-`uname -m`
    #
    go build -tags safe -o myapp .
    # 使用此命令查看
    go tool link --help

    实际问题例子:

    # 安全编译检查 出现两个问题 [STACK CANARY/FORTIFY]
    checksec --file=./xxx-x86_64
    # 处理[STACK CANARY/FORTIFY] 增加CGO 以及CGO代码文件cgo_safe.go
    CGO_ENABLED=1 CGO_CFLAGS="-fstack-protector-all -D_FORTIFY_SOURCE=2 -O" go build -ldflags "-s -w -buildmode=pie -linkmode external -extldflags=-Wl,-z,relro,-z,now" -o xxx-`uname -m`

    cgo_safe.go

    package main

    /*

    #include <stdio.h>
    #include <stdlib.h>

    */

    import "C"
    import "fmt"

    func init() {
    s := C.CString("hello")
    fmt.Println(s)

    // C.puts(s)
    // C.free(unsafe.Pointer(s))
    }

    跨平台编译

    具体操作

    编译跨平台的只需要修改GOOS、GOARCH、CGO_ENABLED三个环境变量即可

    • GOOS:目标平台的操作系统(darwin、freebsd、linux、windows)
    • GOARCH:目标平台的体系架构32位还是64位(386、amd64、arm)
    • 交叉编译不支持 CGO 所以要禁用它

    CGO

    go mod 依赖问题

    • go mod init:初始化go mod, 生成go.mod文件,后可接参数指定 module 名,上面已经演示过。
    • go mod download:手动触发下载依赖包到本地cache(默认为$GOPATH/pkg/mod目录)
    • go mod graph: 打印项目的模块依赖结构
    • go mod tidy :添加缺少的包,且删除无用的包
    • go mod verify :校验模块是否被篡改过
    • go mod why: 查看为什么需要依赖
    • go mod vendor :导出项目所有依赖到vendor下
    • go mod edit :编辑go.mod文件,接 -fmt 参数格式化 go.mod 文件,接 -require=golang.org/x/text 添加依赖,接 -droprequire=golang.org/x/text 删除依赖,详情可参考 go help mod edit
    • go list -m -json all:以 json 的方式打印依赖详情-
    • Golang中GoPath和GoModule模式的区别

    代理

    #
    go env
    # 原代理
    # GOPROXY='https://proxy.golang.org,direct'
    # go模块(七牛云)代理
    go env -w GOPROXY=https://goproxy.cn,direct
    - +

    Golang

    Go 语言设计初衷

    为了解决当时 Google 开发遇到的问题:

    1. 编译慢;
    2. 大量的 C++代码,同时又引入了 Java 和 Python;
    3. 更新的花费越来越长;
    4. 分布式的编译系统;
    5. 数百万的服务器;

    Go 语言的特色

    1. 高效的并发编程(基于 CSP);
    2. 内存回收(GC);
    3. 编译速度快;
    4. 函数多返回值;
    5. 语言交互性;
    6. 没有异常处理(Error is value);

    Go 语言的优势

    1. 学习曲线容易;
    2. 效率:快速的编译时间,开发效率和运行效率高;
    3. 出身名门,血统纯正;
    4. 并行和异步编程几乎没有痛点;
    5. 自由高效:组合的思想、无侵入式的接口、强大的标准库、部署方便、稳定性;

    我们为什么选择 Go 语言

    1. 执行性能
    2. 开发效率

    Go 语言能做什么

    1. 服务器编程;
    2. 分布式系统、数据库代理器、中间件等;
    3. 网络编程;
    4. 数据库操作;
    5. 开发云平台;

    信息

    GC

    安全编译

    在Go语言中,“安全编译”可能指的是使用安全的编译参数,以确保代码的安全性和性能最优。这通常涉及到使用编译器的各种安全和性能参数,比如:

    使用 -s 或 -w 参数来减少编译后的二进制文件大小,去掉调试信息和符号信息。

    使用 -ldflags 来设置链接器的标志,比如 -s -w 来进一步优化编译结果。

    使用 -buildmode 参数来指定编译模式,比如 pie 来生成位置无关的可执行文件,增加安全性。

    下面是一个简单的例子,演示如何使用 -ldflags 来优化编译结果:

    go build -ldflags "-s -w" -o myapp .

    这条命令会编译当前目录下的Go代码,并输出一个没有调试信息、符号和优化过的、体积更小的可执行文件 myapp。

    如果你想进一步确保安全性,可以使用Go的安全性标志,比如 -tags safe,这取决于你使用的第三方库是否支持这个tag。

    go build -tags safe -o myapp .

    请注意,每个项目可能有特定的安全和性能要求,因此编译参数应根据具体情况选择和调整。

    #
    go build -ldflags "-s -w -buildmode=pie -linkmode external -extldflags=-Wl,-z,relro,-z,now" -o CcspUtilRemote-`uname -m`
    #
    go build -tags safe -o myapp .
    # 使用此命令查看
    go tool link --help

    实际问题例子:

    # 安全编译检查 出现两个问题 [STACK CANARY/FORTIFY]
    checksec --file=./xxx-x86_64
    # 处理[STACK CANARY/FORTIFY] 增加CGO 以及CGO代码文件cgo_safe.go
    CGO_ENABLED=1 CGO_CFLAGS="-fstack-protector-all -D_FORTIFY_SOURCE=2 -O" go build -ldflags "-s -w -buildmode=pie -linkmode external -extldflags=-Wl,-z,relro,-z,now" -o xxx-`uname -m`

    cgo_safe.go

    package main

    /*

    #include <stdio.h>
    #include <stdlib.h>

    */

    import "C"
    import "fmt"

    func init() {
    s := C.CString("hello")
    fmt.Println(s)

    // C.puts(s)
    // C.free(unsafe.Pointer(s))
    }

    跨平台编译

    具体操作

    编译跨平台的只需要修改GOOS、GOARCH、CGO_ENABLED三个环境变量即可

    • GOOS:目标平台的操作系统(darwin、freebsd、linux、windows)
    • GOARCH:目标平台的体系架构32位还是64位(386、amd64、arm)
    • 交叉编译不支持 CGO 所以要禁用它

    CGO

    go mod 依赖问题

    • go mod init:初始化go mod, 生成go.mod文件,后可接参数指定 module 名,上面已经演示过。
    • go mod download:手动触发下载依赖包到本地cache(默认为$GOPATH/pkg/mod目录)
    • go mod graph: 打印项目的模块依赖结构
    • go mod tidy :添加缺少的包,且删除无用的包
    • go mod verify :校验模块是否被篡改过
    • go mod why: 查看为什么需要依赖
    • go mod vendor :导出项目所有依赖到vendor下
    • go mod edit :编辑go.mod文件,接 -fmt 参数格式化 go.mod 文件,接 -require=golang.org/x/text 添加依赖,接 -droprequire=golang.org/x/text 删除依赖,详情可参考 go help mod edit
    • go list -m -json all:以 json 的方式打印依赖详情-
    • Golang中GoPath和GoModule模式的区别

    代理

    #
    go env
    # 原代理
    # GOPROXY='https://proxy.golang.org,direct'
    # go模块(七牛云)代理
    go env -w GOPROXY=https://goproxy.cn,direct
    + \ No newline at end of file diff --git "a/docs/study/program/Golang/\345\270\270\347\224\250\347\232\204\345\267\245\345\205\267/index.html" "b/docs/study/program/Golang/\345\270\270\347\224\250\347\232\204\345\267\245\345\205\267/index.html" index ce87fabe2..dc127d264 100644 --- "a/docs/study/program/Golang/\345\270\270\347\224\250\347\232\204\345\267\245\345\205\267/index.html" +++ "b/docs/study/program/Golang/\345\270\270\347\224\250\347\232\204\345\267\245\345\205\267/index.html" @@ -11,13 +11,13 @@ - + - +
    + \ No newline at end of file diff --git "a/docs/study/program/Golang/\345\270\270\347\224\250\347\232\204\346\241\206\346\236\266/index.html" "b/docs/study/program/Golang/\345\270\270\347\224\250\347\232\204\346\241\206\346\236\266/index.html" index 11a2f83c8..72b0c4c97 100644 --- "a/docs/study/program/Golang/\345\270\270\347\224\250\347\232\204\346\241\206\346\236\266/index.html" +++ "b/docs/study/program/Golang/\345\270\270\347\224\250\347\232\204\346\241\206\346\236\266/index.html" @@ -11,14 +11,14 @@ - + - +https://github.com/labstack/echo

    go-restful

    https://github.com/emicklei/go-restful

    + \ No newline at end of file diff --git a/docs/study/program/JAVA/GC/index.html b/docs/study/program/JAVA/GC/index.html index d60bc1484..7379db097 100644 --- a/docs/study/program/JAVA/GC/index.html +++ b/docs/study/program/JAVA/GC/index.html @@ -11,13 +11,13 @@ - +
    -

    GC

    JVM 中常见的垃圾收集算法

    • 标记-清除(Mark-Sweep): 这是最基本的垃圾收集算法,它分为两个阶段,标记和清除。首先标记出所有需要回收的对象,然后进行清除。缺点是效率不高,并且会产生大量不连续的内存碎片。
    • (Copying): 为了解决标记-清除算法的内存碎片问题,出现了复制算法。它将可用内存分为两个区域,每次只使用其中一个区域。当这个区域满时,它会把存活的对象复制到另一个区域,然后清除正在使用的那个区域的所有对象。这种算法实现简单,运行高效,但是需要两倍的内存空间。
    • 标记-整理(Mark-Compact): 结合了标记-清除和复制的优点,它先标记需要回收的对象,然后把所有存活的对象都向一端移动,接着清除掉端边界以外的内存。
    • 分代收集(Generational Collector): 基于对象生命周期的不同,它将堆分为新生代和老年代。新生代中,大部分对象是朝生夕死的,所以可以使用复制算法;老年代中对象存活率高,一般使用标记-整理或标记-清除算法。
    • 增量收集(Incremental Collector): 这种算法允许垃圾收集在应用进行的同时进行,减少应用的暂停时间。
    • 并发标记-清除(Concurrent Mark-Sweep, CMS): 为了减少垃圾收集对应用的影响,出现了并发收集算法,它尝试让垃圾收集的过程并发进行。CMS 算法分为四个阶段,并发标记、并发预清理、重新标记、并发清除,尽量减少对应用的影响。
    • 改进的并发标记-清除(G1): 为了进一步减少暂停时间和提高吞吐量,JVM 在 Java 7 Update 4 中引入了 G1 垃圾收集器。G1 尝试把堆空间划分为多个大小相等的区域,并且可以并发处理这些区域。

    查看各个版本的 GC

    java -XX:+PrintCommandLineFlags -version
    java -XX:+PrintGCDetails -version
    java8 -XX:+PrintCommandLineFlags -version
    -XX:InitialHeapSize=268435456
    -XX:MaxHeapSize=4294967296
    -XX:+PrintCommandLineFlags
    -XX:+UseCompressedClassPointers
    -XX:+UseCompressedOops
    -XX:+UseParallelGC
    java version "1.8.0_181"
    Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
    Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
    java17 -XX:+PrintCommandLineFlags -version
    -XX:ConcGCThreads=2
    -XX:G1ConcRefinementThreads=8
    -XX:GCDrainStackTargetSize=64
    -XX:InitialHeapSize=268435456
    -XX:MarkStackSize=4194304
    -XX:MaxHeapSize=4294967296
    -XX:MinHeapSize=6815736
    -XX:+PrintCommandLineFlags
    -XX:ReservedCodeCacheSize=251658240
    -XX:+SegmentedCodeCache
    -XX:+UseCompressedClassPointers
    -XX:+UseCompressedOops
    -XX:+UseG1GC
    java version "17.0.6" 2023-01-17 LTS
    Java(TM) SE Runtime Environment (build 17.0.6+9-LTS-190)
    Java HotSpot(TM) 64-Bit Server VM (build 17.0.6+9-LTS-190, mixed mode, sharing)

    JVM 内存问题排查

    - +

    GC

    JVM 中常见的垃圾收集算法

    • 标记-清除(Mark-Sweep): 这是最基本的垃圾收集算法,它分为两个阶段,标记和清除。首先标记出所有需要回收的对象,然后进行清除。缺点是效率不高,并且会产生大量不连续的内存碎片。
    • (Copying): 为了解决标记-清除算法的内存碎片问题,出现了复制算法。它将可用内存分为两个区域,每次只使用其中一个区域。当这个区域满时,它会把存活的对象复制到另一个区域,然后清除正在使用的那个区域的所有对象。这种算法实现简单,运行高效,但是需要两倍的内存空间。
    • 标记-整理(Mark-Compact): 结合了标记-清除和复制的优点,它先标记需要回收的对象,然后把所有存活的对象都向一端移动,接着清除掉端边界以外的内存。
    • 分代收集(Generational Collector): 基于对象生命周期的不同,它将堆分为新生代和老年代。新生代中,大部分对象是朝生夕死的,所以可以使用复制算法;老年代中对象存活率高,一般使用标记-整理或标记-清除算法。
    • 增量收集(Incremental Collector): 这种算法允许垃圾收集在应用进行的同时进行,减少应用的暂停时间。
    • 并发标记-清除(Concurrent Mark-Sweep, CMS): 为了减少垃圾收集对应用的影响,出现了并发收集算法,它尝试让垃圾收集的过程并发进行。CMS 算法分为四个阶段,并发标记、并发预清理、重新标记、并发清除,尽量减少对应用的影响。
    • 改进的并发标记-清除(G1): 为了进一步减少暂停时间和提高吞吐量,JVM 在 Java 7 Update 4 中引入了 G1 垃圾收集器。G1 尝试把堆空间划分为多个大小相等的区域,并且可以并发处理这些区域。

    查看各个版本的 GC

    java -XX:+PrintCommandLineFlags -version
    java -XX:+PrintGCDetails -version
    java8 -XX:+PrintCommandLineFlags -version
    -XX:InitialHeapSize=268435456
    -XX:MaxHeapSize=4294967296
    -XX:+PrintCommandLineFlags
    -XX:+UseCompressedClassPointers
    -XX:+UseCompressedOops
    -XX:+UseParallelGC
    java version "1.8.0_181"
    Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
    Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
    java17 -XX:+PrintCommandLineFlags -version
    -XX:ConcGCThreads=2
    -XX:G1ConcRefinementThreads=8
    -XX:GCDrainStackTargetSize=64
    -XX:InitialHeapSize=268435456
    -XX:MarkStackSize=4194304
    -XX:MaxHeapSize=4294967296
    -XX:MinHeapSize=6815736
    -XX:+PrintCommandLineFlags
    -XX:ReservedCodeCacheSize=251658240
    -XX:+SegmentedCodeCache
    -XX:+UseCompressedClassPointers
    -XX:+UseCompressedOops
    -XX:+UseG1GC
    java version "17.0.6" 2023-01-17 LTS
    Java(TM) SE Runtime Environment (build 17.0.6+9-LTS-190)
    Java HotSpot(TM) 64-Bit Server VM (build 17.0.6+9-LTS-190, mixed mode, sharing)

    JVM 内存问题排查

    + \ No newline at end of file diff --git a/docs/study/program/JAVA/GraalVM/index.html b/docs/study/program/JAVA/GraalVM/index.html index 30fe4f92a..0d3e66527 100644 --- a/docs/study/program/JAVA/GraalVM/index.html +++ b/docs/study/program/JAVA/GraalVM/index.html @@ -11,13 +11,13 @@ - + - +
    + \ No newline at end of file diff --git a/docs/study/program/JAVA/Guice/index.html b/docs/study/program/JAVA/Guice/index.html index a91445bdd..7e613473a 100644 --- a/docs/study/program/JAVA/Guice/index.html +++ b/docs/study/program/JAVA/Guice/index.html @@ -11,13 +11,13 @@ - +
    -

    Guice

    背景

    Guice 是一个开源的、基于 Java 的依赖注入框架。它是轻量级的,由 Google 积极开发/管理。

    在日常写一些小工具或者小项目的时候,有依赖管理和依赖注入的需求,但是Spring(Boot)体系作为DI框架过于重量级,于是需要调研一款微型的DI框架。Guice是Google出品的一款轻量级的依赖注入框架,使用它有助于解决项目中的依赖注入问题,提高了可维护性和灵活性。相对于重量级的Spring(Boot)体系,Guice项目只有一个小于1MB的核心模块,如果核心需求是DI(其实Guice也提供了很低层次的AOP实现),那么Guice应该会是一个合适的候选方案。

    - +

    Guice

    背景

    Guice 是一个开源的、基于 Java 的依赖注入框架。它是轻量级的,由 Google 积极开发/管理。

    在日常写一些小工具或者小项目的时候,有依赖管理和依赖注入的需求,但是Spring(Boot)体系作为DI框架过于重量级,于是需要调研一款微型的DI框架。Guice是Google出品的一款轻量级的依赖注入框架,使用它有助于解决项目中的依赖注入问题,提高了可维护性和灵活性。相对于重量级的Spring(Boot)体系,Guice项目只有一个小于1MB的核心模块,如果核心需求是DI(其实Guice也提供了很低层次的AOP实现),那么Guice应该会是一个合适的候选方案。

    + \ No newline at end of file diff --git a/docs/study/program/JAVA/JDK17-bin/index.html b/docs/study/program/JAVA/JDK17-bin/index.html index 65f19a349..16c25a617 100644 --- a/docs/study/program/JAVA/JDK17-bin/index.html +++ b/docs/study/program/JAVA/JDK17-bin/index.html @@ -11,13 +11,13 @@ - +
    -

    JDK17-bin

    jar

    操作 jar 文件,包括新建、查看内容、解压、添加文件等

    jarsigner

    jarsigner 命令是 Java 开发工具中用于对 JAR 文件进行签名的重要工具之一。它通过数字签名实现身份验证和保证应用程序的完整性,提供了应用程序发布和分发的安全性。但它也引入了额外的复杂性和一些操作步骤。通过理解和正确使用 jarsigner,可以提高 Java 应用程序的安全性和用户的信任度。

    总的来说,jarsigner 为 Java 应用程序提供了一种有效的方式来验证应用程序的来源和完整性,帮助建立用户和开发者之间的信任关系。

    java

    javac

    javadoc

    javap

    jcmd

    jconsole

    jconsole 提供了可视化的方式来获取有关 Java 应用程序的各种信息,包括内存使用情况、线程活动、GC 行为等重要指标。它还允许远程连接到运行中的 Java 进程,提供对远程应用程序的监控和管理能力。

    jdb

    jdeprscan

    jdeps

    jfr

    jhsdb

    jimage

    jinfo

    Java Configuration Info :查看配置参数信息,支持部分参数运行时修改

    jmap

    Java Memory Map :分析堆内存工具,导出 dump 堆内存快照

    jmap -dump:live,format=b,file=heap.bin <pid>

    jmod

    jpakcage

    jps

    JVM Process status tool:JVM 进程状态工具,查看进程基本信息

    用的不多

    jrunscript

    jshell

    jstack

    Java Stack Trace :Java 堆栈跟踪工具

    可以生成 JVM 当前时刻的线程快照,生成线程快照的主要目的是定位线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间等待等。

    jstack -l {PID} > jstack-dump.log

    然后 放到 fastthread.io 分析

    jstat

    JVM statistics monitoring tool : JVM 统计监控工具,查看堆,GC 详细信息

    先用他分析 GC 问题,包括 GC 次数、GC 时间、GC 原因、GC 前后堆内存变化

    jstatd

    keytool

    rmiregistry

    serialver

    其他分析工具

    - +

    JDK17-bin

    jar

    操作 jar 文件,包括新建、查看内容、解压、添加文件等

    jarsigner

    jarsigner 命令是 Java 开发工具中用于对 JAR 文件进行签名的重要工具之一。它通过数字签名实现身份验证和保证应用程序的完整性,提供了应用程序发布和分发的安全性。但它也引入了额外的复杂性和一些操作步骤。通过理解和正确使用 jarsigner,可以提高 Java 应用程序的安全性和用户的信任度。

    总的来说,jarsigner 为 Java 应用程序提供了一种有效的方式来验证应用程序的来源和完整性,帮助建立用户和开发者之间的信任关系。

    java

    javac

    javadoc

    javap

    jcmd

    jconsole

    jconsole 提供了可视化的方式来获取有关 Java 应用程序的各种信息,包括内存使用情况、线程活动、GC 行为等重要指标。它还允许远程连接到运行中的 Java 进程,提供对远程应用程序的监控和管理能力。

    jdb

    jdeprscan

    jdeps

    jfr

    jhsdb

    jimage

    jinfo

    Java Configuration Info :查看配置参数信息,支持部分参数运行时修改

    jmap

    Java Memory Map :分析堆内存工具,导出 dump 堆内存快照

    jmap -dump:live,format=b,file=heap.bin <pid>

    jmod

    jpakcage

    jps

    JVM Process status tool:JVM 进程状态工具,查看进程基本信息

    用的不多

    jrunscript

    jshell

    jstack

    Java Stack Trace :Java 堆栈跟踪工具

    可以生成 JVM 当前时刻的线程快照,生成线程快照的主要目的是定位线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间等待等。

    jstack -l {PID} > jstack-dump.log

    然后 放到 fastthread.io 分析

    jstat

    JVM statistics monitoring tool : JVM 统计监控工具,查看堆,GC 详细信息

    先用他分析 GC 问题,包括 GC 次数、GC 时间、GC 原因、GC 前后堆内存变化

    jstatd

    keytool

    rmiregistry

    serialver

    其他分析工具

    + \ No newline at end of file diff --git a/docs/study/program/JAVA/JDK17/index.html b/docs/study/program/JAVA/JDK17/index.html index d22f20927..8311ea17d 100644 --- a/docs/study/program/JAVA/JDK17/index.html +++ b/docs/study/program/JAVA/JDK17/index.html @@ -11,13 +11,13 @@ - +
    -

    JDK17

    限制类继承 sealed 类

    Sealed 类是一种新的类修饰符,用于限制类的继承。Sealed 类可以控制哪些类可以继承自它,这样可以使得代码更加安全、可维护。Sealed 类的使用可以在编译时强制执行一些规则,从而避免运行时错误。

    Pattern Matching for Switch 语法

    public static void main(String[] args) {
    Object obj = "hello";

    switch (obj) {
    case String s && s.length() > 5 -> System.out.println("长字符串");
    case String s -> System.out.println("短字符串");
    case Integer i -> System.out.println("整型数");
    default -> System.out.println("不支持的类型");
    }
    }

    Record 类

    Record 类是一种新的数据类,可以用于定义只有属性和访问器的简单数据对象。Record 类可以简化代码,使得代码更加易读、易维护。Record 类的使用可以减少代码量,避免出现大量的 getter 和 setter 方法。

    public record Person(String name, int age) {}

    public class RecordExample {
    public static void main(String[] args) {
    Person person = new Person("John", 30);

    System.out.println("Name: " + person.name());
    System.out.println("Age: " + person.age());
    }
    }

    在这个示例中,我们定义了一个名为 Person 的 Record 类,它有两个字段:name 和 age。Record 类会自动生成一个带有这些字段的构造函数、getter 方法和 equals、hashCode 和 toString 方法。

    增强的 Java 集合库

    of() 方法:创建一个不可变的集合

    List<String> list = List.of("apple", "banana", "orange");
    Set<Integer> set = Set.of(1, 2, 3, 4);
    Map<String, Integer> map = Map.of("apple", 1, "banana", 2, "orange", 3);

    forEach() 方法:遍历集合

    List<String> list = List.of("apple", "banana", "orange");
    list.forEach(name -> System.out.println(name));
    Set<Integer> set = Set.of(1, 2, 3, 4);
    set.forEach(number -> System.out.println(number));

    Collectors 类:提供了一系列的归约操作

    List<String> list = List.of("apple", "banana", "orange");
    String joinedString = list.stream().collect(Collectors.joining("-", "[", "]"));
    System.out.println(joinedString);

    Map<String, Integer> map = Map.of("apple", 1, "banana", 2, "orange", 3);
    Map<Integer, String> reversedMap = map.entrySet().stream().collect(Collectors.toMap(Map.Entry::getValue, Map.Entry::getKey));
    System.out.println(reversedMap);

    takeWhile() 方法和 dropWhile() 方法:根据条件截取集合

    List<Integer> list = List.of(1, 2, 3, 4, 5, 6, 7);
    List<Integer> takenList = list.stream().takeWhile(number -> number < 5).collect(Collectors.toList());
    System.out.println(takenList);

    List<Integer> dropedList = list.stream().dropWhile(number -> number < 5).collect(Collectors.toList());
    System.out.println(dropedList);

    toArray(IntFunction<T[]>) 方法:返回集合中的所有元素到一个新数组中

    List<String> list = List.of("apple", "banana", "orange");
    String[] array = list.toArray(String[]::new);
    System.out.println(Arrays.toString(array));
    - +

    JDK17

    限制类继承 sealed 类

    Sealed 类是一种新的类修饰符,用于限制类的继承。Sealed 类可以控制哪些类可以继承自它,这样可以使得代码更加安全、可维护。Sealed 类的使用可以在编译时强制执行一些规则,从而避免运行时错误。

    Pattern Matching for Switch 语法

    public static void main(String[] args) {
    Object obj = "hello";

    switch (obj) {
    case String s && s.length() > 5 -> System.out.println("长字符串");
    case String s -> System.out.println("短字符串");
    case Integer i -> System.out.println("整型数");
    default -> System.out.println("不支持的类型");
    }
    }

    Record 类

    Record 类是一种新的数据类,可以用于定义只有属性和访问器的简单数据对象。Record 类可以简化代码,使得代码更加易读、易维护。Record 类的使用可以减少代码量,避免出现大量的 getter 和 setter 方法。

    public record Person(String name, int age) {}

    public class RecordExample {
    public static void main(String[] args) {
    Person person = new Person("John", 30);

    System.out.println("Name: " + person.name());
    System.out.println("Age: " + person.age());
    }
    }

    在这个示例中,我们定义了一个名为 Person 的 Record 类,它有两个字段:name 和 age。Record 类会自动生成一个带有这些字段的构造函数、getter 方法和 equals、hashCode 和 toString 方法。

    增强的 Java 集合库

    of() 方法:创建一个不可变的集合

    List<String> list = List.of("apple", "banana", "orange");
    Set<Integer> set = Set.of(1, 2, 3, 4);
    Map<String, Integer> map = Map.of("apple", 1, "banana", 2, "orange", 3);

    forEach() 方法:遍历集合

    List<String> list = List.of("apple", "banana", "orange");
    list.forEach(name -> System.out.println(name));
    Set<Integer> set = Set.of(1, 2, 3, 4);
    set.forEach(number -> System.out.println(number));

    Collectors 类:提供了一系列的归约操作

    List<String> list = List.of("apple", "banana", "orange");
    String joinedString = list.stream().collect(Collectors.joining("-", "[", "]"));
    System.out.println(joinedString);

    Map<String, Integer> map = Map.of("apple", 1, "banana", 2, "orange", 3);
    Map<Integer, String> reversedMap = map.entrySet().stream().collect(Collectors.toMap(Map.Entry::getValue, Map.Entry::getKey));
    System.out.println(reversedMap);

    takeWhile() 方法和 dropWhile() 方法:根据条件截取集合

    List<Integer> list = List.of(1, 2, 3, 4, 5, 6, 7);
    List<Integer> takenList = list.stream().takeWhile(number -> number < 5).collect(Collectors.toList());
    System.out.println(takenList);

    List<Integer> dropedList = list.stream().dropWhile(number -> number < 5).collect(Collectors.toList());
    System.out.println(dropedList);

    toArray(IntFunction<T[]>) 方法:返回集合中的所有元素到一个新数组中

    List<String> list = List.of("apple", "banana", "orange");
    String[] array = list.toArray(String[]::new);
    System.out.println(Arrays.toString(array));
    + \ No newline at end of file diff --git a/docs/study/program/JAVA/JDK21/index.html b/docs/study/program/JAVA/JDK21/index.html index 468d57a4f..979892d20 100644 --- a/docs/study/program/JAVA/JDK21/index.html +++ b/docs/study/program/JAVA/JDK21/index.html @@ -11,13 +11,13 @@ - +
    -

    JDK21

    虚拟线程

    • 虚拟线程是轻量级的,它们与内核线程无关,因此应用程序可以具有比具有多线程的线程更少的核心。
    • 虚拟线程在 JDK 19 中引入,JDK21 正式发布,旨在提高可伸缩性和效率。
    • 虚拟线程不是用来提速的,而是用来提高吞吐量的。

    参考

    - +

    JDK21

    虚拟线程

    • 虚拟线程是轻量级的,它们与内核线程无关,因此应用程序可以具有比具有多线程的线程更少的核心。
    • 虚拟线程在 JDK 19 中引入,JDK21 正式发布,旨在提高可伸缩性和效率。
    • 虚拟线程不是用来提速的,而是用来提高吞吐量的。

    参考

    + \ No newline at end of file diff --git a/docs/study/program/JAVA/JDK8/index.html b/docs/study/program/JAVA/JDK8/index.html index 1e152d234..21f19c15a 100644 --- a/docs/study/program/JAVA/JDK8/index.html +++ b/docs/study/program/JAVA/JDK8/index.html @@ -11,13 +11,13 @@ - + - +
    + \ No newline at end of file diff --git a/docs/study/program/JAVA/JNI/index.html b/docs/study/program/JAVA/JNI/index.html index 1c9f10e7f..f9e08d0e5 100644 --- a/docs/study/program/JAVA/JNI/index.html +++ b/docs/study/program/JAVA/JNI/index.html @@ -11,13 +11,13 @@ - +
    -

    JNI

    Java Native Interface,Java 本地接口

    Java 开发过程中,有时候会需要和 C,C++等交互,这时候我们就想起了经典技术 JNI,但是 JNI 的使用过程十分繁琐,而且容易出现各种问题,还得封装而且问题不好定位。假如我们有一个.so 文件,如果使用 JNI 去调用,我们需要另外用 C 语音写一个.so 的共享文件,并且得使用 SUN 规定的数据结构去替代 C 语言的数据结构,至此才能调用 so 文件里面公布的函数。作为 JAVA 的程序员这个过程是令人头疼的。

    相比之下,使用 JNA 就简单多了,只需要依赖一个 jar 包,就像调用一个 java 方法一样简单。JNA 全称 Java Native Access,是一个建立在 JNI 技术之上的 Java 开源框架。JNA 提供一组 Java 工具类用于在运行期动态访问系统本地库(native library:如 Window 的 dll,Linux 的 so)而不需要编写任何 Native/JNI 代码。开发人员只要在一个 java 接口中描述目标 native library 的函数与结构,JNA 将自动实现 Java 接口到 native function 的映射。

    GitHub-jna

    参考

    - +

    JNI

    Java Native Interface,Java 本地接口

    Java 开发过程中,有时候会需要和 C,C++等交互,这时候我们就想起了经典技术 JNI,但是 JNI 的使用过程十分繁琐,而且容易出现各种问题,还得封装而且问题不好定位。假如我们有一个.so 文件,如果使用 JNI 去调用,我们需要另外用 C 语音写一个.so 的共享文件,并且得使用 SUN 规定的数据结构去替代 C 语言的数据结构,至此才能调用 so 文件里面公布的函数。作为 JAVA 的程序员这个过程是令人头疼的。

    相比之下,使用 JNA 就简单多了,只需要依赖一个 jar 包,就像调用一个 java 方法一样简单。JNA 全称 Java Native Access,是一个建立在 JNI 技术之上的 Java 开源框架。JNA 提供一组 Java 工具类用于在运行期动态访问系统本地库(native library:如 Window 的 dll,Linux 的 so)而不需要编写任何 Native/JNI 代码。开发人员只要在一个 java 接口中描述目标 native library 的函数与结构,JNA 将自动实现 Java 接口到 native function 的映射。

    GitHub-jna

    参考

    + \ No newline at end of file diff --git a/docs/study/program/JAVA/Maven/index.html b/docs/study/program/JAVA/Maven/index.html index fc153c8a4..7c2d51528 100644 --- a/docs/study/program/JAVA/Maven/index.html +++ b/docs/study/program/JAVA/Maven/index.html @@ -11,14 +11,14 @@ - +

    Maven

    简介

    本质上是一个插件框架,它的核心并不执行任何具体的构建任务,所有这些任务都交给插件来完成,例如编译源代码是由maven- compiler-plugin完成的。

    参数

    参数全称释义说明
    -pl--projectsBuild specified reactor projects instead of all projects选项后可跟随{groupId}:{artifactId}或者所选模块的相对路径(多个模块以逗号分隔)
    -am--also-makeIf project list is specified, also build projects required by the list表示同时处理选定模块所依赖的模块
    -amd--also-make-dependentsIf project list is specified, also build projects that depend on projects on the list表示同时处理依赖选定模块的模块
    -N--Non-recursiveBuild projects without recursive表示不递归子模块
    -rf--resume-fromResume reactor from specified project表示从指定模块开始继续处理

    插件

    三种打包插件

    • maven-jar-plugin,默认的打包插件,用来打普通的project JAR包;
    • maven-shade-plugin,用来打可执行JAR包,也就是所谓的fat JAR包;
    • maven-assembly-plugin,支持自定义的打包结构,也可以定制依赖项等。

    maven-assembly-plugin

    maven-assembly-plugin的用途是制作项目分发包,该分发包可能包含了项目的可执行文件、源代码、readme、平台脚本等等。maven-assembly-plugin支持各种主流的格式如zip、tar.gz、jar和war等,具体打包哪些文件是高度可控的,例如用户可以 按文件级别的粒度、文件集级别的粒度、模块级别的粒度、以及依赖级别的粒度控制打包,此外,包含和排除配置也是支持的。maven-assembly- plugin要求用户使用一个名为assembly.xml的元数据文件来表述打包,它的single目标可以直接在命令行调用,也可以被绑定至生命周期。

    maven-enforcer-plugin

    在一个稍大一点的组织或团队中,你无法保证所有成员都熟悉Maven,那他们做一些比较愚蠢的事情就会变得很正常,例如给项目引入了外部的 SNAPSHOT依赖而导致构建不稳定,使用了一个与大家不一致的Maven版本而经常抱怨构建出现诡异问题。maven-enforcer- plugin能够帮助你避免之类问题,它允许你创建一系列规则强制大家遵守,包括设定Java版本、设定Maven版本、禁止某些依赖、禁止 SNAPSHOT依赖。只要在一个父POM配置规则,然后让大家继承,当规则遭到破坏的时候,Maven就会报错。除了标准的规则之外,你还可以扩展该插 件,编写自己的规则。maven-enforcer-plugin的enforce目标负责检查规则,它默认绑定到生命周期的validate阶段。

    maven-release-plugin

    maven-release-plugin的用途是帮助自动化项目版本发布,它依赖于POM中的SCM信息。release:prepare用来准备版本发布,具体的工作包括检查是否有未提交代码、检查是否有SNAPSHOT依赖、升级项目的SNAPSHOT版本至RELEASE版本、为项目打标签等等。release:perform则 是签出标签中的RELEASE源码,构建并发布。版本发布是非常琐碎的工作,它涉及了各种检查,而且由于该工作仅仅是偶尔需要,因此手动操作很容易遗漏一 些细节,maven-release-plugin让该工作变得非常快速简便,不易出错。maven-release-plugin的各种目标通常直接在 命令行调用,因为版本发布显然不是日常构建生命周期的一部分。

    maven-resources-plugin

    为了使项目结构更为清晰,Maven区别对待Java代码文件和资源文件,maven-compiler-plugin用来编译Java代码,maven-resources-plugin则用来处理资源文件。默认的主资源文件目录是src/main/resources,很多用户会需要添加额外的资源文件目录,这个时候就可以通过配置maven-resources-plugin来实现。此外,资源文件过滤也是Maven的一大特性,你可以在资源文件中使用${propertyName}形式的Maven属性,然后配置maven-resources-plugin开启对资源文件的过滤,之后就可以针对不同环境通过命令行或者Profile传入属性的值,以实现更为灵活的构建。

    build-helper-maven-plugin

    Maven默认只允许指定一个主Java代码目录和一个测试Java代码目录,虽然这其实是个应当尽量遵守的约定,但偶尔你还是会希望能够指定多个 源码目录(例如为了应对遗留项目),build-helper-maven-plugin的add-source目标就是服务于这个目的,通常它被绑定到 默认生命周期的generate-sources阶段以添加额外的源码目录。需要强调的是,这种做法还是不推荐的,因为它破坏了 Maven的约定,而且可能会遇到其他严格遵守约定的插件工具无法正确识别额外的源码目录。 -build-helper-maven-plugin的另一个非常有用的目标是attach-artifact,使用该目标你可以以classifier的形式选取部分项目文件生成附属构件,并同时install到本地仓库,也可以deploy到远程仓库。

    versions-maven-plugin

    很多Maven用户遇到过这样一个问题,当项目包含大量模块的时候,为他们集体更新版本就变成一件烦人的事情,到底有没有自动化工具能帮助完成这件 事情呢?(当然你可以使用sed之类的文本操作工具,不过不在本文讨论范围)答案是肯定的,versions-maven- plugin提供了很多目标帮助你管理Maven项目的各种版本信息。例如最常用的,命令 mvn versions:set -DnewVersion=1.1-SNAPSHOT 就能帮助你把所有模块的版本更新到1.1-SNAPSHOT。该插件还提供了其他一些很有用的目标,display-dependency- updates能告诉你项目依赖有哪些可用的更新;类似的display-plugin-updates能告诉你可用的插件更新;然后use- latest-versions能自动帮你将所有依赖升级到最新版本。最后,如果你对所做的更改满意,则可以使用 mvn versions:commit 提交,不满意的话也可以使用 mvn versions:revert 进行撤销。

    git-commit-id-plugin

    jacoco-maven-plugin

    在Maven项目中,我们可以使用jacoco-maven-plugin插件来生成代码覆盖率报告。Jacoco是一种用于测量代码覆盖率的工具,它能够生成覆盖率数据并帮助我们找出代码中未被测试的部分。

    使用Maven插件(jacoco-maven-plugin)生成代码覆盖率报告

    - +build-helper-maven-plugin的另一个非常有用的目标是attach-artifact,使用该目标你可以以classifier的形式选取部分项目文件生成附属构件,并同时install到本地仓库,也可以deploy到远程仓库。

    versions-maven-plugin

    很多Maven用户遇到过这样一个问题,当项目包含大量模块的时候,为他们集体更新版本就变成一件烦人的事情,到底有没有自动化工具能帮助完成这件 事情呢?(当然你可以使用sed之类的文本操作工具,不过不在本文讨论范围)答案是肯定的,versions-maven- plugin提供了很多目标帮助你管理Maven项目的各种版本信息。例如最常用的,命令 mvn versions:set -DnewVersion=1.1-SNAPSHOT 就能帮助你把所有模块的版本更新到1.1-SNAPSHOT。该插件还提供了其他一些很有用的目标,display-dependency- updates能告诉你项目依赖有哪些可用的更新;类似的display-plugin-updates能告诉你可用的插件更新;然后use- latest-versions能自动帮你将所有依赖升级到最新版本。最后,如果你对所做的更改满意,则可以使用 mvn versions:commit 提交,不满意的话也可以使用 mvn versions:revert 进行撤销。

    git-commit-id-plugin

    jacoco-maven-plugin

    在Maven项目中,我们可以使用jacoco-maven-plugin插件来生成代码覆盖率报告。Jacoco是一种用于测量代码覆盖率的工具,它能够生成覆盖率数据并帮助我们找出代码中未被测试的部分。

    使用Maven插件(jacoco-maven-plugin)生成代码覆盖率报告

    + \ No newline at end of file diff --git a/docs/study/program/JAVA/OepnJ9/index.html b/docs/study/program/JAVA/OepnJ9/index.html index 1b713ff9d..0f536f836 100644 --- a/docs/study/program/JAVA/OepnJ9/index.html +++ b/docs/study/program/JAVA/OepnJ9/index.html @@ -11,13 +11,13 @@ - +
    -

    OpenJ9

    https://eclipse.dev/openj9/

    OpenJ9 是原来的 IBM J9 Java 虚拟机 (JVM),已贡献给 Eclipse 基金会开源。

    OpenJ9 是一个高性能的企业级 Java 虚拟机,旨在促进 JVM 开发者的开放生态系统,从而可以与硬件平台、操作系统、工具和框架设计师和开发者进行协作和创新。

    Java 社区从 JVM 规范的多个实现中受益匪浅,为其应用程序提供最佳运行时。无论是添加压缩引用、新的云功能、AOT(提前编译),还是直接提升性能和降低内存使用,生态系统通过竞争得到改善。 Eclipse OpenJ9 旨在继续推动运行时的创新。

    根据官网文档说明,以 OpenJDK8 和 OpenJ9 比较说明其应用层面的特点、优势:

    42% faster startup time,启动时间快 42% 66% smaller footprint after startup,启动后占用内存减少 66%

    Faster ramp-up time in the cloud,云端环境快速提升吞吐量

    63% smaller footprint during load,高负载时减少 63%的占用空间

    根据 cheng jin(OpenJ9 VM Software Developer)介绍,DDR 和 SCC 是其不同于 HotSpot 的 2 个特点。

    - +

    OpenJ9

    https://eclipse.dev/openj9/

    OpenJ9 是原来的 IBM J9 Java 虚拟机 (JVM),已贡献给 Eclipse 基金会开源。

    OpenJ9 是一个高性能的企业级 Java 虚拟机,旨在促进 JVM 开发者的开放生态系统,从而可以与硬件平台、操作系统、工具和框架设计师和开发者进行协作和创新。

    Java 社区从 JVM 规范的多个实现中受益匪浅,为其应用程序提供最佳运行时。无论是添加压缩引用、新的云功能、AOT(提前编译),还是直接提升性能和降低内存使用,生态系统通过竞争得到改善。 Eclipse OpenJ9 旨在继续推动运行时的创新。

    根据官网文档说明,以 OpenJDK8 和 OpenJ9 比较说明其应用层面的特点、优势:

    42% faster startup time,启动时间快 42% 66% smaller footprint after startup,启动后占用内存减少 66%

    Faster ramp-up time in the cloud,云端环境快速提升吞吐量

    63% smaller footprint during load,高负载时减少 63%的占用空间

    根据 cheng jin(OpenJ9 VM Software Developer)介绍,DDR 和 SCC 是其不同于 HotSpot 的 2 个特点。

    + \ No newline at end of file diff --git a/docs/study/program/JAVA/RxJava/index.html b/docs/study/program/JAVA/RxJava/index.html index fa7983d60..7946aa0ff 100644 --- a/docs/study/program/JAVA/RxJava/index.html +++ b/docs/study/program/JAVA/RxJava/index.html @@ -11,13 +11,13 @@ - +
    -

    RxJava

    简介

    GitHub地址

    RxJava - JVM响应式扩展Reactive Extensions 用于使用Java VM的可观察序列编写异步和基于事件的程序的库。

    RxJava到底是什么?让我们直接跳过官方那种晦涩的追求精确的定义,其实初学RxJava只要把握两点:观察者模式和异步,就基本可以熟练使用RxJava了。

    参考

    1. 关于RxJava最友好的文章
    2. 关于RxJava最友好的文章——背压(Backpressure)
    3. 关于 RxJava 最友好的文章—— RxJava 2.0 全新来袭
    - +

    RxJava

    简介

    GitHub地址

    RxJava - JVM响应式扩展Reactive Extensions 用于使用Java VM的可观察序列编写异步和基于事件的程序的库。

    RxJava到底是什么?让我们直接跳过官方那种晦涩的追求精确的定义,其实初学RxJava只要把握两点:观察者模式和异步,就基本可以熟练使用RxJava了。

    参考

    1. 关于RxJava最友好的文章
    2. 关于RxJava最友好的文章——背压(Backpressure)
    3. 关于 RxJava 最友好的文章—— RxJava 2.0 全新来袭
    + \ No newline at end of file diff --git a/docs/study/program/JAVA/Vert.x/index.html b/docs/study/program/JAVA/Vert.x/index.html index 78e4503b1..950b54bde 100644 --- a/docs/study/program/JAVA/Vert.x/index.html +++ b/docs/study/program/JAVA/Vert.x/index.html @@ -11,7 +11,7 @@ - + @@ -30,8 +30,8 @@ 每一个 Vert.x 实例都有一个单独的 Event Bus 实例。您可以通过 Vertx 实例的 eventBus 方法来获得对应的 EventBus 实例。 Vert.x会尽它最大努力去传递消息,并且不会主动丢弃消息。这种方式称为 尽力传输(Best-effort delivery)。 但是,当 Event Bus 中的全部或部分发生故障时,则可能会丢失消息。 -若您的应用关心丢失的消息,您应该编写具有幂等性的处理器,并且您的发送者可以在恢复后重试。

    Event Bus 不仅仅存在于单个 Vert.x 实例中。通过您在网络上将不同的 Vert.x 实例集群在一起,它可以形成一个单一的、分布式的Event Bus。

    - +若您的应用关心丢失的消息,您应该编写具有幂等性的处理器,并且您的发送者可以在恢复后重试。

    Event Bus 不仅仅存在于单个 Vert.x 实例中。通过您在网络上将不同的 Vert.x 实例集群在一起,它可以形成一个单一的、分布式的Event Bus。

    + \ No newline at end of file diff --git a/docs/study/program/JAVA/index.html b/docs/study/program/JAVA/index.html index e1b3a034d..81da8ab6a 100644 --- a/docs/study/program/JAVA/index.html +++ b/docs/study/program/JAVA/index.html @@ -11,15 +11,15 @@ - +

    Java

    一种使用非常广泛的跨平台编程语言。

    一些官方网站

    从 JDK 8 到 JDK 17 的新特性

    JDK 8 新特性(2014 年 3 月)

    • Lambda 表达式:Lambda 表达式是 JDK 8 中最重要的新特性之一。它允许我们以一种更简洁和函数式的方式编写代码。通过 Lambda 表达式,我们可以将函数作为参数传递给其他方法,从而实现更加灵活的编程。Lambda 表达式使得代码更易读、易写,并且可以提升代码的可维护性。
    • Stream API:Stream API 是 JDK 8 中引入的一套用于处理集合和数组的新 API。它提供了一种流式处理的方式,可以更方便地对数据进行操作和处理。Stream API 支持并行处理,可以提高程序的执行效率。通过使用 Stream API,我们可以更简单地实现过滤、映射、归约等操作,并且可以以更优雅的方式处理集合数据。
    • 函数式接口:JDK 8 引入了函数式接口的概念。函数式接口是只包含一个抽象方法的接口,它可以用作 Lambda 表达式的类型。函数式接口可以通过@FunctionalInterface 注解来标记,以确保它只包含一个抽象方法。函数式接口的引入使得 Java 支持函数式编程,可以更方便地使用 Lambda 表达式。
    • 默认方法:在 JDK 8 之前,接口只能包含抽象方法和常量。JDK 8 引入了默认方法的概念,可以在接口中实现方法的默认实现。默认方法可以在接口中提供一个默认的实现,从而避免因为接口的改变而导致实现类需要进行修改。默认方法使得接口可以更灵活地扩展,同时保持向后兼容性。
    • 方法引用:方法引用是一种更简洁地表示 Lambda 表达式的方式。它允许我们直接引用已经存在的方法,而不是通过 Lambda 表达式来实现。方法引用可以提高代码的可读性和可维护性,同时减少重复代码的编写。
    • 新的日期和时间 API:JDK 8 引入了一套全新的日期和时间 API,用于替代旧的 Date 和 Calendar 类。新的日期和时间 API 更加简单易用,并且提供了更多的功能。它支持日期、时间、时区、时间间隔等的处理,同时提供了更多的操作方法和格式化选项。
    • 并发增强:JDK 8 对并发编程进行了增强。它引入了一些新的并发工具和类,使得并发编程更加容易和有效。其中包括 CompletableFuture 类、StampedLock 类、并行数组等。这些增强使得开发人员能够更好地处理并发问题,提高程序的性能和可伸缩性。
    • 其他改进:除了以上提到的主要新特性外,JDK 8 还引入了许多其他的改进,包括改进的类型推断、重复注解、新的编译器 API 等。这些改进使得 Java 语言更加现代化和强大,提供了更多的编程选项和灵活性。

    JDK 9 新特性(2017 年 9 月)

    • 模块化
    • 提供了 List.of()、Set.of()、Map.of() 和 Map.ofEntries() 等工厂方法
    • 接口支持私有方法
    • Optional 类改进
    • 多版本兼容 Jar 包
    • JShell 工具
    • try-with-resources 的改进
    • Stream API 的改进
    • 设置 G1 为 JVM 默认垃圾收集器
    • 支持 HTTP 2.0 和 WebSocket 的 API 重要特性:API 的优化,如支持 HTTP 2 的 Client API、JVM 采用 G1 为默认垃圾收集器。

    JDK 10 新特性(2018 年 3 月)

    • 局部变量类型推断,类似 JS 可以通过 var 来修饰局部变量,编译之后会推断出值的真实类型
    • 不可变集合的改进
    • 并行全垃圾回收器 G1,来优化 G1 的延迟
    • 线程本地握手,允许在不执行全局 VM 安全点的情况下执行线程回调,可以停止单个线程,而不需要停止所有线程或不停止线程
    • Optional 新增 orElseThrow() 方法
    • 类数据共享
    • Unicode 语言标签扩展
    • 根证书

    重要特性:通过 var 关键字实现局部变量类型推断,使 Java 语言变成弱类型语言、JVM 的 G1 垃圾回收由单线程改成多线程并行处理,降低 G1 的停顿时间。

    JDK 11 新特性(2018 年 9 月)(LTS 版本)

    • 增加一些字符串处理方法
    • 用于 Lambda 参数的局部变量语法
    • Http Client 重写,支持 HTTP/1.1 和 HTTP/2,也支持 websockets
    • 可运行单一 Java 源码文件,如:java Test.java
    • ZGC:可伸缩低延迟垃圾收集器。ZGC 可以看作是 G1 之上更细粒度的内存管理策略。由于内存的不断分配回收会产生大量的内存碎片空间,因此需要整理策略防止内存空间碎片化。在整理期间需要将对于内存引用的线程逻辑暂停,这个过程被称为“Stop the world”。只有当整理完成后,线程逻辑才可以继续运行。(并行回收)
    • 支持 TLS 1.3 协议
    • Flight Recorder(飞行记录器),基于 OS、JVM 和 JDK 的事件产生的数据收集框架
    • 对 Stream、Optional、集合 API 进行增强

    重要特性:对于 JDK 9 和 JDK 10 的完善,主要是对于 Stream、集合等 API 的增强、新增 ZGC 垃圾收集器。

    JDK 12 新特性(2019 年 3 月)

    • Switch 表达式扩展,可以有返回值
    • 新增 NumberFormat 对复杂数字的格式化
    • 字符串支持 transform、indent 操作
    • 新增方法 Files.mismatch(Path, Path)
    • Teeing Collector
    • 支持 unicode 11
    • Shenandoah GC,新增的 GC 算法
    • G1 收集器的优化,将 GC 的垃圾分为强制部分和可选部分,强制部分会被回收,可选部分可能不会被回收,提高 GC 的效率

    重要特性:switch 表达式语法扩展、G1 收集器优化、新增 Shenandoah GC 垃圾回收算法。

    JDK 13 新特性(2019 年 9 月)

    • Switch 表达式扩展,Switch 表达式增加 yield 关键字用于返回结果,作用类似于 return,如果没有返回结果则使用 break
    • 文本块升级 """ ,引入了文本块,可以使用 3 个双引号表示文本块,文本块内部不需要使用换行的转义字符
    • SocketAPI 重构,Socket 的底层实现优化,引入了 NIO
    • FileSystems.newFileSystem 新方法
    • ZGC 优化,增强 ZGC 释放未使用内存,将标记长时间空闲的堆内存空间返还给操作系统,保证堆大小不会小于配置的最小堆内存大小,如果堆最大和最小内存大小设置一样,则不会释放内存还给操作系统
    • 重要特性:ZGC 优化,释放内存还给操作系统、Socket 底层实现引入 NIO。

    JDK 14 新特性(2020 年 3 月)

    • instanceof 模式匹配,instanceof 类型匹配语法简化,可以直接给对象赋值,如 if(obj instanceof String str),如果 obj 是字符串类型则直接赋值给了 str 变量
    • 引入 Record 类型,类似于 Lombok 的 @Data 注解,可以向 Lombok 一样自动生成构造器、equals、getter 等方法
    • Switch 表达式-标准化
    • 改进 NullPointerExceptions 提示信息,打印具体哪个方法抛的空指针异常,避免同一行代码多个函数调用时无法判断具体是哪个函数抛异常的困扰,方便异常排查
    • 删除 CMS 垃圾回收器
    • JDK 15 新特性(2020 年 9 月)
    • EdDSA 数字签名算法
    • Sealed Classes(封闭类,预览),通过 sealed 关键字修饰抽象类限定只允许指定的子类才可以实现或继承抽象类,避免抽象类被滥用
    • Hidden Classes(隐藏类)
    • 移除 Nashorn JavaScript 引擎
    • 改进 java.net.DatagramSocket 和 java.net.MulticastSocket 底层实现

    JDK 16 新特性(2021 年 3 月)

    • 允许在 JDK C ++源代码中使用 C ++ 14 功能
    • ZGC 性能优化,去掉 ZGC 线程堆栈处理从安全点到并发阶段
    • 增加 Unix 域套接字通道
    • 弹性元空间能力
    • 提供用于打包独立 Java 应用程序的 jpackage 工具

    JDK 16 相当于是将 JDK 14、JDK 15 的一些特性进行了正式引入,如 instanceof 模式匹配(Pattern matching)、record 的引入等最终到 JDK 16 变成了 final 版本。

    JDK 17 新特性(2021 年 9 月)(LTS 版本)

    • Free Java License
    • JDK 17 将取代 JDK 11 成为下一个长期支持版本
    • Spring 6 和 Spring Boot 3 需要 JDK17
    • 移除实验性的 AOT 和 JIT 编译器
    • 恢复始终执行严格模式 (Always-Strict) 的浮点定义
    • 正式引入密封类 sealed class,限制抽象类的实现
    • 统一日志异步刷新,先将日志写入缓存,然后再异步刷新

    虽然 JDK 17 也是一个 LTS 版本,但是并没有像 JDK 8 和 JDK 11 一样引入比较突出的特性,主要是对前几个版本的整合和完善。

    JDK 21 新特性(2023 年 9 月)

    • 字符串模板,可以像其他语言那样子方便的做字符串拼接,是+号,StringBuilder,MessageFormat 之外更方便的字符串拼接方法。 -注意:这个特性虽然还在预览阶段,还不属于正式发布,但是若能最终进入发布,能够大大减轻了 Java 编程时复杂字符串的编辑处理工作量。
    • 引入新的接口来表示具有定义相遇顺序的集合。每个这样的集合都有定义明确的第一个元素、第二个元素,以此类推,直到最后一个元素。它还提供了统一的应用程序接口,用于访问其第一个和最后一个元素,以及以相反的顺序处理其元素。
    • 通过扩展 Z 垃圾收集器(ZGC),为新旧对象分别保留不同的世代,从而提高应用程序的性能。这将允许 ZGC 更频繁地收集年轻代的对象(对象往往频繁地英年早逝)。
    • 使用记录模式来解构记录值,从而增强 Java 编程语言的功能。记录模式和类型模式可以嵌套,以实现强大、声明性和可组合的数据导航和处理形式。
    • 用模式匹配来增强 Java 编程语言的开关表达式和语句。将模式匹配扩展到开关后,表达式就可以根据多个模式(每个模式都有特定的操作)进行测试,从而可以简洁安全地表达面向数据的复杂查询。
    • 引入一个应用程序接口(API),使 Java 程序能够与 Java 运行时之外的代码和数据互操作。通过高效地调用外来函数(即 JVM 之外的代码)和安全地访问外来内存(即 JVM 管理之外的内存),- API 使 Java 程序能够调用本地库和处理本地数据,而不会出现 JNI 的脆性和危险。这是一个预览版 API。
    • 使用未命名模式和未命名变量来增强 Java 语言的功能。未命名模式用于匹配记录组件,但不说明该组件的名称或类型;未命名变量用于初始化但不使用。两者都用下划线字符 _ 表示。这是一项预览语言功能。
    • 将虚拟线程引入 Java 平台。虚拟线程是一种轻量级线程,可大大减少编写、维护和观察高吞吐量并发应用程序的工作量。
    • 引入密钥封装机制(KEM)的 API 接口,这是一种使用公钥加密法确保对称密钥安全的加密技术。
    • 通过引入结构化并发 API 来简化并发编程。结构化并发将在不同线程中运行的一组相关任务视为一个工作单元,从而简化了错误处理和取消,提高了可靠性并增强了可观察性。这是一个预览版 API。
    - +注意:这个特性虽然还在预览阶段,还不属于正式发布,但是若能最终进入发布,能够大大减轻了 Java 编程时复杂字符串的编辑处理工作量。
  • 引入新的接口来表示具有定义相遇顺序的集合。每个这样的集合都有定义明确的第一个元素、第二个元素,以此类推,直到最后一个元素。它还提供了统一的应用程序接口,用于访问其第一个和最后一个元素,以及以相反的顺序处理其元素。
  • 通过扩展 Z 垃圾收集器(ZGC),为新旧对象分别保留不同的世代,从而提高应用程序的性能。这将允许 ZGC 更频繁地收集年轻代的对象(对象往往频繁地英年早逝)。
  • 使用记录模式来解构记录值,从而增强 Java 编程语言的功能。记录模式和类型模式可以嵌套,以实现强大、声明性和可组合的数据导航和处理形式。
  • 用模式匹配来增强 Java 编程语言的开关表达式和语句。将模式匹配扩展到开关后,表达式就可以根据多个模式(每个模式都有特定的操作)进行测试,从而可以简洁安全地表达面向数据的复杂查询。
  • 引入一个应用程序接口(API),使 Java 程序能够与 Java 运行时之外的代码和数据互操作。通过高效地调用外来函数(即 JVM 之外的代码)和安全地访问外来内存(即 JVM 管理之外的内存),- API 使 Java 程序能够调用本地库和处理本地数据,而不会出现 JNI 的脆性和危险。这是一个预览版 API。
  • 使用未命名模式和未命名变量来增强 Java 语言的功能。未命名模式用于匹配记录组件,但不说明该组件的名称或类型;未命名变量用于初始化但不使用。两者都用下划线字符 _ 表示。这是一项预览语言功能。
  • 将虚拟线程引入 Java 平台。虚拟线程是一种轻量级线程,可大大减少编写、维护和观察高吞吐量并发应用程序的工作量。
  • 引入密钥封装机制(KEM)的 API 接口,这是一种使用公钥加密法确保对称密钥安全的加密技术。
  • 通过引入结构化并发 API 来简化并发编程。结构化并发将在不同线程中运行的一组相关任务视为一个工作单元,从而简化了错误处理和取消,提高了可靠性并增强了可观察性。这是一个预览版 API。
  • + \ No newline at end of file diff --git "a/docs/study/program/JAVA/\344\273\243\347\240\201\347\224\237\346\210\220/index.html" "b/docs/study/program/JAVA/\344\273\243\347\240\201\347\224\237\346\210\220/index.html" index 53778ff91..390bdd070 100644 --- "a/docs/study/program/JAVA/\344\273\243\347\240\201\347\224\237\346\210\220/index.html" +++ "b/docs/study/program/JAVA/\344\273\243\347\240\201\347\224\237\346\210\220/index.html" @@ -11,13 +11,13 @@ - + - +
    + \ No newline at end of file diff --git "a/docs/study/program/JAVA/\351\224\201/index.html" "b/docs/study/program/JAVA/\351\224\201/index.html" index b9f00f9d4..e6349f34f 100644 --- "a/docs/study/program/JAVA/\351\224\201/index.html" +++ "b/docs/study/program/JAVA/\351\224\201/index.html" @@ -11,7 +11,7 @@ - + @@ -20,8 +20,8 @@ 作者:flydean 链接:https://www.zhihu.com/question/550510128/answer/3227011144 来源:知乎 -著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    重入锁(Reentrant Lock)

    首先,让我们深入研究一下重入锁,这是 Java 中最常见的锁之一。重入锁是一种可重入锁,这意味着同一线程可以多次获取同一个锁,而不会造成死锁。这种特性使得重入锁在许多复杂的多线程场景中非常有用。重入锁的实现通常需要显式地锁定和解锁,这使得它更加灵活,但也需要开发人员更小心地管理锁的状态。下面是一个简单的示例,演示如何使用重入锁来实现线程安全:

    import java.util.concurrent.locks.ReentrantLock;

    public class Counter {
    private int count = 0;
    private ReentrantLock lock = new ReentrantLock();

    public void increment() {
    lock.lock(); // 获取锁
    try {
    count++;
    } finally {
    lock.unlock(); // 释放锁
    }
    }

    public int getCount() {
    lock.lock(); // 获取锁
    try {
    return count;
    } finally {
    lock.unlock(); // 释放锁
    }
    }
    }

    在上面的示例中,我们使用 ReentrantLock 来保护 count 字段的访问,确保 increment 和 getCount 方法的线程安全性。请注意,我们在获取锁后使用 try-finally 块来确保在完成操作后释放锁,以防止死锁。

    CSDN-ReentrantLock 锁

    互斥锁和 synchronized 关键字

    除了重入锁,Java 中还提供了互斥锁的概念,最常见的方式是使用 synchronized 关键字。synchronized 关键字可以用于方法或代码块,以确保同一时刻只有一个线程可以访问被锁定的资源。

    例如,我们可以使用 synchronized 来实现与上面示例相同的 Counter 类:

    public class Counter {
    private int count = 0;

    public synchronized void increment() {
    count++;
    }

    public synchronized int getCount() {
    return count;
    }
    }

    在这个例子中,我们使用 synchronized 关键字来标记 increment 和 getCount 方法,使它们成为同步方法。这意味着同一时刻只有一个线程可以访问这两个方法,从而确保了线程安全性。

    互斥锁和重入锁之间的主要区别在于灵活性和控制。使用 synchronized 关键字更简单,但相对不够灵活,因为它隐式地管理锁。重入锁则需要更显式的锁定和解锁操作,但提供了更多的控制选项。

    读写锁(ReadWrite Lock)

    读写锁是一种特殊类型的锁,它在某些场景下可以提高多线程程序的性能。读写锁允许多个线程同时读取共享资源,但只允许一个线程写入共享资源。这种机制对于读操作远远多于写操作的情况非常有效,因为它可以提高读操作的并发性。让我们看一个示例,演示如何使用 ReadWriteLock 接口及其实现来管理资源的读写访问:

    import java.util.concurrent.locks.ReadWriteLock;
    import java.util.concurrent.locks.ReentrantReadWriteLock;

    public class SharedResource {
    private int data = 0;
    private final ReadWriteLock lock = new ReentrantReadWriteLock();

    public int readData() {
    lock.readLock().lock(); // 获取读锁
    try {
    return data;
    } finally {
    lock.readLock().unlock(); // 释放读锁
    }
    }

    public void writeData(int newValue) {
    lock.writeLock().lock(); // 获取写锁
    try {
    data = newValue;
    } finally {
    lock.writeLock().unlock(); // 释放写锁
    }
    }
    }

    在上面的示例中,我们使用 ReentrantReadWriteLock 实现了一个简单的共享资源管理类。readData 方法使用读锁来允许多个线程并发读取 data 的值,而 writeData 方法使用写锁来确保只有一个线程可以修改 data 的值。这种方式可以提高读操作的并发性,从而提高性能。

    自旋锁(Spin Lock)

    自旋锁是一种锁定机制,不会让线程进入休眠状态,而是会反复检查锁是否可用。这种锁适用于那些期望锁被持有时间非常短暂的情况,因为它避免了线程进入和退出休眠状态的开销。自旋锁通常在单核或低并发情况下更为有效,因为在高并发情况下会导致 CPU 资源的浪费。以下是一个简单的自旋锁示例:

    import java.util.concurrent.atomic.AtomicBoolean;

    public class SpinLock {
    private AtomicBoolean locked = new AtomicBoolean(false);

    public void lock() {
    while (!locked.compareAndSet(false, true)) {
    // 自旋等待锁的释放
    }
    }

    public void unlock() {
    locked.set(false);
    }
    }

    在这个示例中,我们使用了 AtomicBoolean 来实现自旋锁。lock 方法使用自旋等待锁的释放,直到成功获取锁。unlock 方法用于释放锁。自旋锁的性能和适用性取决于具体的应用场景,因此在选择锁的类型时需要谨慎考虑。

    锁的性能和可伸缩性

    选择适当类型的锁以满足性能需求是多线程编程的重要方面。不同类型的锁在性能和可伸缩性方面具有不同的特点。在某些情况下,使用过多的锁可能导致性能下降,而在其他情况下,选择错误的锁类型可能会导致竞争和瓶颈。

    性能测试和比较是评估锁性能的关键步骤。通过对不同锁类型的性能进行基准测试,开发人员可以更好地了解它们在特定情况下的表现。此外,性能测试还可以帮助确定是否需要调整锁的配置,如并发级别或等待策略。

    除了性能外,可伸缩性也是一个关键考虑因素。可伸缩性指的是在增加核心数或线程数时,系统的性能是否能够线性提高。某些锁类型在高度并发的情况下可能会产生争用,从而降低可伸缩性。

    因此,在选择锁时,需要根据应用程序的性能需求和并发负载来权衡性能和可伸缩性。一些常见的锁优化策略包括调整并发级别、选择合适的等待策略以及使用分离锁来减小竞争范围。

    参考

    - +著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    重入锁(Reentrant Lock)

    首先,让我们深入研究一下重入锁,这是 Java 中最常见的锁之一。重入锁是一种可重入锁,这意味着同一线程可以多次获取同一个锁,而不会造成死锁。这种特性使得重入锁在许多复杂的多线程场景中非常有用。重入锁的实现通常需要显式地锁定和解锁,这使得它更加灵活,但也需要开发人员更小心地管理锁的状态。下面是一个简单的示例,演示如何使用重入锁来实现线程安全:

    import java.util.concurrent.locks.ReentrantLock;

    public class Counter {
    private int count = 0;
    private ReentrantLock lock = new ReentrantLock();

    public void increment() {
    lock.lock(); // 获取锁
    try {
    count++;
    } finally {
    lock.unlock(); // 释放锁
    }
    }

    public int getCount() {
    lock.lock(); // 获取锁
    try {
    return count;
    } finally {
    lock.unlock(); // 释放锁
    }
    }
    }

    在上面的示例中,我们使用 ReentrantLock 来保护 count 字段的访问,确保 increment 和 getCount 方法的线程安全性。请注意,我们在获取锁后使用 try-finally 块来确保在完成操作后释放锁,以防止死锁。

    CSDN-ReentrantLock 锁

    互斥锁和 synchronized 关键字

    除了重入锁,Java 中还提供了互斥锁的概念,最常见的方式是使用 synchronized 关键字。synchronized 关键字可以用于方法或代码块,以确保同一时刻只有一个线程可以访问被锁定的资源。

    例如,我们可以使用 synchronized 来实现与上面示例相同的 Counter 类:

    public class Counter {
    private int count = 0;

    public synchronized void increment() {
    count++;
    }

    public synchronized int getCount() {
    return count;
    }
    }

    在这个例子中,我们使用 synchronized 关键字来标记 increment 和 getCount 方法,使它们成为同步方法。这意味着同一时刻只有一个线程可以访问这两个方法,从而确保了线程安全性。

    互斥锁和重入锁之间的主要区别在于灵活性和控制。使用 synchronized 关键字更简单,但相对不够灵活,因为它隐式地管理锁。重入锁则需要更显式的锁定和解锁操作,但提供了更多的控制选项。

    读写锁(ReadWrite Lock)

    读写锁是一种特殊类型的锁,它在某些场景下可以提高多线程程序的性能。读写锁允许多个线程同时读取共享资源,但只允许一个线程写入共享资源。这种机制对于读操作远远多于写操作的情况非常有效,因为它可以提高读操作的并发性。让我们看一个示例,演示如何使用 ReadWriteLock 接口及其实现来管理资源的读写访问:

    import java.util.concurrent.locks.ReadWriteLock;
    import java.util.concurrent.locks.ReentrantReadWriteLock;

    public class SharedResource {
    private int data = 0;
    private final ReadWriteLock lock = new ReentrantReadWriteLock();

    public int readData() {
    lock.readLock().lock(); // 获取读锁
    try {
    return data;
    } finally {
    lock.readLock().unlock(); // 释放读锁
    }
    }

    public void writeData(int newValue) {
    lock.writeLock().lock(); // 获取写锁
    try {
    data = newValue;
    } finally {
    lock.writeLock().unlock(); // 释放写锁
    }
    }
    }

    在上面的示例中,我们使用 ReentrantReadWriteLock 实现了一个简单的共享资源管理类。readData 方法使用读锁来允许多个线程并发读取 data 的值,而 writeData 方法使用写锁来确保只有一个线程可以修改 data 的值。这种方式可以提高读操作的并发性,从而提高性能。

    自旋锁(Spin Lock)

    自旋锁是一种锁定机制,不会让线程进入休眠状态,而是会反复检查锁是否可用。这种锁适用于那些期望锁被持有时间非常短暂的情况,因为它避免了线程进入和退出休眠状态的开销。自旋锁通常在单核或低并发情况下更为有效,因为在高并发情况下会导致 CPU 资源的浪费。以下是一个简单的自旋锁示例:

    import java.util.concurrent.atomic.AtomicBoolean;

    public class SpinLock {
    private AtomicBoolean locked = new AtomicBoolean(false);

    public void lock() {
    while (!locked.compareAndSet(false, true)) {
    // 自旋等待锁的释放
    }
    }

    public void unlock() {
    locked.set(false);
    }
    }

    在这个示例中,我们使用了 AtomicBoolean 来实现自旋锁。lock 方法使用自旋等待锁的释放,直到成功获取锁。unlock 方法用于释放锁。自旋锁的性能和适用性取决于具体的应用场景,因此在选择锁的类型时需要谨慎考虑。

    锁的性能和可伸缩性

    选择适当类型的锁以满足性能需求是多线程编程的重要方面。不同类型的锁在性能和可伸缩性方面具有不同的特点。在某些情况下,使用过多的锁可能导致性能下降,而在其他情况下,选择错误的锁类型可能会导致竞争和瓶颈。

    性能测试和比较是评估锁性能的关键步骤。通过对不同锁类型的性能进行基准测试,开发人员可以更好地了解它们在特定情况下的表现。此外,性能测试还可以帮助确定是否需要调整锁的配置,如并发级别或等待策略。

    除了性能外,可伸缩性也是一个关键考虑因素。可伸缩性指的是在增加核心数或线程数时,系统的性能是否能够线性提高。某些锁类型在高度并发的情况下可能会产生争用,从而降低可伸缩性。

    因此,在选择锁时,需要根据应用程序的性能需求和并发负载来权衡性能和可伸缩性。一些常见的锁优化策略包括调整并发级别、选择合适的等待策略以及使用分离锁来减小竞争范围。

    参考

    + \ No newline at end of file diff --git a/docs/study/program/JS/npm/index.html b/docs/study/program/JS/npm/index.html index 58f929f13..19b6975ed 100644 --- a/docs/study/program/JS/npm/index.html +++ b/docs/study/program/JS/npm/index.html @@ -11,14 +11,14 @@ - +

    npm

    npmjs

    安装cnpm (国内淘宝镜像源),主要用于某些包或命令程序下载不下来的情况

    # 直接按照cnpm
    npm install cnpm -g --registry=https://registry.npm.taobao.org

    # 另一种方式
    npm install -g mirror-config-china --registry=https://registry.npmmirror.com
    npm install node-sass

    node-sass

    注意不同的node版本,要求的node-sass版本不一样,存在一定的兼容问题: -image.png

    - +image.png

    + \ No newline at end of file diff --git a/docs/study/program/JS/npx/index.html b/docs/study/program/JS/npx/index.html index d8d8e8776..7a84c3aff 100644 --- a/docs/study/program/JS/npx/index.html +++ b/docs/study/program/JS/npx/index.html @@ -11,14 +11,14 @@ - +

    npx

    概念 -npx是一个工具,它是npm v5.2.0引入的一条命令(npx),是npm的一个包执行器,只要为了提高从npm注册表使用软件包的体验 。 npm使得它非常容易地安装和管理托管在注册表上的依赖项, npx使得使用CLI工具和其他托管在注册表。

    就像npm极大地提升了我们安装和管理包依赖的体验,在npm的基础之上,npx让npm包中的命令行工具和其他可执行文件在使用上变得更加简单。它极大地简化了我们之前使用纯粹的npm时所需要的大量步骤。

    主要特点:

    1. 临时安装可执行依赖包,不用全局安装,不用担心长期的污染。
    2. 可以执行依赖包中的命令,安装完成自动运行。
    3. 自动加载node_modules中依赖包,不用指定$PATH。
    4. 可以指定node版本、命令的版本,解决了不同项目使用不同版本的命令的问题。
    - +npx是一个工具,它是npm v5.2.0引入的一条命令(npx),是npm的一个包执行器,只要为了提高从npm注册表使用软件包的体验 。 npm使得它非常容易地安装和管理托管在注册表上的依赖项, npx使得使用CLI工具和其他托管在注册表。

    就像npm极大地提升了我们安装和管理包依赖的体验,在npm的基础之上,npx让npm包中的命令行工具和其他可执行文件在使用上变得更加简单。它极大地简化了我们之前使用纯粹的npm时所需要的大量步骤。

    主要特点:

    1. 临时安装可执行依赖包,不用全局安装,不用担心长期的污染。
    2. 可以执行依赖包中的命令,安装完成自动运行。
    3. 自动加载node_modules中依赖包,不用指定$PATH。
    4. 可以指定node版本、命令的版本,解决了不同项目使用不同版本的命令的问题。
    + \ No newline at end of file diff --git a/docs/study/program/JS/nrm/index.html b/docs/study/program/JS/nrm/index.html index 88e134804..819081b9e 100644 --- a/docs/study/program/JS/nrm/index.html +++ b/docs/study/program/JS/nrm/index.html @@ -11,13 +11,13 @@ - + - +
    + \ No newline at end of file diff --git a/docs/study/program/Kotlin/index.html b/docs/study/program/Kotlin/index.html index 4d93de1f2..19a2148b9 100644 --- a/docs/study/program/Kotlin/index.html +++ b/docs/study/program/Kotlin/index.html @@ -11,13 +11,13 @@ - +
    -

    Kotlin

    Kotlin(科特林)是一个用于现代多平台应用的静态编程语言,由 JetBrains 开发。

    Kotlin 可以编译成 Java 字节码,也可以编译成 JavaScript,方便在没有 JVM 的设备上运行。除此之外 Kotlin 还可以编译成二进制代码直接运行在机器上(例如嵌入式设备或 iOS)。

    Kotlin 已正式成为 Android 官方支持开发语言。

    官方网站

    - +

    Kotlin

    Kotlin(科特林)是一个用于现代多平台应用的静态编程语言,由 JetBrains 开发。

    Kotlin 可以编译成 Java 字节码,也可以编译成 JavaScript,方便在没有 JVM 的设备上运行。除此之外 Kotlin 还可以编译成二进制代码直接运行在机器上(例如嵌入式设备或 iOS)。

    Kotlin 已正式成为 Android 官方支持开发语言。

    官方网站

    + \ No newline at end of file diff --git a/docs/study/program/Lua/index.html b/docs/study/program/Lua/index.html index 8be201c4e..8da1f38f8 100644 --- a/docs/study/program/Lua/index.html +++ b/docs/study/program/Lua/index.html @@ -11,13 +11,13 @@ - + - +
    + \ No newline at end of file diff --git a/docs/study/program/Rust/index.html b/docs/study/program/Rust/index.html index e4ee825d4..1ef7eb17b 100644 --- a/docs/study/program/Rust/index.html +++ b/docs/study/program/Rust/index.html @@ -11,13 +11,13 @@ - +
    -

    Rust

    一门赋予每个人构建可靠且高效软件能力的语言。

    创建这个新语言的目的是为了解决一个顽疾:软件的演进速度大大低于硬件的演进,软件在语言级别上无法真正利用多核计算带来的性能提升。Rust 是针对多核体系提出的语言,并且吸收一些其他动态语言的重要特性,比如不需要管理内存,比如不会出现 Null 指针等等。

    Rust 致力于成为优雅解决高并发和高安全性系统问题的编程语言 ,适用于大型场景,即创造维护能够保持大型系统完整的边界。这就导致了它强调安全,内存布局控制和并发的特点。标准 Rust 性能与标准 C++性能不相上下。

    据说,此编程语言,入门较难,晦涩难懂。

    为什么选择 Rust

    高性能

    Rust 速度惊人且内存利用率极高。由于没有运行时和垃圾回收,它能够胜任对性能要求特别高的服务,可以在嵌入式设备上运行,还能轻松和其他语言集成。

    可靠性

    Rust 丰富的类型系统和所有权模型保证了内存安全和线程安全,让您在编译期就能够消除各种各样的错误。

    生产力

    Rust 拥有出色的文档、友好的编译器和清晰的错误提示信息, 还集成了一流的工具——包管理器和构建工具, 智能地自动补全和类型检验的多编辑器支持, 以及自动格式化代码等等。

    内存管理

    Rust 不像 Go,Java 以及.NET Framework 那样使用自动垃圾回收系统。不同的是 Rust 通过 RAII 来管理内存和资源,还可选引用计数。Rust 以低开销提供资源确定性管理。Rust 也支持值的栈分配并不表现暗箱。

    标准库

    https://doc.rust-lang.org/std/index.html

    参考

    - +

    Rust

    一门赋予每个人构建可靠且高效软件能力的语言。

    创建这个新语言的目的是为了解决一个顽疾:软件的演进速度大大低于硬件的演进,软件在语言级别上无法真正利用多核计算带来的性能提升。Rust 是针对多核体系提出的语言,并且吸收一些其他动态语言的重要特性,比如不需要管理内存,比如不会出现 Null 指针等等。

    Rust 致力于成为优雅解决高并发和高安全性系统问题的编程语言 ,适用于大型场景,即创造维护能够保持大型系统完整的边界。这就导致了它强调安全,内存布局控制和并发的特点。标准 Rust 性能与标准 C++性能不相上下。

    据说,此编程语言,入门较难,晦涩难懂。

    为什么选择 Rust

    高性能

    Rust 速度惊人且内存利用率极高。由于没有运行时和垃圾回收,它能够胜任对性能要求特别高的服务,可以在嵌入式设备上运行,还能轻松和其他语言集成。

    可靠性

    Rust 丰富的类型系统和所有权模型保证了内存安全和线程安全,让您在编译期就能够消除各种各样的错误。

    生产力

    Rust 拥有出色的文档、友好的编译器和清晰的错误提示信息, 还集成了一流的工具——包管理器和构建工具, 智能地自动补全和类型检验的多编辑器支持, 以及自动格式化代码等等。

    内存管理

    Rust 不像 Go,Java 以及.NET Framework 那样使用自动垃圾回收系统。不同的是 Rust 通过 RAII 来管理内存和资源,还可选引用计数。Rust 以低开销提供资源确定性管理。Rust 也支持值的栈分配并不表现暗箱。

    标准库

    https://doc.rust-lang.org/std/index.html

    参考

    + \ No newline at end of file diff --git a/docs/study/program/index.html b/docs/study/program/index.html index ddf48b1f3..949d1fd91 100644 --- a/docs/study/program/index.html +++ b/docs/study/program/index.html @@ -11,13 +11,13 @@ - + - +
    + \ No newline at end of file diff --git "a/docs/study/program/\346\212\200\346\234\257\346\226\207\346\241\243/index.html" "b/docs/study/program/\346\212\200\346\234\257\346\226\207\346\241\243/index.html" index 73ec15c86..2cef5a900 100644 --- "a/docs/study/program/\346\212\200\346\234\257\346\226\207\346\241\243/index.html" +++ "b/docs/study/program/\346\212\200\346\234\257\346\226\207\346\241\243/index.html" @@ -11,13 +11,13 @@ - + - +
    + \ No newline at end of file diff --git "a/docs/study/program/\347\274\226\350\257\221\345\231\250/index.html" "b/docs/study/program/\347\274\226\350\257\221\345\231\250/index.html" index 8477ab936..d5f64f5f0 100644 --- "a/docs/study/program/\347\274\226\350\257\221\345\231\250/index.html" +++ "b/docs/study/program/\347\274\226\350\257\221\345\231\250/index.html" @@ -11,13 +11,13 @@ - +
    -

    编译器

    C/C++/Objective-C 等类 C 编译器

    主要分三种:

    • GCC/GNU/Linux
    • LLVM/CLang
    • Microsoft Visual C++,简称 Visual C++/VC++/MSVC/VS/VC,开发环境 Visual Studio

    GCC 是老牌的 C/C++编译器,主要由 GNU 维护,Linux 系统默认的编译器。

    LLVM 是比较新的编译器架构系统,CLang 是基于 LLVM 的 C/C++/CLang 编译器,产生 CLang 的原因是 Apple 公司想开发新的语言 CLang,以及对 GCC 有其他特殊需求,但是 GCC 配合的并不是很好,所以才造了个新轮子。

    Microsoft Visual C++是 Windows 系统的编译器。

    编译过程

    • 源文件(.c .cpp .h)
    • 预处理(.i .ii)
    • 编译(单个文件)(.s)
    • 汇编(.o .obj)
    • 链接(.exe ELF)
    - +

    编译器

    C/C++/Objective-C 等类 C 编译器

    主要分三种:

    • GCC/GNU/Linux
    • LLVM/CLang
    • Microsoft Visual C++,简称 Visual C++/VC++/MSVC/VS/VC,开发环境 Visual Studio

    GCC 是老牌的 C/C++编译器,主要由 GNU 维护,Linux 系统默认的编译器。

    LLVM 是比较新的编译器架构系统,CLang 是基于 LLVM 的 C/C++/CLang 编译器,产生 CLang 的原因是 Apple 公司想开发新的语言 CLang,以及对 GCC 有其他特殊需求,但是 GCC 配合的并不是很好,所以才造了个新轮子。

    Microsoft Visual C++是 Windows 系统的编译器。

    编译过程

    • 源文件(.c .cpp .h)
    • 预处理(.i .ii)
    • 编译(单个文件)(.s)
    • 汇编(.o .obj)
    • 链接(.exe ELF)
    + \ No newline at end of file diff --git "a/docs/study/program/\350\267\250\345\271\263\345\217\260\345\272\224\347\224\250\347\250\213\345\272\217\345\274\200\345\217\221\346\241\206\346\236\266/index.html" "b/docs/study/program/\350\267\250\345\271\263\345\217\260\345\272\224\347\224\250\347\250\213\345\272\217\345\274\200\345\217\221\346\241\206\346\236\266/index.html" index 319fa737f..912c3d69a 100644 --- "a/docs/study/program/\350\267\250\345\271\263\345\217\260\345\272\224\347\224\250\347\250\213\345\272\217\345\274\200\345\217\221\346\241\206\346\236\266/index.html" +++ "b/docs/study/program/\350\267\250\345\271\263\345\217\260\345\272\224\347\224\250\347\250\213\345\272\217\345\274\200\345\217\221\346\241\206\346\236\266/index.html" @@ -11,13 +11,13 @@ - +
    -

    跨平台应用程序开发框架

    Electron

    Build cross-platform desktop apps with JavaScript, HTML, and CSS

    TAURI

    构建跨平台的快速、安全、前端隔离应用

    • 官方网站-TAURI
    • 打包大小:使用系统自带的网页渲染器,Tauri 应用的大小可打包到 600 KB 以下!
    • 跨平台:构建支持所有主流桌面平台(移动端即将推出)的二进制打包文件。
    • 基于 Rust 开发:性能及安全至上的 Rust 是次时代应用开发首选。
    • 目前还在快速发展中-(2023 年)

    Flutter

    为所有屏幕创造精彩

    Flutter 为软件开发行业带来了革新:只要一套代码库,即可构建、测试和发布适用于移动、Web、桌面和嵌入式平台的精美应用。

    Flutter 是 Google 开源的应用开发框架,仅通过一套代码库,就能构建精美的、原生平台编译的多平台应用。

    NW.js

    NW.js (previously known as node-webkit) lets you call all Node.js modules directly from DOM and enables a new way of writing applications with all Web technologies.

    Neutralinojs

    Build lightweight cross-platform desktop apps with JavaScript, HTML, and CSS

    WAILS

    使用 Go 构建漂亮的跨平台应用程序

    在一个框架中生成本机、跨平台桌面和移动应用。

    .NET MAUI

    参考

    - +

    跨平台应用程序开发框架

    Electron

    Build cross-platform desktop apps with JavaScript, HTML, and CSS

    TAURI

    构建跨平台的快速、安全、前端隔离应用

    • 官方网站-TAURI
    • 打包大小:使用系统自带的网页渲染器,Tauri 应用的大小可打包到 600 KB 以下!
    • 跨平台:构建支持所有主流桌面平台(移动端即将推出)的二进制打包文件。
    • 基于 Rust 开发:性能及安全至上的 Rust 是次时代应用开发首选。
    • 目前还在快速发展中-(2023 年)

    Flutter

    为所有屏幕创造精彩

    Flutter 为软件开发行业带来了革新:只要一套代码库,即可构建、测试和发布适用于移动、Web、桌面和嵌入式平台的精美应用。

    Flutter 是 Google 开源的应用开发框架,仅通过一套代码库,就能构建精美的、原生平台编译的多平台应用。

    NW.js

    NW.js (previously known as node-webkit) lets you call all Node.js modules directly from DOM and enables a new way of writing applications with all Web technologies.

    Neutralinojs

    Build lightweight cross-platform desktop apps with JavaScript, HTML, and CSS

    WAILS

    使用 Go 构建漂亮的跨平台应用程序

    在一个框架中生成本机、跨平台桌面和移动应用。

    .NET MAUI

    参考

    + \ No newline at end of file diff --git "a/docs/study/system/CPU\347\272\277\347\250\213\345\271\266\345\217\221/index.html" "b/docs/study/system/CPU\347\272\277\347\250\213\345\271\266\345\217\221/index.html" index ad3f57654..85652feb6 100644 --- "a/docs/study/system/CPU\347\272\277\347\250\213\345\271\266\345\217\221/index.html" +++ "b/docs/study/system/CPU\347\272\277\347\250\213\345\271\266\345\217\221/index.html" @@ -11,13 +11,13 @@ - + - +
    + \ No newline at end of file diff --git a/docs/study/system/IO/index.html b/docs/study/system/IO/index.html index 52d550217..5b9cf2170 100644 --- a/docs/study/system/IO/index.html +++ b/docs/study/system/IO/index.html @@ -11,13 +11,13 @@ - +
    -

    操作系统 IO 知识

    I/O(Input/Output)模型是计算机科学中的一个关键概念,它涉及到如何进行输入和输出操作,而这在计算机应用中是不可或缺的一部分。在不同的应用场景下,选择正确的 I/O 模型是至关重要的,因为它会影响到应用程序的性能和响应性。

    阻塞 IO

    阻塞 I/O 模型与同步 I/O 模型相似,它也需要应用程序等待 I/O 操作完成。阻塞 I/O 适用于简单的应用,但可能导致性能问题,因为应用程序会在等待操作完成时被阻塞。

    非阻塞 IO

    非阻塞 I/O 模型允许应用程序发起 I/O 操作后继续执行其他任务,而不必等待操作完成。这种模型适用于需要同时处理多个通道的应用。

    另一个重要的概念是"I/O 多路复用"(I/O Multiplexing)。I/O 多路复用是一种高效处理多个 I/O 操作的模型,它允许应用程序同时监视多个文件描述符(sockets、文件、管道等)以检测它们是否准备好进行 I/O 操作。这可以有效地减少线程数量,从而提高性能和资源利用率。在 Java 中,I/O 多路复用通常通过 java.nio.channels.Selector 类来实现。

    I/O 多路复用非常适合需要同时处理多个通道的应用,如高性能网络服务器。它可以减少线程数量,提高应用程序的性能和可伸缩性。在选择 I/O 模型时,应该考虑应用程序的具体需求和性能要求,I/O 多路复用是一个重要的选择之一。还有两个重要的概念是"信号驱动 I/O"(Signal Driven I/O)和"异步 I/O"。这两种 I/O 模型在某些情况下可以提供更高的性能和效率。

    信号驱动 I/O

    信号驱动 I/O 是一种非阻塞 I/O 的变体,它使用信号通知应用程序文件描述符已准备好进行 I/O 操作。这种模型在类 Unix 系统中非常常见,通常与异步 I/O 结合使用。在 Java 中,我们可以使用 java.nio.channels.AsynchronousChannel 来实现信号驱动 I/O。

    回调;

    异步 I/O

    异步 I/O 模型也称为"真正的异步 I/O",它允许应用程序发起 I/O 操作后继续执行其他任务,而不需要等待操作完成。异步 I/O 与信号驱动 I/O 不同,因为它不会使用回调函数,而是使用事件驱动的方式来通知 I/O 操作的完成。

    IO 多路复用函数

    select

    可在不同平台(包括 Unix、Linux 和 Windows)上使用。由于其可移植性,select 是一种通用的 I/O 多路复用方法。

    poll

    poll 也是相对可移植的,但并非在所有操作系统上都得到广泛支持。它在大多数 Unix 系统上可用,但在 Windows 上的支持较弱。

    总的来说,poll 在性能和可读性方面相对优于 select,特别是在处理大量文件描述符时。但选择使用哪种方法还取决于应用程序的需求和目标平台的支持。在大多数情况下,epoll 和 kqueue 也是更高性能的替代方案,特别适用于大规模并发的应用。

    是一种最早出现在 Unix 系统中的多路复用机制。poll 等待多个文件描述符中的一个或多个变为可读,可写或异常。但 poll 在大量文件描述符的情况下性能可能不如 epoll 或 kqueue 好。

    epoll

    是一种事件通知机制,最早出现在 Linux 中。它允许进程监视大量文件描述符上的事件。epoll 通常用于高并发的网络应用程序,因为它在文件描述符数量非常多的情况下性能表现良好。

    kqueue

    是 BSD 和 macOS 等 Unix-like 操作系统中的一种事件通知机制。它可以监视文件描述符、进程、信号、以及其他各种事件。kqueue 通常被用于开发高性能的服务器应用和网络应用。

    为什么 epoll,kqueue 比 select 高级?

    epoll 和 kqueue 比 select 高级的原因在于它们在处理高并发 I/O 时具有更好的性能和扩展性。以下是一些主要原因:

    • 高效的事件通知机制:epoll 和 kqueue 使用事件通知机制,而不是 select 的轮询方式。这意味着当有 I/O 事件准备好时,内核会主动通知应用程序,而不需要应用程序不断查询哪些文件描述符准备好。这减少了不必要的上下文切换,提高了性能。
    • 支持大数量的文件描述符:select 在处理大量文件描述符时性能下降明显,因为它使用位图的方式来表示文件描述符,当文件描述符数量很大时,需要维护大量的位图,而且会有很多无效的查询。epoll 和 kqueue 使用基于事件的机制,不会受到文件描述符数量的限制,因此适用于高并发场景。
    • 更少的系统调用:select 需要频繁调用系统调用来查询文件描述符的状态,这增加了系统调用的开销。epoll 和 kqueue 的事件通知机制减少了不必要的系统调用,从而提高了性能。
    • 支持边沿触发(Edge-Triggered):epoll 和 kqueue 支持边沿触发模式,这意味着只有在文件描述符状态发生变化时才会触发事件通知,而不是在数据可读或可写时都会触发。这使得应用程序可以更精确地控制事件处理,减少了不必要的处理开销。
    • 更灵活的事件管理:epoll 和 kqueue 允许应用程序为每个文件描述符设置不同的事件类型,而 select 中所有文件描述符只能监视相同类型的事件。这使得 epoll 和 kqueue 更灵活,适用于更多的应用场景。

    总的来说,epoll 和 kqueue 在高并发 I/O 场景中表现更出色,提供更高的性能和更好的可扩展性,因此被认为比 select 高级。但需要注意的是,epoll 适用于 Linux 系统,而 kqueue 适用于 BSD 系统(如 macOS 和 FreeBSD),因此选择哪种取决于应用程序的部署环境。

    - +

    操作系统 IO 知识

    I/O(Input/Output)模型是计算机科学中的一个关键概念,它涉及到如何进行输入和输出操作,而这在计算机应用中是不可或缺的一部分。在不同的应用场景下,选择正确的 I/O 模型是至关重要的,因为它会影响到应用程序的性能和响应性。

    阻塞 IO

    阻塞 I/O 模型与同步 I/O 模型相似,它也需要应用程序等待 I/O 操作完成。阻塞 I/O 适用于简单的应用,但可能导致性能问题,因为应用程序会在等待操作完成时被阻塞。

    非阻塞 IO

    非阻塞 I/O 模型允许应用程序发起 I/O 操作后继续执行其他任务,而不必等待操作完成。这种模型适用于需要同时处理多个通道的应用。

    另一个重要的概念是"I/O 多路复用"(I/O Multiplexing)。I/O 多路复用是一种高效处理多个 I/O 操作的模型,它允许应用程序同时监视多个文件描述符(sockets、文件、管道等)以检测它们是否准备好进行 I/O 操作。这可以有效地减少线程数量,从而提高性能和资源利用率。在 Java 中,I/O 多路复用通常通过 java.nio.channels.Selector 类来实现。

    I/O 多路复用非常适合需要同时处理多个通道的应用,如高性能网络服务器。它可以减少线程数量,提高应用程序的性能和可伸缩性。在选择 I/O 模型时,应该考虑应用程序的具体需求和性能要求,I/O 多路复用是一个重要的选择之一。还有两个重要的概念是"信号驱动 I/O"(Signal Driven I/O)和"异步 I/O"。这两种 I/O 模型在某些情况下可以提供更高的性能和效率。

    信号驱动 I/O

    信号驱动 I/O 是一种非阻塞 I/O 的变体,它使用信号通知应用程序文件描述符已准备好进行 I/O 操作。这种模型在类 Unix 系统中非常常见,通常与异步 I/O 结合使用。在 Java 中,我们可以使用 java.nio.channels.AsynchronousChannel 来实现信号驱动 I/O。

    回调;

    异步 I/O

    异步 I/O 模型也称为"真正的异步 I/O",它允许应用程序发起 I/O 操作后继续执行其他任务,而不需要等待操作完成。异步 I/O 与信号驱动 I/O 不同,因为它不会使用回调函数,而是使用事件驱动的方式来通知 I/O 操作的完成。

    IO 多路复用函数

    select

    可在不同平台(包括 Unix、Linux 和 Windows)上使用。由于其可移植性,select 是一种通用的 I/O 多路复用方法。

    poll

    poll 也是相对可移植的,但并非在所有操作系统上都得到广泛支持。它在大多数 Unix 系统上可用,但在 Windows 上的支持较弱。

    总的来说,poll 在性能和可读性方面相对优于 select,特别是在处理大量文件描述符时。但选择使用哪种方法还取决于应用程序的需求和目标平台的支持。在大多数情况下,epoll 和 kqueue 也是更高性能的替代方案,特别适用于大规模并发的应用。

    是一种最早出现在 Unix 系统中的多路复用机制。poll 等待多个文件描述符中的一个或多个变为可读,可写或异常。但 poll 在大量文件描述符的情况下性能可能不如 epoll 或 kqueue 好。

    epoll

    是一种事件通知机制,最早出现在 Linux 中。它允许进程监视大量文件描述符上的事件。epoll 通常用于高并发的网络应用程序,因为它在文件描述符数量非常多的情况下性能表现良好。

    kqueue

    是 BSD 和 macOS 等 Unix-like 操作系统中的一种事件通知机制。它可以监视文件描述符、进程、信号、以及其他各种事件。kqueue 通常被用于开发高性能的服务器应用和网络应用。

    为什么 epoll,kqueue 比 select 高级?

    epoll 和 kqueue 比 select 高级的原因在于它们在处理高并发 I/O 时具有更好的性能和扩展性。以下是一些主要原因:

    • 高效的事件通知机制:epoll 和 kqueue 使用事件通知机制,而不是 select 的轮询方式。这意味着当有 I/O 事件准备好时,内核会主动通知应用程序,而不需要应用程序不断查询哪些文件描述符准备好。这减少了不必要的上下文切换,提高了性能。
    • 支持大数量的文件描述符:select 在处理大量文件描述符时性能下降明显,因为它使用位图的方式来表示文件描述符,当文件描述符数量很大时,需要维护大量的位图,而且会有很多无效的查询。epoll 和 kqueue 使用基于事件的机制,不会受到文件描述符数量的限制,因此适用于高并发场景。
    • 更少的系统调用:select 需要频繁调用系统调用来查询文件描述符的状态,这增加了系统调用的开销。epoll 和 kqueue 的事件通知机制减少了不必要的系统调用,从而提高了性能。
    • 支持边沿触发(Edge-Triggered):epoll 和 kqueue 支持边沿触发模式,这意味着只有在文件描述符状态发生变化时才会触发事件通知,而不是在数据可读或可写时都会触发。这使得应用程序可以更精确地控制事件处理,减少了不必要的处理开销。
    • 更灵活的事件管理:epoll 和 kqueue 允许应用程序为每个文件描述符设置不同的事件类型,而 select 中所有文件描述符只能监视相同类型的事件。这使得 epoll 和 kqueue 更灵活,适用于更多的应用场景。

    总的来说,epoll 和 kqueue 在高并发 I/O 场景中表现更出色,提供更高的性能和更好的可扩展性,因此被认为比 select 高级。但需要注意的是,epoll 适用于 Linux 系统,而 kqueue 适用于 BSD 系统(如 macOS 和 FreeBSD),因此选择哪种取决于应用程序的部署环境。

    + \ No newline at end of file diff --git "a/docs/study/system/Open\346\254\247\346\213\211/index.html" "b/docs/study/system/Open\346\254\247\346\213\211/index.html" index 5e5b01189..8e1c9e042 100644 --- "a/docs/study/system/Open\346\254\247\346\213\211/index.html" +++ "b/docs/study/system/Open\346\254\247\346\213\211/index.html" @@ -11,13 +11,13 @@ - + - +
    + \ No newline at end of file diff --git a/docs/study/system/index.html b/docs/study/system/index.html index 17adba55b..d9c5e55b5 100644 --- a/docs/study/system/index.html +++ b/docs/study/system/index.html @@ -11,13 +11,13 @@ - + - +
    + \ No newline at end of file diff --git a/docs/study/system/openWRT/index.html b/docs/study/system/openWRT/index.html index 8176eeb8a..6c0381a1d 100644 --- a/docs/study/system/openWRT/index.html +++ b/docs/study/system/openWRT/index.html @@ -11,13 +11,13 @@ - + - +
    + \ No newline at end of file diff --git "a/docs/study/system/shell\347\274\226\347\250\213\346\231\272expect/index.html" "b/docs/study/system/shell\347\274\226\347\250\213\346\231\272expect/index.html" index 80541f57d..9890646e2 100644 --- "a/docs/study/system/shell\347\274\226\347\250\213\346\231\272expect/index.html" +++ "b/docs/study/system/shell\347\274\226\347\250\213\346\231\272expect/index.html" @@ -11,13 +11,13 @@ - +
    -

    shell编程智expect

    expect

    expect 是一个免费的编程工具,用来实现自动的交互式任务,而无需人为干预。

    这个工具在处理调用其他工具,输入密码之类的交互,非常有用。

    - +

    shell编程智expect

    expect

    expect 是一个免费的编程工具,用来实现自动的交互式任务,而无需人为干预。

    这个工具在处理调用其他工具,输入密码之类的交互,非常有用。

    + \ No newline at end of file diff --git a/docs/study/system/yum-dnf/index.html b/docs/study/system/yum-dnf/index.html index f2ee621d6..83308fbf7 100644 --- a/docs/study/system/yum-dnf/index.html +++ b/docs/study/system/yum-dnf/index.html @@ -11,13 +11,13 @@ - + - +
    + \ No newline at end of file diff --git "a/docs/study/system/\345\206\205\345\255\230\347\256\241\347\220\206/index.html" "b/docs/study/system/\345\206\205\345\255\230\347\256\241\347\220\206/index.html" index 5c2a6767b..e7184f99f 100644 --- "a/docs/study/system/\345\206\205\345\255\230\347\256\241\347\220\206/index.html" +++ "b/docs/study/system/\345\206\205\345\255\230\347\256\241\347\220\206/index.html" @@ -11,13 +11,13 @@ - + - +
    + \ No newline at end of file diff --git "a/docs/study/system/\345\217\257\346\211\247\350\241\214\347\250\213\345\272\217\350\277\220\350\241\214\345\216\237\347\220\206\345\210\206\346\236\220/index.html" "b/docs/study/system/\345\217\257\346\211\247\350\241\214\347\250\213\345\272\217\350\277\220\350\241\214\345\216\237\347\220\206\345\210\206\346\236\220/index.html" index df8f859d4..1c5abfe4e 100644 --- "a/docs/study/system/\345\217\257\346\211\247\350\241\214\347\250\213\345\272\217\350\277\220\350\241\214\345\216\237\347\220\206\345\210\206\346\236\220/index.html" +++ "b/docs/study/system/\345\217\257\346\211\247\350\241\214\347\250\213\345\272\217\350\277\220\350\241\214\345\216\237\347\220\206\345\210\206\346\236\220/index.html" @@ -11,13 +11,13 @@ - +
    -

    可执行程序在操作系统下的运行原理分析

    架构,从下往上分析

    • 裸机(纯硬件)
    • 操作系统(Windows/Linux)
    • 可执行程序

    裸机

    其实主要就是 CPU 架构的不同,CPU 架构是 CPU 商给 CPU 产品定的一个规范,主要目的是为了区分不同类型的 CPU。目前市场上的 CPU 分类主要分有两大阵营,一个是 Intel、AMD 为首的复杂指令集 CPU,另一个是以 IBM、ARM 为首的精简指令集 CPU。不同品牌的 CPU,其产品的架构也不相同,Intel、AMD 的 CPU 是 X86 架构,IBM 公司的 CPU 是 PowerPC 架构,ARM 公司的 CPU 是 ARM 架构,国内的飞腾 CPU 也是 ARM 架构。此外还有 MPIS 架构、SPARC 架构、Alpha 架构。

    x86 指令集发展

    • IA:Intel(英特尔)处理器的服务器称之为 IA(Intel Architecture)架构服务器
    • IA-32:英特尔 32 位体系架构,X86 从 16 位到 32 位是在原有的架构基础上进行修改(Intel 称之为 IA-32)
    • x86-32:现如今 Intel 把 x86-32 称为 IA-32
    • x86-64 分为 intel 和 AMD
    • AMD64:x86 架构的 64 位拓展,向后兼容于 16 位及 32 位的 x86 架构。x64 于 1999 年由 AMD 设计,AMD 首次公开 64 位集以扩展给 x86,称为“AMD64”,AMD64 和 Intel64 基本上一致
    • Intel64:EM64T(Extended Memory 64 Technology)扩展 64bit 内存技术,本质上和 AMD64 一样都是 IA-32 的增强版本。
    • IA-64:64 位的英特尔架构,英特尔安腾架构(Intel Itanium architecture),使用在 Itanium 处理器家族上的 64 位指令集架构,由英特尔公司与惠普公司共同开发。IA 是 Intel Architecture(英特尔架构)的缩写,64 指 64 位系统。使用这种架构的 CPU,包括 Itanium 和 Itanium 2。此架构与 x86 及 x86-64 并不相容,操作系统与软件需使用 IA-64 专用版本。

    ARM 架构

    ARM 架构,也称作进阶精简指令集机器(Advanced RISC Machine,更早称作:Acorn RISC Machine),是一个 32 位精简指令集(RISC)处理器架构,其广泛地使用在许多嵌入式系统设计。由于节能的特点,ARM 处理器非常适用于行动通讯领域,符合其主要设计目标为低耗电的特性。

    ARM 授权方式:ARM 公司本身并不靠自有的设计来制造或出售 CPU ,而是将处理器架构授权给有兴趣的厂家。

    国外生产厂商:TI (德州仪器)、Samsung(三星)、Freescale(飞思卡尔)、Marvell(马维尔)、Nvidia(英伟达)、Qualcomm(高通)、STMicroelectronics(意法半导体)。

    国内生产厂商:华为(海思芯片)、飞腾(FT-1500、FT2000-4 等 CPU 芯片)、兆易创新(GD32 系列 MCU,参考 STM32 系列)、瑞芯微(RK 系列芯片)、联发科(台湾,天玑系列)。

    MPIS 架构

    MIPS 是世界上很流行的一种 RISC 处理器。MIPS 技术公司是美国著名的芯片设计公司,它采用精简指令系统计算结构(RISC)来设计芯片。

    MPIS 架构授权和 ARM 架构授权不一样,ARM 架构授权用户基本不能自行修改,而 MPIS 架构授权后,可以自己修改。目前 MPIS 发扬光大寄希望中科龙芯公司,龙芯处理器从龙芯 1 号,到现在的龙芯 3 号系列的 3A4000,CPU 的性能已经大幅度提高,在完全可以胜任日常办公或者作为特殊用途的服务器。龙芯 CPU 和国产的飞腾(FT)处理器并驾齐驱,发展我国自主可控 CPU。

    PowerPC 系列

    PowerPC 是一种精简指令集(RISC)架构的中央处理器(CPU),其基本的设计源自 IBM(国际商用机器公司)的 IBMPowerPC 601 微处理器 POWER(PerformanceOptimized With Enhanced RISC;《IBM Connect 电子报》2007 年 8 月号译为“增强 RISC 性能优化”)架构。二十世纪九十年代,IBM(国际商用机器公司)、Apple(苹果公司)和 Motorola(摩托罗拉)公司开发 PowerPC 芯片成功,并制造出基于 PowerPC 的多处理器计算机。PowerPC 架构的特点是可伸缩性好、方便灵活。

    PowerPC 处理器有广泛的实现范围,包括从诸如 Power4 那样的高端服务器 CPU 到嵌入式 CPU 市场(任天堂 Gamecube 使用了 PowerPC)。PowerPC 处理器有非常强的嵌入式表现,因为它具有优异的性能、较低的能量损耗以及较低的散热量。除了象串行和以太网控制器那样的集成 I/O,该嵌入式处理器与“台式机”CPU 存在非常显著的区别。

    SPARC 架构

    SPARC 架构(Scalable Processor ARChitecture,可扩展处理器架构)是国际上流行的 RISC 处理器体系架构之一,SPRAC 如今已发展成为一个开放的标准,任何机构或个人均可研究或开发基于 SPRAC 架构的产品,而无需交纳版权费。SPARC 处理器架构具备精简指令集(RISC)、支持 32 位/64 位指令精度,架构运行稳定、可扩展性优良、体系标准开放等特点。SPARC 因此得以迅速发展壮大,在现在已经有大约 3 万多个成功的应用案例。

    SPARCV7/V8 是目前嵌入式控制系统常用的处理器标准版本,并在航天设备的电子系统中得到广泛应用。然而,SPARC 只是一个处理器的架构标准,并不提供现成的源码或 IP 核,具体的芯片实现要由开发者去完成。

    Alpha 架构

    目前国内采用此架构的是申微超算处理器,得益于国家的支持,申威处理器在军队应用广泛。

    CPU 架构之间的竞争

    PC 和服务器竞争

    PC 端和服务器端是 X86 架构的天下,而 X86 架构基本是以 Intel 为首,AMD 为辅二分天下之势。国产 CPU 基本只能用在军工行业或者事业单位等。其实说性能,powerpc,可谓是高出不胜寒。硬件方面,Power 系统在可靠性、可用性和可维护性的方面的出色表现使得 IBM 从芯片到系统所设计的整机方案有着独有的优势。Power 架构的处理器在超算、大型企业的 UNIX 服务器等多个方面应用也十分成功。在软件方面,其专用的 AIX 系统在稳定性、软件方案集成度和厂商技术支持能力方面都要更强。由于用户选一平台主要看软件需求,一般对数据保护和 7*24 小时不宕机等有所要求,power 架构的稳定性和运维等方面相对更优。但是,由于 IBM 的技术把控,使得其价格太不友好,同时技术也赶不上环境的变化,在云计算兴起后,随着分布式系统逐渐成熟,系统对小型机的依赖开始降低,改为依靠集群提供,性能也可实现分布式处理。而更为关键的是,IBM 的全套服务尽管稳定性优秀,但却影响了 Power 架构对其他商家的吸引力。

    而 Sparc 架构和 Power 架构基本犯了同样的错误:价格不友好。SPARC 架构测成功和 Sun 旗下的 Solaris 系统有着密不可分的关系。当计算机系统庞大、用户数量巨大增加时,基于 Unix 操作系统打造的 Solaris 能更好地利用计算机资源,是所有商业版中最可靠最完善的版本。而依赖 SPARC 架构和 Solaris 系统的性能和可靠性,其占领了服务器高端市场。Sun 的另一个更为知名的产品是 Java,虽然在上世纪 90 年代为智能家电开发的 Java 并没有为其带来相应的回报,但已成为今天移动时代最重要的开发语言。如此强大的实力本应统领服务器市场,但遗憾的是,在 windows 和英特尔组成 Wintel 联盟之后,两者凭借自身在各自市场的规模效应,使得采用 Wintel 产品的服务器厂商可以通过低廉的价格大肆抢占中低端市场。而当 Sun 醒悟过来,通过开源等方式想要挽回败局时为时已晚。

    X86 架构与 Power 和 SPARC 在高性能领域的风生水起不同,x86 架构是天生的小屌丝。1978 年他出生的那年,英特尔还只是一个普通的科技公司。可是 x86 架构随同其 cisc 指令集却开启了一个新的时代。x86 之所以可以赢得市场主要原因在于其是一个十分开放的架构。IBM 和 SUN 当年都是从芯片到服务器到系统一手包办的公司。而英特尔则是一个十分纯粹的芯片厂商,其业务仅与 AMD 等少数芯片生产者存在竞争,这就使得服务器厂商不用忌惮与之发生竞争关系。

    单从性能来看,无论 Power 还是 SPARC 架构都可以击溃 x86,可是最终能够赢下来的却偏偏是"最弱"的 x86 架构。这并非劣币淘汰良币,而是市场竞争的选择,根源上讲,x86 的成功在于英特尔根本不碰服务器。因此不论设备生产商、软件开发者或者系统开发者都可以与不存在利益竞争关系的英特尔合作。受益于此,x86 架构的兼容性也越发强大,生态体系越发完善,这才成就了现如今市场占有率超过 90%的一家独大局面,英特尔也借助 x86 架构一跃成为全球顶级的芯片提供商。

    移动端竞争

    正如 PC 和服务器端是 X86 的天下一样,移动端是 ARM 的天下。Intel 在 CPU 界的大名,可谓家喻户晓,但是在手机登移动端却难以看到英国 ARM 公司背影。在 2006 年,自从 AMD 的 64 位处理器发布以来,AMD 成功逆袭了 Intel,市场占有率大幅上升,而 Intel 老迈的 P4 处理器则是腹背受敌,尽失昔日霸气,市场表现一路走低。为了稳住投资人的信心,最好的做法自然是让公司持续盈利,为此 Intel 进行大规模的重整,包括上任新 CEO 欧德宁、大规模裁员、以及出售 XScale 手机处理器业务。正因为这个举措,使得 Intel 到达了人生巅峰,从 PC 市场有赚的钵满盆满,然而也是因为此,Intel 忽视了移动领域的迅猛发展。(当年,Intel 拒绝了乔帮主还是 PPT 的 Iphone 手机,不然是否就会不一样?但是想一下 Iphone X 使用 Intel 基带,信号差的诟病,Intel 做手机芯是否会臭名昭著也未可知)

    和 Intel 公司不同, ARM 公司不制造,不销售芯片,而是只自己设计 IP 核,包括指令集架构、微处理器、GPU、互连架构等,然后谁想用就授权卖给谁,再从每颗实际造出来的产品中收取版税。ARM 有三种授权模式,分别是架构授权、内核授权、使用授权,分别对应大中小公司,非常讨喜,贴个牌子就能说是自己的 CPU,为 ARM 处理器的广泛使用打下坚实基础。

    ARM 的成功除了商业模式的独特之外还少不得自身素质的优秀,Intel 技术毫无疑问是顶尖的,但应用场景在传统 PC 上,换成移动设备就行不通了,移动设备比起性能首先要考虑功耗和续航,Intel 就吃了这个大亏,X86 架构独步天下肯定是不能随意变改的,移动设备当然继续沿用 X86 架构,然而换来却是高功耗和快速掉电,换谁都看不上。反之功耗控制则是 ARM 的强项,使用精简指令集(RISC)和创新的 big.LITTLE 架构,使 ARM 处理器能耗比一直领先于 Intel。

    Intel 正在积极布局,推出应用于 IoT 物联网的 Atom E3900 及车载电子的 Atom A3900 系列,号称 CPU 性能提升 70%,GPU 性能提升 190%,其中 Atom A3900 特别针对高温环境设计,可在 110°C 高温下使用 15 年。Intel 是一家伟大的企业,但也是会犯错误的,既然已经错失移动市场,不妨暂时脱离,提前做好下一阶段的技术研发(5G),也有可能实现弯道超车。

    操作系统

    操作系统(Operating System,OS)是一组主管并控制计算机操作、运用和运行硬件、软件资源和提供公共服务来组织用户交互的相互关联的系统软件程序。根据运行的环境,操作系统可以分为桌面操作系统,手机操作系统,服务器操作系统,嵌入式操作系统等。

    操作系统能管理计算机系统的硬件、软件及数据资源,控制程序运行,改善人机界面,为其它应用软件提供支持,并使计算机系统所有资源最大限度地发挥作用。操作系统主要功能包括:进程管理、存储管理、设备管理、文件管理、作业管理等。

    桌面操作系统

    桌面操作系统主要用于个人计算机上。个人计算机市场从硬件架构上来说主要分为两大阵营,PC 机与 Mac 机,从软件上可主要分为两大类,分别为类 Unix 操作系统和 Windows 操作系统:

    1、Unix 和类 Unix 操作系统:Mac OS X,Linux 发行版(如 Debian,Ubuntu,Linux Mint,openSUSE,Fedora 等);

    2、微软公司 Windows 操作系统 :Windows XP,Windows Vista,Windows 7,Windows 8,Windows 8.1,Windows 10,Windows 11 等。

    服务器操作系统

    服务器操作系统一般指的是安装在大型计算机上的操作系统,比如 Web 服务器、应用服务器和数据库服务器等。服务器操作系统主要集中在三大类:

    1、Unix 系列:SUNSolaris,IBM-AIX,HP-UX,FreeBSD 等;

    2、Linux 系列:Red Hat Linux,CentOS,Debian,Ubuntu 等;

    3、Windows 系列:Windows Server 2003,Windows Server 2008,Windows Server 2008 R2 等。

    嵌入式操作系统

    嵌入式操作系统是应用在嵌入式系统的操作系统。嵌入式系统广泛应用在生活的各个方面,涵盖范围从便携设备到大型固定设施,如数码相机、手机、平板电脑、家用电器、医疗设备、交通灯、航空电子设备和工厂控制设备等,越来越多嵌入式系统安装有实时操作系统。

    在嵌入式领域常用的操作系统有嵌入式 Linux、Windows Embedded、VxWorks 等,以及广泛使用在智能手机或平板电脑等消费电子产品的操作系统,如 Android、iOS、Symbian、Windows Phone 和 BlackBerry OS 等。

    可执行程序执行的原理分析

    可执行程序执行内容可以分两类,一是 CPU 的指令,二是操作系统的系统调用,几乎所有的可执行程序都是运行在操作系统之上的,由操作系统来统一调度可执行程序的执行内容。

    说到可执行程序,必须得说一下,应用程序二进制接口 ABI,(Application Binary Interface),ABI 是编译器和链接器遵守的一组规则,以让编译后的程序可以正常工作。

    不同的操作系统对 ABI 的要求不一样,例如 Linux 要求 ELF 格式,Windows 要求 PE 格式。

    简单来说,ABI 就是描述函数名如何存储,函数参数类型如何存储的接口。

    一个程序要想调用其它程序编译出来的函数,那么就必须知道其 ABI 接口。

    C 语言具有优秀的 ABI 兼容,因为主流 C 编译器编译出来的函数,ABI 接口大都相同,所以用 C 语言写的库能方便的被其它程序调用。

    C++一般不具有很好的 ABI 兼容,因为每个 C++编译器编译出来的接口可能不同,导致了你无法调用其它人用 C++接口提供的库函数。所以 C++函数往往强制使用 C 的 ABI 用于给其它程序调用。

    • 把符号标准、变量内存布局、函数调用方式等跟可执行代码二进制兼容性相关的内容称为 ABI Application Binary Interface
    • 应用程序二进制接口,描述了应用程序和操作系统之间,一个应用和它的库之间,或者应用的组成部分之间的低接口。
    • 编程语言实现的 ABI 是一种可以使单独编译的模块协同工作的低级细节的规范。如果没有一个稳定的 ABI,就必须使用同一编译器的同一版本编译程序的所有部分。
    • API 是源代码级别的接口,ABI 是二进制层面的接口,ABI 的兼容程度比 API 更加严格

    操作系统都规定了支持的可执行文件(程序)的格式。Windows 下有 PE 文件格式,Linux 下有 ELF 格式,Mac OS 下有 Mach-O 格式。

    参考

    - +

    可执行程序在操作系统下的运行原理分析

    架构,从下往上分析

    • 裸机(纯硬件)
    • 操作系统(Windows/Linux)
    • 可执行程序

    裸机

    其实主要就是 CPU 架构的不同,CPU 架构是 CPU 商给 CPU 产品定的一个规范,主要目的是为了区分不同类型的 CPU。目前市场上的 CPU 分类主要分有两大阵营,一个是 Intel、AMD 为首的复杂指令集 CPU,另一个是以 IBM、ARM 为首的精简指令集 CPU。不同品牌的 CPU,其产品的架构也不相同,Intel、AMD 的 CPU 是 X86 架构,IBM 公司的 CPU 是 PowerPC 架构,ARM 公司的 CPU 是 ARM 架构,国内的飞腾 CPU 也是 ARM 架构。此外还有 MPIS 架构、SPARC 架构、Alpha 架构。

    x86 指令集发展

    • IA:Intel(英特尔)处理器的服务器称之为 IA(Intel Architecture)架构服务器
    • IA-32:英特尔 32 位体系架构,X86 从 16 位到 32 位是在原有的架构基础上进行修改(Intel 称之为 IA-32)
    • x86-32:现如今 Intel 把 x86-32 称为 IA-32
    • x86-64 分为 intel 和 AMD
    • AMD64:x86 架构的 64 位拓展,向后兼容于 16 位及 32 位的 x86 架构。x64 于 1999 年由 AMD 设计,AMD 首次公开 64 位集以扩展给 x86,称为“AMD64”,AMD64 和 Intel64 基本上一致
    • Intel64:EM64T(Extended Memory 64 Technology)扩展 64bit 内存技术,本质上和 AMD64 一样都是 IA-32 的增强版本。
    • IA-64:64 位的英特尔架构,英特尔安腾架构(Intel Itanium architecture),使用在 Itanium 处理器家族上的 64 位指令集架构,由英特尔公司与惠普公司共同开发。IA 是 Intel Architecture(英特尔架构)的缩写,64 指 64 位系统。使用这种架构的 CPU,包括 Itanium 和 Itanium 2。此架构与 x86 及 x86-64 并不相容,操作系统与软件需使用 IA-64 专用版本。

    ARM 架构

    ARM 架构,也称作进阶精简指令集机器(Advanced RISC Machine,更早称作:Acorn RISC Machine),是一个 32 位精简指令集(RISC)处理器架构,其广泛地使用在许多嵌入式系统设计。由于节能的特点,ARM 处理器非常适用于行动通讯领域,符合其主要设计目标为低耗电的特性。

    ARM 授权方式:ARM 公司本身并不靠自有的设计来制造或出售 CPU ,而是将处理器架构授权给有兴趣的厂家。

    国外生产厂商:TI (德州仪器)、Samsung(三星)、Freescale(飞思卡尔)、Marvell(马维尔)、Nvidia(英伟达)、Qualcomm(高通)、STMicroelectronics(意法半导体)。

    国内生产厂商:华为(海思芯片)、飞腾(FT-1500、FT2000-4 等 CPU 芯片)、兆易创新(GD32 系列 MCU,参考 STM32 系列)、瑞芯微(RK 系列芯片)、联发科(台湾,天玑系列)。

    MPIS 架构

    MIPS 是世界上很流行的一种 RISC 处理器。MIPS 技术公司是美国著名的芯片设计公司,它采用精简指令系统计算结构(RISC)来设计芯片。

    MPIS 架构授权和 ARM 架构授权不一样,ARM 架构授权用户基本不能自行修改,而 MPIS 架构授权后,可以自己修改。目前 MPIS 发扬光大寄希望中科龙芯公司,龙芯处理器从龙芯 1 号,到现在的龙芯 3 号系列的 3A4000,CPU 的性能已经大幅度提高,在完全可以胜任日常办公或者作为特殊用途的服务器。龙芯 CPU 和国产的飞腾(FT)处理器并驾齐驱,发展我国自主可控 CPU。

    PowerPC 系列

    PowerPC 是一种精简指令集(RISC)架构的中央处理器(CPU),其基本的设计源自 IBM(国际商用机器公司)的 IBMPowerPC 601 微处理器 POWER(PerformanceOptimized With Enhanced RISC;《IBM Connect 电子报》2007 年 8 月号译为“增强 RISC 性能优化”)架构。二十世纪九十年代,IBM(国际商用机器公司)、Apple(苹果公司)和 Motorola(摩托罗拉)公司开发 PowerPC 芯片成功,并制造出基于 PowerPC 的多处理器计算机。PowerPC 架构的特点是可伸缩性好、方便灵活。

    PowerPC 处理器有广泛的实现范围,包括从诸如 Power4 那样的高端服务器 CPU 到嵌入式 CPU 市场(任天堂 Gamecube 使用了 PowerPC)。PowerPC 处理器有非常强的嵌入式表现,因为它具有优异的性能、较低的能量损耗以及较低的散热量。除了象串行和以太网控制器那样的集成 I/O,该嵌入式处理器与“台式机”CPU 存在非常显著的区别。

    SPARC 架构

    SPARC 架构(Scalable Processor ARChitecture,可扩展处理器架构)是国际上流行的 RISC 处理器体系架构之一,SPRAC 如今已发展成为一个开放的标准,任何机构或个人均可研究或开发基于 SPRAC 架构的产品,而无需交纳版权费。SPARC 处理器架构具备精简指令集(RISC)、支持 32 位/64 位指令精度,架构运行稳定、可扩展性优良、体系标准开放等特点。SPARC 因此得以迅速发展壮大,在现在已经有大约 3 万多个成功的应用案例。

    SPARCV7/V8 是目前嵌入式控制系统常用的处理器标准版本,并在航天设备的电子系统中得到广泛应用。然而,SPARC 只是一个处理器的架构标准,并不提供现成的源码或 IP 核,具体的芯片实现要由开发者去完成。

    Alpha 架构

    目前国内采用此架构的是申微超算处理器,得益于国家的支持,申威处理器在军队应用广泛。

    CPU 架构之间的竞争

    PC 和服务器竞争

    PC 端和服务器端是 X86 架构的天下,而 X86 架构基本是以 Intel 为首,AMD 为辅二分天下之势。国产 CPU 基本只能用在军工行业或者事业单位等。其实说性能,powerpc,可谓是高出不胜寒。硬件方面,Power 系统在可靠性、可用性和可维护性的方面的出色表现使得 IBM 从芯片到系统所设计的整机方案有着独有的优势。Power 架构的处理器在超算、大型企业的 UNIX 服务器等多个方面应用也十分成功。在软件方面,其专用的 AIX 系统在稳定性、软件方案集成度和厂商技术支持能力方面都要更强。由于用户选一平台主要看软件需求,一般对数据保护和 7*24 小时不宕机等有所要求,power 架构的稳定性和运维等方面相对更优。但是,由于 IBM 的技术把控,使得其价格太不友好,同时技术也赶不上环境的变化,在云计算兴起后,随着分布式系统逐渐成熟,系统对小型机的依赖开始降低,改为依靠集群提供,性能也可实现分布式处理。而更为关键的是,IBM 的全套服务尽管稳定性优秀,但却影响了 Power 架构对其他商家的吸引力。

    而 Sparc 架构和 Power 架构基本犯了同样的错误:价格不友好。SPARC 架构测成功和 Sun 旗下的 Solaris 系统有着密不可分的关系。当计算机系统庞大、用户数量巨大增加时,基于 Unix 操作系统打造的 Solaris 能更好地利用计算机资源,是所有商业版中最可靠最完善的版本。而依赖 SPARC 架构和 Solaris 系统的性能和可靠性,其占领了服务器高端市场。Sun 的另一个更为知名的产品是 Java,虽然在上世纪 90 年代为智能家电开发的 Java 并没有为其带来相应的回报,但已成为今天移动时代最重要的开发语言。如此强大的实力本应统领服务器市场,但遗憾的是,在 windows 和英特尔组成 Wintel 联盟之后,两者凭借自身在各自市场的规模效应,使得采用 Wintel 产品的服务器厂商可以通过低廉的价格大肆抢占中低端市场。而当 Sun 醒悟过来,通过开源等方式想要挽回败局时为时已晚。

    X86 架构与 Power 和 SPARC 在高性能领域的风生水起不同,x86 架构是天生的小屌丝。1978 年他出生的那年,英特尔还只是一个普通的科技公司。可是 x86 架构随同其 cisc 指令集却开启了一个新的时代。x86 之所以可以赢得市场主要原因在于其是一个十分开放的架构。IBM 和 SUN 当年都是从芯片到服务器到系统一手包办的公司。而英特尔则是一个十分纯粹的芯片厂商,其业务仅与 AMD 等少数芯片生产者存在竞争,这就使得服务器厂商不用忌惮与之发生竞争关系。

    单从性能来看,无论 Power 还是 SPARC 架构都可以击溃 x86,可是最终能够赢下来的却偏偏是"最弱"的 x86 架构。这并非劣币淘汰良币,而是市场竞争的选择,根源上讲,x86 的成功在于英特尔根本不碰服务器。因此不论设备生产商、软件开发者或者系统开发者都可以与不存在利益竞争关系的英特尔合作。受益于此,x86 架构的兼容性也越发强大,生态体系越发完善,这才成就了现如今市场占有率超过 90%的一家独大局面,英特尔也借助 x86 架构一跃成为全球顶级的芯片提供商。

    移动端竞争

    正如 PC 和服务器端是 X86 的天下一样,移动端是 ARM 的天下。Intel 在 CPU 界的大名,可谓家喻户晓,但是在手机登移动端却难以看到英国 ARM 公司背影。在 2006 年,自从 AMD 的 64 位处理器发布以来,AMD 成功逆袭了 Intel,市场占有率大幅上升,而 Intel 老迈的 P4 处理器则是腹背受敌,尽失昔日霸气,市场表现一路走低。为了稳住投资人的信心,最好的做法自然是让公司持续盈利,为此 Intel 进行大规模的重整,包括上任新 CEO 欧德宁、大规模裁员、以及出售 XScale 手机处理器业务。正因为这个举措,使得 Intel 到达了人生巅峰,从 PC 市场有赚的钵满盆满,然而也是因为此,Intel 忽视了移动领域的迅猛发展。(当年,Intel 拒绝了乔帮主还是 PPT 的 Iphone 手机,不然是否就会不一样?但是想一下 Iphone X 使用 Intel 基带,信号差的诟病,Intel 做手机芯是否会臭名昭著也未可知)

    和 Intel 公司不同, ARM 公司不制造,不销售芯片,而是只自己设计 IP 核,包括指令集架构、微处理器、GPU、互连架构等,然后谁想用就授权卖给谁,再从每颗实际造出来的产品中收取版税。ARM 有三种授权模式,分别是架构授权、内核授权、使用授权,分别对应大中小公司,非常讨喜,贴个牌子就能说是自己的 CPU,为 ARM 处理器的广泛使用打下坚实基础。

    ARM 的成功除了商业模式的独特之外还少不得自身素质的优秀,Intel 技术毫无疑问是顶尖的,但应用场景在传统 PC 上,换成移动设备就行不通了,移动设备比起性能首先要考虑功耗和续航,Intel 就吃了这个大亏,X86 架构独步天下肯定是不能随意变改的,移动设备当然继续沿用 X86 架构,然而换来却是高功耗和快速掉电,换谁都看不上。反之功耗控制则是 ARM 的强项,使用精简指令集(RISC)和创新的 big.LITTLE 架构,使 ARM 处理器能耗比一直领先于 Intel。

    Intel 正在积极布局,推出应用于 IoT 物联网的 Atom E3900 及车载电子的 Atom A3900 系列,号称 CPU 性能提升 70%,GPU 性能提升 190%,其中 Atom A3900 特别针对高温环境设计,可在 110°C 高温下使用 15 年。Intel 是一家伟大的企业,但也是会犯错误的,既然已经错失移动市场,不妨暂时脱离,提前做好下一阶段的技术研发(5G),也有可能实现弯道超车。

    操作系统

    操作系统(Operating System,OS)是一组主管并控制计算机操作、运用和运行硬件、软件资源和提供公共服务来组织用户交互的相互关联的系统软件程序。根据运行的环境,操作系统可以分为桌面操作系统,手机操作系统,服务器操作系统,嵌入式操作系统等。

    操作系统能管理计算机系统的硬件、软件及数据资源,控制程序运行,改善人机界面,为其它应用软件提供支持,并使计算机系统所有资源最大限度地发挥作用。操作系统主要功能包括:进程管理、存储管理、设备管理、文件管理、作业管理等。

    桌面操作系统

    桌面操作系统主要用于个人计算机上。个人计算机市场从硬件架构上来说主要分为两大阵营,PC 机与 Mac 机,从软件上可主要分为两大类,分别为类 Unix 操作系统和 Windows 操作系统:

    1、Unix 和类 Unix 操作系统:Mac OS X,Linux 发行版(如 Debian,Ubuntu,Linux Mint,openSUSE,Fedora 等);

    2、微软公司 Windows 操作系统 :Windows XP,Windows Vista,Windows 7,Windows 8,Windows 8.1,Windows 10,Windows 11 等。

    服务器操作系统

    服务器操作系统一般指的是安装在大型计算机上的操作系统,比如 Web 服务器、应用服务器和数据库服务器等。服务器操作系统主要集中在三大类:

    1、Unix 系列:SUNSolaris,IBM-AIX,HP-UX,FreeBSD 等;

    2、Linux 系列:Red Hat Linux,CentOS,Debian,Ubuntu 等;

    3、Windows 系列:Windows Server 2003,Windows Server 2008,Windows Server 2008 R2 等。

    嵌入式操作系统

    嵌入式操作系统是应用在嵌入式系统的操作系统。嵌入式系统广泛应用在生活的各个方面,涵盖范围从便携设备到大型固定设施,如数码相机、手机、平板电脑、家用电器、医疗设备、交通灯、航空电子设备和工厂控制设备等,越来越多嵌入式系统安装有实时操作系统。

    在嵌入式领域常用的操作系统有嵌入式 Linux、Windows Embedded、VxWorks 等,以及广泛使用在智能手机或平板电脑等消费电子产品的操作系统,如 Android、iOS、Symbian、Windows Phone 和 BlackBerry OS 等。

    可执行程序执行的原理分析

    可执行程序执行内容可以分两类,一是 CPU 的指令,二是操作系统的系统调用,几乎所有的可执行程序都是运行在操作系统之上的,由操作系统来统一调度可执行程序的执行内容。

    说到可执行程序,必须得说一下,应用程序二进制接口 ABI,(Application Binary Interface),ABI 是编译器和链接器遵守的一组规则,以让编译后的程序可以正常工作。

    不同的操作系统对 ABI 的要求不一样,例如 Linux 要求 ELF 格式,Windows 要求 PE 格式。

    简单来说,ABI 就是描述函数名如何存储,函数参数类型如何存储的接口。

    一个程序要想调用其它程序编译出来的函数,那么就必须知道其 ABI 接口。

    C 语言具有优秀的 ABI 兼容,因为主流 C 编译器编译出来的函数,ABI 接口大都相同,所以用 C 语言写的库能方便的被其它程序调用。

    C++一般不具有很好的 ABI 兼容,因为每个 C++编译器编译出来的接口可能不同,导致了你无法调用其它人用 C++接口提供的库函数。所以 C++函数往往强制使用 C 的 ABI 用于给其它程序调用。

    • 把符号标准、变量内存布局、函数调用方式等跟可执行代码二进制兼容性相关的内容称为 ABI Application Binary Interface
    • 应用程序二进制接口,描述了应用程序和操作系统之间,一个应用和它的库之间,或者应用的组成部分之间的低接口。
    • 编程语言实现的 ABI 是一种可以使单独编译的模块协同工作的低级细节的规范。如果没有一个稳定的 ABI,就必须使用同一编译器的同一版本编译程序的所有部分。
    • API 是源代码级别的接口,ABI 是二进制层面的接口,ABI 的兼容程度比 API 更加严格

    操作系统都规定了支持的可执行文件(程序)的格式。Windows 下有 PE 文件格式,Linux 下有 ELF 格式,Mac OS 下有 Mach-O 格式。

    参考

    + \ No newline at end of file diff --git "a/docs/study/system/\346\223\215\344\275\234\347\263\273\347\273\237\345\206\205\346\240\270/index.html" "b/docs/study/system/\346\223\215\344\275\234\347\263\273\347\273\237\345\206\205\346\240\270/index.html" index b35959a5a..08d47713f 100644 --- "a/docs/study/system/\346\223\215\344\275\234\347\263\273\347\273\237\345\206\205\346\240\270/index.html" +++ "b/docs/study/system/\346\223\215\344\275\234\347\263\273\347\273\237\345\206\205\346\240\270/index.html" @@ -11,13 +11,13 @@ - +
    -

    操作系统内核

    什么是内核

    说到操作系统,就必须说内核。内核是操作系统中应用连接硬件设备的桥梁。

    内核仅仅是操作系统的一部分,是真正与硬件交互的那部分软件,与硬件交互包括读写硬盘、读写网盘、读写内存以及任何连接到系统中的硬件。

    除了与硬件交互外,内核还负责分配资源,分配什么资源呢?所谓资源就是硬件,比如 CPU 时间、内存、IO 等等,这些都是资源。

    操作系统分层

    Linux 内核调优

    ip_forward

    IP forward 是一种内核态设置,允许将一个接口的流量转发到另外一个接口。

    出于安全考虑,Linux 系统默认是禁止数据包转发的。所谓转发即当主机拥有多于一块的网卡时,其中一块收到数据包,根据数据包的目的 ip 地址将数据包发往本机另一块网卡,该网卡根据路由表继续发送数据包。这通常是路由器所要实现的功能。

    参考

    - +

    操作系统内核

    什么是内核

    说到操作系统,就必须说内核。内核是操作系统中应用连接硬件设备的桥梁。

    内核仅仅是操作系统的一部分,是真正与硬件交互的那部分软件,与硬件交互包括读写硬盘、读写网盘、读写内存以及任何连接到系统中的硬件。

    除了与硬件交互外,内核还负责分配资源,分配什么资源呢?所谓资源就是硬件,比如 CPU 时间、内存、IO 等等,这些都是资源。

    操作系统分层

    Linux 内核调优

    ip_forward

    IP forward 是一种内核态设置,允许将一个接口的流量转发到另外一个接口。

    出于安全考虑,Linux 系统默认是禁止数据包转发的。所谓转发即当主机拥有多于一块的网卡时,其中一块收到数据包,根据数据包的目的 ip 地址将数据包发往本机另一块网卡,该网卡根据路由表继续发送数据包。这通常是路由器所要实现的功能。

    参考

    + \ No newline at end of file diff --git "a/docs/study/system/\347\250\213\345\272\217\350\260\203\350\257\225/index.html" "b/docs/study/system/\347\250\213\345\272\217\350\260\203\350\257\225/index.html" index 09c3c0f70..fe1fb5984 100644 --- "a/docs/study/system/\347\250\213\345\272\217\350\260\203\350\257\225/index.html" +++ "b/docs/study/system/\347\250\213\345\272\217\350\260\203\350\257\225/index.html" @@ -11,13 +11,13 @@ - +
    -

    程序调试

    strace

    strace 是个功能强大的 Linux 调试分析诊断工具,可用于跟踪程序执行时进程系统调用(system call)和所接收的信号,尤其是针对源码不可读或源码无法再编译的程序。在 Linux 系统中,用户进程不能直接访问计算机硬件设备。当进程需要访问硬件设备(如读取磁盘文件或接收网络数据等)时,必须由用户态模式切换至内核态模式,通过系统调用访问硬件设备。strace 可跟踪进程产生的系统调用,包括参数、返回值和执行所消耗的时间。若 strace 没有任何输出,并不代表此时进程发生阻塞;也可能程序进程正在执行某些不需要与系统其它部分发生通信的事情。strace 从内核接收信息,且无需以任何特殊方式来构建内核。

    - +

    程序调试

    strace

    strace 是个功能强大的 Linux 调试分析诊断工具,可用于跟踪程序执行时进程系统调用(system call)和所接收的信号,尤其是针对源码不可读或源码无法再编译的程序。在 Linux 系统中,用户进程不能直接访问计算机硬件设备。当进程需要访问硬件设备(如读取磁盘文件或接收网络数据等)时,必须由用户态模式切换至内核态模式,通过系统调用访问硬件设备。strace 可跟踪进程产生的系统调用,包括参数、返回值和执行所消耗的时间。若 strace 没有任何输出,并不代表此时进程发生阻塞;也可能程序进程正在执行某些不需要与系统其它部分发生通信的事情。strace 从内核接收信息,且无需以任何特殊方式来构建内核。

    + \ No newline at end of file diff --git a/docs/study/think/IT_CT_OT/index.html b/docs/study/think/IT_CT_OT/index.html index a8853375b..526fc6630 100644 --- a/docs/study/think/IT_CT_OT/index.html +++ b/docs/study/think/IT_CT_OT/index.html @@ -11,7 +11,7 @@ - + @@ -24,8 +24,8 @@ 而随着工业4.0的来临,越来越多的ICT技术则需要被引入到OT技术之中,IT、OT、CT将在未来紧密的融合在一起,成为一个整体。 未来在5G之中,三大应用场景之中的URLLC(超高可靠低时延)就是主要支持工业4.0的场景。 工业自动化也被认为是5G最重要的一种垂直行业应用了,重要性甚至要超过更科幻一些的自动驾驶应用。 -总而言之,如果单单拿出来,IT CT OT都可能是别的缩写,但是三个在一起出现的话,你看到的文档,通常都是描绘工业4.0的资料了,现在也有很多这样的资料。

    - +总而言之,如果单单拿出来,IT CT OT都可能是别的缩写,但是三个在一起出现的话,你看到的文档,通常都是描绘工业4.0的资料了,现在也有很多这样的资料。

    + \ No newline at end of file diff --git a/docs/study/think/index.html b/docs/study/think/index.html index 25bf308c0..7503b52d5 100644 --- a/docs/study/think/index.html +++ b/docs/study/think/index.html @@ -11,13 +11,13 @@ - + - +
    + \ No newline at end of file diff --git "a/docs/study/think/\344\273\243\347\240\201\350\257\204\345\256\241/Gerrit\344\273\243\347\240\201\350\257\204\345\256\241\345\267\245\345\205\267/index.html" "b/docs/study/think/\344\273\243\347\240\201\350\257\204\345\256\241/Gerrit\344\273\243\347\240\201\350\257\204\345\256\241\345\267\245\345\205\267/index.html" index c3fefbadc..9fa8f8236 100644 --- "a/docs/study/think/\344\273\243\347\240\201\350\257\204\345\256\241/Gerrit\344\273\243\347\240\201\350\257\204\345\256\241\345\267\245\345\205\267/index.html" +++ "b/docs/study/think/\344\273\243\347\240\201\350\257\204\345\256\241/Gerrit\344\273\243\347\240\201\350\257\204\345\256\241\345\267\245\345\205\267/index.html" @@ -11,13 +11,13 @@ - + - +
    + \ No newline at end of file diff --git "a/docs/study/think/\344\273\243\347\240\201\350\257\204\345\256\241/\344\273\243\347\240\201\345\256\241\346\237\245\351\227\256\351\242\230\346\211\213\345\206\214/index.html" "b/docs/study/think/\344\273\243\347\240\201\350\257\204\345\256\241/\344\273\243\347\240\201\345\256\241\346\237\245\351\227\256\351\242\230\346\211\213\345\206\214/index.html" index cf068d9e6..07ed271ac 100644 --- "a/docs/study/think/\344\273\243\347\240\201\350\257\204\345\256\241/\344\273\243\347\240\201\345\256\241\346\237\245\351\227\256\351\242\230\346\211\213\345\206\214/index.html" +++ "b/docs/study/think/\344\273\243\347\240\201\350\257\204\345\256\241/\344\273\243\347\240\201\345\256\241\346\237\245\351\227\256\351\242\230\346\211\213\345\206\214/index.html" @@ -11,7 +11,7 @@ - + @@ -23,8 +23,8 @@ 新人阅读老人的代码,能够更明确的知晓当前项目的规范、流程等。 高级开发阅读初中级开发的代码,能够查缺补漏,避免安全风险; 初中级开发乐队高级开发的代码,能够学到更多代码经验、思想、意识。

    代码审查列表,是代码审查的明确规则和指导手册,它可以使代码审查为你的团队带来更多好处,并且能够显著提升代码审查的速度。研究表明,使用代码审查列表的审阅者的表现要优于不使用的审阅者。所以不管你是新手开发者还是经验丰富的开发者,开始考虑使用代码审查列表吧。

    代码作者应该关注的列表

    作为代码的作者,你应该保证:

    • 代码编译成功并且通过静态检查(没有警告)
    • 代码通过所有的测试(单元测试、集成测试和系统测试)
    • 你已经仔细检查了拼写错误,并做了处理(注释、todo等)
    • 概述代码修改的原因以及修改了哪些地方

    除此之外,作为代码作者,也应该在提交审查之前,按照审查者的列表对自己的代码进行审查。

    代码审查者应该关注的列表

    作为代码审查者,你的任务是寻找最重要的问题。评论会对代码的结构性或逻辑性问题更有价值,即使有时候会显得挑剔。你应该知道什么是好的代码反馈。另外需要注意,最好的代码审查反馈不是点评,而是建议。所以不要说“变量名称应该是removeObject“,最好说”调用变量removeObject怎么样?“。 -下面这份列表足够帮助你提出好的代码审查反馈了。

    实现

    • 此代码更改会执行它应该做的事情吗?
    • 这种解决方法是最简单的吗?
    • 这个更改有引入一些不需要的编译时或运行时的依赖吗?
    • 是否使用了不应该使用的框架、API、库、服务?
    • 是否存在可以提升解决方法的未使用的框架、API、库、服务?
    • 代码是否处于正确的抽象级别?
    • 代码的模块化做的是否足够好?
    • 你是否有其他的解决方案,该方案在代码可维护性、可读性、性能、安全方面表现更好?
    • 是否已经存在类似功能的函数?如果有,为什么不复用?
    • 是否有最佳实践、设计模式或特定语言模式可以优化代码?
    • 代码是否遵循面向对象的分析和设计原则,例如单一责任原则,开闭原则,里氏替换原则,接口隔离,依赖注入?

    逻辑错误或Bug

    • 你能想到代码不按预期运行的任何用例吗?
    • 你能想到任何可能破坏代码的输入或外部事件吗?

    错误处理和日志

    • 错误都被正确处理了吗?
    • 是否有需要增加或删除的日志/debug信息?
    • 错误消息对用户是否友好?
    • 是否有足够的日志,它们的编写方式是否是易于调试的?

    可用性和可访问性

    • 从可用性角度出发,所提出的解决方案是否设计合理?
    • API文档是否足够好?
    • 提出的解决方案是否具备可访问性?
    • API/UI是否直观易用?

    测试与可测试性

    • 代码是否达到可测试标准?
    • 是否有足够的自动化测试(单元测试/集成测试/系统测试)?
    • 现有测试是否合理覆盖代码变更?
    • 是否有额外的测试用例、输入或边界用例以供测试?

    依赖

    • 如果这个修改需要更新代码以外的文件,例如更新文档,配置,readme文件。是否完成了这些更新?
    • 这个修改是否会对系统其他地方造成影响?是否能后向后兼容?

    安全和隐私数据

    • 这段代码是否打开软件的安全漏洞?
    • 权限和身份验证是否被正确处理?
    • 是否安全处理了敏感数据,例如用户数据、信用卡信息等?是否正确使用加密方法?
    • 代码更改是否显露了一些私密信息(如秘钥,用户名等)?
    • 如果代码处理用户输入,是否解决了跨站点脚本,SQL注入等安全漏洞,是否进行了输入清洗和验证?
    • 从外部API或库中获得的数据是否进行了相应的检查?

    性能

    • 这段代码修改是否会对系统性能产生负面影响?
    • 是否可以进一步提升代码性能?

    可读性

    • 代码是否容易理解?
    • 哪一部分使你困惑,为什么?
    • 可以通过减小方法来提高代码可读性吗?
    • 可以通过使用不同的函数/方法或变量名称来提升代码可读性吗?
    • 代码是否存放在正确的文件/目录/包?
    • 你是否认为方法应该重构以拥有更直观的控制流程?
    • 数据流是否可理解?
    • 是否有多余的注释?
    • 某些注释是否可以更好的传达信息?
    • 是否更多的注释会使你的代码更容易理解?
    • 是否可以移除一些注释,通过提升代码可读性来理解代码?
    • 是否存在注释掉的代码?

    专家意见

    • 你是否认为特定专家(如安全专家或可用性专家)应该先检查代码,然后再提交代码?
    • 这个代码修改会影响其他团队吗?他们也应该发表意见吗?

    代码风格和约定

    您的团队或公司必须拥有清晰的编码风格指南,这一点很重要。因为这是在代码库中实施唯一性的唯一方法。并且一致性会使代码审查更快,使人们可以轻松地更改项目,并保持您代码的可读性和可维护性。Google是做到这一点的很好的例子,无疑,这使Google可以进行快速的代码审查。首先,我建议使用现成的编码样式来支持Google提供的多种语言。设定基本规则很重要,但要确保一劳永逸。不要持续争论。

    尽可能自动化

    确定了代码风格以后,请花一些时间正确安装和配置工具,以便一键格式化代码。另外还有很多事情可以做。例如使用静态检查来代替部分人工审核。这是值得为之努力的。

    - +下面这份列表足够帮助你提出好的代码审查反馈了。

    实现

    • 此代码更改会执行它应该做的事情吗?
    • 这种解决方法是最简单的吗?
    • 这个更改有引入一些不需要的编译时或运行时的依赖吗?
    • 是否使用了不应该使用的框架、API、库、服务?
    • 是否存在可以提升解决方法的未使用的框架、API、库、服务?
    • 代码是否处于正确的抽象级别?
    • 代码的模块化做的是否足够好?
    • 你是否有其他的解决方案,该方案在代码可维护性、可读性、性能、安全方面表现更好?
    • 是否已经存在类似功能的函数?如果有,为什么不复用?
    • 是否有最佳实践、设计模式或特定语言模式可以优化代码?
    • 代码是否遵循面向对象的分析和设计原则,例如单一责任原则,开闭原则,里氏替换原则,接口隔离,依赖注入?

    逻辑错误或Bug

    • 你能想到代码不按预期运行的任何用例吗?
    • 你能想到任何可能破坏代码的输入或外部事件吗?

    错误处理和日志

    • 错误都被正确处理了吗?
    • 是否有需要增加或删除的日志/debug信息?
    • 错误消息对用户是否友好?
    • 是否有足够的日志,它们的编写方式是否是易于调试的?

    可用性和可访问性

    • 从可用性角度出发,所提出的解决方案是否设计合理?
    • API文档是否足够好?
    • 提出的解决方案是否具备可访问性?
    • API/UI是否直观易用?

    测试与可测试性

    • 代码是否达到可测试标准?
    • 是否有足够的自动化测试(单元测试/集成测试/系统测试)?
    • 现有测试是否合理覆盖代码变更?
    • 是否有额外的测试用例、输入或边界用例以供测试?

    依赖

    • 如果这个修改需要更新代码以外的文件,例如更新文档,配置,readme文件。是否完成了这些更新?
    • 这个修改是否会对系统其他地方造成影响?是否能后向后兼容?

    安全和隐私数据

    • 这段代码是否打开软件的安全漏洞?
    • 权限和身份验证是否被正确处理?
    • 是否安全处理了敏感数据,例如用户数据、信用卡信息等?是否正确使用加密方法?
    • 代码更改是否显露了一些私密信息(如秘钥,用户名等)?
    • 如果代码处理用户输入,是否解决了跨站点脚本,SQL注入等安全漏洞,是否进行了输入清洗和验证?
    • 从外部API或库中获得的数据是否进行了相应的检查?

    性能

    • 这段代码修改是否会对系统性能产生负面影响?
    • 是否可以进一步提升代码性能?

    可读性

    • 代码是否容易理解?
    • 哪一部分使你困惑,为什么?
    • 可以通过减小方法来提高代码可读性吗?
    • 可以通过使用不同的函数/方法或变量名称来提升代码可读性吗?
    • 代码是否存放在正确的文件/目录/包?
    • 你是否认为方法应该重构以拥有更直观的控制流程?
    • 数据流是否可理解?
    • 是否有多余的注释?
    • 某些注释是否可以更好的传达信息?
    • 是否更多的注释会使你的代码更容易理解?
    • 是否可以移除一些注释,通过提升代码可读性来理解代码?
    • 是否存在注释掉的代码?

    专家意见

    • 你是否认为特定专家(如安全专家或可用性专家)应该先检查代码,然后再提交代码?
    • 这个代码修改会影响其他团队吗?他们也应该发表意见吗?

    代码风格和约定

    您的团队或公司必须拥有清晰的编码风格指南,这一点很重要。因为这是在代码库中实施唯一性的唯一方法。并且一致性会使代码审查更快,使人们可以轻松地更改项目,并保持您代码的可读性和可维护性。Google是做到这一点的很好的例子,无疑,这使Google可以进行快速的代码审查。首先,我建议使用现成的编码样式来支持Google提供的多种语言。设定基本规则很重要,但要确保一劳永逸。不要持续争论。

    尽可能自动化

    确定了代码风格以后,请花一些时间正确安装和配置工具,以便一键格式化代码。另外还有很多事情可以做。例如使用静态检查来代替部分人工审核。这是值得为之努力的。

    + \ No newline at end of file diff --git "a/docs/study/think/\345\256\236\346\227\266\350\256\241\347\256\227Storm+Flink/index.html" "b/docs/study/think/\345\256\236\346\227\266\350\256\241\347\256\227Storm+Flink/index.html" index 37f520a08..ae89cecda 100644 --- "a/docs/study/think/\345\256\236\346\227\266\350\256\241\347\256\227Storm+Flink/index.html" +++ "b/docs/study/think/\345\256\236\346\227\266\350\256\241\347\256\227Storm+Flink/index.html" @@ -11,15 +11,15 @@ - +

    实时计算Storm+Flink

    实时计算

    一种考虑了无线数据集的数据处理引擎。又称实时流式计算、流式计算,都是差不多的概念;

    三个特征:

    1. 无限数据,是指一种不断增长,基本上无限的数据集,也可以称作流数据,与之对应的是有限的数据集;
    2. 无界数据处理,一种持续的数据处理模式,能够通过处理引擎重复的去处理上面的无限数据,是能够突破有限数据处理引擎的瓶颈的。
    3. 低延迟,延迟是多少并没有明确的定义。但我们都知道数据的价值将随着时间的流逝降低,时效性将是需要持续解决的问题。

    实时计算其实是一个相对的概念,对于批处理、近实时、微批,不多是时间的问题; 实时框架有很多,例如Storm、Fink、Kafka Streaming、Spark Streaming; -同时支持流处理和批处理的计算引擎,有两种选择:一个是Apache Spark,一个是Apache Flink。从技术,生态等各方面的综合考虑,首先,Spark的技术理念是基于批来模拟流的计算。而Flink则完全相反,它采用的是基于流计算来模拟批计算。从技术发展方向看,用批来模拟流有一定的技术局限性,并且这个局限性可能很难突破。而Flink基于流来模拟批,在技术上有更好的扩展性。

    主要应用

    1. 日志分析,比如对网站的用户访问日志进行实时的分析,计算访问量,用户画像,留存率等等,实时的进行数据分析,帮助企业进行决策。
    2. 物联网,比如对电力系统进行实时的数据检测,进行报警,实时的显示,或者根据历史数据进行实时的分析,预测。
    3. 车联网,如今的车联网已经不限于物联网,还包括对用户,交通等等进行分析的一个庞大的系统,改善用户出行。
    4. 金融分控,通过对交易等金融行为实时分析,预测出未知风险。

    Storm

    Twitter开源的Storm框架风靡一时,在Hadoop诞生初期,Storm弥补了Hadoop不能做实时数据处理缺陷,被广泛使用,现在的很多公司依然在使用,Storm延迟是毫秒级的,但是它很难实现高吞吐,不能保证消息恰好一次的传递。我们可以通过ack机制保证,但开销极大,现在很多使用Storm的公司都出现了消息积压的问题,这其实是很难避免的。

    1. Flink 从 0 到 1 学习

    参考

    1. Streaming-大数据的未来
    2. 阿里巴巴为什么选择Apache Flink?
    - +同时支持流处理和批处理的计算引擎,有两种选择:一个是Apache Spark,一个是Apache Flink。从技术,生态等各方面的综合考虑,首先,Spark的技术理念是基于批来模拟流的计算。而Flink则完全相反,它采用的是基于流计算来模拟批计算。从技术发展方向看,用批来模拟流有一定的技术局限性,并且这个局限性可能很难突破。而Flink基于流来模拟批,在技术上有更好的扩展性。

    主要应用

    1. 日志分析,比如对网站的用户访问日志进行实时的分析,计算访问量,用户画像,留存率等等,实时的进行数据分析,帮助企业进行决策。
    2. 物联网,比如对电力系统进行实时的数据检测,进行报警,实时的显示,或者根据历史数据进行实时的分析,预测。
    3. 车联网,如今的车联网已经不限于物联网,还包括对用户,交通等等进行分析的一个庞大的系统,改善用户出行。
    4. 金融分控,通过对交易等金融行为实时分析,预测出未知风险。

    Storm

    Twitter开源的Storm框架风靡一时,在Hadoop诞生初期,Storm弥补了Hadoop不能做实时数据处理缺陷,被广泛使用,现在的很多公司依然在使用,Storm延迟是毫秒级的,但是它很难实现高吞吐,不能保证消息恰好一次的传递。我们可以通过ack机制保证,但开销极大,现在很多使用Storm的公司都出现了消息积压的问题,这其实是很难避免的。

    1. Flink 从 0 到 1 学习

    参考

    1. Streaming-大数据的未来
    2. 阿里巴巴为什么选择Apache Flink?
    + \ No newline at end of file diff --git "a/docs/study/think/\345\271\266\345\217\221\346\250\241\345\236\213/index.html" "b/docs/study/think/\345\271\266\345\217\221\346\250\241\345\236\213/index.html" index 6a84baac6..79afb91f8 100644 --- "a/docs/study/think/\345\271\266\345\217\221\346\250\241\345\236\213/index.html" +++ "b/docs/study/think/\345\271\266\345\217\221\346\250\241\345\236\213/index.html" @@ -11,13 +11,13 @@ - +
    -

    并发模型

    业界将如何实现并发编程总结归纳为各式各样的并发模型,常见的并发模型有以下几种:

    • 线程 & 锁模型
    • Actor 模型
    • CSP 模型
    • Fork&Join 模型

    线程 & 锁模型

    Actor 模型

    CSP 模型

    CSP(communicating sequential processes)

    Go 语言中的并发程序主要是通过基于 CSP(communicating sequential processes)的 goroutine 和 channel 来实现,当然也支持使用传统的多线程共享内存的并发方式。

    Fork&Join 模型

    - +

    并发模型

    业界将如何实现并发编程总结归纳为各式各样的并发模型,常见的并发模型有以下几种:

    • 线程 & 锁模型
    • Actor 模型
    • CSP 模型
    • Fork&Join 模型

    线程 & 锁模型

    Actor 模型

    CSP 模型

    CSP(communicating sequential processes)

    Go 语言中的并发程序主要是通过基于 CSP(communicating sequential processes)的 goroutine 和 channel 来实现,当然也支持使用传统的多线程共享内存的并发方式。

    Fork&Join 模型

    + \ No newline at end of file diff --git "a/docs/study/think/\346\236\266\346\236\204/CAP\347\220\206\350\256\272/index.html" "b/docs/study/think/\346\236\266\346\236\204/CAP\347\220\206\350\256\272/index.html" index c89d24157..0b0e3e393 100644 --- "a/docs/study/think/\346\236\266\346\236\204/CAP\347\220\206\350\256\272/index.html" +++ "b/docs/study/think/\346\236\266\346\236\204/CAP\347\220\206\350\256\272/index.html" @@ -11,7 +11,7 @@ - + @@ -21,8 +21,8 @@ 2、一致性的概念,从强到弱,线性一致性、顺序一致性、因果一致性、单调一致性、最终一致性,CAP中的一致性应该是指线性一致性。 3、CAP中的一致性,与ACID中的一致性的区别。事务中的一致性,是指满足完整性约束条件,CAP中的一致性,是指读写一致性。 4、CAP中的可用性,与我们常说的高可用的区别。比如HBase、MongoDB属于CP架构,Cassandra、CounchDB属于AP系统,能说后者比前者更高可用么?应该不是。CAP中的可用性,是指在某一次读操作中,即便发现不一致,也要返回响应,即在合理时间内返回合理响应。我们常说的高可用,是指部分实例挂了,能自动摘除,并由其它实例继续提供服务,关键是冗余。 -5、哪些情况属于网络分区。网络故障造成的分区,属于。节点应用出现问题导致超时,属于。节点宕机或硬件故障,不属于。

    CAP 关注的粒度是数据,而不是整个系统。所以在 CAP 理论落地实践时,我们需要将系统内的数据按照不同的应用场景和要求进行分类,每类数据选择不同的策略(CP 还是 AP),而不是直接限定整个系统所有数据都是同一策略。

    CAP 是忽略网络延迟的。

    正常运行情况下,不存在 CP 和 AP 的选择,可以同时满足 CA。

    放弃并不等于什么都不做,需要为分区恢复后做准备。

    ACID 中的 A(Atomicity)和 CAP 中的 A(Availability)意义完全不同,而 ACID 中的 C 和 CAP 中的 C 名称虽然都是一致性,但含义也完全不一样。ACID 中的 C 是指数据库的数据完整性,而 CAP 中的 C 是指分布式节点中的数据一致性。再结合 ACID 的应用场景是数据库事务,CAP 关注的是分布式系统数据读写这个差异点来看,其实 CAP 和 ACID 的对比就类似关公战秦琼,虽然关公和秦琼都是武将,但其实没有太多可比性。

    BASE 是指基本可用(Basically Available)、软状态( Soft State)、最终一致性( Eventual Consistency),核心思想是即使无法做到强一致性(CAP 的一致性就是强一致性),但应用可以采用适合的方式达到最终一致性。

    BASE 理论本质上是对 CAP 的延伸和补充,更具体地说,是对 CAP 中 AP 方案的一个补充。CAP 理论是忽略延时的,而实际应用中延时是无法避免的。AP 方案中牺牲一致性只是指分区期间,而不是永远放弃一致性。

    个人理解

    设计分布式系统的两大初衷:横向扩展(scalability)和高可用性(availability)。“横向扩展”是为了解决单点瓶颈问题,进而保证高并发量下的「可用性」;“高可用性”是为了解决单点故障(SPOF)问题,进而保证部分节点故障时的「可用性」。由此可以看出,分布式系统的核心诉求就是「可用性」。这个「可用性」正是 CAP 中的 A:用户访问系统时,可以在合理的时间内得到合理的响应。

    为了保证「可用性」,一个分布式系统通常由多个节点组成。这些节点各自维护一份数据,但是不管用户访问到哪个节点,原则上都应该读取到相同的数据。为了达到这个效果,一个节点收到写入请求更新自己的数据后,必须将数据同步到其他节点,以保证各个节点的数据「一致性」。这个「一致性」正是 CAP 中的 C:用户访问系统时,可以读取到最近写入的数据。

    需要注意的是:CAP 并没有考虑数据同步的耗时,所以现实中的分布式系统,理论上无法保证任何时刻的绝对「一致性」;不同业务系统对上述耗时的敏感度不同。

    分布式系统中,节点之间的数据同步是基于网络的。由于网络本身固有的不可靠属性,极端情况下会出现网络不可用的情况,进而将网络两端的节点孤立开来,这就是所谓的“网络分区”现象。“网络分区”理论上是无法避免的,虽然实际发生的概率较低、时长较短。没有发生“网络分区”时,系统可以做到同时保证「一致性」和「可用性」。

    发生“网络分区”时,系统中多个节点的数据一定是不一致的,但是可以选择对用户表现出「一致性」,代价是牺牲「可用性」:将未能同步得到新数据的部分节点置为“不可用状态”,访问到这些节点的用户显然感知到系统是不可用的。发生“网络分区”时,系统也可以选择「可用性」,此时系统中各个节点都是可用的,只是返回给用户的数据是不一致的。这里的选择,就是 CAP 中的 P。

    分布式系统理论上一定会存在 P,所以理论上只能做到 CP 或 AP。如果套用 CAP 中离散的 C/A/P 的概念,理论上没有 P 的只可能是单点(子)系统,所以理论上可以做到 CA。但是单点(子)系统并不是分布式系统,所以其实并不在 CAP 理论的描述范围内。

    - +5、哪些情况属于网络分区。网络故障造成的分区,属于。节点应用出现问题导致超时,属于。节点宕机或硬件故障,不属于。

    CAP 关注的粒度是数据,而不是整个系统。所以在 CAP 理论落地实践时,我们需要将系统内的数据按照不同的应用场景和要求进行分类,每类数据选择不同的策略(CP 还是 AP),而不是直接限定整个系统所有数据都是同一策略。

    CAP 是忽略网络延迟的。

    正常运行情况下,不存在 CP 和 AP 的选择,可以同时满足 CA。

    放弃并不等于什么都不做,需要为分区恢复后做准备。

    ACID 中的 A(Atomicity)和 CAP 中的 A(Availability)意义完全不同,而 ACID 中的 C 和 CAP 中的 C 名称虽然都是一致性,但含义也完全不一样。ACID 中的 C 是指数据库的数据完整性,而 CAP 中的 C 是指分布式节点中的数据一致性。再结合 ACID 的应用场景是数据库事务,CAP 关注的是分布式系统数据读写这个差异点来看,其实 CAP 和 ACID 的对比就类似关公战秦琼,虽然关公和秦琼都是武将,但其实没有太多可比性。

    BASE 是指基本可用(Basically Available)、软状态( Soft State)、最终一致性( Eventual Consistency),核心思想是即使无法做到强一致性(CAP 的一致性就是强一致性),但应用可以采用适合的方式达到最终一致性。

    BASE 理论本质上是对 CAP 的延伸和补充,更具体地说,是对 CAP 中 AP 方案的一个补充。CAP 理论是忽略延时的,而实际应用中延时是无法避免的。AP 方案中牺牲一致性只是指分区期间,而不是永远放弃一致性。

    个人理解

    设计分布式系统的两大初衷:横向扩展(scalability)和高可用性(availability)。“横向扩展”是为了解决单点瓶颈问题,进而保证高并发量下的「可用性」;“高可用性”是为了解决单点故障(SPOF)问题,进而保证部分节点故障时的「可用性」。由此可以看出,分布式系统的核心诉求就是「可用性」。这个「可用性」正是 CAP 中的 A:用户访问系统时,可以在合理的时间内得到合理的响应。

    为了保证「可用性」,一个分布式系统通常由多个节点组成。这些节点各自维护一份数据,但是不管用户访问到哪个节点,原则上都应该读取到相同的数据。为了达到这个效果,一个节点收到写入请求更新自己的数据后,必须将数据同步到其他节点,以保证各个节点的数据「一致性」。这个「一致性」正是 CAP 中的 C:用户访问系统时,可以读取到最近写入的数据。

    需要注意的是:CAP 并没有考虑数据同步的耗时,所以现实中的分布式系统,理论上无法保证任何时刻的绝对「一致性」;不同业务系统对上述耗时的敏感度不同。

    分布式系统中,节点之间的数据同步是基于网络的。由于网络本身固有的不可靠属性,极端情况下会出现网络不可用的情况,进而将网络两端的节点孤立开来,这就是所谓的“网络分区”现象。“网络分区”理论上是无法避免的,虽然实际发生的概率较低、时长较短。没有发生“网络分区”时,系统可以做到同时保证「一致性」和「可用性」。

    发生“网络分区”时,系统中多个节点的数据一定是不一致的,但是可以选择对用户表现出「一致性」,代价是牺牲「可用性」:将未能同步得到新数据的部分节点置为“不可用状态”,访问到这些节点的用户显然感知到系统是不可用的。发生“网络分区”时,系统也可以选择「可用性」,此时系统中各个节点都是可用的,只是返回给用户的数据是不一致的。这里的选择,就是 CAP 中的 P。

    分布式系统理论上一定会存在 P,所以理论上只能做到 CP 或 AP。如果套用 CAP 中离散的 C/A/P 的概念,理论上没有 P 的只可能是单点(子)系统,所以理论上可以做到 CA。但是单点(子)系统并不是分布式系统,所以其实并不在 CAP 理论的描述范围内。

    + \ No newline at end of file diff --git "a/docs/study/think/\346\236\266\346\236\204/index.html" "b/docs/study/think/\346\236\266\346\236\204/index.html" index 17a72b80d..97ccc720b 100644 --- "a/docs/study/think/\346\236\266\346\236\204/index.html" +++ "b/docs/study/think/\346\236\266\346\236\204/index.html" @@ -11,14 +11,14 @@ - +

    架构

    定义

    架构这个词最早是跟随着建筑出现的,进入到软件行业后,它的含义有了一些变化,但最基础的含义还是没有变的。本质上来说,架构是一个设计动作和实现动作;设计动作描述的是勾勒出满足客户战略规划需求的产品;实现动作描述的是将构件组合成结构的过程。

    分类

    依据架构的定义,可以将架构分类为产品架构和软件架构两个大类。 -在这两个大类下,还可以继续划分子类,如下:

    产品架构

    • 业务架构

    • 应用架构

    • 解决方案架构

    软件架构

    • 数据架构

    • 基础结构架构

    • 特定技术架构

    上面只是列出了一部分架构子分类,理论上还可以继续划分,但在大多数的实际生产中,通常不会有这么详细的分类,常态是软件架构与产品架构都由一个人负责实现。

    架构师的能力

    1

    参考

    1. 架构的本质
    - +在这两个大类下,还可以继续划分子类,如下:

    产品架构

    • 业务架构

    • 应用架构

    • 解决方案架构

    软件架构

    • 数据架构

    • 基础结构架构

    • 特定技术架构

    上面只是列出了一部分架构子分类,理论上还可以继续划分,但在大多数的实际生产中,通常不会有这么详细的分类,常态是软件架构与产品架构都由一个人负责实现。

    架构师的能力

    1

    参考

    1. 架构的本质
    + \ No newline at end of file diff --git "a/docs/study/think/\346\236\266\346\236\204/\345\274\202\345\234\260\345\244\232\346\264\273\346\236\266\346\236\204/index.html" "b/docs/study/think/\346\236\266\346\236\204/\345\274\202\345\234\260\345\244\232\346\264\273\346\236\266\346\236\204/index.html" index 34711c49d..5b9095c2b 100644 --- "a/docs/study/think/\346\236\266\346\236\204/\345\274\202\345\234\260\345\244\232\346\264\273\346\236\266\346\236\204/index.html" +++ "b/docs/study/think/\346\236\266\346\236\204/\345\274\202\345\234\260\345\244\232\346\264\273\346\236\266\346\236\204/index.html" @@ -11,13 +11,13 @@ - +
    -

    异地多活架构

    干货|搞懂「异地多活」,看这篇就够了

    image.png

    单机架构

    【没有数据备份】

    【有数据备份、非实时】

    【有数据备份、实时、主从数据库、非读写分离】

    【有数据备份、实时、主从数据库、读写分离】

    分布式架构【同城一个机房】

    【没有数据备份】

    【有数据备份、非实时】

    【有数据备份、实时、主从数据库、非读写分离】

    【有数据备份、实时、主从数据库、读写分离】

    分布式架构【同城2个机房】

    【冷备】

    【热备】

    【同城双活】

    分布式架构【两城3个机房】

    在【同城双活】的基础上新增了一个异地(非一个城市)机房。

    【两地三中心、灾备】

    分布式架构【伪异地双活】

    分布式架构【异地双活】

    路由层的规则怎么定,一般是根据业务类型、哈希算法(例如用户ID)、地理位置等

    image.png

    分布式架构【异地多活】

    【网状】

    image.png

    【星状】

    image.png

    - +

    异地多活架构

    干货|搞懂「异地多活」,看这篇就够了

    image.png

    单机架构

    【没有数据备份】

    【有数据备份、非实时】

    【有数据备份、实时、主从数据库、非读写分离】

    【有数据备份、实时、主从数据库、读写分离】

    分布式架构【同城一个机房】

    【没有数据备份】

    【有数据备份、非实时】

    【有数据备份、实时、主从数据库、非读写分离】

    【有数据备份、实时、主从数据库、读写分离】

    分布式架构【同城2个机房】

    【冷备】

    【热备】

    【同城双活】

    分布式架构【两城3个机房】

    在【同城双活】的基础上新增了一个异地(非一个城市)机房。

    【两地三中心、灾备】

    分布式架构【伪异地双活】

    分布式架构【异地双活】

    路由层的规则怎么定,一般是根据业务类型、哈希算法(例如用户ID)、地理位置等

    image.png

    分布式架构【异地多活】

    【网状】

    image.png

    【星状】

    image.png

    + \ No newline at end of file diff --git "a/docs/study/think/\346\236\266\346\236\204/\346\212\200\346\234\257\344\270\255\345\217\260/index.html" "b/docs/study/think/\346\236\266\346\236\204/\346\212\200\346\234\257\344\270\255\345\217\260/index.html" index 3e3be41f5..deffb2a11 100644 --- "a/docs/study/think/\346\236\266\346\236\204/\346\212\200\346\234\257\344\270\255\345\217\260/index.html" +++ "b/docs/study/think/\346\236\266\346\236\204/\346\212\200\346\234\257\344\270\255\345\217\260/index.html" @@ -11,13 +11,13 @@ - + - +
    + \ No newline at end of file diff --git "a/docs/study/think/\346\236\266\346\236\204/\346\236\266\346\236\204\345\233\276\347\244\272\344\276\213/index.html" "b/docs/study/think/\346\236\266\346\236\204/\346\236\266\346\236\204\345\233\276\347\244\272\344\276\213/index.html" index 40af9fa6a..5626de48c 100644 --- "a/docs/study/think/\346\236\266\346\236\204/\346\236\266\346\236\204\345\233\276\347\244\272\344\276\213/index.html" +++ "b/docs/study/think/\346\236\266\346\236\204/\346\236\266\346\236\204\345\233\276\347\244\272\344\276\213/index.html" @@ -11,13 +11,13 @@ - + - +
    + \ No newline at end of file diff --git "a/docs/study/think/\346\236\266\346\236\204/\350\264\237\350\275\275\345\235\207\350\241\241/index.html" "b/docs/study/think/\346\236\266\346\236\204/\350\264\237\350\275\275\345\235\207\350\241\241/index.html" index 91c25405b..b8b73ff46 100644 --- "a/docs/study/think/\346\236\266\346\236\204/\350\264\237\350\275\275\345\235\207\350\241\241/index.html" +++ "b/docs/study/think/\346\236\266\346\236\204/\350\264\237\350\275\275\345\235\207\350\241\241/index.html" @@ -11,13 +11,13 @@ - +
    -

    负载均衡

    DNS负载

    DNS 是最简单也是最常见的负载均衡方式,一般用来实现地理级别的均衡。例如,北方的用户访问北京的机房,南方的用户访问深圳的机房。DNS 负载均衡的本质是 DNS 解析同一个域名可以返回不同的 IP 地址。例如,同样是 www.baidu.com,北方用户解析后获取的地址是 61.135.165.224(这是北京机房的 IP),南方用户解析后获取的地址是 14.215.177.38(这是深圳机房的 IP)。

    DNS 负载均衡实现简单、成本低,但也存在粒度太粗、负载均衡算法少等缺点。仔细分析一下优缺点,其优点有:

    • 简单、成本低:负载均衡工作交给 DNS 服务器处理,无须自己开发或者维护负载均衡设备。
    • 就近访问,提升访问速度:DNS 解析时可以根据请求来源 IP,解析成距离用户最近的服务器地址,可以加快访问速度,改善性能。

    缺点有:

    • 更新不及时:DNS 缓存的时间比较长,修改 DNS 配置后,由于缓存的原因,还是有很多用户会继续访问修改前的 IP,这样的访问会失败,达不到负载均衡的目的,并且也影响用户正常使用业务。
    • 扩展性差:DNS 负载均衡的控制权在域名商那里,无法根据业务特点针对其做更多的定制化功能和扩展特性。
    • 分配策略比较简单:DNS 负载均衡支持的算法少;不能区分服务器的差异(不能根据系统与服务的状态来判断负载);也无法感知后端服务器的状态。

    针对 DNS 负载均衡的一些缺点,对于时延和故障敏感的业务,有一些公司自己实现了 HTTP-DNS 的功能,即使用 HTTP 协议实现一个私有的 DNS 系统。这样的方案和通用的 DNS 优缺点正好相反。

    硬件负载

    硬件负载均衡是通过单独的硬件设备来实现负载均衡功能,这类设备和路由器、交换机类似,可以理解为一个用于负载均衡的基础网络设备。目前业界典型的硬件负载均衡设备有两款:F5 和 A10。这类设备性能强劲、功能强大,但价格都不便宜,一般只有“土豪”公司才会考虑使用此类设备。普通业务量级的公司一是负担不起,二是业务量没那么大,用这些设备也是浪费。

    硬件负载均衡的优点是:

    • 功能强大:全面支持各层级的负载均衡,支持全面的负载均衡算法,支持全局负载均衡。
    • 性能强大:对比一下,软件负载均衡支持到 10 万级并发已经很厉害了,硬件负载均衡可以支持 100 万以上的并发。
    • 稳定性高:商用硬件负载均衡,经过了良好的严格测试,经过大规模使用,稳定性高。
    • 支持安全防护:硬件均衡设备除具备负载均衡功能外,还具备防火墙、防 DDoS 攻击等安全功能。

    硬件负载均衡的缺点是:

    • 价格昂贵:最普通的一台 F5 就是一台“马 6”,好一点的就是“Q7”了。
    • 扩展能力差:硬件设备,可以根据业务进行配置,但无法进行扩展和定制。

    软件负载

    软件负载均衡通过负载均衡软件来实现负载均衡功能,常见的有 Nginx 和 LVS,其中 Nginx 是软件的 7 层负载均衡,LVS 是 Linux 内核的 4 层负载均衡。4 层和 7 层的区别就在于协议和灵活性,Nginx 支持 HTTP、E-mail 协议;而 LVS 是 4 层负载均衡,和协议无关,几乎所有应用都可以做,例如,聊天、数据库等。

    软件和硬件的最主要区别就在于性能,硬件负载均衡性能远远高于软件负载均衡性能。Nginx 的性能是万级,一般的 Linux 服务器上装一个 Nginx 大概能到 5 万 / 秒;LVS 的性能是十万级,据说可达到 80 万 / 秒;而 F5 性能是百万级,从 200 万 / 秒到 800 万 / 秒都有(数据来源网络,仅供参考,如需采用请根据实际业务场景进行性能测试)。当然,软件负载均衡的最大优势是便宜,一台普通的 Linux 服务器批发价大概就是 1 万元左右,相比 F5 的价格,那就是自行车和宝马的区别了。

    软件负载均衡的优点:

    • 简单:无论是部署还是维护都比较简单。
    • 便宜:只要买个 Linux 服务器,装上软件即可。
    • 灵活:4 层和 7 层负载均衡可以根据业务进行选择;也可以根据业务进行比较方便的扩展,例如,可以通过 Nginx 的插件来实现业务的定制化功能。

    其实下面的缺点都是和硬件负载均衡相比的,并不是说软件负载均衡没法用。

    • 性能一般:一个 Nginx 大约能支撑 5 万并发。
    • 功能没有硬件负载均衡那么强大。
    • 一般不具备防火墙和防 DDoS 攻击等安全功能。

    使用总结

    前面我们介绍了 3 种常见的负载均衡机制:DNS 负载均衡、硬件负载均衡、软件负载均衡,每种方式都有一些优缺点,但并不意味着在实际应用中只能基于它们的优缺点进行非此即彼的选择,反而是基于它们的优缺点进行组合使用。具体来说,组合的基本原则为:DNS 负载均衡用于实现地理级别的负载均衡;硬件负载均衡用于实现集群级别的负载均衡;软件负载均衡用于实现机器级别的负载均衡。

    image.png

    算法总结

    负载均衡算法数量较多,而且可以根据一些业务特性进行定制开发,抛开细节上的差异,根据算法期望达到的目的,大体上可以分为下面几类。

    • 任务平分类:负载均衡系统将收到的任务平均分配给服务器进行处理,这里的“平均”可以是绝对数量的平均,也可以是比例或者权重上的平均。
    • 负载均衡类:负载均衡系统根据服务器的负载来进行分配,这里的负载并不一定是通常意义上我们说的“CPU 负载”,而是系统当前的压力,可以用 CPU 负载来衡量,也可以用连接数、I/O 使用率、网卡吞吐量等来衡量系统的压力。
    • 性能最优类:负载均衡系统根据服务器的响应时间来进行任务分配,优先将新任务分配给响应最快的服务器。
    • Hash 类:负载均衡系统根据任务中的某些关键信息进行 Hash 运算,将相同 Hash 值的请求分配到同一台服务器上。常见的有源地址 Hash、目标地址 Hash、session id hash、用户 ID Hash 等。
    - +

    负载均衡

    DNS负载

    DNS 是最简单也是最常见的负载均衡方式,一般用来实现地理级别的均衡。例如,北方的用户访问北京的机房,南方的用户访问深圳的机房。DNS 负载均衡的本质是 DNS 解析同一个域名可以返回不同的 IP 地址。例如,同样是 www.baidu.com,北方用户解析后获取的地址是 61.135.165.224(这是北京机房的 IP),南方用户解析后获取的地址是 14.215.177.38(这是深圳机房的 IP)。

    DNS 负载均衡实现简单、成本低,但也存在粒度太粗、负载均衡算法少等缺点。仔细分析一下优缺点,其优点有:

    • 简单、成本低:负载均衡工作交给 DNS 服务器处理,无须自己开发或者维护负载均衡设备。
    • 就近访问,提升访问速度:DNS 解析时可以根据请求来源 IP,解析成距离用户最近的服务器地址,可以加快访问速度,改善性能。

    缺点有:

    • 更新不及时:DNS 缓存的时间比较长,修改 DNS 配置后,由于缓存的原因,还是有很多用户会继续访问修改前的 IP,这样的访问会失败,达不到负载均衡的目的,并且也影响用户正常使用业务。
    • 扩展性差:DNS 负载均衡的控制权在域名商那里,无法根据业务特点针对其做更多的定制化功能和扩展特性。
    • 分配策略比较简单:DNS 负载均衡支持的算法少;不能区分服务器的差异(不能根据系统与服务的状态来判断负载);也无法感知后端服务器的状态。

    针对 DNS 负载均衡的一些缺点,对于时延和故障敏感的业务,有一些公司自己实现了 HTTP-DNS 的功能,即使用 HTTP 协议实现一个私有的 DNS 系统。这样的方案和通用的 DNS 优缺点正好相反。

    硬件负载

    硬件负载均衡是通过单独的硬件设备来实现负载均衡功能,这类设备和路由器、交换机类似,可以理解为一个用于负载均衡的基础网络设备。目前业界典型的硬件负载均衡设备有两款:F5 和 A10。这类设备性能强劲、功能强大,但价格都不便宜,一般只有“土豪”公司才会考虑使用此类设备。普通业务量级的公司一是负担不起,二是业务量没那么大,用这些设备也是浪费。

    硬件负载均衡的优点是:

    • 功能强大:全面支持各层级的负载均衡,支持全面的负载均衡算法,支持全局负载均衡。
    • 性能强大:对比一下,软件负载均衡支持到 10 万级并发已经很厉害了,硬件负载均衡可以支持 100 万以上的并发。
    • 稳定性高:商用硬件负载均衡,经过了良好的严格测试,经过大规模使用,稳定性高。
    • 支持安全防护:硬件均衡设备除具备负载均衡功能外,还具备防火墙、防 DDoS 攻击等安全功能。

    硬件负载均衡的缺点是:

    • 价格昂贵:最普通的一台 F5 就是一台“马 6”,好一点的就是“Q7”了。
    • 扩展能力差:硬件设备,可以根据业务进行配置,但无法进行扩展和定制。

    软件负载

    软件负载均衡通过负载均衡软件来实现负载均衡功能,常见的有 Nginx 和 LVS,其中 Nginx 是软件的 7 层负载均衡,LVS 是 Linux 内核的 4 层负载均衡。4 层和 7 层的区别就在于协议和灵活性,Nginx 支持 HTTP、E-mail 协议;而 LVS 是 4 层负载均衡,和协议无关,几乎所有应用都可以做,例如,聊天、数据库等。

    软件和硬件的最主要区别就在于性能,硬件负载均衡性能远远高于软件负载均衡性能。Nginx 的性能是万级,一般的 Linux 服务器上装一个 Nginx 大概能到 5 万 / 秒;LVS 的性能是十万级,据说可达到 80 万 / 秒;而 F5 性能是百万级,从 200 万 / 秒到 800 万 / 秒都有(数据来源网络,仅供参考,如需采用请根据实际业务场景进行性能测试)。当然,软件负载均衡的最大优势是便宜,一台普通的 Linux 服务器批发价大概就是 1 万元左右,相比 F5 的价格,那就是自行车和宝马的区别了。

    软件负载均衡的优点:

    • 简单:无论是部署还是维护都比较简单。
    • 便宜:只要买个 Linux 服务器,装上软件即可。
    • 灵活:4 层和 7 层负载均衡可以根据业务进行选择;也可以根据业务进行比较方便的扩展,例如,可以通过 Nginx 的插件来实现业务的定制化功能。

    其实下面的缺点都是和硬件负载均衡相比的,并不是说软件负载均衡没法用。

    • 性能一般:一个 Nginx 大约能支撑 5 万并发。
    • 功能没有硬件负载均衡那么强大。
    • 一般不具备防火墙和防 DDoS 攻击等安全功能。

    使用总结

    前面我们介绍了 3 种常见的负载均衡机制:DNS 负载均衡、硬件负载均衡、软件负载均衡,每种方式都有一些优缺点,但并不意味着在实际应用中只能基于它们的优缺点进行非此即彼的选择,反而是基于它们的优缺点进行组合使用。具体来说,组合的基本原则为:DNS 负载均衡用于实现地理级别的负载均衡;硬件负载均衡用于实现集群级别的负载均衡;软件负载均衡用于实现机器级别的负载均衡。

    image.png

    算法总结

    负载均衡算法数量较多,而且可以根据一些业务特性进行定制开发,抛开细节上的差异,根据算法期望达到的目的,大体上可以分为下面几类。

    • 任务平分类:负载均衡系统将收到的任务平均分配给服务器进行处理,这里的“平均”可以是绝对数量的平均,也可以是比例或者权重上的平均。
    • 负载均衡类:负载均衡系统根据服务器的负载来进行分配,这里的负载并不一定是通常意义上我们说的“CPU 负载”,而是系统当前的压力,可以用 CPU 负载来衡量,也可以用连接数、I/O 使用率、网卡吞吐量等来衡量系统的压力。
    • 性能最优类:负载均衡系统根据服务器的响应时间来进行任务分配,优先将新任务分配给响应最快的服务器。
    • Hash 类:负载均衡系统根据任务中的某些关键信息进行 Hash 运算,将相同 Hash 值的请求分配到同一台服务器上。常见的有源地址 Hash、目标地址 Hash、session id hash、用户 ID Hash 等。
    + \ No newline at end of file diff --git "a/docs/study/think/\346\236\266\346\236\204/\351\253\230\346\200\247\350\203\275\346\236\266\346\236\204\346\250\241\345\274\217/index.html" "b/docs/study/think/\346\236\266\346\236\204/\351\253\230\346\200\247\350\203\275\346\236\266\346\236\204\346\250\241\345\274\217/index.html" index b113627bc..bf58f1be4 100644 --- "a/docs/study/think/\346\236\266\346\236\204/\351\253\230\346\200\247\350\203\275\346\236\266\346\236\204\346\250\241\345\274\217/index.html" +++ "b/docs/study/think/\346\236\266\346\236\204/\351\253\230\346\200\247\350\203\275\346\236\266\346\236\204\346\250\241\345\274\217/index.html" @@ -11,14 +11,14 @@ - +

    高性能架构模式

    虽然近十年来各种存储技术飞速发展,但关系数据库由于其 ACID 的特性和功能强大的 SQL 查询,目前还是各种业务系统中关键和核心的存储系统,很多场景下高性能的设计最核心的部分就是关系数据库的设计。

    不管是为了满足业务发展的需要,还是为了提升自己的竞争力,关系数据库厂商(Oracle、DB2、MySQL 等)在优化和提升单个数据库服务器的性能方面也做了非常多的技术优化和改进。但业务发展速度和数据增长速度,远远超出数据库厂商的优化速度,尤其是互联网业务兴起之后,海量用户加上海量数据的特点,单个数据库服务器已经难以满足业务需要,必须考虑数据库集群的方式来提升性能。

    高性能数据库集群的第一种方式是“读写分离”,其本质是将访问压力分散到集群中的多个节点,但是没有分散存储压力;第二种方式是“分库分表”,既可以分散访问压力,又可以分散存储压力。

    读写分离原理

    读写分离的基本原理是将数据库读写操作分散到不同的节点上,下面是其基本架构图。

    image.png

    读写分离的实现逻辑并不复杂,但有两个细节点将引入设计复杂度:主从复制延迟和分配机制。

    解决主从复制延迟有几种常见的方法:

    1. 写操作后的读操作指定发给数据库主服务器
    2. 读从机失败后再读一次主机
    3. 关键业务读写操作全部指向主机,非关键业务采用读写分离

    将读写操作区分开来,然后访问不同的数据库服务器,一般有两种方式:程序代码封装和中间件封装。

    程序代码封装的方式,在目前开源的实现方案中,淘宝的 TDDL(Taobao Distributed Data Layer,外号: 头都大了)是比较有名的。它是一个通用数据访问层,所有功能封装在 jar 包中提供给业务代码调用。

    中间件封装指的是独立一套系统出来,实现读写操作分离和数据库服务器连接的管理。中间件对业务服务器提供 SQL 兼容的协议,业务服务器无须自己进行读写分离。对于业务服务器来说,访问中间件和访问数据库没有区别,事实上在业务服务器看来,中间件就是一个数据库服务器。

    目前的开源数据库中间件方案中,MySQL 官方先是提供了 MySQL Proxy,但 MySQL Proxy 一直没有正式 GA,现在 MySQL 官方推荐 MySQL Router。奇虎 360 公司也开源了自己的数据库中间件 Atlas,Atlas 是基于 MySQL Proxy 实现的。

    分库分表

    业务分库指的是按照业务模块将数据分散到不同的数据库服务器。虽然业务分库能够分散存储和访问压力,但同时也带来了新的问题,接下来我进行详细分析。

    1. join 操作问题,业务分库后,原本在同一个数据库中的表分散到不同数据库中,导致无法使用 SQL 的 join 查询。
    2. 事务问题,原本在同一个数据库中不同的表可以在同一个事务中修改,业务分库后,表分散到不同的数据库中,无法通过事务统一修改。虽然数据库厂商提供了一些分布式事务的解决方案(例如,MySQL 的 XA),但性能实在太低,与高性能存储的目标是相违背的。
    3. 成本问题

    将不同业务数据分散存储到不同的数据库服务器,能够支撑百万甚至千万用户规模的业务,但如果业务继续发展,同一业务的单表数据也会达到单台数据库服务器的处理瓶颈。例如,淘宝的几亿用户数据,如果全部存放在一台数据库服务器的一张表中,肯定是无法满足性能要求的,此时就需要对单表数据进行拆分。

    单表数据拆分有两种方式:垂直分表和水平分表。示意图如下: -image.png

    - +image.png

    + \ No newline at end of file diff --git "a/docs/study/think/\346\246\202\345\277\265\346\250\241\345\236\213/Actor Model/index.html" "b/docs/study/think/\346\246\202\345\277\265\346\250\241\345\236\213/Actor Model/index.html" index d99a9a180..505bd6bb4 100644 --- "a/docs/study/think/\346\246\202\345\277\265\346\250\241\345\236\213/Actor Model/index.html" +++ "b/docs/study/think/\346\246\202\345\277\265\346\250\241\345\236\213/Actor Model/index.html" @@ -11,13 +11,13 @@ - +
    -

    Actor Model

    Actor模型是一个概念模型,用于处理并发计算。它定义了一系列系统组件应该如何动作和交互的通用规则,最著名的使用这套规则的编程语言是Erlang。

    在计算机科学中,参与者模式(英语:Actor model)是一种并行运算上的模型。“参与者”是一种程序上的抽象概念,被视为并行运算的基本单元:当一个参与者接收到一则讯息,它可以做出一些决策、建立更多的参与者、传送更多的讯息、决定要如何回答接下来的讯息。

    发送者与已经发送的消息解耦,是参与者模型的根本优势。这允许进行异步通信,同时满足消息传递的控制结构。

    消息接收者是通过地址区分的,有时也被称作“邮件地址”。因此参与者只能和它拥有地址的参与者通信。它可以通过接受到的信息获取地址,或者获取它创建的参与者的地址。

    参与者模型的特征是,参与者内部或之间进行并行计算,参与者可以动态创建,参与者地址包含在消息中,交互只有通过直接的异步消息通信,不限制消息到达的顺序。

    参考

    - +

    Actor Model

    Actor模型是一个概念模型,用于处理并发计算。它定义了一系列系统组件应该如何动作和交互的通用规则,最著名的使用这套规则的编程语言是Erlang。

    在计算机科学中,参与者模式(英语:Actor model)是一种并行运算上的模型。“参与者”是一种程序上的抽象概念,被视为并行运算的基本单元:当一个参与者接收到一则讯息,它可以做出一些决策、建立更多的参与者、传送更多的讯息、决定要如何回答接下来的讯息。

    发送者与已经发送的消息解耦,是参与者模型的根本优势。这允许进行异步通信,同时满足消息传递的控制结构。

    消息接收者是通过地址区分的,有时也被称作“邮件地址”。因此参与者只能和它拥有地址的参与者通信。它可以通过接受到的信息获取地址,或者获取它创建的参与者的地址。

    参与者模型的特征是,参与者内部或之间进行并行计算,参与者可以动态创建,参与者地址包含在消息中,交互只有通过直接的异步消息通信,不限制消息到达的顺序。

    参考

    + \ No newline at end of file diff --git "a/docs/study/think/\346\246\202\345\277\265\346\250\241\345\236\213/Proactor/index.html" "b/docs/study/think/\346\246\202\345\277\265\346\250\241\345\236\213/Proactor/index.html" index 8591dd3c3..f5fdb01fb 100644 --- "a/docs/study/think/\346\246\202\345\277\265\346\250\241\345\236\213/Proactor/index.html" +++ "b/docs/study/think/\346\246\202\345\277\265\346\250\241\345\236\213/Proactor/index.html" @@ -11,13 +11,13 @@ - +
    -

    Proactor

    Reactor 是非阻塞同步网络模型,因为真正的 read 和 send 操作都需要用户进程同步操作。这里的“同步”指用户进程在执行 read 和 send 这类 I/O 操作的时候是同步的,如果把 I/O 操作改为异步就能够进一步提升性能,这就是异步网络模型 Proactor。

    Proactor 中文翻译为“前摄器”比较难理解,与其类似的单词是 proactive,含义为“主动的”,因此我们照猫画虎翻译为“主动器”反而更好理解。Reactor 可以理解为“来了事件我通知你,你来处理”,而 Proactor 可以理解为“来了事件我来处理,处理完了我通知你”。这里的“我”就是操作系统内核,“事件”就是有新连接、有数据可读、有数据可写的这些 I/O 事件,“你”就是我们的程序代码。

    理论上 Proactor 比 Reactor 效率要高一些,异步 I/O 能够充分利用 DMA 特性,让 I/O 操作与计算重叠,但要实现真正的异步 I/O,操作系统需要做大量的工作。目前 Windows 下通过 IOCP 实现了真正的异步 I/O,而在 Linux 系统下的 AIO 并不完善,因此在 Linux 下实现高并发网络编程时都是以 Reactor 模式为主。所以即使 Boost.Asio 号称实现了 Proactor 模型,其实它在 Windows 下采用 IOCP,而在 Linux 下是用 Reactor 模式(采用 epoll)模拟出来的异步模型。

    - +

    Proactor

    Reactor 是非阻塞同步网络模型,因为真正的 read 和 send 操作都需要用户进程同步操作。这里的“同步”指用户进程在执行 read 和 send 这类 I/O 操作的时候是同步的,如果把 I/O 操作改为异步就能够进一步提升性能,这就是异步网络模型 Proactor。

    Proactor 中文翻译为“前摄器”比较难理解,与其类似的单词是 proactive,含义为“主动的”,因此我们照猫画虎翻译为“主动器”反而更好理解。Reactor 可以理解为“来了事件我通知你,你来处理”,而 Proactor 可以理解为“来了事件我来处理,处理完了我通知你”。这里的“我”就是操作系统内核,“事件”就是有新连接、有数据可读、有数据可写的这些 I/O 事件,“你”就是我们的程序代码。

    理论上 Proactor 比 Reactor 效率要高一些,异步 I/O 能够充分利用 DMA 特性,让 I/O 操作与计算重叠,但要实现真正的异步 I/O,操作系统需要做大量的工作。目前 Windows 下通过 IOCP 实现了真正的异步 I/O,而在 Linux 系统下的 AIO 并不完善,因此在 Linux 下实现高并发网络编程时都是以 Reactor 模式为主。所以即使 Boost.Asio 号称实现了 Proactor 模型,其实它在 Windows 下采用 IOCP,而在 Linux 下是用 Reactor 模式(采用 epoll)模拟出来的异步模型。

    + \ No newline at end of file diff --git "a/docs/study/think/\346\246\202\345\277\265\346\250\241\345\236\213/Reactor\346\250\241\345\274\217\345\217\215\345\272\224\345\240\206\346\250\241\345\274\217/index.html" "b/docs/study/think/\346\246\202\345\277\265\346\250\241\345\236\213/Reactor\346\250\241\345\274\217\345\217\215\345\272\224\345\240\206\346\250\241\345\274\217/index.html" index f50acbf02..03c8ab211 100644 --- "a/docs/study/think/\346\246\202\345\277\265\346\250\241\345\236\213/Reactor\346\250\241\345\274\217\345\217\215\345\272\224\345\240\206\346\250\241\345\274\217/index.html" +++ "b/docs/study/think/\346\246\202\345\277\265\346\250\241\345\236\213/Reactor\346\250\241\345\274\217\345\217\215\345\272\224\345\240\206\346\250\241\345\274\217/index.html" @@ -11,14 +11,14 @@ - +

    Reactor模式反应堆模式

    5种I/O模型比较

    image.png

    简介

    Reactor(反应堆模式)是libevent的中心思想,常规的I/O多路复用中采用select和poll、epoll等来实现。而Reactor是将上述机制进一步封装,通俗的来讲,就是通过回调机制实现。我们只需将事件的接口注册到Reactor上,当事件发生之后,会回调注册的接口。

    Reactor是一种事件驱动机制。和普通函数调用的不同之处在于:应用程序不是主动的调用某个API完成处理,而是恰恰相反,Reactor逆置了事件处理流程,应用程序需要提供相应的接口并注册到Reactor上,如果相应的事件发生,Reactor将主动调用应用程序注册的接口,这些接口又称为“回调函数”。

    Reactor 模式也叫 Dispatcher 模式(在很多开源的系统里面会看到这个名称的类,其实就是实现 Reactor 模式的),更加贴近模式本身的含义,即 I/O 多路复用统一监听事件,收到事件后分配(Dispatch)给某个进程。

    Reactor 模式的核心组成部分包括 Reactor 和处理资源池(进程池或线程池),其中 Reactor 负责监听和分配事件,处理资源池负责处理事件。初看 Reactor 的实现是比较简单的,但实际上结合不同的业务场景,Reactor 模式的具体实现方案灵活多变,主要体现在:Reactor 的数量可以变化:可以是一个 Reactor,也可以是多个 Reactor。资源池的数量可以变化:以进程为例,可以是单个进程,也可以是多个进程(线程类似)。将上面两个因素排列组合一下,理论上可以有 4 种选择,但由于“多 Reactor 单进程”实现方案相比“单 Reactor 单进程”方案,既复杂又没有性能优势,因此“多 Reactor 单进程”方案仅仅是一个理论上的方案,实际没有应用。最终 Reactor 模式有这三种典型的实现方案:单 Reactor 单进程 / 线程。单 Reactor 多线程。多 Reactor 多进程 / 线程。以上方案具体选择进程还是线程,更多地是和编程语言及平台相关。例如,Java 语言一般使用线程(例如,Netty),C 语言使用进程和线程都可以。例如,Nginx 使用进程,Memcache 使用线程。

    单 Reactor 单进程的方案在实践中应用场景不多,只适用于业务处理非常快速的场景,目前比较著名的开源软件中使用单 Reactor 单进程的是 Redis。需要注意的是,C 语言编写系统的一般使用单 Reactor 单进程,因为没有必要在进程中再创建线程;而 Java 语言编写的一般使用单 Reactor 单线程,因为 Java 虚拟机是一个进程,虚拟机中有很多线程,业务线程只是其中的一个线程而已。

    目前著名的开源系统 Nginx 采用的是多 Reactor 多进程,采用多 Reactor 多线程的实现有 Memcache 和 Netty。

    Reactor模式结构

    在Reactor模式中,有以下几个关键的参与者。

    1. 描述符(handle)由操作系统提供,用于识别每一个事件,如Socket描述符、文件描述符等。在Linux中,它用一个整数来表示。事件可以来自外部,如来自客户端的连接请求、数据等。事件也可以来自内部,如定时器事件。
    2. 同步事件分离器(demultiplexer)是一个函数,用来等待一个或多个事件的发生。调用者会被阻塞,直到分离器分离的描述符集上有事件发生。Linux的select函数是一个经常被使用的分离器。
    3. 事件处理器接口(event handler)是由一个或多个模板函数组成的接口。这些模板函数描述了和应用程序相关的对某个事件的操作。 具体的事件处理器:是事件处理器接口的实现。它实现了应用程序提供的某个服务。每个具体的事件处理器总和一个描述符相关。它使用描述符来识别事件、识别应用程序提供的服务。
    4. Reactor 管理器(reactor):定义了一些接口,用于应用程序控制事件调度,以及应用程序注册、删除事件处理器和相关的描述符。它是事件处理器的调度核心。 Reactor管理器使用同步事件分离器来等待事件的发生。一旦事件发生,Reactor管理器先是分离每个事件,然后调度事件处理器,最后调用相关的模 板函数来处理这个事件。
    5. 通过上述分析,我们注意到,是Reactor管理器而不是应用程序负责等待事件、分离事件和调度事件。实际上,Reactor管理器并没有被具体的 事件处理器调用,而是管理器调度具体的事件处理器,由事件处理器对发生的事件做出处理。这就是类似Hollywood原则的“反向控制”。应用程序要做的 仅仅是实现一个具体的事件处理器,然后把它注册到Reactor管理器中。接下来的工作由管理器来完成。这些参与者的相互关系如下图所示。

    image.png

    Reactor 处理步骤

    1. 初始化一个Reactor管理器
    2. 初始化事件处理器,设置事件源及回调函数
    3. 将事件处理器注册到Reactor管理器上
    4. 注册该事件
    5. 进入循环等待事件发生并处理

    优点

    1. 响应快,不必为单个同步时间所阻塞,虽然Reactor本身依然是同步的;
    2. 编程相对简单,可以最大程度的避免复杂的多线程及同步问题,并且避免了多线程/进程的切换开销;
    3. 可扩展性,可以方便的通过增加Reactor实例个数来充分利用CPU资源;
    4. 可复用性,reactor框架本身与具体事件处理逻辑无关,具有很高的复用性;

    -

    - +

    + \ No newline at end of file diff --git "a/docs/study/think/\347\274\223\345\255\230/index.html" "b/docs/study/think/\347\274\223\345\255\230/index.html" index 09401ffd8..c15f96555 100644 --- "a/docs/study/think/\347\274\223\345\255\230/index.html" +++ "b/docs/study/think/\347\274\223\345\255\230/index.html" @@ -11,13 +11,13 @@ - +
    -

    缓存

    EhcacheRedis
    存取速度Ehcache直接在jvm虚拟机中缓存,速度快,效率高Redis是通过socket访问到缓存服务,效率比ecache低
    集群Ehcache有缓存共享方案,不过是通过RMI或者Jgroup多播方式进行广播缓存通知更新,缓存共享复杂,维护不方便;简单的共享可以,但是涉及到缓存恢复,大数据缓存,则不合适。Redis有成熟的分布式解决方案。适合大规模分布式集群部署。
    操作复杂度Ehcache提供的接口非常简单明了,从Ehcache的搭建到运用运行仅仅需要的是你宝贵的几分钟。其实很多开发者都不知道自己用在用Ehcache,Ehcache被广泛的运用于其他的开源项目。比如:Hibernate至少需要安装服务端和客户端才能使用。操作略比Ehcache复杂一些。
    - +

    缓存

    EhcacheRedis
    存取速度Ehcache直接在jvm虚拟机中缓存,速度快,效率高Redis是通过socket访问到缓存服务,效率比ecache低
    集群Ehcache有缓存共享方案,不过是通过RMI或者Jgroup多播方式进行广播缓存通知更新,缓存共享复杂,维护不方便;简单的共享可以,但是涉及到缓存恢复,大数据缓存,则不合适。Redis有成熟的分布式解决方案。适合大规模分布式集群部署。
    操作复杂度Ehcache提供的接口非常简单明了,从Ehcache的搭建到运用运行仅仅需要的是你宝贵的几分钟。其实很多开发者都不知道自己用在用Ehcache,Ehcache被广泛的运用于其他的开源项目。比如:Hibernate至少需要安装服务端和客户端才能使用。操作略比Ehcache复杂一些。
    + \ No newline at end of file diff --git "a/docs/study/think/\347\274\223\345\255\230/\345\210\206\345\270\203\345\274\217\347\274\223\345\255\230/index.html" "b/docs/study/think/\347\274\223\345\255\230/\345\210\206\345\270\203\345\274\217\347\274\223\345\255\230/index.html" index 349fa731a..5329f58fc 100644 --- "a/docs/study/think/\347\274\223\345\255\230/\345\210\206\345\270\203\345\274\217\347\274\223\345\255\230/index.html" +++ "b/docs/study/think/\347\274\223\345\255\230/\345\210\206\345\270\203\345\274\217\347\274\223\345\255\230/index.html" @@ -11,13 +11,13 @@ - +
    -

    分布式缓存

    缓存作为磁盘以外的一种存储数据的方式,它有着比磁盘更快的存取效率,因此,可以有效提高系统的性能。在单体系统中,一般会用到本地缓存。但在分布式系统中,本地缓存就显得不够用了,这时往往要用到分布式缓存。

    Jboss Cache

    Memcache

    Redis

    参考资料

    1. 聊聊分布式缓存
    - +

    分布式缓存

    缓存作为磁盘以外的一种存储数据的方式,它有着比磁盘更快的存取效率,因此,可以有效提高系统的性能。在单体系统中,一般会用到本地缓存。但在分布式系统中,本地缓存就显得不够用了,这时往往要用到分布式缓存。

    Jboss Cache

    Memcache

    Redis

    参考资料

    1. 聊聊分布式缓存
    + \ No newline at end of file diff --git "a/docs/study/think/\350\256\276\350\256\241\346\250\241\345\274\217/index.html" "b/docs/study/think/\350\256\276\350\256\241\346\250\241\345\274\217/index.html" index 7c60df8ec..d1c18cf2a 100644 --- "a/docs/study/think/\350\256\276\350\256\241\346\250\241\345\274\217/index.html" +++ "b/docs/study/think/\350\256\276\350\256\241\346\250\241\345\274\217/index.html" @@ -11,13 +11,13 @@ - +
    -

    设计模式

    六大原则

    总原则-开闭原则

    对扩展开放,对修改封闭。在程序需要进行拓展的时候,不能去修改原有的代码,而是要扩展原有代码,实现一个热插拔的效果。所以一句话概括就是:为了使程序的扩展性好,易于维护和升级。

    想要达到这样的效果,我们需要使用接口和抽象类等。

    思考:

    1. 拿到一个功能需求,不要上来就去实现,应该考虑怎么抽取接口或抽象类;例如 API 中的 ES 操作;
    2. 不要随意修改原有系统的代码,而是尝试去拓展来避免风险;例如 API 中的新版 MVC 拦截器处理;

    单一职责原则

    不要存在多于一个导致类变更的原因,也就是说每个类应该实现单一的职责,否则就应该把类拆分。

    思考:

    1. 处理报警的 Service/Controller/Mapper 等夹杂一些不相干的功能,例如定时任务、用户反馈等;
    2. Controller 夹杂一些私有方法;需不需要放到 Service、Utils 里面;

    里氏替换原则(Liskov Substitution Principle)

    任何基类可以出现的地方,子类一定可以出现。里氏替换原则是继承复用的基石,只有当衍生类可以替换基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。

    里氏代换原则是对“开-闭”原则的补充。实现“开闭”原则的关键步骤就是抽象化。而基类与子类的继承关系就是抽象化的具体实现,所以里氏代换原则是对实现抽象化的具体步骤的规范。里氏替换原则中,子类对父类的方法尽量不要重写和重载。因为父类代表了定义好的结构,通过这个规范的接口与外界交互,子类不应该随便破坏它。

    思考:

    1. 定义用基类,实现用子类;
    2. 用接口去定义流程和规范,这是设计的底层思想,不应该去破坏;没有接口的设计,是没有灵魂的编码;

    依赖倒转原则(Dependence Inversion Principle)

    面向接口编程,依赖于抽象而不依赖于具体。写代码时用到具体类时,不与具体类交互,而与具体类的上层接口交互。

    思考:

    1. 还是面向接口编程;

    接口隔离原则(Interface Segregation Principle)

    每个接口中不存在子类用不到却必须实现的方法,如果不然,就要将接口拆分。使用多个隔离的接口,比使用单个接口(多个接口方法集合到一个的接口)要好。

    思考:

    1. 接口拆分,和单一职责原则互相映射;

    迪米特法则(最少知道原则)(Demeter Principle)

    一个类对自己依赖的类知道的越少越好。无论被依赖的类多么复杂,都应该将逻辑封装在方法的内部,通过 public 方法提供给外部。这样当被依赖的类变化时,才能最小的影响该类。

    最少知道原则的另一个表达方式是:只与直接的朋友通信。类之间只要有耦合关系,就叫朋友关系。耦合分为依赖、关联、聚合、组合等。我们称出现为成员变量、方法参数、方法返回值中的类为直接朋友。局部变量、临时变量则不是直接的朋友。我们要求陌生的类不要作为局部变量出现在类中。

    思考:

    1. 解耦和模块化;

    组合(合成)复用原则(Composite Reuse Principle)

    尽量首先使用组合/聚合的方式,而不是使用继承。

    思考:

    1. 什么是关联、聚合、组合;关联、组合、聚合
    2. 如果要拓展,首先想到是聚合或组合,而不应该是继承,继承太重了。

    具体分类:

    创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式

    结构型模式,共七种:适配器模式、装饰者模式、代理模式、外观模式、桥接模式、组合模式、享元模式。

    行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

    其实还有两类:并发型模式和线程池模式。

    参考

    - +

    设计模式

    六大原则

    总原则-开闭原则

    对扩展开放,对修改封闭。在程序需要进行拓展的时候,不能去修改原有的代码,而是要扩展原有代码,实现一个热插拔的效果。所以一句话概括就是:为了使程序的扩展性好,易于维护和升级。

    想要达到这样的效果,我们需要使用接口和抽象类等。

    思考:

    1. 拿到一个功能需求,不要上来就去实现,应该考虑怎么抽取接口或抽象类;例如 API 中的 ES 操作;
    2. 不要随意修改原有系统的代码,而是尝试去拓展来避免风险;例如 API 中的新版 MVC 拦截器处理;

    单一职责原则

    不要存在多于一个导致类变更的原因,也就是说每个类应该实现单一的职责,否则就应该把类拆分。

    思考:

    1. 处理报警的 Service/Controller/Mapper 等夹杂一些不相干的功能,例如定时任务、用户反馈等;
    2. Controller 夹杂一些私有方法;需不需要放到 Service、Utils 里面;

    里氏替换原则(Liskov Substitution Principle)

    任何基类可以出现的地方,子类一定可以出现。里氏替换原则是继承复用的基石,只有当衍生类可以替换基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。

    里氏代换原则是对“开-闭”原则的补充。实现“开闭”原则的关键步骤就是抽象化。而基类与子类的继承关系就是抽象化的具体实现,所以里氏代换原则是对实现抽象化的具体步骤的规范。里氏替换原则中,子类对父类的方法尽量不要重写和重载。因为父类代表了定义好的结构,通过这个规范的接口与外界交互,子类不应该随便破坏它。

    思考:

    1. 定义用基类,实现用子类;
    2. 用接口去定义流程和规范,这是设计的底层思想,不应该去破坏;没有接口的设计,是没有灵魂的编码;

    依赖倒转原则(Dependence Inversion Principle)

    面向接口编程,依赖于抽象而不依赖于具体。写代码时用到具体类时,不与具体类交互,而与具体类的上层接口交互。

    思考:

    1. 还是面向接口编程;

    接口隔离原则(Interface Segregation Principle)

    每个接口中不存在子类用不到却必须实现的方法,如果不然,就要将接口拆分。使用多个隔离的接口,比使用单个接口(多个接口方法集合到一个的接口)要好。

    思考:

    1. 接口拆分,和单一职责原则互相映射;

    迪米特法则(最少知道原则)(Demeter Principle)

    一个类对自己依赖的类知道的越少越好。无论被依赖的类多么复杂,都应该将逻辑封装在方法的内部,通过 public 方法提供给外部。这样当被依赖的类变化时,才能最小的影响该类。

    最少知道原则的另一个表达方式是:只与直接的朋友通信。类之间只要有耦合关系,就叫朋友关系。耦合分为依赖、关联、聚合、组合等。我们称出现为成员变量、方法参数、方法返回值中的类为直接朋友。局部变量、临时变量则不是直接的朋友。我们要求陌生的类不要作为局部变量出现在类中。

    思考:

    1. 解耦和模块化;

    组合(合成)复用原则(Composite Reuse Principle)

    尽量首先使用组合/聚合的方式,而不是使用继承。

    思考:

    1. 什么是关联、聚合、组合;关联、组合、聚合
    2. 如果要拓展,首先想到是聚合或组合,而不应该是继承,继承太重了。

    具体分类:

    创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式

    结构型模式,共七种:适配器模式、装饰者模式、代理模式、外观模式、桥接模式、组合模式、享元模式。

    行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

    其实还有两类:并发型模式和线程池模式。

    参考

    + \ No newline at end of file diff --git "a/docs/study/think/\350\260\210\345\267\245\344\275\234\345\277\203\345\276\227/index.html" "b/docs/study/think/\350\260\210\345\267\245\344\275\234\345\277\203\345\276\227/index.html" index e0b2b6df8..fe00d5d40 100644 --- "a/docs/study/think/\350\260\210\345\267\245\344\275\234\345\277\203\345\276\227/index.html" +++ "b/docs/study/think/\350\260\210\345\267\245\344\275\234\345\277\203\345\276\227/index.html" @@ -11,7 +11,7 @@ - + @@ -121,8 +121,8 @@ 80%的电话是来自20%的朋友; 80%的总产量来自20%的产品; 80%的财富集中在20%的人手中; -这启示我们在工作中要善于抓主要矛盾,善于从纷繁复杂的工作中理出头绪,把资源用在最重要、最紧迫的事情上。

    提高提测质量

    QA的职责不是开发写完扔给人家测试,这是偏见,也是好多开发人员一直有的错误的观念,QA 不是简单的验证功能性的(当然存在这种AQ),QA更多是验证程序的健壮性容错性,所以在我们这里应该保证程序最基本的功能性问题,减少代码的回溯,这样才能不影响产品的迅速迭代,不影响产品的推进。

    先写文档再写代码

    好多程序员的通病就是拿到需求就开始写代码,这是相当的不负责任的,很明显这种做法有问题。应该先写自己的思路,如果功能大一些,要先写方案,评审方案。思路、方案没有问题在动手去写代码,你会发现坑会少踩好多。

    一个程序员的价值是解决问题的能力

    技术越好解决问题的能力越强,这个没有问题,这是一个正向比例关系。但是解决问题的能力,不仅仅包括技术,也包括沟通、业务等等其他方面。在工作中,不要仅仅的去学习各种编程技术,也要学会沟通、业务。

    注意流程、规范

    尤其是管理人员、组长、高程,一定要主要流程和规范,没有流程和规范就是一群乌合之众,没有任何战力可言。有了流程和规范,10个人可以做20个人的工作;没有流程和规范,20个人顶多也只能做10个人的工作,且不会有任何可维护性。

    - +这启示我们在工作中要善于抓主要矛盾,善于从纷繁复杂的工作中理出头绪,把资源用在最重要、最紧迫的事情上。

    提高提测质量

    QA的职责不是开发写完扔给人家测试,这是偏见,也是好多开发人员一直有的错误的观念,QA 不是简单的验证功能性的(当然存在这种AQ),QA更多是验证程序的健壮性容错性,所以在我们这里应该保证程序最基本的功能性问题,减少代码的回溯,这样才能不影响产品的迅速迭代,不影响产品的推进。

    先写文档再写代码

    好多程序员的通病就是拿到需求就开始写代码,这是相当的不负责任的,很明显这种做法有问题。应该先写自己的思路,如果功能大一些,要先写方案,评审方案。思路、方案没有问题在动手去写代码,你会发现坑会少踩好多。

    一个程序员的价值是解决问题的能力

    技术越好解决问题的能力越强,这个没有问题,这是一个正向比例关系。但是解决问题的能力,不仅仅包括技术,也包括沟通、业务等等其他方面。在工作中,不要仅仅的去学习各种编程技术,也要学会沟通、业务。

    注意流程、规范

    尤其是管理人员、组长、高程,一定要主要流程和规范,没有流程和规范就是一群乌合之众,没有任何战力可言。有了流程和规范,10个人可以做20个人的工作;没有流程和规范,20个人顶多也只能做10个人的工作,且不会有任何可维护性。

    + \ No newline at end of file diff --git "a/docs/study/think/\351\231\220\346\265\201/index.html" "b/docs/study/think/\351\231\220\346\265\201/index.html" index b2b5f3539..0e79609b0 100644 --- "a/docs/study/think/\351\231\220\346\265\201/index.html" +++ "b/docs/study/think/\351\231\220\346\265\201/index.html" @@ -11,13 +11,13 @@ - +
    -

    限流

    前言

    在开发高并发系统时有三把利器用来保护系统:缓存、降级和限流

    • 缓存缓存的目的是提升系统访问速度和增大系统处理容量
    • 降级降级是当服务出现问题或者影响到核心流程时,需要暂时屏蔽掉,待高峰或者问题解决后再打开
    • 限流限流的目的是通过对并发访问/请求进行限速,或者对一个时间窗口内的请求进行限速来保护系统,一旦达到限制速率则可以拒绝服务、排队或等待、降级等处理

    常见的限流算法

    固定窗口计数器

    image.png

    • 固定窗口计数器算法的概念如下
      1. 将时间划分为多个窗口
      2. 在每个窗口内每有一次请求就将计数器加一
      3. 如果计数器超过了限制数量,则本窗口内新来的其他请求都被丢弃。当时间到达下一个窗口时,计数器重置。
    • 固定窗口计数器是最为简单的算法,但这个算法有时会让通过请求量允许为限制的两倍。考虑如下情况:限制 1 秒内最多通过 5 个请求,在第一个窗口的最后半秒内通过了 5 个请求,第二个窗口的前半秒内又通过了 5 个请求。这样看来就是在 1 秒内通过了 10 个请求。

    image.png

    滑动窗口计数器

    image.png

    • 滑动窗口计数器算法概念如下:
      1. 将时间划分为多个区间;
      2. 在每个区间内每有一次请求就将计数器加一维持一个时间窗口,占据多个区间;
      3. 每经过一个区间的时间,则抛弃最老的一个区间,并纳入最新的一个区间;
      4. 如果当前窗口内区间的请求计数总和超过了限制数量,则本窗口内新来的其他请求都被丢弃。
    • 滑动窗口计数器是通过将窗口再细分,并且按照时间 " 滑动 ",这种算法避免了固定窗口计数器带来的双倍突发请求,但时间区间的精度越高,算法所需的空间容量就越大。

    漏桶算法

    image.png

    • 漏桶算法概念如下:
      1. 将每个请求视作 " 水滴 " 放入 " 漏桶 " 进行存储;
      2. “漏桶 " 以固定速率向外 " 漏 " 出请求来执行如果 " 漏桶 " 空了则停止 " 漏水”;
      3. 如果 " 漏桶 " 满了则多余的 " 水滴 " 会被直接丢弃。
    • 漏桶算法多使用队列实现,服务的请求会存到队列中,服务的提供方则按照固定的速率从队列中取出请求并执行,过多的请求则放在队列中排队或直接拒绝。
    • 漏桶算法的缺陷也很明显,当短时间内有大量的突发请求时,即便此时服务器没有任何负载,每个请求也都得在队列中等待一段时间才能被响应。

    令牌桶算法

    image.png

    • 令牌桶算法概念如下:
      1. 令牌以固定速率生成。
      2. 生成的令牌放入令牌桶中存放,如果令牌桶满了则多余的令牌会直接丢弃,当请求到达时,会尝试从令牌桶中取令牌,取到了令牌的请求可以执行。
      3. 如果桶空了,那么尝试取令牌的请求会被直接丢弃。
    • 令牌桶算法既能够将所有的请求平均分布到时间区间内,又能接受服务器能够承受范围内的突发请求,因此是目前使用较为广泛的一种限流算法。

    单体应用实现

    • 在传统的单体应用中限流只需要考虑到多线程即可,使用Google开源工具类guava即可。其中有一个RateLimiter专门实现了单体应用的限流,使用的是令牌桶算法。
    • 单体应用的限流不是本文的重点,官网上现成的API,读者自己去看看即可,这里不再详细解释。

    分布式限流

    • 分布式限流和熔断现在有很多的现成的工具,比如Hystrix,Sentinel 等,但是还是有些企业不引用外来类库,因此就需要自己实现。
    • Redis作为单线程多路复用的特性,很显然能够胜任这项任务。
    - +

    限流

    前言

    在开发高并发系统时有三把利器用来保护系统:缓存、降级和限流

    • 缓存缓存的目的是提升系统访问速度和增大系统处理容量
    • 降级降级是当服务出现问题或者影响到核心流程时,需要暂时屏蔽掉,待高峰或者问题解决后再打开
    • 限流限流的目的是通过对并发访问/请求进行限速,或者对一个时间窗口内的请求进行限速来保护系统,一旦达到限制速率则可以拒绝服务、排队或等待、降级等处理

    常见的限流算法

    固定窗口计数器

    image.png

    • 固定窗口计数器算法的概念如下
      1. 将时间划分为多个窗口
      2. 在每个窗口内每有一次请求就将计数器加一
      3. 如果计数器超过了限制数量,则本窗口内新来的其他请求都被丢弃。当时间到达下一个窗口时,计数器重置。
    • 固定窗口计数器是最为简单的算法,但这个算法有时会让通过请求量允许为限制的两倍。考虑如下情况:限制 1 秒内最多通过 5 个请求,在第一个窗口的最后半秒内通过了 5 个请求,第二个窗口的前半秒内又通过了 5 个请求。这样看来就是在 1 秒内通过了 10 个请求。

    image.png

    滑动窗口计数器

    image.png

    • 滑动窗口计数器算法概念如下:
      1. 将时间划分为多个区间;
      2. 在每个区间内每有一次请求就将计数器加一维持一个时间窗口,占据多个区间;
      3. 每经过一个区间的时间,则抛弃最老的一个区间,并纳入最新的一个区间;
      4. 如果当前窗口内区间的请求计数总和超过了限制数量,则本窗口内新来的其他请求都被丢弃。
    • 滑动窗口计数器是通过将窗口再细分,并且按照时间 " 滑动 ",这种算法避免了固定窗口计数器带来的双倍突发请求,但时间区间的精度越高,算法所需的空间容量就越大。

    漏桶算法

    image.png

    • 漏桶算法概念如下:
      1. 将每个请求视作 " 水滴 " 放入 " 漏桶 " 进行存储;
      2. “漏桶 " 以固定速率向外 " 漏 " 出请求来执行如果 " 漏桶 " 空了则停止 " 漏水”;
      3. 如果 " 漏桶 " 满了则多余的 " 水滴 " 会被直接丢弃。
    • 漏桶算法多使用队列实现,服务的请求会存到队列中,服务的提供方则按照固定的速率从队列中取出请求并执行,过多的请求则放在队列中排队或直接拒绝。
    • 漏桶算法的缺陷也很明显,当短时间内有大量的突发请求时,即便此时服务器没有任何负载,每个请求也都得在队列中等待一段时间才能被响应。

    令牌桶算法

    image.png

    • 令牌桶算法概念如下:
      1. 令牌以固定速率生成。
      2. 生成的令牌放入令牌桶中存放,如果令牌桶满了则多余的令牌会直接丢弃,当请求到达时,会尝试从令牌桶中取令牌,取到了令牌的请求可以执行。
      3. 如果桶空了,那么尝试取令牌的请求会被直接丢弃。
    • 令牌桶算法既能够将所有的请求平均分布到时间区间内,又能接受服务器能够承受范围内的突发请求,因此是目前使用较为广泛的一种限流算法。

    单体应用实现

    • 在传统的单体应用中限流只需要考虑到多线程即可,使用Google开源工具类guava即可。其中有一个RateLimiter专门实现了单体应用的限流,使用的是令牌桶算法。
    • 单体应用的限流不是本文的重点,官网上现成的API,读者自己去看看即可,这里不再详细解释。

    分布式限流

    • 分布式限流和熔断现在有很多的现成的工具,比如Hystrix,Sentinel 等,但是还是有些企业不引用外来类库,因此就需要自己实现。
    • Redis作为单线程多路复用的特性,很显然能够胜任这项任务。
    + \ No newline at end of file diff --git "a/docs/study/think/\351\242\206\345\237\237\351\251\261\345\212\250\350\256\276\350\256\241DDD/index.html" "b/docs/study/think/\351\242\206\345\237\237\351\251\261\345\212\250\350\256\276\350\256\241DDD/index.html" index 361a4b71e..f1df4f5c9 100644 --- "a/docs/study/think/\351\242\206\345\237\237\351\251\261\345\212\250\350\256\276\350\256\241DDD/index.html" +++ "b/docs/study/think/\351\242\206\345\237\237\351\251\261\345\212\250\350\256\276\350\256\241DDD/index.html" @@ -11,13 +11,13 @@ - + - +
    + \ No newline at end of file diff --git a/docs/xuanxing/back/index.html b/docs/xuanxing/back/index.html index 2d453e15a..1d9392a02 100644 --- a/docs/xuanxing/back/index.html +++ b/docs/xuanxing/back/index.html @@ -11,13 +11,13 @@ - +
    -

    概述

    主要使用 Java,中间件可集成或独立部署。

    • MQTT Broker 采用 hivemq 集成
    • redis
    • mysql
    • kafka
    • influxdb
    - +

    概述

    主要使用 Java,中间件可集成或独立部署。

    • MQTT Broker 采用 hivemq 集成
    • redis
    • mysql
    • kafka
    • influxdb
    + \ No newline at end of file diff --git a/docs/xuanxing/devops/index.html b/docs/xuanxing/devops/index.html index 1f587d7ee..f274ed87a 100644 --- a/docs/xuanxing/devops/index.html +++ b/docs/xuanxing/devops/index.html @@ -11,13 +11,13 @@ - +
    -

    概述

    一般需要包括如下内容:

    • Jenkins 持续集成、部署
    • Grafana+哨兵 监控服务
    • 各种运维脚本
    - +

    概述

    一般需要包括如下内容:

    • Jenkins 持续集成、部署
    • Grafana+哨兵 监控服务
    • 各种运维脚本
    + \ No newline at end of file diff --git a/docs/xuanxing/fe/index.html b/docs/xuanxing/fe/index.html index e6d97ca3d..aba49ee3a 100644 --- a/docs/xuanxing/fe/index.html +++ b/docs/xuanxing/fe/index.html @@ -11,13 +11,13 @@ - +
    -

    概述

    前端大概包含以下几个方面:

    • 官网
    • 用户端【PC WEB】
    • 管理端【PC WEB】
    • 移动端【微信小程序、APP、Mobile WEB】
    • 组态编辑器【PC WEB编辑及运行】【Mobile WEB运行】
    • 大屏编辑器【PC WEB编辑及运行】

    官网

    官网比较偏纯展示,对SEO有要求,对CMS有要求,对部分运营有需求;

    用户端、管理端

    在物联网云平台上,用户端和管理端都是偏中后台的管理系统,所以他们两个前端的技术选型上应该是统一的;

    移动端

    小程序的话,只考虑微信应该就可以了。国内的话,可以只考虑小程序,APP和Mobile WEB可以不用考虑;

    组态编辑器

    WEB组态其实是工业组态软件搬到了云平台上,所以组态编辑器其实偏工艺流程,虽然他和大屏编辑器都是托拉拽的可视化设计方式,但是还是有很大的区别的。

    大屏编辑器

    在数据展示方面,大屏编辑器可以托拉拽的方式来设计;

    - +

    概述

    前端大概包含以下几个方面:

    • 官网
    • 用户端【PC WEB】
    • 管理端【PC WEB】
    • 移动端【微信小程序、APP、Mobile WEB】
    • 组态编辑器【PC WEB编辑及运行】【Mobile WEB运行】
    • 大屏编辑器【PC WEB编辑及运行】

    官网

    官网比较偏纯展示,对SEO有要求,对CMS有要求,对部分运营有需求;

    用户端、管理端

    在物联网云平台上,用户端和管理端都是偏中后台的管理系统,所以他们两个前端的技术选型上应该是统一的;

    移动端

    小程序的话,只考虑微信应该就可以了。国内的话,可以只考虑小程序,APP和Mobile WEB可以不用考虑;

    组态编辑器

    WEB组态其实是工业组态软件搬到了云平台上,所以组态编辑器其实偏工艺流程,虽然他和大屏编辑器都是托拉拽的可视化设计方式,但是还是有很大的区别的。

    大屏编辑器

    在数据展示方面,大屏编辑器可以托拉拽的方式来设计;

    + \ No newline at end of file diff --git "a/docs/xuanxing/fe/\345\256\230\347\275\221/index.html" "b/docs/xuanxing/fe/\345\256\230\347\275\221/index.html" index 2cebc04ad..e86704772 100644 --- "a/docs/xuanxing/fe/\345\256\230\347\275\221/index.html" +++ "b/docs/xuanxing/fe/\345\256\230\347\275\221/index.html" @@ -11,7 +11,7 @@ - + @@ -19,8 +19,8 @@

    官网

    官网比较偏纯展示,对SEO有要求,对CMS有要求,对部分运营有需求;

    静态页面展示

    官网其实除了大改版的时候,基本上60%的页面都是常年不动的。而且都是一些文案和图片。 这个特点第一个可以想到的技术选型就是 Bootstrap

    SEO

    官网肯定对SEO有强需求,说以,技术选型是包括:

    • SSR
    • 前后端不分离的机制,例如PHP、JSP等动态网页技术

    CMS+运营

    虽然官网升级改版很不频繁,但是对CMS还是有需求的,主要体现在轮播图的更换,或者说明文档的新增修改等, 有时候官网上也会有一些运营活动页面;

    所以技术选型上他是需要后端的,大概率会包括API、数据库、缓存服务等;

    最终

    备选列表为:

    • 方案1:Bootstrap + Java + Springboot + SpringMVC + MyBatis + MySQL
    • 方案2:Bootstrap + midway.js + MySQL

    方案1是前后端的技术栈分离;方案2是前后端的技术栈不分离,使用的是前端技术栈JS;

    如果前端团队相对强势的话,可以选择 方案1 否则,直接选择方案2

    说明文档单独说,推荐docusaurus

    关于方案2的后端JS的技术选型

    koa.js >> egg.js >> midway.js 这么个技术演进和封装关系;

    express.js >> nest.js 这么个技术演进和封装关系;

    Koa.js 是 Express.js 原班人马用新理念重新创作的框架; -而 Express.js 因为产生历史早,而有更好的生态基础,周边的插件、中间件什么的可能更丰富;

    Midway.js 背后是阿里的团队,而 Nest.js 背后是国外的 Trilon 团队。

    - +而 Express.js 因为产生历史早,而有更好的生态基础,周边的插件、中间件什么的可能更丰富;

    Midway.js 背后是阿里的团队,而 Nest.js 背后是国外的 Trilon 团队。

    + \ No newline at end of file diff --git "a/docs/xuanxing/fe/\347\224\250\346\210\267\347\253\257\347\256\241\347\220\206\347\253\257/index.html" "b/docs/xuanxing/fe/\347\224\250\346\210\267\347\253\257\347\256\241\347\220\206\347\253\257/index.html" index 3f79114d3..bd8389eed 100644 --- "a/docs/xuanxing/fe/\347\224\250\346\210\267\347\253\257\347\256\241\347\220\206\347\253\257/index.html" +++ "b/docs/xuanxing/fe/\347\224\250\346\210\267\347\253\257\347\256\241\347\220\206\347\253\257/index.html" @@ -11,15 +11,15 @@ - +

    用户端+管理端

    在物联网云平台上,用户端和管理端都是偏中后台的管理系统,所以他们两个前端的技术选型上应该是统一的; 用户端是给用户使用的,管理端是给公司内部使用的。

    可选方案

    最近比较火的技术就三个:Vue、React、Angular

    受众程度上,Vue国内较多,React国外较多,Angular都不多,所以,Angular基本可以放弃了。

    从物联网云平台产品架构上可以看出,功能是很多很杂的,而且还有可能设计到三方页面的整合等, -这三个技术上都可以胜任,差别不大。

    国内的话,首推Vue,其他不分析了。

    选Vue的话,有几个备选方案:

    • Vue2+element-ui,这个在国内用的是真多,唯一的劣势就是他是Vue2,而目前Vue是主流;
    • Vue3+elementuiPlus,这个受众面不错,劣势就是elementuiPlus是社区维护的,不再背靠饿了么了;
    • Vue3+antd-vue,如果是react可以考虑antd,但是如果是Vue,就算了吧,而且antd-vue和antd不是一回事;
    • Vue3+tdesign,背靠腾讯,pro做的也不错;
    • Vue3+arco.design,背靠字节,pro做的也不错;

    基本上,就是tdesign和arcodesign二选一了,个人推荐arco.design。

    最终,技术选型个人推荐:

    Vue3+arco-design-pro-vue

    - +这三个技术上都可以胜任,差别不大。

    国内的话,首推Vue,其他不分析了。

    选Vue的话,有几个备选方案:

    • Vue2+element-ui,这个在国内用的是真多,唯一的劣势就是他是Vue2,而目前Vue是主流;
    • Vue3+elementuiPlus,这个受众面不错,劣势就是elementuiPlus是社区维护的,不再背靠饿了么了;
    • Vue3+antd-vue,如果是react可以考虑antd,但是如果是Vue,就算了吧,而且antd-vue和antd不是一回事;
    • Vue3+tdesign,背靠腾讯,pro做的也不错;
    • Vue3+arco.design,背靠字节,pro做的也不错;

    基本上,就是tdesign和arcodesign二选一了,个人推荐arco.design。

    最终,技术选型个人推荐:

    Vue3+arco-design-pro-vue

    + \ No newline at end of file diff --git "a/docs/xuanxing/fe/\347\247\273\345\212\250\347\253\257/index.html" "b/docs/xuanxing/fe/\347\247\273\345\212\250\347\253\257/index.html" index 5b14b2513..e05aa48ee 100644 --- "a/docs/xuanxing/fe/\347\247\273\345\212\250\347\253\257/index.html" +++ "b/docs/xuanxing/fe/\347\247\273\345\212\250\347\253\257/index.html" @@ -11,13 +11,13 @@ - +
    -

    移动端

    在物联网云平台上,移动端方面,首选微信小程序,如果有外贸需求,可以增加 APP 和 Mobile WEB。

    微信小程序技术选型

    • Vant
    • uni-app

    Mobile WEB 技术选型

    • Vant

    APP 技术选型

    • 原生开发:效果、体验是最好的,但是开发成本高,且无法做到热更新,不跨平台;
    • H5+原生:这就是典型的混合开发,简单功能使用 H5,复杂功能使用原生,可选的框架有:
      • Cordova、Ionic、uni-app
      • H5 部分可以做热更新
    • JS 开发+原生渲染:
      • React Native、Weex、快应用、uni-app
      • Weex 是阿里出的
      • React Native 和 Weex 的渲染/排版引擎是集成到框架中的,每一个 APP 都需要打包一份,安装包体积较大;而快应用渲染/排版引擎是集成到 ROM 中的,应用中无需打包,安装包体积小,正因如此,快应用才能在保证性能的同时做到快速分发。
      • uni-app 支持 webview+部分 weex 双重渲染
      • 可以做热更新,但是此种方式打出的包实在是有点大;
      • uni-app 支持 webview+部分 weex 双重渲染
    • 自绘 UI+原生:
      • QT for mobile、Flutter
      • Flutter 文档还是不错的

    最终,技术选型个人推荐:

    以上来看,

    • 追求快速,使用 uni-app
    • 追求可维护,小程序使用 Vant/TDesign,APP 选择 Flutter
    - +

    移动端

    在物联网云平台上,移动端方面,首选微信小程序,如果有外贸需求,可以增加 APP 和 Mobile WEB。

    微信小程序技术选型

    • Vant
    • uni-app

    Mobile WEB 技术选型

    • Vant

    APP 技术选型

    • 原生开发:效果、体验是最好的,但是开发成本高,且无法做到热更新,不跨平台;
    • H5+原生:这就是典型的混合开发,简单功能使用 H5,复杂功能使用原生,可选的框架有:
      • Cordova、Ionic、uni-app
      • H5 部分可以做热更新
    • JS 开发+原生渲染:
      • React Native、Weex、快应用、uni-app
      • Weex 是阿里出的
      • React Native 和 Weex 的渲染/排版引擎是集成到框架中的,每一个 APP 都需要打包一份,安装包体积较大;而快应用渲染/排版引擎是集成到 ROM 中的,应用中无需打包,安装包体积小,正因如此,快应用才能在保证性能的同时做到快速分发。
      • uni-app 支持 webview+部分 weex 双重渲染
      • 可以做热更新,但是此种方式打出的包实在是有点大;
      • uni-app 支持 webview+部分 weex 双重渲染
    • 自绘 UI+原生:
      • QT for mobile、Flutter
      • Flutter 文档还是不错的

    最终,技术选型个人推荐:

    以上来看,

    • 追求快速,使用 uni-app
    • 追求可维护,小程序使用 Vant/TDesign,APP 选择 Flutter
    + \ No newline at end of file diff --git "a/docs/xuanxing/fe/\347\273\204\346\200\201+\345\244\247\345\261\217\347\274\226\350\276\221\345\231\250/index.html" "b/docs/xuanxing/fe/\347\273\204\346\200\201+\345\244\247\345\261\217\347\274\226\350\276\221\345\231\250/index.html" index 7df0ffe9e..60d172640 100644 --- "a/docs/xuanxing/fe/\347\273\204\346\200\201+\345\244\247\345\261\217\347\274\226\350\276\221\345\231\250/index.html" +++ "b/docs/xuanxing/fe/\347\273\204\346\200\201+\345\244\247\345\261\217\347\274\226\350\276\221\345\231\250/index.html" @@ -11,13 +11,13 @@ - +
    -

    组态编辑器/大屏编辑器

    在物联网云平台上,组态编辑器和大屏编辑器都是属于可视化编辑器的范畴。

    组态编辑器比较注重拓扑结构图、现场的工艺流程,且对动画有要求,能够模拟实时的场景动画。

    组态编辑器

    • 基于 draw.io 改造,draw.io 基于 mxGraph,但是 mxGraph 在 2020 年 11 月已经体质维护了
      • mxGraph 推荐的 fork,maxGraph
    • 基于 meta2d+vue3 自研(参考优诺科技的森拓扑)
    • 纯自研(Canvas)(参考优诺科技的森拓扑)
    • 采购(优诺科技的森拓扑)

    大屏编辑器

    • 自研(参考优诺科技的森大屏)
    • 采购(优诺科技的森大屏)

    最终,技术选型个人推荐:

    基于 meta2d+vue3 自研(参考优诺科技的森拓扑)

    - +

    组态编辑器/大屏编辑器

    在物联网云平台上,组态编辑器和大屏编辑器都是属于可视化编辑器的范畴。

    组态编辑器比较注重拓扑结构图、现场的工艺流程,且对动画有要求,能够模拟实时的场景动画。

    组态编辑器

    • 基于 draw.io 改造,draw.io 基于 mxGraph,但是 mxGraph 在 2020 年 11 月已经体质维护了
      • mxGraph 推荐的 fork,maxGraph
    • 基于 meta2d+vue3 自研(参考优诺科技的森拓扑)
    • 纯自研(Canvas)(参考优诺科技的森拓扑)
    • 采购(优诺科技的森拓扑)

    大屏编辑器

    • 自研(参考优诺科技的森大屏)
    • 采购(优诺科技的森大屏)

    最终,技术选型个人推荐:

    基于 meta2d+vue3 自研(参考优诺科技的森拓扑)

    + \ No newline at end of file diff --git a/docs/xuanxing/index.html b/docs/xuanxing/index.html index d83a53826..f3c1eedad 100644 --- a/docs/xuanxing/index.html +++ b/docs/xuanxing/index.html @@ -11,13 +11,13 @@ - +
    -

    综述

    综合考虑

    技术选型是非常重要的,他决定了技术目标是否能顺利完成。

    我们在做物联网云平台的技术选型时,应该综合考虑如下几个方面:

    • 技术目标,技术目标是初创、提升、还是重构,不同的技术目标对技术选型影响很大;
    • 技术的受众程度,虽然某些技术很适合做某个东西,但是受众程度低会导致招不到人才;
    • 团队的人才阶梯,都是大牛还是一般,或者初中高级分布比较合理;

    物联网云平台技术方向

    在物联网云平台技术方向上,大概分为前端、后端和运维:

    前端大概包含以下几个方面:

    • 官网
    • 用户端【PC WEB】
    • 管理端【PC WEB】
    • 移动端【微信小程序、APP、Mobile WEB】
    • 组态编辑器【PC WEB编辑及运行】【Mobile WEB运行】
    • 大屏编辑器【PC WEB编辑及运行】

    后端根据服务特点,分为两个大层,业务层和通讯层,业务层面向的是用户,通讯层面向的是设备。

    后端业务层大概包含以下几个方面:

    • API服务,需要根据前端的端再去细分若干服务,技术选型应该用一个,保持统一;
    • 报警服务,主要是给用户发送报警信息;
    • Monitor服务,主要是监控来自后端通讯层的消息;

    后端通讯层大概包含以下几个方面:

    • 设备接入
    • 数据解析
    • 功能服务
    - +

    综述

    综合考虑

    技术选型是非常重要的,他决定了技术目标是否能顺利完成。

    我们在做物联网云平台的技术选型时,应该综合考虑如下几个方面:

    • 技术目标,技术目标是初创、提升、还是重构,不同的技术目标对技术选型影响很大;
    • 技术的受众程度,虽然某些技术很适合做某个东西,但是受众程度低会导致招不到人才;
    • 团队的人才阶梯,都是大牛还是一般,或者初中高级分布比较合理;

    物联网云平台技术方向

    在物联网云平台技术方向上,大概分为前端、后端和运维:

    前端大概包含以下几个方面:

    • 官网
    • 用户端【PC WEB】
    • 管理端【PC WEB】
    • 移动端【微信小程序、APP、Mobile WEB】
    • 组态编辑器【PC WEB编辑及运行】【Mobile WEB运行】
    • 大屏编辑器【PC WEB编辑及运行】

    后端根据服务特点,分为两个大层,业务层和通讯层,业务层面向的是用户,通讯层面向的是设备。

    后端业务层大概包含以下几个方面:

    • API服务,需要根据前端的端再去细分若干服务,技术选型应该用一个,保持统一;
    • 报警服务,主要是给用户发送报警信息;
    • Monitor服务,主要是监控来自后端通讯层的消息;

    后端通讯层大概包含以下几个方面:

    • 设备接入
    • 数据解析
    • 功能服务
    + \ No newline at end of file diff --git a/docs/xuanxing/thingsboard/index.html b/docs/xuanxing/thingsboard/index.html index 94f605579..6f8c4c198 100644 --- a/docs/xuanxing/thingsboard/index.html +++ b/docs/xuanxing/thingsboard/index.html @@ -11,14 +11,14 @@ - +

    综述

    thingsboard 应该算是顶级的开源物联网云平台了。但是,经我研究,不是很适合国内用户。但是却有很多学习和借鉴的地方,例如规则引擎。

    环境要求

    • JDK 11
    • Maven 3.6.0+

    Maven 版本

    有问题,至少得是 3.6.0,官网文档有误;

    [ERROR] Failed to execute goal com.github.eirslett:frontend-maven-plugin:1.12.0:install-node-and-yarn (install node and npm) on project ui-ngx: The plugin com.github.eirslett:frontend-maven-plugin:1.12.0 requires Maven version 3.6.0 -> [Help 1]

    安装 postgres

    #
    docker pull postgres:11.19-bullseye
    #
    docker run \
    --privileged=true \
    --restart=always \
    --name postgres \
    -e POSTGRES_PASSWORD=Aa0123 \
    -p 5432:5432 \
    -v /mnt/docker/postgresql/data:/var/lib/postgresql/data \
    -d postgres:11.19-bullseye
    # 发现使用DBeaver连接不上,需要修改/mnt/docker/postgresql/data/pg_hba.conf
    # 增加一行host all all 192.168.41.69/32 trust
    # 192.168.41.69是我自己的ip

    执行 mvn compile 报错

    [ERROR] Failed to execute goal org.apache.maven.plugins:maven-dependency-plugin:2.8:unpack (extract-web-ui) on project web-ui: Artifact has not been packaged yet. When used on reactor artifact, unpack should be executed after packaging: see MDEP-98. -> [Help 1]

    碰到这个错误,是因为 ui-ngx 没有 install,install 一下即可

    创建数据库

    使用 DBeaver 连接数据库 postgresql,并创建数据库thingsboard

    修改thingsboard/application/src/main/resources/thingsboard.yml文件中的数据库配置,

    url: "${SPRING_DATASOURCE_URL:jdbc:postgresql://192.168.0.40:5432/thingsboard}"
    password: "${SPRING_DATASOURCE_PASSWORD:Aa0123}"

    执行 mvn package 打包并初始化数据库

    mvn package 命令直接成功。

    然后执行application/target/bin/install/install_dev_db.sh此脚本,也成功了

    IDEA 运行

    执行application/src/main/java/org/thingsboard/server/ThingsboardServerApplication.java debug 此文件, -如果存在 JDK 版本问题,把所有 JDK 的配置切换成 JDK11.

    等程序跑起来成功后,方位http://localhost:8080即可。可以使用以下三种类型的账号登录:

    至此,ThingsBoard 在本地成功运行。

    - +如果存在 JDK 版本问题,把所有 JDK 的配置切换成 JDK11.

    等程序跑起来成功后,方位http://localhost:8080即可。可以使用以下三种类型的账号登录:

    至此,ThingsBoard 在本地成功运行。

    + \ No newline at end of file diff --git "a/docs/xuanxing/thingsboard/\345\246\202\344\275\225\344\275\277\347\224\250/index.html" "b/docs/xuanxing/thingsboard/\345\246\202\344\275\225\344\275\277\347\224\250/index.html" index 0c019af47..73f005087 100644 --- "a/docs/xuanxing/thingsboard/\345\246\202\344\275\225\344\275\277\347\224\250/index.html" +++ "b/docs/xuanxing/thingsboard/\345\246\202\344\275\225\344\275\277\347\224\250/index.html" @@ -11,13 +11,13 @@ - +
    -

    如何使用

    上行消息

    curl -v -X POST -d "{\"temperature\": 27}" http://localhost:8080/api/v1/ZGmef5dqOBYcQSR7EzQs/telemetry --header "Content-Type:application/json"

    # Acesss token
    mosquitto_pub -d -q 1 -h "localhost" -p "1883" -t "v1/devices/me/telemetry" -u "rX1zRfYWNoUgAg0FIKUt" -m {"temperature":300}
    mosquitto_pub -d -q 1 -h "localhost" -p "1883" -t "v1/devices/me/telemetry" -u "12345678" -m {"t":250}
    mosquitto_pub -d -q 1 -h "localhost" -p "1883" -t "v1/devices/me/attributes" -u "12345678" -m {"t":25}

    # MQTT Basic
    mosquitto_pub -h 'localhost' -i 'c1' -u 'u1' -P 'secret' -t '/telemetry' -m '{"temperature": 25}'
    mosquitto_pub -h 'localhost' -i 'c1' -u 't1' -P 'secret' -t '/attributes' -m '{"firmwareVersion": "1.3"}'
    - +

    如何使用

    上行消息

    curl -v -X POST -d "{\"temperature\": 27}" http://localhost:8080/api/v1/ZGmef5dqOBYcQSR7EzQs/telemetry --header "Content-Type:application/json"

    # Acesss token
    mosquitto_pub -d -q 1 -h "localhost" -p "1883" -t "v1/devices/me/telemetry" -u "rX1zRfYWNoUgAg0FIKUt" -m {"temperature":300}
    mosquitto_pub -d -q 1 -h "localhost" -p "1883" -t "v1/devices/me/telemetry" -u "12345678" -m {"t":250}
    mosquitto_pub -d -q 1 -h "localhost" -p "1883" -t "v1/devices/me/attributes" -u "12345678" -m {"t":25}

    # MQTT Basic
    mosquitto_pub -h 'localhost' -i 'c1' -u 'u1' -P 'secret' -t '/telemetry' -m '{"temperature": 25}'
    mosquitto_pub -h 'localhost' -i 'c1' -u 't1' -P 'secret' -t '/attributes' -m '{"firmwareVersion": "1.3"}'
    + \ No newline at end of file diff --git "a/docs/xuanxing/thingsboard/\346\272\220\347\240\201\347\273\223\346\236\204/index.html" "b/docs/xuanxing/thingsboard/\346\272\220\347\240\201\347\273\223\346\236\204/index.html" index 695c480fd..6a3b5bfcc 100644 --- "a/docs/xuanxing/thingsboard/\346\272\220\347\240\201\347\273\223\346\236\204/index.html" +++ "b/docs/xuanxing/thingsboard/\346\272\220\347\240\201\347\273\223\346\236\204/index.html" @@ -11,13 +11,13 @@ - +
    -

    源码结构

    swagger

    http://localhost:8080/swagger-ui.html

    源码结构

    • application 主程序入口模块,重点关注ThingsboardServerApplication启动类
    • common 公共模块组
      • actor actor开发模型接口模块 实现在application模块
      • cache Redis/Caffeine缓存模块
      • cluster-api 集群功能接口模块,队列、消息通知等
      • coap-server coap协议实现模块
      • dao-api dao层接口模块,全是接口,没有实现
      • data 实体模块,全是一些DTO、entity、pojo等,最基础的源码包,不依赖任何其他源码模块
      • edge-api 边缘端api,主要是调用网关端的rpc调用,目前代码没有用到此包的内容
      • message 消息通用模块,中间件消息、规则链消息等,偏接口、实体、异常类
      • queue 消息中间件、消息队列
      • script
        • remote-js-client 远程执行js客户端,源码没有用到
        • script-api js脚本执行模块,源码没有用到
      • stats 状态统计、消息统计
      • transport 传输模块组
        • coap coap协议传输模块
        • http http协议传输模块
        • lwm2m lwm2m协议传输模块
        • mqtt mqtt协议传输模块
        • snmp snmp协议传输模块
        • transport-api 基础传输模块 上面的传输模块都需要依赖他,他算是比较基础的模块了
      • util 工具类模块,只依赖common/data模块
      • version-control TODO 版本控制,具体业务还没搞懂
    • dao 具体的dao实现模块
    • docker 启用微服务的docker配置目录,脚本、docker配置文件等
    • msa microservices aplication微服务模块组
      • black-box-tests
      • js-executor
      • tb 单docker镜像
      • tb-node
      • transport 协议传输配置docker微服务模块组
        • coap coap协议传输配置docker微服务模块
        • http http协议传输配置docker微服务模块
        • lwm2m lwm2m协议传输配置docker微服务模块
        • mqtt mqtt协议传输配置docker微服务模块
        • snmp snmp协议传输配置docker微服务模块
      • vc-executor TODO 依赖common/version-control
      • vc-executor-docker vc-executor的docker配置模块
      • web-ui 前端的docker配置模块
    • netty-mqtt mqtt-broker协议实现模块
    • packing 打包工具目录,打rpm、deb包
    • rest-client 二开SDK模块,二开请求工具
    • rule-engine 规则引擎
      • rule-engine-api 规则引擎接口模块,全是接口,application会实现
      • rule-engine-components 规则引擎所有元件模块
    • tools 各种工具模块,数据迁移工具、Python发送消息工具、shell工具等等
    • transport 协议传输配置启动类模块
      • coap coap协议传输配置启动类模块
      • http http协议传输配置启动类模块
      • lwm2m lwm2m协议传输配置启动类模块
      • mqtt mqtt协议传输配置启动类模块
      • snmp snmp协议传输配置启动类模块
    • ui-ngx 前端工程模块
    - +

    源码结构

    swagger

    http://localhost:8080/swagger-ui.html

    源码结构

    • application 主程序入口模块,重点关注ThingsboardServerApplication启动类
    • common 公共模块组
      • actor actor开发模型接口模块 实现在application模块
      • cache Redis/Caffeine缓存模块
      • cluster-api 集群功能接口模块,队列、消息通知等
      • coap-server coap协议实现模块
      • dao-api dao层接口模块,全是接口,没有实现
      • data 实体模块,全是一些DTO、entity、pojo等,最基础的源码包,不依赖任何其他源码模块
      • edge-api 边缘端api,主要是调用网关端的rpc调用,目前代码没有用到此包的内容
      • message 消息通用模块,中间件消息、规则链消息等,偏接口、实体、异常类
      • queue 消息中间件、消息队列
      • script
        • remote-js-client 远程执行js客户端,源码没有用到
        • script-api js脚本执行模块,源码没有用到
      • stats 状态统计、消息统计
      • transport 传输模块组
        • coap coap协议传输模块
        • http http协议传输模块
        • lwm2m lwm2m协议传输模块
        • mqtt mqtt协议传输模块
        • snmp snmp协议传输模块
        • transport-api 基础传输模块 上面的传输模块都需要依赖他,他算是比较基础的模块了
      • util 工具类模块,只依赖common/data模块
      • version-control TODO 版本控制,具体业务还没搞懂
    • dao 具体的dao实现模块
    • docker 启用微服务的docker配置目录,脚本、docker配置文件等
    • msa microservices aplication微服务模块组
      • black-box-tests
      • js-executor
      • tb 单docker镜像
      • tb-node
      • transport 协议传输配置docker微服务模块组
        • coap coap协议传输配置docker微服务模块
        • http http协议传输配置docker微服务模块
        • lwm2m lwm2m协议传输配置docker微服务模块
        • mqtt mqtt协议传输配置docker微服务模块
        • snmp snmp协议传输配置docker微服务模块
      • vc-executor TODO 依赖common/version-control
      • vc-executor-docker vc-executor的docker配置模块
      • web-ui 前端的docker配置模块
    • netty-mqtt mqtt-broker协议实现模块
    • packing 打包工具目录,打rpm、deb包
    • rest-client 二开SDK模块,二开请求工具
    • rule-engine 规则引擎
      • rule-engine-api 规则引擎接口模块,全是接口,application会实现
      • rule-engine-components 规则引擎所有元件模块
    • tools 各种工具模块,数据迁移工具、Python发送消息工具、shell工具等等
    • transport 协议传输配置启动类模块
      • coap coap协议传输配置启动类模块
      • http http协议传输配置启动类模块
      • lwm2m lwm2m协议传输配置启动类模块
      • mqtt mqtt协议传输配置启动类模块
      • snmp snmp协议传输配置启动类模块
    • ui-ngx 前端工程模块
    + \ No newline at end of file diff --git a/index.html b/index.html index 172196c17..b5f009472 100644 --- a/index.html +++ b/index.html @@ -11,13 +11,13 @@ - +

    Jiot.cloud

    我的开发笔记

    多读、多写、多分享

    尽可能的包含各种IT技术

    个人简介:10年以上软件开发经验,擅长Web前端、Java后端等编程技术,擅长物联网云平台相关业务,擅长组建开发团队、技术管理、技术架构等。

    喜欢研究,热爱编程。

    - + \ No newline at end of file diff --git a/markdown-page/index.html b/markdown-page/index.html index 2168bdbac..64aabcf4e 100644 --- a/markdown-page/index.html +++ b/markdown-page/index.html @@ -11,13 +11,13 @@ - +

    Markdown page example

    You don't need React to write simple standalone pages.

    - + \ No newline at end of file