自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 mycat分库分表实战

之前我们已经讲解过了数据的切分,主要有两种方式,分别是垂直切分和水平切分,所谓的垂直切分就是将不同的表分布在不同的数据库实例中,而水平切分指的是将一张表的数据按照不同的切分规则切分在不同实例的相同名称的表中。下面先来描述mycat的分库操作,在进行分库操作的时候需要注意一点:有关联关系的表应该放在一个库里,相互没有关联关系的表可以分到不同的库中。详情参考:http://www.ysxbohui.com/article/102

2022-12-07 21:35:41 359 1

原创 mycat的全局序列号几种实现方式

在实现分库分表的情况下,数据库自增主键已经无法保证自增主键的全局唯一,为此,mycat提供了全局sequence,并且提供了包含本地配置和数据库配置等多种实现方式。1、本地文件方式使用此方式的时候,mycat讲sequence配置到文件中,当使用到sequence中的配置,mycat会更新sequence_conf.properties文件中sequence当前的值。详情参考:http://www.ysxbohui.com/article/101

2022-12-07 21:33:54 332

原创 sharding-proxy使用教程

Sharding-Proxy是ShardingSphere的第二个产品。 它定位为透明化的数据库代理端,提供封装了数据库二进制协议的服务端版本,用于完成对异构语言的支持。 目前先提供MySQL/PostgreSQL版本,它可以使用任何兼容MySQL/PostgreSQL协议的访问客户端(如:MySQL Command Client, MySQL Workbench, Navicat等)操作数据,对DBA更加友好。详情参考:http://www.ysxbohui.com/article/100

2022-12-07 21:32:31 371

原创 sharding-jdbc实现读写分离

读写分离的概念大家应该已经很熟练了,此处不在赘述,下面我们通过sharding-jdbc来实现读写分离,其实大家应该已经发现了,所有的操作都是配置问题,下面我们来讲一下具体的配置,关于读写分离的原理,以及如何配置mysql的主从复制,我们就不在多聊了,直接看sharding-jdbc的配置。1、我们规定ds1为写库,ds2为读库。2、创建person类。

2022-11-13 21:34:07 276

原创 SpringBoot整合RocketMQ详解

1、首先在pom.xml文件中引入相关RocketMQ的jar包。

2022-11-13 21:30:09 247

原创 什么是MySQL覆盖索引

换句话来说,如果一个索引包含(或者覆盖)所有需要查询的字段值,我们就称之为“覆盖索引”,覆盖索引是mysql dba常用的一种SQL优化手段,因为覆盖索引是一种非常强大的工具,能大大提高查询性能,只需要读取索引而不需要读取数据。覆盖索引(covering index)指一个查询语句的执行只需要从辅助索引中就可以得到查询记录,而不需要查询聚集索引中的记录。也可以称之为实现了索引覆盖。

2022-10-31 20:13:58 690

原创 performance_schema表常用的sql查询操作

2、哪类SQL的平均响应时间最多?–1、哪类的SQL执行最多?

2022-10-31 20:11:22 112

原创 maven引进jar一直报错role: org.apache.maven.model.validation.ModelValidator

maven引进jar一直报错role: org.apache.maven.model.validation.ModelValidator,一直转圈圈,根本原因是idea的本版与maven的版本不匹配导致的,我的idea是2021版本的,maven下载了最新版本5.8,只要将maven改成5.6版本就可以正常下载jar包。

2022-10-23 10:51:39 2492

原创 MySQL之performance_schema的介绍

1、提供了一种在数据库运行时实时检查server的内部执行情况的方法。performance_schema 数据库中的表使用performance_schema存储引擎。该数据库主要关注数据库运行过程中的性能相关的数据,与information_schema不同,information_schema主要关注server运行过程中的元数据信息。MySQL的performance schema 用于监控MySQL server在一个较低级别的运行过程中的资源消耗、资源等待等情况。

2022-10-23 10:50:06 315

原创 MySQL的组提交

WAL(Write-Ahead-Logging)是实现事务持久性的一个常用技术,基本原理是在提交事务时,为了避免磁盘页面的随机写,只需要保证事务的redo log写入磁盘即可,这样可以通过redo log的顺序写代替页面的随机写,并且可以保证事务的持久性,提高了数据库系统的性能。虽然WAL使用顺序写替代了随机写,但是,每次事务提交,仍然需要有一次日志刷盘动作,受限于磁盘IO,这个操作仍然是事务并发的瓶颈。组提交伴随着mysql的发展,已经支持了redo log和bin log的组提交。

