实习的公司正在做一个基于Spring Cloud的微服务框架的项目,今天大体了解了一下整个项目的结构,及时作下笔记。
1.首先是微服务的概念,以及为什么要创建以微服务为框架的项目。
- 各个微服务相互独立,不会因为其他微服务出现问题,而整个系统全部崩溃。(松耦合)
- 各个微服务功能、职责划分明确,不会因为项目的扩大而变得冗杂混乱。(高内聚)
- 因为每个微服务只负责一部分功能,体积较小,所以单个启动速度要快很多,为开发人员节省大量时间。(小巧)
- 轻量级通信机制(待理解)
- 微服务本身与具体技术实现无关,扩展性强(不同微服务支持多种语言开发)
参考:https://blog.csdn.net/wuxiaobingandbob/article/details/78642020?locationNum=1&fps=1
2.项目本身由四类微服务构成:
- eureka-server
- config-server
- gateway
- 其他微服务
3.eureka-server(注册中心)
微服务启动时,eureka-server必须第一个启动,它的作用就是为其他微服务提供服务发现和注册。
启动eureka-server之后,其他微服务启动都会注册在eureka-server微服务上。
为什么需要服务注册和发现?(待进一步了解)
- 服务重启或升级后ip地址变化,注册中心可以提供统一的管理。
- 水平伸缩后服务实例的变化。
- 同一个节点运行多个服务
- 负载均衡
参考:https://blog.csdn.net/zhanglh046/article/details/78651914
4.config-server(统一配置)
在eureka-server之后作为第二个微服务启动,其他微服务统一从config-server读取配置。
这样做的优点?
- 配置统一管理。
- 实现热部署,更改配置不需要重启微服务(心跳)。(待进一步了解)
- 一个微服务可以有多种配置文件,如开发环境、生产环境。https://my.oschina.net/u/3786691/blog/1928129
5.gateway(网关)
相当于为访问其他微服务设置了一道屏障,所有访问必须通过网关,为其他微服务提供了安全保障。
其他优点待了解。
其他:
6.docker和docker compose
听老大的解释docker相当于一台虚拟机,可以安装简化版的linux,以及一些应用,但是比虚拟机更有一些明显的优势。
百度百科定义:Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。
解释比较不容易理解,因此我又找了一个描述:
①了解虚拟机,虚拟机是带环境安装的一种解决方案。他可以在一种操作系统里面运行另一种操作系统。但是也正因为它是一个完整的操作系统,它也存在这操作系统的几个缺点:资源占用多、冗余步骤多、启动慢。
②了解Linux容器,为了解决上述虚拟机的一系列缺点,Linux发展出的另一种虚拟化技术。Linux容器不是一个完整的操作系统,而是对进程进行隔离。或者说,在正常的进程外面套了一个保护层。对于容器里面的进程来说,他接触到的各种资源都是虚拟的,从而实现了与底层操作系统的隔离。容器有点像轻量级的虚拟机,能够提供虚拟化的环境,但是成本开销小得多。
由于容器是进程级别的,相比虚拟机也就多了很多优势:启动快、资源占用少、体积小。
③Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。它是目前最流行的 Linux 容器解决方案。
参考:https://baijiahao.baidu.com/s?id=1591887487395526427&wfr=spider&for=pc
docker compose我的理解是一个批处理工具,简化docker的操作。(还带使用,进一步了解)
7.部署(待补充)
来源:oschina
链接:https://my.oschina.net/u/3786691/blog/1923529