- 博客(237)
- 问答 (1)
- 收藏
- 关注
转载 JS模块化加载之CommonJS、AMD、CMD、ES6
Javascript模块化编程,已经成为一个迫切的需求。理想情况下,开发者只需要实现核心的业务逻辑,其他都可以加载别人已经写好的模块。Javascript社区做了很多努力,在现有的运行环境中,实现”模块”的效果。CommonJSCommonJS定义的模块分为: 模块引用(require) 模块输出(exports) 模块标识(module)CommonJS Modules有1.0、1.1、1.1.1三个版本:Node.js、SproutCore实现了 Modules 1.0 SeaJS
2021-02-25 14:51:30
286
转载 tomcat websocket 并发问题解决(四)
又产生的问题自从上次做过优化之后,貌似程序跑的还行,但是,最近发现日志中有报这样的错:java.lang.IllegalStateException: The remote endpoint was in state [TEXT_PARTIAL_WRITING] which is an invalid state for called method at org.apache.tomcat.websocket.WsRemoteEndpointImplBase$StateMachin
2020-12-11 17:13:50
1715
转载 tomcat websocket 并发问题解决(三)
其实这个只是解决这个问题时引出来的知识点,自己顺带看了代码而已,不过我还是厚着脸皮写在一个系列了。Spring 的解决方案Spring 的解决方案是把原来的 WebSocketSession 封了一层,即org.springframework.web.socket.handler.ConcurrentWebSocketSessionDecorator,下面我们就看看大厂是怎么做的。类成员首先来看一下这个类中都有哪些属性 /** 这两个限制条件默认值参见 - org..
2020-12-11 17:12:46
927
转载 tomcat websocket 并发问题解决(二)
现在的问题现在问题回到最开始了,上一篇文章说过,因为 tomcat 的 session.sendMessage() 方法在并发环境下会抛出异常,我们为了保证程序的正确性,在 session 上加了同步限制。然而这种做法会因对 session 的竞争导致所有的消息事实上是同步进行的,系统中的全部消息形成了一个超长队列,造成了性能上的问题,下边我就讲讲我的解决思路和方法。解决思路首先,我想到的有两点:session.sendMessage() 方法仅提供了最小的线程安全保证,同时发送多条消息时虽
2020-12-11 17:11:33
1169
转载 tomcat websocket 并发问题解决(一)
工作这么多年了,从来没写过博客,2018 年打算改变一下自己,于是打算平时工作解决问题后整理一下,写成博客发出来,这个想法有一段时间了,但是因为拖延症,所以今天才写,希望这是一个好的开始。问题起源公司应用内有一个基于websocket的聊天室功能,一直有用户反应高峰时段聊天信息延迟的厉害,终于找时间抽空解决了一下。首先通过日志发现,聊天室/直播间内用户稍微多一点的情况下(30-50人),广播一条消息就会非常耗时,常常达到 10-20s检查代码发现 SessionUtil 的 sendMess
2020-12-11 17:09:45
1309
转载 websocket error code 错误码说明 (CloseEvent事件说明)
CloseEvent会在连接关闭时发送给使用WebSockets的客户端. 它在WebSocket对象的onclose事件监听器中使用.构造器EDITCloseEvent()创建一个CloseEvent.属性EDIT该接口也继承了其父类Event的属性.CloseEvent.code只读返回一个 unsigned short 类型的数字, 表示服务端发送的关闭码, 以下为已分配的状态码.状态码 名称 描述 0–999 保留...
2020-12-08 19:06:11
12325
转载 什么是JVM?什么是JDK? 什么是JRE?
JVM:JVM是Java Virtual Machine(Java虚拟机)的缩写,它是整个java实现跨平台的最核心的部分,所有的java程序会首先被编译为.class的类文件,这种类文件可以在虚拟机上执行,也就是说class并不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解释给本地系统执行。JVM是Java平台的基础,和实际的机器一样,它也有自己的指令集,并且在运行时操作不同的内存区域。 JVM通过抽象操作系统和CPU结构,提供了一种与平台无关的代码执行方法,即与特殊的实
2020-09-18 16:27:41
242
转载 Metaspace 之一:Metaspace整体介绍(永久代被替换原因、元空间特点、元空间内存查看分析方法)
转自:https://www.cnblogs.com/williamjie/p/9558094.html一、元空间替换持久代1.1、持久代 PermGen space的全称是Permanent Generation space,是指内存的永久保存区域,说说为什么会内存益出:这一部分用于存放Class和Meta的信息,Class在被 Load的时候被放入PermGen space区域,它和和存放Instance的Heap区域不同,所以如果你的APP会LOAD很多CLASS的话,就很可能出现...
2020-09-15 16:27:45
1766
转载 vue双向绑定原理分析
当我们学习angular或者vue的时候,其双向绑定为我们开发带来了诸多便捷,今天我们就来分析一下vue双向绑定的原理。简易vue源码地址:https://github.com/jiangzhenfei/simple-Vue1.vue双向绑定原理vue.js 则是采用数据劫持结合发布者-订阅者模式的方式,通过Object.defineProperty()来劫持各个属性的setter,getter,在数据变动时发布消息给订阅者,触发相应的监听回调。我们先来看Object.definePropert
2020-09-10 15:25:01
89
转载 彻底搞清楚javascript中的require、import和export
为什么有模块概念理想情况下,开发者只需要实现核心的业务逻辑,其他都可以加载别人已经写好的模块。但是,Javascript不是一种模块化编程语言,在es6以前,它是不支持”类”(class),所以也就没有”模块”(module)了。require时代Javascript社区做了很多努力,在现有的运行环境中,实现”模块”的效果。原始写法模块就是实现特定功能的一组方法。只要把不同的函数(以及记录状态的变量)简单地放在一起,就算是一个模块。 1 2 3 4
2020-09-10 14:14:07
763
转载 jQuery jsonp跨域请求
jQuery jsonp跨域请求跨域的安全限制都是对浏览器端来说的,服务器端是不存在跨域安全限制的。浏览器的同源策略限制从一个源加载的文档或脚本与来自另一个源的资源进行交互。如果协议,端口和主机对于两个页面是相同的,则两个页面具有相同的源,否则就是不同源的。如果要在js里发起跨域请求,则要进行一些特殊处理了。或者,你可以把请求发到自己的服务端,再通过后台代码发起请求,再将数据返回前端。这里讲下使用jquery的jsonp如何发起跨域请求及其原理。先看下准备环境:两个...
2020-09-09 10:38:44
272
转载 git fetch & pull
1、简单概括先用一张图来理一下git fetch和git pull的概念:可以简单的概括为:git fetch是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中。而git pull则是将远程主机的最新内容拉下来后直接合并,即:git pull = git fetch + git merge,这样可能会产生冲突,需要手动解决。...
2020-08-25 13:06:44
81
转载 SpringBoot从入门到高级
前言:学习SpringBoot不应该直接就是开始使用SpringBoot,如果直接拿来用肯定会有很多人不是很明白特别刚开始入门的,当然官网上也有快速上手的教程但是官网上跨度有点大,在这片文章中为主要是从以前没使用SpringBoot之前我们怎么做的以及慢慢的引入SpringBoot,我希望通过自己的体会和认识来帮助更多朋友来学习SpringBoot目录结构SpringJavaConfig @Configuration和基础的@Bean @ComponentScan和测试 @Bean标.
2020-08-12 12:51:55
143
转载 理解Spring的AOP和IOC实现原理
1.AOPAOP(面向切面)是一种编程范式,提供从另一个角度来考虑程序结构以完善面向对象编程(OOP)。AOP为开发者提供了一种描述横切关注点的机制,并能够自动将横切关注点织入到面向对象的软件系统中,从而实现了横切关注点的模块化。AOP能够将那些与业务无关,却为业务模块所共同调用的逻辑或责任,例如事务处理、日志管理、权限控制等,封装起来,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可操作性和可维护性。使用AOP的好处降低模块的耦合度 使系统容易扩展 提高代码复用性AOP的
2020-08-05 17:09:58
126
转载 Linux之Shell脚本编程(一)
什么是Shell Shell是命令解释器(command interpreter),是Unix操作系统的用户接口,程序从用户接口得到输入信息,shell将用户程序及其输入翻译成操作系统内核(kernel)能够识别的指令,并且操作系统内核执行完将返回的输出通过shell再呈现给用户,下图所示用户、shell和操作系统的关系: Shell也是一门编程语言,即shell脚本,shell是解释执行的脚本语言,可直接调用linux命令。 .java -> .class 一个系统可以存.
2020-07-30 13:35:09
293
转载 Linux之Shell脚本编程(二)
上节回顾 在上一篇博文中,主要介绍了Shell脚本编程的背景,怎样创建人生中第一个Shell脚本以及Shell变量等内容。接下来将接着介绍介绍Shell编程,主要是围绕着Shell运算、流程控制语句、自定义函数以及脚本调试等方面展开。运算符 例: num1=11 num2=22 sum=num1+num1+num2 echo $sum 格式 :expr m + n 或$((m+n)) 注意expr运算符间要有空格 expr命令:对整数型变...
2020-07-30 13:33:33
211
原创 Hbase、Hdfs、kudu的处理数据的区别
kudu不及HDFS批处理快,也不及HBase随机读写能力强,但是反过来它比HBase批处理快(适用于OLAP的分析场景),而且比HDFS随机读写能力强(适用于实时写入或者更新的场景),这就是它能解决的问题。...
2020-07-27 17:34:33
1498
转载 一文读懂 Spark 和 Spark Streaming
前言Apache Spark 是当今最流行的开源大数据处理框架。和人们耳熟能详的 MapReduce 一样,Spark 用于进行分布式、大规模的数据处理,但 Spark 作为 MapReduce 的接任者,提供了更高级的编程接口、更高的性能。除此之外,Spark 不仅能进行常规的批处理计算,还提供了流式计算支持。Apache Spark 诞生于大名鼎鼎的 AMPLab(这里还诞生过 Mesos 和 Alluxio),从创立之初就带有浓厚的学术气质,其设计目标是为各种大数据处理需求提供一个统一的技术栈
2020-07-23 19:59:16
654
转载 Hadoop、storm和Spark Streaming简单介绍(非原创)
文章大纲一、Hadoop是什么二、storm是什么三、Spark Streaming是什么四、Spark与storm比较五、参考文章一、Hadoop是什么1. 简介Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。[1]Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,..
2020-07-23 19:51:15
254
转载 utf-8的中文,一个字符占几个字节
utf-8的中文,一个字符占几个字节https://blog.csdn.net/kindsuper_liu/article/details/80202150英文字母和中文汉字在不同字符集编码下的字节数英文字母:·字节数 : 1;编码:GB2312字节数 : 1;编码:GBK字节数 : 1;编码:GB18030字节数 : 1;编码:ISO-8859-1字节数 : 1;编码:UTF-8字节数 : 4;编码:UTF-16字节数 : 2;编码:UTF-16BE字节数 :.
2020-06-19 14:56:13
3900
转载 go proxy 设置
go proxy 设置aside section ._1OhGeD·2019-10-09 18:32:46· 10411 次点击 ·预计阅读时间 1 分钟·3分钟之前开始浏览 这是一个创建于2019-10-09 18:32:46的文章,其中的信息可能已经有所发展或是发生改变。在Go 1.13中,我们可以通过GOPROXY来控制代理,以及通过GOPRIVATE控制私有库不走代理。设置GOPROXY代理:go env -w GOPROXY=https://goprox...
2020-06-18 16:39:20
1189
原创 css 中两个class之间没有空格与有空格有什么区别
第一个匹配: <div class="ul item"></div>;无法匹配:<div class="ul"></div> 和 <div class="item"></div>;第二个匹配:<div class="ul"><div class="item"></div></div> 中间的 div;第三个匹配:<div class="ul"><div class=.
2020-06-16 16:04:08
252
转载 如何保障微服务架构下的数据一致性
1、微服务架构的数据一致性问题以电商平台为例,当用户下单并支付后,系统需要修改订单的状态并且增加用户积分。由于系统采用的是微服务架构,分离出了支付服务、订单服务和积分服务,每个服务都有独立数据库做数据存储。当用户支付成功后,无论是修改订单状态失败还是增加积分失败,都会造成数据的不一致。为了解决例子中的数据一致性问题,一个最直接的办法就是考虑数据的强一致性。那么如何保证数据的强一致性呢?我们从关系型数据库的 ACID 理论说起。关系型数据库具有解决复杂事务场景的能力,关系型数据库的事务满足 A
2020-06-11 16:19:01
472
转载 网络基础之网络协议篇---CS架构--网络通信--osi 协议---套接字socket--粘包
1 C\S 客户端/服务器架构:1.硬件 C/S架构 (打印机)2.软件 C/S 架构 互联网中处处是C/S架构 如黄色网站是服务端,你的浏览器是客户端(B/S架构也是C/S架构的一种) 腾讯作为服务端为你提供视频,你得下个腾讯视频客户端才能看它的视频) C/S 架构 与 socket 的关系:我们学习 socket 就是为了完成 C/S架构的开发...
2020-05-29 16:13:58
2050
转载 idea+git 回退上一个版本
idea+git 回退上一个版本技术标签:Git回退版本当你误删了一段代码(方法),但又提交了,可以使用下面Get的操作来进行回退。打开文件的历史提交记录(【Git】→ 【Show History】),选择回退的版本 → 【Get】,然后你就可以看到你的代码又回来了...
2020-05-19 16:26:34
3891
转载 IDEA版本回滚
使用 git 进行项目的版本控制时,肯定会遇到回滚版本的情况,回滚有两种,一种是本地仓库回滚,另外一种是远程仓库回滚。以下详细讲解两种回滚方式,本文主要讲解远程回滚,以及常见使用误区。本地仓库回滚本地回滚就很简单,只是要撤销 commit 信息即可。可以直接使用Reset HEAD进行回滚。HEAD^ 是还原到上一个版本,HEAD^^ 是还原到上上一个版本。Reset Type 有...
2020-04-24 17:05:42
10175
1
转载 C/C++学习路线
随着互联网及互联网+深入蓬勃的发展,经过40余年的时间洗礼,C/C++俨然已成为一门贵族语言,出色的性能使之成为高级语言中的性能王者。而在今天,它又扮演着什么样重要的角色呢?请往下看:后端服务器,移动互联网后端,经典Windows界面开发,移动互联网端界面开发,跨平台界面开发,图形分析,系统架构,应用设计,还有现在最为流行的分布架构等一些新的技术领域。这么牛的语言,你是不是想知道怎样学习...
2019-09-10 10:50:44
144
转载 soapUI传xml格式的字符串作为服务的参数
本文链接:https://blog.csdn.net/sinat_32759831/article/details/79696498一个服务需要xml格式的字符串参数,用soapUI传递参数时要这样写:<![CDATA[<?xml version="1.0" encoding="UTF-8"?><root><params>&l...
2019-09-04 10:51:40
2481
转载 数据库常用的事务隔离级别都有哪些?都是什么原理?
什么是事务隔离?任何支持事务的数据库,都必须具备四个特性,分别是:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability),也就是我们常说的事务ACID,这样才能保证事务((Transaction)中数据的正确性。而事务的隔离性就是指,多个并发的事务同时访问一个数据库时,一个事务不应该被另一个事务所干扰,每个并发的事务...
2019-09-03 17:02:37
350
转载 HTTP和HTTPS协议,看一篇就够了
https://blog.csdn.net/xiaoming100001/article/details/81109617
2019-06-12 10:25:24
315
1
转载 Oracle 字符串转换TIMESTAMP类型或Date类型
一、使用oracle函数:TO_TIMESTAMP_TZ('2009-3-9 17:51:23.23 -05:00', 'YYYY-MM-D HH24:MI:SS.FF TZH:TZM')TO_DATE(yourdate,'YYYY-MM-D HH24:MI:SS'); // 字符串转日期DateT0_CHAR(yourdate,'YYYY-MM-D HH24:MI:SS'...
2019-02-21 11:16:30
2160
原创 大数据分析处理框架——离线分析(hive,pig,spark)、近似实时分析(Impala)和实时分析(storm、spark streaming)
大数据分析处理框架——离线分析(hive,pig,spark)、近似实时分析(Impala)和实时分析(storm、spark streaming)大数据分析处理架构图数据源:除该种方法之外,还可以分为离线数据、近似实时数据和实时数据。按照图中的分类其实就是说明了数据存储的结构,而特别要说的是流数据,它的核心就是数据的连续性和快速分析性;计算层:内存计算中的Spark是UC ...
2019-01-11 14:16:20
1817
原创 [Kudu基础]--Kudu+Impala介绍
Kudu+Impala介绍概述Kudu和Impala均是Cloudera贡献给Apache基金会的顶级项目。Kudu作为底层存储,在支持高并发低延迟kv查询的同时,还保持良好的Scan性能,该特性使得其理论上能够同时兼顾OLTP类和OLAP类查询。Impala作为老牌的SQL解析引擎,其面对即席查询(Ad-Hoc Query)类请求的稳定性和速度在工业界得到过广泛的验证,Impala并没有...
2019-01-11 14:09:48
826
原创 Idea--Tomcat配置中的On Upate Action 与 On Frame Deactivation 最后的总结很到位
这两个选项的设置,依赖于 项目的部署方式 是 exploded1、on update action首先来看 on update action 相关的解释,从字面上理解 就是 手工触发 update 动作的时候 做什么:update resources---- 更新静态的资源,比如html,js,css等 运行模式和调试模式都是立即生效。update classes and r...
2018-12-27 08:55:21
347
原创 Impala SQL 语言元素(翻译)[转载]
Impala SQL 语言元素(Elements)Impala SQL 方言支持一组标准元素(a range of standard elements),加上许多大数据方面的扩展,用于数据加载和数据仓库方面。注意:在之前的 Impala beta 版中,在impala-shell中每一语句结束时的分号是可选的。现在impala-shell支持多行命令,以便于从脚本文件中复制...
2018-09-21 10:05:04
806
转载 跨域策略文件crossdomain.xml的配置方法
一、crossdomain.xml文件的作用 跨域,顾名思义就是需要的资源不在自己的域服务器上,需要访问其他域服务器。跨域策略文件是一个xml文档文件,主要是为web客户端(如Adobe Flash Player等)设置跨域处理数据的权限。打个比方说,公司A部门有一台公共的电脑,里面存放着一些资料文件,专门供A部门内成员自己使用,这样,A部门内的员工就可以访问该电脑,其他部门人员则不允许...
2018-08-22 15:06:56
26981
原创 公钥和私钥联系和区别
一直以来对公钥和私钥都理解得不是很透彻,感觉到模棱两可,心里直打鼓呢。公钥怎么会事?私钥怎么会事?工作原理是怎么的?今天在网上找了半天,通过查看大家对这个密钥对的理解,总算弄清楚了,咱就把我的心得写出来给大家对密钥对有疑问的同志们看看。 公钥和私钥就是俗称的不对称加密方式,是从以前的对称加密(使用用户名与密码)方式的提高。我用电子邮件的方式说明一下原理。 使用公钥与私钥的目的就...
2018-06-28 20:05:53
3390
1
空空如也
tomcat部署的工程下面还有子项目,实在没接触过这个啊,哪位大神指导一下啊
2016-06-03
TA创建的收藏夹 TA关注的收藏夹
TA关注的人