自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Mistra的博客

平凡不时与我们相遇,但是总会有闪光的时刻让我们变得与众不同,让过去变得有迹可循。我愿意在那些时刻到来之时,放下日复一日和循规蹈矩,让庸常破功,赦免自己的孤独。

  • 博客(177)
  • 资源 (3)
  • 问答 (2)
  • 收藏
  • 关注

原创 JVM调优参数大全及G1GC调优

一、JVM常见参数1、标准参数-verbose:class 打印每个class信息-verbose:gc 打印每次gc信息2、非标参数 -X-Xloggc:filename 设置GC log文件的位置 -Xloggc:log/gc.log-Xms大小 设置堆的初始化大小 -Xmx2048m =-XX:InitialHeapSize-Xmx大小 设置堆的最大大小 -Xms1024m =-XX:MaxHeapSize 一般Xms=Xmx,防止扩容和缩容-Xmn大小 设置年轻代大小(初始化和最大

2020-05-23 23:00:04 23329 4

原创 JUC---AbstractQueuedSynchronizer(AQS)解析(JDK13)

java.util.concurrent包系列文章JUC—ThreadLocal源码解析(JDK13)JUC—ThreadPoolExecutor线程池源码解析(JDK13)JUC—各种锁(JDK13)JUC—原子类Atomic*.java源码解析(JDK13)JUC—CAS源码解析(JDK13)JUC—ConcurrentHashMap源码解析(JDK13)JUC—CopyOnWr...

2020-04-06 23:23:39 541 1

原创 SpringBoot 整合 Netty + Websocket

最近项目中需要用到长连接服务,特地整合Netty+Websocket。我们系统需要给用户主动推送订单消息,还有强制用户下线的功能也需要长连接来推送消息一、准备工作Netty的介绍就看这里:https://www.jianshu.com/p/b9f3f6a16911必须要理解到一些基础概念,什么是BIO,NIO,AIO,什么是多路复用,什么是Channel(相当于一个连接),什么是管道等等概...

2019-09-07 18:13:32 5021 1

原创 SpringCloud 整合 TX-LCN分布式事务框架

微服务兴起,分布式事务也成为亟需解决的难题,业界解决方案很多,今天介绍一个我目前觉得最好用的TX-LCN。官网地址:http://www.txlcn.org/zh-cn/一、TX-LCN介绍TX-LCN由两大模块组成, TxClient、TxManager,TxClient就是你自己的服务,TxManager作为分布式事务的服务端。事务发起方或者参与反都由TxClient端来控制。...

2019-09-01 23:37:17 3011 2

原创 Java常见CodeReview及编码规范

鉴于自己的开发经验,以及常见容易产生bug及性能问题的点做个记录.

2023-11-29 17:40:17 435

原创 Kubernetes1.28.X 集群安装

Kubernetes1.28.X集群安装

2023-11-18 16:55:48 215

原创 关于docker网络实践中遇到的问题

关于doker网络实践中遇到的一些问题

2023-11-03 18:16:44 248

原创 Docker搭建ELK日志采集服务及Kibana可视化图表展示

Docker搭建ELK日志采集服务及Kibana可视化图表展示

2023-09-17 16:58:02 593

原创 记一次Nacos线程数飙升排查

Nacos线程飙升问题排查

2023-09-10 15:16:37 837 2

原创 A股自动交易,自动止盈止损,自动打板

A股 自动交易 自动止盈止损 自动打板

2023-08-26 16:47:13 455

原创 基于Nacos自动刷新ThreadPoolExecutor线程池参数

注册Nacos配置监听回调方法即可,基于注解@ConditionalOnClass(value = NacosConfigManager.class)实现自动装配。基于Spring容器启动事件ApplicationStartedEvent @EventListener实现监听注册。做了个注解启动动态线程池开关@EnableDiversityThreadPool,使用时加在启动类即可。业务上为了支撑动态刷新线程池核心参数,所以集成Nacos配置中心实现自动刷新。前提是系统已经集成Nacos相关依赖,比如。

2023-05-25 17:12:39 202

原创 Caffeine,HashMap,Redis性能对比压测

服务端是Java 单机,Redis在远程服务器上。服务启动时往缓存里放入5000个字符串。JMeter线程组设置:1秒内启动1100个线程,每个线程循环请求500次。因为Redis要花去网络开销,所以Java单机QPS受限。

2023-03-07 11:31:22 783

原创 计算线程池最佳参数和队列大小

计算线程池最佳参数和队列大小

2023-02-28 12:51:27 388

原创 基于Redis的接口幂等方案设计实现-SpringBoot

基于Redis的接口幂等方案设计实现

2023-01-11 16:30:34 223 1

原创 Java调用so动态库方法

在Java里面调用so动态库的方法

2022-10-26 13:57:07 4404

原创 Mybatis自定义Handler实现Json数组转List对象

先定义一个ListTypeHandler泛型为需要Json转换为的目标实体对象

2022-06-10 18:32:10 2483 4

原创 我用Java模拟炒股及分析打板晋级胜率-东方财富自动交易接口

我用Java模拟炒股及分析打板晋级胜率

2022-03-31 21:41:06 3486 17

原创 ClickHouse的核心特性简介

ClickHouse的核心特性。在 '快' 这一点上,它独领风骚!

2021-12-05 23:15:17 2054

原创 SpringBoot配置多数据源(整合MyBatis-plus)

业务需要,配置不同账号访问不同数据库。项目原来使用的单数据源+MyBatis-plus。按下面代码整合一切正常。直接上代码:排除SpringBoot的自动配置类DataSourceAutoConfiguration@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class})在properties中配置多数据源连接信息,名称为consultant和dwspring.datasource..

