- 博客(32)
- 资源 (116)
- 收藏
- 关注
原创 CAS 一些隐藏的知识,您了解吗
ConcurrentHashMap 在JDK1.8中ConcurrentHashMap 内部使用的是数组加链表加红黑树的结构,通过CAS+volatile或synchronized的方式来保证线程安全的,这些原理已毋庸置疑,一言不合上代码.模拟2个线程累计,通过ConcurrentHashMap 储存累计的结果。
2023-08-17 17:05:23 296
原创 静静地夜晚一起温习,并发编程中生产消费者模式几种实现方式
基于synchronized机制 ,使用Object 基类最基础的 wait()、notify()实现。基于Condition 机制实现,java 1.5之后Condition 才应运而生,它的产生主要来替代Object的wait()、notify() 来实现线程之间的协作,相对来讲Condition的await()、signal()这种方式实现线程间协作更加安全和高效。直接使用BlockingQueue实现,基于LinkedBlockingQueue、ArrayBlockingQueue 等子类实现。
2023-08-01 15:10:51 112
原创 CountDownLatch 一个神奇的计数器,您了解吗
其本质就是一个计数器,传入一个初始的值,调用await 方法会阻塞当前线程,直到调用countDown方法计数器递减为0时,唤起等待线程,等待线程开始执行。获取同步锁状态,state 与 new CountDownLatch(int count)传入的计数器的值密切相关,state 不等于0才执行doAcquireSharedInterruptibly(arg)方法,把当前线程插入到同步队列中。一个线程等待其他线程执行完成后,再继续执行,类似join 方法,多用于不同线程之间的协作。
2023-07-25 17:41:57 177
原创 一篇文章彻底了解synchronized
被synchronized 修饰后,都会有一个 monitor 与java对象关联,monitor 本身就是监视器,可以理解成为一把锁,当线程想要执行一段被synchronized 修饰的方法或者代码块时,该线程需要先获取到 synchronized 修饰的对象对应的 monitor。1、指令执行monitorexit时,则monitor的进入数减1,如果减1后进入数为0时,该线程退出monitor,不再是这个monitor的所有者。2、修饰静态方法,锁定当前类对象,非实例对象,不同实例对象依然互斥。
2023-07-20 14:49:08 106
原创 ElasticSerach RestHighLevelClient 查询,高亮分页查询,scroll分页 查询,scroll 高亮查询工具类
ElasticSerach RestHighLevelClient 查询,高亮分页查询,scroll分页 查询,scroll 高亮查询
2022-01-10 16:29:17 2695
原创 mysql 或oracle in 带入大量动态参数,优化
1、sql 改写: 用join 代替in, mysql in 过多参数,可能导致索引失效,不走索引SELECT count( a.credit_code ) enterpriseCnt, ifnull( sum( CASE WHEN a.result = 1 THEN 1 ELSE 0 END ), 0 ) authEnterPriseCnt, ifnull( sum( CASE WHEN a.result != 1 THEN 1 ELSE 0 END ), 0 ) noAuthEnterP
2021-10-12 15:26:35 618
原创 mybatis plus Cause: java.lang.IndexOutOfBoundsException: Index: 3, Size: 3
实体类中没有相应的构造方法。必须包含无参数的构造方法 或 查询语句返回的字段数相应的参数的构造方法
2021-10-12 15:19:30 483
原创 轻量级日志收集 FileBeat + ElasticSearch
轻量级日志收集 FileBeat + ElasticSearch前言轻量级的服务,未构建独立的spring cloud 体系,如单体spring boot 使用ELK组件进行日志收集,整体过于复杂繁琐,推荐轻量级日志收集框架:spring boot logback json 格式输出 +FileBeat + ElasticSearch +kibana(查询展示也可忽略)。一、Filebeat是什么?Filebeat是轻量级日志收集转发插件。作为服务器上的代理安装,Filebeat监视您指定的
2021-07-29 17:52:47 1201
转载 mybatis-plus批量逻辑删除,并填充字段
https://blog.csdn.net/yuanlintufang/article/details/106180260
2021-07-21 14:04:53 347
原创 sentinel 集群流控 sentinel 持久化到nacos
介绍为什么要使用集群流控呢?假设我们希望给某个用户限制调用某个 API 的总 QPS 为 50,但机器数可能很多(比如有 100 台)。这时候我们很自然地就想到,找一个 server 来专门来统计总的调用量,其它的实例都与这台 server 通信来判断是否可以调用。这就是最基础的集群流控的方式。另外集群流控还可以解决流量不均匀导致总体限流效果不佳的问题。假设集群中有 10 台机器,我们给每台机器设置单机限流阈值为 10 QPS,理想情况下整个集群的限流阈值就为 100 QPS。不过实际情况下流量
2021-07-02 16:33:36 871
原创 rabbitmq 发送确认机制
rabbitmq: host: 192.168.88.22 port: 5672 username: admin password: admin #开启 confirm 确认机制 publisher-confirms: true #开启 return 确认机制 publisher-returns: true #设置为 true 后 消费者在消息没有被路由到合适队列情况下会被return监听,而不会自动删除 template: mandatory: true.
2021-05-18 11:38:00 226
原创 读取canal binlog,rabbitmq 接收消息 全是数字问题
canal 读取mysql binlog 推送rabbitmq时,未指定contentType,AbstractJackson2MessageConverter解析数据时,需判断contentType,因为MessageProperties 为null,content也为null,未转码直接返回byte[]数组。 ;源码如下 public Object fromMessage(Message message, @Nullable Object conversionHint) throws Me..
2021-04-29 16:46:38 852
原创 sharding-jdbc 数据库连接池配置(有点小坑),读写分离,分表策略,主键自增
spring: #shardingsphere shardingsphere: datasource: #主库 m0: driver-class-name: com.mysql.cj.jdbc.Driver type: com.alibaba.druid.pool.DruidDataSource url: jdbc:mysql://192.168.88.22:3306/test?characterEncoding=ut.
2021-04-20 10:55:11 3617
原创 基于zookeeper 监控dubbo provider 下线,提供dubbo 服务下线 邮箱预警
由于JDK 使用1.7,案例中未使用1.8 新特性 扫描dubbo 注册zookeeper 上的所有 /dubbo目录下的 provider目录节点 public void getNode(CuratorFramework client, String parentNode) { try { List<String> nodeList = ZKUtils.getChildren(client,parentNode);
2020-09-22 10:26:35 758
原创 Arthas 是Alibaba开源的Java诊断工具
Arthas是Alibaba开源的Java诊断工具,深受开发者喜爱。当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决: 这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception? 我改的代码为什么没有执行到?难道是我没 commit?分支搞错了? 遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗? 线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现! 是否有一个全局视角来查看系统的运行...
2020-09-17 09:03:28 460
原创 spring-boot-devtools 热部署慎用,导致一些的类,实例不匹配问题
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> </dependency> 热部署慎用,导致一些的类,实例不匹配问题...
2020-08-20 11:14:11 551
原创 spring boot 国际化配置,国际化校验提示信息,校验提示信息国际化
spring boot 国际化配置,支持提示信息国际化,通过head 传递参数locale 动态切换语言package com.config;import org.hibernate.validator.HibernateValidator;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.ComponentScan;import org.spring
2020-07-31 08:50:26 1185
原创 ELK logstash 通过kafka 接收 日志,Grok 解析 过滤 日志
input { kafka { type => "normal_log_type" bootstrap_servers => ["10.2.11.92:9092"] topics => ["log_topic"] #group_id => "filebeat-logstash" #client_id => "logstashnode1" consumer_threads => 1 # codec => jso.
2020-07-28 08:37:53 994 1
原创 JSON字符串中带有反斜杠
1、使用JSON.parse() 转换成Object 对象2、转换字符串为 对象,如map, json ,不返回字符串类型
2020-07-28 08:29:24 5298
原创 mybatis-plus 打印完整SQL,SQL中包含参数
mybatis-plus SQL 日志完整输出,重写com.baomidou.mybatisplus.core.MybatisDefaultParameterHandler.setParameters 方法即可 package com.baomidou.mybatisplus.core;import com.baomidou.mybatisplus.annotation.IdType;import com.baomidou.mybatisplus.core.incrementer.Id..
2020-07-20 20:37:06 4460 3
原创 Ribbon 默认路由算法
指定默认路由类路由算法 AtomicInteger 自增 取模服务的数量public class RoundRobinRule extends AbstractLoadBalancerRule { private AtomicInteger nextServerCyclicCounter; private static final boolean AVAILABLE_ONLY_SERVERS = true; private static final boolean ALL
2020-07-19 15:32:40 342
原创 spring cloud feign okhttp3 gzip 压缩问题
引入pom okhttp 配置,okhttp使用连接池技术,相对feign httpUrlConnection 每次请求,创建一个连接,效率更高 <dependency> <groupId>io.github.openfeign</groupId> <artifactId>feign-okhttp</artifactId> </dependency>.
2020-07-15 15:12:11 2134
原创 zookeeper 分布式锁
zookeeper 分布式锁比redis 分布式锁更优雅,通过分布式锁保证数据安全性、一致性1. 引入pom.xm 配置 <!-- zookeeper 客户端 对应3.4版本 zookeeper begin--> <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-framework
2020-07-08 15:52:36 244
原创 spring cloud feign 注意事项
一、feign参数传递1、 不支持@GetMapping类似注解声明请求,需使用@RequestMapping(value = “url”,method = RequestMethod.GET)2、当参数比较复杂时,feign即使声明为get请求也会强行使用post请求,解决方推荐第4项3、使用@RequestParam注解时必须要在后面加上参数名;feign客户端的配置,包含熔断、调用服务名称,url 或日志等信息4、案例@FeignClient(name ="API-SE..
2020-07-08 15:44:59 459
原创 Spring Batch 集成 MyBatis,durid 连接池兼容MyBatisCursorItemReader 存在bug, 选用其他连接池
import lombok.extern.slf4j.Slf4j;import org.apache.ibatis.session.SqlSessionFactory;import org.mybatis.spring.batch.MyBatisCursorItemReader;import org.springframework.batch.core.Job;import org.springframework.batch.core.JobParameter;import org.sprin..
2020-06-02 10:09:49 1845 2
原创 spring batch 带参数 读取json 格式文件
import com.fasterxml.jackson.core.JsonParser;import com.fasterxml.jackson.databind.ObjectMapper;import org.springframework.batch.core.Job;import org.springframework.batch.core.JobParameter;import org.springframework.batch.core.Step;import org.spring.
2020-06-02 10:04:21 518
原创 java 约瑟夫问题
public class Test { public static void main(String[] args) { Node<Integer> first = null; Node<Integer> pre = null; for (int i = 1; i <= 41; i++) { if (i == 1) { first = new Node<.
2020-05-25 21:56:03 374
原创 spring boot websocket 注解版基于token 鉴权,并发性能测试 demo(结合网上demo,spring boot websocket 官网资料)
import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.web.socket.server.standard.ServerEndpointExporter;/** *...
2020-01-06 11:09:11 5686 4
转载 Java进阶(五)Java I/O模型从BIO到NIO和Reactor模式
五)Java I/O模型从BIO到NIO和Reactor模式本文介绍了Java中的四种I/O模型,同步阻塞,同步非阻塞,多路复用,异步阻塞。同时将NIO和BIO进行了对比,并详细分析了基于NIO的Reactor模式,包括经典单线程模型以及多线程模式和多Reactor模式。原创文章,转载请务必将下面这段话置于文章开头处(保留超链接)。本文转发自技术世界,原文链接 http://www.j...
2019-11-17 12:02:14 112
sentinel 持久化到nacos
2021-07-02
spring cloud 体系版本选型,涉及spring cloud alibaba spring boot spring cloud
2020-11-06
JVM 虚拟机原理、内存结构、优化、垃圾回收分析等全方位的讲解,专业!
2020-09-24
redis 桌面管理工具,redis 可视化工具
2020-09-24
elasticsearch-analysis-ik-6.3.0 elasticsearch- 6.3.0 分词jar包
2020-09-24
filebeat 6.3.0 轻量型日志采集器
2020-09-24
zookeeper 可视化、图形化展示工具 ZooInspector
2020-09-24
SecureCRT是一款用于连接运行包括Windows、UNIX和VMS的理想工具。
2020-09-24
基于zookeeper 监控dubbo provider 下线,提供dubbo 服务下线 邮箱预警
2020-09-22
xxl-job-master.zip
2019-09-30
sping cloud 各组件集成方案,配置中心,注册中心、网关、feign ,mybatis集成方案,通用mapper自动生成工具 带注解,redis 集成
2019-09-24
Redis设计与实现
2016-05-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人