- 博客(490)
- 资源 (5)
- 收藏
- 关注

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

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

原创 【Kafka】Golang中使用Kafka基于发布订阅模式实现消息队列
在以前的定义中,Kafka被定义为一个分布式的基于**发布/订阅**模式的**消息队列**(Message Queue),主要应用于大数据实时处理领域,当然我们知道kafka的作用远不止用于消息队列,kafka作为消息队列主要是基于点对点模式和基于发布订阅模式
2022-09-03 17:41:51
1197

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

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

原创 【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
1229

原创 【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
1015
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
1666

原创 【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
1915

原创 【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
1317

原创 移动2020面试题:斗地主
题意:在互联网上,有一种很流行的扑克牌的玩法,叫”斗地主“,其中有一个规则就是玩家可以出连续的牌,一般要求连续的5张(含)以上,例如:56789.现在要求写一个程序,找出玩家手里最长的连牌。规则如下:1、为简单起见,只考虑包含1-9数字的牌,不考虑JQKA;2、假设牌已经排好了顺序,例如:2334455678;3、输出连续张数最多的连牌。如果有两个序列长度一样,输出后面那个序列,如:234678,输出678这个序列;4、输出结果是一个字符串,如”678“、”3456“,数字之间不含空格;5、字符
2020-10-12 11:25:14
954

原创 最长上升子序列(序列长度+序列输出)
一、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
2497
1

原创 HDU1233(基础最小生成树 prim和 kruskal)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1233prim算法:算法从任意一个顶点开始,每次选择一个与当前顶点集最近的一个顶点,并将两顶点之间的边加入到树中。Prim算法在找当前最近顶点时使用到了贪婪算法。代码实现:#include<bits/stdc++.h>using namespace std;const in...
2018-08-04 19:31:51
1566

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

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

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

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

