自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 关于RPC

【代码】关于RPC。

2024-03-25 09:38:00 919

原创 类加载过程

*

2023-12-17 18:19:16 900

原创 数据同步之初识Canal

初识Canal

2022-07-31 19:23:49 1415 2

原创 【为什么要用LVS+Nginx】

LVS基于四层,工作效率高。单个Nginx承受不了压力,需要集群。LVS充当Nginx的集群调度者。Nginx接受请求来回,LVS可以只接受不响应。

2022-05-18 10:09:51 1460

原创 LocalDateTime、Date、时间戳、字符串 相互转化

1.时间戳 转 LocalDateTimelong l = System.currentTimeMillis();// 时间戳 转 LocalDateTimeLocalDateTime localDateTime1 = LocalDateTime.ofInstant(Instant.ofEpochMilli(l), ZoneId.systemDefault());System.out.println(localDateTime1);2.时间戳 转 Datelong l = System.cur

2022-04-08 18:03:37 1142

原创 关于GateWay 和 Zuul 的 技术选型

2022-02-23 17:50:28 364

原创 Mybatis面试知识

mybatis中#{}和${}的区别是什么?a. #相当于对数据 加上 双引号,$相当于直接显示数据。b. #{} : 根据参数的类型进行处理,比如传入String类型,则会为参数加上双引号。#{} 传参在进行SQL预编译 时, 会把参数部分用一个占位符 ? 代替,这样可以防止 SQL注入。c. ${} : 将参数取出不做任何处理,直接放入语句中,就是简单的字符串替换,并且该参数会参加SQL的预编译, 需要手动过滤参数防止 SQL注入。mybatis 有几种分页方式?分.

2022-02-21 21:55:30 424

原创 关于synchronized的优化机制

