![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
学习笔记
文章平均质量分 63
Soda_lw
这个作者很懒,什么都没留下…
展开
-
ES高可用及集群管理
ES高可用及集群管理Elasticsearch 是一个分布式、高扩展、高实时、RESTful 风格的搜索与数据分析引擎。服务可用性:允许有节点停止服务数据可用性:部分节点丢失,不会丢失数据水平扩展集群容错一、分片1、什么是分片及其作用节点:一个运行中的ES实例成为一个节点;集群:由一个或者多个拥有相同cluster.name配置的节点组成;分片:分片(shard)是一个最小级别“工作单元(worker unit)”,它只是保存了索引中所有数据的一部分。 一个索引可以存储原创 2021-07-18 11:00:24 · 1216 阅读 · 0 评论 -
ThreadPoolExecutor线程池异常被吞问题分析
一、起因:在使用ScheduledThreadPoolExecutor执行一个定时任务时,发现执行一次后,任务就不再执行。代码举例:private static final ScheduledExecutorService executorService = new ScheduledThreadPoolExecutor(1); private static final CountDownLatch countDownLatch = public static void main(String[原创 2021-04-04 17:20:46 · 1741 阅读 · 1 评论 -
使用freemarker生成静态html文件
一、引入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId> <version>2.1.10.RELEASE</version></dependency>二、yml配置#freemarker相关配置属性原创 2021-02-13 12:05:07 · 3001 阅读 · 2 评论 -
使用apache ftpClient 进行文件上传下载
引入依赖<!-- apache FTPClient --><dependency> <groupId>commons-net</groupId> <artifactId>commons-net</artifactId> <version>3.7.2</version></dependency>ftpservice 接口public interface FTPSe原创 2021-02-13 11:42:22 · 702 阅读 · 1 评论 -
mac安装homebrew、jdk、git、maven
一、安装homebrew进入官网:https://brew.sh然后按照提示在终端输入/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"如果出现443 connection refuse,连接不上可以改用国内镜像。/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/mast原创 2020-06-20 17:43:49 · 939 阅读 · 0 评论 -
Jira使用LDAP授权认证,并且连接到内部目录(关联原来jira上的数据)
一、概述公司使用了jira,上面已经创建了很多账户、项目、任务等,现在为了管理公司内部各个应用程序的登录认证,接入了LDAP进行认证,但是ldap上创建的账户和jira上的账户不是同一个账户,即如果我们直接使用ldap创建的账号登录,那么原来jira上面的数据都没了,这肯定是无法接受的,下面来讲如何使用ldap认证登录,并且关联到原来的数据。二、jira配置ldap认证1、使用有管理权限的账号,进入 管理->用户管理->用户目录,然后点击添加目录,添加内部LDAP认证( Internal原创 2020-06-11 11:31:42 · 3984 阅读 · 0 评论 -
linux上zookeeper单机搭建伪集群
Zookeeper一、下载zookeeper解压到指定文件夹下:tar -zxvf apache-zookeeper-3.5.8-bin.tar.gz -C /home/zk/改个名字(这个随意) rename apache-zookeeper-3.5.8-bin.tar zookeeper二、将解压后的zookeeper复制两份(一共三份)* cp -r zookeeper zookeeper2* cp -r zookeeper zookeeper3三、修改配置文件进入zookeeper原创 2020-06-02 16:18:20 · 294 阅读 · 0 评论 -
通过jira Api注册webHook(钩子),触发事件后接收jira回调信息
需要在jira上注册一个钩子,当issue状态变更,或者新增issue等操作时,接收jira回调信息,触发系统其他操作。参考文档:https://developer.atlassian.com/server/jira/platform/webhooks/一、注册webHook请求url:<JIRA_URL>/rest/webhooks/1.0/webhook,发送post请求,需...原创 2020-04-29 11:27:48 · 8751 阅读 · 0 评论 -
使用Java client对接jira api
通过java程序,实现在jira上增删改查项目、issue等操作。一、使用curl的方式直接调用jira api(非本文重点)参考资料:https://docs.atlassian.com/software/jira/docs/api/REST/7.7.1/#api/2上面记录了各种操作的需要调用的url 以及请求类型。使用方式就像这样:public static String getI...原创 2020-04-28 17:34:47 · 6439 阅读 · 18 评论 -
java面试笔记
一、Synchronized关键字和Lock的区别1、Synchronized关键字不会造成死锁(出现异常释放锁),而Lock可能会造成死锁。2、Lock可以让等待锁的线程响应中断,Synchronized不行。3、通过Lock可以知道是否获取锁成功,而Synchronized不行。4、Lock可以提高多个线程读的效率(读写锁)。5、性能上,竞争不激烈,两者差不多;竞争非常激烈,Lock...原创 2020-04-02 17:36:26 · 252 阅读 · 0 评论 -
ThreadLocal学习与内存泄漏解析
一、ThreadLocal是干嘛的ThreadLocal是一个线程局部变量,也就是属于线程私有,在不同线程之中不共享,在同一个线程之中是共享的。可以想象,一个变量会在该类的多个方法中使用,就可以把这个变量设计到形参中,各个方法传递使用。但在多个方法设计中,都增加那样的参数,接口变得复杂,维护成本也增大。这时候就可以用上ThreadLocal。ThreadLocal可以使用的地方很多,后面再细说。...原创 2019-12-03 10:59:27 · 488 阅读 · 0 评论 -
RocketMQ消费者端消息列队六种负载均衡算法分析
在RocketMQ启动的时候会启动负载均衡线程,过程如下://DefaultMQPullConsumerImpl.start() mQClientFactory.start(); //上面点进去 ->MQClientInstance.start(),rebalanceService继承了ServiceThread, //ServiceThread实现了Runnable接口 this...原创 2019-11-13 14:11:46 · 3238 阅读 · 0 评论 -
RocketMQ订阅关系一致性分析
RocketMQ的消费者,在订阅topic的时候需要遵循“订阅关系一致性”原则,即:一个消费者分组(group)下的所有消费者实例的处理逻辑必须一致,一旦订阅关系不一致就会导致消费混乱,甚至消息丢失。对大多数分布式应用来说,一个group下通常会挂有多个consumer实例。由于RocketMq的消费者订阅关系由Topic+Tag组成,因此保持订阅一致就意味着,所有consumer实例需要保证:...原创 2019-11-04 19:58:38 · 3673 阅读 · 0 评论 -
基于Zookeeper的分布式锁实现
一、分布式锁使用场景当我们的系统使用集群部署、在多台服务器上部署的时候,我们java提供的synchronized关键字和Lock接口这种基于单jvm的锁就无法满足我们的需求了。这个时候就需要使用到分布式锁。二、分布式锁需要具有哪些条件1、互斥性:和我们本地锁一样互斥的是最基本的,但分布式锁得保证在不同的节点的不同线程互斥。2、可重入性:同一个节点的同一个线程获得锁后,可再次获得锁。3、...原创 2019-08-11 14:46:48 · 238 阅读 · 0 评论 -
mybatis拦截器学习-手写一个分页插件
一、我们先来看一下mybatis的执行流程。从图中可以看出在Excutor之前都是在加载配置,创建SqlSeesion等工作.所以mybatis允许拦截的地方只有四处:1、Executor (update, query, flushStatements, commit, rollback, getTransaction, close, isClosed)2、ParameterHandler...原创 2019-07-29 15:57:10 · 561 阅读 · 0 评论 -
Spring AOP加注解实现redis缓存
今天来做一个通过注解的形式实现redis缓存在我们平时的redis的使用中经常会有一种写法,就是先查redis,如果redis中没有,再查数据库。 String key = KEY + "showButton"; if (redisClient.hasKey(key)) { String str = redisClient.get(key, String...原创 2019-06-28 17:20:12 · 882 阅读 · 1 评论 -
了解redis客户端,手写一个简单的Jedis
Redis通信协议使用的是RESP协议,协议具有容易实现、解析快、人类可读等特点,协议的每部分都是以\r\n结尾。redis客户端与服务器端通信也是通过socket网络编程,我们先来模拟一个redis服务器端拦截请求,使用socketServer开启一个6379端口,接收打印信息@SpringBootApplicationpublic class RedisdemoApplication {...原创 2019-06-23 15:05:11 · 466 阅读 · 0 评论 -
java I/O流的一些常用操作
java i/o 的一些操作文件流:FileInputStream/FileOutputStream, FileReader/FileWriter这四个类是专门操作文件流的,用法高度相似,区别在于前面两个是操作字节流,后面两个是操作字符流。它们都会直接操作文件流,直接与OS底层交互。因此他们也被称为节点流。package com.lw.study.excelTest;import ...原创 2019-05-22 14:36:25 · 223 阅读 · 0 评论 -
spring AOP + redis实现一个url拦截器,防止重复提交
为了防止重复提交请求造成的问题,这里我们使用aop加上redis缓存做一个拦截器。为了方便使用,我们以注解的形式来使用。一、新建一个自定义注解import java.lang.annotation.*;/** * 针对Controller的Action拦截, * 关键字是RequestMapping第一个value, * 如无value将不进行拦截 */@Target({Elem...原创 2019-05-10 17:40:50 · 1180 阅读 · 0 评论 -
Mybatis批量更新出现BadSqlGrammarException错误
进行批量更新操作,xml文件如下: <update id="batchUpdateByPrimaryKeySelective" parameterType="java.util.List"> <foreach collection="list" item="record" separator=";"> update qs_capital_platfor...原创 2019-03-27 16:45:25 · 2728 阅读 · 0 评论 -
SpringBoot集成RocketMQ(进阶版)
上一篇文章我们讲了如何简单的springboot集成rocketmq(建议先看上一篇,此篇实在上一篇的基础上改进的),但在实际应用中,往往不会只有一个消息处理类,MessageProcessorImpl。消费者会收到不同topic,不同tag的的消息,这里我们来对我们的consumer类和消息处理类进行扩展一下。一、修改我们的MessageProcessor接口。改造一下:package c...原创 2019-01-21 15:44:36 · 10616 阅读 · 6 评论 -
设计模式(2)-单例模式
确保某各类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类成为单例类。单例模式的要点:1、某各类只能有一个实例。2、它必须自行创建这个类的实例。3、它必须向整个系统提供这个实例。比如每台计算机可以有若干个传真卡,但是只应该有一个软件负责管理传真卡,以避免出现两份传真作业同事传到传真卡中的情况。单例模式的先实现方式1、饿汉式单例public class...原创 2018-07-24 09:59:02 · 179 阅读 · 0 评论 -
Java进阶笔记
此篇文章主要是把一些在学习开发过程中遇到的坑记在小本本上(会不断更新)。一、IDEA中使用lombok1.下载插件、导入jar包。 2.将Annotation Processors中的Enable annotation processing勾上。 3.将Java Compiler中的 Use compiler选择为Javac(切记,不然注解不会生效)。二、写SQL时limi...原创 2018-05-04 16:41:42 · 323 阅读 · 0 评论 -
Effective java学习笔记一:考虑使用静态工厂方法代替构造方法
一个类允许客户端获取其实例的传统方法就是提供一个公共的构造方法。也就是通过new调用构造器。其实大多数情况下,更好的方法应该是自己写一个公共静态工厂方法,返回类的实例。比如下面这个例子。public static Boolean valueOf(boolean b) { return b ? Boolean.TRUE : Boolean.FALSE;}提供公共静态工厂方...原创 2018-04-24 17:26:27 · 326 阅读 · 0 评论 -
Android Studio 导入Eclipse项目
将Eclipse项目或者其他的Android项目导入Android,会因为项目结构不一样,或者下载的grandle版本不一致,经常会导致import project卡死。解决的简单办法首先,打开Android studio 然后import project,选择你要导入的Eclipse项目,这个时候AS会帮你自动生成一些文件,但是因为下载相应的版本它是到国外的网站下载,所以项目会卡死,...原创 2018-03-08 16:05:40 · 344 阅读 · 0 评论 -
CSS入门学习
一、Css 随着万维网的出现,对html要求越来越多,迫于压力,html出现<font>,<i>,<s>等标签,几年后暴露出严重的问题。1.由于html既写结构性又写样式,导致页面缺乏结构性,既降低了网页的可访问性。2.页面维护越来越困难。与html相比,Css支持更丰富的文档外观,可以为任何元素的文本和背景设置颜色,允许在任何元素外围设置边框;允许改变文本的大小,装饰(如下划线)间隔,甚至可以确原创 2017-07-19 21:01:54 · 548 阅读 · 0 评论 -
HTML学习笔记
无序清单:导航栏 type:circle空心的圆圈,square黑色的方块,disc默认的样式。 扩展:变色 <ul> <li>首页 </li> <li>新闻</li> 无论type是什么类型,start都死第几个(数字形式设置<ol type="A" start="9"> <li>啦啦啦</li> <li>你是谁</li></ol>图片标签:im原创 2017-07-19 20:38:41 · 401 阅读 · 4 评论 -
JavaScript学习笔记(续)
一、 JavaScript的组成 ECMAScript:JavaScript的语法标准 DOM:文档对象模型 BOM:浏览器对象模型二、 BOM 全称 Browser Object Model 浏览器对象模型 window对象是JS中的顶级对象 所有定义在全局作用域中的变量、函数都会变成window对象的属性和方法 window对象下的属性和方法调用的时候可以省略window三、w原创 2017-07-21 19:43:40 · 544 阅读 · 1 评论 -
CSS学习(续)
觉每天都在睡,学习每天也得继续,今天继续上次CSS学习。一、float浮动 float:left | right 浮动的特点: 1.浮动找浮动,不浮动找不浮动 2.浮动只影响后面的元素 3.浮动以元素顶部为基准对齐 4.浮动可是实现模式转换(span设置浮动可以设置宽高) 5.让块级元素在一行显示二、margin 外边距的总结 1.margin:设置四个方向的外边距 margin原创 2017-07-20 17:49:42 · 475 阅读 · 1 评论 -
设计模式(3)-建造者模式(Builder Pattern)
建造者模式是对象的创建模式,可以将一个产品的内部表象与产品的生成过程分割开来,从而可以使一个建造过程生成具有不同的内部表下那个的产品对象。 也就是说使用建造者模式,可以使客户端不需要知道所生成的产品对象有哪些零件,每个产品对应两件彼此有何不同,是怎么建造出来的,以及怎样组成产品。建造者模式涉及四个角色1、抽象建造者(Builder):给出一个抽象接口,以规范产品对象的各个组成成分的建造,...原创 2018-07-24 18:43:02 · 193 阅读 · 0 评论 -
设计模式(4)-原型模式(Prototype Pattern)
所谓原型模式就是从原型实例去复制克隆出新的实例,而绝不是去从类去实例化。就好比打飞机的游戏,我们操作的主角飞机只有一架,可以用单例模式去实现,而敌机好多都是一样的,如果每出一个敌机我们就去new一个敌机的对象,一下来个三十个,就去new三十个敌机的对象吗?那显而会造成极大的内存浪费,这个时候考虑使用原型模式是非常好的。 如何去使用原型模式呢?,java中所有的类都是从java.lang.Obje...原创 2018-07-25 14:58:03 · 197 阅读 · 0 评论 -
java 日期工具类DateUtil
import org.apache.commons.lang3.time.DateUtils;import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;pub...原创 2019-01-09 17:16:46 · 666 阅读 · 1 评论 -
SpringBoot集成RocketMQ(简单版)
本文讲解SpringBoot如何集成RocketMQ(简单版),合适初学者。一、首先新建一个maven项目(也可以直接新建一个springboot项目)导入如下jar包&amp;lt;parent&amp;gt; &amp;lt;groupId&amp;gt;org.springframework.boot&amp;lt;/groupId&amp;gt; &amp;lt;ar原创 2019-01-17 10:57:55 · 4454 阅读 · 3 评论 -
使用freemarker模板,将数据库表转换生成枚举类。
前言:在数据库中配置了一个枚举类,然后想把数据库中的数据,导出生成一个枚举类。数据库表结构:CREATE TABLE qs_account_trade_oper_config( id INT(10) AUTO_INCREMENT COMMENT '全局Id' PRIMARY KEY, oper_name VARCHAR(64) ...原创 2018-12-29 11:15:44 · 1258 阅读 · 4 评论 -
java查看日志的基本命令tail,less以及查看本机IP,ifconfig
查看日志的方式有很多,这里记录几个常用的tail和less命令。一、首先进入测试服务器。打开终端。ssh root@xxxxxxxxx运行上一步之后输入密码,我们可以通过ssh-copy-id root@xxxx命令来记住密码,以后登录就不需要在输入密码了。二、 常用tail命令使用tail(尾巴)命令是查看文件的最后几行,也是我们最常用的,一般就是查看最新的日志文件。 1、监控...原创 2018-10-25 15:41:57 · 4919 阅读 · 4 评论 -
Java并发编程——ReentrantLock重入锁解析
重入锁所谓重入锁,即支持重入性,表示能够对共享资源重复加锁,即当前线程获取该锁再次获取不会被阻塞。重入性在线程获取锁的时候,如果已经获取锁的线程是当前线程的话则直接再次获取成功; 由于锁会被获取n次,那么只有锁在被释放同样的n次之后,该锁才算是完全释放成功。ReentrantLock分为公平锁与非公平锁,默认选择的是非公平锁(无参构造函数),另一种构造方式,可传入一个boolean值。tr...原创 2018-09-20 15:00:16 · 221 阅读 · 3 评论 -
springboot 2.x版本Redis设置JedisConnectionFactory.setHostName()过时
一、今天新建一个项目用以前的方式集成redis时,发现JedisConnectionFactory.sethostName等方法提示过时,并且RedisCacheManager的配置构造方法也改变了,显示错误。2.X版本可以使用RedisStandaloneConfiguration、RedisSentinelConfiguration、RedisClusterConfiguration三种方式配...原创 2018-09-12 15:00:37 · 11847 阅读 · 8 评论 -
设计模式(1)-工厂模式
工厂模式可以将其分为三种。 1.简单工厂模式。 2.工厂方法模式。 3.抽象工厂模式。下面我们一个一个来说。一、简单工厂模式简单工厂模式,或称静态工厂方法模式,是类的创建模式。简单工厂模式是由一个 工厂对象根据收到的消息决定要创建哪一个类的对象实例。工厂类负责创建的对象比较少,客户只需要传入工厂类参数,对于如何创建对象(逻辑)不关心。简单工厂模式很容易违反高内聚低耦合的原...原创 2018-07-23 09:13:40 · 208 阅读 · 0 评论 -
设计模式(5)-适配器模式(Adapter Pattern)
适配器模式(Adapter Pattern),顾名思义,就像变压器,转接头差不多。就像美国的生活电压是110V,中国是220V,就需要一个变压器将220V转换成110V,或者一个Type-C接口想插如USB接口的东西,你就需要一个转换器,而这就是我们适配器模式干的事情。 适配器常用的有:类适配器,对象适配器,接口适配器。 通常包含三个角色: 目标(Target)角色:客=客户端所期待的接口,...原创 2018-07-26 16:28:36 · 202 阅读 · 0 评论 -
欢迎使用CSDN-markdown编辑器
HTML、CSS入门学习笔记初步学习web前端,笔者在这整理了一些最近学习的笔记与大家分享(持续更新)。一、web前端 1.web前段包含:pc端页面,移动端页面 2.web前段解决的问题: 1)有没得界面展示 2)良好的用户交互体验 二、什么是网页 1.网页由文字,图片,按钮等元素组成,还可以包含音频、视频及flash 三、Web标准 1:w3c万维网联盟组织 用来原创 2017-07-15 20:12:10 · 383 阅读 · 0 评论