潇潇雨歇_
码龄8年
  • 1,738,430
    被访问
  • 890
    原创
  • 1,155
    排名
  • 1,286
    粉丝
关注
提问 私信

个人简介:www

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:海南省
  • 目前就职: 阿里云计算有限公司
  • 加入CSDN时间: 2014-10-07
博客简介:

汉南最後の読書人

博客描述:
有时间就随便写写,一些个人总结,代码心得。
查看详细资料
  • 5
    领奖
    总分 1,401 当月 23
个人成就
  • 获得513次点赞
  • 内容获得440次评论
  • 获得1,969次收藏
创作历程
  • 3篇
    2022年
  • 12篇
    2021年
  • 8篇
    2020年
  • 60篇
    2019年
  • 52篇
    2018年
  • 247篇
    2017年
  • 280篇
    2016年
  • 127篇
    2015年
  • 107篇
    2014年
成就勋章
TA的专栏
  • 生活感悟
  • Vue学习笔记
    1篇
  • 项目运维
    11篇
  • SQL优化
    4篇
  • Python学习笔记
    2篇
  • Docker相关
    2篇
  • C++编程
    167篇
  • YTU--OJ题解(C++)
    29篇
  • Java学习笔记
    47篇
  • 蓝桥杯训练Java
    42篇
  • 数据结构
    15篇
  • Java EE学习笔记
    18篇
  • Struts 2框架学习笔记
    18篇
  • Hibernate 框架学习笔记
    21篇
  • Spring 框架学习笔记
    24篇
  • Angular JS学习笔记
    7篇
  • Linux 系统学习笔记
    17篇
  • 软件设计与体系结构
    6篇
  • WebService 学习笔记
    5篇
  • Oracle 学习笔记
    29篇
  • NoSQL学习笔记
    11篇
  • Java 并发编程
    25篇
  • Java 网络编程
    6篇
  • 定时任务调度 学习笔记
    7篇
  • Java 消息中间件 学习笔记
    8篇
  • 深入理解Java虚拟机
    3篇
  • 办公数据处理
    2篇
  • 全文检索相关
    16篇
  • 大数据开发
    15篇
  • Activiti工作流框架
    12篇
  • Java日志处理框架
    1篇
  • Java权限管理框架
    4篇
  • Spring MVC 框架学习笔记
    35篇
  • MyBatis 框架学习笔记
    21篇
  • 微服务架构学习笔记
    12篇
  • 源码学习分析
    7篇
  • Nginx 学习总结
    3篇
  • 微信开发
    1篇
兴趣领域 设置
  • 大数据
    redis
  • 后端
    spring架构
  • 搜索
    elasticsearch
  • 服务器
    linux
  • 最近
  • 文章
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

记一次线上故障--HashMap在多线程条件下运行造成CPU 100%

问题就出现在了while (e != null),从上面的代码看来,每一个线程进来都先执行dataMap = new HashMap();这个时候dataMap是空的,所以在执行下面的操作的时候进入了某一个不可以随意更改状态的代码中,再加上高并发,一直被new HashMap(),while一直被执行,变成了死循环。cpu就瞬间飙升到100%,一直持续到请求数降低的时候。重构问题代码,多线程并发扩容时就会出现环形引用的问题,从.........
原创
发布博客 2022.06.23 ·
167 阅读 ·
0 点赞 ·
0 评论

Hbase geohash实现地理轨迹的空间搜索实现思路设计

需求背景:现有用户的出行轨迹都存储在分布式的hbase库中,管理员需要从地图上框选一个矩形或多边形区域,找出该区域和指定时间内活动的用户及其出行轨迹,进行分析。经过调研,了解到关于地理索引有一套比较通用的GeohHash算法,于是使用geohash实现该空间搜索的逻辑。GeoHash是将二维的经纬度转换成字符串,每一个字符串代表了某一矩形区域。也就是说,这个矩形区域内所有的点(经纬度坐标)都共享相同的GeoHash字符串,比如说我在七天酒店,我朋友在附近的世纪百货,我们的经纬度点会得到相同的GeoHash.
原创
发布博客 2022.04.26 ·
208 阅读 ·
0 点赞 ·
0 评论

线上 java.lang.OutOfMemoryError: unable to create new native thread问题解决思路

