架构

单体架构 VS 微服务架构

陌路散爱 提交于 2020-02-04 18:08:16
一、单体架构 单体架构,是指将开发好的项目打成war包,然后发布到tomcat等容器中的应用。 优点: 开发简单,适用于小型应用 缺点: (1):复杂性高 一个百万行级别的单体应用为例,整个项目包含的模块非常多,模块的边界模糊,依赖关系不清晰,代码质量参差不齐,混乱地堆砌在一起……整个项目非常复杂。每次修改代码都心惊胆战,甚至添加一个简单的功能,或者修改一个BUG都会造成隐含的缺陷。 (2):技术债务 随着时间推移、需求变更和人员更迭,会逐渐形成应用程序的技术债务,并且越积越多。“不坏不修(Not broken,don’t fix)”,这在软件开发中非常常见,在单体应用中这种思想更甚。已使用的系统设计或代码难以修改,因为应用程序的其他模块可能会以意料之外的方式使用它。 (3):部署频率低 随着代码的增多,构建和部署的时间也会增加。而在单体应用中,每次功能的变更或缺陷的修复都会导致我们需要重新部署整个应用。全量部署的方式耗时长、影响的范围大、风险高,这使得单体应用项目上线部署的频率较低。而部署频率低又导致两次发布之间会有大量的功能变更和缺陷修复,出错概率比较高。 (4):扩展能力受限 单体应用只能作为一个整体进行扩展,无法结合业务模块的特点进行伸缩。例如,应用中有的模块是计算密集型的,它需要强劲的CPU;有的模块则是IO密集型的,需要更大的内存。由于这些模块部署在一起

微服务核心架构

眉间皱痕 提交于 2020-02-04 15:38:13
在公司学习了接近一个月。 一个月内,从0开始开始接触分布式微服务架构,给了我不小的收获。今天,我来从头到尾梳理一下,有关微服务架构的核心内容(全是干货)。 下文,你将看到业界主流微服务框架的核心原理,包括服务发现,网关,配置中心,监控等组件,功能和架构原理的简单介绍。感谢阅读! Hello,Microservices 什么是微服务 微服务Microservices之父,马丁.福勒,对微服务大概的概述如下: 就目前而言,对于微服务业界并没有一个统一的、标准的定义(While there is no precise definition of this architectural style ) 。但通在其常而言,微服务架构是一种架构模式或者说是一种架构风格,它提倡将单一应用程序划分成一组小的服务,每个服务运行独立的自己的进程中,服务之间互相协调、互相配合,为用户提供最终价值。服务之间采用轻量级的通信机制互相沟通(通常是基于 HTTP 的 RESTful API ) 。每个服务都围绕着具体业务进行构建,并且能够被独立地部署到生产环境、类生产环境等。另外,应尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言、工具对其进行构建,可以有一个非常轻量级的集中式管理来协调这些服务。可以使用不同的语言来编写服务,也可以使用不同的数据存储。 根据马丁

《2016ThoughtWorks技术雷达峰会----微服务架构》

不打扰是莪最后的温柔 提交于 2020-02-04 13:50:29
微服务架构 王键,ThoughtWorks, 首席咨询师    首先微服务架构的定义,thoughtWorks在2012年3月的技术雷达中这样定义:     “微服务架构是一种架构,它提倡将单一应用程序划分为一组小的服务,每个服务运行在其独立的进程中,服务间采用轻量级的通信机制互相沟通(通常是基于HTTP的RESTful API)。每个服务都围绕着具体的业务进行构建,并且能够被独立的部署到生产环境、类生产环境等。”   从这个定义中可以知道,如何甄别一个一个架构是不是微服务架构,可以从2点来判断。     一个是服务跑在单独的进程,另一个是可以独立部署。   那么Microservices有什么优点,以至于它近年来如此的热?   它有以下的四个优点:     1、弹性架构       什么叫弹性架构,可以设想以下场景。我们的系统是由一些小的服务构成,然后在通过容器这种非常灵活的基础设施,放入云的环境。假如现在双11.客户蜂拥而至,     这时候系统会自动监控到系统的响应非常的紧张,系统会弹性的开启成千上万的服务。在高峰过去之后,系统会自动把这些服务取消,从开始到结束完全没有人在干扰,     完全是自动化的。其实这种微服务架构结合Docker,结合云就为实现以上场景提供了一种可能。     2、组件化       传统的组件化是库和应用都运行在进程中

04 可扩展

