- 博客(171)
- 收藏
- 关注
原创 Redis持久化的两种模式--RDB和AOF
个人博客导航页(点击右侧链接即可打开个人博客):大牛带你入门技术栈最近呢,我使用到redis的缓存这方面的知识,所以去加深了一下学习,故有一些积累的东西,在这里给大家分享一下;顺便也当作笔记一般的存在,以免以后用到的时候,又去再次查找,难道自己记录的知识,它不香吗?1. Redis持久化策略1.1什么是持久化1.1.1持久化介绍运行环境: redis运行环境在计...
2020-03-20 14:36:22
504
原创 分布式定时任务调度框架实践
个人博客导航页(点击右侧链接即可打开个人博客):大牛带你入门技术栈分布式任务调度框架几乎是每个大型应用必备的工具,本文介绍了任务调度框架使用的需求背景和痛点,对业界普遍使用的开源分布式任务调度框架的使用进行了探究实践,并分析了这几种框架的优劣势和对自身业务的思考。一、业务背景1.1 为什么需要使用定时任务调度(1)时间驱动处理场景:整点发送优惠券,每天更新收益,每天刷新标签数...
2020-03-20 13:15:33
1271
1
原创 微服务系列之 Consul 服务注册中心
个人博客导航页(点击右侧链接即可打开个人博客):大牛带你入门技术栈原文链接:https://mrhelloworld.com/posts/spring/spring-cloud/consul-service-registry/ Netflix Eureka 2.Xhttps://github.com/Netflix/eureka/wiki官方宣告停止开发,但其实对国内的用户影响...
2020-03-20 12:46:41
1186
原创 JPA对象型属性操作
个人博客导航页(点击右侧链接即可打开个人博客):大牛带你入门技术栈领域驱动设计核心是领域对象识别,一切操作皆是对象,这也是面向对象编程所倡导的。在设计实体属性时,除了数据库能识别的标准数据类型外,也越来越多考虑复合型的对象属性。让我们的设计视角为数据存储的层面转向客观事物存在的实际表象。ORM框架也就是为此提供技术支撑,至少JPA朝此方向不断完善的。先上代码:(此代码主要为展示功能而...
2020-03-20 11:21:13
1659
原创 SpringBoot之@ConfigurationProperties自动注入成员变量值功能源码解析
个人博客导航页(点击右侧链接即可打开个人博客):大牛带你入门技术栈前言:我们在使用SpringBoot开发相关项目时,经常会使用到@ConfigurationProperties注解,这个注解配合application.properties(或yml文件)使用,可以快速的为我们的Bean的成员变量进行赋值,常规用法如下:// 创建bean@ConfigurationPr...
2020-03-20 10:04:49
548
原创 从源码和日志文件结构中分析 Kafka 重启失败事件
个人博客导航页(点击右侧链接即可打开个人博客):大牛带你入门技术栈上次的 Kafka 重启失败事件,对为什么重启失败的原因似乎并没有解释清楚,那么我就在这里按照我对 Kafka 的认识,从源码和日志文件结构去尝试寻找原因。从源码中定位到问题的根源首先把导致 Kafka 进程退出的异常栈贴出来:注:以下源码基于 kafka 0.11.0.2 版本。我们直接从 index...
2020-03-20 09:21:51
245
原创 开源分布式ID生成器UidGenerator的技术实现
个人博客导航页(点击右侧链接即可打开个人博客):大牛带你入门技术栈1、引言很多人一想到IM应用开发,第一印象就是“长连接”、“socket”、“保活”、“协议”这些关键词,没错,这些确实是IM开发中肯定会涉及的技术范畴。但,当你真正开始编写第一行代码时,最现实的问题实际上是“聊天消息ID该怎么生成?”这个看似微不足道的小事情。说它看似微不足道,是因为在IM里它太平常了,处处可见它...
2020-03-19 20:23:06
673
原创 idea自动生成类注释和方法注释
创建类的注释模板File->Settings->Editor->File and Code Templates->Class/*** @Description: TODO* @author: scott* @date: $DATE$ $TIME$*/创建类和方法的注释模板(通过快捷键使用)类注释File->Settings-&...
2020-03-19 19:47:53
466
1
原创 分布式锁
个人博客导航页(点击右侧链接即可打开个人博客):大牛带你入门技术栈Java 提供了两种内置的锁的实现,一种是由 JVM 实现的 synchronized 和 JDK 提供的 Lock,当你的应用是单机或者说单进程应用时,可以使用 synchronized 或 Lock 来实现锁。当应用涉及到多机、多进程共同完成时,那么这时候就需要一个全局锁来实现多个进程之间的同步。1. 使用场景...
2020-03-19 18:44:13
213
原创 【SpringBoot基础系列-实战】如何指定 bean 最先加载(应用篇)
个人博客导航页(点击右侧链接即可打开个人博客):大牛带你入门技术栈在日常的业务开发中,绝大多数我们都是不关注 bean 的加载顺序,然而如果在某些场景下,当我们希望某个 bean 优于其他的 bean 被实例化时,往往并没有我们想象中的那么简单<!-- more -->I. 启动类指定方式在实际的 SpringBoot 开发中,我们知道都会有一个启动类,如果希望某...
2020-03-19 16:44:55
842
原创 Spring注解 - AOP 面向切面编程
个人博客导航页(点击右侧链接即可打开个人博客):大牛带你入门技术栈基本概念:AOP:Aspect Oriented Programming,即面向切面编程指在程序运行期间动态的将某段代码切入到指定方法指定位置进行运行的编程方式前置通知(@Before):在目标方法运行之前执行 后置通知(@After):在目标方法运行结束之后执行(无论方法执行成功,还是出现异常,都执行)...
2020-03-19 14:29:24
225
原创 浅谈Linux下各种压缩 解压命令和压缩比率对比
个人博客导航页(点击右侧链接即可打开个人博客):大牛带你入门技术栈Linux下压缩、解压命令五花八门,不像在windows下一个winrar打遍天下无敌手,清一色的.rar .zip格式。比如,Linux下常用的tar tar.gz tar.bz2 .Z等等不一而足。而每种压缩和解压方式所耗CPU时间和压缩比率也差异甚大。在此我一一列举,希望不当之处,敬请各位指教1 各种压缩...
2020-03-19 12:35:40
838
原创 nginx请求行读取流程
个人博客导航页(点击右侧链接即可打开个人博客):大牛带你入门技术栈在前面的文章中我们讲解了当一个请求到达时,nginx是如何建立连接并且读取数据的。在读取数据完成之后,nginx会将读取事件的回调方法设置为ngx_http_process_request_line(),这个方法主要有如下几个作用:读取客户端请求的数据,如果客户端数据读取不全,则继续监听客户端读事件以读取完整数据;...
2020-03-19 11:23:39
332
原创 比较Spring AOP和AspectJ
个人博客导航页(点击右侧链接即可打开个人博客):大牛带你入门技术栈 介绍 当前有多个可用的AOP库,这些库必须能够回答许多问题:它与我现有的或新的应用程序兼容吗? 在哪里可以实施AOP? 它与我的应用程序集成的速度有多快? 性能开销是多少?在本文中,我们将着眼于回答这些问题,并介绍Spring AOP和AspectJ(这两种最流行的Java AOP框架)。2. AO...
2020-03-19 10:40:34
485
原创 SpringBoot启动源码分析
个人博客导航页(点击右侧链接即可打开个人博客):大牛带你入门技术栈SpringBoot自启动源码分析项目启动代码public static void main(String[] args) { // springboot项目启动方式 SpringApplication.run(DemoApplication.class, args); ...
2020-03-19 08:18:27
253
原创 ApplicationContextInitializer的使用
个人博客导航页(点击右侧链接即可打开个人博客):大牛带你入门技术栈1.介绍ApplicationContextInitializer主要用在容器刷新之前调用改接口实现类的initialize方法,并将ConfigurableApplicationContext类的实例作为参数传入。通常用于根据应用上下文进行处理的编程中。且实现类可以通过Ordered接口或@Order注解进行多个...
2020-03-18 21:16:01
300
原创 HashMap(JDK1.8)源码剖析
个人博客导航页(点击右侧链接即可打开个人博客):大牛带你入门技术栈HashMap(JDK1.8)源码剖析 这又是看了忘忘了看系列之一,今天有空写个文档记录下,希望能从JDK源码中慢慢悟出他们优秀的思想。本文主要记录以下几个方面。 1、HashMap的继承、实现结构 2、HashMap的构造函数们及属性们 3、HashMap的核心方法们1、HashMap的继承、...
2020-03-18 19:03:23
206
原创 负数的二进制表示
个人博客导航页(点击右侧链接即可打开个人博客):大牛带你入门技术栈计算机中,所有数据最终都是使用二进制数表达。如何将一个10进制数如何转换为二进制数以及如何将如何将一个16进制数如何转换为二进制数,详见下图。假设有一个 int 类型的数,值为5,那么,我们知道它在计算机中表示为:00000000 00000000 00000000 0000010...
2020-03-18 18:24:29
535
原创 CAS单点登录(一)——初识SSO
个人博客导航页(点击右侧链接即可打开个人博客):大牛带你入门技术栈前言:其实好早就想把CAS的这一套知识整合一下,在工作上也应用到了这块,只是最近才在工作上接触到CAS,所以刚好把这些知识总结一下。这块可能是一个比较大的模块知识点,所以会有多篇文章进行逐一展开,笔者会尽量抽空更新,当然如果文章中存在错误,期望大家指出。一、初识CAS首先我们来说一下CAS,CAS全称为Centra...
2020-03-18 15:28:01
331
原创 PHPStorm+Xdebug配置
个人博客导航页(点击右侧链接即可打开个人博客):大牛带你入门技术栈PHPStorm+Xdebug配置,用于快速调试未知问题安装 打开http://www.xdebug.org/download.php下载相应的版本 注:下载跟机器上安装的php匹配的版本,可以通过命令行(确保php加入path)指令php -i输出phpinfo信息,并拷贝到http://www...
2020-03-18 14:25:53
294
原创 如何优雅设计 API 接口,实现统一格式返回?
个人博客导航页(点击右侧链接即可打开个人博客):大牛带你入门技术栈前言在移动互联网,分布式、微服务盛行的今天,现在项目绝大部分都采用的微服务框架,前后端分离方式,(题外话:前后端的工作职责越来越明确,现在的前端都称之为大前端,技术栈以及生态圈都已经非常成熟;以前后端人员瞧不起前端人员,那现在后端人员要重新认识一下前端,前端已经很成体系了)一般系统的大致整体架构图如下:...
2020-03-18 12:35:44
684
1
原创 Laravel-Job-Queue 任务队列机制
个人博客导航页(点击右侧链接即可打开个人博客):大牛带你入门技术栈Job-Queue 任务-队列的应用场景,是将耗时的任务延时(异步)处理,比如发送邮件,从而大幅度缩短 Web 请求和响应的时间。1,队列1.1 连接和队列 connection 和 queue在配置文件config/queue.php有一个connections配置项。该配置项定义了后台队列服务的特定...
2020-03-18 10:54:31
1501
原创 移动端实时音视频直播技术流程
个人博客导航页(点击右侧链接即可打开个人博客):大牛带你入门技术栈随着互联网用户消费内容和交互方式的升级,支撑这些内容和交互方式的基础设施也正在悄悄发生变革。手机设备拍摄视频能力和网络的升级催生了大家对视频直播领域的关注,吸引了很多互联网创业者或者成熟企业进入该领域。本文是我们将从整体介绍直播中的各个环节。1、音视频采集采集是播放环节中的第一环,iOS 系统因为软硬件种类不多...
2020-03-18 09:49:42
572
原创 python实现requests重试机制
个人博客导航页(点击右侧链接即可打开个人博客):大牛带你入门技术栈一句话解决方案import requestsfrom requests.adapters import HTTPAdapter s = requests.Session()s.mount('http://', HTTPAdapter(max_retries=3))s.mount('https://', HT...
2020-03-17 18:38:10
1554
原创 PHP实现RabbitMQ消息队列
个人博客导航页(点击右侧链接即可打开个人博客):大牛带你入门技术栈先安装PHP对应的RabbitMQ,这里用的是 php_amqp 不同的扩展实现方式会有细微的差异.php扩展地址:http://pecl.php.net/package/amqp具体以官网为准http://www.rabbitmq.com/getstarted.html介绍config.php 配置信息...
2020-03-17 14:24:33
600
原创 计算机网络需要分层?
个人博客导航页(点击右侧链接即可打开个人博客):大牛带你入门技术栈最近很忙,写技术文章还是很花费时间的。但是,就在前几天出了一篇TCP粘包问题的文章 (TCP粘包,难道说这是一个伪命题???),反映不错。本来计划计算机网络文章慢慢的出,现在看来必须的加快速度了。龙叔在学习网络的时候有这样几个疑惑:为什么需要抽象出五层模型出来? 难道不是直接在网线(光纤传输)中传输数据就好了...
2020-03-17 09:01:10
725
1
原创 yum安装maven过程记录
个人博客导航页(点击右侧链接即可打开个人博客):大牛带你入门技术栈安装maven,环境虚拟机:1.安装yum配置工具$ yum install -y yum-utils2.使用配置工具配置第三方epel源仓库[root@ab0be27c0bd3 ~]# yum-config-manager --add-repo http://repos.fedorapeople.or...
2020-03-16 20:34:01
1484
原创 Java 操作 excel 文件
个人博客导航页(点击右侧链接即可打开个人博客):大牛带你入门技术栈1. 模版文件在 resources 下:2. 操作Excel并下载 private static final String STUDENT_ANSWER_EXCEL_FIEL = "template/templateStudentAnswerOfExamTable.xlsx"; @Overri...
2020-03-16 19:19:38
264
原创 走进 Java Volatile 关键字
JavaVolatile关键字是一种轻量级的数据一致性保障机制,之所以说是轻量级的是因为volatile 不具备原子性,它对数据一致性的保障体现在对修改过的数据进行读取的场景下(也就是数据的可见性)。比起对读操作使用互斥锁, volatile 是一种很高效的方式。因为 volatile 不会涉及到线程的上下文切换,以及操作系统对线程执行的调度运算。同时 volidate 关键字的另一个功能是...
2020-03-16 17:20:28
332
原创 代码质量管理工具:SonarQube常见的问题及正确解决方案
SonarQube 简介Sonar 是一个用于代码质量管理的开放平台。通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具。与持续集成工具(例如 Hudson/Jenkins 等)不同,Sonar 并不是简单地把不同的代码检查工具结果(例如 FindBugs,PMD 等)直接显示在 Web 页面上,而是通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代...
2020-03-16 15:48:40
1241
原创 Spring Boot 2.x基础教程:使用 ECharts 绘制各种华丽的数据图表
个人博客导航页(点击右侧链接即可打开个人博客):大牛带你入门技术栈通常,这类需求在客户端应用中不太会用到,但是在后端的各种统计分析模块会经常碰到。比如:通过折线图、柱状图、雷达图等可视化形式,更直观的展现和分析经营状况或系统运行情况。这里我们将引入的数据可视化组件库 ECharts来帮助我们完成这样的任务。ECharts简介ECharts是百度开源的一个前端组件。它是一个使用 J...
2020-03-16 10:37:53
347
原创 设计模式简介
个人博客导航页(点击右侧链接即可打开个人博客):大牛带你入门技术栈设计模式设计模式(design pattern)是对软件设计中普遍存在的(反复出现)的各种问题,所提出的解决方案。设计模式七大原则 单一职责 降低类的复杂度,一个类只负责一项职责 提高类的可读性,可维护性 降低变更引起的风险 通常情况下,我们应当遵守单一职责原则,只有逻辑足够简单,才可以在...
2020-03-16 10:02:32
352
原创 OpenJDK 11 JVM日志相关参数解析与使用
个人博客导航页(点击右侧链接即可打开个人博客):大牛带你入门技术栈OpenJDK 11 是在 OpenJDK 8 之后的第一个长期支持版本,这一版本在JVM日志配置有了很大改动,主要是规范化,统一化了。在 OpenJDK 8 中,日志配置有很多状态位,让人摸不着头脑,并且比较难以维护与进一步迭代。在 OpenJDK 11终于将JVM日志相关的配置规范起来,统一配置。这篇文章会对于这...
2020-03-16 08:20:09
1797
原创 多线程进阶——JUC并发编程之CyclicBarrier源码一探究竟险
机器学习技术类书单推荐,共11本:《机器学习》《图解机器学习》《机器学习实战》【有电子版】《机器学习系统设计》【有电子版】《Python机器学习基础教程》【有电子版】《Python机器学习经典实例》【有电子版】《精通机器学习:基于R(第2版)》【有电子版】《Spark机器学习》【有电子版】《Java机器学习》【有电子版】《Mahout实战》【有电子版】《...
2020-03-15 19:00:26
225
原创 ElasticSearch(二)Logstash的基础使用
个人博客导航页(点击右侧链接即可打开个人博客):大牛带你入门技术栈第二周了,今天我们来讲一下Logstash的使用。 首先,我们打开ES,使用postman新建一个索引user,在postman里使用PUT方式向localhost:9200/user发送请求。看到返回信息:{"acknowledged":true,"shards_acknowledg...
2020-03-15 16:47:29
349
原创 深入理解JVM - 方法调用
个人博客导航页(点击右侧链接即可打开个人博客):大牛带你入门技术栈方法调用并不等同于方法中的代码被执行,方法调用阶段唯一的任务就是确定被调用方法的版本(即调用哪一个方法),暂时还未涉及方法内部的具体运行过程。一切方法调用在Class文件里面存储的都只是符号引用,而不是方法在实际运行时内存布局中的入口地址(也就是之前说的直接引用)。解析所有方法调用的目标方法在Class文件里面都是...
2020-03-15 14:24:03
207
原创 认识一下JWT(JSON Web Token)
个人博客导航页(点击右侧链接即可打开个人博客):大牛带你入门技术栈什么是JSON WebToken?官网介绍:JSON WebToken(JWT)是一个开放标准(RFC 7519),它定义了一种紧凑且自包含的方式,用于在各方之间安全地将信息作为JSON对象传输。由于此信息是经过数字签名的,因此可以被验证和信任。可以使用秘密(使用HMAC算法)或使用RSA或ECDSA的公用/...
2020-03-15 12:34:42
411
原创 聊聊skywalking的mysql-plugin
附Java/C/C++/机器学习/算法与数据结构/前端/安卓/Python/程序员必读技术书单大全:书单导航页(点击右侧小资源即可打开个人博客):技术书栈=====>>【Java大牛带你入门到进阶之路】<<====天下没有不劳而获的果实,望各位年轻的朋友,想学技术的朋友,在决心扎入技术道路的路上披荆斩棘,把书弄懂了,再去敲代码,把原理弄懂了,再去实践,将会带给...
2020-03-15 11:42:51
999
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人