@umacloud/knowledge 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (418) hide show
  1. package/00-governance/governance-capabilities.md +557 -0
  2. package/00-governance/knowledge-map.md +39 -0
  3. package/00-governance/maintenance-policy.md +76 -0
  4. package/00-governance/review-checklist.md +81 -0
  5. package/README.md +13 -0
  6. package/ai/01-standards/agent-development-complete.md +691 -0
  7. package/ai/01-standards/llm-application-complete.md +488 -0
  8. package/ai/01-standards/mlops-complete.md +798 -0
  9. package/ai/01-standards/prompt-engineering-complete.md +646 -0
  10. package/ai/01-standards/rag-architecture-complete.md +649 -0
  11. package/ai/02-playbooks/llm-evaluation-playbook.md +847 -0
  12. package/ai/03-checklists/ai-project-checklist.md +215 -0
  13. package/ai/04-antipatterns/ai-antipatterns.md +661 -0
  14. package/ai/05-cases/case-rag-production.md +147 -0
  15. package/ai/06-glossary/ai-glossary.md +162 -0
  16. package/ai/agent-evaluation-benchmark.md +53 -0
  17. package/ai/ai-agent-memory-context-management.md +41 -0
  18. package/ai/ai-cost-capacity-optimization-playbook.md +42 -0
  19. package/ai/ai-data-security-and-compliance-playbook.md +37 -0
  20. package/ai/ai-domain-index-and-checklist.md +40 -0
  21. package/ai/ai-governance-maturity-model.md +50 -0
  22. package/ai/ai-model-selection-and-routing-strategy.md +47 -0
  23. package/ai/ai-observability-and-oncall-runbook.md +52 -0
  24. package/ai/ai-rag-engineering-playbook.md +42 -0
  25. package/ai/ai-red-team-and-safety-evaluation.md +42 -0
  26. package/ai/ai-release-readiness-and-rollback-gate.md +42 -0
  27. package/ai/llm-agent-engineering-deep-dive.md +57 -0
  28. package/ai/prompt-and-tool-guardrails.md +52 -0
  29. package/api/01-standards/enterprise-api-standards.md +198 -0
  30. package/api/01-standards/rest-api-design-guide.md +63 -0
  31. package/api/02-playbooks/api-pagination-playbook.md +93 -0
  32. package/api/02-playbooks/graphql-production-playbook.md +176 -0
  33. package/api/03-checklists/api-review-checklist.md +55 -0
  34. package/api/04-antipatterns/api-antipatterns.md +112 -0
  35. package/architecture/01-standards/api-gateway-patterns.md +496 -0
  36. package/architecture/01-standards/cloud-native-patterns.md +644 -0
  37. package/architecture/01-standards/distributed-systems-patterns.md +591 -0
  38. package/architecture/01-standards/event-driven-architecture.md +595 -0
  39. package/architecture/01-standards/microservices-patterns-complete.md +968 -0
  40. package/architecture/01-standards/microservices-patterns.md +495 -0
  41. package/architecture/01-standards/system-design-interview.md +664 -0
  42. package/architecture/02-playbooks/microservices-patterns-playbook.md +137 -0
  43. package/architecture/02-playbooks/migration-playbook.md +780 -0
  44. package/architecture/02-playbooks/system-design-playbook.md +779 -0
  45. package/architecture/03-checklists/architecture-decision-checklist.md +297 -0
  46. package/architecture/04-antipatterns/architecture-antipatterns.md +417 -0
  47. package/architecture/05-cases/case-netflix-microservices.md +413 -0
  48. package/architecture/06-glossary/architecture-glossary.md +164 -0
  49. package/architecture/adr-template-and-examples.md +38 -0
  50. package/architecture/api-gateway-deep-dive.md +1291 -0
  51. package/architecture/configuration-management.md +1162 -0
  52. package/architecture/distributed-transactions.md +1220 -0
  53. package/architecture/microservices-complete.md +735 -0
  54. package/architecture/resilience-and-disaster-patterns.md +37 -0
  55. package/architecture/service-governance.md +1198 -0
  56. package/architecture/system-architecture-deep-dive.md +37 -0
  57. package/backend/01-standards/analytics-and-growth.md +65 -0
  58. package/backend/01-standards/api-and-error-conventions.md +120 -0
  59. package/backend/01-standards/application-layering-and-packaging.md +160 -0
  60. package/backend/01-standards/auth-implementation.md +104 -0
  61. package/backend/01-standards/backend-framework-idioms.md +74 -0
  62. package/backend/01-standards/background-jobs-and-async.md +66 -0
  63. package/backend/01-standards/caching-strategies-complete.md +390 -0
  64. package/backend/01-standards/config-and-observability.md +77 -0
  65. package/backend/01-standards/data-modeling-and-persistence.md +94 -0
  66. package/backend/01-standards/django-complete.md +1765 -0
  67. package/backend/01-standards/email-and-notifications.md +64 -0
  68. package/backend/01-standards/fastapi-complete.md +925 -0
  69. package/backend/01-standards/file-upload-and-storage.md +66 -0
  70. package/backend/01-standards/graphql-api-complete.md +416 -0
  71. package/backend/01-standards/llm-application-standard.md +78 -0
  72. package/backend/01-standards/message-queue-patterns.md +379 -0
  73. package/backend/01-standards/microservices-and-distributed.md +78 -0
  74. package/backend/01-standards/nestjs-complete.md +2167 -0
  75. package/backend/01-standards/payment-integration.md +80 -0
  76. package/backend/01-standards/rate-limiting-complete.md +451 -0
  77. package/backend/01-standards/realtime-and-websocket.md +65 -0
  78. package/backend/01-standards/search-and-filtering.md +64 -0
  79. package/backend/01-standards/spring-boot-complete.md +445 -0
  80. package/backend/02-playbooks/api-design-playbook.md +718 -0
  81. package/backend/02-playbooks/email-send-playbook.md +130 -0
  82. package/backend/02-playbooks/file-upload-s3-playbook.md +153 -0
  83. package/backend/02-playbooks/typescript-enterprise-playbook.md +133 -0
  84. package/backend/02-playbooks/websocket-realtime-playbook.md +154 -0
  85. package/backend/03-checklists/api-launch-checklist.md +189 -0
  86. package/backend/04-antipatterns/backend-antipatterns.md +1051 -0
  87. package/blockchain/01-standards/blockchain-basics.md +557 -0
  88. package/blockchain/01-standards/smart-contract-development.md +1315 -0
  89. package/cicd/01-standards/deployment-and-delivery-standard.md +96 -0
  90. package/cicd/01-standards/github-actions-complete.md +473 -0
  91. package/cicd/01-standards/release-and-store-submission.md +75 -0
  92. package/cicd/02-playbooks/cicd-pipeline-playbook.md +144 -0
  93. package/cicd/02-playbooks/release-management-playbook.md +605 -0
  94. package/cicd/03-checklists/pipeline-security-checklist.md +168 -0
  95. package/cicd/04-antipatterns/cicd-antipatterns.md +589 -0
  96. package/cicd/05-cases/case-deployment-automation.md +221 -0
  97. package/cicd/05-cases/case-gitops-transformation.md +212 -0
  98. package/cicd/06-glossary/cicd-glossary.md +114 -0
  99. package/cicd/cicd-blueprint-deep-dive.md +38 -0
  100. package/cicd/release-readiness-gate.md +37 -0
  101. package/cloud-native/01-standards/container-security.md +741 -0
  102. package/cloud-native/01-standards/kubernetes-complete.md +812 -0
  103. package/cloud-native/02-playbooks/api-gateway-playbook.md +155 -0
  104. package/cloud-native/02-playbooks/gitops-with-argocd.md +760 -0
  105. package/cloud-native/02-playbooks/k8s-troubleshooting-playbook.md +1942 -0
  106. package/cloud-native/02-playbooks/message-queue-playbook.md +129 -0
  107. package/cloud-native/02-playbooks/multicloud-governance.md +726 -0
  108. package/cloud-native/02-playbooks/serverless-patterns.md +788 -0
  109. package/cloud-native/02-playbooks/service-mesh-playbook.md +612 -0
  110. package/cloud-native/02-playbooks/terraform-iac-playbook.md +143 -0
  111. package/cloud-native/03-checklists/container-security-checklist.md +431 -0
  112. package/cloud-native/03-checklists/k8s-production-readiness-checklist.md +460 -0
  113. package/cloud-native/04-antipatterns/container-antipatterns.md +660 -0
  114. package/cloud-native/04-antipatterns/k8s-antipatterns.md +743 -0
  115. package/cloud-native/05-cases/case-k8s-migration.md +478 -0
  116. package/cloud-native/05-cases/case-k8s-scaling.md +642 -0
  117. package/cloud-native/05-cases/case-k8s-security-incident.md +397 -0
  118. package/cloud-native/06-glossary/cloud-native-glossary.md +337 -0
  119. package/cross-platform/01-standards/cross-platform-frameworks.md +83 -0
  120. package/cross-platform/01-standards/platform-selection-and-architecture.md +77 -0
  121. package/data/01-standards/elasticsearch-complete.md +2098 -0
  122. package/data/01-standards/postgresql-complete.md +1613 -0
  123. package/data/01-standards/redis-complete.md +1527 -0
  124. package/data/02-playbooks/database-optimization-playbook.md +403 -0
  125. package/data/02-playbooks/elasticsearch-production-playbook.md +132 -0
  126. package/data/03-checklists/database-launch-checklist.md +187 -0
  127. package/data/04-antipatterns/database-antipatterns.md +873 -0
  128. package/data/05-cases/case-database-migration.md +310 -0
  129. package/data/06-glossary/database-glossary.md +440 -0
  130. package/data/data-governance-and-modeling-deep-dive.md +39 -0
  131. package/data-engineering/01-standards/airflow-complete.md +523 -0
  132. package/data-engineering/01-standards/kafka-complete.md +1521 -0
  133. package/data-engineering/02-playbooks/spark-etl-playbook.md +496 -0
  134. package/data-engineering/03-checklists/pipeline-launch-checklist.md +194 -0
  135. package/data-engineering/04-antipatterns/data-pipeline-antipatterns.md +684 -0
  136. package/data-engineering/05-cases/case-real-time-pipeline.md +355 -0
  137. package/data-engineering/06-glossary/data-engineering-glossary.md +429 -0
  138. package/database/01-standards/database-schema-standards.md +147 -0
  139. package/database/02-playbooks/postgresql-optimization-quick.md +52 -0
  140. package/database/02-playbooks/postgresql-performance-optimization.md +58 -0
  141. package/database/02-playbooks/postgresql-production-playbook.md +146 -0
  142. package/database/02-playbooks/redis-caching-playbook.md +117 -0
  143. package/database/03-checklists/database-review-checklist.md +50 -0
  144. package/database/04-antipatterns/database-antipatterns.md +112 -0
  145. package/design/01-standards/ui-design-system-complete.md +423 -0
  146. package/design/02-playbooks/design-handoff-playbook.md +254 -0
  147. package/design/02-playbooks/design-review-playbook.md +388 -0
  148. package/design/03-checklists/design-review-checklist.md +246 -0
  149. package/design/04-antipatterns/design-antipatterns.md +378 -0
  150. package/design/05-cases/case-design-system-adoption.md +328 -0
  151. package/design/06-glossary/design-glossary.md +329 -0
  152. package/design/ui-full-lifecycle-cross-platform-playbook.md +571 -0
  153. package/design/ux-system-deep-dive.md +38 -0
  154. package/design-systems/00-craft-rules.md +71 -0
  155. package/design-systems/aesthetic-families.md +43 -0
  156. package/design-systems/anti-ai-slop.md +162 -0
  157. package/design-systems/bold-geometric.md +120 -0
  158. package/design-systems/brutalist-bold.md +103 -0
  159. package/design-systems/editorial-clean.md +109 -0
  160. package/design-systems/glass-aurora.md +108 -0
  161. package/design-systems/modern-minimal.md +145 -0
  162. package/design-systems/premium-luxury.md +106 -0
  163. package/design-systems/product-type-design-map.md +48 -0
  164. package/design-systems/soft-warm.md +123 -0
  165. package/design-systems/tech-utility.md +113 -0
  166. package/desktop/01-standards/desktop-app-standard.md +72 -0
  167. package/desktop/01-standards/desktop-design.md +71 -0
  168. package/development/00-governance/document-template.md +41 -0
  169. package/development/01-standards/api-versioning-strategies.md +432 -0
  170. package/development/01-standards/authentication-patterns-complete.md +479 -0
  171. package/development/01-standards/css-architecture-complete.md +550 -0
  172. package/development/01-standards/database-migration-strategies.md +484 -0
  173. package/development/01-standards/elasticsearch-complete.md +347 -0
  174. package/development/01-standards/git-complete.md +371 -0
  175. package/development/01-standards/golang-complete.md +1565 -0
  176. package/development/01-standards/graphql-complete.md +298 -0
  177. package/development/01-standards/javascript-bundlers-complete.md +469 -0
  178. package/development/01-standards/javascript-typescript-complete.md +528 -0
  179. package/development/01-standards/jest-complete.md +275 -0
  180. package/development/01-standards/linux-complete.md +234 -0
  181. package/development/01-standards/logging-observability-complete.md +526 -0
  182. package/development/01-standards/microservices-communication.md +502 -0
  183. package/development/01-standards/mongodb-complete.md +406 -0
  184. package/development/01-standards/oauth2-complete.md +285 -0
  185. package/development/01-standards/performance-optimization-complete.md +289 -0
  186. package/development/01-standards/playwright-complete.md +247 -0
  187. package/development/01-standards/postgresql-complete.md +456 -0
  188. package/development/01-standards/pytest-complete.md +340 -0
  189. package/development/01-standards/python-async-programming.md +902 -0
  190. package/development/01-standards/python-complete.md +956 -0
  191. package/development/01-standards/python-decorators-complete.md +799 -0
  192. package/development/01-standards/python-design-patterns.md +2854 -0
  193. package/development/01-standards/python-packaging-distribution.md +420 -0
  194. package/development/01-standards/python-testing-strategies.md +607 -0
  195. package/development/01-standards/python-web-frameworks-comparison.md +471 -0
  196. package/development/01-standards/redis-complete.md +317 -0
  197. package/development/01-standards/rest-api-complete.md +316 -0
  198. package/development/01-standards/rust-complete.md +578 -0
  199. package/development/01-standards/typescript-advanced-types.md +1513 -0
  200. package/development/01-standards/web-security-complete.md +292 -0
  201. package/development/02-playbooks/api-design-playbook.md +810 -0
  202. package/development/02-playbooks/database-migration-playbook.md +580 -0
  203. package/development/02-playbooks/debugging-playbook.md +692 -0
  204. package/development/02-playbooks/feature-delivery-playbook.md +430 -0
  205. package/development/02-playbooks/incident-hotfix-playbook.md +387 -0
  206. package/development/02-playbooks/performance-optimization-playbook.md +531 -0
  207. package/development/02-playbooks/performance-tuning-playbook.md +652 -0
  208. package/development/02-playbooks/refactor-playbook.md +403 -0
  209. package/development/02-playbooks/release-playbook.md +469 -0
  210. package/development/03-checklists/architecture-review-checklist.md +168 -0
  211. package/development/03-checklists/data-migration-checklist.md +157 -0
  212. package/development/03-checklists/oncall-handover-checklist.md +173 -0
  213. package/development/03-checklists/pr-checklist.md +158 -0
  214. package/development/03-checklists/production-readiness-checklist.md +190 -0
  215. package/development/03-checklists/release-readiness-checklist.md +154 -0
  216. package/development/03-checklists/security-review-checklist.md +182 -0
  217. package/development/04-antipatterns/api-antipatterns.md +657 -0
  218. package/development/04-antipatterns/architecture-antipatterns.md +686 -0
  219. package/development/04-antipatterns/backend-antipatterns.md +648 -0
  220. package/development/04-antipatterns/cicd-antipatterns.md +540 -0
  221. package/development/04-antipatterns/code-smell-antipatterns.md +571 -0
  222. package/development/04-antipatterns/data-antipatterns.md +658 -0
  223. package/development/04-antipatterns/database-antipatterns.md +578 -0
  224. package/development/04-antipatterns/frontend-antipatterns.md +635 -0
  225. package/development/04-antipatterns/reliability-antipatterns.md +700 -0
  226. package/development/04-antipatterns/security-antipatterns.md +747 -0
  227. package/development/05-cases/case-api-version-migration.md +428 -0
  228. package/development/05-cases/case-authorization-hardening.md +383 -0
  229. package/development/05-cases/case-bluegreen-rollback.md +466 -0
  230. package/development/05-cases/case-cache-snowball-protection.md +485 -0
  231. package/development/05-cases/case-ci-cd-pipeline.md +544 -0
  232. package/development/05-cases/case-database-scaling.md +500 -0
  233. package/development/05-cases/case-db-hotspot-optimization.md +487 -0
  234. package/development/05-cases/case-incident-mttr-reduction.md +563 -0
  235. package/development/05-cases/case-microservice-migration.md +375 -0
  236. package/development/05-cases/case-performance-optimization.md +406 -0
  237. package/development/05-cases/case-security-incident-response.md +345 -0
  238. package/development/06-glossary/full-stack-glossary.md +166 -0
  239. package/development/09-maturity/quarterly-audit-template.md +35 -0
  240. package/development/11-ui-excellence/ui-aesthetic-system.md +41 -0
  241. package/development/11-ui-excellence/ui-engineering-excellence.md +435 -0
  242. package/development/12-scenarios/development-scenarios-guide.md +565 -0
  243. package/development/13-implementation-assets/implementation-toolkit.md +282 -0
  244. package/development/13-implementation-assets/knowledge-gates-execution.md +43 -0
  245. package/development/14-full-lifecycle/software-lifecycle-gates.md +511 -0
  246. package/development/15-lifecycle-templates/project-templates-collection.md +791 -0
  247. package/development/api-contract-and-versioning-guide.md +36 -0
  248. package/development/api-governance-complete.md +43 -0
  249. package/development/backend-engineering-complete.md +43 -0
  250. package/development/code-review-quality-complete.md +43 -0
  251. package/development/concurrency-reliability-complete.md +43 -0
  252. package/development/database-engineering-complete.md +43 -0
  253. package/development/engineering-effectiveness-complete.md +43 -0
  254. package/development/engineering-standards-deep-dive.md +38 -0
  255. package/development/frontend-engineering-complete.md +43 -0
  256. package/development/performance-capacity-complete.md +43 -0
  257. package/development/refactor-migration-complete.md +42 -0
  258. package/development/refactoring-and-techdebt-playbook.md +37 -0
  259. package/development/security-in-development-complete.md +43 -0
  260. package/devops/01-standards/cicd-pipeline-complete.md +262 -0
  261. package/devops/01-standards/docker-complete.md +1490 -0
  262. package/devops/01-standards/github-actions-complete.md +337 -0
  263. package/devops/01-standards/kubernetes-complete.md +638 -0
  264. package/devops/01-standards/terraform-complete.md +2117 -0
  265. package/devops/02-playbooks/docker-compose-playbook.md +233 -0
  266. package/devops/02-playbooks/docker-k8s-production-playbook.md +186 -0
  267. package/devops/02-playbooks/docker-production-playbook.md +952 -0
  268. package/edge-iot/01-standards/edge-iot-complete.md +473 -0
  269. package/experts/architect/api-design.md +178 -0
  270. package/experts/architect/methodology.md +124 -0
  271. package/experts/architect/security.md +75 -0
  272. package/experts/backend-lead/methodology.md +216 -0
  273. package/experts/devops/methodology.md +160 -0
  274. package/experts/frontend-lead/methodology.md +178 -0
  275. package/experts/product-manager/industry/ecommerce.md +43 -0
  276. package/experts/product-manager/industry/saas.md +40 -0
  277. package/experts/product-manager/methodology.md +97 -0
  278. package/experts/qa-lead/methodology.md +123 -0
  279. package/experts/qa-lead/test-strategy.md +128 -0
  280. package/experts/uiux-designer/methodology.md +125 -0
  281. package/frontend/01-standards/accessibility-complete.md +532 -0
  282. package/frontend/01-standards/accessibility-standard.md +74 -0
  283. package/frontend/01-standards/admin-dashboard-and-crud.md +72 -0
  284. package/frontend/01-standards/design-tokens-complete.md +444 -0
  285. package/frontend/01-standards/forms-and-validation.md +77 -0
  286. package/frontend/01-standards/frontend-architecture-and-layering.md +119 -0
  287. package/frontend/01-standards/i18n-and-localization.md +65 -0
  288. package/frontend/01-standards/nextjs-complete.md +451 -0
  289. package/frontend/01-standards/react-complete.md +713 -0
  290. package/frontend/01-standards/react-hooks-complete-guide.md +1100 -0
  291. package/frontend/01-standards/react-hooks-complete.md +1171 -0
  292. package/frontend/01-standards/seo-and-web-vitals.md +77 -0
  293. package/frontend/01-standards/state-management-complete.md +444 -0
  294. package/frontend/01-standards/vue-complete.md +499 -0
  295. package/frontend/01-standards/vue3-complete.md +2002 -0
  296. package/frontend/01-standards/web-framework-best-practices.md +64 -0
  297. package/frontend/01-standards/web-performance-complete.md +495 -0
  298. package/frontend/02-playbooks/accessibility-a11y-playbook.md +161 -0
  299. package/frontend/02-playbooks/frontend-performance-playbook.md +707 -0
  300. package/frontend/02-playbooks/i18n-internationalization-playbook.md +120 -0
  301. package/frontend/02-playbooks/performance-optimization-playbook.md +163 -0
  302. package/frontend/02-playbooks/react-nextjs-production-playbook.md +167 -0
  303. package/frontend/02-playbooks/react-state-management-playbook.md +173 -0
  304. package/frontend/03-checklists/component-quality-checklist.md +166 -0
  305. package/frontend/03-checklists/frontend-launch-checklist.md +299 -0
  306. package/frontend/04-antipatterns/frontend-antipatterns.md +886 -0
  307. package/frontend/05-cases/case-performance-optimization.md +274 -0
  308. package/harmony/01-standards/harmonyos-arkts-standard.md +75 -0
  309. package/harmony/01-standards/harmonyos-design.md +65 -0
  310. package/high-quality-engineering-playbook.md +54 -0
  311. package/incident/01-standards/incident-response-complete.md +303 -0
  312. package/incident/02-playbooks/chaos-engineering-playbook.md +883 -0
  313. package/incident/02-playbooks/postmortem-playbook.md +398 -0
  314. package/incident/03-checklists/incident-readiness-checklist.md +181 -0
  315. package/incident/04-antipatterns/incident-antipatterns.md +490 -0
  316. package/incident/05-cases/case-cascade-failure.md +176 -0
  317. package/incident/06-glossary/incident-glossary.md +114 -0
  318. package/incident/postmortem-and-response-deep-dive.md +39 -0
  319. package/industries/ecommerce/ecommerce-complete.md +631 -0
  320. package/industries/education/education-complete.md +555 -0
  321. package/industries/fintech/fintech-complete.md +501 -0
  322. package/industries/gaming/gaming-complete.md +587 -0
  323. package/industries/healthcare/healthcare-complete.md +452 -0
  324. package/low-code/01-standards/low-code-complete.md +944 -0
  325. package/miniprogram/01-standards/ai-common-mistakes.md +61 -0
  326. package/miniprogram/01-standards/miniprogram-custom-navbar-capsule.md +77 -0
  327. package/miniprogram/01-standards/miniprogram-design.md +61 -0
  328. package/miniprogram/01-standards/miniprogram-standard.md +81 -0
  329. package/mobile/01-standards/android-material-design.md +70 -0
  330. package/mobile/01-standards/flutter-complete.md +384 -0
  331. package/mobile/01-standards/ios-design-hig.md +78 -0
  332. package/mobile/01-standards/mobile-app-standard.md +85 -0
  333. package/mobile/01-standards/react-native-complete.md +352 -0
  334. package/mobile/02-playbooks/mobile-cross-platform-playbook.md +175 -0
  335. package/mobile/02-playbooks/mobile-performance.md +473 -0
  336. package/mobile/03-checklists/mobile-release-checklist.md +234 -0
  337. package/mobile/04-antipatterns/mobile-antipatterns.md +798 -0
  338. package/mobile/05-cases/case-app-performance.md +500 -0
  339. package/mobile/05-cases/case-app-startup-optimization.md +218 -0
  340. package/mobile/06-glossary/mobile-glossary.md +484 -0
  341. package/observability/01-standards/observability-standards.md +103 -0
  342. package/observability/02-playbooks/prometheus-grafana-playbook.md +135 -0
  343. package/observability/02-playbooks/structured-logging-playbook.md +73 -0
  344. package/observability/03-checklists/observability-checklist.md +54 -0
  345. package/observability/04-antipatterns/observability-antipatterns.md +106 -0
  346. package/operations/01-standards/prometheus-monitoring-complete.md +1578 -0
  347. package/operations/02-playbooks/capacity-planning-playbook.md +620 -0
  348. package/operations/03-checklists/production-launch-checklist.md +365 -0
  349. package/operations/04-antipatterns/operations-antipatterns.md +664 -0
  350. package/operations/05-cases/case-sre-practices.md +581 -0
  351. package/operations/06-glossary/operations-glossary.md +120 -0
  352. package/operations/aiops-anomaly-detection.md +758 -0
  353. package/operations/capacity-planning.md +1061 -0
  354. package/operations/chaos-engineering.md +659 -0
  355. package/operations/incident-command-system.md +38 -0
  356. package/operations/observability-complete.md +442 -0
  357. package/operations/slo-sli-playbook.md +517 -0
  358. package/operations/sre-operations-deep-dive.md +39 -0
  359. package/package.json +8 -0
  360. package/performance/01-standards/performance-and-scalability.md +80 -0
  361. package/performance/01-standards/performance-standards.md +156 -0
  362. package/performance/02-playbooks/query-optimization-playbook.md +103 -0
  363. package/performance/03-checklists/performance-checklist.md +56 -0
  364. package/performance/04-antipatterns/performance-antipatterns.md +146 -0
  365. package/product/01-standards/product-management-complete.md +285 -0
  366. package/product/02-playbooks/feature-launch-playbook.md +207 -0
  367. package/product/02-playbooks/user-research-playbook.md +532 -0
  368. package/product/03-checklists/feature-launch-checklist.md +275 -0
  369. package/product/04-antipatterns/product-antipatterns.md +355 -0
  370. package/product/05-cases/case-mvp-to-scale.md +384 -0
  371. package/product/06-glossary/product-glossary.md +462 -0
  372. package/product/feature-prioritization-framework.md +40 -0
  373. package/product/kpi-and-metric-tree.md +37 -0
  374. package/product/product-discovery-and-prd-deep-dive.md +41 -0
  375. package/quantum/01-standards/quantum-complete.md +1186 -0
  376. package/security/01-standards/api-security-complete.md +511 -0
  377. package/security/01-standards/container-runtime-security.md +574 -0
  378. package/security/01-standards/data-protection-gdpr.md +543 -0
  379. package/security/01-standards/owasp-top10-complete.md +1890 -0
  380. package/security/01-standards/secure-coding-baseline.md +90 -0
  381. package/security/01-standards/supply-chain-security.md +441 -0
  382. package/security/01-standards/web-security-checklist.md +108 -0
  383. package/security/01-standards/zero-trust-architecture.md +521 -0
  384. package/security/02-playbooks/auth-sso-playbook.md +166 -0
  385. package/security/02-playbooks/incident-response-security-playbook.md +588 -0
  386. package/security/02-playbooks/owasp-api-security-playbook.md +129 -0
  387. package/security/02-playbooks/payment-integration-playbook.md +119 -0
  388. package/security/02-playbooks/penetration-testing-playbook.md +517 -0
  389. package/security/03-checklists/security-audit-checklist.md +356 -0
  390. package/security/04-antipatterns/security-coding-antipatterns.md +580 -0
  391. package/security/05-cases/case-log4shell-incident.md +537 -0
  392. package/security/05-cases/case-major-breaches.md +468 -0
  393. package/security/06-glossary/security-glossary.md +212 -0
  394. package/security/compliance-automation.md +993 -0
  395. package/security/container-security.md +680 -0
  396. package/security/devsecops-complete.md +426 -0
  397. package/security/sast-dast-sca.md +775 -0
  398. package/security/secrets-management.md +594 -0
  399. package/security/security-architecture-deep-dive.md +37 -0
  400. package/security/threat-modeling-stride-playbook.md +40 -0
  401. package/seed-templates/auth-system.md +59 -0
  402. package/seed-templates/blog-content.md +94 -0
  403. package/seed-templates/dashboard.md +89 -0
  404. package/seed-templates/docs-site.md +73 -0
  405. package/seed-templates/e-commerce.md +50 -0
  406. package/seed-templates/saas-landing.md +92 -0
  407. package/seed-templates/settings-page.md +51 -0
  408. package/testing/01-standards/test-strategy-and-layering.md +83 -0
  409. package/testing/01-standards/testing-strategy-complete.md +422 -0
  410. package/testing/01-standards/unit-testing-best-practices.md +118 -0
  411. package/testing/02-playbooks/e2e-testing-playbook.md +988 -0
  412. package/testing/02-playbooks/testing-strategy-playbook.md +126 -0
  413. package/testing/03-checklists/test-strategy-checklist.md +208 -0
  414. package/testing/04-antipatterns/testing-antipatterns.md +718 -0
  415. package/testing/05-cases/case-testing-transformation.md +300 -0
  416. package/testing/06-glossary/testing-glossary.md +110 -0
  417. package/testing/risk-based-test-matrix.md +36 -0
  418. package/testing/testing-strategy-deep-dive.md +37 -0
