自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 ribbon配合restTemplate实现客户端负载均衡、超时重试

背景: 最近项目中要求实现请求转发的中间层,其中包含负载均衡和超时重试的功能。具体场景是:我们的服务作为客户端调用第三方服务,第三方服务提供了一个服务的IP和端口号的列表。我们需要根据不同的负载均衡算法来进行服务的调用。 实现方式: 在restTemplate,中使用注解@loadbalance,...

2019-05-30 14:05:56 446 0

原创 kafka如何保证数据不丢失

kafka笔记之如何保证数据不丢失@TOC kafka笔记之如何保证数据不丢失 Kafka是一种高吞吐量的分布式发布订阅消息系统。在使用过程中如果使用不当,经常会出现消息丢失的情况,这是业务系统不能容忍的,消息系统最重要的是保证数据不丢失。本文主要记录kafka是如何保证数据不丢失的,主要从三方面...

2019-03-20 10:27:57 2880 0

原创 Tomcat线程模型 BIO模型源码与调优

BIO模型: 一个请求创建一个工作线程,每个请求都是同步阻塞的,也就是顺序访问完成之后才会给出响应. 其中收到请求分为几步:1.收到请求,2创建工作线程,3.读取socket请求内容,4.执行业务逻辑,5.写socket响应. 这几步都是顺序执行的,同步调用,阻塞的.意思就是有一个步骤卡顿响...

2018-04-15 21:25:33 582 0

原创 kafka 常见问题

1、消息丢失情况: 消息发送端: (1)acks=0: 表示producer不需要等待任何broker确认收到消息的回复,就可以继续发送下一条消息。性能最高,但是最容易丢消息。大数据统计报表场景,对性能要求很高,对数据丢失不敏感的情况可以用这种。 (2)acks=1: 至少要等待leader已经成...

2020-03-24 13:23:03 47 0

原创 如何打造一个验证服务

在一个网站中,经常需要输入验证码,例如一个注册功能,需要邮箱验证码或者短信验证码,在有些服务中还有人机验证等,这些功能都属于验证服务。那么如何打造一个验证服务呢?验证服务都有哪些功能呢? 验证服务包含的功能: 生成验证码 验证码的生成需要随机数,可动态配置生成的策略。 发送验证码的文案配置,对于...

2019-11-25 11:47:34 56 0

原创 已知服务的端口和IP,如何找到该服务所在的位置

登录服务器 根据端口 查询启动的程序名称 根据名称查询 进程号 根据进程号查询 启动目录

2019-05-24 15:57:00 567 0

转载 VRF的应用加密抽取

简单来说,加密抽签用密码学的方法来产生一个随机数生成器,用来决定下一个区块的提议者或验证委员会成员,这一随机数生成的概念是Algorand的核心技术亮点之一。这其中将使用可验证随机函数(Verifiable Random Function,简称VRF)来实现随机数的产生,而这个随机函数正是由Alg...

2019-05-16 17:51:51 62 0

转载 MySQL 执行计划 详细实践

使用EXPLAIN关键字可以模拟优化器执行SQL语句,从而知道MySQL是 如何处理你的SQL语句的。分析你的查询语句或是结构的性能瓶颈

2019-03-22 11:53:29 3238 0

原创 GO协程号,修改GO源码,编译安装

在开发中,为了实现获取GO协程号,对GO进行源码修改。之后编译安装,本文记录过程,方便以后使用。 1、编译GO高版本(1.5版本之上)的需要 先编译GO1.4版本。先下载GO1.4版本。 https://storage.googleapis.com/golang/go1.4.3.src.tar.g...

2019-03-20 14:51:16 86 0

原创 面试整理---京东/58到家

最近参加了京东的面试,岗位是Java开发,同时参加了58到家的面试,简单整理一下. 58到家面试: 一轮电话面试,三轮技术面试,之后是HR聊了聊谈薪资. 具体问题如下: 多线程 锁的分类(重入锁,读写锁,排他锁,共享锁) 分布式锁 Redis 实现分布式锁 zookeeper 实现...

