- 博客(43)
- 收藏
- 关注
原创 springboot构建docker集群实践部署
为啥要用Docker?为啥要用Docker?这要从目前软件行业的痛点来讲起 软件更新发布及部署低效,过程繁琐且需要人工介入 环境一致性难以保证 不同环境之间迁移成本太高 既然docker那么火那么热,那我们不妨学习一下如何构建自己的docker镜像通过dockerFile构建自己的镜像# 基于java镜像创建新镜像FROM java:8# 作者MAINTAINER 杨汉奇 #在容器内创建创建目录,创建的目录之后需要挂载到宿主机外,实现持久化.
2020-11-14 12:32:35 713
原创 Mysql从索引原理对SQL分析优化实战
Mysql从索引原理对SQL分析优化实战无论是在大型项目,还是小型项目中,随着业务的迭代,用户的增长,数据库数据往往都是成百万级别的,这时候普通的sql语句执行起来是**非常慢**的,这时候就需要对sql进行优化啦,接下来将手把手从索引原理带你学会如何分析优化,写出一手逼格的sqlMysql的索引存储原理:mysql有两种索引:**hash**和**b+tree**select * from user where age = 10(生效)select * from ...
2020-11-07 16:43:53 300
原创 mysql索引的实现原理
1,mysql索引原理: hash:通过索引的计算定位到数据的存储的位置,进行一次I/O即可,效率非常高,但是是适合用于等值查询,范围查询索引是不起作用。 B+bree:MySQL的b+tree不是b-tree,而是在b-tree上进行了优化,所有的data都放在了叶节点,目的是为了使根节点存储更多的索引key值,mysql默认每一节点层是存储16k的数据,假设:存储的主键索引...
2019-08-11 19:24:11 2087
原创 CompletableFuture实践用法
import com.atguigu.common.utils.R;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import java.util.concurrent....
2021-12-16 14:44:48 500
原创 多线程CompletableFuture用法
import java.util.concurrent.*;public class ThreadTest { private static ExecutorService service = Executors.newFixedThreadPool(10); public static void main(String[] args) throws Exception {// runAsync();// supplyAsync();/...
2021-12-12 17:39:09 325
原创 docker swarm集群搭建高可用mysql主备
docker swarm集群搭建高可用mysql主备前提:为了避免mysql单点故障,很有必要引进mysql主备。主和备分别在不同机器,并且需要保持数据一致性技术:这里用到nginx+mysql+mysql做高可用的主备,利用nginx做反向代理,当其中一台mysql服务器宕机后,自动切换另一台,注意这里不能做负载均衡,因为高并发是有存在问题的。一,启动docker swarm集群1,docker stack 配置如下图,如果不会搭建docker swarm 集群的,参考文章:搭建.
2020-12-16 21:22:04 3294 2
原创 docker整合redis哨兵模式(一主二从三哨兵)
docker整合redis哨兵模式(一主二从三哨兵)Redis-Sentinel是Redis官方推荐的高可用性(HA)解决方案,当用Redis做Master-slave的高可用方案时,假如master宕机了,Redis本身(包括它的很多客户端)都没有实现自动进行主备切换,而Redis-sentinel本身也是一个独立运行的进程,它能监控多个master-slave集群,发现master宕机后能进行自动切换。Sentinel由一个或多个Sentinel 实例 组成的Sentinel 系统可以监视任意多个
2020-12-10 23:51:35 752
原创 搭建docker swarm高可用集群以及常用命令
Swarm 是 Docker 官方提供的一款集群管理工具,其主要作用是把若干台 Docker 主机抽象为一个整体,并且通过一个入口统一管理这些 Docker 主机上的各种 Docker 资源为了利用swarm模式的容错功能,应保持集群中奇数管理员来支持manager节点故障。当leader故障时,会选举新的leader。注意:三个manage只允许一个manage故障,如果swarm失去法定人数,swarm不能自动恢复,工作节点上的任务继续运行,不受影响,但无法执行管理任务,包括扩..
2020-12-06 23:55:25 1255 4
原创 docker容器mysql开启binlog和定时备份
为了保证mysql数据库的数据完整性,除了数据库的数据挂到宿主机做持久化外,还需要做binlog和定时备份数据1, 添加mysql的文件映射到docker-stack 文件中 #指定开启binlog的配置文件 - /home/test/binlog/mysqld.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf #指定备份数据库的定时任务执行shell文件 - /home/test/binlog/mysql-dump.
2020-11-29 00:45:48 360
原创 jekins+docker+git整合
此文章针对的是java项目,如上图,选择构建一个maven项目如上图,填写git的地址,添加密钥,以及指定哪个分支触发jekins如上图,构建触发器如上图,构建环境指定输入日志如上图,指定pom.xml文件,指定打包命令,指定构建完jar包时生成的镜像名称如上图,通过ssh连接到服务器,push生成的镜像,(并且重启项目),以及生成api文档注意:jekins的工作目录为:/data/jekins_home/workspace (宿主机)...
2020-11-08 23:31:25 127
原创 go的同步机制(sync.Mutex)
一,并发进行i++操作type atomicInt struct { value int lock sync.Mutex}func (a *atomicInt) increment() { fmt.Println("safe increment") fmt.Println(a.value) func() { a.lock.Lock() defer a.lock.Unlock() a.value++ }()}func (a *atomicInt) get() .
2020-06-27 18:41:27 402
原创 go的闭包(累加之和)
问题:从1到10累加并且输出:它是通过自由变量实现的。如代码:sum为自由变量func add() func(int) int{ sum := 0 return func(i int) int{ sum += i return sum }}func main() { a := add() for i:=0;i<10;i++{ fmt.Printf("0+.......+%d: %d\n",i,a(i)) }}...
2020-06-27 14:12:07 410
原创 go多线程通信以及控制协程与主线程关闭问题(sync.WaitGroup)
一,需要分配10个协程去接收20个任务,每个协程接收2个任务。问题1:每个协程通过通道(chan int)接收的任务是否完成,主线程不知道?问题2:主线程如果执行完了,则在主线程的协程则会自动结束,未接收完的协程则自动被杀掉。解决方案如下:通过sync.WaitGroupwg.Add(n) :为wg添加 n 个任务,wg.Done() :减掉一个任务wg.Wait() : 这个用于主线程等待,等到所有任务执行完了。则就会结束。type Worker struct { ...
2020-06-27 13:52:59 1117
原创 springboot+dubbo+zookeeper(微服务生产者与消费者实战)
一,生产者配置:1,导入依赖<!-- dubbo --> <dependency> <groupId>io.dubbo.springboot</groupId> <artifactId>spring-boot-starter-dubbo</artifactId> <v...
2020-02-25 18:44:14 756
原创 maven打包配置
springboot项目maven打包配置:1,配置打包类型:<packaging>jar</packaging>不配置<packaging>jar</packaging>,默认是jar,有war,pom,jar三种。2,配置打包插件: <build> <!-- 名字与artifactI...
2020-02-17 16:17:33 464
原创 Kaptcha图片验证码整合
流程:生成图片---->把验证码数据放到session中---->登录接口进行比较。这里对session解释下:当服务端在getSession(true)时创建了Session的同时,服务器会为该Session生成唯一的Session id,而这个Session id在随后的请求中会被用来重新获得已经创建的Session;在Session被创建之后,就可以调用Session相关的方...
2020-02-15 00:18:46 180
原创 java NIO方式读写文件
Java NIO(new/inputstream outputstream)使用通道、缓冲来操作流,所以要深刻理解这些概念,尤其是,缓冲中的数据结构(当前位置(position)、限制(limit)、容量(capacity))。Channel(通道)、Buffer(缓冲区)、Selector(选择器)/** * @author sy * @date 2020/2/13 19:31 ...
2020-02-13 20:16:18 385
原创 防止Xss攻击
原理:通过过滤request请求的url进行处理。1,编写xssFilter类,public class XssFilter implements Filter { FilterConfig filterConfig = null; private List<String> urlExclusion = null; public void in...
2020-02-13 16:00:54 327
原创 通过链接动态判断文件类型
1,判断链接的类型://判断是图片、视频、ex、word的其中一种 function checkform(f_content){ console.log("链接:"+f_content); var fileext=f_content.substring(f_content.lastIndexOf("."),f_content.lastIndexOf("?")...
2019-12-06 12:36:07 530
原创 java全局统一处理异常
背景:通一处理异常可以更好的控制交互,不会出现一些乱七八糟的报错信息返回给客户,并且可扩展。注解:@ControllerAdvice :通一处理异常的标识,其实就是一个Controller @ExceptionHandler(VixInsufficientException.class) 要拦截的异常一,定义全局异常处理类import com.m...
2019-08-29 17:02:15 932
原创 IDEA中去除maven重复依赖,冲突依赖
背景:maven是管理我们项目jar包的一个很好的工具,但是我们开发时就会不知不觉的造成jar冲突,或者是重复依赖,由于一些其他dependency中包含了某个jar,然而我们又导入了其他jar,这样造成整个项目的jar冗余,庞大,下面就教大家一些去除重复或者冲突依赖的方法、开发工具:IDEA1,如下图:点击右上角的show Dependencies, 就会出现左边的依赖树图 ...
2019-08-28 17:27:29 18271 7
原创 java接入google登录与本人遇到的坑
官网文档:https://developers.google.com/identity/sign-in/web/sign-in1,流程: 方案一,可以全部由后端处理,方案二,可以前后端配合,前端通过google的js吊起google登录,登录后,前端传给后端一个id_token,后端进行认证,认证id_token的正确性和aud是否跟你的应用aud一致,确保请求是从你的应用发...
2019-08-27 15:28:01 3287 6
原创 java高效随机生成随机(英文+数字),可自定义
高效package com.messcat.imgrnt.utils;import java.io.Serializable;import java.util.Random;/** * 生成随机用户名 * @author sy * @date 2019/8/26 13:08 */public class RandomUtils implements Serializa...
2019-08-26 13:31:40 3865
原创 java8新特性stream用法
不说废话, 直接见代码:@Test // 2019-08-20 author: 杨汉奇 public void test() { List<User> userList = new ArrayList<>(); userList.add(new User(1,new BigDecimal("1000"))); userList.add(new...
2019-08-20 12:01:38 129
原创 springmvc重定向到外网ip
一,目的:在邮箱激活成功后重定向到登录页面。。。。注:地址要加 : http:// ,带中文参数时要设置编码,不然会出现乱码。。。/** * 邮箱激活账号 */@RequestMapping("/validateEmail")public ModelAndView validateEmail(@RequestParam String code)throws Exceptio...
2019-07-10 22:47:32 662
原创 springboot配置邮箱发送(ssl)--解决linux服务器不能发送问题
1,导包:<!-- mail发送 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependen...
2019-07-10 12:17:52 1975
原创 简单的shiro案例(springboot+mybatis)
1,导入maven<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http:/...
2019-06-14 00:47:53 346
原创 动态设置img标签图片失效问题
$(document).ready(function(){var list = [[${documents}]]; $.each(list,function(i,data){ var tr = $("#tbody"); var image = "image"+i; tr.append('<tr>\n' + ' ...
2019-05-09 14:25:41 1301
原创 Decimal工具类
package cn.xiaobawan.common.utils;import java.math.BigDecimal;import java.math.RoundingMode;/** * 数学工具类 */public class MathUtil { /** * 加法 * * @param a 被加数 * @param b...
2019-05-04 00:17:57 327
原创 springboot异常处理类
1.在templates下创建一个error文件夹,里面存放404.flt,500.flt文件默认情况下找不到资源文件或者500报错,springboot都会去templates/error下去找页面(不会这个路径以及名字找不到),然后显示出对应的页面,但是我们需要打印日志以及报错的请求路径:package com.mooc.house.web.controller;import o...
2019-03-15 17:10:26 327
转载 springboot整合freemarker静态文件css,js报404
1.如图:目录为如下,2.首先是index.ftl配置访问static的静态文件,按住ctrl可以点过去,但是运行起来在chrome中报404,觉得很纳闷,<div class="logo"><a href=""><img src="/assets/img/logo-partner-01.png" alt=""></a
2019-03-15 13:46:36 3092 2
原创 springboot整合druid,开启监控功能
1.导入依赖到pom文件 <!-- druid --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>
2019-03-14 18:38:52 1921
原创 hibernate-validator认证
一,导包:springboot: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation</artifactId> <ve...
2019-03-13 15:11:14 270
转载 hibernate的配置出现的错误问题汇总
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"><hibernate-config...
2018-11-23 22:12:26 677 2
原创 Springboot项目的接口防刷
说明:使用了注解的方式进行对接口防刷的功能,非常高大上,本文章仅供参考一,技术要点:springboot的基本知识,redis基本操作, 首先是写一个注解类:import java.lang.annotation.Retention;import java.lang.annotation.Target;import static java.lang.annotation.El...
2018-09-10 17:39:17 7565 8
原创 主键id,Snowflake雪花算法,优点:生成有顺序的id,提高数据库的性能
主键id,Snowflake雪花算法,优点:生成有顺序的id,提高数据库的性能,现在大部分都不用uuid作为主键,因为不规则,每向数据库插入一条数据就要重新排列,使数据库性能降低。package com.example.demo.test;import java.util.*;import java.util.concurrent.CountDownLatch;public cl...
2018-09-06 13:00:44 14775
转载 安全的Md5加密:两次加密(加盐)
导包: <dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> </dependency> <dependency> <groupId&
2018-09-06 12:52:27 3952
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人