自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(151)
  • 收藏
  • 关注

原创 RocketMQ原理

01 Topic 的路由机制 介绍路由注册机制之前,先简单看下 RocketMQ 的整体架构:Producer:消息生产者,用于向消息服务器发送消息; NameServer:路由注册中心; Broker:消息存储服务器; Consumer:消息消费者,该流程图中未涉及。1. 联通性NameServer 之间互不通信,无法感知对方的存在。 Producer 生产者与 Nam...

2019-09-24 22:48:09 332

转载 Java内存模型的深入理解

基础并发编程的模型分类在并发编程需要处理的两个关键问题是:线程之间如何通信和线程之间如何同步。通信通信是指线程之间以何种机制来交换信息。在命令式编程中,线程之间的通信机制有两种:共享内存和消息传递。在共享内存的并发模型里,线程之间共享程序的公共状态,线程之间通过写-读内存中的公共状态来隐式进行通信。在消息传递的并发模型里,线程之间没有公共状态,线程之间必须通过明确...

2019-09-23 12:24:08 164

原创 JVM体系结构之三:方法区

一、简介方法区在JVM中也是一个非常重要的区域,它与堆一样,是被线程共享的区域。在方法区中,存储了每个类的信息(包括类的名称、方法信息、字段信息)、静态变量、常量以及编译器编译后的代码等。方法区(method area)只是JVM规范中定义的一个概念,用于存储类信息、常量池、静态变量、JIT编译后的代码等数据,具体放在哪里,不同的实现可以放在不同的地方。而永久代是Hotspot虚拟机...

2019-08-03 14:35:48 273

原创 native关键字 native Method

学习种遇到的关键字 native 疑惑解答1,关于native关键字想必读者已经了解过native关键字了。这里笔者就大致囊括一下,被native关键字修饰的方法叫做本地方法,本地方法和其它方法不一样,本地方法意味着和平台有关,因此使用了native的程序可移植性都不太高。另外native方法在JVM中运行时数据区也和其它方法不一样,它有专门的本地方法栈。native方法主要用于加载...

2019-08-03 14:17:39 193

原创 Native方法 native关键字详解

1,关于native关键字想必读者已经了解过native关键字了。这里笔者就大致囊括一下,被native关键字修饰的方法叫做本地方法,本地方法和其它方法不一样,本地方法意味着和平台有关,因此使用了native的程序可移植性都不太高。另外native方法在JVM中运行时数据区也和其它方法不一样,它有专门的本地方法栈。native方法主要用于加载文件和动态链接库,由于Java语言无法访问操作...

2019-08-03 14:15:57 1012

原创 实时音视频技术(WebRTC/voip/Linphone/P2P)

实时音视频技术(WebRTC/voip/Linphone/P2P) 视频社交与语音社交??? 实时视频(直播)/语音通信。多媒体技术团队在音视频编解码、前后处理、传输等技术;在语音社交、视频社交、游戏语音和互动直播等领域,关于在语音视频实时传输中实现低延迟这个议题,已经有不少的文章提出各种方案。绝大部分方案的思路都是“优化”,比如说,优化编码、推流、传输和播放等各个环节。要在实时...

2019-08-03 00:26:26 1906

原创 基于mediasoup的多方通话研究 webRtc

基于mediasoup的多方通话研究(一)基于mediasoup的多方通话研究(一) mediasoup简介 mediasoup的特性 安装mediasoup-demo 本地运行Demo server的配置文件 mediasoup的原理 扩展与展望 总结 mediasoup简介mediasoup号称尖端的WebRTC的视频会议系统,官网为...

2019-08-02 17:29:50 1335 1

原创 Netty入门教程2——动手搭建HttpServer

Netty入门教程2——动手搭建HttpServer在上一章中我们认识了netty,他有三大优点:并发高,传输快,封装好。在这一章我们来用Netty搭建一个HttpServer,从实际开发中了解netty框架的一些特性和概念。netty.png认识Http请求在动手写Netty框架之前,我们先要了解http请求的组成,如下图:HTTP request com...

2019-07-31 21:36:15 104

原创 Netty入门教程——认识Netty