问题来源:kafka多个topic的消费数据使用到了线程池的监听消费,以异步处理,提高效率。但是生产上代码运行一段时间后会报java.lang.OutOfMemoryError: unable to create new native thread 程序宕掉,是一个生产致命错误。线程池配置如下: private static ThreadFactory threadFactory = new ThreadFactoryBuilder().setNameFormat("thread-pool.
原创
发布博客 2022.03.21 ·
6039 阅读 ·
0 点赞 ·
0 评论

SpringBoot + ShardingSphere实现读写分离,分库分表

分布式项目在通过一定的服务拆分,项目运行一段时间以后,随着用户和使用资源的不断增大,数据库的性能也会面临瓶颈。单表数据量过大,超高并发的读写引发的锁问题,导致系统运行加载越来越慢,不时出现系统假死的现象,数据库的优化已将近极限,几乎没有空间,这时就需要考虑读写分离,分库分表(这里主要是水平的分库分表)的策略,来减少对同一数据库的访问的压力。一.操作的工程目录二.读写分离application.yml​spring: shardingsphere: data.
原创
发布博客 2021.11.26 ·
920 阅读 ·
0 点赞 ·
0 评论

ShardingSphereTest.zip

发布资源 2021.11.26 ·
zip

SpringBoot 的多数据源配置与动态切换

在使用SpringBoot开发项目时,随着业务量的扩大,我们通常会进行数据库拆分或引入其他数据库,因此需要配置多个数据源,并能实现其动态切换。一.工程目录截图二.相关代码2.1多数据源application.yml配置文件# 数据源配置spring: datasource: type: com.alibaba.druid.pool.DruidDataSource driverClassName: com.mysql.cj.jdbc.Dr...
原创
发布博客 2021.11.24 ·
947 阅读 ·
0 点赞 ·
1 评论

SpringBoot多数据源切换.zip

发布资源 2021.11.24 ·
zip

搭建Prometheus+Grafana统一监控平台

在分布式项目的运维当中,经常会遇到服务器负载过高的问题,由于没有监控,一直没发现,直到业务方反馈系统操作速度慢,才发现问题,这样显得十分被动,于是打算搭建一套用于监控系统服务器的统一监控平台。一.实现的监控目标二.搭建所需的安装包及配置文件三.Prometheus服务端安装以下操作皆在监控主机(172.10.0.1)上执行3.1关闭防火墙# systemctl stop firewalld# systemctl disable firewalld3.2安装 ...
原创
发布博客 2021.11.19 ·
211 阅读 ·
0 点赞 ·
0 评论

玩转docker+nginx : 局域网制作宝塔面板docker镜像,并导出使用

一.宝塔面板镜像的制作(本地VM虚拟机操作)1.重启docker服务systemctl daemon-reload;systemctl restart docker;2.拉取一个centos镜像作为基础镜像docker pull centos3.创建docker容器docker images;docker run -dit -it -p 8888:8888 --name=baota-centos 5d0da3dc9764(docker images命令查出的cento
原创
发布博客 2021.11.05 ·
2620 阅读 ·
0 点赞 ·
0 评论

GitLab + Jenkins实现一键分布式项目自动化部署

、、分布式项目的打包部署增加了运维人员的工作量,而且工作是机械重复,极无技术含量的,说白就是打更。我们要把复杂的事情简单化,简单的事情标准化,标准的事情流程化,所以打包部署成了我们流程化里头的流水线。该项目是一个有5台+以上的服务器分流部署的分布式项目,针对该项目的自动化部署所作的持续集成拓扑图如下所示(截图有限,只画了3台,意思到位即可,IP为虚拟IP):一.jenkins需要装的插件Git,Pipeline,Publish Over SSH等搜索安装即可二.配...
原创
发布博客 2021.10.19 ·
755 阅读 ·
1 点赞 ·
0 评论

Linux自定义shell脚本一键启停微服务jar包

Java项目在Linux系统中的部署通常是以tomcat等容器化的方式部署,或者jar包的形式直接运行。在自动化部署畅行的今天,仍然会有不少的公司采用手动部署的方式部署 jar 包。而微服务打包形成的诸多jar,和上线前后频繁的诸多升级部署操作,让负责项目的开发运维人员叫苦不迭,因此需要一套便捷的部署脚本,实现便捷的一键启停等操作。1.常用的部署命令:ps -ef |grep 服务名kill -9 PIDnohup java -jar 服务名 &tail -f nohup.out.
原创
发布博客 2021.10.18 ·
413 阅读 ·
3 点赞 ·
1 评论

MySQL分库分表总结

一.何为分库分表分库分表就是为了解决由于数据量过大而导致数据库性能降低的问题,将原来独立的数据库拆分成若干数据库组成 ,将数据大表拆分成若干数据表组成,使得单一数据库、单一数据表的数据量变小,从而达到提升数据库性能的目的。分库分表包括分库和分表两个部分,在生产中通常包括:垂直分库、水平分库、垂直分表、水平分表四种方式。(大库拆成小库,大表拆成小表)二.根据病状,对症下药2.1 问题一: 磁盘读IO瓶颈,热点数据太多,数据库缓存放不下,每次查询时会产生大量的IO,降低查询速度解决办法: 分库和垂直分表
原创
发布博客 2021.09.29 ·
101 阅读 ·
0 点赞 ·
0 评论

大屏推送数据demo.zip

发布资源 2021.09.28 ·
zip

索引优化驱动SQL优化总结

一.表字段建索引的优缺点优势:1.提高数据检索的效率,降低数据库的IO成本。2. 通过索引列对数据进行排序,降低数据排序的成本,降低了CPU的消耗。劣势:1.虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行INSERT、UPDATE和DELETE。因为更新表时,MySQL不仅要保存数据,还要保存一下索引文件每次更新添加了索引列的字段,都会调整因为更新所带来的键值变化后的索引信息。2.实际上索引也是一张表,该表保存了主键与索引字段,并指向实体表的记录,所以索引列也是要占用空间的。
原创
发布博客 2021.09.22 ·
51 阅读 ·
0 点赞 ·
0 评论

Explain性能分析总结

一.概念1.1 使用 EXPLAIN 关键字可以模拟优化器执行 SQL 查询语句,从而知道 MySQL 是如何处理你的 SQL 语句的。分析你的查询语句或是表结构的性能瓶颈。1.2 用法: Explain+SQL 语句,例如:EXPLAIN SELECT t2.dept_id FROM sys_role_dept t1, sys_dept t2 WHERE role_id IN ( SELECT role_id FROM sys_user_role WHERE user_id = 1 )
原创
发布博客 2021.09.18 ·
47 阅读 ·
0 点赞 ·
0 评论

如何使用多线程优化多查询复杂业务接口,并保证线程安全

介绍:如果一个接口中需要进行多步,而这些业务操作又是各自独立的,传统的依据代码顺序同步执行又比较耗时,传统的优化的空间又比较少,这时就可以考虑使用多线程的方式优化接口,让同步变异步,接口业务操作并行处理,极大提升接口的性能。在线程安全方面,我们可以使用CountDownLatch同步工具类来进行控制。 CountDownLatch是通过一个计数器来实现的,计数器的初始值为线程的数量。每当一个线程完成了自己的任务后,计数器的值就会减1。当计数器值到达0时,它表示所有的线程已经完成了任务,然后在闭锁上等待
原创
发布博客 2021.09.07 ·
354 阅读 ·
0 点赞 ·
1 评论

大屏的接口开发二: 基于SpringBoot的netty数据推送

该文章是继个人大屏接口方法系列:大屏的接口开发一: 基于SpringBoot的webSocket数据推送 之后的第二篇文章,也是实现大屏项目的服务端主动推送数据到前端的一个服务工具类,其相关的业务流程也是跟第一版有很大的相似之处1. SpringBoot整合Netty(pom.xml引入相关的jar包)<dependency> <groupId>io.netty</groupId> <artifactId>netty-all</artif
原创
发布博客 2021.08.31 ·
296 阅读 ·
0 点赞 ·
0 评论

大屏的接口开发一: 基于SpringBoot的webSocket数据推送

**在实际的项目开发中,需要用到大屏的展示,大屏的项目对于数据的实时性要求比较高,因此不能用http的接口,需要长连接的数据推送,大屏的免手动刷新,实现数据的同步变动展示。这里主要使用SpringBoot集成webSocket实现数据的全局发送,指定用户发送,值得注意的是这里使用了Spring自带的握手拦截器获取前端传来的userId,与webSocket的会话进行绑定,用于长连接的身份区分。如下是设计思路和代码实现。**1. SpringBoot整合WebSocket(pom.xml引入相关的jar.
原创
发布博客 2021.08.31 ·
879 阅读 ·
0 点赞 ·
2 评论

Linux服务器搭建VUE + Nginx部署环境

一.VUE相关环境搭建1.去Node.js官网选择合适版本的Node.js,下载安装wget https://nodejs.org/dist/v12.18.0/node-v12.18.0-linux-x64.tar.xz解压缩至指定文件位置xz -d node-v14.3.0-linux-x64.tar.xztar -xvf node-v14.3.0-linux-x64.tar重命名文件夹mv node-v14.3.0-linux-x64 nodeJS-V14.3.0
原创
发布博客 2020.06.03 ·
1278 阅读 ·
1 点赞 ·
0 评论

接口联调踩坑记

一个集团内部系统间为了避免数据孤岛的情况出现,总是少不了数据的同步,因此系统间的接口就必不可少。但是开发出的接口在对接的时候总是会出现各种各样奇葩的问题。这里记录几种日常接口对接所踩的坑(注意:这里的接口联调是后端传后端,并非所谓的前后端对接)1.所调接口网络不通有些公司使用的是集团内部网络,经常会出现服务器之间网络不通的情况,Linux服务器排查思路测试对接的目标接口网络#telnet命令telnet 域名/IP 端口如: telnet xxx.xxx.com 443#...
原创
发布博客 2020.05.30 ·
891 阅读 ·
0 点赞 ·
0 评论
加载更多