4 Full Stack Developme

尚未进行身份认证

我要认证

不生产代码,只把代码搬运到适合它的地方。

等级
TA的排名 2w+

tomcat 生产环境启动慢 解决方案

转载自:https://www.debugger.wiki/article/html/1552039200290418叙述在线上环境中,我们经常会遇到类似的问题,就是tomcat 启动比较慢,查看内存和cpu,io都是正常的,但是启动很慢,有的时候长达几分钟,这到底是什么原因导致的。分析tomcat的启动需要产生session id,这个产生需要通过java.security.SecureRandom生成随机数来实现,随机数算法使用的是”SHA1PRNG”,但这个算法依赖于操作系统的提供的随

2020-08-05 14:00:16

RabbitMQ 延迟消息的极限测试

转载自:http://blog.didispace.com/rabbitmq-deplay-message-max/叙述之前在写Spring Cloud Stream专题内容的时候,特地介绍了一下如何使用RabbitMQ的延迟消息来实现定时任务。最近正好因为开发碰到了使用过程中发现,延迟消息没有效果,消息直接就被消费了的情况。因此就继续深入研究了一下问题原因,在此记录下来,给碰到类似问题的童鞋们参考。问题定位因为不是所有的消息都出现了没有延迟消息效果的因素,通过有问题的消息特征,大致猜测可能

2020-07-31 17:14:44

springboot 上传文件大小限制的配置

转载自:https://blog.csdn.net/ZYC88888/article/details/89092499叙述工作中碰到如下异常:上传文件文件过大时出现如下错误: org.apache.tomcat.util.http.fileupload.FileUploadBase$FileSizeLimitExceededException: The field pic exceeds its maximum permitted size of 10485760 bytes.

2020-07-31 17:07:48

javax.persistence.Id 和 org.springframework.data.annotation.Id 的区别

转载自:https://edwardzjl.github.io/post/javaxpersistenceid-he-orgspringframeworkdataannotationid-de-qu-bie/叙述工作中碰到了javax.persistence.Id 和 org.springframework.data.annotation.Id这2个注解的使用,在这里做个笔记记录下。解析org.springframework.data.annotation.Idorg.springfra

2020-07-31 16:56:13

分布式ID生成方案

转载自:https://colobu.com/2020/02/21/ID-generator/叙述不管我们是不是有身份的人,我们一定是有身份证的人,身份证上面的号码就是我们的ID,理论上这个ID是全国唯一的,而且通过这个号码,我们还可以得到一些个人信息,比如前两位可以确定我们第一次申请身份证的时候所在的省份、接下来的四位可以确定我们所在的区县,然后还可以知道我们出生的年月以及性别。在我们的计算机应用中,也处处存在的ID, 比如订单编号、商品ID、微博ID、微信消息ID、书的ISDN号、商品条码等

2020-07-31 16:50:23

2^128 有多大

转载自:https://lotabout.me/2018/how-big-is-2-power-128/叙述编程中,我们常常需要为“数据”指定 ID,那什么样的类型才“够大”呢?int?long?UUID? 这篇文章里,咱们从直觉的角度聊一聊“数字”有多大。首先为了简便计算,我们需要一个将2a2a转成10b10b的方法:b≈0.3×ab≈0.3×a。如210≈103210≈103就是我们熟悉的1024≈10001024≈1000。证明的方法也就是简单地算算对数,这里不展开了。...

2020-07-14 16:46:43

@JsonFormat 与 @DateTimeFormat 区别

转载自:https://www.jianshu.com/p/0aa50fa60a73叙述当遇到前后台日期数据交互时,常遇到后台日期传至前台变成长整型数据,前端需要再一次手动转化格式;前端传至后台日期数据类型为字符串,查询不出预期结果。为简化处理该类问题,可使用@DateTimeFormat与@JsonFormat直接进行格式处理。分析实体类属性上直接添加注解。@DateTimeFormat把前台数据解析为Date;@JsonFormat将后台Date数据转为指定日期格式传回前台。

