1.线程池icon大小如何设置?
2.请你谈谈 MySQLicon 事务隔离级别,MySQL 的默认隔离级别是什么?
3.谈一谈缓存穿透、缓存击穿和缓存雪崩,以及解决办法?
4.谈谈对于 Spring AOP 的了解?
5.RabbitMQicon 如何保证消息不丢失 ?
6.Springicon的Beanicon是单例的吗?
7.常见的饱和策略有哪些?
8.HashTableicon和ConcurrentHashMap实现线程icon安全的区别是什么?
9.linuxicon下如何查看网络端口状态(netstat),如何查看内存使用情况(top)?
10.分布式系统如何负载均衡?如何确定访问的资源在哪个服务器上?
11.用过哪些容器?(tomcaticon)对比过Tomcat与其他服务器的区别吗?比如nginxicon?
12.进程间共享内存的方式有哪些
-
线程池中的线程数量和大小应该根据具体的应用场景和系统资源来决定,一般可以根据CPU核心数和内存大小来设置线程池大小,线程池中的线程大小应该越小越好,通常建议线程大小为CPU核心数的2-4倍。
-
MySQL的事务隔离级别包括读未提交(Read Uncommitted)、读已提交(Read Committed)、可重复读(Repeatable Read)和串行化(Serializable)。MySQL的默认隔离级别是可重复读。
-
缓存穿透是指查询一个不存在的数据,缓存和数据库都没有,这样的查询请求会直接打到数据库上,对数据库造成压力。解决办法包括布隆过滤器、缓存空对象等。缓存击穿是指一个缓存key在某个时间点过期失效,同时又有大量并发请求访问这个key,这些请求会直接访问数据库,造成数据库压力过大。解决办法包括加锁、热点数据预加载等。缓存雪崩是指在某个时间段内缓存中的大量数据同时失效,导致大量请求直接访问数据库,造成数据库压力过大,甚至宕机。解决办法包括缓存数据过期时间设置随机化、设置多级缓存、限流等。
-
Spring AOP是Spring框架的一个核心模块,它提供了面向切面编程的支持。Spring AOP采用动态代理技术,在运行时生成代理对象,通过代理对象将横切逻辑织入到目标对象的方法调用中。Spring AOP可以实现日志记录、事务处理、权限控制等功能。
-
RabbitMQ提供了多种方式来保证消息不丢失,包括持久化、事务、ACK确认机制、发布确认机制等。其中持久化可以将消息存储在磁盘上,即使RabbitMQ服务器宕机也可以恢复;事务机制可以保证消息的原子性,即要么全部被消费者接收,要么全部被放弃;ACK确认机制可以确保消息被消费者正确接收;发布确认机制可以确保生产者发送的消息已被RabbitMQ服务器正确接收。
-
Spring的Bean默认是单例的,即每个Bean在整个应用程序中只有一个实例。如果需要创建多个实例,可以使用原型作用域或自定义作用域来创建多个实例。
-
常见的饱和策略包括阻塞、丢弃、丢弃最老的请求等。阻塞策略会将请求放入队列中等待可用线程资源,如果没有可用的线程资源,会一直等待,直到有可用的线程资源。丢弃策略会直接丢弃请求,不做任何处理,适用于一些非关键性的请求。丢弃最老的请求策略会丢弃队列中最老的请求,保证队列中的请求都是相对新的请求,适用于一些需要保证相对新请求优先处理的场景。
-
HashTable是一个线程安全的Map实现,内部使用synchronized关键字来保证线程安全;而ConcurrentHashMap采用了分段锁技术,将整个Map分为多个段(Segment),每个段内部维护了一个小的HashTable,每个段都有自己的锁。因此,ConcurrentHashMap可以同时支持多个线程的并发访问,每个线程只需要获取对应段的锁即可,不会影响其他段的访问。
-
在Linux下,可以使用netstat命令来查看网络端口状态,包括正在监听的端口和已经建立的连接;使用top命令可以查看系统的进程和内存使用情况,包括进程CPU占用率、内存使用率等。
-
分布式系统的负载均衡可以采用多种方式,包括轮询、随机、最小连接数、一致性哈希等。在确定访问的资源在哪个服务器上时,可以采用哈希算法根据请求的特征值计算出对应的服务器,也可以使用ZooKeeper等分布式协调服务来进行管理和调度。
-
容器是指在一个操作系统上运行多个独立的应用程序,常见的容器包括Tomcat、Jetty、Jboss、Weblogic等。Tomcat是一个Web服务器和Servlet容器,而Nginx则是一个高性能的Web服务器和反向代理服务器,主要用于静态内容的传输和负载均衡。
-
进程间共享内存的方式包括使用共享文件、共享内存区域、消息队列、管道、信号量等。其中共享内存区域是最常用的方式,它将一个内存区域映射到多个进程的地址空间中,从而实现共享内存。消息队列可以实现进程间的异步通信,管道可以实现进程间的同步通信,信号量可以实现进程间的互斥和同步。
网友评论