- 博客(39)
- 收藏
- 关注
原创 shardingjdbc入门-自问自答
现实的问题是mysql单表存储是有上线的,因为mysql采用的是 B+ 树类型的索引,在数据量超过阈值的时候,索引的持续变大,会导致访问磁盘的IO次数增加 【**复杂 SQL 查询:**ShardingSphere 对于复杂 SQL 查询的支持有限,特别是涉及多表连接、子查询、公共表表达式(CTE)以及窗口函数等高级特性时。**数据库特定功能:**ShardingSphere 支持多种数据库,但可能无法覆盖所有数据库的特定功能。**子查询:**ShardingSphere 对子查询的支持有限。
2023-06-26 11:44:45
398
原创 druid-配置调优
数据库连接池Druid配置调优 1 maxWait: 从连接池获取连接的超时等待时间,单位毫秒,需要注意这个参数只管理获取连接的超时。 获取连接等待的直接原因: 池子里没有可用连接,具体包括:连接池未初始化,连接长久未使用已被释放,连接使用中需要新建连接, 或连接池已耗尽需等待连接用完后归还。这里有一个很关键的点是 maxWait 未配置或者配置为 0 时, 表示不设等待超时时间(可能与一些人认为 -1 表示无限等待的预期不符合,虽然在 druid 中 maxWait...
2022-05-21 07:37:00
8304
原创 druid连接池之springboot starter
Java数据库连接池Druid的介绍Druid 连接池是阿里巴巴开源的数据库连接池项目,Druid 为监控而生,内置强大的监控功能,监控特性不影响性能,官网地址为:https://github.com/alibaba/druid/wiki/,本文主要介绍 Druid 的基本使用,文中使用到的软件版本:Java 1.8.0_191、Druid 1.2.8、Spring Boot 2.3.12.RELEASE。1、配置参数Druid 连接池的配置参数兼容 DBCP,个别配置的语意有所区别。..
2022-05-20 09:04:15
1504
原创 Druid之连接池
需要注意的是,我们下面提供的几种实现方式都是基于简单的原型,目的是带你了解连接池实现的一些基本原理。真实的数据库连接池技术需要考虑更多复杂的细节。所以下面这些代码都是不能在生产上直接使用的。实现的时候会用到java.sql.Connection,由于这个只是一个接口无法创建实例,为了演示方便,我继承这个接口写了一个简单的测试类,只是在commit方法里加了延时模拟提交。实现方式1:很容易马上想到的一种方案,我们用一个map存放连接对象,需要的时候从map里拿来用就可以了。
2022-05-19 07:31:24
5584
原创 druid之常见问题
问题一:如何连接检测在说到的ValidConnectionChecker类的作用时,用来检测连接池中连接是否可用的,具体检测的逻辑就在DestroyConnectionThread线程中,上面说到keepAliveConnections这个池子,如果最终keepAliveConnections中存在需要进行检测的连接的话,就开始通过ValidConnectionChecker类进行检测了。源码位于com.alibaba.druid.pool.DruidAbstractDataSource#valida
2022-05-18 07:39:49
2617
2
原创 Druid连接池源代码分析之五-编程知识点
1: AtomicLongFieldUpdater的用法AtomicLongFieldUpdater<DruidAbstractDataSource> executeQueryCountUpdater = AtomicLongFieldUpdater.newUpdater(DruidAbstractDataSource.class, "executeQueryCount");收获: 参考例子:笑谈java并发编程四之AtomicIntegerFieldUpdater介绍_一...
2022-05-14 15:10:31
144
原创 Druid连接池源代码分析之四-java.lang.sql 规范
总体思路:1:首先java.lang.sql包下面提供了完整操作数据库的高度抽象接口,假如想实现操作数据库的能力实现这些接口就可以了(其中也包含了连接池),具体接口的能力看下文。2:我们一直使用的 com.mysql.cj.jdbc 包也是实现了基本的mysql数据库操作的接口,但是仅此而已。能进行数据的增删改查。3:druid的实现相当于是 mysqljdbc+池化技术+其他的附加能力,实现方式也是通过实现java.lang.sql的接口来进行进一步能力加强。4:这也是druid原来里面实
2022-05-14 07:35:31
251
原创 Druid连接池源代码分析之三-回收连接
整体思路1:DruidConnectionHolder[] connections 来表示还未使用连接池的连接的数量。假如程序中想获取一个连接的时候,首先先判断池子里面还是否有连接,假如有会直接获取。假如没有会重新创建物理连接,然后重新放到connections池子里面。2:然后for(;;)这种方式抢占式获取连接,一旦拿到连接就会调用decrementPoolingCount() 进行坐标转移。3:回收过程是 connection.close();方法,最终调用result = putLas.
2022-05-12 23:38:11
1063
原创 Druid连接池源代码分析之二-获取连接
整体思路:1:druid首先是连接池,DruidConnectionHolder[] 是通过对象数组来实现连接池的池子的,然后动态的维护下表,所以就要求并发性需要比较高,不然很容导致下表不准的现象。所以池子里面动态床架与维护分别通过信号量 empty和notempty来作为信使动态维护。基本上相当于自己实现了一个阻塞队列,我看jedis源码的时候,这部分直接用了阻塞队列。2:由于druid里面有大量的监控数据,所以代码里面有很多变量来统计数据,感觉这块代码比较乱哈,分离的不够好。3:再者就是由.
2022-05-12 07:37:49
2416
原创 Druid连接池源代码分析之一
Druid功能简介Druid是阿里开源的连接池,连接池的主要作用是为了复用,比如一般的数据库建立一个连接需要初始化很多对象,并且再加上tcp的三次握手,四次挥手的协议,所以整体的代价比较高,并且在一个并发量稍微高点的系统,sql执行的频率很高,所以每次执行就新建连接是一个很低效的做法,由此业界出来了很多数据库的连接池,其中druid就是其中的佼佼者。其中Druid支持的语法如下:配置 缺省值 说明 name 配置这个属性的意义在于,如果存在多个数
2022-05-10 23:04:18
323
原创 小公司微服务监控体系
1:springboot admin2: dubbo monitor3: 钉钉报警+短信+语音报警4:系统自动重启5:ELK 程序报警。6:网关流量过滤7:Redis监控8:mq监控9:数据库监控
2021-12-15 22:56:58
1790
原创 Linx安全简单设置
添加用户useradd -s /bin/bash louie设置密码passwd louie指定目录usermod -d /data louiechmod 777 -R /data关闭用户下的进程pkill -kill -u username注销某一个用户userdel username改变端口号vi /etc/ssh/sshd_config把port 22改为port 8822service sshd restart无法登录原因排查cat /et
2021-09-24 16:13:06
104
原创 磁盘空间无法释放问题
ResolutionGraceful shutdown of relevant processFirst, obtain a list of deleted files which are still held open by applications:Raw$ lsof | egrep "deleted|COMMAND"COMMAND PID TID TASKCMD USER FD TYPE DEVICE SIZE/OFF NODE N
2021-08-12 15:59:14
175
原创 ELK平台搭建
部署步骤部署elasticsearchlinux 新添加用户,然后启动 elasticsearch./elasticsearch -d部署 logstash安装multiline插件./logstash-plugin install logstash-filter-multiline# Sample Logstash configuration for creating a simple# Beats -> Logstash -> Elasticsearch...
2021-07-29 11:28:24
135
原创 Bitmap 与 BloomFilter 基本思路
BitMap 介绍https://zhuanlan.zhihu.com/p/94818952https://www.cnblogs.com/webary/p/4733247.htmlBloomFilter 介绍https://www.jianshu.com/p/88c6ac4b38c8理解:
2021-07-29 11:24:17
99
原创 批量查询java的线程数量
#!/bin/bash ID=`ps -ef | grep java | awk '{print $2}'`for id in $ID; do T=`pstree -p $id | wc -l` echo "$id --->thread number is: $T"done
2021-07-01 14:01:42
136
原创 linux 服务器安全设置规范
1.限制root权限用户远程登录&以及登录端口描述限制root权限远程登录。先以普通权限用户远程登录后,再切换到超级管理员权限账号后执行相应操作,可以提升系统安全性。1. 修改文件/etc/ssh/sshd_config配置PermitRootLogin noport=42 同时把防火墙的端口打开哦。2. 重启sshd服务查看状态:systemctl status sshd.service 启动服务: systemctl start sshd.service 重启服务: .
2021-06-11 09:48:49
381
1
原创 List<List<String>> 排序算法
private static List<List<String>> METHOD_LIST_WITH_ORDER = new LinkedList<List<String>>();
2021-06-09 17:22:52
611
原创 Linux Ftp文件仓库搭建
知识点 在linux中使用的FTP是vsftp,FTP可以有三种登入方式分别是:匿名登录方式:不需要用户密码本地用户登入:使用本地用户和密码登入虚拟用户方式:也是使用用户和密码登入,但是该用户不是linux中创建的用户详细安装步骤yum -y install vsftpdvsftpd.conf: 主配置文件ftpusers: 指定哪些用户不能访问FTP服务器,这里的用户包括root在内的一些重要用户。user_list: 指定的用户是否可以访问ftp服务器,通过v.
2021-04-08 14:47:48
502
原创 Jmeter压测Netty or TCP 详细步骤
下载软件https://jmeter.apache.org/download_jmeter.cgi创建Tcp测试用例添加Thread group添加Tcp请求样本设置tcp相关参数send java: ${javaNumber} send beanshell: ${RANDOM_STRING} send function ${__Random(1,100000000000, LOTTERY )} ?Java Netty收到的结果send java: 9 se
2021-04-07 15:05:16
2915
2
原创 Rocketmq原理简介
架构图模块职责划分rocketmq-common:通用的枚举、基类方法、或者数据结构,包名有admin、consumer、filter、hook、message rocketmq-remoting:使用netty的客户端、服务端,使用fastjson序列化,自定义二进制协议 rocketmq-srvutil:只有一个ServerUtil类,只提供Server程序依赖,尽可能减少客户端依赖 rocketmq-store:消息存储,索引,consumerLog,commitLog等 rock
2021-04-05 19:14:21
2492
5
原创 Spring gateway 源码解析之负载均衡和熔断08
前提项目:Spring boot1.增加pom依赖<dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-gateway</artifactId> </dependency> <dependency> .
2021-04-01 15:29:23
157
1
原创 Spring gateway 源码解析之负载均衡和熔断07
Spring Cloud Gateway Ribbon负载均衡1 如何使用添加依赖<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency>提示: spring-cloud-starte
2021-03-31 22:35:18
1089
原创 Spring gateway 源码解析之Filter类06
Spring gateway 是网关系统,这篇文章是研究如何 global filter 和 gateway filter 是如何修改或者改变原来的请求的。
2021-03-30 23:45:31
302
原创 缓存之Redis总结
缓存的本质1:操作系统的磁盘性能很差,才会有更加昂贵的,同时速度更加快的缓存模块,就是用钱换时间。2:合理的使用缓存可以极大的提高系统性能缓存中的数据1:静态数据2:变化很低的数据3:一些计算的中间数据。总之都是一些 读>写 的数据,可以通过 命中率 和 读写比 指标来衡量,可以通过日志记录,来收集指标数据。缓存数据的加载时刻1:全量启动加载2:懒加载3:异步加载,就是客户端的线程只从缓存哪里取数据,取不到就取不到了,然后后端有个异步线程进行从数据库更新到缓
2021-03-30 11:07:54
83
原创 Spring gateway 源码解析之Route Predicate组件的类图 06
gateway需要实现的功能点:1:支持同步或者异步的方式执行,并且同步和异步类型可以转换。2:需要支持不同方式来定义Route (yaml 或者 代码)。3:需要支持Route列表缓存。4:一个Route可以配置多个的断言(a&b&c|d),所以需要支持多个断言的组合逻辑判断。5: 匹配到路由后执行gateway filter 和 gloable filter。6:断言需要支持缩写。1:Route两种定义方式routes: # ==..
2021-03-29 21:10:27
422
1
原创 Spring gateway 源码解析之Route Predicate组件 05
Route Predicate 组件的介绍This is aJava 8 Function Predicate. The input type is aSpring FrameworkServerWebExchange. This lets you match on anything from the HTTP request, such as headers or parameters.Gateway用Route Predicate做什么...
2021-03-29 06:47:54
476
2
原创 Spring webFlux 概念学习
1.Spring flux简介Spring WebFlux是Spring Framework 5.0中引入的新的反应式Web框架。 与Spring MVC不同,它不需要Servlet API,完全异步和非阻塞, 并通过Reactor项目实现Reactive Streams规范。 并且可以在诸如Netty,Undertow和Servlet 3.1+容器的服务器上运行Spring WebFlux internally usesProject Reactorand its publisher i...
2021-03-27 00:04:20
445
原创 Spring cloud gatway 源码解析之初始化类 04
@Configuration(proxyBeanMethods = false) 的解释Something like this:@Configuration(proxyBeanMethods=true)public class SomeConfiguration { @Bean ServiceA serviceA(){ return new ServiceA(sharedService()); } @Bean ServiceB service
2021-03-26 00:05:48
123
原创 Spring cloud gatway 源码解析之注解类 03
注解类的功能 Spring cloud gateway框架中一共有三个注解类 分别是ConditionalOnEnabledFilter,ConditionalOnEnabledGlobalFilter,ConditionalOnEnabledPredicate 根据名字可以知道,他们主要的功能是当开启 filter, gloable filter,Predicate 的才会动态组装Bean. 其中每一个注解类都对应一个condition的子类,OnEnabledFilter ,OnEnab...
2021-03-24 23:50:43
1353
原创 Spring cloud gatway 源码解析之总览 01
Gateway概念介绍 网关的主要功能职责主要有 请求集中接入,多业务聚合,中介策略。gateway的中文翻译是 出入口的意思,其实该模块的职责其实超出了名字的含义,因为也包含了采用各种策略保户后端资源的可用性,所以我更想叫它 survival gateway。网关分类如下:Spring Cloud Gateway架构梳理思考1:gateway是如何被初始化的?2:gateway如何嵌入请求链路中的?3:gatway 如何设计各个组件的关系的,然后变得更加容易扩...
2021-03-22 22:38:45
325
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人