自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

致力于前沿技术研究,下一代网络、云网络、网络模拟、网络安全、k8s、网络虚拟化。

  • 博客(507)
  • 收藏
  • 关注

原创 从编译器角度理解C++代码的编译和链接原理

2023-04-05 23:37:18 941

原创 从指令角度掌握函数调用堆栈详细过程

C++服务器开发

2023-04-05 14:49:12 156

原创 进程虚拟地址空间区域划分

进程虚拟地址空间区域划分

2023-04-04 22:40:07 172

原创 Seata源码走读分析

文章目录1、Seata2、TC3、TM4、RM5、XID1、Seata2、TC功能:算出我这个全局事务,是否是真的需要提交的。具体提交的动作,由TM来做接收你的请求,告诉你响应更通俗地讲,就是去统计计算出来,你这个全局事务到底应该怎么做3、TM功能:创建一个全局事务,并提交一个全局事务这里会去看你有没有@GlobalTransactional注解,如果有,会去真正发起一个全局事务包括发起全局事务、提交全局事务,都是transactionalTemplate来做如果没有事务的

2021-07-20 00:31:41 228

原创 分布式事务技术业界方案

文章目录1、两阶段提交2、三阶段提交3、TCC4、消息队列+本地事件表5、可靠消息服务6、Seata1、两阶段提交2、三阶段提交业界没有一个框架完全按照"两阶段"、"三阶段"这种方案去做3、TCC4、消息队列+本地事件表适用中小型的业务,业务不是很多,就特别好用这里图中,2开头的,其实是一个事务,做很简单,如果是springboot,直接@transactional就好了这个方案的优点是速度快,一个请求过来,只执行自己的业务,至于后面的,我就不等了,小业务很快。这里属于最终一致性

2021-07-19 22:03:51 238

原创 事务隔离级别详解

2021-07-15 23:52:11 155

原创 事务并发过程中脏读、幻读、不可重复读

事务并发会带来什么问题1)脏读读取了其他并发事务未提交的数据,就会出现脏读问题2)不可重复读3)幻读这里的定义基于sql1992标准https://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt

2021-07-15 23:40:17 179

原创 mysql事务隔离剖析LBCC(Lock Model)

文章目录1、事务隔离实现方式2、MVCC1、事务隔离实现方式mysql是LBCC和MVCC共用的MVCC是针对LBCC的一个衍生,也就是针对行级锁的一个衍生2、MVCC先看MVCC官网上对innodb锁的方式进行了一个划分这些包含了对不同维度的划分,所以这些是有交集的,不是非黑即白的。意向锁不是用来锁定数据的,而是用来判断有没有已经锁定的数据意向锁是数据库自己创建的,当我们创建排他锁、共享锁的时候,数据库自己创建的,用来判断数据库中有没有被锁定的数据,像是一盏明灯一样如果没有

2021-07-15 23:27:13 272

原创 数据库的锁LBCC

文章目录1、record locks2、gap locks3、next-key locks1、record locks记录锁就是一个事务select了一行数据,那么就锁住了,如果另一个事务再去select这一行,那么就select不了,但是它可以select其他行的数据。2、gap locks间隙锁比如select xxx from xxx where xxx >15那么就命中了(11,+oo),其实12 13 这些都是会被锁的那么其他事务想要访问就访问不了。3、next-key l

2021-07-15 23:06:44 274

原创 MVCC底层原理

