自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(199)
  • 问答 (1)
  • 收藏
  • 关注

原创 搭建MySQL高可用架构集群环境(4台主机,1主、2从、1 MHA)

1. 集群架构要求1主,2从,1MHA首先实现一主两从的同步复制功能(采用半同步复制机制及并行复制)先查询主从库数据主库添加数据后,再次查询主从库数据查看log,是否显示半同步然后采用MHA实现主机出故障,从库能自动切换功能关闭主服务器,查看MHA服务器是否正常切换在切换后的主节点机器上查看状态展示效果在切换后的主节点机器数据库添加数据,分别查询主从库数据一致2. 环境软件版本及机器介绍centos-7.6mysql-5.7.31角色作用ip

2020-09-18 16:18:32 1214 1

原创 Gitee(码云)、Github同时配置ssh key

gitee github ssh key

2022-07-20 19:31:18 595 1

原创 Mac 安装 MAT内存分析工具

Mac 安装 MAT 内存分析工具

2022-03-15 14:52:23 4009

原创 iterm2 快捷使用及连接远程服务器

1. iterm2 安装下载地址:https://iterm2.com/downloads.htmliTerm2 官网:https://iterm2.com/iTerm2 是一款完全免费,专为 Mac OS 用户打造多命令行应用。安装完成后,在/bin目录下会多出一个zsh的文件。Mac系统默认使用dash作为终端,可以使用命令修改默认使用zsh:chsh -s /bin/zsh如果想修改回默认dash,同样使用chsh命令即可:chsh -s /bin/bashZsh 是一款强大的虚拟终端,

2021-05-31 14:19:45 2421 2

原创 Mac 每次都要执行source ~/.bash_profile 后,配置的环境变量才生效(maven配置重启终端不生效)

问题:自己在 ~/.bash_profile 中配置环境变量, 可是每次重启终端后配置不生效.需要重新执行 : $source ~/.bash_profile后,才会生效。原因:自己是在bash中配置的环境变量,而当前系统是使用的是shell查看当前使用的shell,终端输入:echo $SHELL输出是/bin/zsh,说明使用的是zsh,就会出现这个问题,如果是/bin/bash 就没有这个问题解决办法:在.zshrc文件加中添加source ~/.bash_profile,方法如下进入主.

2021-04-10 16:53:11 2110 5

原创 闪送、水滴筹、美团、京东、百度java面试题总结

新奥集团spring ioc 的原理,bean的作用域spring Cloud 的核心组件zk的选举机系统的高并发处理项目中系统安全的控制dubbo和spring cloud的区别spring拦截器和过滤器的区别分布式锁redis 实现innodb和myisam区别Innodb 索引底层的数据结构服务熔断限流如何实现jvm有哪几种垃圾回收机制,怎么回收的elasticSearch索引机制闪送redis锁是如何实现的,为什么要用redis锁,如何优化,能不能不用redis锁

2021-04-08 20:18:34 627

原创 Kubernetes安装之centos7系统配置

1. 关闭防火墙systemctl stop firewalldsystemctl disable firewalld2. 关闭selinuxsed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinuxsetenforce 0 3. 网桥过滤vi /etc/sysctl.confnet.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call

2020-12-03 14:20:24 157

原创 配置阿里云yum源

下载安装wgetyum install -y wget备份默认的yummv /etc/yum.repos.d /etc/yum.repos.d.backup设置新的yum目录mkdir -p /etc/yum.repos.d下载阿里yum配置到该目录中,选择对应版本wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo更新epel源为阿里云epel源.

2020-12-03 11:54:12 366

原创 使用DockerFile构建镜像并搭建 swarm+compose集群

1. 需求如上图所示:Hot是应用程序(springboot),打成jar包:Hot.jar利用dockerfile将Hot.jar构建成镜像lgedu/hot:1.0构建Swarm 集群在 Swarm 集群中使用 compose 文件 (docker-compose.yml) 来配置、启动多个服务 包括: Mysql、Redis以及应用程序Hot2. dockerFile构建镜像2.1 CentOS镜像模版vim dockerfile-centos# 依据哪个镜像创建 From

2020-11-29 21:01:58 488 1

原创 Docker 私有仓库 Harbor 搭建及使用

