- 博客(40)
- 资源 (1)
- 问答 (4)
- 收藏
- 关注
原创 kafka 集群搭建
1. 集群环境Zookeeper 版本: https://dlcdn.apache.org/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0-bin.tar.gzkafka 版本: https://dlcdn.apache.org/kafka/3.1.0/kafka_2.13-3.1.0.tgz机器集群节点ipOSvm0zk0、broker010.23.243.224CentOS Linux release 8.4.21
2022-01-28 12:43:25
1728
原创 zookeeper 集群部署
zookeeper 集群部署参考:zookeeper集群部署ubuntu16.04搭建jdk1.8运行环境1. 集群环境Zookeeper 版本: https://dlcdn.apache.org/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0-bin.tar.gzJava 版本: https://download.oracle.com/otn/java/jdk/8u321-b07/df5ad55fdd604472a86a45a21
2022-01-25 23:51:51
241
原创 go channel
设计理念在很多主流的编程语言中,多个线程传递数据的方式一般都是共享内存,共享内存需要通过锁这种并发机制来解决数据冲突。虽然 Go 语言中也能使用共享内存加互斥锁进行通信,但是 Go 语言中深受 CSP (Communicating sequential processes,通信顺序进程)理论的影响,提出了自己的设计哲学Do not communicate by sharing memory; instead, share memory by communicating. ——『不要通过共享内存来通信,
2021-11-14 02:36:31
324
原创 context 简介
context 简介 go version go1.16beta1 darwin/arm64 参考链接:深度解密Go语言之context Context 是什么context 中文译作“上下文”,在Go 1.7标准库引入。基于对操作系统的认知,我们知道线程或进程切换时切的就是CPU各种寄存器中的值,而这些数据就是线程或进程的上下文,准确的说,上下文就是该进程或线程放弃CPU时保存到内存的PCB中的处理机(CPU)状态,包括指令计数器、通用寄存器、用户栈指针等;context在..
2021-11-04 23:30:04
1219
原创 go-grpc 代码库及其工具
go-grpc 代码库及其工具1. 什么是 Protocol BufferProtobuf(全称Protocol Buffer)是Google 出品的一种数据描述语言,可类比于json,独立于语言与平台。Protobuf 提供了多种语言的实现:java、c#、c++、go 和 python,每一种实现都包含了相应语言的编译器以及库文件。由于它是一种二进制的格式,总得来说就是更小、更快、更简单、更灵活,目前分别有v2、v3的版本,我们推荐使用v3。具体查看Protocol Buffers的README介
2021-06-07 14:14:04
732
转载 Intel® Xeon® Processor Scalable Family Technical Overview(转译)
转自: https://blog.youkuaiyun.com/maokelong95/article/details/78604037Intel® Xeon® Processor Scalable Family Technical OverviewNote:Intel® Xeon® Scalable Processors with Intel® C620 Series Chipsets,其前称包括 Purley,Skylake-SP 和 Lewisburg。-- Intel Products & S
2021-04-21 23:33:11
870
原创 mongos集群部署
2021-03-13文章目录1. 部署环境组件规划配置`/etc/hosts`2. 部署步骤下载解压环境配置环境变量数据存储目录配置和日志存储位置`mongos server`配置`config server`配置`shard server`配置服务启动启动`config server`启动`shard server`启动`mongos server`3. 分片测试写入数据启用分片查看分片参考链接:mongodb4.0.2分片集群部署MongoDB分片群集部署1. 部署环境.
2021-03-14 15:52:27
1632
原创 哈夫曼编码原理
哈夫曼编码原理参考:百度百科哈夫曼(huffman)树和哈夫曼编码关于哈夫曼树编码1. 简介定义哈夫曼编码(Huffman Coding),又称霍夫曼编码,是Huffman于1952年提出的一种编码方式,是一种可变字长编码(VLC)。该方法完全依据字符出现概率进行构造的平均长度最短的编码,因此也称之为最佳编码。应用得益于哈夫曼编码可以得到一个平均长度最短的码文,因此应用场景很多,在此列举三个:apache负载均衡的按权重请求策略的底层算法路由器的路由算法zip文件的
2021-02-24 00:18:31
15807
11
原创 main的启动过程
文章目录main的启动过程参考链接重点应解答以下问题1. go 的出生1.1 示例1.2 gdb 调试1.2.1 info files1.2.2 添加断点1.3 打印断点Breakpoint 1:_rt0_amd64_linuxBreakpoint 2:_rt0_amd64Breakpoint 3:runtime.checkBreakpoint 4:runtime.argsBreakpoint 5:runtime·osinitBreakpoint 6:runtime.schedinitBreakpoint
2020-12-20 03:50:26
1790
2
原创 go 实现 https server POST 接口
# go 实现 https server POST 接口参考链接:* TLS完全指南(一):TLS和安全通信 [https://zhuanlan.zhihu.com/p/26684050](https://links.jianshu.com/go?to=https%3A%2F%2Fzhuanlan.zhihu.com%2Fp%2F26684050)* TLS完全指南(二):OpenSSL操作指南[实际操作失败] [https://zhuanlan.zhihu.com/p/26684071](ht.
2020-12-05 19:39:53
2632
5
转载 eval 变量替换
语法:eval cmdLine含义:eval会对后面的cmdLine进行两遍扫描,如果第一遍扫描后,cmdLine是个普通命令,则执行此命令;如果cmdLine中含有变量的间接引用,则保证间接引用的语义。举例如下:[root@10-13-104-118 test]# set 11 22 33 44[root@10-13-104-118 test]# echo $4 # 输出最后一个参数44[root@10-13-104-118 test]# echo "\$$#" # 本意:$# 获取参数长.
2020-07-14 16:59:56
772
原创 ubuntu网卡信息
系统:ubuntu18.04内核:Linux version 5.3.0-61-generic1. 查看网卡信息lo表示local,即本地回环enp0s25:en表示ethernet以太网。p0s2表示网卡在 PCI的bus=0, 插槽slot=2,而之前的网卡命名则是eth0、eth2等,逻辑上进行编号。5是什么我也不知道?。。。。wlp3s0:wl表示wlan(Wireless Local Area Network)无线局域网,同上,PCI bus=3, 插槽slot=0。与以前的n.
2020-07-05 16:54:41
1126
原创 网络编程:构建 HTTP服务
1.http 模块Node的 http 模块包含对HTTP处理的封装。在Node中,HTTP服务继承自TCP服务器( net 模块),它能够与多个客户端保持连接,由于其采用事件驱动的形式,并不为每一个连接创建额外的线程或进程,保持很低的内存占用,所以能实现高并发。HTTP服务与TCP服务模型有区别的地方在于,在开启 keepalive 后,一个TCP会话可以用于多次请求和响应。TCP服务以 ...
2020-01-03 17:57:40
5334
原创 网络编程:构建 TCP 服务
1. 创建简易TCP服务端var net = require('net');var server = net.createServer();server.on('connection', function(socket){ socket.write("欢迎光临《深入浅出Node.js》示例:\n");});server.on('end', function () { c...
2020-01-02 17:37:51
234
原创 Promise/Deferred模式
1. Promise/Deferred模式用来干嘛的???先看一个异步调用:$.get('/api', { success: onSuccess, error: onError, complete: onComplete }); 在上面的异步调用中,必须严谨地设置目标。那么是否有一种先执行异步调用,延迟传递处理的方式呢?答案是Promise...
2019-12-31 15:18:44
560
原创 Node的异步编程
1. 函数式编程1.1 高阶函数定义: 高阶函数是可以把函数作为参数,或是将函数作为返回值的函数。除了通常意义的函数调用返回外,还形成了一种后续传递风格(Continuation Passing Style)的结果接收方式,而非单一的返回值形式。后续传递风格的程序编写将函数的业务重点从返回值转移到了回调函数中:function foo(x, bar) { retur...
2019-12-30 02:10:13
442
原创 区块链六层体系简介
区块链基础理论区块链技术包含很多技术模块,数字签名、各种密码学原理、共识机制、数据存储和分发、安全防卫等。1.1 区块链体系结构1.1.1 区块链六层体系1. 六层体系区块链类比OSI标准可分为六层:应用层、合约层、激励层、共识层、网络层和数据层。2. 各层主要工作部分:应用层:可编程货币、可编程金融、可编程社会 合约层:脚本代码、算法机制、智能合约 激励层:发行机制、...
2019-11-21 02:07:24
6357
原创 Go 的 Runtime 与 MPG模式
Go 的 Runtime 与 MPG模式参考博客:https://i6448038.github.io/2017/12/04/golang-concurrency-principle/ 参考博客:https://blog.youkuaiyun.com/u011228889/article/details/798584891、Runtime作用Go 的 Runtime 是整个Go语言的核心,负责协程...
2019-10-06 14:16:00
342
原创 链表中环的入口地址
题目描述给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。方法1:1)定义快慢指针,找出相遇节点。2) 相遇后获取环中节点数量,即快指针不动,慢指针继续走,再次相遇时满指针刚好走了一个环,并且满指针继续走时将其插入vector中3) 从链表头开始遍历,找到第一个vector中存在的节点即为入口环节点class Solution {public:...
2019-09-05 13:32:36
159
原创 进程概念
进程概念进程的定义进程是指一个具有一定独立功能的程序关于某个数据集合的一次运行活动。进程与程序的连续与区别进程是程序在CPU上的一次执行过程,是一动态概念。程序时指令的有序集合,是一个静态概念。 进程是一个能独立运行的单位。 进程是竞争计算机系统有限资源的基本单位。进程一定包含一个程序,因为程序是进程完成相应功能的逻辑描述;而一个程序可以对应多个进程。进程的状态和变迁进程...
2019-09-05 00:50:16
413
原创 数据库恢复技术
1、事务1.1概念事务指的是满足 ACID 特性的一组操作,可以通过 Commit 提交一个事务,也可以使用 Rollback 进行回滚。SQL中,定义事务的语句一般有三条:BEGIN TRANSACTION; # 表示事务开始COMMIT; # 表示提交,即提交事务的所有操作ROLLBACK; # 表示回滚,若事务运行过程中发生了某种...
2019-04-27 21:45:03
782
原创 数组中重复的数字
1、数组中重复的数字在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。1)解法1/* 解题思路:插入排序*/bool duplicate(int numbers[], ...
2019-04-27 00:11:32
238
原创 二叉搜索树转有序双向链表
1、二叉搜索树转有序双向链表题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。#include <iostream>#include <list>#include <stack>using namespace std;struct TreeNode { i...
2019-04-22 17:35:46
288
原创 青蛙跳台阶
1、跳台阶/* * 题目描述: * 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 * 解题思路: * 跳上一个n级的台阶总共有f(n)种跳法 * 假设最后一跳跳k个阶梯,那么还有f(n-k)种跳法 * 显然 k<=n,则f(n) = f(n-n) + f(n-(n-1)) + f(n-(n-2)) +...+...
2019-04-22 11:26:24
111
原创 二进制中1的个数
1、二进制中1的个数解题思路:理解 n = n & (n-1);以n = 13作说明:假设 n = 13,则二进制表示为 n = 1011第一次: n = 1011 & 1010 = 1010第二次: n = 1010 & 1001 = 1000第三次: n = 1000 & 0111 = 0000不难发现 n-1 的二进制实现了将 n...
2019-04-22 10:38:12
196
原创 数组中出现次数超过一半的数
题目描述: 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。1、方法一/* * 采用阵地攻守的思想: * 第一个数字作为第一个士兵,守阵地;count = 1; * 遇到co...
2019-04-21 19:53:55
144
原创 函数指针
1、函数指针的定义与使用#include <iostream>using namespace std;class test{public: test() { cout<<"constructor"<<endl; } int fun1(int a, char c) { cout...
2019-04-21 17:29:57
115
原创 变量作用域
C++ 变量根据定义的位置的不同的生命周期,具有不同的作用域,作用域可分为 6 种:全局作用域,局部作用域,语句作用域,类作用域,命名空间作用域和文件作用域。从作用域看:全局变量具有全局作用域。全局变量只需在一个源文件中定义,用extern就可以作用于所有的源文件。当然,其他不包含全局变量定义的源文件需要用extern 关键字再次声明这个全局变量。静态全局变量也具有全局作用域,它与全局...
2019-04-21 13:06:59
246
原创 数组奇偶重排
/* * 2019-04-06 * 题目描述: * 输入一个整数数组,实现一个函数来调整该数组中数字的顺序, * 使得所有的奇数位于数组的前半部分,所有的偶数位于数组的 * 后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 */#include <iostream>#include <vector>using namespace std;...
2019-04-06 21:42:27
545
转载 SQL Error: 1064, SQLState: 42000错误原因(SQL关键字表)
保留字被引起来后可以用作识别符。如果在表中使用这些会报1064,42000错误。ADD ALL ALTER ANALYZE AND AS ASC ASENSITIVE BEFORE BETWEEN BIGINT BINARY BLOB BOTH BY CALL CASCADE CASE CHANGE...
2019-04-04 16:31:34
32706
转载 C++ explicit
原文链接:http://www.cnblogs.com/this-543273659/archive/2011/08/02/2124596.htmlexplicit作用:在C++中,explicit关键字用来修饰类的构造函数,被修饰的构造函数的类,不能发生相应的隐式类型转换,只能以显示的方式进行类型转换。explicit使用注意事项explicit 关键字只能用于类内部的构造函数...
2019-04-03 16:17:53
125
原创 伸展树实现
1、类定义文件SPTree.h#include <iostream>enum ResultCode{UnderFlow,OverFlow,Success,Duplicate,Fail,NotPresent};template <class T>struct BTNode{//二叉树结点类 BTNode(const T &x):eleme...
2019-04-01 15:34:49
426
原创 链表倒数第k个结点
1、链表倒数第k个结点题目描述:输入一个链表,输出该链表中倒数第k个结点。解题思路:快慢指针。#include<iostream>using namespace std;class ListNode { int val; struct ListNode *next;public: ListNode(int x) :val(x), next(...
2019-03-31 20:44:42
102
原创 排序
1、array.cpp文件在array.cpp文件先定义好初始化函数与打印函数#include<iostream>using namespace std;/* * 函数功能:初始化数组 * 返回值:返回插入元素个数 */template <class T>int initAraay(T a[],int _size = 100){ T elem;...
2019-03-31 15:34:15
138
原创 数字电路课程实验三四
目录数字逻辑实验报告(2)一、Verilog HDL设计数字逻辑电路1、实验名称2、实验目的3、实验所用设备4、实验内容5、实验方案设计6、实验结果记录二、Verilog HDL设计较复杂数字逻辑电路1、实验名称2、实验目的3、实验所用组件4、实验内容5、实验方案设计数字逻辑实验报告(2)一、Verilog HDL设计数字逻辑电路...
2019-03-27 12:20:29
3403
原创 数电课程实验一二
数字逻辑实验报告(1) 数字逻辑实验1 一、系列二进制加法器设计50% 二、小型实验室门禁系统设计50% 总成绩 评语:(包含:预习报告内容、实验过程、实验结果及分析) ...
2019-03-27 12:10:01
16089
1
原创 OS实验三 共享内存与进程同步
简单了解共享内存:http://lobert.iteye.com/blog/17460411 实验目的与要求1、掌握Linux下共享内存的概念与使用方法;2、掌握环形缓冲的结构与使用方法;3、掌握Linux下进程同步与通信的主要机制。2实验内容利用多个共享内存(有限空间)构成的环形缓冲,将源文件复制到目标文件,实现两个进程的誊抄。3 实验过程与结果实验过程:...
2018-09-29 17:48:46
3761
2
原创 OS实验二 线程同步与通信
(简单了解信号量函数(semget、semop、semctl)及其范例:https://blog.youkuaiyun.com/guoping16/article/details/6584043)1 实验目的与要求1、掌握Linux下线程的概念;2、了解Linux线程同步与通信的主要机制;3、通过信号灯操作实现线程间的同步与互斥。2 实验内容通过Linux多线程与信号灯机制,设计并实现...
2018-09-29 17:40:05
2694
原创 OS实验一 进程控制
实验一 进程控制简单了解:信号量:https://blog.youkuaiyun.com/dlutbrucezhang/article/details/8821690管道机制:https://blog.youkuaiyun.com/rengui1228/article/details/729777971、编写程序,演示多进程并发执行和进程软中断、管道通信。#include<signal.h&...
2018-09-29 17:14:19
2191
2
原创 使用网络协议分析仪Wireshark
环境操作系统:运行Win10操作系统的PC一台网络平台:以太网机器的IP地址:IPv4:xxxxxxxxxxxx实验目的1)能够正确安装配置网络协议分析仪Wireshark2)熟悉使用Wireshark分析网络协议的基本方法3)加深对协议格式、协议层次和协议交互过程的理解。实验内容及步骤1.安装网络协议分析仪安装wireshark版本2.6.3。双击wiresha...
2018-09-29 16:24:05
9075
ubuntu18.04 Desktop 配置kvm网络
2020-07-05
有什么工具可以找出一个nodejs项目中的所有全局变量么
2019-12-17
mysql创建自参照表怎么插入第一条记录
2019-04-24
二进制的翻转 十进制怎么转为二进制
2017-03-24
TA创建的收藏夹 TA关注的收藏夹
TA关注的人