作者阿丸笔记来源阿丸笔记(ID:aonenote)转载请联系授权(微信ID:awannote)今天将从存储的上一层「服务维度」学习架构师的第二项常用能力——微服务设计与治理。如何设计合理的微服务架构?如何保持微服务健康运行?这是我们对微服务进行架构设计过程中非常关注的两个问题。本文对微服务的生命周期定义了七个阶段,如下图所示。围绕这七个阶段总结了16条常用原则。1、微服务规划原则1:按照业务能力(businesscapabilities)来...
2022-09-07 15:17:58 4146浏览 0点赞 0回复 0收藏
作者阿丸笔记来源阿丸笔记(ID:aonenote)转载请联系授权(微信ID:awannote)生产实践中,如果遇到业务流量变高导致服务负载升高甚至报警,我们的第一反应往往是「加机器」。俗话说,能用钱解决的问题都不是问题。俗话又说,充钱你就能变得更强。但是,作为一个有理想有抱负的架构师,除了「加机器」,其实你的微服务还能更优雅、更精细地进行优化。本文预计阅读时间10分钟,将从以下三个方面展开:从「AKF扩展立方」说起Y轴扩展...
2022-09-06 12:04:06 4634浏览 0点赞 0回复 0收藏
作者日常加油站来源月伴飞鱼(ID:ghc4183eee9eb9)前言最近遇到在将本地的项目部署到服务器上之后遇到的一个奇怪问题在部署完成后,网站当时可以正常工作,但是第二天访问网站的时候却会遇到一个500ServerError。从日志中可以看出是MySQL数据库出现了异常翻译如下:最后一个数据包在83827560ms之前被成功接收,最后一个数据包在83827560ms之前被成功发送。比服务的配置参数waittimeout的值要长。日志中给出的建议如下翻译如下:你...
2022-04-27 11:34:56 7822浏览 0点赞 0回复 0收藏
作者二哥聊云原生来源二哥聊云原生(ID:LanceAndCloudnative)大家好,我是二哥。在一个面试场景中,就debug问题,一般会出现下面的对话:二哥:你平时开发的时候是用什么方法debug应聘者:看日志。二哥:万一loglevel没设对或者关键的地方没有加log怎么办呢应聘者:那就改代码,加log,重启服务,然后继续看日志。先不谈通过看log来debug的效率问题,在VM上这样搞尚且可行,可当我们把应用容器化并让K8s管理后,怎么办呢我们都...
2022-04-27 11:27:07 7128浏览 0点赞 0回复 0收藏
作者二哥聊云原生来源二哥聊云原生(ID:LanceAndCloudnative)接下来的几篇,二哥和大家聊聊容器的一些概念和容器安全。云原生看起来是横空出世,但如果仔细看看在这个概念出来之前的技术迭代和演进,我们会发现这一切冥冥之中早已安排。前人在“虚拟化”、“不可变基础设施”、“微服务”、“容器”、“容器编排”等领域各种各样的尝试使得云原生的诞生成为必然。如今,大家聊云原生必然会说到一个词:容器。说到容器,大家总自...
2022-04-20 11:28:25 5591浏览 0点赞 0回复 0收藏
作者二哥聊云原生来源二哥聊云原生(ID:LanceAndCloudnative)一篇文章围绕一张图,讲述一个主题。不过这个主题偏大,我估计需要好几篇文章才能说得清楚。云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式API。其中K8s是不可变基础设施的压舱石。典型的K8s集群由数十个Node,成百个Pod,上千个Container组成。相互隔离的容器间需要协作才能完成更大规模的应用。而协作就需要网络通信。这篇文章我主要通过下面...
2022-04-20 11:26:32 5425浏览 0点赞 0回复 0收藏
作者阿丸笔记来源阿丸笔记(ID:aonenote)转载请联系授权(微信ID:awannote)MySQL的binlog相信大家都有所耳闻,但是可能没有真正日常使用过。因此,本文结合一个otter小坑的排查案例,来分享下binlog的日常使用方式。重点了解下:binlog的导出方式binlog的解析方式结合案例分享下开源项目otter的一个小坑1.案例背景某个周末突然收到报警,发现线上多云数据库的数据同步任务挂起,显示日志写入数据失败。错误原因非常明显:唯一索...
2022-04-20 11:04:51 6527浏览 0点赞 0回复 0收藏
作者阿丸笔记来源阿丸笔记(ID:aonenote)转载请联系授权(微信ID:awannote)分库分表的文章网上非常多,但是大多内容比较零散,以讲解知识点为主,没有完整地说明一个大表的切分、新架构设计、上线的完整过程。因此,我结合去年做的一个大型分库分表项目,来复盘一下完整的分库分表从架构设计到发布上线的实战总结。1.前言为什么需要做分库分表。这个相信大家多少都有所了解。海量数据的存储和访问成为了MySQL数据库的瓶颈问题,...
2022-04-20 10:58:41 1.1w浏览 0点赞 1回复 0收藏
作者阿丸笔记来源阿丸笔记(ID:aonenote)转载请联系授权(微信ID:awannote)这篇文章比较难写,一些知识可能不是特别常用,不说可能会有疑惑,但是细扣又容易陷入细节,前后反复修改了好几遍,希望能逻辑连贯、深入浅出、杜绝又臭又长。觉得不错的话点个在看吧。另外,封面很难找,以后打算发自己做的菜,hiahia~提到MySQL的事务,我相信对MySQL有了解的同学都能聊上几句,无论是面试求职,还是日常开发,MySQL的事务都跟我们息...
2022-04-20 10:51:12 8308浏览 1点赞 0回复 0收藏
作者阿丸笔记来源阿丸笔记(ID:aonenote)转载请联系授权(微信ID:awannote)提到MySQL的事务,我相信对MySQL有了解的同学都能聊上几句,无论是面试求职,还是日常开发,MySQL的事务都跟我们息息相关。而事务的ACID(即原子性Atomicity、一致性Consistency、隔离性Isolation、持久性Durability)可以说涵盖了事务的全部知识点,所以,我们不仅要知道ACID是什么,还要了解ACID背后的实现,只有这样,无论在日常开发还是面试求职,都...
2022-04-20 10:46:08 8094浏览 0点赞 0回复 0收藏
作者阿丸笔记来源阿丸笔记(ID:aonenote)转载请联系授权(微信ID:awannote)1.前言随着业务的发展,MySQL数据库中的表会越来越多,表中的数据量也会越来越大,相应地,数据操作的开销也会越来越大;另外,无论怎样升级硬件资源,单台服务器的资源(CPU、磁盘、内存、网络IO、事务数、连接数)总是有限的,最终数据库所能承载的数据量、数据处理能力都将遭遇瓶颈。分表、分库和读写分离可以有效地减小单台数据库的压力。而数据库中间...
2022-04-20 10:40:09 5795浏览 0点赞 0回复 0收藏
作者阿丸笔记来源阿丸笔记(ID:aonenote)转载请联系授权(微信ID:awannote)1.背景前段时间,由于运维同事的一次误操作,清空了内网核心数据库,导致了公司内部管理系统长时间不可用,大量知识库内容由于没有备份险些丢失。结合这两天微盟的删库跑路事件,我们可以看到,数据库的备份与恢复显得尤为重要。本文将对此次内网数据恢复过程做一些整理,介绍删库后的抢救方案。同时,引发对数据库稳定性的思考。2.数据抢修这份内网数...
2022-04-20 09:54:43 5036浏览 0点赞 0回复 0收藏
作者阿丸笔记来源阿丸笔记(ID:aonenote)转载请联系授权(微信ID:awannote)在上篇中,我们介绍了MySQL中的全局锁和表锁。今天,我们专注于介绍一下行锁,这个在日常开发和面试中常常困扰我们的问题。1.行锁基础由于全局锁和表锁对增删改查的性能都会有较大影响,所以,我们自然会想到,只需要对有修改的行加锁就行了,这就是行锁。在事务中,事务1更新了一行主键为1的数据行,那么,在这个事务释放锁之前,事务2是不能操作的。...
2022-04-20 09:48:49 4585浏览 0点赞 0回复 0收藏
作者阿丸笔记来源阿丸笔记(ID:aonenote)转载请联系授权(微信ID:awannote)0.前言MySQL按照加锁的范围,分为全局锁、表级锁、行级锁。本文作为上篇,主要介绍MySQL的全局锁和表级锁。重要的实战总结为,如何安全地变更一个表的表结构。1.全局锁定义:全局锁就是对整个数据库实例加锁。全局锁语法:Flushtableswithreadlock(FTWRL)当你使用这个命令后,整个库处于只读状态,之后其他线程的数据更新语句(DML)、数据定义语句(DDL)...
2022-04-20 09:44:15 5353浏览 0点赞 0回复 0收藏
作者阿丸笔记来源阿丸笔记(ID:aonenote)转载请联系授权(微信ID:awannote)一.聊一聊关于MySQL的count()1.背景在完成一个分表项目后,发现分表的数据迁移后,新库所需的存储容量远大于原本两张表的大小。在做了一番查询了解后,完成了优化。回过头来,需要进一步了解下为什么会出现这样的情况。与标题的问题的类似问题还有,为什么表数据内容删除了而表大小没有变化。其本质都是一样的。要回答这些问题,我们需要从mysql的索引...
2022-04-20 09:40:04 6394浏览 0点赞 0回复 0收藏