2021-10-19 15:55:33 468

原创 为Mysql Json类型数据创建索引

有时候想为Json类型的列创建索引,应该怎么搞呢?来自Mysql5.7官方文档:JSON列不能直接索引。要创建间接引用此列的索引,可以定义一个生成的列,以提取应该编制索引的信息,然后在生成的列上创建一个索引。mysql> CREATE TABLE jemp ( -> c JSON, -> g INT GENERATED ALWAYS AS (c->"$.id"), -> INDEX i (g) -&gt.

2021-07-25 18:14:33 2042

原创 ClickHouse集群搭建

ClickHouse相关安装包下载地址:安装包分享个我下载好的安装包集合:链接:https://pan.baidu.com/s/1Ela94sWBEnzDmDwS4FvVZg提取码:yw9pClickHouse集群依赖Zookeeper集群,安装前确保Zookeeper集群正常。1、配置hosts修改所有节点的hosts,拿我的3个节点举例:服务器之间最好配置好免密登录,确保端口开放正常,或者关闭防火墙。vim /etc/hosts在121.41.1.91配置为:127.0.0.1

2021-06-30 14:58:39 349

原创 Java后端,我的技术栈思维导图

自己整理了一份我自己的技术栈思维导图,有些技术点重点写的比较粗。思维导图下载:链接: https://pan.baidu.com/s/1l8dCGzRcyoExSHa3eCbX1g 密码: dfwd

2020-10-30 16:54:25 1963 3

原创 不得不吹一波!JVM在线诊断利器-Arthas(阿里开源)

JVM诊断工具何其多,今天才发现又一利器 - Arthas!可直接用于生产环境!在这之前很多工具是不能用于生产环境。可以直接看官网文档:Arthas下载压缩包,解压到服务器上https://github.com/alibaba/arthas/releases先启动个官方demojava -jar arthas-demo.jararthas-demo是一个简单的程序,每隔一秒生成一个随机数,再执行质因数分解,并打印出分解结果。然后启动arthasjava -jar arthas-boo

2020-08-24 14:32:19 808

原创 搭建Gitlab Server

参考 https://about.gitlab.com/installation1. 准备工作CentOS2. 安装依赖软件sudo yum install -y git vim gcc glibc-static telnetsudo yum install -y curl policycoreutils-python openssh-serversudo systemctl enable sshdsudo systemctl start sshdsudo yum install postf

2020-08-15 22:44:01 344

原创 Kubeadm搭建K8s集群

准备准备三台服务器。云服务器或者本地vagrant+VirtualBOX创建虚拟机都行。三个节点安装’docker’,‘kubeadm’, ‘kubelet’ and ‘kubectl’vi etc/yum.repos.d/kubernetes.repo添加如下内容[kubernetes]name=Kubernetesbaseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64enabled=1g

2020-08-15 17:14:19 355

原创 Minkube搭建K8s-单节点

本地搭建K8s环境的方法Minkube搭建单节点的k8skubeadm可以搭建多节点的k8s集群在cloud搭建:kops play-with-k8s搭建此外很多云服务上也提供K8s集群服务!Minkube搭建K8s安装kubectlcurl -LO https://storage.googleapis.com/kubernetes-release/release/v1.18.0/bin/linux/amd64/kubectl-- 也可以直接访问curl后面的地址手动下载文件,上传到服

2020-08-15 16:57:46 522 1

原创 搭建docker-swarm集群

一、常规创建方式首先,准备好2-3台服务器,虚拟机也行,并且都已安装好docker环境。选择其中一台作为Manager节点docker swarm init --advertise-addr=服务器ip //初始化一个swarm manager节点复制上面提示的加入worker节点命令,在另一台服务器创建worker节点docker swarm join --token SWMTKN-1-3fl517msk9xmo12fw3x3mkrb3fbom1ligm3eklqv78cskq8oiq-

2020-08-08 18:05:56 271

原创 Docker-compose

1、安装进入下面的网址下载目前的最新版:https://github.com/docker/compose/releases/tag/1.14.0-rc2docker-compose-Linux-x86_64然后将文件上传到 /usr/local/bin/ 文件夹下,然后将其重命名为docker-compose,修改此文件的权限,增加可执行:chmod +x /usr/local/bin/docker-composedocker-compose -version2、命令docker-compo

2020-08-08 17:38:07 207

原创 修改Docker镜像源

修改或新增 /etc/sysconfig/dockertouch /etc/sysconfig/dockervim /etc/sysconfig/docker增加如下参数# vi /etc/sysconfig/dockerOPTIONS='--selinux-enabled --log-driver=journald --registry-mirror=https://registry.docker-cn.com'重启docker服务即可service docker restart

2020-08-07 22:55:21 559

原创 Redefinition failed with error 62

用jvisualVM连接jvm执行Profiler性能分析时报错:Redefinition failed with error 62控制台报错显示:Profiler Agent Error Redefinition failed for class........解决办法:JVM启动参数添加参数:-Xverify:none参考官方:https://visualvm.github.io/troubleshooting.htmlhttps://github.com/oracle/visual

2020-06-30 19:56:47 838

原创 JMT - 自研JVM性能监控与调优系统(一)

公司的项目后台实现采用的Java。系统中存在很多后台任务。线程池,队列,缓存也是遍布整个系统。平常测试的时候也因为一些OOM导致程序无法响应请求。还因为某些基础库的问题导致CPU错误,导致程序挂掉。脑子里就冒出个想法,想设计一个基础库,能监控系统中的线程池,队列,缓存的内存使用情况,记录关键方法的执行时间,找出耗时的方法,才能精准的优化,提高系统整体性能。所以我就想设计一个这样的性能监控系统。还要结合微服务的相关服务治理中间件。服务注册,统一配置中心,微服务管理中心等等。实现对系统服务的整体监控。最近

2020-05-31 22:07:45 771

原创 Java应用/JVM宕机排查步骤

相信大家都遇到过,自己的Java应用运行一段时间就宕机了或者响应请求特别慢。这时候就需要我们了来找出问题所在了。绝大部分都是代码问题导致的。一、服务宕机如果是服务宕机,发生致命问题导致进程已经死掉了,那么已经访问不了了,通常都是CPU问题引起的,程序一般会自己生成javacore文件,一般生成位置在/root目录或jar包同目录下。JavaCore文件主要保存的是Java应用各线程在某一时刻的运行的位置,即JVM执行到哪一个类、哪一个方法、哪一个行上。找到这个文件,执行命令gdb java &lt

2020-05-24 00:02:30 2440

原创 JVM内存模型及垃圾收集器介绍

一、JVM的内存模型Metaspace:Class、Package、Method、Field、字节码、常量池、符号引用等CCS:32位指针的Class,没开启短指针压缩的话不会有这个。-XX:+UseCompressedClassPointersCodeCache:JIT编译后的本地代码,JNI使用的C代码。开启编译执行才有。-Xint=解释执行。运行时数据区程序计数器PC RegisterJVM支持多线程同时执行,每一个线程都有自己的程序计数器,线程正在执行的方法叫做当前方法,如果是Java

2020-05-23 23:11:21 357

原创 JVM---jstack分析Java线程CPU占用,线程死锁

本文章主要演示在Windows环境,Linux环境也差不多。一、分析CPU占用飙高首先写一个Java程序,并模拟一个死循环。让CPU使用率飙高。CPU负载过大的话,新的请求就处理不了了,这就是很多程序变慢了甚至不能访问的原因之一。下面是我这里的Controller,启动程序之后,开多个请求访问这个方法。死循环代码就不贴了,自己构造。我这里模拟的一个截取字符串的死循环。/** * 演示...

2020-04-19 15:27:58 415

原创 CentOS 安装 Docker

版本查看当前版本:cat /etc/redhat-releaseCentOS Linux release 7.5.1804 (Core)安装一些必要的系统工具sudo yum install -y yum-utils device-mapper-persistent-data lvm2添加软件源信息sudo yum-config-manager --add-repo http...

2020-04-15 22:47:24 351

原创 JUC---多线程下控制并发流程(JDK13)

一、概览控制并发流程的工具类概览二、CountDownLatch倒数计数器,倒数结束之前,一直处在等待状态,直到计时结束,此线程才能继续工作唯一的构造方法// 传入倒数计数数量public CountDownLatch(int count) { if (count < 0) throw new IllegalArgumentException("count &lt...

2020-04-06 17:49:19 412

原创 JUC---并发队列源码解析(JDK13)

一、并发队列先看全家福并发队列又分为阻塞队列与非阻塞队列实现了BlockingQueue的就是阻塞队列,最下层左边5个。队列满的时候放不进去,队列空的时候null都取不出来,会阻塞。最右边2个就是非阻塞队列。以* Deque结尾的是双端队列,头和尾都能添加和删除。双进双出。一般使用*Queue结尾的。Queue只能一段进一端出。二、阻塞并发队列通常,应用于生产者消费者模型。阻...

2020-04-06 15:51:01 363

原创 JUC---CopyOnWriteArrayList源码解析(JDK13)

一、CopyOnWrite*系列CopyOnWriteArrayList和CopyOnWriteArraySet​也是常用的并发集合类。​他们支持并发的读写​。线程安全的。不过有它的缺点。本篇就分析下CopyOnWriteArrayList的原理和源码。CopyOnWriteArraySet​也是类似的。二 、CopyOnWriteArrayListCopyOnWriteArrayLis...

2020-04-06 13:32:22 350

原创 JUC---ConcurrentHashMap源码解析(JDK13)

一、Map家族本篇只分析ConcurrentHashMap的源码。HashMap就简略带过,但是必须先明白了HashMap的相关原理再来了解ConcurrentHashMap更好。Map是我们工作中用到最多的数据结构,key-value形式。看看整个Map家族HashMap,根据键值的hashcode寻找存储位置,查询的时候速度也非常快。线程非安全的。HashTable,在HashMa...

2020-04-06 11:46:04 331

原创 JUC---CAS源码解析(JDK13)

本篇介绍什么是CAS。一、什么是CAS?我认为某一个变量在内存的值是A,如果是的话,我就把它设置为B。如果不是的话,就不修改了。典型的乐观锁思想。避免多人同时修改出错。CAS方法有3个参数,内存值V,预期值A,要修改为的值B。仅当V=A时,才将内存值修改为B。否则什么都不做。最后返回现在的V。compareAndSet,compareAndSweap等等。比较并设置,比较并交换。等等操...

2020-04-05 19:56:36 332

Mybatis逆向工程Generator

Mybatis逆向工程Generator,自动生成mapper.xml,po,mapper.java文件

2017-11-14

整合Spring+SpringMVC+Mybatis+Maven+Mysql项目实例

整合搭建Spring+SpringMVC+Mybatis+Maven+Mysql开发实例

2017-11-14

apache-maven-3.5.0-bin

apache-maven-3.5.0-bin

2017-08-05

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除