自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 收藏
  • 关注

转载 如何高效实用 Git SlowGO

场景假设有一个项目,要开发下一代的 Facebook,你就是这个项目的技术 leader,你的团队有3个开发人员:Alice:1年开发经验Bob:1年开发经验John:3年开发经验You:这个项目的技术 leaderGit 中的开发过程Master branch 主分支1)主分支始终包含线上产品的代码。2)任何人,包括技术 leader,都不允许直接修改主分支上的代码,因为主分支...

2020-03-08 13:08:53 136

原创 分布式事务框架 Seata

Seata 的3个基本组成部分事务协调器(TC):维护全局事务和分支事务的状态,驱动全局提交或回滚。事务管理器(TM):用于开启全局事务、提交或者回滚全局事务,是全局事务的开启者。资源管理器(RM):用于分支事务上的资源管理,向TC注册分支事务,上报分支事务的状态,接受TC的命令来提交或者回滚分支事务。Seata管理的分布式事务的典型生命周期TM向TC请求发起一个全局事务,TC返回一个...

2020-03-08 12:56:33 220

原创 dubbo 设计上的基本常识

谈谈扩充式扩展与增量式扩展配置设计设计实现的健壮性防痴呆设计扩展点重构

2020-02-05 14:27:58 118

原创 Java并发编程之CyclicBarrier

栅栏类似于闭锁,它能阻塞一组线程直到某个事件的发生。栅栏与闭锁的关键区别在于,所有的线程必须同时到达栅栏位置,才能继续执行。闭锁用于等待事件,而栅栏用于等待其他线程。CyclicBarrier可以使一定数量的线程反复地在栅栏位置处汇集。当线程到达栅栏位置时将调用await方法,这个方法将阻塞直到所有线程都到达栅栏位置。如果所有线程都到达栅栏位置,那么栅栏将打开,此时所有的线程都将被释放,而栅栏将被...

2020-01-23 00:11:47 112

原创 tcp socket的backlog参数

syns queue用于保存半连接状态的请求,其大小通过/proc/sys/net/ipv4/tcp_max_syn_backlog指定,一般默认值是512,不过这个设置有效的前提是系统的syncookies功能被禁用。互联网常见的TCP SYN FLOOD恶意DOS攻击方式就是建立大量的半连接状态的请求,然后丢弃,导致syns queue不能保存其它正常的请求。accept queu...

2019-12-23 15:02:54 105

原创 Kafka: 用于日志处理的分布式消息系统

本文为《Kafka: a Distributed Messaging System for Log Processing》的全文翻译,为了让大家原汁原味的领悟到kafka的设计精髓,所以采用直译并适当在括号中添加了作者观点。本文为作者原创文章,转载请保留出处和链接摘要日志处理已成为消费者互联网公司数据通道的一个关键组成部分。我们介绍卡夫卡(Kafka),一种为了在低延迟下收集和传递大容量...

2019-12-16 21:54:08 474 1

原创 ZAB与Paxos的联系和区别

共同点:都存在一个类似于Leader进程的角色,由其负责协调多个Follower进程的运行。Leader进程都会等待超过半数的Follower做出正确的反馈后,才会将一个提议进行提交。在ZAB协议中,每个Proposal中都包含了一个epoch值,用来代表当前的Leader周期,在Paxos算法中,同样存在这样的一个标识,名字为Ballot。区别:Paxos算法中,新选举产生的主进...

2019-12-13 11:23:58 431

原创 为什么读写权限控制要设在不同的位上

比如 rwx 权限,如果我们分别用三个权限表示要占用三倍的空间,就是三个 Integer,如果我们设置为100表示读,010表示写,110表示读写,在代码中我们可以设置 SelectionKey.OP_WRITE | SelectionKey.OP_READ,其中SelectionKey.OP_READ = 100,SelectionKey.OP_WRITE = 010,那么 SelectionK...

2019-12-01 15:52:49 87

原创 短轮询和长轮询的区别到底是什么

