自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Evan

Only let oneself become strong enough, good enough, can afford the life that you want to.

  • 博客(165)
  • 资源 (24)
  • 问答 (1)
  • 收藏
  • 关注

原创 Arthas使用教程

arthas对原本进程的影响,本质上arthas对进程的影响是很小的,但是对于一些命令的执行我们要额外关注下,比如trace的时候尽量不要一次性监听多个类。其中每个方法前面的百分号是这个方法执行耗时占了整个链路的百分比,后面是相关具体耗时,可以看到上图中setPreAndAvailNum耗时是比较久的,占用了6ms多,由于arthas无法动态监听下一级方法(新版本已经提供,但是感觉效果一般,具体可以查看相关文档),所以需要我们手动添加该方法的监听命令。其它的使用可以参考文档中的相关参数。

2024-03-04 18:22:19 906

原创 服务内存优化思路

通过分析最终定位到是 org.springframework.cloud.client.discovery.health.DiscoveryClientHealthIndicator#health 这个方法引起的,这里有返回了 services 的信息。其中 java.lang.Thread 有 2000 多个,org.apache.dubbo.common.threadlocal.InternalThread 线程居然有 6000 多个。关闭心跳探测时,对服务列表的返回。

2024-02-23 18:57:28 295

原创 如何查看 CPU 占用高的进程

2.2 启动命令:java -jar arthas-boot.jar 注释:k8s 的 java 进程的 pid 都是 1,因此直接运行 java -jar arthas-boot.jar 1。2、查看哪个进程占用 cpu 最高(该案例使用阿里的 arthas 来查看)查到是 SkyWalking 的 agent 进程占用太大。1、使用 top 命令,查看 cpu 占用超过 100%2.1 下载:curl -O。

2024-02-20 11:09:50 235

原创 分布式幂等技术

2024-02-18 17:11:34 85

原创 蒙住了双眼,难受啊!log jar包冲突,导致无日志,神器救场

logjar包冲突了,实际使用了ch.qos.logback.classic.util.ContextSelectorStaticBinder,正确的应该是使用log4j,导致无日志打印。一检查日志是否输出到文件,因为SLS是读取日志文件的;所以马上到K8S容器看看是否输出到日志文件,发现没有日志文件,说明日志没有输出到日志文件。日志好比我们的眼睛,没有日志==被蒙住了双眼,发生啥都不知道了。今天上阿里的日志服务(SLS)查看某个服务的日志,发现竟没有日志。因此本地启动项目排查。......

2022-07-25 18:03:58 1220 1

原创 销量最优解

目录业务背景优化方案初版(优化大多不能一步到位,请看到最后)优化方案升级版微信公众号:molashaonian业务背景商品列表等场景需要展示商品销量,销量自然就跟订单关联,那么统计销量就需要统计商品订单销售的sku 数量痛点:目前销量计算以 spu(商品) 维度,通过JOB定时查询订单商品表进行统计,以及更新销量缓存,对数据库表的全量查询消耗过大优化方案初版(优化大多不能一步到位,请看到最后)从计算入手。目前问题也知道了,全量查询计算消耗大,那就从计算销量入手。spu首次全量计

2022-05-16 15:25:30 242 1

原创 缓存击穿,双缓存处理策略

对于热点 key 可以设置一级,二级缓存二级缓存可以设置较长的过期时间(甚至不过期),当一级缓存过期时,加锁从数据库中获取最新值,并且更新一级,二级缓存;同时没获得锁的线程直接读取二级缓存返回。

2022-03-07 11:47:54 736

原创 MySQL慢查询优化思想总结

微信公众号:molashaonian1.慢查一索引情况 PRIMARY KEY (id), INDEX idx_status_ct(status, created_time) 优化前SELECT*FROMropWHERE`status`IN(0,3)ANDis_delete=0LIMIT112000,1000显然,这条SQL之所以慢是因为分页查询,到后面需要跳过的数据太多了,而且 status 状态的区分的也不是很高,所以越往后查询就越慢...

2020-08-02 15:25:19 298

原创 MySQL只走一个索引,还是会索引合并?索引下推会怎样?