Netty入门教程——认识NettyNetty什么是Netty?Netty 是一个利用 Java 的高级网络的能力,隐藏其背后的复杂性而提供一个易于使用的 API 的客户端/服务器框架。Netty 是一个广泛使用的 Java 网络编程框架(Netty 在 2011 年获得了Duke's Choice Award,见https://www.java.net/dukescho...

2019-07-31 21:10:27 97

转载 ZooKeeper基本原理

ZooKeeper基本原理ZooKeeper简介ZooKeeper是一个开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。ZooKeeper设计目的1.最终一致性:client不论连接到哪个Server,展示给它都是同一个视图,这是zookeeper最重要的性能。2.可靠性:具有简单、健壮、良好的性能...

2019-07-30 23:08:53 88

转载 ElasticSearch的基本原理与用法

ElasticSearch的基本原理与用法一、简介ElasticSearch和Solr都是基于Lucene的搜索引擎,不过ElasticSearch天生支持分布式,而Solr是4.0版本后的SolrCloud才是分布式版本,Solr的分布式支持需要ZooKeeper的支持。这里有一个详细的ElasticSearch和Solr的对比:http://solr-vs-elasticsearc...

2019-07-30 21:40:13 156

转载 深入理解Java:注解(Annotation)自定义注解入门

  要深入学习注解,我们就必须能定义自己的注解,并使用注解,在定义自己的注解之前,我们就必须要了解Java为我们提供的元注解和相关定义注解的语法。元注解:  元注解的作用就是负责注解其他注解。Java5.0定义了4个标准的meta-annotation类型,它们被用来提供对其它 annotation类型作说明。Java5.0定义的元注解:    1.@Target,    2.@...

2019-07-29 20:30:29 81

原创 Ubuntu 系统中 Java的图形出错报错 但是windows不报错 /java/jdk1.8.0_11/jre/lib/amd64/libawt_xawt.so: libXtst.so.6: ca

Ubuntu 系统中Java的图形出错报错 但是windows不报错 调用报错信息 java.lang.UnsatisfiedLinkError: /java/jdk1.8.0_11/jre/lib/amd64/libawt_xawt.so: libXtst.so.6: cannot open shared object file: No such file or directory...

2019-07-29 11:51:14 2424 1

原创 jetty启动配置JVM参数 与-D命令

cd到start.jar所在目录,jetty的webapps的父目录运行命令java -jar start.jar --add-to-start=jvm这个命令会帮你在start.ini里面加上一些JVM默认配置参数(注释状态),然后你想用哪些参数,把相关的注释取消掉就好了。注意:记得把--exec这个参数取消注释,官方解释是想要在ini文件里面加JVM参数配置,就要加上--exe...

2019-07-29 11:16:51 725

原创 查看JVM加载的类及类加载器的方法

查看JVM加载了哪些类java查看JVM加载了哪些类Java -verbose[:class|gc|jni]在输出设备上显示虚拟机运行信息。java -verbose:classjava -verbose:class在程序运行的时候有多少类被加载!你可以用verbose:class来监视,在命令行输入java -verbose:class XXX(XXX为程序名),也可以直...

2019-07-28 16:02:20 3857 1

原创 关于Javac命令和类文件之间的依赖问题 (找不到程序包)

今天,笔者遇到了一个小问题:在使用原始的javac编译Java类文件时,如果当前类文件对其他类有依赖,那么,就可能会出现问题。举例如下:笔者在桌面新建一个文件夹test,然后建立两个类:A.java和B.java,如下图:两个类的代码都很简单,其中B类对A类有依赖:然后,我们分3种情况分析:情况① :直接用javac命令编译...

2019-07-28 12:52:13 3545 3

转载 Linux下报 java.net.SocketException权限不够

今天在Linux下用Jetty把一个应用启动起来报权限不够异常。其实原因很简单,但是如果一时疏忽可能会习惯性地google一把,我就google了一把,但是发现网上关于这个问题的内容很少。所以我特记录一下,希望能给遇到同样问题的同学有帮助。异常内容如下:HSFJettyWebAppContext replace servlet context get file /tmp/hsf_j...

2019-07-23 12:31:34 213

转载 Java类型中ParameterizedType,GenericArrayType,TypeVariabl,WildcardType详解

Java类型中ParameterizedType,GenericArrayType,TypeVariabl,WildcardType详解(1). 和反射+泛型有关的接口类型java.lang.reflect.Type:java语言中所有类型的公共父接口 java.lang.reflect.ParameterizedType java.lang.reflect.GenericArr...

2019-06-01 12:08:05 384

转载 详解Condition的await和signal等待/通知机制

详解Condition的await和signal等待/通知机制1.Condition简介任何一个java对象都天然继承于Object类,在线程间实现通信的往往会应用到Object的几个方法,比如wait(),wait(long timeout),wait(long timeout, int nanos)与notify(),notifyAll()几个方法实现等待/通知机制,同样的, 在j...

2019-05-31 18:38:04 140

转载 Vue.js双向绑定的实现原理

Vue.js双向绑定的实现原理 Vue.js 最核心的功能有两个,一是响应式的数据绑定系统,二是组件系统。本文仅探究双向绑定是怎样实现的。先讲涉及的知识点,再用简化得不能再简化的代码实现一个简单的 hello world 示例。  参考文章:https://segmentfault.com/a/1190000006599500一、访问器属性 访问器属性是对...

2019-05-28 18:21:17 167

原创 Vue父子组件生命周期执行顺序及钩子函数的个人理解

先附一张官网上的vue实例的生命周期图,每个Vue实例在被创建的时候都需要经过一系列的初始化过程,例如需要设置数据监听,编译模板,将实例挂载到DOM并在数据变化时更新DOM等。同时在这个过程中也会运行一些叫做生命周期钩子的函数(回调函数),这给了用户在不同阶段添加自己代码的机会。1、vue的生命周期图在vue实例的整个生命周期的各个阶段,会提供不同的钩子函数以供我们进行不同的操作...

2019-05-19 16:56:32 190

原创 shiro框架---多项目登录访问共享session的实现

shiro框架---多项目登录访问共享session的实现shiro框架—多项目登录访问共享session的实现公司需要这样的需求:  有两个项目master 主项目、suiteone 项目,两个项目各自由shiro 安全框架管理,当不能登录时,都无法访问,但当登录了其中一个,再访问另一个的时候不再需要登录即可访问。  如果想看为什么需要共享session ,可以去看我这篇文章。shi...

2019-04-21 20:00:53 532

原创 session在什么时候创建,以及session一致性问题

sessionid是一个会话的key,浏览器第一次访问服务器会在服务器端生成一个session,有一个sessionid和它对应。tomcat生成的sessionid叫做jsessionid。session在访问tomcat服务器HttpServletRequest的getSession(true)的时候创建,tomcat的ManagerBase类提供创建sessionid的方法:随机数+时间...

2019-04-21 15:00:13 182

原创 Java tomcat 实现二级域名session共享(良心共享)

本文主要目的:一个用户在一台服务器的用户中心登录后产生的SESSION,然后访问在不同的服务器上的不同二级域名的应用都能共享到这个用户登录后的SESSION,可以说是单点登录。用到的技术:J2E,Tomcat,Redis,Cookie先阐述两个概念:1)什么是一级域名和二级域名?比如说你有一个域名是aa.com,那么aa.com就是你这个域名的一级域名,www.aa.com和...