2018-05-04 13:46:13 1216 1

翻译 京东区块链白皮书摘要

简介 京东集团拥有全渠道零售和端到端供应链的高质量大数据,区块链技术天然可以解决京东业务场景中多个主体的信息记录与分享,可信数据交换与传递的业务诉求.。早在2016年,京东集团就全面启动了区块链技术在京东业务场景中的应用探索与研发实践,先后在数据交易、供应链管理、金融科技等领域落地了不同的区块链...

2018-04-26 00:40:15 3417 0

原创 Java的异常处理细节

规则一 对于try里面发生的异常,它会根据发生的异常和catch里面的进行匹配:按照catch块从上往下匹配,当它匹配某个catch块的时候,就直接进入到这个catch块里面去了,而忽略后面所有的catch块。 规则二 另外:在写异常处理的时候,一定要把异常范围小的放在前面,范围大的放在后面...

2018-04-18 16:29:47 128 0

原创 TCP 三次握手

网络模型: 网络模型有七层网络模型,四层网络模型. 在这里网络传输方面考虑四层模型. 四层网络模型有哪四层?从上到下分为: 1.应用层:具体的协议体现层,常见有HTTP协议 2.传输层:主要进行端对端的交流,找到具体端口对端口的数据传输. 3.网络层:基于网络IP的层,主要是根据IP找到...

2018-04-18 16:12:12 116 0

原创 记录一次session问题

背景描述: 用户具有多个身份,比如一个人同时兼任技术经理又兼任项目经理,登录时会有多个身份.具体操作就是用户点击登录后 ,弹框选择身份, 不同身份具有不同的权限. 系统是采用两台服务做得集群,服务器是weblogic,集群是F5硬负载.这还是当时负责集群的人留下的坑. 问题 用户反映,...

2018-04-17 14:15:32 624 0

转载 Truffle开发入门

以太坊是区块链开发领域最好的编程平台,而truffle是以太坊(Ethereum)最受欢迎的一个开发框架,这是我们第一篇区块链技术文章介绍truffle的原因,实战是最重要的事情,这篇文章不讲原理,只搭建环境,运行第一个区块链程序(Dapp)。 安装truffle $ npm install ...

2018-04-17 00:29:52 158 0

原创 基于ERC20的代币 源码