2022-10-12 23:34:12 216

原创 json工具类

将对象转成成Json对象。

2022-10-10 20:15:43 126

原创 从根本上解决主从复制的延迟问题

很多同学在自己线上的业务系统中都使用了mysql的主从复制,但是大家需要注意的是,并不是所有的场景都适合主从复制,一般情况下是读要远远多于写的应用,同时读的时效性要求不那么高的场景。如果真实场景中真的要求立马读取到更新之后的数据,那么就只能强制读取主库的数据,所以在进行实现的时候要考虑实际的应用场景,不要为了技术而技术,这是很严重的事情。

2022-10-10 20:13:52 124

原创 恢复Git误删除文件

【3】再通过commit提交到本地库,命令:git commit -m “添加Test2.txt文件” Test2.txt。【2】将Test2.txt文件add到暂存区中,命令:git add Test2.txt。【1】首先新建 一个Test2.txt文件。一、找回本地库删除的文件。

2022-10-05 23:09:13 624

原创 SSL/TLS协议四次握手

(3)双方采用"对话密钥"进行加密通信。(1)客户端向服务器端索要并验证公钥。(2)双方协商生成"对话密钥"。

2022-10-04 20:19:24 168

原创 主从复制延迟产生的原因有哪些?

2、备库充当了读库,一般情况下主要写的压力在于主库,那么备库会提供一部分读的压力,而如果备库的查询压力过大的话,备库的查询消耗了大量的CPU资源,那么必不可少的就会影响同步的速度。1、在某些部署环境中,备库所在的机器性能要比主库所在的机器性能差。此时如果机器的资源不足的话就会影响备库同步的效率。

2022-09-23 22:23:42 161

原创 Mycat原理

mycat的操作使用并不是很难,我们只需要配置和修改server.xml.rule.xml.schema.xml三个文件即可,但是如果想在生产环境中使用的话,还是需要下一番功夫的,下面我们来简单说一下mycat的原理。mycat在逻辑上由几个模块组成:通信协议、路由解析、结果集处理、数据库连接、监控等模块。

2022-09-22 19:58:18 249

原创 Oracle与MySQL添加字段、修改字段sql语句写法

ALTER TABLE table_name ADD COLUMN column_name VARCHAR(100) DEFAULT NULL COMMENT ‘新增字段’ AFTER old_column;–old_column代表,新增的字段添加到old_column字段后面。一、MySQL添加字段、修改字段sql语句写法。

2022-09-20 20:26:29 387

原创 Java常用工具类代码整理——之Base64工具类

Java常用工具类代码整理——之Base64工具类。

2022-09-17 23:38:40 383

原创 mycat的安全管理

目前mycat对于中间件的连接控制并没有做太复杂的控制,目前只做了中间件逻辑库级别的读写控制权限,可以通过user标签进行配置。1、user标签权限控制。

2022-09-17 23:36:18 115

原创 安装配置Keepalived

1、准备好Keepalived安装包。2、解压到/usr/local目录。安装配置Keepalived。3、安装需要依赖的环境组件。

2022-09-12 20:26:11 137

原创 安装配置HAProxy

3、进入到解压后的目录,查看内核版本,进行编译。2、解压到/usr/local目录。1、准备好HAProxy的安装包。安装配置HAProxy。

2022-09-12 20:24:11 89

原创 mycat的配置文件讲解

schema.xml作为mycat中重要地配置文件之一,管理者mycat的逻辑库、表、分片规则、DataNode以及DataSource。下面我们讲解下mycat每一个配置文件具体的属性以及相关的基本配置。1、搞定schema.xml文件。

2022-09-05 22:34:34 159

原创 FastDFS安装

FastDFS是C语言开发的应用。安装必须使用make、cmake和gcc编译器。Tracker 和 Storage 安装在一台机器上。1、我选择安装FastDFS 5.08版本。准备linux服务器或虚拟机。安装FastDFS依赖。

2022-09-05 22:32:41 210

原创 Apollo详细介绍

对程序配置的期望值也越来越高:配置修改后实时生效,灰度发布,分环境、分集群管理配置,完善的权限、审核机制……在这样的大环境下,传统的通过配置文件、数据库等方式已经越来越无法满足开发人员对配置管理的需求。随着程序功能的日益复杂,程序的配置日益增多:各种功能的开关、参数的配置、服务器的地址……Apollo配置中心应运而生!

2022-08-22 23:31:12 165

