自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(81)
  • 资源 (3)
  • 收藏
  • 关注

原创 springboot 3 + mysql8 + flyway 数据库版本管理

对于数据库每当发布时会出现手动执行sql脚本进行升级数据库,中间经常出现一些漏写、错写情况,对数据库的版本与代码的版本不匹配,R 代表可重复变迁(Repeatable Migrations),一般为可重复执行的sql语句。1)flyway是个管理数据库版本的工具,可以对不同环境的sql进行迁移操作。== 其中,V开头的SQL执行优先级要比R开头的SQL优先级高==U 代表撤销变迁(Undo Migrations),版本号: 唯一的版本号,比如V1.0.1。描述信息: 描述信息。

2024-01-21 22:53:09 1367

原创 Spring Cloud Gateway集成Knife4j

详细官网案例:https://doc.xiaominfo.com/docs/middleware-sources/spring-cloud-gateway/spring-gateway-introduction==gateway-service:网关、文档聚合中心,是所有微服务文档的出口。auth-service:认证服务。user-service:用户服务。网关路由能够正常工作。

2023-12-31 12:31:02 2613

原创 Spring Cloud Gateway + Nacos 实现动态路由

【代码】Spring Cloud Gateway + Nacos 实现动态路由。

2023-12-31 11:43:10 1757

原创 【在线预约系统】idea配置----提高工作效率

一、配置maven设置File — settings二、安装插件2.1 Codota 代码智能提示插件2.2 CodeGlance 显示代码缩略图插件2.3 Alibaba Java Coding Guidelines 阿里巴巴代码规范检查插件2.4 MybatisX 高效操作Mybatis插件2.5 SonarLint 代码质量检查插件2.6 Save Actions 格式化代码插件2.7 Translation 翻译插件2.8 Rainbow Brackets 彩虹括

2022-05-29 15:06:47 1736 1

原创 【在线预约系统】linux服务搭建

linux 搭建 docker 容器服务

2022-05-22 19:32:15 1617

原创 在线预约系统—项目概述和环境搭建

一、项目概述1、项目介绍在线预约系统是一款预约业务管理系统,实现工作内容可视化、会员管理、在线预约。2、技术架构前端技术:Html5、bootstrap、ElementUI、Vue.js、ajax微服务架构及权限技术栈:SpringCloud、SpringSecurity版本控制:Git持久化技术栈:MyBatis第三方服务:阿里云短信平台、微信公众平台3、功能架构用户管理、角色/权限管理、预约管理、订单管理、会员管理二、环境搭建1、项目结构...

2021-10-09 21:22:41 2096

原创 Redis基础(六)—Redis高级特性

一、Redis主从复制1、简介单个Redis支持的读写能力还是有限的,此时我们可以使用多个redis来提高redis的并发处理能力,这些redis如何协同,就需要有一定的架构设计,这里我们首先从主从(Master/Slave)架构进行分析和实现。2、基本架构redis主从架构如图所示:其中,master负责读写,并将数据同步到salve,从节点负责读操作。3、快速入门实践基于redis,设计一主从架构,一个Master,两个Slave,,其中Master负责Redis读写操作,并将数据同步到

2021-09-27 14:35:55 259

原创 Redis基础(五)—Redis事务处理实践

一、Redis事务简介1、概述Redis采用了乐观锁方式进行事务控制,它使用watch命令监视给定的key,当exec(提交事务)的时候,如果监视的key从调用watch后发生过变化,则整个事务会失败。也可以调用watch多次监视多个key。注意watch的key是对整个连接有效的,如果连接断开,监视和事务都会被自动清除。当然exec,discard,unwatch命令都会清除连接中的所有监视。2、基本指令redis进行事务控制时,通常是基于如下指令进行实现,例如:multi 开启事务exec

2021-09-27 09:54:24 176

原创 Redis基础(四)—Redis数据持久化实践

