自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(123)
  • 资源 (5)
  • 收藏
  • 关注

原创 分布式ID生成方法

美团的Leaf:https://tech.meituan.com/2017/04/21/mt-leaf.html

2019-05-31 15:28:48 238 1

原创 最短无序连续子数组

题目描述给定一个整数数组,你需要寻找一个连续的子数组,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。你找到的子数组应是最短的,请输出它的长度。示例 1:输入: [2, 6, 4, 8, 10, 9, 15]输出: 5解释: 你只需要对 [6, 4, 8, 10, 9] 进行升序排序,那么整个表都会变为升序排序。说明 :输入的数组长度范围在 [1, 10,000]...

2019-05-30 14:33:10 756 4

原创 字符串相乘

题目描述给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。示例 1:输入: num1 = "2", num2 = "3"输出: "6"示例 2:输入: num1 = "123", num2 = "456"输出: "56088"说明:num1 和 num2 的长度小于110。num1 和 nu...

2019-05-30 12:05:20 1358 1

原创 全排列

题目描述给定一个没有重复数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]思路1:回溯算法关于回溯算法,传送门public List<List<Integer>> permute(int[] nums...

2019-05-30 10:51:20 105

原创 HashMap实现LRU(最近最少使用)缓存更新算法

最近阿里巴巴电话面试被问到了如何使用固定容量的HashMap,实现LRU算法。当时一脸懵逼,平时用HashMap也就用来快速存取数据而已,容量都是不限的。想了半天,想到对node节点进行扩展,加入引用计数,然后到达指定容量后,删除引用计数最少的。面试官质疑这样效率太低了,能不能优化下。想到删除时,需要遍历所有元素,代价为O(n),太大了。想到可以用最小堆来进行筛选。被问到建堆的节点值是什么,...

2019-05-30 07:54:44 3550 3

原创 接雨水

题目描述给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。 感谢 Marcos 贡献此图。示例:输入: [0,1,0,2,1,0,1,3,2,1,2,1]输出: 61、 暴力法/** *接雨水...

2019-05-29 16:16:59 544 1

原创 字母异位词分组

给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。示例:输入: ["eat", "tea", "tan", "ate", "nat", "bat"],输出:[ ["ate","eat","tea"], ["nat","tan"], ["bat"]]说明:所有输入均为小写字母。不考虑答案输出的顺序。解答:public cla...

2019-05-29 13:57:20 467

原创 Java面试题

1、Java基本类型所占字节boolean false/true(理论上占用1bit,1/8字节,实际处理按1byte处理)byte 1字节short 2字节int 4字节long 8字节char 2字节(C语言中是1字节)可以存储一个汉字float 4字节double 8字节2、String类能被继承吗,为什么https:/...

2019-05-28 21:36:30 169

原创 负载均衡基础

1、什么是负载均衡(Load balancing)在网站创立初期,我们一般都使用单台机器对台提供集中式服务,但是随着业务量越来越大,无论是性能上还是稳定性上都有了更大的挑战。这时候我们就会想到通过扩容的方式来提供更好的服务。我们一般会把多台机器组成一个集群对外提供服务。然而,我们的网站对外提供的访问入口都是一个的,比如www.taobao.com。那么当用户在浏览器输入www.taobao.co...

2019-05-28 15:26:46 190

原创 MQ问题集(kafka主从同步与高可用,MQ重复消费、幂等)

1.kafka主从同步与高可用2.MQ重复消费、幂等

2019-05-28 10:50:31 765

原创 kafka吞吐量高的原因

1.顺序读写2.零拷贝3.分区(并行能力)4.批量发送5.数据压缩

2019-05-28 09:53:48 6281

原创 maven排除依赖冲突问题

今天碰到了一个诡异的问题。jedis版本原来用的是2.9.0,想要替换成3.0.1,涉及到父pom,搞了半天,试了各种办法,版本都改不过来。项目依赖的始终是2.9.0,并且从当前pom到父pom,都找不到在哪里指定了2.9.0。最终,采取下述方法1,问题解决。maven依赖冲突一般有四种解决方式,按照优先级(从高到低)介绍:1. 依赖管理(所有版本锁定)在配置文件pom.xml中先声明...

2019-05-27 21:08:41 19497 1

原创 RocketMq重试及消息不丢失机制

1、消息重试机制由于MQ经常处于复杂的分布式系统中,考虑网络波动、服务宕机、程序异常因素,很有可能出现消息发送或者消费失败的问题。因此,消息的重试就是所有MQ中间件必须考虑到的一个关键点。如果没有消息重试,就可能产生消息丢失的问题,可能对系统产生很大的影响。所以,秉承宁可多发消息,也不可丢失消息的原则,大部分MQ都对消息重试提供了很好的支持。RocketMQ为使用者封装了消息重试的处理流程,无...

2019-05-27 15:57:49 7111 1

转载 聊一聊顺序消息(RocketMQ顺序消息的实现机制)

本文来自:https://www.cnblogs.com/hzmark/p/orderly_message.html当我们说顺序时,我们在说什么?日常思维中,顺序大部分情况会和时间关联起来,即时间的先后表示事件的顺序关系。比如事件A发生在下午3点一刻,而事件B发生在下午4点,那么我们认为事件A发生在事件B之前,他们的顺序关系为先A后B。上面的例子之所以成立是因为他们有相同的参考系,即他...

2019-05-27 15:09:51 1039

原创 常见消息队列对比

一、消息队列概述消息队列中间件是分布式系统中重要的组件,主要解决应用解耦,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构。目前使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ二、消息队列应用场景以下介绍消息队列在实际应用中常用的使用场景。异步处理,应用解耦,流量削锋和消息通讯四个场景。2.1异步处理场景...

2019-05-27 13:58:32 8059

转载 下一代微服务架构基础:ServiceMesh?

最近,ServiceMesh(服务网格) 概念在社区里头非常火,有人提出 2018 年是 ServiceMesh 年,还有人提出 ServiceMesh 是下一代的微服务架构基础。作为架构师,如果你现在还不了解 ServiceMesh 的话,是否感觉有点落伍了?那么到底什么是 ServiceMesh?它的诞生是为了解决什么问题?企业是否适合引入 ServiceMesh?通过这篇文章,将为你一一...

2019-05-27 11:29:11 265

原创 SOA和微服务

一、面向服务的架构SOASOA代表了面向服务的架构。 SOA是一种使用松耦合的黑盒子服务构建业务应用的体系架构,这些服务可以通过编排连接在一起以实现特定的功能。面向服务的架构(Service-Oriented Architecture)是一种软件体系结构,应用程序的不同组件通过网络上的通信协议向其他组件提供服务。通信可以是简单的数据传递,也可以是两个或多个服务彼此协调连接。这些独特的服务执行一...

2019-05-27 10:44:59 743

转载 康威定律

本文来自:http://www.dockone.io/article/26911、概述微服务架构是一种非常流行的新概念,即便可供以借鉴的经验比较少,当然不能阻挡它成为热门话题与研究对象。令人惊讶地是,其实微服务的概念早在五十多年前就已经被提出,多年来,很久研究表明了这些观点的准确性。这就是本文所介绍的——康威定律。现在已经有很多企业正在尝试使用它创建高效的微服务架构。在这篇文章中最有...

2019-05-27 07:52:33 355

原创 未读

关于架构https://my.oschina.net/agileai/blog/523868?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io

2019-05-27 07:30:55 234

原创 分布式缓存——缓存与数据库数据一致性

先mark:https://www.cnblogs.com/yanglang/p/9098661.htmlhttps://mp.weixin.qq.com/s?__biz=MjM5ODYxMDA5OQ==&mid=404308725&idx=1&sn=1a25ce76dd1956014ceb8a011855268e&scene=21#wechat_redirec...

2019-05-24 18:07:00 1667

原创 分布式缓存——一致性哈希算法

本文来自:http://www.zsythink.net/archives/1182摘录防丢失在了解一致性哈希算法之前,最好先了解一下缓存中的一个应用场景,了解了这个应用场景之后,再来理解一致性哈希算法,就容易多了,也更能体现出一致性哈希算法的优点,那么,我们先来描述一下这个经典的分布式缓存的应用场景。场景描述假设,我们有三台缓存服务器,用于缓存图片,我们为这三台缓存服务器编号为0号、...

2019-05-24 16:44:42 1268

原创 HDFS分布式文件系统设计原理

Hadoop分布式文件系统(HDFS)是一种被设计成适合运行在通用硬件上的分布式文件系统。HDFS是一个高度容错性的系统,适合部署在廉价的机器上。它能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。要理解HDFS的内部工作原理,首先要理解什么是分布式文件系统。1、分布式文件系统多台计算机联网协同工作(有时也称为一个集群)就像单台系统一样解决某种问题,这样的系统我们称之为分布式系统。分布...

2019-05-24 11:15:05 1445

原创 FastDFS分布式文件系统设计原理

FastDFS是一个开源的轻量级分布式文件系统,由跟踪服务器(tracker server)、存储服务器(storage server)和客户端(client)三个部分组成,主要解决了海量数据存储问题,特别适合以中小文件(建议范围:4KB < file_size <500MB)为载体的在线服务。Storage serverStorage server(后简称storage)以组(...

2019-05-24 10:53:41 186

原创 共识与拜占庭将军问题

1、共识基础人们对共识机制的研究其实由来已久,从上世纪70年代就开始了相关研究,其目的是为了解决分布式系统中的一致性问题。Fischer, Lynch 和 Patterson在1985年发表的论文中提出了可以说是最重要的分布式系统定理:FLP不可能定理(在异步通信场景,即使只有一个进程失败,也没有任何算法能保证非失败进程达到一致性);2000年,EricBrewer教授又进一步提出了CAP猜想:...

2019-05-24 07:59:02 2692 1

原创 Dubbo——面试问题集(4~14)

4、默认使用什么序列化框架,你知道的还有哪些?在Dubbo RPC中,同时支持多种序列化方式:dubbo序列化,阿里尚不成熟的java序列化实现。hessian2序列化:hessian是一种跨语言的高效二进制的序列化方式,但这里实际不是原生的hessian2序列化,而是阿里修改过的hessian lite,它是dubbo RPC默认启用的序列化方式。json序列化:目前有两种实...

2019-05-23 17:40:48 256

原创 Dubbo——面试问题集(1~3)

1、默认使用的是什么通信框架,还有别的选择吗?Dubbo默认使用netty,还支持mina, grizzy配置方式:<dubbo:protocol name=“dubbo” port=“9090” server=“netty” client=“netty” codec=“dubbo” serialization=“hessian2” charset=“UTF-8” threadpoo...

2019-05-23 15:37:24 195

转载 怎样打造一个分布式数据库

本文来自:https://www.infoq.cn/article/how-to-build-a-distributed-database文章写得很好,备份防丢失在技术方面,我自己热衷于 Open Source,写了很多 Open Source 的东西,擅长的是 Infrastructure 领域。Infrastructure 领域现在范围很广,比如说很典型的分布式 Scheduler、M...

2019-05-23 14:22:35 334

原创 Dubbo——增强SPI的实现

一、前言在Duboo剖析-整体架构分析中介绍了dubbo中除了Service 和 Config 层为 API外,其他各层均为SPI,为SPI意味着下面各层都是组件化可以被替换的,这也是dubbo比较好的一点。二、JDK中标准SPIJDK 中的 SPI(Service Provider Interface)是面向接口编程的,服务规则提供者会在 JRE 的核心 API 里面提供服务访问接口,而具...

2019-05-23 11:07:48 832

原创 Dubbo相关

markhttp://ifeve.com/dubbo-learn-book/http://dubbo.apache.org/zh-cn/

2019-05-23 10:25:29 216

原创 保证分布式系统数据一致性的6种方案

分布式系统数据一致性的基础知识,传送门1、问题的起源在电商等业务中,系统一般由多个独立的服务组成,如何解决分布式调用时候数据的一致性?具体业务场景如下,比如一个业务操作,如果同时调用服务 A、B、C,需要满足要么同时成功;要么同时失败。A、B、C 可能是多个不同部门开发、部署在不同服务器上的远程服务。在分布式系统来说,如果不想牺牲一致性,CAP 理论告诉我们只能放弃可用性,这显然不能接受。...

2019-05-22 18:05:29 702

原创 分布式事务基础

这一篇主要介绍分布式事务的基础知识,一些基础的算法、定理、简单应用等。下篇文章介绍互联网业界的具体实践方案。1、CAP定理CAP定理是由加州大学伯克利分校Eric Brewer教授提出来的,其核心思想是任何基于网络的数据共享,系统最多只能满足数据一致性(Consistency)、可用性(Availability)和网络分区容忍(Partition Tolerance)三个特性中的两个,三个特性...

2019-05-22 16:15:06 1631

原创 分布式数据一致性(数据多份副本一致性)

前言分布式数据库的数据一致性管理是其最重要的内核技术之一,也是保证分布式数据库满足数据库最基本的ACID特性中的 “一致性”(Consistency)的保障。在分布式技术发展下,数据一致性的解决方法和技术也在不断的演进,本文就以分布式数据库作为案例,介绍分布式数据库数据一致性的原理以及实际实现。1、数据一致性1.1 数据一致性是什么大部份使用传统关系型数据库的DBA在看到“数据一致性”时,...

2019-05-22 15:19:34 5840 1

原创 Java事务管理

事务的ACID属性:原子性(Atomicity )、一致性( Consistency )、隔离性或独立性( Isolation)和持久性(Durabilily)一、Java事务管理Java事务管理有三种类型:JDBC事务、JTA(Java Transaction API)事务、容器事务1.1 JDBC事务JDBC的一切行为包括事务是基于一个Connection的,JDBC通过Connec...

2019-05-22 14:36:49 5689

原创 SSL与TLS

1、SSL和TLS的概念与区别什么是SSL?SSL(Secure Socket Layer,安全套接字层),为Netscape所研发,用以保障在Internet上数据传输之安全,利用数据加密(Encryption)技术,可确保数据在网络上之传输过程中不会被截取。当前版本为3.0。它已被广泛地用于Web浏览器与服务器之间的身份认证和加密数据传输。SSL协议位于TCP/IP协议与各种应用层协...

2019-05-22 11:50:25 217

原创 SSL工作原理

本文介绍了SSL原理、安全机制、工作过程和典型网络应用。缩略语列表一、概述1.1 产生背景基于万维网的电子商务和网上银行等新兴应用,极大地方便了人们的日常生活。受到人们的青睐。因为这些应用都须要在网络上进行在线交易,它们对网络通信的安全性提出了更高的要求。传统的万维网协议HTTP不具备安全机制——採用明文的形式数据传输、不能验证通信两方的身份、无法防止传输的数据被篡改等,导致HTTP无...

2019-05-22 11:27:42 255

原创 使用Hash碰撞进行DoS攻击

一、哈希表碰撞攻击的基本原理哈希表是一种查找效率极高的数据结构,很多语言都在内部实现了哈希表。PHP中的哈希表是一种极为重要的数据结构,不但用于表示Array数据类型,还在Zend虚拟机内部用于存储上下文环境信息(执行上下文的变量及函数均使用哈希表结构存储)。理想情况下哈希表插入和查找操作的时间复杂度均为O(1),任何一个数据项可以在一个与哈希表长度无关的时间内计算出一个哈希值(key),然后...

2019-05-22 10:31:39 1907

原创 DRDoS(memcache漏洞导致的反射型分布式拒绝服务攻击)

https://zhuanlan.zhihu.com/p/34202166https://zhuanlan.zhihu.com/p/34144323https://wsygoogol.github.io/2018/03/06/利用Memcached的反射型DDOS攻击/https://blog.csdn.net/rlnLo2pNEfx9c/article/details/79947990h...

2019-05-22 07:46:30 2162

原创 DDoS攻击与防御

一、DDOS介绍要了解DDOS攻击是什么,首先要了解DOS攻击的基本原理是至关重要的。DoS攻击是最早出现的,它的攻击方法说白了就是单挑,是比谁的机器性能好、速度快。但是现在的科技飞速发展,一般的网站主机都有十几台主机,而且各个主机的处理能力、内存大小和网络速度都有飞速的发展,有的网络带宽甚至超过了千兆级别。这样我们的一对一单挑式攻击就没有什么作用了,搞不好自己的机子就会死掉。举个这样的攻击例...

2019-05-21 18:12:23 785

原创 彩虹表

一、简介彩虹表就是一个庞大的、针对各种可能的字母组合预先计算好的哈希值的集合,不一定是针对MD5算法的,各种算法的都有,有了它可以快速的破解各类密码。越是复杂的密码,需要的彩虹表就越大,现在主流的彩虹表都是100G以上。简单的说就是针对特定算法,尤其是不对称算法进行有效破解的一种方法(如 md5算法)。他的过程 就是建立一个 源数据与加密数据之间对应的hash表。这样在获得加密数据后 通过比较...

2019-05-21 17:12:34 2373

原创 常用加密算法(Java实现)总结

1、Java的安全体系架构Java中为安全框架提供类和接口。JDK 安全 API 是 Java 编程语言的核心 API,位于 java.security 包(及其子包),以及sun.securityAPI包(及其子包)中。设计用于帮助开发人员在程序中同时使用低级和高级安全功能。JDK 1.1 中第一次发布的 JDK 安全中引入了“Java 加密体系结构”(JCA),指的是用于访问和开发 Jav...

2019-05-21 15:50:48 4381 3

Docker技术入门与实战

Docker经典学习教程,介绍了docker的核心概念:镜像、容器、仓库,以及一些实战经验

2018-05-07

codetemplates.xml

eclipse里的java 注释模板。

2016-07-07

一个简单的贪吃蛇游戏

这个是个人近期写的贪吃蛇,实现了随机生成食物,按键按下加速,松开减速,撞壁死亡等功能

2015-02-26

数据结构与算法上机题目及答案

数据结构上机的参考题目以及优质代码,有兴趣的同学可下载作为参考

2012-10-20

PL0编译原理实践

大连理工软甲学院小学期编译课程代码及详解

2012-07-17

空空如也

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

TA关注的人

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