系统架构
文章平均质量分 86
zhangbijun1230
这个作者很懒,什么都没留下…
展开
-
系统架构----(2)大型网站架构之架构模式
大型网站架构之架构模式什么是模式呢?每一个模式描述了一个再我们周围不断重复发生的问题及问题解决方案的核心,这样你就能一次次重用该方案而不必去做重复的工作,可见模式的关键在于可重复性。网站架构模式的目标:面临高并发访问,海量数据处理,高可靠运行等问题和挑战,我们在实践中提出很多解决方案,主要为了实现网站的高性能、高可用、易伸缩、可扩展、安全等架构目标。网站架构模式具体方案如下:1、分层分层是一种常见...转载 2018-03-19 12:54:24 · 438 阅读 · 0 评论 -
软件架构(5)---软件架构设计的一些总结和理解
1. 软件架构设计的What & Why● 啥是软件架构(Software Architecture)?软件架构是指在一定的设计原则基础上,从不同角度对组成系统的各部分进行搭配和安排,形成系统的多个结构而组成架构,它包括该系统的各个组件,组件的外部可见属性及组件之间的相互关系。组件的外部可见属性是指其他组件对该组件所做的假设。软件架构设计就是从宏观上说明一套软件系统的组成与特性。软件架构设...转载 2018-04-08 20:33:21 · 2023 阅读 · 0 评论 -
大数据---(3)金融数据架构
金融机构将数据分为第一数据平面和第二数据平面,第一数据平面主要基于原有的金融IT平台,以交易为中心,支撑传统的金融数据处理与分析业务。第二数据平面则是以大数据平台为核心的信件数据平面,除妖处理金融数据分析业务,实现注入社交情绪指数、或有金融资产、金融脉络关系、在线征信、精准推荐、在线历史明细等业务。第一和第二平面的数据实时共享与交互,实现相互间业务支撑。该架构除了实现基于Hadoop的基础大数据分...转载 2018-03-22 08:30:28 · 1153 阅读 · 0 评论 -
大数据 ---(4)大数据驱动的金融业务创新(用户画像-数据架构-标签建模)
参考转载 2018-03-22 08:33:30 · 2281 阅读 · 0 评论 -
软件架构(6)---软件架构设计的过程
在一个以软件架构为中心的软件项目开发过程中,最常见的开发过程大致分五到六个阶段:概念化阶段、分析阶段、架构阶段、详细设计阶段(一般情况下特别是结合敏捷模式时都会被裁剪掉)、并行开发与测试阶段、验收与交付阶段。软件架构设计阶段依赖于分析阶段并以软件需求规约为主要输入。那么是不是软件架构工程师必须等到软件需求规约评审通过后才开始工作呢?前面讲到软件架构的策略时讲到全面认识需求与关键需求决定架构...转载 2018-04-08 21:01:33 · 1336 阅读 · 0 评论 -
软件架构(7)---软件架构设计-五视图方法论
1.每个人都可以做成为架构设计师不懂软件的和刚入行的人们一听到架构设计,都认为是非常的高大上课题,是一个遥不可及的领域,一般人是不能做的。听起来云里雾里的,第一印象除了来自微软,阿里这些NB的公司里面的人其余的都不能做出架构似的,这是一种先入为主的思想,因为大家都在强调架构师的重要性,他的薪资有多么的高,在整个社会对他的认定导致很多人对架构设计望而生畏。放正自己的心态其实架构设计并没有多么的复杂。...转载 2018-04-08 21:09:52 · 576 阅读 · 0 评论 -
软件架构(8)---软件架构之架构视图
软件架构设计运用RUP4+1视图方法进行设计。4+1架构视图模型是1995年Philippe kruchen在《IEEE software》上发表的题为《The 4+1 View Model of Architecture》文。主要包括的架构视图如下:场景视图:也叫用例视图,描述用户的业务场景,从用户的角度识别出业务需求,它是架构设计的起点和终点。逻辑视图:逻辑视图主要是为了便于理解系统的结构与组...转载 2018-04-08 21:14:27 · 1770 阅读 · 0 评论 -
软件架构(9)---UML 图
UML中各种视图并没有明显的概念区别,然后呢为了好讲解和说明,视图大体分为三类:结构分类,动态行为,模型管理。 结构分类主要描述了系统中的结构成员及其相互关系。类元包括类,用例,构件和节点。类元为研究系统的动态行为奠定了基础。类元视图包括静态视图,用例视图和实现视图。 动态行为描述了系统随时间变化的行为。行为用从静态视图中抽取出来的系统的瞬间值变化来描述。动态行为视图包括状态机视图,活...转载 2018-04-08 21:17:06 · 11010 阅读 · 0 评论 -
软件架构(9)---架构视图
架构视图是对于从某一视角或某一点上看到的系统所作的简化描述,描述中涵盖了系统的某一特定方面,而省略了与此方面无关的实体。由于角色和分工不同,软件架构是一个复杂的整体,软件架构工程师不可能在一个视角、一下子讲清楚,而利用多重软件架构视图的方法,可以一次只围绕少数概念和技术展开,分别着重研究软件架构的不同方面,使问题得以清晰公和简化,利于软件架构工程师完成架构设计工作。因此软件架构的每个视图分别...转载 2018-04-08 21:20:32 · 1301 阅读 · 0 评论 -
系统架构(1)---单机至亿级流量大型网站系统架构演进
阶段一、单机构建网站网站的初期,我们经常会在单机上跑我们所有的程序和软件。此时我们使用一个容器,如tomcat、jetty、jboos,然后直接使用JSP/servlet技术,或者使用一些开源的框架如maven+spring+struct+hibernate、maven+spring+springmvc+mybatis;最后再选择一个数据库管理系统来存储数据,如mysql、sqlserver、or...转载 2018-03-26 19:38:13 · 490 阅读 · 0 评论 -
软件架构(10)---java资深架构师分布式技术分享
1 大型网站的特点用户多,分布广泛大流量,高并发海量数据,服务高可用安全环境恶劣,易受网络攻击功能多,变更快,频繁发布**从小到大,渐进发展 **以用户为中心免费服务,付费体验2 大型网站架构模式**分层:**一般可分为:应用层,服务层,数据层,管理层,分析层;**分割:**一般按照业务/模块/功能特点进行划分,比如应用层分为首页,用户中心。**分布式:**将应用分开部署(比如多台物理机),通过远...转载 2018-04-13 08:51:04 · 450 阅读 · 0 评论 -
Redis 集群方案
Redis 集群方案根据一些测试整理出来的一份方案:1. Redis 性能对于redis 的一些简单测试,仅供参考: 测试环境:Redhat6.2 , Xeon E5520(4核)*2/8G,1000M网卡 Redis 版本:2.6.9 客户端机器使用redis-benchmark 简单GET、SET操作:1. 1单实例测试1. Value大小:10Byte...转载 2018-07-19 08:43:06 · 272 阅读 · 0 评论 -
微服务网关哪家强?一文看懂Zuul, Nginx, Spring Cloud, Linkerd性能差异
微服务网关哪家强?一文看懂Zuul, Nginx, Spring Cloud, Linkerd性能差异 导语:API Gateway是实现微服务重要的组件之一。面对诸多的开源API Gateway,如何进行选择也是架构师需要关注的焦点。本文作者对几个较大的开源API Gateway进行了压力测试,对于架构师来说,相信可以提供不少帮助。 过去一段时间,OpsGenie的员工数量和...转载 2018-08-14 09:26:34 · 21897 阅读 · 3 评论 -
Linux性能检测常用的10个基本命令
Linux性能检测常用的10个基本命令 本文的内容主要来自对Netflix的一篇技术博客( Linux Performance Analysis in 60,000 Milliseconds (https://medium.com/netflix-techblog/linux-performance-analysis-in-60-000-milliseconds-accc10403c55)...转载 2018-08-14 10:19:52 · 300 阅读 · 0 评论 -
服务器性能优化
服务器性能优化 导言:运维工作中除了要维持平台的稳定运行以外,还得对服务器的性能进行优化,让服务器发挥出良好的工作性能是稳定运行的基础。腾讯互娱DBA团队的汪伟(simon)在这一领域里整理出了一套性能优化的资料为大家在性能优化提供充足的方向。 概述什么是性能?性能最通俗的衡量指标就是“时间”,CPU的使用率指的是CPU用于计算的时间占比,磁盘使用率指的是磁盘操作的时间占...转载 2018-08-12 16:39:04 · 1601 阅读 · 0 评论 -
高可用、高性能? 接口设计的 16 个原则
高可用、高性能? 接口设计的 16 个原则 发起这个 Chat 只是一时兴起,想了一些点就写出来了,但自己一读,感觉一点干货都没有,真是汗颜。但还是也希望此拙文能带来一些你的思考,欢迎交流。接口设计需要考虑哪些方面 接口的命名。 请求参数。 支持的协议。 TPS、并发数、响应时长。 数据存储。DB选型、缓存选型。 是否需要依赖于第...转载 2018-08-13 23:01:53 · 740 阅读 · 0 评论 -
Java后端架构师技术图谱
Java后端架构师技术图谱 数据结构 队列 集合 链表、数组 字典、关联数组 栈 树 二叉树 完全二叉树 平衡二叉树 二叉查找树(BST) 红黑树 B,B+,B*树 LSM 树 BitSet 常用算法 排序、查找算法 选择排序 冒泡排序 插入排序 快速排序 归并排序 希尔排序 堆排序 计数排序 桶排序 基数排序 二分查找 Java 中...转载 2018-09-19 20:21:49 · 597 阅读 · 0 评论 -
大型网站高并发——服务器负载均衡设计
大型网站高并发——服务器负载均衡设计 方案一:直接路由方式(LVS-DR) 硬件配置:一台负载均衡器,两台或则三台TOMCAT服务器WEB服务器配置:Linux + tomcat+ WEB应用程序(JAVA) + 工具LVS技术介绍:它是通过修改数据包的目标地址,将数据包转发到实际服务器上,并且最重要的是,实际服务器的响应数据包将直接发送给用户端,不在经过调度...转载 2018-11-22 21:50:15 · 649 阅读 · 0 评论 -
架构应用之高可用、高复用
架构应用之高可用、高复用。 一、存储高可用存储的高可用,主要是通过数据冗余的方式来实现高可用,复杂性主要是在如何保持数据一致性,复制延迟和网络中断都会带来数据不一致。主要考虑的就是,数据如何复制,如何应对复制延迟,如何应对复制中断,各个节点的职责是什么。常见的存储架构:主从,主备,主主,集群,分区。1.主备,最常见最简单的一种存储方案。主机存储数据,通过复制通道将数...转载 2018-11-28 21:09:31 · 1420 阅读 · 0 评论 -
CAS实现SSO单点登录原理
CAS实现SSO单点登录原理 1. CAS 简介1.1. What is CAS ?CAS ( Central Authentication Service ) 是 Yale 大学发起的一个企业级的、开源的项目,旨在为 Web 应用系统提供一种可靠的单点登录解决方法(属于 Web SSO )。CAS 开始于 2001 年, 并在 2004 年 12 月正式成为 JA-SIG 的...转载 2019-01-14 13:48:45 · 471 阅读 · 0 评论 -
Rabbitmq---消息队列
Rabbitmq---消息队列一 . MQ:message queue 消息队列的作用: 1 通信解耦 2 高峰限流原理分析:一开始,认证系统是强耦合的,A系统传递认证系统消息接收计算结果的过程中 1 传给认证系统 2 认证系统计算 3 返回计算结果 4 读取A系统逻辑只要当前计算没有完成,对于认证系统来讲消耗线程资源.并存在强耦合现象...转载 2019-01-14 22:46:46 · 382 阅读 · 0 评论 -
9种高性能可用高并发的技术架构
9种高性能可用高并发的技术架构 1、分层 分层是企业应用系统中最常见的一种架构模式,将系统在横向维度上切分成几个部分,每个部分负责一部分相对简单并比较单一的职责,然后通过上层对下层的依赖和调度组成一个完整的系统。 在网站的分层架构中,常见的为3层,即应用层、服务层、数据层。应用层具体负责业务和视图的展示;服务层为应用层提供服务支持;数据库提供数据存储访问服务,如数据库、缓存、文...转载 2019-01-14 22:55:02 · 357 阅读 · 0 评论 -
外行人都能看懂的SpringCloud
一、前言只有光头才能变强认识我的朋友可能都知道我这阵子去实习啦,去的公司说是用SpringCloud(但我觉得使用的力度并不大啊~~)…所以,这篇主要来讲讲SpringCloud的一些基础的知识。(我就是现学现卖了,主要当做我学习SpringCloud的笔记吧!)当然了,我的水平是有限的,可能会有一些理解错的的概念/知识点,还请大家不吝在评论区指正啊~~SpringCloud ...转载 2019-01-14 23:14:35 · 371 阅读 · 1 评论 -
秒杀系统架构优化思路
秒杀系统架构优化思路 一、秒杀业务为什么难做1)im系统,例如qq或者微博,每个人都读自己的数据(好友列表、群列表、个人信息);2)微博系统,每个人读你关注的人的数据,一个人读多个人的数据;3)秒杀系统,库存只有一份,所有人会在集中的时间读和写这些数据,多个人读一个数据。 例如:小米手机每周二的秒杀,可能手机只有1万部,但瞬时进入的流量可能是几百几千万。又例如...转载 2019-02-14 21:39:03 · 258 阅读 · 0 评论 -
细聊分布式ID生成方法
细聊分布式ID生成方法 一、需求缘起几乎所有的业务系统,都有生成一个记录标识的需求,例如:(1)消息标识:message-id(2)订单标识:order-id(3)帖子标识:tiezi-id这个记录标识往往就是数据库中的唯一主键,数据库上会建立聚集索引(cluster index),即在物理存储上以这个字段排序。 这个记录标识上的查询,往往又有分页或者排序的业务...转载 2019-02-14 21:41:40 · 257 阅读 · 0 评论 -
互联网架构,如何进行容量设计?
互联网架构,如何进行容量设计? 一,需求缘起互联网公司,这样的场景是否似曾相识: 场景一:pm要做一个很大的运营活动,技术老大杀过来,问了两个问题:(1)机器能抗住么?(2)如果扛不住,需要加多少台机器? 场景二:系统设计阶段,技术老大杀过来,又问了两个问题:(1)数据库需要分库么?(2)如果需要分库,需要分几个库? 技术上来说,这些都是系统容量...转载 2019-02-14 21:43:53 · 290 阅读 · 0 评论 -
一张“神图”看懂单机/集群/热备/磁盘阵列(RAID)
一张“神图”看懂单机/集群/热备/磁盘阵列(RAID) 单机部署(stand-alone):只有一个饮水机提供服务,服务只部署一份集群部署(cluster):有多个饮水机同时提供服务,服务冗余部署,每个冗余的服务都对外提供服务,一个服务挂掉时依然可用热备部署(hot-swap):只有一个桶提供服务,另一个桶stand-by,在水用完时自动热替换,服务冗余部署,只有一个主服务对外...转载 2019-02-14 21:48:19 · 536 阅读 · 0 评论 -
线程数究竟设多少合理
线程数究竟设多少合理 一、需求缘起Web-Server通常有个配置,最大工作线程数,后端服务一般也有个配置,工作线程池的线程数量,这个线程数的配置不同的业务架构师有不同的经验值,有些业务设置为CPU核数的2倍,有些业务设置为CPU核数的8倍,有些业务设置为CPU核数的32倍。“工作线程数”的设置依据是什么,到底设置为多少能够最大化CPU性能,是本文要讨论的问题。 二、一些...转载 2019-02-14 22:26:51 · 496 阅读 · 0 评论 -
单点系统架构的可用性与性能优化
单点系统架构的可用性与性能优化 一、需求缘起明明架构要求高可用,为何系统中还会存在单点?回答:单点master的设计,会大大简化系统设计,何况有时候避免不了单点 在哪些场景中会存在单点?先来看一下一个典型互联网高可用架构。典型互联网高可用架构:(1)客户端层,这一层是浏览器或者APP,第一步先访问DNS-server,由域名拿到nginx的外网IP(2)负载均...转载 2019-02-14 22:47:16 · 348 阅读 · 0 评论 -
一分钟了解负载均衡的一切
一分钟了解负载均衡的一切 负载均衡(Load Balance)是分布式系统架构设计中必须考虑的因素之一,它通常是指,将请求/数据【均匀】分摊到多个操作单元上执行,负载均衡的关键在于【均匀】。 常见的负载均衡方案常见互联网分布式架构如上,分为客户端层、反向代理nginx层、站点层、服务层、数据层。可以看到,每一个下游都有多个上游调用,只需要做到,每一个上游都均匀访问每一个下游,...转载 2019-02-14 22:52:26 · 284 阅读 · 0 评论 -
如何实施异构服务器的负载均衡及过载保护?
如何实施异构服务器的负载均衡及过载保护? 零、需求缘起第一篇文章“一分钟了解负载均衡”和大家share了互联网架构中反向代理层、站点层、服务层、数据层的常用负载均衡方法。第二篇文章“lvs为何不能完全代替DNS轮询”和大家share了互联网接入层负载均衡需要解决的问题及架构演进。在这两篇文章中,都强调了“负载均衡是指,将请求/数据【均匀】分摊到多个操作单元上执行,负载均衡的关键...转载 2019-02-14 22:57:40 · 285 阅读 · 0 评论 -
lvs为何不能完全替代DNS轮询
lvs为何不能完全替代DNS轮询 1)nginx前端加入lvs和keepalived可以替代“DNS轮询”2)F5能搞定接入层高可用、扩展性、负载均衡,可以替代“DNS轮询”“DNS轮询”究竟是不是过时的技术,是不是可以被其他方案替代,接入层架构技术演进,是本文将要细致讨论的内容。 一、问题域nginx、lvs、keepalived、f5、DNS轮询,每每提到这些技术,...转载 2019-02-14 22:59:35 · 312 阅读 · 0 评论 -
究竟啥才是互联网架构“高并发”
究竟啥才是互联网架构“高并发” 一、什么是高并发高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够同时并行处理很多请求。 高并发相关常用的一些指标有响应时间(Response Time),吞吐量(Throughput),每秒查询率QPS(Query Per Second),并发用户数等。 响应...转载 2019-02-16 19:53:40 · 381 阅读 · 0 评论 -
究竟啥才是互联网架构“高可用”
究竟啥才是互联网架构“高可用” 一、什么是高可用高可用HA(High Availability)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间。假设系统一直能够提供服务,我们说系统的可用性是100%。如果系统每运行100个时间单位,会有1个时间单位无法提供服务,我们说系统的可用性是99%。很多公司的高可用目标是4个9,也就是99....转载 2019-02-16 19:55:02 · 398 阅读 · 0 评论 -
100亿数据1万属性数据架构设计
100亿数据1万属性数据架构设计 对于version + ext方案,还是有很多朋友质疑“线上不可能这么用”。本篇将讲述一下58同城最核心的数据“帖子”的架构实现技术细节,说明不仅不是“不可能这么用”,而是大数据,可变属性,高吞吐场景下的“常用手段”。 一、背景描述及业务介绍问:什么是数据库扩展的version + ext方案?使用ext来承载不同业务需求的个性化属性...转载 2019-02-16 20:19:07 · 431 阅读 · 0 评论 -
数据库软件架构设计些什么
数据库软件架构设计些什么 一、基本概念二、数据库架构设计思路(1)可用性(2)读性能(3)一致性(4)扩展性 一、基本概念概念一“单库” 概念二“分片”分片解决的是“数据量太大”的问题,也就是通常说的“水平切分”。一旦引入分片,势必有“数据路由”的概念,哪个数据访问哪个库。 路由规则通常有3种方法:(1)范围:range优...转载 2019-02-16 20:34:10 · 399 阅读 · 0 评论 -
缓存架构设计细节二三事
缓存架构设计细节二三事 本文主要讨论这么几个问题:(1)“缓存与数据库”需求缘起(2)“淘汰缓存”还是“更新缓存”(3)缓存和数据库的操作时序(4)缓存和数据库架构简析 一、需求缘起场景介绍缓存是一种提高系统读性能的常见技术,对于读多写少的应用场景,我们经常使用缓存来进行优化。例如对于用户的余额信息表account(uid, money),业务上的需求是...转载 2019-02-16 20:42:33 · 341 阅读 · 0 评论 -
细聊冗余表数据一致性(架构师之路)
细聊冗余表数据一致性(架构师之路) 本文主要讨论四个问题:(1)为什么会有冗余表的需求(2)如何实现冗余表(3)正反冗余表谁先执行(4)冗余表如何保证数据的一致性 一、需求缘起互联网很多业务场景的数据量很大,此时数据库架构要进行水平切分,水平切分会有一个patition key,通过patition key的查询能够直接定位到库,但是非patition key上...转载 2019-02-16 20:47:13 · 359 阅读 · 0 评论 -
架构师图谱
架构师图谱Java图谱微服务技能树网络安全架构师设计模式技能树Hadoop技能树大数据技能树云计算技能树iOS技能树Android技能树OpenResty技能树前端技能树嵌入式技能树移动测试技术程序开发语言Java集合框架...转载 2019-02-16 21:39:17 · 404 阅读 · 0 评论 -
缓存与数据库一致性保证
缓存与数据库一致性保证 本文主要讨论这么几个问题:(1)啥时候数据库和缓存中的数据会不一致(2)不一致优化思路(3)如何保证数据库与缓存的一致性 一、需求缘起上一篇《缓存架构设计细节二三事》(点击查看)引起了广泛的讨论,其中有一个结论:当数据发生变化时,“先淘汰缓存,再修改数据库”这个点是大家讨论的最多的。 上篇文章得出这个结论的依据是,由于操作缓存与操作数...转载 2019-02-17 09:57:26 · 609 阅读 · 0 评论