zoukankan      html  css  js  c++  java
  • Q&A

    1、Http长连接和Keep-Alive以及Tcp的Keepalive

    TCP的keep alive是检查当前TCP连接是否活着;HTTP的Keep-alive是要让一个TCP连接活久点。它们是不同层次的概念。

    https://blog.csdn.net/weixin_37672169/article/details/80283935 

    2、HttpClient出现大量time_wait问题解决

    https://www.cnblogs.com/kaleidoscope/p/9876903.html

    3、CMS(标记-清除算法)执行步骤

    · 初始标记(STW initial mark)

    在这个阶段,需要虚拟机停顿正在执行的应用线程,官方的叫法STW(Stop Tow World)。这个过程从根对象扫描直接关联的对象,并作标记。这个过程会很快的完成。

    · 并发标记(Concurrent marking)
    这个阶段紧随初始标记阶段,在“初始标记”的基础上继续向下追溯标记。注意这里是并发标记,表示用户线程可以和GC线程一起并发执行,这个阶段不会暂停用户的线程哦。

    · 并发预清理(Concurrent precleaning)
    这个阶段依旧是并发的,JVM查找正在执行“并发标记”阶段时候进入老年代的对象(可能这时会有对象从新生代晋升到老年代,或被分配到老年代)。通过重新扫描,减少在一个阶段“重新标记”的工作,因为下一阶段会STW。

    · 重新标记(STW remark)
    这个阶段会再次暂停正在执行的应用线程,重新从根对象开始查找并标记并发阶段遗漏的对象(在并发标记阶段结束后对象状态的更新导致),并处理对象关联。这一次耗时会比“初始标记”更长,并且这个阶段可以并行标记。

    · 并发清理(Concurrent sweeping)
    这个阶段是并发的,应用线程和GC清除线程可以一起并发执行。

    · 并发重置(Concurrent reset)
    这个阶段依旧是并发的,重置CMS收集器的数据结构,等待下一次垃圾回收。

    4、Tomcat 组件(filter listener servlet)执行顺序

    web.xml 的加载顺序是:context-param -> listener -> filter -> servlet

    <web-app>    
    <display-name></display-name>定义了WEB应用的名字    
    <description></description> 声明WEB应用的描述信息    
    
    <context-param></context-param> context-param元素声明应用范围内的初始化参数。    
    <filter></filter> 过滤器元素将一个名字与一个实现javax.servlet.Filter接口的类相关联。    
    <filter-mapping></filter-mapping> 一旦命名了一个过滤器,就要利用filter-mapping元素把它与一个或多个servlet或JSP页面相关联。    
    <listener></listener>servlet API的版本2.3增加了对事件监听程序的支持,事件监听程序在建立、修改和删除会话或servlet环境时得到通知。    
                         Listener元素指出事件监听程序类。    
    <servlet></servlet> 在向servlet或JSP页面制定初始化参数或定制URL时,必须首先命名servlet或JSP页面。Servlet元素就是用来完成此项任务的。    
    <servlet-mapping></servlet-mapping> 服务器一般为servlet提供一个缺省的URL:http://host/webAppPrefix/servlet/ServletName。    
                  但是,常常会更改这个URL,以便servlet可以访问初始化参数或更容易地处理相对URL。在更改缺省URL时,使用servlet-mapping元素。    
    
    <session-config></session-config> 如果某个会话在一定时间内未被访问,服务器可以抛弃它以节省内存。    
              可通过使用HttpSession的setMaxInactiveInterval方法明确设置单个会话对象的超时值,或者可利用session-config元素制定缺省超时值。    
    
    <mime-mapping></mime-mapping>如果Web应用具有想到特殊的文件,希望能保证给他们分配特定的MIME类型,则mime-mapping元素提供这种保证。    
    <welcome-file-list></welcome-file-list> 指示服务器在收到引用一个目录名而不是文件名的URL时,使用哪个文件。    
    <error-page></error-page> 在返回特定HTTP状态代码时,或者特定类型的异常被抛出时,能够制定将要显示的页面。    
    <taglib></taglib> 对标记库描述符文件(Tag Libraryu Descriptor file)指定别名。此功能使你能够更改TLD文件的位置,    
                      而不用编辑使用这些文件的JSP页面。    
    <resource-env-ref></resource-env-ref>声明与资源相关的一个管理对象。    
    <resource-ref></resource-ref> 声明一个资源工厂使用的外部资源。    
    <security-constraint></security-constraint> 制定应该保护的URL。它与login-config元素联合使用    
    <login-config></login-config> 指定服务器应该怎样给试图访问受保护页面的用户授权。它与sercurity-constraint元素联合使用。    
    <security-role></security-role>给出安全角色的一个列表,这些角色将出现在servlet元素内的security-role-ref元素    
                       的role-name子元素中。分别地声明角色可使高级IDE处理安全信息更为容易。    
    <env-entry></env-entry>声明Web应用的环境项。    
    <ejb-ref></ejb-ref>声明一个EJB的主目录的引用。    
    < ejb-local-ref></ ejb-local-ref>声明一个EJB的本地主目录的应用。    
    </web-app>    

    5、分布式锁实现方式

    6、Netty 内部组件

    Channel、EventLoop和ChannelFuture

    7、MySQL组合索引A+B+C,B或者AC是否走索引?

    联合索引又叫复合索引。对于复合索引:Mysql从左到右的使用索引中的字段,一个查询可以只使用索引中的一部份,但只能是最左侧部分。例如索引是key index (a,b,c)。 可以支持a | a,b| a,b,c 3种组合进行查找,但不支持 b,c进行查找 .当最左侧字段是常量引用时,索引就十分有效。

    8、如何顺序执行三个线程?CyclicBarrier和CountDownLatch区别

    9、ConcurrentHashMap  如何保证线程安全?CAS & Volatile?

    10、Volatile 操作数组元素保证原子性?

    11、String 对象在线程本地拷贝也有么?为什么?Object对象呢

    12、Vector实现

    13、synchronized 和  lock区别

    14、lock 默认公平锁还是非公平锁?公平锁是如何定义?如何实现

    14、根据IP地址路由负载均衡属于7层还是4层负载均衡

    15、kafka 如何保证消息顺序?保证高可用?

    16、分库分表TDDL 数据库事务

    17、Java线程未执行完,会被回收么?为什么?

    18、倒排索引

    19、在MySQL,B-tree和哈希索引区别

    20、threadLocal原理

    21、cache.get 操作实现,考虑高并发

    https://blog.csdn.net/yanyan19880509/article/details/52435135

    22、atomic内部CAS和volatile实现线程安全

    23、实时JVM缓存设计

    24、Kafka日志存储

    25、Kafka消息时间复杂度

    26、Kafka broker/replica 个数

    27、设计模式之策略模式

    28、间隙锁、自旋锁

    29、常见负载均衡算法

    30、虚拟机容器区别

    31、MySQL主从复制过程

     

  • 相关阅读:
    质量属性分析之《淘宝网》
    每日总结(3.7)
    每日总结(3.6)
    读架构漫谈有感
    每日总结(3.5)
    每日总结(3.4)
    laravel 输出时间少了8小时
    laravel 循环添加新的数据之后如何排序
    php trait使用详解
    laravel Guzzle使用
  • 原文地址:https://www.cnblogs.com/kaleidoscope/p/9852994.html
Copyright © 2011-2022 走看看