典籍篇

聚社区之智,传技术之火

◀ 返回

postgresql 的组成结构

内存

  • Local memory area:由每个后端进程分配给自己使用。

  • Share memory area: 由 postgresql 服务器的所有进程使用。

postgresql-memory

  • work_mem: 执行器执行 order bydistinctjoin tableshash-join操作时使用。

  • maintenance_work_mem: vacuum 归整、reindex重建索引,时使用。

  • temp_buffers: 临时表使用。

  • shared_buffer_pool: 从持久化的存储加载表页和索引页到此。

  • wal_buffer: 防止服务异常停止导致数据没有落盘,创建了 wal 缓冲区,相当于 redo log。

  • commit log: 记录所有的事务状态如:再处理,已提交、回退,保持事务的一致性。相当于 undo log。

进程

PostgreSQL 采用 C/S 模式,系统为每个连接的客户端分配一个服务进程 Postgres postgresql-process

当运行 pg_ctl 命令进入 Postgres 程序时,其进程创建流程如下:

PostMaster

postgresql-process1

  • PostMaster:进程是整个数据库实例的总控进程,负责启动关闭该数据实例。并且在服务进程出现错误时完成系统的恢复,还要在系统奔溃的时候重启系统。它是运行在服务器上的总控进程,同时也负责整个系统范围内的操作,例如中断操作与信号处理。但是 Postmaster 本身并不执行这些操作,而是指派一个子进程在适当的时间处理它们。Postmaster 进程在起始时会创建共享内存与信号库,用于与子进程的通信,同时也能在某个子进程奔溃的时候重置共享内存即可恢复。

Postmaster 守护进程的执行流程如下

postgres-porcess2

SysLogger

  • SysLogger:(系统日志)进程,日志信息是数据库管理员获取数据库系统运行状态的有效手段。在数据库出现故障时,日志信息是非常有用的。把数据库日志信息集中输出到一个位置将极大方便管理员维护数据库系统。然而,日志输出将产生大量数据(特别是在比较高的调试级别上),单文件保存时不利于日志文件的操作。因此,在SysLogger的配置选项中可以设置日志文件的大小,SysLogger会在日志文件达到指定的大小时关闭当前日志文件,产生新的日志文件。
# - Where to Log -

log_destination = 'stderr'              # Valid values are combinations of
                                        # stderr, csvlog, jsonlog, syslog, and
                                        # eventlog, depending on platform.
                                        # csvlog and jsonlog require
                                        # logging_collector to be on.

# This is used when logging to stderr:
logging_collector = on          # Enable capturing of stderr, jsonlog,
                                        # and csvlog into log files. Required
                                        # to be on for csvlogs and jsonlogs.
                                        # (change requires restart)

# These are only used if logging_collector is on:
#log_directory = 'log'                  # directory where log files are written,
                                        # can be absolute or relative to PGDATA
#log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'        # log file name pattern,
                                        # can include strftime() escapes
#log_file_mode = 0600                   # creation mode for log files,
                                        # begin with 0 to use octal notation
#log_rotation_age = 1d                  # Automatic rotation of logfiles will
                                        # happen after that time.  0 disables.
#log_rotation_size = 10MB               # Automatic rotation of logfiles will
                                        # happen after that much log output.
                                        # 0 disables.
#log_truncate_on_rotation = off         # If on, an existing log file with the
                                        # same name as the new log file will be
                                        # truncated rather than appended to.
                                        # But such truncation only occurs on
                                        # time-driven rotation, not on restarts
                                        # or size-driven rotation.  Default is
                                        # off, meaning append to existing files
                                        # in all cases.

log_destination:配置日志输出目标,根据不同的运行平台会设置不同的值,Linux下默认为stderr。

个人简历-中文

📄 简历

👨‍💻 个人信息

  • 姓名: 武国军
  • 性别: 男
  • 年龄: 33岁
  • 联系方式: 18091983163
  • 邮箱: blowizer@qq.com
  • 工作经验: 10年
  • 求职意向: Java
  • 期望薪资: 20-25K
  • 期望城市: 北京

