有干货的面试题 (持续更新)

(持续更新到找到工作...)

单点登录系统(SSO)(采用JWT + RSA)

  阐述:用户只需要登录一次就可以访问所有相互信任的应用系统,实现无状态登录

  流程:

    我们首先利用RSA生成公钥和私钥,私钥保存在授权中心,公钥保存到 Zuul网关 和 各个服务

    用户请求登录,服务端验证,将查询到的用户部分信息存入 JWT

    使用私钥对 JWT进行签名加密 返回 JWT 给客户端

    用户访问服务( 携带JWT ) 网关验证通过放行

    到达微服务,微服务直接使用公钥解析 JWT 获取其中的用户信息

  如何判断是否登录:

    从 cookie 中获取对应的 token,取不到视为未登录,重定向到登录页面(网关的拦截器干的事情)

实现购物车商品数据同步(localStorage + redis)

  阐述: 用户可以在登录和未登录下实现购物的添加

  流程:

    如果用户尚未登录,放入localStorage (HTML 5web本地储存,前端完成)

    如果用户已经登录,让入redis ( 购物车读写频率高 )

    查询购物车:

      尚未登录: 查询 localStorage

      已经登录:查询 localStorage是否有数据,有的话上传到 redis 合并,没有的话直接访问 redis

  redis 中数据的储存形式: 购物车结构为一个双层Map  :Map<String,Map<String,String>>

      第一层Map: key为用户id

      第二层Map key 为购物车中商品 id  ,value为购物车数据(手动序列化存入)

什么是负载均衡

  当服务器遇到高并发时,为了不让服务器崩溃,建立服务器集群来共同抵御高并发,实现服务的高可用

  负载均衡的底层是反向代理实现的

RabbotMQ消息队列

  作用:  通过异步的方式实现系统解耦完成系统间的通信(postman?)

  原理:  有五种消息模型,但大致的原理为:消息生产者向 交换机/队列 推送信息,消息消费者从队列中拉取消息并完成相应逻辑

  如何避免消息丢失:

    1: 消费者的ACK消息确认机制;(如果忘记确认,会导致内存泄漏,最后宕机)

    2: 消息的持久化 (需要将队列 ,交换机都持久化 )

    

    

    

原文地址:https://www.cnblogs.com/msi-chen/p/10520081.html

时间: 2024-08-30 10:38:48

有干货的面试题 (持续更新)的相关文章

高频面试题---持续更新

HashMap为什么是线程不安全的?哪个方法造成的?如何把它变为线程安全的? 1 HashMap在put的时候,插入的元素超过了容量(由负载因子决定)的范围就会触发扩容操作,就是rehash,这个会重新将原数组的内容重新hash到新的扩容数组中,在多线程的环境下,存在同时其他的元素也在进行put操作,如果hash值相同,可能出现同时在同一数组下用链表表示,造成闭环,导致在get时出现死循环,所以hashMap是线程不安全的. 2 通过Collections.synchronizedMap()来封

你应该知道的 javascript面试题 --- 持续更新

var myObject = { foo: "bar", func: function() { var self = this; console.log("outer func: this.foo = " + this.foo); // bar console.log("outer func: self.foo = " + self.foo); // bar (function() { console.log("inner func:

Python-常见面试题-持续更新

1.请你简要介绍一下Python的生成器是什么 答:Python生成器是一个返回可以迭代对象的函数,可以被用作控制循环的迭代行为. 生成器类似于返回值为数组的一个函数,这个函数可以接受参数,可以被调用, 一般函数会返回包括所有数值的数组,生成器一次只能返回一个值, 这样消耗的内存将会大大减小. 2.请说明一下Python中 is 和 == 的区别? is是用来判断两个变量引用的对象是否是同一个, == 用于判断引用对象的值是否相等. 可以通过 id() 函数查看引用对象的地址 原文地址:http

阿里笔试题(2015)持续更新中

第一次做阿里笔试题,除了ACM题之外从来没有做过校招网络题呀,完全是裸考,总体感觉吧,对于我来说,感觉时间不够用,不是题不会,感觉时间紧,大脑很混乱,总结这一次的笔试题 废话不多说,直接上题和答案 平均每个人逗留时间为20分钟,那么开场前20分钟一共来了400人,且有20个人逗留时间已经到,但他们不一定出去,注意是平均时间,所有博物馆最少应该容纳500人 双向循环列表,从任何一个元素开始可以遍历全部元素 先和后面的元素相连 s->next=p->next; p->next->pre

干货!IT小伙伴们实用的网站及工具大集合!持续更新!

干货!IT小伙伴们实用的网站及工具大集合!持续更新! Other  崔庆才  4个月前 (12-24)  6720℃  7评论 1.Git 还在担心自己辛辛苦苦写的代码被误删了吗?还在担心自己改错了代码不能挽回吗?还在苦恼于多人开发合作找不到一个好的工具吗?那么用Git就对了,Git是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的项目版本管理.有了它,代码托管不是问题,版本控制不再苦恼,多人开发变得简单易行. 链接:http://git-scm.com/ 2.GitHub 学

ios笔试题收集(持续更新)

IOS开发笔试题目 一.OC语法部分: 1. NSObject 中description属性的意义,它可以重写吗 用法举例:定义一个Person类,声明两个成员变量 @interface Person : NSObject { NSString * name; int age; } 在类的实现中,init方法初始化成员变量 @implementation Person - (instancetype)init { self = [super init]; if (self) { name = @

前端笔试题总结---持续更新

写在前面:.... 1字符串逆序 function reverse(str){ return str.split("").reverse().join("");//直接用函数 var str1="";//从后向前输出 for(var i=str.length-1;i>=0;i--){ str1+=str[i]; } return str1; var len=str.length;//字符串原地逆序 for(var i=0;i<len;

前端面试题总结——Html5(持续更新中)

前端面试题总结--H5(持续更新中) 1.HTML5 为什么只需要写 <!DOCTYPE HTML>? HTML5 需要doctype来规范浏览器的行为,让浏览器按照它们应该的方式来运行:HTML4.01基于SGML,所以需要对DTD进行引用,才能告知浏览器文档所使用的文档类型. 2.HTML5的form如何关闭自动完成功能? 给不想要提示的 form 或某个 input 设置为 autocomplete=off. 3.HTML5 中如何嵌入音频? 当前,audio 元素支持三种音频格式:&l

前端面试题总结——HTML(持续更新中)

前端面试题总结--HTML(持续更新中) 1.什么是HTML? HTML:HyperText Markup Language超文本标记语言 2.XHTML和HTML有什么区别 HTML是一种基本的WEB网页设计语言,XHTML是一个基于XML的标记语言 3.简述一下你对HTML语义化的理解? html语义化让页面的内容结构化,结构更清晰,便于对浏览器.搜索引擎解析; 前端学习圈:767273102 ,从最基础的HTML+CSS+JavaScript.jQuery,Ajax,node,angula