文章目录1、现象2、sql演示3、原因分析1、现象如图三个并发性事务2、sql演示事务c的行为会进行autocommit事务B执行Q1 age是20最后事务A执行Q2的时候,age还是18岁3、原因分析此时事务B去修改update的时候,一定是会有一个"当前读"的操作,会读取数据库此时最大的版本,也就是读取了1002的版本,age=19![在这里插入图片描述](https://img-blog.csdnimg.cn/20210715223404144.png?x-oss-proc

2021-07-15 22:48:28 111

转载 c程序利用backtrace打印堆栈

写C程序最爽的是什么?我觉得是其中灵活的指针用法能让coder发挥各种想象力和创造力。那最郁闷的是啥?差不多就是N多指针满天飞之后程序一运行就直接segment fault了。这种运行时错误不像编译时错误有明显的错误提示,所以往往很难定位。今天看redis源代码,看见了一个比较不错的追踪此类问题的方式。Segment fault是怎样产生的一般导致segment fault错误的原因都是程...

2020-03-25 12:37:13 2837 1

转载 编译警告"struct declared inside parameter list"

近来在阅读linux-2.6.37中cgroup的相关代码,读到include/linux/cgroup.h的开头时犯了嘀咕:#include <linux/sched.h>#include <linux/cpumask.h>#include <linux/nodemask.h>#include <linux/rcupdate.h>...

2020-03-11 08:03:10 2788

转载 nginx的tcp代理能力

原文链接:http://blog.51cto.com/3774912/2391430现在很多的企业将业务转移到云上,如果数据库服务器直接暴露在公网,存在被***的风险,云服务器上的mysql 3306端口基本不对外开放。我们如果想通过外网直接访问mysql怎么做呢,这里我们可以使用nginx端口转发来实现。1:首先安装nginx./configure --prefix=/applicati...

2019-11-28 16:20:03 532

原创 谈一谈https

https比http多干的事情1、客户端向服务端请求https连接获取证书(公钥)2、客户端给服务器发送(对称加密<公钥>):随机数 的密文3、客户端同时给服务端发送:(对称加密<公钥>):随机数+私钥的密文4、服务器根据公钥解密出随机数,同时解密出私钥5、客户端使用非对称加密进行数据传输,客户端使用公钥加密,服务器使用私钥解密...

2019-10-05 17:20:08 378

原创 缓存数据一致性问题方案

1、数据实时同步失效 1.1类型:增量、主动 1.2实现方式:强一致性,更新数据库之后主动淘汰缓存,读请求更新缓存,为避免缓存雪崩,更新缓存的过程需要进行同步控制,同一时间只允许一个请求访问数据库,为了保证数据的一致性还要加上缓存失效时间。2、数据准实时更新 2.1类型:增量、被动 2.2实现方式:准一致性,更新数据库后,异步更新缓存,使用多线程技术或者...

2019-10-05 17:08:02 264

原创 构建容器网络-snat

在构建容器网络的时候,一般使用bridge来实现ns与外部网络通信,masquerage算snat的一种变种,被广泛使用。下面的链接对masquerage进行了比较详细的介绍。https://www.cnblogs.com/Dicky-Zhang/p/5934657.html...

2019-04-25 16:38:26 286

原创 基于golang的slice /tumbling window流处理器

针对数据量不大,但流处理业务逻辑繁多的场景,没有需要引入flink那种很重的分布式计算框架的需求而golang的协程模式,天然适合处理多流并发读的场景,因此,最近做了个小工具,基于超时队列技术实现流计算的 slice window、tumbling window本文主要分享特定场景的处理思路,有需要源码的可私聊~...

2019-04-24 16:09:14 447

原创 cb特性

最近需要用到cb,看到一篇对cb介绍比较详细的文章,在此分享。https://sq.163yun.com/blog/article/189804692240617472

2019-04-03 10:32:31 285

原创 Flink 中 timeWindow 滚动窗口边界和数据延迟问题解析

多流join操作需要用到window,window的重点是窗口数据丢失问题看了一些博客,讲的不怎么清晰,这篇讲的较为清晰,在此分享。https://blog.csdn.net/xsdxs/article/details/82415450...

2019-03-21 18:59:12 1569

原创 [kubernetes]helm安装(tiller的坑)

https://blog.csdn.net/wzygis/article/details/84346573

2019-02-21 11:50:50 2813

原创 k8s单机版本安装

最近准备研究k8s现在网上很多教程都是乱写的,下面是两篇比较有意义的博文https://blog.csdn.net/liukuan73/article/details/83116271https://blog.csdn.net/u013355826/article/details/82801482 ...

2019-02-20 15:51:43 4315

转载 知乎request400

真的是细节很重要,就写错了一个字母纠结了半天https://coding.imooc.com/learn/questiondetail/68461.html

2019-02-19 18:49:32 272

转载 解决mysql数据库添加数据时报错:1366

中文数据提交到mysql数据时报了个错误:Warning Code : 1366 Incorrect string value: '\xE5\x9C\xA8' for column 'content' at row 1网上搜了好久才找到问题所在,这是由于建表的时候没有指定数据库字符集这里讲一下我的解决办法:ALTER TABLE todo CONVERT TO CHARACTER S...

2019-02-16 18:53:54 926

转载 ubuntu开机进入initramfs的解决办法

电脑在公司,晚上没关机,第二天启动ubuntu的时候就出现了这个情况,原因可能是由于晚上断电导致的,但是我晚上关掉虚拟机了,所以建议大家,晚上把电脑也关了。开机进入了initramfs界面,输入exit也没用。后来网上看了解决办法,有两种一、使用fsck -y  /dev/sdbn命令,如果这个有用的话,最后输入reboot重启虚拟机就可以了。二、使用fsck/dev/sda1命令(我...

2019-01-09 18:36:32 2146

原创 分布式定时器

界面如图所示,思想是master连接web接入任务配置,worker监听分发scheduler协程,最终组织executor协程运行,log协程收集结果持久化到db,master取db展示。其中worker能够自动续租。客户端用vue+vuex做的,需要源码可以私聊。...

2019-01-05 16:56:40 365

转载 Vue2.0 传值方式

Vue2.0 传值方式:在Vue的框架开发的项目过程中,经常会用到组件来管理不同的功能,有一些公共的组件会被提取出来。这时必然会产生一些疑问和需求?比如一个组件调用另一个组件作为自己的子组件,那么我们如何进行给子组件进行传值呢?如果是电商网站系统的开发,还会涉及到购物车的选项,这时候就会涉及到非父子组件传值的情况。当然你也可以用Vuex状态管理工具来实现,这部分我们后续会单独介绍。我先给大家介...

2019-01-02 13:08:07 237

转载 ubuntu18 install onos problem:

ubuntu18 install onos problem:网上添加的bazel包源$ echo "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list会出现问题,连接不上网,报错如下    命中:1 ...

2019-01-02 13:03:18 547

转载 etcd的一个坑,/x/net/trace抛出panic 问题描述及解决方式

  做项目时使用了Grpc与登陆服务器进行通信,ETCD用来服务的发现。结果刚运行直接崩溃,百思不得其解。经过GOOGLE发现问题所在:https://stackoverflow.com/questions/47938005/panic-http-multiple-registrations-for-debug-requests I found the reason. It's becau...

2018-12-10 16:40:51 893

原创 gin源码跟踪

2018-12-06 13:59:16 493

转载 sparkstreaming处理kafka数据,数据积压问题解决方案

https://blog.csdn.net/ntk1986/article/details/80755888

2018-12-03 12:28:22 7153

原创 基于mybatis的轮子构造

后端多多少少会用到db,java中常用的db架构就是mybatis。先来看看mybatis=====================接口层mybatis的接口层核心类是sqlSessionFactory,SqlSession。其中SqlSession是所有数据库操作的API。Configuration是另一个配置相关的重要的类,Configuration与DefaultSqlSes...

2018-10-20 22:31:23 229

原创 mongodb梳理

 下面做mongodb特性等简单梳理: mongodb的界面管理工具nosql manager for mongodb mysql为例的关系型数据库、mongodb对应的非关系形数据库bson是二进制的json//查询某一集合下所有的数据db.students.find();//往某一个集合中添加数据db.users.insert({"uNa...

2018-10-12 20:36:56 220

转载 springcloud服务追踪Zipkin和spring cloud Sleuth

参考文章一:摘要: 本文简单介绍了如何利用Zipkin对SpringCloud应用进行服务分析。在实际的应用场景中,Zipkin可以结合压力测试工具一起使用,分析系统在大压力下的可用性和性能。设想这么一种情况,如果你的微服务数量逐渐增大,服务间的依赖关系越来越复杂,怎么分析它们之间的调用关系及相互的影响?服务追踪分析一个由微服务构成的应用系统通过服务来划分问题域,通过REST请求服务API来连接服...

2018-05-29 14:38:36 382

转载 Thrift基本流程

1. Thrift类介绍 Thrift代码包(位于thrift-0.6.1/lib/cpp/src)有以下几个目录:concurrency:并发和时钟管理方面的库processor:Processor相关类protocal:Protocal相关类transport:transport相关类server:server相关类 1.1 Transport类(how is transmitted?)负责数...

2018-05-20 18:45:27 547

原创 vue生命周期及实例的属性和方法

vue的生命周期vue实例从创建到销毁的过程,称为生命周期,共八个阶段window.onload=function(){ let vm = new Vue({ el:'#itany', data:{//存储数据 msg:'welcome to itany' }, methods:{ update(){ this.msg='欢迎来到北京!' ...

2018-05-01 22:17:17 861

原创 axios/vue-resource的http请求小结

vue本身不支持发送ajax请求,需要使用vue-resource,axios等插件实现axios是一个基于Promise的HTTP请求客户端,用来发送请求,也是vue2.0官方推荐的,同时不再对vue-resource进行更新和维护安装axios cnpm install axios -S基本用法axios([options])axios.get(url,[options]);传参方式:1.通过...

2018-05-01 13:44:24 376 1

原创 vue基本用法总结

vue.js是一个构建用户界面的框架是一个轻量级MVVM(Model-View-ViewModel)框架,和angular,react框架类似,其实就是所谓的数据双向绑定数据驱动+组件化的前端开发(核心思想)通过简单的api实现**响应式的数据绑定**和**组合的视图组件更容易上手,小巧。angular指令ng-xxx 开头所有属性和方法都存储在$scope中由google维护vue指令以v-xx...

2018-04-30 22:34:58 2806

原创 phxrpc源码解析

https://blog.csdn.net/shanshanpt/article/details/55213287

2018-04-13 12:28:23 444

转载 dpdk多队列机制

多队列网卡是一种技术,最初是用来解决网络IO QoS (quality of service)问题的,后来随着网络IO的带宽的不断提升,单核CPU不能完全处满足网卡的需求,通过多队列网卡驱动的支持,将各个队列通过中断绑定到不同的核上,以满足网卡的需求。常见的有Intel的82575、82576,Boardcom的57711等,下面以公司的服务器使用较多的Intel 82575网卡为例,分析一下多队...

2018-04-08 00:23:45 3806 1

转载 mongo_input_split_size的調整

想要从MongoDB往Hive导数据主要有两种方式1. Hive直接连接MongoDBHive连接MongoDB这篇讲了怎么连接。使用这种方式的好处在于,直接创建一个Hive的表,用于映射MongoDB里的数据。也就是数据仍然还在MongoDB内,创建映射表的时间非常短。但是坏处也同样在这,如果要把数据ETL到Hive表,这种方式必须执行map reduce,一直从MongoDB里面取数据,连接的...

2018-04-01 16:02:42 501

空空如也

空空如也

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

TA关注的人

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