问题解析
文章平均质量分 59
Soda_lw
这个作者很懒,什么都没留下…
展开
-
ES高可用及集群管理
ES高可用及集群管理Elasticsearch 是一个分布式、高扩展、高实时、RESTful 风格的搜索与数据分析引擎。服务可用性:允许有节点停止服务数据可用性:部分节点丢失,不会丢失数据水平扩展集群容错一、分片1、什么是分片及其作用节点:一个运行中的ES实例成为一个节点;集群:由一个或者多个拥有相同cluster.name配置的节点组成;分片:分片(shard)是一个最小级别“工作单元(worker unit)”,它只是保存了索引中所有数据的一部分。 一个索引可以存储原创 2021-07-18 11:00:24 · 1287 阅读 · 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 · 1826 阅读 · 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 · 974 阅读 · 0 评论 -
Jira使用LDAP授权认证,并且连接到内部目录(关联原来jira上的数据)
一、概述公司使用了jira,上面已经创建了很多账户、项目、任务等,现在为了管理公司内部各个应用程序的登录认证,接入了LDAP进行认证,但是ldap上创建的账户和jira上的账户不是同一个账户,即如果我们直接使用ldap创建的账号登录,那么原来jira上面的数据都没了,这肯定是无法接受的,下面来讲如何使用ldap认证登录,并且关联到原来的数据。二、jira配置ldap认证1、使用有管理权限的账号,进入 管理->用户管理->用户目录,然后点击添加目录,添加内部LDAP认证( Internal原创 2020-06-11 11:31:42 · 4196 阅读 · 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 · 9015 阅读 · 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 · 6682 阅读 · 18 评论 -
java面试笔记
一、Synchronized关键字和Lock的区别1、Synchronized关键字不会造成死锁(出现异常释放锁),而Lock可能会造成死锁。2、Lock可以让等待锁的线程响应中断,Synchronized不行。3、通过Lock可以知道是否获取锁成功,而Synchronized不行。4、Lock可以提高多个线程读的效率(读写锁)。5、性能上,竞争不激烈,两者差不多;竞争非常激烈,Lock...原创 2020-04-02 17:36:26 · 264 阅读 · 0 评论 -
Java高并发下请求合并如何处理
场景描述:在大并发量下每秒有一万个请求向后端查询数据,这样我们就需要向后端请求一万次,甚至查询一万次数据库。我们要做的请求合并就是每隔一段时间(10ms)将这段时间内的请求合并到一起进行批量查询,减少查询数据库的次数。思考:1、如何存放一段时间内的请求?这里我们可以用队列。2、如何每隔一段时间执行任务?用定时任务线程池。3、每个请求都是单独的线程,如何保证各个请求能得到自己的查询结果?这里...原创 2020-04-01 11:07:12 · 3086 阅读 · 3 评论 -
ThreadLocal学习与内存泄漏解析
一、ThreadLocal是干嘛的ThreadLocal是一个线程局部变量,也就是属于线程私有,在不同线程之中不共享,在同一个线程之中是共享的。可以想象,一个变量会在该类的多个方法中使用,就可以把这个变量设计到形参中,各个方法传递使用。但在多个方法设计中,都增加那样的参数,接口变得复杂,维护成本也增大。这时候就可以用上ThreadLocal。ThreadLocal可以使用的地方很多,后面再细说。...原创 2019-12-03 10:59:27 · 526 阅读 · 0 评论 -
RocketMQ消费者端消息列队六种负载均衡算法分析
在RocketMQ启动的时候会启动负载均衡线程,过程如下://DefaultMQPullConsumerImpl.start() mQClientFactory.start(); //上面点进去 ->MQClientInstance.start(),rebalanceService继承了ServiceThread, //ServiceThread实现了Runnable接口 this...原创 2019-11-13 14:11:46 · 3344 阅读 · 0 评论 -
RocketMQ订阅关系一致性分析
RocketMQ的消费者,在订阅topic的时候需要遵循“订阅关系一致性”原则,即:一个消费者分组(group)下的所有消费者实例的处理逻辑必须一致,一旦订阅关系不一致就会导致消费混乱,甚至消息丢失。对大多数分布式应用来说,一个group下通常会挂有多个consumer实例。由于RocketMq的消费者订阅关系由Topic+Tag组成,因此保持订阅一致就意味着,所有consumer实例需要保证:...原创 2019-11-04 19:58:38 · 3872 阅读 · 0 评论 -
java求两个数的最大公约数和最小公倍数
解题思路: 1.求最大公约数用辗转相除法。将较大的那个数对较小的那个数取余(如果a>=b,那就a%b),取余得出的结果为下次运算的除数,上面较小的那个数将作为被除数 直到运算到较小为0时,返回较大的数,这个数就是最大公约数。 2.最小公倍数就是 原来的两个正整数的积除以最大公约数具体代码如下:/*方法一:*/package Main;import java.util.Scanner;publ原创 2017-10-17 22:54:58 · 6240 阅读 · 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 · 338 阅读 · 0 评论 -
SpringBoot使用JavaMailSenderImpl发送邮件
一、首先在pom中添加依赖<dependency> <groupId>javax.mail</groupId> <artifactId>javax.mail-api</artifactId> <version>1.5.6</version&g原创 2018-08-29 14:17:46 · 1728 阅读 · 0 评论 -
使用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 · 1281 阅读 · 4 评论 -
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 · 2763 阅读 · 0 评论 -
spring AOP + redis实现一个url拦截器,防止重复提交
为了防止重复提交请求造成的问题,这里我们使用aop加上redis缓存做一个拦截器。为了方便使用,我们以注解的形式来使用。一、新建一个自定义注解import java.lang.annotation.*;/** * 针对Controller的Action拦截, * 关键字是RequestMapping第一个value, * 如无value将不进行拦截 */@Target({Elem...原创 2019-05-10 17:40:50 · 1240 阅读 · 0 评论 -
了解redis客户端,手写一个简单的Jedis
Redis通信协议使用的是RESP协议,协议具有容易实现、解析快、人类可读等特点,协议的每部分都是以\r\n结尾。redis客户端与服务器端通信也是通过socket网络编程,我们先来模拟一个redis服务器端拦截请求,使用socketServer开启一个6379端口,接收打印信息@SpringBootApplicationpublic class RedisdemoApplication {...原创 2019-06-23 15:05:11 · 492 阅读 · 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 · 936 阅读 · 1 评论 -
java-统计一段句子中各单词出现的次数
问题:统计一段句子中各单词出现的次数。思路: 1、使用split方法将文章进行分割,我们这里以空格、逗号和句点为分隔符,然后存到一个字符串数组中。2、创建一个hashMap集合,key是字符串类型,保存单词;value是数字类型,保存该单词出现的次数。3、遍历思路1中的字符串数组,如果key(单词)没有出现过,map中增加一个元素,key为该单词,定义value为1;如果key(单词)出现过,那么原创 2017-09-13 12:23:39 · 8824 阅读 · 0 评论