微服务

本文深入解析微服务架构的起源、特点及其实现方案,对比单体架构,探讨微服务与分布式的关系,介绍微服务架构所需组件,并概述阿里系与SpringCloud栈两种主流微服务解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、微服务的由来

微服务的提出是由James Lewis & Martin Fowler两个人提出的,他们在2014年3月25日写的《Microservices》中提出微服务的概念。

2、什么是微服务

微服务是一种架构风格,而不是某一种具体的框架,如Restful,也是一种架构风格,只是一种建议。特点如下:

  • 一系列微小的服务共同组成
  • 跑在自己的进程里
  • 每个服务为独立的业务开发
  • 独立部署
  • 分布式的管理

这里需要说一下单体架构的优缺点了,当然单体架构也可以是分布式的,这里不考虑这种情况。

单体架构的优点:

  • 容易测试,不需要依赖外部条件
  • 部署方便,直接打成一个war包,发布在容器中

单体架构的缺点:

  • 开发效率低,所有开发人员在提交、更新代码可能会出现等待或者冲突等问题
  • 代码维护困难,人事的变迁,繁杂的业务代码维护,可能会导致各种问题
  • 部署不灵活,构建时间长,任何细小的改动,需要重新部署
  • 稳定性不高,任何一个问题会导致整个项目出现问题
  • 扩展性不够,不能针对各个业务模块做出不同应对方案

3、分布式

说到微服务就不得不提分布式了,那么什么是分布式呢?

旨在支持应用程序和服务的开发,可利用物理架构,由多个自治的处理元素,不共享主内存,但通过网络发送消息合作。
—— Leslie Lamport

简而言之,分布式是多节点的,当然集群也是多节点的,二者的区别就是,一个厨房有两个人,一个洗菜,一个炒菜这个就是分布式,如果两个都是炒菜,那么这个就是集群。

4、微服务架构的基础框架或组件

说完分布式,我们需要看看微服务架构都需要哪些组件,微服务是多个微小服务通过某种机制相互之间来进行网络通信,所以需要以下组件:

  • 服务注册发现,各个微小服务提供方需要注册服务才能够被服务的调用方发现
  • 服务网关(Service Gateway),将自己的服务暴露出去,是服务的前段路由
  • 后端通用服务,(也称中间层服务Middle Tier Service)
  • 前段服务(也称边缘服务Edge Service)

5、解决微服务的两大方案

国内解决微服务拥有两大江湖流派:阿里系、SpringCloud栈。

阿里系:

  • Dubbo,服务化治理
  • Zookeeper,服务注册中心
  • Spring MVC or SpringBoot
  • ···

SpringCloud全家桶:

  • Spring Cloud Netflix Eureka
  • SpringBoot
  • ···

6、Spring Cloud

在这里我只说SpringCloud,SpringCloud是一个开发工具集,包含了众多优秀的开源框架,SpringCloud是利用SpringBoot进行开发,主要是基于对Netflix开源组件进一步封装,SpringCloud极大地简化了分布式开发,降低了分布式开发的门槛。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值