再战江湖

本文探讨了高并发环境下构建稳定系统的策略,包括系统拆分、缓存使用、消息队列、分库分表、读写分离、ElasticSearch和CDN加速等,并提供了一个SQL查询案例,用于找出每个部门业绩最高的员工。

单例的典型应用场景是什么

spring singleton的缺省是饿汉模式:启动容器时(即实例化容器时),为所有spring配置文件中定义的bean都生成一个实例

spring singleton设置为懒汉模式:<beans default-lazy-init="true">在第一个请求时才生成一个实例,以后的请求都调用这个实例

写出SQL查询,获得预期结果。

Employee 表包含所有员工信息,每个员工有其对应的 Id, Performance和 department Id。
+----+-------+--------+--------------+
| Id  | Name  | Performance| DepartmentId |
| 1  | 张三   | 700000     | 1            |
| 2  | 李四   | 800000     | 2            |
| 3  | 王五   | 600000     | 2            |
| 4  | 赵六   | 900000     | 1            |
+----+-------+--------+--------------+
Department 表包含公司所有部门的信息。
| Id  | Name          |
| 1  |  北方销售部    |
| 2  |  南方销售部    |
编写一个 SQL 查询,找出每个部门业绩最高的员工。例如,根据上述给定的表格,查询结果如下:
+------------+----------+--------+
| Department | Employee |Performance|
|北方销售部  |赵六     | 900000    
|南方销售部  |李四     | 800000    |
+------------+----------+--------+
SELECT
	d. NAME,
	a. NAME,
	a.Performance
FROM
	employee a
LEFT JOIN department d ON a.DepartmentId = d.Id
WHERE
	NOT EXISTS (
		SELECT
			1
		FROM
			employee b
		WHERE
			a.DepartmentId = b.DepartmentId
		AND a.Performance < b.Performance
	)

简述JVM模型组成部分及各个部分的作用

1)程序计数器存储线程当前执行的字节码行号,字节码解释器在工作时就会通过改变这个计数器的值来选取下一条要执行的字节码指令。

2)虚拟机栈用于每个方法的局部变量表,操作数栈,动态链接,方法出口等信息。

3)本地方法栈与虚拟基站一样,不同的是它只为navtive方法服务,而虚拟机栈为java方法服务。

4)堆是java虚拟机管理的内存中最大的一块区域,在虚拟机启动时创建,此内存区域的唯一目的就是存放对象实例。它是垃圾收集器管理的主要区域。java堆可以处于内存中的不连续区域中,只要逻辑连续即可。

5)方法区存储已被虚拟机加载的类的信息,常量,静态变量,即时编译器编译后的代码等数据。

如何构建一个高并发环境下高可用,稳定的系统?

系统拆分

将一个系统拆分为多个子系统,使用 Spring Cloud 来做,然后每个系统连一个数据库

缓存

在数据库层之上加一层缓存,减少对数据库的访问压力

MQ

承载复杂写业务逻辑的场景里,用 MQ 来异步写,提升并发性

分库分表

将一个数据库拆分为多个库,多个库来扛更高的并发;然后将一个表拆分为多个表,每个表的数据量保持少一点,提高 sql 跑的性能

读写分离

主库写入,从库读取,搞一个读写分离。读流量太多的时候,还可以加更多的从库。

ElasticSearch

es 是分布式的,可以随便扩容,分布式天然就可以支撑高并发

CDN 加速

选择最优路径,把每个角落的请求快速的传递到机房

HTML 页面静态化

静态页面部署在 NGNIX 中,收到用户请求,Ngnix 不需要访问 Webapp 即可响应用户,减少应用渲染页面的时间,同时也降低了应用的压力。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值