自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(486)
  • 收藏
  • 关注

原创 8 shiro的web整合

可以通过maven插件或者本地server的方式启动。

2025-09-23 18:10:08 597

原创 7 权限认证

【代码】7 权限认证。

2025-09-23 15:41:30 203

原创 6 数据库密码加盐

【代码】6 数据库密码加盐。

2025-09-23 15:32:14 226

原创 5 使用MD5进行加密

MD5的加密,虽然是不可逆的,但是可以进行大量的试错,为了解决这个问题,需要进行加盐的操作。

2025-09-23 15:19:34 129

原创 4. 自定义Realm

1.创建一个类 ,继承AuthorizingRealm->AuthenticatingRealm->CachingRealm->Realm2.重写授权方法 doGetAuthorizationInfo3.重写认证方法 doGetAuthenticationInfoUsernamePasswordToken : 对应就是 shiro的token中有Principal和CredentialSimpleAuthorizationInfo:代表用户角色权限信息。

2025-09-23 11:22:44 207

原创 3 基于数据库的方式JdbcRealm

代码实现。

2025-09-23 00:35:05 128

原创 2. 基于IniRealm的方式

由多个部分(Section)组成,每个部分都有一个明确的名称,用方括号括起来 [sectionName]Shiro 的权限字符串是高度自由的,但通常使用 资源:操作:实例 这种冒号分隔的格式。定义角色与权限的静态映射关系。格式为:角色名 = 权限字符串1, 权限字符串2, …这个部分用于静态地定义用户,格式为:用户名 = 密码, 角色1, 角色2, …准备一个.ini文件,存储用户信息,并且IniRealm支持权限校验。适用一些小型系统,不必使用数据来实现。

2025-09-22 21:23:06 135

原创 1. shrio入门

密码是admin,所以会抛出密码异常:org.apache.shiro.authc.IncorrectCredentialsException。用户名错误,抛出用户名异常:org.apache.shiro.authc.UnknownAccountException。代码中的超级管理员,商户都是角色。

2025-09-22 17:37:06 284

原创 6 广播表

1. 广播表(公共表) 属于系统中数据量较小,变动少,而且属于高频联合查询的依赖表。2. 参数表、数据字典表等属于此类型。3. 可以将这类表在每个数据库都保存一份,所有更新操作都同时发送到所有分库执行。

2025-09-12 17:43:34 216

原创 5 绑定表

t_order和t_order_item,均按照order_id分片,则此两个表互为绑定表关系。绑定表之间的多表关联查询不会出现笛卡尔积关联,可以提升关联查询效率。分别创建t_course_section_0 和 t_course_section_1 表。查询每个订单的订单号和课程名称以及每个课程的章节的数量.

2025-09-12 16:54:02 221

原创 4 水平分库分表

2. 数据准备:数据先找到database,然后找到自己的table在这两个库中,分别创建表t_course_0,t_course_14 配置文件:这是自定义的实现方式,不是官网推荐的方式5 测试6 测试结果

2025-09-12 10:47:02 465

原创 3 水平分表

基于MyBatisPlus的id策略:将Course类的id设置成如下形式。水平分片需要关注全局序列,因为不能简单的使用基于数据库的主键自增。基于ShardingSphere-JDBC的全局序列配置。分片算法名称table-inline是自定义的。去除mybatis的分布式id注解。

2025-09-12 00:03:52 274

原创 2. ShardingSphere实战

Apache ShardingSphere 是一款分布式的数据库生态系统, 可以将任意数据库转换为分布式数据库,并通过数据分片、弹性伸缩、加密等能力对原有数据库进行增强。官网: https://shardingsphere.apache.org/document/current/cn/overview/Apache ShardingSphere 设计哲学为 Database Plus,旨在构建异构数据库上层的标准和生态。它关注如何充分合理地利用数据库的计算和存储能力,而并非实现一个全新的数据库。

2025-09-11 15:10:56 875

原创 1. 数据库架构演变与分库分表介绍

简单来说,就是指通过某种特定的条件,将我们存放在同一个数据库中的数据分散存放到多个数据库(主机)上面,以达到分散单台设备负载的效果。

2025-09-11 14:37:27 830

原创 1.权限相关的表结构

【代码】1.权限相关的表结构。

