自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

chenyl

只有把命运掌握在自己手中,从今天起开始努力,即使暂时看不到希望,也要相信自己。因为比你牛几倍的人,依然在努力。

  • 博客(140)
  • 资源 (14)
  • 论坛 (4)
  • 收藏
  • 关注

原创 Java中高级问题整理(二)

文章目录1. 分布式分布式锁应该具备哪些条件数据库分布式锁redis分布式锁1. 使用setnx命令2. 使用set(locl_key,val ,expire_time,NX)命令Zookeeper分布式锁1. 获取锁2. 释放锁分布式事务:2PC(two phase commit)两阶段提交1. 概念2. XA解决方案2. 微服务SpringCloud原理eureka原理zookeeper为何能作为注册中心?说下大概实现思路?还有什么常见使用场景?Hystrix原理Hystrix的内部处理逻辑Zookee

2021-04-15 11:35:40 6

原创 Kafka常见的问题

1. Consumer的容灾能力是怎样体现的?会带来什么问题?容灾能力:pull拉取消息,并且保存消费具体位置,当消费者宕机恢复上线时可以根据之前保存的消费位置重新进行消费,消息不会丢失。带来的问题:当Consumer消费了消息,但是在保存消费位置的前一瞬间宕机了,重启服务时就会接着上次保存的位置重新消费,造成消息重复消费2. Kafka中的角色若干procuer若干consumer若干broker一个zookeeper集群3. 主题和分区关系时怎样的?同一主题在不同分区保存的消息一样吗

2021-04-14 10:17:42 11

原创 kafka发送消息时弄丢消息怎么办

1. 调整producer的消息确认参数“acks”acks为1时表示只保证leader写入成功,假如leader写入成功后还未将消息同步到follower副本便发生崩溃,会造成消息丢失acks为0时表示生产者只管发送,不管broker是否收到消息,消息丢失概率更大acks设置为-1或者all表示leader以及所有副本都要写入成功,此种情况下还可能会丢失,如果min.insync.replicas参数值为1的话,此时ISR只有一个leader副本,此时和acks为1的效果一样。综上,如果要保

2021-04-12 16:39:26 17

转载 Spring 定时任务之 @Scheduled cron表达式

原文出处,优化了文章格式,提升了阅读体验1.一个基于Spring boot的一个demo:Java配置中开户对Scheduled的支持import org.springframework.context.annotation.Configuration;import org.springframework.scheduling.annotation.EnableScheduling;@Configuration@EnableSchedulingpublic class ScheduleCon

2021-01-29 09:31:01 34

原创 Docker常用的命令

拉取镜像docker pull ubuntu运行命令 rundockerrun-i-t-d–name myubuntuubuntu:15.10/bin/bash生成容器允许你对容器内的标准输入 (STDIN) 进行交互在新容器内指定一个伪终端或终端后台运行指定容器名称镜像名:镜像tag放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。查看运行中容器docker ps查看docker中所有容器,包含停止运行的

2021-01-28 11:07:39 33 1

原创 解决windows10没有Hyper-V

将下面命令新建一个cmd可执行文件双击,等待安装完毕,最后输入Y重启电脑pushd "%~dp0"dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txtfor /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"del h

2021-01-09 12:38:14 205

原创 Activity工作流开发简单介绍

1. 工作流表由图中可以看到,依赖中已经集成了mybatis框架,在第一次初始化流程引擎(ProcessEngine)时,会自动创建24张表(图示版本)。act_evt_log,act_ge_bytearray,act_ge_property,act_hi_actinst,act_hi_attachment,act_hi_comment,act_hi_detail,act_hi_identitylink,act_hi_procinst,act_hi_taskinst,act_hi

2020-09-18 10:40:48 338

原创 Kafka 消息丢失和消息重复消费

