目录

Life in Flow

知不知,尚矣;不知知,病矣。
不知不知,殆矣。

分布式事务

分布式事务  在分布式条件下,相互关联的多个数据由于跨系统,彼此的事务之间不被感知,无法保证 如何实现分布式下的一致性  典型情况下是两个思路: 理想状态:直接像单机数据库事务一样,多个数据库自动通过某种协调机制,实现了跨数据库节点的一致性。 使用场景:要求严格的一致性,比如金融交易类业务。 强一致 : 数据库使用XA协议实现,不是所有数据库都支持XA协议 一般情况:可以容忍一段时间的数据不一致,最终通过超时终止,调度补偿,冲正等等方式,实现数据的最终状态一致性。 使用场景:准实时或非实时的处理,比如 T+1的各类操作,或者电商类操作。 弱一致 : 1) 不用事务,业务侧补偿冲正 2) 所谓的柔性事务,使用一套事务框架保证最终一致的事务 XA 分布式事务协议   基于第一个强一致的思路,就有了基于数据库本身支持的协议,XA 分布式事务。XA 整体设计思路可以概括为,如何在现有事务模型上微调扩展,实现分布式事务。 X/Open   X/Open,即现在的 open group,是一个独立的组织,主要负责制定各种行业技术标准。X/Open 组织主要由各大知名公司或者厂商进行支持....

数据库拆分

主从架构无法解决单节点容量问题 部分解决高可用 降低主库一部分读压力 无法解决容量问题 主从结构解决了高可用,读扩展,但是单机容量不变,单机写性能无法解决。 提升容量--> 分库分表,分布式,多个数据库,作为数据分片的集群提供服务。 降低单个节点的写压力。 提升整个系统的数据容量上限。 单机数据库已经无法适应互联网的发展   传统的将数据集中存储至单一数据节点的解决方案,在容量、性能、可用性和运维成本这三方面已经难于满足互联网的海量数据场景。我们在单库单表数据量超过一定容量水位的情况下,索引树层级增加,磁盘 IO 也很可能出现压力,会导致很多问题。 性能:由于关系型数据库大多采用 B+ 树类型的索引,在数据量超过阈值的情况下,索引深度的增加也将使得磁盘访问的 IO 次数增加,进而导致查询性能的下降;同时,高并发访问请求也使得集中式数据库成为系统的最大瓶颈。 可用性:从可用性的方面来讲,服务化的无状态型,能够达到较小成本的随意扩容,这必然导致系统的最终压力都落在数据库之上。而单一的数据节点,或者简单的主从架构,已经越来越难以承担。 运维:当一个数据库实例中的数据达到阈值以上,....

张黑蛋

该文章已经加密。

Apache SkyWalking

布式架构下的排查问题复杂性 分布式应用架构的运维和诊断的过程变得越来越复杂,例如:接口诊断困难、应用性能诊断复杂、架构分析复杂等难题,传统的监控工具并无法满足,分布式链路系统由此诞生 核心:将一次请求分布式调用,使用 GPS 定位串起来,记录每个调用的耗时、性能等日志,并通过可视化工具展示出来 APM 系统(Application Performance Management) 讲到分布式的链路追踪系统,不得不说说它的前世今生了,APM 系统是可以帮助系统的行为做性能分析的工具 APM 系统,它是由谷歌公开的论文提到的,可以说谷歌还是很强的!而到后面,许多的技术公司就基于这边论文的原理,开发出来很多出色的 APM 框架,比如:skywalking、zipkin 等等 SkyWalking Skywalking 是什么 skywalkings 是一款国产的开源框架,在 2015 年开源使用,在 2017 年的时候加入了 Apache 孵化器 skywalking 是分布式应用程序的性能监控工具,专门是为了微服务(spring cloud)、云原生架构与容器架构(docker/....

Prometheus

项目上线后如何保障业务的稳定性运行 高可用架构设计 采用分布式架构和容灾设计,确保系统的冗余与可恢复能力 包括多机房部署、多副本部署、负载均衡、热备份等策略,以应对单点故障和海量并发请求。 服务容错与降级 在面对故障或异常情况时,通过设计合适的容错机制和降级策略来保证核心业务的稳定进行 例如,对于关键服务,可以使用熔断器、限流器等技术来避免级联故障和请求雪崩。 自动化运维和发布 制定自动化的运维流程,包括自动化的部署、回滚、灰度发布等,减少人工操作引起的错误和风险。 同时,建立持续集成与持续交付(CI/CD)流程,确保代码的质量和稳定性 安全保障和漏洞修复 建立健全的安全策略和防护措施,保障系统和数据的安全。 同时及时修复系统中的漏洞和安全问题,避免被攻击者利用导致系统瘫痪或用户数据泄漏。 备份与恢复 定期进行系统数据的备份,并建立灾难恢复机制,备份可以包括系统配置、数据库、日志等关键数据 在系统发生故障时,能够及时将数据恢复到最新的可用状态。 如何发现业务的不稳定运行 互联网公司需要在开发、测试、发布、运维等不同阶段对产品进行监控,以便及时....

OpenVPN

Virtual Private Network 方案 区别 专线 不差钱 硬件 vpn 设备 成本低 开源软件 pptp(兼容性差)、OpenVPN(数据加密、便于用户可以访问内网,内网) 、IpSEC、OpenSwan 应用场景 远程访问企业内网 多分支互通 架构 角色 地址 OpenVPN_Server(开启内核转发功能) eth0:192.168.10.30/24、eth1:172.16.10.30/24 DB 172.16.10.31/24 (不需要设置网关,只设置 ip 即可) OpenVPN_Client 192.168.10.88/24 1# 开启内核转发功能 2[root@localhost easy-rsa]# vim /etc/sysctl.conf 3[root@localhost easy-rsa]# sysctl -p 4net.ipv4.ip_forward = 1 CA 角色 功能 客户端 CA 证书:client 密钥(加密) 服务端 CA 证书:server 密钥(解密) ....

Zabbix

监控的意义 监视 是指对行为、活动或其他变动中信息的一种持续性关注,通常是为了对人达成影响、管理、指导或保护的目的 监控主机或者架构状态 控制、追责 及时定位故障点,预先扩容(数据分析) 早期linux的监控命令 定时任务+脚本 项目命令 业务apicurl/wget 进程ps/pstree/pgrep/pidstat/top/htop cputop/htop/vmstat/mpstat/cpuinfo/w/uptime/sar 内存top/free/ps/iotop/vmstat/sar 磁盘iotop/iostat/sar 网络iftop(整体带宽使用情况)/nethogs(精确到进程)/nstat/ifstat/mtr/sar 硬件Megacli(raid)/ipmitool(温度、cpu风扇转速)/Im_sensors(温度) 监控层次与指标 单台服务 业务信息:程序逻辑(与开发沟通书写一个监控页面) 服务信息:各种服务的进程、端口、状态 系统信息:cpu、mem、io、负载、网络 硬件信息:磁盘、raid状态、温度、风扇转速、机房温度&湿度 网络集群监控(用户访问流程....