儿童网站设计,优秀网站的必备要素,北京 网站开发 排行,全国工商信息公示系统架构
一 单体架构
1 概念
将项⽬所有模块#xff08;功能#xff09;打成jar或者war#xff0c;然后部署⼀个进程。
互联网早期#xff0c;一般的网站应用流量较小#xff0c;只需一个应用#xff0c;将所有功能代码都部署在一起就可以#xff0c;这样可以减少开发、…架构
一 单体架构
1 概念
将项⽬所有模块功能打成jar或者war然后部署⼀个进程。
互联网早期一般的网站应用流量较小只需一个应用将所有功能代码都部署在一起就可以这样可以减少开发、部署和维护的成本。 比如说一个电商系统里面会包含很多用户管理商品管理订单管理物流管理等等很多模块我们会把它们做成一个web项目然后部署到一台tomcat服务器上。
2 优点
1部署简单: 由于是完整的结构体可以直接部署在⼀个服务器上即可。
2技术单⼀: 项⽬不需要复杂的技术栈往往⼀套熟悉的技术栈就可以完成开发。
3⽤⼈成本低: 单个程序员可以完成业务接⼝到数据库的整个流程。
3 缺点
1系统启动慢 ⼀个进程包含了所有的业务逻辑涉及到的启动模块过多导致系统的启动重启时间周期过⻓;
2系统错误隔离性差、可⽤性差任何⼀个模块的错误均可能造成整个系统的宕机;
3可伸缩性差系统的扩容只能只对这个应⽤进⾏扩容⽆法结合业务模块的特点进⾏伸缩。
4线上问题修复周期⻓任何⼀个线上问题修复需要对整个应⽤系统进⾏全⾯升级。
5跨语⾔程度差
6不利于安全管理所有开发⼈员都拥有全量代码
二 微服务架构
1 概念
微服务是一种架构风格一个大型复杂软件应用由一个或多个微服务组成。系统中的各个微服务可被独立部署各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务。在所有情况下每个任务代表着一个小的业务能力。
2 优势
1.易于开发和维护
⼀个微服务只关注⼀个特定的业务功能所以它的业务清晰、代码量较少。开发和维护单个微服务相对⽐较简单整个应⽤是由若⼲个微服务构建⽽成所以整个应⽤也会维持在可控 状态
2.单个微服务启动较快
单个微服务代码量较少所以启动会⽐较快
3.局部修改容易部署
单体应⽤只要有修改就要重新部署整个应⽤微服务解决了这样的问题。⼀般来说对某 个微服务进⾏修改只需要重新部署这个服务即可
4.技术栈不受限
在微服务中我们可以结合项⽬业务及团队的特点合理地选择技术栈
5.按需伸缩
3 缺点
1、服务太多导致服务间的依赖错综复杂运维难度⼤
2、微服务放⼤了分布式架构的系列问题 分布式事务seata、 分布式锁怎么处理redisson 服务注册与发现微服务、 依赖服务不稳定sentinel导致服务雪崩怎么办
3 运维复杂度陡增部署数量多、监控进程多导致整体运维复杂度提升。
三 Cloud
1 SpringCloud与微服务关系
Springcloud为微服务思想提供了完美的解决⽅案
2 SpringBoot和SpringCloud关系 SpringBoot专注于快速⽅便的开发单个个体微服务。 SpringCloud是关注全局的微服务协调、整理、治理的框架它将SpringBoot开发的单体整合并管理起来。 SpringBoot可以离开SpringCloud独⽴使⽤开发项⽬但是SpringCloud离不开 SpringBoot属于依赖关系。
3 Springcloud与springcloud-alibaba关系
◆ 我们通常说的SpringCloud泛指Spring Cloud Netflix也是springcloud第⼀代
◆ SpringCloud Alibaba是SpringCloud的⼦项⽬是阿⾥巴巴结合⾃身微服务实践
◆ SpringCloud Alibaba符合SpringCloud标准依赖于springcloud
四 版本
springboot的版本查看地址Spring Boot
springcloud的版本查看地址Spring Cloud
详细版本对应信息 https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E