网站首页 > java教程 正文
大家好,我是贠学文,点击右上方“关注”,每天为您分享java程序员需要掌握的知识点干货。
作为一个高级java工程师,或者高级以上的java工程师,能独立搭建一套高可用高并发的系统,是必备的技能,那应该如何搭建呢?
一、前端层
1.不用cookie存储任何东西,原因如下:
a.用户自己可以禁用cookie,一旦用户禁用了,就无法使用了。
b.一旦出现跨域的问题,处理起来非常麻烦。
c.安全性不高,csrf攻击,就是利用这一漏洞做的攻击。
2.解决xss攻击的问题。
二、传输层
1.从前端到nginx,采用https传输,保证数据安全,对于一些非常重要的交易,对关键字段做加密,并且做数据签名。
2.通过keepalived保证nginx的高可用,避免因为nginx服务宕机,导致整个服务不可用。
3.通过做验证码的方式,避免用户连续请求。
三、路由层
1.对于高并发的情况,通过nginx做限流,避免把全部请求都发送到后端服务器,给后端服务器带来压力。
2.通过nginx做集群,来保证后端服务器的高可用。
四、后端层
1.通过redis做分布式session的验证,此种验证方式,也可以解决crsf攻击的问题。需要redis做集群,来保证高可用。
2.当系统特别大的时候,单体服务难以支撑的时候,用springcloud做微服务,但是用微服务时,需要考虑如何合理的对项目做拆分,并做好降级和熔断,避免因为单个服务的问题,导致整个系统瘫痪。并且要考虑如何处理分布式事务的问题。
3.对于jdbc的封装,比较喜欢使用mybatisplus框架,既对简单sql做个封装,又支持复杂sql的编写。
4.在代码中编写sql语句时,采用预编译的方式,防止sql注入。
5.在并发量特别高的时候,比如抢购,或者说发送邮件、发送短信时,可以通过MQ做异步处理。为了保证MQ的高可用,需要做集群,并需要考虑到生产者断消息丢失,以及消费端重复消费的问题如何解决。
5.从java代码的角度上分析,比如:如何避免内存泄漏的发生、非线程安全类的合理使用,如何解耦合等等。
6.合理的设置JVM。
五、数据层
1.通过对mysql的读写分离,来保证mysql的高可用。
2.合理使用存储引擎,索引等等。
3.对于一些读取量大于写入量的数据,可以引入redis缓存,来提升读取效率,但是在使用redis缓存时,需要考虑如何保证mysql与redis数据一致性的问题。以及缓存击穿、缓存穿透、缓存雪崩的问题。为了保证redis的可用,需要对redis做集群。
4.对于数据量特别大的表,比如订单表,需采用分库分表,并引入ES+HBASE,来提升查询效率。
5.解决深度分页的问题。
往期精彩:
作者介绍:
贠学文,具有多有经验的java开发工程师,业余时间利用头条分享技术知识点与自己对技术的感悟,帮助对自己未来感到迷茫的程序员,在技术上得到提升。结识一些志同道合的朋友,相互促进,共同进步。
猜你喜欢
- 2025-01-05 Java高并发编程-线程入门
- 2025-01-05 tomcat8.5配置高并发
- 2025-01-05 Java编程-高并发情况下接口性能优化实践-提升吞吐量TPS
- 2025-01-05 Java高并发编程-深入了解Thread类
- 2025-01-05 大促流量激增,通过什么手段提升系统的高并发、高可用性?
- 2025-01-05 Java 多线程与高并发,基础概念回顾
- 2025-01-05 实战场景下的Java高并发知识指南
- 2025-01-05 一文看透Java高并发:Synchronized锁的性质、原理及其缺陷
- 2025-01-05 Kafka高可用,高吞吐量低延迟的高并发的特性背后实现机制
- 2025-01-05 java 高并发解决方案
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)