springcloud笔记
SpringCloud相关组件&对应大致功能记录
Eureka
Eureka 是 Netflix 公司开源的一款服务发现框架,用于实现微服务架构中的服务注册与发现。它提供了一种简单的方式,让微服务应用可以自动地注册自己的信息(如 IP 地址、端口号、服务名称等),并通过 Eureka 服务器进行管理和发现。
在 Eureka 中,每一个微服务应用都可以作为一个服务实例,注册到 Eureka 服务器上。服务实例可以动态地进行注册、下线、心跳等操作,同时 Eureka 服务器也会自动地检查这些服务实例的状态,并提供服务发现的接口,让其他服务消费者能够轻松地发现和访问这些服务。
Eureka 的架构中包含两个核心组件:Eureka 服务器和 Eureka 客户端。Eureka 服务器负责管理所有的服务实例信息,而 Eureka 客户端则负责将自己注册到 Eureka 服务器上,并向服务器发送心跳包以保持自己的状态更新。
Eureka 的主要特点包括:
- 易于使用和扩展:Eureka 提供了简单的 RESTful API 接口,易于使用和扩展,可以与其他技术和框架结合使用。
- 高可用和可靠性:Eureka 的服务器集群具有高可用性和可靠性,可以防止单点故障,并提供自我修复和自我保护机制。
- 实时的服务发现:Eureka 的客户端实时地向服务器更新自己的状态,并提供实时的服务发现和负载均衡功能。
- 易于集成和配置:Eureka 可以与其他微服务组件和技术(如 Spring Cloud、Zuul、Ribbon 等)轻松集成,也提供了丰富的配置选项和扩展点。
总的来说,Eureka 是实现微服务架构中服务注册和发现的重要组件之一,具有简单、可靠、实时和易于扩展等特点,是微服务架构中不可或缺的一部分

Ribbon
是 @LoadBalanced 进行负载均衡的原理。
使用 LoadBalanced 注解可以将 RestTemplate 实例变成一个 Ribbon 负载均衡客户端。Ribbon 是 Spring Cloud 中实现负载均衡的一个组件,它可以根据特定的负载均衡策略,将请求分发到不同的服务实例上。

实际流程中简单来说就是先对请求进行拦截,根据请求的url找到服务名,然后去eureka中拉取服务列表,然后使用负载均衡策略进行列表服务器url选择,然后向真正的url去请求数据

Nacos
与eureka类型,但比eureka功能更多。
默认账号&密码都是”nacos”
nacos与eureka区别:
1.服务提供者分为临时实例(默认)与非临时实例,采用不同方式来检测是否还存活
2.服务消费者不仅会定时拉取服务pull(与eureka相同),注册中心还会主动推送变更消息


Feign
用来代替restTemplate,使用上类似于springboot调用的controller层
最佳实践实现: 把本身在一个客户端中写的调用服务端的代码单独提出来放入一个module中统一管理,便于调用的复用
Gateway


Docker
Docker 是一个开源的容器化平台,可以让应用程序和其依赖项以容器的方式打包和部署。Docker 提供了一种基于容器的虚拟化解决方案,使得应用程序可以在任何平台上以相同的方式运行,无论是开发、测试、生产环境或者云上。
Docker 架构主要由三个组件组成:
- Docker 客户端:用户与 Docker 交互的命令行工具或者 GUI 工具。
- Docker 镜像:Docker 应用程序打包和分发的标准格式,包含应用程序代码、运行时环境、系统工具、库文件等所有依赖项。
- Docker 容器:Docker 镜像的运行实例,即镜像在运行时的状态。
Docker 的优点:
- 简化应用部署和管理:Docker 可以将应用程序和依赖项以容器的形式打包和分发,可以轻松地在不同的环境中部署和管理应用程序。
- 提高开发效率:Docker 可以在开发环境中快速部署和运行应用程序,可以减少环境配置和依赖项管理的工作量。
- 节省资源:Docker 容器的启动和停止非常快速,占用的系统资源非常少,可以在同一台机器上运行多个容器,提高资源利用率。
- 支持跨平台:Docker 可以在任何平台上运行,使得应用程序可以在不同的环境中以相同的方式运行。
总的来说,Docker 提供了一种简单、轻量、可移植、可扩展的容器化解决方案,使得应用程序可以快速、可靠地部署和运行。

ES


如下图所示:
