自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

风尘小白沙

一入红尘深似海,从此红尘是路人

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

原创 RSA加解密三方调用

│ │ │ │ ├─service 消费者自己的业务逻辑 依赖服务提供者的暴露接口 引进依赖。│ │ │ │ │ └─impl 组装加密数据 调用依赖接口。│ │ │ │ ├─domain 消费者实体。│ │ │ │ ├─config 配置文件。│ │ │ │ ├─domain 实体对象。│ │ │ ├─config 配置文件。

2023-04-26 10:15:35 898 1

原创 搭建nacos集群

index=index 当一个服务拥有多个容器时,可通过该参数登陆到该服务下的任何服务,例如:docker-compose exec –index=1 web /bin/bash ,web服务中包含多个容器。-f,–file FILE     指定Compose模板文件,默认为docker-compose.yml,可以多次指定。–abort-on-container-exit 停止所有容器,如果任何一个容器被停止,不能与-d同时使用。

2023-04-19 16:21:08 446

原创 搭建zabbix4.4.6以及企业微信告警功能实现 (1)

zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。主要是对服务器和网络以及应用的监控 , 以及及时告警。

2022-10-17 08:58:17 355

原创 搭建zabbix4.4.6以及企业微信告警功能实现

添加一个群聊机器人服务器告警机器人。

2022-10-17 08:55:09 481

原创 springcloud集成sentinel

Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。选择对应版本这边推荐sentinel版本为1.8.0 或者1.8.1(高本版不适配),我这边使用的sipingcloud原生组件集成sentinel,没有用到阿里nacos集成那一套,网关是gateway,注册中心是eureka,配置中心是config项目结构。

2022-09-23 17:12:03 639

原创 docker安装rabbitmq以及reids

查看已经拉取的镜像。

2022-09-22 09:53:55 785

原创 docker安装jenkins运行mavne编译打包项目

docker pull jenkins之后是只有单纯的jenkins镜像,没有jdk,maven,docker宿主机的命令挂载,导致jenkins 在编译java项目的时候报各种错误。如果cp命令没有效果的话,可以stop停止当前容器,并重新run,并挂载宿主机的docker.sock命令。解压完之后修改mavenconfig里面的setting.xml文件,把里面的仓库源改为阿里的。执行完这些,我们可以看到我们的jenkins是可以编译java项目了。配置完成之后执行你自己的流水线就能成功跑起来了。...

2022-08-15 13:41:27 803

原创 cenoso7安装docker,jenkins

操作系统要求更新yum源以及安装插件添加yum软件源(我这边已经是了)如果配置上面官方的docker仓库,在第四步安装docker会出现 “超时错误”,这是由于国内访问不到docker官方镜像的缘故由于阿里的镜像库文件也指向docker官方库,所以需要修改库文件。...

2022-08-03 11:39:44 271

原创 设计模式---职责分离

传统的controller+server+daoABC三个模块看上去是分离的,实际上8个模块之间存在相互依赖的关系,并不是一个高内聚而是一个低内聚的形式。

2022-07-25 08:41:05 2408

原创 基于poi的动态导出excel表头以及统计行列数据(全网最全)

我们是要求生成一个行列都是动态的excel,启动设计到行列的统计,关于这种复杂的excel导出发现网上信息还是偏少,于是自己总结了一下,并参考了一些开源的工具类。组装fields的key也就是excel表头对应的key。组装动态行,列数据以及动态列统计统计动态行。满足基本功能,实现效果ok,数据量为5w加。首先组装数据,后台返回个list对象回来。定义动态表头也就是excel表头。编写测试类,完整例子。...

2022-07-23 16:22:24 2852 3

原创 日志系统:一条SQL更新语句是如何执行的?