pragma solidity ^0.4.21; contract IMigrationContract { function migrate(address addr, uint256 nas) returns (bool success); } /* 灵感来自于NAS coin*...

2018-04-17 00:13:46 2685 0

原创 IO模型学习(一)IO模型分类

IO分类 在java中,IO分为Bio、Nio、Aio三类,三者有本质的区别,下面主要讲解其在网络IO中的区别。 Bio 阻塞式IO,客户端类为Socket,服务端类为ServerSocket。该类中提供的方法全部为阻塞方法,即该操作完成后,该方法才会返回。举例说明,如果调用了Socket输...

2018-04-15 16:43:45 194 0

原创 go语言学习笔记(一):*和&的区别

*和&的区别 : & 是取地址符号 , 即取得某个变量的地址 , 如 ; &a *是指针运算符 , 可以表示一个变量是指针类型 , 也可以表示一个指针变量所指向的存储单元 , 也就是这个地址所存储的值 . 从代码中验证 : //先构建一个...

2018-04-15 16:19:43 5253 0

原创 多线程学习(二)CountDownLunch与CyclicBarrier

两个看上去有点像的类,都在java.util.concurrent下,都可以用来表示代码运行到某个点上,二者的区别在于: (1)CyclicBarrier的某个线程运行到某个点上之后,该线程即停止运行,直到所有的线程都到达了这个点,所有线程才重新运行;CountDownLatch则不是,某线程运...

2018-04-14 16:48:17 1053 0

原创 Dubbo 学习笔记(五) 开发环境常用技巧

直连提供者 在开发及测试环境下,经常需要绕过注册中心,只测试指定服务提供者,这时候可能需要点对点直连,点对点直联方式,将以服务接口为单位,忽略注册中心的提供者列表,A 接口配置点对点,不影响 B 接口从注册中心获取列表。 1. 通过 XML 配置 如果是线上需求需要点对点,调用方配置 u...

2018-04-14 12:54:37 111 0

原创 Dubbo学习笔记(四)集群容错与负载均衡

集群容错 在集群调用失败时,Dubbo 提供了多种容错方案,缺省为 failover 重试。 Failover Cluster 失败自动切换,当出现失败,重试其它服务器 1。通常用于读操作,但重试会带来更长延迟。可通过 retries=”2” 来设置重试次数(不含第一次)。 重试次数配置如...

2018-04-13 21:18:41 92 0

原创 Dubbo学习笔记(三) RPC核心原理和线程模型

在几个典型的RPC使用场景中,包含服务发现,负载均衡,容错,透明,序列化,网络传输等模块.其中RPC协议就是核心模块,主要包括序列化,网络传输.只要RPC协议实现了,就可以进行远程调用,其他的负载,容错,透明,注册发现都是对RPC调用的优化,使他更加稳定健壮. 图解RPC原理 图解: ...

2018-04-13 20:56:04 470 0

原创 Dubbo学习笔记(二) Dubbo 控制后台的安装

Dubbo 控制后台的安装: 从github 中下载dubbo 项目 git clone https://github.com/alibaba/dubbo.git 更新项目 git fetch 临时切换至 dubbo-2.5.8 版本 git checkout dubbo-...

2018-04-13 20:24:51 94 0

原创 Dubbo学习笔记(一) 入门

Dubbo是什么?他的核心功能是什么? dubbo 阿里开源的一个SOA服务治理框架,从目前来看把它称作是一个RCP远程调用框架更为贴切。单从RPC框架来说,功能较完善,支持多种传输和序列化方案。核心功能:就是远程调用。 常用的远程调用:RMI 、Web Service、Http RMI...

2018-04-13 14:34:08 106 0

转载 ubuntu apt-get 卸载

如果你关注搜索到这篇文章,那么我可以合理怀疑你被apt-get的几个卸载命令有点搞晕了。 apt-get的卸载相关的命令有remove/purge/autoremove/clean/autoclean等。具体来说: apt-get purge / apt-get –purge remove ...

2018-04-13 12:15:25 531 0

原创 密码学

主要内容: 哈希算法,数字摘要,加密算法,数字签名,数字证书,PKI体系,MERKLE树,布隆过滤器,同态加密 一、哈希: 优秀的哈希满足: 正向快速:给定铭文和哈希算法,有限时间有限资源快速计算出哈希值 逆向困难:给定若干哈希值,有限时间内几乎不可能逆向推到出明文 输入敏感:原始数据...

2018-04-04 14:50:56 172 0

原创 分布式系统的核心问题

分布式系统的核心问题 主要内容: 一致性问题 共识问题 一致性:分布式集群中多个服务节点,对给定的操作,根据给定的协议,对处理结果对外保持一致. 不在乎结果是否正确,而是保证对外呈现的状态一致.所有节点失败也是一种一致. 引起不一致的因素: 节点间网络通信的不可靠,消息延迟,消息乱序,内...

2018-04-04 14:50:10 253 0

原创 区块链核心技术概览

第二章 核心技术概览 定义: 1.交易–账本的一次操作 2.区块–记录一段时间内发生的所有交易和状态结果,是对当前账本状态的一次共识 3.链–由区块按照顺序串联而成,是整个账本状态变化的日志记录。 原理: 如果把区块链作为一个状态机,则每次交易就是试图改变一次交易,而每次共识生成的区块...

2018-04-04 14:48:43 514 0

原创 区块链思想的诞生

区块链思想的诞生: 区块链技术具备去中心化、防篡改、可追溯等众多金融领域十分需要的特点。 实现多方场景下开放、扁平化的全新合作信任模型,而这些都为实现更高效的资源配置,更具体的说是金融交易,提供有效的技术手段。 新型数字货币、分布式账本技术的支付系统。在清算和结算方面独特优势。 挑战: ...

2018-04-04 14:47:53 232 0

原创 一个月深入区块链学习路径 推荐

1.3月16 学习第二章 核心技术概览 1.3月16 区块链学习视频付钱的>第二章 什么是区块链 2.3月17 学习第四章 分布式系统核心问题 3.3月18 学习第五章 密码学和安全技术 4.3月19 学习第六章 比特币 5.3月20 学习第八章 超级账本 6.3月21 ...

2018-04-04 14:46:26 2168 1

原创 Hyperledger-Fabric框架go语言sdk开发文档

Hyperledger-Fabric 官网开发文档 http://hyperledger-fabric.readthedocs.io/en/latest/ Hyperledger-Fabric 框架Go语言SDK开发文档及案例 https://github.com/hyperledger...

2018-04-04 14:44:36 4481 0

原创 分布式协调之拜占庭将军问题

拜占庭将军问题, 前提是保证信道的稳定,不会存在信道断裂的问题.但是会存在发布假消息的问题. 下面用一张图来解析拜占庭问题. 四个将军: (灰色)A (蓝色) B (红色)C (绿色)D A: 叛将 B C D: 忠将 1: ...

2018-04-01 22:21:13 604 0

原创 多线程基础线程状态

多线程基础线程状态 什么是多线程 进程是在计算机系统中独立运行的程序,线程是在进程中独立运行的任务.在多任务操作系统中,为了最大化利用CPU,使用了多线程的方式。在某个时间段,多个线程进行不同的任务,每个线程去CPU申请时间片, 每个线程交替占用时间片,每个线程都是断断续续的执行,对外看来是...

2018-04-01 20:28:14 91 0

原创 多线程基础 -1 - 线程基本方法

介绍线程的常用方法

2017-12-10 09:42:21 237 1

原创 maven学习---基本命令使用

MVN 结构Maven 对应项目结构 Project name –src —–main ——–java ——–resources —–test ——–java ——–resources –pompom基本组成 groupId 分组ID artifactId ...

2017-12-07 22:36:39 84 0

原创 Zookeeper一伪分布式集群搭建

一、描述 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。 伪分布式集群就是在一台机器部署多...

2017-12-04 00:27:20 137 0

原创 数据库连接池

最近程序中经常出现连接池链接拒绝的错误。因此重新学习了数据库连接池。既然是资源池,那么就涉及到这么几个问题,初始化资源池的时候需要创建多少资源?资源池最大容量是多少?资源池最小资源是多少?资源被使用之后何时放回?资源在资源池中空闲的时候如何处理?需要使用资源的用户大于资源池的最大容量怎么办?

2017-12-02 14:58:56 95 0

原创 通过监控CPU查找程序问题

通过CPU 结合 jstack 命令 优化程序

2017-11-30 13:49:08 140 0

原创 缓存系列--缓存策略

常用的缓存策略 LRU, FIFO,LFU, 等

2017-11-26 00:47:29 392 0

原创 Java基础系列---hashmap

hashmap 属于Java集合中经常使用的一种数据结构,他是一种快存快取的数据结构。如何实现快素存取是重点。我们都知道 数组 是一种寻址快速,插入 修改较慢的数据结构,链表刚好相反,寻址慢,插入,修改快。而hashmap综合了两者的特性。本文主要介绍hashmap的实现原理,如何保证快存快取。 ...

2017-11-25 11:38:10 129 0

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