自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Ron.Zheng

最反主流的行动不是抵制潮流,而是在潮流中不丢弃自己的独立思考.

  • 博客(183)
  • 资源 (25)
  • 收藏
  • 关注

原创 Java流(Stream)操作实例-筛选、映射、查找匹配

Java流(Stream)操作实例-筛选、映射、查找匹配

2017-11-24 15:26:57 76045 12

原创 Java流(Stream)简介

要讨论流,我们先来谈谈集合,这是最容易上手的方式了。 Java 8中的集合支持一个新的stream方法,它会返回一个流(接口定义在java.util.stream.Stream里)。那么, 流到底是什么呢?简短的定义就是“从支持数据处理操作的源生成的元素序列”。让我们一步步剖析这个定义。

2017-11-24 11:54:39 2739 1

原创 14、使用Nginx+Tomcats搭建高可用负载均衡集群

负载均衡的目的是为了解决单个节点压力过大,造成Web服务响应过慢,严重的情况下导致服务瘫痪,无法正常提供服务。本实例通过使用Nginx作为负载均衡器,Tomcats作为后台Web服务器,部署一个高可用的Web应用.

2017-11-20 16:43:46 453

转载 轻量级微服务架构及最佳实践

架构需要由人去设计,这些人被称为架构师。或许很多人并未授予架构师的头衔,但自己却从事着架构的工作。我们认为,架构这项工作永远都需要由人去完成,可能短期内都无法由机器来取代。如果我们不理解什么是架构,或者对架构师的职责感到疑惑,那么很难让架构这项工作有效地落地。我们将在本节重新认识架构,并重新定义架构师的职责。

2017-11-17 18:18:55 609

原创 13、Spring技术栈-整合dubbo、zookeeper实现高可用分布式微服务实战

在Spring技术栈-整合dubbo、zookeeper一文中我们已经讲述了如何整合Spring、dubbo、zookeeper来开发一个分布式的应用。本文在上文的基础上来描述如何打包部署dubbo微服务,实现一个高可用的微服务集群,如果不知道如何整合Spring、dubbo、zookeeper,请读者先阅读上文,然后再阅读此文进行微服务的打包和部署操作。

2017-11-17 16:52:14 3047

原创 12、Spring技术栈-Redis Sentinel实现高可用缓存集群方案实战

Redis Sentinel是一个分布式系统,Sentinel运行在有许多Sentinel进程互相合作的环境下,它本身就是这样被设计的。通过Redis Sentinel模式,我们可以实现缓存系统的高可用,本文从实践的角度为读者讲解具体实现方案。

2017-11-15 15:21:46 1319

原创 11、Spring技术栈-整合Redis,通过Redis的Master-Slave实现缓存数据读写分离

Redis的Master-Slave实现缓存数据读写分离

2017-11-13 14:15:34 6618 2

转载 Redis持久化(persistence)

RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot)。AOF 持久化记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集。 AOF 文件中的命令全部以 Redis 协议的格式来保存,新命令会被追加到文件的末尾。

2017-11-11 15:01:35 426

转载 解密Redis持久化

什么是持久化,简单来讲就是将数据放到断电后数据不会丢失的设备中。也就是我们通常理解的硬盘上。

2017-11-11 14:51:56 421

原创 Redis主从(Master-Slave)复制(Replication)设置

Redis 支持简单且易用的主从复制(master-slave replication)功能, 该功能可以让从服务器(slave server)成为主服务器(master server)的精确复制品。

2017-11-10 17:31:51 3062

转载 Redis配置文件参数说明

Redis 的配置文件位于 Redis 安装目录下,文件名为 redis.conf。

2017-11-09 18:19:50 308

原创 插入排序和希尔排序(Java实现)

插入排序就是每一步都将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到全部插入完毕。希尔排序算法是插入排序的一种更高效的改进版本。它的作法不是每次一个元素挨一个元素的比较。而是初期选用大跨步(增量较大)间隔比较,使记录跳跃式接近它的排序位置;然后增量缩小;最后增量为 1 ,这样记录移动次数大大减少,提高了排序效率。希尔排序对增量序列的选择没有严格规定。

