码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【Java项目】经典面试题总结-史上最全面试题思维导图总结(2022最新版)


    写在前面

    🍁个人主页:HNUJSY
    ✨本期专栏:《史上最全经典面试题总结》欢迎订阅学习~
    📌Xmind文件获取:GitHub 持续更新中,别忘了 star 喔~

    目录

    • 写在前面
    • 思维导图(png格式可下载放大)
    • 谷粒商城项目
      • 分布式
        • 远程调用
        • 服务注册/发现&注册中心
        • 配置中心
        • 服务熔断&服务降级
        • API网关
        • redis集群
        • 持久化使用mysql
        • 消息队列(RabbitMQ)
        • ElaticSearch
        • 阿里云的对象存储服务OSS
        • 日志
        • 服务追踪
        • 持续集成和持续部署
      • 问题
        • docker
    • 停掉nginx
    • 创建新的nginx
        • 逻辑删除
        • 跨域问题
        • JSR303校验
        • session
      • 消息队列
        • 模式
        • 实现
        • rabbitmq
    • 0个或者多个单词
        • 消息确认机制

    「Java学习+面试指南」思维导图,计算机自学指南,包括Java基础、JVM、数据库、mysql、redis、计算机网络、算法、数据结构、操作系统等,后台技术栈/架构师之路/全栈开发社区,阿里,腾讯,百度,美团,头条等春招/秋招/校招/面试

    序号内容链接
    1Java集合经典面试题总结https://blog.csdn.net/HNUPCJ/article/details/127456294
    2JVM经典面试题总结https://blog.csdn.net/HNUPCJ/article/details/127456365
    3MySQL经典面试题总结https://blog.csdn.net/HNUPCJ/article/details/127453408
    4Redis经典面试题总结https://blog.csdn.net/HNUPCJ/article/details/127456253
    5并发编程经典面试题总结https://blog.csdn.net/HNUPCJ/article/details/127457663
    6分布式系统经典面试题总结https://blog.csdn.net/HNUPCJ/article/details/127457871
    7高可用架构经典面试题总结https://blog.csdn.net/HNUPCJ/article/details/127458014
    8Java项目经典面试题总结https://blog.csdn.net/HNUPCJ/article/details/127458047
    9安全经典面试题总结https://blog.csdn.net/HNUPCJ/article/details/127457801
    10数仓经典面试题总结https://blog.csdn.net/HNUPCJ/article/details/127458107

    思维导图(png格式可下载放大)

    在这里插入图片描述

    谷粒商城项目

    分布式

    远程调用

    • HTTP+JSON
      • feign

    服务注册/发现&注册中心

    • nacos

    配置中心

    • nacos

    服务熔断&服务降级

    • 当其中一个服务不可用时,有可能会造成雪崩效应
    • 服务熔断
      • 设置服务的超时,当被调用的服务经常失败到达某个阈值,我们可以开启断路保护机制,后来的请求不再去调用这个服务。本地直接返回默认的数据
    • 服务降级
      • 在运维期间,当系统处于高峰期,系统资源紧张,我们可以让非核心业务降级运行。降级:某些服务不处理,或者处理简单【抛异常、返回NULL、调用Mock数据、调用Fallback处理逻辑】

    API网关

    • Nginx把请求转交给API网关
      • 动态路由到指定服务
        • 负载均衡到某个服务器
    • 对服务进行熔断或降级
    • 认证授权
    • 限流(只放行部分到服务器)
    • gateway

    redis集群

    • (分片+哨兵集群+主从架构)

    持久化使用mysql

    • 读写分离和分库分表

    消息队列(RabbitMQ)

    • 异步解耦,分布式事务的一致性

    ElaticSearch

    • 全文检索,检索商品信息

    阿里云的对象存储服务OSS

    日志

    • 使用ELK对日志进行处理,使用LogStash收集业务里的各种日志,把日志存储到ES中,用Kibana可视化页面从ES中检索出相关信息

    服务追踪

    • 使用springcloud提供的Sleuth、Zipkin、Metrics,把每个服务的信息交给开源的Prometheus进行聚合分析,再由Grafana进行可视化展示,提供Prometheus提供的AlterManager实时得到服务的告警信息,以短信/邮件的方式告知服务开发人员

    持续集成和持续部署

    • 有了持续集成后开发人员可以将修改后的代码提交到github,运维人员可以通过自动化工具Jenkins Pipeline将github中获取的代码打包成docker镜像,最终是由k8s集成docker服务,将服务以docker容器的方式运行

    问题

    docker

    docker pull nginx:1.10

    随便启动一个nginx实例,只是为了复制出配置,放到docker里作为镜像的统一配置

    docker run -p 80:80 --name nginx -d nginx:1.10

    cd /mydata/nginx
    docker container cp nginx:/etc/nginx .
    然后在外部 /mydata/nginx/nginx 有了一堆文件
    mv /mydata/nginx/nginx /mydata/nginx/conf

    停掉nginx

    docker stop nginx
    docker rm nginx

    创建新的nginx

    docker run -p 80:80 --name nginx
    -v /mydata/nginx/html:/usr/share/nginx/html
    -v /mydata/nginx/logs:/var/log/nginx
    -v /mydata/nginx/conf:/etc/nginx
    -d nginx:1.10

    注意一下这个路径映射到了/usr/share/nginx/html,我们在nginx配置文件中是写/usr/share/nginx/html,不是写/mydata/nginx/html

    docker update nginx --restart=always
    原文链接:https://blog.csdn.net/hancoder/article/details/106922139

    逻辑删除

    • mybatis-plus 的内容,会在项目中配置一些内容,告诉此项目执行delete语句时并不删除,只是标志位

    跨域问题

    • 指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对js施加的安全限制。
      • 协议,域名,端囗都要相同,其中有一个不同都会产生跨域
    • 跨域请求的实现是通过预检请求实现的,先发送一个OPSTIONS探路,收到响应允许跨域后再发送真实请求
      • 跨域是要请求的、新的端口那个服务器限制的,不是浏览器限制的。
    • 解决方案
      • 设置nginx包含admin和gateway。都先请求nginx,这样端口就统一了
      • 让服务器告诉预检请求能跨域
        • 在服务端配置允许跨域
          • https://blog.csdn.net/hancoder/article/details/106922139

    JSR303校验

    • javax.validation.constraints

    • 注解

      • @NotNull
        • 注解禁止元素为null,能够接收任何类型
      • @NotEmpty
        • 该注解修饰的字段不能为null或""
      • @NotBlank
        • 该注解不能为null,并且至少包含一个非空格字符。接收字符序列
    • controller中加校验注解@Valid,开启校验

      • 添加注解的时候,修改message
        @NotBlank(message = “品牌名必须非空”)
    • 给校验的Bean后,紧跟一个BindResult,就可以获取到校验的结果。

      public R save(@Valid @RequestBody BrandEntity brand,
      BindingResult result){ // 手动处理异常

    • 统一异常处理 @ExceptionHandler

    session

    • 多系统单点登录
      • xxl-sso
        • token

    消息队列

    模式

    • 点对点式
      • 一个发布,一个接收
    • 发布订阅式
      • 一个发布,多个接收

    实现

    • jms
      • java消息服务
        jdbc
        • java
          • activemq
    • amqp
      • 高级消息队列协议
        • 跨语言
          • rabbitmq

    rabbitmq

    • publisher生产者

    • message头+体
      route-key 路由键

    • broker消息代理

      • exchange交换机
        负责接收消息

        • direct

          • 点对点
            • 路由键和队列名完全匹配
        • fanout

          • 广播
            • 全部广播
        • topic

          • 发布订阅

            • 部分广播

              • 0个或者多个单词

                • 一个单词
      • Queue队列
        存储消息

    • Consumer消费者

      • connection连接
        • 一个连接多个信道channel

    消息确认机制

  • 相关阅读:
    RSA加密算法的数学原理
    数据库基础(一)
    【go语言基础】go类型断言 type switch + case,t := x.(type)
    2019ICPC南京站
    Android学习笔记 82. 可绘制对象、样式和主题
    ThreadLocal 源码解析
    【postgresql】postgresql行转列
    Django ORM:数据库操作的Python化艺术
    nodejs(二)http模块,创建最基本的web服务器,req请求对象,监听request事件,动态响应内容
    Command(命令模式)
  • 原文地址:https://blog.csdn.net/HNUPCJ/article/details/127458047
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号