2025-09-10 12:06:17 30

原创 2 修改、删除和查询操作

可以发现Dao实现类中的方法是实现是有很多可以相互约定的操作,如果相互都按照约定来执行的话,那么我们完全可以省略掉Dao的实现类,通过代理对象来实现。单独提供SqlSessionFactory单例方法。

2025-09-09 17:17:56 191

原创 1. MyBatis的基本使用

2.创建全局配置文件XML 配置文件中包含了对 MyBatis 系统的核心设置,包括获取数据库连接实例的数据源(DataSource)以及决定事务作用域和控制方式的事务管理器(TransactionManager)。例如:3.定义User对象4.创建映射文件5.将映射文件关联配置文件6. 测试代码运行在Maven项目中默认的src/main/java目录下面只会打包java编译后的class文件,所以对于的UserMapper.xml文件是不会打包进去的。出现这种情况我们需要在pom

2025-09-09 16:48:25 252

原创 9 搜索数据

但是存在一种可能,就是索引中保存的是UTC时间,但是查询条件又想用北京时间来筛选,此时需要在查询条件中添加参数:“time_zone” : “+08:00”,表示查询条件的时间对应的时区是东八区。所谓精准查询,指的是搜索内容不经过文本分析,直接用于文本匹配,这个过程类似于数据库的SQL查询,搜索的对象大多是索引中的非text类型的字段。术语查询直接返回包含搜索内容的文档,常用来查询索引中某个类型为keyword的文本字段,类似于sql中的"="查询.从搜索结果中看,只有新增的数据被检索出来了。

2025-08-21 16:26:36 318

原创 8 文本分析

全文检索与常规关系型数据库SQL查询的显著区别,就是全文检索具备对大段文本进行分析的能力,它可以通过文本分析把大段的文本切分为细粒度的分词。

2025-08-18 09:55:18 738 1

原创 7 索引的监控

从上述返回结果可以看出索引的监控状态,运行状态,主分片和每个主分片的副本分片数量,现有文档总数,删除文档总数,索引占用的空间大小,主分片占用的空间大小。由于是单节点,副本分片无法分配,所以主分片占用的空间和索引占用的空间大小是一样的.索引的状态分为三种:为了让副本分片得到分片,可以再次启动一个节点,进入到elasticsearch的安装目录下,进行cmd操作:再次查询索引的状态:一个索引的分片实际上是一个Lucene索引,一个Lucene索引是由很多个段(segment)构成的。可以使用_cat/s

2025-08-18 00:05:31 469

原创 6 索引的块,模板

假设,我们需要创建两个索引:asset-log1和asset-log2,这两个索引分别记录了不同年份的服务器日志,他们的映射结构是相同的,也具有相同的分片数和别名。在上述配置中,index_patterns用于设置索引模板可以匹配的索引名,这里配置了以asset-log开头的索引都会"命中"此模板。有了模板后,创建索引时,一旦被模板匹配上就会自动加载模板的配置到索引映射中,例如创建索引:asset-log1。当需要为同一类索引应用相同的配置,映射,别名时,如果每次创建索引都逐一配置会比较耗时。

2025-08-17 18:05:50 397

原创 5 索引的操作

上面的滚动索引配置的条件是,如果往别名logs-all中写入的索引数据量大于等于1,或者主分片总大小超过5GB,或者创建索引的时间长度超过7天,就把新的数据写入新索引log2。当一个索引数据量太大时,如果继续写入数据可能会导致分片容量过大,查询时会因内存不足引起集群崩溃。滚动索引需要配合索引别名一起使用,可实现把原先写入一个索引的数据自动分发到多个索引中。现在来为别名logs-all指定一个滚动索引,如果条件成立,就把新数据写入logg2.为了避免所有的数据都写入同一个索引,可以考虑使用滚动索引。

2025-08-16 22:48:27 252

原创 4. 索引数据的增删改查

由于elasticsearch不支持事务管理,自然也就没有事务的隔离级别。由于无法保证修改请求是按顺序到达elasticsearch的,需要防止低版本的修改请求把高版本的数据覆盖,这时就需要使用乐观锁进行并发控制。上面的请求使用了_update端点进行数据修改,这时只需要传递主键和需要修改的字段内容,对于无须修改的自带可以不用提供。查询插入的数据:GET test33/_doc/1。删除数据:delete test33/_doc/1。乐观锁的实现是基于版本号或者时间戳进行的。

