
架构技术
架构技术
不要停止思考-jcn
向往美好生活
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
理解SOA架构
SOA:面向服务架构面向服务是一种设计范式,用户创建解决方案的逻辑单元,这些逻辑单元可组合、可复用,以支持实现面向服务计算的特定战略目标和收益。一个服务 通常以独立的形式存在与操作系统进程中。各个服务之间 通过网络调用。面向服务架构范式:面向服务架构是面向服务解决方案的一种架构模型,具有独特特征,可支持实现面向服务原则,以及面向服务计算的战略目标。面向服务设计范式主要由以下设计原则...原创 2019-05-14 10:53:27 · 22101 阅读 · 0 评论 -
Docker容器部署技术 & 持续交付流水线
随着微服务的流行,容器技术也相应的被大家重视起来。容器技术主要解决了以下两个问题:一、环境一致性问题:例如java的jar/war包部署会依赖于环境的问题(操着系统的版本,jdk版本问题)。二、镜像部署问题:例如java,rubby,nodejs等等的发布系统是不一样的,每个环境都得很麻烦的部署一遍,采用docker镜像,就屏蔽了这类问题。下图是Docker容器部署的一个完...转载 2020-01-24 10:38:41 · 609 阅读 · 0 评论 -
微服务之熔断限流隔离降级
原文:https://juejin.im/post/5cde87886fb9a07efe2d8a7b我们知道微服务分布式依赖关系错综复杂,比方说前端的请求转化为后端调用的服务请求,一个前端请求会转为成很多个后端调用的服务请求,那么这个时候后台的服务出现不稳定或者延迟,如果没有好的限流熔断措施,可能会造成用户体验的下降,严重的时候会出现雪崩效应,把整个网站给搞垮,如果向阿里巴巴在双11等活动中,如...转载 2020-01-23 16:48:13 · 1371 阅读 · 0 评论 -
微服务调用链的原理和选型
原文:https://juejin.im/post/5cde874e6fb9a07f091b713c微服务是一个分布式非常复杂系统,如果没有一套调用链监控,如果服务之间依赖出现问题就很难进行调位下图是ali在鹰眼系统给出的微服务之“熵”目前个大主流互联网公司中,ali有非常出现的鹰眼系统,点评也有一套很出名的调用链监控系统CAT。调用链监控其实最早是google提出来的,2010年goog...转载 2020-01-23 16:46:03 · 1369 阅读 · 0 评论 -
微服务系统监控分层
原文:https://juejin.im/post/5cde87076fb9a07f050a36c8监控是微服务治理的一个重要环节,监控系统的完善程度直接影响到我们微服务质量的好坏,我们的微服务在线上运行的时候有没有一套完善的监控体系能去了解到它的健康情况,对整个系统的可靠性和稳定性是非常重要。一个比较完善的微服务监控体系需要涉及到哪些层次,如下图,大致可以划分为五个层次的监控最底层基础设...转载 2020-01-23 16:43:46 · 570 阅读 · 0 评论 -
微服务框架需要考虑的治理环节
原文:https://juejin.im/user/58a2aadb570c35005782847b/posts一个国家如果人多了那么就需要一个政府,这个政府需要对这个国家的人民进行管理和治理。在微服务的体系也是如此,如果在一个公司的微服务体系多了也需要有管理和治理的能力。下图把跟微服务治理相关的环境列举了出来,一个好的微服务需要关注哪些治理环境服务注册发现微服务当中有很多服务,几十...转载 2020-01-23 16:34:57 · 414 阅读 · 1 评论 -
微服务通讯方式PRC vs REST
原创 2020-01-23 16:30:19 · 687 阅读 · 0 评论 -
微服务之集中式配置中心的作用和原理
集中式配置中心原理与作用微服务配置中心,为什么要引入微服务的配置中心,它在微服务中起到一个什么作用,我们来想一想,如果我们在微服务中没有配置中心会是一个什么情况,其实很多公司在一开始都没有配置中心这个概念,开发人员把配置放在配置文件里面,没有一个固定的格式,还有一个如果这些格式在上线之后要去修改它,周期会比较的长,如果碰到一些故障响应很不灵活,涉及到要去改配置,重新发布,这个时间将会非常的长。另外...转载 2020-01-23 15:46:34 · 5023 阅读 · 0 评论 -
netflix 架构路由发现体系
杨波老师使用了netflix公司微服务路由发现体系作为案例,把服务的分层,服务的发现,服务的网关怎么去串联起来的。在整个体系内服务是怎么发现,在外部流量怎么通过网关路由到内部的微服务体系。把这个部分理解了,也就理解了整个netflix的路由发现体系,其实也并不复杂。在netflix的微服务架构中,有两个非常重要的支撑服务:netflix的大名鼎鼎的注册中心组件叫eureka,另一个netfl...转载 2020-01-23 15:39:14 · 383 阅读 · 0 评论 -
Zuul网关架构原理图
分享一篇Zuul源码解析的文章:https://www.fangzhipeng.com/springcloud/2017/08/11/sc-zuul-raw.html原创 2020-01-23 15:31:29 · 2023 阅读 · 0 评论 -
微服务API网关原理与实施
原文:https://juejin.im/post/5cde862d6fb9a07ef443d5b1为什么需要引入网关这样一个组件杨波老师打了个形象的比方,加入我们有一个公司,公司有一个大门,大门有一个门卫,每天众多的员工上下班都会经过这个门卫,这个门卫在日常会做一些安全的管控确认员工的身份,有人进来寻址的时候门卫会帮助做一些信息指导帮忙客人找到对应办事的部门,在公司举办活动的时候帮忙管理人流...转载 2020-01-23 14:59:57 · 738 阅读 · 1 评论 -
微服务ServiceMesh及三种服务发现机制
1. 前言今年,ServiceMesh(服务网格)概念在社区里头非常火,有人提出2018年是ServiceMesh年,还有人提出ServiceMesh是下一代的微服务架构基础。作为架构师,如果你现在还不了解ServiceMesh的话,是否感觉有点落伍了?那么到底什么是ServiceMesh?它诞生的背景是什么?它解决什么问题?企业是否适合引入ServiceMesh?根据近年在一线互...转载 2020-01-23 14:14:39 · 2859 阅读 · 1 评论 -
《杨波:微服务架构核心20讲》之微服务入门
一、什么是微服务架构1、由一组小的服务组成,例如将单体架构应用进行拆分成多块小的独立服务,服务有多小具体看业务进行划分。2、每个服务都是运行在独立的进程之中,以进程的方式去进行横向扩展。3、服务之间的通信方式是轻量级的,例如HTTP协议。4、基于业务能力来构建微服务。5、每块服务都是能独立部署,团队之间不用太多协调,能加快迭代速度。6、无集中式管理,每个团队管理的服务可以...原创 2020-01-22 22:19:39 · 1727 阅读 · 0 评论 -
微服务架构技术栈选型手册(转)
一、前言2014 年可以认为是微服务 1.0 的元年,当年有几个标志性事件,一是 Martin Fowler 在其博客上发表了”Microservices”一文,正式提出微服务架构风格;二是 Netflix 微服务架构经过多年大规模生产验证,最终抽象落地形成一整套开源的微服务基础组件,统称 NetflixOSS,Netflix 的成功经验开始被业界认可并推崇;三是 Pivotal 将 Netfl...转载 2020-01-22 14:36:33 · 568 阅读 · 0 评论 -
理解微服务架构
原文地址:微服务架构设计 微服务 软件架构是一个包含各种组织的系统组织,这些组件包括 Web服务器, 应用服务器, 数据库,存储, 通讯层), 它们彼此或和环境存在关系。系统架构的目标是解决利益相关者的关注点。 Conway’s law: Organizations which design syst...转载 2019-05-14 12:07:51 · 299 阅读 · 0 评论 -
分布式架构演进之路
原文地址:https://www.cnblogs.com/hafiz/p/9222973.html一、前言 随着社会的发展,技术的进步,以前的大型机架构很显然由于高成本、难维护等原因渐渐地变得不再那么主流了,替代它的就是当下最火的分布式架构,从大型机到分布式,经历了好几个阶段,我们弄明白各个阶段的架构,才能更好地理解和体会分布式架构的好处,那么本文我们就来聊聊分布式架构的演进过程,希望能给...转载 2019-05-14 11:07:46 · 273 阅读 · 0 评论 -
重构的艺术
何为重构:对软件内部结构的一种调整,目的是在不变软件可观察条件行为的前提下,提高其可理解性,降低其修改成本。为何重构:难以阅读的程序,难以修改、逻辑重复的程序,难以修改、添加新行为时需要修改已有代码的程序,难以修改、带重复条件逻辑的程序,难以修改。重构可以 1、改变软件设计 2、使软件更容易理解、阅读 3、帮助找到BUG,所有逻辑都只在唯一地点...原创 2019-05-15 20:46:24 · 688 阅读 · 0 评论 -
理解分布式服务架构
分布式服务架构诞生背景:在一个不断发展的大型应用中,新的业务需求和功能不断增加,技术也在不断演进,不同团队构建的功能子系统采用的技术架构五花八门,子系统之间的开发、部署和运维模式也存在较大差异。如果企业内部没有统一的服务框架进行技术层面的拉通,开发和运维效率都将受到很大制约。传统垂直架构改造的核心就是要对应用进行服务化,服务化改造用到核心技术就是分布式服务框架。分布式服务:分布式服...原创 2019-05-14 15:42:46 · 7616 阅读 · 0 评论 -
一文搞懂RPC原理
了解RPC:RPC(Remote Procedure Call Protocol)——远程过程调用协议:一般用于实现部署在不同机器上的系统之间的方法调用,使得程序能够像访问本地资源一样,通过网络传输去访问远端系统资源。描述:通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OS...原创 2019-05-13 22:00:48 · 1647 阅读 · 0 评论 -
应用服务器性能优化——异步操作
使用消息队列将调用异步化,可改善网站的扩展性,使用消息队列将调用异步化,可改善网站的扩展性,还可改善网站系统的性能。不使用消息队列:使用消息队列:在不使用消息队列的情况下,用户的请求数据直接写入数据库,在高并发的情况下,会对数据库造成巨大的压力, 同时也使得响应延迟加剧。在使用消息队列后,用户请求的数据发送给消息队列后立即返回,再由消息队列的消费者进程(通常情况下, 该进程通...原创 2019-04-04 11:34:26 · 553 阅读 · 0 评论 -
应用服务器性能优化——使用集群
在网站高并发访问的场景下, 使用负载均衡技术为一个应用构建一个由多台服务器组成的服务器集群,将并发访问请求分发到多台服务器上处理, 避免单一服务器因负载压力过大而响应缓慢, 使用户请求具有更好的响应延迟特性。使用负载均衡技术改善性能:三台Web 服务器共同处理来自用户浏览器的访问请求,这样每台Web 服务器需要处理的http 请求只有总并发请求数的三分之一, 根据性能测试曲线,使服务器...原创 2019-04-04 11:47:13 · 388 阅读 · 0 评论 -
详细解释什么是负载均衡
面对大量用户访问、高并发请求,海量数据,可以使用高性能的服务器、大型数据库,存储设备,高性能Web服务器,采用高效率的编程语言比如(Go,Scala)等,当单机容量达到极限时,我们需要考虑业务拆分和分布式部署,来解决大型网站访问量大,并发量高,海量数据的问题。从单机网站到分布式网站,很重要的区别是业务拆分和分布式部署,将应用拆分后,部署到不同的机器上,实现大规模分布式系统。分布式和业务拆分解决了...转载 2019-04-04 12:35:40 · 649 阅读 · 0 评论 -
应用服务器性能优化——代码优化-解决线程安全
网站的业务逻辑实现代码主要部署在应用服务器上, 需要处理复杂的并发事务。合理优化业务代码,可以很好地改善网站性能。不同编程语言的代码优化手段有很多, 这里我们概要地关注比较重要的几个方面。1 .多线程多用户并发访问是网站的基本需求, 大型网站的并发用户数会达到数万,单台服务器的并发用户也会达到数百。CG1 编程时代, 每个用户请求都会创建一个独立的系统进程去处理。由于线程比进程更轻量, 更...原创 2019-04-04 13:18:42 · 332 阅读 · 0 评论 -
存储性能优化
在网站应用中, 海量的数据读写对磁盘访问造成巨大压力,虽然可以通过Cache 解决一部分数据读压力, 但是很多时候,磁盘仍然是系统最严重的瓶颈。而且磁盘中存储的数据是网站最重要的资产, 磁盘的可用性和容错性也至关重要。机械硬盘vs. 固态硬盘机械硬盘是目前最常用的一种硬盘,通过马达驱动磁头臂,带动磁头到指定的磁盘位置访问数据, 由于每次访问数据都需要移动磁头臂,因此机械硬盘在数据连续访...原创 2019-04-05 19:23:24 · 349 阅读 · 0 评论 -
你的高可用网站具备如下东西了吗
网站可用性度量网站不可用时间(故障时间) =故障修复时间点一故障发现(报告)时间点网站年度可用性指标= ( 1 - 网站不可用时间/年度总时间) x 100 %网站可用性考核故障分=故障时间(分钟) x 故障权重高可用的网站架构高可用架构的主要手段是数据和服务的冗余备份及失效转移, 一旦某些服务器宕机, 就将服务切换到其他可用的服务器上, 如果磁盘损坏, 则从备份的磁盘读...原创 2019-04-05 22:26:55 · 348 阅读 · 0 评论 -
大型网站架构发展历程
1.大型网站软件系统的特点:高并发,大流量高可用:系统7*24小时不间断服务。海量数据:需要大量服务器用户广泛,网络情况复杂安全环境恶略:互联网的开放性导致网站容易受到攻击需求快速变更,发布频繁:和传统软件的版本发布频率不同,互联网产品为快速适应市场,满足用户需求,其产品发布率极高。渐进式发展:几乎所有的大型互联网网站都是从一个小型网站开始2.初试阶段的网站架构:小型网站应用服务...原创 2019-04-02 21:23:11 · 387 阅读 · 0 评论 -
网站架构模式
1.分层:分层是企业应用系统中最常见的一种架构模式, 将系统在横向维度上切分成几个部分,每个部分负责一部分相对比较单一的职责, 然后通过上层对下层的依赖和调用组成一个完整的系统。在大型网站架构中也采用分层结构,将网站软件系统分为应用层、服务层、数据层,便于分工合作开发和维护; 各层之间具有一定的独立性,只要维持调用接口不变,各层可以根据具体问题独立演化发展而不需要其他层必须做出相应调整。...原创 2019-04-03 09:25:17 · 307 阅读 · 0 评论 -
大型网站核心架构要素
什么是架构:最高层次的规划,难以改变的决定这些规划和决定奠定了事物未来发展的方向和最终的蓝图。考察这些架构要素(性能、可用性、伸缩性、扩展性、安全性)来衡量一个软件架构设计的优劣,判断其是否满足期望。1.性能:从用户浏览器到数据库,影响用户请求的所有环节都可以进行性能优化。在浏览器端,可以通过浏览器缓存、使用页面压缩、合理布局页面、减少Cookie 传输等手段改善性能。还可以使用CD...原创 2019-04-03 14:30:33 · 262 阅读 · 1 评论 -
不同人对性能有不一样的视角
网站性能是客观的指标, 可以具体体现到响应时间、吞吐量等技术指标, 同时也是主观的感受,而感受则是一种与具体参与者相关的微妙的东西, 用户的感受和工程师的感受不同,不同的用户感受也不同。性能测试是性能优化的前提和基础,也是性能优化结果的检查和度量标准。不同视角下的网站性能有不同的标准,也有不同的优化手段。1 .用户视角的网站性能:网站响应速度快还是慢。用户感受到的时间, 包括用户计算机...原创 2019-04-03 14:50:52 · 222 阅读 · 0 评论 -
性能测试指标及测试方法
一、性能测试指标1.响应时间:发出请求到最后请求响应的时间。测试程序通过模拟应用程序, 记录收到响应和发出请求之间的时间差来计算系统响应时间。但是记录及获取系统时间这个操作也需要花费一定的时间, 如果测试目标操作本身需要花费的时间极少, 比如几微秒,那么测试程序就无法测试得到系统的响应时间。实践中通常采用的办法是重复请求, 比如一个请求操作重复执行一万次, 测试一万次执行需要的总响应时...原创 2019-04-03 15:20:00 · 2175 阅读 · 0 评论 -
Web前端性能优化
一般说来Web 前端指网站业务逻辑之前的部分, 包括浏览器加载飞网站视图模型图片服务、CDN 服务等, 主要优化手段有优化浏览器访问、使用反向代理、CDN 等。一、浏览器访问优化1.减少http请求:HTTP 协议是无状态的应用层协议, 意味着每次H甘P 请求都需要建立通信链路、进行数据传输, 而在服务器端, 每个HTTP都需要启动独立的线程去处理。这些通信和服务的开销都很昂贵, 减...原创 2019-04-03 15:31:33 · 203 阅读 · 0 评论 -
CDN加速原理
CDN是什么CDN全称:Content Delivery Network或Content Ddistribute Network,即内容分发网络CDN设计思路避让:尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。检测:通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时监测网络流量和各节点的连接、负载状况...转载 2019-04-03 15:45:07 · 445 阅读 · 0 评论 -
应用服务器性能优化——分布式缓存
应用服务器就是处理网站业务的服务器,网站的业务代码都部署在这里,是网站开发最复杂,变化最多的地方, 优化手段主要有缓存、集群、异步等。一、分布式缓存回顾网站架构演化历程,当网站遇到性能瓶颈时, 第一个想到的解决方案就是使用缓存。在整个网站应用中, 缓存几乎无所不在, 既存在于浏览器,也存在于应用服务器和数据库服务器; 既可以对数据缓存,也可以对文件缓存,还可以对页面片段缓存。合理使用缓存...原创 2019-04-04 11:27:23 · 679 阅读 · 0 评论