自定义博客皮肤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)
  • 收藏
  • 关注

原创 Sharding-Jdbc进行分库分表

Sharding-Jdbc进行分库分表1. Sharding-Jdbc介绍https://shardingsphere.apache.org/sharding-jdbc是一个分布式的关系型数据库中间件客户端代理模式,不需要搭建服务器,只需要后端数据库即可,有个IDE就行了定位于轻量级的Java框架,以jar的方式提供服务可以理解为增强版的jdbc驱动完全兼容主流的ORM框架[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SIQEIubL-1641348053

2024-10-23 17:15:02 361

原创 分布式架构实践:使用Dubbo实现服务治理

##分布式架构实践:使用Dubbo实现服务治理###1、什么是分布式系统架构,演进的各个阶段[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mCh26vnZ-1643252385890)(/Users/gavin/Documents/架构师-黄埔班/架构师学习-28/讲义/asset/image-20200115203652677.png)]4个方面的问题:高可用、高并发、高性能,服务如何管理客户端如何访问这么多的服务(nginx,tomcat多外暴http端口?)

2024-10-23 14:42:15 801

原创 数据切分的设计方案

垂直和水平都要面临的问题(一定是先垂直后水平)分布式事务问题跨库join问题多数据源的问题拆分合并的问题针对多数据源的管理问题,主要有两种思路1、客户端模式:只要需要配置好底层的数据源,然后在程序上直接访问即可2、中间代理模式:由中间代理管理所有数据源,开发人员完全不用关心底层数据源是什么,在哪里,开发人员不用关系拆分规则基于这两种模式对应的成熟的三方中间件中间代理模式:MyCat(相当于一个分布式数据库,而我们的MySQL只是他的一个存储仓库)

2024-10-23 14:41:52 362

原创 数据库设计

文章目录1、数据库设计1.1、准备工作 1、新建一个数据库 icoding_mall1.2、数据库设计规约2、基础项目创建2.1、创建项目2.2、创建父工程2.3、创建common模块2.4、创建product模块3、配置application.properties文件,resources目录下创建文件 application.properties4、创建MP代码生成器5、产品列表查询2.6、产品删除测试1、数据库设计1.1、准备工作 1、新建一个数据库 icoding_mall 2、导入素材中的

2024-10-23 14:40:45 871

原创 文件批量添加水印和密码合并单元格完整版

请注意,代码中的一些变量(例如 fileUrl、dto)在这里没有定义,您需要根据您的实际情况进行替换。最后,它生成一个新的文件名 newFileName,并使用 generationFileAddress 方法生成带有水印和密码的文件地址。在循环中,它逐个读取每个 sheet 的数据,并将其添加到 fileDatas 列表中。然后,它创建了一个线程安全的列表 fileDatas,用于存储文件数据。首先,它接受一个 fileAddress 参数,表示文件的地址。

2024-09-13 13:46:18 452

原创 使用Java方法:用于向文件批量添加水印和密码完整版

请注意,代码中的一些变量(例如 watermark、ImgUtil)在这里没有定义,您需要根据您的实际情况进行替换。请注意,代码中的一些变量(例如 fileUrl、dto)在这里没有定义,您需要根据您的实际情况进行替换。在 invoke 方法内部,它从表示一行数据的 Map 中提取值,并将其添加到 data 列表中。在循环中,它逐个读取每个 sheet 的数据,并将其添加到 fileDatas 列表中。首先,它接受一个 fileAddress 参数,表示文件的地址。

2024-07-19 09:38:26 562 2

原创 注解的属性进行加密处理,并且只对 Controller 返回的对象

如果处理的对象中有循环引用或深层嵌套结构,上述代码中的循环检测机制(visited 集合)会有效防止 StackOverflowError。修改 @AfterReturning 的切面只处理带有 @EncryptAttribute 注解的 Controller 返回对象。在 processFields 方法中只处理带有 @EncryptAttribute 注解的字段。只处理带有 @EncryptAttribute 注解的字段。在方法返回时,对返回的对象进行处理。

2024-07-18 14:17:27 224

原创 Paython 模拟抓取视频

方法实操有效,感兴趣可以研究!

2022-12-16 14:16:10 271

原创 使用 mac上安装homebrew方法

【代码】使用 mac上安装homebrew方法。

