自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(501)
  • 资源 (5)
  • 收藏
  • 关注

原创 【Kafka】Kafka再平衡机制及相关参数

再平衡是指的是Consumer Group 下的 Consumer 所订阅的Topic发生变化时 发生的一种分区重分配机制。也就是说,再平衡也就是一种协议,它规定了如何让消费组下的所有消费者来分配 Topic 中的每一个分区。举个栗子:一个 Topic 有 100 个分区,一个消费者组内有有 20 个消费者,在协调者的控制下让消费者组内的每一个消费者分配到 5 个分区,这个分区分配的过程就是再平衡。

2023-09-09 21:40:54 2090 1

原创 【Redis】Lua脚本在Redis中的基本使用及其原子性保证原理

在介绍Eval命令执行过程中,第一步会在Lua环境中生成一个Lua脚本对应的函数,形如:f_dfdugndgub320433,只要脚本对应的函数在Lua中定义过,那么即使不知道脚本的内容本身,客户端也是可以根据脚本的SHA1来调用脚本对应的函数,从而达到执行脚本的目的,这也就是EvalSHA命令的实现原理。如果Lua脚本比较耗时,甚至Lua脚本存在问题,那么此时Lua脚本的执行会阻塞Redis,直到脚本执行完毕或 者外部进行干预将其结束,就可以使用。字典,关闭现有的Lua环境并重建一个新的Lua环境。

2023-09-08 21:12:04 888

原创 【Kafka】Kafka的重复消费和消息丢失问题

在Kafka中,生产者(Producer)和消费者(Consumer)是通过发布订阅模式进行协作的,生产者将消息发送到Kafka集群,而消费者从Kafka集群中拉取消息进行消费,无论是生产者发送消息到Kafka集群还是消费者从Kafka集群中拉取消息进行消费,都是容易出现问题的,比较典型的就是消费端的重复消费问题、生产端和消费端产生的消息丢失问题。下面将对这两个问题出现的场景以及常见的解决方案进行讲解。

2022-11-29 23:33:12 13709

原创 【Kafka】Kafka基础架构及相关概念

在以前的定义中,Kafka被定义为一个分布式的基于发布/订阅模式的消息队列(Message Queue),主要应用于大数据实时处理领域,类似的产品主要有ActiveMQ、RabbitMQ、RocketMQ…,当然我们知道kafka的作用远不止用于消息队列,Kafka作为消息队列主要是基于点对点模式和基于发布订阅消费者主动拉取数据,消息收到后清除消息。消费者消费数据之后,不删除数据。每个消费者相互独立,都可以消费到数据。缓存/消峰、解耦和异步通信。缓冲/消峰。

2022-11-27 23:03:20 1516

原创 【Kafka】Golang中使用Kafka基于发布订阅模式实现消息队列

在以前的定义中,Kafka被定义为一个分布式的基于**发布/订阅**模式的**消息队列**(Message Queue),主要应用于大数据实时处理领域,当然我们知道kafka的作用远不止用于消息队列,kafka作为消息队列主要是基于点对点模式和基于发布订阅模式

2022-09-03 17:41:51 2075

原创 【Kafka】Docker安装kafka、搭建kafka集群

docker安装kafka、搭建kafka集群进行测试

2022-09-02 11:11:09 3010

原创 【gRPC】gRPC中拦截器的介绍及使用

文章目录前言一、服务端拦截器1、一元拦截器:UnaryInterceptor2、流式拦截器:StreamInterceptor3、实现服务端拦截器一、客户端拦截器1、一元拦截器:WithUnaryInterceptor2、流式拦截器:WithStreamInterceptor3、实现客户端拦截器前言本次主要介绍在gRPC中使用拦截器,包括一元拦截器和流式拦截器,在拦截器中添加JWT认证,客户端登录之后会获得token,请求特定的API时候需要带上token才能访问。由于代码中我们使用了grpc-gate

2022-05-07 21:59:31 2136 1

原创 【gRPC】批量操作、服务端、客户端、双向流介绍及使用案例

