微服务和SpringCloud的关系
1.什么是微服务
解释什么是微服务前要了解为什么会出现微服务?
这就不得不说一下架构的演进,从单体架构——》分布式架构——》微服务。
单体架构:将业务所有功能集中到一个项目中开发,打包成一个jar包部署。
优点:1.架构简单 2.部署成本低
缺点:耦合程度高,万一动一部分代码其他代码出现问题怎么办。比如说要动订单模块,用户模块和订单模块耦合度高,我改订单模块用户模块会不会受到影响?我订单模块挂了,那么我用户模块也不能用了,这显然是不适合的,那我是不是可以考虑把业务给拆分出来?分布式架构应用而生。
分布式架构: 根据业务功能对系统进行拆分,每个业务模块作为独立项目开发。
优点:1.降低服务耦合 2.有利于服务升级
缺点:需要考虑一下问题:
•服务拆分粒度如何?哪些业务可以拆开,哪些业务不能拆开?•服务集群地址如何维护?服务拆开了,怎么去维护这些业务?•服务之间如何实现远程调用?服务和服务之间怎么进行调用?•服务健康状态如何感知?服务调用其他服务,其他服务挂了导致自己服务挂了怎么办?
解决这些繁琐的问题,就可以考虑有没有成熟的解决方案呢,微服务就展现出来。
微服务:微服务是一种经过良好架构设计的分布式架构方案,具体就是把一个项目拆分成独立的多个服务,并且多个服务是可以独立运行的,而每个服务都会占用线程。
特征:
•单一职责:微服务拆分粒度更小,每一个服务都对应唯一的业务能力,做到单一职责,避免重复业务开发•面向服务:微服务对外暴露业务接口•自治:团队独立、技术独立、数据独立、部署独立•隔离性强:服务调用做好隔离、容错、降级,避免出现级联问题
总结:
单体架构特点?
•简单方便,高度耦合,扩展性差,适合小型项目。例如:学生管理系统分布式架构特点?
•松耦合,扩展性好,但架构复杂,难度大。适合大型互联网项目,例如:京东、淘宝微服务:一种良好的分布式架构方案
•优点:拆分粒度更小、服务更独立、耦合度更低•缺点:架构非常复杂,运维、监控、部署难度提高
2.什么是SpringCloud
SpringCloud不是新技术或新框架,而是一系列成熟的微服务框架组合,并基于springboot实现这些组件的自动装配。
3.两者的联系
总结:
微服务是一套分布式架构的解决方案。
SpringCloud是一系列成熟微服务框架的集合。
SpringCloud是解决微服务落地框架的一种。
4.微服务技术的对比
微服务这种方案需要技术框架来落地,比较知名的有:SpringCloud、Dubbo、SpringCloudAlibaba,其中SpringCloud和SpringCloudAlibaba都是一站式解决方案,三种技术的对比如下
一般是这几种组合:
1.SpringCloud+Feign
•使用SpringCloud技术栈•服务接口采用Restful风格•服务调用采用Feign方式
2.SpringCloudAlibaba+Feign
•使用SpringCloudAlibaba技术栈•服务接口采用Restful风格•服务调用采用Feign方式
3.SpringCloudAlibaba+Dubbo
•使用SpringCloudAlibaba技术栈•服务接口采用Dubbo协议标准•服务调用采用Dubbo方式
4.Dubbo原始模式
•基于Dubbo老旧技术体系•服务接口采用Dubbo协议标准•服务调用采用Dubbo方式
SpringCloud + Feign
微服务和SpringCloud的关系相关推荐
- 微服务与Spring-Cloud的关系(区别)
微服务只是一种项目的架构方式,或者说是一种概念,就如同我们的MVC架构一样, 那么Spring-Cloud便是对这种技术的实现.
- 微服务开发框架 SpringCloud
今天给大家介绍一下微服务开发框架 SpringCloud. 概述 微服务架构是当前软件开发领域的技术热点.它在各种博客.社交媒体和会议演讲上的出镜率非常之高.大家以前可能或多或少听说过些许.然而微服务 ...
- Java架构师面试问些什么?微服务之springcloud面试题(共22题,含详细解答)
[Java架构师面试网]收集整理了几乎整个架构师学习途中会遇到的面试题,希望大家都能早日圆自己的架构师梦~ 公众号:Java架构师面试网,关注回复"资料"即可领取精美整理的面试资料 ...
- 最新微服务框架SpringCloud Alibaba介绍,搭建
微服务和SpringCloud Alibaba详细介绍(一),手把手搭建微服务框架 PS:本博客是本人参照B站博主:JAVA阿伟如是说 的视频讲解手敲整理的笔记 跟着一起手动搭建的框架 供大家一起学习 ...
- 微服务(SpringCloud)入门项目——外卖订单系统
文章目录 需求分析 总体设计 详细设计 编码过程: 编码完成,看看效果图 补充项目sql脚本 本项目源码: https://github.com/liuwen766/OrderSystem.git 项 ...
- 走进Spring Cloud之一 微服务和SpringCloud
走进Spring Cloud之一 微服务和SpringCloud Monolithic架构(单体架构) 微服务架构 为什么采用微服务呢? 服务注册.发现.负载均衡和健康检查 集中式 LB 方案 进程内 ...
- springcloud 微服务鉴权_我对微服务、SpringCloud、k8s、Istio的一些杂想
一.微服务与SOA "微服务"是一个名词,没有这个名词之前也有"微服务",一个朗朗上口的名词能让大家产生一个认知共识,这对推动一个事务的发展挺重要的,不然你叫微 ...
- DevOps笔记-02:DevOps与微服务之间是什么关系?
DevOps与微服务之间是什么关系? 没关系. 微服务是一种应用架构的设计风格.以前的应用大多是单体的,即所有服务都打到一个软件包里面,这样的问题就是,哪怕任何人改一点代码,整个软件包都要重新生成,重 ...
- 容器化技术与微服务结合---SpringCloud框架与阿里云serverless k8s的结合(六)
目录 系列 写在前面 Serverless K8S 概念 创建集群 微服务搭建 项目地址 环境区分以及dockerFile注意 阿里云日志接入 创建阿里云日志project 配置 测试 Kuberne ...
最新文章
- 蓝桥杯 扑克序列(全排列)
- C#线程同步(1)- 临界区&Lock
- IOS微信6.7.4输入框失去焦点,软键盘关闭后,被撑起的页面无法回退到原来正常的位置...
- window 2003 linux,一步步从Windows 2003 DNS 移植到Linux下
- 判断是否为gif/png图片的正确姿势
- BeanPropertyRowMapper使用注意事项
- LINUX系统服务总结之三:nis服务器全集
- linux 下显卡优化,[转载]Linux 下 NVIDIA 显卡闭源驱动的一些优化
- python自动化办公-python自动化办公?学这些就够用了
- php 分表 实战,PHP实战:1亿条数据如何分表100张到Mysql数据库中(PHP)
- STM32串口编程易错点
- FFmpeg滤镜:使用colorkey抠图
- Java制作五子棋人机对战
- java calendar星期几_正确获取星期几(Calendar.DAY_OF_WEEK)
- 触目惊心的互联网流量劫持
- Techwiz LCD 1D:SRF的颜色分析
- Java SE核心I
- 使用深度学习的单一图像超分辨率
- 「解读」华为云桌面说“流畅”的时候,究竟在说什么?
- 使用wxauto出现ImportError: DLL load failed while importing win32gui: 找不到指定的程序报错的解决方案