文章目录

  • 前言
  • 一、微服务
  • 二、微服务的特点
    • 1.小型化
    • 2.自治化
    • 3. 扁平化
    • 4. 轻量级设计
    • 5. 渐进式设计
  • 微服务架构和整体式架构的区别
  • 微服务架构和SOA的比较
    • 区别一:微服务通信的轻量级设计与SOA重量级设计
    • 区别二:微服务的自治性和SOA的集中式管理。
    • 区别三:SOA与微服务架构的应用的规模不同。
  • 总结

前言

本文是我在学习陈邵健先生所著的《Spring Cloud 微服务架构实战》时的学习笔记,内容侵删


一、微服务

微服务是将单个应用程序作为一组小型服务开发的方法,每个服务程序都在自己的进程中运行,并与轻量级机制(通常是HTTP资源API)进行通信,这些服务是围绕业务功能构建的,可以通过全自动部署机器独立部署。这些服务可能用不同的编程语言编写,使用不同的数据存储技术,并尽量不用集中式方式进行管理。

二、微服务的特点

1.小型化

每个程序只负责完成一定范围内的业务功能,可以更加专一地做好一件事情

2.自治化

每个微服务都是独立的应用,独立使用数据库,独立部署,独立运行。
这种独立性符合高内聚松耦合的设计原则
另外,每个服务的更新和迭代都不会依赖于其他服务

3. 扁平化

去中心化的扁平化管理,没有了集中管理的概念

4. 轻量级设计

小型化
微服务之间的通信设计,有以下两种方式

  1. 使用轻量级的REST协议进行API式的同步通信
  2. 使用轻量的异步消息通信

5. 渐进式设计

一个产品从成型到成熟是要经历一个过程的,这个过程是渐进式设计的。由于微服务小型而独立的特点,是的微服务设计可以以业务驱动的方式进行快速迭代,从而不断修正和调整,使产品趋于成熟。
所以,微服务非常适合敏捷开发

微服务架构和整体式架构的区别

对一个小型项目而言,整体式架构可能会更方便。
对于大型项目而言,整体式架构存在以下缺点:

  1. 稳定性。 一个模块出现问题,将会影响整个系统的正常运行。
  2. 不方便进行持续开发,不能适应需求的快速变更,无法使用快速迭代的敏捷开发方法。

微服务架构和SOA的比较

SOA(Service-Oriented Architecture),即面向服务架构,是一种粗粒度、松耦合的面向服务架构设计方法。SOA是一种企业级的架构设计方法,使用企业服务总线(ESB)的方式,构建一个能够更高效、更可靠、更具重用性的企业信息系统。

区别一:微服务通信的轻量级设计与SOA重量级设计

微服务的通信设计使用简单的HTTP,一般基于REST协议实现。
SOA一般使用更加复杂的协议,如WebService或BPEL(Business Process Execution Language, 业务流程执行语言),还需要使用服务描述性语言来定义标准借口。

区别二:微服务的自治性和SOA的集中式管理。

区别三:SOA与微服务架构的应用的规模不同。

SOA是在企业计算领域中产生的一种架构设计方法,在应用规模上的范围有限。
微服务架构是产生于互联网环境中的一种设计方法,它更能适应无限广阔的环境,以及互联网高流量、高并发的规模扩展。

总结

