自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

barcke的博客

源于生活 高于生活

  • 博客(49)
  • 资源 (1)
  • 收藏
  • 关注

原创 使用docker、Jenkins、gitlee、springboot、搭建个人博客网站 并实现CI/CD 外加机器人提醒

前言: 服务器用的是云服务器买的阿里的linux、jdk1.8、docker服务端使用的为阿里的docker镜像仓库、mysql使用5.7版本的、redis使用最新版即可、文件服务使用的阿里的oss.

2020-06-16 20:22:46 1395

原创 Spring 使用SSE(Server-Sent Events)学习

SSE 即服务器发送事件(Server-Sent Events),是一种服务器推送技术,允许服务器在客户端建立连接后,主动向客户端推送数据。SSE 基于 HTTP 协议,使用简单,具有轻量级、实时性和断线重连等特点。它在一些需要实时数据更新的场景中非常有用,如股票行情、实时通知等。与传统的轮询方式相比,SSE 可以减少不必要的网络请求,提高数据传输效率。SSE 的主要优点包括:实时性:服务器可以实时推送数据到客户端,无需客户端不断轮询。

2024-06-05 14:09:05 926

原创 哇哦,一个超级牛逼的图片格式!!使用它之后我们系统加载图片快了一倍!!! 图片格式转换webp学习!

WebP 格式是一种图像文件格式。它是由谷歌开发的,旨在提供一种高效的图像压缩方式,同时保持较好的图像质量。WebP 格式具有较小的文件体积,能够在一定程度上减少网络传输的数据量,提升网页加载速度。它支持有损压缩和无损压缩两种模式。

2024-05-10 11:48:32 338

原创 java JMH 学习

JMH(Java Microbenchmark Harness)是一款专用于代码微基准测试的工具集,其主要聚焦于方法层面的基准测试,精度可达纳秒级别。此工具由 Oracle 内部负责实现 JIT 的杰出人士编写,他们对 JIT 及 JVM 在基准测试方面的影响有着深刻的理解。JMH 不仅能够对 Java 语言进行基准测试,还能对运行在 JVM 上的其他语言开展基准测试。当热点方法被确定,且希望进一步提升方法性能时,可借助 JMH 对优化后的结果进行量化分析。

2024-05-07 16:07:50 421

原创 OMG 一个方法的调用改动居然优化了一倍性能!!! ConcurrentHashMap.computeIfAbsent 学习

1、升级JDK(1.9之后JDK已经处理了此问题)2、主动调优通过util方法来处理 computeIfAbsentsuper K,?

2024-04-30 17:09:23 93 1

原创 啊? 又要洗数据啦!! 还是两个key决定一个表! 二维Map学习,基于guava的HashBasedTable

表设计如下:通过map的话 就没办法很好的实现了,需要通过两个key 来确定一个 v 此时就想到了之前摸鱼看到过二维数组!!不得不说 该摸鱼就得摸!有了 HashBasedTable 就能很优雅的实现 取V的逻辑了!代码!运行结果:

2024-04-25 11:35:30 232

原创 java实现论文查重,文本查重方案 采用 ansj 分词法

Ansj 是一个开源的 Java 中文分词工具,基于中科院的 ictclas 中文分词算法,采用隐马尔科夫模型(HMM),比其他常用的开源分词工具(如 MMseg4j)的分词准确率更高。作者为孙健(ansjsun),目前实现了中文分词、中文姓名识别、用户自定义词典、关键字提取、自动摘要、关键字标记等功能,适用于对分词效果要求高的各种项目。

2024-04-16 10:44:57 537

原创 使用 java 进行微信机器人搭建桥接

官方网站:http://pad-local.com/#/learngit地址:https://github.com/wechaty/puppet-padlocal使用pad loacl安装 Node推荐安装 Node 16 LTS (16.16.0),具体安装方法可以访问 Node 主页。从 github 上 clone 项目如果不能访问 github,可以从 gitee 下载。安装项目依赖。

2024-01-30 11:39:20 417 3

原创 记一次接口远程调用异常排查链路 Remote peer closed connection before all data could be read

记一次接口远程调用异常排查链路 Remote peer closed connection before all data could be read

2023-03-07 10:45:06 3032 2

原创 Sharding-jdbc 4.1.1 问题记录

sharding-jdbc使用问题记录

2022-07-22 11:06:37 2243 1

原创 设计特性思考

平时的开发中避免不了技术设计,那么在设计中,我们怎么评判设计是否是优良的呢?

2022-07-20 11:32:07 205

原创 Sharding-Jdbc 基础使用分享

