- 博客(150)
- 资源 (2)
- 收藏
- 关注
原创 2021版最新Kafka面试题精选(附刷题小程序)
推荐使用小程序阅读为了能让您更加方便的阅读本文所有的面试题目均已整理至小程序《面试手册》可以通过微信扫描(或长按)下图的二维码享受更好的阅读体验!文章目录推荐使用小程序阅读什么是Kafka?Kafka中有哪几个组件?什么是消费者或用户?Kafka中的 Broker 是干什么的?什么是生产者?什么是消费者组?偏移的作用是什么?Kafka系统工具有哪些类型?Kafka为什么那么快?Kafka的message格式是什么?Kafka可以接收的消息最大为多少?Kafka的优点有那些?为什么要使用 Kafk
2021-02-23 19:20:17 1776
原创 2021最新 SpringCloud面试题精选(附刷题小程序)
推荐使用小程序阅读为了能让您更加方便的阅读本文所有的面试题目均已整理至小程序《面试手册》可以通过微信扫描(或长按)下图的二维码享受更好的阅读体验![toc]1. Spring Cloud 基础1.1 什么是Spring Cloud?Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、智能路由、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署
2021-01-30 13:43:24 3541 2
原创 2021最新 SpringBoot面试题精选(附刷题小程序)
推荐使用小程序阅读为了能让您更加方便的阅读本文所有的面试题目均已整理至小程序《面试手册》可以通过微信扫描(或长按)下图的二维码享受更好的阅读体验![toc]1. SpringBoot基础1.1 什么是SpringBoot?用来简化Spring应用的初始搭建以及开发过程,使用特定的方式来进行配置创建独立的Spring引用程序main方法运行嵌入的tomcat无需部署war文件简化maven配置自动配置Spring添加对应的功能starter自动化配置SpringBoot来简
2021-01-30 10:40:14 5078 2
原创 2021最新 SpringMVC面试题精选(附刷题小程序)
推荐使用小程序阅读为了能让您更加方便的阅读本文所有的面试题目均已整理至小程序《面试手册》可以通过微信扫描(或长按)下图的二维码享受更好的阅读体验![toc]1. Spring MVC基础1.1 什么是Spring MVC?Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把模型-视图-控制器分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。1.2 Spring MVC的优
2021-01-30 10:36:58 1342 1
原创 2021最新 Spring面试题精选(附刷题小程序)
推荐使用小程序阅读为了能让您更加方便的阅读本文所有的面试题目均已整理至小程序《面试手册》可以通过微信扫描(或长按)下图的二维码享受更好的阅读体验![toc]1. Spring基础1.1 什么是 spring?Spring是一个轻量级Java开发框架,最早有Rod Johnson创建,目的是为了解决企业级应用开发的业务逻辑层和其他各层的耦合问题。它是一个分层的JavaSE/JavaEE full-stack(一站式)轻量级开源框架,为开发Java应用程序提供全面的基础架构支持。Spring
2021-01-30 10:32:39 3073
原创 2021最新 Redis常见面试题(附刷题小程序)
推荐使用小程序阅读为了能让您更加方便的阅读本文所有的面试题目均已整理至小程序《面试手册》可以通过微信扫描(或长按)下图的二维码享受更好的阅读体验![toc]1. Redis基础1.1 什么是 Redis?Redis 本质上是一个 Key-Value 类型的内存数据库,很像 memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据 flush 到硬盘上进行保存。因为是纯内存操作,Redis 的性能非常出色,每秒可以处理超过 10 万次读写操作,是已知性能最快的
2021-01-30 10:19:44 2121
原创 2021最新 MySQL面试题精选(附刷题小程序)
推荐使用小程序阅读为了能让您更加方便的阅读本文所有的面试题目均已整理至小程序《面试手册》可以通过微信扫描(或长按)下图的二维码享受更好的阅读体验!文章目录推荐使用小程序阅读@[toc]1. MySQL 基础1.1 超键、候选键、主键、外键分别是什么?1.2 LIKE 和 REGEXP 操作有什么区别?1.3 数据库的三范式是什么?1.4 什么是通用 SQL 函数?1.5 请说一下MySQL的复制原理以及流程。1.6 【SELECT *】 和【SELECT 全部字段】的 2 种写法有何优缺点?1.
2021-01-29 19:35:03 5516 7
原创 2021最新 Java虚拟机(JVM)面试题精选(附刷题小程序)
推荐使用小程序阅读为了能让您更加方便的阅读本文所有的面试题目均已整理至小程序《面试手册》可以通过微信扫描(或长按)下图的二维码享受更好的阅读体验![toc]1. JVM 基础1.1 JVM 内存分哪几个区,每个区的作用是什么?方法区1. 有时候也成为永久代,在该区内很少发生垃圾回收,但是并不代表不发生 GC,在这里进行的 GC 主要是对方法区里的常量池和对类型的卸载2. 方法区主要用来存储已被虚拟机加载的类的信息、常量、静态变量和即时编译器编译后的代码等数据。3. 该区域是被线
2021-01-29 19:30:04 1647
原创 2021最新 Java并发编程面试题精选(附刷题小程序)
推荐使用小程序阅读为了能让您更加方便的阅读本文所有的面试题目均已整理至小程序《面试手册》可以通过微信扫描(或长按)下图的二维码享受更好的阅读体验!文章目录推荐使用小程序阅读@[toc]1. 并发基础1.1 并行和并发有什么区别?1.2 同步和异步有何异同,在什么情况下分别使用他们?1.3 为什么要使用并发编程?1.4 并发编程有什么缺点?1.5 并发编程三要素是什么?1.6 什么是上下文切换?2. Java 线程2.1 线程和进程的区别?2.2 守护线程是什么?2.3 创建线程有哪几种方式?2.
2021-01-29 19:28:39 2155
原创 2021最新 Java基础面试题精选(附刷题小程序)
推荐使用小程序阅读为了能让您更加方便的阅读本文所有的面试题目均已整理至下面的小程序《面试手册》可以通过微信扫描(或长按)下图的二维码享受更好的阅读体验![toc]1. Java 基本概念1.1 Java源程序的扩展名是什么?.java1.2 什么是标识符?在java语言中能够我们自己起名的都叫标识符1.3 标识符有哪些特点?标识符是大小写字母、数字字符、$和_组成,不能以数字开头,也不能是java关键字,并且区分大小写1.4 请说明环境变量Path 与 classpath 区别
2021-01-29 19:04:21 4440 1
原创 Linux最常用快捷键汇总及详解
文章目录控制台快捷键文本编辑快捷键编辑操作位移操作删除操作复制、剪切、粘贴替换撤销保存、退出导入编辑中执行指令多行注释查找前天和各位分享了Linux常用指令的汇总: 有需要的可以去收藏一下,用的上的时候翻来看看;今天来分享一下Linux常用的快捷键;虽然很多操作,通过鼠标点点就可以做到;但是,纯用键盘操作Linux的流畅性跟手来回游走在鼠标、键盘之间的体验,完全不是一个数量级的,因此,熟悉快捷键并熟练运用,必将事半功倍;下面就来一一列举一下常用到的快捷键:内容持续更新请关注: https://lupf.
2020-12-25 15:22:49 379
原创 史上最全Linux常用指令汇总,又一吃灰教程
文章目录文件文件夹操作文件查看文件压缩解压文件查找文件编辑服务定时任务crontab说明定时任务格式示例注意事项权限权限定义用户组操作权限说明数字权限说明设置权限机器相关cpu内存磁盘网卡时间其他更多操作开发人员,必不可少的需要和Linux打交道,这里整理了经常会用到的一些Linux相关的操作,能快速帮你熟悉并操作Linux服务器;本教程会在后续的使用中持续更新 ;文件文件夹操作查看当前所在目录pwd查看目录下文件ls -all # 以列表形式显示目录下文件打开目录.
2020-12-22 23:56:02 238
原创 SpringBoot!你的请求、响应、异常规范了吗?
长文警告!!!文末有红包前言这段时间在调整老系统相关的一些业务代码;发现一些模块,在无形中就被弄的有点乱了,由于每个开发人员技术水平不同、编码习惯差异;从而导致在请求、响应、异常这一块儿,出现了一些比较别扭的代码;但是归根究底,主要问题还是出在规范上面;不管是大到项目还是小到功能模块,对于请求、响应、异常这一块儿,应该是一块儿公共的模板化的代码,一旦定义清楚之后,是不需要做任何改动,而且业务开发过程中,也几乎是不需要动到他丝毫;所以,一个好的规范下,是不应该在这部分代码上出现混乱或者别扭的情况的;忍不.
2020-12-07 16:19:23 639 1
原创 基于Docker搭建MySQL主从复制
文章目录Docker安装数据库安装配置主从Docker安装docker安装请参考我之前的文章:https://lupf.cn/articles/2019/11/23/1574503815568.html 详细的教你如何在centos上安装docker数据库安装主从基础详细ip端口类型镜像版本容器名称192.168.1.2203306主库5.7.13mysql-master01-3306192.168.1.2203307从库5.7.13mys.
2020-11-17 16:18:43 195
原创 Jenkins监听gitlab的提交并自动打包(详细图解)
第一步(gitlab),创建gitlab的访问令牌第二步(jenkins);Jenkins安装gitlab插件安装gitlab 和gitlab hook第三步(jenkins);配置gitlab的凭证第四步(jenkins);配置gitlab的连接第五步(Jenkins);创建jenkins构建项目第六步(gitlab);配置Hook第七步;测试触发touch 1.txtgit add .git commit -m "测试自动触发jenkins"git push or
2020-11-17 16:14:14 3468
原创 5分钟集成实现SpringBoot自动生成API接口文档(下篇)
前言这是一篇整合性质的文章,也可以认为是5分钟集成实现SpringBoot自动生成API接口文档的下篇,是实现真正意义上的自动化,上篇讲的是文档是自动生成出来的,但是触发生成的这个动作都是人为触发的,这里去掉所有需要人为参与的动作;写这篇文章的最终目的是将整个API文档自动生成周边相关的所有技术点全部都整理归纳起来;就算是没有任何思路的你,顺着这篇文章,也能把其中涉及到的东西全部学会,并且可以运用到实际的日常开发中去,让你从这些琐碎的事情中抽身出来,做更加有意义的事情。测试源码源码 :https:/.
2020-11-16 00:12:52 776
原创 5分钟集成实现SpringBoot自动生成API接口文档(上篇)
当你问10个开发人员想不想写开发文档,可能有11个人会告诉你,不想写;那有没有方式可以不写接口文档,能自动生成呢?当然是有的,业界比较主流的是使用丝袜哥(swagger);但是个人使用过程中,觉得它对代码的侵入性有点强,虽然减轻了文档撰写的工作量,但是带来了一些编码的负担,同时和整个业务功能耦合的比较严重;下面推荐一个非侵入的API生成工具:apigcc : https://github.com/apigcc/apigcc 使用起来也非常的简单,而且对代码几乎零侵入。话不多说,代码走着。。。测试源码.
2020-11-16 00:10:12 4629 2
原创 阿里云托管Docker镜像仓库
仓库创建进入官网https://cr.console.aliyun.com/cn-shanghai/instances/repositories第一次使用会要求你设置一个密码记住这个密码,之后的镜像上传下载都需要用到这个密码创建仓库设置代码源这里使用本地仓库创建仓库上传镜像获取仓库地址第一步,点击管理第二步,获取到仓库的地址公网地址 registry.cn-hangzhou.aliyuncs.com/lupf/nginx专有网络
2020-11-16 00:06:56 793
原创 基于Docker 5分钟搭建GitLab代码仓库
GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具;为了更加方便的使用,这里基于Docker安装一个中文社区版;从而实现gitlab的汉化参考文章:CentOS 7下安装Docker及基础操作基于VirtualBox搭建Linux(CentOS 7)虚拟机环境(学习必备技能)Gitlab安装下载镜像docker pull gitclub/gitlab-ce-zh创建宿主机持久化目录三个目录;etc(配置) log(日志) data(数据)mkdi.
2020-11-16 00:04:20 293
原创 基于Docker 5分钟解决Jenkins环境搭建问题
Jenkins;一款基于Java开发的开源持续集成工具,可以让打包、发布、自动化测试变的更加边界;由于使用标准的安装会存在一些插件下载、安装、更新的问题;导致很多人还在门口就被拦回去了,无法领略到其优秀的风采。因此这里使用Docker安装一个中国定制版的Jenkins;保证你能在5分钟内就解决掉环境搭建的问题。不会Docker的可以参考下面的文章安装Docker:CentOS 7下安装Docker及基础操作基于VirtualBox搭建Linux(CentOS 7)虚拟机环境(学习必备技能)Dock.
2020-11-15 23:52:35 298
原创 OHTTPS,一款免费且好用的SSL证书管理工具
自建站SSL证书的痛点自己瞎折腾,搭建了一个个人的博客平台(https://lupf.cn);作为程序员,B格还是得有的,因此,SSL证书也就必须得安排上呢,不然一访问,显示不安全的链接,有点丢不起那个人。可是,各大云平台的免费SSL证书,都只支持二级域名,没办法配置泛域名,导致每添加一个二级域名,就得新申请一个SSL证书,假如都到期了话,就得全部重新申请一遍,重新配置一遍,着实麻烦;如果要使用泛域名,就得付费购买,一年小几千的;而对于白嫖党,花这笔几K的费用,着实有点不划算;因此就盯上了Let’s E.
2020-10-19 19:50:38 5316 5
原创 spring源码解析---一文讲透@Configuration
这是一篇长文,但是很自信的是我相信我讲的已经非常透彻了,想必你读完之后,一定对@Configuration有一个很透彻的理解。@Configuration注解在实际的开发过程中,好像显的不是那么的重要,因为使用的过程中,加他,不加他,貌似都没有什么大的影响,那他存在到底有什么意义呢?我们来看一下下面的这段测试实例。// 测试类Apublic class A { public A(){ System.out.println("create a"); }}// 测试类B...
2020-09-06 12:07:32 399
原创 google浏览器常用插件汇总
文章目录常用Google插件的推荐集装箱安装安装失败问题解决标签同步问题adblock plus 恶意广告拦截插件(非常好用,从此页面一片清净)OneTab 标签页管理草料二维码google 翻译JSON-handle(json格式化)octotree(github目录展示插件)下载+ (下载管理)常用Google插件的推荐集装箱用于学习和交流安装下载因为使用代理之前,无法访问到Google插件管理的服务,所以我们是无法正常下载到插件的;这里我在百度上找到了最新版本的插件,放在了公众号上面.
2020-09-04 17:07:46 2207
原创 并发编程之Redis:Redis数据持久化及故障恢复方案
为什么要做持久化?原因用过Redis的应该都知道,其数据都是保存在内存中,这也是它性能这么好的主要原因;但是这样就会带来一个问题,就是当Redis进程挂了或者机器挂了之后,内存中的数据就没了。那为了保证数据不丢失或者尽量少了丢失,我们希望数据能够落地到磁盘中,来降低故障发生之后数据丢失的可能性;当再起启动服务的时候,通过持久化的磁盘数据,快速恢复到内存中;持久化的作用核心作用:故障恢复,如果一切都按我们想象的去发展,就可以不存在什么持久化;往往事与愿违,你越不想发生的事情偏偏他就发生了。数据.
2020-09-04 13:44:27 685
原创 Spring MVC服务端单元测试工具MockMvc
什么是单元测试?是指对软件中的最小可测试单元进行检查和验证;作为后台开发,我们对外提供的每一个RESTful API就是一个最小的可测试单元,为了确保可用性,我们在接口对外提供服务之前要尽可能的保证接口是按预期的要求在执行,因此,单元测试就是开发过程中必不可少的一项工作;完善的单元测试技能快速定位开发过程中的BUG,同时也可以减少因为BUG导致对接过程带来的大量人员沟通所消耗的时间成本。当需要持续性完善及优化代码的时候,一个好的单元测试用例能够帮助我们快速的确认修改是否对预期产生影响。单元测试的方式.
2020-07-20 18:34:52 533
原创 基于Docker搭建Nacos集群
准备机器3台192.168.1.160192.168.1.161192.168.1.162docker安装CentOS 7下安装Docker及基础操作安装mysql基于docker安装mysqldocker run \-p 3306:3306 \--name nacos-mysql \-v $PWD/conf:/etc/mysql/conf.d \-v $PWD/logs:/logs \-v $PWD/data:/var/lib/mysql \-v /etc/localt.
2020-07-17 18:22:14 5804 3
原创 基于Nacos的服务治理、配置中心
Nacos集群环境的搭建参看《基于Docker搭建Nacos集群》:https://lupf.cn/articles/2020/05/21/1590058654840.html ; 亦或者通过官方提供的其他方式安装,详情参考:https://nacos.io/zh-cn/docs/quick-start.htmlNacos作为配置中心apollo配置中心整理Nacos的服务治理,顺带着整理一下Nacos的配置中心; 目前实际的生产使用的是Apollo; 个人相比较更加喜欢Apollo一点,如果想.
2020-07-17 18:20:03 668 1
原创 RESTful API,你真理解了吗?
什么是RESTful API?RESTful API并不是什么框架,他也并不是某段啥代码,他单纯的就是一种规范,一个标准。一旦涉及带规范、标准,就是一个很空泛概念,一开始很难理解真正的特点,然后就很难将其与传统的API区分开来;RESTful API与传统API的区别传统API的url代表的是一种行为;如上图的查询/user/query,通过url就可以知道当前的接口适用于查询操作的;RESTful API的url表示的是资源;如上图的接口地址,多次出现/user/1;/user/1表示着用户.
2020-07-13 14:46:57 812
原创 路径匹配、RestFul接口地址匹配工具AntPathMatcher
背景SpringBoot开发RestFul API接口,如果存在鉴权,可能会存在需要比对当前请求的接口是否允许访问;如后台定义了一个接口,@GetMapping("/user/{id}"),根据用户的id查询用户信息;此时如果用户请求/user/1的时候,是否要放行,我们该如何比对,传统的equals是没有办法满足比对需求的,SpringBoot给我们提供了一个工具类AntPathMatcher,用于路径比对示例@Testpublic void antPathMatcher() { Ant.
2020-07-09 10:48:35 2835
原创 nacos导致log4j2不输出日志
问题背景SpringBoot通过log4j2输出日志,nacos作为注册中心问题描述项目启动出现以下日志,然后没有任何自定义的log输出WARN No Root logger was configured, creating default ERROR-level Root logger with Console appender问题原因因为nacos的log4j2导致本项目的日志不输出的问题解决方式启动项目中添加以下配置public static void main(String[.
2020-07-08 11:07:33 2838
原创 git subtree使用说明
为什么要使用subtree在实际的项目开发过程中,公共的代码或者模块是必定会出现的,为了不重复写相同的代码;普遍的做法就是将其抽取成一个公共模块,这个模块由不同的使用者引用;作为java工程师,可能会选择将这一部分打包封装成一个jar,并且将其推送到Maven的私有仓库,各个使用者将其添加到pom文件即可;但是有没有更好的方式呢?因为使用这种方式,对使用者来说,并不是透明的,当前可能已经更新版本...
2020-04-09 19:50:27 1963
原创 基于Docker安装Harbor搭建Docker私有仓库
前言之前整理过一篇基于docker安装的Harbor的文章,但是在实际的运用中,发现那么玩并不实用,根据后续的实用,这里重新整理一个新的教程准备Docker安装及docker-compose可参考:CentOS 7下安装Docker及基础操作;Harbor的运行是通过docker-compose进行服务编排,所以这里需要优先安装好;下载Harbor安装包版本查看官方地址,选择自己需...
2020-04-01 16:40:34 1316
原创 SpringBoot基于Aop自定义Slf4j日志输出格式
需求当线上服务或者接口出现异常之后,第一时间需要做的就是追踪日志,找出问题到底出现在哪里,但是在现有的分布式及微服务的背景下,一个请求的调用链往往比较的长,所以一般情况下会选择使用一个请求的唯一ID输出为日志,然后便于日常运维过程的问题追踪,如何优雅自如的自定义一个log输出呢?下面使用AOP加上logback来给一个简单优雅的方式;解放双手,告别体力活。Aop这里不做AOP的介绍。除了使用...
2020-01-09 18:27:43 3039
原创 java设计模式之单例模式
前言单例模式作为开发过程中最常用的设计模式之一,是程序员必须了解和掌握的技能,但是单例的实现方式和手段有很多种,每一种都有着各自的优缺点,如何在代码中运用就需要我们对每一种实现方式都了如执掌方可运筹帷幄。单例的实现方式静态常量饿汉式代码public class Single { private static Single single = new Single(); ...
2019-12-29 19:22:11 160
原创 深度剖析synchronized、volatile的实现细节
文章目录线程对象的内存布局对象头类型指针实例数据对齐填充synchronizedvolatile可见性的问题指令重排总结线程什么是线程?线程(thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务什么是并发?当多个线程同时执行相同的控制流...
2019-12-27 18:40:27 448
原创 Linux下Netty导致Redis连接失败的问题java.lang.NoSuchMethodError: io.netty.channel.SingleThreadEventLoop.<init>
背景项目中同时使用了Redis和Netty,SpringBoot版本使用的2.1.6正式版;在Linux环境下运行Redis无法正常连接资源引用如下: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-s...
2019-11-21 14:54:46 4722 4
原创 SpringBoot集成Apollo配置中心(5分钟集成系列)
相关文章基于Docker 5分钟搭建携程Apollo分布式配置中心SpringBoot集成第一步登录Apollo添加测试项目(apollo-test)第二步添加测试配置 // 服务的端口 server.port = 8888 // 测试的key key = va a = 1第三步添加依赖 <dependency> &l...
2019-11-19 21:38:33 1750
原创 基于Docker 5分钟搭建携程Apollo分布式配置中心
前言由于一开始对Apollo的架构方式了解的不够升入,同时为了能够使得安装过程更加的简单,做到一条指令实现Apollo环境的搭建,经历了比较多的测试;本文基于apollo 1.6.0的版本进行编译打包的,后面会将整个镜像的创建过程逐一的列举出来,避免想了解的朋友再次花时间去研究;什么是Apollo携程官方Apollo仓库对该分布式配置中心做了详细的说明,这里就不再对起解析过多的解释,官方文档...
2019-11-16 21:06:15 1965
原创 git subtree使用说明
为什么要使用subtree在实际的项目开发过程中,公共的代码或者模块是必定会出现的,为了不重复写相同的代码;普遍的做法就是将其抽取成一个公共模块,这个模块由不同的使用者引用;作为java工程师,可能会选择将这一部分打包封装成一个jar,并且将其推送到Maven的私有仓库,各个使用者将其添加到pom文件即可;但是有没有更好的方式呢?因为使用这种方式,对使用者来说,并不是透明的,当前可能已经更新版本...
2019-11-16 16:16:14 7302 1
原创 SpringBoot学习之旅(十一)---运行时环境、配置文件自动切换
需求说明开发过程中,经常出现的环境必定会有以下几个:开发环境、测试环境、预发布环境(可能会有,可能没有)、正式环境;由于这些环境的存在,我们就不得不去维护这一系列环境的配置(如数据库连接、商户资料等等)及版本,那么要如何去管理这些配置呢?常用的方式第一种:版本管理工具比如,通过git去维护不同的分支,不同的分支有不同的配置文件信息;发布的时候,切换不同的分布打不同版本的包进行上传发布缺...
2019-10-14 22:23:30 1620
Spring Cloud Bus自动刷新流程图
2019-04-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人