概述
文章目录
- 思考一:rpc中注册中心的作用是转发请求还是返回IP和端口?
- 思考二:rest中注册中心rpc中注册中心的作用是转发请求还是返回IP和端口?
- 思考三:rest和rpc经常被拿来比较区别,我们常使用rest的SpringCloud框架,所以SpringCloud不是rpc吗?
- 思考四:如何进行服务发现?
- 思考五:提供什么样的服务治理?
- 思考六:有哪些负载均衡策略?
思考一:rpc中注册中心的作用是转发请求还是返回IP和端口?
答:返回ip和端口
注册中心在RPC整个体系中担任的角色是比较重要的,但也是比较微妙的,它维护了所有服务提供者的所暴露服务的信息,最最核心的信息就是IP+端口号。
服务消费者会在调用服务的时候去注册中心上去询问它远程调用服务的端口和IP地址 —> 注册中心返回它所需要的信息 —> 服务消费者拿着服务的IP+端口号,如果获取到多个IP的时候,再根据负载策略去远程调用服务。
其实最最简单的注册中心的职责就是如此,注册中心的最核心的职责也是如此
摘自RPC注册中心一–注册中心的简述
思考二:rest中注册中心rpc中注册中心的作用是转发请求还是返回IP和端口?
感觉注册中心都是返回IP和port
思考三:rest和rpc经常被拿来比较区别,我们常使用rest的SpringCloud框架,所以SpringCloud不是rpc吗?
答:微服务在本质上,就是rpc。
rpc有基于tcp的,http的,mq的等等。spring cloud是基于spring boot的,spring boot 实现的是http协议的rpc,算是rpc的一个子集。
rest:
约定大于配置,基于http协议,对网络资源的操作包括获取、创建、修改和删除资源的操作正好对应HTTP协议提供的GET、POST、PUT和DELETE方法。HTTP相对更规范,更标准,更通用,无论哪种语言都支持http协议。
rpc:
远程过程调用,所谓“过程”,就是像调用本地方法一样调用远程方法。提高调用方与服务提供方的研发效率,屏蔽跨进程调用函数(服务)的各类复杂细节。
来自开源问答-spring cloud是RPC框架吗
RPC框架是一个概念,RPC有基于TCP协议的和http协议的。
它的重点在于实现远程过程调用。而不限于使用什么协议。
总而言之,SpringCloud是基于HTTP的RPC框架,它还是一个生态体系,包含了各种丰富的功能。
dubbo 的rpc 比spring cloud 效率高很多, 但是http的协议更方便于多语言情况下的整合。
spring cloud与dubbo相比更多的是一组完整的工具集,而dubbo相比之下更偏向于做一个纯粹的rpc框架。
思考四:如何进行服务发现?
服务发现机制的关键部分是服务注册表(Service Registry)。服务注册表提供管理和查询服务注册信息的API。
当服务提供者的实例发生变更时(新增/删除服务),服务注册表需要通知服务消费者同步最新的服务实例地址列表。目前大多数的微服务框架使用Netflix
Eureka、Etcd、Consul或Apache Zookeeper等作为服务注册表。
两种主要的服务发现模式:客户端发现模式和服务端发现模式。
客户端发现模式:
使用客户端发现模式,客户端负责确定服务提供者的可用实例地址列表和负载均衡策略。客户端访问服务注册表,定时同步目标服务的实例地址列表,然后基于负载均衡算法选择目标服务的一个可用实例地址发送请求。
服务端发现模式:
使用服务端发现模式,服务客户端通过路由器(或者负载均衡器)访问目标服务。路由器负责查询服务注册表,获取目标服务实例的地址列表转发请求。
摘自服务发现的介绍????
思考五:提供什么样的服务治理?
- Who are you - 服务注册(服务审核) - 服务提供方自报家门
一些持久化的操作,因为注册中心是无状态的,假如某个注册中心实例重启之后,以前的一些审核信息,修改的访问策略信息就会消失,这样就会需要用户重新一一审核,这是很麻烦的,所以需要将这些信息落地,持久化到硬盘,然后每次重启注册中心实例的时候,去读取这些信息 - Where are you from 服务发现 服务消费者拉取注册数据
- How are you doing - 心跳检测,服务续约和服务剔除一套由服务提供方和注册中心配合完成的去伪存真的过程 。
默认情况下每个30秒服务会向注册中心发送一次心跳,证明自己还活着。如果超过90秒没有发送心跳,EurekaServer就会认为该服务宕机,会从服务列表中移除 - When you die - 服务下线 - 服务提供方发起主动下线
- Which one to choose- 负载策略 - 比如默认是随机加权策略,如果管理者希望改成加权轮询的策略,需要通知服务消费者,访问策略的改变
思考六:有哪些负载均衡策略?
1、轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
2、指定权重
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
3、IP绑定 ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
继续更新补充
4、fair短作业优先(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
5、url_hash(第三方)
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。
详细:负载均衡的5种策略及原理l????
最后
以上就是追寻咖啡为你收集整理的rpc与注册中心相关问题的全部内容,希望文章能够帮你解决rpc与注册中心相关问题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复