一、简介1、背景Redis是一种内存数据库,在断电时数据可能会丢失。比如你redis整个挂了,然后redis不可用了,如果没有持久化的话,redis就会丢失所有的数据,如果通过持久化将数据搞一份儿到磁盘上去,然后再定期同步到一些云存储服务上去,那么就可以保证一些数据不丢失,保证数据的可靠性。2、持久化方式Redis中为了保证在系统宕机(类似进程被杀死)情况下,能更快的进行故障恢复,设计了两种数据持久化方案,分别为rdb和aof方式。二、Rdb方式持久化1、概述Rdb方式是通过手动(save-阻

2021-09-26 16:47:25 150

原创 Redis基础(三)—Java中操作redis实践

一、准备工作1、创建工程创建maven父工程,例如03-sca-redis,并在此工程下创建两个子工程,一个为sca-jedis,一个为sca-template,例如:2、添加项目依赖2.1)sca-jedis 工程依赖<dependencies><!--jedis依赖(主要依赖)--><dependency> <groupId>redis.clients</groupId> <artifactId>je

2021-09-22 18:59:51 603

原创 Redis基础(七)—Java中本地缓存实现(拓展练习)

一、简介1、为什么要Cache降低数据库的访问压力。提高查询的性能,改善用户体验。2、你都了解哪些Cache?浏览器缓存数据持久层的Cache(MyBatis中的Cache设计)逻辑处理层的Cache(Spring中的Cache)CPU的高速缓存3、对本地缓存你会如何设计数据的存储结构(散列存储)数据的淘汰算法(FIFO,LRU)任务调度策略(定时刷新缓存)缓存日志的记录(命中率)GC时会缓存数据的影响二、本地缓存的设计1、Cache接口设计(缓存规范设计)我们在设计Cac

2021-09-22 12:06:42 341

原创 Redis基础(二)—Redis常用数据类型

一、简介1、概述Redis作为一种key/value结构的数据存储系统,为了便于对数据进行进行管理,提供了多种数据类型。然后,基于指定类型存储我们项目中产生的数据,例如用户的登陆信息,购物车信息,商品详情信息等等。2、常用数据类型Reids中基础数据结构包含字符串、散列,列表,集合,有序集合。工作中具体使用哪种类型要结合具体场景。二、String类型操作实践字符串类型是redis中最简单的数据类型,它存储的值可以是字符串,其最大字符串长度支持到512M。基于此类型,可以实现博客的字数统计,将日志

2021-09-18 15:36:23 230

原创 Redis基础(一)—Redis缓存入门

Redis基础(一)—Redis缓存入门一、简介1、背景我们现在的项目架构中,基本上是Web服务器(Tomcat)和数据库独立部署,独占服务器资源,随着用户数的增长,并发读写数据库,会加大数据库访问压力,导致性能的下降,严重时直接导致系统宕机,例如:此时,我们可以在Tomcat同服务器上中增加本地缓存,并在外部增加分布式缓存,缓存热门数据。也就是通过缓存能把绝大多数请求在读写数据库前拦截掉,大大降低数据库压力。例如:基于这样的一种架构设计,于是类似redis的一些分布式数据库就诞生了。2、R

2021-09-18 15:04:46 248

原创 Docker基础(九)—容器互联实践

一、简介1、概述Docker 中存在多个容器时,容器与容器之间经常需要进行通讯,例如nacos访问mysql,redis集群中各个节点之间的通讯。2、解决方案Docker 中容器与容器之间进行通讯的解决方案一般有两种:第一种:两个容器通过宿主机进行通讯(容器中的端口会映射到宿主机上)第二种:两个容器之间直接通过虚拟网络进行连接,但是需要我们在docker中创建网络。二、初始化网路1、架构设计2、新建网络例如:创建名字为t-net的网络docker network create -d

2021-09-18 10:36:36 123

原创 Docker基础(八)—镜像安装实践

Docker 镜像安装实践一、安装MySql数据库1、安装步骤第一步:在hub.docker.com上搜索mysql镜像第二步:拉取指定版本的mysql,也可以指定拉取版本,例如:docker pull mysql:8.0.23第三步:检查mysql镜像 docker images第四步:启动运行mysql镜像 (docker run 用于启动一个容器)sudo docker run -p 3306:3306 --name mysql \-v /usr/local/docker/m

2021-09-08 15:45:11 193

原创 Docker基础—总结

一、问题总结1、查看Docker信息2、查看Docker启动状态3、删除Docker镜像失败4、运行Docker镜像5、进入Docker镜像失败6、Docker 目录挂载失败7、JDK:8 容器内编写java程序8、启动容器提示端口被占用9、MySQL 容器内执行SQL脚本10、Nacos启动连接mysql11、Nacos 启动日志异常12、Nacos 不可访问二、命令总结1、Docker 基本操作systemctl start dockersys

2021-09-08 13:17:15 1726 1

原创 Docker基础

