自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(61)
  • 收藏
  • 关注

原创 多线程异步执行等待结果并组合

1.使用CompletableFuture异步执行 并获取返回结果组合。0.使用CountDownLatch阻塞等待结果。

2024-01-17 14:32:22 398

原创 SpringBoot项目集成kafka及常规配置

使用 spring-kafka 的api,在springboot项目中集成kafka能力,封装配置。

2023-06-17 10:57:14 9830 4

原创 Java调用linux脚本实现文件分割合并上传

优化前:因项目部署在内网环境,只有部分服务可以外网访问。之前部署项目,需要在本地打包,上传到运维机连vpn上传到内网服务器,通过脚本启动。

2023-05-06 13:41:21 296

原创 ThreadPoolExecutor原理解析

成员变量ctl是Integer的原子变量,使用一个变量同时记录线程池状态和线程池中线程个数,假设计算机硬件的Integer类型是32位二进制标示,如下面代码所示,其中高3位用来表示线程池状态,后面29位用来记录线程池线程个数。当用户线程提交任务到线程池后,在线程池没有执行拒绝策略的情况下,用户线 程会马上返回,而提交的任务要么直接切换到线程池中的Worker线程来执行,要么先放入线程池的阻塞队列里面,稍后再由Worker线程来执行。

2023-02-10 16:31:38 781 1

原创 nginx常用配置

【代码】nginx常用配置。

2022-12-13 15:48:21 198

原创 个人家装自用

网络。

2022-09-14 15:19:30 108

原创 grafana+prometheus+black_box 实现端口检测

grafana+prometheus+black_box 实现端口检测

2022-09-14 15:12:44 2096 1

原创 Java线程池实现缓存功能

java线程池实现定时任务

2022-08-18 17:01:52 393

原创 loki+promtail+grafana日志框架搭建

下载loki promtail grafana#loki promtail https://github.com/grafana/loki/releases#grafanahttps://grafana.com/grafana/download?pg=get&plcmt=selfmanaged-box1-cta1启动命令./grafana-server web &nohup /mnt/data/filebeat/filebeat -e > logs/stdout

2022-03-10 15:32:53 1214

原创 JVM调优(CMS+PerNew垃圾回收)

0.问题及排查思路0.1 线上故障 线上服务器服务进程假死,进程还存在,但是日志已经不打印了,访问失败超时不响应。0.2 排查思路 0.2.1 使用 jps -l 查看java进程的进程号 假设进程号为9999[root@izbp1bym5hklu4zctqz logs]$ jps -l24611 com.alibaba.dubbo.container.Main11015 sun.tools.jps.Jps15113 com.alibaba.dubbo...

2022-03-01 16:35:46 1502

原创 dubbo设置自定义路由

