08 2020 档案
摘要:服务端有一个 NIOServerCnxn 类,用来处理客户端发送过来的请求 NIOServerCnxn ZookeeperServer-zks.processPacket(this, bb); 处理客户端传送过来的数据包 public void processPacket(ServerCnxn cn
阅读全文
摘要:Watcher 的基本流程 ZooKeeper 的 Watcher 机制,总的来说可以分为三个过程:客户端注册 Watcher、服务器处理 Watcher 和客户端回调 Watcher客户端注册 watcher 有 3 种方式,getData、exists、getChildren;以如下代码为例来分
阅读全文
摘要:通过 lookForLeader 方法选举完成以后,会设置当前节点的 PeerState,要么为 Leading、要么就是 FOLLOWING、或者 OBSERVING到这里,只是表示当前的 leader 选出来了,但是 QuorumPeer.run 方法里面还没执行完,我们再回过头看看后续的处理过
阅读全文
摘要:通信流程图: 接收数据 Notification 和发送 ToSend ToSender Notification leader; 被推荐的服务器 sid zxid; 被推荐的服务器当前最新的事务 id peerEpoch; 被推荐的服务器当前所处的 epoch electionepoch; 当前服
阅读全文
摘要:话不多说直接上代码: C++的WebService说明书格式样例: <wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tm="http://microsoft.com/wsdl/mime/textMa
阅读全文
摘要:前面分析这么多,还没有正式分析到 leader 选举的核心流程,前期准备工作做好了以后,接下来就开始正式分析 leader 选举的过程: public synchronized void start() { loadDataBase(); cnxnFactory.start(); startLead
阅读全文
摘要:今天来说说SpringBoot 过滤器,监听器,拦截器用来做什么的: 监听器:listener是servlet规范中定义的一种特殊类。用于监听servletContext、HttpSession和servletRequest等域对象的创建和销毁事件。监听域对象的属性发生修改的事件。用于在事件发生前、
阅读全文
摘要:public class TestList { static class Car { String name; public Car(String name) { this.name = name; } public Car() { } } public static void main(Strin
阅读全文
摘要:目录 一、简介 二、依赖 三、 ObjectMapper 一)、从JSON中获取Java对象 1、简单示例 2、 ObjectMapper如何匹配JSON对象的字段和Java对象的属性 3、JSON字符串-->Java对象 3、JSON 字符输入流-->Java对象 4、JSON文件-->Java对
阅读全文
摘要:Ouath2.0在SpringCloud下获取授权码,验证授权码,刷新授权码 本文不主要介绍SpringCloud的其他组件,只展示Ouath2.0的集成代码,并演示授权码的获取,检验,刷新,展示其他模块是因为在Ouath2.0里面怕有人问这数据从哪里来的,如果觉得环境太麻烦,就直接看Ouath2.
阅读全文
摘要:以下说说Leader选举的getView的解析流程 public Map<Long,QuorumPeer.QuorumServer> getView() { return Collections.unmodifiableMap(this.quorumPeers); } getView 里面实际上返回
阅读全文
摘要:Zookeeper 的一致性 Zookeeper 的来源 对于 zookeeper 的一致性问题,有很多朋友有疑问,我这边再帮大家从来源层面梳理一遍一致性的问题。上篇,我们讲到了 zookeeper 的来源,是来自于 google chubby。为了解决在分布式环境下,如何从多个 server 中选
阅读全文
摘要:Spring Integration Sftp 文件传送 目前在国内项目开发中,使用Spring Integration技术的比较少,尤其是中文的参考文献和项目案例,更是罕有。鉴于此,本文详细介绍spring integration sftp模块在Sftp服务器和本地服务器之间文件的传送。SFTP(
阅读全文
摘要:1、@Controller 在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model ,然后再把该Model 返回给对应的View 进行展示。在SpringMVC 中提供了一个非常简便
阅读全文
摘要:在项目中遇到一个问题:要将通过http方式发送过来的大批量数据(这个数据保守估计每次请求在10万条左右),要和数据库中的另一批数据(数据库中的记录1万条左右)进行匹配(匹配:指两组数据中的某几个字段值相等),匹配上的数据保存在数据库中,匹配不上的直接扔掉。或者说:有一个List<String> st
阅读全文
摘要:业务场景: 现在有一个list的集合 ,需要根据list里面的主键id(如UUID字符串)作为参考去掉重复的列 原理:使用map 去重复,map<key,value> 存储方式,其中key不能为重复列 List<User> users = new ArrayList<User>(); Map<Str
阅读全文
摘要:今天来说说guava,以后也会讲解apache common.lang下的utils使用,为什么要讲guava,因为jdk 的升级很多都是借鉴guava里面的思想来进行的。 首先奉上guava的中文API : http://ifeve.com/google-guava-collectionutili
阅读全文
摘要:1. zookeeper 的名词复盘 1.1 集群角色: 1.2 数据模型 zookeeper 的视图结构和标准的文件系统非常类似,每一个节点称之为 ZNode,是 zookeeper 的最小单元。每个 znode上都可以保存数据以及挂载子节点。构成一个层次化的树形结构持久节点(PERSISTENT
阅读全文
摘要:一、引言 首先,Java8的Stream是对集合对象操作的API,它专注于对集合对象进行各种非常便利,高效的聚合操作或者大批量操作,从而减少代码的复杂度。借助于lambda表达式,极大的提高编程效率和程序可读性。并且Stream支持串行和并行两种模式,使我们无需编写太多代码,就可以很方便的写出高性能
阅读全文
摘要:一、引言 JDK1.8提供了许多现成的静态方法来减少我们的操作,本文,我们就来了解下这些常用的方法,并且让你的代码更加优雅,为什么要说JDK1.8,因为是个质的飞越,颠覆了JAVA7很多繁琐的操作。 二、Collectors静态方法 1. toCollection toCollection方法可以指
阅读全文
摘要:主要内容:SpringBoot程序启动原理、自动化配置(@EnableAutoConfiguration)的原理 启动: 进行SpringApplication的初始化模块,配置一些基本的环境变量、资源、构造器、监听器; 实现了应用具体的启动方案,包括启动流程的监听模块、加载配置环境模块、及核心的创
阅读全文
摘要:首先抛出一个问题:如果想要被Spring容器管理的Bean的路径不再Spring Boot 的包扫描路径下,怎么办呢?也就是如何去加载第三方的Bean 呢? 有两种方式可以解决:这里我们使用Swagger的配置来做实验。1:首先一个Swagger的配置类:SwaggerConfigSwaggerCo
阅读全文
摘要:1.通过注解注入Bean 我们谈到Spring的时候一定会提到IOC容器、DI依赖注入,Spring通过将一个个类标注为Bean的方法注入到IOC容器中,达到了控制反转的效果。那么我们刚开始接触Bean的时候,一定是使用xml文件,一个一个的注入,就例如下面这样。 <bean id="bean" c
阅读全文
摘要:本次整合实现的目标:1、SSO单点登录2、基于角色和spring security注解的权限控制。 推荐一篇博客:Spring Security + OAuth2.0 + JWT 实现单点登录 整合过程如下: 1、使用maven构建项目,加入先关依赖,pom.xml如下: <?xml version
阅读全文
摘要:一、概述 springCloudConfig同一配置服务,其实就是单独创建一个服务,专门用来管理其它所有服务的配置文件,其它微服务通过与这个配置服务建立连接,拉取配置到各自的服务环境中,springCloudConfig与git仓库关联,相当于先将所有微服务的配置文件放在git远程仓库上,sprin
阅读全文
摘要:为什么要使用WebMvcConfigurer? WebMvcConfigurer是一个接口,提供很多自定义的拦截器,例如跨域设置、类型转化器等等。可以说此接口为开发者提前想到了很多拦截层面的需求,方便开发者自由选择使用。由于Spring5.0废弃了WebMvcConfigurerAdapter,所以
阅读全文
摘要:今天我们来说说Spring的事务,那我们先从数据库说起,请看博主细细道来。 一、数据库事务隔离级别 数据库事务的隔离级别有4个,由低到高依次为Read uncommitted 、Read committed 、Repeatable read 、Serializable ,这四个级别可以逐个解决脏读
阅读全文