原创 dubbo服务化最佳实践

建议将服务接口、服务模型、服务异常等均放在 API 包中,因为服务模型和异常也是 API 的一部分,这样做也符合分包原则:重用发布等价原则(REP),共同重用原则(CRP)。如果需要,也可以考虑在 API 包中放置一份 Spring 的引用配置,这样使用方只需在 Spring 加载过程中引用此配置即可。公用的接口、工具类、实体类等抽取出API项目独立维护更新。每次更新后需要install。Maven 聚合项目改造。

2022-08-22 23:29:08 108

原创 Linux跟window10关闭、打开防火墙和端口命令

1、按下win键,弹出搜索框,在搜索框中输入“cmd”,在搜索结果中,对着命令提示符程序,单击鼠标右键,菜单中点击选择“以管理员身份运行”。window10关闭、打开防火墙和端口命令。

2022-08-17 22:51:17 537

原创 Elasticsearch写入性能、搜索速度调优

增加Buffer大小,本质也是减小refresh的时间间隔,因为导致segment文件创建的原因不仅有时间阈值,还有buffer空间大小,写满了也会创建。增加refresh_interval的参数值,目的是减少segment文件的创建,减少segment的merge次数,merge是发生在jvm中的,有可能导致full GC,增加refresh会降低搜索的实时性。大批量的数据写入尽量控制在低检索请求的时间段,大批量的写入请求越集中越好。增加flush时间间隔,目的是减小数据写入磁盘的频率,减小磁盘IO。..

2022-08-17 22:49:30 764

原创 Apollo详细介绍

对程序配置的期望值也越来越高:配置修改后实时生效,灰度发布,分环境、分集群管理配置,完善的权限、审核机制……在这样的大环境下,传统的通过配置文件、数据库等方式已经越来越无法满足开发人员对配置管理的需求。随着程序功能的日益复杂,程序的配置日益增多:各种功能的开关、参数的配置、服务器的地址……Apollo配置中心应运而生!...

2022-08-16 23:18:35 320

原创 dubbo服务化最佳实践

建议将服务接口、服务模型、服务异常等均放在 API 包中,因为服务模型和异常也是 API 的一部分,这样做也符合分包原则:重用发布等价原则(REP),共同重用原则(CRP)。如果需要,也可以考虑在 API 包中放置一份 Spring 的引用配置,这样使用方只需在 Spring 加载过程中引用此配置即可。...

2022-08-16 23:16:31 67

原创 Linux操作常用命令

1、hostname 查看计算机名称,hostname -i 查看计算机IP地址。3、cp 文件1 文件夹 复制文件1到文件夹中,cp -r 复制目录。2、whoami 查看当前登录用户。5、mv 移动文件、目录或重命名。4、scp远程复制文件或目录。...

2022-08-10 22:20:51 181

原创 通过域名或IP直接访问Tomcat启动的项目

打开server.xml文件。(记事本,或notepad打开)1、进入到Tomcat的安装目录下,这里是我的目录。

2022-08-10 22:19:24 293

原创 创建oracle开启关闭快捷方式

Oracle占用内存比较大,平时不用的话默认启动Oracle对电脑开销比较大,线程资源抢夺造成卡顿,我们最好默认手动启动Oracle,正常情况要进入计算机管理服务里面才能启动,对于某些人这样操作比较烦,下面来介绍一下利用脚本开启或关闭Oracle,只需双击批处理文件即可。**同样我们可以建立关闭Oracle文件,文件名为dbstop.cmd。**建立开启Oracle文件,文件名为dbstart.cmd。这三项设为手动,这样开机就不会启动这三项服务,开机会更快。...

2022-08-09 23:35:53 395

原创 消息中间件有哪些应用场景

许多消息队列所采用的”插入-获取-删除”范式中,在把一个消息从队列中删除之前,需要你的处理系统明确的指出该消息已经被处理完毕,从而确保你的数据被安全的保存直到你使用完毕。通过消息系统在处理过程中间插入了一个隐含的、基于数据的接口层,两边的处理过程都要实现这一接口,当应用发生变化时,可以独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束。在任何重要的系统中,都会有需要不同的处理时间的元素。消息队列降低了进程间的耦合度,所以即使一个处理消息的进程挂掉,加入队列中的消息仍然可以在系统恢复后被处理。..

2022-08-04 22:25:24 391

原创 Cron表达式各字符代表含义解释

