java
0小和尚化缘12
这个作者很懒,什么都没留下…
展开
-
分布式下多节点WebSocket消息收发
1、接下来发送的消息,通过Ngixn后和网关gateway后还能落在service2上面吗?这个就是websocket的session共享问题。我用了redis的发布订阅来处理。第一次发送请求后,通过N1,W2,到达service2,建立websocket连接。如果不能落在service2上,需要怎么操作解决session问题?没有时间了,下次在补充。原创 2023-11-15 17:17:39 · 824 阅读 · 0 评论 -
Java中Redis连接客户端的使用:jedis、spring-data-redis与spring-boot-starter-data-redis的关系与区别
Java中Redis连接客户端的使用:jedis、spring-data-redis与spring-boot-starter-data-redis的关系与区别原创 2023-01-05 17:40:20 · 1704 阅读 · 0 评论 -
JAVA实现存储服务(微服务间的文件传输)大文件的分片上传
实现了:普通文件的直接传输(小于100M的文件),大文件的分片上传(1G以上的文件)。基于服务的思想,将文件存储模块设计成一个服务模块,任何其他模块想调用它通过。主要的代码逻辑已经实现了,最近挺忙没有进行整理。http、netty或者其他。微服务间的文件传输需要解决哪些问题?原创 2022-11-11 20:11:36 · 1400 阅读 · 0 评论 -
Java接口设计的基本原则
如何去设计一个安全稳定可靠的接口?接口的目的是数据交换,为了保证数据的安全稳定传输我们需要对接口数据进行哪些操作呢?原创 2022-09-30 11:46:05 · 184 阅读 · 0 评论 -
idea svn commit E155010
1、原因:引入了新包,然后不想用了,又删掉了,提交的时候依然提示删掉的包要进行上传;2、commit 后提示E155010错误;3、所以重新提交的时候,shuba原创 2021-06-01 15:31:34 · 522 阅读 · 0 评论 -
Cannot load supported formats: Cannot run program “svn“: CreateProcess error=5
IntelliJ IDEA 安装后,SVN 导出项目时会出现错误Cannot load supported formats: Cannot run program “svn”: CreateProcess error=5由于是刚接过的项目,电脑啥的都是别人的热乎的环境。出现上述错误是由于我们下载的项目没有和IDEA关联,所以需要我们从idea去下载项目地址填上就可以,然后让设置下载位置,down下来后就可以正常使用SVN了;...原创 2021-04-13 22:43:32 · 540 阅读 · 0 评论 -
Java面试中的i=i++如何回答?
面试题:求输出i的值?public class TestMain { public static void main(String[] args) { int i=0; i=i++; System.out.println(i); }}结果正常代码所以这个题正确回答方式是什么呢?1、回答为什么i=i++ 最后i=1;2、否定i=i++这种写法,提供其他写法如:i=i+1;从字节码上来分析i=i++是非常简单方便的,为了区别出来原创 2021-03-06 11:09:53 · 289 阅读 · 1 评论 -
Linux rm -rf 很多文件出现/bin/rm: Argument list too long解决方法亲测可用
亲测可用!!!1、现象:批量删除时 rm -rf xxxjpg* 时提示bash: /usr/bin/rm: Argument list too long2、解决方法find ./ -name "xxxjpg*" | xargs -i rm {}亲测可用原创 2021-02-25 10:19:37 · 1481 阅读 · 0 评论 -
Java逃逸分析技术
逃逸分析(Escape Analysis)什么是逃逸?逃逸是指在某个方法之内创建的对象,除了在方法体之内被引用之外,还在方法体之外被其它变量引用到;这样带来的后果是在该方法执行完毕之后,该方法中创建的对象将无法被GC回收,由于其被其它变量引用。正常的方法调用中,方法体中创建的对象将在执行完毕之后,将回收其中创建的对象;故由于无法回收,即成为逃逸。在Java的编译体系中,一个Java的源...原创 2019-11-05 10:40:39 · 230 阅读 · 0 评论 -
JVM触发Full GC的条件
Java虚拟机主流的垃圾收集器:cms、G1 。未来的趋势是基于大内存回收的ZGC,ZGC也是Jdk11版本的默认垃圾收集器。以jdk1.8为例,讲讲触发Full GC的条件:图中展示了7种不同分代的收集器:Serial、ParNew、Parallel Scavenge、Serial Old、Parallel Old、CMS、G1;新生代收集器:Serial、ParNew、Para...原创 2019-11-01 10:55:05 · 2974 阅读 · 0 评论 -
Kafaka为什么快
网上有很多Kafka的测试文章,测试结果通常都是“吊打”其他MQ。感慨它的牛B之余我觉得必要仔细分析一下它如此快速的原因。这篇文章不同于其他介绍Kafka使用或者技术实现的文章,我会重点解释——为什么真快。(当然不是因为它用了Scala!!!!)生产者(写入数据)生产者(producer)是负责向Kafka提交数据的,我们先分析这一部分。Kafka会把收到的消息都写入到硬盘中,它绝对不会...转载 2018-11-16 11:16:16 · 3308 阅读 · 0 评论 -
Springboot2.1.0 集成Mybatis和使用通用Mapper以及使用Generator代码生成器(超级详细)
1.往你的Idea的pom文件中加入 //mybatis的集成 <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter<...原创 2018-11-16 10:40:46 · 1253 阅读 · 0 评论 -
同步和异步,阻塞和非阻塞
同步方法调用一旦开始,调用者必须等到方法调用返回后,才能继续后续的行为。异步方法调用更像一个消息传递,一旦开始,方法调用就会立即返回,调用者就可以继续后续的操作。而,异步方法通常会在另外一个线程中,“真实”地执行着。整个过程,不会阻碍调用者的工作。阻塞:阻塞调用是指调用结果返回之前,当前线程会被挂起。函数只有在得到结果之后才会返回。有人也许会把阻塞调用和同步调用等同起来,实际上它们是不同的...原创 2018-11-19 10:19:13 · 122 阅读 · 0 评论 -
Git单一分支进行管理避免出现代码丢失
普通合并git merge与git rebase的区别: git pull 的过程: 单一分支与普通pull提交效果对比: ================================================================================================开始命令了:1.切换到最新的分支,就是你要作...原创 2018-10-24 11:01:59 · 240 阅读 · 0 评论 -
mysql触发器的编写
DROP TABLE IF EXISTS `tb_pf_department`;CREATE TABLE `tb_pf_department` ( `dept_idd` int(11) NOT NULL AUTO_INCREMENT, `parent_idd` int(11) DEFAULT NULL, `deptt_name` varchar(50) DEFAULT NULL,...原创 2018-10-29 15:17:29 · 512 阅读 · 0 评论 -
Nginx的五种算法
轮询、ip_hash、weight、fair(第三方)、url_hash(第三方)1.轮询是默认的,每一个请求按顺序逐一分配到不同的后端服务器,如果后端服务器down掉了,则能自动剔除。2.ip_hash 解决了session问题:每个请求按访问IP的hash结果分配,这样每个访客可以固定一个后端服务器。3.weight是设置权重,用于后端服务器性能不均的情况,访问比率约等于权重之比:...原创 2018-10-23 15:31:07 · 3343 阅读 · 0 评论 -
Java后端需要了解的技术点--博客
他山之石可以攻玉---水平低,还是不写了,总结其他人写的,哈哈哈Redis--------------截止目前最详细的Redis文章---最关键的过期策略也是很详细Centos7------------myslq数据库初始化,修改密码,修改远程访问权限,亲自检测过的有效...原创 2018-10-23 15:17:54 · 956 阅读 · 0 评论 -
finally详解
1.finally一般用在如果出现异常的时候,可以去关闭资源,减少资源占用,像IO流使用时通道的关闭等;class Human { public static void main(String[] args) throws Exception { int a = test(); System.out.println(a); } public static int ...原创 2018-11-01 09:46:50 · 831 阅读 · 0 评论 -
权限控制框架-shiro
地址在这.........原创 2018-10-16 19:04:03 · 132 阅读 · 0 评论 -
获取request|response|session的工具类
package com.zhuma.demo.util;import org.springframework.web.context.ContextLoader;import org.springframework.web.context.request.RequestContextHolder;import org.springframework.web.context.request...原创 2018-10-16 17:34:55 · 701 阅读 · 0 评论 -
Java不受限制的获取当前的请求对象
springMVC中,为了方便随时获取当前的request对象,可以通过RequestContextHolder的静态方法getRequestAttributes()获取Request相关的变量,如request, response等。HttpServletRequest request = ((ServletRequestAttributes)RequestContext...原创 2018-10-16 17:33:10 · 560 阅读 · 0 评论 -
Apache Kafka入门教程轻松学
传送门原创 2018-10-16 16:39:37 · 119 阅读 · 0 评论 -
shell脚本进行JDK的配置
系统:centos71.环境:为什么需要环境?centos7的裸环境啥也没有 连ifconfig都没有,初始环境的配置我也写了个脚本来执行:#!/bin/bash#安装一些需要的环境yum install -y zipyum install -y vim*yum install net-tools目前环境有点简陋,哈哈哈哈哈2.安装脚本centos_start.sh...原创 2018-10-16 10:55:23 · 2772 阅读 · 0 评论 -
Eclipse自动生成mapper:Mybatis-Generator插件的使用
在maven项目中使用1.导包,版本是1.3.2,一定要对应,不然出错了,很难找到问题,我用了1.3.6的版本,出了问题找了半天//版本是1.3.2,一定要对应,不然出错了,很难找到问题,我用了1.3.6的版本,出了问题找了半天<mybaits.generator.version>1.3.2</mybaits.generator.version><d...原创 2018-10-18 17:17:27 · 1176 阅读 · 0 评论 -
java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
在使用eclipse发布到tomcat时提示java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener,感觉很奇怪,于是到网站发布目录发现在WEB-INF里面没有lib目录,这就是为什么提示类没有找到的原因,导致该问题可以按照下面方法解决:1。右键点击项目,选择propertie...转载 2018-10-15 15:44:20 · 109 阅读 · 0 评论 -
分布式session共享:Tomcat7集群 + redis3.2 + Nginx
一、安装Nginx1) 修改conf/nginx.confupstream tomcats { server 127.0.0.1:18080 weight=2 max_fails=3 fail_timeout=15; server 127.0.0.1:28080 weight=1; server 127.0.0.1:38080 weight...原创 2018-10-18 11:02:59 · 162 阅读 · 0 评论 -
IDEA把Springboot打成可执行jar包,内嵌tomcat
IDEA把spring-boot项目打包成jar1、用IDEA打开要打jar的项目 2、artifact-》添加-》JAR-》From modules with dependencies3、最终的选项如下:4、运行package,开始打包,点击右侧的Maven Projects,打开LIfecycle先点击clean然后点击package,生成target文件夹,里面有一个...原创 2018-11-23 18:36:30 · 7667 阅读 · 0 评论 -
Springboot集成springmvc
传送门原创 2018-11-19 19:34:23 · 2379 阅读 · 0 评论 -
Shell脚本入门编写
1、在liunx创建编写shell脚本a、touch hello.shb、vim hello.sh c、 键入i 插入#!/bin/sh echo hello world; 键入: esc :x保存3.chmod 700 hello.sh 4. 执行./hello.sh我的第一个shell脚本:拷贝文件,制造垃圾,触发系统...原创 2018-11-24 15:31:42 · 173 阅读 · 0 评论 -
ArrayList扩容后原有数组是如何处理的?
查看源码可知道ArrayList扩容是调的Sytem.arrayCopy方法最终查看arraycopy方法发现调用的是c的本地方法:上网查看了下c语言的数组扩容:c语言使用free(oldarray)来释放原数组的内存。...原创 2019-09-24 23:47:22 · 1927 阅读 · 1 评论 -
ZMQ和kafka、RabbitMQ功能对比
RabbitMQ是一个AMQP实现,传统的messaging queue系统实现,基于Erlang。老牌MQ产品了。AMQP协议更多用在企业系统内,对数据一致性、稳定性和可靠性要求很高的场景,对性能和吞吐量还在其次。Kafka是linkedin开源的MQ系统,主要特点是基于Pull的模式来处理消息消费,追求高吞吐量,一开始的目的就是用于日志收集和传输,0.8开始支持复制,不支持事务,适合产生大量...原创 2019-07-16 14:38:15 · 4162 阅读 · 0 评论 -
TCP疑难杂症
http://www.52im.net/thread-1003-1-1.html转载 2019-07-15 23:08:02 · 142 阅读 · 0 评论 -
Mybatis插入的记录时间与保存到数据库后的时间不一致
Mybatis插入的记录时间与保存到数据库后的时间不一致问题:Mybatis插入的记录时间与保存到数据库后的时间不一致。Java中为2016-12-27 12:15:24保存到数据库后却是2016-12-26 22:15:24分析:两个时间相差14个小时,很明显是时区问题。查看mysql当前时间,当前时区:> select curtime(); #或sele...原创 2019-07-05 17:16:11 · 8932 阅读 · 0 评论 -
List addAll方法简介
原创 2019-07-01 16:22:33 · 15188 阅读 · 1 评论 -
大厂笔试过程知识点记录
这个春招估计也要介绍了吧,自己投的公司也不多吧,投简历的时候,如果你提前批和正常网申都投的话,可能会获得两次笔试/面试的机会,我投了两次腾讯,不过,两次都在二面挂了,特别是第二次二面,我真的决定自己太他妈傻了。作为一个新人,谈谈我面试过程中犯过的一些错吧,或许对你也有点收获。提前批笔试腾讯提前批的面试应该是一个月前就开始的,我第一个投的公司就是腾讯了,人生的第一次笔试和面试也献给了腾讯...转载 2019-07-01 16:21:00 · 895 阅读 · 1 评论 -
centos ssh连接登录慢解决
有时候在ssh远程登录到其他主机上时发现登录时间太长,经过亲自测试,发现主要有两个问题会导致ssh登录慢:1.使用了dns反查,这样的话当ssh某个IP时,系统会试图通过DNS反查相对应的域名,如果DNS中没有这个IP的域名解析,则会等到DNS查询超时才会进行下一步,消耗很长时间。修改方式:使用root权限修改ssh的配置文件,vim /etc/ssh/sshd_config增加一行...原创 2019-04-15 16:26:05 · 2054 阅读 · 0 评论 -
Java同步锁对比synchronized 和ReentrantLock 的区别--超级详细权威
多线程和并发性并不是什么新内容,但是 Java 语言设计中的创新之一就是,它是第一个直接把跨平台线程模型和正规的内存模型集成到语言中的主流语言。核心类库包含一个 Thread 类,可以用它来构建、启动和操纵线程,Java 语言包括了跨线程传达并发性约束的构造 —— synchronized 和 volatile 。在简化与平台无关的并发类的开发的同时,它决没有使并发类的编写工作变得更繁琐,只是使它...原创 2019-02-18 11:18:50 · 1185 阅读 · 0 评论 -
springboot拦截器的使用
HandlerInterceptor简介拦截器最常用的登录拦截、或是权限校验、或是防重复提交等。一、如何创建一个拦截器1、第一种方法自定义类实现Spring 的HandlerInterceptor 接口。2、第二种方法自定义类继承实现了HandlerInterceptor 接口的类,例如 已经提供的实现了HandlerInterceptor 接口的抽象类HandlerIntercep...原创 2019-01-12 19:17:35 · 452 阅读 · 0 评论 -
Springboot 多数据源整合
博客园的帖子收藏自己用原创 2018-12-29 09:25:35 · 184 阅读 · 0 评论 -
springboot2.0.1 集成dubbo时启动包错找不到java.lang.NoClassDefFoundError: io/netty/channel/nio/NioEventLoopGrou
最近项目不忙,多学习,按着官方给的配置文件来建项目可是运行时报错java.lang.NoClassDefFoundError: io/netty/channel/nio/NioEventLoopGroup我也是醉了。懵逼了半天。找了半天资料牛头不对马嘴,后来自己试了试添加了netty的最新包,成功解决 <dependency> &l...原创 2018-12-18 16:17:20 · 9066 阅读 · 0 评论