首先来看这一段话Kafka使用短轮询方式,实时性取决于轮询间隔时间RocketMQ使用长轮询,同Push方式实时性一致,消息的投递延时通常在几个毫秒。看起来云里雾里的,那么长轮询和短轮询到底有什么区别?短轮询短轮询是服务器收到请求不管是否有数据都直接响应请求受到响应隔一段时间在发送同样的请求查询是否有数据;缺点:实时性低长轮询长轮询是服务器收到请求后如果有数据, ...

2019-11-15 18:44:50 2221

原创 RocketMQ简介

Name Server 是一个几乎无状态节点,可集群部署,节点之间无任何信息同步Broker 部署相对复杂,Broker 分为 Master 与 Slave,一个 Master 可以对应多个 Slave,但是一个 Slave 只能对应一个 Master,Master 与 Slave 的对应关系通过指定相同的 BrokerName,不同的 BrokerId 来定义,BrokerId为 0 ...

2019-11-05 16:01:41 102

原创 kafka 安装部署教程

kafka 安装部署教程1. 下载官网链接 http://kafka.apache.org/downloads浙大源 http://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.3.1/kafka_2.12-2.3.1.tgz2. 解压tar -zxvf kafka_2.11-0.11.0.1.tgz3. 配置单节点3.1 配置单节点 zo...

2019-11-03 13:17:55 141

原创 大学期间看的部分书目汇总

基础书算法竞赛入门经典训练指南刘汝佳,陈锋编著刘汝佳著作,学计算机的必看Ubuntu Linux从入门到精通陶松[等]编著Linux入门教程,这本书其实逻辑有点乱,适合看过视频教程再来算法与高级语言程序设计高飞,白霞主编数据结构入门教材,比较一般分布式计算、云计算与大数据林伟伟,刘波编著分布式入门教材数据结构与算法瞿有甜编著数据结构入门教材...

2019-10-29 10:41:46 255 1

原创 TCP之Nagle算法

TCP之Nagle算法&&延迟ACK为了减少广域网的小分组数目,从而减小网络拥塞的出现;该算法要求一个tcp连接上最多只能有一个未被确认的未完成的小分组,在该分组ack到达之前不能发送其他的小分组,tcp需要收集这些少量的分组,并在ack到来时以一个分组的方式发送出去;其中小分组的定义是小于MSS的任何分组;该算法的优越之处在于它是自适应的,确认到达的越快,数据也就发哦送的越...

2019-10-20 11:20:11 168

原创 从 kafka 源码中学习到的编程技巧(一)

