/assets/images/avatar.jpeg

Harry

分布式系统基础知识概述

基础

性能

  • 性能指标

    • 响应时间
    • 吞吐量(QPS、TPS)
    • 并发用户数:不是越高越好,如果系统来不及处理就会阻塞,响应时间会大大提高
  • 性能优化

    • 集群
    • 缓存(Redis、CDN)
    • 异步

伸缩性

  • 扩容
  • 无状态的应用服务器可以通过负载均衡器想集群中添加新的节点
  • 关系型数据库可以用过Sharding实现
  • 非关系型数据库对伸缩性支持很好

扩展性

  • 添加新的功能对现有系统的其他应用无影响
  • 使用消息队列进行解耦
  • 分布式服务奖业务可复用的部分模块化

可用性

  • 冗余(多点备份,异地双活)
  • 故障切换
  • 服务降级
  • 监控

安全性

  • 应对各种攻击手段

MySQL 连接错误问题解决

软件环境

  • 操作系统:Ubuntu16.04-server
  • MySQL版本:5.7.25

故障一

只能通过localhost登录MySQL

  1. 报错如下

$mysql -h172.16.0.1 -uroot -p123456 mysql: [Warning] Using a password on the command line interface can be insecure. ERROR 1130 (HY000): Host ‘172.16.0.1’ is not allowed to connect to this MySQL server

MySQL ORDER BY 如何实现排序的?

MySQL是如何进行排序的?

假设有一个表t结构如下图所示: https://upload-images.jianshu.io/upload_images/14151453-c7aec6166a2d984f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240

id为主键,type上建有索引,那么如果要查类型为1,val最小的1000行,那么SQL语句如下: SELECT type, val, detail FROM t WHERE type = 1 ORDER BY val LIMIT 1000;

MySQL 脏页刷盘

什么是脏页?

InnoDB在处理更新语句时,先写内存再写redo log,并不会立即将数据页的更新落地到磁盘(WAL机制),这就会产生升内存数据页和磁盘数据页的数据不一致的情况,这种数据不一致的数据页称为脏页,当脏页写入到磁盘(这个操作称为flush)后,数据一致后称为干净页。