Docker与微服务小记

Posted by Futari on 2022-07-12
Estimated Reading Time 3 Minutes
Words 864 In Total
Viewed Times

Docker与微服务

在软件开发的最初是单体架构,那么服务都耦合在一起,进行服务升级、部署都要整体的进行瀑布式的开发模型。

在发展一段时间后,面向服务架构产生了,也就是我们常用的将服务进行分散,分散到不同的机器上,单独维护某一个服务。所以说面向服务架构也就是分布式,不管是水平拆分还是垂直拆分都算是分布式。

水平拆分的话就像是我们用Dubbo调服务一样,把service层放进一个服务器,请求层使用服务时使用Dubbo等RPC进行@Reference进行消费。

垂直拆分就是按模块来进行拆分,比如根据业务逻辑,将“电商项目”拆分成“订单项目”、“用户项目”和“秒杀项目”。显然这三个拆分后的项目,仍然可以作为独立的项目使用。

什么是微服务呢?

从名字就能知道,“微服务”就是非常微小服务

可以理解是在垂直拆分的基础上继续拆分,比如将订单模块继续拆分,拆成购物项目,结算项目和售后项目。

微服务

微服务应该是不能再拆的“微小”服务,类似于“原子性”,类似于,当然服务之间的调度还是RPC通信。
那么微服务和docker的关系呢

正是因为docker的出现,为每一个应用程序都提供了一个独立的运行环境,而且是轻量级的,占用空间小(KB级)启动时间短(秒级),所以可以在一台机器上就实现了微服务,每一个服务都作为一个容器独立运行,不再是局限于分布式机器的操作系统隔离。

docker的流程也就是他的口号,Build, Ship and Run,搭建发送运行,也就是自己先编写程序,之后搭建为镜像,发送到docker仓库上,最后包装为容器进行运行,而且docker是支持将build的镜像分布式使用的,也就是镜像是随意交换的,只需要有了image就可以运行出对应的容器,所以docker有官方仓库专去管理着这些image。

科普一下k8s
**K8S,就是基于容器的集群管理平台,它的全称,是kubernetes。,也就是用来管理docker的
Nacos也是微服务的管理工具

是对服务进行管理的,在spring导入依赖时需要导入SpringCloud和SpringCloud Alibaba,为什么导入两个依赖,原因是前面是构建的,后面的才是具体实施的

阿里为 SpringCloud 贡献了一个子项目,叫做 SpringCloud Alibaba,其中包括了微服务开发中的几个基础组件,Nacos 就是此项目中的一项技术。

Nacos的作用就两个:服务注册发现和配置管理

作为服务注册中心的话也就是进行服务的管理以及注册等等,作用和zookeeper一样。

1
2
3
4
5
6
7
科普:
Spring Alibaba主要技术有:
Sentinel -- 提供流控、服务降级、熔断能力,为体统提供防护。
Nacos -- 负责服务注册与发现,还有分布式配置。
RocketMQ -- 用于实现事件驱动模式、消息总线,已经整合了 SpringCloud Stream。
Seata -- 用于实现分布式事务。
Dubbo RPC -- 使用 RPC 进行服务调用。

如果您喜欢此博客或发现它对您有用,则欢迎对此发表评论。 也欢迎您共享此博客,以便更多人可以参与。 如果博客中使用的图像侵犯了您的版权,请与作者联系以将其删除。 谢谢 !