1、Docker 基本架构2、Docker 核心对象分析3、Docker 常用指令分析4、Docker 镜像制作分析5、容器网络互联

2021-09-08 13:09:38 91

原创 Docker基础(七)—Dockerfile及镜像制作实践

Dockerfile及镜像制作实践1、概述Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。我们通常会基于此文件创建docker镜像,例如:2、准备工作centos:7镜像 (所有的镜像文件创建时都需要有一个空的centos镜像,就类似通过一个空的光盘或u盘创建一个系统启动盘是一样的)jdk压缩包 jdk-8u51-linux-x64.tar.gz(可以从官网去下载:oracle.org),基于此压缩包,制作jdk镜像。3、Dockerfile文

2021-09-08 11:10:44 279

原创 Docker基础(六)—数据管理实践

Docker数据管理实践1、概述在容器中管理数据主要有两种方式:挂载主机目录 (Bind mounts)-最常用 (docker run -v 宿主机目录:容器目录)数据卷(Volumes)2、数据卷数据卷是一个可供一个或多个容器使用的特殊目录,可以在容器之间共享和重用,默认会一直存在,即使容器被删除。3、数据卷操作第一步:创建数据卷,例如:docker volume create container-vol(数据卷名字)第二步:查看所有数据卷,例如:docker volume l

2021-09-08 10:24:29 113

原创 Docker基础(五)—容器操作实践

Docker 容器操作实践本次以CentOS镜像为例,讲解容器的基本操作。1、下载镜像通过docker pull指令下载CentOS镜像,例如:docker pull centos:7说明,官方镜像仓库地址为https://hub.docker.com/下载完以后,查看centos7镜像文件。docker images2、创建并启动容器基本语法解析:docker run -it xxxx bash其中:1)xxxx - 镜像名,或 image id 的前几位,2)-it

2021-09-07 16:21:36 150

原创 Docker基础(四)—镜像操作实践

Docker镜像操作实践1、下载镜像语法:docker pull 镜像名案例:docker pull hello-world2、浏览镜像文件语法:docker images3、查看镜像详情语法:docker inspect 镜像名或镜像iddocker inspect hello-world4、查看镜像历史一个镜像是由多个层(layer)组成的,那么,我们要如何知道各个层的具体内容呢?通过 docker history 命令,可以列出各个层(layer)的创建信息,例如:

2021-09-07 15:52:43 143

原创 Docker基础(三)—服务基本操作实践

Docker服务基本操作实践1、启动docker服务 systemctl start docker2、查看Docker状态查看docker是否启动了,是否是运行状态。systemctl status docker3、设置Docker开机自启systemctl enable docker4、禁用Docker开机自启systemctl disable docker5、重新启动Docker服务 systemctl restart docker6、查看Docker信息dock

2021-09-07 14:17:41 116

原创 Docker基础(二)—安装

Docker安装实践1、准备工作第一步:准备CentOS(用课前资料中的CentOS7964),本次以CentOS7为例进行安装。第二步:基于vmvare打开CentOS第三步:克隆CentOS(选择链接克隆-更省空间),命名为CentOS7964-docker2、开启虚拟机系统第一步:启动虚拟机,默认账号密码为root/root第二步:打开终端,通过ifconfig指令检查网络,3、卸载Docker假如已经有docker,可通过执行如下指令卸载Docker,例如:sud

2021-09-07 09:58:28 133

原创 Docker基础(一)—入门