producer 的acks参数值设置为‘0’或者‘1’,不等待服务器确认或者只让leader确认解决方法:将acks的值设置为all或者-1,让leader和followers全部进行确认producer 没有设置失败重试解决方法:根据实际场景将retries参数值设置为正整数consumer poll到消息后还未来的及完全消费,便已经提交解决方法:这种情况是在自动提交的情况下发生的,如果enable.auto.commit值为true,可以根据实际场景将auto.commit..

2020-09-10 11:38:05 209

原创 Kafka-2.6.0之Consumer

1. 偏移量和消费者位置(Offsets and Consumer Position)Kafka为每个分区(Partition)中每条记录保存一个偏移量(Offset ),offset是记录在分区中的唯一标识,也表示消费者(consumer)在分区中的位置(position)。例如:一个offset 在5的消费者,已经消费了0到4的记录,它的下个消费记录就是5。消费者位置给出了下一个偏移量的大小(在消费者现在处于分区中的位置大小加1),偏移量将在每次调用poll(Duration)方法时更新(当该方法返

2020-09-10 11:09:01 112

原创 Kafka-2.6.0之Producer

1. 简单请求,异步Properties props = new Properties();props.put("bootstrap.servers", "localhost:9092");props.put("acks", "all");props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");props.put("value.serializer", "org.apache.kaf

2020-09-09 14:25:24 52

原创 MongoDB初窥

文章目录1. 介绍2. 概念3. 操作3.1 创建数据库3.2 删除数据库3.3 创建集合3.4 删除集合3.5 数据插入3.5 数据更新3.6 删除文档3.7 查询文档3.8 MongoDB Limit与Skip方法3.9 排序3.10 MongoDB 索引摘自菜鸟教程,如有侵权请联系我1. 介绍MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。在高负载的情况下,添加更多的节点,可以保证服务器性能。MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案

2020-09-08 14:36:40 34

原创 数据预览监控工具Grafana的安装和使用

xxxx[smtp]enabled = truehost = smtp.163.com:465user = chenyulin1688@163.compassword = WFUUWPATMSPQXCSAskip_verify = truefrom_address = chenyulin1688@163.comfrom_name = chenyulinehlo_identity =

2020-08-19 13:16:20 71

原创 Elasticsearch环境搭建

1. 官网下载Elasticsearch点击下载,开箱即用启动后访问:http://localhost:9200,出现以下界面就安装成功2. 跨域配置在elasticsearch配置文件elasticsearch.yml 中添加以下配置# 开启跨域http.cors.enabled: true# 允许所有客户端跨域http.cors.allow-origin: "*"3. 安装可视化界面工具elasticsearch head安装node环境,点击下载node为node安装淘

2020-07-23 21:18:15 71

原创 使用idea远程调试

必须保证远程需要调试类的代码和本地代码一模一样远程服务启动时配置以下jvm参数-Xdebug -Xrunjdwp:transport=dt_socket,suspend=n,server=y,address=10.100.3.203:9999其中10.100.3.203为远程服务ip,9999位远程服务暴露的调试端口,不可将调试端口设置为已占用端口否则端口冲突。在idea中,打开本地代码,点击 Edit Configurations 打开配置窗口点击最左侧添加按钮,选择Remote在.

2020-07-08 17:26:59 241

原创 redis分布式锁的实现

1. 实现原理1.1. 使用setnx命令加锁:setnx(lock_key,val),根据返回结果若值设置成功,则key不存在,加锁成功,反之key已经存在,加锁失败。解锁:del(lock_key)死锁问题:线程1获取锁成功,在未执行完任务时挂掉,没有显示的释放锁,那么其它线程就永远无法获取改锁造成死锁。所以需要设置过期时间,可以利用expire命令,但是setnx和expire命令是两个动作无法保证加锁操作原子性。还有个问题,假设线程1设置锁成功,但是任务没有执行完时锁已经超时,此时线程2

2020-06-29 16:54:26 93

原创 Java中高级问题整理(一)

分析springboot运行机制首先主类上@SpringBootApplication注解,点进去主要有三个重要注解:@Configuration、@ComponentScan、@EnableAutoConfiguration。@Configuration将该类标记为配置类;@ComponentScan没有指定basePackages的话就以当前类所在的包为basePackages,这就是为什么将Bean放于主类所在包范围之外无法扫描到的原因;@EnableAutoConfiguration有个.

2020-05-29 18:35:49 288

原创 Zookeeper

Zookeeper是什么Zookeeper是一个高性能分布式应用协调服务,主要有以下功能:Naming Service配置管理Leader Election服务发现同步Group ServiceBarrier分布式队列两阶段提交Zookeeper工作方式Zookeepe集群包含 1 个Leader,多个Follower所有的Follower都可提供读服务所有的写搡作都会被forward到LeaderClient 与 Server通过NIO通信。全局串行化所有的写操作

2020-05-22 08:15:50 157

原创 Kafka入门到进阶

概念Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。 对于像Hadoop一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理

2020-05-21 08:34:28 407

原创 分布式系统的设计基本原则-CAP理论

Consistency、Availability、Partition toleranceConsistency:节点之间数据传递允许延时、阻塞、抛异常,但是必须实时准确。如果数据更新后,并发访问下可立刻感知该更新成为强一致性。如果允许部分或者全部感知不到该更新成为弱一致性。若一段时间后,一定可以感知到更新称为最终一致性。Availability:节点之间数据传递不允许超时或响应错误,但是可以返回假或者旧数据,要求有求必应。和一致性冲突。Partition tolerance:某个节

2020-05-18 08:56:41 162

原创 Kafka安装,SpringBoot整合Kafka实现日志收集附源码

一、Kafka安装点击下载地址解压,进入windows目录,启动文件都在这个目录下。二、启动服务没有java环境先安装java。1、启动ZooKeeper进入D:\my_software\kafka_2.13-2.4.1\bin\windows目录,右键打开PowerShell,输入命令.\zookeeper-server-start.bat ..\..\config\zoo...

2020-04-13 09:35:45 415

原创 散列(Hash)和散列码(HashCode)

概念散列:散列也叫散列函数,是一种可以将任意长度的输入转换为固定长度输出的算法,因此不同的输入可能产生相同的输出。散列码:散列码就是按照散列函数生成的结果。散列在编程语言中的应用散列可以将对象信息提取出摘要,然后产生固定长度的结果,我们利用这个结果跟对象关联起来就能达到快速查找对象的目的。那么,在众多的对象查找方法里,为什么要使用散列?因为快,就相当于抽象的Map直接通过key(散列结果)...

2020-03-22 15:56:24 457

原创 Java获取资源文件方式,需要注意的地方,maven或者gradle环境下获取不到包下资源问题

获取资源文件方式解析一般的Java项目目录下有两部分静态资源文件夹:java 文件夹。resources 文件夹。项目编译时期会将这两个文件夹下的文件分别按照包层级(文件夹层级)和文件夹层级关系放到target/classes文件夹下...

2020-03-11 19:39:07 300

原创 Java源码分析-Java 8 Map接口新增方法merge解析

如果传入的key对应的值为空就使用新值替换null保存到Map中,如果Map中不包含该key,就将key和新值value保存到Map中。如果传入的key对应的值不为空,那么就将该值和新传入的值作为计算函数remappingFunction的入参进行计算,返回计算后新的值。如果计算后的值为空,就删除该key,如果不为空就将计算后的值代替旧值保存到Map中。default V merge(K key...

2020-03-10 10:36:43 105

原创 Java类型信息-instanceof、isInstance()、==、equals比较

在查询类信息时,instanceof、isInstance()产生的结果相同,==、equals产生的结果相同。示例:class Parent {}class Son extends Parent {}public class Test { public static void main(String[] args) { test(new Parent()); ...

2020-03-08 13:34:29 86

原创 Java容器探索-为何Arrays.asList()方法产生的List调用Iterator.remove()报错,new ArrayList()产生的ArrayList就能正常移除

1. new ArrayList产生的ArrayList是java.util.ArrayListArrayList继承了抽象类AbstractList:public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable,...

2020-03-06 10:29:42 110

原创 Java IO的常用方法

文件复制1 使用IO复制public static void ioCopy(String pathIn,String pathOut) throws IOException { BufferedInputStream inputStream = new BufferedInputStream(new FileInputStream(pathIn)); BufferedOutpu...

2020-02-13 20:29:09 106

原创 模仿JDK实现SPI服务

此文章不是介绍SPI服务的概念,是基于对SPI有一定了解,想深入研究其实现原理的文章。本文介绍了SPI实现的整个过程,并结合配置文件的配置模拟对应实现服务的调用。话不多说,直接开码。1、准备环境1.1 安装lombok插件,pom文件导入以下依赖<dependency> <groupId>org.projectlombok</groupId> ...

2019-12-13 20:45:03 66 2

转载 Navicat 连接MySQL 8.0.11 出现2059错误

错误使用Navicat Premium 连接MySQL时出现如下错误:原因mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password解决更改加密规则:mysql -uroot -ppassword #登录use mysql; #选择数据库# 远程连接请将'local...

2019-10-14 16:43:19 41

原创 常用的设计模式整理

代理模式策略模式适配器模式装饰模式单例模式观察者模式

2019-07-29 10:28:34 77

原创 linux常用命令

1 查看进程查看:ps -ef | grep 进程名杀死:kill -s 9 进程ID2 文件文件夹删除文件夹:rm -rf 文件夹名删除文件:rm -f 文件名创建文件夹:mkdir 文件夹名查看端口号占用netstat -tunlp |grep 端口号...

2019-07-24 17:39:42 66

原创 利用Xshell向linux服务器上传文件

xshell如何传输文件

2019-07-24 17:32:44 765

原创 Nginx使用80端口反向代理多个项目(包含Java、IIS项目),作为静态资源服务器

总体配置文件#user nobody;worker_processes 1;#error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info;#pid logs/nginx.pid;events { worker_connectio...

2019-04-27 11:07:47 1138 6

原创 Java面试中高级整理

IO复用,AIO,BIO,NIO,同步,异步,阻塞和非阻塞 区别。synchronized 原理与锁升级。

2019-04-24 09:24:16 166

原创 ActiveMQ和JMS介绍和简单的使用

1 介绍1.1 ActiveMQActiveMQ是Apache提供的开源的消息系统,纯Java实现,因此很好的支持J2EE提出的JMS规范。1.2 JMS1.2.1 概念JMS(Java Message Service,即Java消息服务)是一组Java应用程序接口和相应的语法,类似于JDBC,是一组与厂商无关的API,使Java程序能与不同的厂商消息组件进行通信。消息发送异步进行,无...

2019-04-22 15:18:41 282

原创 MyBatis常见的问题以及原理

文章目录1 MyBatis缓存1.1 一级缓存1.2 二级缓存1 MyBatis缓存1.1 一级缓存MyBatis的一级缓存默认开启,作用范围是SqlSession级别的,也就是说某个SqlSession进行某个查询操作后会将该结果暂时缓存起来,而后在所有的SqlSession没有对该表进行插入、修改、删除操作的情况下,当这个SqlSession再次发起此查询时SqlSession不会去数据...

2019-04-22 13:25:14 141

原创 SpringBoot连接MySQL报错:java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized

报错内容:java.sql.SQLException: The server time zone value ‘Öйú±ê׼ʱ¼ä’ is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone...

2019-04-22 10:27:38 111

原创 将Nginx添加到windows服务中

下载windows版nginx,解压。下载一个安装工具winsw-1.18-bin.exe.点击下载。下载后改个名字:service.exe,放到nginx目录下。在nginx安装目录下新建service.xmlnginx-path为nginx根目录,注意修改为自己的目录,下面的id为服务名称,用来删除服务。<service> <id>nginx-l...

2019-03-28 12:54:04 2305

原创 springboot使用redis管理session

添加依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency><dependency> ...

2019-03-28 07:41:26 348

原创 GIT常用命令

查看本地分支git branch查看远程分支git branch -a切换至远程分支git checkout -b origin/sign-up-online1

2019-03-24 09:14:05 75

原创 阻止360、谷歌浏览器表单自动填充

阻止谷歌表单自动填充 <input type="text" id="idcode" maxlength="18" name="idcode" class="form-control" readonly onfocus="this.removeAttribute('readonly')">阻止360表单自动填充,id任意取<input type="text" id=...

2019-03-21 13:17:22 557

Postman-linux-x64-5.3.0.tar.gz,Ubuntu下进入解压后文件夹,直接点解Postman就可以运行

Postman-linux-x64-5.3.0.tar.gz,Ubuntu下进入解压后文件夹,直接点解Postman就可以运行

1970-01-07

基于 MongoDB 及 Spring Boot 的文件服务器的实现

下载文件后,利用gradle进行文件编译下载,启动成功后输入localhost:8080即可

2017-11-24

spring boot创建项目,实现同域名下单点登录源码

spring boot创建项目,实现同域名下单点登录源码

2017-06-29

简单易懂的SpringBoot+Redis整合源码

十分简单易懂的SpringBoot整合Redis源码,里面有详细的注释。

2018-07-27

基于spring boot同域名单点登录

基于spring boot同域名单点登录

2017-06-30

星外php5.2.17自动安装

本版本为全国首发限制PHPDOS版本,所有win2003,2008系统都可以使用,并安装本版本的PHP时 可以自动限制PHPDOS攻击。(不限星外主机系统用户) 运行攻击代码时,如果你显示了出错信息,就会看到“this code is kill” 采用本版本的PHP安装包后,您不用再关udp,tcp,也不需要启用这类IP策略。 如果已装了旧版本PHP,请先停止IIS,删除旧版本PHP(同时删除win\php.ini),再装上新版本,再启动IIS 如果也装了zend,可以在安装成功新版本PHP后重装zend 特别说下zend重装后要用安全包再点下设置权限,不然有安全问题 包中的dos.php是测试文件,你可以传到一个虚拟主机中运行它, 如果看到提示“没有拦截攻击,拦截攻击无效”,表明拦截功能功能无效。 如果没看到这个提示表明拦截功能生效了。

2018-04-04

网页截图 - Screenshot Extension谷歌插件

网页截图 - Screenshot Extension 超级好用的谷歌截图工具,可以截取滚动屏幕

2018-11-06

尚硅谷周阳老师SpringCloud笔记

该资源为尚硅谷周阳老师SpringCloud的学习笔记,内容很详细

2018-08-31

搭建好的solr 7.5单机版

自己搭建好的solr 7.5.0搜索引擎服务器,是单机版,给予java的,详细文档https://blog.csdn.net/qwqw3333333/article/details/84333510

2018-11-22

尚硅谷周阳老师SpringCloud学习源码

该资源为尚硅谷周阳老师SpringCloud学习的所有模块源码

2018-08-31

Nginx+Tomcat9搭建负载均衡实例,解压即可运行

解压后启动tomcat,nginx服务器,输入localhost:8888即可运行

2017-08-30

MySQL5.6.20

精简迷你版MySQL5.6.20,简化到极致,下载后可以直接运行,以下是默认配置端口号:3306,用户名:root,密码:123456

2017-09-13

Zookeeper客户端,资源小方便快捷

Zookeeper客户端,解压后找到Zooinspector\build下的zookeeper-dev-ZooInspector.jar文件,双击打开,然后连接zookeeper服务

2017-09-13

Navicat for MySQL 11.0.10(64bit) + 破解补丁

Navicat for MySQL 11.0.10(64bit) + 破解补丁.rar

2017-09-20

空空如也

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

TA关注的人 TA的粉丝

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