Spring Cloud 学习笔记一 微服务架构相关推荐

  1. spring cloud+.net core搭建微服务架构:Api授权认证(六)

    前言 这篇文章拖太久了,因为最近实在太忙了,加上这篇文章也非常长,所以花了不少时间,给大家说句抱歉.好,进入正题.目前的项目基本都是前后端分离了,前端分Web,Ios,Android...,后端也基本 ...

  2. spring cloud+dotnet core搭建微服务架构:配置中心续(五)

    前言 上一章最后讲了,更新配置以后需要重启客户端才能生效,这在实际的场景中是不可取的.由于目前Steeltoe配置的重载只能由客户端发起,没有实现处理程序侦听服务器更改事件,所以还没办法实现彻底实现这 ...

  3. spring cloud+dotnet core搭建微服务架构:配置中心(四)

    前言 我们项目中有很多需要配置的地方,最常见的就是各种服务URL地址,这些地址针对不同的运行环境还不一样,不管和打包还是部署都麻烦,需要非常的小心.一般配置都是存储到配置文件里面,不管多小的配置变动, ...

  4. spring cloud+dotnet core搭建微服务架构:Api网关(三)

    前言 国庆假期,一直没有时间更新. 根据群里面的同学的提问,强烈推荐大家先熟悉下spring cloud.文章下面有纯洁大神的spring cloud系列. 上一章最后说了,因为服务是不对外暴露的,所 ...

  5. spring cloud+dotnet core搭建微服务架构:服务发现(二)

    前言 上篇文章<手把手教你使用spring cloud+dotnet core搭建微服务架构:服务治理(-)>实际上只讲了服务治理中的服务注册,服务与服务之间如何调用呢?传统的方式,服务A ...

  6. Spring Cloud 学习笔记(一) 之服务治理模块Spring Cloud Eureka 搭建注册中心

    2019独角兽企业重金招聘Python工程师标准>>> 关于springboot的学习请参考前面的文章 接下来我们会开启一系列关于springcloud的学习文章. 一.概念 首先我 ...

  7. Spring Cloud Alibaba 系统保护:微服务架构雪崩效应与服务限流

    前面我们介绍了 OpenFeign 微服务间通信与 Spring Cloud Gateway 网关通信,这些是日常业务中的正常处理情况,但是在微服务环境下受制于网络.机器性能.算法.程序各方面影响,运 ...

  8. iis7 您无权使用所提供的凭据查看此目录或页面。_使用Spring Cloud和Docker构建微服务架构

    原文:https://dzone.com/articles/microservice-architecture-with-spring-cloud-and-do作者:Alexander Lukyanc ...

  9. 手把手教你使用spring cloud+dotnet core搭建微服务架构:服务治理(-)

    背景 公司去年开始使用dotnet core开发项目.公司的总体架构采用的是微服务,那时候由于对微服务的理解并不是太深,加上各种组件的不成熟,只是把项目的各个功能通过业务层面拆分,然后通过nginx代 ...

最新文章

  1. const在函数前与函数后的区别 [转]
  2. 如何实现1像素的表格
  3. 【转】Android -- Looper.prepare()和Looper.loop()
  4. 【Groovy】MOP 元对象协议与元编程 ( 方法注入 | 使用 Category 分类进行方法注入的优缺点 )
  5. 五天带你学完《计算机网络》·第二天·数据链路层
  6. 中高德地图只显示某一城市_干货 | 如何快速制作数据地图?让你的可视化逼格再高一级!...
  7. VirtualBox Network设置的NAT和Bridged Adapter模式区别
  8. [SceneKit专题]11-Reference-Nodes引用节点
  9. java架构师_成为一名Java高级架构师究竟要学哪些东西??
  10. 第 4 章 Spring
  11. 智能一代云平台(三十九):不同服务之间数据调用的一些思考
  12. 使用Java Mail接收 Gmail 电子邮件
  13. Java概 述(新手专区)
  14. potplayer视频播放时 多行外挂字幕从下向上显示而不是从上向下显示
  15. QTTabBar 简单配置
  16. TXT文本去重 TXT去重 TXT文本合并去重工具 —— 20亿行130GB的数据只需60分钟
  17. 5种RS485切换方向的方法及优劣势分析
  18. [汇文教育]iOS内支付(IAP)研究
  19. 密集子图挖掘算法的相关知识
  20. 关键词排名查询工具 - Search Engine Result Position Checker

热门文章

  1. 删除docker中redis 大key(模糊查询)
  2. 青年PM 倪超:想让程序员多一点点幸福感
  3. 《征服:JavaScript高级程序设计与应用实例》(含源码下载地址)
  4. 80年陈酿!世界上最古老的单一麦芽苏格兰威士忌问世
  5. mysql表关联字段长度不一样_mysql优化sql案例,5.6版本的致命点之两表关联的字段类型相同的重要性...
  6. B.Fortune Telling Codeforces Round #770 (Div. 2)
  7. ROS工业机器人 ROS-I Kinetic培训课程
  8. 京东云首席架构师杨海明:京东云探秘,从实践者到服务者
  9. 京东软件测试岗:惨不忍睹的三面,幸好做足了准备,月薪17k,已拿offer
  10. Swin Transformer, SwinIR, SwinFIR