逻辑表水平拆分的数据库(表)的相同逻辑和数据结构表的总称。例:订单数据根据主键尾数拆分为10张表,分别是t_order_0到t_order_9,他们的逻辑表名为t_order。真实表在分片的数据库中真实存在的物理表。即上个示例中的t_order_0到t_order_9。数据节点数据分片的最小单元。由数据源名称和数据表组成,例:ds_0.t_order_0。绑定表分片规则一致的主表和子表。例如:t_order表和t_order_item表,均按照order_id分片,则此两张表互为绑定表关系。绑定表之间的

2022-07-13 13:55:04 1022

原创 sharding-jdbc 分库分表 跨库查询逻辑 * 出现 null 数据问题记录

公司业务库有多个库,服务拆分细粒度不够,避免不了查询多个业务库。假设我们有库 A、Bsharding-jdbc 默认库为 A此时执行下方查询 B 的查询语句 返回的数据为 nullselect * from users

2022-07-12 22:15:36 2686

原创 xxl-job 2.2.0 魔改自动主动执行器以及任务

xxl-job 需要手动在控制台注册任务和执行器,操作麻烦。增加操作复杂性。魔改2.2.0版本 自动注册~让我们释放双手

2022-06-08 18:13:59 880 8

原创 Mysql 存在则修改 不存在则新增的两种实现方法

假设有一张demo表,主键为id,唯一索引是codecreate table demo( id int auto_increment, name int null, gender int null, age int null, code int null, constraint demo_pk primary key (id));create unique index demo_code_uindex on demo (code);方法一 replace intorepla

2021-12-31 10:34:54 9265

原创 使用spring aop简单进行操作日志的记录

