微服务架构思想 从0到1

一、微服务架构

马丁福勒2014年在他的论文中提出微服务的概念。

In short, the microservice architectural style [1] is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery. There is a bare minimum of centralized management of these services, which may be written in different programming languages and use different data storage technologies.

微服务主要包括以下几点:

  • 拆分成比较小的模块
  • 每个微服务模块有独立的进程
  • 微服务模块之间轻量级的交互
  • 每个微服务独立部署,可以采用不同的语言和数据存储技术

二、微服务优缺点

优点
  • 每个服务足够内聚,代码易于理解,便于维护和开发
  • 微服务之间是松耦合的,相互之间不会影响
  • 可以采用不同语言和数据存储技术开发
  • 微服务更容易融合新技术
  • 微服务只是业务员逻辑的代码,不会和HTML、CSS或其他界面的组件融合
  • 每个微服务都有自己的存储能力,可以有自己的数据库,也可以有统一的数据库
缺点
  • 服务间通信成本
  • 数据一致性,即分布式事务
  • 微服务部署的依赖

三、微服务技术栈

  • 服务治理
  • 服务注册
  • 服务调用
  • 服务负载均衡
  • 服务监控

四、为什么要选SpringCloud

1.选型依据

  • 整体的解决方案和框架的成熟度
  • 社区热度
  • 可维护性

2.各微服务框架对比

在这里插入图片描述
在这里插入图片描述

SpringCloud 分布式微服务架构下的一站式解决方案,各个微服务架构落地技术的集合体,即微服务全家桶

3.SprngCloud 和SpringBoot是什么关系

可以以医院举例

  • 一个偏宏观(医院)、一个偏微观(各个科室)
  • SpringCloud 依赖于 SpringBoot ,而SpringBoot不依赖SpringCloud

SpringBoot 专注于快速、方便的开发单个微服务个体,而SpringCloud关注于全局的服务治理框架

4、Dubbo 和 SpringCloud的区别

在这里插入图片描述
最大的区别是SpringCloud抛弃了Dubbo的RPC通信,采用的是基于HTTP的REST的方式。虽然从一定程度上来说,后者牺牲了服务调用的性能,但也避免了原生RPC带来的问题,而且REST相比RPC更为灵活,不存在代码级别的依赖,更适应现在的开发环境。其实就是品牌机和组装机的区别。

  • Dubbo的定位是一款RPC框架,而SpringCloud是微服务架构下的一站式解决方案
  • 目前Dubbo和SpringCloud还不兼容
发布了66 篇原创文章 · 获赞 26 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Time__Lc/article/details/100997838