1.新建路由工厂import org.apache.dubbo.common.URL;import org.apache.dubbo.common.extension.Activate;import org.apache.dubbo.rpc.cluster.Router;import org.apache.dubbo.rpc.cluster.RouterFactory;import org.slf4j.Logger;import org.slf4j.LoggerFactory;/**

2022-01-05 17:19:32 1712

原创 dubbo自定义集群扩展

新建集群 import com.alibaba.dubbo.rpc.Invoker;import com.alibaba.dubbo.rpc.RpcException;import com.alibaba.dubbo.rpc.cluster.Cluster;import com.alibaba.dubbo.rpc.cluster.Directory;public class IpRouteCluster implements Cluster { public final static

2022-01-05 15:59:16 200

原创 java内存及线程问题排查常用命令

0. 观察进程的上下文切换vmstat 1 3代表每秒收集一次性能指标,总共获取3次procsr:等待运行的进程数b:处于非中断睡眠状态的进程数memoryswpd:虚拟内存使用情况free:空闲的内存buff:用来作为缓冲的内存数cache:缓存大小swapsi:从磁盘交换到内存的交换页数量so:从内存交换到磁盘的交换页数量iobi:发送到块设备的块数bo:从块设备接收到的块数systemin:每秒中断数cs:每秒上下文切换次数cpuus:用户CPU使用时间

2021-12-28 18:11:45 905

原创 Linux挂载硬盘

#查看硬盘详细信息fdisk -l#分区初始化fdisk /dev/xvde输入n设定新的硬盘分割区 输入p硬盘为主要分割区primary分区数 默认值 回车起始扇区 默认值 回车last扇区 默认值 回车w保存#加载分区partprobe#在分区建立文件系统mkfs -t ext4 /dev/xvde1#挂载mount /dev/xvde1 /mnt#备份文件cp /etc/fstab /etc/fstab.bak#设置开机主动挂载echo .

2021-12-03 17:25:05 818 1

原创 LeetCode-20[有效的括号]

description :给定一个只包括 '(',')','{','}','[',']'的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。示例 1:输入:s = "()"输出:true示例2:输入:s = "()[]{}"输出:true示例3:输入:s = "(]"输出:false示例4:输入:s = "([)]"输出:false示例5:输入:s = "{[]}"输出:tr...

2021-09-24 21:23:43 130

原创 LeetCode-14[最长公共前缀]

description:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串""。示例 1:输入:strs = ["flower","flow","flight"]输出:"fl"示例 2:输入:strs = ["dog","racecar","car"]输出:""解释:输入不存在公共前缀。提示:1 <= strs.length <= 200 0 <= strs[i].length <= 200 str.

2021-09-15 20:20:22 82

原创 LeetCode-13[罗马数字转整数]

discribtion:罗马数字包含以下七种字符:I,V,X,L,C,D和M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做II,即为两个并列的 1。12 写做XII,即为X+II。 27 写做XXVII, 即为XX...

2021-09-14 17:43:23 125

原创 LeetCode-7[整数反转]

题目给你一个 32 位的有符号整数x,返回将x中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围[−231, 231 − 1],就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。示例 1:输入:x = 123输出:321示例 2:输入:x = -123输出:-321示例 3:输入:x = 120输出:21示例 4:输入:x = 0输出:0提示:-231 <= x <...

2021-09-10 18:27:31 120

原创 LeetCode-9 [回文数]

class Solution { /** * 首先明确 /是取整(即商的整数) %是取余(左边小于右边,结果为左边,左边大于右边,结果为余数) * 思路: 1.假设为4位数 x/1000的结果为千位数字 x%10的结果为个位数字 比较千位数与个位数是否相等 * 2.取出中间数字 继续循环比较 * * @param x 入参 * @return 是否为回文数 */ public boolean isPalindrome(.

2021-09-09 16:34:34 115

原创 kafka安全权限验证sasl配置

Kafka安全认证配置 SASL常规配置(kafka和zk)kafka server配置#进入kafka的配置目录configcd /mnt/data/kafka/config#新建配置文件touch kafka_server.jaas.confvim kafka_server.jaas.conf#注意password后边有;KafkaServer { org.apache.kafka.common.security.plain.PlainLoginModule req.

2021-08-28 09:57:39 1387

原创 SpringCloudGateway修改requestBody导致form-data不支持问题解决

0.修改requestBody旧方法0.1 使用ModifyRequestBodyGatewayFilterFactory@Slf4j@Componentpublic class GlobalFilterImpl implements GlobalFilter, Ordered { @Autowired GatewayComponent gatewayComponent; @Override public int getOrder() { .

2021-07-28 10:20:42 1712

原创 EFK日志系统搭建

EFK日志系统搭建安装 elasticsearch-7.8.0 pull 镜像命令如下: docker pull elasticsearch:7.8.0 pull 镜像命令如下: docker run --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -d elasticsearch:7.8.0 检查es是否安装完成 是否有进程 docker ps -a .

2021-06-04 16:47:11 163

原创 quartz实现间隔定时任务和指定时间的定时任务

0.间隔时间重试定时任务1.指定时间的定时任务package com.zjy.iot.smart.fully.job;import com.zjy.iot.smart.fully.constants.Constants;import lombok.extern.slf4j.Slf4j;import org.quartz.*;import org.quartz.impl.StdSchedulerFactory;import org.springframework.beans.factor

2021-04-21 14:40:22 1749

原创 java爬虫抓取极客时间专栏页面

0.clone代码导入idea 项目地址:github项目1.登录极客时间账号,查看cookie信息。在代码com.ady01.demo4.jksj.util.CollectorUtil#COOKIE_VALUE 替换对应的值。2.在极客时间页面 查看文章接口返回的文章id。填入com/ady01/demo4/jksj/util/CollectorUtilTest.java:27 中 cid字段中。3.设置下载路径,运行代码。...

2021-01-28 09:55:40 1533 2

原创 策略模式解决多品牌逻辑

0. 自定义注解 标记处理器@Documented@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Inheritedpublic @interface DomainHandler { String value() default "";}1. 工厂接口public interface IDomainHandlerFactory { /** * * @return */ public

2020-12-29 19:20:33 111

原创 forest无法扫描指定包接口问题解决

0.项目为dubbo服务 无法使用注解注入@ForestScan(basePackages = "com.yoursite.client")1.扫描指定路径下的java类 手动交给spring管理import com.dtflys.forest.config.ForestConfiguration;import com.zjy.zjeframework.core.exception.SimpleException;import org.springframework.beans.Be.

2020-12-24 14:06:08 2129

原创 springboot/spring整合nacos(dubbo的main方法启动项目)

项目配置nacos零、下载nacos并启动,开放端口。确保可以使用网页版登录。登录nacos网页配置http://101.37.135.54:28848/nacos/index.html账号 nacos 密码 iot@2020配置命名空间: 测试环境/线上环境(命名空间ID在代码配置文件中配置)新增配置(新增dataId、分组等)项目配置在代码配置文件 application-production.properties/application-simulation.pro

2020-11-11 15:42:04 380

原创 雪花算法Id生成器

package com.zjy.iot.smart.community.service.util.elasticsearch;import java.lang.management.ManagementFactory;import java.net.InetAddress;import java.net.NetworkInterface;/** * <p>名称:IdWorker.java</p> * <p>描述:分布式自增长ID</p> *.

2020-08-01 18:03:11 871

原创 JsonString转Object泛型

public static <T> T getByMessageType(String jsonString, TypeReference<T> type) { return JSON.parseObject(jsonString, type); } public static <T> T toBean(String text, Class<T> clazz) { try { retu.

2020-05-13 15:13:24 503

原创 okHttp3 请求类封装

0.pom依赖 <dependency> <groupId>com.squareup.okhttp3</groupId> <artifactId>okhttp-urlconnection</artifactId> <version>3.3.1</version> </dependency>1.实体类import com.alibaba.fastjson.JS

2020-05-09 18:46:14 424

原创 Java过滤集合

public RestResult<List<UserBelongsItemsVO>> getUserBelongsItems(EmptyParam param) { List<UserBelongsItemsVO> results = new ArrayList<>(); List<CommunityUser> com...

2020-03-10 14:44:42 454

原创 Java读取json字符串 拷贝文件

public static void main(String[] args) { String json = "[ "05605344.jpg", "472873996.jpg", "488081532.jpg", "503827755.jpg", "505400883.jpg", "545850476.jpg", "548509081.jpg", "548509082.jp...

2020-01-07 21:49:22 350

原创 Java上传ZIP解压获取图片流

@RequestMapping("/batchUploadImage") public RestResult<ImportVO> batchUploadImage(@RequestParam("file") MultipartFile zipFile, CommunityCodeParam param) { if (zipFile == null) { ...

2019-12-26 17:13:25 1749

原创 用户更换部门 部门下员工数改变

/** * 编辑用户修改部门的用户数 * * @param oldCompanyDept 之前的部门 * @param companyDept 修改后的部门 */ private void editUserAndChangeDeptNo(CompanyDept oldCompanyDept, CompanyDept company...

2019-12-18 09:54:03 237

原创 Java8操作日期

一、Date与LocalDate互转Date转LocalDate public static void main(String[] args) { Date date = new Date(); LocalDate localDate = LocalDate.now(); LocalDateTime localDateTime = Local...

2019-09-29 11:02:39 227

原创 Java获取IP工具类

import java.net.InetAddress;import java.net.NetworkInterface;import java.util.ArrayList;import java.util.Enumeration;import java.util.List;public class NetworkUtil { public static String g...

2019-09-18 11:04:32 236 1

原创 MySQL优化

1 设计优化1.1 字段设计1.尽量使用整型表示字符串。2.decimal不会损失精度,存储空间会随数据的增大而增大。double占用固定空间,较大数的存储会损失精度。3.尽可能选择小的数据类型和指定短的长度。4.尽可能使用 not null。5.单表字段不宜过多。1.2 数据库设计三范式 第一范式(1NF):要求数据库表的每一列都是不可分割的原子数据项。 ...

2019-09-08 22:41:07 149 2

原创 OAuth 2.0 认证

1. 基本认知1.1 业务场景A网站需要获取B网站用户的数据,需要跳转到B网站,用户登陆后授权,A网站得到一个有时效和权限的令牌(token),可以通过令牌获取用户的信息。1.2 令牌与密码的区别 令牌是短期的,到期会自动失效,用户自己无法修改。密码一般长期有效,用户不修改,就不会发生变化。 令牌可以被数据所有者撤销,会立即失效。以上例而言,屋主可以随时取消快递员的令牌...

2019-09-02 12:16:04 415

原创 LeetCode-1[两数之和]

问题描述:给定一个整数数组nums和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1]方法...

2019-07-16 22:18:16 165

转载 SpringBean的生命周期和作用域

首先,创建 Bean 会经过一系列的步骤,主要包括:实例化 Bean 对象。 设置Bean属性。 如果我们通过各种 Aware 接口声明了依赖关系,则会注入 Bean 对容器基础设施层面的依赖。具体包括 `BeanNameAware`、`BeanFactoryAware` 和 `ApplicationContextAware`,分别会注入 `Bean ID`、`Bean Factor...

2019-06-20 10:23:07 168

空空如也

空空如也

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

TA关注的人

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