- vertx
三笠爷
vert.x
vert.x是reactive(响应式编程),是一种思想,特点:事件驱动(发挥单台机器的性能):单台机器上,用少量线程处理大量并发异步处理请求(多个服务间通信阻塞较少,响应时间降低):https://vertx.io/官网基于netty的、运行在jvm之上的、支持多种编程语言的高性能异步、非阻塞、响应式全栈javaweb框架eclipse软件基金会顶级java开源项目之一在techempower.
- Vertx 使用 虚拟线程
zimoyin
开发语言java
Vertx是支持虚拟线程,并且很轻松的就能切换到虚拟线程,还能让异步代码用同步的写法1.部署虚拟线程verticle通过给部署设置进行setThreadingModel将线程模型设置为虚拟线程即可Vertxvertx=Vertx.vertx();AbstractVerticleverticle=newAbstractVerticle(){@Overridepublicvoidstart(){Htt
- 使用 Kotlin 将 Vertx 和 Springboot 整合
zimoyin
springbootkotlinjava
本篇文章目的是将Springboot和Vertx进行简单整合。整合目的仅仅是为了整活,因为两个不同的东西整合在一起提升的性能并没有只使用Vertx性能高,因此追求高性能的话这是在我来说不推荐。而且他们不仅没有提高很多性能甚至增加了学习成本一、整合流程首先呢目标是将Vertx最终整合成和使用Springbootweb一样简单的httpserver。步骤:获取Springboot所有的Bean注册路由
- python快速实现dbc转excel
大柠檬鲸
python开发语言
步骤1-安装canmatrix包打开cmd输入:python-mpipinstallcanmatrix步骤2-打开要转换dbc所在的文件夹路径步骤3-在下图的路径框中输入cmd后直接按回车键步骤4-输入cmd在弹出的cmd中输入canconvertxxx.dbctarget.xlsx其中xxx.dbc为要转换的dbc,target.xlsx为输出的excel在当前路径下即生成转换后的excel
- springboot与vertx异步并发对比
千寻_GHSA
springboot目前主要还是阻塞式响应,需要等到服务端计算完成,才会返回。vertx本身异步响应,客户端发出请求后,服务端计算完成后,通知返回。系统的处理能力会大大提升。针对同样的业务,做一个200并发的测试springbootspringboot的average在165秒vertxvertx的average在85秒从cpu的使用率对比vertx的CPU使用率较低;springboot的CPU
- vertx添加后获取记录id
Levi_9d29
直接用户queryWithParams方法执行添加sql就可以了,如果是postgresql需要在sql语句最后加上returningid,其他数据库没试过
- 程序媛在公司的进修之路(三)
小芹菜_4d69
这次隔了两周,因为是双周任务和总结,学习任务如下:学习vertx框架,重点学习core、web、dataaccess三个组件。在这之前自己什么框架也没有学过,包括MVC,,,,所以完全不知道该如何入手。大体自己的学习思路如下:1、直接上官网:https://vertx.io/docs/#web看手册,了解相关的概念的知识,运行出第一个helloword(例子都是官网现成的)。这里英文不好的就去看中
- 使用 curl multi interface 编写的高性能封装类和示例
fishjam
HTTPCurl性能优化curlmultiinterfaceHTTP
CurlMultiDemo使用libCurl的MultiInterface的一个简单封装类,支持功能:单线程+纯异步的Get/Post支持极高的性能(使用POST上传600+文件,仅耗时4~6秒)使用方式:1.编译或下载libcurl库,我采用的是vcpkg2.搭建或找一个支持MultiPart上传文件的服务器,如没有,可以使用vertx-upload3.VisualStudio(2015)打开工
- sklearn线性模型之Lasso回归
微小冷
#sklearnsklearn回归人工智能LassopythonLassoCV
文章目录Lasso简介Lasso类LassoCVLasso简介Lasso,即TheLeastAbsoluteShrinkageandSelectionOperator,是用于拟合稀疏系数的线性模型,其最小化目标函数为minw12n∥Xw−y∥22+α∥w∥1\min_w\frac{1}{2n}\VertXw-y\Vert^2_2+\alpha\Vertw\Vert_1wmin2n1∥Xw−y∥2
- sklearn岭回归
微小冷
#sklearnsklearn回归人工智能python岭回归
文章目录基本原理sklearn实现基本原理最小二乘法的判定条件是minw∥Xw−y∥22\min_w\VertXw-y\Vert_2^2wmin∥Xw−y∥22其中,minwF(w)\min_wF(w)minwF(w)表示F(w)F(w)F(w)最小时的www;www是拟合参数,x,yx,yx,y是变量。对于线性问题,可通过对www求导,得到F(w)F(w)F(w)极值处的www,具体表达式为
- 2019-01-19
喀喀喀580
gitreset--hardxxx,gitreset--softxxx与gitrevertxxx三者作用都是用来撤销某项操作,只是工作的领域和方式不同.gitreset--softxxximagegitreset--hardxxxhard(修改版本库,修改暂存区,修改工作区)imagegitrevertxxxrevert--gitrevert也是撤销命令,区别在于reset是指向原地或者向前移动指
- vertx写sip服务器
帐篷Li
开源视频联动物联网平台流媒体开发服务器运维
Vert.xSIP模块默认使用TCP协议进行通信。如果您需要支持UDP协议,您需要自定义SIP协议栈,并在其中实现UDP传输。以下是一个示例代码,演示如何在Vert.x中创建一个支持UDP的SIP服务器:importio.vertx.core.net.SocketAddress;importio.vertx.ext.SIP;importio.vertx.ext.SIP.Method;importi
- vertx 写sip协议
帐篷Li
开源视频联动物联网平台网络服务器运维
Vert.x是一个用于构建响应式系统的工具包,它支持多种协议,包括SIP。要在Vert.x中编写SIP协议,您需要使用Vert.xSIP模块。以下是在Vert.x中编写SIP协议的一般步骤:添加依赖项:在您的项目中添加Vert.xSIP模块的依赖项。创建SIP服务器:使用Vert.xSIP模块创建一个SIP服务器。您需要指定服务器的地址和端口号。创建SIP路由:在您的SIP服务器上创建SIP路由。
- git reset --hard xxx , git reset --soft xxx , git revert xxx 的区别
这是余传书简书
gitreset--hardxxx,gitreset--softxxx,gitrevertxxxgitrevert三者区别三者作用都是用来撤销某项操作,只是工作的领域和方式不同。gitresetgitreset常用于代码回滚,是直接删除指定的commit,但是文件和修改会移动到workspace工作区。gitreset--softxxx从暂存区撤回。soft命令会让版本回到某次commit后的状态
- 实体、DataTable、json、xml互转
ylattx
C#.netcore.netjsonxmlc#
需要用到Newtonsoft.Json//////将xml转换datatabe/////////publicstaticDataTableConvertXMLToDataTable(stringxmlData){DataSetdsData=newDataSet();dsData.ReadXml(newXmlTextReader(newStringReader(xmlData)));DataTabl
- vertx常用方法示例
wbkys
vertxrestful后端javavertx
一、多个回调如何避免回调地域方法:使用compose与Future示例1:按顺序执行里面的回调方法//回调方法1privateFuturegetStatus1(Stringid){returnFuture.future(f->{f.complete(true);});}//回调方法2privateFuturegetStatus2(booleanid){returnFuture.future(f->
- vertx学习
一户董
杂学习
写在前面新公司用到了vertx,所以这里学习下。源码。1:vertx是啥?是个框架吗?不是。只是一个工具类,只不过提供的功能比较全面,如http,websocket,tcp,json处理,定时任务,文件IO等。2:Vert.xCore核心对象io.vertx.core.Vertx。2.1:定时器//使用vertx执行定时执行任务@TestpublicvoidtimerWithVertx()thro
- vertx系列
一个带着思想做开发的人
分布式技术
vertx系列第一节1:谈下博主如何解除到vertx,目前大多公司用到的都是spring体系,但是博主在工作中,,感觉spring体系特别笨重,无论是国内,出的springalibaba等。不可否认,他们对java生态的分布式,做了很多。但是用起来还是特别重,性能比较低,有人说,用java就不要谈性能。java的性能不如go,很重要在于他的线程模型,后来,博主感觉,想自己去实现一套异步的分布式架构
- [USACO2012-Mar-Silver] Flowerpot 题解(单调队列 c++)
上烟雨心上尘
题解c++算法开发语言
[USACO12MAR]FlowerpotS题解(单调队列c++)题目链接:[USACO2012-Mar-Silver]Flowerpot题意:给你n个点,每个点有对应的x,y确认是否存在两个点,在y1,y2y_1,y_2y1,y2满足要求的情况下,输出最小的∣x2−x1∣\lvertx_2-x_1\rvert∣x2−x1∣思路:如果暴力的话,我们就考虑对于每一个点,寻找其对应的∣y1−y2∣>=
- vert.x学习心得笔记(一)
给我的名字加个鸡腿_
vert.x官方中文文档:https://vertxchina.github.io/vertx-translation-chinese/官方英文文档:一:背景介绍首先我们介绍vert.x,它是一种事件驱动,且异步的基于JVM的Java框架。由于近年来,移动网络、社交网络和电商的兴起,使各大服务提供商的客户端请求数量激增,传统服务器架构已不堪重负,致使基于事件和异步的解决方案备受追捧。而vert.x
- Vert.x 3学习笔记---02
avastxa
vertxjavavert.xnodejs
文档地址:http://vertx.io/docs/vertx-core/java/Verticlesverticles是一个很重要的概念。你可以将verticles当做是ActorModel(一种编程模型)中的actor。它是一段代码的集合—可以部署和被Vert.x运行。并且verticles能够被Vert.x支持的所有语言编写,并不仅限于java。一个应用可以包含不同语言编写的verticle
- Vert.x 3学习笔记---03
avastxa
vertxvert.xnodejsjava
TheEventBus概述本文介绍eventbus。TheeventbusisthenervoussystemofVert.x.每一个Vertx实例都只有一个eventbus实例,可以使用eventBus方法获取。eventbus容许你的应用程序的各个部分(相同或者不同语言编写的,相同或者不同的vertx或者vertx的其他部分)进行通讯。Theeventbusallowsdifferentpar
- Vert.x 3学习笔记---06
avastxa
vertxvert.xservertcpjavanodejs
WritingTCPserversandclients编写TCP服务端和客户端使用vertx可以很简单的编写出无阻塞的tcp服务端和客户端。下面逐一来介绍。CreatingaTCPserverNetServerserver=vertx.createNetServer();ConfiguringaTCPserver可以使用NetServerOptions来配置tcp服务端:NetServerOpti
- GIT reset hard/soft/revert的区别
leo_luo
三个命令都是撤销gitreset--hardxxx撤销你没有提交的改动和将你本地库全部的操作退回到XXX。gitreset--softxxx是将XXX从暂存区中撤回gitrevertxxx将在编辑器内修改的内容撤回,撤销一个提交的同时会创建一个新的提交。
- 【Java】Vert.x Jackson 序列化后日期数据正常展示
kida_yuan
Javajava开发语言
有段时间没有更新了,年尾嘛大家都懂的。其实最近有个想法,想将自己的vtx_fw框架给开源了。但开源之前还是有很多收尾的工作需要做的(总不能让各位笑话吧o(╥﹏╥)o),这不今天就发现了一个问题,立刻就归纳一下给各位分享。这个问题就是Vert.x框架中日期类型数据在Jackson序列化下的展示问题。有玩过Vert.x的小伙伴都知道在vertx-core包中会默认依赖jackson-core包。如果实
- 博客git区别
不喝雪碧我怕透心凉_c7de
gitreset--hardxxxgitreset--softxxxgitrevertxxx的区别resertgitrevertxxx如果修改了某些内容,但是还没有push到远程仓库,可以用gitreset去撤销更改,除了在当前分支上操作,还可以通过传入标记来修改缓存区或者工作目录,这些标记限定了gitreset的作用域,常常跟HEAD作为参数一起使用gitreset--softxxx回退到某个版
- Vert.x 学习笔记
wbkys
vertxjava开发语言后端
一、概述Vert.x(http://vertx.io)是一个基于JVM、轻量级、高性能的应用平台,非常适用于最新的移动端后台、互联网、企业应用架构.Vert.x是基于大名鼎鼎netty的异步的工具集。可以简单理解成运行在JVM上的Node.js。拥有高性能的一个java框架,可以维持单服务器至少120万长连接的平台.特性:1、同时支持多种编程语言——目前已经支持了Java、Scala、JavaSc
- 27Vert.X框架学习笔记
林伢仔
01Javajava网络分布式
vert.x框架学习笔记文章目录1Vert.x简明介绍1.1Vert.x能干什么1.2Vert.x快速体验1.3Vert.x的简单介绍1.4Vert.x的一些优势1.4.1异步非阻塞1.4.2Vertx支持多种编程语言1.4.3不依赖中间件1.4.4完善的生态1.4.5为服务而生1.5Vert.x的技术体系1.5.1核心模块1.5.2Web模块1.5.3数据访问模块1.5.4Reactive响应式
- Vert.x学习笔记(二) Vert.x Web Client
乐百川
javavertxvert.xweb框架
本文参考自Vert.xWebClient官方文档。套用官网的话来说,Vert.xWebClient是一个异步的HTTP和HTTP/2网络客户端。相对来说,这是一个比较小的框架,而且功能也很直接,做一个方便好用的HTTP客户端。它具有以下功能:Jsonbody编码/解码request参数统一的错误处理表单提交需要注意,它和Vertx核心包中的HttpClient有很多联系。它继承了HttpClien
- Vert.X使用笔记
小周今天code了吗
VertXjava开发语言
Vert.X使用笔记(一)一、开发环境二、官方文档三、vert.x概述1、vertx-core四、HelloWorld1、生成工程2、打开工程3、编写启动类4、启动项目5、另一种启动方法四、理解示例程序五、概念1、事件驱动2、非阻塞3、链式循环处理4、未来(future)5、verticle6、eventbus六、使用案例1、定时执行七、插曲ApacheIgnite一、开发环境-框架VERTX_V
- Linux的Initrd机制
被触发
linux
Linux 的 initrd 技术是一个非常普遍使用的机制,linux2.6 内核的 initrd 的文件格式由原来的文件系统镜像文件转变成了 cpio 格式,变化不仅反映在文件格式上, linux 内核对这两种格式的 initrd 的处理有着截然的不同。本文首先介绍了什么是 initrd 技术,然后分别介绍了 Linux2.4 内核和 2.6 内核的 initrd 的处理流程。最后通过对 Lin
- maven本地仓库路径修改
bitcarter
maven
默认maven本地仓库路径:C:\Users\Administrator\.m2
修改maven本地仓库路径方法:
1.打开E:\maven\apache-maven-2.2.1\conf\settings.xml
2.找到
- XSD和XML中的命名空间
darrenzhu
xmlxsdschemanamespace命名空间
http://www.360doc.com/content/12/0418/10/9437165_204585479.shtml
http://blog.csdn.net/wanghuan203/article/details/9203621
http://blog.csdn.net/wanghuan203/article/details/9204337
http://www.cn
- Java 求素数运算
周凡杨
java算法素数
网络上对求素数之解数不胜数,我在此总结归纳一下,同时对一些编码,加以改进,效率有成倍热提高。
第一种:
原理: 6N(+-)1法 任何一个自然数,总可以表示成为如下的形式之一: 6N,6N+1,6N+2,6N+3,6N+4,6N+5 (N=0,1,2,…)
- java 单例模式
g21121
java
想必单例模式大家都不会陌生,有如下两种方式来实现单例模式:
class Singleton {
private static Singleton instance=new Singleton();
private Singleton(){}
static Singleton getInstance() {
return instance;
}
- Linux下Mysql源码安装
510888780
mysql
1.假设已经有mysql-5.6.23-linux-glibc2.5-x86_64.tar.gz
(1)创建mysql的安装目录及数据库存放目录
解压缩下载的源码包,目录结构,特殊指定的目录除外:
- 32位和64位操作系统
墙头上一根草
32位和64位操作系统
32位和64位操作系统是指:CPU一次处理数据的能力是32位还是64位。现在市场上的CPU一般都是64位的,但是这些CPU并不是真正意义上的64 位CPU,里面依然保留了大部分32位的技术,只是进行了部分64位的改进。32位和64位的区别还涉及了内存的寻址方面,32位系统的最大寻址空间是2 的32次方= 4294967296(bit)= 4(GB)左右,而64位系统的最大寻址空间的寻址空间则达到了
- 我的spring学习笔记10-轻量级_Spring框架
aijuans
Spring 3
一、问题提问:
→ 请简单介绍一下什么是轻量级?
轻量级(Leightweight)是相对于一些重量级的容器来说的,比如Spring的核心是一个轻量级的容器,Spring的核心包在文件容量上只有不到1M大小,使用Spring核心包所需要的资源也是很少的,您甚至可以在小型设备中使用Spring。
- mongodb 环境搭建及简单CURD
antlove
WebInstallcurdNoSQLmongo
一 搭建mongodb环境
1. 在mongo官网下载mongodb
2. 在本地创建目录 "D:\Program Files\mongodb-win32-i386-2.6.4\data\db"
3. 运行mongodb服务 [mongod.exe --dbpath "D:\Program Files\mongodb-win32-i386-2.6.4\data\
- 数据字典和动态视图
百合不是茶
oracle数据字典动态视图系统和对象权限
数据字典(data dictionary)是 Oracle 数据库的一个重要组成部分,这是一组用于记录数据库信息的只读(read-only)表。随着数据库的启动而启动,数据库关闭时数据字典也关闭 数据字典中包含
数据库中所有方案对象(schema object)的定义(包括表,视图,索引,簇,同义词,序列,过程,函数,包,触发器等等)
数据库为一
- 多线程编程一般规则
bijian1013
javathread多线程java多线程
如果两个工两个以上的线程都修改一个对象,那么把执行修改的方法定义为被同步的,如果对象更新影响到只读方法,那么只读方法也要定义成同步的。
不要滥用同步。如果在一个对象内的不同的方法访问的不是同一个数据,就不要将方法设置为synchronized的。
- 将文件或目录拷贝到另一个Linux系统的命令scp
bijian1013
linuxunixscp
一.功能说明 scp就是security copy,用于将文件或者目录从一个Linux系统拷贝到另一个Linux系统下。scp传输数据用的是SSH协议,保证了数据传输的安全,其格式如下: scp 远程用户名@IP地址:文件的绝对路径
- 【持久化框架MyBatis3五】MyBatis3一对多关联查询
bit1129
Mybatis3
以教员和课程为例介绍一对多关联关系,在这里认为一个教员可以叫多门课程,而一门课程只有1个教员教,这种关系在实际中不太常见,通过教员和课程是多对多的关系。
示例数据:
地址表:
CREATE TABLE ADDRESSES
(
ADDR_ID INT(11) NOT NULL AUTO_INCREMENT,
STREET VAR
- cookie状态判断引发的查找问题
bitcarter
formcgi
先说一下我们的业务背景:
1.前台将图片和文本通过form表单提交到后台,图片我们都做了base64的编码,并且前台图片进行了压缩
2.form中action是一个cgi服务
3.后台cgi服务同时供PC,H5,APP
4.后台cgi中调用公共的cookie状态判断方法(公共的,大家都用,几年了没有问题)
问题:(折腾两天。。。。)
1.PC端cgi服务正常调用,cookie判断没
- 通过Nginx,Tomcat访问日志(access log)记录请求耗时
ronin47
一、Nginx通过$upstream_response_time $request_time统计请求和后台服务响应时间
nginx.conf使用配置方式:
log_format main '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_r
- java-67- n个骰子的点数。 把n个骰子扔在地上,所有骰子朝上一面的点数之和为S。输入n,打印出S的所有可能的值出现的概率。
bylijinnan
java
public class ProbabilityOfDice {
/**
* Q67 n个骰子的点数
* 把n个骰子扔在地上,所有骰子朝上一面的点数之和为S。输入n,打印出S的所有可能的值出现的概率。
* 在以下求解过程中,我们把骰子看作是有序的。
* 例如当n=2时,我们认为(1,2)和(2,1)是两种不同的情况
*/
private stati
- 看别人的博客,觉得心情很好
Cb123456
博客心情
以为写博客,就是总结,就和日记一样吧,同时也在督促自己。今天看了好长时间博客:
职业规划:
http://www.iteye.com/blogs/subjects/zhiyeguihua
android学习:
1.http://byandby.i
- [JWFD开源工作流]尝试用原生代码引擎实现循环反馈拓扑分析
comsci
工作流
我们已经不满足于仅仅跳跃一次,通过对引擎的升级,今天我测试了一下循环反馈模式,大概跑了200圈,引擎报一个溢出错误
在一个流程图的结束节点中嵌入一段方程,每次引擎运行到这个节点的时候,通过实时编译器GM模块,计算这个方程,计算结果与预设值进行比较,符合条件则跳跃到开始节点,继续新一轮拓扑分析,直到遇到
- JS常用的事件及方法
cwqcwqmax9
js
事件 描述
onactivate 当对象设置为活动元素时触发。
onafterupdate 当成功更新数据源对象中的关联对象后在数据绑定对象上触发。
onbeforeactivate 对象要被设置为当前元素前立即触发。
onbeforecut 当选中区从文档中删除之前在源对象触发。
onbeforedeactivate 在 activeElement 从当前对象变为父文档其它对象之前立即
- 正则表达式验证日期格式
dashuaifu
正则表达式IT其它java其它
正则表达式验证日期格式
function isDate(d){
var v = d.match(/^(\d{4})-(\d{1,2})-(\d{1,2})$/i);
if(!v) {
this.focus();
return false;
}
}
<input value="2000-8-8" onblu
- Yii CModel.rules() 方法 、validate预定义完整列表、以及说说验证
dcj3sjt126com
yii
public array rules () {return} array 要调用 validate() 时应用的有效性规则。 返回属性的有效性规则。声明验证规则,应重写此方法。 每个规则是数组具有以下结构:array('attribute list', 'validator name', 'on'=>'scenario name', ...validation
- UITextAttributeTextColor = deprecated in iOS 7.0
dcj3sjt126com
ios
In this lesson we used the key "UITextAttributeTextColor" to change the color of the UINavigationBar appearance to white. This prompts a warning "first deprecated in iOS 7.0."
Ins
- 判断一个数是质数的几种方法
EmmaZhao
Mathpython
质数也叫素数,是只能被1和它本身整除的正整数,最小的质数是2,目前发现的最大的质数是p=2^57885161-1【注1】。
判断一个数是质数的最简单的方法如下:
def isPrime1(n):
for i in range(2, n):
if n % i == 0:
return False
return True
但是在上面的方法中有一些冗余的计算,所以
- SpringSecurity工作原理小解读
坏我一锅粥
SpringSecurity
SecurityContextPersistenceFilter
ConcurrentSessionFilter
WebAsyncManagerIntegrationFilter
HeaderWriterFilter
CsrfFilter
LogoutFilter
Use
- JS实现自适应宽度的Tag切换
ini
JavaScripthtmlWebcsshtml5
效果体验:http://hovertree.com/texiao/js/3.htm
该效果使用纯JavaScript代码,实现TAB页切换效果,TAB标签根据内容自适应宽度,点击TAB标签切换内容页。
HTML文件代码:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
- Hbase Rest API : 数据查询
kane_xie
RESThbase
hbase(hadoop)是用java编写的,有些语言(例如python)能够对它提供良好的支持,但也有很多语言使用起来并不是那么方便,比如c#只能通过thrift访问。Rest就能很好的解决这个问题。Hbase的org.apache.hadoop.hbase.rest包提供了rest接口,它内嵌了jetty作为servlet容器。
启动命令:./bin/hbase rest s
- JQuery实现鼠标拖动元素移动位置(源码+注释)
明子健
jqueryjs源码拖动鼠标
欢迎讨论指正!
print.html代码:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv=Content-Type content="text/html;charset=utf-8">
<title>发票打印</title>
&l
- Postgresql 连表更新字段语法 update
qifeifei
PostgreSQL
下面这段sql本来目的是想更新条件下的数据,可是这段sql却更新了整个表的数据。sql如下:
UPDATE tops_visa.visa_order
SET op_audit_abort_pass_date = now()
FROM
tops_visa.visa_order as t1
INNER JOIN tops_visa.visa_visitor as t2
ON t1.
- 将redis,memcache结合使用的方案?
tcrct
rediscache
公司架构上使用了阿里云的服务,由于阿里的kvstore收费相当高,打算自建,自建后就需要自己维护,所以就有了一个想法,针对kvstore(redis)及ocs(memcache)的特点,想自己开发一个cache层,将需要用到list,set,map等redis方法的继续使用redis来完成,将整条记录放在memcache下,即findbyid,save等时就memcache,其它就对应使用redi
- 开发中遇到的诡异的bug
wudixiaotie
bug
今天我们服务器组遇到个问题:
我们的服务是从Kafka里面取出数据,然后把offset存储到ssdb中,每个topic和partition都对应ssdb中不同的key,服务启动之后,每次kafka数据更新我们这边收到消息,然后存储之后就发现ssdb的值偶尔是-2,这就奇怪了,最开始我们是在代码中打印存储的日志,发现没什么问题,后来去查看ssdb的日志,才发现里面每次set的时候都会对同一个key