首页 > 编程语言 >java面试题(四)

java面试题(四)

时间:2023-02-07 22:45:30浏览次数:49  
标签:面试题 调用 java 系统 rpc 一致性 http

1. java面试题(四)

1.1 cap理论,base理论

1.Consistency (一致性):

即更新操作成功并返回客户端后,所有节点在同一时间的数据完全一致。

对于客户端来说,一致性指的是并发访问时更新过的数据如何获取的问题。

从服务端来看,则是更新如何复制分布到整个系统,以保证数据最终一致。

2.Availability (可用性):

即服务一直可用,而且是正常响应时间。系统能够很好的为用户服务,不出现用户操作失败或者访问超 时等用户体验不好的情况。

3.Partition Tolerance (分区容错性):

即分布式系统在遇到某节点或网络分区故障的时候,仍然能够对外提供满足一致性和可用性的服务。分 区容错性要求能够使应用虽然是一个分布式系统,而看上去却好像是在一个可以运转正常的整体。比如 现在的分布式系统中有某一个或者几个机器宕掉了,其他剩下的机器还能够正常运转满足系统需求,对 于用户而言并没有什么体验上的影响。

CP和AP:分区容错是必须保证的,当发生网络分区的时候,如果要继续服务,那么强一致性和可用性 只能 2 选 1

BASE是Basically Available(基本可用)、Soft state(软状态)和Eventually consistent(最终一致 性)

BASE理论是对CAP中一致性和可用性权衡的结果,其来源于对大规模互联网系统分布式实践的总结, 是基于CAP定理逐步演化而来的。BASE理论的核心思想是:即使无法做到强一致性,但每个应用都可以 根据自身业务特点,采用适当的方式来使系统达到最终一致性。

基本可用:

  • 响应时间上的损失: 正常情况下,处理用户请求需要 0.5s 返回结果,但是由于系统出现故障,处理 用户请求的时间变为 3 s。
  • 系统功能上的损失:正常情况下,用户可以使用系统的全部功能,但是由于系统访问量突然剧增, 系统的部分非核心功能无法使用。

软状态:数据同步允许一定的延迟

最终一致性:系统中所有的数据副本,在经过一段时间的同步后,最终能够达到一个一致的状态,不要 求实时

1.2 rpc是什么

rpc,表示在本地调用远程,对于java这种面向对象语言,也可以理解为远程方法调用,rpc调用和http调用是有区别的,rpc表示的是一种调用远程方法的方式,可以使用http协议、或直接基于tcp协议来首先rpc,在java中,我们可以通过直接使用某个服务接口的代理对象来执行方法,而底层则通过构造http请求来调用远程的方法,所以,有一种说法是rpc协议是http协议之上的一种协议。

 

标签:面试题,调用,java,系统,rpc,一致性,http
From: https://www.cnblogs.com/liuhui0308/p/17100053.html

相关文章

  • java——spring boot集成redis——首先进行复习——本机环境安装(windows环境下)
    鉴于之前学习的时候已经安装完成,此处不重复安装,有需要的可以参考网上各种教程。 本章节以黑马教程为准开始进行复习和学习,进一步提高后端能力 黑马教程:redis——B站......
  • zzul1058_Java
    importjava.util.Scanner;publicclasszzul1058{publicstaticvoidmain(String[]args){Scannerinput=newScanner(System.in);intn=inpu......
  • zzul1073_Java
    importjava.util.Scanner;/***限制解是正数,且脚数为偶数即可*/publicclasszzul1073{publicstaticvoidmain(String[]args){Scannersc=newScann......
  • zzul1074_Java
    packagecom.ittrash;importjava.util.Scanner;publicclasszzul1074{publicstaticvoidmain(String[]args){Scannerinput=newScanner(System.in);......
  • 【JavaScript】5_常见的运算符(三种逻辑运算符+关系运算符)
    5、逻辑运算符1!逻辑非!可以用来对一个值进行非运算它可以对一个布尔值进行取反操作true-->falsefalse-->true如果对一个非布尔值进行取反,它会先将其转换为布尔值......
  • 正则表达式&&Java应用
    正则表达式​​10分钟快速掌握正则表达式​​​​Regex测试网站​​​​正则表达式30分钟入门教程​​正则表达式可以用一些规定的字符来制定规则,并用来校验数据格式的合法......
  • javaWeb02-Servlet
    本文参考了这篇博客:Servlet、Servlet容器等内容讲解-江清澜静-博客园(cnblogs.com) ......
  • JavaScript的知识点整理
    最近写了一个员工管理作业,暴露了一些问题就是。JS的查找标签的时候,要确定返回的是DOM对象还是数组,document对象可以是任意dom对象,将查询范围限制在当前dom对象,1、直接查......
  • java-Stream流的常用方法
    一 常见创建流的三种方式//list集合创建流方式newArrayList<>().stream();newHashSet<>().stream();//map集合创建流方式,原......
  • java 二维数组
      一个[代表是一维数组,I代表是int型,@后面跟的是地址; ......