前言在之前的文章中,我们通常的做法都是客户端请求—服务端响应的模式,客户端收集好所有的请求信息,发送到服务端,服务端对信息进行业务处理之后再返回最终响应结果。在更多的场景中,我们传输的数据包非常大,比如,客户端需要查询大量用户的积分,然后再拿着这堆用户的积分做其他处理,如果按照之前的做法,传输的数据包会非常大,这会占用大量的带宽,并且服务端需要等待客户端全部发送之后,才能进行处理及响应。在本文中,我们将介绍gRPC的流模式,根据流传输的方向,可以分为客户端流、服务端流以及双向流,而这里所谓的 “流” 就是

2022-04-27 11:17:34 1262

原创 【gRPC】双向认证下grpc-gateway原理及简单使用

前言在上一篇文章自签CA、服务端和客户端双向认证中,我们了解了双向认证并进行了实践,本篇文章将基于双向认证,使用gRPC-Gateway提供http请求处理的api,这样便于提供gRPC和RESTful风格的API。官方地址:https://github.com/grpc-ecosystem/grpc-gatewaygrpc-gateway原理gRPC-Gateway是Protocol Buffers编译器协议的一个插件。它读取Protobuf服务定义并生成一个反向代理服务器,该服务器将RESTful

2022-04-24 16:31:13 2310

原创 【gRPC】自签CA、服务端和客户端双向认证

前言在上一篇文章Protobuf中间文件介绍、使用、Go新版本TLS证书认证问题中,我们简单使用了grpc的单项认证,客户端和服务端使用的证书都是由ca证书签发给服务端的,在本文中,我们进行双向的认证,利用ca证书给客户端和服务端都签发一份证书,服务端会验证客户端的证书,同时客户端也会验证服务端的证书。一、双向认证1.1 CA根证书生成在openssl的bin目录下新建一个配置文件ca.conf,文件内容如下:[ req ]default_bits = 2048distinguis

2022-04-22 22:19:33 1765 2

原创 【gRPC】Protobuf中间文件介绍、使用、Go新版本TLS证书认证问题

文章目录前言gRPC初体验前言初学gRPC,跟着B站go语言grpc框架实战Up主进行学习,其中视频中的坑还是比较多的,比如版本方法废弃,获取库地址废弃等,本文基于该视频整理了前三讲的实战内容。gRPC初体验gRPC是Google开发的高性能、通用的开源RPC框架,其由Google主要面向移动应用开发并基于HTTP/2协议标准而设计,基于ProtoBuf(Protocol Buffers)序列化协议开发,且支持众多开发语言。本身它不是分布式的,所以需要进一步的开发。gRPC支持Java、C++、G

2022-04-21 22:05:12 2207

原创 【Gin】Gin框架中间件

前言Gin中的中间件和我们通常所认识的中间件如缓存中间件(Redis)、消息中间件(Kafaka、MQ)等不一样,Go语言中的中间件更像Spring中的拦截器,根据作用范围又分为全局中间件和局部中间件,下面对中间件这部分进行介绍。一、中间件在Gin框架中,gin.Default()默认使用了Logger和Recovery中间件,其中Logger中间件将日志写入gin.DefaultWriter,即使配置了GIN_MODE=release。而Recovery中间件会recover任何panic。如果有p

2022-04-15 11:22:20 2854

原创 【Gin】Gin框架路由介绍

