- 博客(32)
- 资源 (2)
- 收藏
- 关注

原创 SSO单点登录,实现对接SAML 协议对接IDP, 实现可拆解的SP服务
主流的单点登录有 CAS ,Auth2.0, SAML 等,用户可以登录一次就直接使用多个SP(Service Provider 业务提供方)的服务,免去了每个应用都要登录的烦恼,
2022-09-14 18:39:17
9348
22
原创 kafka使用和操作
*** 自定义分区器, 判断value 是 user开头的发送到 0分区 其他发送到1分区} else {} } // 使用分区, 在创建 kafka配置的时候指定相关的分区 properties . put(ProducerConfig . PARTITIONER_CLASS_CONFIG , "com.syl.demo.producer.MyPartitioner");应答模式总结acks=0,生产者发送过来数据就不管了,可靠性差,效率高;
2023-02-05 19:59:56
1009
原创 zookeeper服务端基本操作, 客户端基本操作, zookeeper 实现分布式锁
代码package com.syl.zk.zkdemo;import org.apache.zookeeper.WatchedEvent;import org.apache.zookeeper.Watcher;import org.apache.zookeeper.ZooKeeper;import java.io.IOException;public class
2022-05-30 01:07:07
439
原创 Elasticsearch 语法集成 SpringData 使用, 集群安装, 详解查询语法
1.安装Elasticsearch1.1.下载软件官网: https://www.elastic.co/版本: 7.14.3地址: https://www.elastic.co/cn/downloads/past-releases/enterprise-search-7-17-31.2.安装软件解压后进入 config目录打开 elasticsearch.yml 配置#节点 1 的配置信息:#集群名称,节点之间要保持一致cluster.name: my-elasticsearch#节点名
2022-05-15 22:18:43
1026
原创 模板的模式
-- 1{ \"description\": \"${username}新增了推送任务,任务ID:${taskId}\"}-- 2{ "description": "${username}修改了个人信息", "dataObject": { "fields": [ { "display_name": "用户名", "field_name": "nickName", "display_mode": 0 } ] }}-- 3{ "des
2022-04-22 00:45:56
251
原创 RabbitMQ 简单的使用方法
使用原生客户端编写最简单的一对一初始化 <dependency> <groupId>com.rabbitmq</groupId> <artifactId>amqp-client</artifactId> <version>5.6.0</version> </dependency>一对一发送消息 一个生产者一个消费者public class ConnectionUtil {
2022-02-09 00:38:00
1175
原创 07-mysql数据库权限管理
用户管理用户登录-- -h参数 hostname为主机,hostIP为主机IP。-- -P参数 MySQL服务的默认端口是3306,-- -u参数 后面接用户名,username为用户名。-- -p参数 会提示输入密码。DatabaseName参数 指明登录到哪一个数据库中。如果没有该参数,就会直接登录到MySQL数据库中,然后可以使用USE命令来选择数据库。-- -e参数 后面可以直接加SQL语句。登录MySQL服务器以后即可执行这个SQL语句,然后退出MySQL服务器。-- 直接选择 te
2022-01-21 14:27:02
325
原创 07-Mysql日志 管理工具 主从复制数据库备份
日志-- 查看通用查询日志SHOW VARIABLES LIKE '%general%';-- 设置通用查询日志my.cnfgeneral_log=ON general_log_file=[path[filename]]-- 临时设置SET GLOBAL general_log=on;# 开启通用查询日志SET GLOBAL general_log_file=’path/filename’;# 设置日志文件保存位置SET GLOBAL general_log=off; # 关闭通用查询日志
2022-01-21 13:37:07
352
原创 06-MySql事务与锁, redo日志 undo日志, mvcc多版本并发
MySql 事务隔离级别脏读(读未提交)不可重复读(一次事务中同样的sql读取结果不一致)幻读(一次事务中同样的sql读取到另一个事务插入的记录是否加锁READ-UNCOMMITTEDYESYESYESNOREAD-COMMITTED(Oracle默认)NOYESYESNOREPEATABLE-READ(Mysql默认)NONOYESNOSERIALIZABLENONONOYES脏读有2个事务 事务A和B 事务B读取了
2022-01-21 12:58:32
113
原创 05-Mysql全局参数调优和优化
数据库相关参数innodb_buffer_pool_size :这个参数是Mysql数据库最重要的参数之一,表示InnoDB类型的 表 和索引的最大缓存 。它不仅仅缓存 索引数据 ,还会缓存 表的数据 。这个值越大,查询的速度就会越快。但是这个值太大会影响操作系统的性能。key_buffer_size :表示 索引缓冲区的大小 。索引缓冲区是所有的 线程共享。增加索引缓冲区可以得到更好处理的索引(对所有读和多重写)。当然,这个值不是越大越好,它的大小取决于内存的大小。如果这个值太大,就会导致
2022-01-18 02:42:46
400
原创 04-MySql 索引失效情况和优化
准备数据CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `stuno` int(11) NOT NULL, `name` varchar(20) DEFAULT NULL, `age` int(3) DEFAULT NULL, `classId` int(11) DEFAULT NULL, PRIMARY KEY (`id`), KEY `idx_age_classId_name` (`age`,`c
2022-01-18 01:17:57
895
原创 03-MySql性能监控工具, 性能调优 EXPLAIN 索引优化 trace监控 Sys schema视图调用
性能监控工具-- 连接MySQL服务器的次数SHOW GLOBAL STATUS LIKE 'Connections';-- MySQL服务器的上线时间SHOW GLOBAL STATUS LIKE 'Uptime';-- 慢查询的次数SHOW GLOBAL STATUS LIKE 'Slow_queries';-- Select查询返回的行数SHOW GLOBAL STATUS LIKE 'Innodb_rows_read';-- 执行INSERT操作插入的行数SHOW GLOBAL
2022-01-18 01:17:33
264
原创 02-MySql什么情况加索引
概述经过 上一章对索引的认识再谈mysql索引优化是很必要的, 索引的优化必须对B+Tree有着深刻的认识才能谈优化什么时候加索引频繁作为where条件后面的字段需要对字段进行 group by , order byDISTINCT 需要创建索引多表连接时需要创建索引, 注意, 不要超过3张因为 相当于 n 个for循环, 每多连接一次相当于加一次for循环; 多表连接是需要 类型一致(否则会自动类型转换导致索引失效) , 需要添加 where过滤条件, 否则数据量非常庞大;使用类型长
2022-01-18 01:17:19
354
原创 01-MySql B+树 页格式 行格式 页 区 段 表空间
MySql B+Tree 概述B+Tree 所有的数据都存放在叶子节点中, 每个叶子节点的最小单位是 ‘页’ 每个页默认也是16KB 的空间, 每个页里面存放N条列数据, 每条数据 都保存了下一条数据的地址 也就形成了一个单向列表, 每个页之间保存是一个双向列表保存了上一页下一页地址.建表语句CREATE TABLE index_demo(-> c1 INT,-> c2 INT,-> c3 CHAR(1),-> PRIMARY KEY(c1)-> ) R
2022-01-18 01:17:01
582
原创 springCloud
RestTemplateRestTemplate 是 spring 提供给我们的微服务http rest 远程调用组件, 可以这么使用@Bean@LoadBalanced //使用@LoadBalanced注解赋予RestTemplate负载均衡的能力 public RestTemplate restTemplate(){ return new RestTemplate(); }restTemplate.postForObject( "http://CLOUD-PAYMEN
2022-01-09 03:06:34
154
原创 Redis Guava 布隆过滤器实现和准确率测试
测试准确率布隆过滤器的作用判断这个数据是否存在于我们的集合中存在就是1 不存在就是0它的底层实现就是一个二进制的数列原理, 我们都知道hash算法, 如同给我们的数据加入了一个指纹, 但是hash有碰撞的问题 怎么减少碰撞呢, 对一个数据采用不同的hash算法计算多个hash值 把这个值映射到 二进制数列中进行表示这个数存不存在;如以上"您好" 这个数据 我们使用三种不同的hash计算方式 算出来的hashcode是 1, 5, 7 那我们就可以在 底层的 bit下标为 1,5,7 的数值设置
2022-01-07 15:31:23
1428
原创 bitmap, GEO地图, HyperLogLog ,Redis缓存击穿, 缓存穿透, 缓存雪崩 原理 解决方案
1. redis 不常见数据类型BitMap位图 我们都知道 1字节= 8 bit , 我们在存储普通字符串的时候 都要占用1个字节, BitMap存储原理 他可以表示 2中状态0和1使用举例setBit onlineUsers userId 1 // 设置用户ID对应的Bit位为1getbit onlineUsers 1 // 返回为1 这个用户的状态bitcount key // 返回为1的个数常见应用场景 如我们做一个在线用户统计功能只需要统计在线用户是多少 在
2022-01-06 23:26:02
603
原创 JUC 工具包的基本使用和方法
AtomicInteger, AtomicLongpublic static void main(String[] args) { AtomicInteger i = new AtomicInteger(); System.out.println(i.incrementAndGet()); System.out.println(i.getAndIncrement()); System.out.println(i.decrementAndGe
2021-12-30 18:54:36
511
原创 JVM内存布局
栈堆TLABTLAB 是在 Eden 区域为每个线程分配的私有空间, 多线程同时在Eden区域分配空间可以避免线程线程安全问题, 也可以提高吞吐量, 避免加锁分配空间,默认的情况下 TLAB空间非常小占整个Eden区域的!%, TLAB内存不足是JVM会加锁分配空间-XX:TLABWasteTargetPercent 参数可以设置大小方法区常量池问题堆是java对象分配的唯一选择吗?逃逸分析其实就是如果这个变量没有超出本栈的就没有发送逃逸,在栈上直接创建这个对象栈结束了对象也就没有了
2021-12-24 18:46:52
322
原创 JVM各种参数设置
JVM关于堆的设置-XX:+PrintFlagsInitial // 查看所有参数默认初始值-XX:+PrintFlagsFinal // 查看所有参数最终值-Xms: // 初始堆空间(默认物理内存 1/64)-Xmx: // 最大堆空间(默认物理内存 1/4)-Xmn: // 设置新生代大小-XX:NewRatio: // 设置新生代与老年代占比(默认2 表示新生代1:老年代2)-XX:SurvivorRatio // 设置新生代和
2021-12-24 18:16:42
569
原创 07-贪心算法
/** * 贪心算法 * <p> * 有 以下这么多电台, 选择能够覆盖所有电台且选择最少的实现方式 * K1 "北京", "上海", "天津" * K2 "广州", "北京", "深圳" * K3 "成都", "上海", "杭州" * K4 "上海", "天津" * K5 "杭州", "大连" */public class TanXin { public static void main(String[] args) { // 电台集合
2021-11-16 18:43:12
373
原创 06-数据结构之图,邻接表,“普里姆算法“找到最短路径
应用场景-修路问题1.有7个村庄(A, B, C, D, E, F, G) ,现在需要修路把7个村庄连通2. 各个村庄的距离用边线表示(权) ,比如 A – B 距离 5公里3. 问:如何修路保证各个村庄都能连通,并且总的修建公路总里程最短?思路: 将10条边,连接即可,但是总的里程数不是最小.正确的思路,就是尽可能的选择少的路线,并且每条路线最小,保证总里程数最少./** * 图的结构的实现主要是 领接矩阵 和邻接表, 矩阵存在浪费很多空间 , 不是特别好的, 所以我们使用邻接表 实现
2021-11-16 18:39:30
497
原创 05-基数排序内存版本,磁盘版本
/** * 基数排序是一个稳定性的排序方法, 非常的快, * 但是有一个缺点就是数据量过大的时候就会出现栈溢出,内存不足的的情况 * 所以写了一个磁盘排序, 请对元数据处理的时候要备份, 要不然元数据就覆盖了 */public class TongSort { public static final String filePrefix = "/Users/fast/Desktop/sortTest"; public static int maxRandomNum = 30000
2021-11-11 20:31:35
95
原创 04-逆波兰后缀表达式算法
在这里插入图片描述/** * 逆波兰表达式 */public class NiBoLanCalculatorDemo { public static void main(String[] args) { String str = "1+((2+3)*4)-5"; List<String> list = toArray(str); List<String> bolanList = listToBoLan(list);
2021-11-08 21:31:50
129
原创 03-稀疏算法
public static void main(String[] args) throws Exception { int[][] arr = new int[11][11]; // 第一行的 第二列是1 arr[1][2] = 1; arr[2][3] = 2; int[][] xs = toXiShu(arr); int[][] arr2 = toNormal(xs); System.out
2021-11-08 17:47:32
149
原创 02-单链表反转, 逆向打印,排序等
求出单链表数据总数?class Persons implements Comparable<Persons>{ public int no; public String name; public String nickName; public Persons next; public Persons(int no, String name, String nickName) { this.no = no; this..
2021-11-07 21:05:46
101
原创 01-java数组实现队列
public class ArrQueueDemo1 { public static void main(String[] args) throws Exception { }}class ArrayQuere { private int maxSize; private int front; private int rear; private int[] arr; public ArrayQuere(int maxSize) {
2021-11-07 16:15:00
82
原创 Jenkins sprongBoot项目自动化部署相关脚本
Jenkins sprongBoot项目自动化部署相关脚本服务器相关脚本,将此脚本放到jar包同级目录#!/bin/bashsource /etc/profileBUILD_ID=dontKillMeappName=`ls|grep .jar$`if [ -z $appName ]then echo "Please check that this script and your jar-package is in the same directory!" exit 0
2021-10-09 16:56:49
174
原创 mac 电脑 java wifi密码尝试器
密码破解尝试器,只可以用于mac电脑import java.io.*;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import java.util.List;import java.util.Scanner;public class App2 { public static File logFile = new File("/Users/fast/Deskto
2020-12-28 21:37:56
1113
1
原创 通过Ip查询对应地址,Ip2location全球IP地址网段
通过Ip查询对应地址,Ip2location全球IP地址网段Ip2location介绍Ip2location IP 库 是比较准确的 在 免费查询IP 行列, 有很多的地址段, 有 Ip 详情等级 如 国家, 国家 城市, 国家 城市 经纬度, 邮编等 , 已做过大量IP 测试 测试数据...
2020-08-07 11:41:32
6123
3
原创 GeoLite2 City库的基本使用与下载, 通过ip查询地址
Geo IP lib (ip 地址库)的使用1. Geo IP lib 地址库说明 如果有以下需求 请参考下面的文档: 如果需要通过IP查询到这个IP所对应的地址就使用 GeoLite2-City.mmdb 数据库文件进行ip的解析 .2. 下载地址2.1 Geo IP 官网地址2.2 库源文件地址: (此链接已经配置了私钥可以直接下载).2.3 校验文件地址: (此链接已经配置了私钥可以直接下载).2.4 以上 第二个连接就是IP库的下载地址 已经配置了秘钥为永久地址, 此版本是免
2020-07-01 16:12:14
7654
3
IP2LOCATION-LITE-DB3.CSV (1).ZIP
2020-08-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人