1. 简介Harbor(港湾),是一个用于存储和分发Docker镜像的企业级Registry服务器 以前的镜像私有仓库采用官方的Docker Registry,不便于管理镜像。Harbor是由VMWare在Docker Registry的基础之上进行了二次封装,加进去了很多额外程序,而且提供了 一个web界面。其主要组件如下图:主要组件包括: proxy,他是一个nginx前端代理,主要是分发前端页面ui访问和镜像上传和下载流量 ui提供了一个web管理页面,当然还包括了一个前端页面和后端API,底

2020-11-27 17:35:30 373

原创 Docker Compose 使用

1. 简介我们知道使用一个Dockerfile模板文件,可以很方便地定义一个单独的应用容器。然 而,在日常工作中, 经常会碰到需要多个容器相互配合来完成某项任务的情况。例如要实现一个Web 项目,除了Web服务容器本身,往往还需要再加上后端的数据库服务容器,甚至还包括负载均衡容器 等。Compose定位是“定义和运行多个Docker容器的应用”,它允许用户通过一个单独的docker- compose.yml模板文件(YAML格式)来定义一组相关联的应用容器为一个项目(project)。2. Compo

2020-11-27 15:17:24 307

原创 Docker Swarm集群管理

文章目录1. 简介2. 架构3. Swarm的核心概念2.1 集群2.2 节点2.3 服务和任务2.4 负载均衡4. Swarm的工作模式4.1 node4.2 Service4.3 任务与调度4.4 服务副本与全局服务5. Swarm的调度策略6. Swarm Cluster模式特性7. Swarm安装8. Swarm集群搭建8.1 创建新集群8.2 查看集群状态和节点信息8.3 添加工作节点到集群8.4 更改节点的availablity状态8.5 发布服务到集群8.6 在Swarm中动态扩展服务(sca

2020-11-27 13:20:53 398 1

原创 Docker操作命令示例

文章目录1. 镜像1.1 获取镜像1.2 查看镜像信息1.3 添加镜像标签1.4 查看镜像详细信息1.5 搜寻镜像1.6 删除镜像1.7 上传镜像2. 容器2.1 创建容器2.2 启动容器2.3 查看容器状态2.4 新建并启动容器2.5 终止容器2.6 进入容器2.7 查看容器2.8 删除容器3. 仓库3.1 登录仓库3.2 退出仓库3.3 认证文件1. 镜像1.1 获取镜像从 Docker 镜像仓库获取镜像的命令是 docker pull 。其命令格式为: docker pull [选项] [Do

2020-11-25 17:23:36 309

原创 Docker 镜像加速器配置

1. 简介国内从 Docker Hub 拉取镜像有时会遇到困难,此时可以配置镜像加速器。Docker 官方和国 内很多云服务商都提供了国内加速器服务,例如:Docker 官方提供的中国 registry mirror https://registry.docker-cn.com七牛云加速器 https://reg-mirror.qiniu.com/当配置某一个加速器地址之后,若发现拉取不到镜像,请切换到另一个加速器地址。国内各大云服务商均提供了 Docker 镜像加速服务,建议根据运行 Doc

2020-11-25 16:15:01 764

原创 CentOS 安装 Docker CE

警告:切勿在没有配置 Docker YUM 源的情况下直接使用 yum 命令安装 Docker.1. 系统要求Docker CE 支持 64 位版本 CentOS 7,并且要求内核版本不低于 3.10。 CentOS 7 满足最低 内核的要求,但由于内核版本比较低,部分功能(如 overlay2 存储层驱动)无法使用,并 且部分功能可能不太稳定。2. 卸载历史版本旧版本的 Docker 称为 docker 或者 docker-engine ,使用以下命令卸载旧版本:#查看安装$ sudo yum

2020-11-25 15:58:26 83

原创 使用 BulkProcessor 批量导入mysql数据到Elasticsearch

1. pom文件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.o

2020-11-24 18:59:37 788 1

原创 Elasticsearch 分布式集群调优策略

1. Index(写)调优1.1 副本数置0如果是集群首次灌入数据,可以将副本数设置为0,写入完毕再调整回去,这样副本分片只需要拷 贝,节省了索引过程。PUT /my_temp_index/_settings {"number_of_replicas": 0 }1.2 自动生成doc ID通过Elasticsearch写入流程可以看出,如果写入doc时如果外部指定了id,则Elasticsearch会先尝试 读取原来doc的版本号,以判断是否需要更新。这会涉及一次读取磁盘的操作,通过自动生

2020-11-23 17:07:45 255

原创 Elasticsearch 集群规划

1. 我们需要多大规模的集群需要从以下两个方面考虑:当前的数据量有多大?数据增长情况如何?你的机器配置如何?cpu、多大内存、多大硬盘容量?推算的依据:Elasticsearch JVM heap 最大可以设置32G 。30G heap 大概能处理的数据量 10 T。如果内存很大如128G,可在一台机器上运行多个ES节点实例。备注:集群规划满足当前数据规模+适量增长规模即可,后续可按需扩展。两类应用场景:A. 用于构建业务搜索功能模块,且多是垂直领域的搜索。数据量级几千万到数十亿级别。

2020-11-23 16:47:32 385

原创 Elasticsearch集群环境搭建

1. 简介此处搭建一个三个节点的集群环境,为了学习方便,我这边只在一台服务器上来演示主从环境。如果是虚拟机,调整虚拟机内存到3g以上操作系统服务器ip端口号是否能成为主节点centos7192.168.211.1369200是centos7192.168.211.1369201是centos7192.168.211.1369202是2. 核心概念2.1 集群(Cluster)一个Elasticsearch集群由多个节点(Node)组成,每个

2020-11-23 15:25:58 274

原创 Elasticsearch安装部署

1. 下载https://www.elastic.co/cn/downloads/elasticsearch2. 上传至服务器解压并重命名#上传scp elasticsearch-6.2.2.tar.gz root@ip://usr/local/#解压tar -zxvf elasticsearch-6.2.2.tar.gz#重命名mv elasticsearch-6.2.2 elasticsearch3. 修改配置文件并启动编辑elasticsearch.yml ,注意冒号后面有个空

2020-11-23 13:30:04 214

原创 RocketMQ秒杀设计

1. 需求基于RocketMQ设计秒杀。要求如下秒杀商品,数量100个。秒杀商品不能超卖。抢购链接隐藏Nginx+Redis+RocketMQ+Tomcat+MySQL流程图如下:2.实现代码项目地址:https://gitee.com/rppzpy/rocketmq_homework.git3. nginx配置项目实际端口9099,nginx通过test.rpp.com跳转http配置server { listen 80; server_name

2020-11-17 19:16:37 734

原创 RocketMQ集群搭建及配置

1 集群搭建1.1 单Master模式这种方式风险较大,一旦Broker重启或者宕机时,会导致整个服务不可用。不建议线上环境使用,可以用于本地测试。1)启动 NameServer### 首先启动Name Server$ nohup sh mqnamesrv & ### 验证Name Server 是否启动成功$ tail -f ~/logs/rocketmqlogs/namesrv.logThe Name Server boot success...2)启动 Broker

2020-11-16 21:46:01 887

原创 RocketMQ 事务消息详解

1. 事务消息简介RocketMQ的事务消息,是指发送消息事件和其他事件需要同时成功或同时失败。比如银行转账, A银行的某账户要转一万元到B银行的某账户。A银行发送“B银行账户增加一万元”这个消息,要和“从A银 行账户扣除一万元”这个操作同时成功或者同时失败。RocketMQ采用两阶段提交的方式实现事务消息,TransactionMQProducer处理上面情况的流程 是,先发一个“准备从B银行账户增加一万元”的消息,发送成功后做从A银行账户扣除一万元的操作,根 据操作结果是否成功,确定之前的“准备从B

2020-11-16 17:03:37 1030

原创 RocketMQ 消息过滤

1. 简介RocketMQ分布式消息队列的消息过滤方式有别于其它MQ中间件,是在Consumer端订阅消息时 再做消息过滤的。RocketMQ这么做是在于其Producer端写入消息和Consumer端订阅消息采用分离存储的机制来实 现的,Consumer端订阅消息是需要通过ConsumeQueue这个消息消费的逻辑队列拿到一个索引,然 后再从CommitLog里面读取真正的消息实体内容,所以说到底也是还绕不开其存储结构。其ConsumeQueue的存储结构如下,可以看到其中有8个字节存储的Messa

2020-11-16 16:18:09 229

原创 RocketMQ批量消息样例

批量发送消息能显著提高传递小消息的性能。限制是这些批量消息应该有相同的topic,相同的waitStoreMsgOK,而且不能是延时消息。此外,这一批消息的总大小不应超过4MB。1 发送批量消息如果您每次只发送不超过4MB的消息,则很容易使用批处理,样例如下:String topic = "BatchTest";List<Message> messages = new ArrayList<>();messages.add(new Message(topic, "TagA",

2020-11-16 16:05:17 100

原创 RocketMQ延时消息样例

1 简介定时消息(延迟队列)是指消息发送到broker后,不会立即被消费,等待特定时间投递给真正的 topic。 broker有配置项messageDelayLevel,默认值为“1s 5s 10s 30s 1m 2m 3m 4m 5m 6m 7m 8m 9m 10m 20m 30m 1h 2h”,18个level。可以配置自定义messageDelayLevel。注意, messageDelayLevel是broker的属性,不属于某个topic。发消息时,设置delayLevel等级即可: msg.s

2020-11-16 15:47:55 271

原创 RocketMQ 发送顺序消息样例

消息有序指的是可以按照消息的发送顺序来消费(FIFO)。RocketMQ可以严格的保证消息有序,可以分为分区有序或者全局有序。顺序消费的原理解析,在默认的情况下消息发送会采取Round Robin轮询方式把消息发送到不同的queue(分区队列);而消费消息的时候从多个queue上拉取消息,这种情况发送和消费是不能保证顺序。但是如果控制发送的顺序消息只依次发送到同一个queue中,消费的时候只从这个queue上依次拉取,则就保证了顺序。当发送和消费参与的queue只有一个,则是全局有序;如果多个queue参

2020-11-16 14:50:48 179

原创 RocketMQ消息发送与消费示例

1.1 加入依赖:maven:<dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-client</artifactId> <version>4.3.0</version></dependency>gradlecompile 'org.apache.rocketmq:rocketmq-c

2020-11-16 11:51:57 616

原创 RocketMQ-Broker配置参数

#接受客户端连接的监听端口,默认10911listenPort=10911#name server服务器地址及端口,可以是多个,分号隔开namesrvAddr=192.168.1.100:9876#当前 broker 监听的 IP,默认值 网卡的 InetAddress brokerIP1=#存在主从 broker 时,如果在 broker 主节点上配置了 brokerIP2 属性,broker 从节点会连接主节点配置的 brokerIP2 进行同步brokerIP2=跟 brokerI

2020-11-16 11:25:01 1144

转载 RocketMQ架构设计

架构设计1 技术架构RocketMQ架构上主要分为四部分,如上图所示:Producer:消息发布的角色,支持分布式集群方式部署。Producer通过MQ的负载均衡模块选择相应的Broker集群队列进行消息投递,投递的过程支持快速失败并且低延迟。Consumer:消息消费的角色,支持分布式集群方式部署。支持以push推,pull拉两种模式对消息进行消费。同时也支持集群方式和广播方式的消费,它提供实时消息订阅机制,可以满足大多数用户的需求。NameServer:NameServer是一

2020-11-11 16:40:47 104

转载 RocketMQ特性

特性(features)1 订阅与发布消息的发布是指某个生产者向某个topic发送消息;消息的订阅是指某个消费者关注了某个topic中带有某些tag的消息,进而从该topic消费数据。2 消息顺序消息有序指的是一类消息消费时,能按照发送的顺序来消费。例如:一个订单产生了三条消息分别是订单创建、订单付款、订单完成。消费时要按照这个顺序消费才能有意义,但是同时订单之间是可以并行消费的。RocketMQ可以严格的保证消息有序。顺序消息分为全局顺序消息与分区顺序消息,全局顺序是指某个Topic下的所有消

2020-11-11 15:52:20 84

转载 RocketMQ基本概念

基本概念1 消息模型(Message Model)RocketMQ主要由 Producer、Broker、Consumer 三部分组成,其中Producer 负责生产消息,Consumer 负责消费消息,Broker 负责存储消息。Broker 在实际部署过程中对应一台服务器,每个 Broker 可以存储多个Topic的消息,每个Topic的消息也可以分片存储于不同的 Broker。Message Queue 用于存储消息的物理地址,每个Topic中的消息地址存储于多个 Message Queue 中

2020-11-11 15:49:47 77

原创 RocketMQ 整合 SpringBoot 实战案例

1. MqProducerpublic class MqProducer { private static Logger logger = LoggerFactory.getLogger(MqProducer.class); /** * 分组名称 */ private String groupName; private DefaultMQProducer producer; public MqProducer(String groupN

2020-11-11 15:26:45 560

原创 RocketMQ单机环境搭建

1. 下载官网下载地址:http://rocketmq.apache.org/release_notes/#wget方式下载wget https://mirrors.bfsu.edu.cn/apache/rocketmq/4.7.1/rocketmq-all-4.7.1-bin-release.zip此处下载官网zip文件的最新版本,如下2. 上传服务并解压上传scp rocketmq-all-4.7.1-bin-release.zip root@ip:/usr/local/soft

2020-11-11 14:40:41 139

原创 Kafka基于nginx_kafka_module 收集日志

1. 需要收集的信息1、用户ID(user_id)2、时间(act_time)3、操作(action,可以是:点击:click,收藏:job_collect,投简历:cv_send,上传简历:cv_upload)4、对方企业编码(job_code)2. 工作流程1、HTML可以理解为拉勾的职位浏览页面2、用户的操作会由Web服务器进行响应。3、同时用户的操作也会使用ajax向Nginx发送请求,nginx用于收集用户的点击数据流。4、Nginx收集的日志数据使用ngx_kafka_modu

2020-11-09 14:27:55 703 4

原创 Kafka集群搭建

搭建zookeeper集群参考:https://blog.csdn.net/rzpy_qifengxiaoyue/article/details/107879124创建集群安装目录mkdir -p /usr/local/kafka_cluster上传并解压Kafka# 解压到/opttar -zxf kafka_2.12-1.0.2.tgz -C /usr/local/kafka_cluster#文件夹重命名mv kafka_2.12-1.0.2 kafka01# 复制两.

2020-11-08 21:08:49 78

原创 Kafka消费者流程分析

文章目录1. 消费者、消费组2. 消费再均衡及心跳机制3. 消费者参数配置4 消息订阅5. 反序列化6. 位移提交6.1 自动提交6.2 手动同步提交6.3 手动异步提交7. 消费者位移管理8. 消费者拦截器9. 消费组管理9.1 消费者组特性9.2 如何进行组内分区分配?9.3 谁来执行再均衡和消费组管理?9.4 如何确定coordinator?9.5 Rebalance Generation9.6 协议(protocol)9.7 liveness9.8 再均衡过程9.9 消费组状态机1. 消费者、

2020-11-06 18:14:14 1014

原创 Kafka 生产者消息发送流程

1. 数据生产流程解析Producer创建时,会创建一个Sender线程并设置为守护线程。生产消息时,内部其实是异步流程;生产的消息先经过拦截器->序列化器->分区器,然后将消息缓存在缓冲区(该缓冲区也是在Producer创建时创建)。批次发送的条件为:缓冲区数据大小达到batch.size或者linger.ms达到上限,哪个先达到就算哪个。批次发送后,发往指定分区,然后落盘到broker;如果生产者配置了retrires参数大于0并且失败原因允许重试,那么客户端内部会对该消息进行重

2020-11-06 14:07:27 1448 2

原创 Kafka核心概念

文章目录1. Producer 生产者2. Consumer 消费者3. Broker4. Topic 主题5. Partition 主题分区6. Replicas 主题副本7. Offset 消息偏移量8. 副本8.1 AR8.2 ISR8.3 OSR8.4 HW8.5 LEO1. Producer 生产者生产者创建消息。该角色将消息发布到Kafka的topic中。broker接收到生产者发送的消息后,broker将该消息追加到当前用于追加数据的 segment 文件中。一般情况下,一个消息会被发

2020-11-06 11:05:53 133

原创 RabbitMQ消息可靠性解决方案

1. 解决方案客户端代码中的异常捕获,包括生产者和消费者AMQP/RabbitMQ的事务机制发送端确认机制消息持久化机制Broker端的高可用集群消费者确认机制消费端限流消息幂等性2. 异常捕获机制先执行业务操作,业务操作成功后执行消息发送,消息发送过程通过try catch 方式捕获异常, 在异常处理理的代码块中执行行回滚业务操作或者执行行重发操作等。这是一种最大努力确保的方式, 并无法保证100%绝对可靠,因为这里没有异常并不代表消息就一定投递成功。boolean result

2020-10-28 23:05:44 946 1

空空如也

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

TA关注的人

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