@@ -0,0 +1,1162 @@
1
+ ---
2
+ id: configuration-management
3
+ title: 配置管理完全指南
4
+ domain: architecture
5
+ category: configuration-management.md
6
+ difficulty: intermediate
7
+ tags: [architecture, configuration, management, 参考资源, 核心需求, 概述, 选型建议, 配置中心对比]
8
+ quality_score: 70
9
+ last_updated: 2026-06-15
10
+ ---
11
+ # 配置管理完全指南
12
+
13
+ ## 概述
14
+
15
+ 配置管理是微服务架构中的关键基础设施,负责集中化管理应用配置,实现配置的动态更新、版本管理、环境隔离和审计追踪。优秀的配置管理方案能够显著提升运维效率,降低配置错误风险,支持应用的快速迭代和灵活部署。
16
+
17
+ ## 核心需求
18
+
19
+ ### 1. 集中化管理
20
+ - 统一配置存储
21
+ - 集中控制与分发
22
+ - 减少配置碎片化
23
+
24
+ ### 2. 动态更新
25
+ - 配置热更新
26
+ - 无需重启应用
27
+ - 实时生效
28
+
29
+ ### 3. 环境隔离
30
+ - 开发/测试/生产环境
31
+ - 多数据中心
32
+ - 多租户隔离
33
+
34
+ ### 4. 版本管理
35
+ - 配置历史记录
36
+ - 版本回滚
37
+ - 变更审计
38
+
39
+ ### 5. 安全性
40
+ - 敏感信息加密
41
+ - 访问权限控制
42
+ - 操作审计日志
43
+
44
+ ## 配置中心对比
45
+
46
+ ### Nacos
47
+
48
+ #### 架构
49
+ ```
50
+ Server端:
51
+ - Nacos Server集群(Raft协议)
52
+ - 配置存储(MySQL/嵌入式数据库)
53
+ - 长轮询推送
54
+
55
+ Client端:
56
+ - SDK集成
57
+ - 配置监听
58
+ - 本地缓存
59
+ ```
60
+
61
+ #### 核心特性
62
+ ```
63
+ 优点:
64
+ - 配置管理+服务发现一体化
65
+ - 动态配置推送(秒级)
66
+ - 多环境多命名空间
67
+ - 配置回滚
68
+ - 灰度发布
69
+ - 阿里开源,生产验证
70
+ - Spring Cloud Alibaba集成
71
+ - 中文文档完善
72
+
73
+ 缺点:
74
+ - 性能不如Apollo(大规模场景)
75
+ - 社区生态相对较小
76
+ - 企业版收费
77
+
78
+ 适用场景:
79
+ - Spring Cloud生态
80
+ - 中小型系统
81
+ - 国内环境
82
+ - 配置+服务发现一体化需求
83
+ ```
84
+
85
+ #### 实现示例
86
+
87
+ ##### 服务端部署
88
+ ```yaml
89
+ # docker-compose.yml
90
+ version: '3.8'
91
+ services:
92
+ nacos-mysql:
93
+ image: mysql:8.0
94
+ environment:
95
+ MYSQL_ROOT_PASSWORD: root
96
+ MYSQL_DATABASE: nacos
97
+ volumes:
98
+ - ./mysql-data:/var/lib/mysql
99
+
100
+ nacos:
101
+ image: nacos/nacos-server:latest
102
+ environment:
103
+ MODE: standalone
104
+ SPRING_DATASOURCE_PLATFORM: mysql
105
+ MYSQL_SERVICE_HOST: nacos-mysql
106
+ MYSQL_SERVICE_PORT: 3306
107
+ MYSQL_SERVICE_DB_NAME: nacos
108
+ MYSQL_SERVICE_USER: root
109
+ MYSQL_SERVICE_PASSWORD: root
110
+ ports:
111
+ - "8848:8848"
112
+ depends_on:
113
+ - nacos-mysql
114
+ ```
115
+
116
+ ##### 客户端集成
117
+ ```xml
118
+ <!-- Maven依赖 -->
119
+ <dependency>
120
+ <groupId>com.alibaba.cloud</groupId>
121
+ <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
122
+ </dependency>
123
+ ```
124
+
125
+ ```yaml
126
+ # bootstrap.yml
127
+ spring:
128
+ application:
129
+ name: order-service
130
+ profiles:
131
+ active: dev
132
+ cloud:
133
+ nacos:
134
+ config:
135
+ server-addr: localhost:8848
136
+ namespace: dev
137
+ group: DEFAULT_GROUP
138
+ file-extension: yaml
139
+ shared-configs:
140
+ - data-id: common.yaml
141
+ group: DEFAULT_GROUP
142
+ refresh: true
143
+ extension-configs:
144
+ - data-id: redis.yaml
145
+ group: DEFAULT_GROUP
146
+ refresh: true
147
+ - data-id: mysql.yaml
148
+ group: DEFAULT_GROUP
149
+ refresh: true
150
+ refresh-enabled: true
151
+ ```
152
+
153
+ ```java
154
+ // 配置类
155
+ @RefreshScope
156
+ @Configuration
157
+ public class OrderConfig {
158
+ @Value("${order.timeout:3000}")
159
+ private int timeout;
160
+
161
+ @Value("${order.max-retry:3}")
162
+ private int maxRetry;
163
+
164
+ // 配置变更时自动刷新
165
+ public int getTimeout() {
166
+ return timeout;
167
+ }
168
+ }
169
+
170
+ // 配置监听
171
+ @Component
172
+ public class ConfigListener {
173
+ @NacosConfigListener(dataId = "order-service.yaml", groupId = "DEFAULT_GROUP")
174
+ public void onConfigChange(String newConfig) {
175
+ log.info("配置变更: {}", newConfig);
176
+ // 自定义处理逻辑
177
+ }
178
+ }
179
+ ```
180
+
181
+ ### Apollo
182
+
183
+ #### 架构
184
+ ```
185
+ 核心组件:
186
+ - Config Service: 配置读取、推送
187
+ - Admin Service: 配置管理
188
+ - Meta Server: 服务注册发现
189
+ - Portal: 管理界面
190
+ - Client: SDK
191
+
192
+ 数据存储:
193
+ - MySQL(配置、审计日志)
194
+ - Eureka(服务发现)
195
+ ```
196
+
197
+ #### 核心特性
198
+ ```
199
+ 优点:
200
+ - 统一配置管理平台
201
+ - 多环境多集群
202
+ - 灰度发布
203
+ - 配置版本管理
204
+ - 权限管理
205
+ - 审计日志
206
+ - 高性能(支持10万+客户端)
207
+ -携程开源,大规模生产验证
208
+
209
+ 缺点:
210
+ - 架构复杂,部署成本高
211
+ - 学习曲线陡峭
212
+ - 运维成本高
213
+
214
+ 适用场景:
215
+ - 大规模微服务(100+服务)
216
+ - 需要完善管理界面
217
+ - 强审计需求
218
+ - 企业级应用
219
+ ```
220
+
221
+ #### 实现示例
222
+
223
+ ##### 服务端部署
224
+ ```yaml
225
+ # docker-compose.yml
226
+ version: '3.8'
227
+ services:
228
+ apollo-mysql:
229
+ image: mysql:8.0
230
+ environment:
231
+ MYSQL_ROOT_PASSWORD: root
232
+ volumes:
233
+ - ./sql:/docker-entrypoint-initdb.d
234
+ - ./mysql-data:/var/lib/mysql
235
+
236
+ apollo-configservice:
237
+ image: apolloconfig/apollo-configservice:latest
238
+ environment:
239
+ SPRING_DATASOURCE_URL: jdbc:mysql://apollo-mysql:3306/ApolloConfigDB
240
+ SPRING_DATASOURCE_USERNAME: root
241
+ SPRING_DATASOURCE_PASSWORD: root
242
+ ports:
243
+ - "8080:8080"
244
+ depends_on:
245
+ - apollo-mysql
246
+
247
+ apollo-adminservice:
248
+ image: apolloconfig/apollo-adminservice:latest
249
+ environment:
250
+ SPRING_DATASOURCE_URL: jdbc:mysql://apollo-mysql:3306/ApolloConfigDB
251
+ SPRING_DATASOURCE_USERNAME: root
252
+ SPRING_DATASOURCE_PASSWORD: root
253
+ ports:
254
+ - "8090:8090"
255
+ depends_on:
256
+ - apollo-mysql
257
+
258
+ apollo-portal:
259
+ image: apolloconfig/apollo-portal:latest
260
+ environment:
261
+ SPRING_DATASOURCE_URL: jdbc:mysql://apollo-mysql:3306/ApolloPortalDB
262
+ SPRING_DATASOURCE_USERNAME: root
263
+ SPRING_DATASOURCE_PASSWORD: root
264
+ APOLLO_PORTAL_ENVS: dev,pro
265
+ DEV_META: http://apollo-configservice:8080
266
+ PRO_META: http://apollo-configservice-pro:8080
267
+ ports:
268
+ - "8070:8070"
269
+ depends_on:
270
+ - apollo-mysql
271
+ ```
272
+
273
+ ##### 客户端集成
274
+ ```xml
275
+ <!-- Maven依赖 -->
276
+ <dependency>
277
+ <groupId>com.ctrip.framework.apollo</groupId>
278
+ <artifactId>apollo-client</artifactId>
279
+ <version>2.1.0</version>
280
+ </dependency>
281
+ ```
282
+
283
+ ```properties
284
+ # application.properties
285
+ app.id=order-service
286
+ apollo.meta=http://localhost:8080
287
+ apollo.bootstrap.enabled=true
288
+ apollo.bootstrap.namespaces=application
289
+ apollo.autoUpdateInjectedSpringProperties=true
290
+ ```
291
+
292
+ ```java
293
+ // 配置类
294
+ @Configuration
295
+ @EnableApolloConfig
296
+ public class AppConfig {
297
+ @Bean
298
+ @RefreshScope
299
+ public OrderConfig orderConfig() {
300
+ return new OrderConfig();
301
+ }
302
+ }
303
+
304
+ @Component
305
+ public class OrderConfig {
306
+ @Value("${order.timeout:3000}")
307
+ private int timeout;
308
+
309
+ @ApolloConfigChangeListener
310
+ public void onChange(ConfigChangeEvent changeEvent) {
311
+ // 配置变更监听
312
+ for (String key : changeEvent.changedKeys()) {
313
+ ConfigChange change = changeEvent.getChange(key);
314
+ log.info("配置变更 - Key: {}, Old: {}, New: {}",
315
+ key, change.getOldValue(), change.getNewValue());
316
+ }
317
+ }
318
+ }
319
+
320
+ // 手动获取配置
321
+ @Service
322
+ public class OrderService {
323
+ @ApolloConfig
324
+ private Config config;
325
+
326
+ public void processOrder() {
327
+ Integer timeout = config.getIntProperty("order.timeout", 3000);
328
+ // 使用配置
329
+ }
330
+ }
331
+ ```
332
+
333
+ ### Consul
334
+
335
+ #### 核心特性
336
+ ```
337
+ 优点:
338
+ - 配置管理+服务发现一体化
339
+ - KV存储简单易用
340
+ - 多数据中心支持
341
+ - DNS接口
342
+ - 健康检查
343
+ - Go实现,性能好
344
+
345
+ 缺点:
346
+ - 配置管理功能相对简单
347
+ - 缺乏版本管理
348
+ - 无Web管理界面(需第三方)
349
+
350
+ 适用场景:
351
+ - 异构技术栈
352
+ - 多数据中心
353
+ - 简单配置需求
354
+ ```
355
+
356
+ #### 实现示例
357
+
358
+ ##### 服务端部署
359
+ ```yaml
360
+ # docker-compose.yml
361
+ version: '3.8'
362
+ services:
363
+ consul:
364
+ image: consul:latest
365
+ ports:
366
+ - "8500:8500" # HTTP API
367
+ - "8600:8600/udp" # DNS
368
+ command: agent -server -bootstrap-expect=1 -ui -client=0.0.0.0
369
+ ```
370
+
371
+ ##### 客户端集成
372
+ ```xml
373
+ <!-- Maven依赖 -->
374
+ <dependency>
375
+ <groupId>org.springframework.cloud</groupId>
376
+ <artifactId>spring-cloud-starter-consul-config</artifactId>
377
+ </dependency>
378
+ ```
379
+
380
+ ```yaml
381
+ # bootstrap.yml
382
+ spring:
383
+ application:
384
+ name: order-service
385
+ cloud:
386
+ consul:
387
+ host: localhost
388
+ port: 8500
389
+ config:
390
+ enabled: true
391
+ format: YAML
392
+ prefix: config
393
+ default-context: application
394
+ profile-separator: ','
395
+ data-key: data
396
+ watch:
397
+ enabled: true
398
+ delay: 1000
399
+ ```
400
+
401
+ ```java
402
+ // 配置类
403
+ @RefreshScope
404
+ @Configuration
405
+ @ConfigurationProperties(prefix = "order")
406
+ public class OrderConfig {
407
+ private int timeout = 3000;
408
+ private int maxRetry = 3;
409
+
410
+ // getters and setters
411
+ }
412
+ ```
413
+
414
+ ### Spring Cloud Config
415
+
416
+ #### 核心特性
417
+ ```
418
+ 优点:
419
+ - Spring Cloud原生
420
+ - Git版本管理
421
+ - 简单易用
422
+ - 与Spring生态无缝集成
423
+
424
+ 缺点:
425
+ - 需要重启应用才能刷新配置(需配合Bus)
426
+ - 无管理界面
427
+ - 功能相对简单
428
+
429
+ 适用场景:
430
+ - Spring Cloud生态
431
+ - 小型系统
432
+ - Git版本管理需求
433
+ ```
434
+
435
+ #### 实现示例
436
+
437
+ ##### 服务端
438
+ ```xml
439
+ <!-- Maven依赖 -->
440
+ <dependency>
441
+ <groupId>org.springframework.cloud</groupId>
442
+ <artifactId>spring-cloud-config-server</artifactId>
443
+ </dependency>
444
+ ```
445
+
446
+ ```java
447
+ @SpringBootApplication
448
+ @EnableConfigServer
449
+ public class ConfigServerApplication {
450
+ public static void main(String[] args) {
451
+ SpringApplication.run(ConfigServerApplication.class, args);
452
+ }
453
+ }
454
+ ```
455
+
456
+ ```yaml
457
+ # application.yml
458
+ server:
459
+ port: 8888
460
+
461
+ spring:
462
+ cloud:
463
+ config:
464
+ server:
465
+ git:
466
+ uri: https://github.com/myorg/config-repo
467
+ search-paths:
468
+ - '{application}'
469
+ username: ${GIT_USERNAME}
470
+ password: ${GIT_PASSWORD}
471
+ encrypt:
472
+ enabled: true
473
+ ```
474
+
475
+ ##### 客户端
476
+ ```xml
477
+ <!-- Maven依赖 -->
478
+ <dependency>
479
+ <groupId>org.springframework.cloud</groupId>
480
+ <artifactId>spring-cloud-starter-config</artifactId>
481
+ </dependency>
482
+ <dependency>
483
+ <groupId>org.springframework.cloud</groupId>
484
+ <artifactId>spring-cloud-starter-bus-amqp</artifactId>
485
+ </dependency>
486
+ ```
487
+
488
+ ```yaml
489
+ # bootstrap.yml
490
+ spring:
491
+ application:
492
+ name: order-service
493
+ profiles:
494
+ active: dev
495
+ cloud:
496
+ config:
497
+ uri: http://localhost:8888
498
+ fail-fast: true
499
+ retry:
500
+ initial-interval: 1000
501
+ max-interval: 2000
502
+ max-attempts: 6
503
+ ```
504
+
505
+ ```java
506
+ @RefreshScope
507
+ @RestController
508
+ public class OrderController {
509
+ @Value("${order.timeout:3000}")
510
+ private int timeout;
511
+
512
+ @GetMapping("/timeout")
513
+ public int getTimeout() {
514
+ return timeout;
515
+ }
516
+ }
517
+ ```
518
+
519
+ ### Etcd
520
+
521
+ #### 核心特性
522
+ ```
523
+ 优点:
524
+ - 高性能KV存储
525
+ - 强一致性(Raft协议)
526
+ - Watch机制
527
+ - Kubernetes原生支持
528
+ - Go实现
529
+
530
+ 缺点:
531
+ - 配置管理功能简单
532
+ - 无Web界面
533
+ - 需要自行实现高级功能
534
+
535
+ 适用场景:
536
+ - Kubernetes环境
537
+ - Go技术栈
538
+ - 简单配置需求
539
+ ```
540
+
541
+ #### 实现示例
542
+
543
+ ```java
544
+ // Java客户端
545
+ public class EtcdConfigClient {
546
+ private final Client client;
547
+
548
+ public EtcdConfigClient(String endpoints) {
549
+ this.client = Client.builder()
550
+ .endpoints(endpoints.split(","))
551
+ .build();
552
+ }
553
+
554
+ public String getConfig(String key) throws Exception {
555
+ GetResponse response = client.getKVClient()
556
+ .get(ByteSequence.from(key, StandardCharsets.UTF_8))
557
+ .get();
558
+
559
+ if (response.getKvs().isEmpty()) {
560
+ return null;
561
+ }
562
+
563
+ return response.getKvs().get(0).getValue().toString(StandardCharsets.UTF_8);
564
+ }
565
+
566
+ public void watchConfig(String key, Consumer<String> listener) {
567
+ Watch.Watcher watcher = client.getWatchClient()
568
+ .watch(ByteSequence.from(key, StandardCharsets.UTF_8),
569
+ WatchOption.DEFAULT,
570
+ response -> {
571
+ for (WatchEvent event : response.getEvents()) {
572
+ String value = event.getKeyValue()
573
+ .getValue()
574
+ .toString(StandardCharsets.UTF_8);
575
+ listener.accept(value);
576
+ }
577
+ });
578
+ }
579
+ }
580
+ ```
581
+
582
+ ## 配置管理最佳实践
583
+
584
+ ### 1. 配置分类
585
+
586
+ #### 按环境分类
587
+ ```
588
+ 开发环境(DEV):
589
+ - 本地开发配置
590
+ - 宽松的限流熔断
591
+ - 详细的日志
592
+
593
+ 测试环境(TEST):
594
+ - 集成测试配置
595
+ - Mock外部服务
596
+ - 测试数据
597
+
598
+ 预发环境(STAGING):
599
+ - 生产配置副本
600
+ - 真实外部服务(测试环境)
601
+ - 性能测试
602
+
603
+ 生产环境(PROD):
604
+ - 生产配置
605
+ - 严格的限流熔断
606
+ - 关键日志
607
+ ```
608
+
609
+ #### 按类型分类
610
+ ```
611
+ 基础设施配置:
612
+ - 数据库连接
613
+ - Redis连接
614
+ - 消息队列
615
+ - 日志配置
616
+
617
+ 业务配置:
618
+ - 功能开关
619
+ - 业务规则
620
+ - 参数阈值
621
+
622
+ 运营配置:
623
+ - 限流策略
624
+ - 熔断策略
625
+ - 降级策略
626
+ ```
627
+
628
+ ### 2. 配置结构设计
629
+
630
+ #### Nacos配置结构
631
+ ```
632
+ 命名空间(Namespace):
633
+ - dev: 开发环境
634
+ - test: 测试环境
635
+ - prod: 生产环境
636
+
637
+ 分组(Group):
638
+ - DEFAULT_GROUP: 默认分组
639
+ - DATABASE_GROUP: 数据库配置
640
+ - REDIS_GROUP: Redis配置
641
+ - BUSINESS_GROUP: 业务配置
642
+
643
+ Data ID:
644
+ - order-service.yaml: 订单服务配置
645
+ - order-service-dev.yaml: 订单服务开发环境配置
646
+ - common.yaml: 公共配置
647
+ ```
648
+
649
+ #### Apollo配置结构
650
+ ```
651
+ AppId:
652
+ - order-service
653
+ - inventory-service
654
+ - payment-service
655
+
656
+ 环境(Env):
657
+ - DEV
658
+ - UAT
659
+ - PRO
660
+
661
+ 集群(Cluster):
662
+ - default: 默认集群
663
+ - shanghai: 上海集群
664
+ - beijing: 北京集群
665
+
666
+ 命名空间(Namespace):
667
+ - application: 默认命名空间
668
+ - database.yaml: 数据库配置
669
+ - redis.yaml: Redis配置
670
+ ```
671
+
672
+ ### 3. 配置模板
673
+
674
+ #### application.yaml模板
675
+ ```yaml
676
+ # 基础配置
677
+ server:
678
+ port: 8080
679
+
680
+ spring:
681
+ application:
682
+ name: ${APP_NAME}
683
+ profiles:
684
+ active: ${ACTIVE_PROFILE:dev}
685
+
686
+ # 日志配置
687
+ logging:
688
+ level:
689
+ root: INFO
690
+ com.example: DEBUG
691
+ file:
692
+ name: /var/log/${spring.application.name}/${spring.application.name}.log
693
+ pattern:
694
+ file: "%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n"
695
+
696
+ # 监控配置
697
+ management:
698
+ endpoints:
699
+ web:
700
+ exposure:
701
+ include: health,info,metrics,prometheus
702
+ metrics:
703
+ tags:
704
+ application: ${spring.application.name}
705
+ environment: ${spring.profiles.active}
706
+
707
+ # 业务配置(从配置中心读取)
708
+ order:
709
+ timeout: ${ORDER_TIMEOUT:3000}
710
+ max-retry: ${ORDER_MAX_RETRY:3}
711
+ enable-cache: ${ORDER_ENABLE_CACHE:true}
712
+ ```
713
+
714
+ #### database.yaml模板
715
+ ```yaml
716
+ spring:
717
+ datasource:
718
+ url: jdbc:mysql://${DB_HOST:localhost}:${DB_PORT:3306}/${DB_NAME:order_db}?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
719
+ username: ${DB_USERNAME:root}
720
+ password: ${DB_PASSWORD:root}
721
+ driver-class-name: com.mysql.cj.jdbc.Driver
722
+ hikari:
723
+ minimum-idle: 5
724
+ maximum-pool-size: 20
725
+ idle-timeout: 600000
726
+ max-lifetime: 1800000
727
+ connection-timeout: 30000
728
+ pool-name: ${spring.application.name}-HikariCP
729
+ ```
730
+
731
+ ### 4. 敏感配置加密
732
+
733
+ #### Jasypt加密
734
+ ```xml
735
+ <!-- Maven依赖 -->
736
+ <dependency>
737
+ <groupId>com.github.ulisesbocchio</groupId>
738
+ <artifactId>jasypt-spring-boot-starter</artifactId>
739
+ <version>3.0.5</version>
740
+ </dependency>
741
+ ```
742
+
743
+ ```yaml
744
+ # application.yml
745
+ jasypt:
746
+ encryptor:
747
+ password: ${JASYPT_ENCRYPTOR_PASSWORD}
748
+ algorithm: PBEWithMD5AndDES
749
+
750
+ spring:
751
+ datasource:
752
+ username: root
753
+ password: ENC(加密后的密码)
754
+ ```
755
+
756
+ ```java
757
+ // 使用
758
+ @SpringBootApplication
759
+ @EnableEncryptableProperties
760
+ public class Application {
761
+ public static void main(String[] args) {
762
+ SpringApplication.run(Application.class, args);
763
+ }
764
+ }
765
+ ```
766
+
767
+ #### Nacos加密
768
+ ```java
769
+ // 自定义配置解密
770
+ @Component
771
+ public class DecryptConfigListener {
772
+ @NacosConfigListener(dataId = "database.yaml")
773
+ public void onReceive(String config) {
774
+ String decrypted = decryptConfig(config);
775
+ // 更新配置
776
+ }
777
+
778
+ private String decryptConfig(String encrypted) {
779
+ // 解密逻辑
780
+ return AES.decrypt(encrypted, secretKey);
781
+ }
782
+ }
783
+ ```
784
+
785
+ ### 5. 配置热更新
786
+
787
+ #### @RefreshScope
788
+ ```java
789
+ @RefreshScope
790
+ @Configuration
791
+ @ConfigurationProperties(prefix = "rate.limit")
792
+ public class RateLimitConfig {
793
+ private int qps = 100;
794
+ private int burst = 200;
795
+
796
+ // getters and setters
797
+ }
798
+
799
+ @RefreshScope
800
+ @Service
801
+ public class OrderService {
802
+ @Value("${order.timeout}")
803
+ private int timeout;
804
+
805
+ public void processOrder() {
806
+ // 使用最新配置
807
+ }
808
+ }
809
+ ```
810
+
811
+ #### 配置变更监听
812
+ ```java
813
+ @Component
814
+ @Slf4j
815
+ public class ConfigChangeHandler {
816
+ @ApolloConfigChangeListener
817
+ public void handleConfigChange(ConfigChangeEvent event) {
818
+ for (String key : event.changedKeys()) {
819
+ ConfigChange change = event.getChange(key);
820
+
821
+ log.info("配置变更: {} - {} -> {}",
822
+ key,
823
+ change.getOldValue(),
824
+ change.getNewValue());
825
+
826
+ // 根据配置类型处理
827
+ if (key.startsWith("rate.limit.")) {
828
+ handleRateLimitChange(key, change);
829
+ } else if (key.startsWith("feature.toggle.")) {
830
+ handleFeatureToggleChange(key, change);
831
+ }
832
+ }
833
+ }
834
+
835
+ private void handleRateLimitChange(String key, ConfigChange change) {
836
+ // 更新限流配置
837
+ rateLimiter.updateConfig(key, change.getNewValue());
838
+ }
839
+
840
+ private void handleFeatureToggleChange(String key, ConfigChange change) {
841
+ // 更新功能开关
842
+ featureToggle.update(key, Boolean.parseBoolean(change.getNewValue()));
843
+ }
844
+ }
845
+ ```
846
+
847
+ ### 6. 配置版本管理
848
+
849
+ #### Git集成(Spring Cloud Config)
850
+ ```bash
851
+ # 配置仓库结构
852
+ config-repo/
853
+ ├── application.yml # 公共配置
854
+ ├── application-dev.yml # 开发环境
855
+ ├── application-prod.yml # 生产环境
856
+ ├── order-service.yml # 订单服务配置
857
+ ├── order-service-dev.yml
858
+ ├── order-service-prod.yml
859
+ └── database.yml # 数据库配置
860
+ ```
861
+
862
+ #### Apollo版本管理
863
+ ```sql
864
+ -- 查询配置历史
865
+ SELECT
866
+ NamespaceName,
867
+ Key,
868
+ Value,
869
+ Comment,
870
+ DataChange_CreatedBy,
871
+ DataChange_CreatedTime,
872
+ DataChange_LastModifiedBy,
873
+ DataChange_LastTime
874
+ FROM Item
875
+ WHERE AppId = 'order-service'
876
+ AND NamespaceName = 'application'
877
+ ORDER BY DataChange_LastTime DESC;
878
+
879
+ -- 回滚配置
880
+ -- 通过Portal界面操作
881
+ ```
882
+
883
+ ### 7. 灰度发布配置
884
+
885
+ #### Nacos灰度发布
886
+ ```yaml
887
+ # order-service.yaml(主配置)
888
+ order:
889
+ feature:
890
+ new-algorithm: false
891
+
892
+ # order-service-gray.yaml(灰度配置)
893
+ order:
894
+ feature:
895
+ new-algorithm: true
896
+
897
+ # 应用配置
898
+ spring:
899
+ cloud:
900
+ nacos:
901
+ config:
902
+ shared-configs:
903
+ - data-id: order-service.yaml
904
+ - data-id: order-service-gray.yaml
905
+ refresh: true
906
+ ```
907
+
908
+ #### Apollo灰度发布
909
+ ```java
910
+ // 通过Apollo Portal配置灰度规则
911
+ // 1. 创建灰度配置
912
+ // 2. 配置灰度规则(IP、AppId、标签)
913
+ // 3. 发布灰度配置
914
+ // 4. 监控灰度效果
915
+ // 5. 全量发布或回滚
916
+ ```
917
+
918
+ ### 8. 配置审计
919
+
920
+ #### 审计日志
921
+ ```java
922
+ @Component
923
+ public class ConfigAuditLogger {
924
+ @Autowired
925
+ private AuditLogRepository auditLogRepository;
926
+
927
+ @ApolloConfigChangeListener
928
+ public void auditConfigChange(ConfigChangeEvent event) {
929
+ for (String key : event.changedKeys()) {
930
+ ConfigChange change = event.getChange(key);
931
+
932
+ AuditLog log = new AuditLog();
933
+ log.setAppId("order-service");
934
+ log.setConfigKey(key);
935
+ log.setOldValue(change.getOldValue());
936
+ log.setNewValue(change.getNewValue());
937
+ log.setOperator(getCurrentUser());
938
+ log.setOperationTime(LocalDateTime.now());
939
+ log.setClientIp(getClientIp());
940
+
941
+ auditLogRepository.save(log);
942
+ }
943
+ }
944
+ }
945
+ ```
946
+
947
+ ## 配置中心高可用
948
+
949
+ ### 1. 集群部署
950
+
951
+ #### Nacos集群
952
+ ```yaml
953
+ # nacos-cluster.conf
954
+ node1:8848
955
+ node2:8848
956
+ node3:8848
957
+
958
+ # application.properties
959
+ nacos.inetutils.ip-address=节点IP
960
+ ```
961
+
962
+ #### Apollo集群
963
+ ```yaml
964
+ # 多机房部署
965
+ apollo-configservice-sh: 上海
966
+ apollo-configservice-bj: 北京
967
+
968
+ # 客户端配置
969
+ apollo.meta=http://configservice-sh:8080,http://configservice-bj:8080
970
+ ```
971
+
972
+ ### 2. 数据库高可用
973
+
974
+ ```yaml
975
+ # MySQL主从
976
+ spring:
977
+ datasource:
978
+ master:
979
+ url: jdbc:mysql://master:3306/nacos
980
+ username: root
981
+ password: root
982
+ slave:
983
+ url: jdbc:mysql://slave:3306/nacos
984
+ username: root
985
+ password: root
986
+ ```
987
+
988
+ ### 3. 客户端容错
989
+
990
+ ```java
991
+ // 本地缓存
992
+ @Configuration
993
+ public class ConfigCacheConfig {
994
+ @Bean
995
+ public ConfigCache configCache() {
996
+ return new LocalFileConfigCache();
997
+ }
998
+ }
999
+
1000
+ public class LocalFileConfigCache {
1001
+ private static final String CACHE_DIR = "/var/cache/config/";
1002
+
1003
+ public void save(String key, String value) {
1004
+ String filePath = CACHE_DIR + key + ".cache";
1005
+ Files.writeString(Path.of(filePath), value);
1006
+ }
1007
+
1008
+ public String load(String key) {
1009
+ String filePath = CACHE_DIR + key + ".cache";
1010
+ if (Files.exists(Path.of(filePath))) {
1011
+ return Files.readString(Path.of(filePath));
1012
+ }
1013
+ return null;
1014
+ }
1015
+ }
1016
+ ```
1017
+
1018
+ ## 配置管理工具
1019
+
1020
+ ### 1. 配置校验
1021
+
1022
+ ```java
1023
+ @Component
1024
+ public class ConfigValidator {
1025
+ @PostConstruct
1026
+ public void validateConfig() {
1027
+ validateDatabaseConfig();
1028
+ validateRedisConfig();
1029
+ validateBusinessConfig();
1030
+ }
1031
+
1032
+ private void validateDatabaseConfig() {
1033
+ String url = environment.getProperty("spring.datasource.url");
1034
+ if (url == null || url.isEmpty()) {
1035
+ throw new IllegalStateException("数据库URL未配置");
1036
+ }
1037
+
1038
+ int maxPoolSize = environment.getProperty(
1039
+ "spring.datasource.hikari.maximum-pool-size",
1040
+ Integer.class,
1041
+ 20
1042
+ );
1043
+ if (maxPoolSize < 1 || maxPoolSize > 100) {
1044
+ throw new IllegalStateException(
1045
+ "数据库连接池大小配置错误: " + maxPoolSize
1046
+ );
1047
+ }
1048
+ }
1049
+ }
1050
+ ```
1051
+
1052
+ ### 2. 配置迁移工具
1053
+
1054
+ ```java
1055
+ public class ConfigMigrationTool {
1056
+ public void migrateFromPropertiesToYaml() {
1057
+ // 读取.properties文件
1058
+ Properties props = loadProperties("application.properties");
1059
+
1060
+ // 转换为YAML
1061
+ Map<String, Object> configMap = new HashMap<>();
1062
+ props.forEach((key, value) -> {
1063
+ String[] keys = key.toString().split("\\.");
1064
+ Map<String, Object> current = configMap;
1065
+ for (int i = 0; i < keys.length - 1; i++) {
1066
+ current = (Map<String, Object>)
1067
+ current.computeIfAbsent(keys[i], k -> new HashMap<>());
1068
+ }
1069
+ current.put(keys[keys.length - 1], value);
1070
+ });
1071
+
1072
+ // 写入YAML文件
1073
+ Yaml yaml = new Yaml();
1074
+ yaml.dump(configMap, new FileWriter("application.yaml"));
1075
+ }
1076
+ }
1077
+ ```
1078
+
1079
+ ### 3. 配置对比工具
1080
+
1081
+ ```java
1082
+ public class ConfigDiffTool {
1083
+ public List<ConfigDiff> diff(String env1, String env2) {
1084
+ Map<String, String> config1 = loadConfig(env1);
1085
+ Map<String, String> config2 = loadConfig(env2);
1086
+
1087
+ List<ConfigDiff> diffs = new ArrayList<>();
1088
+
1089
+ // 查找新增配置
1090
+ config2.forEach((key, value) -> {
1091
+ if (!config1.containsKey(key)) {
1092
+ diffs.add(new ConfigDiff(key, null, value, "ADDED"));
1093
+ }
1094
+ });
1095
+
1096
+ // 查找删除配置
1097
+ config1.forEach((key, value) -> {
1098
+ if (!config2.containsKey(key)) {
1099
+ diffs.add(new ConfigDiff(key, value, null, "DELETED"));
1100
+ }
1101
+ });
1102
+
1103
+ // 查找修改配置
1104
+ config1.forEach((key, value1) -> {
1105
+ String value2 = config2.get(key);
1106
+ if (value2 != null && !value1.equals(value2)) {
1107
+ diffs.add(new ConfigDiff(key, value1, value2, "MODIFIED"));
1108
+ }
1109
+ });
1110
+
1111
+ return diffs;
1112
+ }
1113
+ }
1114
+ ```
1115
+
1116
+ ## 选型建议
1117
+
1118
+ ### 场景对比
1119
+ ```
1120
+ Nacos:
1121
+ - Spring Cloud Alibaba生态
1122
+ - 配置管理+服务发现一体化
1123
+ - 中小型系统(10-100服务)
1124
+ - 国内环境
1125
+
1126
+ Apollo:
1127
+ - 大规模微服务(100+服务)
1128
+ - 需要完善管理界面
1129
+ - 强审计需求
1130
+ - 企业级应用
1131
+
1132
+ Consul:
1133
+ - 异构技术栈
1134
+ - 多数据中心
1135
+ - 简单配置需求
1136
+ - Go生态
1137
+
1138
+ Spring Cloud Config:
1139
+ - Spring Cloud生态
1140
+ - Git版本管理需求
1141
+ - 小型系统
1142
+ - 简单场景
1143
+
1144
+ Etcd:
1145
+ - Kubernetes环境
1146
+ - Go技术栈
1147
+ - 简单配置需求
1148
+ ```
1149
+
1150
+ ## 参考资源
1151
+
1152
+ ### 官方文档
1153
+ - Nacos: https://nacos.io/
1154
+ - Apollo: https://www.apolloconfig.com/
1155
+ - Consul: https://www.consul.io/
1156
+ - Spring Cloud Config: https://spring.io/projects/spring-cloud-config
1157
+ - Etcd: https://etcd.io/
1158
+
1159
+ ### 最佳实践
1160
+ - 《微服务配置管理》
1161
+ - 12-Factor App配置原则
1162
+ - Spring Cloud配置管理指南