2022-12-16 08:52:12 358

原创 Python 下载视频出错 you-get: [error] oops, something went wrong.

Python mac下载2: 运行Cerificates.command open /Applications/Python\ 3.10/Install\ Certificates.command。通过python3 -V 查询版本 3.10,这个方法基于mac, WIN的可以自行搜寻相关命令,只要运行Cerificates.command就行了。1: pip install --upgrade certifi或pip3 install --upgrade certifi方法。如果有 解决方法如下方法。

2022-12-15 21:20:04 5834 1

原创 Docker安装失败No package docker-ce available.

1.下载关于docker的依赖环境yum -y install yum-utils device-mapper-persistent-data lvm22.设置一下下载Docker的镜像源 如果不设置,默认会从官网下载yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo3.安装Docker安装Docker缓存yum makecache fast安装Docker的

2022-03-21 10:29:41 3184

原创 Thread守护线程判断每位员工是否可以下班,要求员工时间大于或等于8小时才能够下班

设置守护线程判断每位员工是否可以下班,要求员工时间大于或等于8小时才能够下班package com.tw.thread;import lombok.SneakyThrows;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.Random;import java.util.concurrent.TimeUnit;/** * @title: W

2022-02-24 10:33:56 365

原创 Java Web实现 使用浏览器从服务器下载文件

Java Web实现 使用浏览器从服务器下载文件。代码实现:package com.juneyaoair.util;import lombok.SneakyThrows;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.File;import java.io.FileInputStream;import java.io.IOEx

2022-02-23 08:36:08 2796 1

原创 分布式架构实践:使用Dubbo实现服务治理

文章目录分布式架构实践:使用Dubbo实现服务治理1、什么是分布式系统架构,演进的各个阶段2、使用Dubbo实现服务治理,Dubbo的应用场景3、Dubbo的应用架构及内部结构调用关系节点角色说明4、基于Springboot搭建Dubbo环境和服务4.1. provider的配置4.2. consumer配置5、Dubbo服务治理之服务高可用6、Dubbo实现服务负载均衡机制&粘滞连接7、Dubbo实现集群&服务容错8、Dubbo实现服务降级:Admin管理降级,Mock返回,本地存根主动降

2022-01-27 14:31:02 390

原创 MySQL数据库备份优化&数据架构设计

文章目录MySQL数据库备份优化&数据架构设计1. 线上数据备份恢复策略实施1.1. 备份流程的设计1、考虑数据量:做备份⼯具的选型2、考虑我们的时间点补偿3、做我们的备份⽅案1.2. 数据恢复流程2. MySQL索引优化2.1. Explain执⾏计划分析2.2. 索引命中策略分析2.3. 索引分析总结2.4. 数据库出现问题后如何死⽽不僵3. 数据库架构设计3.1. 数据库命名规范3.2. 数据库设计规范3.3. 数据库索引设计规范MySQL数据库备份优化&数据架构设计 1. 线

2022-01-25 14:50:08 1345

原创 MySQL备份恢复

文章目录MySQL备份恢复1. Binlog⽇志深⼊分析1.1. Binlog记录模式及参数配置1.2. Binlog⽇志的正确打开⽅式2. 对备份的正确认识2.1. MySQL常⽤的备份⼯具2.2 数据⼀致性的理解2.3 使⽤mysqldump备份2.4 不同存储引擎下如何进⾏备份MySQL备份恢复 1. Binlog⽇志深⼊分析 1.1. Binlog记录模式及参数设置 1.2. Binlog⽇志正确的打开⽅式 2. 对备份的正确理解 2.1. 数据⼀致性的分析 2.2. 使⽤mysq

2022-01-24 09:30:26 109

原创 MySQL数据库⾼可⽤HA实现

文章目录2、MySQL主从复制的容灾处理1. 什么是数据库⾼可⽤1.1. 什么是⾼可⽤集群1.2. ⾼可⽤集群的衡量标准1.3. 实现⾼可⽤的三种⽅式1.4. MySQL数据的⾼可⽤实现1.4.1. 主从⽅式(⾮对称)1.4.2. 配置主从服务步骤1.4.2.1. Binlog的⽇志点⽅式配置主从同步Master服务器配置Slave服务器配置主库授权初始化数据创建复制链路从库的binlog是否写⼊?问题:只同步其中三个表1.4.2.1. GTID的⽅式来进⾏主从复制2. 数据主从复制⽅式的容灾处理2.1.

2022-01-21 09:43:11 958

原创 分布式全局ID的设计

文章目录1. 分布式全局id概述及引发的问题2. 通过UUID实现全局id2.1. 在sharding-jdbc中使用UUID进行主键数据的分库3. 通过雪花算法实现全局id3.1. MyCat如何使用雪花生成id3.2. Sharding-Jdbc实现雪花1. 分布式全局id概述及引发的问题在创建表的时候我们对主键id都是使用自增,通过这个来唯一区分数据在分库分表的场景中自增id就出现无法解决重复的问题了两条不同的业务数据由于id重复,就会导致查询出错或关联数据有问题2. 通过UUID实

2022-01-21 08:47:20 522

原创 Sharding-Jdbc进行分库分表

文章目录1. Sharding-Jdbc介绍2. Sharding-Jdbc引入使用3. 配置广播表4. 配置绑定表5. 读写分离配置1. Sharding-Jdbc介绍https://shardingsphere.apache.org/sharding-jdbc是一个分布式的关系型数据库中间件客户端代理模式,不需要搭建服务器,只需要后端数据库即可,有个IDE就行了定位于轻量级的Java框架,以jar的方式提供服务可以理解为增强版的jdbc驱动完全兼容主流的ORM框架

2022-01-21 08:44:07 1481

原创 数据切分的设计方案

文章目录1. 数据的切分实现方式1.1. 垂直切分1.2. 水平拆分1.3. 整体方案总结2. MyCat的整体分析2.1. MyCat的内部逻辑2.2. MyCat实现数据分库分表3. MyCat安装应用4. MyCat分库分表配置4.1. server.xml4.2. schema.xml4.3. schema相关操作5. MyCat的分片规则5.1. 枚举分片5.2. 取模分片5.3. 创建一个时间分片规则5.4. MyCat全局表的概念5.5. MyCat子表管理6. MyCat安全机制6.1. 用

2022-01-20 13:43:38 2398

原创 数据架构设计实现(3)-数据库高阶应用

文章目录1.1. 数据库永远是系统最脆弱的环节1.2. 数据库的HA实现的方式1.2.1. 高可以计算方式1.2.2. 数据库高可用的三种方式1.2.3. 主从实现的逻辑1.3. 配置主从复制# 1. MySQL主从复制实现高可用1.1. 数据库永远是系统最脆弱的环节80%都是查询缓存来保护数据库:Redis、ElasticSearch数据库系统要有一定的容灾能力数据状态化明显1.2. 数据库的HA实现的方式1.2.1. 高可以计算方式MTTF:平均无故障时间M

2022-01-19 16:59:18 132

原创 数据架构设计实现(2)-数据库高阶应用

1. MySQL的SQL优化索引命中规则# 执行计划explain select * from pms_product where id=1;# 组合索引一定是最左匹配原则# 如果你在表上建立了很多组合索引,索引文件膨胀,修改、删除、更新会比较慢适合建立的列频繁查询的列有外键关联的列不适合建立的列值变化少的列频繁更新的表的记录比较少:比如配置表如何保证数据库死而不僵show processlist;kill id;2. 数据库架构的设计2.1.

2022-01-17 15:03:03 152

原创 数据架构设计实现(1)-数据库高阶应用

文章目录1. MySQL的执行过程分析1.1. MySQL 5.7安装步骤1.2. 学习的基础数据导入3. 基础知识回顾2. MySQL内部的日志类型作用及分析3. MySQL数据备份恢复以及执行优化3.1. Binlog是有三种模式的3.2. 数据备份1. MySQL的执行过程分析1.1. MySQL 5.7安装步骤1、下载rpm包wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.28-1.el7.x86_64.rpm-.

2022-01-14 11:23:31 173

原创 分布式限流设计

文章目录1. 分布式限流概述2. 分布式限流的几种纬度2.1. QPS和连接数控制2.2. 传输速率2.3. 黑白名单2.4. 分布式环境3. 分布式限流的主流方案3.1. 客户端限流3.2. 网关层限流3.3. 中间件限流3.4. 限流组件4. 限流方案常用的算法分析4.1. 令牌桶算法4.1.1. 令牌生成4.1.2. 令牌获取4.2. 漏桶算法4.3. 漏桶vs令牌桶的区别4.4. 滑动窗口和计数器5. 使用Guava RateLimiter实现客户端限流5.1. 非阻塞式限流5.2. 阻塞式限流6.

2022-01-14 11:07:56 1015

原创 系统安全相关知识学习

系统安全相关知识学习1. 系统安全是什么一般人只有当系统被侵入之后才会意识到网络安全非常重要,往往看到问题的时候都只是表面现象,是否能够找到根本原因并进行修复,才是安全投入的关键安全的本质就是保护数据被合法地使用,怎么才叫做被合法的使用呢?我们可以从机密性、完整性、可用性这三个方面具体来看,这三个方面也是安全领域最为基础的3个安全原则安全原则:机密性、完整性、可用性,我们可以简称为CIA三元组,是安全的基本原则1.1. 机密性机密性用一句话来说就是,确保数据只被授权的主体访问,不被任何为授权的

2022-01-06 08:00:00 6346

原创 可视化界面 Sentinel 流控卫兵 限流 熔断 系统保护

Alibaba Sentinel 流控卫兵Sentinel分为两个部分:核心库(Java客户端):客户端调用通用的应用控制台(Dashboard):基于springboot开发的,打包后可以直接运行,不需要额外的tomcat或其他容器文章目录Alibaba Sentinel 流控卫兵1. 认识Sentinel1.1. 官网说明1.2. 对比Hystrix2. Sentinel应用启动3. 服务集成Sentinel4. 流控设置4.1. QPS限流4.2. 线程限流4.3. 流控的关联模式4.4.

2022-01-05 08:00:00 212

原创 SpringCloud服务网关快速落地实战

目录服务网关在微服务中的应用对外服务的难题文章目录服务网关在微服务中的应用前言一、服务网关在微服务中的应用1. 对外服务的难题2.访问控制3. 路由规则二、第二代网关Gateway1.Gateway的标签2.Gateway可以做什么三、Gateway快速落地实施体验四、路由功能详解1.路由组成结构2.负载均衡3.路由的工作流程五、断言功能详解1.Predicate机制2.断言的作用阶段3.常用断言介绍4.路径断言5.Method断言6.RequestParam匹配6.Header断言7. Coo

2022-01-04 07:45:00 157

原创 Gateway权限认证方案分析实现网关层限流

1. 权限认证方案分析1.1. 传统单应用的用户鉴权使用session保存登录状态,通过存放的key-value来进行鉴权,对于一台机器无法同步session到其他机器的时候,我们的问题就来了,如何进行服务应用的鉴权1.2. 分布式环境下的解决方案1.2.1. 同步sessionsession复制是最容易先想到的解决方案,可以将一台机器中的session复制到集群中其他的机器里,比如Tomcat中也有内置的session的同步方案,但是这并不是一个非常优雅的解决方案,他会带来以下两个问题Tim

2022-01-02 08:00:00 3364

原创 Gateway过滤器原理和生命周期

1. 过滤器原理和生命周期所有的开源框架实现过滤器的模式都是大同小异的,通过一种类似职责链的方式,传统的职责链模式中的事件会传递指直到有一个处理对象接手,而过滤器和传统的职责链有点不同,所有过滤器都要进行过滤和处理,一路走到底,直到被最后一个过滤器处理1.1. 过滤器的实现方式在Gateway中实现一个过滤器非常简单,只要实现GatewayFilter接口的默认方法就好了public Mono<Void> filter(ServerWebExchange exchange, Gatewa

2022-01-01 08:00:00 632

原创 Gateway断言功能详解

1. Predicate机制Predicate是Java8中引入的一个新功能,和我们平时写单元测试的时候Assertion差不多,Predicate是接收一个判断条件,返回一个ture或false的布尔值结果,告知调用发判断结果。也可以通过and、or和negative(非)三个操作符多个Predicate串联在一块共同判断Predicate其实就是我们和Gateway对接的数据暗号,比如要求你的Request中必须带有某个指定的参数叫name,对应的值必须是一个指定的人名(Gavin),如果Reque

2021-12-31 08:36:02 6692 1

原创 Gateway快速落地实施体验

创建gateway项目连接Eureka基于服务发现自动创建路由规则通过Actuator实现动态路由功能创建项目并加入POM依赖 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</arti.

2021-12-30 08:00:00 205

原创 Gateway路由功能详解

1. 路由组成结构Gateway中可以定义很多个Route,一个Route就是一套包含完整转发规则的路由,主要有三部分组成断言集合:断言是路由器处理的第一个环节,他是路由的匹配规则,他决定了一个网络请求是否可以匹配给当前路径来处理,之所以他是一个集合是因为我们可以个一个路由添加多个断言,当每个断言都配置成功了才算是过了路由这一关过滤器集合:如果请求通过了前面断言的匹配,表明被路由正式接手了,结下就需要经过过滤器了,比如说权限验证,如果验证不通过就设置为Status Code为403并中断操作UR

2021-12-29 08:56:05 3526 1

原创 SpringCloud服务网关

1. 对外服务的难题微服务架构的应用系统的体系非常庞大的,光是需要独立部署的基础组件就有注册中心、配置中心和服务总线、Turbine异常聚合和监控大盘、调用链追踪和链路聚合,还用kafka和MQ之类的消息中间件,加上按照业务域拆分的微服务组件和模块,一个小的系统非常轻松的就能弄出20多个module,会有这么多的部署包。我们前面都是采用localhost加端口的方式直接访问,如果这些服务一并都要提供给外部用户访问那该怎么处理?开发在各个页面给不同的请求配置URL和端口号,但是一大堆的URL在我们的前端进

2021-12-29 08:00:00 242

原创 Failed to introspect Class [org.springframework.cloud.gateway.config.GatewayAutoConfiguration$NettyC

今天碰到一个版本的问题,搭建gateway、idea运行。maven工程来的。起初运行一直卡在这,无法进入SpringBoot启动的界面java.lang.IllegalStateException: Error processing condition on org.springframework.cloud.gateway.config.GatewayAutoConfiguration.propertiesRouteDefinitionLocator at org.springframework.

2021-12-27 12:00:30 4044

原创 对象的共享

在没有同步的情况下共享变量public class ReaderThread extends Thread{ private static boolean ready; private static int number; public void run(){ while (!ready){ Thread.yield(); System.out.println(number); }

2021-12-18 08:00:00 74

原创 什么是线程安全

一个无状态Select@NotThreadSafepublic class StatelessFactoreizer implements Servlet { private Long count = 0L; public Long getCount() { return count; } @Override public void service(ServletRequest servletRequest, ServletResponse s

2021-12-17 14:36:44 220

原创 DatagramChannel 数据传输

在java中使用UDP传输数据比TCP更加简单。和socket的TCP不同,UDP不是面向连接的协议。使用UDP时,只要知道服务器IP和端口就可以直接向对方发送数据。在java中使用DatagramChannel来处理UDP的数据传输。public class UDPClient { public static void main(String[] args) { new UDPClient().send(); } @SneakyThrows public

2021-12-08 10:44:43 659

原创 FileChannel 文件通道

FileChannel是专门操作文件通道,通过FileChannel,即可以从一个文件读取数据,也可以将数据写入文件中。 FileChannel为阻塞模式,不能设置为非阻塞模式FileChannel文成文件复制的实战案例。具体的功能使用FileChannel将原文件 复制一份,把原文件的数据都复制到目标文件中: /** * NIO FileChannel 复制文件 * * @param srcPath * @param destPath */

2021-12-07 15:02:24 386

原创 Orcale函数Regexp_like

给大家在工作中碰到的一些问题:不区分大小写查询方法:SQL以实践:success批量插入 Insert into 方法:SQL以实践:success希望给大家在工作带欣赏与快乐!

2021-12-01 10:57:38 112

原创 Spring AOP 概念

连接点(join point):对应的是具体被拦截的对象,因为spring只能支持方法,所以被拦截的对象往往就是指特定的方法,例如我们提到UserServiceImpl 的 printUser方法就是一个连接点,AOP将通过动态代理几十把它织入对应的流程中。切点(point cut):有时候,我们的切面不单单应用于单个方法,也可能是多个类的不同方法,这时...

2021-11-22 10:13:34 519

CDASH文档.pdf

CDASH文档

2021-03-03

空空如也

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

TA关注的人

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