自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 03-Kafka之基本概念

Kafka是最初由Linkedin公司开发,是一个分布式、支持分区的、多副本的,基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于hadoop的批处理系统、低延迟的实时系统、Storm/Spark流式处理引擎,web/nginx日志、访问日志,消息服务等等,用scala语言编写,Linkedin于2010年贡献给了Apache基金会并成为顶级开源项目。kafka的性能与保留的消息数据量大小没有关系,因此保存大量的数据消息日志信息不会有什么影响。

2022-08-21 16:09:56 1222 1

原创 02-Kafka之server.properties核心配置详解

三、zookeeper相关配置。一、Broker相关配置。二、Topic相关配置。

2022-08-21 16:07:48 4555

原创 01-Kafka之单机和集群安装

如果有在总体上保证消费顺序的需求,可以通过将topic的partition数量设置为1,将consumer group中的consumer instance数量也设置为1,但是这样会影响性能,所以kafka的顺序消费很少用。consumer group中的consumer instance的数量不能比一个Topic中的partition的数量多,否则多出来的consumer消费不到消息,产生浪费。单播消费:一条消息只能被某一个消费者消费的模式,类似queue模式,只需让所有消费者在同一个消费组里即可。

2022-08-21 16:06:17 1452

原创 08-RabbitMQ使用中的常见问题

一、RabbitMQ如何保证消息不丢失二、RabbitMQ如何保证消息幂等性三、RabbitMQ如何保证消息的顺序四、RabbitMQ的数据堆积问题五、RabbitMQ的备份与恢复六、RabbitMQ的性能监控七、搭建HAProxy,实现高可用集群......

2022-08-11 23:24:41 883

原创 07-RabbitMQ之SpringCloudStream集成

SpringCloudStream是一个构建高扩展和事件驱动的微服务系统的框架,用于连接共有消息系统,整体上是把各种MQ产品抽象成了一套非常简单的统一的编程框架,以实现事件驱动的编程模型。社区官方实现了RabbitMQ,Apache Kafka,Kafka Stream和Amazon Kinesis等产品,RocketMQ需要产品方自行提供扩展实现。...

2022-08-11 23:20:59 391

原创 06-RabbitMQ之SpringBoot使用

由于SpringBoot官方支持RabbitMQ,所以RabbitMQ与SpringBoot的集成是非常简单的。不过SpringBoot集成RabbitMQ的方式是按照Spring的一套统一的MQ模型创建的,因此SpringBoot集成插件中对于生产者、消息、消费者等重要的对象模型,与RabbitMQ原生的各个组件有对应关系,但是并不完全相同。...

2022-08-11 23:20:11 271

原创 05-RabbitMQ之原生API使用

使用RabbitMQ提供的原生客户端API进行交互一、Maven依赖二、创建连接以及声明队列1、首先创建连接,获取Channel2、声明queue队列三、Producer根据应用场景发送消息到queue四、Consumer消费消息五、关闭连接,释放资源...

2022-08-11 23:19:12 566

原创 04-RabbitMQ之编程模型

一、编程模型1、Hello World2、Work Queues3、Publish/Subscribe4、Routing5、Topics6、RPC7、Publisher Confirms

2022-08-06 17:43:16 258

原创 03-RabbitMQ之基础概念

一、RabbitMQ基础概念1、虚拟主机virtual host2、连接Connection3、信道Channel4、交换机Exchange5、队列Queue(1)Classic经典队列(2)Quorum仲裁队列(3)Stream队列

2022-08-04 18:02:15 641

原创 01-MQ介绍以及产品比较

一、消息中间件介绍1、什么是MQ?为什么要用MQ?2、MQ的优点3、MQ的缺点4、消息中间件的组成5、消息中间件模式分类二、几大MQ产品特点比较

2022-08-01 21:35:48 445

原创 02-RabbitMQ之Docker安装Rabbit单机与集群

docker安装单机rabbitdocker安装rabbit集群

2022-08-01 20:42:24 420

原创 Mysql数据库架构介绍

一、Mysql单例数据库架构1、Mysql体系介绍2、SQL运行过程3、InnoDB内存和存储结构4、TableSpace5、Page6、InnoDB线程模型7、备份机制二、Mysql数据复制1、Mysql数据复制原理2、Mysql复制架构3、Mysql复制模式三、Mysql高可用及进阶1、Mysql高可用原理2、Keepalived架构3、MHA架构4、MGR架构...

2022-07-31 22:40:32 8054 1

原创 docker常用命令

一、docker服务相关命令1、查看docker版本信息2、查看docker简要信息3、启动dokcer4、关闭docker5、重启docker6、设置开机启动7、查看磁盘占用情况二、镜像相关命令1、检索镜像2、拉取镜像3、列出本地镜像4、删除镜像5、查看镜像信息三、容器相关命令1、启动容器2、查看容器3、停止容器4、重启容器5、删除容器6、进入容器四、其他命令1、查看日志...

2022-06-25 16:57:51 194

原创 docker安装redis

