Java面试题总结(rpc,kafka)

看到一个rpc的图画的很好

rpc进行网络通信一般用的netty

rpc的泛化调用:

在微服务架构下,我们针对某个 RPC 接口,我们一般有两个角色。

  • 服务消费者 (Dubbo Consumer),发起业务调用或 RPC 通信的 Dubbo 进程

  • 服务提供者 (Dubbo Provider),接收业务调用或 RPC 通信的 Dubbo 进程

服务消费者想要调提供者的接口,那么一般需要引提供者的jar包,然后像调用本地方法一样调用提供者的方法即可,而如果我不想引jar包,还想调提供者的接口,这里就需要泛化调用了,主要的使用场景主要有如下两个:

1、网关服务,因为网关服务需要作为所有rpc服务的调用者,但是又不可能引所有rpc服务的jar包(这样一旦有新的服务发布,就需要修改网关的代码)

2、测试平台

使用:使用GenericService的invoke方法,传入服务提供类的路径,接口名以及入参即可

原理:通过消费端和服务端的filter,来实现泛化调用的传递,在服务端再通过反射构造成对应的方法调用

  • org.apache.dubbo.rpc.filter.GenericFilter

  • org.apache.dubbo.rpc.filter.GenericImplFilter

来源:我试图通过这篇文章告诉你,什么是神奇的泛化调用。

Kafka使用场景:调用链路太长,对实时性要求不高的请求就可以用队列异步处理,异步带来的不一致问题,可以用job重试保证调用成功

削峰填谷,增加系统的抗压能力。系统解耦,可以拆分成多个微服务

kafka原理介绍(数据存储形式,数据流程,特点,何如保证数据的高可用)

Kafka基于发布订阅模式,通过消费组的形式实现了消费

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值