- 博客(777)
- 资源 (32)
- 问答 (1)
- 收藏
- 关注
转载 JWT和token的区别及优缺点
我们首先应该知道的是什么是单点登录,单点登录是如何实现的,使用了什么技术,技术的选型、优缺点,应用和实现的步骤过程中的难点有哪些怎么解决的等。技术的话:token与JWT的区别、JWT和redis的区别应用、是否使用到了消息中间件有的话kafka和其他MQ的比较、实现过程中的相关协议等。从其中总结对这些问题点进行总结。
2022-03-05 09:00:03
8822
1
原创 每日面试:今天的面试不简单
1、简述拆箱装箱原理?装箱过程是通过调用包装器的valueOf方法实现的,将原值赋给对应类;拆箱过程是通过调用包装器的 intValue/doubleValue等方法实现,返回基本的数据类型。2、Java反射原理?Java会在编译期装载所有的类,并将其元信息保存至Class类对象中。因此可以设计x.class/x.getClass()/Class.forName()等方法获取Class对象。所以在反射调用Field/Method/Constructor对象时,可根据Class类对象进行.
2021-06-21 10:43:19
643
原创 每日面试:节后来场面试练练手
1、并发和并行的区别是什么?并发:一个处理器可以同时处理多个任务。这是逻辑上的同时发生。并行:多个处理器同时处理多个不同的任务。这是物理上的同时发生。有一个清晰地比喻:并发:一个人同时吃三个苹果。并行:三个人同时吃三个苹果。并发(concurrency):指同一时刻只能够执行一条指令,但是多条指令被快速的进行切换,给人造成了它们同时执行的感觉。但在微观来说,并不同同时进行的,只是划分时间段,分别进行执行。并行(parallel):在同一时刻,有多条指令在多个处理器上同时执行。.
2021-06-21 10:41:35
587
原创 端午前最后一场面试
1、RocketMQ顺序消息扩容的过程中,如何在不停写的情况下保证消息顺序? 成倍扩容,实现扩容前后,同样的 key,hash 到原队列,或者 hash 到新扩容的队列。 扩容前,记录旧队列中的最大位点。 对于每个 Consumer Group ,保证旧队列中的数据消费完,再消费新队列,也即:先对新队列进行禁读即可。 2、什么是定时消息?如何实现?定时消息,是指消息发到 Broker 后,不能立刻被 Consumer 消费,要到特定的时间点或者等待特定的时间后才能 被.
2021-06-21 10:35:52
360
原创 Java面试:2021.06.11
1、Spring 框架中都用到了哪些设计模式?Spring 框架中使用到了大量的设计模式,下面列举了比较有代表性的: 代理模式 — 在 AOP 和 remoting 中被用的比较多。 单例模式 — 在 Spring 配置文件中定义的 Bean 默认为单例模式。 模板方法 — 用来解决代码重复的问题。比如 RestTemplate、JmsTemplate、JdbcTemplate 。 前端控制器 — Spring提供了 DispatcherServlet 来对请求...
2021-06-21 10:32:31
296
原创 拿下最终的offer!抉择吧,命运!
1、RabbitMQ消息队列消息丢失问题怎么解决?RabbitMQ消息丢失的三种情况:1.生产者发送消息到交换机时数据丢失:消息确认模式confirmCallback,返回给生产者,提示消息发送交换机成功;2.交换机发送消息到队列时数据丢失:同样是消息确认模式,ReturnCallback,如果发送失败将消息退回给生产者;3.消费者消费消息是数据丢失:默认是自动确认,我们只要配置成手动确认即可,消费者接收消息以后调用channel.basicAck()方法出现异常则获取消息失败,需要重新发送
2021-06-21 10:29:57
244
原创 又是凉凉的一天
1、自我介绍。我是从我的工作年限、行业、常用技术栈以及在工作中所扮演的角色来讲解的,最后基于提前对公司的了解又对此进行了一番仰慕。2、问项目(让我讲一个最熟悉的)。wk,这么无视我的吗!最近的项目还是比较熟悉的,我最近做的是基于SASS平台的OA系统。其中的数据库的设计、权限管理、定时系统、日志系统和个人中心等我都做了相关准备。索性一不做二不休拿起数据库设计和权限管理就开始了我的征程。数据库我是基于数据库三范式的思想进行设计的(对三范式简述了一下),设计前考虑了用户量以及后期的数据拓展.
2021-06-21 10:27:49
312
原创 大厂面试都这样了吗?
1、秒杀解决方案。 架构:扩容、业务分离、数据分离 产品:下单按钮控制、秒杀答题削峰、简化页面设计 前端:限流(反作弊)、静态化以及页面缓存 后端:内存数据库 ,消息队列、程序计数器、分布式锁 在回答问题的时候还需要拿出来其中一种做具体的探讨。回答思路为:分析其问题,秒杀会产生或带来什么问题,这些问题的解决方案有哪些,然后针对其中一种方案做具体的讲解。2、最终一致性分布式事务如何保障实际生产中 99.99% 高可用?对于常见的微服务系统,大部分接口调用是.
2021-06-21 10:25:56
255
原创 这场面试,我佛了
1、HashMap为什么不是线程安全的,并发情况下会有什么问题?首先,为什么会存在线程安全的问题,这个得从JMM(Java Memory Model)说起。大家都知道,计算机在执行一个指令的时候,会先将数据和指令从硬盘或网络等地方加载到内存,然后CPU在从内存加载指令和数据到CPU缓存,然后到寄存器,最终计算的结果,也会写回到内存,最终保存到磁盘或者其他地方(所有的读写都会用到读缓冲区和写缓冲区)。因为现在基本都是多核CPU,内存是所有CPU共享的,但每个CPU内部的缓存和寄存器是私有的,这就造成了同一
2021-06-21 10:20:15
215
原创 区区5道题,我就跪了……
1、Redis在你们项目中是怎么用的?(1)门户系统中的首页内容信息的展示。(商品类目、广告、热门商品等信息)门户系统的首页是用户访问量最大的,而且这些数据一般不会经常修改,因此为了提高用户的体验,我们选择将这些内容放在缓存中;(2)单点登录系统中也用到了redis。因为我们是分布式系统,存在session之间的共享问题,因此在做单点登录的时候,我们利用redis来模拟了session的共享,来存储用户的信息,实现不同系统的session共享;(3)我们项目中同时也将购物车的信息设计存储在redis
2021-06-21 10:01:37
248
原创 我先入坑啦,等你哦!
1、redis为什么读取的那么快? 1.完全基于内存,绝大部分请求是纯粹的内存操作,非常快速。数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1);2.采用单线程,避免了不必要的上下文切换和竞争条件,也不存在多进程或者多线程导致的切换而消耗 CPU,不用去考虑各种锁的问题,不存在加锁释放锁操作,没有因为可能出现死锁而导致的性能消耗;3.使用多路I/O复用模型...
2021-06-07 17:40:25
263
原创 我太难了!这些面试问题你遇到了吗?
1、你们这个项目数据访问量大不大?根据项目实际情况来讲,这里给大家举个栗子。传统项目若不是sass这种的,给企业来应用,用户一般在1000左右,并发的话很少出现,一般通过redis缓存、线程这些就可以处理。互联网项目,一般差不多的项目日活在1W左右,并发在200到500间,考虑到后期的用户递增,处理方案就比较广泛了。DNS、服务的前置、后置、缓存优化、线程池、nginx、页面静态化、集群、高可用架构、读写分离等。方案有很多,可以根据项目的实际需要做选择。2、用redis是做那一块的.
2021-06-07 17:38:39
517
原创 我要18K,能过吗?
1、项目都有那些功能?介绍了最近的这个项目自己所负责的几个核心功能,重点讲了其中一个技术的选型和实现等。然而他并没有接着问我项目上的问题。2、spring框架AOP讲解一下吧!AOP面向切面编程,是对OOP的补充。可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。主要有以下操作:日志记录,跟踪,优化和监控;事务的处理;持久化;性能的优化;资源池,如数据库连接池的管理;系统统一的认证、权限管理等;应用..
2021-06-07 17:37:27
283
原创 来一场Java高级的面试,看看自己啥水准
1. 为什么等待和通知是在 Object 类而不是 Thread 中声明的?一个棘手的 Java 问题,如果 Java编程语言不是你设计的,你怎么能回答这个问题呢。Java编程的常识和深入了解有助于回答这种棘手的 Java 核心方面的面试问题。为什么 wait,notify 和 notifyAll 是在 Object 类中定义的而不是在 Thread 类中定义这是有名的 Java 面试问题,招2~4年经验的到高级 Java 开发人员面试都可能碰到。这个问题的好在它能反映了面...
2021-06-07 17:36:13
267
原创 Java面试:2021.06.01
1、线程有哪些状态?线程通常都有五种状态,创建、就绪、运行、阻塞和死亡。 创建状态。在生成线程对象,并没有调用该对象的start方法,这是线程处于创建状态。 就绪状态。当调用了线程对象的start方法之后,该线程就进入了就绪状态,但是此时线程调度程序还没有把该线程设置为当前线程,此时处于就绪状态。在线程运行之后,从等待或者睡眠中回来之后,也会处于就绪状态。 运行状态。线程调度程序将处于就绪状态的线程设置为当前线程,此时线程就进入了运行状态,开始运行run函数当中的代码。
2021-06-07 17:33:32
214
原创 Java面试:2021.05.31
1、integer是否可以用==判断相等? Ingeter是int的包装类,int的初值为0,Ingeter的初值为null。 无论如何,Integer与new Integer()不会相等。不会经历拆箱过程,i8的引用指向堆,而i4指向专门存放他的内存(常量池),他们的内存地址不一样,使用 == 比较都为false。 两个都是非new出来的Integer,使用 == 比较,如果数在-128到127之间,则是true,否则为false 两个都是new出来的,==比较都为fa
2021-06-07 10:55:49
271
原创 Java面试:2021.05.30
1、什么是悲观锁?什么是乐观锁? 1)悲观锁它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持保守态度,因此,在 整个数据处理过程中,将数据处于锁定状态。悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据库层提供 的锁机制才能真正保证数据访问的排他性,否则,即使在本系统中实现了加锁机制,也无法保证外部系统不会修改 数据)。在悲观锁的情况下,为了保证事务的隔离性,就需要一致性锁定读。读取数据时给加锁,其它事务无法修改这些数 据。修改删除数据时也要加锁,其它事务无法读取
2021-06-07 10:55:00
194
原创 Java面试:2021.05.29
1、Kafka的架构是怎样的?Kafka 的整体架构非常简单,是分布式架构,Producer、Broker 和Consumer 都可以有多个。1.Producer,Consumer 实现 Kafka 注册的接口。2.数据从 Producer 发送到 Broker 中,Broker 承担一个中间缓存和分发的作用。3.Broker 分发注册到系统中的 Consumer。Broker 的作用类似于缓存,即活跃的数据和离线处理系统之间的缓存。4.客户端和服务器端的通信,是基于简单,高性能...
2021-06-07 10:53:00
203
原创 Java面试:2021.05.28
1、请问你是如何做接口测试的?大体来说,经历以下过程:接口需求调研、接口测试工具选择、接口测试用例编写、接口测试执行、接口测试回归、接口测试自动化持续集成。具体来说,接口测试流程分成以下九步:第一步:分析出测试需求,并请开发提供接口说明文档;第二步:从接口说明文档中整理出接口测试用例,里面要包括详细的入参(正常情况,异常情况包括输入参数个数,类型,可选/必选,考虑参数有互斥或关联的情况)和出参数据(符合接口文档需求)以及明确的格式和检查点;第三步:与开发一起对接口测试用例进行评审;第四步
2021-06-07 10:36:45
204
原创 Java面试:2021.05.27
1、Spring的IOC和AOP两大核心的理解。1. Spring 的两大核心是:IOC(控制反转)和 AOP(面向切面编程)2. IOC 的意思是控制反转,是指创建对象的控制权的转移,以前创建对象的主动权和时机是由自己把控的,而现在这种权力转移到 Spring 容器中,并由容器根据配置文件去创建实例和管理各个实例之间的依赖关系,对象与对象之间松散耦合,也利于功能的复用。最直观的表达就是,IOC 让对象的创建不用去 new 了,可以由 spring 根据我们提供的配置文件自动生产,我们需要对象.
2021-06-07 10:34:47
213
转载 阿里云短信认证实现过程
对接阿里的短信验证 了解基本的情况 阿里云的短信服务平台 点击进入 管理控制台,添加签名和模板 添加 AccessKey 接入短信的配置从头开始,对接阿里的短信验证选择阿里的原因(试了腾讯的,网易的,感觉还是阿里的最好,最方便,其他两个的申请签名的时候总是不通过)福利 新人免费领取100条短信https://free.aliyun.com/?spm=5176.224200.aliyun-offcial-webs...
2021-06-02 14:48:37
833
原创 Java面试:2021.05.26
1、SpringMVC跨域问题该如何配置?springmvc4.2版本以上解决跨域问题只需要在controller中添加@CrossOrigin注解就可以解决跨域问题,前端正常发出ajxa请求的时候,返回数据中Access-Control-Allow-Origin的值就是前端的请求路径,最终思想就是需要服务器端一样遵循CORS标准,就可以实现同源策略原则。2、怎么防止死锁?首先我们了解一下什么情况下会发生死锁?1.系统资源的竞争通常系统中拥有的多个不可剥夺资源,其数量不足以满足多个.
2021-05-27 14:27:42
174
原创 Java面试:2021.05.25
1、你们项目中为什么要用MQ?消息队列的作用是系统解耦、同步改异步、请求消峰,举个下订单的例子:前端获取用户订单信息,请求后端的订单创建接口。这个接口并不直接请求订单服务,而是首先生成唯一订单编号,再组装一个订单消息并发送给MQ,然后返回唯一订单编号给前端。前端会根据唯一订单编号轮询订单状态接口,如果订单创建成功,则拉起支付界面引导用户付款。作为消费者,订单服务收到订单消息后,开始检查参数、检查库存、生成订单等等核心业务流程。解耦体现在订单创建接口并没有直接访问订单服务,使得它不用关注订单服务接口的
2021-05-27 14:27:00
227
原创 Java面试:2021.05.24
1、Redis 持久化方案你了解吗?redis持久有两种形式,RDB,AOF俩种,RDB是一种快照的方式来存储的,这也是redis的默认的持久化方式,每隔一段对数据进行一次存储,默认是15S。AOF是即时性的持久化方式,这种方式对数据的保存完整性比较高,但是性能比较差。而RDB存在的问题主要是服务器宕机或者断电,就会造成数据丢失,我们可以适当的把存储间隔缩短一些。2、什么是Dubbo?1. Dubbo的理解工作在soa面向服务分布式框架中的服务管理中间件。Dubbo...
2021-05-27 14:26:20
170
原创 Java面试:2021.05.23
1、常用的线程池有几种?常用的线程池有6种.1. newCachedThreadPool:缓冲线程池。没有核心线程,最大线程上限为 Integer.MAX_VALUE,新任务来了不排队,总是新建临时线程来处理任务,临时线程如果空闲超过60秒则被回收。适合突发的大量短任务,但缺点是没有线程上限,还是会因为线程数太多,而造成内存溢出;2. newFixedThreadPool:固定线程池。核心线程固定,没有临时线程,新任务来了如果没有空闲线程则进入阻塞队列排队。缺点是队列没有上限(Intege.
2021-05-27 14:25:36
212
原创 Java面试:2021.05.22
1、SpringBoot 了解吗?SpringCloud 了解吗?自然是了解的,但是这么一问又比较笼统反而不知道应该往哪个方向进行回答了。对于springboot而言可以讲解一下自动装配、微服务与分布式的区别这两个点,有的可能会涉及与spring等框架的区别和常用注解。对于springcloud而言,五大常用组件就要提上议程了,可以简单讲一下然后选其中一个重点来讲解。为什么选用,怎么用的,有没有遇到相关的一些问题,怎么进行处理和解决的。2、项目接口优化怎么做的?这里区分两个点,接口.
2021-05-27 14:24:53
182
原创 Java面试:2021.05.21
1、网络七层模型与四层模型的区别?七层模型分别是物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。分层功能职责 物理层:底层数据传输,如网线;网卡标准。 数据链路层:定义数据的基本格式,如何传输,如何标识;如网卡MAC地址。 网络层:定义IP编址,定义路由功能;如不同设备的数据转发。 传输层:端到端传输数据的基本功能;如 TCP、UDP。 会话层:控制应用程序之间会话能力;如不同软件数据分发给不同软件。 标识层:数据格式标识,基本压缩
2021-05-27 14:23:49
218
原创 Java面试:2021.05.20
1、在讲项目的过程中,聊到了接口这块,瞬间惨不忍睹,问我是否考虑到幂等性问题了,怎么处理的?WC要崩啊!在实际的开发项目中,一个对外暴露的接口往往会面临,瞬间大量的重复的请求提交,如果想过滤掉重复请求造成对业务的伤害,那就需要实现幂等!我们来解释一下幂等的概念:任意多次执行所产生的影响均与一次执行的影响相同。按照这个含义,最终的含义就是对数据库的影响只能是一次性的,不能重复处理。 1、数据库建立唯一性索引,可以保证最终插入数据库的只有一条数据 2、token机制,每次接口请求前先
2021-05-27 14:22:06
158
原创 Java面试:2021.05.19
1、微服务架构下为什么会产生数据不一致的问题?在微服务架构下,多个服务之间通常会定义明确上下游关系,下游系统可以依赖上游系统,下游系统可以通过API查询或修改上游系统的数据;反过来则不然,上游系统不应该知道下游系统的存在,也就是说上游系统不能依赖下游系统,上游系统的变化只能通过异步事件的方式发出,下游系统监听事件并基于事件做对应的数据状态变化。在基于上面原则的微服务架构下(见上面图示,本文不考虑服务间循环依赖的场景),在上下游服务间的数据通信(图示中的每个箭头表示一种数据通信)一旦发生问题,都会产
2021-05-27 14:20:14
438
原创 Java面试:2021.05.18
1、讲一下你对线程池的理解。线程池(Thread Pool)是一种基于池化思想管理线程的工具,经常出现在多线程服务器中,如MySQL。线程过多会带来额外的开销,其中包括创建销毁线程的开销、调度线程的开销等等,同时也降低了计算机的整体性能。线程池维护多个线程,等待监督管理者分配可并发执行的任务。这种做法,一方面避免了处理任务时创建销毁线程开销的代价,另一方面避免了线程数量膨胀导致的过分调度问题,保证了对内核的充分利用。而本文描述线程池是JDK中提供的ThreadPoolExecutor类。当然
2021-05-27 14:19:16
285
原创 Java面试:2021.05.17
1、Java 的 io 模型?IO模型:BIO、NIO、IO多路复用、AIO。2、io 多路复用的实现有哪些?select、poll、epoll。1、select,poll实现需要自己不断轮询所有fd集合,直到设备就绪,期间可能要睡眠和唤醒多次交替。而epoll其实也需要调用epoll_wait不断轮询就绪链表,期间也可能多次睡眠和唤醒交替,但是它是设备就绪时,调用回调函数,把就绪fd放入就绪链表中,并唤醒在epoll_wait中进入睡眠的进程。虽然都要睡眠和交替,但是select和p.
2021-05-27 14:13:10
214
1
转载 “健康码”背后,腾讯慧眼高可用架构设计
一、腾讯云慧眼简介腾讯云慧眼人脸核身,是一组对用户身份信息真实性进行验证审核的服务套件,提供各类认证功能模块,包含证件 OCR 识别、活体检测、人脸比对, 及各类要素信息核验能力,以解决行业内大量对用户身份信息在线核实的需求,广泛应用于金融、政务民生等领域。抗疫期间,全国多个省份的健康码都会用到身份核验的过程,功能调用了腾讯云慧眼的后台认证能力。比如深圳公安、山西公安、云南公安等一系列的公安机关,还有人社、税务、政务综合、住建等政务机构,都对接到了腾讯云慧眼。举个例子,当你在深圳..
2021-05-18 10:48:08
1629
转载 腾讯会议大规模任务调度系统架构设计
疫情期间,很多企业受到了较大冲击,正常的复工生产无法进行。腾讯会议作为一款非常便捷的远程协作工具,成为了国内众多企业日常会议沟通交流的主要平台,这款产品从2019年12月26号正式推出,如何在这么短的时间内有效支撑起国内数以亿计用户的访问量呢?如何保障系统的稳定运行?下面为大家介绍,腾讯会议8天时间内完成100万核资源扩容背后的技术。一、两个典型案例首先介绍腾讯会议大规模扩容,下图所示为腾讯会议的架构图,左右两端的用户通过交换机连接到基站,然后接入腾讯云机房,首先会通过我们的调...
2021-05-18 10:34:20
1425
转载 计算压力倍增,携程度假起价引擎架构演变
一、背景介绍1. 什么是度假起价引擎?首先,解释一下什么是度假起价引擎。度假每个旅游线路涉及到不同的出发地,不同的出发地下有不同可出发班期,每个班期都有对应的这一天的价格。旅游产品的价格由多个资源组成的,任何一个资源价格发生变化,都会影响到产品的价格。为了尽快捕捉到价格变化,需要有一个专门的价格系统去监测不同资源的价格变化,这就是起价引擎。2. 旅游电商和普通电商的区别是什么?普通电商的商品基本都是标品,价格和库存都针对的是单个SKU(StockKeeping Un...
2021-05-18 10:25:41
271
转载 快手春节红包背后,高并发存储架构设计
一、快手红包案例背景2020年的春节,想必大家都印象深刻,除了新冠肺炎疫情,就是春晚各大APP的红包大战,让不少用户“薅”到了羊毛。大年三十看春晚,多年来已成为中国人的过年传统之一。春晚是覆盖全国各线城市和广大乡村的超过10亿观众的超级流量入口,可以迅速帮助互联网巨头们实现下沉、导流和拉新。事实上,红包早已不是单纯的红包,已经成为超级流量入口和新的强大增长引擎。在“红包”发放和领取的背后,包括大数据、云计算、支付结算等一系列的变革。过去五年来,央视春晚的舞台一直都是BA...
2021-05-18 10:18:05
489
转载 日均20亿流量:携程机票查询系统的架构升级
一、 机票搜索服务概述1. 携程机票搜索的业务特点首先简单介绍一下机票的搜索业务:大家可能都用过携程,当你去输入目的地,然后点击搜索的时候,我们的后台就开始了紧张的工作。我们基本上会在一两秒的时间,将最优的结果反馈给用户。这个业务存在以下业务特点。(1)高流量、低延时、高成功率首先,我们不得不面对非常高的流量,同时,我们对搜索结果要求也很高——成功率要高,不能说查询失败,或者强说成功,我们希望能够反馈给用户最优质最新鲜的数据。(2)多引擎聚合,SLA不一...
2021-05-18 10:03:12
654
转载 首日1.7亿访问量:穗康小程序口罩预约前后端架构及产品设计
一、口罩预约项目背景穗康是广州市政府提供的一个战役小程序,于1月30号上线,最开始版本只有三个功能:个人健康上报、疫情线索上报以及医疗物资上报,后续我们快速迭代了包括口罩预约、在线问诊、健康码等等功能。说起口罩预约的诞生背景,其实在春节假期前疫情爆发就已经初现端倪。在大年三十那天,我们团队开了电话会议,决定我们要通过互联网工具的方式帮助政府支持疫情的防控。而小程序具有开发快,门槛低,用户易上手的特点,是最适合做这种工具的渠道。经过沟通后,广州市政府很快决定要做这样的官方战役小程序..
2021-05-18 09:47:20
730
转载 腾讯会议核心数据库TDSQL,如何做到快速无损在线扩容?
引言自去年12月底发布后,腾讯会议40天更新14个版本,8天紧急扩容超过10万台云主机,投入的计算资源超100万核。疫情复工期间,每周都有数万家企业和政府相关机构使用腾讯会议复工复产,通过腾讯会议开拓了云签约、云招标、云面试、云培训等云上协同场景。腾讯会议这款云视频会议产品,日活跃账户数已超1000万,成为当前中国最多人使用的视频会议专用应用。目前,腾讯会议国际版也已经在超过100个国家和地区上线,助力全球战疫。作为腾讯会议核心数据库,近期腾讯分布式数据库 TDSQL 持续支撑腾讯会..
2021-05-18 09:38:00
436
转载 B站高可用架构实践
一、负载均衡负载均衡具体分成两个方向,一个是前端负载均衡,另一个是数据中心内部的负载均衡。前端负载均衡方面,一般而言用户流量访问层面主要依据DNS,希望做到最小化用户请求延迟。将用户流量最优地分布在多个网络链路上、多个数据中心、多台服务器上,通过动态CDN的方案达到最小延迟。以上图为例,用户流量会先流入BFE的前端接入层,第一层的BFE实际上起到一个路由的作用,尽可能选择跟接入节点比较近的一个机房,用来加速用户请求。然后通过API网关转发到下游的服务层,可能是内部的一些微服务或者业务的聚合层
2021-05-18 09:30:23
600
原创 Java面试:2021.05.16
1、try{}里有一个return语句,那么紧跟在这个try后的finally{}里的代码会不会被执行,什么时候被执行,在return前还是后? 答:会执行,在方法返回调用者前执行。 注意:在finally中改变返回值的做法是不好的,因为如果存在finally代码块,try中的return语句不会立马返回调用者,而是记录下返回值待finally代码块执行完毕之后再向调用者返回其值,然后如果在finally中修改了返回值,就会返回修改后的值。显然,在finally中返回或者修改返回值会...
2021-05-17 11:32:15
197
IT软件项目生命周期
2018-04-04
电商项目模块间调用关系
2018-04-04
python核心编程
2018-04-01
ssh注模式解真实案例
2017-03-30
如何根据京东API进行相关业务是开发,API如何使用,还请大神解答。
2016-11-01
TA创建的收藏夹 TA关注的收藏夹
TA关注的人