自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zhuyu19911016520

记录开发中的点点滴滴

  • 博客(442)
  • 资源 (69)
  • 论坛 (2)
  • 收藏
  • 关注

原创 数组-数据结构与算法

1.数组是很多编程语言中最基础的数据结构,下面来一起温习下2.数组示例: int[] a = new int[10]; //定义数组 a[0] = 5; //数组赋值, int v1 = a[0]; //访问数组, v1=5 ,下标从0开始3.数组如何实现随机访问?1.内存中所有的空间都是按格子排列好的,每个格子占一个字节byte,且都有一个地址,通过地址访问到格子中的内容2.程序创建数组时,会在内存中申请连续的空间,并记录数组的首个格子地址 ba

2020-12-09 09:37:11 51

原创 MinIO分布式对象存储

MinIO 分布式部署需要4块磁盘,可以是4台服务器分别挂载一块磁盘,也可以是2台服务器分别挂载两块磁盘,可参考:https://docs.min.io/cn/deploy-minio-on-docker-swarm.htmlMinIO 分布式部署支持Docker Compose、Docker Swarm、Kubernetes等几种方式,Docker-Compose是单机多实例,伪分布式,可测试使用,因没有kubernetes环境,这里使用Docker Swarm有3台服务器,一台docker swar

2020-11-02 16:38:17 300

原创 MinIO对象存储服务与SpringBoot集成

MinIO     MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等     相当于利用MinIO自建一个OSS对象存储服务     MinIO是一个支持分布式部署的对象存储

2020-11-02 15:41:18 335

原创 用Java注解对结果集中包含身份证号码的数据进行脱敏处理