2020-07-14 15:57:25

springboot actuator 监控组件应用

转载自:https://www.zuojl.com/spring-boot-actuator/叙述在 Spring Boot 的众多模块中,有一个特殊的模块 Actuator ,其主要用来暴露应用本身信息,所以它就是作用于对用于的监控和管理。对于中小团队来说,可以有效的减少监控系统在采集应用指标的开发量。当然,默认提供的功能并不能满足所有用户的需求,因此 Spring Boot 团队也提供了进行自定义监控的实现方式。解决方案Spring Boot 应用集成 Actuator 是非常容易的,只

2020-07-10 16:05:08

Cookie、Session、Token 解析

转载自:https://www.zuojl.com/cookie-session-token/叙述在 Web 的发展中,我们知道浏览器和服务器之间采用 HTTP 协议进行通信,但是这个协议是无状态的,为了知道用户的状态,发展了很多的技术,其中常用又比较容易混淆的有三个 Cookie、Session 和 Token。这里对其进行下总结,如有理解偏差的地方,请指正。CookieCookie 是浏览器中以 Key-Value 键值对的形式保存来保存的用户状态信息。数据通过请求头进行客户端和服务器间

2020-07-10 15:51:02

JWT 简明教程

转载自:https://www.zuojl.com/jwt/叙述JSON Web Token(缩写 JWT)是目前最流行的跨域认证解决方案,本文介绍它的原理和用法。应用程序或者客户端向服务器请求授权,授权服务器向客户端返回一个 JWT。之后将 JWT 放入到请求里(通常放在 HTTP 的 Authorization 头里)。服务器接收请求后,验证 JWT 并执行对应的逻辑。为了防止用户的信息被篡改,服务器在生成这个对象的时候,会加上签名。JWT 的大体结构如下JWT 结构JWT 有三

2020-07-10 15:26:05

springcloud 组件 Feign Ribbon Hystrix 三者关系

转载自:https://www.cnblogs.com/crazymakercircle/p/11664812.html叙述在微服务架构的应用中, Feign、Hystrix,Ribbon三者都是必不可少的,可以说已经成为铁三角。有不少小伙伴问到尼恩,关于Feign、Hystrix,Ribbon三者之间的关系,以及三者的超时配置。截止目前,全网没有篇文章介绍清楚的,故,尼恩特写一篇详细一点的文章,剖析一下。Feign介绍Feign是一款Java语言编写的HttpClient绑定器,在Sp

2020-07-10 14:57:58

使用 Java 和 Excel 计算金融贷款

转载自:https://www.zuojl.com/finance-formula-on-java-and-excel/叙述主要涉及: 月利息,月本金,月本息三个的计算等额本金说的简单点就是等额本金法中,人们每月归还的本金额始终不变,利息随剩余本金的减少而减少,因而其每月还款额逐渐减少。计算公式:每月本金 = 总本金/还款月数 每月利息 = (本金-累计已还本金)×月利率 每月本息 = (本金/还款月数)+(本金-累计已还本金)×月利率由于公式过于简单我们就不进行演示了。.

2020-07-09 16:50:50

springcloud feign 首次调用100%失败 解决方案

转载自:https://my.oschina.net/lipengxs/blog/3275636叙述在高并发情况下发布应用时,经常会发现监控中有很多超时报错或者断路器打开,下图中可以看到监控情况,测试时也会偶现第一次feign调用出错,第二次就会恢复正常。分析大家都知道,这里feign底层是集成的ribbon,这里ribbon也会有http连接池,这里的连接池是长连接,定时初始化一批并销毁旧连接,这里还包括一些上下文需要初始化,但是在容器初始化好时,ribbon底层的client是未初始

2020-07-09 15:07:03

springcloud 的系统预热及预处理

