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的关系相关推荐

  1. 微服务与Spring-Cloud的关系(区别)

    微服务只是一种项目的架构方式,或者说是一种概念,就如同我们的MVC架构一样, 那么Spring-Cloud便是对这种技术的实现.

  2. 微服务开发框架 SpringCloud

    今天给大家介绍一下微服务开发框架 SpringCloud. 概述 微服务架构是当前软件开发领域的技术热点.它在各种博客.社交媒体和会议演讲上的出镜率非常之高.大家以前可能或多或少听说过些许.然而微服务 ...

  3. Java架构师面试问些什么?微服务之springcloud面试题(共22题,含详细解答)

    [Java架构师面试网]收集整理了几乎整个架构师学习途中会遇到的面试题,希望大家都能早日圆自己的架构师梦~ 公众号:Java架构师面试网,关注回复"资料"即可领取精美整理的面试资料 ...

  4. 最新微服务框架SpringCloud Alibaba介绍,搭建

    微服务和SpringCloud Alibaba详细介绍(一),手把手搭建微服务框架 PS:本博客是本人参照B站博主:JAVA阿伟如是说 的视频讲解手敲整理的笔记 跟着一起手动搭建的框架 供大家一起学习 ...

  5. 微服务(SpringCloud)入门项目——外卖订单系统

    文章目录 需求分析 总体设计 详细设计 编码过程: 编码完成,看看效果图 补充项目sql脚本 本项目源码: https://github.com/liuwen766/OrderSystem.git 项 ...

  6. 走进Spring Cloud之一 微服务和SpringCloud

    走进Spring Cloud之一 微服务和SpringCloud Monolithic架构(单体架构) 微服务架构 为什么采用微服务呢? 服务注册.发现.负载均衡和健康检查 集中式 LB 方案 进程内 ...

  7. springcloud 微服务鉴权_我对微服务、SpringCloud、k8s、Istio的一些杂想

    一.微服务与SOA "微服务"是一个名词,没有这个名词之前也有"微服务",一个朗朗上口的名词能让大家产生一个认知共识,这对推动一个事务的发展挺重要的,不然你叫微 ...

  8. DevOps笔记-02:DevOps与微服务之间是什么关系?

    DevOps与微服务之间是什么关系? 没关系. 微服务是一种应用架构的设计风格.以前的应用大多是单体的,即所有服务都打到一个软件包里面,这样的问题就是,哪怕任何人改一点代码,整个软件包都要重新生成,重 ...

  9. 容器化技术与微服务结合---SpringCloud框架与阿里云serverless k8s的结合(六)

    目录 系列 写在前面 Serverless K8S 概念 创建集群 微服务搭建 项目地址 环境区分以及dockerFile注意 阿里云日志接入 创建阿里云日志project 配置 测试 Kuberne ...

最新文章

  1. 蓝桥杯 扑克序列(全排列)
  2. C#线程同步(1)- 临界区&Lock
  3. IOS微信6.7.4输入框失去焦点,软键盘关闭后,被撑起的页面无法回退到原来正常的位置...
  4. window 2003 linux,一步步从Windows 2003 DNS 移植到Linux下
  5. 判断是否为gif/png图片的正确姿势
  6. BeanPropertyRowMapper使用注意事项
  7. LINUX系统服务总结之三:nis服务器全集
  8. linux 下显卡优化,[转载]Linux 下 NVIDIA 显卡闭源驱动的一些优化
  9. python自动化办公-python自动化办公?学这些就够用了
  10. php 分表 实战,PHP实战:1亿条数据如何分表100张到Mysql数据库中(PHP)
  11. STM32串口编程易错点
  12. FFmpeg滤镜:使用colorkey抠图
  13. Java制作五子棋人机对战
  14. java calendar星期几_正确获取星期几(Calendar.DAY_OF_WEEK)
  15. 触目惊心的互联网流量劫持
  16. Techwiz LCD 1D:SRF的颜色分析
  17. Java SE核心I
  18. 使用深度学习的单一图像超分辨率
  19. 「解读」华为云桌面说“流畅”的时候,究竟在说什么?
  20. 使用wxauto出现ImportError: DLL load failed while importing win32gui: 找不到指定的程序报错的解决方案

热门文章

  1. 【软件测试】黑盒测试方法小结
  2. 车道线检测CondLaneNet论文和源码解读
  3. Python之freshman08 Socket
  4. ECharts之阶梯瀑布柱状图
  5. POJ 2540 Hotter Colder(半平面交求可行域)
  6. BERT!BERT!BERT!
  7. 可供软件测试练习的在线网站、被测系统——整理中
  8. JAVA之bootstrap01
  9. 用火狐浏览器模拟手机浏览器客户端的方法
  10. 如何备份MySQL数据库