1.目标,期望对响应到客户端结果集中的用户身份证号码、手机号码等敏感信息进行脱敏处理,如身份证号码中间8位用 * 星号代替,手机号码中间4位用 * 星号代替2.SpringBoot项目,常用的web依赖3.处理思路:1.定义枚举类,处理不同类型的数据(身份证号、手机号、邮件等)2.定义注解,用在要处理的字段上,关键是该注解上使用 @JacksonAnnotationsInside 主键,因为springboot项目默认使用 jackson 序列化数据(题外话:如果使用FastJsonHttpMes

2020-09-27 09:15:04 424 1

原创 Java 实体映射工具 MapStruct

项目复杂性提升后,应用与应用之间,还有单独的应用细分模块之后,DO 一般不会让外部依赖,这时候需要在提供对外接口的模块里放 DTO 用于对象传输,也即是 DO 对象对内,DTO对象对外,DTO 可以根据业务需要变更,并不需要映射 DO 的全部属性。这种 对象与对象之间的互相转换,就需要有一个专门用来解决转换问题的工具,毕竟每一个字段都 get/set 会很麻烦。MapStruct 就是这样的一个属性映射工具,只需要定义一个 Mapper 接口,MapStruct 就会自动实现这个映射接口,避免了复杂繁琐

2020-09-11 16:21:38 266

原创 用Spring AOP、Java注解、反射对返回的结果集进行特殊处理

1.目标:业务数据中的某些字段列,需要根据用户选择的语言类型自动处理后返回对应语言的数据2.背景:系统需要适应多种语言:中文简体、中文繁体、英语等,一个业务数据中的某些列,会同时设置多种语言的数据,用户可根据自己喜欢的语言展示对应的数据3.用户选择语言后,前端把该参数通过header头传递到后端,后端查询业务数据后,根据header头中的多语言参数,查询业务数据中某些列对应语言的数据,再覆盖到当前的数据中,然后返回给客户端4.难点:1.结果集的数据有数组嵌套,2.尽量少改动业务代码,且提供好的性能,来

2020-09-05 12:13:12 226 3

转载 掌握 Spring 中@transactional 的使用

事务管理是应用系统开发中必不可少的一部分。Spring 为事务管理提供了丰富的功能支持。Spring 事务管理分为编码式和声明式的两种方式。编程式事务指的是通过编码方式实现事务;声明式事务基于 AOP,将具体业务逻辑与事务处理解耦。声明式事务管理使业务代码逻辑不受污染, 因此在实际使用中声明式事务用的比较多。声明式事务有两种方式,一种是在配置文件(xml)中做相关的事务规则声明,另一种是基于@Transactional 注解的方式。注释配置是目前流行的使用方式,因此本文将着重介绍基于@Transaction

2020-09-04 11:18:41 77

原创 SpringBoot集成Elasticsearch

建议使用 Elasticsearch Bboss我们使用SpringBoot基于es7.6.2版本进行开发,部署服务时,客户要使用阿里云es服务,阿里云es服务现在最高版本6.3.2,因此代码需要降级处理,而使用了Bboss客户端后,所编译的查询代码基本无改动,很好的兼容了6.3.2版本。注意点:es6.x与7.x版本最大的不同是,7.x默认使用type=_doc,所以建索引时要指定type=_docbboss elasticsearch是一套基于query dsl语法操作和访问分布式搜索引擎ela

2020-08-27 10:01:39 179

原创 java项目打包成docker镜像与k8s运行的镜像

1.打包成docker镜像,Dockerfile如下预留一个 $JAVA_OPTS 参数,接收启动镜像时的java参数FROM openjdk:8-jdk-alpineADD apicenter-1.0.jar apicenter.jarENTRYPOINT ["/bin/sh", "-c", "java $JAVA_OPTS -jar /apicenter.jar"]打包:docker build -t apicenter:v1.0 ./启动:docker run -d --name api

2020-07-09 09:34:31 1089

转载 Java核心知识点之注解简介和最佳实践

111

2020-06-30 09:36:17 155

原创 分布式任务调度平台xxl-job初使用

1.因为在服务中写定时任务,当服务发布多份实例时,会多次执行,可能造业务数据混乱,把定时任务执行次数分离出来,由分布式任务调度平台去控制2.本篇将介绍 xxl-job官网地址:https://www.xuxueli.com/xxl-jobGithub:https://github.com/xuxueli/xxl-job/3.概要说明,xxl-job的工作原理1.部署xxl-job服务端,由该服务端控制业务服务里面的定时任务执行次数和时间2.在业务服务中引入xxl-job客户端依赖,指定xx

2020-06-28 13:44:41 371

原创 JetCache多级缓存

1.JetCache,阿里巴巴开源多级缓存框架JetCache是一个基于Java的缓存系统封装,提供统一的API和注解来简化缓存的使用。 JetCache提供了比SpringCache更加强大的注解,可以原生的支持TTL、两级缓存、分布式自动刷新,还提供了Cache接口用于手工缓存操作。 当前有四个实现,RedisCache、TairCache(此部分未在github开源)、CaffeineCache(in memory)和一个简易的LinkedHashMapCache(in memory),要添加新的实

2020-06-24 21:53:33 1293 2

原创 SpringBoot集成单元测试

Spring基本单元测试pom.xml 引入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope></dependency>在测试目录添加测试类1.注入服务直接测试@

2020-06-22 15:32:59 695

原创 SpringCloud Feign Get请求传对象参数

前置说明,有A、B两个服务,A服务调用B服务,B服务接口是Get类型,接受参数对象feign get请求传对象参数分两种情况1.版本在2.1之前,如我springboot是2.0.6.RELEASE,springcloud是Finchley.SR2版本,则A服务使用Map map替代对象传给B服务//A-service@ApiOperation(value = "查询xx", httpMethod = "GET")@GetMapping("/maps")public ReturnEntity

2020-06-22 15:15:43 1176

原创 调用链监控Skywalking与Zipkin

1.Skywalking与Zipkin的区别颗粒度:Skywalking方法级(展示的更详细),方法中所有的调用都展示出来了,如数据库调用、redis调用,第三方网络调用,而Zipkin只能展示接口级UI界面:Skywalking完胜,国产开源,更适合国人眼球代码侵入性:Skywalking无代码侵入,使用字节码增强技术,在启动服务时使用 javaagent 指向skywalking服务即可收集调用链span信息Zipkin:简单、轻量级2.安装部署对比Zipkin安装部署简单,参考:Spr

2020-06-16 11:39:23 2353

原创 SpringBoot MySql读写分离-多数据源集成

1.业务场景客户给了3台MySQL数据库服务器,一主二从,程序需要集成读写分离,充分提升数据处理能力数据层使用了MyBatis-Plus,它有一个多数据源的中间件 dynamic-datasource-spring-boot-starter参考:MyBatis-Plus2.MySql主从一主二从,搭建方式参考:docker搭建mysql读写分离3.SpringBoot快速集成1.新建SpringBoot项目,核心依赖<dependency> <groupId&g

2020-06-10 14:44:16 575

原创 Prometheus+Grafana项目实战

项目上线后,需要对服务器资源,MySql,JVM,业务系统总请求数等,进行监控,通过监控找到系统盲区,反过来优化系统,比如服务器资源使用情况,Mysql慢sql等,JVM的GC情况,某个业务某段时间的总请求数下面的文章是Prometheus与Grafana的基础文章,请参考Prometheus - 时间序列数据库Grafana - 监控信息可视化工具Spring Boot Metrics监控之Prometheus1.整体逻辑1.需要监控的目标有:服务器资源使用情况,MySQL,JVM,业务

2020-05-25 21:02:26 562

原创 Linux Centos7 ImageMagick压缩某目录下的图片

1.系统上线一段时间后,服务器图片目录上传了13G多的图片,而且图片很大一张张的,因此需要把图片进行压缩2.百度各种压缩方案,发现 Linux 上 ImageMagick 软件很好,C语言开发的,可以压缩、裁剪、加水印,功能太多了,自己去官网看吧,且已在GitHub上开源3.开源地址:https://github.com/ImageMagick/ImageMagick4.先看看压缩效果,这个目录有7.3G大小的图片,压缩后为 1.6G,这样可以大大提升网站的访问速度5.安装ImageMagick(网

2020-05-11 15:18:53 290

原创 nfs网络文件系统

1.使用nfs的背景?单体项目部署到多个服务器上时,上传图片也会分步在各个服务器上,因此把文件挂载在共享目录中,就需要用到 nfs 网络文件系统,多个服务会把图片上传到该共享目录中,达到数据统一的目的2.nfsnfs分为服务端与客户端,服务端做为共享目录,为客户端提供挂载、存储文件的能力3.安装服务端安装:yum -y install nfs-utils rpcbind服务端的IP...

2020-04-25 23:07:49 171

原创 docker下 MYSQL5.7版本 sql_mode=only_full_group_by问题

解决办法:把docker容器中mysql的 mysqld.cnf 文件复制出来,修改其配置,然后启动容器时使用本地修改后的配置。具体操作如下:1.先启动mysql,执行下面的脚本docker run -d --name mysql -it --restart=always \-v /root/mysql/data:/var/lib/mysql \-p 3306:3306 -e MYSQ...

2020-03-07 00:23:05 585

原创 Java IO和NIO读取大文件,对比速度

话题:假设机器只有500M内存,有一个1.23GB的文件,要从一个目录复制到另外一个目录目的:比较IO与NIO的读取速度效率细节:大文件不能一次读到内存中,否则会内存溢出,只能每次读取固定大小的数据流下面进行代码实现,在实现代码中,有的代码是一次性读取全部内容到内存中,有的是读取固定大小,分别看看这些方法读取文件速度的差异文件大小 1.23GB1.使用RandomAccessFile读...

2020-02-20 15:42:39 3260

原创 flutter app内更新升级

用flutter开发了一个简单的跨平台app,在网上找了很多 app内升级的博客,大部分都是复制的,不过有一篇好文章推荐给大家,重点是引用的插件尽量和此博客中的一样,否则编译时各种报错,Flutter 项目 app迭代更新下面将分详细说说,为那些初学者提供思路,并把demo分享出来,看看源码1.有两种方法实现app升级1.直接使用url_launcher插件跳转本地浏览器下载,版本号没有要...

2020-01-10 21:33:56 3324 2

原创 Nginx核心要领十四:Nginx安装配置完整版

1.更新与安装编译工具yum updateyum -y install vim gcc gcc-c++ automake autoconf libtool make pcre-devel openssl openssl-devel zlib zlib-devel2.下载nginxwget http://nginx.org/download/nginx-1.16.0.tar.gztar -...

2019-12-25 11:32:26 313

原创 RabbitMQ 安装延迟队列插件实现延时消息

之前博客写了 RabbitMQ 延迟队列的实现,是通过死信队列与转发队列配合实现延时消息的功能本篇将利用RabbitMQ的延时队列插件,实现延时功能,下面分两部分介绍怎么实现延时功能1.用Docker安装 RabbitMQ和延时插件插件下载地址:https://www.rabbitmq.com/community-plugins.html安装方式有两种: 1.使用Dockerfile...

2019-12-20 15:53:34 3069 4

原创 MQTT跃跃欲试

在上篇 MQTT初入门 中介绍了MQTT,也列出了 eclipse-mosquitto 实现MQTT后对外提供的服务的一些问题,后面又找了一个MQTT的开源实现 EMQ XEMQ X R3.2 (Erlang/Enterprise/Elastic MQTT Broker) 是基于 Erlang/OTP 语言平台开发,支持大规模连接和分布式集群,发布订阅模式的开源 MQTT 消息服务器,文档地址:...

2019-12-19 22:37:29 229

原创 MQTT初入门

1.MQTT 入门介绍MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通讯协...

2019-12-19 09:37:46 188

原创 图片压缩-服务端压缩与客户端压缩

1.服务端压缩1.hutool ,它是个java工具库,官网地址:https://hutool.cn/docs/#/图片工具部分有使用示例,缩放比例设置为0.5,压缩后的图片是原图的一半(宽度、高度)ImgUtil.scale( FileUtil.file("c:/index_bg1.jpg"), FileUtil.file("c:/index_bg1_result.jp...

2019-12-05 15:21:16 387

原创 SpringBoot日志框架使用指南

市面上常见的日志框架有很多,比如:JCL、SLF4J、Jboss-logging、jUL、log4j、log4j2、logback等等通常情况下,日志是由一个抽象层+实现层的组合使用的抽象层实现层JCL、SLF4J、jboss-loggingjul、log4j、log4j2、logbackSpring默认使用 JCL,所以以前的项目大多要依赖 commons-log...

2019-12-03 09:57:16 257

原创 SpringBoot项目启动时自动配置原理

本篇说说SpringBoot项目启动时的原理,是按个人理解,说的不好请谅解1.创建好项目后有个主类,上面有@SpringBootApplication注解package com.yizheng.api;@SpringBootApplicationpublic class ApiAcceptApplication {}在idea中按住Ctrl点击进去,会看到下面两个关键注解(其他注解没...

2019-12-02 12:00:49 317

转载 Docker搭建GitLab

转载二篇文章Docker搭建GitLab:https://segmentfault.com/a/1190000019019854Centos搭建GitLab:https://segmentfault.com/a/1190000019019787一、安装一般会将 GitLab 的配置 (etc) 、 日志 (log) 、数据 (data) 放到容器之外, 便于日后升级docker pu...

2019-11-27 10:37:26 549

原创 云原生应用11:SpringBoot应用打包成docker镜像

本文将介绍SpringBoot开发的应用打包成docker镜像,然后运行镜像为容器依赖Docker:docker安装依赖MySql:下载mysql镜像,docker pull mysql:5.7.26运行为容器,设置数据存储到宿主机,root用户密码:docker run -d --name mysql -v /data/mysql:/var/lib/mysql --rm -p 3306...

2019-11-02 19:31:15 274

原创 云原生应用10:Helm让k8s部署有状态应用变得简单

1.Helm简介大家都用过centos的yum,它是Linux系统下的包管理工具,通过yum 可以很方便的安装各种工具,而 Helm 是 Kubernetes中方便有状态应用部署的工具,通过 helm 可以很方便部署一个 redis 集群、rabbitmq集群等等,这些集群的镜像已经被 helm 官方做好了,用户只需通过 helm install 安装部署即可2.Helm 组件1.Helm...

2019-10-25 16:20:09 305

原创 云原生应用9:Kubernetes搭建dashboard,UI界面操作k8s资源

上篇都是使用 kubectl 命令行工具操作k8s集群资源,为了提供更丰富的用户体验,Kubernetes 还开发了一个基于 Web Dashboard,用户可以用 Kubernetes Dashboard 部署容器化的应用、监控应用的状态、执行故障排查任务以及管理 Kubernetes 各种资源。k8s有这些资源: Pod,ReplicaSet,Deployment,StatefulSet,...

2019-09-29 16:23:50 334

原创 云原生应用8:Kubernetes基础用法

kubernetes有两种类型的节点 master 与 node 节点,master负责调度任务,node也叫worker节点,负责具体运算,默认使用docker容器运行时master上有4大组件:Api-Server、Scheduler、Etcd、ControllerManagerworker上有2大组件:kubelet、kube-proxy、docker1.k8s具体工作情况如下:k8...

2019-09-26 20:10:23 197

原创 SpringBoot使用ELK做日志收集

https://www.elastic.co/cn/1.ELK是有Elastic公司的三个组件配合进行日志收集,分别是:ElasticSearch:用于存储日志信息。Logstash:用于收集、处理和转发日志信息。Kibana:提供可搜索的Web可视化界面。当然,现在很多都配合着Beats进行使用,这里不做过多描述,感兴趣的可以查看官网 https://www.elastic.co/...

2019-09-17 16:08:56 560

原创 Linux安装Kibana

centos7.6 安装kibana,依赖 JDK,可参考 jdk安装安装Kibana1.地址:https://www.elastic.co/cn/downloads/kibana,选择历史版本,选择6.8.1下载,和上篇 Elasticsearch 版本一致2.下载:wget https://artifacts.elastic.co/downloads/kibana/kibana-6.8...

2019-09-17 15:47:47 143

原创 Linux安装Logstash

centos7.6 安装logstash,依赖 JDK,可参考 jdk安装安装 Logstash1.地址:https://www.elastic.co/cn/downloads/logstash,选择历史版本,选择6.8.1下载,和上篇 Elasticsearch 版本一致2.下载:wget https://artifacts.elastic.co/downloads/logstash/l...

2019-09-17 15:38:26 240

原创 Linux安装Elasticsearch

centos7.6 安装elasticsearch1 安装JDK下载 jdk-8u191-linux-x64.tar,解压打开 vi /etc/profile ,输入jdk地址 export JAVA_HOME=/usr/local/jdk1.8.0_191 export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.ja...

2019-09-17 15:20:45 164

原创 云原生应用7:Kubernetes简介与使用kubeadm安装集群

Kubernetes简介Kubernetes(k8s)是自动化容器操作的开源平台,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性,它解决了传统IT系统中服务扩容和升级的两大难题。kubernetes有两种类型的节点 master 与 worker 节点,master负责调度任务,worker负责工作master上有4大组件:Api-...

2019-09-05 16:10:51 190

原创 云原生应用6:用VMware的开源产品 Harbor 搭建私有Registry仓库

Harbor,是VMware公司基于docker registry进行二次开发后的产品,因有美观的图形界面,多租户等特性被很多人员使用Harbor 在Github地址:https://github.com/goharbor/harborHarbor 的特性1.Cloud native registry: 云原生仓库.2.Role based access control: 用户角色权限访...

2019-09-02 17:43:02 291

验证码生成器

验证码生成器

2013-12-27

gson-2.2.4

gson把对象解析为json格式

2014-12-27

js兼容chrome、firefox复制、粘贴

js兼容chrome、firefox复制、粘贴

2014-11-13

jsonlib所需jar包

json-lib用例所需jar包和java类,对象转json等

2014-10-29

fusioncharts

fusioncharts报表文件,引入Js库后可以做很漂亮的报表,有json和xml2种传值方式。里面有整套js库和破解的swf文件和一些自己做的例子

2014-09-23

SQLServer精华

SQLServer精华

2014-09-15

SQL掌用实例

SQL掌用实例

2014-09-15

MyEclipseKey

MyEclipseKeyGen

2014-09-03

jEasyUI1.3.6

jEasyUI1.3.6

2014-05-06

js或Jquery弹出层

js或Jquery弹出层

2014-04-28

png图片压缩

png图片压缩工具,已测试,能压缩且清晰度未下降,具体有没有下降我是无法看出来,在此提供出来供大家下载

2014-04-26

CssGagaCssGaga

CssGaga压缩图片大小,压缩js css等 CssGagaCssGagaCssGagaCssGagaCssGaga

2014-04-26

jqueryRotate

jqueryRotate

2014-04-21

jquery1.9.1

jquery1.9.1

2014-04-21

nodejs手册

nodejs手册

2014-04-21

jqueryMobile

jqueryMobilejqueryMobilejqueryMobilejqueryMobilejqueryMobilejqueryMobilejqueryMobile

2014-04-21

jquery+easyui

jquery+easyui

2013-12-27

sql入门经典

sql入门经典

2013-12-27

Jquery__UI

Jquery__UI

2013-11-29

JS、CSS压缩

JS、CSS压缩

2013-11-25

常用到的JS技术

常用到的JS技术

2013-11-25

免费接口调用大全

免费接口调用大全

2013-11-25

英语翻译通用

英语翻译通用

2013-10-15

AspPager样式

AspNetPager分页控件定义及应用样式

2013-10-09

Word排版助手

Word文档排版助手

2013-09-24

JavaScript专题构建自己的JS库

JavaScript专题构建自己的JS库

2013-09-13

JS.CSS压缩工具

JS.CSS压缩工具

2013-09-01

占用资源最小的音乐播放器

占用资源最小(内存、CPU)的音乐播放器

2013-08-02

MVC3安装程序

MVC3安装程序

2013-02-18

MySQL中文手册

MySQL中文手册

2013-02-06

SQL语言艺术

SQL语言艺术

2013-02-06

org.in2bits.MyXls

第三方控件。用语C#导出Excel工具的dll

2013-01-08

SQL 语句学习手册实例版

SQL 语句学习手册实例版

2012-12-05

jquery api 相关文档,

jquery api 相关文档,

2012-11-24

jQuery api 1.8 中文版

jQuery api 1.8 中文版,JQuery的一些用法

2012-11-20

专业截图取色录像FSCapture6.5

专业截图取色录像FSCapture6.5

2011-12-28

Editplus-v3.31

用于编辑Html、css、javascript、等等,的文档编辑器

2011-12-08

ImageMagick-7.0.10-10.tar.gz

ImageMagick-7.0.10-10.tar.gz,用于在Linux服务器上批量压缩图片,安全好用

2020-05-11

flutter_app.zip

flutter app内更新升级源码,整合flutter的几大插件实现android app的更新升级

2020-01-10

rabbitmq_delayed.zip

利用RabbitMQ的延时队列插件,实现延时功能,此是基于SpringBoot实现延时消息的源码,欢迎下载交流

2019-12-20

闪耀的瞬间的留言板

发表于 2020-01-02 最后回复 2020-01-02

C#控制本地打印机和打印份数。。。求帮忙

发表于 2013-03-19 最后回复 2014-01-20

空空如也

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

TA关注的人 TA的粉丝

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