原创 java大数开根号问题
import java.util.*;import java.math.*;public class Main{ static BigInteger cal(BigInteger x){ BigInteger l = BigInteger.ONE ; BigInteger r = x ; BigInteger temp = BigInte
2017-11-05 10:17:04
2648

原创 hdu6222(递推规律+java大数)
A triangle is a Heron’s triangle if it satisfies that the side lengths of it are consecutive integers t−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
2464

原创 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
1028

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

转载 素筛讲解及模板(线性筛)
本文链接:http://blog.csdn.net/sjf0115/article/details/8693756方法一[cpp]view plaincopy//判断是否是一个素数intIsPrime(inta){//0,1,负数都是非素数if(a
2017-08-02 19:46:21
8039
4

原创 警告: A docBase D:\apache-tomcat-8.5\webapps\webapps\projectname inside the host appBase has been
在使用Eclipse,部署项目到自己下载的Tomcat的时启动Servers服务时候,会出现这个警告D:\apache-tomcat-8.5\webapps\webapps\projectname inside the host appBase has been错误原因:1.假设要部署工程 "WEE"(自己命名的一个项目名),放到了${catalina.home}/webapps 下。(...
2017-07-10 19:28:24
10202
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
30235
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
525

原创 HDU4725(spfa+双端队列优化)
Problem DescriptionThis is a very easy problem, your task is just calculate el camino mas corto en un grafico, and just solo hay que cambiar un poco el algoritmo. If you do not understand a word of ...
2017-04-19 12:38:49
766

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

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

原创 codeforces 251A(普通队列or单调队列or二分)
Little Petya likes points a lot. Recently his mom has presented himnpoints lying on the lineOX. Now Petya is wondering in how many ways he can choose three distinct points so that the distance betw...
2017-03-18 10:51:47
847

原创 已知中序排列和后序排列求先序排列
Name:已知先后序和中序,求出它的先序排列Copyright:始发于goal00001111的专栏;允许自由转载,但必须注明作者和出处Author: goal00001111Date: 11-12-08 10:58Description:题目描述:描述Description给出一棵二叉树的中序与后序排列。求出它的先序排列。(约定树...
2017-02-28 15:32:52
2451
原创 【LeetCode】多数元素
给定一个大小为 n 的数组nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于⌊ n/2 ⌋的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。
2023-01-15 17:13:25
22
原创 【Linux】虚拟机安装Ubuntu后的一些通用设置
虚拟机安装Ubuntu后一些比较通用的设置,如实现本机和虚拟机之间复制粘贴共享、ubuntu中vi文件时方向键等问题、防火墙、时区等
2022-10-24 19:16:55
778
1
原创 【Cmake】CMake Error: Error: generator : Ninja
CMake Error: Error: generator : Ninja
2022-07-21 10:51:02
1111
原创 【牛客网】JZ4 二维数组中的查找
传送门:JZ4 二维数组中的查找题目描述:思路:题目已经指出其中的数字按照行和列都是递增的,那么这题其实很容易想到对每行或者每列进行二分,这样的时间复杂度为O(N*logM),N和M就看二分的是行还是列了。题目要求的是线性时间的复杂度,显然这种方法不是最佳的,根据题目特性我们很容易想到进行线性扫描,我们可以从矩阵的右上角或者左下角进行扫描,因为在右上角时候我们能确定当前行的最大值,当前列的最小值;而在左下角时候我们能确定当前行的最小值,列的最大值,便于扫描的进行。整个线性扫描时间复杂度为O(M+N)..
2022-06-29 21:13:07
85
原创 【牛客网】链表区间反转
题目链接:BM2 链表内指定区间反转题目描述:思路:思路很简单,先定义一个指针,让它走m-1步到第m-1个的位置,然后反转 [m, n]区间内的链表,将其接到前半段中就可以了。代码·:package mainimport . "nc_tools"/* * type ListNode struct{ * Val int * Next *ListNode * } *//** * * @param head ListNode类 * @param m int整型
2022-05-21 21:50:35
264
1
原创 【牛客网】牛客练习赛67(A-D题解)
题目链接:牛客练习赛67A:牛牛爱字符串思路:直接模拟就可以了,但是字符串特别长,如果使用整形数组存数字,最终存不下。方案就是继续象存字符串一样存数字,由于是用的Java,所以可以直接使用BigInteger。代码:import java.util.Scanner;import java.math.BigInteger;public class Main{ public static void main(String[] args){ Scanner cin=new Sc
2022-04-12 15:02:42
128
原创 【GORM】GORM链式执行输出执行的SQL
在上篇文章GORM jinzhu版本和io版本连接MySQL数据库问题中我们讲解了两个版本的GORM数据库连接问题,在GROM使用链式操作过程中,我们想要知道最终执行的SQL是什么,本文讲解三种常见的SQL日志打印方法。一、全局打印所有的SQL在gorm.io版本中,我们可以在建立连接时指定打印info级别的sql。注意gorm版本的io版本import ( "time" "gorm.io/driver/mysql" "gorm.io/gorm" "gorm.io/gorm/logger
2022-04-11 22:14:25
3231
原创 【GORM】GORM jinzhu版本和io版本连接MySQL数据库问题
文章目录前言一、GORM jinzhu版二、GORM.IO版本三、两个版本个别方法对比前言众所周知,GORM是一款GO的ORM框架,承担数据持久化工作,在GORM连接数据库中有高低版本的差异,本文给出两个版本的数据库连接方法。一、GORM jinzhu版import "github.com/jinzhu/gorm"db, err := gorm.Open("mysql", "username:password@(localhost)/database?charset=utf8mb4&pa
2022-04-11 21:53:53
1909
原创 【Go基础】Go自定义导入包以及Go常用命令
前言在Go语言入门环境搭建中有两个重要的概念GOPATH和GOROOT,其中GOROOT是我们安装的go路径例如D:\Go,将这个路径设置到环境变量就配置好了GO目录的安装路径了。PATH环境变量就是%GOROOT%\bin路径,如D:\Go\bin路径。而GOPATH则是我们的工作目录,就是写代码的目录,在环境变量中配置之后,我们编译源代码等生成的文件都会放到这个目录下,这个目录下我们一般会新建三个文件夹:src、pkg、bin:src 目录存放的是我们的go源代码,不同工程项目的代码以包名区分。
2022-03-31 21:14:39
1932
Spring基本知识点教程+案例演示
2019-12-25
JDK1.8中文百度.CHM
2017-09-25
数字信号处理教程习题分析与解答+清华程佩青第四版+课后习题答案
2017-09-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人