简单记录操作日志即:谁什么时间做了什么事情。实现第一步创建一个@Log注解类@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface Log { /** * 操作类型 */ String operationType() default "add"; /** * 操作记录静态记录 * @return 操作记录

2021-12-29 17:08:38 330

原创 单体架构拆分微服务二

微服务架构UML优势服务可靠性高、可用性高、可扩展性高将之前的多种模块拆成了多个服务,即使某个服务挂掉了也不会影响到其他服务,比如订单服务挂了,不会影响到客户继续逛商场,不会影响添加购物车。每个服务可以用不同的技术栈实现,提现各个技术栈的优势。每个服务都可 X、Y、Z轴扩展,根据不同服务的特性有不同的扩展方案。X轴:水平复制,即在负载均衡服务器后增加多个web服务器。Y轴:根据服务的职责/功能,拆分服务。Z轴:对数据库的扩展,即分库分表(分库是将关系紧密的表放在一台数据库服务器

2021-10-24 12:47:55 195

原创 单体架构拆分微服务一

单体架构UML优势快速迭代刚开始搭建项目时能够快速迭代需求,不需要多个服务反复切换开发,多方配合处理。部署便利部署只需要部署一个服务即可。技术栈单一开发只需要会一种技术栈就能独立的完成开发用人成本低往往一个开发就能独立完成从业务逻辑处理到DB的整个流程劣势维护困难当开发逻辑越堆越多,逻辑耦合在一起就很难接手维护,通常可能维护摸一个模块的人,可能需要去理解熟悉大多数响应场景逻辑。测试困难如只需要测试一个小模块时,因为单体服务的原因可能需要吧涉及到的业

2021-08-21 15:54:18 231

原创 SpringBoot实现接口版本管理控制

前言因为现在开发都是前后端分离。前端如果是小程序或者App开发的时候,由于前端有版本控制而后端没有导致的问题,此时如果接口要修改之前的,那么后端没办法判断当前客户用的小程序版本只能让前端多传递一个参数了,这样的判断是不是不够优雅呢?是的没错,优雅的方式来啦~实现逻辑实现逻辑主要运用到了两个类org.springframework.web.servlet.mvc.condition.RequestConditionorg.springframework.web.servlet.mvc.method.

2021-06-18 15:58:43 2330 1

原创 mysql索引下推理解

1、回表什么是回表?首先我们需要知道mysql的B+Tree数据结构并理解。大家都知道B+Tree是底层存储data的,那么非主键索引呢?底层是存储主键id的如下图所示此时如果查询user表并且列指定为*,此时就会发生回表操作了。索引下推那么什么是索引下推呢?索引下推(index condition pushdown )简称ICP,在Mysql5.6的版本上推出,用于优化查询。在不使用ICP的情况下,在使用非主键索引(又叫普通索引或者二级索引)进行查询时,存储引擎通过索引检索到数据

2021-06-17 16:51:44 133 2

原创 事务理解(ACID)

有些人抱怨,常用的两阶段提交在性能和可用性方面代价太高 而我们认为 事务滥用和过度使用所引入的性能瓶颈应该主妥由应用层未解决,而不是简单的抛弃事务。一-James Corbett 等, Spanner:来自 Google 的全球分布式数据库( OSDI2012)什么是事物?在一个严格要求数据准确性的环境中,会有许多可能出错的情况,如:服务器处理业务时报错,出现异常数据库软件异常,导致增删改出错服务器宕机服务器和数据库之间连接中断。多个客户端同时写入数据,导致数据覆盖客户端读到一些无

2021-06-01 10:07:04 348 1

原创 Gradle Mac idea 安装使用

Gradle安装Gradle下载地址 戳我~~进入到下载页面后我们下载所需版本-bin.zip下载完后将zip文件进行解压在本地新建.bash_profile 用于mac读取,不过我是放在zsh中的。这里就以zsh为例~如果使用.bash_profile的同学可以直接编辑 .bash_profile文件即可export 导入我们的gradle地址。export GRADLE_HOME=/Users/aaa/Desktop/midongtools/gradle-7.0.2export P

2021-05-15 10:39:44 462

原创 Mybatis-plus Lambda自动填充 MetaObjectHandler 失效 解决方案

关于使用lambdaUpdate()导致updateAt不更新问题解决方案很苦恼,为啥使用lambdaUpdate()会导致updateAt不更新呢,明明我也标明了注解。明明我也有对应的config处理类进行自动填充但是为什么就是不更新呢???这是因为:MyBatis-Plus 字段填充是必须依赖于实体对象,通过实体对象进行自动插入,如果参数中不包含实体对象,则无法触发字段自动填充如下图所示 我们执行的方法:然后通过一层层跟进去到源码处理层的时候我们会发现实体类为null是不处理的固不会

2021-05-08 11:11:12 2990 2

原创 BloomFilter(布隆过滤器)结合redis使用---可解决集群数据问题~

前言Bloom Filter是一个占用空间很小、效率很高的随机数据结构,它由一个bit数组和一组Hash算法构成。可用于判断一个元素是否在一个集合中,查询效率很高(1-N,最优能逼近于1)。布隆过滤器概念详解可参考:https://blog.csdn.net/jiaomeng/article/details/1495500常见使用场景1、缓存击穿将已存在的缓存放到布隆中,当黑客访问不存在的缓存时迅速返回避免缓存及DB挂掉比如说:活动详情接口,我们可以缓存所有活动id,每一次调用活动详情接口时先

2021-03-18 16:38:51 585

原创 降维打击代码生成器,更快的开发后台管理系统

代码生成器的本质还是生成繁琐的后台代码,一旦修改后期生成的代码很难合并,虽然减轻部分工作,但解决方式并非最佳,后台管理系统开发是否还有更好的解决方案?框架简介Erupt Framework通用的后台管理框架,零前端代码,零CURD,快速开发企业级管理后台 !无需创建 template 、 controller 、 service 、 dao 、 entity 、 mapper 效率提升1000%无需生成任何代码,仅需单个实体类文件,配合erupt所提供的注解,就可快速开发完成后台管理功能 !支持数

2020-12-14 12:41:52 359

原创 使用Nacos配置中心、Springboot实现动态任务调度

众所周知SpringBoot中通过@Scheduled即可使用定时任务,但是我们有需求需要动态的定时导出报表这可怎么办呢,当然市面上还有很多的任务调度器也是不错的.本文主要教大家使用Nacos配置中心和SpringBoot实现动态任务调度.话不多说,代码奉上.public interface AbstractDynamicSchedule extends Runnable { /** * 任务名称 * @return 返回执行任务名称用于打日志 */ St

2020-08-07 15:14:14 2890 1

原创 SpringBoot非对称加解密---RSA、通过注解自动化实现

rsa-body-spring-boot使用方式源码地址:https://github.com/Barcke/rsa-body-spring-boot/tree/master导入对应的MAVEN包: <dependency> <groupId>com.barcke.y</groupId> <artifactId>rsa-body-spring-boot</artifactId> <version&g

2020-07-27 20:43:20 1169 5

原创 SpringBootMail JavaMailSender 发送邮件

前言: springboot中不需要在写复杂的email工具类啦 强大的Spring有提供JavaMailSender进行邮件发送.首先导包: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId></dependency>

2020-07-14 19:04:41 167

原创 docker搭建nacos1.3.0

1、简历nacos的数据库 数据库名称 nacos_config 用户名密码nacos nacos数据库脚本:/******************************************//* 数据库全名 = nacos_config *//* 表名称 = config_info *//******************************************/CREATE TABLE `config_info` ( `id` bigint(20) NO

2020-07-03 18:35:31 4832 2

原创 使用docker安装nginx并配置ssl证书实现https方式登录

前言: 本人的ssl证书是申请的阿里的免费ssl 上阿里云控制台ssl证书申请即可.1.首先定义nginx.conf的文件为了方便我们定义对应的负载和ssl证书配置并将配置挂在到docker容器中我的nginx.conf配置如下:worker_processes 1;events { worker_connections 1024;}http { include mime.types; default_type application/octet-s

2020-07-03 14:11:33 2345 4

原创 使用yapi、idea提供api文档整体操作流程

前言: Swagger-ui代码侵入型太强固使用yapi来做api文档提供工具.搭建yapi在idea中下载yapi的插件下载yapi插件后在msic.xml文件中加入如下配置 <component name="yapi"> <option name="projectToken">${token}</option> <option name="projectId">${id}</option> <opt

2020-07-01 15:38:49 1265

原创 通过docker搭建yapi1.8.5

启动 MongoDBdocker run -d --name mongo mongo获取yapi镜像 这里的yapi是本人通过dockerfile生成版本为1.8.5docker pull registry.cn-zhangjiakou.aliyuncs.com/barcke-util/yapi初始化数据库索引及管理员账号docker run -it --rm \ --link mongo:mongo \ --entrypoint npm \ --workdir /ap.

2020-07-01 15:30:22 226

原创 springboot mybatis mybatis-plus3.1.0 多数据源接入

前言: mybatis-plus版本为3.1.0,springboot版本为2.1.4.RELEASE导入以下依赖包 <dependency> <groupId>com.baomidou</groupId> <artifactId>dynamic-datasource-spring-boot-starter</artifactId> <version>2.5.4</version></depe

2020-06-30 17:54:16 3759

原创 使用 docker 安装 redis 最新版

docker 安装最新版 redis 简单的一行命令搞定docker run -itd --name redis -p 6379:6379 redis设置密码的话在命令后加入–requirepass “123456” 即可注意 如果之前有安装redis 得先删除redis的镜像!!! 通过docker rm ${id} 进行删除示例:docker run -itd --name redis -p 6379:6379 redis --requirepass "123456"可以通过doc

2020-06-08 14:18:08 286

原创 使用 docker 安装mysql 5.7版本

前言: 对5.7版本数据库并没有特殊的需求固没有生成实现特定的配置.简单实现mysql5.7安装mysqldocker run --name mysql5.7 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=${passWord} -d mysql:5.7变量${passWord}请输入你要设置的密码进入docker容器,修改mysql 访问授权 (如果不需要远程访问忽略以下步骤)通过以下命令查询docker的iddocker ps通过以下命令进入到do

2020-06-08 11:48:11 262

原创 ali linux CentOS docker安装

卸载旧版本的docker较旧的 Docker 版本称为 docker 或 docker-engine 。如果已安装这些程序,请卸载它们以及相关的依赖项。sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ .

2020-06-08 10:48:56 255

原创 Idea插件好用插件集合

Idea插件好用插件集合近期在各种平台看到idea插件推荐现总结下认为好用的给大家推荐一手~~BackgroundImage IDEA背景图使用教程可参考: https://blog.csdn.net/weixin_39220472/article/details/80316932CodeGlance 编码页面右侧小图代码显示使用教程可参考: https://blog.csdn.net/defonds/article/details/79469148Jcla

2020-05-22 16:26:12 367

原创 Docker通过DockerFile启动rabbit带延迟队列(DLX)插件

Docker通过DockerFile启动rabbit带延迟队列(DLX)插件本文使用的是3.7.26版本的RabbitMQ编写DockerFileFROM rabbitmq:3.7.26-managementCOPY #{本机插件地址}/rabbitmq_delayed_message_exchange-20171201-3.7.x.ez /pluginsRUN rabbitmq-plugins enable rabbitmq_delayed_message_exchangeEXPOSE

2020-05-13 19:52:10 503

原创 字节跳动3.0小程序支付接入

字节跳动3.0小程序支付接入3.0与2.0-1.0不同不需要去到字节跳动服务器进行订单号的获取。1、支付流程图小程序Demo下载地址。戳我~~~~官方文档地址。戳我~~~官方流程图:2、代码示例使用该类进行orderinfo生成即可。需要注意!!!在该类中wxurl、wxtype、alipayurl均不能为空。就算不使用也要给值!!!列: wxUrl("http://www.baidu.com") .wxType("MWEB")

2020-05-08 21:55:26 1211 3

原创 iMac安装whistle

iMac安装whistle首先安装nodejs,前往官网进行nodejs的下载。https://nodejs.org/en/下载后点击安装包进行安装即可;通过npm -v可查看是否安装成功,如下图:安装好npm后通过npm安装whistle。npm install whistle -g --registry=https://registry.npm.taobao.org安装完成后通过...

2020-05-07 15:53:44 825

延迟队列rabbit docker file 文件

rabbit带延迟队列的docker file

2021-05-10

空空如也

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

TA关注的人

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