转载自:https://juejin.im/post/5d10c21ee51d4576bc1a0e26叙述没有预热,这不叫高并发,叫并发高!!!分析大家都知道,高并发系统有三把斧子:缓存、熔断和限流。但还有一把斧子,经常被遗忘在角落里,郁郁不得志,那就是预热。先说两个现象。这些现象,只能在并发高的系统中出现。好吧,它已经引起了多个故障。DB重启后,瞬间死亡一个高并发环境下的DB,进程死亡后进行重启。由于业务处在高峰期间,上游的负载均衡策略发生了重分配。刚刚启动的DB瞬间接受

2020-07-09 15:02:08

Base64 原理

转载自:https://www.zuojl.com/preliminary-study-the-base64/叙述由于有些网络传送渠道并不支持所有的字节,例如传统的邮件只支持可见字符的传送,比如 ASCII 码的控制字符就不能通过邮件传送。这样用途就受到了很大的限制,比如图片二进制流的每个字节不可能全部是可见字符,所有就传送不了。最好的方法就是在不改变传统协议的情况下,做一种扩展方案来支持二进制文件的传送。把不可打印的字符也能用可打印字符来表示,问题就解决了。Base64 编码就应运而生,Base6

2020-07-02 16:12:32

Js实现金额转换为中文繁体

转载自:https://www.zuojl.com/convert-menoy-chinese-use-js/叙述在工作中经常会遇到需要将金额转换成繁体数组进行展示的情况,这个转换的过程可以后台进行也可以在前端进行。本文使用 JavaScript 将金额数字转换成中文繁体,废话不多说直接上代码:解决方案/** * 将给定的金额数值转换为中文繁体的方法, * 最大值为'兆'的的数值,不为负数 * @author zuojl * @version 2016.05.04 v1.0

2020-07-02 14:42:38

hibernate QueryPlanCache 引发的heap区内存溢出

转载自:https://blog.csdn.net/dream_lixiang/article/details/77248292叙述有一个项目中用到了hibernate作为数据持久层,当项目完成,使用loadrunner进行并发测试的时候,当测试跑了几天,就因为内存溢出挂掉了。当对奔溃场景进行重现的时,利用了JvisualVM工具对其进行监控,发现了其heap区内存一直在持续增长,利用heap dump分析其内存情况,发现有几种类型的对象增长异常。当时针对监控的问题还给领导发了一封邮件,信息如下:

2020-07-01 15:31:53

MongoRepository 基本使用

转载自:https://www.jianshu.com/p/f47621a224a6叙述MongoRepository有以下方法介绍count()统计总数count(Example< S > example)条件统计总数delete(T entities)通过对象信息删除某条数据deleteById(ID id)通过id删除某条数据deleteALL(Iterable<? extends T> entities)批量删除某条数据deleteAll() 清空

2020-07-01 15:01:40

Java 往MongoDB 写入时间和读取时间

叙述很多开发使用Java 往MongoDB 写入时间和读取时间,都会遇到时间不匹配或者格式不对的情况。现在给出标准代码,方便大家开发。解决方案这些代码都是从现有程序中扣出来的部分,只供参考。写入时间/*获取MongoDB的当前时间,时区UTC转GMT*/ public static Date getMongoDBDate() { Calendar calle = Calendar.getInstance(); calle.setTime(n.

2020-07-01 14:27:14

Java 并发(零)- 原子性

转载自:https://lotabout.me/2020/Java-Concurrency-0-Shared-Mutable-State/叙述并发问题主要有三个根源:原子性、可见性及有序性。作为 Java 并发系列的开篇,我们先来谈谈原子性,以及引发原子性问题的 Shared Mutable State(共享可变状态)。多个线程多十倍烦恼没有多线程就不存在并发问题[1],一旦有多个线程,情况就复杂了起来。下例中我们起了两个线程,分别尝试对全局变量counter做++操作,最终输出的结果...

2020-07-01 09:18:21

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。