2019-04-21 13:45:54 184

原创 session什么情况下会改变

session什么情况下会改变准备工作:(区分浏览器窗口和浏览器标签)1.测试代码:如图片,其中SessionDemo1类和SessionDemo2是一样的,只是类名不一样,作用是作为两个不同的被访问的资源sd1 、sd2.2.两个不同款的多标签的浏览器(IE、百度)开始验证:session什么情况下会改变测试步骤:一、同一浏览器不同标签页访问同一资源1.打开IE浏览器...

2019-04-21 13:40:25 829

原创 web 容器,spring容器,spring-mvc容器关系

web 容器,spring容器,spring-mvc容器2018年08月31日 22:35:50beta_xiyan阅读数:119版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/beta_xiyan/article/details/82261932  说起spring、spring-mvc,大家都会想到 自动注入控制反转IOC这些...

2019-04-19 18:37:19 207 1

转载 关于spring与springMVC容器初始化的一些探讨

本人刚开始接触spring与springMVC不久,最开始配置service项目时遇到一个问题:在rootconfig下配置spring扫描bean的路径包含了controller,然后在webconfig中不配置扫描controller的路径,发现在tomcat启动时,确实初始化了controllerBean并且存放在了rootWebapplicationContext上。但是请求接口时却...

2019-04-19 18:29:13 182

原创 springmvc前台访问404,不能进入controller,后台不报错问题解决方案心得

一.摘要emmmm..对springmvc不太熟练的情况下,如果不出意外的话,项目启动后出现404页面是很烦人。在这里,我记录一下可能会导致出现这种情况的原因<因为之前的文章结构不算是很清晰,所以这次做一些修改>二.出现404的分类以及会导致的原因1.启动项目后,无法访问主页出现的404;2.项目启动并且成功进入主页后,访问其他页面出现的4042.2.1. 相关操作访...

2019-04-19 16:24:54 1776

原创 关于@Autowired后Spring无法注入的问题

在使用Spring框架开发的时候,难免有时会遇到@Autowired后无法自动主动,然后报空指针异常的错,下面说一下本人遇到的问题和解决办法.1.对于新手来说,最明显的不过是在applicationContext.xml文件上没有加<context:component-scan base-package="com.xxx"/>,或者明明写了,但Spring还是没有将该类注入到容器中...

2019-04-19 13:47:59 3643

原创 使用redis客户端可以连接集群,但使用JedisCluster连接redis集群一直报Could not get a resource from the poo

一,问题描述:(如题目)通过jedis连接redis单机成功,使用JedisCluster连接redis集群一直报Could not get a resource from the pool但是使用redis客户端可以连接集群(我使用的redis desktop manager)在java中通过jedis连接redis单机也成功,但使用JedisCluster连接redis集群一直报C...

2019-04-18 22:25:17 1028

原创 redis 外部访问配置(bind正确配置)

