T31Day10

本文探讨了技术选型的重要性,从传统的巨石应用出发,分析其不可靠和扩展性问题,然后转向SOA(面向服务架构),介绍了ESB在服务集成中的角色和松耦合的优点,但同时也指出其存在的问题。最后,讨论了微服务的概念,强调其组件化、业务隔离和灵活性,是针对巨石应用和SOA的一种改进。微服务设计自下而上,更加关注服务的扩展性和独立部署,适合现代敏捷开发需求。
摘要由CSDN通过智能技术生成
需要技术选型的原因: 降低开发成本、提高研发效率
技术选型的顺序问题:先整体再局部,先底层后高层
巨石应用(第一代单体应用)
  巨石应用:将所有模块打包到一起部署运行,如打包一个war包放到tomcat下运行的。
  优势:对于小项目而言,易于调试、部署,运维方便。
  缺点: 
      1.不可靠。如何一个bug都会拖垮整个应用。
      2.单维扩展。只能通过运行更多的服务器水平扩展,而不同的应用服务对资源的需求不同。
      3.不可持续发展。引入新的框架或语言需要重构所有业务模块,往往需要在初期定技术栈。
 
SOA(Service Oriented Architecture)-面向服务架构
      面向服务架构是一种设计方法,设计上通常是自上而下的,服务间松散耦合。ESB(企业服务总线,即ESB全称为Enterprise Service Bus,指的是传统 中间件技术XMLWeb服务等技术结合的产物。ESB提供了网络中最基本的连接中枢,是构筑企业神经系统的必要元素。)集成不同协议的服务,做消息的转化、解释、路由从而联通各个服务,解决企业通信问题,服务松耦合、可扩展。
     优点:可扩展、松耦合
     缺点:
            1. ESB的存在并没有根本解决单体巨石应用的一些问题(如ESB本身的单点故障问题)
            2. SOA更多的面向企业服务,服务拆分粒度很大,更多的是为复用
 
微服务(去中心化的SOA拓展)
     强调服务彻底的组件化,一个组件就是一个产品,服务切分力度更小,设计上更多的是自下而上。服务间通过轻量化的协议进行通信,并根据服务本身需要独立化部署
     特点:业务隔离、并行开发、易于运维、单独部署
 
SOA和微服务的思维区别:
     SOA: 
           1. 由于单体巨石应用无法灵活扩展,且部署困难
           2. 设计是自上而下的
           3. 从运维侧出发,更多聚焦可维护性,兼顾可扩展性,从前后端分离
      微服务:
           1. 服务彻底的组件化,可灵活扩展,组合服务使用   
           2. 设计是自下而上的
           3. 从产品侧出发,更多聚焦可扩展性,兼顾可维护性
本项目是一个基于SSM(Spring+SpringMVC+MyBatis)框架和Vue.js前端技术的大学生第二课堂系统,旨在为大学生提供一个便捷、高效的学习和实践平台。项目包含了完整的数据库设计、后端Java代码实现以及前端Vue.js页面展示,适合计算机相关专业的毕设学生和需要进行项目实战练习的Java学习者。 在功能方面,系统主要实现了以下几个模块:用户管理、课程管理、活动管理、成绩管理和通知公告。用户管理模块支持学生和教师的注册、登录及权限管理;课程管理模块允许教师上传课程资料、设置课程时间,并由学生进行选课;活动管理模块提供了活动发布、报名和签到功能,鼓励学生参与课外实践活动;成绩管理模块则用于记录和查询学生的课程成绩和活动参与情况;通知公告模块则实时发布学校或班级的最新通知和公告。 技术实现上,后端采用SSM框架进行开发,Spring负责业务逻辑层,SpringMVC处理Web请求,MyBatis进行数据库操作,确保了系统的稳定性和扩展性。前端则使用Vue.js框架,结合Axios进行数据请求,实现了前后端分离,提升了用户体验和开发效率。 该项目不仅提供了完整的源代码和相关文档,还包括了详细的数据库设计文档和项目部署指南,为学习和实践提供了便利。对于基础较好的学习者,可以根据自己的需求在此基础上进行功能扩展和优化,进一步提升自己的技术水平和项目实战能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值