![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
中间件
文章平均质量分 71
_chenyl
努力从现在开始
展开
-
Redis中对象
Redis系列文章目录1. 概念2. 类型3. 对象的底层编码3.1 字符串4. 类型检查和命令多态4.1 类型检查的实现4.2 多态命令实现1. 概念Redis使用对象表示数据库键和值,每创建一个键值对,至少创建了两个对象,键对象和值对象。每个对象用redisObject表示,该结构中有三个和保存数据有关的属性type、encoding、ptrtypedef struct redisObject{ //类型 unsigned type:4; //编码 unsigned encoding:4原创 2021-11-08 17:35:06 · 661 阅读 · 0 评论 -
Redis系列
Redis数据持久化Redis集群模式Redis实现分布式锁原创 2021-11-08 15:26:35 · 119 阅读 · 0 评论 -
Redis数据持久化
Redis数据持久化分为RDB和AOF两种方式1. RDB通过保存键值对,是一种压缩后保存在硬盘上的二进制文件,在启动时只要存在rdb文件就加载数据。备份有两种执行方式:手动执行,根据配置定时执行1.1 手动执行通过命令SAVE,整个过程阻塞Redis进程1.2 定期执行通过命令BGSAVE,派生一个子进程执行保存工作,伪代码如下:def SAVE(): #保存rdb文件 rdbSave() def BGSAVE(): #创建子进程 pid = fock() if pid == 0原创 2021-11-05 18:58:11 · 296 阅读 · 0 评论 -
Redis实现分布式锁
1. 基于setnx命令实现加锁:setnx(lock_key,val),根据返回结果若值设置成功,则key不存在,加锁成功,反之key已经存在,加锁失败。解锁:del(lock_key)死锁问题:线程1获取锁成功,在未执行完任务时挂掉,没有显示的释放锁,那么其它线程就永远无法获取改锁造成死锁。所以需要设置过期时间,可以利用expire命令,但是setnx和expire命令是两个动作无法保证加锁操作原子性。还有个问题,假设线程1设置锁成功,但是任务没有执行完时锁已经超时,此时线程2抢占了锁,然后线原创 2021-11-05 11:25:28 · 253 阅读 · 0 评论 -
Redis集群模式
1. 主从模式最简单的一种集群方式,集群中分为master数据库和slave数据库,master可以提供读写服务,slave只能提供读服务,所以一单master关掉之后,集群就变成了了只读服务了2. 哨兵(sentinel)模式由于主从模式存在一大弊端,主节点挂掉之后无法对外提供写服务,哨兵模式出现了。哨兵模式由哨兵集群和redis集群组成,特点是:哨兵集群只负责监控redis集群,不提供读写服务当master挂掉时,sentinel会选举一个新的master,此时服务会停顿客户端只需要连接原创 2021-11-04 17:28:38 · 388 阅读 · 0 评论 -
Java中高级问题整理-中间件
本系列目录文章目录Redis哨兵模式1. 哨兵模式搭建2. Java中使用哨兵模式redis使用场景你知道redis哪些高级功能?为什么要使用消息中间件MQAMQP messaging 中的基本概念Kafka特点Kafka使用场景kafka中的 zookeeper 起到什么作用kafka启动了一个broker,可以设置多个partition吗?可以设置多个副本吗?为什么为什么要使用Elasticsearch?全文搜索(Full-text Search)倒排索引(Inverted Index)ES基本概念E原创 2021-11-02 09:30:43 · 935 阅读 · 0 评论 -
数据预览监控工具Grafana的安装和使用
xxxx[smtp]enabled = truehost = smtp.163.com:465user = chenyulin1688@163.compassword = WFUUWPATMSPQXCSAskip_verify = truefrom_address = chenyulin1688@163.comfrom_name = chenyulinehlo_identity =原创 2020-08-19 13:16:20 · 208 阅读 · 0 评论 -
Solr7.5安装和使用详细教程(单机版)
一、安装官网下载地址。解压下载的压缩包即可完成Solr安装。打开DOS,路径切换至solr_home\bin,执行命令:solr start –p 8888,将solr在8888端口运行,看到以下图片就证明solr启动成功了。(Solr默认端口为8983)solr常用命令solr start –p p_num 启动solrsolr restart –p p_num 重启sol...原创 2018-11-22 17:24:57 · 7370 阅读 · 10 评论 -
Elasticsearch环境搭建
1. 官网下载Elasticsearch点击下载,开箱即用启动后访问:http://localhost:9200,出现以下界面就安装成功2. 跨域配置在elasticsearch配置文件elasticsearch.yml 中添加以下配置# 开启跨域http.cors.enabled: true# 允许所有客户端跨域http.cors.allow-origin: "*"3. 安装可视化界面工具elasticsearch head安装node环境,点击下载node为node安装淘原创 2020-07-23 21:18:15 · 166 阅读 · 0 评论 -
(七)ElasticSearch删除数据
删除文档、删除索引(1)利用Postman删除文档(2)利用head插件删除索引操作book索引已经不见了(3)利用Postman删除索引删除索引会清空所有数据,所以删除索引操作超级危险,不要轻易删除索引。原创 2017-10-16 21:33:57 · 2848 阅读 · 0 评论 -
(一)ElasticSearch单实例安装
elasticsearch安装:1 去官方找到下载地址,下载导linux本地2 解压:tar -vxf 包3 启动:进入解压后目录: sh ./bin/elasticsearch界面插件head的安装:1 进入github,搜索elasticsearch-head2 选择mobz开头的,在linux下载zip格式文件至本地3 unzip filename.zip4原创 2017-10-12 23:18:06 · 533 阅读 · 0 评论 -
(三) ElasticSearch基础知识
结合ElasticSearch的api:{"name" : "master","cluster_name" : "chenyulin","cluster_uuid" : "mICgsP3OTKC-oNpcJTQiAQ","version" : {"number" : "5.6.3","build原创 2017-10-13 16:09:59 · 656 阅读 · 0 评论 -
(五)ElasticSearch插入数据
分类:分为指定文档id插入、自动产生文档id插入两类。(文档id是唯一索引指,指向索引数据)1 自己指定id点击send,查看响应结果 查看插入得效果 点击数据浏览 2 es产生文档id 响应结果 es中查看原创 2017-10-15 14:23:41 · 4200 阅读 · 0 评论 -
(四)ElasticSearch索引创建
RESTFul API格式:http://:/索引>/类型>/文档id>常用动词:GET/PUT/POST/DELETE索引创建:非结构化创建、结构化创建非结构化创建粗片框是主分片,细线框是备份分片一一对应。如何区分结构化与非结构化索引如何创建结构化索引1点击复合查询2输入book原创 2017-10-15 13:31:22 · 681 阅读 · 0 评论 -
(九)ElasticSearch高级查询语法
一 子条件查询:特定字段查询所指特定值。分为:Query context和Filter context1 Query context概念:在查询中,除了判断文档是否满足查询条件外,ES还会计算一个_score来标识匹配的程度,旨在判断目标文档和查询条件匹配有多好;常用的查询有:全文本查询-针对文本类型数据。字段级别查询-针对结构化数据,如数字、日期等。1-1全文本查询:分类原创 2017-10-17 15:56:39 · 5290 阅读 · 0 评论 -
(八)ElasticSearch常用查询语法
简单查询、条件查询、聚合查询(1)创建book索引代码:{ "settings":{ "number_of_shards":3, "number_of_replicas":1 }, "mappings":{ "novel":{ "properties":{ "word_count":{ "type":"integer" },原创 2017-10-17 00:16:07 · 8948 阅读 · 0 评论 -
(二)ElasticSearch 分布式安装
3个节点,1个master2个slave,端口为9200,8200,8000。配置master1 进入需要设置为master的主目录,修改config/elasticsearch.yml文件2 在最后面指定集群名字:cluster.name: chenyulin3 指定master名字:node.name: master4 确定指挥官身份:node.master: true原创 2017-10-13 15:07:36 · 501 阅读 · 0 评论 -
npm install 安装phantomjs时npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! phantomjs-prebuilt@2.1.15
npm ERR! code ELIFECYCLEnpm ERR! errno 1npm ERR! phantomjs-prebuilt@2.1.15 install: `node install.js`npm ERR! Exit status 1npm ERR!npm ERR! Failed at the phantomjs-prebuilt@2.1.15 install原创 2017-10-13 10:43:47 · 11532 阅读 · 2 评论 -
Ubuntu中启动ElasticSearch报错:max virtual memory areas vm.max_map_count [65530] is too low, increase to a
1 sudo gedit /etc/sysctl.conf2 在该文件任意地方加入:vm.max_map_count=6553603 sudosysctl -p4 重启ES原创 2017-10-17 17:13:05 · 2259 阅读 · 0 评论 -
(六)ElasticSearch修改数据
方式:直接修改、通过脚本修改直接修改(1)修改id为1的数据(2)查看 脚本修改其它方式注入参数原创 2017-10-16 17:18:24 · 1256 阅读 · 0 评论 -
(十)ElasticSearch源码地址
https://gitee.com/luckycyl/ElasticSearchDemo原创 2017-10-19 09:26:26 · 397 阅读 · 0 评论 -
ActiveMQ和JMS介绍和简单的使用
1 介绍1.1 ActiveMQActiveMQ是Apache提供的开源的消息系统,纯Java实现,因此很好的支持J2EE提出的JMS规范。1.2 JMS1.2.1 概念JMS(Java Message Service,即Java消息服务)是一组Java应用程序接口和相应的语法,类似于JDBC,是一组与厂商无关的API,使Java程序能与不同的厂商消息组件进行通信。消息发送异步进行,无...原创 2019-04-22 15:18:41 · 531 阅读 · 0 评论 -
Kafka入门到进阶
概念Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。 对于像Hadoop一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理原创 2020-05-21 08:34:28 · 659 阅读 · 0 评论 -
Kafka安装,SpringBoot整合Kafka实现日志收集附源码
一、Kafka安装点击下载地址解压,进入windows目录,启动文件都在这个目录下。二、启动服务没有java环境先安装java。1、启动ZooKeeper进入D:\my_software\kafka_2.13-2.4.1\bin\windows目录,右键打开PowerShell,输入命令.\zookeeper-server-start.bat ..\..\config\zoo...原创 2020-04-13 09:35:45 · 1421 阅读 · 0 评论 -
springboot RabbitMQ TLS/SSL windows配置
一定要注意erlang和rabbitmq的版本配套,查看配套下载rabbitmq早起版本要去github,网速不是很好,可以直接下载:windows地址:https://github.com/rabbitmq/rabbitmq-server/releases/download/vversion/rabbitmq−server−{version}/rabbitmq-server-version/rabbitmq−server−{version}.exe,如:https://github.com/ra.原创 2021-10-14 16:53:26 · 1458 阅读 · 0 评论 -
分布式事务框架seata快速入门-seata的使用(二)
1. 引入依赖<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-seata</artifactId></dependency>2. 配置bootstrap.yml加入以下配置seata: enabled: true service: #business-servi原创 2021-06-18 14:23:16 · 364 阅读 · 0 评论 -
分布式事务框架seata快速入门-seata的搭建(一)
Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。1 安装下载安装包:点击下载上传到linux,解压,解压后目录:bin conf lib LICENSE logsbin: 存放启动脚本conf: 存放配置文件logs: 存放日志2 修改配置文件修改file.conf这里设置seata存储模式为db,即数据库,同时修改数据库配置,将原创 2021-06-17 17:57:08 · 1323 阅读 · 6 评论 -
Kafka常见的问题
1. Consumer的容灾能力是怎样体现的?会带来什么问题?容灾能力:pull拉取消息,并且保存消费具体位置,当消费者宕机恢复上线时可以根据之前保存的消费位置重新进行消费,消息不会丢失。带来的问题:当Consumer消费了消息,但是在保存消费位置的前一瞬间宕机了,重启服务时就会接着上次保存的位置重新消费,造成消息重复消费2. Kafka中的角色若干procuer若干consumer若干broker一个zookeeper集群3. 主题和分区关系时怎样的?同一主题在不同分区保存的消息一样吗原创 2021-04-14 10:17:42 · 97 阅读 · 0 评论 -
kafka发送消息时弄丢消息怎么办
1. 调整producer的消息确认参数“acks”acks为1时表示只保证leader写入成功,假如leader写入成功后还未将消息同步到follower副本便发生崩溃,会造成消息丢失acks为0时表示生产者只管发送,不管broker是否收到消息,消息丢失概率更大acks设置为-1或者all表示leader以及所有副本都要写入成功,此种情况下还可能会丢失,如果min.insync.replicas参数值为1的话,此时ISR只有一个leader副本,此时和acks为1的效果一样。综上,如果要保原创 2021-04-12 16:39:26 · 120 阅读 · 0 评论 -
Kafka 消息丢失和消息重复消费
producer 的acks参数值设置为‘0’或者‘1’,不等待服务器确认或者只让leader确认解决方法:将acks的值设置为all或者-1,让leader和followers全部进行确认producer 没有设置失败重试解决方法:根据实际场景将retries参数值设置为正整数consumer poll到消息后还未来的及完全消费,便已经提交解决方法:这种情况是在自动提交的情况下发生的,如果enable.auto.commit值为true,可以根据实际场景将auto.commit..原创 2020-09-10 11:38:05 · 1726 阅读 · 0 评论 -
Kafka-2.6.0之Consumer
1. 偏移量和消费者位置(Offsets and Consumer Position)Kafka为每个分区(Partition)中每条记录保存一个偏移量(Offset ),offset是记录在分区中的唯一标识,也表示消费者(consumer)在分区中的位置(position)。例如:一个offset 在5的消费者,已经消费了0到4的记录,它的下个消费记录就是5。消费者位置给出了下一个偏移量的大小(在消费者现在处于分区中的位置大小加1),偏移量将在每次调用poll(Duration)方法时更新(当该方法返原创 2020-09-10 11:09:01 · 344 阅读 · 0 评论 -
Kafka-2.6.0之Producer
1. 简单请求,异步Properties props = new Properties();props.put("bootstrap.servers", "localhost:9092");props.put("acks", "all");props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");props.put("value.serializer", "org.apache.kaf原创 2020-09-09 14:25:24 · 180 阅读 · 0 评论 -
Zookeeper
Zookeeper是什么Zookeeper是一个高性能分布式应用协调服务,主要有以下功能:Naming Service配置管理Leader Election服务发现同步Group ServiceBarrier分布式队列两阶段提交Zookeeper工作方式Zookeepe集群包含 1 个Leader,多个Follower所有的Follower都可提供读服务所有的写搡作都会被forward到LeaderClient 与 Server通过NIO通信。全局串行化所有的写操作原创 2020-05-22 08:15:50 · 249 阅读 · 0 评论