- 博客(21)
- 收藏
- 关注
原创 记录一次神奇的内存泄露
今天在维护代码时,在一台长时间没用的服务器上,运行了测试的程序,发现程序运行了一段时间,就报出了内存泄露(如下图),然后导致整个项目停止运行。由于改动的比较多,排查比较困难。刚开始以为是它报的ScheduledThreadPoolExecutor相关,因为刚好也改动了这个定时器的线程池相关的配置。然后排查了所有和线程池相关的部位,发现不管是回滚还是修改,都还是会爆出相同的内存泄露的问题。而后又排查了锁相关的部位,有没有可能有死锁的操作,同样的回滚和修改,都不能解决。把日志级别改成DEBUG,还是没有任
2020-08-18 18:32:16
400
1
原创 分布式锁--由浅到深基于Redis的实现
前言Redis这种相信在各个公司都会用到,但是通过分布式的调用Redis,可能用的就不是那么多了,今天就介绍一下在分布式调用Redis的环境中,较为常见的分布式锁。目录前言分布式、微服务和集群的区别Demo背景环境搭建分布式、微服务和集群的区别有的刚接触的小伙伴,可能不太能够分清分布式和集群的区别,这两个东西经常一起谈到,有的人可能就会混为一谈,认为分布式就是集群环境,集群环境就会用到分布式。其实不然,这两个还是有本质的区别的。同时,提到分布式又会经常提到微服务,微服务和分布式有很多的共同点,又有着
2020-07-16 16:55:58
513
原创 初尝HashMap源码
写在最前一晃眼,参加工作也已经快两年的时间了,之前也尝试过读过JDK的源码,但是都不是系统性的,而且,读过却没有记录,转眼就忘了,于是今天尝试将部分重要的JDK的源码再理解一遍,并且记录一下吧。目录写在最前基础环境一、整体概述1.0 基础概念(挺重要,能帮助理解结构)1.1、影响性能的因素1.2 相关默认值1.2.1 未指定的初始容量(16)1.2.2 最大容量(2的30次方)1.2.3 默认的扩容阈值(0.75)1.2.4 树形化阈值(8)1.2.5 链表还原阀值(6)1.2.6 最小树形化容量阈
2020-07-14 21:21:30
564
原创 使用Docker及docker-compose完成快速的项目私有化部署
本文目录零、前言一、搭建基础环境二、配置Docker参数三、登录到私有仓库四、准备连接程序五、编写docker-compose附一、Dockerfile编写简单介绍附二、docker-compose.yml常用命令简单介绍零、前言看网上好像一直没有docker-compose简单易懂的教程,于是在一顿探索之后,写了本教程,欢迎沟通。ps:没有dockerfile基础或docker-comp...
2020-03-18 10:38:21
2361
原创 基于SpringBoot的MYSQL数据库读写分离(二)——项目搭建
在前一章中,我们介绍完了数据库读写分离所需要的基础环境的的搭建。详见:【基于SpringBoot无XML文件的数据库读写分离(一)——基础环境搭建】在本章中,将介绍如何使用Springboot去实现动态切换数据源。一、Springboot项目的构建首先,我们在idea中创建一个新项目。在pom中引入如下的依赖: <dependency> <grou...
2019-07-11 10:04:31
4492
1
原创 基于SpringBoot的MYSQL数据库读写分离(一)——基础环境搭建
基于SpringBoot无XML文件的数据库读写分离(一)——基础环境搭建一、目的首先需要明确的是使用数据库读写分离的目的,它的主要应用场景是为了解决数据库“读”的瓶颈问题,在对数据库进行一定程度的优化后,任然不能满足“读”数据的业务需求,这样我们就需要引入数据库读写分离了。二、技术介绍一般的数据库读写分离分为两种。一种是通过中间件如Mycat,还有一种就是在应用程序中选择要操作哪个数据...
2019-07-09 20:04:38
1852
原创 Spring Cloud进阶——实战教程(一)
SpringCloud 进阶实战教程本项目使用了SpringCloud的五大神兽:Eureka,Ribbon,Hystrix,Zuul,Spring Cloud Config; API开发框架:Swagger; 链路追踪工具:Zipkin;等技术,搭建了一个商品服务的实战项目。
2018-08-02 12:46:04
7778
3
转载 Spring Boot+Spring Cloud基础入门(十)——形象化理解
前几天看到说SpringCloud的Eureka 闭源了,吓了一跳,刚刚把基础学的差不多了。。。结果又是自媒体的操作。Eureka的2.x被废弃了而已,SpringCloud从来没有使用过Eureka 2.x,最新的也不过是1.9.x,所以,不用担心了咯。下面对SpringCloud的形象化解释是转自:https://blog.youkuaiyun.com/yejingtao703/article/det...
2018-07-13 10:55:24
678
原创 Spring Boot+Spring Cloud基础入门(九)服务链路追踪——Spring Cloud Sleuth
服务链路追踪微服务架构上通过业务来划分服务的,通过REST调用,对外暴露的一个接口,可能需要很多个服务协同才能完成这个接口功能,如果链路上任何一个服务出现问题或者网络超时,都会形成导致接口调用失败。随着业务的不断扩张,服务之间互相调用会越来越复杂。随着服务的越来越多,对调用链的分析会越来越复杂。它们之间的调用关系也许如下:关键型术语Span:基本工作单元,例如,在...
2018-07-11 11:02:42
1873
原创 Spring Boot+Spring Cloud基础入门(八)消息总线——Spring Cloud Bus
消息总线总线是计算机各种功能部件之间传送信息的公共通信干线。消息总线(Message Queue,MQ),便是消息子各服务之间传输消息的通信干线,是一种跨进程的通信机制,用于在上下游之间传递消息。MQ是一种常见的上下游“逻辑解耦+物理解耦”的消息通信服务,消息发送上游只需要依赖MQ,逻辑上和物理上都不用依赖其他服务。由于我的系统上,暂时只安装了RabbitMQ,所以本项目以Rabb...
2018-07-10 17:16:23
2228
原创 Spring Boot+Spring Cloud基础入门(七)分布式配置中心——Spring Cloud Config
Spring Cloud Config在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件。在Spring Cloud中,有分布式配置中心组件spring cloud config,它支持配置服务放在配置服务的内存中(即本地),也支持放在远程Git仓库中。在spring cloud config 组件中,分两个角色,一是config serv...
2018-07-09 18:56:59
1199
原创 Spring Boot+Spring Cloud基础入门(六)路由网关——Zuul
网关微服务架构中,会存在多个服务,每个服务拥有不同的地址,用户在请求一个业务时,可能会执行多次请求,这时候,就需要我们的网关来进行转发了。网关是位于请求发起后,访问服务前的中间层,所有的访问,都需要先经过网关,比如在用户访问api时,请求链接为/login,则将其转发到login服务,请求链接为/shop,则将其转发到shop服务。Zuulzuul 是netflix开源的一个A...
2018-07-09 16:34:18
4905
2
原创 Spring Boot+Spring Cloud基础入门(五)断路器——Hystrix
HystrixHystrix翻译成中文是“豪猪”,豪猪周身长满了刺,能保护自己不受天敌的伤害,代表了一种防御机制,这与Hystrix本身的功能不谋而合,因此Netflix团队将该框架命名为Hystrix。所以,Hystrix的功能便是自我保护机制,我们将其称之为断路器。在一个分布式系统里,许多依赖不可避免的会调用失败,比如超时、异常等,如何能够保证在一个依赖出问题的情况下,不会导致整体...
2018-07-09 11:41:50
2566
1
原创 Spring Boot+Spring Cloud基础入门(四)服务消费者——Feign
FeignSpring Cloud的服务有两种消费者,Feign是另一者,Feign是一个声明式的伪Http客户端,它使得写Http客户端变得更简单。使用Feign,只需要创建一个接口并注解。它具有可插拔的注解特性,可使用Feign 注解和JAX-RS注解。Feign支持可插拔的编码器和解码器。Feign默认集成了Ribbon,并和Eureka结合,默认实现了负载均衡的效果。...
2018-07-06 17:25:24
1706
2
原创 Spring Boot+Spring Cloud基础入门(三)服务消费者——Ribbon
RibbonSpring Cloud的服务有两种消费者,Ribbon是其中之一,它是一个负载均衡客户端,可以很好的控制htt和tcp的一些行为。Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法,将Netflix的中间层服务连接在一起。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。简单的说,就是在配置文件中列出Load Bala...
2018-07-06 16:58:12
1619
6
原创 Spring Boot+Spring Cloud基础入门(二)服务的注册与发现——Eureka
EurekaEureka是Spring Cloud Netflix微服务套件中的一部分,Eureka是一个服务注册和发现模块。Eureka包含了服务器端和客户端组件。服务器端,也被称作是服务注册中心,用于提供服务的注册与发现。Eureka支持高可用的配置,当集群中有分片出现故障时,Eureka就会转入自动保护模式,它允许分片故障期间继续提供服务的发现和注册,当故障分片恢复正常时,集群中...
2018-07-06 16:10:25
5009
原创 Spring Boot+Spring Cloud基础入门(一)简单介绍
在经历了毕业的摧残后,终于又有时间来更新博客了,毕业设计项目是写了一个基于Redis+Dubbo+SpringBoot+SSM的在线考试网站,用的技术比较多,架构是基于SOA的,这个等以后有时间了再更新。这次是由于工作原因,要使用到Spring Boot+Spring Cloud的微服务架构,所以,边学变记录咯。之间接触到过SOA的架构,所以对微服务架构的理解,也能稍微容易一些。微...
2018-07-06 14:33:12
2697
1
原创 基于SSM实现的简易员工管理系统(基于阿里云的网站上线篇)
2017-11-26 13:26更新: 服务器被植入了挖矿程序,最近暂时无法访问了。==================================================================================================================================================== 2
2018-01-25 19:55:40
1169
原创 基于SSM实现的简易员工管理系统
之前自学完了JAVA基础,一直以来也没有做什么好玩的项目,最近暑假,时间上比较空闲,所以又学习了一下最近在企业实际应用中比较流行的SSM框架,以此为基础,通过网络课程,学习编写了一个基于SSM实现的MySQL增删改查的网站,好了废话不多说,下面介绍一下项目。 首先,页面的UI是使用了Bootstrap框架快速搭建的,这个框架还是比较好用的,不但快速,而且美观,风格偏扁平化。而且对于我这种英文渣
2018-01-25 19:55:37
9115
28
原创 基于局域网的超简易即时通讯软件(二)
好吧,自己挖的坑自己得埋上。继续~ 好了,接下来就是好友列表界面了,在主界面登录成功后,跳转到本界面(如图2-4)。在用户添加好友后,显示用户的所有好友,并在窗体上方显示用户头像、昵称、QQ号、个性签名等。个性签名在用户点击前为不可编辑,在点击后转为可编辑,在用户输入完新的个性签名后,焦点离开本控件,控件重新变成不可编辑,同时将新的个性签名存储到数据库中。好友列表显示主体用的是treeView
2018-01-25 19:55:35
3914
3
原创 基于局域网的超简易即时通讯软件(一)
开博也那么多天了,一直没有放什么上来,今天心血来潮,就放一个之前用C#写的,基于局域网即时通讯的简易版QQ吧。 首先呢,得了解,既然是能实现局域网的即时通讯,就必定是有服务器和客户端的,是基于C/S结构的。当时想的是为易于后期维护所以用了三层架构编写。开发软件用的是Microsoft Visual Studio 2010,数据库用的是SQL Server 2008,程序基本实现注册、登录、忘记
2018-01-25 19:55:32
26076
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人