document.body.scrollheight 各浏览器不一致_为了接下来跳槽不被血虐,花了一个月整理出来的面试题—微服务篇...

1c3f95e0fc272b104ba7636f8c70ecef.png

微服务篇

微服务

  • 前后端分离是如何做的

在前后端分离架构中,后端只需要负责按照约定的数据格式向前端提供可调用的API服务即可。前后端之间通过HTTP请求进行交互,前端获取到数据后,进行页面的组装和渲染,最终返回给浏览器。| 后端 | 前端 | || ------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ || 服务器 | 浏览器 | || JAVA | NodeJS | JS + HTML + CSS || 服务层提供数据接口维持数据稳定封装业务逻辑 | 跑在服務器上的JS转发数据,串接服务路由设计,控制逻辑渲染页面,体验优化更多的可能 | 跑在浏览器上的JSCSS、JS加載與運行DOM操作任何的前端框架與工具共用模版、路由 |参考自: https://www.jianshu.com/p/fc0c63404cc7 和 http://2014.jsconf.cn/slides/herman-taobaoweb/index.html#/69

  • 微服务哪些框架

Dubbo,是阿里巴巴服务化治理的核心框架,并被广泛应用于阿里巴巴集团的各成员站点。阿里巴巴近几年对开源社区的贡献不论在国内还是国外都是引人注目的,比如:JStorm捐赠给Apache并加入Apache基金会等,为中国互联网人争足了面子,使得阿里巴巴在国人眼里已经从电商升级为一家科技公司了。Spring Cloud,从命名我们就可以知道,它是Spring Source的产物,Spring社区的强大背书可以说是Java企业界最有影响力的组织了,除了Spring Source之外,还有Pivotal和Netfix是其强大的后盾与技术输出。其中Netflix开源的整套微服务架构套件是Spring Cloud的核心。参考自:http://blog.didispace.com/microservice-framework/

  • 你怎么理解 RPC 框架

请参考: https://www.zhihu.com/question/25536695

  • 说说 RPC 的实现原理

首先需要有处理网络连接通讯的模块,负责连接建立、管理和消息的传输。其次需要有编解码的模块,因为网络通讯都是传输的字节码,需要将我们使用的对象序列化和反序列化。剩下的就是客户端和服务器端的部分,服务器端暴露要开放的服务接口,客户调用服务接口的一个代理实现,这个代理实现负责收集数据、编码并传输给服务器然后等待结果返回。参考自: https://liuzhengyang.github.io/2016/12/16/rpc-principle/

  • 说说 Dubbo 的实现原理

dubbo作为rpc框架,实现的效果就是调用远程的方法就像在本地调用一样。如何做到呢?就是本地有对远程方法的描述,包括方法名、参数、返回值,在dubbo中是远程和本地使用同样的接口;然后呢,要有对网络通信的封装,要对调用方来说通信细节是完全不可见的,网络通信要做的就是将调用方法的属性通过一定的协议(简单来说就是消息格式)传递到服务端;服务端按照协议解析出调用的信息;执行相应的方法;在将方法的返回值通过协议传递给客户端;客户端再解析;在调用方式上又可以分为同步调用和异步调用;简单来说基本就这个过程

  • 你怎么理解 RESTful
  • 说说如何设计一个良好的 API
  • 如何理解 RESTful API 的幂等性
  • 如何保证接口的幂等性
  • 说说 CAP 定理、 BASE 理论
  • 怎么考虑数据一致性问题
  • 说说最终一致性的实现方案
  • 你怎么看待微服务
  • 微服务与 SOA 的区别
  • 如何拆分服务
  • 微服务如何进行数据库管理
  • 如何应对微服务的链式调用异常
  • 对于快速追踪与定位问题
  • 微服务的安全

分布式

  • 谈谈业务中使用分布式的场景
  • Session 分布式方案
  • 分布式锁的场景
  • 分布是锁的实现方案
  • 分布式事务
  • 集群与负载均衡的算法与实现
  • 说说分库与分表设计
  • 分库与分表带来的分布式困境与应对之策

安全问题

  • 安全要素与 STRIDE 威胁
  • 防范常见的 Web 攻击
  • 服务端通信安全攻防
  • HTTPS 原理剖析
  • HTTPS 降级攻击
  • 授权与认证
  • 基于角色的访问控制
  • 基于数据的访问控制

性能优化

  • 性能指标有哪些
  • 如何发现性能瓶颈
  • 性能调优的常见手段
  • 说说你在项目中如何进行性能调优

针对于上面所涉及到的知识点我总结出了有1到5年开发经验的程序员在面试中涉及到的绝大部分架构面试题及答案做成了文档和架构视频资料免费分享给大家(包括Dubbo、Redis、Netty、zookeeper、Spring cloud、分布式、高并发等架构技术资料),希望能帮助到您面试前的复习且找到一个好的工作,也节省大家在网上搜索资料的时间来学习,也可以关注我一下以后会有更多干货分享。

资料获取方式:【点赞+关注】然后私信我【资料】即可免费获取!

beea084f0a1f2392eef48e20ce9006a8.png
f59dbf21a9e831d565c2748bd50ee400.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果`driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")`在滚动到页面底部时不起作用,可能有几个原因: 1. 页面加载未完成:在执行滚动操作之前,确保页面已经完全加载完成。可以使用`time.sleep()`方法添加等待时间,或者使用显式等待来确保页面加载完毕。 ```python import time from selenium import webdriver driver = webdriver.Chrome() driver.get("https://www.example.com") # 等待页面加载完全 time.sleep(3) # 等待3秒 # 滚动到页面底部 driver.execute_script("window.scrollTo(0, document.body.scrollHeight);") driver.quit() ``` 2. 页面内容高度不足:如果页面内容的高度不足以触发滚动到底部的操作,那么执行`scrollTo()`方法可能不会有明显的效果。可以尝试在滚动之前先增加页面内容,或者使用其他元素来实现滚动。 ```python from selenium import webdriver driver = webdriver.Chrome() driver.get("https://www.example.com") # 滚动到指定元素可见 element = driver.find_element_by_css_selector("footer") driver.execute_script("arguments[0].scrollIntoView();", element) driver.quit() ``` 3. JavaScript执行错误:如果页面中存在其他JavaScript错误,可能会导致`execute_script()`方法无法正常执行。可以在浏览器控制台中检查是否有错误信息,并修复这些错误。 请注意,以上只是一些常见的问题和解决方法,具体情况可能因网站和环境而异。如果问题仍然存在,请提供更多的上下文信息,以便更好地帮助你解决问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值