从 kafka 源码中学习到的编程技巧(一)直接看这个例子,可以避免很多开发中的拼写错误。package com.alibaba.kafka;import java.util.Properties;public class App { private static String BOOTSTRAP_SERVER = "boostrap.server"; private...

2019-10-15 11:35:28 123

原创 关于中间件源码中的线程休眠 Thread.Sleep(0) vs Thread.Sleep(1)

Thread.Sleep(0)Sleep 的意思是告诉操作系统自己要休息 n 毫秒,这段时间就让给另一个就绪的线程吧。当 n=0 的时候,意思是要放弃自己剩下的时间片,但是仍然是就绪状态,其实意思和 Yield 有点类似。但是 Sleep(0) 只允许那些优先级相等或更高的线程使用当前的CPU,其它线程只能等着挨饿了。如果没有合适的线程,那当前线程会重新使用 CPU 时间片。If you sp...

2019-10-08 13:04:52 128

原创 RocketMQ 安装部署教程详解

RocketMQ 安装部署教程详解Linux 环境OS: Ubuntu 16.04 LTS x64系统配置: 1C/2G/5MRocketMQ: 4.5.2JDK: 1.8.0_201Maven: 3.6.1Git1. 安装 gitapt-get updateapt install -y git2. 安装 jdk8u201wget http://lzmx.oss-cn...

2019-10-07 20:18:36 565

原创 RocketMQ 快速入门

RocketMQ 快速入门1 基本样例在基本样例中我们提供如下的功能场景:使用RocketMQ发送三种类型的消息:同步消息、异步消息和单向消息。其中前两种消息是可靠的,因为会有发送是否成功的应答。使用RocketMQ来消费接收到的消息。1.1 加入依赖:maven:<dependency> <groupId>org.apache.rocketmq...

2019-10-07 11:32:49 128

原创 JVM调优参数总结

JVM调优参数总结Xmn、Xms、Xmx、Xss都是JVM对内存的配置参数。堆内存分配JVM初始分配的内存由-Xms指定,默认是物理内存的1/64JVM最大分配的内存由-Xmx指定,默认是物理内存的1/4默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制;空余堆内存大于70%时,JVM会减少堆直到 -Xms的最小限制。因此服务器一般设置-Xms、-Xmx相等以避免在每次...

2019-10-03 17:57:58 111

原创 领域驱动设计和贫血、失血、充血模型

事物脚本: 事务脚本的核心是过程,通过过程的调用来组织业务逻辑,每个过程处理来自表现层的单个请求。大部分业务应用都可以被看成一系列事务,从某种程度上来说,通过事务脚本处理业务,就像执行一条条Sql语句来实现数据库信息的处理。事务脚本把业务逻辑组织成单个过程,在过程中直接调用数据库,业务逻辑在服务(Service)层处理。领域模型: 领域模型的特点也比较明显, 属于面向对象设计,领域模型具备自己的...

2019-09-23 13:07:36 207

原创 2019.9.10 哔哩哔哩秋招笔试题解

2019.9.10 哔哩哔哩笔试题解两个字符串最小匹配。对N开方,然后枚举可行解,应该是判断有问题,有一个测试点一直过不去,不知道什么问题。package com.bilibili;import java.util.Scanner;public class Main2 { public static void main(String[] args) { ...

2019-09-10 21:13:17 962

原创 字节跳动秋招第三次笔试思路分享

数组暴力模拟的,O(n^2)import java.util.Scanner;public class Main1 { private static void work() { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] height = new ...

2019-09-08 21:12:51 273

原创 操作系统资源预分配算法 银行家算法C++模拟

#include <cstdio>#include <iostream>using namespace std;typedef struct Node { int num; struct Node *next;}*LinkList, *pNode; LinkList get_empty_list() { LinkList head = ...

2019-07-13 15:12:18 989

原创 LRU cache原理C++实现

#include <cstdio>#include <iostream>using namespace std;typedef struct Node { int num; struct Node *next;}*LinkList, *pNode; LinkList get_empty_list() { LinkList head = ...

2019-07-13 15:08:58 120

原创 Java报错could not find java.dll

报错Error: could not find java.dllError: Could not find Java SE Runtime Environment.解决打开系统变量Path,发现第一个路径是:C:\ProgramData\Oracle\Java\javapath;原来运行时,系统自动寻找这个路径下面的javapath,当然是会出错了;解决方法:将我们设置的JDK、JR...

2019-05-10 20:03:10 678 1

原创 谨以此文纪念2019年春招

谨以此文纪念2019年春招前言整个三四月,一直在背知识点,感觉好多内容没有复习到位。每天刷着leetcode和ZOJ,逛着牛客网看又有哪家开始面试,每天的心情就像一个“W”。看过别人发的腾讯大厦,幻想过腾讯大厦向外看的感觉。大一暑假去过阿里杭州园区,担忧自己有没有机会再去。真的没想到迷茫中的自己等来了腾讯,又迎来了阿里。开发新产品的意义就在于能够让人们更好的科技的时代中生活,我依然有...

2019-04-20 11:40:56 1549 1

原创 volatile不能保证原子性

由于volatile保证了可见性,那么在每个线程中对inc自增完之后,在其他线程中都能看到修改后的值,所以有10个线程分别进行了1000次操作,那么最终inc的值应该是1000*10=10000。这里面就有一个误区了,volatile关键字能保证可见性没有错,但是上面的程序错在没能保证原子性。可见性只能保证每次读取的是最新的值,但是volatile没办法保证对变量的操作的原子性。面试完才知道。...

2019-04-13 21:30:33 149

原创 谨以此文纪念2019年3月春招

谨以此文纪念2019年3月春招简历情况本科大三,5%。计算机视觉深度学习项目2个(一大一小),大项目论文投了《计算机应用》。浙江省“新苗”科技创新项目立项,绍兴市科技创新立项。ACMer,看过STL和JVM,非常熟悉数据结构。技术栈:C++/Java/Python比较均衡,了解Linux和docker,设计模式。生活中:计算机社团社长,大学生暑期社会实践团队负责人。看的书:机器学...

2019-04-01 13:33:39 1253 1

原创 最长非降子序列nlogn C++实现

#include <iostream>#include <algorithm>#include <vector>using namespace std;int main(){ int n, x; vector<int> v, vec; cin >> n; for (int i = 0; i &l...

2019-03-27 13:47:08 272

原创 字节跳动2020届春招开发岗笔试 03.16 C++题解

第一次参加在线笔试有点紧张,之前参加过不少ACM,心态还好,80分钟左右解决4题由于第三题看错题意,以为要DP解决,后来发现发了公告然后又去读了遍题 T_T!! 然后…楼主投的开发岗,附上AC代码(按解题顺序),代码略带有ACM风格,希望大家不要介意贪心 没什么好说的,200-&gt;17,这里要1024减一下,浪费了两分钟#include&lt;cstdio&gt; #includ...

2019-03-16 15:11:16 1509

原创 Ubuntu安装jdk tomcat并发布web全过程

OS: ubuntu 16.04 server首先在Oracle官网下载找到Java download 同意协议以后 点 java8的linux-64安装包文件名 jdk-8u201-linux-x64.tar.gz(1) 将安装包拷贝到/opt目录下​ sudo cp jdk-8u181-linux-x64.tar.gz /opt(2) 在/opt目录下创建java目录,并且将所有权...

2019-03-11 20:27:36 148

原创 一些关于RocketMQ的心得

消息中间件需要解决哪些问题?Message PriorityRocketMQ所有消息都是持久化的,所以如果按照优先级构成优先队列,开销会非常大。压缩业务优先级。RocketMQ使用多级优先级代替了精确优先级,例如按优先级排到高中低三个队列里面,解决绝大部分的优先级问题。业务在消费消息的时候往往使异步处理,所以2的策略对业务影响并不大。Message OrderRocketMQ可以严格...

2019-03-01 16:01:02 325

原创 Python实现json转csv格式

利用Python实现json格式转换为csv文件格式前言本文是学校的课程设计,这里我没有用封装好的json库来实现,而是把读进来的文件当一个字符串来处理,核心函数其实是python的eval()类型转换函数。什么是 JSON?我们要考虑到json格式下key-value对的结构是无序的。JSON:JavaScript Object Notation(JavaScript 对象表示法),是存...

2019-01-06 16:45:20 9156 2

原创 哈夫曼树模板

哈夫曼树模板#include &lt;iostream&gt;#include &lt;queue&gt;#include &lt;vector&gt;#include &lt;cstring&gt;#include &lt;algorithm&gt;using namespace std;#define NULLCHAR '*'#define MAXBUFROW 1010#d...

2018-11-07 19:54:28 249

原创 nvidia-docker 容器jupyter安装ssh全教程

nvidia-docker 容器jupyter安装ssh全教程nvidia-docker run -it -p 8888:8888 -p 2222:22 --ipc=host -v /data:/data ufoym/deepo:all-jupyter-py36 jupyter notebook --no-browser --ip=0.0.0.0 --allow-root --NotebookA...

2018-11-02 11:38:32 438

原创 MSSQL on docker 部署

MSSQL on docker 部署方式:微软官方文档在Docker上安装MSSQL(SQL Server)命令记录docker pull microsoft/mssql-server-linux docker run --name MSSQL_1433 -m 512m -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=yourStrong(!)Password...

2018-09-26 13:56:10 377

原创 机器学习分类算法 以Iris DataSet鸢尾花数据集为例

机器学习分类算法_以Iris DataSet鸢尾花数据集为例环境检查 %load_ext watermark %watermark -a “Terrances” -u -d -p numpy,pandas,matplotlibTerrances last updated: 2018-08-02 numpy 1.15.0 pandas 0.20.1 matpl...

2018-08-02 22:52:18 4509

空空如也

空空如也

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

TA关注的人

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