2017-11-09 15:21:11 1547

原创 10、Spring技术栈-整合Redis,使用RedisTemplate实现数据缓存实战

整合Redis,使用RedisTemplate实现数据缓存

2017-11-07 18:24:24 4974

原创 一文读懂抽象类(Java)

在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量、成员方法和构造方法的访问方式和普通类一样。由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用。也是因为这个原因,通常在设计阶段决定要不要设计抽象类。

2017-11-07 09:41:23 381

原创 选择排序算法

选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 常见的选择排序包括:简单选择排序,树形选择排序,堆排序。

2017-11-03 18:06:21 620

原创 Java面试之Spring面试知识点

Spring是一个一站式构建企业级应用的一个轻量级解决方案框架。Spring是模块化的,允许用户根据自己需求使用特定模块。你可以使用IOC容器和一些web框架,也可以只使用Hibernate代码或者JDBC抽象层。Spring框架支持声明式事务管理,支持通过RMI或者Webservice远程访问你的业务逻辑,并且提供非常多的持久化方案持久化数据。

2017-11-01 17:39:35 612

原创 Redis集群配置-配置过程中出现的问题及解决方案

在Centos下,手动安装Ruby,安装完成后,输入命令行ruby后,却提示-bash: /usr/bin/ruby: No such file or directory解决问题之前,先确认一个情况,输入命令/usr/local/bin/ruby --version如果有版本信息,那说明ruby被装到了该目录下,而非系统认为的 /usr/bin/ruby解决方法是在系统默认运行ruby的位置

2017-10-27 16:35:19 924

原创 Redis集群配置

1、集群规划要让Redis4.0.1集群正常工作至少需要3个Master节点,每个 Master 节点要配备至少 1 个 Slave 节点。 根据以上特点和要求, 进行如下的集群实施规划:使用 6 台服务器(物理机或虚拟机) 部署 3 个 Master + 3 个 Slave; IP 端口 集群端口(服务端口+10000) 192.168.199.249 6382 16382

2017-10-27 16:23:15 2212 2

原创 一致性Hash(Consistent Hash)

一致性Hash算法简介一致性Hash算法是在1997年由麻省理工提出的一种分布式Hash实现算法,设计的目标是为了解决英特网中的热点问题。一致性Hash算法提出了在动态变化的Cache环境中,判定Hash算法好坏的四个定义。平衡性(Balance):平衡性是指哈希的结果能够尽可能的分布到所有的节点中去,这样从算法上解决负载均衡的问题。单调性(monotonicity):单调性是指在新增或者删减节

2017-10-27 12:20:56 660

原创 归并排序算法(Java实现)

归并排序(Merge)是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列。归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。

2017-10-26 18:17:37 378

原创 快速排序算法(Java实现)

1、基本思想通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。2、算法步骤获得待排序数组选取合适的数字作为排序基准数字(一般情况下选取数组或者子数组的第一个数字)。将待排序数组中比基准数字小的放在基准数字的左边得到sub1,比基准数...

2017-10-25 14:09:37 955

原创 Java基础之冒泡排序算法

冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。

2017-10-24 18:39:23 426

原创 聊聊微服务架构

互联网时代,在极端情况下,每天都有新需求要开发上线。随着代码量及团队成员的增加, 传统单体式架构的弊端日益凸显,严重制约了业务的快速创新和敏捷交付,与互联网所追求的 “唯快不破”的目标越来越远。这就是微服务架构兴起的时代大背景。 微服务架构( Microservice Architecture) 是近两年来最流行的架构术语之一,大名鼎鼎的 Martin Flower曾这样描述

2017-10-20 17:37:02 4596

原创 分布式系统基础-消息队列之Kafka