微信公众号:molashaonianMySQL是否每次只能使用一个索引?答案当然不是的,MySQL每次可以使用多个索引,即 index merge(索引合并),但大多数情况下都只会使用一个索引,那这是为什么咧?1. 为什么会有index mergeMySQL5.0之前,一个表一次只能使用一个索引,无法同时使用多个索引分别进行条件扫描。但是从5.1开始,引入了 index merge 优化技术,对同一个表可以使用多个索引分别进行条件扫描 我们的 where 中可能有多个条件(或者join.

2020-08-01 19:14:32 3249

原创 Jedis 在 Java7 之后无需手动调用 close 释放连接 try-with-resources 内幕

微信公众号:molashaonianJedis 用完是否需要手动 close?一般情况下,我们在使用完连接资源后都要 close 关闭连接,释放资源。这么常用的方法,基于习惯,Java 在 jdk1.7 之后为我们提供了一个很好的方法try-with-resources Statement ,我们不再需要手动调用 close 方法,也可以释放连接。此处以 Jedis 为例子,说下该...

2019-04-08 16:31:31 7587

原创 两个时间段是否有交集 + 数据库时间类型选择问题

1.判断两个时间段是否有交集两个时间段:[start,end],[startTime,endTime]存在交集的情况比较多,但是不存在交集的情况只有两种,所以只要排除了不存在交集的情况,剩下的就是存在交集的情况了。不存在交集判断end < startTime || start > endTime因此,存在交集判断if (!(end < startTime || s...

2019-04-01 16:24:35 2153

原创 MongoDB 之 aggregate $lookup 关联查询 进阶篇

 需求:要对 topics 问题表根据 teach_id(教师ID),tips._id(问题标签ID) 字段进行分组统计教师的答题情况生成报表,所以得根据 教师ID,标签ID 关联查询出 教师信息,标签信息 用作报表展示。本文基于 MongoDB V3.2 聚合查询语法,V3.6 可使用更多的特性实现topics 表数据结构:{ "_id" : "ffffea46-ab7d-4c1...

2019-01-20 16:28:59 19127 2

原创 MySQL -- INSERT ON DUPLICATE KEY UPDATE 使用

前言: MySQL 中 INSERT ON DUPLICATE KEY UPDATE 这个方法可能不是很常用,但却很好用,它主要功能是:当插入的数据中的主键 与 数据库中现有的数据主键 重复的情况下就不会执行插入操作,而是可以对现有的数据进行更新操作,不存在相同主键则执行插入操作。下面来说说,我为什么会需要这样的操作:假设有表 A,B,C,他们的主键分别是 a-pk,b-pk,c-pk...

2019-01-06 13:06:32 5401 2

原创 Git 命令使用笔记

小白篇: Git新手上路,让你快速掌握Git的基本使用#添加电脑ssh密钥到git:C:\Users\evan\.ssh\id_rsa.pub  -- 复制 ---&gt;&gt; git 个人资料设置--SSH密钥--公钥  输入复制内容 #拉取远程仓库项目git clone [email protected]:molashaonian/git_command.git#初始化当前目录g...

2018-12-19 11:05:32 241

原创 MySQL索引优化 & 聚簇索引 & 字段选择性 & 范围查询 & 组合索引的字段顺序

索引B-Tree:一般来说, MySQL 中的 B-Tree 索引的物理文件大多都是以 B+tree的结构来存储的,也就是所有实际需要的数据都存放于 Tree 的 Leaf Node,而且到任何一个 Leaf Node 的最短路径的长度都是完全相同的,可能各种数据库(或 MySQL 的各种存储引擎)在存放自己的 B-Tree 索引的时候会对存储结构稍作改造。如 Innodb 存储引擎的 B-T...

2018-10-11 16:30:41 6189 1

原创 分布式锁--Redis小试牛刀

参考文章:Redis分布式锁的正确实现方式分布式锁看这篇就够了在这两篇文章的指引下亲测 Redis分布式锁引言分布式系统一定会存在CAP权衡问题,所以才会出现分布式锁什么是CAP理论?   为了更好的理解文章,建议阅读:分布式系统的CAP理论什么是锁?在单进程的系统中,当存在多个线程可以同时改变某个变量(可变共享变量)时,就需要对变量或代码块做同步,使其在修改这...

2018-08-09 15:56:07 338

转载 一致性哈希算法及其在分布式系统中的应用

from:http://blog.codinglabs.org/articles/consistent-hashing.html摘要本文将会从实际应用场景出发,介绍一致性哈希算法(Consistent Hashing)及其在分布式系统中的应用。首先本文会描述一个在日常开发中经常会遇到的问题场景,借此介绍一致性哈希算法以及这个算法如何解决此问题;接下来会对这个算法进行相对详细的描述,并讨论一...

2018-08-05 21:38:40 287

原创 MongoDB 聚合嵌入的数组(扁平化数据+管道)

MongoDB学习教程先看下要操作的主要数据结构:{ "_id" : "000015e0-3e9c-40b3-bd0d-6e7949f455c0", "evaluation_type" : 2, "reply_count" : 5, "type" : 3, "content" : "怎么编制余额调节表", "ti

2018-06-24 13:44:39 6231

原创 Spring Boot 源码分析 数据源 + Mybatis 配置

公司今年开始使用 Spring Boot 开发,当然使用 Spring Boot 也是大势所趋,尤其是现在微服务的趋向,当然是选择基于Spring Boot 的 Spring Cloud。(所谓的 Spring 全家桶,哈哈哈)一日,闲来无事,都说 Spring Boot 习惯优于配置,但是这习惯它到底在哪里配置实现了。好奇心的驱使下,我偷偷翻看了 Spring Boot 下 数据源和My...

2018-06-18 22:13:33 663 1

原创 绝对完全跨域统一单点登录登出

应用场景:多个系统下同属于一个用户,当用户登录了web1系统,那么访问web2,web3. . . . 时候,用户就无需再次登录。如:淘宝与天猫,登出也如此,一个系统登出,其他系统的登录也随之失效,这就是统一单点登录登出。这里配置三个web系统,一个用户中心系统为栗子配置hosts实现跨域:127.0.0.1 ssofront.ljtest.xxxx.com #用户中心127.0...

2018-05-06 16:38:17 14141 13

转载 Java与groovy混编 —— 一种兼顾接口清晰和实现敏捷的开发方式

有大量平均水平左右的“工人”可被选择、参与进来 —— 这意味着好招人有成熟的、大量的程序库可供选择 —— 这意味着大多数项目都是既有程序库的拼装,标准化程度高而定制化场景少开发工具、测试工具、问题排查工具完善,成熟 —— 基本上没有团队愿意在时间紧、任务重的项目情况下去做没有把握的、基础开发工具类的技术试探有面向对象特性, 适合大型项目开发 —— 无数大型项目已向世人述说,“面向对象”是开发大型软...

2018-03-22 10:55:42 2373

原创 Java 调用 groovy 脚本文件,groovy 访问 MongoDB

groovy 访问 MongoDB 示例:shell.groovypackage dbimport com.gmongo.GMongoClientimport com.mongodb.BasicDBObjectimport com.mongodb.MongoCredentialimport com.mongodb.ServerAddress/** * 本地无密 mongodb 数据...

2018-03-06 11:27:47 1239

转载 消费RabbitMQ时的注意事项,如何禁止大量的消息涌到Consumer,保证线程安全

按照官网提供的订阅型写法( Retrieving Messages By Subscription ("push API")) 我发现,RabbitMQ服务器会在短时间内发送大量的消息给Consumer,然后,如果你没有来得及Ack的话,那么服务端会积压大量的UnAcked消息,而Consumer如果来不急处理也会处于假死(也可能引起程序崩溃)。仅有两个Channel,结果积压了大量的UnAcke...

2018-03-01 10:57:54 3506 1

原创 MongoDB 之 aggregate $group 巧妙运用

有这样一组数据:{ "campaign_id": "A", "campaign_name": "A", "subscriber_id": "123"},{ "campaign_id": "A", "campaign_name": "A", "s

2018-02-28 17:30:46 14394

原创 Spring 中出现相同名称的 bean 的处理机制

小总结:如果启用组件扫描,bean名称不同时,Spring将尝试创建一个bean,即使该类的bean已经在spring-config.xml中定义了。但是,如果在spring配置文件中定义的bean和自动发现的bean具有相同的名称,那么在组件扫描时,spring不会创建一个新的bean。spring.xml 与 spring-mvc.xml 定义具有相同名称的 bean 后者覆盖前者如果一个be...

2018-02-24 10:52:28 8036

转载 SpringContextHolder 静态持有SpringContext的引用

SpringContextHolder 静态持有SpringContext的引用 package com.test.quartz;import org.springframework.context.ApplicationContext;import org.springframework.context.ApplicationContextAware;/** * * 以静态变量保存...

2018-02-24 10:29:05 1775 9

转载 Spring在Web容器启动时执行初始化方法

需求:在tomcat启动时开启一个定时任务。想法:容器启动时执行方法,最容易想到的就是servlet中可以配置load-on-startup,设置一个正整数也就可以随容器一起启动。问题:上面的方法很好,但是由于定时任务需要去操作数据库,而项目采用了spring的依赖注入来管理对象,而servlet并不受Spring的管理。若此时在servlet中注入Spring管理的对象,则会报错:javax.n...

2018-02-24 10:26:00 855

原创 classpath 及读取 properties 文件

java代码中获取项目的静态文件,如获取 properties 文件内容是必不可少的。Spring 下只需要通过 @Value 获取配置文件值&lt;!-- 资源文件--&gt;&lt;util:properties id="application" location="classpath:config.properties" /&gt;@Value("#{application['pom.cr...

2018-02-03 11:28:02 6223

原创 Spring 多数据源 @Transactional 注解事务管理

在 Spring,MyBatis 下两个数据源,通过 @Transactional 注解 配置简单的事务管理spring-mybatis.xml&lt;!--******************************** data one start ***************************************************************--&gt;&lt...

2017-12-21 15:38:30 14316 2

原创 Spring 与 SpringMVC 容器父子关系引出的相应问题

1)关系说明spring 与 springmvc 父子关系:spring (父容器),springmvc (子容器)springmvc(子)--- 可调用 --&gt; spring(父) 中的 bean,属性值等但 spring(父)-- 不可调用 --&gt; springmvc(子) 中的 bean,属性值等2)配置原则spring-context.xml&lt;!-- 启动组件扫描,排除@...

2017-12-21 10:00:22 530

转载 Mongodb 备份 还原 导出 导入 等批量操作

mongodb数据备份和还原主要分为二种,一种是针对于库的mongodump和mongorestore,一种是针对库中表的mongoexport和mongoimport。一,mongodump备份数据库1,常用命令格mongodump -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -o 文件存在路径  如果没有用户谁,可以去掉-u和-p。如果导出本机的数据库,可以去掉-h...

2017-08-10 22:05:31 3225 1

原创 关于WEB-INF目录不提供外部访问及JSP引用 js,css 文件路径问题

在 web 项目开发过程中,我们常常使用到 JSP,以及对静态资源,js,css 等引用,但是我们应该把这些资源文件放在哪个目录下面咧,怎么引用。当然如果是前后端分离的项目倒不用考虑这些。WEB-INF:出于安全性的考虑,这个目录是禁止外部直接访问的,所以 JSP 页面放在这个目录及其子目录下面是起到保护作用的。在 jsp 页面中少不了的是对 js,css 文件的引用,那么我们引用的时候又有两种方...

2017-07-22 18:17:20 7086

转载 svn工具的使用问题总结

前言:最近在开发的时候,由于需求太多,开发周期长短不一,从主线上切了多个分支(一般不在主线trunk上开发,万一线上出问题可及时修改代码上线),在部分功能上线后,想把代码同步到新的分支上去,最开始的想法是人工去合并代码,把两个分支down下来把修改的文件比较并进行合并,然后最后提交;但是文件修改的很多很杂,人工去合并肯定出现误差,比如代码合并少了;其实这些都是可以通过svn工具进行处理的,于是回顾...

2017-07-16 11:17:33 1147

原创 Maven 本地仓库,远程仓库,中央仓库,Nexus私服,镜像 详解

一. 本地仓库本地仓库是远程仓库的一个缓冲和子集,当你构建Maven项目的时候,首先会从本地仓库查找资源,如果没有,那么Maven会从远程仓库下载到你本地仓库。这样在你下次使用的时候就不需要从远程下载了。如果你所需要的jar包版本在本地仓库没有,而且也不存在于远程仓库,Maven在构建的时候会报错,这种情况可能发生在有些jar包的新版本没有在Maven仓库中及时更新。Maven缺省的本地仓库地址为...

2017-06-14 21:12:40 10457 1

转载 CXF+JAXB处理复杂数据

CXF默认使用JAXB 来实现对象和XML之间的映射。在前面的例子 中,使用CXF发布的Webservice,其方法的参数和返回值都是简单类型。 本文讨论对象复杂性的分级,验证对于各种复杂度JAXB的支持情况,以及使用JAXB时对于Map,循环引用,继承等情况的处理办法。 文中的例子没有直接调用JAXB的API,而是用CXF发布webservice的形式验证对象到xml的marshal和unmar...

2017-06-12 16:41:57 653

原创 Restful 接口传递参数

 首先补充一下什么是 Restful ,这里简单说一下,如果一个架构符合REST原则,就称它为RESTful架构。RESTful架构特点:  (1)每一个URI代表一种资源;  (2)客户端和服务器之间,传递这种资源的某种表现层;   (3)客户端通过四个HTTP动词,对服务器端资源进行操作,实现"表现层状态转化"。具体介绍参考:RESTful API 设计指南RES...

2017-06-12 13:12:59 53605

翻译 使用 JSONDoc 记录 Spring Boot RESTful API

这个博文可以分为两部分:第一部分我将编写一个Spring Boot RESTful API,第二部分将介绍如何使用JSONDoc来记录创建的API。做这两个部分最多需要15分钟,因为使用Spring Boot创建一个API非常简单快捷,并且使用JSONDoc Spring Boot启动器和UI webjar进行记录也是如此。我将跳过这个例子的测试创建,因为主要目标是如何记录API而不是编写和测试它...

2017-06-11 13:37:05 4886

转载 Nginx负载均衡

最近迷上了Nginx,真实麻雀虽小,五脏俱全..功能实在强大..nginx不单可以作为强大的web服务器,也可以作为一个反向代理服务器,而且nginx还可以按照调度规则实现动态、静态页面的分离,可以按照轮询、ip哈希、URL哈希、权重等多种方式对后端服务器做负载均衡,同时还支持后端服务器的健康检查。如果只有一台服务器时,这个服务器挂了,那么对于网站来说是个灾难.因此,这时候的负载均衡就会大显身手了...

2017-06-11 10:32:01 493

转载 Spring Boot + Swagger

前言:在互联网公司, 微服务的使用者一般分为两种, 客户端和其他后端项目(包括关联微服务),不管是那方对外提供文档 让别人理解接口 都是必不可少的。传统项目中一般使用wiki或者文档, 修改繁琐,调用方不一定及时了解变化。 微服务时代,效率第一,使用Swagger可以在部署的时候生成在线文档,同时UI也特别漂亮清晰,可谓提供api之利器,Swagger 让部署管理和使用功能强大的API从未如此简单...

2017-06-10 18:27:13 1330

原创 Linux 下 JDK + Eclipse + PyDev 安装与配置

一:JDK / JRE 环境Eclipse 是运行于Java虚拟机中的,所以必须先安装Java环境才能进行开发测试。JRE(Java Runtime Environment)是运行环境,JDK(Java Development Kit)是开发环境,JDK开发环境中包括JRE运行环境。所以如果只是使用Eclipse开发PHP程序,JDK不是必须的,JRE即可;如果同时也要进行Java语言的开发,那么...

2017-06-10 10:21:33 386

新浪新闻APP--项目工程源码

新浪新闻APP--项目工程源码,新浪新闻APP--项目工程源码,新浪新闻APP--项目工程源码

2018-06-21

MyBatis逆向工程 Demo 源码

MyBatis逆向工程 Demo 源码

2017-08-07

Excel 报表导入导出 util

Excel 报表导入导出 util,帮助类

2017-04-30

快递100源码及资料

快递100源码及资料, 快递100源码及资料, 快递100源码及资料

2017-01-07

Web Service快速实例

Web Service快速实例

2016-10-24

MyBatis逆向工程源码

MyBatis逆向工程源码

2016-10-11

jar转换exe转换工具

jar格式转换成exe格式转换工具

2015-11-29

算法设计与分析(java) 王晓东

算法设计与分析(java) 王晓东 完整版下载

2015-11-20

java算法大全.pdf

java算法大全.pdf 下载

2015-11-20

Eclipse+PyDev配置搭建Python开发环境插件

Eclipse+PyDev配置搭建Python开发环境插件下载

2015-11-19

eclipse安装python插件

eclipse下开发Python所需安装的python插件下载

2015-11-19

音乐播放库—外部架包

媒体播放插件,音乐播放库—外部架包 jar下载

2015-11-19

Android之简易音乐播发器 源码

Android之简易音乐播发器 源码下载

2015-11-19

第一行代码——Android(全书).pdf

第一行代码——Android(全书).pdf 电子书

2015-11-19

合金弹头之Java简易版

合金弹头之Java简易版,可运行程序及代码

2015-11-17

HTML API帮助文档

HTML API帮助文档 网页制作HTML

2015-11-17

Android官方API文档完整版

Android官方API文档完整版 移动开发

2015-11-17

JavaEE_6_API帮助文档

WEB开发 JavaEE_6_API帮助文档

2015-11-17

php和mysql web开发(中文第四版)

php和mysql web开发(中文第四版)epub格式电子书

2015-11-14

JAVA WEB编程从入门到实践part1,2,3 pdf

JAVA WEB编程从入门到实践part1,2,3 pdf

2015-10-26

JAVA WEB编程从入门到实践 pdf

JAVA WEB编程从入门到实践part04 pdf

2015-10-26

连接SQL数据库jdbc驱动架包

用于连接SQL数据库,添加jdbc驱动外部架包到你的开发项目,就可以加载jdbc驱动,连上SQL数据库。

2015-10-26

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

TA关注的人

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