it_worker365

   ::  ::  ::  ::  :: 管理

随笔分类 -  架构理论

摘要:开发层技术: 开发框架:优选成熟的框架,避免盲目追逐新技术 web服务器:小公司用现成的成熟框架,大公司自研优化 容器:虚拟化技术主键没落,docker为中心的技术引领市场 服务层技术: 配置中心,集中管理各个系统的配置 服务中心,解决跨系统依赖的“配置”和“调度”问题 消息系统,跨系统异步通知的中 阅读全文
posted @ 2021-04-02 13:38 it_worker365 阅读(59) 评论(0) 推荐(0)

摘要:关系型数据库oracle太贵,专人维护,所以用Mysql,业务到一定程度就得拆分,头部公司就开始中间件化,例如百度的 DBProxy、淘宝的 TDDL;中小公司建议使用开源方案,例如 MySQL 官方推荐的 MySQL Router、360 开源的数据库中间件 Atlas;大牛公司可以直接平台化,以 阅读全文
posted @ 2021-04-02 13:09 it_worker365 阅读(82) 评论(0) 推荐(0)

摘要:架构师应该如何判断技术演进的方向? 潮流派的价值观是新技术肯定能带来很大收益;稳定派的价值观是稳定压倒一切;跟风派的价值观是别人用了我就用 影响一个企业业务的发展主要有 3 个因素:市场、技术、管理,这三者构成支撑业务发展的铁三角,任何一个因素的不足,都可能导致企业的业务停滞不前,业务处于三角形的中 阅读全文
posted @ 2021-04-02 12:51 it_worker365 阅读(56) 评论(0) 推荐(0)

摘要:可扩展 - 有生命力的软件系统,都是在不断迭代和发展的 拆,就是将原本大一统的系统拆分成多个规模小的部分,扩展时只修改其中一部分即可,无须整个系统到处都改,通过这种方式来减少改动范围,降低改动风险 怎么拆分? 面向流程(展示层 → 业务层 → 数据层 → 存储层),面向服务(注册、登录、信息管理、安 阅读全文
posted @ 2021-04-02 12:23 it_worker365 阅读(69) 评论(0) 推荐(0)

摘要:异地多活架构的关键点就是异地、多活,其中异地就是指地理位置上不同的地方,类似于“不要把鸡蛋都放在同一篮子里”;多活就是指不同地理位置上的系统都能够提供业务服务,这里的“活”是活动、活跃的意思 同城异区指的是将业务部署在同一个城市不同区的多个机房 跨城异地指的是业务部署在不同城市的多个机房,而且距离最 阅读全文
posted @ 2021-04-02 10:19 it_worker365 阅读(81) 评论(0) 推荐(0)

摘要:存储高可用方案的本质都是通过将数据复制到多个存储设备,通过数据冗余的方式来实现高可用,其复杂性主要体现在如何应对复制延迟和中断导致的数据不一致问题 主备:读写主机,“备机”主要还是起到一个备份作用,并不承担实际的业务读写操作 主从:主机读写,从机读 双机切换:状态判断/切换决策 互联式:主备机直接建 阅读全文
posted @ 2021-04-01 14:27 it_worker365 阅读(75) 评论(0) 推荐(0)

摘要:CAP~在一个分布式系统(指互相连接并共享数据的节点的集合)中,当涉及读写操作时,只能保证一致性(Consistence-对某个指定的客户端来说,读操作保证能够返回最新的写操作结果)、可用性(Availability~非故障的节点在合理的时间内返回合理的响应(不是错误和超时的响应))、分区容错性(P 阅读全文
posted @ 2021-04-01 13:33 it_worker365 阅读(53) 评论(0) 推荐(0)

摘要:“高性能架构模式” “读写分离”,其本质是将访问压力分散到集群中的多个节点,但是没有分散存储压力 主从结构,主读写,从读,主从通过复制同步; 主从复制不一致问题解决:写操作后的读操作指定发给数据库主服务器/读从机失败后再读一次主机/关键业务读写操作全部指向主机,非关键业务采用读写分离 分配机制:代码 阅读全文
posted @ 2021-04-01 12:53 it_worker365 阅读(59) 评论(0) 推荐(0)

摘要:合适原则、简单原则、演化原则 真正优秀的架构都是在企业当前人力、条件、业务等各种约束下设计出来的,能够合理地将资源整合在一起并发挥出最大功效,并且能够快速落地 识别复杂度:复杂度主要来源于“高性能”“高可用”“可扩展”等几个方面 设计备选方案:备选阶段关注的是技术选型,而不是技术细节,技术选型的差异 阅读全文
posted @ 2021-04-01 11:05 it_worker365 阅读(55) 评论(0) 推荐(0)

摘要:架构设计的关键思维是判断和取舍 架构是顶层设计;框架是面向编程或配置的半成品;组件是从技术维度上的复用;模块是从业务维度上职责的划分;系统是相互协同可运行的实体。 高性能带来的复杂度: 单台-多进程/多线程/通信等方方面面,比如:Nginx 可以用多进程也可以用多线程,JBoss 采用的是多线程;R 阅读全文
posted @ 2021-04-01 09:25 it_worker365 阅读(80) 评论(0) 推荐(0)