- 博客(49)
- 收藏
- 关注
转载 Git 常用命令和 Git Flow 梳理
git用 git 有一段时间了,之前没有详细地了解 git flow,导致协作过程中或多或少出现了一些头疼问题。最近静下心来理了下 git flow 的整个流程,再回头看开朗了不少,总结到这里。介绍的是一些常用的 git 基础命令和 git flow,当然也很重要的,过程中...
2019-03-14 14:07:00
216
转载 gitflow工作流程基本命令使用
1 基础命令:初始化: git flow init开始新Feature: git flow feature start MYFEATUREPublish一个Feature(也就是push到远程): git flow feature publish MYFEATURE获取Publish的Feature: git flow feature pull origin MYFE...
2019-03-14 13:44:00
258
转载 RocketMQ学习分享
消息队列的流派什么是 MQMessage Queue(MQ),消息队列中间件。很多人都说:MQ 通过将消息的发送和接收分离来实现应用程序的异步和解偶,这个给人的直觉是——MQ 是异步的,用来解耦的,但是这个只是 MQ 的效果而不是目的。MQ 真正的目的是为了通讯,屏蔽底层复杂的通讯协议,定义了一套应用层的、更加简单的通讯协议。一个分布式系统中两个模块之间通讯要么是 HTTP...
2019-02-28 18:42:00
247
转载 解决docker中使用nginx做负载均衡时并发过高时的一些问题
# 解决docker中使用nginx做负载均衡时并发过高时的一些问题1.问题产生原因:由于通过nginx作为负载均衡服务,在访问并发数量达到一定量级时jmeter报错。nginx日志关键信息:accept4() failed (24: Too many open files)。此日志引起原因是nginx进程打开文件数过多。度娘一堆类似的帖子这里引用网上的解决方式比太实用同时出现...
2019-02-20 15:03:00
404
转载 Tomcat中session共享问题的简单解决办法
tomcat-redis-session-manager使用redis配置tomcat共享session结构图:分析:分布式web server集群部署后需要实现session共享,针对 tomcat 服务器的实现方案多种多样,比如 tomcat cluster session 广播、nginx IP hash策略、nginx sticky module等方案,本文主要...
2019-02-19 15:12:00
248
转载 单点登录实现方案
单点登陆实现方案设计整体流程:设计思路:单点登录涉及sso认证中心与众子系统,子系统与sso认证中心需要通信以交换令牌、校验令牌及发起注销请求,因而子系统必须集成sso的客户端,sso认证中心则是sso服务端,整个单点登录过程实质是sso客户端与服务端通信的过程,可用下部署图描述:sso认证中心与sso客户端通信方式有多种,HttpClient,We...
2018-12-26 09:08:00
378
转载 Node-Media-Server
Node-Media-Server (相对稳定可用性高)主要应用Node.js 实现的RTSP(结合ffmpeg)/RTMP/HTTP/WebSocket/HLS/DASH流媒体服务器特性跨平台支持 Windows/Linux/Unix支持的音视频编码 H.264/H.265/AAC/SPEEX/NELLYMOSER支持缓存最近一个关键帧间隔数据,实现RTMP协议秒开支持事...
2018-12-07 11:11:00
2531
转载 netty-socketio整合springboot消息推送
netty-socketio整合springboot消息推送1.netty-socketio消息推送 1)在项目中常常涉及到消息推送的情况,消息推送要求的实时性,使用传统的方式已经不能满足需求了; 2)使用netty-socketio做消息推送,实现步骤,加入jar包----->写启动,添加,通知,关闭工具类 -----> 设置依靠监听器启动 ----->页面...
2018-11-29 08:52:00
339
转载 悲观所与乐观锁
一、乐观锁总是认为不会产生并发问题,每次去取数据的时候总认为不会有其他线程对数据进行修改,因此不会上锁,但是在更新时会判断其他线程在这之前有没有对数据进行修改,一般会使用版本号机制或CAS操作实现。version方式:一般是在数据表中加上一个数据版本号version字段,表示数据被修改的次数,当数据被修改时,version值会加一。当线程A要更新数据值时,在读取数据的同时也会读取v...
2018-10-11 14:06:00
104
转载 RocketMQ 学习笔记
简介:RocketMQ(Metaq3.0版本改名)是一款分布式队列模型的消息中间件 特点如下:1.保证消息顺序2.支持消息拉取模式3.高效的订阅者水平和扩展能力4.实时的消息订阅机制5.亿级的消息堆积能力RocketMQ低延迟、高可靠、可伸缩、易于使用的消息中间件。具有以下特性:1.强调集群无单点,可扩展,任意一点高可用,水平可扩展。2.海量消息堆积能力,且堆积后写入低...
2018-09-11 14:49:00
115
转载 简单的音乐轮播JS
首先说明一点,此篇文章只是为了回应一些博友的要求,本人并非专业搞js的,所以键盘侠和各路大神如果看到此文还请轻喷或者可以直接关掉页面~直接上代码:<div id="myboot"><audio id="mp3" controls="controls"></audio></div><script type="text/javas...
2018-08-24 15:06:00
212
转载 SpringCloud分布式开发理解
谈到SpringCloud最新接触到的可能就是那五大"神兽",之前最先接触分布式开发是通过dubbo的RPC远程过程调用,而dubbo给我得感觉就是:虽然所有的主机物理上分布了,但是对于用户而言就仿佛是一个整体。而对我们的java开发人员而言,分布式开发的意义又是什么呢?也就是说哪里需要去使用分布式开发呢,其实在任何一个项目里面(MVC设计模式),业务操作是最为核心的部分,而所有项目之中...
2018-07-04 16:54:00
110
转载 SpringCloud分布式开发五大神兽
SpringCloud分布式开发五大神兽服务发现——Netflix Eureka客服端负载均衡——Netflix Ribbon断路器——Netflix Hystrix服务网关——Netflix Zuul分布式配置——Spring Cloud ConfigEureka一个RESTful服务,用来定位运行在AWS地区(Region)中的中间层服务。由两个组件组成:Eure...
2018-07-03 18:15:00
76
转载 socket长连接和短链接区别
短连接连接->传输数据->关闭连接HTTP是无状态的,浏览器和服务器每进行一次HTTP操作,就建立一次连接,但任务结束后就中断连接。短连接是指SOCKET连接后发送后接收完数据后马上断开连接。长连接连接->传输数据->保持连接->传输数据->....->关闭连接长连接指建立SOCKET连接后不管是否使用都保持连接,但安全性较差。htt...
2018-07-02 09:35:00
115
转载 事务传播行为
所谓事务的传播行为是指,如果在开始当前事务之前,一个事务上下文已经存在,此时有若干选项可以指定一个事务性方法的执行行为。在TransactionDefinition定义中包括了如下几个表示传播行为的常量:TransactionDefinition.PROPAGATION_REQUIRED:如果当前存在事务,则加入该事务;如果当前没有事务,则创建一个新的事务。TransactionDe...
2018-05-09 11:45:00
89
转载 JDBC相关总结
JDBC statement的相关总结1.Statement、PreparedStatement和CallableStatement都是接口(interface)。2.Statement继承自Wrapper、PreparedStatement继承自Statement、CallableStatement继承自PreparedStatement。Statement接口提供了执行语句和...
2018-05-09 11:39:00
95
转载 JVM总结
JVM 内存模型图方法区域存放了所加载的类的信息(名称、修饰符等)、类中的静态变量、类中定义为final类型的常量、类中的Field信息、类中的方法信息,当开发人员在程序中通过Class对象中的getName、isInterface等方法来获取信息时,这些数据都来源于方法区域,同时方法区域也是全局共享的,在一定的条件下它也会被GC,当方法区域需要使用的内存超过其允许的大小时,会抛出O...
2018-05-09 11:35:00
84
转载 JVM调优总结
1.堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。我在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m。1.典型设置:1.java -Xmx3550m -...
2018-05-09 10:00:00
78
转载 Docker 应用实例
Docker安装Nginx方法一、通过 Dockerfile构建创建Dockerfile首先,创建目录nginx,用于存放后面的相关东西。runoob@runoob:~$ mkdir -p ~/nginx/www ~/nginx/logs ~/nginx/confwww目录将映射为nginx容器配置的虚拟目录logs目录将映射为nginx容器的日志目录conf目录里的配置...
2018-04-25 10:19:00
179
转载 Docker 简单应用
Docker 允许你在容器内运行应用程序, 使用 docker run 命令来在容器内运行一个应用程序。输出Hello worldrunoob@runoob:~$ docker run ubuntu:15.10 /bin/echo "Hello world"Hello world各个参数解析:docker: Docker 的二进制执行文件。run:与前面的 docke...
2018-04-24 15:15:00
75
转载 Docker 介绍安装
简介:Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。Docker的应用场景...
2018-04-24 10:18:00
110
转载 Jenkins自动化部署及代码检查配置应用
首先jenkins是基于java开发的一种持续集成工具,它的存在和实际应用使得我们在开发过程中节省了很多宝贵时间,既然基于java,所以java环境是必须的。其次Tomcat是针对Java的一个开源中间件服务器(容器),基于Java Web的项目需要借助Tomcat 才能运行起来。安装java环境和tomcat的过程就不在这里赘述了,值得注意的是,Jenkins,java,tomcat三...
2018-04-10 11:05:00
215
转载 Linux脚本基础
1.文本编辑命令模式快捷键命令命令作用dd删除(剪切)光标所在整行。5dd删除(剪切)从光标处开始的5行。yy复制光标所在整行。5yy复制从光标处开始的5行。n显示搜索命令定位到的下一个字符串。N显示搜索命令定位到的上一个字符串。u撤销上一步的操作p将之前删除(dd)或复制(yy)过的数据粘贴到光标后...
2018-03-30 10:25:00
101
转载 SpringBoot使用devtools导致的类型转换异常
遇到的问题:SpringBoot项目中的热部署引发的血的教训,报错代码位置: 1 XStream xStream1 = new XStream(); 2 xStream1.autodetectAnnotations(true); 3 xStream1.alias("InterBOSS", InterBossHeader.class); 4 InterBossHeader r...
2018-03-29 19:23:00
246
转载 spring boot 热部署
热部署:当发现程序修改时自动启动应用程序。spring boot使用的是spring-boot-devtools是一个为开发者服务的一个模块。其原理用了classLoader 其中一个加载不变的类,另一个restart ClassLoader加载变得类。devtools会监听classpath下的文件变动,并且会立即重启应用(发生在保存时机)。 不说废话,我喜欢的Coding就是简...
2018-03-27 17:24:00
51
转载 Spring Boot配置文件详解:自定义属性、随机数、多环境配置
自定义属性与加载我们在使用Spring Boot的时候,通常也需要定义一些自己使用的属性,我们可以如下方式直接定义:application-dev.yml 1 com.didispace.blog: 2 3 name: 程序猿DD 4 5 title: Spring Boot教程 6 7 desc: ${com.didispace.blog.name}正在...
2018-03-22 10:11:00
98
转载 IDEA快捷键大全
Intellij IDEA中有很多快捷键让人爱不释手,stackoverflow上也有一些有趣的讨论。每个人都有自己的最爱,想排出个理想的榜单还真是困难。以前也整理过Intellij的快捷键,这次就按照我日常开发时的使用频率,简单分类列一下我最喜欢的十大快捷-神-键吧。1 智能提示Intellij首当其冲的当然就是Intelligence智能!基本的代码提示用Ctrl+Space,还有更...
2018-03-22 09:35:00
85
转载 nginx基本参数详解
运行用户user nobody;启动进程,通常设置成和cpu的数量相等worker_processes 1;全局错误日志及PID文件error_log logs/error.log;error_log logs/error.log notice;error_log logs/error.log info;pid logs/nginx.pid;工作模式及连接数上限eve...
2018-03-16 16:57:00
164
转载 SpringBoot注解大全
一、注解(annotations)列表@SpringBootApplication:包含了@ComponentScan、@Configuration和@EnableAutoConfiguration注解。其中@ComponentScan让spring Boot扫描到Configuration类并把它加入到程序上下文。@Configuration 等同于spring的XML配置文件...
2018-03-12 17:17:00
2019
转载 GIT笔记
Git笔记 Git介绍Git是分布式版本控制系统集中式VS分布式,SVN VS GitSVN和Git主要的区别在于历史版本维护的位置Git本地仓库包含代码库还有历史库,在本地的环境开发就可以记录历史而SVN的历史库存在于中央仓库,每次对比与提交代码都必须连接到中央仓库才能进行。这样的好处在于:自己可以在脱机环境查看开发的版本历史。多人开发时如果充当中央仓库的Git...
2018-03-12 10:43:00
76
转载 配置SSH密码登录
在客户端生成公钥: 1 ssh-keygen –t rsa生成的公钥默认位置在~/.ssh/目录把公钥上传到服务器端: 1 scp id_rsa.pub root@ip地址:文件保存路径 2 cat id_rsa.pub >> /root/.ssh/authorized_keys 追加到文件中 3 chmod 600 /root/.ssh/authorized_k...
2018-03-09 10:30:00
185
转载 ArrayList、Vector、HashMap、HashTable、HashSet的默认初始容量、加载因子、扩容增量、具体区别...
要讨论这些常用的默认初始容量和扩容的原因是:当底层实现涉及到扩容时,容器或重新分配一段更大的连续内存(如果是离散分配则不需要重新分配,离散分配都是插入新元素时动态分配内存),要将容器原来的数据全部复制到新的内存上,这无疑使效率大大降低。加载因子的系数小于等于1,意指 即当 元素个数 超过 容量长度*加载因子的系数 时,进行扩容。另外,扩容也是有默认的倍数的,不同的容器扩容情况不同。Li...
2018-03-07 13:42:00
124
转载 Spring boot临时文件目录报错
基本的错误信息如下: 1 2018-03-05 at 15:12:03 CST ERROR org.apache.juli.logging.DirectJDKLog 181 log - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request pr...
2018-03-05 15:44:00
493
转载 JAVA动态代理的全面深层理解
Java 动态代理机制的出现,使得 Java 开发人员不用手工编写代理类,只要简单地指定一组接口及委托类对象,便能动态地获得代理类。代理类会负责将所有的方法调用分派到委托对象上反射执行,在分派执行的过程中,开发人员还可以按需调整委托类对象及其功能,这是一套非常灵活有弹性的代理框架。通过阅读本文,读者将会对 Java 动态代理机制有更加深入的理解。本文首先从 Java 动态代理的运行机制和...
2018-03-02 11:19:00
109
转载 Mysql索引总结
定义:索引(Index)是帮助MySQL高效获取数据的数据结构。可以索引的本质:索引是数据结构。可以理解为”排好序的快速超找数据结构”,在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。优势:类似大学图书馆建书目索引,提高数据检索效率,降低数据库的IO成本。通过索引对数据进行...
2018-03-01 15:57:00
66
转载 Java中常见的比较器的实现方法
在Java中经常会涉及到对象数组的排序问题,那么就涉及到对象之间的比较问题。通常对象之间的比较可以从两个方面去看:第一个方面:对象的地址是否一样,也就是是否引用自同一个对象。这种方式可以直接使用“==“来完成。第二个方面:以对象的某一个属性的角度去比较。对于JDK8而言,有三种实现对象比较的方法:1、覆写Object类的equals()方法;2、继承Comparable接口,并实现com...
2018-03-01 14:06:00
160
转载 JAVA中列表,集合之间的区别
整体来看List,Set,Map都是实现了Collection接口的接口。重复性:List允许存在重复的元素,也就是说List中可以在不影响现有元素的值及其索引的同时插入新的重复元素。Set不允许存在重复的元素,Set集合都不允许插入重复元素。Map是一种以键值对形式存储元素的映射类型集合,对Map而言key(键)是唯一的,value(值)是可重复的。空值性:List允许任意数量...
2018-03-01 11:23:00
193
转载 线程与进程的区别联系
进程和线程的区别1.定义进程:具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位.线程:进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.2.关系一个线...
2018-03-01 10:02:00
60
转载 JAVA实现多线程的四种方式
JAVA多线程实现方式:1.继承Thread类(无返回值)2.实现Runnable接口(无返回值)3.实现Callable接口,通过FutureTask包装器来创建Threak线程(有返回值)4.使用ExecutorService,Callable,Future实现有返回结果的多线程。(有返回值)1.继承Thread类创建线程Thread本质就是实现了Ru...
2018-02-28 10:34:00
74
转载 动态代理的使用和实现机制
工作中很久没有接触动态代理,之前的学习也有些模糊,导致有些遗忘,这里记录下个人对动态代理的理解,如有读者发现问题多多指正吧。就java而言对于动态代理的支持多是以接口实现,其实现主要是通过java.lang.reflect.Proxy类,java.lang.reflect.InvocationHandler接口。Proxy类主要用于获取动态代理对象,InvocationHandler接...
2018-02-27 17:32:00
69
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人