其中每个元素可以是一个值(如6),一个连续区间(9-12),一个间隔时间(8-18/4)(/表示每隔4小时),一个列表(1,3,5),通配符。(4) /:表示起始时间开始触发,然后每隔固定时间触发一次,例如在Minutes域使用5/20,则意味着5分钟触发一次,而25,45等分别触发一次.(6) L:表示最后,只能出现在DayofWeek和DayofMonth域,如果在DayofWeek域使用5L,意味着在最后的一个星期四触发。例如:在Minutes域使用5,20,则意味着在5和20分每分钟触发一次。...

2022-08-04 22:22:08 643

原创 工商银行Java技术笔试题

在java中,一个类可同时定义许多同名的方法,在这些方法的形式参数个数,类型或顺序各不相同,传值也可以各不相同。在下列给出的数组元素中非法的是。(包括日元)汇率不断下调,这样会使进入我国市场的日本电器人民币价格上升。A)变量是用来保存数据的B)变量是用来实现操作过程的C)函数是用来实现操作过程的。甲电影厂拍摄的《黄河,中华民族的摇篮》获得最佳纪录片奖。甲厂导演真有意思,我们三人的姓正好与这三部片子的第一个字相同,可每个人的姓与自。因此,这些浮游生物使得地球变得凉爽,面这有利于它们的生存,当然也有。...

2022-07-30 11:48:13 909

原创 线程连接池配置参数及拒绝策略

当线程池的任务缓存队列已满并且线程池中的线程数目达到maximumPoolSize时,如果还有任务到来就会采取任务拒绝策略,通常有以下四种策略ThreadPoolExecutor.AbortPolicy丢弃任务并抛出RejectedExecutionException异常。第一步先判断线程池中当前线程数量是否达到了corePoolSize,若未达到,则新建线程运行此任务,且任务结束后将该线程保留在线程池中,不做销毁处理,若当前线程数量已达到corePoolSize,则进入下一步;...

2022-07-26 22:27:10 315

原创 线上问题,故障,bug排查技巧

先用df-h从总体查看磁盘状态,看挂载点为根目录的/的容量咯,这里我只用了25%,显然还没有达到瓶颈,但如果这里太大了,还要进一步看看是哪个目录大了。VIRT表示使用的虚拟内存数量,RES表示使用的物理内存数量,SHR表示使用的共享内存数量,这三者可以从内存角度看该进程的资源占用情况。还有可能是服务提供方业务耗时严重,这个就需要去排查服务提供方的日志,机器负载,连接池占用情况等,分析问题,这也是我们平时开发碰到的主要问题。用jmap-dump分析堆内存中的快照,看是否有大对象问题。...

2022-07-26 22:25:14 481

原创 Java程序性能优化

方式一,经常用 String 提供的 split() 方法来满足业务需求。代码模拟了一些数据,然后程序跑起来,花费大约 3000 多毫秒。方式二,采用字符串分割的工具类 StringTokenizer采用 StringTokenizer 完成 split() 同样的数据分割,花费大约 500 毫秒。2. 字符串拼接,哪种方式更优?方式一,使用 + 号拼接字符串。程序跑起来,大约花费 27687 毫秒。方式二,使用 StringBuilder 进行拼接字符串。......

2022-07-26 22:18:55 117

原创 十步轻松完成Linux环境安装Redis

进入你上步创建的目录cd/opt/laohuangniu,输入命令wgethttps//download.redis.io/releases/redis-6.2.1.tar.gz。浏览器访问https//download.redis.io/releases/,复制你想要的版本链接,比如我的是redis-6.2.1.tar.gz版本。2、创建一个目录放下载的安装包,mkdir/opt/laohuangniu。9、修改完后编译一下文件source/etc/profile。...

2022-07-23 10:58:49 312

原创 分布式事务与分布式锁实现

2、不具备可重入的特性,因为同一个线程在释放锁之前,行数据一直存在,无法再次成功插入数据,所以,需要在表中新增一列,用于记录当前获取到锁的机器和线程信息,在再次获取锁的时候,先查询表中机器和线程信息是否和当前机器和线程相同,若相同则直接获取锁;从本质上来说,分布式事务就是为了保证不同数据库的数据一致性。3、没有锁失效机制,因为有可能出现成功插入数据后,服务器宕机了,对应的数据没有被删除,当服务恢复后一直获取不到锁,所以,需要在表中新增一列,用于记录失效时间,并且需要有定时任务清除这些失效的数据;...

2022-07-23 10:53:30 448

空空如也

空空如也

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

TA关注的人

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