相对于前面所说的那些MQ前辈们,Kafka可谓是不走寻常路的“天才少年”。与久负盛名的前辈们不同,Kafka从一开始就是走“互联网的野路子”,它抛弃了很多华而不实的企业级特性,专注于高性能与大规模这两个互联网应用的核心需求,并全面采用了新一代的分布式架构 的设计理念,从基因和技术两方面拉开了与前辈们的距离。我们先来看看Kafka的一些激动人心的特性。高吞吐量、低延迟:Kafka每秒可以处理几十万条

2017-10-20 10:44:42 597

原创 分布式系统基础-消息队列之RabbitMQ

RabbitMQ是挑战Java/JMS消息中间件的产物,也是第二代消息中间件,它是实现了AMQP消息模型的重要产品,所以我们需要先了解一下AMQP模型相关的内容。AMQP模型如下图所示,每个Exchange (信箱/交换机)绑定(Binding)了0到N个Queue(队列),当收到Publisher发布的Message后,Exchange会根据自身的类型结合路由规则来确定此消

2017-10-20 10:27:20 881

原创 分布式系统基础-消息队列之ActiveMQ

ActiveMQ是J2EE中 JMS消息通信规范的一个实现,也是目前还在活跃和发展的最古老的第一代MQ,自从2004年成熟以后就迅速传播开来,经过多年的发展,逐步奠定了它在Java/J2EE圈子里的开源霸主地位,可谓生生不息。ActiveMQ除了作为独立的消息中间件使用,还经常在某些ESB (Enterprise Service Bus)产品中作为总线基础设施( Bus Infrastructur

2017-10-18 20:55:24 1314 1

原创 分布式系统基础-消息队列之JMS

JMS并没有定义消息的网络报文格式及相关的通信命令协议,但它以Java API的方式给出了一个可以纳入到J2EE环境中的消息中间件所应具备的编程级接口。同时,JMS归纳总结了两种通用的消息传递模型,深入理解这两种消息模型有助于我们准确把握消息中间件的原理和典型的使用场景。第一个消息模型是点对点消息通信模型。如下图所示,发送方Client1(Producer/Sender) 与消费者Client 2

2017-10-18 20:41:16 1079

原创 分布式系统基础-消息队列概述

消息队列(Message Queue,MQ)其实是一个古老的计算机术语,UNIX进程间通信就是用到了消息队列技术:一个进程把数据写入某个特定的队列中,其他进程可以读取队列中的数据,从而实现异步通信能力。而后来我们所说的“消息队列”通常指独立的消息队列中间件。不管是最早的进程间通信的消息队列还是独立的消息队列中间件,他们相对于RPC通信来说都有以下很明显的优势。

2017-10-18 20:31:13 542

原创 分布式系统基础-全文检索

我们每个人解除互联网都是从互联网搜索开始的,虽然大家常用的搜索引擎可能不同,搜索的关键词也可能不同,但是我们习惯经常在网上搜索的方式来快速学习技术并解决日常工作中所遇到的各种技术问题,如果没有互联网搜索引擎,那么恐怕我们将会有很多的人要失业了。如何在海量的网页信息中准确且快速的找到包含我们所搜索关键字的所有网页并合理的排序展示,这的确是一个很有挑战的问题。除了我们日常工作中使用的搜

2017-10-17 16:15:22 12535

原创 Integer与Int比较

Integer与Int比较首先看一段比较有意思的代码:Integer a = 1000,b=1000; Integer c = 100,d=100; System.out.println(a==b); System.out.println(c==d); 如果这道题你能得出正确答案,并能了解其中的原理的话。说明你基础还可以。如果你的答案 是 true 和true的话,你的基础就有所

2017-10-17 12:18:26 519

转载 如何在三年内成长为一名JAVA架构师

工作前三年是职业生涯中成长最快的几年,在这段时间里你会充满激情,做事专注,也容易养成良好的习惯。在我们公司有些同学在前三年中就快速成为某一个领域的技术专家,有些同学也可能止步不前。本文和大家一起探讨下如何在三年内快速成长为一名技术专家。

2017-10-17 09:49:12 2440

原创 分布式系统基础-远程过程调用(RPC)

RPC(Remote Procedure Call,远程过程调用)是建立在Socket之上的一种多进程间的通信机制。不同于复杂的Socket通信方式,RPC的初心是设计一套远程通信的通用框架,这个框架能够自动处理通信协议、对象序列化、网络传输等复杂细节,并且希望开发者使用这个框架以后,调用一个远程机器上的接口代码与以本地方法调用的代码“看起来没什么区别”,从而大大减小分布式的开发难度,

2017-10-10 21:49:31 4306

原创 分布式系统基础-分布式事务

事务是数据库运行中的一个逻辑工作单位,工作单元内的一系列SQL命令具有原子性操作特点,这些命令要么完全成功执行,要么完全撤销或不执行,如果是后者,则表现为数据库内的最终数据没有发生任何改变。事务通常由数据库中的事务管理子系统负责处理。

2017-10-08 13:27:06 1086

原创 分布式系统的一致性原理

对于分布式系统,我们必须深刻理解和牢记一点:分布式系统的不可靠性。“可靠性”是指系统可以无故障的持续运行,如果一个系统在运行中意外宕机或者无法正常使用,那么他就是一个不可靠的系统,即使宕机和无法使用的时间很短。我们知道,分布式系统通常是由独立的服务器通过网络松散耦合组成的,而网络本质上是一个复杂的I/O系统,而通常情况下,I/O发生故障的概率和不可靠性远远高于主机的CPU和内存,加之网络设备的引入,

2017-10-06 17:54:02 834

原创 分布式系统架构网络之IDC机房

我们开发的互联网应用被部署到IDC机房里的某个服务器上,从而完成了应用互联网的接入,所以我们接下来学习一些IDC机房的相关知识。IDC机房又被称为互联网数据中心(Internet Data Center)或者数据中心,IDC不仅是数据存储的中心,还是数据流通的中心。IDC机房是标准化的电信专业级机房,为企业、政府提供服务器托管,租用及相关增值等方面的全方位服务。一开始,IDC机房主要是联通、电信等运

2017-09-28 16:46:39 18721

原创 7、Zookeeper场景案例分析

Zookeeper主要用于以下使用场景:实现配置管理(配置中心)服务注册中心集群通信与控制子系统基本上每个使用Zookeeper的集群,都会同时采用Zookeeper存储集群的配置参数,可以说,实现配置管理是(配置中心)Zookeeper最广泛,最基础的使用场景。服务注册中心是Zookeeper最“重量级”的需求场景,Zookeeper是这里的关键组件,同时最能体现其复杂能力,这个场景也是所

2017-09-28 16:36:44 537

原创 9、Spring技术栈-整合dubbo、zookeeper

在我们的Spring Web开发实战的前8篇文章中,我们详细介绍了使用Spring从0开始搭建一个项目并整合log4j2、整合MyBatis,使用hibernate-validator进行服务端数据验证、使用Spring Session管理服务端会话以及过滤器、拦截器的使用。通过前面的文章我们大致可以完成一个简单系统的实现。但是出于学习的目的,我们需要不停的完善系统,不停的学习新的东西以充实自己。此

2017-09-26 18:24:53 867

原创 分布式系统设计理念

首先,分布式系统的首要目的是提升系统的整体性能和吞吐量。如果最终设计出来的分布式系统占用了10台机器才勉强达到单机系统的两倍性能,那么这个分布式系统还有存在的价值吗?另外,即使采用了分布式架构,也仍然需要尽力提升单机上的程序性能,使得整体性能达到最高。所以,我们仍然需要掌握高性能单机程序的设计和编程技巧,例如多线程编程、多进程高性能IPC通信、高性能的网络框架等。其次,任何分布式系统都存在让人无法回

2017-09-26 17:05:34 2938

原创 软件架构需要考虑的基本原则

架构尽可能的简单,清晰,不过度设计。稳定业务和易变业务要分离处理,核心业务和非核心业务要分离处理,电商业务和辅助流程要分离,应用和数据要分离,服务和实现细节分离,前台和后台分离。

2017-09-25 15:40:04 3288 2

翻译 8、Spring Session-API文档

Spring Session关键API

2017-09-22 14:32:01 5175

cryptix.rar

cryptix的jar包,PGP加解密的时候可能会用到,因此共享与此。

2019-10-15

pgp加解密方法.rar

pgp加密工具类,供大家使用参考,如有问题,请留言评论。

2019-10-15

redis_distribute_lock.rar

Spring Boot整合Redis实现分布式锁实现Demo,模拟多线程库存扣减实例。

2019-05-31

@Conditional注解应用.rar

如何根据不同的条件来判定到底注入那个Bean,即@Conditional注解的用法实例代码

2019-05-16

PGP加解密工具类

PGP加密工具类,包含PGP文件加密解密,文本加密解密,PGP文件加密加签,文本加密加签。

2019-04-09

gpg4win-3.1.7

gpg4win是一款基于 GPG 的非对称加密软件。非对称加密方式,简单理解就是用公钥加密文件,用私钥解密文件。如果你需要发送加密信息,首先获取接收者的公钥,然后利用该公钥加密后传递,对方利用对应的私钥就可解密。也就是说,公钥是锁,私钥是钥匙。非对称加密方式很好地解决了传递机密信息的问题。

2019-04-09

Spring Boot整合Mybatis

Spring Boot整合MyBatis实现Restfull API实例,具体原理请参考笔者专栏Spring Boot从入门到精通

2018-04-12

京东区块链技术实践白皮书 pdf带标签

京东区块链技术实践白皮书,pdf带标签;文档描述区块链基础以及相关应用场景以及在京东的实践。

2018-03-30

dubbo微服务实战-博客系统源码

实现Spring整合Redis Sentinel实现缓存高可用,整合dubbo、zookeeper实现微服务高可用源码。

2017-11-17

分布式博客系统源码-Redis读写分离

整合Redis,使用Redis Master Slave Replication模式实现缓存数据读写分离。

2017-11-13

分布式博客系统源码

分布式博客系统源码,整合Dubbo、Zookeeper实现分布式,整合Redis实现数据缓存

2017-11-07

架构解密从分布式到微服务高清带书签.pdf

架构解密,从分布式到微服务高清带书签版本,了解分布式系统的研发流程以及所用到的中间件,学习分布式系统到微服务架构的演化过程。

2017-10-18

模块化博客系统(Spring整合Mybatis)

模块化开发博客系统第二步,整合Mybatis

2017-08-23

博客系统基础结构

自我学习项目,博客系统基础结构搭建源码

2017-08-23

Spring Cloud 中文参考手册

Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智能路由,微代理,控制总线)。分布式系统的协调导致了样板模式, 使用Spring Cloud开发人员可以快速地支持实现这些模式的服务和应用程序。他们将在任何分布式环境中运行良好,包括开发人员自己的笔记本电脑,裸机数据中心,以及Cloud Foundry等托管平台。

2017-08-21

Spring Cloud 参考手册英文版

Spring Cloud provides tools for developers to quickly build some of the common patterns in distributed systems (e.g. configuration management, service discovery, circuit breakers, intelligent routing, microproxy, control bus). Coordination of distributed systems leads to boiler plate patterns, and using Spring Cloud developers can quickly stand up services and applications that implement those patterns. They will work well in any distributed environment, including the developer’s own laptop, bare metal data centres, and managed platforms such as Cloud Foundry.

2017-08-21

Spring Redis缓存实例

Spring集成Redis实现数据缓存

2017-01-13

spring.ws webservice

基于spring.ws的webservice实例

2017-01-09

环境监测系统演示文稿

基于环境监测系统的演示文稿,通过该演示文稿,可以明白环境监测系统的使用方法,仅供菜鸟使用

2013-04-02

嵌入式环境监测系统报告

基于STM32的嵌入式环境监测系统的报告

2013-04-02

空空如也

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

TA关注的人

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