✨ 个人优势

  1. 熟练掌握 c/c++、java、go、php、perl、python、vuejs 等编程语言 。
  2. 熟练掌握 spring boot、spring cloud、mybaitsplus、maven、git 开发生态 。
  3. 熟练掌握 dubbo、rocketmq、redis、es、docker、k8s 等开源框架 。
  4. 熟练掌握 Linux 系统,对 Linux 内核 有深刻的理解 。
  5. 具有高效团队协调能力,技术深度广,能快速灵活的使用最新技术、敏锐的洞察问题的根源 。

🚀 工作经历

XXXX(北京)科技有限公司 (Java)

  • 时间: 2023.09-至今
  • 内容:
    • 负责远程银行系统的应用开发,确保系统稳定性和高效性,满足客户需求 。
    • 参与需求分析、开发、功能测试及系统优化,协调项目资源,确保项目按时交付 。
    • 管理和优化项目流程,提升团队协作效率,推动项目顺利进行 。
  • 业绩:
    • 远程银行工单系统在全行客户工单集中统一管理、跨系统协同处理、智能分析与数据合规等方面均取得了阶段性突破 。
    • 系统能力从“信息分散、被动处理”逐步迈向“统一归口、智能协同、全程可视”,为建设以客户为中心的消保管理体系奠定了坚实基础 。

上海中软华腾软件系统有限公司 (Java)

  • 时间: 2016.10-2023.08
  • 内容:
    • 主要负责银行业务需求功能分析、开发、测试、维护 。
    • 涉及渠道有 ATM、POS 收单、银联、二代支付、城商、票据等业务 。
    • 应用技术栈为 c/c++、java、spring boot、mybatis、oracle、vuejs 。

北京百迈客生物科技有限公司 (运维工程师)

  • 时间: 2015.10-2016.08
  • 内容:
    • liunx hpa 高性能集群运维 。
    • 构建自动化运维监控系统 。
    • 基础 oa 软件安装与问题排查 。
  • 业绩:
    • 基于 phpadmin 实现了计算、存储资源的统计和告警通知 。
    • 完成机房迁移升级改造,包括计算核心存储 nas 存储 raid 5升级 raid10 以及网络带宽 。
    • 基础搭建了 Prometheus、zabbix、ansible、openstack 云计算 。
    • 搭建 jira 任务追踪管理系统 。

📂 项目经历

远程银行系统 (全栈工程师)

  • 时间: 2023.09-至今
  • 内容:
    • 系统基于华夏银行 AICC 智能客服底座建设,支撑语音、视频、在线聊天等多渠道客户诉求的统一接入与处理 。
    • 实现客户诉求全渠道受理、智能分派、过程追踪及闭环管理 。
  • 业绩:
    • 跨系统工单互联: 实现“12378 一键呼转工单”功能,打通信用卡中心与远程银行系统之间的工单流程与状态互通,确保投诉上报数据一致性与有效性 。
    • 企业微信移动端处理: 支持工单在企业微信移动端便捷处理,针对不同工单类型定制敏感信息脱敏权限,离线填单可自动关联话务信息 。
    • 客户建议联动 ITIL 系统: 将客户建议类工单实时对接行内 ITIL 系统,实现客户建议快速评估与落地闭环 。
    • 客服与分行联动: 新增客服联动分行处理机制,通过企业微信嵌入应用实现任务通知、转派、状态查询 。
    • 数据分析与智能质检: 工单报表系统支持三个月数据查询,并与智能客服机器人子系统对接,用于智能质检及客户意图分析 。

数字人民币收单系统 (前后端开发)

  • 时间: 2022.12-2023.06
  • 内容:
    • 系统基于 spring cloud 开发的商户管理、支付、经营分析、风险控制多模块多应用系统 。
    • 包括商户管理、商服服务平台和联机交易支付和风险控制 。
  • 业绩:
    • 整合 spring security 权限控制 。
    • 集成 flowable 工作流 。
    • 通过甲方金融网关接入影像、短信,身份认证各组件应用的接入 。

