SpringCloud微服务框架:简单介绍

1、什么是微服务

微服务是一种架构风格,是以开发一组小型服务的方式来作为一个独立的应用系统,每个服务都运行在自已的进程中,服务之间采用轻量级的HTTP通信机制( 通常是采用HTTP的RESTful API)进行通信。这些服务都是围绕具体业务进行构建的,并且可以独立部署到生产环境上。这些服务可以用不同的编程语言编写,并且可以使用不同的数据存储技术。对这些微服务我们只需要使用一个非常轻量级的集中式管理来进行协调。

单体应用架构概念
一个应用中包含了应用程序的所有功能(比如:页面,代码,配置等),把应用打成一个war或jar包部署到Tomcat中,通常称为单体应用架构。

单体应用架构的优缺点
优点

1、易于开发&测试:单个应用包含所有功能,不涉及多个应用的互联互调,便于在团队之间开发与测试。
2、易于部署:只需将单个应用打成war或jar包,进行部署到Tomcat即可,运维起来比较方便。
3、易于整体扩展:当应用负载压力大时,将这个应用复制几份,分别部署在不同的服务器上,再通过负载均衡即可提高应用的并发能力。

缺点

1、复杂性高:由于是单个应用,所以整个项目文件包含的模块非常多,导致模块的边界模糊、依赖关系不清晰、代码的质量参差不齐,混乱的堆在一起,使得整个项目非常复杂。以致每次修改代码,都非常小心,可能添加一个简单的功能,或者修改一个Bug都会带来隐藏的缺陷。
2、技术债务:随着时间的推移、需求的变更和技术人员的更替,会逐渐形成应用程序的技术债务,并且越积越多。
3、阻碍技术创新:对于单体应用来说,技术是在开发之前经过慎重评估后选定的,每个团队成员都必须使用相同的开发语言、持久化存储及消息系统。

2、微服务架构

微服务是一种架构风格,是以开发一组小型服务的方式来作为一个独立的应用系统,每个服务都运行在自已的进程中,服务之间采用轻量级的HTTP通信机制 ( 通常是采用HTTP RESTful API )进行通信。这些服务都是围绕具体业务进行构建的,并且可以独立部署到生产环境上。这些服务可以用不同的编程语言编写,并且可以使用不同的数据存储技术。对这些微服务我们只需要使用一个非常轻量级的集中式管理来进行协调。

微服务架构的优缺点
优点

  1. 易于开发和维护:一个微服务只会关注一个特定的业务功能,所以业务清晰、代码量较少。开发和维护单个微服务相对简单。
  2. 单个微服务启动较快
  3. 局部修改容易部署:单一应用只要有修改,就得重新部署整个应用。微服务解决了这样的问题。一 般来说,对某个微服务进行修改,只需要重新部署这个服务即可。
  4. 技术栈不受限制:在微服务架构中,可以结合项目业务及团队的特点,合理的选择技术栈。
  5. 按需伸缩:可根据需求,实现细粒度的扩展。

缺点

  1. 运维要求高:更多的服务意味着要投入更多的运维。
  2. 分布式固有的复杂性:使用微服务构建的是分布式系统。对于一个分布式系统,系统容错、网络延 迟、分布式事务等都会带来巨大的问题。
  3. 接口调整成本高:微服务之间通过接口进行通信。如果修改某一个微服务的API,可能所有用到这个接口的微服务都需要进行调整。

微服务架构总结:

1、微服务的核心就是将传统的单一应用,根据业务拆分成一个一个的服务,彻底地去耦合,每一个微服务提供单个业务功能的服务,一个服务做一件事。
2、 在 IDEA 工具中使用Maven构建的一个个独立的 Module ,也就是使用Spring Boot
开发的一个个小模块就是一个个微服务,将专业的事交给专业的模块来做。比如一个大型项目可能有上百个微服务,将这些微服务集中起来构成一个大的系统,对外暴露服务进行调用与使用。
3、 从技术角度看就是一种小而独立的处理过程,类似进程概念,能够自行单独启动或销毁,拥有自己独立的数据库。

