- 博客(68)
- 收藏
- 关注
原创 Influxdb 中的delta-of-delta编码
定义时序数据库中常见的一种时间戳或者数值压缩方法,可以极大地降低数据存储的成本和提高数据写入、查询的性能。参考资料https://www.jianshu.com/p/224103167ddb
2020-06-22 00:55:47
619
1
原创 golang channel传递map
好久不上博客了~~~最近在研究golang,关于通道中传递不同类型的数据,按理说通道中传递的都是值的副本,对于值类型的数据,比如int、string等接收方的修改不会影响到发送方的数据,但是对于map、channel、切片这些引用类型的数据,修改接收方的值也会修改发送方发送的值。1、先使用key为string,value为int的map,发现会有影响2、使用key为string,val...
2019-08-24 20:58:05
3738
1
原创 Docker只有两个容器之间通信,而不被外部发现
docker 容器启动的时候默认--net=bridge,即将容器绑定到docker网桥上,此时在宿主机上可以ping通该容器,有时候我们就像让两个容器之间可以通信,而不被外界所发现,则可以这样做:#本次操作以两个centos容器为例进行#首先启动两个容器,并设置--net=none,这样就不会自动将容器绑定到docker0上了docker run --name centos1 --ne...
2019-06-10 22:06:30
1376
原创 Vue实现简易购物车系统
<div id="carts"> <h1>购物车系统</h1> <table> <tr> <th>序号</th> <th>商品名称</th> ...
2019-06-08 16:01:22
1057
原创 SpringBoot配置Redis序列化
SpringBoot默认使用jdkSerialize方式对存入redis中的内容进行序列化,比如你要存入的key是"hello",而存入redis之后key成了\xo\12\xxx\hello这种类型的值,这显然不能用,因此我们需要自己配置redisTemplate,以下是RedisConfig.java文件!!!!!!!!!!!!!!!!本人使用的版本是1.5.21,注意版本啊,都是泪!!!...
2019-05-30 21:12:39
3258
原创 @OneToMany、@OneToOne、@ManyToMany中的cascade和fetch
cascade:级联操作权限CascadeType.PERSIST:级联持久化,也就是级联保存。比如一个学生有很多门成绩,保存学生了,那么也就会级联保存各门成绩信息CascadeType.REMOVE:级联删除,删除学生了,那么学生的成绩也从数据库中删除CascadeType.MERGE:级联合并,修改学生成绩信息了,那么修改的成绩信息会保存到数据库中,和上面persist的区别类似于...
2019-05-27 22:40:42
3046
原创 feign.FeignException: status 400 reading LoginRegistryService#login(String,String); content:
在使用Feign中血淋淋的教训:1、在服务消费者一方调用服务时,需要新建一个标有@FeignClient注解的接口,在接口中的方法需要绑定参数,使用@RequestParam和@RequestHeader的时候里面的value属性一定不能省啊!!!!!!省了就报IllegalStateException的异常。2、调用服务的时候,消费者接口中的@RequestParam注解中的value值...
2019-05-23 20:40:02
5856
原创 springboot整合mybatis和druid
整合一直出问题,一气之下就把mybatis的东西又看了一遍,争取把里面的配置都做到心中有数,为什么要这么配置,这么配置有什么左右,这个必须弄清楚才行。以下是操作步骤:一、注解写sql版:1、配置pom.xml //druid依赖 <dependency> <groupId>com.alibaba</groupId>...
2019-05-20 22:19:18
1764
原创 微服务工程直接导成镜像
完成微服务代码开发之后,最终的目标就是将其放在容器中运行,从代码到镜像的过程需要分成以下几个部分:1、在pom.xml中添加如下插件<plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin&l...
2019-05-19 18:13:17
449
原创 Rabbitmq | ConnectionException:Connection refused: connect
使用Rabbtimq模拟发送接受消息,在Web界面中新建用户springcloud,tag设置为administer,设置密码为springcloud,启动服务,报错connection refusedspring.rabbitmq.username=springcloudspring.rabbitmq.password=springcloud将用户切换成guest之后重启发现没问...
2019-05-16 11:22:36
3472
原创 Non-resolvable parent POM,Could not find artifact and 'parent.relativePath' points at no local POM
背景:在idea中启动eureka-server、server-provider、ribbon-consumer无误,准备将其放入容器中运行,打包的时候报错[FATAL] Non-resolvable parent POM for com.yamanda:eureka_server01:0.0.1-SNAPSHOT: Could not find artifact com.yamanda:sp...
2019-05-11 17:12:26
2110
原创 I/O error on GET request for "http://HELLO-SERVICE/hello": HELLO-SERVICE;
背景:使用springcloud,服务提供者提供的服务被命名为HELLO-SERVICE,使用ribbon访问服务时,出错访问服务时使用的时RestTemplate,代码如下String res = restTemplate.getForObject("http://HELLO-SERVICE/hello?name=" + name,String .class);意思是识别不出HEL...
2019-05-10 15:20:53
8900
原创 将jar包注册为Linux服务
背景:打好jar包,并在本地运行java -jar xxx.jar无误1、修改pom.xml中关于插件的配置信息<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> ...
2019-05-09 11:08:46
1662
原创 kubernetes node节点加入集群
背景:kubernetes master节点kubeadm init完毕,并且在master节点上启动flannel完成,使用kubectl get nodes 发现master节点处于Ready状态。现在开始执行将node节点加入到集群中的工作,本次操作针对kubernetes:v1.14.1版本,系统centos71、设置docker yum源和kubernetes源,推荐使用阿里云的...
2019-05-02 16:26:14
4635
1
原创 failed to pull image k8s.gcr.io/kube-apiserver:v1.14.1: output: Error response from daemon:
背景:kubeadam init 出错,这也是因为某种神秘的力量导致的k8s.gcr.io连接不上,呵呵解决办法:从dockerhub上收集宝石。。。。对于v1.14.1版本的,本人已经收集完毕,传送门:https://hub.docker.com/u/yamanda执行:kubeadm init --kubernetes-version=v1.14.1 --pod-netw...
2019-05-01 22:46:52
5863
原创 centos添加kubernetes yum 仓库
背景:由于某种神秘原因,kubernetes境外仓库可能访问特别慢,所以需要配置国内的镜像源,使用阿里云的镜像仓库完成此操作0、cd /etc/yum.repos.d/1、vim kubernetes.repo2、在新创建的kubernetes.repo中输入以下内容[kubernetes]name=Kubernetes Repobaseurl=https://mirrors...
2019-05-01 17:08:25
3042
原创 docker中不同network容器之间互相通信
背景:使用docker network create 命令创建了一个新的桥(docker1,子网地址为172.26.0.0/16,网关是172.26.0.1),然后启动容器b1连接到docker1上。docker默认的桥bridge(也就是docker0,子网地址为10.0.0.0/16,默认网关为10.0.0.1),然后启动容器b2连接到docker0上,示意图如下所示:在容器b1和容器...
2019-04-23 12:11:20
2964
原创 java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.createDirectoryWithMo
问题1:java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.createDirectoryWithMo背景:在Linux服务器上配置好hadoop,对HDFS进行命令行操作正确,运行wordcount Demo正常,但在window上使用Java api进行HDFS测试的时候报错。0...
2019-04-06 15:19:19
5850
1
原创 FILETIME和LARGE_INTEGER
需要求从1970年1月1日到现在的微秒时间数值,用到了FILETIME和LARGEINTEGER首先看一下定义//FILETIMEtypedef struct _FILETIME { DWORD dwLowDateTime; DWORD dwHighDateTime;} FILETIME, *PFILETIME, *LPFILETIME;//LARGE_INTEG...
2019-04-03 21:28:28
691
原创 linux中查找文件或者文件中的内容
经常会遇到在Linux中查找文件的位置或者已知某个结构体或者类的名字想知道里面的具体内容,下面将对其进行总结查找文件 如果知道文件的具体名称的话,比如hello.c,使用locate hello.c就可以找到文件的具体位置 如果不知道文件的名称,只知道hell这几个字符,可以使用find进行模糊查询 如果知道文件的大致位置比如/usr,可以写成 find /usr -name hel...
2019-03-19 23:00:42
6213
原创 C++继承和动态分配
分为两种情况:第一种情况,如果派生类中不适用new,这样的话就不需要定义显式析构函数、拷贝构造函数、重载赋值操作符第二种情况,如果派生类中使用new,则必须定义显式析构函数、拷贝构造函数、重载赋值操作符,而且在这三个函数中都必须使用基类的方法来处理基类中的元素,比如在子类中重载赋值操作符,如果不显式调用基类的重载赋值操作符,就会递归调用子类的重载操作符。class baseClass...
2019-03-12 21:38:28
210
1
原创 无法将参数 1 从“void (__cdecl &)(std::promise<int> &,int)”转换为“std::allocator_arg_t
基本上这些类型转换的错误大部分原因是在线程入口函数中使用了引用,但在创建thread的时候给参数少了std::ref()。
2019-03-03 17:03:09
2086
原创 显示实例化和显示具体化
struct man{ int age; double salary;};//显示具体化,指定模板函数中类型,意思是不要使用swap模板来生成函数定义,而是要使用专门为job类型显示定义的函数定义//因为job是一个结构体,所以swap不可能是直接的利用临时变量做赋值,因此需要在这个函数中重新定义swap的方法,在调用的时候需要使用显示具体化,不要用swap模板来生成函数定...
2019-03-02 16:33:38
1677
1
原创 WARN ipc.Client: Failed to connect to server: retries get failed due to exceeded maximum allowed
出现这个问题的原因是hadoop-yarn没有启动,= = ||真是醉了。。。。。
2019-03-01 22:19:53
5378
4
原创 释放类中的静态对象
假设写一个单例类,懒汉式,需要新建一个static的对象,而且需要使用结束后释放这个静态对象,则可以使用嵌套类,在嵌套类中重写嵌套类的析构函数来完成这个工作class MySingleton {public: static MySingleton* getInstance() { //return mySingleton; if (NULL == mySing...
2019-03-01 19:22:00
1556
原创 利用swap彻底清空vector
要清空vector容器,如果仅仅使用clear是不行的,因为只是size变成了0,但容量依然是之前的值,所以可以使用swap函数巧妙的将容量也变成0,看如下代码void freeTestClasses(vector<TestClass *> *testClasses) { for (vector<TestClass *>::iterator it = testCl...
2019-02-28 14:47:45
2777
1
原创 swap函数自定义实现
swap函数大家都很熟悉了,用于将两个对象进行交换,但是在std中swap需要进行一个拷贝构造,两次赋值操作。这对于小对象是可以接受的,但对于较大的对象来书,这个时间可是有点长了,所以可能要在特定的类中自定义swap成员函数。1、对于int型的swap函数,可以使用异或操作符来进行交换,具体看如下代码void my_int_swap(int &int_1,int &int...
2019-02-24 13:46:01
1191
1
原创 OceanBase内存管理
OceanBase系统有一个全局的定长内存池,这个内存池中维护了由64KB大小的定长的内存块组成的空闲链表。 如果申请的内存不超过64KB,则尝试从空闲链表中获取一个64KB的内存块返回给申请者;如果空闲链表为空,需要首先从操作系统中申请若干个大小为64KB的内存块加入到空闲链表中。释放时将64KB的内存块返回给空闲链表中以供下次使用。(有点类似于线程池的意思) 如果申请的内存超过...
2019-02-22 22:33:10
1395
原创 C++嵌套类以及智能指针实现桥接模式
C++嵌套类就是在一个类的内部定义另外一个类。嵌套类只能在外围类中使用。这样做的目的就是为了隐藏细节信息,这样就和桥接模式联系起来了,因为桥接模式的本意也就是将抽象和抽象方法的具体实现相分离,如果具体实现代码量不大,而且只是这个类中需要使用的话,就可以使用嵌套类来完成。嵌套类对象的创建如果使用new和delete的话,还得关注何时销毁这个对象,所以可以使用boost库中的shared_pt...
2019-02-22 12:36:37
549
原创 层次锁
为了避免死锁,可以规定加锁的顺序,因此可以使用层次锁来实现。通过给互斥量封装层次值之一属性,可以确保层次值高的线程可以获得层次值低的锁,反之则不行。简单代码实现如下,可以使用stack来保存已经获得锁的层次值。class HierarchicalMutex {private: mutex inter_mutex_; unsigned long const level_value_; ...
2019-02-20 14:46:09
572
原创 OceanBase中RootServer分析
最近抽时间阅读一下OceanBase的源码,就从RootServer开始吧。OceanBase的RootServer(以下简称Root)的主要功能有集群管理、数据分布以及副本管理。今天集中研究集群管理:1、每个集群内部同一时刻只允许有一台UpdateServer(以下简称Update)对外提供写服务,Root通过租约机制选择唯一的主Update,看一看这部分的源码。 //O...
2019-02-19 22:02:00
1186
原创 时序竞态问题总结
利用alarm和pause实现sleep函数的时候有一个问题,如果系统负载比较严重,在执行玩alarm之后CPU被别的进程抢走了,而且抢走的时间比较长,过了alarm的时间了,此时时间一到发送信号,系统肯定立刻处理信号,但之后执行到pause函数之后,信号已经被发送执行了,此时再调用pause就会一直等待,不会被唤醒了,此时就引出了时序竞态问题。解决办法:使用sigsuspend函数原子操作替...
2019-01-27 15:34:18
414
原创 Dynamo中的HintedHandoff
假定数据存储N份,然后通过DHT定位到K、K+1、......K+N-1服务器中。如果其中的第K+i台机器宕机了,就用第K+N台机器临时代替。如果第K+i台机器重启了,第K+N台机器通过种子节点知道了这件事,就把临时的数据返还给第K+i台机器。这个过程在Dynamo中叫做数据回传(HintedHandoff)。如果判定第K+i台机器永久失效了,就需要把第K+i中的数据复制到第K+N台机器上,使用M...
2019-01-05 19:53:13
531
原创 Linux设置软件开机自启动
总结一下,省的以后老忘,有两种方法,一种方法界面友好型,另外一种方法是自己写脚本界面友好型:使用sysv-rc-confsudo aptitude show sysv-rc-conf //查看有没有安装sysv-rc-conf//如果没安装,安装之sudo aptitude install sysv-rc-conf//然后使用这个命令来决定软件是否开机自启动sy...
2019-01-01 15:23:26
535
原创 QT does not name a type问题
最近用qt练习写一个主窗口点击按钮隐藏主窗口,显示次窗口,此窗口点击按钮隐藏次窗口,显示主窗口的小程序。思路有两个:1、使用信号和槽函数,这个没有太大的问题2、让这两个类互相包含彼此的指针,然后在次窗口类中写一个设置本类中主窗口成员对象的方法,然后传递主窗口对象即可,相当于只写两个槽函数就ok了,但在编译的时候一直提示:does not name a type。后来查资料是两个类相...
2018-12-21 22:12:36
24964
8
原创 dpkg: 处理归档 /var/cache/apt/archives/libexpat1-dev_2.2.5-3_amd64.deb (--unpack)时出错:
使用sudo apt-get install 安装软件的时候报错:dpkg: 处理归档 /var/cache/apt/archives/libexpat1-dev_2.2.5-3_amd64.deb (--unpack)时出错: 正试图覆盖 /usr/include/expat.h,它同时被包含于软件包 expat-devel 2.2.6-2dpkg-deb: 错误: 子进程 粘贴 被信号...
2018-12-12 10:52:05
7731
10
原创 对象的序列化和反序列化
序列化,对象转称字节数组public static byte[] objToBytes(Object obj){ byte[] bytes = null; ByteArrayOutputStream baos = new ByteArrayOutputStream(); ObjectOutputStream oos = null; ...
2018-10-26 22:33:08
137
原创 Socket和ServerSocket中的输入和输出流
Socket指的就是客户端啦,Socket socket = new Socket("localhost",8888);//此处的inputStream用来从连接中拿数据InputStream inputStream = socket.getInputStream();//此处的outputStream用来向连接中取数据OutputStream outputStream = sock...
2018-10-24 20:53:03
2662
原创 海量数据中找到最大的100个数Java版
//维持一个容量为100的小顶堆public static int[] getTheMaxNums(int[] a){ int[] result = new int[100]; for(int i = 0;i<100;i++){ result[i] = a[i]; } int len = result.length; for(int...
2018-09-01 19:14:34
1769
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人