智能柜员机 P 端系统 (后端开发)

  • 时间: 2022.01-2022.12
  • 内容:
    • 行内智能柜员机后端管理系统,服务 C 端借贷记、理财、身份识别等联机交易、终端管理、安全校验、数据报表等功能 。
  • 业绩:
    • 负责接入加密平台(加密 api 升级) 。
    • 负责交易系统开发技术指导 。
    • 业务数据迁出与迁入 。
    • 系统部署投产 。

银联前置 (开发工程师)

  • 时间: 2016.10-2020.12
  • 内容:
    • 银行间支付交易系统,包括本行 POS、ATM、无卡、二维码、柜面中间业务平台的存取款等交易系统 。
    • 对接银联、系统安全、报文转发、业务控制等功能 。
  • 业绩:
    • 完成银联规范升级的业务开发 。
    • 完成应用系统同城异地双活 。
    • 信用卡断直连系统迁移 。

🎓 教育经历

  • 学校: 安康学院
  • 学历: 本科
  • 专业: 计算机科学与技术
  • 时间: 2011-2015

🏆 资格证书

  • PMP 项目管理认证

编程语言

语言即思维,代码即哲学

「编程语言兵器谱」

以江湖门派为纲,串联站内所有编程笔记。每个门派会收录对应语言的实战心法与案例,持续更新中。

🔧 「C 古谱」· 底层乾坤,性能为王

📊 「数据结构」

🐍 「Python 剑诀」· 化繁为简,以柔克刚

  • 计划整理:快速原型、脚本自动化、数据处理常用套路。

☕ 「Java 心经」· 重剑无锋,大巧不工

🟨 「JavaScript 妙法」· 灵动变幻,万象归一

  • 计划整理:可视化组件、前端工程化心得。

🚀 「Go 道术」· 大道至简,并发自然

  • 计划整理:goroutine 调度图谱、微服务脚手架。

🦀 「Rust 玄功」· 内存无患,安全自在

  • 计划整理:所有权系统心法、零成本抽象笔记。

如需补充新的「秘笈」,直接在对应语言目录下创建 Markdown 文件并在此处追加条目即可。

工具效率

工欲善其事,必先利其器

「工具效率法宝篇」

收录日常开发、测试、运维、办公中提升效率的神器与技巧。善用工具者,事半功倍。


💻 「开发利器」

🛠️ 「IDE 神器」

「Visual Studio Code」
  • VS Code 高效配置指南 —— 快捷键、插件组合、调试技巧
  • 计划:多语言开发环境配置、远程开发最佳实践
  • 计划:代码片段自定义、主题与界面优化
「IntelliJ IDEA」
  • IDEA 高级用法揭秘 —— 重构技巧、代码模板、插件生态
  • 计划:性能调优配置、团队协作设置
  • 计划:数据库工具集成、微服务调试

🔧 「开发辅助」

「Git 时空术」
  • Git 高级工作流 —— 分支策略、后悔药、二分排查
  • 计划:子模块管理、Hooks 自动化、大型仓库优化
「命令行神器」

🧪 「测试宝典」

📡 「API 测试」

「Postman」
  • Postman 自动化测试 —— 集合运行、数据驱动、监控告警
  • 计划:API 文档生成、团队协作、Mock Server
「JMeter」
  • JMeter 性能测试实战 —— 场景设计、分布式测试、结果分析
  • 计划:BeanShell 脚本、自定义插件、CI/CD 集成

🚀 「负载测试」

「LoadRunner」
「性能监控」
  • 计划:APM 工具对比、全链路追踪、性能基线建立

🏗️ 「运维部署」

🔄 「CI/CD 流水线」

「Jenkins」
  • Jenkins 流水线设计 —— Pipeline as Code、多分支流水线
  • 计划:插件开发、集群部署、权限管理
  • 计划:制品库管理、质量门禁设计
「Docker & K8s」
  • 容器化部署大全 —— 镜像优化、编排技巧、故障排查
  • 计划:Service Mesh 集成、监控日志方案

☁️ 「云原生工具」

「基础设施即代码」
  • 计划:Terraform 模块设计、Ansible Playbook 最佳实践
  • 计划:云平台 CLI 工具集、跨云管理方案

🌐 「网页收藏」

