前言   java工程师成长为架构师是一个艰难且耗费心力的过程,不仅仅需要熟悉java体系内相关的技术,同时要掌握许多运维相关的操作技能,随着k8s逐渐成为微服务持续集成开发难以越过的基础设施之后,docker就成为跨进门槛必备的技能之一.   虽然前两年kubernetes宣布v1.20开始弃用docker直到v1.23彻底排除,但这不意味着我们就要放弃学习docker,相反,国内诸多企业尤其是中小企业和事业单位存在大量用docker部署的既有项目,一些非互联网公司更是对升级版本十分审慎,大部…
正如飞机在起飞前,机长.副机长要过一遍checklist检查,确认没问题了才能起飞.楼主也整理了一个系统容量现状checklist,方便对照检查.本文搭配架构师必备:如何做容量预估和调优,食用更佳. 作为架构师,不要觉得系统容量是运维工程师才关心的问题,而应当对系统容量现状做到了如指掌.这样才能知道系统的瓶颈在哪,哪些优化是要优先做的,以及为了应对活动期间突发的流量,做多少扩容. 本文分为2大部分,一是资源使用率,二是业务指标. 资源使用率 服务实例 实例个数.每个实例server的工作线程个数…
日常工作中,MySQL数据库是必不可少的存储,其中读写分离基本是标配,而这背后需要MySQL开启主从同步,形成一主一从.或一主多从的架构,掌握主从同步的原理和知道如何实际应用,是一个架构师的必备技能.楼主将在本文做总结,看这一篇就够了. 1.主从同步原理 主从同步架构图(异步同步) 这是最常见的主从同步架构. 主从同步流程(异步同步) 主库把数据变更写入binlog文件 从库I/O线程发起dump请求 主库I/O线程推送binlog至从库 从库I/O线程写入本地的relay log文件(与bin…
.NET架构师,我归纳一下要学的知识: 成为优秀程序员,需要学好的知识: 1. 面向对象编程.UML画图.设计模式.代码重构 2. 常用ORM工具 3.  MVC,WCF,XMl, JQuery ,SQL以及性能优化 4. FrameWork一些深入的知识 5. 高性能代码,比如静态化,MemCached等手段. 6. 最好也了解一些其他语言,比如Java,PHP等.…
1.介绍 从计算机诞生开始,就伴随着计算机应用程序的演变.简短的回顾历史,我们可以清楚的看到应用程序发生的巨大变化.上世纪70年代中期,随着个人PC机的爆炸式增长以及程序员的崛起,让计算机的计算能力得到了大跨越的提升,个人PC机上可以运行非常复杂的应用程序. 进入上世纪80年代,随着Bulletin Board System(简称:BBS)电子公告板系统的兴起,它可以为广大PC机用户提供基本的在线服务,如在线聊天.电子邮件.消息发送和文件下载.由于受到那个时代计算机网络传输速度的限制,在线服务的…
本文介绍如何应用Canal实现异步.解耦的架构,后续有空再写文章分析Canal原理和源代码. Canal简介 Canal是用来获取数据库变更的中间件. 伪装自己为MySQL从库,拉取主库binlog并解析.处理.处理结果可发送给MQ,方便其他服务获取数据库变更消息,这一点非常有用.下面介绍一些典型用途. 其中,Canal+MQ作为一个整体,从外界看来就是一个数据管道服务服务,如下图. Canal典型用途 异构数据(如ES.HBase.不同路由key的DB) 通过Canal自带的adapter,同…
上一篇文章介绍了MySQL主从同步的原理和应用,本文总结了MySQL主从延迟的原因和解决办法.如果主从延迟过大,会影响到业务,应当采用合适的解决方案. MySQL主从延迟的表现 先insert或update写入更新操作,再立即select查询,但是得不到最新的结果. 可通过show slave status命令,结果中的Seconds_Behind_Master列,查看主从延迟的秒数. MySQL主从延迟的原因 读写分离时,写操作走主库,读操作走从库,但是主库的变更还未同步至从库 网络传输延迟:…
结论 有以下几种Redis集群方案,先说结论: Redis cluster:应当优先考虑使用Redis cluster. codis:旧项目如果仍在使用codis,可继续使用,但也推荐迁移到Redis cluster. twemproxy:不建议使用,与codis同为proxy方案,但不如codis(twemproxy不能平滑地扩容). 客户端分片:应当禁止使用,因为扩容复杂,如果2个服务同时读写,其中一个修改了路由,另一个不修改会有问题. 下面重点介绍Redis cluster和codis.…
首先要回答一个问题,为何要使用HBase? 随着业务不断发展.数据量不断增大,MySQL数据库存在这些问题: MySQL支持的数据量为TB级,不能一直保留历史数据.而HBase支持的数据量为PB级,适合存储久远的历史冷数据 新增列的代价较高,数据量越大耗费时间越长.而HBase可以随意增加列,空列不占据空间,业务模型可以灵活变化 要使用HBase,最重要的一点是rowkey行键设计,如果设计不妥,后续要改的代价非常大. HBase行键设计原则 下面列几个HBase rowkey设计的原则: 组合…
Dubbo建议使用Zookeeper作为服务的注册中心. http://www.roncoo.com/details?cid=f614343765bc4aac8597c6d8b38f06fd 注册中心服务器(192.168.3.71)配置,安装Zookeeper: 1.  修改操作系统的/etc/hosts文件中添加: # zookeeper servers 192.168.3.71 edu-provider-01 2. 到http://apache.fayea.com/zookeeper/下载…