自定义博客皮肤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的博客

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

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

原创 JDK21虚拟线程、OS线程、GO协程性能对比测试

Java虚拟线程(Virtual Threads)是Java的一种轻量级线程实现,于Java 19通过预览功能引入,并在Java 21中正式稳定。它旨在减少多线程编程的复杂性并提高应用程序的并发性能。虚拟线程的目标是提供与传统平台线程(OS线程)一样的语义,但以更低的资源开销运行更多线程。

2025-01-26 17:20:40 565

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

Nacos线程飙升问题排查

2023-09-10 15:16:37 1920 6

原创 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 27913 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 615 1

原创 SynchronousQueue的不恰当使用,瞬时过载导致线程池任务被拒绝

瞬时过载导致任务被拒绝。

2025-03-26 18:07:34 302

原创 A股打板实战中如何提升性能-Java版本

好板对速度要求极高,普通人比不过大户的专用通道,只能在有限的资源条件下尽量提升速度,0.1秒可能都排在几万手后面去了。

2025-01-19 11:57:05 979

原创 A股微型低频套利交易-Java版本

最近做了一个A股自动套利交易的系统,说下我的大致思路,欢迎交流。A股T+1的特性,没法像T0高频量化那样通过极快的速度和精确的算法在市场中获取微利,并通过高频率交易累积收益。它对技术、基础设施、算法模型的要求极高。我就想着做一个适合自己的做T套利系统。跟价值投资客,超短龙头选手不同,希望通过小步快跑的方式累计收益,不求快,能让收益曲线趋于平稳上升就行,控制回撤也是第一要义。

2025-01-18 17:41:53 459 1

原创 Cloud Foundry,K8S,Mesos Marathon弹性扩缩容特性对比

CloudFoundry:适合以开发为中心的小型团队或快速构建和部署应用的场景。Kubernetes:适合云原生应用、需要复杂扩缩容策略、或需要支持多种资源管理的场景。MesosMarathon:适合大规模批量任务、数据密集型计算场景,但生态支持较弱。

2025-01-18 11:04:44 425

原创 不同业务场景下分布式锁的最佳实践

在高一致性场景(如订单、支付)中会偏向使用 Zookeeper/Curator,尤其是涉及复杂分布式事务的场景。高并发场景下,性能要求高且一致性要求相对较低的业务可能会使用 Redis 或 Redlock。在秒杀、抢购等高并发场景中通常会使用 Redis 分布式锁,以满足性能需求,同时也会根据业务特性选择使用 Redlock 或其他容错方案来提高可靠性。云计算平台:比如 华为云、阿里云 的 Kubernetes 和微服务管理平台中,可能会广泛使用 etcd 来处理分布式锁和服务发现相关问题。

2024-10-23 17:56:10 408

原创 Java常见CodeReview及编码规范

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

2023-11-29 17:40:17 1409

原创 Kubernetes1.28.X 集群安装

Kubernetes1.28.X集群安装

2023-11-18 16:55:48 424

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

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

2023-11-03 18:16:44 433

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

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

2023-09-17 16:58:02 734

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

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

2023-08-26 16:47:13 1490 2

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

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

2023-05-25 17:12:39 311

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

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

2023-03-07 11:31:22 1154 1

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

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

2023-02-28 12:51:27 533

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

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

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

原创 Java调用so动态库方法

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

2022-10-26 13:57:07 4709

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

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

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

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

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

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

原创 ClickHouse的核心特性简介

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

2021-12-05 23:15:17 2175

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

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

2021-10-19 15:55:33 555

原创 为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 2216

原创 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 441

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

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

2020-10-30 16:54:25 2294 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 900

原创 搭建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 459

原创 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 410

原创 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 598 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 349

原创 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 261

原创 修改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 874

原创 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 1062

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

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

2020-05-31 22:07:45 974

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

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

2020-05-24 00:02:30 2932

原创 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 420

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

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

2020-04-19 15:27:58 479

原创 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 412

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

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

2020-04-06 17:49:19 473

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关注的人

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