部署完redis 后,发现外部无法访问到redis。可能你已经跟我一样看了晚上很多帖子,大部分都大同小异,都是设置redis配置里的bind ,把这个设置项改成你服务器的真正ip地址,其实是错误的。我按照网上的说服,设置了,但是会发现redis无法启动,执行了启动命令之后没反应,然后切回了127.0.0.1 之后正常启动,翻看了很多帖子都是这样,无意中看到了这个帖子,http://www...

2019-04-18 18:10:01 449 1

转载 tomcat 二级域名 session共享

Tomcat下,不同的二级域名之间或根域与子域之间,Session默认是不共享的,因为Cookie名称为JSESSIONID的Cookie根域是默认是没设置 的,访问不同的二级域名,其Cookie就重新生成,而session就是根据这个Cookie来生成的,所以在不同的二级域名下生成的Session也 不一样。找到了其原因,就可根据这个原因对Tomcat在生成Session时进行相应的修改(注:本...

2019-04-16 09:35:44 172

原创 分布式session的共享及cookie跨域共享

本文将简单介绍一下分布式环境下session共享问题、跨域名来共享cookie及多终端session的统一。一:分布式session的共享既然是一个分布式 Session的处理框架,必然会重新实现 HttpSession的操作接口,使得应用操作 Session的对象都是我们实现的 InnerHttpSession对象,这个操作必须在进入应用之前完成,所以可以配置一个 filter拦截用户...

2019-04-15 13:55:00 738

原创 Cookie Session跨站无法共享问题(单点登录解决方案)

至于什么是单点登录,举个例子,如果你登录了msn messenger,访问hotmail邮件就不用在此登录。一般单点登录都需要有一个独立的登录站点,一般具有独立的域名,专门的进行注册,登录,注销等操作我们为了讨论方便,把这个登录站点叫做站点P,设其Url为http://passport.yizhu2000.com,需要提供服务的站点设为A和B,跨站点单点登录是指你在A网站进行登录后,使用B网...

2019-04-15 13:37:42 248

转载 观察者模式实现事件驱动模型

先引入四人帮之书里面关于观察者模式的一段高度概括观察者模式——定义对象间的一种一对多的依赖关系,当一个对象的状态发生变化时,所有依赖它的对象都得到通知并自动更新。事件驱动模型是观察者模式的一种典型应用。该模式主要由事件源,事件对象,以及事件监听器三元素构成。以常见的点击事件为例子。按钮为事件源,相当于观察者模式中的被观察者;点击为事件对象;事件监听器,相当于观察者模式中的观察者。当事件...

2019-04-10 20:41:03 167

原创 使用IntelliJ IDEA查看类的继承关系图形

最近正好也没什么可忙的,就回过头来鼓捣过去的知识点,到Servlet部分时,以前学习的时候硬是把从上到下的继承关系和接口实现记得乱七八糟。这次利用了IDEA的diagram,结果一目了然,也是好用到炸裂,就此分享。1、查看图形形式的继承链在你想查看的类的标签页内,点击右键,选择 Diagrams,其中有 show 和 show ... Popup,只是前者新建在标签页内,后...

2019-04-06 13:03:39 106

转载 idea中查看方法的调用链 快捷键

Eclipse的"Call Hierarchy"可以查看一个Java方法或类成员变量的调用树(caller和callee两个方向),非常方便。在IDEA中类似功能被划分到了三个命令。IntelliJ IDEA中可以在主菜单中选择Navigate | Call Hierarchy命令查看一个Java方法调用树(caller和callee两个方向),但是不像Eclipse那样可以查看类成...

2019-04-06 00:47:16 38991 4

转载 shiro中 subject.getPrincipal() getPrimaryPrincipal()及第六章 Realm及相关对象

shiro中 subject.getPrincipal() getPrimaryPrincipal()及第六章 Realm及相关对象2018年01月31日 10:44:04琅琊山二当家阅读数:4859测试用例(com.github.zhangkaitao.shiro.chapter6.realm.PrincialCollectionTest)因为我们的Realm中没有进行身份及凭据...

2019-04-05 17:20:00 3005

转载 Linux 性能检查命令总结

Linux 性能检查命令总结如果你的Linux服务器突然负载暴增,告警短信快发爆你的手机,如何在最短时间内找出Linux性能问题所在?

2018-02-09 14:30:32 211

原创 dom笔记

(一)HTMLDocument接口操作HTML文档的第一步就是获取对文档元素的引用,每一个元素在DOM中就是一个节点,所有的元素在DOM中构成一个节点树。用于获取元素节点定义的方法定义于HTMLDocument接口,window.document方法用于实现该接口,其定义的常用方法和属性如下:属性或方法返回值类型说明[getter]任何类型根据元素的name属性获取所有元素节点allHTMLAll...

2018-02-08 10:16:58 496

空空如也

空空如也

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

TA关注的人

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