那么,一条更新语句的执行流程又是怎样的呢?如果要将 ID=2 这一行的值加 1,SQL 语句就会这么写:前面我们说过,在一个表上有更新的时候,跟这个表有关的查询缓存会失效,所以这条语句就会把表 T 上所有缓存结果都清空。这也就是我们一般不建议使用查询缓存的原因。接下来,分析器会通过词法和语法解析知道这是一条更新语句。优化器决定要使用 ID 这个索引。然后,执行器负责具体执行,找到这一行,然后更新。与查询流程不一样的是,更新流程还涉及两个重要的日志模块redo log(重做日志)和 binlog(归

2022-06-25 21:29:51 107 1

原创 深入浅出索引

一句话简单来说,索引的出现其实就是为了提高数据查询的效率,就像书的目录一样。索引常见的数据结构哈希表 ,有序数组,搜索树哈希表哈希表是一种以键 - 值(key-value)存储数据的结构,我们只要输入待查找的键即 key,就可以找到其对应的值即 Value。哈希的思路很简单,把值放在数组里,用一个哈希函数把 key 换算成一个确定的位置,然后把 value 放在数组的这个位置。不可避免地,多个 key 值经过哈希函数的换算,会出现同一个值的情况。处理这种情况的一种方法是,拉出一个链表。假设,你现

2022-06-23 10:28:18 266

原创 flyway最佳生产实践

用上 Flyway 之后的应用部署流程大概是这样的:在我平时的团队开发中,我们的代码是有版本控制的,可以多人协作持续集成(工具也非常多)。但是数据库的脚本确实需要手动的去执行,团队内人多,你执行你的我执行我的,就会导致很多问题:所以工作中,经常听到测试小伙伴们抱怨,明明已经提测了,但是却出现 A环境正常运行,B环境就报错,找开发定位又花费很多时间。究其原因,大多数是因为数据库没有类似代码那样的版本控制自动化工具,导致管理混乱。Flyway 这个数据库迁移库就是要解决这个问题的,可以帮我们根据数据库当前的状态

2022-06-08 13:57:37 965

原创 jenkins piplien ci 以及构建通知企业微信

jenkinsfiels 文件try{node{ stage("prepare"){ checkout scm def start = new Date().format('yyyy-MM-dd HH:mm:ss') def pom = readMavenPom file: 'pom.xml' echo " group: ${pom.groupId} , artifactId: ${pom.artifactId}, vers

2022-04-15 10:57:48 1866

原创 springboot项目结合gitlab的cicd实现自动化部署

结合自己的spring boot项目来总结一下实现服务器实现Java项目通过容器化技术实现自动构建部署的过程。在学习过程中如果对docker基本命令以及Linux命令不太熟悉的小伙伴可以先先了解一下这块的技术。###一、安装GitLab因为通过gitlab得CI CD脚本结合容器化技术来构建部署项目,所以需要先拉取gitlab镜像docker run -d -p 2443:443 -p 5678:80 -p 2222:22 --name gitlab --restart always -v/sr

2021-07-09 10:28:42 1866 3

原创 玩转消息队列之面试-----踩坑系列

三连问为什么要用消息队列?消息队列的优点和缺点?kafka,ActiveMQ,RabbnitMQ,RockerMQ都有什么区别?第一系统里面为什么要用消息队列这个东西?平时我们说用过redis,MQ,但是其实很多人并不知道自己为什么用这个东西,就是为了用而用,或者是被人设计的架构,自己从头到尾没有想过。第二,既然用了消息队列这个东西,好处和坏处是什么要知道要是没有考虑过这个,盲目弄个mq进系统里面,后面出了问题你自己是不是溜了给公司留坑?第三,既然用了MQ,可能是某一种mq,当时你自己有.

2020-10-16 10:19:25 242

原创 消息被重复消费?----- 消息队列踩坑系列

如何保证消息不被重复消费,或者说如何保证消息幂等性。rbbitmq,rocketmq,kafka,都有可能出现消息重复消费的情况,以kafka来说kafka实际上有个offset的概念,就是每个消息写进去,都有一个offset,代表的消息的序号,然后consumer消费了数据之后,每隔一段时间(定期定时),会把自己消费过的offset提交一下,表示“我已经消费过了,下次重启之后,还是从上次消费到的offset来继续消费。如果遇到意外情况,还没来得及提交offset,进程就被杀掉了,重启之后,可能有些

2020-10-13 11:44:58 650

原创 一文带你读懂一条sql的执行过程

一条sql的执行过程mysql> select * from T where ID=10;大体来说,mysql大致分为Server层,引擎层Server层包括 连接器,分析器,优化器,执行器,查询缓存等,涵盖MySQL的大多数核心服务功能,以及所有的内置函数(时间,日期,数学,加解密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程,触发器,视图等而存储引擎则负责数据的存储,提供读写接口。支持InnoDB,MyISAM,Memory等多个存储引擎如果你指定引擎类型,在

2020-07-27 09:56:49 337

原创 图解UML,UML原来这么简单

什么是uml:统一建模语言(Unified Modeling Language,缩写UML)是非专利的第三代建模和规约语言。UML是一种开放的方法,用于说明、可视化、构建和编写一个正在开发的、面向对象的、软件密集系统的制品的开放方法。为什么要用uml下图是一个领域模型,也是一个需求的用例分析在没有用到uml的时候我们大多数开发是怎样进行的呢?首先,拿到原型,拿到需求文档其次,分析需求,根据原型和需求设计数据库然后,根据需求设计接口最后,实现接口这可能是绝大多数开发人员接到一个需求.

2020-07-04 18:23:32 387

原创 哇塞!抽象工厂模式还能这样玩

设计模式之抽象工厂模式这个类图比较简单,也很直观。一个接口,多个抽象类,然后多个实现类。每个人种都是抽象类,性别是在各个实现类中实现的。HumanFactory定义了三个方法,分别创建三个不同肤色的人类。人种有三个抽象类,负责人种的抽象属性定义:肤色和语言,人种接口public interface Human { void getTalk(); void getColor(); void getSex();}人种有三个抽象类,负责人种的抽象属性定义黑色人种pub.

2020-07-03 18:28:09 254 2

原创 哇塞!这么全的工厂模式你见过吗

设计模式二–工厂模式举例:女娲采集黄土捏成人的形状,然后放到八卦炉中烧制,然后放到土地上生长,但是意外随时都会发生。第一次烤人,感觉应该熟了,往地上一放,哇,没烤熟,白人诞生了。第二次烤人,上一次没有烤熟,这次多烤一会,放到世间一看,哇,熟过头了,于是黑人诞生了。第三次烤人,一边烧制一遍看,知道表皮发黄,嘿,刚刚好,于是黄种人诞生了。思考:在面向对象编程的思想中,万物皆对象。于是我们抽象出具体的三个对象。女娲,八卦炉,三种不同肤色的人。女娲可以用场景类Client来表示,八卦炉可以用

2020-07-01 09:53:26 4650 2

原创 分布式技术原理与算法解析05-如何使用负载均衡算法

Author: shashaDescription: 该文简单介绍微服务技术栈有哪些分别用来做什么如何使用负载均衡算法随机算法随机算法,就是从可用服务节点随机挑选一个节点来访问实现:随机算法通过生成随机数来实现,例如服务有10个节点,随机生成数字2,就访问2的这个节点/* * Copyright 2009-2016 Weibo, Inc. * * Licensed under the Apache License, Version 2.0 (the "License")..

2020-06-28 11:08:59 194

原创 10分钟了解微服务技术栈

微服务技术栈Author: HuiFerDescription: 该文简单介绍微服务技术栈有哪些分别用来做什么技术栈微服务开发作用:快速开发服务。SpringSpring MVCSpring Boot官网,Spring 目前是 JavaWeb 开发人员必不可少的一个框架,SpringBoot 简化了 Spring 开发的配置目前也是业内主流开发框架。微服务注册发现作用:发现服务,注册服务,集中管理服务EurekaEureka Server : 提供服务注册服务, 各个节点

2020-06-24 10:08:47 649

原创 分布式技术原理与算法解析04-如何搭建一个可靠的监控系统

如何搭建一个可靠的监控系统监控系统的组成数据收集数据传输数据处理和数据展示ELK:ELK是Elasticsearch.Logstash,Kibana三个开源软件产品首字母的缩写,他们三个通常配合使用,所以被称为ELK Stack 下图是他的架构分别的功能如下logstash负责数据的收集和传输,他支持动态地从个数据库源收集数据,并对数据进行过滤分析,格式化,然后存储到指定位置。elasticsearch负责数据处理,他是一个开源分布式搜索和分析引擎,具有可伸缩性,高可靠和易管理等特点

2020-06-24 09:44:22 336 1

原创 分布式技术原理与算法解析03-开源RPC框架

开源RPC框架通信框架通信协议序列化和反序列格式Dubbo的架构主要分为四个角色;其中Consumer是服务消费者,Provider是服务提供者,Registry是注册中心,Monitor是监控中心交互流程:Consumer一端通过注册中心获取到Provider节点后,通过Dubbo的客户端SDK与Provider建立连接,并发起调用,Provider通过Dubbo的服务端SDK接收到Consumer的请求,处理后再把结果返回给Consumer。Dubbo框架如何实现:通

2020-06-23 16:32:59 152

原创 分布式技术原理与算法解析02-开源注册中心架构

开源注册中心架构客户端 注册中心服务端 注册中心一般分为应用内注册和应用外注册应用内注册与发现:注册中心提供服务端和客户端的 SDK,业务应用通过引入注册中心提供的 SDK,通过 SDK 与注册中心交互,来实现服务的注册和发现。应用外注册与发现:业务应用本身不需要通过 SDK 与注册中心打交道,而是通过其他方式与注册中心交互,间接完成服务注册与发现。Eureka Server:注册中心的服务端,实现了服务信息注册、存储以及查询等功能。服务端的 Eureka Client:集成在服务端的

2020-06-22 18:50:27 187

原创 分布式技术原理与算法解析01-注册中心原理

注册中心原理服务提供者注册流程服务提供者反注册流程服务消费者查询流程服务消费者订阅变更流程第一步检查节点列表是否存在第二步查看注册的Cluster(服务的接口名)是否存在?不存在抛出异常第三步查看分组是否存在?不存在抛出异常节点反注册第一步查看服务的分组是否存在不存在抛出异常第二步查看服务名称是否存在不存在抛出异常第三步查看节点是否存在,存在删除节点,不存在抛出异常第四步更新接口的Sign查询节点信息服务消费者查看节点信息第一步从local cache 本地缓

2020-06-22 10:52:18 422

原创 mybaits-plus 看这篇文章就够了

mybaits-plus 看这篇文章就够了mybaits-plus基本的crud操作mybaits-plus工欲善其事,必先利其器。现在就让我们看看广大码农打怪升级利器之–mybaiits-plus.基本的crud操作关于之前的一些基本操作可以看我上一篇的文卓:mybaits-plus的一些基本操作接下来我直接撸实战新增 @Test void add(){ ......

2020-05-07 16:44:06 484

原创 springboot开发集成mybaits-plus

工欲善其事必先利其器官方文档在springboot的开发过程中,一些简单的crud可以用mybatis plus 来实现提升开发效率。主要用到的queryWrapper和updateWrapper构造器构造器关系通过源码可以发现他们的关系大致如下图父类wapper,下面的是子类wapper介绍Wrapper : 条件构造抽象类,最顶端父类,抽象类中提供4个方法西面贴源码展......

2019-11-05 16:33:49 564

原创 spring-boot-plus快速开发

文章目录概念目的快速开始主要特性项目环境技术选型概念spring-boot-plus是一套集成spring boot常用开发组件的后台快速开发框架目的每个人都可以独立、快速、高效地开发项目!Everyone can develop projects independently, quickly and efficiently!快速开始官方apiGITHUBGITEE主要特......

2019-08-07 09:48:08 4670

原创 版本控制SoEasy之Git-01

Git是什么?Git是一种常用的版本控制系统,我们常见的版本控制系统有git和svn。 要知道怎么使用首先要了解它的概念。什么是版本控制版本控制是指对软件开发过程中各种程序代码、配置文件及说明文档等文件变更的管理,是软件配置管理的核心思想之一。实现跨区域多人协同开发追踪和记载一个或者多个文件的历史记录组织和保护你的源代码和文档统计工作量并行开发、提高开发效率跟踪记录整个软件的开...

2019-08-06 14:39:07 254

原创 版本控制SoEasy之Git-04

讲了那么多,那么问题来了,在IEDA中如何使用Git?在这边我们先假定一些场景,然后根据这些场景来具体讲解在ieda中如何使用Git。工作中多人使用版本控制软件协作开发,常见的应用场景归纳如下:假设小组中有两个人,组长盖茨,组员艾伦场景一:盖茨创建项目并提交到远程Git仓库场景二:艾伦从远程Git仓库上获取项目源码场景三:艾伦修改了部分源码,提交到远程仓库场景四:盖茨从远程仓库获取艾...

2019-08-06 14:38:46 292

原创 Java导出excel基于velocity模板引擎

项目地址: GitHub https://github.com/wusas/java-excel-velocity项目结构:├─.idea│ ├─inspectionProfiles│ ├─libraries│ └─sonarlint│ └─issuestore├─.mvn│ └─wrapper├─src│ ├─main│ │ ├─java│ ...

2019-07-29 16:04:49 1790

原创 浅谈设计模式之单一职责原则

单一职责的简称是SRP(Single Responsibility Principle),这是一个备受争议的设计原则,如果你和别人争吵这个原则是屡试不爽的。

2019-07-12 15:49:33 138

原创 java8的LocaDatetime的便捷使用

1,关于LocaDateTimeJava的Date,Calendar类型使用起来并不是很方便,而且Date类(据说)有着线程不安全等诸多弊端。同时若不进行封装,会在每次使用时特别麻烦。于是Java8推出了线程安全、简易、高可靠的时间包。并且数据库中也支持LocalDateTime类型,在数据存储时候使时间变得简单。Java8这次新推出的包括三个相关的时间类型:LocalDateTime年月日十......

2019-07-11 17:11:01 1891

原创 统一处理接口加解密

对于安全性较高的项目来说,对请求数据和返回数据进行加解密是有必要的。思路利用@ControllerAdvice注解,拦截请求和返回数据进行加解密,对前端传过来的参数进行解密,对接口返回数据进行加密。我的加解密具体流程,主要是和客服端交互,如果是和安卓和iOS交互的注意密钥的一致性,加解密的过程一定不能错服务端流程 业务数据json串----》经AES加密后----》再BASE64编码......

2019-05-08 09:50:29 1702 2

原创 nginx部署多个服务

众所周知,Nginx (engine x) 是一个高性能的HTTP和反向代理服务,也是一个IMAP/POP3/SMTP服务。Nginx作为负载均衡服务,Nginx 既可以在内部直接支持 Rails 和 PHP 程序对外进行服务,也可以支持作为 HTTP代理服务对外进行服务。这样说你可能还不理解,但是如果我说Apache你肯定知道,nginx就是类似与Apache这样的服务器。nginx相对于......

2019-03-31 15:54:22 18473 4

原创 node实现发送邮件和上传文件功能

node实现发送邮件带附件记录下我前不久刚刚接触过的node用来实现发送邮件和上传文件图片功能,希望能帮到和我遇到一样问题的你们,帮助你们少走弯路,提高开发效率node:是什么?之前一位朋友跟我说,99%的后端都可以用node来实现,在我没了解之前还真不相信,后来发现还真是方便。以下是官方解释:Node 是一个让 JavaScript 运行在服务端的开发平台,它让 JavaScrip...

2019-03-31 15:27:18 1216

原创 spingboot整合Mybatis的web案例

还是再来了解一些springbootspring boot自述 spring boot是用来简化spring应用的搭建到开发过程,应用开箱即用,只要通过“just-jar"或tomcat或maven插件run或shell脚本,就可以启动项目。二者,spring boot只要很少的spring配置文件,因为”习惯优于配置"原则,是的spring boot 在开发应用和微服务架构实践中得到广泛应...

2019-01-16 16:34:39 199

原创 Spring Boot 使用Swagger2构建RESTful API

Swagger2是什么?Swagger2,它可以轻松的整合到Spring Boot中,并与Spring MVC程序配合组织出强大RESTful API文档。它既可以减少我们创建文档的工作量,同时说明内容又整合入实现代码中,让维护文档和修改代码整合为一体,可以让我们在修改代码逻辑的同时方便的修改文档说明。另外Swagger2也提供了强大的页面测试功能来调试每个RESTful API。具体效果如下图...

2018-12-26 16:58:02 302

基于ssh的增删改查(小型erp)

基于ssh的增删改查,小型的erp系统,比较适合新手学习

2018-06-05

空空如也

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

TA关注的人

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