架构

【架构-01】转载:微服务架构

…衆ロ難τιáo~ 提交于 2019-12-21 00:33:21
【架构-01】转载:微服务架构 纯洁的微笑公众号文章:【12张手绘图】我搞懂了微服务架构! 什么是微服务? 微服务架构是一种架构模式或者说是一种架构风格,它提倡将单一应用程序划分成一组小的服务,每个服务运行独立的自己的进程中,服务之间互相协调、互相配合,为用户提供最终价值。 服务之间采用轻量级的通信机制互相沟通(通常是基于 HTTP 的 RESTful API ) 。 每个服务都围绕着具体业务进行构建,并且能够被独立地部署到生产环境、类生产环境等。 另外,应尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言、工具对其进行构建,可以有一个非常轻量级的集中式管理来协调这些服务。 可以使用不同的语言来编写服务,也可以使用不同的数据存储。 根据马丁.福勒的描述,我总结了以下几点: ①小服务 小服务,没有特定的标准或者规范,但他在总体规范上一定是小的。 ②进程独立 每一组服务都是独立运行的,可能我这个服务运行在 Tomcat 容器,而另一个服务运行在 Jetty 上。可以通过进程方式,不断的横向扩展整个服务。 ③通信 过去的协议都是很重的,就像 ESB,就像 SOAP,轻通信,这意味着相比过去更智能更轻量的服务相互调用,就所谓 smart endpoints and dumb pipes。 这些 Endpoint 都是解耦的

IDC最新预测:容器市场将呈现爆发式增长