為{幸葍}努か 提交于 2020-02-04 10:09:45
基本思想: 拆 面向流程拆分,面向服务拆分,面向功能拆分 面向流程拆分:分层架构 展示层: 负责页面设计 业务层: 负责业务逻辑 数据层: 负责数据访问 存储层: 负责数据存储 面向服务拆分: SOA, 微服务 注册服务,登录服务,信息管理服务,安全设置服务 面向功能拆分: 微内核架构 手机号注册,手机号登录,基本信息管理,修改密码,身份证注册,身份证登录,课程信息管理。。。。。。 分层架构 C/S, B/S, MVC 例如应用程序一般的分层: 从上到下 1层: 应用程序 (主界面,联系人) 2层:应用程序架构(活动管理器,窗口管理器) 3层:库 比如 SQLite 4层:linux 内核 (实际上在这之上还应该有 shell) 无论采用何种分层维度,分层架构设计最核心的一点就是需要保证各层之间的差异足够清晰, 边界足够明显,让人能够看懂。 SOA架构 (很像我们需要的) SOA: service Oriented Architecture. 面向服务架构。 主要的核心思想就是将那些 cross function 独立出来做成服务. 而不是每个app 都有相同的 function 而重复造轮子. 微服务 为何有了 SOA 还要提微服务? 微服务是 SOA 的实现方式, 微服务是更细粒度的SOA. 都是通过服务拆分来解决可扩展问题。 微服务的“坑” 服务拆分过细,过分强调"small

浅谈路由器软硬件架构

天大地大妈咪最大 提交于 2020-02-04 06:31:02
我们可以把路由器比作网络世界的骨架,我们之所以能够在网络世界里畅游,很大程度上是得益于这个铁盒子。 路由器硬件架构 随着专用多核网络处理器、专用转发芯片的出现,使得现代路由器摆脱了以往纯软件转发的局限,向着高吞吐率、硬件快速转发等方向发展。高端的路由器设计成多板分布式+冗余备份的架构,使转发能力成倍的增强,同时还大大提高了业务的稳定性。 下图是一幅典型的路由器硬件架构图: 目前高端路由器大多采用专门的多核网络处理器作为CPU,如Cavium公司研发的Octeon系列处理器,主流的6000系列16~32个核,即将上市的7000系列多达64个核,并行处理能力大大加强。并且这类专用网络处理器在硬件上都对网络报文的解析、保序、转发等方面提供了专门的协处理器进行支持,优化并提高了系统的转发能力,也为软件研发者省去了不少麻烦。 Broadcom、Marvell等公司提供专门的转发芯片,通过VLAN、硬件路由等功能,在硬件上直接支持了对报文的二三层的线速转发,并且多片交换芯片之间可连接,最终形成一个大的交换矩阵网络。 CPU和交换芯片之间的数据通道可由10G高速接口相连,实现海量数据的传输;管理通道通过PCIe总线相连,传输控制信号。 64位的CPU有着广阔的寻址空间,可以支持很大的DRAM内存。 CF卡或SD卡用来存储系统程序,可以很方便的对系统程序进行升级。 BOOT

5G SA and NSA

匆匆过客 提交于 2020-02-04 00:19:05
简介 独立组网模式(SA) SA指的是新建5G网络,包括新基站、回程链路以及核心网。SA引入了全新网元与接口的同时,还将大规模采用网络虚拟化、软件定义网络等新技术,并与5GNR结合,同时其协议开发、网络规划部署及互通互操作所面临的技术挑战将超越3G和4G系统。 非独立组网模式(NSA) NSA非独立组网指的是使用现有的4G基础设施,进行5G网络的部署。基于NSA架构的5G载波仅承载用户数据,其 控制信令仍通过4G网络传输 。 可以说,SA是纯5G,接入、吞吐量、延时能达到最佳性能。NSA是借用4G设备的演进版5G。事实上,3GPP对5G的架构标准化的过程中,在最早输出的是5G NSA(非独立组网),5G无法单独工作,仅仅是作为4G的增强,分担4G的流量。而5G SA(独立组网)的标准化足足比非独立组网慢了半年之久。 为什么会有NSA? 答:穷,SA太烧钱。LTE才建好,你跟我说扔了,玩5G?不好意思,玩不起! 5G组网架构 对于5G的网络架构,在3GPP TSG-RAN 第 72 次全体大会上,提出了8个选项,如下图所示: 这8个选项分为独立组网和非独立组网两组。其中选项1,2,5,6是独立组网,选项3,4,7,8是非独立组网。非独立组网的选项3,4,7还有不同的子选项。 在这些选项中,选项1早已在4G结构中实现,选项6和选项8仅是理论存在的部署场景,不具有实际部署价值

云上跑容器,如何降低存储成本

