2021-01-18 19:06发布
单块架构:MVC
视图、控制器、模型分离的程序架构设计我们都称之为MVC架构。
优点:解决代码间调用复制、程序开发人员职责不清的问题,接口与实现分离,降低各层之间的依赖。开发、测试、部署方便。
缺点:项目运营维护到一定程度上,代码量越来越庞大,功能越来越复制,导致新人培养成本增高 ,可维护性、灵活性降低;代码交付周期长。
单块结构和微服务的本质区分就是,一个是在逻辑上区分,一个是在物理上区分。
单块架构其实还是运行在一个进程中,只是它把代码的实现、业务逻辑的实现做了区分,不同的职责实现不同的功能,其本质还是一个物理模块。就好比房子,单块架构是单个房子,只是它把里面的空间分为客厅、厨房、卧室等等,不同的空间可以做不同的事,客厅接待客人,厨房做饭,卧室休息等等。 里面住的人(功能)一直会增加,为了应对这些增加过来的需求,要不停的扩展空间(不停开发迭代、运营维护),发展到一定程度就成为一个庞大的房子了(项目)。运营维护难度也会随之增加
微服务架构就是为了解决单块架构发展到一定程度时候,人员更迭、开发迭代、运营维护遇到的问题。微服务也是建房子,然后它把房子做一个区分整理,每一个功能作为一个房子来建:比如它单独会建一个客厅,只要是有会客需求的时候,你就可以直接去客厅来。 这样做的话,不停的增加需求,就不停的单独建房子,很多房子最后组建成为一个“小区”,再在小区里面修修路(模块之间用接口相连,轻量级通信)、小区关键位置安装一下摄像头(通信之间做日志记录)、保安来做巡视检查(集体安全防护措施)等等。一个模块清晰、通信自由的微服务项目就随之建立了。
微服务架构的主要作用是将功能分解到离散的各个服务当中,从而降低系统的耦合性,并提供更加灵活的服务支持。
概念:把一个大型的单个应用程序和服务拆分为数个甚至数十个的支持微服务,它可扩展单个组件而不是整个的应用程序堆栈,从而满足服务等级协议。
定义:围绕业务领域组件来创建应用,这些应用可独立地进行开发、管理和迭代。在分散的组件中使用云架构和平台式部署、管理和服务功能,使产品交付变得更加简单
目前流行的:
第一套微服务架构解决方案:Spring Boot + Spring Cloud Netflix第二套微服务架构解决方案:Spring Boot + Dubbo + Zookeeper第三套微服务架构解决方案:Spring Boot + Spring Cloud Alibaba
第一套微服务架构解决方案:Spring Boot + Spring Cloud Netflix
第二套微服务架构解决方案:Spring Boot + Dubbo + Zookeeper第三套微服务架构解决方案:Spring Boot + Spring Cloud Alibaba
先看一下微服务的概念,再百度一下qcon上业界微服务实践例子,有个大体认识。自己再写点demo出来,然后再选个你感兴趣的具体关注点吧
在业务运行初期,如果你是单业务系统架构,如果业务量不大且复杂性不高,如果你追求快速响应、开拓服务、节省成本、提高效率,那么你可能真的用不着微服务。比如你如果只是要用CMS做一套公司网站,那真的可能不用微服务这把牛刀。当随着你的业务进入扩展期,你的系统架构开始走向面向服务架构,业务不断扩大,业务系统复杂性不断提高,但效率在不断下降,那么这个时候你可以开始考虑业务拆分、使用微服务了
看军事新闻的同学应该都知道,一艘航空母舰作战能力虽然很强,但是弱点太明显,就是防御能力太差,单艘的航空母舰很少单独行动,通常航空母舰战斗群才是主要军事力量,你可以把单艘航母理解为的单体应用(防御差,机动性不好),把航母战斗群(调度复杂,维护...
初始化过程细节:首先进行的就是将服务装载到容器中,然后准备注册服务。和Spring中启动过程类似,Spring启动时,将bean装载进容器中的时候,首先要解析bean。所以dubbo也是先读配置文件解析服务。解析服务:基于dubbo.jar内的META-INF/spring.handlers配置,...
分布式事务 指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上 。换成比较容易理解的话,就是多个事务之间再保持事务的特性,也就是多个事务之间保证结果的一致性。分布式事务解决方案1、基于XA协议的两阶...
1. 接口调用存在的问题 现如今我们的系统大多拆分为分布式SOA,或者微服务,一套系统中包含了多个子系统服务,而一个子系统服务往往会去调用另一个服务,而服务调用服务无非就是使用RPC通信或者restful,既然是通信,那么就有可能在服务器处理...
前提是另外一个bean在bean容器中能找到
1.View——表示层1.1准备数据实现方式:struts,servlet等1.2显示数据实现方式:extjs,jsp,jquery,html等2.Service——业务层实现方式:drools等3.Dao——数据访问层实现方式:hibernate、mybatis等...
SpringCloud Netflix和SpringCloud Alibaba的区别如下图:
哨兵(Sentinel)是 redis 的高可用性解决方案,前面我们讲的主从复制它是高可用的基础,需要人工介入才能完成故障转移,哨兵可以解决这个问题,在主从复制情况下,当主节点发生故障时,哨兵可以自动的发现故障并且完成故障转移,实现真正的 redis 高可用。在...
redis为什么会有高并发问题redis的出身决定Redis是一种单线程机制的nosql数据库,基于key-value,数据可持久化落盘。由于单线程所以redis本身并没有锁的概念,多个客户端连接并不存在竞争关系,但是利用jedis等客户端对redis进行并发访问时会出现问题。发生连...
用dubbo是想利用分布式集群的形式来提高服务的并发量,适用与大型项目.如果不用它还想提高并发另一个解决方案是springCloud+微服务.适合大中小型项目.当前对并发要求的项目还是很多的,所以dubbo用的也相对较多.建议如果是初学者可以跳过dubbo直接学习第二个方...
不需要。一般是service分出去。然后其它放在web层即一个jar为service业务处理,一个为web层war包
在回答这个问题之前,我们先回答一下什么是锁。普通的锁,即在单机多线程环境下,当多个线程需要访问同一个变量或代码片段时,被访问的变量或代码片段叫做临界区域,我们需要控制线程一个一个的顺序执行,否则会出现并发问题。如何控制呢?就是设置一个各个线...
springmvc位于表现层,主要与浏览器进行交互(接收和响应浏览器请求)。springmvc采用MVC设计模型,模型由model、view和controller组成。 model(模型):对应JavaBean view(视图):对应JSP controller(控制器)...
最多设置5个标签!
单块架构:MVC
视图、控制器、模型分离的程序架构设计我们都称之为MVC架构。
优点:解决代码间调用复制、程序开发人员职责不清的问题,接口与实现分离,降低各层之间的依赖。开发、测试、部署方便。
缺点:项目运营维护到一定程度上,代码量越来越庞大,功能越来越复制,导致新人培养成本增高 ,可维护性、灵活性降低;代码交付周期长。
单块结构和微服务的本质区分就是,一个是在逻辑上区分,一个是在物理上区分。
单块架构其实还是运行在一个进程中,只是它把代码的实现、业务逻辑的实现做了区分,不同的职责实现不同的功能,其本质还是一个物理模块。就好比房子,单块架构是单个房子,只是它把里面的空间分为客厅、厨房、卧室等等,不同的空间可以做不同的事,客厅接待客人,厨房做饭,卧室休息等等。 里面住的人(功能)一直会增加,为了应对这些增加过来的需求,要不停的扩展空间(不停开发迭代、运营维护),发展到一定程度就成为一个庞大的房子了(项目)。运营维护难度也会随之增加
微服务架构就是为了解决单块架构发展到一定程度时候,人员更迭、开发迭代、运营维护遇到的问题。微服务也是建房子,然后它把房子做一个区分整理,每一个功能作为一个房子来建:比如它单独会建一个客厅,只要是有会客需求的时候,你就可以直接去客厅来。 这样做的话,不停的增加需求,就不停的单独建房子,很多房子最后组建成为一个“小区”,再在小区里面修修路(模块之间用接口相连,轻量级通信)、小区关键位置安装一下摄像头(通信之间做日志记录)、保安来做巡视检查(集体安全防护措施)等等。一个模块清晰、通信自由的微服务项目就随之建立了。
微服务架构的主要作用是将功能分解到离散的各个服务当中,从而降低系统的耦合性,并提供更加灵活的服务支持。
概念:把一个大型的单个应用程序和服务拆分为数个甚至数十个的支持微服务,它可扩展单个组件而不是整个的应用程序堆栈,从而满足服务等级协议。
定义:围绕业务领域组件来创建应用,这些应用可独立地进行开发、管理和迭代。在分散的组件中使用云架构和平台式部署、管理和服务功能,使产品交付变得更加简单
目前流行的:
第一套微服务架构解决方案:Spring Boot + Spring Cloud Netflix
第二套微服务架构解决方案:Spring Boot + Dubbo + Zookeeper
第三套微服务架构解决方案:Spring Boot + Spring Cloud Alibaba
概念:把一个大型的单个应用程序和服务拆分为数个甚至数十个的支持微服务,它可扩展单个组件而不是整个的应用程序堆栈,从而满足服务等级协议。
定义:围绕业务领域组件来创建应用,这些应用可独立地进行开发、管理和迭代。在分散的组件中使用云架构和平台式部署、管理和服务功能,使产品交付变得更加简单
目前流行的:
第一套微服务架构解决方案:Spring Boot + Spring Cloud Netflix
第二套微服务架构解决方案:Spring Boot + Dubbo + Zookeeper
第三套微服务架构解决方案:Spring Boot + Spring Cloud Alibaba
先看一下微服务的概念,再百度一下qcon上业界微服务实践例子,有个大体认识。自己再写点demo出来,然后再选个你感兴趣的具体关注点吧
第一套微服务架构解决方案:Spring Boot + Spring Cloud Netflix
第二套微服务架构解决方案:Spring Boot + Dubbo + Zookeeper
第三套微服务架构解决方案:Spring Boot + Spring Cloud Alibaba
微服务架构的主要作用是将功能分解到离散的各个服务当中,从而降低系统的耦合性,并提供更加灵活的服务支持。
概念:把一个大型的单个应用程序和服务拆分为数个甚至数十个的支持微服务,它可扩展单个组件而不是整个的应用程序堆栈,从而满足服务等级协议。
定义:围绕业务领域组件来创建应用,这些应用可独立地进行开发、管理和迭代。在分散的组件中使用云架构和平台式部署、管理和服务功能,使产品交付变得更加简单
目前流行的:
第一套微服务架构解决方案:Spring Boot + Spring Cloud Netflix
第二套微服务架构解决方案:Spring Boot + Dubbo + Zookeeper
第三套微服务架构解决方案:Spring Boot + Spring Cloud Alibaba
在业务运行初期,如果你是单业务系统架构,如果业务量不大且复杂性不高,如果你追求快速响应、开拓服务、节省成本、提高效率,那么你可能真的用不着微服务。比如你如果只是要用CMS做一套公司网站,那真的可能不用微服务这把牛刀。当随着你的业务进入扩展期,你的系统架构开始走向面向服务架构,业务不断扩大,业务系统复杂性不断提高,但效率在不断下降,那么这个时候你可以开始考虑业务拆分、使用微服务了
相关问题推荐
看军事新闻的同学应该都知道,一艘航空母舰作战能力虽然很强,但是弱点太明显,就是防御能力太差,单艘的航空母舰很少单独行动,通常航空母舰战斗群才是主要军事力量,你可以把单艘航母理解为的单体应用(防御差,机动性不好),把航母战斗群(调度复杂,维护...
初始化过程细节:首先进行的就是将服务装载到容器中,然后准备注册服务。和Spring中启动过程类似,Spring启动时,将bean装载进容器中的时候,首先要解析bean。所以dubbo也是先读配置文件解析服务。解析服务:基于dubbo.jar内的META-INF/spring.handlers配置,...
分布式事务 指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上 。换成比较容易理解的话,就是多个事务之间再保持事务的特性,也就是多个事务之间保证结果的一致性。分布式事务解决方案1、基于XA协议的两阶...
1. 接口调用存在的问题 现如今我们的系统大多拆分为分布式SOA,或者微服务,一套系统中包含了多个子系统服务,而一个子系统服务往往会去调用另一个服务,而服务调用服务无非就是使用RPC通信或者restful,既然是通信,那么就有可能在服务器处理...
前提是另外一个bean在bean容器中能找到
1.View——表示层1.1准备数据实现方式:struts,servlet等1.2显示数据实现方式:extjs,jsp,jquery,html等2.Service——业务层实现方式:drools等3.Dao——数据访问层实现方式:hibernate、mybatis等...
SpringCloud Netflix和SpringCloud Alibaba的区别如下图:
哨兵(Sentinel)是 redis 的高可用性解决方案,前面我们讲的主从复制它是高可用的基础,需要人工介入才能完成故障转移,哨兵可以解决这个问题,在主从复制情况下,当主节点发生故障时,哨兵可以自动的发现故障并且完成故障转移,实现真正的 redis 高可用。在...
redis为什么会有高并发问题redis的出身决定Redis是一种单线程机制的nosql数据库,基于key-value,数据可持久化落盘。由于单线程所以redis本身并没有锁的概念,多个客户端连接并不存在竞争关系,但是利用jedis等客户端对redis进行并发访问时会出现问题。发生连...
用dubbo是想利用分布式集群的形式来提高服务的并发量,适用与大型项目.如果不用它还想提高并发另一个解决方案是springCloud+微服务.适合大中小型项目.当前对并发要求的项目还是很多的,所以dubbo用的也相对较多.建议如果是初学者可以跳过dubbo直接学习第二个方...
不需要。一般是service分出去。然后其它放在web层即一个jar为service业务处理,一个为web层war包
在回答这个问题之前,我们先回答一下什么是锁。普通的锁,即在单机多线程环境下,当多个线程需要访问同一个变量或代码片段时,被访问的变量或代码片段叫做临界区域,我们需要控制线程一个一个的顺序执行,否则会出现并发问题。如何控制呢?就是设置一个各个线...
springmvc位于表现层,主要与浏览器进行交互(接收和响应浏览器请求)。springmvc采用MVC设计模型,模型由model、view和controller组成。 model(模型):对应JavaBean view(视图):对应JSP controller(控制器)...