☆樱花仙子☆ 提交于 2019-12-20 19:44:52
据IDC最新发布的《软件定义计算软件市场半年跟踪报告》显示,2019年上半年中国软件定义计算软件市场的市场规模达到了3.4亿美元,同比增长36.3%。IDC预测,该市场在数据中心现代化、企业基础架构云化以及云原生应用普及化的趋势下,在未来五年其复合增长率仍将达到24.8%,到2023年市场规模将达到20.3亿美元。 容器市场将呈现爆发式增长 现阶段,在软件定义计算软件的三个子市场中,虚拟化软件仍然占据了最大份额。IDC预测,在未来五年,随着中国企业服务器虚拟化***率逐渐提高并且趋向于稳定,虚拟化软件市场的增长将逐渐放缓;而云系统软件和容器基础架构软件则维持高增长,逐渐成为助推软件定义计算软件增长的主要动力。特别是近两年被大家关注的容器市场,更是呈现爆发式增长。 伴随着云原生和混合云的热潮,容器是这两年最被市场所关注,发展速度最快的IT领域之一。容器发展之初,使用者大都集中在互联网企业,大多数传统企业还处于探索和评估阶段,或者借助开源版本尝试小范围部署容器。这两年随着技术方向更加的清晰化,容器相关开源社区积极的拓展生态和技术,企业数字化转型对于敏捷架构和创新的需求,以及在企业中出现了越来越多的最佳实践,容器的商业化市场初见雏形。 容器市场呈多元化,创新型厂商表现活跃 IDC预测容器基础架构软件市场2019的整体规模是7340万美元,其所带来的的容器相关市场(搭建容器

分布式锁选型背后的架构设计思维【附源码】

℡╲_俬逩灬. 提交于 2019-12-20 09:59:14
1. 分布式锁本质 提到分布式锁,有很多实现,比如Redis分布式锁、ZooKeeper分布式锁、etcd分布式锁等。但是选择哪个更适合你的项目?在《 基于CAP模型设计企业级真正高可用的分布式锁 》一文深入分析过分布式锁的哲学本质,以及如何结合场景来选择合适的分布式锁。分析业务场景,得到业务本质,就是架构思维。思维最终是需要落地的,接下去分享一下对分布式锁的思考和实践。 锁的本质是对共享资源的处理,表现很多,有以下作用: 业务协调 业务幂等(需配合业务代码实现) 共享资源竞争 在单体应用时代表现为同步块lock。随着需求和业务量的增长,系统走向了分布式、微服务时代,多服务和多实例下的应用无法使用本地锁进行控制资源共享。此时就出现了分布式锁,分布式场景下对分布式锁的要求如下: 强一致性 服务高可用、系统稳健 锁自动续约、自动释放 业务可重入 2. 分布式锁存储选型及场景 目前常见分布式锁的实现有Redis、ZooKeeper、etcd等,各维度指标对比如下: 图1 分布式锁存储模型对比 一致性算法(CAP):在分布式场景下,CAP理论是很多架构设计的指导思想。CAP思想下有两个分支CP与AP;CP模型不管什么情况下,都要求各服务之间的数据一致;AP模型高可用下的数据最终一致性。虽然锁原本要求强一致性CP模型,但AP模型分布式锁的使用取决于业务场景对脏数据的最大容忍度,比如SNS场景

量子化学计算(Gausssian)图形工作站硬件方案

我是研究僧i 提交于 2019-12-20 04:10:36
(一)量子化学计算如何选择硬件配置 由于分子的类型、体系和模拟算法,以及各种应用和精度要求,都有不同的计算特点,对计算机硬件(CPU、内存、硬盘、GPU)配置要求有很大的差异 ,那么如何选择好服务器/工作站的硬件配置,提高计算速度,缩短求解时间?主要看用量子化学计算软件的算法,及做什么求解,因为算法和精度决定了计算特点和求解规模,合理的硬件配置,大大发挥机器性能,缩短求解时间。 主要量子化学软件:Gaussian,GAMESS,MOLPRO,NWChem 1.4 量子化学计算硬件配置特点 (1)不同算法的并行计算的核数加速比有所差异,不完全是线性的 (2)最新CPU架构和提升频率,对缩短求解时间非常显著 (3)精度高求解计算量大,对CPU频率和核数、内存容量、硬盘io要求均有很高要求 数据来源:http://www.hpc.co.jp/chem/c_select_hardware.html (4)核数与内存比例为 1:4最为理想 (5)支持Tesla K40或K80 的GPU计算,显存需12GB以上,但算法有局限性,同时性价比不好 (6)组成集群的计算节点配置最好采用4核~10核超高频,效率最高 (二)基于量子化学计算,UltraLAB完美硬件配置推荐 2.1 UltraLAB图形工作站机型介绍 UltraLAB是西安坤隆计算机科技有限公司推出的定制图形工作站品牌,经过多年发展

JAVA网站高并发解决方案

我是研究僧i 提交于 2019-12-20 03:31:24
一个小型的网站,比如个人网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目录下,这样的网站对系统架构、性能的要求都很简单,随着互联网业务的不断丰富,网站相关的技术经过这些年的发展,已经细分到很细的方方面面,尤其对于大型网站来说,所采用的技术更是涉及面非常广,从硬件到软件、编程语言、数据库、WebServer、防火墙等各个领域都有了很高的要求,已经不是原来简单的html静态网站所能比拟的。 大型网站,比如门户网站。在面对大量用户访问、高并发请求方面,基本的解决方案集中在这样几个环节:使用高性能的服务器、高性能的数据库、高效率的编程语言、还有高性能的Web容器。但是除了这几个方面,还没法根本解决大型网站面临的高负载和高并发问题。 上面提供的几个解决思路在一定程度上也意味着更大的投入,并且这样的解决思路具备瓶颈,没有很好的扩展性,下面我从低成本、高性能和高扩张性的角度来说说我的一些经验。 1、HTML静态化 其实大家都知道,效率最高、消耗最小的就是纯静态化的html页面,所以我们尽可能使我们的网站上的页面采用静态页面来实现,这个最简单的方法其实也是最有效的方法。但是对于大量内容并且频繁更新的网站,我们无法全部手动去挨个实现,于是出现了我们常见的信息发布系统CMS,像我们常访问的各个门户站点的新闻频道,甚至他们的其他频道

从运维角度看中大型网站架构的演变之路

非 Y 不嫁゛ 提交于 2019-12-20 03:30:37
前言 网上有很多文章类似于我今天要分享的课程,有架构师写的,有运维写的,还有开发些的,偏重点都不同,今天我以咱们运维角度全面讲解。 一个成熟的网站架构并不是一开始设计就具备高可用、高伸缩、高性能等特性的,它是随着用户量和业务线不断增加,基础架构才逐渐健壮的。在发展初期,一般都是从0到1,不会一上来就整一些大而全的架构,也很少人这么任性。 说明 适用业务: 电商/门户/招聘网站 开发语言: PHP和JAVA Web服务: Nginx/Tomcat8 数据库: MySQL 操作系统: CentOS 物理服务器: Dell R730/R430 一、单台服务器部署 项目开发完成上线,用户访问量寥寥无几。 二、WEB与数据库独立部署 有一定用户访问量,单台服务器性能有些吃力,想提高并发能力,增加一台服务器,将HTTP请求与SQL操作负载分散不同服务器。 三、动静分离-初期 什么是动静分离?静态页面与动态页面分离部署。 四、数据库主从与查询缓存 RedisCache 使用Redis缓存数据库查询结果,将热数据放到内存中,提高查询速度,减少数据库请求。 MySQL主从 基于binlog异步复制。 HA MySQL:Keepalived 怎么保证Redis缓存时效性? a) 增加中间件,在主从同步延迟时间内,中间件将SQL读操作还路由到主。 b) 主从同步延迟时间后,再异步发起一次淘汰Cache。