前言从Java转Go,初学Gin框架,最关心的操作就是接收请求与返回响应的问题,本文主要简单介绍一下Gin框架的基本使用。Gin是一个golang的微框架,封装比较优雅,API友好,源码注释比较明确,具有快速灵活,容错方便等特点,对于golang而言,web框架的依赖要远比Python,Java之类的要小。自身的net/http足够简单,性能也非常不错。借助框架开发,不仅可以省去很多常用的封装带来的时间,也有助于团队的编码风格和形成规范。Go中下载Gin比较简单,通过go get即可拉取到本地(前提是本

2022-04-14 22:02:51 2007

原创 最长上升子序列(序列长度+序列输出)

一、LIS的定义:最长上升子序列(Longest Increasing Subsequence),简称LIS,也有些情况求的是最长非降序子序列,二者区别就是序列中是否可以有相等的数。假设我们有一个序列 b i,当b1 < b2 < … < bS的时候,我们称这个序列是上升的。对于给定的一个序列(a1, a2, …, aN),我们也可以从中得到一些上升的子序列(ai1, ai2, …, aiK),这里1 <= i1 < i2 < … < iK <= N,但必

2020-07-18 20:54:02 5839 1

原创 HDU1233(基础最小生成树 prim和 kruskal)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1233prim算法:算法从任意一个顶点开始,每次选择一个与当前顶点集最近的一个顶点,并将两顶点之间的边加入到树中。Prim算法在找当前最近顶点时使用到了贪婪算法。代码实现:#include&lt;bits/stdc++.h&gt;using namespace std;const in...

2018-08-04 19:31:51 1742

原创 采用C/S架构完成用户注册并连接Mysql数据库(界面winform)

语言:C#开发平台:VS2017对于C/S架构的一些基本交互我前面已经写过了,这里就不再赘述,C#并没有直接连接数据库的东西,需要导入数据库的插件才能驱动数据库操作,using MySql.Data.MySqlClient;也就是引如这个命名空间,这个空间来自Mysql下的一个dll插件,需要自己导入,具体操作:在VS里面找到视图-&gt;解决方案资源管理器-&gt;引用-&gt;右击添加引用-&...

2018-06-23 12:27:55 3865 4

原创 图的几种存储方式(邻接矩阵+邻接表+vector)

最近看到数据结构真的是头大,刚好想到之前自己因为不会存图被xxx怒怼,又没有学过数据结构,作为一个acmer来说,怎么能不会这种操作呢。然后现在来总结一下图的存储方式。图的分类有很多,这里不再赘述。来看一个一般的无向图:通俗地讲,一张图是由边、顶点集构成,每条边上可能还会有相应的边权(带权的),这里讲带权的。然后想我们怎样存储它呢,下面介绍几种存储方式。1、邻接矩阵图的邻接矩阵...

2018-05-03 22:18:52 6853

原创 C#套接字编程实现客户端和服务器通信以及传输文件

花了很久时间,终于把这个搞完了,虽然不是很完美,但是自己感觉还是可以将就用的。主要功能:1、实现客户端服务器一对一聊天以及传输文件。2、实现群聊功能。3、每一个form2里面用子窗体显示所对应父窗体传输文件进度条。4、在线列表能够及时显示当前在线客户以及删除掉线的客户端。需要注意一点的就是父窗体操作子窗体需要将子窗体上的控件属性设置为public类型,比如子窗体名字叫For...

2018-01-21 13:23:11 2118 2

原创 C#实现服务器和客户端之间通信

TCP 套接字编程服务器端实现步骤:1、使用Socket类创建套接字。2、利用Bind方法将创建的套接字绑定到指定的地址结构。3、利用Listen方法设置套接字为监听模式,使得服务器进入被动打开状态。4、接受客户端的连接请求。5、接收、应答客户端的数据请求。6、终止连接。客户端实现步骤:1、使用Socket类创建套接字。2、调用Connect方法建立一个与...

2018-01-06 18:45:08 23529 16

原创 hdu6222(递推规律+java大数)

A triangle is a Heron’s triangle if it satisfies that the side lengths of it are consecutive integers t&#8722;1, t, t+ 1 and thatits area is an integer. Now, for given n you need to find a Heron’s...

2017-11-05 10:11:57 2633

原创 hdu 6165(dfs or bfs or tarjan+topsort)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6165题意:一张有向图,n个点,m条边,保证没有重边和自环。询问任意两个点能否满足任何一方能够到达另外一方。思路:枚举每个点,预处理搜出与这个点相连接的所有点,看看能不能搜出一条链出来,当然要注意一种情况,u-v,v-u这种也是可行的,特殊处理一下。代码:#includeusing

2017-08-22 19:29:20 1136

原创 容斥原理(模板+例题)

网上找来方便自己看,理解。容斥原理:在计数时,必须注意无一重复,无一遗漏。为了使重叠部分不被重复计算,人们研究出一种新的计数方法,这种方法的基本思想是:先不考虑重叠的情况,把包含于某内容中的所有对象的数目先计算出来,然后再把计数时重复计算的数目排斥出去,使得计算的结果既无遗漏又无重复,这种计数的方法称为容斥原理。也可表示为设S为有限集,

2017-08-05 22:07:05 5267

转载 素筛讲解及模板(线性筛)

本文链接:http://blog.csdn.net/sjf0115/article/details/8693756方法一[cpp]view plaincopy//判断是否是一个素数intIsPrime(inta){//0,1,负数都是非素数if(a

2017-08-02 19:46:21 8255 4

转载 ACM 各大OJ平台以及题目分类

本文章转自:http://blog.csdn.net/liujiuxiaoshitou/article/details/7  OJ是Online Judge系统的简称,用来在线检测程序源代码的正确性。著名的OJ有RQNOJ、URAL等。国内著名的题库有北京大学题库、浙江大学题库等。国外的题库包括乌拉尔大学、瓦拉杜利德大学题库等。简介:  Online Judge系统(简

2017-06-15 11:22:13 31920 6

原创 PowerOj 2459(树状数组+离线处理)

题意:寻找区间内不同元素个数。思路:想要找每个区间内元素不同元素个数,可以写莫队,但可能会被卡。下一种思路,对于[L,R],利用树状数组,寻找距离R最近的点即可。代码: #include<bits/stdc++.h>using namespace std;const int maxn=1e5+5;int a[maxn],c[maxn];int ans[ma...

2017-04-30 09:54:10 661

转载 spfa、Dijkstra、Floyd算法最短路算法详解

本文章为转载,这里找点哪里找点凑齐的,这样可以方便进行了解几种算法相同点和不同点spfa部分转自:http://blog.csdn.net/maxichu/article/details/45309463  spfa:适用范围:给定的图存在负权边,这时类似Dijkstra等算法便没有了用武之地,而Bellman-Ford算法的复杂度又过高,SPFA算法便派上用场了。 我们约定有

2017-04-17 19:39:25 1348

原创 PowerOJ 1799(spfa求最短路+路径输出)

西科大新成立了一个WS旅行社。现在在全校范围内招收导游,旅行社为前来应聘的同学设计了一道难题:给应聘者一张地图,看他能否很快的计算出从出发点到达终点的最短路径,这个问题,相信对于来自西科大的你来说,是轻而易举的事情,但是作为旅行社的社长,Bearboy 还要求应聘者能够在地图中画出这条最短路。Input 输入的第一行为一个整数T(T组测试数据对于每一组测试数据,第一行为两个整数 N

2017-04-17 16:24:16 738

原创 【LeetCode】23. 合并 K 个升序链表

顺序合并的效率并不高,这样做就类似于阻塞操作,合并前面的链表的时候,无关的链表啥事儿都干不了,因此,我们可以考虑进行分治,先递归地划分区间两两合并,最后再将总的合并起来。顺序合并思路很简单,就是顺序地将这K个链表两两地进行合并。

2023-11-05 17:23:09 687

原创 【LeetCode】210. 课程表 II——拓扑排序

题解:从题目描述来看,很容易就知道是拓扑排序问题了,问题在于如何存图,如何解答,存图方式比较多,邻接表、邻接矩阵,解方面:遍历、搜索、以及队列都能完成该题的解答,实现方面很多时候还是会依赖一些语言特性,比如java、c++中有队列,可以将度为0的点放进队列中,每次出队一个去边,而在golang中数据结构支持相对匮乏,因此可以采用遍历或者搜索方式完成。可能会有多个正确的顺序,你只要返回 任意一种 就可以了。例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示:[0,1]。

2023-09-10 17:21:13 1387 1

原创 【Golang】golang中http请求的context传递到异步任务的坑

在golang中,context.Context可以用来用来设置截止日期、同步信号,传递请求相关值的结构体。与 goroutine 有比较密切的关系。

2023-06-02 20:54:06 1286

原创 【开发工具】适用于Windows的Linux子系统一一WSL安装使用教程

Windows Subsystem for Linux(简称WSL)是一个在Windows 10\11上能够运行原生Linux二进制可执行文件(ELF格式)的兼容层。它是由微软与Canonical公司合作开发,其目标是使纯正的Ubuntu、Debian等映像能下载和解压到用户的本地计算机,并且映像内的工具和实用工具能在此子系统上原生运行。优势:开发人员可以在 Windows 计算机上同时访问 Windows 和 Linux 的强大功能。

2023-03-24 20:56:12 3671 1

原创 【牛客网】 JZ48 最长不含重复字符的子字符串

这个题是比较容易想到two pointer(双指针)的,再加上hash标记一下区间内存在的元素即可,右指针会一直往后走,在遇到相同的元素时候,才开始让左指针走,直到走到没有重复为止。

2023-03-18 17:41:37 120

原创 【牛客网】JZ47 礼物的最大价值

比较常规的动态规划题目,练练手,这题目从左上角走到右下角,用一个二维dp数组表示从(0,0)走到(n,m)获得的最大值,状态转移很容易得出。,注意dp数组的初始化,最上面一行和最左边一列。

2023-03-18 17:17:00 89

原创 【LeetCode】124. 二叉树中的最大路径和

这类题目一般可以通过dfs方式完成,首先我们明白,想要获取这棵二叉树中的最大路径和,那么我们需要知道以每个节点为根的最大路径和,最后找最大的就可以得到答案。那么如何找一个节点的最大路径和呢,一个节点的最大路径和为它的左右两边节点的。,最终每个节点最多会被遍历一次,总的时间复杂度为O(n)。相加的结果,因此,在dfs时候我们需要获取的就是。

2023-03-05 18:02:58 108

原创 [LeetCode]1237. 找出给定方程的正整数解

这种方法关键在于直接利用函数单调递增的特性,一个答案从前往后找,另一个答案从后往前找,下一次寻找一定是基于上一次的结果,因此会少很多次遍历,x最多遍历1000次,y总的遍历次数也最多1000次,因此总的时间复杂度为O(x+y)。既然我们知道y每次都从头开始找比较慢,那么我们可以优化y的查找时间,利用二分查找即可将找y的复杂度降到log级别,因此总的时间复杂度为O(xlogy)。暴力枚举法每次都从开始找y,x最多枚举1000次,而y每次也会枚举1000次,因此,总的复杂度为O(x*y)。

2023-02-18 17:38:28 613

原创 【Git】Windows:Another git process seems to be running in this repository, e.g.an editor opened by ‘..

Another git process seems to be running in this repository, e.g.an editor opened by 'git commit'. Please make sure all processes are terminated then try again. If it still fails, a git process may have crashed in this repository earlier:remove the file...

2023-02-04 16:33:32 214

原创 【LeetCode】多数元素

给定一个大小为 n 的数组nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于⌊ n/2 ⌋的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。

2023-01-15 17:13:25 108

原创 【Linux】虚拟机安装Ubuntu后的一些通用设置

虚拟机安装Ubuntu后一些比较通用的设置,如实现本机和虚拟机之间复制粘贴共享、ubuntu中vi文件时方向键等问题、防火墙、时区等

2022-10-24 19:16:55 1758 1

原创 【Cmake】CMake Error: Error: generator : Ninja

CMake Error: Error: generator : Ninja

2022-07-21 10:51:02 3321

原创 【牛客网】JZ4 二维数组中的查找

传送门:JZ4 二维数组中的查找题目描述:思路:题目已经指出其中的数字按照行和列都是递增的,那么这题其实很容易想到对每行或者每列进行二分,这样的时间复杂度为O(N*logM),N和M就看二分的是行还是列了。题目要求的是线性时间的复杂度,显然这种方法不是最佳的,根据题目特性我们很容易想到进行线性扫描,我们可以从矩阵的右上角或者左下角进行扫描,因为在右上角时候我们能确定当前行的最大值,当前列的最小值;而在左下角时候我们能确定当前行的最小值,列的最大值,便于扫描的进行。整个线性扫描时间复杂度为O(M+N)..

2022-06-29 21:13:07 249

Java面试手册.zip

常见Java基础面试题、JVM、Redis、Java并发编程、MySQL等面试题

2021-06-18

InformationManage.rar

原生Servlet+JSP完成的员工管理小案例,数据库Mysql,供参考。

2020-11-11

Spring基本知识点教程+案例演示

这个文档涵盖了spring的知识点,可以帮助初学者迅速入门spring,对于学习spring真的很有帮助的。若文档下载有什么问题,尽请留言解决

2019-12-25

JDK1.8中文百度.CHM

JDK1.8中文百度.CHM JDK1.8中文百度.CHM JDK1.8中文百度.CHM JDK1.8中文百度.CHM JDK1.8中文百度.CHM JDK1.8中文百度.CHM 自我感觉超好用的,上传上来大家共享。

2017-09-25

数字信号处理教程习题分析与解答+清华程佩青第四版+课后习题答案

数字信号处理教程习题分析与解答+清华程佩青第四版+课后习题答案 数字信号处理教程习题分析与解答+清华程佩青第四版+课后习题答案 数字信号处理教程习题分析与解答+清华程佩青第四版+课后习题答案

2017-09-25

空空如也

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

TA关注的人

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