1、搜索Redis镜像,或者从[官网](http://hub.docker.com)中查询所需镜像2、选择需要下载的镜像拉取到本地,默认会下载最新版本镜像3、因为redis默认配置只能够本地连接,不能远程访问,因此需要手动挂载redis配置文件,在本机新建data和conf文件夹以及redis的配置文件4、创建redis容器并启动5、通过docker ps命令查看redis是否启动成功6、进入容器并连接redis...

2022-06-22 11:21:27 104

原创 docker安装mysql

1、搜索Mysql镜像2、从docker hub上拉取mysql镜像到本地3、创建容器实例并运行4、进入容器并连接mysql5、Navicat连接docker运行的mysql

2022-06-18 08:54:37 745

原创 记录一下排查es搜索高亮问题的过程

背景:最近公司有个新的小程序项目,主页需要根据公司简称全局搜索并高亮显示,因为公司数据是存放在es中的,所以需要写个查询es的接口,就把之前的代码拷贝过来了,具体生成的DSL语句如下所示:{ "from": 0, "size": 10, "query": { "bool": { "must": [ { "term": {

2022-04-28 15:13:27 1510

原创 TCP协议

TCP协议三次握手四次挥手字节流协议

2022-04-04 23:59:45 3803

原创 HTTPS协议

HTTPS协议SSL/TLS协议摘要算法对称加密数字签名

2022-04-04 23:50:03 7215

原创 HTTP协议

超文本传输协议(HTTP):一种无状态的,以请求/应答方式运行的协议,它使用可扩展的语义和自描述消息格式,与基于网络的超文本信息系统灵活的互动。一、HTTP报文格式HTTP协议的请求报文和响应报文的结构基本相同,由三大部分组成:* 起始行:描述请求或响应的信息,包含请求行和响应行* 头部字段集合:使用key-value形式更详细地说明报文,包含请求头、响应头、通用字段等* 消息正文:实际传输的数据,它不一定是文本,可能是图片、视频等二进制数据 二、请求行报文格式* 请求方法:如GET/HE

2022-04-04 23:42:45 1607

原创 一个HTTP请求的完整过程

一、网络分层模型当A主机和B主机通信时,在网络中会存在数据丢包、数据重复、数据完整性校验、数字转换模拟信号(无线转光纤等)等问题,为了简化网络的复杂性,因此网络通信的不同方面被分解为多层次结构,不同层次结构中定义标准的接口,并且每一层只与紧挨着的上层或者下层进行通信,将网络分层,这样就可以修改替换某一层的软件,只要层与层之间的接口保持不变,就不会影响其它层。OSI(Open System InterConnetion Reference Model):开放系统互联参考模型TCP/IP协议族二

2022-04-04 23:38:00 4791

原创 操作系统之进程

进程进程的状态进程的控制结构进程的切换线程进程调度进程之间的通信

2022-04-03 22:16:40 1365

原创 一个bug引发的一连串问题

一、bug描述点击资讯页面,展示资讯列表,等过段时间往下拉查看下一页时,发现第二页的资讯信息发布时间比第一页的资讯信息更晚一些,从而出现上图的问题。二、bug原因资讯数据处理流程:首先由爬虫爬取各个网站的资讯数据,落到A表,然后经过定时任务处理后放到B表,之后flink监听B表中有新增数据,就会把这条新增的数据放到es中,最后用户访问页面请求接口展示出这条数据。已知信息:1、由于各个网站数据源的数据刷新频率不同,为了降低成本,所以有的爬虫是一分钟爬取一次,有的是几分钟爬取一次,有的是一两个小时爬

2022-03-19 00:08:29 1298

原创 es查询nested字段类型数组长度来判断是否包含多个值

es查询数组长度

2022-03-01 22:07:57 4276

原创 重命名git本地和远程分支

重命名git本地和远程分支

2022-01-06 17:29:30 433

原创 Map与JSONObject、List与JSONArray转换代码

背景在开发过程中,经常需要用到这些互转,因此在网上找了些代码,这里总结一下,方便以后查看。代码1、//将map转换成jsonObject JSONObject itemJSONObj = JSONObject.parseObject(JSON.toJSONString(itemMap));将Map类型的itemInfo转换成json,再经JSONObject转换实现。2、//将jsonObj转换成MapMap<String, Object> itemMap = JSONObjec

2021-10-19 20:27:34 2511

原创 idea中的项目提示No Python interpreter configured for the module

一、bug描述idea导入flink源码时,点开某个python文件,提示No Python interpreter configured for the module。二、bug原因idea需要python的解析器,否则无法解析python文件。三、解决办法在File->Project Structure->Modules中添加python的SDK。具体流程可参考IDEA官网。四、参考资料1、https://www.jetbrains.com/help/idea/config

2021-09-14 14:15:48 6774

原创 spring动态切换多数据源

一、数据库连接信息配置Spring Boot 的默认配置文件是 application.properties ,由于有两个数据库配置,因此添加配置文件 jbdc.properties ,添加以下自定义的主从数据库配置:# masterspring.datasource.master.driver-class-name=com.mysql.cj.jdbc.Driverspring.datasource.master.jdbc-url=jdbc:mysql://localhost:3306/master

2021-09-04 16:24:54 777

原创 mybatis查询结果转换报错,Long类型不能转成Integer类型

一、bug描述Map<Integer, Map<String, Object>> contactMaps = null;List<Map<String, Object>> persons = customCrmMapper.findPersonByIds(idList);contactMaps = persons.stream().collect(Collectors.toMap(e -> (Integer) e.get("id"), e -&gt

2021-08-27 18:20:39 3474

转载 如何规范你的Git commit?

简介:commit message应该如何写才更清晰明了?团队开发中有没有遇到过让人头疼的git commit?本文分享在git commit规范建设上的实践,规定了commit message的格式,并通过webhook在提交时进行监控,避免不规范的代码提交。背景Git每次提交代码都需要写commit message,否则就不允许提交。一般来说,commit message应该清晰明了,说明本次提交的目的,具体做了什么操作……但是在日常开发中,大家的commit message千奇百怪,中英文混合.

2021-08-26 19:52:16 321

原创 redis 每天定时删除某个key

一、思路假设key每天6点过期,利用redis的setex命令添加key并设置过期时间,过期时间设置为明天6点减去现在时间。setex key timeout value等于set key valueexpire key timeout二、Java代码实现redisTemplate.opsForValue().set(key, hashValue, redisKeyExpireTime(), TimeUnit.SECONDS);private int redisKeyExpireTime

2021-08-20 11:57:19 2798

原创 es对nested类型字段查询并高亮显示时出现的bug

一、bug描述DSL语句:{ "from": 0, "size": 5, "query": { "bool": { "must": [ { "term": { "is_deleted": { "value": "false",

2021-08-18 16:19:02 962

原创 git 删除本地和远程分支

1、切换到当前项目文件目录下cd project/2、查看所有分支git branch -a3、删除本地分支git branch -d slave4、删除远程分支git push origin --delete slave5、再次查看是否已删除git branch -a

2021-08-16 11:16:03 108

原创 本地启动项目后请求es时报Connection refused

一、bug描述Caused by: org.apache.http.conn.HttpHostConnectException: Connect to 127.0.0.1:8888 [/127.0.0.1] failed: Connection refused (Connection refused)二、bug原因系统自动开启了127.0.0.1 port 8888的本地代理三、解决办法关闭本地代理四、参考资料1、https://blog.csdn.net/jamin0107/artic

2021-07-26 18:43:27 3280

原创 重写equals方法 判断两个类中所有字段是否相同

请看如下代码:public class User { private String name; private String phone;}User user1 = new User("zhangsan", "123456");User user2 = new User("zhangsan", "123456");System.out.println(user1.equals(user2)); //false因为每次新建对象时内存地址不一样,而对象的equals方法默

2021-06-27 18:11:43 1022

原创 @RequestBody、@RequestParam、@PathVariable、@Param的区别

@RequestBody一般用来处理Content-Type:"application/json,application/xml"两种格式的请求,能够将传过来的参数自动封装成指定类上。请求:v1/liveRoomUser/agreeApply{ "liveRoomId": 1, "uid": 1}后端代码: @RequestMapping(value = "agreeApply", method = RequestMethod.POST) public Json

2021-06-24 20:21:56 369

原创 构建gradle时遇到的bug

一、bug描述Could not find method testCompile() for arguments [{group=junit, name=junit, version=4.12}] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.二、bug原因idea的版本较老,会自动在build.gradle文件中生成一个testcomplie,gradle新

2021-06-11 10:46:47 581 1

原创 MAC上IDEA的常用配置以及推荐安装插件

一、JDK配置二、Maven配置三、设置主题四、设置快捷键五、设置代码字体以及控制台字体六、设置注释模板七、

2021-06-07 21:41:25 2205

原创 homwbrew安装、常用命令以及安装路径

一、安装1、homebrew是什么?Homebrew是一款Mac OS平台下的软件包管理工具,拥有安装、卸载、更新、查看、搜索等很多实用的功能。简单的一条指令,就可以实现包管理,而不用你关心各种依赖和文件路径的情况,十分方便快捷。2、安装homebrewhomebrew官网中介绍安装homebrew只需一句脚本。/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install

2021-06-07 21:27:46 4206

原创 mac 安装python并切换到python3版本

背景一般情况下mac系统自带python2版本,但我们学习工作时用的都是python3,因此需要安装python3并且切换到python3版本。一、安装python3如果已安装过homebrew,直接使用brew install python3命令安装即可。如果未安装过homebrew,请参考这篇文章。输入python3即可验证是否安装成功。二、切换python3版本方法一、直接使用python3每次使用时输入python3方法二、添加别名1、编辑bash_profile文件。vi ~

2021-06-04 11:33:07 7508

原创 ES常用查询、排序、聚合语句

ES常用查询、排序、聚合语句一、精确查询某个字段1、两个查询条件是and的关系查询text类型时,需要在字段后面加上.keyword,如果字段为keyword类型,则不需要加{ "size": 20, //查询结果显示个数 "query": { "bool": { "must": [ { "term": { "description.keyword": {

2021-06-03 21:28:33 2116

空空如也

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

TA关注的人

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