📚 「开发资源」

「文档与教程」
「工具网站」
  • 在线工具集锦 —— 编码解码、格式转换、正则测试
  • 计划:图表生成、API 调试、数据可视化

🎨 「设计与灵感」

「UI/UX 资源」
  • 设计工具与资源 —— 配色方案、字体库、原型工具
  • 计划:动效设计、交互模式、设计系统

📝 「办公软件」

📄 「Word 高级技巧」

「长文档排版」
  • Word 论文排版指南 —— 样式管理、目录生成、参考文献
  • 计划:模板设计、批量处理、协作评审
「自动化处理」
  • 计划:VBA 宏编程、邮件合并、表单设计

📊 「Excel 数据处理」

「公式与函数」
  • Excel 函数大全 —— 查找引用、文本处理、数组公式
  • 计划:Power Query 数据清洗、Power Pivot 建模
「数据分析」
  • Excel 图表与透视表 —— 动态图表、数据看板、高级筛选
  • 计划:条件格式高级用法、数据验证技巧

🎯 「PPT 演示艺术」

「设计与动画」
  • PPT 专业设计 —— 版式设计、色彩搭配、动画时序
  • 计划:模板制作、演讲者模式、协作技巧

⚡ 「效率心法」

🧠 「工作流优化」

「时间管理」
  • GTD 实践指南 —— 任务分解、优先级划分、番茄工作法
  • 计划:日历管理、习惯养成、专注技巧
「知识管理」

🔗 「跨工具协作」

「自动化流程」
  • 计划:浏览器自动化、RPA 工具应用、脚本联动
  • 计划:通知集成、数据同步、工作流引擎

工具虽多,适者为佳。此处持续更新实际验证过的高效工具与技巧,去芜存菁。

后端架构

运筹数据之间,决胜流量之巅

「后端架构兵法篇」

收录系统架构、分布式原理、高并发设计等后端核心知识。从单体到微服务,从数据库到缓存,构建可扩展的稳健系统。


⚔️ 「架构修仙传」

以《凡人修仙传》为蓝本,将软件架构演进与修仙体系完美融合,从单机苦修到云原生飞升,体验架构师的修炼之路。

📚 「修仙章节」


🎯 「微服务兵法」

🏗️ 「服务拆分艺术」

「领域驱动设计」
  • DDD 实战指南 —— 限界上下文、实体与值对象、聚合根设计
  • 计划:事件风暴工作坊、领域模型演进、防腐层构建
「微服务边界划分」
  • 服务拆分策略 —— 单一职责、数据自治、接口设计
  • 计划:拆分时机判断、灰度迁移方案、数据一致性

🔗 「服务通信机制」

「同步调用模式」
  • RPC 框架深度解析 —— 协议设计、序列化优化、负载均衡
  • 计划:gRPC/Thrift/Dubbo 对比、连接池管理、超时控制
「异步消息驱动」
  • 消息队列实战 —— Kafka/RocketMQ/RabbitMQ 应用场景
  • 计划:消息顺序性、幂等消费、事务消息

🛡️ 「服务治理体系」

「容错与降级」
  • 熔断器模式实现 —— Hystrix/Sentinel 原理分析
  • 计划:隔离策略、降级规则、自适应保护
「配置与注册中心」
  • 配置动态化管理 —— Apollo/Nacos 架构解析
  • 计划:配置版本管理、灰度发布、权限控制

🌐 「分布式阵法」

⚡ 「分布式一致性」

「共识算法核心」
  • Paxos/Raft 算法详解 —— 选举机制、日志复制、成员变更
  • 计划:算法工程实现、性能优化、脑裂处理
「分布式事务方案」
  • 事务模式对比 —— 2PC/TCC/SAGA/消息事务
  • 计划:Seata框架实战、最大努力通知、补偿机制

🔄 「分布式缓存」

「Redis 深度应用」
  • Redis 架构设计 —— 数据结构选择、持久化策略、集群模式
  • 计划:热点key处理、缓存雪崩/穿透/击穿防护
「多级缓存体系」
  • 缓存架构设计 —— 本地缓存+分布式缓存+客户端缓存
  • 计划:缓存一致性、过期策略、监控指标