CDN基本工作过程

故事扮演 提交于 2019-12-20 00:31:09
看了一些介绍CDN的文章,感觉这篇是讲的最清楚的。   使用CDN会极大地简化网站的系统维护工作量,网站维护人员只需将网站内容注入CDN的系统,通过CDN部署在各个物理位置的服务器进行全网分发,就可以实现跨运营商、跨地域的用户覆盖。由于CDN将内容推送到网络边缘,大量的用户访问被分散在网络边缘,不再构成网站出口、互联互通点的资源挤占,也不再需要跨越长距离IP路由了。   CDN是如何工作的呢?让我们先看看没有CDN服务时,一个网站是如何向用户提供服务的。   今天我们看到的网站系统基本上都是基于B/S架构的。B/S架构,即Browser-Server(浏览器 服务器)架构,是对传统C/S架构的一种变化或者改进架构。在这种架构下,用户只需使用通用浏览器,主要业务逻辑在服务器端实现。B/S架构,主要是利用了不断成熟的WWW浏览器技术,结合浏览器的多种Script语言(VBScript、JavaScript等)和ActiveX等技术,在通用浏览器上实现了C/S架构下需要复杂的软件才能实现的强大功能。   用户通过浏览器等方式访问网站的过程如图1-2所示。 ①用户在自己的浏览器中输入要访问的网站域名。 ②浏览器向本地DNS服务器请求对该域名的解析。 ③本地DNS服务器中如果缓存有这个域名的解析结果,则直接响应用户的解析请求。 ④本地DNS服务器中如果没有关于这个域名的解析结果的缓存

高并发架构以及处理的几种方式

流过昼夜 提交于 2019-12-19 23:34:41
1、HTML静态化 其实大家都知道,效率最高、消耗最小的就是纯静态化的html页面,所以我们尽可能使我们的网站上的页面采 用静态页面来实现,这个最简单的方法其实也是最有效的方法。但是对于大量内容并且频繁更新的网站,我们无法全部手动去挨个实现,于是出现了我们常见的信息 发布系统CMS,像我们常访问的各个门户站点的新闻频道,甚至他们的其他频道,都是通过信息发布系统来管理和实现的,信息发布系统可以实现最简单的信息录 入自动生成静态页面,还能具备频道管理、权限管理、自动抓取等功能,对于一个大型网站来说,拥有一套高效、可管理的CMS是必不可少的。 除了门户和信息发布类型的网站,对于交互性要求很高的社区类型网站来说,尽可能的静态化也是提高性能的必要手段,将社区内的帖子、文章进行实时的静态化,有更新的时候再重新静态化也是大量使用的策略,像Mop的大杂烩就是使用了这样的策略,网易社区等也是如此。 同 时,html静态化也是某些缓存策略使用的手段,对于系统中频繁使用 数据库 查询但是内容更新很小的应用,可以考虑使用html静态化来实现,比如论坛中论 坛的公用设置信息,这些信息目前的主流论坛都可以进行后台管理并且存储再数据库中,这些信息其实大量被前台程序调用,但是更新频率很小,可以考虑将这部分 内容进行后台更新的时候进行静态化,这样避免了大量的数据库访问请求。 2、图片服务器分离 大家知道