synchronized的优化机制锁分级对象头中包含了Mark Word,如下表示:public class SynchronizedTest1 { private static List<Integer> list = new Vector<>(); /** * 关闭偏向锁 -XX:-UseBiasedLocking 675ms * 开启偏向锁 -XX:+UseBiasedLocking -XX:BiasedLockingStartu

2021-10-13 22:41:07 176

原创 数据库调优系列

B-Tree(B+Tree)的特性完全匹配 : inde(name) ===> where name = ‘xxx’范围匹配 : index(age) ===> where age > 5;前缀匹配 : index(name) ===> where name like ‘xx%’B-Tree(B+Tree)的限制index(name,age,sex)查询条件不包括最左列,无法使用索引。===> where age = 5 and sex = ..

2021-09-08 16:12:18 98

原创 SpringCloud中分布式配置中心需要考虑的几点

SpringCloud中分布式配置中心需要考虑的几点1.常规的配置2.传统配置管理的缺点3.配置项分析(配置项中的静态内容)4.配置项分析(配置项中的动态内容)5.配置管理的需求

2021-08-26 22:04:23 99

原创 初识容器化

前言:微服务的落地需求环境需求差异大:CPU业务型、GPU计算型、高吞吐I/O型。服务敏捷要求高:成百上千、快速启动、优雅停止。组织架构变化:产品导向、DevOps文化、团队微小化。容器化的三大助力码头林立-各种软硬件平台层出不穷。微服务-高内聚、低耦合、分钟启停和部署。康威定律-组织结构决定上层建筑。Docker的技术特点?方便的客户端管理。强大的服务器端引擎。便利的镜像技术。无敌的镜像仓库。庞大的生态系统。Cloud Foundry的技术特点?快速发布。多语

2021-07-28 16:06:40 120

原创 GateWay 项目中 server.servlet.context-path 属性没有用怎么解

直接上代码@Configurationpublic class ContextPathConig { /** * @Description: 由于gateway 中 使用的 spring-boot-starter-webfulx 的依赖 和 spring-boot-starter-web * 依赖有所冲突,所以去掉 spring-boot-starter-web 的gateway项目的启动容器是Netty ,所以我们在application.yml中

2021-06-28 16:53:13 3711 2

原创 关于 远程调用【Netty、RPC、HTTP、MQ】架构思考

关于技术选型

2021-06-27 11:20:07 644

原创 zipkin + rabbitmq 整合链路追踪

zipkin如何通过mq来进行消费产生链路追踪,在使用过程中遇到一些坑,记录一下,便于后面学习现在官网上有现成的zipkin的jar包可以直接提供使用,zipkin的github地址,zipkin的jar下载下面是我自己简单写了一个zipkin,pom.xml如下 <dependencies> <dependency> <groupId>org.springframework.boot</groupId>

2021-06-03 09:16:30 566

原创 安装配置Redis

安装配置RedisRedis 下载安装官网 : https://redis.io/download这里使用5.0.10版本注意:Redis本来要依赖于gcc-c++ 环境 才可以编译启动 系统中已经有gcc-c++ 环境,并不需要 另外安装 yum install gcc-c++ 或者 另外下载安装 gcc-c++ 的依赖包#1.将下载好的redis-5.0.10.tar.gz 上传到 /home/software 下面mv /home/kylin/redis-5.0.10.ta

2021-04-03 15:29:29 69

原创 Redis面试题

1-10 可能会遇到的面试题1.什么是 Redis?答:redis是一个基于内存的,kv格式的non-sql 高性能数据库, 经常被拿来做缓存中间件,他支持持久化,所以也可以用来做存储。2.Redis 的数据类型?答:最常用的是string, 其他还有hash、set、zset、list等3.使用 Redis 有哪些好处?答:一是他基于内存操作且非阻塞,读写性能高二是支持持久化,能够较好的容灾,比较安全三是数据类型丰富4.Redis 相比 Memcached 有哪些优势?答

2021-01-26 14:26:18 105

原创 Redis线程模型 不同域名的单点登录 可靠性投递

2021-01-26 14:26:01 119

原创 关于分布式限流

分布式限流的几种维度QPS和连接数控制针对上图中的连接数和QPS(query per second)限流来说,我们可以设定IP维度的限流,也可以设置基于单个服务器的限流。在真实环境中通常会设置多个维度的限流规则,比如设定同一个IP每秒访问频率小于10,连接数小于5,再设定每台机器QPS最高1000,连接数最大保持200。更进一步,我们可以把某个服务器组或整个机房的服务器当做一个整体,设置更high-level的限流规则,这些所有限流规则都会共同作用于流量控制。传输速率对于“传输速率”大家都不会陌生,

2021-01-12 16:30:16 533

原创 关于接口的幂等性操作

接口的幂等性分为两大类,第一种是有业务单据号的操作,第二种是没有业务单据号的时候。(利用Token来解决无业务单据号时候的操作)Delate操作的幂等性先查询然后再删除保证删除操作只执行一次 User user = userMapper.selectByPrimaryKey(userId); if(user != null){ log.info("用户存在,用户ID为:"+userId); int i = userMapper.d

2021-01-12 11:40:30 433

原创 【Kafka 】搭建集群 (依赖ZK)、重要参数

Zookeeper集群环境搭建:1. 准备工作:## 准备3个节点,要求配置好主机名称,服务器之间系统时间保持一致## 注意 /etc/hostname 和 /etc/hosts 配置主机名称(在这个里我准备bhz221,bhz222,bhz223三节点)## 特别注意 以下操作3个节点要同时进行操作哦!## 注意关闭防火墙1.启动防火墙systemctl start firewalld2.关闭防火墙systemctl stop firewalld3.重启防火墙systemctl resta

2021-01-06 15:14:33 595

原创 关于分布式事务

XA协议XA协议是由X/Open组织提出的分布式事务的规范。由一个事务管理器(TM)和多个资源管理器(RM)组成。两阶段提交:提交分两个阶段:prepare和commit。– 保证数据的强一致性– commit阶段出现问题,事务出现不一致,需人工处理– 效率低下,性能与本地事务相差10倍– MySql5.7及以上均支持XA协议– MySql Connector/J 5.0以上支持XA协议– Java系统中,数据源采用Atomikos代码实现:1.pom.xml 引入 starter

2020-12-31 17:25:52 169

原创 Mycat 和 Sharding JDBC 的区别

Mycat 和 Sharding JDBC 的区别Mycat是服务器端的代理,Sharding JDBC是客户端的代理。Mycat不支持同一库内的水平切分,Sharding JDBC支持。Sharding JDBC 的读写分离中的读只能从读库中去读取,不能从写库中读,Mycat支持主库和从库分配策略去读取主库和从库。关于全局分布ID,Mycat支持统一ID序列(ID的值统一的从一个集中的ID序列生成器中获取),Sharding JDBC不支持,Sharding JDBC 支持UUID

2020-12-30 16:59:54 2706

原创 简单记录MyCat HA-KeepLived 的搭建过程和步骤

Mycat 官网 http://www.mycat.org.cn/Keepalived官方帮助文档 https://www.keepalived.org/manpage.htmlhttps://www.keepalived.org/doc/我在192.168.163.130 和 192.168.163.129 上分别安装了Mycat,安装过程十分简单下载压缩包,解压修改配置文件即可。Mycat 下载地址:https://github.com/MyCATApache/Mycat-download

2020-12-17 16:29:40 154

原创 【Keepalived】安装、配置文件详解、主备、热备、LVS的配置

安装Keepalived1.下载Keepalived的安装包https://www.keepalived.org/download.html2.上传到/home/software下3.进入到/home/software目录下4.解压tar -zxvf keepalived-2.0.18.tar.gz5.解压之后进入到解压的目录,使用configure命令配置安装目录与核心配置文件所在位置./configure --prefix=/usr/local/keepalived --sysconf=

2020-12-10 12:46:22 1922 2

原创 在Linux下安装mysql80 搭建主从

mysql官网安装步骤1.下载 MySQL Yum Repository https://dev.mysql.com/downloads/repo/yum/mysql80-community-release-el7-3.noarch.rpm2.上传到Linux下的 /opt 目录, 进入到 /opt下yum install mysql80-community-release-el7-3.noarch.rpm3.执行命令yum install mysql-community-server

2020-12-10 12:36:46 180

原创 ThreadPollExcutor线程池的状态

Q:线程池有状态么?A:当然有,RUNNING、SHUTDOWN、STOP、TIDYING、TERMINATEDRUNNING:运行状态,接收新任务,处理旧任务。SHUTDOWN:待关闭状态,这个状态不会接收新任务但会执行完阻塞中的任务。STOP:停止状态,不会接收新任务,结束阻塞中的任务。TIDYING:整理状态,此时所有任务都执行完毕,也没有工作进程,执行termintaed方法后进入TERMINATED状态。TERMINATED:终止状态,此时线程池完全终止了,并且完成了所有资源的释放

2020-12-08 08:45:28 198

原创 关于MQ Kafka

分布式消息队列MQ的应用场景:1.服务解耦 2.削峰填谷 3.异步化缓冲(最终一致性,不需要强一致性)。思考点: 1.生产中的可靠性投递,发出去一定要保证原子性 2.幂等性,消费幂等 3.高可用性 4.低延迟性 5.消息可靠性 6.堆积能力 ​​​​ kafka的特点:1.分布式(消息分区) 2.跨平台,支持多种语言。3.实时性,数据支持实时处理,数据的堆积能力很强。4.伸缩性,支持水平扩展。kafka高性能的原因是什么:1.顺序写2.Page

2020-12-08 08:44:17 484 1

原创 Redis 缓存穿透 和缓存雪崩 以及缓存的内存淘汰策略

什么缓存穿透? 查询的key在缓存中和数据库中都不存在,某些非法用户进行攻击,大量的请求会直接打在db上,从而造成db宕机,这就是缓存穿透。如何预防缓存穿透? 1.把缓存中不存在的key缓存起来,比如空字符串,空对象,空数据或者空list。(一般我们要这么干) 2.通过布隆过滤器在实现。(只测试过)什么是缓存雪崩? 当缓存的中设置过过期的时间key在某个时间点上大面积失效,大量的请求会直接打在db上,从而造成数据库的宕机,这就是缓存雪崩。如

2020-12-08 08:37:54 223

原创 索引如何才会失效

索引失效的各种原因:1、全值匹配我最爱2、最佳左前缀法则:查询从索引的最左前列开始并且不跳过索引中的列。带头大哥不能死,中间兄弟不能断3.不在索引列上做任何操作(计算、函数、(自动or手动)类型转换),会导致索引失效而转向全表扫描4.存储引擎不能使用索引中范围条件右边的列。范围之后全失效5.尽量使用覆盖索引(只访问索引的查询(索引列和查询列-致)),减少select*。6.mysql在使用不等于(!=或者<>)的时候无法使用索引会导致全表扫描。7.is null ,is not n

2020-12-08 08:35:27 409

原创 7层应用模型

7、应用层:用户和计算机交互。6、表示层:对传输的数据进行处理,加密或者翻译。5、会话层:建立一个会话。4、传输层:提供数据传输的服务,在传输层通信会设计端口号、常见的协议有tcp、udp。 快递公司会分配快递员去取件或者寄件,快递员充当传输层的角色。3、网络层:网络通信要求自己的iP和对方的ip。快递员由物流公司统一分配和管理,物流公司就相当于网络层。2、数据链路层:这一层会提供计算机的MAC地址,为了确保请求投递正确,所以会验证监测MAC地址,确保请求响应的准确性。 快递员在投件的时候会先打个

2020-12-08 08:34:30 319

原创 同步阻塞 同步非阻塞 异步阻塞 异步非阻塞

同步阻塞(BIO):客户端发送请求给服务端,服务端需要很长的时间去执行,客户端会一直等待结果返回,也不会去做任何事情,服务器也不会处理其他的请求。同步非阻塞(NIO):客户端发送请求给服务器。服务器需要很长的时间去执行,客户端会一直等待结果返回,不会去做任何事前,而服务器会处理其他的请求,过一会回来处理原先的请求,之后返回结果给客户端,客户端继续执行。异步阻塞:客户端发送请求给服务端,服务端需要很长的时间去执行,客户端会去执行其他任务,而服务器不会处理其他请求,知道处理完本次请求。返回结果给客户端,客户

2020-12-08 08:33:50 145

原创 关于分布式锁

经典的分布式锁的三种实现方式基于Mysql。基于Redis。基于Zookeeper.基于Mysql实现原理:利用mysql天然的 行锁 select * for update 特性注意:如果要使用这种分布式锁的时候,分布式锁需要的表需要和业务表里面分开,可以减少数据库的压力。@RestController@Slf4jpublic class DemoController { @Resource DistributeMapper distributeMapper;

2020-12-07 22:02:34 227

原创 Nginx 日志切割

Nginx 日志切割-手动现有的日志都会存在 access.log 文件中,但是随着时间的推移,这个文件的内容会越来越多,体积会越来越大,不便于运维人员查看,所以我们可以通过把这个大的日志文件切割为多份不同的小文件作为日志,切割规则可以以天为单位,如果每天有几百G或者几个T的日志的话,则可以按需以每半天或者每小时对日志切割一下。具体步骤如下:创建一个shell可执行文件:cut_my_log.sh,内容为:#!/bin/bashLOG_PATH="/var/log/nginx/"RECORD_

2020-09-14 14:46:53 103

原创 【Nginx】安装、配置、负载

安装Nginx去官网http://nginx.org/下载对应的nginx包,推荐使用稳定版本上传nginx到linux系统安装依赖环境(1)安装gcc环境 yum install gcc-c++(2)安装PCRE库,用于解析正则表达式 yum install -y pcre pcre-devel(3)zlib压缩和解压缩依赖, yum install -y zlib zlib-devel(4)SSL 安全的加密的套接字协议层,用于HTTP安全传输,也就是https

2020-09-14 10:12:20 150

原创 JAVA8新特性

Lambda表达式的本质:作为函数式接口的实例。Lambda1、举例:(o1,o2) -> Integer.compare(o1,o2);2.格式: -> Lambda操作符 或者是 箭头操作符 —> 左边:Lambda 形参列表 (其实就是接口中抽象方法的新参列表) -> 右边: Lambda 体 (其实就是重写的抽象方法的方法体)3. Lambda表达式的使用:(分为6中情况介绍) 总结: -> 左边:Lambda形参列表的参数类型可以省略(类型推断);如

2020-07-02 16:07:22 160

原创 MYSQL高级

MySql 高级1、frm文件: 存储表结构2、myd文件: 存储表数据3、myi文件: 存储表索引select * from user where name='' and email='';create index idx_user_name on user(name);create index idx_user_nameEmail on user(name,email);sq...

2019-08-08 21:55:44 225

原创 rpm安装MYSQL报错:The server quit without updating PID file

哈哈哈,真的是,今天想要学习mysql高级,在centos上利用rpm安装mysql的时候成功,但是启动的时候怎么也启动不了,折腾了一晚上,晚上的所有方法都试过了,包括安装什么miardb都试过,删除mysql下的ib_logfile1,ib_logfile0,再初始化都不行,然后在网上看到这么一个方法,是修改权限的问题,之前我也试过,但是不知道为什么没有成功,这次竟然成功了,试过之后连我自己都不...

2019-07-26 09:13:40 271

原创 在CentOS7上安装Docker,安装顺利,启动报错

在CentOs7上安装Docker步骤如下:首先我们要检查版本,因为在linux上安装Docker内核必须是3.0以上版本uname -r安装docker yum install docker安装过程当中有提示输入y回车继续安装之后可以查看一下docker的版本 docker -v启动docker命令 systemctl start docker 这里会报错,下面解决设置do...

2019-05-20 17:34:49 249

原创 Navicat连接MySQL8.0时报错【在windows上用Navicat连接Centos7上docker pull mysql 报错】

用Navicat连接自己的数据库的时候如图所示:怎么解决:1.ALTER USER 'root'@'localhost' IDENTIFIED BY 你的密码' PASSWORD EXPIRE NEVER;ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码';FLUS...

2019-05-17 15:59:43 290

转载 redis集群搭建(非常详细,适合新手)

文章属于转载作者:凉凉的西瓜来源:CSDN原文:https://blog.csdn.net/qq_42815754/article/details/82912130版权声明:本文为博主原创文章,转载请附上博文链接!redis集群搭建在开始redis集群搭建之前,我们先简单回顾一下redis单机版的搭建过程1.下载redis压缩包,然后解压压缩文件;2.进入到解压缩后的redis文件...

2019-05-06 09:23:29 286

Xmind-J.U.C

J.U.C的知识结构图,为了使自己以后方便查阅

2019-04-22

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

TA关注的人

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