搭建分布式微服务架构的技术栈
在这里插入图片描述

3、Spring Cloud概要

1、Spring Cloud,基于 Spring Boot提供了一套微服务解决方案,包括服务注册与发现,配置中心,全链路监控,服务网关,负载均衡,熔断器等组件,除了基于NetFlix的开源组件做高度抽象封装之外,还有一些选型中立的开源组件。
2、官方译文:构建分布式系统不用特别的复杂且避免容易出现的错误。Spring
Cloud为最常见的分布式系统模式提供了一个简单和可访问的编程模型,帮助开发人员构建弹性、可靠和协调的应用程序。SpringCloud构建在SpringBoot之上,使开发人员很容易开始工作并迅速提高生产力。

Spring Boot 快速构建一个个微服务,多个微服务之间如何互通互调等呢?

  • 使用Spring Cloud进行管理协调服务间正常互联互调, 从而实现分布式微服务架构。
  • spring Cloud 使用 RESTful API 实现服务之间通信
  • Dubbo 使用 RPC (远程过程调用) 实现服务之间通信

参考资料

官网: http://spring.io/projects/spring-cloud
各组件说明(中文版):https://springcloud.cc/spring-cloud-netflix.html
详细文档版:

Spring Cloud 中国社区:http://springcloud.cn/
Spring Cloud 中文网:https://springcloud.cc/
Spring Cloud 目前集合了21种分布式微服务架构技术
Spring Cloud 目前集合了21种分布式微服务架构技术

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在线教育平台是基于云技术一站式全面服务,打造出一种新型的在线教育平台系统,此平台包括校园模式、企业模式,以及云视频教育模式等。 在线教育平台是基于SpringCloud微服务开发,单个微服务启动较快,局部修改容易部署。 此平台包含PC端、微信小程序、H5端、App、后台管理。仿照小鹅通、魔学院做的全系列产品。 文档包含:《服务器端安装部署手册》、《开发环境搭建手册》、《产品手册》、《用户操作手册》、《数据库结构说明文档》、《应用层API接口说明文档》、《系统架构文档》。 功能点包含: 学习平台:真实还原线下课堂; 在线直播:教学直播延时不卡顿; 在线打卡:轻量级的督学学习产品; 题库系统:实现教考分离、智能考试; 移动学习:随时随地、碎片化移动学习; 在线班级:引入分班制、高效督导服务; 教学应用:关联网校、督学助学应用工具; 数据平台:运营流量建设和用户维系; 网校系统:直播课堂、视频课程、付费问答、互动班级; 考试测评:课后作业、模拟考试、智能组卷、自动阅卷、考试统计、万人考试、智能评估; 视频云服务:大班直播、小班课、1V1私教、录播课。 营销点包含: 涨粉神器:粉丝裂变式邀请,拉新引流; 售课工貝:限时折扣、划价、优惠券、兑换码; 裂变海报:热门裂变传播玩法,吸粉引流; 裂变红包:挖掘微信精准流量,全民营销; 请好友看:快速提高课程访问量,提升品牌曝光; 积分体系:增强平台黏性、学员忠诚度; 分销体系:多渠道微信生态分销; 拼团秒杀:打造爆款,刺激课程销量。 建议以下配置:CentOS 7.6、MySQL 5.6、JDK 8.0、Tomcat 8.0、Tengine2.3、Redis3.2、Docker。 在线教育平台&在线培训平台 更新日志: v4.6 1、题库系统:多选问题的解决;实现教考分离、智能考试; 2、在线班级:增加班主任的功能; 3、网校系统:直播课堂中bug的修复; 4、考试测评:小班课中1V1私教的bug修复; 5、分校体系:微信转发的bug修复; 6、限时折扣:时间区间的bug修复。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值