1、如何保证Kafka的消息是有序的?

1)kafka每个partition(分区)中的消息在写入时都是有序的,但多个分区的消息时无序的。如果要保证一个topic消息是有序的,需要将partition数量调整为1
2)尽量采用同步发送方式

2、为什么Kafka那么快?

1)利用 Partition (分区)实现并行处理
2)顺序写磁盘
3)充分利用 Page Cache(减少磁盘擦写)
4)零拷贝技术,减少CPU上下文切换成本
5)消息的批处理
6)消息数据压缩

参考文章:https://zhuanlan.zhihu.com/p/183808742

3、Feign接口调用超时怎么办?(默认值1秒)

1)加大负载均衡超时时间
ribbon:
ReadTimeout: 4000
ConnectTimeout: 2000

2)给Feign (整合Sentinel)加入熔断器,降级处理

4、请说说网络七层模型?RPC协议和HTTP协议什么区别?

1)物理层:该层提供网络传输的物理媒体,为网络之间的传输提供最基础的支持。重要的设备有中继器和集线器
2)数据链路层:该层将源网络层的数据可靠的传输到目的临近的网络层。在数据链路层中数据块叫做帧,帧是数据链路层的单位
3)网络层:该层作用于两个端系统之间的数据透明传输,单位为数据包。具体功能包括ip寻址和路由选择,连接的建立,维持和释放等。主要协议:IP协议
4)传输层:负责将上层数据进行分段提供端到端的可靠或不可靠传输。主要协议:TCP协议,UDP协议。
5)会话层:该层管理主机之间的会话进程,负责建立,维持,终止进程之间的会话。
6)表示层:表示层的数据转换包括数据的加密,压缩,格式转换等。
7)应用层:为网络应用程序提供访问网络服务的接口。 主要协议:HTTP协议

RPC通信主要建立在传输层的TCP协议之上(RPC远程调用),传输效率比较高,耦合度越高(绑定开发语言)
HTTP通讯主要建立在应用层的HTTP协议之上(SpringCloud的Feign远程调用),传输效率稍低,语言通用性强

5、请说说http和https的区别

HTTP:超文本传输协议,简单来说就是一种发布和接收 HTML 页面的方法,被用于在 Web 浏览器和网站服务器之间传递信息。HTTP 协议以明文方式发送内容,不提供任何方式的数据加密,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。

HTTPS:超文本传输安全协议,是一种透过计算机网络进行安全通信的传输协议。HTTPS 经由 HTTP 进行通信,但利用 SSL/TLS 来加密数据包。HTTPS 开发的主要目的,是提供对网站服务器的身份认证,保护交换数据的隐私与完整性。

网站从HTTP改造HTTPS,到第三方厂商申请SSL证书服务。