9 星月的雨

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 10w+

记一次tomcat启动卡死 JVM调优

由于后台不报错,且并不会结束掉tomcat进程,所以只能进行JVM分析。1.分析JVM可用 jstat,也可以使用 VisualVM 的 Visual GC 来分析JVM垃圾回收情况。这里发现频繁full GC这里使用 jmp 输出 dump 文件jmap -dump:format=b,file=e:\f.hprof 156562.借助 Eclipse Memory Analyzer 分析 dump文件详细使用说明可以参考这个博客导入dump文件后,可以明显发现 Fa..

2020-08-27 17:52:16

Nacos 服务注册源码解析

nacos官方提供额架构图:Provider App:服务提供者 Consumer App:服务消费者 Name Server:通过VIP(Vritual IP)或者DNS的方式实现Nacos高可用集群的服务路由 Nacos Server:Nacos服务提供者,包含OpenApi访问入口,Config Service 和 Naming Service是Nacos的配置服务,名字服务模块。Consistency Protocol是一致性协议,用来实现Nacos集群接节点的数据同步,使用的是 Ra

2020-08-02 14:13:37

jedis记录用户常用模块生成实时排名

需求:拦截用户对不同类型模块的进入,新增,更新,删除 的操作,每次操作频率+1 , 实时显示用户当面所有模块的排名。要求设计时满足对历史数据的排行,比如某月,某年等时间段的排行。环境:由于项目没有针对redis 做持久化操作,所以每次项目启动需要重新加载数据库中的数据到缓存中。 由于此项目redis版本较老,使用的是2.6版本,并且使用的是 shardJedis + sentinel 的高可用模式 。 采用jedis访问redis最终形成页面如下:自定义注解:@Targe.

2020-07-29 16:53:37

Java 8 新特性 Stream类的collect方法

