- 博客(155)
- 资源 (9)
- 收藏
- 关注
原创 基于Netty手写的Rpc框架
基于Netty手写的rpc框架时序图本项目一共分为三个模块:rpcServer、rpcClient、rpcCommonrpcCommon的依赖 <dependencies> <dependency> <groupId>io.netty</groupId> <artifactId>nett...
2019-09-19 23:05:04 694
原创 Netty Bootstrap(详解)|秒懂
目录Netty Bootstrap(图解) 源码工程 写在前面 图解几个重要概念 父子 channel EventLoop 线程与线程组 通道与Reactor线程组 Channel 通道的类型 启动器初步介绍 图解 Bootstrap执行流程 1:设置reactor 线程组 2 :设置通道的IO类型 3:设置监听端口 4:设...
2019-09-19 17:50:56 884
原创 Docker下redis的主从、持久化配置
redis是k-v型nosql数据库,支持字符串(string)、列表(list)、集合(set)、散列(hash)、有序集合(zset:形如member:score的散列集合,其中member为成员,score为成员得分,必须为float型数据)。综合使用redis的以上5种数据类型,可以将redis应用于各种场景,比如点赞、投票网站、消息队列、分布式锁(使用setnx指令,该指令只有在key不存在的时候,才会执行写入操作)、文件分发(没研究过)、日志记录等等。redis支持主从配置(拓展读性能,
2020-05-28 14:11:45 382
原创 MetaQ学习笔记
MetaQ学习笔记是什么?一款分布式的消息中间件。它的核心作用就是解耦、异步和并行。异步解耦,比如商品中库存发生了变更,那么就要同步搜索,如果没有消息,可能就要RPC通讯调用,这样就产生了网络IO,远程调用的资源损耗,有了消息中间件,只需要发送一个消息就ok了。另外实现的一个重要功能就是削峰填谷,比如一个秒杀系统,前端接受秒杀流量一般非常大,但是秒杀的时候需要处理的业务逻辑很复杂,...
2020-04-21 11:21:54 575
原创 WebSocket实践——Java实现WebSocket的两种方式
什么是 WebSocket? 随着互联网的发展,传统的HTTP协议已经很难满足Web应用日益复杂的需求了。近年来,随着HTML5的诞生,WebSocket协议被提出,它实现了浏览器与服务器的全双工通信,扩展了浏览器与服务端的通信功能,使服务端也能主动向客户端发送数据。 我们知道,传统的HTTP协议是无状态的,每次请求(request)都要由客户端(如 浏览器)主动发起,服务端进行处理后...
2019-10-21 23:44:13 2030
原创 注意!! Redis使用不当真的可能会导致应用卡死
首先说下问题现象:内网沙盒环境API持续1周出现应用卡死,所有api无响应现象刚开始当测试拒绝环境响应慢的时候,我们重新一下应用,应用恢复正常,于是没做处理。但是后来问题出现频率越来越多,越来越多的同事开始重复,于是感觉代码可能有问题,开始排查。首先发现开发的本地ide没有发现问题,应用卡死时间数据库,redis都正常,并且无特殊错误日志。开始怀疑是沙盒环境机器问题(测试环境本身就很脆!_...
2019-10-14 12:21:44 536
转载 使用 Docker 搭建 Java Web 运行环境
Docker 是 2014 年最为火爆的技术之一,几乎所有的程序员都听说过它。Docker 是一种“轻量级”容器技术,它几乎动摇了传统虚拟化技术的地位,现在国内外已经有越来越多的公司开始逐步使用 Docker 来替换现有的虚拟化平台了。作为一名 Java 程序员,我们是时候一起把 Docker 学起来了!本文会对虚拟化技术与 Docker 容器技术做一个对比,然后引出一些 Docker 的名词...
2019-10-11 19:31:24 124
原创 HashMap循环迭代的5种方式
面试的时候被问了hashmap迭代方式有几种,现记录以下5种方式,方便日后使用: Map<String,MediaEquipment> map=new HashMap<>(2); MediaEquipment mediaEquipment=new MediaEquipment(); mediaEquipment.setEquipmentId(10...
2019-10-11 12:27:29 1433
原创 linux服务器下docker自启动以及基于docker容器下的服务自启动
基于楼主自己能在家里调试公司的代码,顺便熟悉下linux命令的想法,楼主就自己安装了一台虚拟机,可是每次虚拟机关闭后,docker服务没有启动,docker容器下的服务也没有启动,最终找到解决方案如下:一、安装完docker服务之后设置,开启立即启动docker服务命令,如下:[root@localhost ~]# chkconfig docker on或者[root@localh...
2019-10-10 22:13:22 1784
转载 搜索引擎模糊搜索和自动纠错——Fuzzy Query by Levenshtein Automata
模糊搜索&自动纠错——Fuzzy Query by Levenshtein Automata在我们每天使用的搜索引擎中,有这么一个简单的小功能经常被忽略——模糊搜索以及自动纠错。当我们输入一个错误的单词时,与其相似的结果将会被返回。这个小功能需要很高的效率以提供良好的用户体验。举个栗子:“relevent”自动纠错为“relevant”不知道你有没有思考过这是...
2019-09-20 21:57:55 963
原创 mybatis用法
1、注意点用mybatis查询时,传入一个字符串传参数,且进行判断时,会报Thereisnogetterforpropertynamed'moduleCode'in'classjava.lang.String 不管你的参数是什么,都要改成"_parameter"两种写法:<iftest="_parameter!=nulland_pa...
2019-09-20 10:53:00 205
原创 oracle、sqlserver、mysql常用函数对比[to_char、to_number、to_date]
oracle、sqlserver、mysql常用函数对比[to_char、to_number、to_date]oracle-->mysqlto_char(sysdate,'yyyy-mm-dd')-->date_format(sysdate(),'%Y-%m-%d');to_date(sysdate,'yyyy-mm-dd')-->STR_TO_DA...
2019-09-20 10:52:51 562
原创 oracl改成mysql注意点
sqlMapConfig.xml前提:oracle,改成mysql,驱动jar包替换1、方言修改:将com.base.commons.jdbc.dialect.OracleDialect改成com.base.commons.jdbc.dialect.MySQLDialect2、修改数据库配置文件jdbc.alias = dyghjdbc.driver=oracle.jdbc.d...
2019-09-20 10:52:39 245
原创 mybatis 详解一级缓存、二级缓存
目录1、一级缓存 2、二级缓存 3、二级缓存整合ehcache 4、二级缓存的应用场景 本篇源码下载链接:http://pan.baidu.com/s/1eRHTsIm密码:a5wn mybatis 为我们提供了一级缓存和二级缓存,可以通过下图来理解: ①、一级缓存是SqlSession级别的缓存。在操作数据库时需要构造sqlSession对象,在对象中有一个数...
2019-09-20 10:42:16 490
原创 linux安装redis 完整步骤
linux安装redis 完整步骤安装:1.获取redis资源 wget http://download.redis.io/releases/redis-4.0.8.tar.gz2.解压 tar xzvf redis-4.0.8.tar.gz3.安装 cd redis-4.0.8 make cd src make install PREFIX=/...
2019-07-15 11:37:13 127
原创 mysql 查询当天、本周,本月,上一个月的数据
今天select * from 表名 where to_days(时间字段名) = to_days(now());昨天SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ) - TO_DAYS( 时间字段名) <= 1近7天SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 7 DAY) ...
2019-04-09 14:19:49 117
原创 查看mysql语句运行时间
为了验证select 1 与 select 1 from tableName 与 select * from tableName的执行效率,需要测试一下各自执行的时间。于是总结一下,查看mysql语句运行时间的方法。方法一: show profiles。1.Show profiles是5.0.37之后添加的,要想使用此功能,要确保版本在5.0.37之后。 Query Prof...
2019-04-09 13:48:22 3409
原创 websocket简单demo
前端代码如下:<!DOCTYPE html><html><head lang="en"> <title>主页面</title> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
2018-11-21 14:41:02 1052
原创 spring aop面向切面的切点表达式语法execution
Aspectj切入点语法定义在使用spring框架配置AOP的时候,不管是通过XML配置文件还是注解的方式都需要定义pointcut"切入点"例如定义切入点表达式 execution(* com.sample.service.impl..*.*(..))execution()是最常用的切点函数,其语法如下所示: 整个表达式可以分为五个部分: 1、execution(): 表达式主体。 2、第一个*...
2018-03-11 11:16:58 2550
原创 利用rocketmq解决分布式事务问题原理
在OLTP系统领域,我们在很多业务场景下都会面临事务一致性方面的需求,例如最经典的Bob给Smith转账的案例。传统的企业开发,系统往往是以单体应用形式存在的,也没有横跨多个数据库。我们通常只需借助开发平台中特有数据访问技术和框架(例如Spring、JDBC、ADO.NET),结合关系型数据库自带的事务管理机制来实现事务性的需求。关系型数据库通常具有ACID特性:原子性(Atomicity)、一致...
2018-03-08 09:52:28 7845 2
原创 MySQL的四种事务隔离级别及详解
测试环境:Windows 10+cmd+MySQL5.6.36+InnoDB一、事务的基本要素(ACID) 1、原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样。也就是说事务是一个不可分割的整体,就像化学中学过的原子,是物质构成的基本单位。 2、一致性(Consiste...
2018-03-06 10:54:40 1710 2
原创 微信扫码支付模式二的坑
笔记:在做微信扫码支付的时候,模式一比较复杂,需要在公众平台后台设置支付回调url,模式二是不用设置,也就造成了模式二没有返回支付状态的,那么如何解决用户支付页面提示这个功能呢?1、采用页面刷新,定时器去刷新订单交易结果2、采用websocket推送给页面信息模式一开发前,商户必须在公众平台后台设置支付回调URL。URL实现的功能:接收用户扫码后微信支付系统回调的productid和openid;...
2018-03-05 23:25:29 7447 4
原创 win7x64下的redis安装与使用
win7x64下的redis安装与使用先引用百度百科的一段话吧,具体可以到百科查看吧。Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。
2017-12-04 11:08:35 270
原创 IntelliJ使用指南—— 导入Eclipse的Web项目
【Intellij IDEA】eclipse项目导入intellij idea中文资料网上比较少,对于eclipse的项目如何导入intellij idea也没有完整的说明,本人在这里整理下,方便更多人加入到intellij idea的阵容里。直接上干货!一、导入Eclipse项目至ideaFile – New – Module from Existing So
2017-12-03 11:32:22 651
原创 使用Sonatype Nexus搭建Maven私服后如何添加第三方JAR包?
目录Sonatype Nexus简介如何使用3rd party上传第三方jar包第三方jar包使用 正文Sonatype Nexus简介登录Nexus后,点击右侧的“Repositories”,显示当前Nexus所管理的Repository:默认情况下Nexus为我们创建了以下主要的Repository:1、Publi
2017-12-01 23:27:18 479
原创 Dubbo详细介绍与安装使用过程
1 Dubbo介绍1.1 dubbox简介随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。单一应用架构 当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。 此时,用于简化增删改查工作量的 数据访问框架(ORM) 是关键。
2017-11-27 17:21:46 306
原创 axis使用详解(服务端/客户端)
1、在在WEB-INF下配置web.xml中配置webservice地址<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_
2017-11-22 11:39:39 8334
原创 idea的快捷键大全
【常规】Ctrl+Shift + Enter,语句完成“!”,否定完成,输入表达式时按 “!”键Ctrl+E,最近的文件Ctrl+Shift+E,最近更改的文件Shift+Click,可以关闭文件Ctrl+[ OR ],可以跑到大括号的开头与结尾Ctrl+F12,可以显示当前文件的结构Ctrl+F7,可以查询当前元素在当前文件中的引用,然后按 F3 可以选择Ctrl+N,可以快速打开类Ct
2017-11-01 22:02:50 288
原创 idea使用svn的一些操作汉化版
大体上是转载,针对版本14有一些特殊的添加。查看svn的资源库: 下面的多出了一个svn的窗口,在左边有加号可以添加一个svn的库输入svn的地址,我用的是本地的测试,所以地址为svn://127.0.0.1/newproject 根据服务不同这个地址也不一样 可能是http或着https 添加上svn库的地址后,我们可以浏览库上的
2017-10-31 21:02:59 3272
原创 Oracle 存储过程(procedure)和函数(Function)的区别
1、返回值的区别 函数有1个返回值,而存储过程是通过参数返回的,可以有多个或者没有2. 调用的区别,函数可以在查询语句中直接调用,而存储过程必须单独调用.函数:一般情况下是用来计算并返回一个计算结果;存储过程: 一般是用来完成特定的数据操作(比如修改、插入数据库表或执行某些DDL语句等等)下图说明它们之间的区别:
2017-10-31 16:24:36 612
原创 分布式系统事务一致性解决方案
开篇在OLTP系统领域,我们在很多业务场景下都会面临事务一致性方面的需求,例如最经典的Bob给Smith转账的案例。传统的企业开发,系统往往是以单体应用形式存在的,也没有横跨多个数据库。我们通常只需借助开发平台中特有数据访问技术和框架(例如Spring、JDBC、ADO.NET),结合关系型数据库自带的事务管理机制来实现事务性的需求。关系型数据库通常具有ACID特性:原子性(Atomici
2017-10-31 16:22:01 215
原创 Win7下Nginx的安装与配置
环境介绍:Win7 64位SP1Nginx版本:nginx/1.8.0参考链接http://nginx.org/en/docs/windows.html1. 下载nginx1.8.0版本:http://nginx.org/download/nginx-1.8.0.zip2. 解压软件到对应位置,并重命名文件夹为nginx3. 启动nginx服务:
2017-10-26 14:24:08 586
原创 启动redis出现Creating Server TCP listening socket *:6379: bind: No such file or directory
windows中有些cd命令无效,第一步先切换盘符e:然后cd E:\mysoft\redis64-3.0.501redis报错:[6644] 02 Apr 23:11:58.976 # Creating Server TCP listening socket *:6379: bind: No such file or directory的解
2017-10-26 10:16:29 575
原创 Tomcat集群配置笔记
一. 环境说明1. 服务器3 台,一台安装apache 服务,两台安装tomcat2. 使用到的各个组件及下载地址:apache_2.2.11-win32-x86-no_ssl.msihttp://httpd.apache.org/download.cgitomcat 6 压缩版http://tomcat.apache.org/download-60
2017-10-25 21:11:14 430
原创 idea基本使用
如何做到全键盘操作呢?1.自定义快捷键实现全屏操作你可以设置自定义快捷键进入全屏操作,并实现各个窗口之间的切换。这样,你就可以告别小窗口的时代,体验全屏显示的效果了!(相信有过多年开发经验的你一定会觉得小窗口非常不便于阅读代码,特别是对于小屏幕的笔记本来说)操作:在File/Settings(或Ctrl+Alt+S)打开设置界面,在搜索框中搜Keymap。然后将之前的key
2017-10-25 16:37:47 288
原创 主从复制、读写分离水平拆分及库表散列
web项目最原始的情况是一台服务器只能连接一个mysql服务器(c3p0只能配置一个mysql),但随着项目的增大,这种方案明显已经不能满足需求了
2017-09-26 20:43:39 731
原创 ZBUS = MQ + RPC
ZBUS = MQ + RPChttp://git.oschina.net/rushmore/zbus http://my.oschina.net/sbz/blog Readme.md 18.02 KBZBUS = MQ + RPCzbus解决的问题域zbus特点zbus启动zbus实现消息队列zbus实现RPCzbus实现异构服务代理-
2017-09-26 12:26:38 1647 1
原创 大数据并发解决方案面试用
一个小型的网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目录下,这样的网站对系统架构、性能的要求都很简单。随着互联网业务的不断丰富,网站相关的技术经过这些年的发展,已经细分到很细的方方面面,尤其对于大型网站来说,所采用的技术更是涉及面非常广,从硬件到软件、编程语言、数据库、WebServer、防火墙等各个领域都有了很高的要求,已经不是原来简单的html静态网站所能比拟的。 大型网站,比如门户网站,在面对大量用户访问、高并发请求方面,基本的解决方案集中在
2017-09-25 17:16:40 459
原创 Maven 集成Tomcat插件
Maven已经是Java的项目管理标配,如何在JavaEE开发使用Maven调用Web应用,是很多同学关心的问题。本文将介绍,Maven如何介绍Tomcat插件。Maven Tomcat插件现在主要有两个版本,tomcat-maven-plugin和tomcat7-maven-plugin,使用方式基本相同。tomcat-maven-plugin 插件官网:http://mojo.codehaus.org/tomcat-maven-plugin/plugin-info.html。tomcat7-
2017-09-08 14:06:37 218
dubbo开发者api中文文档
2017-11-29
kindeditor-4.0.4
2012-12-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人