自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(82)
  • 资源 (6)
  • 收藏
  • 关注

原创 rancher部署nacos集群

1、先创建nacos数据库/* * Copyright 1999-2018 Alibaba Group Holding Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * *

2022-04-21 10:23:21 3079 1

原创 Kafka一些非比寻常的坑

前言我的上家公司是做餐饮系统的,每天中午和晚上用餐高峰期,系统的并发量不容小觑。为了保险起见,公司规定各部门都要在吃饭的时间轮流值班,防止出现线上问题时能够及时处理。我当时在后厨显示系统团队,该系统属于订单的下游业务。 用户点完菜下单后,订单系统会通过发 Kafka 消息给我们系统; 系统读取消息后,做业务逻辑处理,持久化订单和菜品数据,然后展示到划菜客户端; 这样厨师就知道哪个订单要做哪些菜,有些菜做好了,就可以通过该系统出菜; 系统自动通知服务员上菜;

2022-03-02 17:07:21 555

原创 rancher 节点有磁盘压力

进入rancher单个k8s集群,检查是否存在磁盘负载有问题的。重启

2022-02-28 17:16:50 721

原创 Kafka 宕机后不再高可用?探究 Kafka 高可用实现

问题出在了 __consumer_offset 上, __consumer_offset 是一个 Kafka 自动创建的 Topic,用来存储消费者消费的 offset (偏移量)信息,默认 Partition 数为50。而就是这个Topic,它的默认副本数为1。如果所有的 Partition 都存在于同一台机器上,那就是很明显的单点故障了!当将存储 __consumer_offset 的 Partition 的 Broker 给 Kill 后,会发现所有的消费者都停止消费了。第一点 ,需要将 __

2022-02-25 14:35:11 1151

原创 消息重复消费及消息丢失解决办法

解决办法: 针对消息丢失:同步模式下,确认机制设置为-1,即让消息写入Leader和Follower之后再确认消息发送成功;异步模式下,为防止缓冲区满,可以在配置文件设置不限制阻塞超时时间,当缓冲区满时让生产者一直处于阻塞状态; 针对消息重复:将消息的唯一标识保存到外部介质中,每次消费时判断是否处理过即可。...

2022-02-25 09:35:29 1111

原创 将pem证书转换为crt和key

1.pem转crt格式openssl x509 -in fullchain.pem -out fullchain.crt具体用法为:cd ..opensslx509 -in /etc/letsencrypt/archive/domain/fullchain1.pem -out /etc/letsencrypt/archive/domain/fullchain1.crt然后在这个路径找到转换好的证书/etc/letsencrypt/archive/domain2.pem转key格式op

2021-11-08 16:18:26 3393

原创 Linux常用基本命令

1、查看磁盘空间df -lhdu -sh *

2021-10-26 17:55:14 149

原创 redis缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题

一、缓存雪崩缓存雪崩我们可以简单的理解为:由于原有缓存失效,新缓存未到期间(例如:我们设置缓存时采用了相同的过期时间,在同一时刻出现大面积的缓存过期),所有原本应该访问缓存的请求都去查询数据库了,而对数据库CPU和内存造成巨大压力,严重的会造成数据库宕机。从而形成一系列连锁反应,造成整个系统崩溃。缓存失效时的雪崩效应对底层系统的冲击非常可怕!大多数系统设计者考虑用加锁或者队列的方式保证来保证不会有大量的线程对数据库一次性进行读写,从而避免失效时大量的并发请求落到底层存储系统上。还有一个简单方案就时讲缓

2021-10-26 17:54:51 210

原创 kafka笔记之如何保证数据不丢失

kafka笔记之如何保证数据不丢失Kafka是一种高吞吐量的分布式发布订阅消息系统。在使用过程中如果使用不当,经常会出现消息丢失的情况,这是业务系统不能容忍的,消息系统最重要的是保证数据不丢失。本文主要记录kafka是如何保证数据不丢失的,主要从三方面来介绍,消息发送端保证数据不丢失,kafka服务保证消息不丢失,消费者保证消息不丢失。基础知识kafka 可以保证分区消息的顺序,同一个分区,先发送到kafka分区的消息,会被先消费掉。 kafka 是通过一个集群对外提供服务,只要是集群中多个副本

2021-10-26 17:40:56 421

原创 Kafka如何保证数据可靠性

Kafka的数据可靠性保证副本数据同步策略ISR机制ack应答机制故障处理:HW、LEO副本数据同步策略两种副本数据同步策略(Kafka选择第二种)方案 优点 缺点 半数以上完成同步,就发送ack 延迟低 选举新的leader时,容忍n台节点的故障,需要2n+1个副本 全部完成同步,才发送ack 选举新的leader时,容忍n台节点的故障,需要n+1个副本 延迟高 Kafka选择了第二种方案,原因如下:为了容忍n台节点的故障,第一种方案需要2n+1个副本,而第二种方案只需.

2021-10-26 17:39:24 1271

原创 springboot+redis+redisson 分布式锁 续期 秒杀场景

pom.xml配置文件 <!--redis--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> <exclusions>

2021-08-27 15:51:54 863

原创 MySql 数据类

4.1.1.1. 有无符号 在项目中使用 BIGINT,而且是有符号的。演示create table test_unsigned(a int unsigned, b int unsigned);insert into test_unsigned values(1, 2);select b - a from test_unsigned;select a - b from test_unsigned; --运行出错...

2021-06-11 09:39:25 172

原创 mysql权限

不错,可以链接,也可以执行 select,这个时候还想删库?做梦吧~ 3.2.深入研究下 MySQL 权限 3.2.1. 用户标识是什么 上面一句简单的 SQL 堪称完美的解决了程序员新手的删库跑路的问题,高兴吧,你学到了新 姿势,但是如果想面试给面试管留下好映像,上面的知识好像还不够,有必要好好深入研究 下 MySql 的权限了。 这里有个小的知识点需要先具备,在 mysql 中的权限不是单纯的赋予给用户的,而是赋予给” 用户+IP”的 比如 dev 用户是否能登陆,用什么密码登陆,并且能访问什么数据库等

2021-06-10 09:41:52 694

原创 mysql单实例和多实例安装

安装前步骤一、添加MySQL用户groupadd mysqluseradd -g mysql -s /sbin/nologin mysql

2021-06-10 08:50:12 330

原创 mysql安装登录错误提示

Linux连接mysql提示Can'tconnecttolocalMySQLserverthroughsocket'/tmp/mysql.sock' (2)2021-01-15 PM03:08:42一、代码[root@bogon ~]#mysql-uroot -pEnter password:ERROR 2002 (HY000):Can'tconnecttolocalMySQLserverthroughsocket'/tmp/mysql.soc...

2021-06-09 10:14:54 418

原创 布隆过滤器原理和基于BloomFilter的误判率展示

布隆过滤器原理和基于BloomFilter的误判率展示布隆过滤器布隆过滤器原理布隆过滤器是由n个Hash函数和一个二进制数组组成。如图所示(参考,hash函数可以多个)1.保存操作发来一个请求数据hello 对数据hello经过三次hash运算,分别得到三个值(假设1,3,5)。 在对应的二进制数组里,将下标为1,3,5的值置为1。 这样hello数据就保存了。2.查询操作发来一个请求数据hello 对数据hello经过三次hash运算,分别得到三个值(假设1,3,.

2021-06-03 09:42:25 670

原创 redis系列(1):redis常用问题

一、Redis 持久化机制Redis是一个支持持久化的内存数据库,通过持久化机制把内存中的数据同步到硬盘文件来保证数据持久化。当Redis重启后通过把硬盘文件重新加载到内存,就能达到恢复数据的目的。实现:单独创建fork()一个子进程,将当前父进程的数据库数据复制到子进程的内存中,然后由子进程写入到临时文件中,持久化的过程结束了,再用这个临时文件替换上次的快照文件,然后子进程退出,内存释放。RDB是Redis默认的持久化方式。按照一定的时间周期策略把内存的数据以快照的形式保存到硬盘的二进制文件。

2021-06-03 09:07:52 227

原创 redis系列(1):redis基础入门、特性、应用场景

redis常见应用场景redis应用场景总结redis平时我们用到的地方蛮多的,下面就了解的应用场景做个总结:1、热点数据的缓存2、限时业务的运用3、计数器相关问题4、排行榜相关问题5、分布式锁6、延时操作7、分页、模糊搜索8、点赞、好友等相互关系的存储9、队列...

2021-06-02 11:32:56 281

原创 redis系列(2):linux服务器redis安装

linux服务器redis安装

2021-06-02 11:22:33 152

原创 redis系列(8):Redis持久化,RDB和AOF 的区别、混合持久化

redis常见应用场景redis应用场景总结redis平时我们用到的地方蛮多的,下面就了解的应用场景做个总结:1、热点数据的缓存由于redis访问速度块、支持的数据类型比较丰富,所以redis很适合用来存储热点数据,另外结合expire,我们可以设置过期时间然后再进行缓存更新操作,这个功能最为常见,我们几乎所有的项目都有所运用。2、限时业务的运用redis中可以使用expire命令设置一个键的生存时间,到时间后redis会删除它。利用这一特性可以运用在限时的优惠活动信息、手机验证码等业务

2021-06-02 11:09:32 286

原创 redis系列(7):redis 集群

RedisCluster 是 redis 的分布式解决方案,在 3.0 版本后推出的方案,有效地解决了 Redis 分布式的需求,当遇到单机内存、并发等瓶颈时,可使用此方案来解决这些问题1 分布式数据库概念:1,分布式数据库把整个数据按分区规则映射到多个节点,即把数据划分到多个节 点上,每个节点负责整体数据的一个子集 比如我们库有 900 条用户数据,有 3 个 redis 节点,将 900 条分成 3 份,分别存入 到 3个 redis 节点2,分区规则:常见的分区规则哈希分区和顺序分区,r

2021-06-01 09:25:30 359

原创 ps + grep + awk相结合杀死进程

ps -ef | grepredis-server| grep -v grep | awk '{print $2}' | xargs kill -9红色字体为需要杀死的进程

2021-05-28 15:53:43 291

原创 kafka系列(15):集群配置参数server.properties

offsets.topic.replication.factor=3解释:该值默认为1。表示kafka的内部topic consumer_offsets副本数。当该副本所在的broker宕机,consumer_offsets只有一份副本,该分区宕机。使用该分区存储消费分组offset位置的消费者均会收到影响,offset无法提交,从而导致生产者可以发送消息但消费者不可用。所以需要设置该字段的值大于1。...

2021-05-28 10:13:54 4127

原创 kafka系列(13):kafka 工作机制、处理请求的内部机制

处理请求的内部机制 broker 的大部分工作是处理客户端、分区副本和控制器发送给分区首领的请求。 Kafka 提供了一个二进制协议(基于 TCP),指定了请求消息的格式以及 broker 如何对请求作出响应——包括成功处理请求或在处理请求过程中遇到错误。 客户端发起连接并发送请求,broker 处理请求并作出响应。 broker 按照请求到达的顺序来处理它们这种顺序保证让 Kaka 具有了消息队列的特性,同时 保证保存的消息也是有序的。 所有的请求消息都...

2021-05-28 09:13:59 273

原创 kafka系列(12):kafka复制-Kafka 的核心、副本类型

复制-Kafka 的核心 复制功能是 Kafka 架构的核心。在 Kafka 的文档里, Kafka 把自己描述成“一个分布式的、可分区的、可复制的提交日志服务”。复制之所以这么关键, 是因为它可以在个别节点失效时仍能保证 Kafka 的可用性和持久性。 Kafka 使用主题来组织数据, 每个主题被分为若干个分区,每个分区有多个副本。那些副本被保存在 broker 上, 每个 broker 可以保存成百上千个属于 不同主题和分区的副本。...

2021-05-28 09:06:20 309

原创 kafka系列(11):kafka集群的成员关系、控制器

集群的成员关系Kafka 使用 zookeeper 来维护集群成员的信息。每个 broker 都有个唯一标识符, 这个标识符可以在配置文件里指定, 也可以自动生成。 在 broker 启 动的时候, 它通过创建临时节点把自己的 ID 注册到 zoo-keeper。 Kafka 组件订阅 Zookeeper 的/brokers/ids 路径(broker 在 zookeeper 上的注册路径) , 当 有 broker 加入集群或退出集群时, 这些组件就可以获得通知 。 如果你要启动另一个具有相同 ID

2021-05-28 09:03:55 267

原创 redis系列(6):哨兵机制

1,为什么要讲哨兵机制?A,我们学习了 redis 的主从复制,但如果说主节点出现问题不能提供服务, 需要人工重新把从节点设为主节点,还要通知我们的应用程序更新了主节点的地址,这 种处理方式不是科学的,耗时费事B,同时主节点的写能力是单机的,能力能限C,而且主节点是单机的,存储能力也有限其中 2,3 的问题在后面 redis 集群课会讲,第 1 个问题我们用哨兵机制来解决2,主从故障如何故障转移(不满足高可用):A,主节点(master)故障,从节点 slave-1 端执行 slav

2021-05-27 11:12:35 395

原创 kafka系列(14):kafka物理存储机制、分区分配

1.kafka分区机制分区机制是kafka实现高吞吐的秘密武器,但这个武器用得不好的话也容易出问题,今天主要就来介绍分区的机制以及相关的部分配置。首先,从数据组织形式来说,kafka有三层形式,kafka有多个主题,每个主题有多个分区,每个分区又有多条消息。而每个分区可以分布到不同的机器上,这样一来,从服务端来说,分区可以实现高伸缩性,以及负载均衡,动态调节的能力。当然多分区就意味着每条消息都难以按照顺序存储,那么是不是意味着这样的业务场景kafka就无能为力呢?不是的,最简单的做法可以使用

2021-05-27 11:04:42 371

原创 redis系列(3):Redis 单例、主从模式、sentinel 以及集群的配置方式及优缺点对比

摘要: redis作为一种NoSql数据库,其提供了一种高效的缓存方案,本文则主要对其单例,主从模式,sentinel以及集群的配置方式进行说明,对比其优缺点,阐述redis作为一种缓存框架的高可用性。redis作为一种高效的缓存框架,使用是非常广泛的,在数据存储上,在运行时其将数据存储在内存中,以实现数据的高效读写,并且根据定制的持久化规则不同,其会不定期的将数据持久化到硬盘中。另外相较于其他的NoSql数据库,redis提供了非常丰富的数据结构,如dict,sds,linkedlist,zipl

2021-05-27 09:44:44 828 2

原创 redis系列(5):redis主从复制

一、复制:1. 主从复制a,方式一、新增 redis6380.conf, 加入 slaveof 192.168.42.111 6379, 在 6379 启动完 后再启 6380,完成配置;b,方式二、redis-server --slaveof 192.168.42.111 6379c,查看状态:info replicationd,断开主从复制:在 slave 节点,执行 6380:>slaveof no onee,断开后再变成主从复制:6380:> slaveof 19

2021-05-27 09:27:57 196

原创 redis系列-redis哨兵安装步骤

Redis哨兵安装步骤----------------------------------之前的redis6379.conf的配置不变,做为主节占,并且复制出两个配置文件redis6380.conf, redis6381.conf,这两个配置文件启动后的redis做为6379节点的从节点。:注意:redis6380.conf和redis6381.conf 加上slaveof 127.0.0.1 6379 修改 requirepass 12345678 ,注释掉bind 1...

2021-05-27 08:56:22 595

原创 redis系列(4):redis单节点配置文件说明

1,在redis.conf第89行,将protected-mode no2,在redis.conf第71行修改下bind 192.168.42.111 (ip为你linux的ip);3,在redis.conf第502行,加上 requirepass "12345678", 登录密码测试:1,启动redis: ./redis-server redis.conf &2, 连接redis: ./redis-cli -h 192.168.42.111 -p 6379 -a 12345...

2021-05-26 17:17:10 382

原创 idea生成实体类

import com.intellij.database.model.DasTableimport com.intellij.database.util.Caseimport com.intellij.database.util.DasUtil/* * Available context bindings: * SELECTION Iterable<DasObject> * PROJECT project * FILES files hel.

2021-05-25 11:22:47 223

原创 kafka系列-ack机制

1.ack机制request.required.acks参数表示的是生产者生产消息时,写入到副本的严格程度,决定了生产者如何在性能和可靠性之间做取舍。acks参数有三个值 :acks为1时(默认),表示数据发送到Kafka后,经过leader成功接收消息的的确认,才算发送成功,如果leader宕机了,就会丢失数据。acks为0时, 表示生产者将数据发送出去就不管了,不等待任何返回。这种情况下数据传输效率最高,但是数据可靠性最低,当 server挂掉的时候就会丢数据;acks为-1/all时,表

2021-05-24 09:59:21 4018

原创 kafka系列(10):Kafka生产者事务和幂等性

1 生产者幂等性1.1 引入幂等性引入目的:生产者重复生产消息。生产者进行retry会产生重试时,会重复产生消息。有了幂等性之后,在进行retry重试时,只会生成一个消息。1.2 幂等性实现1.2.1 PID 和 Sequence Number为了实现Producer的幂等性,Kafka引入了Producer ID(即PID)和Sequence Number。PID。每个新的Producer在初始化的时候会被分配一个唯一的PID,这个PID对用户是不可见的。 Sequence N

2021-05-24 08:22:22 460

原创 kafka系列(09):SpringBoot 中使用@KafkaListener详解与使用

说明从2.2.4版开始,您可以直接在注释上指定Kafka使用者属性,这些属性将覆盖在使用者工厂中配置的具有相同名称的所有属性。您不能通过这种方式指定group.id和client.id属性。他们将被忽略;可以使用#{…​}或属性占位符(${…​})在SpEL上配置注释上的大多数属性。比如:@KafkaListener(id = "consumer-id",topics = "SHI_TOPIC1",concurrency = "${listen.concurrency:3}", .

2021-05-20 10:12:51 10690 1

原创 kafka系列(08):Kafka的消费者

消费者的入门消费者的含义,同一般消息中间件中消费者的概念。在高并发的情况下,生产者产生消息的速度是远大于消费者消费的速度,单个消费者很可能会 负担不起,此时有必要对消费者进行横向伸缩,于是我们可以使用多个消费者从同一个主题读取消息,对消息进行分流。(买单的故事,群组,消费者的一群人, 消费者:买单的,分区:一笔单,一笔单能被买单一次,当然一个消费者可以买多个单,如果有一个消 费者挂掉了,另外的消费者接上)消费者群组Kafka 里消费者从属于消费者群组,一个群组里的消费者订阅的都是同一个.

2021-05-19 14:00:35 766

原创 kafka系列(07):Kafka 的生产者

产者发送消息的基本流程从创建一个 ProducerRecord 对象开始, Producer Record 对象需要包含目标主题和要发送的内容。我们还可以指定键或分区。在发送 ProducerRecord 对象时,生产者要先把键和值对象序列化成字节数组,这样它们才能够在网络上传输。接下来,数据被传给分区器。如果之前在 Producer Record 对象里指定了分区,那么分区器就不会再做任何事情,直接把指定的分区返回。如果没有 指定分区,那么分区器会根据 Producer Record 对象的键

2021-05-19 11:12:56 329

原创 kafka系列(06):Kafka 的集群

为何需要 Kafka 集群本地开发,一台 Kafka 足够使用。在实际生产中,集群可以跨服务器进行负载均衡,再则可以使用复制功能来避免单独故障造成的数据丢失。同时集 群可以提供高可用性。如何估算 Kafka 集群中 Broker 的数量要估量以下几个因素:需要多少磁盘空间保留数据,和每个 broker 上有多少空间可以用。比如,如果一个集群有 10TB 的数据需要保留,而每个 broker 可以存储 2TB,那么 至少需要 5 个 broker。如果启用了数据复制,则还需要一倍的空...

2021-05-19 11:04:45 312

原创 kafka系列(05):Kafka 的安装、管理和配置

kafka 基本的操作和管理##列出所有主题kafka-topics.bat --zookeeper localhost:2181 --list##列出所有主题的详细信息kafka-topics.bat --zookeeper localhost:2181 --describe##创建主题 主题名 my-topic,1 副本,8 分区kafka-topics.bat --zookeeper localhost:2181 --create --topic my-topic --repl

2021-05-19 08:32:48 363 1

sentinel_conf.zip

Redis哨兵安装步骤详见:https://blog.csdn.net/xsxy0506/article/details/117319145

2021-05-27

DES的ECB加密解密汇总.zip

包含C#案例、JAVA案例、js案例、ios案例

2021-02-28

window版redis可视化工具

redis可视化工具,可以直接看到内容 redis-desktop-manager-0.8.8.384.rar

2017-10-28

log4j jar包和配置文件

包括: 1、slf4j-api-1.6.1.jar 2、slf4j-log4j12-1.6.1、 3、org.apache.log4j_1.2.15.v201005080500 4、log4j.properties 5、log4j.xml

2017-10-28

jackson-all-1.8.1.jar

包括:org.json.jar,jackson-mapper-asl-1.8.5.jar,jackson-all-1.8.1.jar jackson、序列化、将实体类Bean转换为json对象的时候过滤null空值;返回JSON去掉Bean中NULL值

2017-10-28

base64包,decodeBase64包,encodeBase64String包

base64包,decodeBase64包,encodeBase64String包 解决问题的

2015-09-18

空空如也

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

TA关注的人

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