- 博客(31)
- 收藏
- 关注
原创 深入分析 Watcher 机制的实现原理(三)客户端接收服务端处理完成的响应及事件触发
客户端接收服务端处理完成的响应ClientCnxnSocketNetty.messageReceived服 务 端 处 理 完 成 以 后 , 会 通 过NettyServerCnxn.sendResponse 发送返回的响应信息,客户端会在 ClientCnxnSocketNetty.messageReceived 接收服务端的返回@Override protected void channelRead0(ChannelHandlerContext ctx, ByteBuf buf
2020-05-31 21:20:42 676
原创 深入分析 Watcher 机制的实现原理(二)服务端接收请求处理流程
服务端接收请求处理流程服务端有一个 NettyServerCnxn 类,用来处理客户端发送过来的请求private void receiveMessage(ByteBuf message) { checkIsInEventLoop("receiveMessage"); try { while (message.isReadable() && !throttled.get()) { // //Byte
2020-05-31 18:30:18 477
原创 深入分析 Watcher 机制的实现原理(一)客户端注册watcher
深入分析 Watcher 机制的实现原理ZooKeeper 的 Watcher 机制,总的来说可以分为三个过程:客户端注册 Watcher、服务器处理 Watcher客户端回调 Watcher客户端注册 watcher 有 3 种方式,getData、exists、getChildren;以如下代码为例来分析整个触发机制的原理客户端注册 Watcher在创建一个 ZooKeeper 客户端对象实例时,我们通过new Watcher()向构造方法中传入一个默认的 Watcher
2020-05-31 15:45:18 638
原创 zookeeper javaApi 事件监听
1. 数据存储事务日志快照日志运行时日志 bin/zookeeper.out2 基于 Java API 初探 zookeeper 的使用2.1 zookeeper 增删改查import org.apache.zookeeper.*;import org.apache.zookeeper.data.Stat;import java.io.IOException;import java.util.concurrent.CountDownLatch;/** * @author: xiep
2020-05-31 13:45:22 672
转载 docker-compose 安装
https://blog.csdn.net/pushiqiang/article/details/78682323
2020-05-30 21:32:05 110
原创 【工具类】MD5Utils
MD5Utilsimport org.apache.commons.codec.binary.Base64;import java.security.MessageDigest;public class MD5Utils { /** * @Description: 对字符串进行md5加密 */ public static String getMD5Str(String strValue) throws Exception { MessageDigest md5 = Messa
2020-05-29 15:37:45 758
原创 【工具类】多文件压缩下载ZipUtil
ZipUtilimport java.io.*;import java.net.URLEncoder;import javax.servlet.http.HttpServletResponse;import org.apache.tools.zip.ZipEntry;import org.apache.tools.zip.ZipOutputStream;import org.slf4j.Logger;import org.slf4j.LoggerFactory;//import jav
2020-05-28 16:23:45 730
原创 技术书籍
推荐书籍:Java基础:《JAVA核心技术》(建议重头翻)《Effective JAVA》《JAVA编程思想》JAVA并发编程:《JAVA并发编程实战》(必读)《JAVA并发编程的艺术》《JAVA并发编程之美》(侧重源码)JAVA虚拟机:《深入理解java虚拟机》(必读)(面试题出处)MySQL:《sql必知必会》(基础)《高性能MYSQL》(必读)《MYSQL技术内幕:InnoDB存储引擎》(原理)Redis:《Redis深度历险:核心原理与应用实战》《Red
2020-05-27 23:19:05 133
原创 【工具类】jwt 从request头信息中获取jwt信息
XcOauth2Util 类package com.xuecheng.framework.utils;import lombok.Data;import org.apache.commons.lang3.StringUtils;import javax.servlet.http.HttpServletRequest;import java.util.Map;/** * Created by mrt on 2018/5/25. */public class XcOauth2Util {
2020-05-26 12:31:08 1532
原创 学成在线-第16天-讲义- Spring Security Oauth2 JWT RSA加解密
学成在线-第16天-讲义- Spring Security Oauth2 JWT1 用户认证需求分析1.1 用户认证与授权 截至目前,项目已经完成了在线学习功能,用户通过在线学习页面点播视频进行学习。如何去记录学生的学习过程呢?要想掌握学生的学习情况就需要知道用户的身份信息,记录哪个用户在什么时间学习什么课程;如果用户要购买课程也需要知道用户的身份信息。所以,去管理学生的学习过程最基本的要实现用户的身份认证。什么是用户身份认证? 用户身份认证即用户去访问系统资源时系统要求验证用户的身份信息,身
2020-05-25 21:03:40 2162
原创 zookeeper投票选举源码分析
一 leader 选举Leader 选举会分两个过程启动的时候的 leader 选举、 leader 崩溃的时候的的选举1. 服务器启动时的 leader选举每个节点启动的时候状态都是 LOOKING,处于观望状态,接下来就开始进行选主流程进行 Leader 选举,至少需要两台机器(具体原因前面已经讲过了),我们选取 3 台机器组成的服务器集群为例。在集群初始化阶段,当有一台服务器 Server1 启动时,它本身是无法进行和完成 Leader 选举,当第二台服务器 Server2 启动时,这个时候两
2020-05-25 01:30:26 342
原创 分布式协调框架zookeeper
一 什么是 RPCRPC(Remote Procedure Call,远程过程调用),一般用来实现部署在不同机器上的系统之间的方法调用,使得程序能够像访问本地系统资源一样,通过网络传输去访问远端系统资源;对于客户端来说, 传输层使用什么协议,序列化、反序列化都是透明的二 什么是 zookeeperzookeeper 是一个开源的分布式协调服务,由雅虎公司创建,是 google chubby 的开源实现。zookeeper 的设计目标是将哪些复杂且容易出错的分布式一致性服务封装起来,构成一个高效可靠的原
2020-05-24 23:40:14 200
原创 【工具类】CookieUtil
package com.xuecheng.framework.utils;import javax.servlet.http.Cookie;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.util.HashMap;import java.util.Map;/** * Created by admin on 2018/3/18. */
2020-05-19 16:35:23 246
原创 使用jna调用c语言动态库对接华视电子身份证阅读机
一些C语言的接口见上一篇文章同样把用到的动态库放到jdk的bin目录文件夹下Termb.javaimport com.sun.jna.Library;import com.sun.jna.Native;public interface Termb extends Library { Termb instanceDll = (Termb) Native.loadLibrary("Termb",Termb.class); int CVR_InitComm(int Port);
2020-05-18 09:48:24 785 2
原创 分布式
什么是分布式架构下的高可用设计避免单点故障a) 负载均衡技术(failover/选址/硬件负载/软件负载/去中心化的软件负载(gossip(redis-cluster)))b) 热备(linux HA)c) 多机房(同城灾备、异地灾备)应用的高可用性a) 故障监控(系统监控(cpu、内存)/链路监控/日志监控) 自动预警b) 应用的容错设计、(服务降级、限流)自我保护能力c) 数据量(数据分片、读写分离)分布式架构下的可伸缩设计垂直伸缩 提升硬件能力水平伸缩 增加服务器加速
2020-05-16 17:32:52 117
原创 使用jnative调用c语言动态库对接华视电子身份证阅读机
一 身份证阅读器SDK使用手册1. 定义应用函数开发包含下列文件:termb.dll API函数的动态联接库sdtapi.dll 安全模块通讯函数UnPack.dll 身份证相片解码库适用操作系统:Windows NT: 需要NT 3.1版或以后版本Windows: 需要 Windows 98、Windows 2000或以后版本适用开发语言:Visual C++ 5.0 及以后版本Visual Basic 5.0 及以后版本Delphi
2020-05-15 16:56:29 969
原创 spring源码解析
IOC:缓存的地方,得把它存起来(Map容器)DI:getter、setter、constructor(反射、invoker)AOP:为了增强原始Bean的功能(代理技术)Context是入口定位 用的 Reader 结尾的加载 BeanDefinition保存类信息,包括OOP关系注册 Factroy、Context 就是把用户所定义的Bean放到IOC容器中(Map)围绕Bean来展开BeanFactory来创建的reader loaddo开头的都是具体干活Cla
2020-05-15 00:25:08 180
原创 【瞎记】
虚拟机溢出调用链过长死循环无限递归zookeeper分布式锁临时节点 解决锁超时问题顺序解决解决惊群问题 每个客户端创建一个节点 只监听前一个节点
2020-05-15 00:10:07 93
转载 java 合并两个byte数组
https://blog.csdn.net/sjy_2010/article/details/84293926?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.nonecase
2020-05-12 19:37:44 637
转载 JQ定时请求数据,并根据返回的数据停止请求
https://blog.csdn.net/ruoshuiyx/article/details/78581261
2020-05-08 12:25:50 184
转载 vue 引入element ui tab切换
https://www.cnblogs.com/wangweizhang/p/10250991.html
2020-05-07 00:23:32 378
原创 pr笔记
前进一步:shift➕ctrl➕z颜色遮罩:https://jingyan.baidu.com/album/54b6b9c033f8406c583b47f8.html?picindex=4
2020-05-06 18:50:24 252
原创 【瞎记】rabbitmq慕课网笔记
第一步:消息入库第二步: 发送消息第三步:消息确认第四步:更改数据状态 标记已处理第五步:定时任务 抓取status=0的数据 重新投递消息对重试三次的 status改为3 表示失败 不再重试...
2020-05-02 19:38:57 392
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人