- 博客(82)
- 资源 (47)
- 收藏
- 关注
原创 js中(双感叹号)符号的用法解读
最近在前端vue工程开发中看到一个js用法,对js初学者来说这是一个容易混淆的地方,趁此机会研究研究!!的用法。if (!!getItem('Authorization')) {console.log('已登录')}1、!的用法!可将变量转换成布尔类型,对null、undefined和空字符串取反后均为true,对于非空字符串或非null对象,执行!运算后则为false,例如:!null = true;!undefined = true;!'' = true;!'wang' = f
2022-05-05 15:48:15
3173
1
原创 http请求头origin、referer和host区别
1. Host描述请求将被发送的目的地,包括且仅仅包括域名和端口号。 HTTP/1.1 的所有请求报文中必须包含一个Host头字段,且只能设置一个。2. Origin请求头origin表明了请求来自于哪个站点。包括且仅仅包括协议、域名和端口,并不包含任何路径信息。经常用于CORS请求或者POST请求,可以看到response有对应的header:Access-Control-Allow-Origin。@CrossOrigin(origins="http://wx.xxxx.com:80")
2022-01-04 19:14:15
10851
原创 Apache Log4j2.x RCE命令执行漏洞攻击原理及修复措施
截止2021.12.20,短短几天Log4j2.x已经连发3个版本,用以修复RCE命令执行漏洞,Log4j2漏洞总体来说是通过JNDI注入恶意代码来完成攻击,具体的操作方式有RMI和LDAP等。一、攻击原理以RMI为例,简单阐述下该漏洞的攻击原理:1、攻击者首先发布一个RMI服务,此服务将绑定一个引用类型的RMI对象。在引用对象中指定一个远程的含有恶意代码的类。2、攻击者再发布另一个恶意代码下载服务,此服务可以下载所有含有恶意代码的类。3、攻击者利用Log4j2的漏洞注入RMI调用,
2021-12-23 19:19:48
4003
原创 Docker之常用命令总结
以下为实际项目中常用docker命令的总结,命令中镜像名为oss/jeeopen:1.0,容器名为jeeopen,每个命令的具体OPTIONS说明请自行搜索查看。1、Docker基本命令显示 Docker 系统信息,包括镜像和容器数docker info显示Docker版本信息docker version磁盘空间大小总览docker system df –v宿主机与容器之间拷贝文件docker cp redis-3.0.7.tar.gz jeeopen:/home/jap
2021-12-06 14:03:26
865
原创 Docker实战:利用Docker创建Percona(MySQL)集群
Percona是MySQL的分支版本,性能超越标准的MySQL。本文以构建Percona集群为例进行Docker实战讲解,具体步骤如下:1、获取Percona(MySQL)数据库的imagedocker pull percona/percona-xtradb-cluster:latest2、重命名本地镜像docker tag percona/percona-xtradb-cluster:latest pxc3、网络相关配置默认情况下容器与容器、容器与宿主机的网络是隔离开来的,Do
2021-11-15 16:01:17
2117
原创 BPM引擎Activiti6.0任务撤回实现方法
当前使用的BPM引擎为Activiti6.0,客户需求是流程发起人能将整个流程撤销,对于某个流程节点,办理人可以撤回已经办理的任务,同时前提是该任务节点的下个节点未被办理。1、流程撤销首先说下发起人对整个流程的撤销,直接删除流程,传入流程实例ID,结束一个流程。执行此方法后,流程实例的当前任务act_ru_task会被删除,流程历史act_hi_taskinst不会被删除,并且流程历史的状态置为finished完成。runtimeService.deleteProcessInstance(in
2021-08-21 11:27:49
3932
9
原创 MySQL大数据量处理常用解决方案
1、读写分离读写分离,将数据库的读写操作分开,比如让性能比较好的服务器去做写操作,性能一般的服务器做读操作。写入或更新操作频繁可以借助MQ,进行顺序写入或更新。2、分库分表分库分表是最常规有效的一种大数据解决方案。垂直拆分表,例如将表的大文本字段分离出来,成为独立的新表。水平拆分表,可以按时间,根据实际情况一个月或季度创建一个表,另外还可以按类型拆分。单表拆分数据应控制在1000万以内。分库分表后要注意对SQL语句的支持,稍不小心,可能就会造成业务数据混乱等问题。3、数据缓存使用缓存技术降低对数据
2021-08-11 10:26:49
7176
原创 微服务架构设计之聚合模式和代理模式
1、微服务概念微服务架构是一种架构风格与设计模式,具有如下优点:小而专,提倡将大的应用分割成一系列小的服务;高内聚,每个服务专注于各自单一的业务功能;独立运行,每个服务运行于独立的进程中,有清晰的服务边界;轻量级通讯,采用轻量级的通讯机制(Http/Rest)来实现互通、协作。小而专,提倡将大的应用分割成一系列小的服务。比如将电商平台一个单体应用拆分成购物、交易、物流、商品,跨功能开发团队(特性团队)负责各自模块从需求、UI、设计、实施、运维全过程,快速交付用户价值。高内聚,每个服务专注于各
2021-07-10 14:42:11
2691
1
原创 SpringBoot技术剖析之Starter组件
SpringBoot另一核心特性是Starter组件,Starter组件的出现极大简化了项目开发,例如在项目中使用的pom.xml文件下配置:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency>SpringBoot就会自动关联w...
2021-07-10 14:03:59
558
原创 网络信息安全之请求重放校验、防会话重放攻击
上篇文章介绍了敏感数据如何加密传输,加密可以有效防止会话劫持,但是却防止不了重放攻击。重放攻击任何网络通讯过程中都可能发生,攻击者发送一个目的主机已经接收过的包,来达到欺骗系统的目的。这篇文件详细介绍下防止会话重放的方法和步骤,目的是防止会话请求数据包重放,保护目的主机免收攻击。1、客户端身份认证或第一次访问时,向服务端请求当前系统时间systime;2、客户端接收服务端返回的当前系统时间systime,并计算出与当前客户端时间clienttime的差值difftime=systime-clientt
2021-02-21 21:16:24
2413
原创 网络信息安全之敏感信息在传输、显示时如何加密和脱敏处理
客户端通过http协议获取系统重要敏感信息时,很容易造成敏感信息泄露。攻击者可以利用收集的重要敏感信息有针对性的制定计划对系统进行攻击。如何防护呢?首先应根据业务特点定义出系统存储的敏感信息,另外敏感信息在存储、传输、显示时应进行加密或脱敏处理。1、敏感数据上传客户端将敏感数据加密后上传至服务端,敏感信息Data采用对称加密算法进行加密传输,对称加密密钥Key采用非对称加密传输。具体步骤如下所示。1)服务端生成有效密钥对,并将PublicKey返回给客户端。公私钥在一个会话周期内有效,若重新登录
2021-01-25 19:30:15
11146
4
原创 深入解析SpringBoot自动装配原理,轻松掌握SpringBoot核心功能
自动装配是SpringBoot的核心功能,它将开发人员从Bean的繁复配置中解脱出来。那么SpringBoot具体起什么作用呢?以Spring MVC为例,不采用SpringBoot时,需要配置视图解析器,文件解析器,请求适配器等各种Bean,如果采用SpringBoot,则只需集成spring-boot-starter-web依赖模块即可。同样如果使用数据库,在非SpringBoot工程中,我们需要配置dataSource、sessionFactory、transactionManager等各种Bean。
2020-08-27 08:39:52
348
原创 记一次由ehcache缓存引起的shiro登录信息变更失败的解决方案
问题描述:apache shiro是一个被广泛使用的安全层框架,用户的登陆/退出/权限控制/Cookie等功能都可以交给shiro来管理。项目开发中登录认证也是正是采用shiro进行管理的,由于shiro默认对ehcache的支持,所以shiro缓存管理我们采用了ehcache。最近测试中偶尔发现,在对登录用户所属机构信息进行变更后,再次登录系统用户所属机构信息竟然没有发生变化,经分析发现是ehcache缓存引起的,用户所属机构变更后并未同步/清空缓存的用户信息。解决问题关键是在合适时机清空登录用户的ehc
2020-07-10 19:09:14
716
原创 SpringBoot项目Redis两种实现Lettuce和Jedis比较
Jedis是直连模式,在多个线程间共享一个Jedis实例时是线程不安全的,可以通过创建多个Jedis实例来解决,但当连接数量增多时,物理连接成本就较高同时会影响性能,因此较好的解决方法是使用JedisPool。Lettuce的连接是基于Netty的,连接实例可以在多个线程间共享,Netty可以使多线程的应用使用同一个连接实例,而不用担心并发线程的数量。通过异步的方式可以让我们更好地利用系统资源。1、Jedis集成使用1.1、pom.xml中添加redis相关依赖<dependen
2020-05-31 10:19:41
8978
1
原创 学以致用Redis五种数据类型总结及应用场景
Redis常用数据结构有string,hash,list,set,zset,本文将就五种数据结构常用操作进行说明,并就典型应用场景进行举例。1、Redis数据类型-StringString类型的数据存储是最简单的key-value存储,存储元素类型包含字符串(String)、数值(Number)、二进制(bit)三种类型。 1.1、字符串(String) 针对字符串常见操作...
2020-04-08 21:52:44
353
原创 微服务技术架构剖析及微服务带来的优势
框架之初为了快速迭代出产品,而选择简单的技术架构,构建单体应用。这些架构可以适应初期业务的快速发展,但是随着业务变得越来越复杂,就会发现这些架构越来越难支撑业务的发展,各业务模块相互调用,业务边界越来越模糊,同时对系统更正性、完善性、预防性等维护工作越来越难,往往牵一发而动全身,最终可能造成测试工作不足,上线后才发现各种bug。另外会出现在一个类中写好几千行代码,一个方法中到处都是if else语...
2019-12-05 09:43:32
4531
原创 RocketMQ集群原理及双主双从集群搭建
RocketMQ的三种自带集群模式为:(1)双MASTER : 优点是配置简单、快捷,但是一旦MASTER机器宕机或出现问题就无法提供服务;(2)双MASTER双SLAVE同步双写: 比异步复制的性能差10%,但能保证数据不丢失;(3)双MASTER双SLAVE 异步复制:性能最好,但是遇到突发情况会有少量数据丢失。上图为双主双从集群原理图,其中Name Server是一个几乎...
2019-11-24 12:57:30
3394
1
原创 数据库性能优化方案(2)--keepalived haproxy mycat的高可用方案
本文的前提是Mycat已经安装并配置完毕,Mycat已实现对MySQL的读写分离、主从切换,其对应服务器IP分布为172.19.166.238和172.19.166.239。在此基础上,本文继续讲解Keepalived+Haproxy+Mycat的高可用方案,利用Haproxy实现Mycat集群负载均衡,Keepalived保证Haproxy高可用。Haproxy作为专门的负载均衡软件,可...
2019-10-21 16:46:09
413
原创 MySQL数据库性能优化(1):数据库主从同步
数据库主从复制是MyCat实现读写分离的基础,所以在实现MyCat读写分离前,先简要叙述MySQL数据库主从复制的配置方式。数据库主从同步前提:(1)准备两台服务器(主192.168.1.100,从192.168.1.200),分布安装并启动mysql服务;(1)主从数据库服务器网络联通,能相互ping通;(2)同步前主从数据库中数据要保持一致。1、数据库Master设置1...
2019-09-24 10:45:44
941
原创 亿级数据量系统数据库性能优化方案
一、数据库性能瓶颈主要原因1、数据库连接MySQL数据库默认连接为100,我们可以通过配置initialSize、minIdle、maxActive等进行调优,但由于硬件资源的限制,数据库连接不可能无限制的增加,对大型单体应用单实例数据库可能会出现最大连接数不能满足实际需求的情况,这时就会系统业务阻塞。2、表数据量大(空间存储问题)普遍观点认为单表数据量超过1000万条时就是出现数...
2019-08-28 12:36:20
3683
原创 分享MySQL库表设计规范、建议
一、表设计1、表必须定义主键,默认为ID,整型自增,如果不采用默认设计必须咨询DBA进行设计评估;2、ID字段作为自增主键,禁止在非事务内作为上下文作为条件进行数据传递;3、禁止使用外键;4、多表中的相同列,必须保证列定义一致;5、国内表默认使用InnoDB,表字符集默认使用gbk,国际默认使用utf8的表6、表必须包含gmt_create和gmt_modified字段,即...
2019-08-08 08:49:10
391
原创 Netty之主从Reactor多线程模型
Reactor模式用于解决高性能IO问题,特别适合处理海量的I/O事件,它是当前大多数IO组件所采用的IO模式。Netty网络框架就是基于Reactor模式进行设计和开发的,当请求抵达后,服务处理程序使用多路分配策略,同步地派发这些请求至相关的请求处理程序。Netty可以通过配置不同参数实现不同Reactor线程模型,在Netty的官方demo中,推荐使用主从Reactor多线程模型,所以这里...
2019-07-19 09:00:05
4890
2
原创 基于Session共享的方式解决单点登录问题
本文主要讲述集群环境下解决Session共享的问题,从而实现集群环境下的单点登录。Session共享问题已经有很多解决方案,这里主要讲述常用四种方法。Session StickySession Sticky(粘性) 保证同一个会话的请求都在同一个Web服务器上处理,这样就完全不需要考虑到会话问题了。比如负载均衡算法中哈希算法就是一个典型的Session Sticky实现手段。这种实现方...
2019-06-20 22:38:10
1469
原创 剖析MySQL InnoDB引擎的行锁表锁,怎样利用锁解决事务并发问题
在正式讲解各种锁之前,先来预习事务的四种隔离级别,因为MySQL事务隔离级别不同,所用到的锁也有差别。各种事务隔离级别可以对应解决不同类型的事务并发带来的问题,事务隔离级别越高,可以解决的事务并发问题越多,同时性能事务性能也就越低,所以并非事务隔离级别越高越好。一、事务并发带来的问题1、脏读:脏读发生在一个事务A读取了被另一个事务B修改,但是还未提交的数据。假如B回退,则事务A读取的是无效...
2019-05-28 22:21:47
482
原创 MySQL为什么选择B+TREE作为索引的存储结构
索引是为了加速对表中数据行的检索而创建的一种分散存储的数据结构。实现这种数据结构方式有多种,这里只介绍B-TREE和B+TREE,并简单做个对比,最后说明MySQL数据库采用B+TREE作为索引数据结构的原因。B-TREEB-TREE也称多路平衡查找树,如果有一M路平衡查找树,那么每个节点至多可以拥有M个子节点,并且该节点关键字个数最多为M-1个,同时每个节点保存关键字对应的数据相关信息。...
2019-05-25 21:09:09
457
原创 JNA实战笔录
文章开始之前首先介绍下.dll/.so文件,我们知道用c/c++编写的程序如果用于Windows平台则编译为xxx.dll(dynamic link library)文件,Linux平台则编译为libxxx.so(shared object)文件。像在Android移动应用开发过程中,就经常调用动态链接库(.so文件),由于Android系统是基于Linux内核的,所以工程中引用的是.so文件。另...
2019-05-21 20:02:05
858
原创 RocketMQ设计原理分析
RocketMQ3.x及以前版本由阿里维护,RocketMQ4.x及以后版本是捐赠给Apache社区,孵化成为Apache顶级项目的版本号,这一点从RocketMQ客户端的包名由com.alibaba改为org.apache可以得到证实。本文主要从设计原理上对RocketMQ进行分析。一、RocketMQ发送消息三种方式:同步发送、异步发送、单向(Oneway)发送1、同步发送同步...
2019-05-20 23:01:07
2462
1
原创 CentOS7.X下FTP安装与配置
近期由于工作原因,需要在CentOS7上安装FTP服务,一开始对vsftpd主配置文件中各属性不熟悉,造成部署vsftpd花费了很长时间,特在此记录下安装配置过程及主要属性说明。一、安装vsftpdvsftpd安装yum install -y vsftpdvsftpd服务启动#启动systemctl start vsftpd.service#停止systemctl s...
2019-05-11 18:07:51
254
原创 Docker数据卷和网络设置
本次将主要介绍Docker的两个重要技术点:网络设置和数据卷。1. 数据卷数据卷提供了一种宿主机和容器共享数据的方式,有些时候需要用它来做持久化和数据共享。当做持久化时,通常数据卷会比较大,可以将其放在单独的磁盘、卷上,这个时候容器只是一个执行环境。当做数据共享时,可以用于开发和测试分布式系统。数据卷主要通过参数-v来指定。1.1创建一个数据卷[root@izuf6bh06kx4...
2019-03-31 11:59:39
500
原创 Android贝塞尔曲线水纹波动效果、车辆监控效果
最近因工作需要做了一个Android基本开发的培训,这里把其中Android贝塞尔曲线应用的章节部分拿出来分享。先上图看效果,包括水纹波动以及利用水纹波动实现车辆监控两种效果图,本文主要讲解怎么利用贝塞尔二次曲线实现水纹波动效果。1、贝塞尔曲线简介贝塞尔曲线的得名是由于 1962 年就职于雷诺的法国工程师Pierre Bézier的广泛宣传。他使用这种只需要很少的控制点就能够生成复杂平...
2019-03-02 20:06:10
823
3
原创 Spring声明式事务@Transactional 详解,事务隔离级别isolation和事务传播行为Propagation
@Transactional注解支持9个属性的设置,这里只讲解其中使用较多的三个属性:readOnly、propagation、isolation。其中propagation属性用来枚举事务的传播行为,isolation用来设置事务隔离级别,readOnly进行读写事务控制。@Service@Transactional(readOnly = true)public class AppTr...
2019-02-12 22:24:50
6324
原创 Docker原理和基本使用
一、Docker结构说明1、Docker ClientDocker Client同Docker Daemon的交互,主要工作是在Docker Daemon上完成的,包括拉取镜像、编译镜像、运行容器、发布容器等。Docker Client和Docker Daemon可以运行在同一个系统上,也可以通过远程方式进行访问。Docker Client和Docker Daemon之间是在Socket上...
2019-02-12 11:18:33
1209
原创 Docker常用命令集锦
最近业余时间一直在研究使用Docker,这里把经常使用的一些命令总结下:一、第一部分查看本地所有的镜像docker images查看运行的容器实例docker ps [OPTIONS]OPTIONS说明:-a :显示所有的容器,包括未运行的。-f :根据条件过滤显示的内容。--format :指定返回值的模板文件。-l :显示最近创建的容器。-n :列出...
2019-02-11 21:47:47
221
原创 分布式架构核心组件之消息队列RabbitMQ
一、为什么使用消息队列1、实现解耦耦合指不同模块/系统之间相互作用、相互依赖的关系。RabbitMQ以异步的方式解耦系统间的关系,使用者将业务请求发送到Rabbit服务器,然后就可以返回了,Rabbit会确保请求被正确处理,即使遇到网络异常、Rabbit服务器崩溃等特殊场景。针对这些特殊场景,Rabbit提供了各种机制确保其可用性。2、实现异步对于大批量的用户操作,同步等待需要...
2019-01-22 20:32:10
695
原创 在Windows10中安装Docker
Docker是Linux系统的容器技术,依赖于Linux内核的NameSpace和Cgroups。那么Windows系统中如何运行Docker呢?实际上可以通过虚拟机来实现,在Windows下运行Docker我们需要用到一个轻量级的虚拟机,使用Windows Docker客户端控制Docker引擎,来创建、运行和管理我们的Docker容器。对于Windows10以下用户推荐使用Docker T...
2019-01-13 11:06:32
1276
原创 Docker的基本组成
Docker通过客户端访问守护进程,从而操作Docker容器,而容器是通过镜像创建的,Docker镜像保存在Docker仓库中。一、Docker客户端和守护进程Docker客户端向Docker守护进程发送请求,Docker守护进程处理完所有请求并返回结果。Docker对守护进程的访问既可以在本地,也可以是远程访问。如图所示,通过Docker客户端执行各种命令,然后Docker客户端会将...
2019-01-08 23:49:55
195
原创 zookeeper的设计原理及使用场景
zookeeper 作为一个分布式的服务框架,主要用来解决分布式集群中应用系统的一致性问题,解决分布式环境下多个进程或者多个中间件之间的同步控制,使有序访问某类资源。它能提供基于类似于文件系统的目录节点树方式的数据存储。zookeeper创建znode节点时,根据指定的类型mode不同,可以创建三种不同节点:临时节点、持久化节点和有序节点。持久节点是一种非常有用的节点,持久节点的删除只能通过调...
2019-01-01 18:10:53
448
原创 CentOS7下Mantis安装与配置
Mantis是一个基于PHP技术的轻量级的开源缺陷跟踪系统,以Web操作的形式提供项目管理及缺陷跟踪服务。由于其安装简单、使用方面,备受广大开发和测试人员青睐。下面主要讲解下Mantis再CentOS7上的安装配置过程。一、安装apache安装apache httpd:yum install httpd -y //安装httpdsystemctl start httpd //启...
2018-12-27 19:52:47
1099
原创 Nginx配置https请求,以及Nginx+keepalived实现高可用
一、Nginx配置https请求要实现Nginx配置https请求,安装的时候需要加上 --with-http_ssl_module,因为http_ssl_module不属于Nginx的基本模块。./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module1、创建...
2018-12-23 23:48:22
1974
原创 Nginx rewrite模块详解、expires缓存配置及gzip压缩策略
一、rewrite使用rewrite的主要功能是实现URI地址的重定向,将用户请求的URI基于regex所描述的模式进行检查,匹配到时将其替换为replacement指定的新的URI,即使用nginx提供的全局变量或自己设置的变量,结合正则表达式和标志位实现url重写以及重定向。如果replacement是以http://或https://开头,则替换结果会直接以重向返回给客户端。1)re...
2018-12-19 21:12:12
659
jquery.mobile-1.4.5.zip
2020-08-12
fastdfs6.06.zip
2020-08-05
Kettle8.3.0&pdi-ce-8.3.0.0-371
2020-04-15
dubbo-monitor-simple-2.5.3-assembly.tar.gz
2018-11-18
Java语言实现Mosquitto客户端的一个demo
2017-11-16
mysql-utilities-1.5.6-winx64
2016-07-26
Microsoft Visual C++ 2013 Redistributable (X64)VisualC++的运行时库
2016-07-26
dubbo管理工具,以及提供者和消费者demo
2016-07-21
zbar动态链接库libZBarDecoder
2021-05-08
keeplived+haproxy.zip
2019-10-21
Windows系统的docker-machine.exe
2019-01-10
Dubbo使用示例
2018-11-19
RedisDesktopManager-0.9.4 source code
2018-08-07
CoordinatorLayout+Behavior实现复杂联动效果
2018-02-23
微信Tinker热修复的一个Demo
2018-01-13
android-support-v4.jar(V23.2.0)
2017-08-28
okhttp-3.6.0.jar okhttputils-2_6_2.jar
2017-03-18
android apk反编译工具dex2jar&jd-gui
2017-02-07
android apk文件反编译工具apktool
2017-02-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人