📊 「分布式存储」

「分库分表策略」
  • 数据库分片实战 —— 分片键选择、路由算法、扩容方案
  • 计划:全局ID生成、跨分片查询、数据迁移
「NewSQL 探索」
  • TiDB/OceanBase 应用 —— HTAP架构、分布式事务、生态集成
  • 计划:性能调优、运维管控、成本分析

🚀 「高并发战策」

🎪 「流量管控」

「限流与削峰」
  • 高并发流量治理 —— 令牌桶/漏桶算法、滑动窗口计数
  • 计划:自适应限流、集群限流、热点防护
「负载均衡策略」
  • 负载均衡算法 —— 轮询/权重/最小连接/一致性哈希
  • 计划:健康检查、故障转移、动态权重调整

⚙️ 「性能优化」

「JVM 调优实战」
  • Java 性能优化 —— 内存模型、GC算法、线程池优化
  • 计划:内存泄漏排查、堆外内存管理、监控工具
「数据库性能提升」
  • SQL 优化指南 —— 索引设计、执行计划、锁机制
  • 计划:连接池配置、读写分离、批量操作优化

🧩 「异步化设计」

「响应式编程」
  • Reactor 模型解析 —— 背压控制、事件循环、非阻塞IO
  • 计划:WebFlux实战、协程应用、性能对比
「批量处理优化」
  • 计划:批处理框架、数据压缩、流水线处理

🗃️ 「数据库韬略」

🏺 「关系型数据库」

「MySQL 深度优化」
  • InnoDB 存储引擎 —— B+树索引、事务隔离、MVCC机制
  • 计划:参数调优、主从同步、高可用方案
「PostgreSQL 特性」

🎭 「NoSQL 选型」

「文档数据库」
  • MongoDB 架构设计 —— 分片集群、索引策略、聚合管道
  • 计划:事务支持、变更流、性能优化
「时序数据库」

📈 「搜索与索引」

「Elasticsearch 实战」
  • ES 高级查询 —— 分词器、相关性算分、聚合分析
  • 计划:集群调优、数据生命周期、安全管控
「图数据库应用」
  • Neo4j 图算法 —— Cypher查询、路径分析、社区发现
  • 计划:知识图谱、推荐系统实战

🏰 「系统设计谋」

📐 「架构模式」

「分层架构演进」
  • 架构模式对比 —— 单体/分层/微服务/事件驱动
  • 计划:架构演进路径、技术选型标准、重构策略
「设计原则实践」
  • SOLID 原则实战 —— 依赖注入、接口隔离、开闭原则
  • 计划:设计模式应用、代码坏味识别

🔍 「系统分析」

「容量规划方法」
  • 系统容量设计 —— 压力测试、性能模型、资源预估
  • 计划:弹性伸缩策略、成本控制、瓶颈分析
「故障预防设计」
  • 混沌工程实践 —— 故障注入、演练方案、恢复策略
  • 计划:容灾方案、降级预案、监控体系

🎨 「API 设计艺术」

「RESTful 规范」
  • API 设计最佳实践 —— 资源建模、状态码、版本管理
  • 计划:超媒体API、GraphQL对比、文档生成
「安全与认证」
  • API 安全防护 —— OAuth2.0/JWT/签名验证
  • 计划:速率限制、审计日志、漏洞防护

🔮 「架构师视野」

🌟 「技术战略」

「架构决策记录」
  • ADR 管理实践 —— 决策框架、权衡分析、知识沉淀
  • 计划:技术雷达、创新采用曲线、技术债务管理
「团队协作模式」
  • 架构师成长路径 —— 技术规划、代码审查、知识传递
  • 计划:架构评审、标准化建设、效能提升

🚢 「生产实践」

「系统可观测性」
  • 可观测性体系建设 —— 指标/日志/链路追踪三位一体
  • 计划:根因分析、智能告警、用户体验监控
「DevOps 文化」
  • 计划:研发流程优化、自动化程度、团队协作改进

架构之道,在于平衡艺术与工程,在复杂性与简洁性之间寻找最优解。