Docker技术简介1、概述Docker是一个虚拟化平台( 官网https://www.docker.com/),诞生于 2013 年初,基于 Google 公司的 Go 语言进行实现。可以通过虚拟化方式,为应用提供可运行的容器。基于这种方式,可更快地打包、测试以及部署应用程序。现阶段,很多应用软件的安装都在向基于docker方式的安装进行实现。例如mysql,那么为什么不直接在操作系统中安装一个mysql,而是用容器呢?因为,安装MySql过程并不简单,要配置安装源,安装依赖包,对mysql进行配

2021-09-07 09:50:09 70

原创 文件上传—单点登录系统拓展实现

一、拓展业务描述1、增加数据库访问第一:登录用户信息来自数据库(用户自身信息以及用户对应的权限信息)第二:将上传的文件信息写入到数据库第三:将登录操作,文件上传操作的操作日志写入到数据库2、增加服务之间的调用第一:认证服务调用系统服务(获取用户以及用户权限)第二:认证服务与资源服务都调用系统服务(将日志传递给系统服务,进行数据的持久化)二、系统服务设计及实现1、业务描述系统服务sca-system工程用于提供其它服务需要的基础数据,例如用户信息,日志信息的记录等,其关键表设计例如:2

2021-09-06 16:41:52 155

原创 java案例----用户注册--发送邮件并激活/发送邮件验证码

java案例----用户注册—发送邮件并激活/发送邮件验证码一、前期准备1、准备两个邮箱账号(一个发邮件,一个收邮件)1.1)登录需要发送邮件的QQ邮箱,找到设置项1.2)然后在账户栏下,找到(POP3/SMTP)服务协议1.3)生成授权码下拉找到 POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务 打开 POP3/SMTP服务,并记住授权码,后面发送邮件时会用到授权码二、项目1、准备用户数据表CREATE TABLE `user` ( `user

2021-09-05 00:49:53 7843 1

原创 js端断点调试

js端断点调试

2021-09-02 15:33:24 82

原创 技术摘要应用实践说明---JWT

技术摘要应用实践说明1、背景分析企业中数据是最重要的资源,对于这些数据而言,有些可以直接匿名访问,有些只能登录以后才能访问,还有一些你登录成功以后,权限不够也不能访问。总之这些规则都是保护系统资源不被破坏的一种手段。几乎每个系统中都需要这样的措施对数据(资源)进行保护。我们通常会通过软件技术对这样业务进行具体的设计和实现。早期没有统一的标准,每个系统都有自己独立的设计实现,但是对于这个业务又是一个共性,后续市场上就基于共性做了具体的落地实现,例如Spring Security,Apache shiro,

2021-09-01 13:30:53 114

原创 文件上传—微服务版的单点登陆系统设计及实现

一、简介1、背景分析传统的登录系统中,每个站点都实现了自己的专用登录模块。各站点的登录状态相互不认可,各站点需要逐一手工登录。例如:这样的系统,我们又称之为多点登陆系统。应用起来相对繁琐(每次访问资源服务都需要重新登陆认证和授权)。与此同时,系统代码的重复也比较高。由此单点登陆系统诞生。2、单点登陆系统单点登录,英文是 Single Sign On(缩写为 SSO)。即多个站点共用一台认证授权服务器,用户在其中任何一个站点登录后,可以免登录访问其他所有站点。而且,各站点间可以通过该登录状态直接交

2021-09-01 13:24:11 774

原创 JVM 参数说明

输出JVM类加载信息(假如想看类启动时,相关类的加载顺序,可以配置JVM参数: -XX:+TraceClassLoading)调整JVM堆内存大小,并输出JVM 垃圾回收基本信息(假如设置JVM堆内存大小可以通过 -Xmx设置最大堆内存,-Xms设置最小堆内存,-XX:+PrintGC输出程序运行时的GC信息)...

2021-09-01 09:32:49 69

原创 SpringBoot----AOP应用实践

一、Spring框架生态设计二、AOP 简介1、背景分析对于一个业务而言,我们如何在不修改源代码的基础上对对象功能进行拓展,例如现有一个公告(通知)业务接口及实现:pubic interface NoticeService{ int deleteById(Integer…ids);}public class NoticeServiceImpl implements NoticeService{ public int deleteById(Integer…ids){

2021-08-31 17:26:41 231 1

原创 SpringBoot-----MVC拦截器

拦截器技术应用1、概述Spring Web中的拦截器(Interceptor)基于回调机制,可以在目标方法执行之前,先进行业务检测,满足条件则放行,不满足条件则进行拦截,拦截器原理分析如下图所示:2、拦截器定义基于Spring MVC模块提供的HandlerInterceptor接口规范定义拦截器,对特定请求进行拦截,例如检测请求访问时间,关键代码如下,package com.jt.web.interceptor;import org.springframework.web.servlet.

2021-08-31 13:59:08 228

原创 自定义Tomcat

一、代码package com.jt.net;import java.io.IOException;import java.io.OutputStream;import java.net.ServerSocket;import java.net.Socket;public class Tomcat { public static void main(String[] args) throws IOException { //Java中服务的创建 Sys

2021-08-31 13:32:23 107

原创 自定义执行链设计

一、流程图二、代码package com.jt.interceptor;import java.util.ArrayList;import java.util.List;/**拦截器*/interface Interceptor{ boolean doPre(); void doPost();}/**处理器*/interface Handler{ void doHandle();}/** * 执行链设计(所有项目中的执行(Execution)链(Ch

2021-08-31 13:26:05 123

原创 Idea 启动Sentinel 服务

-Dserver.port=8180 -Dcsp.sentinel.dashboard.server=localhost:8180 -Dproject.name=sentinel-dashboard -jar (添加sentinel目录路径)sentinel-dashboard-1.8.0.jar

2021-08-26 16:31:05 1275

原创 构建SpringCloud 项目—文件上传

基于Spring Cloud Alibaba 解决方案实现文件上传一、业务描述基于Spring Cloud Alibaba解决方案实现文件上传,例如:二、工程创建及初始化1、工程结构参考如下工程结构,进行项目创建,例如:2、创建父工程:02-sca-files创建项目父工程用来管理项目依赖3、父工程初始化打开父工程的pom.xml文件,添加如下依赖:<?xml version="1.0" encoding="UTF-8"?><project xmlns="htt

2021-08-26 16:04:22 622

原创 构建SpringCloud 项目初始环境(五)—网关Gateway 应用实践

一、网关简介1、背景分析我们知道,一个大型系统在设计时,经常会被拆分为很多个微服务。那么作为客户端要如何去调用 这么多的微服务呢?客户端可以直接向微服务发送请求,每个微服务都有一个公开的URL,该URL可以直接映射到具体的微服务,如果没有网关的存在,我们只能在客户端记录每个微服务的地址,然后分别去调用。这样的架构,会存在着诸多的问题,例如,客户端请求不同的微服务可能会增加客户端代码或配置的复杂性。还有就是每个服务,在调用时都需要独立认证。并且存在跨域请求,也在一定程度上提高了代码的复杂度。基于微服务架构

2021-08-23 15:27:25 672

原创 构建SpringCloud 项目初始环境(四)—Sentinel限流熔断应用实践

一、Sentinel简介1、背景分析在我们日常生活中,经常会在淘宝、天猫、京东、拼多多等平台上参与商品的秒杀、抢购以及一些优惠活动,也会在节假日使用12306 手机APP抢火车票、高铁票,甚至有时候还要帮助同事、朋友为他们家小孩拉投票、刷票,这些场景都无一例外的会引起服务器流量的暴涨,导致网页无法显示、APP反应慢、功能无法正常运转,甚至会引起整个网站的崩溃。我们如何在这些业务流量变化无常的情况下,保证各种业务安全运营,系统在任何情况下都不会崩溃呢?我们可以在系统负载过高时,采用限流、降级和熔断,三种

2021-08-20 10:53:14 317

原创 构建SpringCloud 项目初始环境(三)—服务配置中心Nacos

NACOS配置中心简介背景分析我们知道,除了代码之外,软件还有一些配置信息,比如数据库的用户名和密码,还有一些我们不想写死在代码里的东西,例如像线程池大小、队列长度等运行参数,以及日志级别、算法策略等, 还有一些是软件运行环境的参数,如Java 的内存大小,应用启动的参数,包括操作系统的一些 参数配置…… 所有这些东西,我们都叫做软件配置。以前,我们把软件配置写在一个配置文件中,就像 Windows 下的 ini 文件,或是 Linux 下的 conf 文件。然而,在分布式系统下,这样的方式就变得非常不

2021-08-19 14:31:03 385

原创 构建SpringCloud 项目初始环境(二)—服务注册中心Nacos

服务注册中心Nacos一、Nacos注册中心简介1、背景分析在微服务中,首先需要面对的问题就是如何查找服务(软件即服务),其次,就是如何在不同的服务之间进行通信?如何更好更方便的管理应用中的每一个服务,如何建立各个服务之间联系的纽带,由此注册中心诞生(例如淘宝网卖家提供服务,买家调用服务)。市面上常用注册中心有Zookeeper(雅虎Apache),Eureka(Netfix),Nacos(Alibaba),Consul(Google),那他们分别都有什么特点,我们如何进行选型呢?我们主要从社区活跃

2021-08-18 13:49:13 755

jquery-1.8.3.min.rar

jquer功能包

2021-07-09

Navicat for MySQL.rar

数据库图形界面管理工具

2021-07-08

mariadb_v10.5.8_winx64_itmop.com.zip

mariadb_v10.5.8数据库

2021-07-08

空空如也

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

TA关注的人

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