1.Collectors.toList():转换成List集合。/Collectors.toSet():转换成set集合。System.out.println(Stream.of("a", "b", "c","a").collect(Collectors.toSet()));2.Collectors.toCollection(TreeSet::new):转换成特定的set集合。TreeSet<String> treeSet = Stream.of("a", "c", "b", .

2020-07-14 13:51:22

JAVA 设计模式相关

接口隔离原则单一原则接口隔离原则依赖倒转原则里氏替换原则子类中尽量不要重写父类的方法,适当的情况下,可以通过聚合,组合,依赖来解决问题,或者可以让类升级为基类开闭原则迪米特法则合成复用原则...

2020-03-26 13:10:12

JVM 调优相关命令 jps jstat jinfo jmap jhat jstack

jps-q抑制类名,JAR文件名和传递给该main方法的参数的输出,仅生成本地VM标识符的列表。 -m输出传递给main方法的参数。对于嵌入式JVM,输出可能为null。 -l 将应用程序主类的完整软件包名称或完整路径名称输出到应用程序的JAR文件。 -v输出传递给JVM的参数。 -V输出通过标志文件(.hotspotrc文件或-XX:Flags = <filename>参数指定的文件)传递给JVM的参数。jstat监视虚拟机运行状态...

2020-07-09 13:09:54

服务升级

发布方式:蓝绿发布 滚动发布 灰度发布 (提前存好灰度规则)

2020-07-08 16:24:06

表分区与分区表取舍

基本来说, 分区和分表带来的性能提升是一样的,由于分区实际上就可以认为是mysql底层来帮我们实现分表的逻辑了, 所以相对来说分表会比分区带来更高的编码复杂度(分区就根本不用考虑多表分页查询的问题了).从这个角度来说, 一般的业务直接分区就可以了.当然, 选择分区还是分表还是需要做一点权衡的:1. 表中的数据只有部分热点数据经常访问, 其他的不常访问的话, 适合用分区表2. 分区表相对容易维护, 可以针对单独一个分区进行检查,优化, 批量删除大量数据时, 分区表会比一般的表更快3. 分区表

2020-07-08 10:24:58

Java8 CompletableFuture 用法总结及Stream并行流对比

Shop计算相关类package com.future;import java.util.Random;import java.util.concurrent.CompletableFuture;import java.util.concurrent.Future;public class Shop { private String name ; public Shop(String name) { this.name = name; }...

2020-07-04 15:31:55

Mysql单表大量数据优化

批量插入300W数据,由于Innodb默认支持事物导致插入速度缓慢,先修改为MyISAMCREATE DEFINER=`root`@`localhost` PROCEDURE `proc_auto_insertdata`()BEGIN DECLARE init_data INTEGER DEFAULT 1; WHILE ...

2020-05-26 13:52:49

Spring Cloud 实现方案

Spring Cloud 只时对外提供了一套标准的APISpring Cloud Netflix 是对Spring Cloud的一个实现Spring Cloud Alibaba 一样...

2020-04-07 21:50:19

Redis 结构对应的业务场景

常用结构String 单值缓存 getset 对象缓存 set user:1 value(Json格式)Mset user:1:name lzh user:1balance 1888Mgetuser:1Mget Mset 适合改其中某一个字段 分布式锁 setNx key value :判断key是否存在 返回1表示获取成功 反之返回0...

2020-03-23 21:46:11

前端绘图工具总结

d3.jsD3 (或者叫 D3.js )是一个基于 web 标准的 JavaScript 可视化库. D3 可以借助 SVG, Canvas 以及 HTML 将你的数据生动的展现出来. D3 结合了强大的可视化交互技术以及数据驱动 DOM 的技术, 让你可以借助于现代浏览器的强大功能自由的对数据进行可视化,兼容性是IE9+。three.jsthree.js是以webgl为基础的库,封装...

2020-02-21 18:17:58

Spring Cloud OAuth2

OAuth2优点在于,它允许开发人员与第三方服务提供商集成,使用这些服务进行用户验证授权,而无须不断的将用户凭据信息传递给第三方服务。OAuth2简介OAuth2是一个基于令牌的安全验证授权框架。它将安全性分解为一下4部分:受保护资源:例如微服务,确保通过验证并具有适当授权的用户才能访问。 资源所有者:定义那些应用程序可以调用其服务,那些用户可以访问该服务,以及可以使用服务完成哪些事...

2020-01-17 10:37:23

MySQL 和PostgreSQL对比

MySQL和PostgreSQL是开源中用的最多的2个。一、两者的共同优势  这两个产品都属于开放源码的一员,性能和功能都在高速地提高和增强。MySQL AB的人们和PostgreSQL的开发者们都在尽可能地把各自的数据库改得越来越好,所以对于任何商业数据库使用其中的任何一个都不能算是错误的选择。  二、两者不同的背景  MySQL的背后是一个成熟的商业公司,而PostgreSQL的...

2019-12-04 15:34:32

Spring Cloud Zuul 服务路由

为什么要使用服务网关在跨多个服务进行调用的过程中会遇到以下问题:在构建的每个服务中很难始终实现这些功能:开发人员专注交付,很容易忘记实现服务日志或跟踪等 正确是实现这些功能是一个挑战:每个在开发的服务进行诸如微服务安全的建立与配置可能是很痛苦的 这会在所有服务中创建一个顽固的依赖:在所有服务中共享的公共框架构建的功能越多,重新编译和部署或更改就越困难为了解决这个问题,需要将这些横切关...

2019-08-19 20:21:27

TCC 分布式事务解决方案 tcc-tansaction

TCC模式:由阿里技术人员提出将一个任务拆分三个操作 Try,Confirm,Cancel如果有一个Func()方法,则在Tcc模式中就变成了三个方法:tryFuncconfirmFunccancelFuncTcc模式大致实现思路:主业务会向事务管理器注册并启动服务,事务管理器是一个概念上全局事务管理机制,它会生成全局的事务ID用于记录整个事务链路 主业务服务调用全部...

2019-11-27 10:46:39

RocketMq实现分布式消息思路

代码侵入性大需要支持 回查ACK机制功能

2019-11-27 09:22:36

消息队列在微服务场景中的可靠性模式原理梳理

场景一:主业务服务发送消息时可能因为消息队列无法使用而失败主业务服务将要发送的消息持久化到本地数据库中,标记状态为“待发送”,然后把消息发送给消息队列 消息队列接收到消息后,把消息持久化到自己的存储服务中,这时不是立即发送消息到子服务,而是立即向主服务(生产者)返回消息队列的结果 主服务接收到消息的返回结果,判断是否成功,失败则结束后续业务处理,设置本地持久化记录状态为“结束”,否则执行后...

2019-11-19 15:30:47

windows 查看端口占用,关闭端口

netstat -aon|findstr "49895"tasklist|findstr "170412"任务管理器的详细信息中结束掉 pid 为 170412 进程

2019-11-08 09:25:36

查看更多

勋章 我的勋章
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 阅读者勋章Lv1
    阅读者勋章Lv1
    授予在CSDN APP累计阅读博文达到3天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。