提升网站访问速度,福建省住房建设厅网站,旧电脑做网站服务器,吉林市城市建设学校网站目录
EnableDiscoveryClient
服务发现的核心概念
服务注册中心
EnableDiscoveryClient注解的作用
服务心跳健康检查
使用示例
EnableFeignClients
Feign简介
EnableFeignClients注解的作用
RPC#xff08;Remote Procedure Call#xff09;
参考链接 Spring Cloud…
目录
EnableDiscoveryClient
服务发现的核心概念
服务注册中心
EnableDiscoveryClient注解的作用
服务心跳健康检查
使用示例
EnableFeignClients
Feign简介
EnableFeignClients注解的作用
RPCRemote Procedure Call
参考链接 Spring Cloud 为开发人员提供了构建分布式系统中一些常见的组件。它的两个强大的注解EnableDiscoveryClient和EnableFeignClients简化了微服务架构中的服务注册、发现和通信。
EnableDiscoveryClient
服务发现的核心概念
服务注册表服务在启动时进行自我注册的数据存储表。这是服务之间相互寻找的存储数据的容器。服务提供者在启动时注册其服务并在关闭时取消注册的服务。服务使用者查询注册表以发现和调用其他服务。
服务注册中心 服务注册中心是微服务架构中的一个关键组件它用于管理所有的服务实例。服务注册中心提供了一个服务注册表其中包含了所有可用的服务实例信息包括服务的名称、地址、端口等信息。当一个服务实例启动时它会向注册中心注册自己的信息当一个服务需要调用其他服务时它可以通过服务注册中心获取到其他服务的信息然后进行调用。
EnableDiscoveryClient注解的作用 EnableDiscoveryClient 注解是 Spring Boot 应用程序注册到服务注册中心的关键注解。通过使用这个注解我们可以轻松地将 Spring Boot 应用程序注册到 Eureka 注册中心中并且可以实现自动的服务发现和负载均衡。在实际项目中使用 EnableDiscoveryClient 注解可以使我们的微服务架构更加灵活和可靠。
服务心跳健康检查 服务发现的一个重要功能是跟踪服务运行状况的能力。当服务向发现服务器注册时它会定期发送心跳以表明它仍然存在并正常运行。如果服务器停止接收这些心跳可能是由于服务崩溃或网络问题它会将服务标记为关闭并将其从可用服务列表中删除。
使用示例 导入springcloud及nacos相关依赖到pom文件中 !-- spring colud --dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-dependencies/artifactIdversion${spring.cloud.version}/versiontypepom/typescopeimport/scope/dependency!--spring cloud alibaba--dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-alibaba-dependencies/artifactIdversion${com.alibaba.cloud}/versiontypepom/typescopeimport/scope/dependencydependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId/dependencydependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-config/artifactId/dependency 编写配置文件声明服务名称及nacos注册中心地址
server:port: 51803
spring:application:name: leadnews-wemediacloud:nacos:discovery:server-addr: 192.168.200.130:8848config:server-addr: 192.168.200.130:8848file-extension: yml 在微服务启动类上添加EnableDiscoveryClient注解
SpringBootApplication
EnableDiscoveryClient
public class WemediaApplication {public static void main(String[] args) {SpringApplication.run(WemediaApplication.class,args);}
} 为了简化配置管理此后可以通过网页访问nacos注册中心添加leadnews-wemedia相关配置 启动虚拟机开启Docker启动nacos容器访问192.168.200.130:8848。添加配置信息 在nacos中配置相关信息后可以在对应服务中使用相关配置如Kafka、MySQL等便于统一管理配置文件。
EnableFeignClients
Feign简介 Feign 是一个声明式的 REST 客户端它的目的就是让 REST 调用更加简单。Feign 提供了 HTTP 请求的模板通过编写简单的接口和插入注解就可以定义好 HTTP 请求的参数、格式、地址等信息。 而且 Feign 会完全代理 HTTP 请求我们只需要像调用方法一样调用它就可以完成服务请求及相关处理。Spring Cloud 对 Feign 进行了封装使其支持 SpringMVC 标准注解和 HttpMessageConverters。Feign 可以与 Eureka 和 Ribbon 组合使用以支持负载均衡与 Hystrix 组合使用支持熔断回退。 如果你没有使用 Spring Cloud那么可以直接用原生的 Feign 来调用 API如果你使用了 Spring Cloud可以直接用 Spring Cloud OpenFeign 来调用 API。
EnableFeignClients注解的作用 使用 EnableFeignClients 简化服务间通信在微服务范式中服务通常需要相互通信。在许多系统中这种服务间通信通常通过 HTTP/REST 完成。虽然 Spring 生态系统提供了各种方法来进行这些 HTTP 调用但 Feign 因其简单和优雅而脱颖而出。
Feign的高级特性及使用示例 请读者参阅本人另一篇文章SpringCloud Feign实现微服务间的远程调用黑马头条Day04_springcloud 微服务之间调用feignclient-CSDN博客
RPCRemote Procedure Call RPC(Remote Procedure Call)远程过程调用用于解决分布式系统中服务之间的调用问题。 通俗地讲就是开发者能够像调用本地方法一样调用远程的服务。
作用
屏蔽远程调用和本地调用的区别让我们感觉就像是调用项目内的方法。隐藏底层网络的复杂性让我们更专注与业务逻辑。
RPC框架重要的三大组件客服端、服务端、注册中心。 注册中心主要实现的功能服务注册、服务发现。 注意到RPC中有关键的第一步就是要调用connect去建立TCP连接。既然要连接那么要拿到对方的IP:port才行吧。如果对方是单机部署就很容易直接用这个IP:PORT就行了。 然而又是可恶的分布式再作怪对端的服务通常是多机部署的。这时候怎么办随便找一台机器那肯定不行要是这台机器故障了不就完了。再说你只指定一台机器对方多机部署的意义何在 那么这个时候有个第三者就出来了。有个叫服务中心的家伙手下管理着大量服务的IP列表: 简单的RPC实现的过程
client进行connect连接client序列化reqclient根据约定的协议编码向server发送编码后的数据server接收到数据解码得到方法名和序列化过后的req二进制流server根据方法名找到req的类型反序列化得到req对象server调用本地方法得到resserver序列化resserver根据约定的协议编码并发送数据client接收到数据并解码client反序列化得到res
基于HTTP的RESTful接口 VS 基于TCP的RPC协议 REST(Representational State Transfer) 这是一种HTTP调用的格式更标准更通用无论哪种语言都支持http协议。 RPCRemote Promote Call 一种进程间通信方式。允许像调用本地服务一样调用远程服务。RPC框架的主要目标就是让远程服务调用更简单、透明。RPC框架负责屏蔽底层的传输方式、序列化方式和通信细节。开发人员在使用的时候只需要了解谁在什么位置提供了什么样的远程服务接口即可并不需要关心底层通信细节和调用过程。 参考链接
Spring Boot 中的 EnableDiscoveryClient 注解-CSDN博客
怎么理解rpc既然有http请求了为啥还要用rpc - 知乎
如何手撸一个较为完整的RPC框架 - 掘金