{"id":26544,"date":"2025-04-19T16:01:16","date_gmt":"2025-04-19T08:01:16","guid":{"rendered":"https:\/\/www.wsisp.com\/helps\/26544.html"},"modified":"2025-04-19T16:01:16","modified_gmt":"2025-04-19T08:01:16","slug":"%e5%bd%93%e6%95%b0%e6%8d%ae%e5%ba%93%e5%92%8c%e4%b8%ad%e9%97%b4%e4%bb%b6%e9%83%bd%e6%8c%a4%e5%9c%a8%e4%b8%80%e5%8f%b0%e5%8f%8c%e6%a0%b84g%e6%9c%8d%e5%8a%a1%e5%99%a8%ef%bc%8c%e8%af%a5%e5%a6%82%e4%bd%95","status":"publish","type":"post","link":"https:\/\/www.wsisp.com\/helps\/26544.html","title":{"rendered":"\u5f53\u6570\u636e\u5e93\u548c\u4e2d\u95f4\u4ef6\u90fd\u6324\u5728\u4e00\u53f0\u53cc\u68384G\u670d\u52a1\u5668\uff0c\u8be5\u5982\u4f55\u8bbe\u8ba1\u67b6\u6784\u4fdd\u8bc1\u7cfb\u7edf\u7684\u7a33\u5b9a\u6027\u548c\u6027\u80fd\uff1f..."},"content":{"rendered":"<p style=\"text-align:left\">\u5f53\u4f60\u63a5\u4e86\u4e00\u7b14\u5341\u5206\u62a0\u95e8\u5c0f\u8001\u677f\u7684\u79c1\u6d3b\u8ba2\u5355&#xff0c;\u4ed6\u53ea\u6709\u4e00\u53f0\u53cc\u68384G\u5185\u5b58\u7684\u670d\u52a1\u5668&#xff0c;\u4ec5\u6b64\u4e00\u53f0&#xff0c;\u5341\u5206\u62a0\u95e8&#xff0c;\u4e0d\u80af\u52a0\u591a\u670d\u52a1\u5668\u3002<\/p>\n<p style=\"text-align:left\">\u8fd8\u8981\u6ee1\u8db3\u4ee5\u4e0b\u8981\u6c42&#xff1a;<\/p>\n<li>\n<p style=\"text-align:left\">\u540e\u7aef\u670d\u52a1\u7528Java\u8bed\u8a00\u5f00\u53d1&#xff1b;&#xff08;\u6211\u731c\u60f3\u53ef\u80fd\u662f\u4ed6\u6709\u4e2a\u4eb2\u621a\u5c0f\u5b69\u5927\u5b66\u521a\u521a\u6bd5\u4e1a&#xff0c;\u4ed6\u5e94\u8be5\u4f1a\u4e00\u70b9\u70b9Java\u5427\u3002\u4e0d\u7ba1\u5566&#xff0c;\u53cd\u6b63&#xff0c;\u5c06\u6765\u90fd\u662f\u4ed6\u4eb2\u621a\u63a5\u624b&#xff0c;\u6211\u8d1f\u8d23\u641e\u597d\u7b2c\u4e00\u4e2a\u7248\u672c\u5c31\u884c\u4e86\u3002\u522b\u5230\u65f6\u5019\u7b2c\u4e09\u7248\u53c8\u515c\u515c\u8f6c\u8f6c\u53c8\u56de\u5230\u6211\u624b\u4e0a\u5c31\u884c&#xff01;&#xff09;<\/p>\n<\/li>\n<li>\n<p style=\"text-align:left\">\u524d\u540e\u7aef\u5206\u79bb&#xff1b;<\/p>\n<\/li>\n<li>\n<p style=\"text-align:left\">\u6570\u636e\u5e93\u548c\u4e2d\u95f4\u4ef6\u90fd\u5728\u8fd9\u53f0\u53ef\u601c\u670d\u52a1\u5668&#xff1b;<\/p>\n<\/li>\n<li>\n<p style=\"text-align:left\">\u8fd8\u6709\u8017\u65f6\u4efb\u52a1\u8981\u5904\u7406&#xff1b;<\/p>\n<\/li>\n<li>\n<p style=\"text-align:left\">\u76d1\u63a7\u4e0e\u65e5\u5fd7&#xff1b;<\/p>\n<\/li>\n<li>\n<p style=\"text-align:left\">\u8981\u8003\u8651\u5c06\u6765\u80fd\u5feb\u901f\u6c34\u5e73\u6269\u5c55\u3002<\/p>\n<\/li>\n<p style=\"text-align:left\">\u8fd9\u4e48\u591a\u4e1c\u897f\u5168\u90e8\u90fd\u6324\u5230\u4e00\u53f0\u53ef\u601c\u5df4\u5df4\u7684\u670d\u52a1\u5668\u4e0a&#xff0c;\u4e5f\u5c31\u662f\u8bf4\u6211\u8981\u6700\u5927\u9650\u5ea6\u5730\u5229\u7528\u6709\u9650\u7684\u53ef\u601c\u8d44\u6e90&#xff08;\u53cc\u6838CPU\u548c4GB\u5185\u5b58&#xff01;&#xff01;&#xff01;&#xff09;&#xff0c;\u540c\u65f6\u53c8\u8981\u4fdd\u6301\u7cfb\u7edf\u7684\u7a33\u5b9a\u6027\u548c\u6027\u80fd\u3002<\/p>\n<p style=\"text-align:left\">\u5e78\u597d\u94b1\u7ed9\u591f\u4e86&#xff01;&#xff01;&#xff01;\u6211\u53ea\u80fd\u52c9\u4e3a\u5176\u96be\u5e2e\u5fd9\u641e\u641e\u5427\u3002<\/p>\n<p style=\"text-align:left\">\u4e0b\u9762\u662f\u6211\u63d0\u4f9b\u7684\u521d\u6b65\u65b9\u6848\u3002<\/p>\n<h2>\u67b6\u6784\u8bbe\u8ba1<\/h2>\n<li>\n<p style=\"text-align:left\">\u540e\u7aef\u670d\u52a1&#xff1a;\u4f7f\u7528Spring Boot\u5f00\u53d1RESTful API\u3002<\/p>\n<\/li>\n<li>\n<p style=\"text-align:left\">\u524d\u7aef\u5e94\u7528&#xff1a;\u4f7f\u7528React.js\u6784\u5efa\u5355\u9875\u5e94\u7528&#xff08;SPA&#xff09;\u3002<\/p>\n<\/li>\n<li>\n<p style=\"text-align:left\">\u6570\u636e\u5e93&#xff1a;\u4f7f\u7528MySQL\u4f5c\u4e3a\u5173\u7cfb\u578b\u6570\u636e\u5e93\u3002<\/p>\n<\/li>\n<li>\n<p style=\"text-align:left\">\u7f13\u5b58\u5c42&#xff1a;\u4f7f\u7528Redis\u8fdb\u884c\u6570\u636e\u7f13\u5b58\u3002<\/p>\n<\/li>\n<li>\n<p style=\"text-align:left\">\u6d88\u606f\u961f\u5217&#xff1a;\u4f7f\u7528RabbitMQ\u5904\u7406\u5f02\u6b65\u4efb\u52a1&#xff08;\u5982\u53d1\u9001\u90ae\u4ef6\u3001\u77ed\u4fe1\u9a8c\u8bc1\u7801&#xff09;\u3002<\/p>\n<\/li>\n<li>\n<p style=\"text-align:left\">\u8d1f\u8f7d\u5747\u8861&#xff1a;\u7531\u4e8e\u53ea\u6709\u4e00\u53f0\u670d\u52a1\u5668&#xff0c;\u6682\u65f6\u4e0d\u9700\u8981\u771f\u6b63\u7684\u8d1f\u8f7d\u5747\u8861\u5668&#xff0c;\u4f46\u53ef\u4ee5\u4f7f\u7528Nginx\u6765\u4ee3\u7406\u8bf7\u6c42\u5e76\u63d0\u4f9b\u57fa\u672c\u7684\u53cd\u5411\u4ee3\u7406\u529f\u80fd\u3002<\/p>\n<\/li>\n<li>\n<p style=\"text-align:left\">CDN&#xff1a;\u4f7f\u7528\u5916\u90e8CDN\u670d\u52a1&#xff08;\u5982Cloudflare&#xff09;\u6765\u7f13\u5b58\u9759\u6001\u8d44\u6e90\u3002<\/p>\n<\/li>\n<li>\n<p style=\"text-align:left\">\u76d1\u63a7\u4e0e\u65e5\u5fd7&#xff1a;\u4f7f\u7528Prometheus\u548cGrafana\u8fdb\u884c\u76d1\u63a7&#xff0c;ELK Stack&#xff08;Elasticsearch, Logstash, Kibana&#xff09;\u8fdb\u884c\u65e5\u5fd7\u7ba1\u7406\u3002<\/p>\n<\/li>\n<h2>\u67b6\u6784\u56fe<\/h2>\n<p style=\"text-align:center\"><img decoding=\"async\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2025\/04\/20250419080115-6803584b002c7.png\" alt=\"3a98191418f9812e144209db6514ca66.png\" \/><\/p>\n<h2>\u5177\u4f53\u914d\u7f6e\u53c2\u6570<\/h2>\n<h3>Spring Boot<\/h3>\n<ul>\n<li>\n<p style=\"text-align:left\">server.tomcat.max-threads&#061;100:<\/p>\n<ul>\n<li>\n<p style=\"text-align:left\">\u8003\u8651\u56e0\u7d20: \u6bcf\u4e2a\u7ebf\u7a0b\u5927\u7ea6\u5360\u7528\u7ea61MB\u5806\u6808\u7a7a\u95f4\u3002\u4e3a\u4e86\u5e73\u8861\u5e76\u53d1\u80fd\u529b\u548c\u5185\u5b58\u4f7f\u7528&#xff0c;\u6211\u4eec\u9700\u8981\u4e3a\u5176\u4ed6\u7ec4\u4ef6\u7559\u51fa\u8db3\u591f\u7684\u5185\u5b58\u3002<\/p>\n<\/li>\n<li>\n<p style=\"text-align:left\">\u8ba1\u7b97: \u5047\u8bbe\u6bcf\u4e2a\u7ebf\u7a0b\u5360\u75281MB\u5806\u6808\u7a7a\u95f4&#xff0c;4GB\u5185\u5b58\u4e2d\u7559\u51fa2.5GB\u7528\u4e8e\u5176\u4ed6\u670d\u52a1&#xff08;\u5305\u62ecMySQL\u3001Redis\u3001RabbitMQ\u7b49&#xff09;&#xff0c;\u5269\u4e0b1.5GB\u53ef\u7528\u4e8eTomcat\u7ebf\u7a0b\u6c60\u3002\u56e0\u6b64&#xff0c;\u6700\u591a\u652f\u6301\u7ea61500\u4e2a\u7ebf\u7a0b\u3002\u7136\u800c&#xff0c;\u8bbe\u7f6e\u4e3a100\u662f\u4e3a\u4e86\u5e73\u8861\u5e76\u53d1\u80fd\u529b\u548c\u5185\u5b58\u4f7f\u7528&#xff0c;\u5e76\u786e\u4fdd\u7cfb\u7edf\u7a33\u5b9a\u6027\u3002<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p style=\"text-align:left\">server.connection-timeout&#061;10s:<\/p>\n<ul>\n<li>\n<p style=\"text-align:left\">\u8003\u8651\u56e0\u7d20: \u8bbe\u7f6e\u8f83\u77ed\u7684\u8fde\u63a5\u8d85\u65f6\u65f6\u95f4\u53ef\u4ee5\u51cf\u5c11\u957f\u65f6\u95f4\u6302\u8d77\u7684\u65e0\u6548\u8fde\u63a5&#xff0c;\u63d0\u9ad8\u8d44\u6e90\u5229\u7528\u7387\u3002<\/p>\n<\/li>\n<li>\n<p style=\"text-align:left\">\u8ba1\u7b97: 10\u79d2\u662f\u4e00\u4e2a\u5408\u7406\u7684\u9ed8\u8ba4\u503c&#xff0c;\u65e2\u4e0d\u4f1a\u592a\u77ed\u5bfc\u81f4\u6b63\u5e38\u8bf7\u6c42\u88ab\u4e2d\u65ad&#xff0c;\u4e5f\u4e0d\u4f1a\u592a\u957f\u5bfc\u81f4\u8d44\u6e90\u6d6a\u8d39\u3002<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>MySQL<\/h3>\n<ul>\n<li>\n<p style=\"text-align:left\">max_connections&#061;50:<\/p>\n<ul>\n<li>\n<p style=\"text-align:left\">\u8003\u8651\u56e0\u7d20: \u6bcf\u4e2a\u8fde\u63a5\u9700\u8981\u4e00\u5b9a\u7684\u5185\u5b58\u5f00\u9500\u3002\u57284GB\u5185\u5b58\u4e2d&#xff0c;\u7559\u51fa\u5927\u90e8\u5206\u5185\u5b58\u7ed9\u5e94\u7528\u7a0b\u5e8f\u548c\u5176\u4ed6\u670d\u52a1\u3002<\/p>\n<\/li>\n<li>\n<p style=\"text-align:left\">\u8ba1\u7b97: \u6839\u636e\u7ecf\u9a8c&#xff0c;\u6bcf\u4e2aMySQL\u8fde\u63a5\u5927\u7ea6\u5360\u7528\u51e0MB\u5185\u5b58\u3002\u5047\u8bbe\u6bcf\u4e2a\u8fde\u63a5\u5360\u75288MB\u5185\u5b58&#xff0c;50\u4e2a\u8fde\u63a5\u5927\u7ea6\u5360\u7528400MB\u5185\u5b58&#xff0c;\u7559\u51fa\u8db3\u591f\u5185\u5b58\u7ed9\u5176\u4ed6\u7ec4\u4ef6\u3002<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p style=\"text-align:left\">innodb_buffer_pool_size&#061;768M:<\/p>\n<ul>\n<li>\n<p style=\"text-align:left\">\u8003\u8651\u56e0\u7d20: InnoDB\u7f13\u51b2\u6c60\u662fMySQL\u6027\u80fd\u7684\u5173\u952e&#xff0c;\u7528\u4e8e\u7f13\u5b58\u6570\u636e\u548c\u7d22\u5f15\u3002<\/p>\n<\/li>\n<li>\n<p style=\"text-align:left\">\u8ba1\u7b97: \u57284GB\u5185\u5b58\u4e2d&#xff0c;\u5206\u914d768MB\u7ed9InnoDB\u7f13\u51b2\u6c60\u662f\u4e00\u4e2a\u5408\u7406\u7684\u9009\u62e9&#xff0c;\u8fd9\u53ef\u4ee5\u5e2e\u52a9\u63d0\u9ad8\u6570\u636e\u5e93\u67e5\u8be2\u6027\u80fd\u3002<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p style=\"text-align:left\">\u7981\u7528\u67e5\u8be2\u7f13\u5b58:<\/p>\n<ul>\n<li>\n<p style=\"text-align:left\">\u539f\u56e0: \u67e5\u8be2\u7f13\u5b58\u5728MySQL 8.0\u4e2d\u5df2\u88ab\u79fb\u9664&#xff0c;\u56e0\u6b64\u4e0d\u9700\u8981\u989d\u5916\u914d\u7f6e\u3002<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>Redis<\/h3>\n<ul>\n<li>\n<p style=\"text-align:left\">maxmemory&#061;512M:<\/p>\n<ul>\n<li>\n<p style=\"text-align:left\">\u8003\u8651\u56e0\u7d20: Redis\u4e3b\u8981\u7528\u4e8e\u7f13\u5b58\u6570\u636e&#xff0c;\u5206\u914d\u8db3\u591f\u7684\u5185\u5b58\u4ee5\u5b58\u50a8\u5e38\u7528\u6570\u636e\u3002<\/p>\n<\/li>\n<li>\n<p style=\"text-align:left\">\u8ba1\u7b97: \u57284GB\u5185\u5b58\u4e2d&#xff0c;\u5206\u914d512MB\u7ed9Redis\u662f\u4e00\u4e2a\u5408\u7406\u7684\u9009\u62e9&#xff0c;\u8fd9\u6709\u52a9\u4e8e\u63d0\u9ad8\u5e94\u7528\u7684\u54cd\u5e94\u901f\u5ea6\u3002<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p style=\"text-align:left\">maxmemory-policy&#061;allkeys-lru:<\/p>\n<ul>\n<li>\n<p style=\"text-align:left\">\u539f\u56e0: LRU&#xff08;Least Recently Used&#xff09;\u7b56\u7565\u4f1a\u5728\u5185\u5b58\u8fbe\u5230\u4e0a\u9650\u65f6\u79fb\u9664\u6700\u8fd1\u6700\u5c11\u4f7f\u7528\u7684\u952e&#xff0c;\u786e\u4fdd\u7f13\u5b58\u7684\u6709\u6548\u6027\u3002<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>RabbitMQ<\/h3>\n<ul>\n<li>\n<p style=\"text-align:left\">vm_memory_high_watermark.relative&#061;0.3:<\/p>\n<ul>\n<li>\n<p style=\"text-align:left\">\u8003\u8651\u56e0\u7d20: \u63a7\u5236RabbitMQ\u7684\u5185\u5b58\u4f7f\u7528&#xff0c;\u9632\u6b62\u5185\u5b58\u4e0d\u8db3\u5f71\u54cd\u5176\u4ed6\u670d\u52a1\u3002<\/p>\n<\/li>\n<li>\n<p style=\"text-align:left\">\u8ba1\u7b97: \u76f8\u5bf9\u5185\u5b58\u6c34\u4f4d\u8bbe\u7f6e\u4e3a0.3\u610f\u5473\u7740\u5f53\u53ef\u7528\u5185\u5b58\u4f4e\u4e8e30%\u65f6&#xff0c;RabbitMQ\u4f1a\u5f00\u59cb\u62d2\u7edd\u65b0\u7684\u6d88\u606f\u53d1\u5e03&#xff0c;\u786e\u4fdd\u6709\u8db3\u591f\u7684\u5185\u5b58\u4f9b\u5176\u4ed6\u7ec4\u4ef6\u4f7f\u7528\u3002<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>Nginx<\/h3>\n<ul>\n<li>\n<p style=\"text-align:left\">worker_processes&#061;2:<\/p>\n<ul>\n<li>\n<p style=\"text-align:left\">\u8003\u8651\u56e0\u7d20: \u53cc\u6838CPU\u9002\u5408\u8fd0\u884c\u4e24\u4e2a\u5de5\u4f5c\u8fdb\u7a0b\u3002<\/p>\n<\/li>\n<li>\n<p style=\"text-align:left\">\u8ba1\u7b97: \u6bcf\u4e2a\u5de5\u4f5c\u8fdb\u7a0b\u53ef\u4ee5\u5904\u7406\u5927\u91cf\u5e76\u53d1\u8bf7\u6c42&#xff0c;\u4e24\u4e2a\u8fdb\u7a0b\u53ef\u4ee5\u5145\u5206\u5229\u7528\u53cc\u6838CPU\u7684\u80fd\u529b\u3002<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p style=\"text-align:left\">worker_connections&#061;1024:<\/p>\n<ul>\n<li>\n<p style=\"text-align:left\">\u8003\u8651\u56e0\u7d20: \u6bcf\u4e2a\u5de5\u4f5c\u8fdb\u7a0b\u53ef\u4ee5\u5904\u7406\u7684\u6700\u5927\u8fde\u63a5\u6570\u3002<\/p>\n<\/li>\n<li>\n<p style=\"text-align:left\">\u8ba1\u7b97: 1024\u662f\u4e00\u4e2a\u5e38\u89c1\u7684\u9ed8\u8ba4\u503c&#xff0c;\u53ef\u4ee5\u6839\u636e\u5b9e\u9645\u60c5\u51b5\u8c03\u6574\u3002\u57284GB\u5185\u5b58\u4e2d&#xff0c;\u8fd9\u4e2a\u8bbe\u7f6e\u662f\u5408\u7406\u7684\u3002<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>Prometheus &amp; Grafana<\/h3>\n<ul>\n<li>\n<p style=\"text-align:left\">scrape_interval&#061;15s:<\/p>\n<ul>\n<li>\n<p style=\"text-align:left\">\u8003\u8651\u56e0\u7d20: \u6293\u53d6\u6307\u6807\u7684\u65f6\u95f4\u95f4\u9694&#xff0c;\u8fc7\u77ed\u4f1a\u5f71\u54cd\u6027\u80fd&#xff0c;\u8fc7\u957f\u4f1a\u5bfc\u81f4\u76d1\u63a7\u5ef6\u8fdf\u3002<\/p>\n<\/li>\n<li>\n<p style=\"text-align:left\">\u8ba1\u7b97: 15\u79d2\u662f\u4e00\u4e2a\u5408\u7406\u7684\u6298\u8877\u503c&#xff0c;\u65e2\u80fd\u53ca\u65f6\u83b7\u53d6\u6307\u6807&#xff0c;\u53c8\u4e0d\u4f1a\u8fc7\u4e8e\u9891\u7e41\u5730\u6d88\u8017\u8d44\u6e90\u3002<\/p>\n<\/li>\n<li>\n<p style=\"text-align:left\">Grafana\u7528\u4e8e\u53ef\u89c6\u5316\u76d1\u63a7\u6570\u636e<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>ELK Stack<\/h3>\n<ul>\n<li>\n<p style=\"text-align:left\">Elasticsearch\u5806\u5185\u5b58 (Xms&#061;256m Xmx&#061;256m):<\/p>\n<ul>\n<li>\n<p style=\"text-align:left\">\u8003\u8651\u56e0\u7d20: Elasticsearch\u9700\u8981\u8db3\u591f\u7684\u5806\u5185\u5b58\u6765\u9ad8\u6548\u5730\u5904\u7406\u6570\u636e\u3002<\/p>\n<\/li>\n<li>\n<p style=\"text-align:left\">\u8ba1\u7b97: \u5206\u914d256MB\u5806\u5185\u5b58\u7ed9Elasticsearch&#xff0c;\u7559\u51fa\u8db3\u591f\u7684\u5185\u5b58\u7ed9\u5176\u4ed6\u7ec4\u4ef6\u3002<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p style=\"text-align:left\">Logstash\u6279\u5904\u7406\u5927\u5c0f (pipeline.batch.size&#061;125):<\/p>\n<ul>\n<li>\n<p style=\"text-align:left\">\u8003\u8651\u56e0\u7d20: Logstash\u6279\u5904\u7406\u5927\u5c0f\u51b3\u5b9a\u4e86\u6bcf\u6b21\u5904\u7406\u7684\u65e5\u5fd7\u6570\u91cf\u3002<\/p>\n<\/li>\n<li>\n<p style=\"text-align:left\">\u8ba1\u7b97: 125\u662f\u4e00\u4e2a\u5408\u7406\u7684\u6279\u91cf\u5927\u5c0f&#xff0c;\u53ef\u4ee5\u5728\u4e0d\u663e\u8457\u589e\u52a0\u5185\u5b58\u4f7f\u7528\u7684\u60c5\u51b5\u4e0b\u63d0\u9ad8\u5904\u7406\u6548\u7387\u3002<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p style=\"text-align:left\">Kibana\u76d1\u542c\u7aef\u53e3 (server.port&#061;5601):<\/p>\n<ul>\n<li>\n<p style=\"text-align:left\">\u8003\u8651\u56e0\u7d20: Kibana\u7684\u9ed8\u8ba4\u76d1\u542c\u7aef\u53e3\u3002<\/p>\n<\/li>\n<li>\n<p style=\"text-align:left\">\u8ba1\u7b97: 5601\u662f\u4e00\u4e2a\u6807\u51c6\u7684\u7aef\u53e3\u53f7&#xff0c;\u7528\u4e8e\u8bbf\u95eeKibana\u754c\u9762\u3002<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2>\u9884\u4f30\u5185\u5b58<\/h2>\n<p style=\"text-align:left\">\u4ece\u4e0a\u9762\u7684\u914d\u7f6e\u9884\u4f30\u4e00\u4e0b\u5185\u5b58\u662f\u5426\u8d85\u8fc7\u4e864GB&#xff1f;<\/p>\n<p style=\"text-align:left\">\u8ba1\u7b97\u5982\u4e0b&#xff1a;\u00a0<\/p>\n<p style=\"text-align:left\">Spring Boot Tomcat Threads: 100 threads * 1MB\/thread &#061; 100MB\u00a0<\/p>\n<p style=\"text-align:left\">MySQL Connections: 50 connections * 8MB\/connection &#061; 400MB\u00a0<\/p>\n<p style=\"text-align:left\">MySQL InnoDB Buffer Pool: 768MB\u00a0<\/p>\n<p style=\"text-align:left\">Redis: 512MB\u00a0<\/p>\n<p style=\"text-align:left\">RabbitMQ: 100MB (\u5927\u6982\u4f30\u4e00\u4e0b\u800c\u5df2)\u00a0<\/p>\n<p style=\"text-align:left\">Nginx: 4MB (\u7528\u4e8e2\u4e2a\u5de5\u4f5c\u8fdb\u7a0b&#xff0c;\u6bcf\u4e2a\u8fdb\u7a0b\u67091024\u4e2a\u8fde\u63a5)\u00a0<\/p>\n<p style=\"text-align:left\">Prometheus: \u5185\u5b58\u4f7f\u7528\u7387\u6781\u4f4e&#xff0c;\u76f8\u6bd4\u4e4b\u4e0b\u53ef\u4ee5\u5ffd\u7565\u4e0d\u8ba1\u00a0<\/p>\n<p style=\"text-align:left\">Elasticsearch: 256MB (\u521d\u59cb\u5806\u5927\u5c0f\u548c\u6700\u5927\u5806\u5927\u5c0f)\u00a0<\/p>\n<p style=\"text-align:left\">Logstash: \u5185\u5b58\u4f7f\u7528\u7387\u6781\u4f4e&#xff0c;\u76f8\u6bd4\u4e4b\u4e0b\u53ef\u4ee5\u5ffd\u7565\u4e0d\u8ba1\u00a0<\/p>\n<p style=\"text-align:left\">Kibana: \u5185\u5b58\u4f7f\u7528\u7387\u6781\u4f4e&#xff0c;\u76f8\u6bd4\u4e4b\u4e0b\u53ef\u4ee5\u5ffd\u7565\u4e0d\u8ba1<\/p>\n<h3>\u603b\u8ba1\u7ea6\u4e3a:<\/h3>\n<p style=\"text-align:left\">100MB&#043;400MB&#043;768MB&#043;512MB&#043;100MB&#043;4MB&#043;256MB&#061;2140MB \u2248 2.14GB<\/p>\n<p style=\"text-align:left\">\u4ecd\u7136\u5728 4GB \u7684\u5185\u5b58\u9650\u5236\u8303\u56f4\u5185&#xff0c;\u786e\u4fdd\u7cfb\u7edf\u6709\u8db3\u591f\u7684\u5185\u5b58\u6765\u8fd0\u884c\u6240\u6709\u7ec4\u4ef6\u3002<\/p>\n<h2>\u540e\u7aef<\/h2>\n<h3>pom.xml<\/h3>\n<p> &lt;?xml version&#061;&#034;1.0&#034;\u00a0encoding&#061;&#034;UTF-8&#034;?&gt;<br \/>\n&lt;project xmlns&#061;&#034;http:\/\/maven.apache.org\/POM\/4.0.0&#034;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0xmlns:xsi&#061;&#034;http:\/\/www.w3.org\/2001\/XMLSchema-instance&#034;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0xsi:schemaLocation&#061;&#034;http:\/\/maven.apache.org\/POM\/4.0.0 https:\/\/maven.apache.org\/xsd\/maven-4.0.0.xsd&#034;&gt;<br \/>\n\u00a0 \u00a0 &lt;modelVersion&gt;4.0.0&lt;\/modelVersion&gt;<br \/>\n\u00a0 \u00a0 &lt;parent&gt;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 &lt;groupId&gt;org.springframework.boot&lt;\/groupId&gt;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 &lt;artifactId&gt;spring-boot-starter-parent&lt;\/artifactId&gt;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 &lt;version&gt;2.7.5&lt;\/version&gt;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 &lt;relativePath\/&gt; &lt;!&#8211; lookup parent from repository &#8211;&gt;<br \/>\n\u00a0 \u00a0 &lt;\/parent&gt;<br \/>\n\u00a0 \u00a0 &lt;groupId&gt;com.example&lt;\/groupId&gt;<br \/>\n\u00a0 \u00a0 &lt;artifactId&gt;demo&lt;\/artifactId&gt;<br \/>\n\u00a0 \u00a0 &lt;version&gt;0.0.1-SNAPSHOT&lt;\/version&gt;<br \/>\n\u00a0 \u00a0 &lt;name&gt;demo&lt;\/name&gt;<br \/>\n\u00a0 \u00a0 &lt;description&gt;Demo project\u00a0for\u00a0Spring Boot&lt;\/description&gt;<br \/>\n\u00a0 \u00a0 &lt;properties&gt;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 &lt;java.version&gt;11&lt;\/java.version&gt;<br \/>\n\u00a0 \u00a0 &lt;\/properties&gt;<br \/>\n\u00a0 \u00a0 &lt;dependencies&gt;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 &lt;!&#8211; Spring Boot Starter Web &#8211;&gt;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 &lt;dependency&gt;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 &lt;groupId&gt;org.springframework.boot&lt;\/groupId&gt;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 &lt;artifactId&gt;spring-boot-starter-web&lt;\/artifactId&gt;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 &lt;\/dependency&gt;<\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 &lt;!&#8211; Spring Boot Starter Data JPA &#8211;&gt;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 &lt;dependency&gt;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 &lt;groupId&gt;org.springframework.boot&lt;\/groupId&gt;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 &lt;artifactId&gt;spring-boot-starter-data-jpa&lt;\/artifactId&gt;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 &lt;\/dependency&gt;<\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 &lt;!&#8211; MySQL Connector &#8211;&gt;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 &lt;dependency&gt;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 &lt;groupId&gt;mysql&lt;\/groupId&gt;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 &lt;artifactId&gt;mysql-connector-java&lt;\/artifactId&gt;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 &lt;scope&gt;runtime&lt;\/scope&gt;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 &lt;\/dependency&gt;<\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 &lt;!&#8211; Redis &#8211;&gt;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 &lt;dependency&gt;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 &lt;groupId&gt;org.springframework.boot&lt;\/groupId&gt;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 &lt;artifactId&gt;spring-boot-starter-data-redis&lt;\/artifactId&gt;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 &lt;\/dependency&gt;<\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 &lt;!&#8211; RabbitMQ &#8211;&gt;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 &lt;dependency&gt;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 &lt;groupId&gt;org.springframework.boot&lt;\/groupId&gt;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 &lt;artifactId&gt;spring-boot-starter-amqp&lt;\/artifactId&gt;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 &lt;\/dependency&gt;<\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 &lt;!&#8211; Actuator\u00a0for\u00a0Monitoring &#8211;&gt;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 &lt;dependency&gt;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 &lt;groupId&gt;org.springframework.boot&lt;\/groupId&gt;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 &lt;artifactId&gt;spring-boot-starter-actuator&lt;\/artifactId&gt;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 &lt;\/dependency&gt;<\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 &lt;!&#8211; Micrometer Prometheus Integration &#8211;&gt;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 &lt;dependency&gt;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 &lt;groupId&gt;io.micrometer&lt;\/groupId&gt;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 &lt;artifactId&gt;micrometer-registry-prometheus&lt;\/artifactId&gt;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 &lt;\/dependency&gt;<\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 &lt;!&#8211; Spring Boot DevTools\u00a0for\u00a0Development &#8211;&gt;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 &lt;dependency&gt;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 &lt;groupId&gt;org.springframework.boot&lt;\/groupId&gt;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 &lt;artifactId&gt;spring-boot-devtools&lt;\/artifactId&gt;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 &lt;scope&gt;runtime&lt;\/scope&gt;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 &lt;optional&gt;true&lt;\/optional&gt;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 &lt;\/dependency&gt;<\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 &lt;!&#8211; Test Dependencies &#8211;&gt;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 &lt;dependency&gt;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 &lt;groupId&gt;org.springframework.boot&lt;\/groupId&gt;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 &lt;artifactId&gt;spring-boot-starter-test&lt;\/artifactId&gt;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 &lt;scope&gt;test&lt;\/scope&gt;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 &lt;\/dependency&gt;<br \/>\n\u00a0 \u00a0 &lt;\/dependencies&gt;<\/p>\n<p>\u00a0 \u00a0 &lt;build&gt;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 &lt;plugins&gt;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 &lt;plugin&gt;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 &lt;groupId&gt;org.springframework.boot&lt;\/groupId&gt;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 &lt;artifactId&gt;spring-boot-maven-plugin&lt;\/artifactId&gt;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 &lt;\/plugin&gt;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 &lt;\/plugins&gt;<br \/>\n\u00a0 \u00a0 &lt;\/build&gt;<br \/>\n&lt;\/project&gt; <\/p>\n<h3>src\/main\/resources\/application.properties<\/h3>\n<p> # \u670d\u52a1\u5668\u914d\u7f6e<br \/>\nserver.port&#061;8080\u00a0# \u8bbe\u7f6e\u670d\u52a1\u5668\u7aef\u53e3\u4e3a8080<br \/>\nserver.tomcat.max-threads&#061;100\u00a0# \u6bcf\u4e2a\u7ebf\u7a0b\u5927\u7ea6\u5360\u7528\u7ea61MB\u5806\u6808\u7a7a\u95f4&#xff0c;4GB\u5185\u5b58\u4e2d\u7559\u51fa2.5GB\u7528\u4e8e\u5176\u4ed6\u670d\u52a1&#xff0c;\u5269\u4e0b1.5GB\u53ef\u7528\u4e8eTomcat\u7ebf\u7a0b\u6c60<br \/>\nserver.connection-timeout&#061;10s\u00a0# \u8bbe\u7f6e\u8f83\u77ed\u7684\u8fde\u63a5\u8d85\u65f6\u65f6\u95f4\u53ef\u4ee5\u51cf\u5c11\u957f\u65f6\u95f4\u6302\u8d77\u7684\u65e0\u6548\u8fde\u63a5&#xff0c;\u63d0\u9ad8\u8d44\u6e90\u5229\u7528\u7387<\/p>\n<p># \u6570\u636e\u5e93\u914d\u7f6e<br \/>\nspring.datasource.url&#061;jdbc:mysql:\/\/localhost:3306\/mydatabase?useSSL&#061;false&amp;serverTimezone&#061;UTC\u00a0# \u6570\u636e\u5e93\u8fde\u63a5URL<br \/>\nspring.datasource.username&#061;root\u00a0# \u6570\u636e\u5e93\u7528\u6237\u540d<br \/>\nspring.datasource.password&#061;password\u00a0# \u6570\u636e\u5e93\u5bc6\u7801<br \/>\nspring.jpa.hibernate.ddl-auto&#061;update\u00a0# \u81ea\u52a8\u66f4\u65b0\u6570\u636e\u5e93\u6a21\u5f0f<br \/>\nspring.jpa.show-sql&#061;true# \u663e\u793aSQL\u8bed\u53e5<br \/>\nspring.jpa.properties.hibernate.dialect&#061;org.hibernate.dialect.MySQL5InnoDBDialect\u00a0# \u4f7f\u7528MySQL InnoDB\u65b9\u8a00<\/p>\n<p># Redis\u914d\u7f6e<br \/>\nspring.redis.host&#061;localhost\u00a0# Redis\u4e3b\u673a\u5730\u5740<br \/>\nspring.redis.port&#061;6379\u00a0# Redis\u7aef\u53e3\u53f7<\/p>\n<p># RabbitMQ\u914d\u7f6e<br \/>\nspring.rabbitmq.host&#061;localhost\u00a0# RabbitMQ\u4e3b\u673a\u5730\u5740<br \/>\nspring.rabbitmq.port&#061;5672\u00a0# RabbitMQ\u7aef\u53e3\u53f7<br \/>\nspring.rabbitmq.username&#061;guest\u00a0# RabbitMQ\u7528\u6237\u540d<br \/>\nspring.rabbitmq.password&#061;guest\u00a0# RabbitMQ\u5bc6\u7801<\/p>\n<p># Actuator\u548cPrometheus\u914d\u7f6e<br \/>\nmanagement.endpoints.web.exposure.include&#061;*\u00a0# \u66b4\u9732\u6240\u6709Actuator\u7aef\u70b9<br \/>\nmanagement.endpoint.health.show-details&#061;always\u00a0# \u59cb\u7ec8\u663e\u793a\u5065\u5eb7\u68c0\u67e5\u8be6\u60c5<br \/>\nmanagement.metrics.export.prometheus.enabled&#061;true# \u542f\u7528Prometheus\u6307\u6807\u5bfc\u51fa <\/p>\n<h3>Java\u4ee3\u7801<\/h3>\n<p style=\"text-align:left\">\u7b80\u5355\u641e\u641e\u4e00\u4e2aSpring Boot\u5e94\u7528\u7c7b\u3001\u63a7\u5236\u5668\u7c7b\u4ee5\u53ca\u6d88\u606f\u751f\u4ea7\u8005\u548c\u6d88\u8d39\u8005&#xff0c;\u80fd\u8d77\u5230\u6559\u80b2\u5206\u4eab\u4f5c\u7528\u5c31\u884c\u4e86\u3002\u5927\u5bb6\u60f3\u8c61\u4e00\u4e0b\u5c31\u884c\u5566\u3002<\/p>\n<p> package com.example.demo;<\/p>\n<p>import org.springframework.amqp.core.Queue;<br \/>\nimport org.springframework.amqp.rabbit.core.RabbitTemplate;<br \/>\nimport org.springframework.beans.factory.annotation.Autowired;<br \/>\nimport org.springframework.boot.SpringApplication;<br \/>\nimport org.springframework.boot.autoconfigure.SpringBootApplication;<br \/>\nimport org.springframework.context.annotation.Bean;<br \/>\nimport org.springframework.stereotype.Component;<br \/>\nimport org.springframework.web.bind.annotation.GetMapping;<br \/>\nimport org.springframework.web.bind.annotation.RequestParam;<br \/>\nimport org.springframework.web.bind.annotation.RestController;<\/p>\n<p>&#064;SpringBootApplication<br \/>\npublic class DemoApplication {<\/p>\n<p>\u00a0 \u00a0 &#064;Autowired<br \/>\n\u00a0 \u00a0 private RabbitTemplate rabbitTemplate;<\/p>\n<p>\u00a0 \u00a0 public static void main(String[] args) {<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 SpringApplication.run(DemoApplication.class, args);<br \/>\n\u00a0 \u00a0 }<\/p>\n<p>\u00a0 \u00a0 &#064;Bean<br \/>\n\u00a0 \u00a0 public Queue\u00a0queue() {<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0\u00a0return\u00a0new Queue(&#034;tasks&#034;,\u00a0false); \/\/ \u521b\u5efa\u4e00\u4e2a\u540d\u4e3a&#034;tasks&#034;\u7684\u961f\u5217<br \/>\n\u00a0 \u00a0 }<\/p>\n<p>\u00a0 \u00a0 &#064;RestController<br \/>\n\u00a0 \u00a0 class HelloController {<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 &#064;GetMapping(&#034;\/hello&#034;)<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 public String sayHello(&#064;RequestParam String name) {<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 rabbitTemplate.convertAndSend(&#034;tasks&#034;,\u00a0&#034;Hello, &#034;\u00a0&#043; name &#043;\u00a0&#034;!&#034;); \/\/ \u53d1\u9001\u6d88\u606f\u5230\u961f\u5217<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\u00a0return&#034;Message sent to queue!&#034;;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 }<br \/>\n\u00a0 \u00a0 }<\/p>\n<p>\u00a0 \u00a0 \/\/ Example Consumer<br \/>\n\u00a0 \u00a0 &#064;Component<br \/>\n\u00a0 \u00a0 class MessageConsumer {<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 &#064;RabbitListener(queues &#061;\u00a0&#034;tasks&#034;)<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 public void receiveMessage(String message) {<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 System.out.println(&#034;Received message: &#034;\u00a0&#043; message); \/\/ \u6253\u5370\u63a5\u6536\u5230\u7684\u6d88\u606f<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \/\/ Process the message here (e.g., send email, SMS)<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 }<br \/>\n\u00a0 \u00a0 }<br \/>\n} <\/p>\n<h2>\u524d\u7aef (React.js)<\/h2>\n<p style=\"text-align:left\">\u7b80\u5355\u4f8b\u5b50\u4f5c\u7528\u662f\u5c55\u793a\u524d\u7aef\u8c03\u7528\u540e\u7aefAPI\u3002<\/p>\n<p> import React, { useEffect, useState } from\u00a0&#039;react&#039;;<br \/>\nimport axios from\u00a0&#039;axios&#039;;<\/p>\n<p>functionApp() {<br \/>\n\u00a0 const [message, setMessage] &#061; useState(&#039;&#039;);<\/p>\n<p>\u00a0 useEffect(() &#061;&gt; {<br \/>\n\u00a0 \u00a0 axios.get(&#039;\/api\/hello?name&#061;World&#039;) \/\/ \u8c03\u7528\u540e\u7aefAPI<br \/>\n\u00a0 \u00a0 \u00a0 .then(response &#061;&gt; {<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 setMessage(response.data); \/\/ \u66f4\u65b0\u72b6\u6001<br \/>\n\u00a0 \u00a0 \u00a0 })<br \/>\n\u00a0 \u00a0 \u00a0 .catch(error &#061;&gt; {<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 console.error(&#039;There was an error fetching the message!&#039;, error); \/\/ \u9519\u8bef\u5904\u7406<br \/>\n\u00a0 \u00a0 \u00a0 });<br \/>\n\u00a0 }, []);<\/p>\n<p>return\u00a0(<br \/>\n\u00a0 \u00a0 &lt;div className&#061;&#034;App&#034;&gt;<br \/>\n\u00a0 \u00a0 \u00a0 &lt;header className&#061;&#034;App-header&#034;&gt;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 &lt;h1&gt;{message}&lt;\/h1&gt; {\/* \u663e\u793a\u6d88\u606f *\/}<br \/>\n\u00a0 \u00a0 \u00a0 &lt;\/header&gt;<br \/>\n\u00a0 \u00a0 &lt;\/div&gt;<br \/>\n\u00a0 );<br \/>\n}<\/p>\n<p>export\u00a0default App; <\/p>\n<h2>Nginx\u914d\u7f6e<\/h2>\n<p style=\"text-align:left\">\u7528\u4e8e\u4ee3\u7406\u8bf7\u6c42\u5230Spring Boot\u5e94\u7528\u548c\u63d0\u4f9b\u9759\u6001\u6587\u4ef6\u670d\u52a1\u3002<\/p>\n<p> user nginx;\u00a0# \u4f7f\u7528nginx\u7528\u6237\u8fd0\u884cNginx<br \/>\nworker_processes 2;\u00a0# \u53cc\u6838CPU\u9002\u5408\u8fd0\u884c\u4e24\u4e2a\u5de5\u4f5c\u8fdb\u7a0b<br \/>\npid \/run\/nginx.pid;\u00a0# PID\u6587\u4ef6\u8def\u5f84<\/p>\n<p>events {<br \/>\n\u00a0 \u00a0 worker_connections 1024;\u00a0# \u6bcf\u4e2a\u5de5\u4f5c\u8fdb\u7a0b\u53ef\u4ee5\u5904\u7406\u7684\u6700\u5927\u8fde\u63a5\u6570<br \/>\n}<\/p>\n<p>http {<br \/>\n\u00a0 \u00a0 include \/etc\/nginx\/mime.types;\u00a0# \u5305\u542bMIME\u7c7b\u578b\u5b9a\u4e49<br \/>\n\u00a0 \u00a0 default_type application\/octet-stream;\u00a0# \u9ed8\u8ba4MIME\u7c7b\u578b<\/p>\n<p>\u00a0 \u00a0 sendfile on;\u00a0# \u5f00\u542fsendfile\u4ee5\u63d0\u9ad8\u6027\u80fd<br \/>\n\u00a0 \u00a0 keepalive_timeout 65;\u00a0# \u4fdd\u6301\u8fde\u63a5\u8d85\u65f6\u65f6\u95f4<\/p>\n<p>\u00a0 \u00a0 server {<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 listen 80;\u00a0# \u76d1\u542c80\u7aef\u53e3<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 server_name yourdomain.com;\u00a0# \u670d\u52a1\u5668\u540d\u79f0<\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 location \/api\/ {<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 proxy_pass http:\/\/localhost:8080\/;\u00a0# \u5c06\/api\/\u8def\u5f84\u7684\u8bf7\u6c42\u4ee3\u7406\u5230Spring Boot\u5e94\u7528<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 proxy_set_header Host\u00a0$host;\u00a0# \u8bbe\u7f6e\u8f6c\u53d1\u8bf7\u6c42\u5934<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 proxy_set_header X-Real-IP\u00a0$remote_addr;\u00a0# \u8bbe\u7f6e\u771f\u5b9eIP<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 proxy_set_header X-Forwarded-For\u00a0$proxy_add_x_forwarded_for;\u00a0# \u8bbe\u7f6e\u8f6c\u53d1\u94fe\u8def\u4fe1\u606f<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 proxy_set_header X-Forwarded-Proto\u00a0$scheme;\u00a0# \u8bbe\u7f6e\u534f\u8bae\u4fe1\u606f<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 }<\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 location \/ {<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 root \/var\/www\/html;\u00a0# \u9759\u6001\u6587\u4ef6\u6839\u76ee\u5f55<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 index index.html;\u00a0# \u9ed8\u8ba4\u7d22\u5f15\u6587\u4ef6<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 try_files\u00a0$uri$uri\/ \/index.html;\u00a0# \u5c1d\u8bd5\u5339\u914d\u6587\u4ef6\u6216\u91cd\u5b9a\u5411\u5230index.html<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 }<br \/>\n\u00a0 \u00a0 }<br \/>\n} <\/p>\n<h2>MySQL\u914d\u7f6e (my.cnf)<\/h2>\n<p> [mysqld]<br \/>\nbind-address &#061; 127.0.0.1\u00a0# \u7ed1\u5b9a\u5230\u672c\u5730\u5730\u5740<br \/>\nport &#061; 3306\u00a0# MySQL\u7aef\u53e3\u53f7<\/p>\n<p>default-storage-engine &#061; InnoDB\u00a0# \u9ed8\u8ba4\u5b58\u50a8\u5f15\u64ce\u4e3aInnoDB<br \/>\ncharacter-set-server &#061; utf8mb4\u00a0# \u5b57\u7b26\u96c6\u8bbe\u7f6e\u4e3autf8mb4<br \/>\ncollation-server &#061; utf8mb4_unicode_ci\u00a0# \u6392\u5e8f\u89c4\u5219\u8bbe\u7f6e\u4e3autf8mb4_unicode_ci<\/p>\n<p>max_connections &#061; 50\u00a0# \u6700\u5927\u8fde\u63a5\u6570&#xff0c;\u6bcf\u4e2a\u8fde\u63a5\u5927\u7ea6\u5360\u7528\u51e0MB\u5185\u5b58<br \/>\ninnodb_buffer_pool_size &#061; 768M\u00a0# InnoDB\u7f13\u51b2\u6c60\u5927\u5c0f&#xff0c;\u7528\u4e8e\u7f13\u5b58\u6570\u636e\u548c\u7d22\u5f15<br \/>\nthread_cache_size &#061; 8\u00a0# \u7ebf\u7a0b\u7f13\u5b58\u5927\u5c0f&#xff0c;\u51cf\u5c11\u7ebf\u7a0b\u521b\u5efa\u5f00\u9500<br \/>\nquery_cache_type &#061; 0\u00a0# \u7981\u7528\u67e5\u8be2\u7f13\u5b58&#xff08;MySQL 8.0\u4e2d\u5df2\u88ab\u79fb\u9664&#xff09;<br \/>\nquery_cache_size &#061; 0\u00a0# \u67e5\u8be2\u7f13\u5b58\u5927\u5c0f\u8bbe\u7f6e\u4e3a0<\/p>\n<p>log_error &#061; \/var\/log\/mysql\/error.log\u00a0# \u9519\u8bef\u65e5\u5fd7\u8def\u5f84<br \/>\nslow_query_log &#061; 1\u00a0# \u542f\u7528\u6162\u67e5\u8be2\u65e5\u5fd7<br \/>\nslow_query_log_file &#061; \/var\/log\/mysql\/slow-query.log\u00a0# \u6162\u67e5\u8be2\u65e5\u5fd7\u6587\u4ef6\u8def\u5f84<br \/>\nlong_query_time &#061; 2\u00a0# \u6162\u67e5\u8be2\u9608\u503c&#xff0c;\u8d85\u8fc72\u79d2\u7684\u67e5\u8be2\u4f1a\u88ab\u8bb0\u5f55 <\/p>\n<h2>Redis\u914d\u7f6e (redis.conf)<\/h2>\n<p> bind\u00a0127.0.0.1\u00a0# \u7ed1\u5b9a\u5230\u672c\u5730\u5730\u5740<br \/>\nport 6379\u00a0# Redis\u7aef\u53e3\u53f7<\/p>\n<p>daemonize yes\u00a0# \u4ee5\u540e\u53f0\u5b88\u62a4\u8fdb\u7a0b\u65b9\u5f0f\u8fd0\u884c<br \/>\nsupervised systemd\u00a0# \u4f7f\u7528systemd\u7ba1\u7406<\/p>\n<p>pidfile \/var\/run\/redis_6379.pid\u00a0# PID\u6587\u4ef6\u8def\u5f84<br \/>\nlogfile \/var\/log\/redis\/redis-server.log\u00a0# \u65e5\u5fd7\u6587\u4ef6\u8def\u5f84<\/p>\n<p>databases 16\u00a0# \u6570\u636e\u5e93\u6570\u91cf<\/p>\n<p>save 900 1\u00a0# \u6bcf900\u79d2\u81f3\u5c11\u4fdd\u5b581\u6b21\u66f4\u6539<br \/>\nsave 300 10\u00a0# \u6bcf300\u79d2\u81f3\u5c11\u4fdd\u5b5810\u6b21\u66f4\u6539<br \/>\nsave 60 10000\u00a0# \u6bcf60\u79d2\u81f3\u5c11\u4fdd\u5b5810000\u6b21\u66f4\u6539<\/p>\n<p>stop-writes-on-bgsave-error no\u00a0# \u540e\u53f0\u4fdd\u5b58\u9519\u8bef\u65f6\u4e0d\u505c\u6b62\u5199\u64cd\u4f5c<\/p>\n<p>rdbcompression yes\u00a0# \u542f\u7528RDB\u5feb\u7167\u538b\u7f29<\/p>\n<p>dir \/var\/lib\/redis\u00a0# \u6570\u636e\u76ee\u5f55<\/p>\n<p>maxmemory 512M\u00a0# \u6700\u5927\u5185\u5b58\u4f7f\u7528\u91cf<br \/>\nmaxmemory-policy allkeys-lru\u00a0# \u5185\u5b58\u8fbe\u5230\u4e0a\u9650\u65f6\u4f7f\u7528LRU\u7b56\u7565\u79fb\u9664\u952e <\/p>\n<h2>RabbitMQ\u914d\u7f6e<\/h2>\n<p> [<br \/>\n\u00a0 {rabbit, [<br \/>\n\u00a0 \u00a0 {vm_memory_high_watermark_relative, 0.3}, % \u76f8\u5bf9\u5185\u5b58\u6c34\u4f4d\u8bbe\u7f6e\u4e3a0.3&#xff0c;\u5f53\u53ef\u7528\u5185\u5b58\u4f4e\u4e8e30%\u65f6\u5f00\u59cb\u62d2\u7edd\u65b0\u6d88\u606f\u53d1\u5e03<br \/>\n\u00a0 \u00a0 {disk_free_limit, {mem_relative, 0.2}}, % \u78c1\u76d8\u7a7a\u95f4\u9650\u5236\u4e3a\u5185\u5b58\u768420%<br \/>\n\u00a0 \u00a0 {tcp_listen_options, [binary, {packet, raw}, {reuseaddr,\u00a0true}, {backlog, 128}, {nodelay,\u00a0true}]} % TCP\u76d1\u542c\u9009\u9879<br \/>\n\u00a0 ]}<br \/>\n]. <\/p>\n<h2>Prometheus\u914d\u7f6e (prometheus.yml)<\/h2>\n<p> global:<br \/>\n\u00a0 scrape_interval: 15s\u00a0# \u6293\u53d6\u6307\u6807\u7684\u65f6\u95f4\u95f4\u9694\u4e3a15\u79d2<\/p>\n<p>scrape_configs:<br \/>\n\u00a0 &#8211; job_name:\u00a0&#039;spring-boot&#039;<br \/>\n\u00a0 \u00a0 metrics_path:\u00a0&#039;\/actuator\/prometheus&#039;\u00a0# \u6307\u6807\u8def\u5f84<br \/>\n\u00a0 \u00a0 static_configs:<br \/>\n\u00a0 \u00a0 \u00a0 &#8211; targets: [&#039;localhost:8080&#039;]\u00a0# \u76ee\u6807\u5730\u5740 <\/p>\n<h2>ELK Stack\u914d\u7f6e<\/h2>\n<h3>Elasticsearch (elasticsearch.yml)<\/h3>\n<p> cluster.name:\u00a0my-application# \u96c6\u7fa4\u540d\u79f0<br \/>\nnode.name:node-1# \u8282\u70b9\u540d\u79f0<br \/>\nnetwork.host:127.0.0.1# \u7ed1\u5b9a\u5230\u672c\u5730\u5730\u5740<br \/>\nhttp.port:9200# HTTP\u7aef\u53e3\u53f7<br \/>\ndiscovery.type:single-node# \u5355\u8282\u70b9\u96c6\u7fa4<br \/>\nbootstrap.memory_lock:true# \u9501\u5b9aJVM\u5185\u5b58<br \/>\nxpack.security.enabled:false# \u5173\u95ed\u5b89\u5168\u7279\u6027<\/p>\n<p>path.logs:\/var\/log\/elasticsearch# \u65e5\u5fd7\u8def\u5f84<br \/>\npath.data:\/var\/lib\/elasticsearch# \u6570\u636e\u8def\u5f84<\/p>\n<p>indices.query.bool.max_clause_count:1024# \u6700\u5927\u5e03\u5c14\u5b50\u53e5\u6570<\/p>\n<p>jvm.options:<br \/>\n-Xms256m# JVM\u521d\u59cb\u5806\u5185\u5b58<br \/>\n-Xmx256m# JVM\u6700\u5927\u5806\u5185\u5b58 <\/p>\n<h3>Logstash (logstash.conf)<\/h3>\n<p> input {<br \/>\n\u00a0 file {<br \/>\n\u00a0 \u00a0 path &#061;&gt; &#034;\/var\/log\/application\/*.log&#034; # \u8f93\u5165\u65e5\u5fd7\u6587\u4ef6\u8def\u5f84<br \/>\n\u00a0 \u00a0 start_position &#061;&gt; &#034;beginning&#034; # \u4ece\u6587\u4ef6\u5f00\u5934\u8bfb\u53d6<br \/>\n\u00a0 }<br \/>\n}<\/p>\n<p>output {<br \/>\n\u00a0 elasticsearch {<br \/>\n\u00a0 \u00a0 hosts &#061;&gt; [&#034;http:\/\/localhost:9200&#034;] # Elasticsearch\u4e3b\u673a\u5730\u5740<br \/>\n\u00a0 \u00a0 index &#061;&gt; &#034;application-logs-%{&#043;YYYY.MM.dd}&#034; # \u7d22\u5f15\u6a21\u677f<br \/>\n\u00a0 }<br \/>\n} <\/p>\n<h3>Kibana (kibana.yml)<\/h3>\n<p> server.host:\u00a0&#034;0.0.0.0&#034;\u00a0# \u76d1\u542c\u6240\u6709\u7f51\u7edc\u63a5\u53e3<br \/>\nserver.port:\u00a05601\u00a0# \u76d1\u542c\u7aef\u53e3\u53f7<br \/>\nelasticsearch.hosts:\u00a0[&#034;http:\/\/localhost:9200&#034;]\u00a0# Elasticsearch\u4e3b\u673a\u5730\u5740<br \/>\nmonitoring.ui.container.elasticsearch.enabled:\u00a0false\u00a0# \u5173\u95ed\u5bb9\u5668\u76d1\u63a7<br \/>\nlogging.verbose:\u00a0false\u00a0# \u4e0d\u542f\u7528\u8be6\u7ec6\u65e5\u5fd7 <\/p>\n<h2>\u5173\u6ce8\u6211&#xff0c;\u9001Java\u798f\u5229<\/h2>\n<p> \/**<br \/>\n\u00a0* \u8fd9\u6bb5\u4ee3\u7801\u53ea\u6709Java\u5f00\u53d1\u8005\u624d\u80fd\u770b\u5f97\u61c2&#xff01;<br \/>\n\u00a0* \u5173\u6ce8\u6211\u5fae\u4fe1\u516c\u4f17\u53f7\u4e4b\u540e&#xff0c;<br \/>\n\u00a0* \u53d1\u9001:&#034;666&#034;&#xff0c;<br \/>\n\u00a0* \u5373\u53ef\u83b7\u5f97\u4e00\u672c\u7531Java\u5927\u795e\u4e00\u624b\u9762\u8bd5\u7ecf\u9a8c\u8bda\u610f\u51fa\u54c1<br \/>\n\u00a0* \u300aJava\u5f00\u53d1\u8005\u9762\u8bd5\u767e\u5b9d\u4e66\u300bPdf\u7535\u5b50\u4e66<br \/>\n\u00a0* \u798f\u5229\u622a\u6b62\u65e5\u671f\u4e3a2025\u5e7401\u670830\u65e5\u6b62<br \/>\n\u00a0* \u624b\u5feb\u6709\u624b\u6162\u6ca1&#xff01;&#xff01;&#xff01;<br \/>\n*\/<br \/>\nSystem.out.println(&#034;\u8bf7\u5173\u6ce8\u6211\u7684\u5fae\u4fe1\u516c\u4f17\u53f7&#xff1a;&#034;);<br \/>\nSystem.out.println(&#034;Java\u77e5\u8bc6\u65e5\u5386&#034;); <\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u6587\u7ae0\u6d4f\u89c8\u9605\u8bfb882\u6b21\uff0c\u70b9\u8d5e20\u6b21\uff0c\u6536\u85cf15\u6b21\u3002\u5f53\u4f60\u63a5\u4e86\u4e00\u7b14\u5341\u5206\u62a0\u95e8\u5c0f\u8001\u677f\u7684\u79c1\u6d3b\u8ba2\u5355\uff0c\u4ed6\u53ea\u6709\u4e00\u53f0\u53cc\u68384G\u5185\u5b58\u7684\u670d\u52a1\u5668\uff0c\u4ec5\u6b64\u4e00\u53f0\uff0c\u5341\u5206\u62a0\u95e8\uff0c\u4e0d\u80af\u52a0\u591a\u670d\u52a1\u5668\u3002\u8fd8\u8981\u6ee1\u8db3\u4ee5\u4e0b\u8981\u6c42\uff1a\u540e\u7aef\u670d\u52a1\u7528Java\u8bed\u8a00\u5f00\u53d1\uff1b\uff08\u6211\u731c\u60f3\u53ef\u80fd\u662f\u4ed6\u6709\u4e2a\u4eb2\u621a\u5c0f\u5b69\u5927\u5b66\u521a\u521a\u6bd5\u4e1a\uff0c\u4ed6\u5e94\u8be5\u4f1a\u4e00\u70b9\u70b9Java\u5427\u3002\u4e0d\u7ba1\u5566\uff0c\u53cd\u6b63\uff0c\u5c06\u6765\u90fd\u662f\u4ed6\u4eb2\u621a\u63a5\u624b\uff0c\u6211\u8d1f\u8d23\u641e\u597d\u7b2c\u4e00\u4e2a\u7248\u672c\u5c31\u884c\u4e86\u3002\u522b\u5230\u65f6\u5019\u7b2c\u4e09\u7248\u53c8\u515c\u515c\u8f6c\u8f6c\u53c8\u56de\u5230\u6211\u624b\u4e0a\u5c31\u884c\uff01\uff09\u524d\u540e\u7aef\u5206\u79bb\uff1b\u6570\u636e\u5e93\u548c\u4e2d\u95f4\u4ef6\u90fd\u5728\u8fd9\u53f0\u53ef\u601c\u670d\u52a1\u5668\uff1b\u8fd8\u6709\u8017\u65f6\u4efb\u52a1\u8981\u5904\u7406\uff1b\u76d1\u63a7\u4e0e\u65e5&#8230;<\/p>\n","protected":false},"author":2,"featured_media":26543,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[668,100,43,188,44],"topic":[],"class_list":["post-26544","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-server","tag-668","tag-100","tag-43","tag-188","tag-44"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u5f53\u6570\u636e\u5e93\u548c\u4e2d\u95f4\u4ef6\u90fd\u6324\u5728\u4e00\u53f0\u53cc\u68384G\u670d\u52a1\u5668\uff0c\u8be5\u5982\u4f55\u8bbe\u8ba1\u67b6\u6784\u4fdd\u8bc1\u7cfb\u7edf\u7684\u7a33\u5b9a\u6027\u548c\u6027\u80fd\uff1f... - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.wsisp.com\/helps\/26544.html\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u5f53\u6570\u636e\u5e93\u548c\u4e2d\u95f4\u4ef6\u90fd\u6324\u5728\u4e00\u53f0\u53cc\u68384G\u670d\u52a1\u5668\uff0c\u8be5\u5982\u4f55\u8bbe\u8ba1\u67b6\u6784\u4fdd\u8bc1\u7cfb\u7edf\u7684\u7a33\u5b9a\u6027\u548c\u6027\u80fd\uff1f... - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\" \/>\n<meta property=\"og:description\" content=\"\u6587\u7ae0\u6d4f\u89c8\u9605\u8bfb882\u6b21\uff0c\u70b9\u8d5e20\u6b21\uff0c\u6536\u85cf15\u6b21\u3002\u5f53\u4f60\u63a5\u4e86\u4e00\u7b14\u5341\u5206\u62a0\u95e8\u5c0f\u8001\u677f\u7684\u79c1\u6d3b\u8ba2\u5355\uff0c\u4ed6\u53ea\u6709\u4e00\u53f0\u53cc\u68384G\u5185\u5b58\u7684\u670d\u52a1\u5668\uff0c\u4ec5\u6b64\u4e00\u53f0\uff0c\u5341\u5206\u62a0\u95e8\uff0c\u4e0d\u80af\u52a0\u591a\u670d\u52a1\u5668\u3002\u8fd8\u8981\u6ee1\u8db3\u4ee5\u4e0b\u8981\u6c42\uff1a\u540e\u7aef\u670d\u52a1\u7528Java\u8bed\u8a00\u5f00\u53d1\uff1b\uff08\u6211\u731c\u60f3\u53ef\u80fd\u662f\u4ed6\u6709\u4e2a\u4eb2\u621a\u5c0f\u5b69\u5927\u5b66\u521a\u521a\u6bd5\u4e1a\uff0c\u4ed6\u5e94\u8be5\u4f1a\u4e00\u70b9\u70b9Java\u5427\u3002\u4e0d\u7ba1\u5566\uff0c\u53cd\u6b63\uff0c\u5c06\u6765\u90fd\u662f\u4ed6\u4eb2\u621a\u63a5\u624b\uff0c\u6211\u8d1f\u8d23\u641e\u597d\u7b2c\u4e00\u4e2a\u7248\u672c\u5c31\u884c\u4e86\u3002\u522b\u5230\u65f6\u5019\u7b2c\u4e09\u7248\u53c8\u515c\u515c\u8f6c\u8f6c\u53c8\u56de\u5230\u6211\u624b\u4e0a\u5c31\u884c\uff01\uff09\u524d\u540e\u7aef\u5206\u79bb\uff1b\u6570\u636e\u5e93\u548c\u4e2d\u95f4\u4ef6\u90fd\u5728\u8fd9\u53f0\u53ef\u601c\u670d\u52a1\u5668\uff1b\u8fd8\u6709\u8017\u65f6\u4efb\u52a1\u8981\u5904\u7406\uff1b\u76d1\u63a7\u4e0e\u65e5...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.wsisp.com\/helps\/26544.html\" \/>\n<meta property=\"og:site_name\" content=\"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\" \/>\n<meta property=\"article:published_time\" content=\"2025-04-19T08:01:16+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2025\/04\/20250419080115-6803584b002c7.png\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/26544.html\",\"url\":\"https:\/\/www.wsisp.com\/helps\/26544.html\",\"name\":\"\u5f53\u6570\u636e\u5e93\u548c\u4e2d\u95f4\u4ef6\u90fd\u6324\u5728\u4e00\u53f0\u53cc\u68384G\u670d\u52a1\u5668\uff0c\u8be5\u5982\u4f55\u8bbe\u8ba1\u67b6\u6784\u4fdd\u8bc1\u7cfb\u7edf\u7684\u7a33\u5b9a\u6027\u548c\u6027\u80fd\uff1f... - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\",\"isPartOf\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/#website\"},\"datePublished\":\"2025-04-19T08:01:16+00:00\",\"dateModified\":\"2025-04-19T08:01:16+00:00\",\"author\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/26544.html#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.wsisp.com\/helps\/26544.html\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/26544.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.wsisp.com\/helps\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u5f53\u6570\u636e\u5e93\u548c\u4e2d\u95f4\u4ef6\u90fd\u6324\u5728\u4e00\u53f0\u53cc\u68384G\u670d\u52a1\u5668\uff0c\u8be5\u5982\u4f55\u8bbe\u8ba1\u67b6\u6784\u4fdd\u8bc1\u7cfb\u7edf\u7684\u7a33\u5b9a\u6027\u548c\u6027\u80fd\uff1f...\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#website\",\"url\":\"https:\/\/www.wsisp.com\/helps\/\",\"name\":\"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\",\"description\":\"\u9999\u6e2f\u670d\u52a1\u5668_\u9999\u6e2f\u4e91\u670d\u52a1\u5668\u8d44\u8baf_\u670d\u52a1\u5668\u5e2e\u52a9\u6587\u6863_\u670d\u52a1\u5668\u6559\u7a0b\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.wsisp.com\/helps\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery\",\"contentUrl\":\"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery\",\"caption\":\"admin\"},\"sameAs\":[\"http:\/\/wp.wsisp.com\"],\"url\":\"https:\/\/www.wsisp.com\/helps\/author\/admin\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\u5f53\u6570\u636e\u5e93\u548c\u4e2d\u95f4\u4ef6\u90fd\u6324\u5728\u4e00\u53f0\u53cc\u68384G\u670d\u52a1\u5668\uff0c\u8be5\u5982\u4f55\u8bbe\u8ba1\u67b6\u6784\u4fdd\u8bc1\u7cfb\u7edf\u7684\u7a33\u5b9a\u6027\u548c\u6027\u80fd\uff1f... - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.wsisp.com\/helps\/26544.html","og_locale":"zh_CN","og_type":"article","og_title":"\u5f53\u6570\u636e\u5e93\u548c\u4e2d\u95f4\u4ef6\u90fd\u6324\u5728\u4e00\u53f0\u53cc\u68384G\u670d\u52a1\u5668\uff0c\u8be5\u5982\u4f55\u8bbe\u8ba1\u67b6\u6784\u4fdd\u8bc1\u7cfb\u7edf\u7684\u7a33\u5b9a\u6027\u548c\u6027\u80fd\uff1f... - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","og_description":"\u6587\u7ae0\u6d4f\u89c8\u9605\u8bfb882\u6b21\uff0c\u70b9\u8d5e20\u6b21\uff0c\u6536\u85cf15\u6b21\u3002\u5f53\u4f60\u63a5\u4e86\u4e00\u7b14\u5341\u5206\u62a0\u95e8\u5c0f\u8001\u677f\u7684\u79c1\u6d3b\u8ba2\u5355\uff0c\u4ed6\u53ea\u6709\u4e00\u53f0\u53cc\u68384G\u5185\u5b58\u7684\u670d\u52a1\u5668\uff0c\u4ec5\u6b64\u4e00\u53f0\uff0c\u5341\u5206\u62a0\u95e8\uff0c\u4e0d\u80af\u52a0\u591a\u670d\u52a1\u5668\u3002\u8fd8\u8981\u6ee1\u8db3\u4ee5\u4e0b\u8981\u6c42\uff1a\u540e\u7aef\u670d\u52a1\u7528Java\u8bed\u8a00\u5f00\u53d1\uff1b\uff08\u6211\u731c\u60f3\u53ef\u80fd\u662f\u4ed6\u6709\u4e2a\u4eb2\u621a\u5c0f\u5b69\u5927\u5b66\u521a\u521a\u6bd5\u4e1a\uff0c\u4ed6\u5e94\u8be5\u4f1a\u4e00\u70b9\u70b9Java\u5427\u3002\u4e0d\u7ba1\u5566\uff0c\u53cd\u6b63\uff0c\u5c06\u6765\u90fd\u662f\u4ed6\u4eb2\u621a\u63a5\u624b\uff0c\u6211\u8d1f\u8d23\u641e\u597d\u7b2c\u4e00\u4e2a\u7248\u672c\u5c31\u884c\u4e86\u3002\u522b\u5230\u65f6\u5019\u7b2c\u4e09\u7248\u53c8\u515c\u515c\u8f6c\u8f6c\u53c8\u56de\u5230\u6211\u624b\u4e0a\u5c31\u884c\uff01\uff09\u524d\u540e\u7aef\u5206\u79bb\uff1b\u6570\u636e\u5e93\u548c\u4e2d\u95f4\u4ef6\u90fd\u5728\u8fd9\u53f0\u53ef\u601c\u670d\u52a1\u5668\uff1b\u8fd8\u6709\u8017\u65f6\u4efb\u52a1\u8981\u5904\u7406\uff1b\u76d1\u63a7\u4e0e\u65e5...","og_url":"https:\/\/www.wsisp.com\/helps\/26544.html","og_site_name":"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","article_published_time":"2025-04-19T08:01:16+00:00","og_image":[{"url":"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2025\/04\/20250419080115-6803584b002c7.png"}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"admin","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"8 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.wsisp.com\/helps\/26544.html","url":"https:\/\/www.wsisp.com\/helps\/26544.html","name":"\u5f53\u6570\u636e\u5e93\u548c\u4e2d\u95f4\u4ef6\u90fd\u6324\u5728\u4e00\u53f0\u53cc\u68384G\u670d\u52a1\u5668\uff0c\u8be5\u5982\u4f55\u8bbe\u8ba1\u67b6\u6784\u4fdd\u8bc1\u7cfb\u7edf\u7684\u7a33\u5b9a\u6027\u548c\u6027\u80fd\uff1f... - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","isPartOf":{"@id":"https:\/\/www.wsisp.com\/helps\/#website"},"datePublished":"2025-04-19T08:01:16+00:00","dateModified":"2025-04-19T08:01:16+00:00","author":{"@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41"},"breadcrumb":{"@id":"https:\/\/www.wsisp.com\/helps\/26544.html#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.wsisp.com\/helps\/26544.html"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.wsisp.com\/helps\/26544.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.wsisp.com\/helps"},{"@type":"ListItem","position":2,"name":"\u5f53\u6570\u636e\u5e93\u548c\u4e2d\u95f4\u4ef6\u90fd\u6324\u5728\u4e00\u53f0\u53cc\u68384G\u670d\u52a1\u5668\uff0c\u8be5\u5982\u4f55\u8bbe\u8ba1\u67b6\u6784\u4fdd\u8bc1\u7cfb\u7edf\u7684\u7a33\u5b9a\u6027\u548c\u6027\u80fd\uff1f..."}]},{"@type":"WebSite","@id":"https:\/\/www.wsisp.com\/helps\/#website","url":"https:\/\/www.wsisp.com\/helps\/","name":"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","description":"\u9999\u6e2f\u670d\u52a1\u5668_\u9999\u6e2f\u4e91\u670d\u52a1\u5668\u8d44\u8baf_\u670d\u52a1\u5668\u5e2e\u52a9\u6587\u6863_\u670d\u52a1\u5668\u6559\u7a0b","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.wsisp.com\/helps\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41","name":"admin","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/image\/","url":"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery","contentUrl":"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery","caption":"admin"},"sameAs":["http:\/\/wp.wsisp.com"],"url":"https:\/\/www.wsisp.com\/helps\/author\/admin"}]}},"_links":{"self":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts\/26544","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/comments?post=26544"}],"version-history":[{"count":0,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts\/26544\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/media\/26543"}],"wp:attachment":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/media?parent=26544"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/categories?post=26544"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/tags?post=26544"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/topic?post=26544"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}