2025-08-14 22:09:52 253

原创 3. 索引数据

映射相当于数据库的数据字典,定义了每个字段的名称和能够保存的数据类型。

2025-08-14 18:17:01 111

原创 2 es客户端查询demo

【代码】2 es客户端查询demo。

2025-07-24 10:14:34 320

原创 1. 原理

Elasticsearch 7.9.1

2025-07-22 11:37:45 333

原创 11全文检索

【代码】11 es常用案例。

2025-06-29 09:05:33 435

原创 3. Sharding-Jdbc核⼼流 程+多种分⽚策略

【代码】3. Sharding-Jdbc核⼼流 程+多种分⽚策略。

2024-11-14 18:05:05 312

原创 2. Sharding-JDBC广播表和绑定表操作

sharding-jdbc广播表,绑定表

2024-11-12 12:27:52 315

原创 1. ShardingJDBC实际使用01

sharding-jdbc实战入门

2024-11-12 01:10:59 345

原创 5 apache poi实现excel的动态下拉框功能

【代码】5 apache poi实现excel的动态下拉框功能。

2024-09-27 10:38:22 674

原创 42 Apache poi实现excel中sheet的复制

【代码】42 Apache poi实现excel中sheet的复制。

2024-09-02 18:03:33 461

原创 4 函数式接口_2

【代码】4 常见函数式接口。

2024-08-13 23:42:44 240 1

原创 3 函数式接口_1

【代码】3 lambda入门案例。

2024-08-13 23:24:11 136

原创 03 Maxwell

Maxwell是由美国Zendesk开源,使用Java编写的MySQL实时抓取工具,可以实时读取MySQL二进制日志binlog,并生成 JSON 格式的消息,作为生产者发送给 Kafka,Kinesis、RabbitMQ、Redis、Google Cloud Pub/Sub、文件或其它平台的应用程序。它设计的初衷是实时采集Mysql数据到Kafka。支持全表load数据,支持自动断点还原,支持按照列将数据发送到Kafka不同分区。

2024-08-08 18:09:13 734

原创 03 Canal HA原理及安装

Canal一般用于实时同步数据场景,那么对于实时场景HA显得尤为重要,Canal支持HA搭建,canal的HA分为两部分,canal server和canal client分别有对应的HA实现。将Canal安装包上传到node3,node4,并解压到“/software/canal”目录下,修改“/software/canal/conf”下的canal.properties文件,加上zookeeper配置。zookeeper地址:node3:2181,node4:2181,node5:2181。

2024-08-08 17:45:17 1083

原创 02 Canal的安装&使用

首先需要在Canal中配置CanalServer 对应的canal.properties,这个文件中主要配置Canal对应的同步数据实例(Canal Instance)位置信息及数据导出的模式,例如:我们需要将某个mysql中的数据同步到Kafka中,那么就可以创建一个“数据同步实例”,导出到Kafka就是一种模式。基于get获取的batchId进行提交,避免误操作。data:最新的数据,为JSON数组,如果是插入则表示最新插入的数据,如果是更新,则表示更新后的最新数据,如果是删除,则表示被删除的数据。

2024-08-08 17:00:05 1776

原创 1. shiro的基本使用

1. Shiro是基于Java语言编写的,Shiro最核心的功能就是认证和授权。

2024-08-02 14:00:42 496

原创 01. 实时数据同步工具

Canal [kə’næl],译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费。早期阿里巴巴因为杭州和美国双机房部署,存在跨机房同步的业务需求,实现方式主要是基于业务 trigger 触发器获取增量变更。从 2010 年开始,业务逐步尝试数据库日志解析获取增量变更进行同步,由此衍生出了大量的数据库增量订阅和消费业务。当前的 canal 支持源端 MySQL 版本包括 5.1.x , 5.5.x , 5.6.x , 5.7.x , 8.0.x。

2024-07-31 15:26:47 386

原创 10结构化搜索

【代码】10 排序&分页&高亮。

2024-06-24 01:50:36 209

空空如也

空空如也

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

TA关注的人

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