ε祈祈猫儿з 提交于 2020-02-03 23:17:04
PX-Autopilot: 自动化的存储容量管理,节省一半的云存储成本 不少客户都在使用K8S来管理容器,并且通过Portworx来管理容器存储。虽然云原生的方式让我们获得了更大的自动化和灵活度,许多客户在容器下层的基础架构层的扩展性方面,仍然有一定的局限。K8S和Portworx能够自动化部署容器应用,但是这些应用所基于的基础架构还无法通过自动化的方式进行扩展。DevOps团队还经常被要求去做基础架构投资成本收益的财务分析,并增加财务管理手段来降低成本和让成本更具备可预测性。当基础架构被转移到公有云后,成本管理就成为更加重要的方面,不少用户在公有云上的成本甚至高于他们原有的本地部署架构的成本。Portworx新发布的PX-Autopilot能够对存储基础架构进行更加有效的运营管理,并且降低一半的存储成本。 PX-Autopilot: 自动化的存储容量管理 PX-Autopilot让客户能够自动化的扩展存储, 不仅是扩展某个容器化应用所属的存储(通过PVC的扩容) ,还可以对基础架构层的存储池进行扩容。Portworx2.3.1最新版本中,已经包含了PX-Autopilot。通过PX-Autopilot,客户能够更加方便的构建企业级自服务K8S应用和数据管理能力, 不论是在本地部署,私有云,还是公有云中 。 我们的目的是帮助客户: 大幅简化为容器应用做存储扩容的操作

网络编程简介——

谁说我不能喝 提交于 2020-02-03 15:07:02
软件开发架构 c/s架构(client/server) c:客户端 s:服务端 b/s架构(browers/server) b:浏览器 c:服务器 b/s架构本质就是c/s架构 手机端在未来b/s架构会变得更火 服务端就是24小时,不间断提供服务 客户端随时随地都能找服务端,体验服务 OSI协议 七层协议: 应用层 表示层 会话层 传输层 网络层 数据链路层 物理连接层 可以将7层简化成5层 应用层 传输层 网络层 数据链路层 物理连接层 我们学习七层协议要从最底层学起 1.物理连接层 基于电信号010101二进制数据传输 2.数据链路层 1.规定电信号分组方式 2.规定任何一台接入互联网的计算机都必须有一块网卡 每一块网卡都是独一无二的,上面刻有12位16进制数 前六位是厂家编号,后六位是流水线编号 这12位数就被称之为mac地址 以上两点被称之为 '以太网协议' 交换机 基于以太网协议通信 不能跨局域网通信 互联网是n多个局域网连接而成的 3.网络层 IP协议 规定了每台连入互联网的计算机都必须有一个IP地址,IP地址也是独一无二的 IP地址特点:点分十进制 IP地址最小:0.0.0.0 IP地址最大:255.255.255.255 IP地址目前的两大版本:IPV4 IPV6(由于IPV4已经不够表示目前存在的计算机了 所以推出了IPV6版本) IP地址是动态分布的 4.传输层

网站建设(三)开启自己架构

纵然是瞬间 提交于 2020-02-03 12:14:11
我真是看不懂。。。自己写一个架构吧。。。 大致逻辑呢,就是返回index.php嘛,在这个index中,include了APP, 简单的include就是把文件粘贴到index里,如果文件里还有include,那么就预先执行那个粘贴, 因此,资源应该放到index.php同目录下才行。这样才能读取。 图片,html,css,全部都是资源算,因为返回的是一个网页,网页仍然有读取文件的功能, 我打算是control的一个echo嘛,但是control是在system文件夹下。 system文件夹里专门放php代码的,resource里面什么都放,就是这样。 计划呢,就是,emmm,首先主页是制造出来了 然后是用户系统,用户可以注册与登录 然后就是用户可以建立项目,并且有主页可以展示 然后就是项目添加到主页上 然后就是用户可以赞它 然后就是用户可以根据项目发表文章 然后就是控制台的搭建 然后海了去了 来源: CSDN 作者: 才大难为用 链接: https://blog.csdn.net/HeroIsUseless/article/details/104150801

网络编程

你离开我真会死。 提交于 2020-02-03 09:51:08
网络编程 软件开发架构 c/s架构(client/server) c:客户端 s:服务端 b/s架构(browers/server) b:浏览器 c:服务器 b/s架构本质就是c/s架构 手机端在未来b/s架构会变得更火 服务端就是24小时,不间断提供服务 客户端随时随地都能找服务端,体验服务 OSI协议 七层协议: 应用层 表示层 会话层 传输层 网络层 数据链路层 物理连接层 可以将7层简化成5层 应用层 传输层 网络层 数据链路层 物理连接层 我们学习七层协议要从最底层学起 1.物理连接层 基于电信号010101二进制数据传输 2.数据链路层 1.规定电信号分组方式 2.规定任何一台接入互联网的计算机都必须有一块网卡 每一块网卡都是独一无二的,上面刻有12位16进制数 前六位是厂家编号,后六位是流水线编号 这12位数就被称之为mac地址 以上两点被称之为 '以太网协议' 交换机 基于以太网协议通信 不能跨局域网通信 互联网是n多个局域网连接而成的 3.网络层 IP协议 规定了每台连入互联网的计算机都必须有一个IP地址,IP地址也是独一无二的 IP地址特点:点分十进制 IP地址最小:0.0.0.0 IP地址最大:255.255.255.255 IP地址目前的两大版本:IPV4 IPV6(由于IPV4已经不够表示目前存在的计算机了 所以推出了IPV6版本) IP地址是动态分布的