- 博客(124)
- 收藏
- 关注
原创 Jenkins+SpringBoot持续集成案例
前提工作1、创建opt目录(所有东西安装在此)cd /mkdir /opt #jdk maven安装目录mkdir /opt/jar/helloworld #jar shell脚本目录2、获取安装包(Jenkins+JDK+Maven+shell脚本)链接:https://pan.baidu.com/s/1_QYGYHyJteR6WmLHxdrhwQ提取码:oove...
2019-07-25 21:43:37
444
转载 分布式锁--基于redis实现的分布式锁
前言分布式锁一般有三种实现方式:1. 数据库乐观锁;2. 基于Redis的分布式锁;3. 基于ZooKeeper的分布式锁。本篇博客将介绍第二种方式,基于Redis实现分布式锁。虽然网上已经有各种介绍Redis分布式锁实现的博客,然而他们的实现却有着各种各样的问题,为了避免误人子弟,本篇博客将详细介绍如何正确地实现Redis分布式锁。可靠性首先,为了确保分布式锁可用,我们至少要确保锁的...
2019-04-09 15:34:31
291
转载 SpringCloud实战3-Hystrix请求熔断与服务降级
我们知道大量请求会阻塞在Tomcat服务器上,影响其它整个服务.在复杂的分布式架构的应用程序有很多的依赖,都会不可避免地在某些时候失败.高并发的依赖失败时如果没有隔离措施,当前应用服务就有被拖垮的风险.Spring Cloud Netflix Hystrix就是隔离措施的一种实现,可以设置在某种超时或者失败情形下断开依赖调用或者返回指定逻辑,从而提高分布式系统的稳定性.生活中举个例子,...
2019-04-08 17:41:26
298
转载 redis面试总结
redis面试总结http://blog.youkuaiyun.com/guchuanyun111/article/category/6335900 (1)什么是redis?Redis是一个基于内存的高性能key-value数据库。 (有空再补充,有理解错误或不足欢迎指正)(2)Reids的特点Redis本质上是一个Key-Value类型的内存数据库,很像memc...
2019-04-02 11:39:38
184
原创 Alibaba阿里 RocketMQ入门实例(四种消息类型)
发送顺序消息public class ProducerClient { public static void main(String[] args) { Properties properties = new Properties(); // 您在控制台创建的 Group ID properties.put(PropertyKeyCon...
2019-04-02 11:06:22
1523
原创 Alibaba阿里 RocketMQ入门实例(订阅消息)
订阅方式消息队列 RocketMQ 支持以下两种订阅方式: 集群订阅:同一个 Group ID 所标识的所有 Consumer 平均分摊消费消息。 例如某个 Topic 有 9 条消息,一个 Group ID 有 3 个 Consumer 实例,那么在集群消费模式下每个实例平均分摊,只消费其中的 3 条消息。 // 集群订阅方式设置(不设置的情况下,默认为集群订阅方式)prop...
2019-04-02 10:52:31
1932
原创 Alibaba阿里 RocketMQ入门实例(消息发送)
发送普通消息(三种方式)阿里文档:https://help.aliyun.com/document_detail/29547.html?spm=a2c4g.11186623.6.566.1a264464JNC9ZT消息队列 RocketMQ 发送普通消息有三种实现方式:可靠同步发送、可靠异步发送、单向(Oneway)发送。 本文介绍了每种实现的原理、使用场景以及三种实现的异同,同时提供了代...
2019-04-02 10:46:58
1208
转载 Java中Lambda表达式的使用
Lambda表达式的语法基本语法:(parameters) -> expression或(parameters) ->{ statements; }下面是Java lambda表达式的简单例子:// 1. 不需要参数,返回值为 5 () -> 5 // 2. 接收一个参数(数字类型),返回其2倍的值 x -> 2 * x // 3. ...
2019-04-02 09:37:41
737
转载 SpringBoot整合RabbitMQ
一 RabbitMQ的介绍 RabbitMQ是消息中间件的一种,消息中间件即分布式系统中完成消息的发送和接收的基础软件.这些软件有很多,包括ActiveMQ(apache公司的),RocketMQ(阿里巴巴公司的,现已经转让给apache). 消息中间件的工作过程可以用生产者消费者模型来表示.即,生产者不断的向消息队列发送信息,而消费者从消息队列中消费信息.具体过程如下: ...
2019-03-20 17:26:59
142
转载 React + Dva + Antd + Umi 快速入门
https://blog.youkuaiyun.com/SCU_Cindy/article/details/82432971 使用Ant Design Pro,一个企业级开箱即用的中后台前端https://blog.youkuaiyun.com/m0_37136491/article/details/82222122
2019-01-15 22:42:49
1014
原创 Python小游戏飞机大战
1、游戏精灵、背景精灵、英雄精灵、敌机精灵、子弹精灵 import randomimport pygame#屏幕大小常量SCREEN_REAT=pygame.Rect(0,0,480,800)#帧率FRAME_RATE=60#定时器常量CREATE_ENEMY_EVENT=pygame.USEREVENT#发射子弹常量HERO_FIRE_EVENT=pygame.USER...
2018-12-26 09:34:32
518
1
转载 Git客户端(TortoiseGit)基本使用详解
1、 环境安装Git最新版下载地址:https://gitforwindows.org/ TortoiseGit,Git客户端,32/64位最新版及对应的语言包下载地址:https://tortoisegit.org/download/ 安装的方法,一直下一步就行,具体做法省略。 2、 配置 1. 首先,请选定一个存放Git项目的目录,这样管理方便. 如: D:\t...
2018-11-12 10:44:52
736
转载 互联网安全---DDOS攻击
首先我们说说ddos攻击方式,记住一句话,这是一个世界级的难题并没有解决办法只能缓解 DDoS(Distributed Denial of Service,分布式拒绝服务)攻击的主要目的是让指定目标无法提供正常服务,甚至从互联网上消失,是目前最强大、最难防御的攻击之一。这是一个世界级的难题并没有解决办法只能缓解. 按照发起的方式,DDoS可以简单分为三类。 第一类以力取胜,海量数...
2018-10-30 15:31:46
1256
转载 互联网安全--sql注入
大家早上好!今天由我给大家带来《web安全之SQL注入篇》系列晨讲,首先对课程进行简单介绍,SQL注入篇一共分为三讲: 第一讲:“纸上谈兵:我们需要在本地架设注入环境,构造注入语句,了解注入原理。”; 第二讲:“实战演练:我们要在互联网上随机对网站进行友情检测,活学活用,举一反三”; 第三讲:“扩展内容:挂马,提权,留门。此讲内容颇具危害性,不予演示。仅作...
2018-10-30 14:32:20
541
转载 互联网安全---XSS攻击
概述XSS攻击是Web攻击中最常见的攻击方法之一,它是通过对网页注入可执行代码且成功地被浏览器执行,达到攻击的目的,形成了一次有效XSS攻击,一旦攻击成功,它可以获取用户的联系人列表,然后向联系人发送虚假诈骗信息,可以删除用户的日志等等,有时候还和其他攻击方式同时实施比如SQL注入攻击服务器和数据库、Click劫持、相对链接劫持等实施钓鱼,它带来的危害是巨大的,是web安全的头号大...
2018-10-30 14:14:43
239
转载 spring 事务传播行为实例分析
https://blog.youkuaiyun.com/pml18710973036/article/details/58607148Spring事务传播行为:spring特有的事务传播行为,spring支持7种事务传播行为,确定客户端和被调用端的事务边界(说得通俗一点就是多个具有事务控制的service的相互调用时所形成的复杂的事务边界控制)下图所示为7钟事务传播机制o 传播行为...
2018-10-08 21:25:07
857
原创 Java高并发程序设计---入门
为什么需要并行单核CPU性能瓶颈 并行计算还出于业务模型的需要并不是为了提高系统性能,而是确实在业务上需要多个执行单元。 – 比如HTTP服务器,为每一个Socket连接新建一个处理线程 – 让不同线程承担不同的业务工作 (主线程 gc线程) – 简化任务调度并行计算的试用的领域 图像处理 服务器端编程几个重要的概念 同步(synchronous)和异步(asynch...
2018-10-01 17:03:42
668
原创 Java正则表达式
Java 正则表达式正则表达式定义了字符串的模式。正则表达式可以用来搜索、编辑或处理文本。正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。 java.util.regex 包主要包括以下三个类Pattern 类: pattern 对象是一个正则表达式的编译表示。Pattern 类没有公共构造方法。要创建一个 Pattern 对象,你必须首先调用其公共静态编...
2018-09-30 22:46:26
154
转载 从零手写IOC
概述IOC (Inversion of Control) 控制反转。熟悉Spring的应该都知道。那么具体是怎么实现的呢?下面我们通过一个例子说明。1. Component注解定义package cn.com.infcn.annotation;import java.lang.annotation.ElementType;import java.lang.annotation.R...
2018-09-11 13:27:25
176
原创 Eureka注册中心与服务端集群
一、注册中心1、pom文件<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache...
2018-09-10 23:55:18
960
原创 Eureka实现微服务的调用
1、版本2、Eureka的注册中心 (1)、pom.xml<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0...
2018-09-10 22:34:24
3643
原创 mybatis更新Blob类型字段要用updateByPrimaryKeyWithBLOBs
不会报错也不会更新desc 业务desc数据库类型为Blob 查看源码解决方案:
2018-09-08 20:11:06
2959
转载 Linux的进程管理
0.进程处理方式standalone 独立运行xinetd 进程托管atd、crond计划任务 (1)独立运行: 一直在独立运行,比如apache、nginx服务器,一直在监听80端口的请求,有了请求可以马上响应,由于一直在监听所以一直在占用CPU资源。服务启动后一直在系统驻留,等待客户访问并能很快应答。[root@VM_0_12_centos ~]# n...
2018-09-05 13:05:24
381
原创 Linux用户管理
一、用户管理的配置文件1、配置文件(1)、/etc/passwd的文件格式(2)、用户类型(3)、伪用户一、与系统相关:比如有些伪用户是与系统的某些操作相关(比如关机,重启等等,会调用伪用户的身份)。在linux里面,任何一个进程操作都要有一个用户身份,这就需要调用伪用户。二、与程序服务相关:比如apache,启动之后也要对应一个伪用户。伪用户的最大...
2018-09-05 10:52:30
9937
原创 Linux基础----常用命名(2)
一、权限管理命令1、chgrp2、unmask022 -> 7-0 7-2 7-2=755 000->7-0 7-0 7-0 =777 安全机制 都没有可执行权限 所有 -rw -rw -rw二、文件搜索命名1、which2、find3、locate4、updatedb5、updatedb6...
2018-09-03 17:45:05
305
原创 Linux基础----常用命名(1)
一、命名规则1、除了/之外,所用的都合法2、有些字符最好别使用 如空格符、制表符、退格符等3、文件不要用.开头4、区分大小写格式二、文件处理命令1、ls 图例ls -a 查看所有文件(包括隐藏文件)ls -l 查看详细信息ls -d查看目录信息2、cd 图例cd / cd ..3 、p...
2018-09-03 12:44:42
806
转载 Vue基础入门---vuex
第1节:初出茅庐 来个小Demo引入vuex 1.利用npm包管理工具,进行安装 vuex。在控制命令行中输入下边的命令就可以了。npm n install vuex --save需要注意的是这里一定要加上 –save,因为你这个包我们在生产环境中是要使用的。2.新建一个vuex文件夹(这个不是必须的),并在文件夹下新建store.js文件,文件中引入我们的vue和vuex。...
2018-09-02 17:35:36
487
转载 Vue基础入门---Vue-router
简介: 由于Vue在开发时对路由支持的不足,后来官方补充了vue-router插件,它在Vue的生态环境中非常重要,在实际开发中只要编写一个页面就会操作vue-router。要学习vue-router就要先知道这里的路由是什么?这里的路由并不是指我们平时所说的硬件路由器,这里的路由就是SPA(单页应用)的路径管理器。再通俗的说,vue-router就是我们WebApp的链接路径管理系统。有的小...
2018-09-02 17:23:24
2022
2
转载 Vue基础入门---Vue-cli 教程
Vue-cli是vue官方出品的快速构建单页应用的脚手架,如果你是初次尝试Vue,我不建议使用,推荐你老老实实用普通引入javascript文件的方式进行学习(你可以去看我的vue视频教程的1-4季),这里牵扯的东西很多,有webpack,npm,nodejs,babel等等,很容易产生从入门就放弃的思想。Vue-cli一、安装vue-cli安装vue-cli的前提是你已经安装了npm...
2018-09-02 16:56:57
43240
9
转载 Vue基础入门----实例和内置组件
概述:实例就是在构造器外部操作构造器内部的属性选项或者方法,就叫做实例?实例的作用就是给原生的或者其他javascript框架一个融合的接口或者说是机会,让Vue和其他框架一起使用。实例入门-实例属性Vue和Jquery.js一起使用1、下载并引入jquery框架下载可以去官网进行下载,我这里使用的版本是3.1.1,下载好后在需要的页面引入就可以了。当然你还有很多其它的方法引入jq...
2018-09-02 16:43:23
346
转载 Vue基础----选项
propsData Option 全局扩展的数据传递propsData 不是和属性有关,他用在全局扩展时进行传递数据。先回顾一下全局扩展的知识,作一个的扩展标签出来。实际我们并比推荐用全局扩展的方式作自定义标签,我们学了组件,完全可以使用组件来做,这里只是为了演示propsData的用法。代码如下:<!DOCTYPE html><html lang="en"&...
2018-09-02 16:34:37
352
转载 Vue基础----全局API(二)
Vue.directive 自定义指令一、什么是全局API?全局API并不在构造器里,而是先声明全局变量或者直接在Vue上定义一些新功能,Vue内置了一些全局API,比如我们今天要学习的指令Vue.directive。说的简单些就是,在构造器外部用Vue提供给我们的API函数来定义新的功能。二、Vue.directive自定义指令我们在第一季就学习了内部指令,我们也可以定义一些属于...
2018-09-02 16:23:54
312
转载 Vue基础----内部指令
编写第一个HelloWorld代码:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <script type="text/javascript" src="../assets/js/vue.js"&
2018-09-02 15:57:28
981
1
转载 java数据结构-----图(邻接矩阵和邻接表)
https://blog.youkuaiyun.com/xxniuren/article/details/52218211JAVA数据结构之图1、图的介绍和原理1.1、图的基本概念图是由顶点集(VertexSet)和边集(EdgeSet)组成,针对图G,顶点集和边集分别记为V(G)和E(G)。依据图的边集是否为有向,可把图分为有向图和无向图,根据图是否有权重,可以分为有权图和无权图。...
2018-09-01 19:03:23
4132
转载 java数据结构与算法----平衡二叉树(AVL树)的设计与实现
转载至:https://blog.youkuaiyun.com/javazejian/article/details/53892797上一篇博文中,我们详细地分析了树的基本概念以及二叉查找树的实现过程,基于二叉查找树的特性,即对于树种的每个结点T(T可能是父结点),它的左子树中所有项的值小T中的值,而它的右子树中所有项的值都大于T中的值。这意味着该树所有的元素可以用某种规则进行排序(取决于Comparab...
2018-09-01 18:40:39
175
转载 Java数据结构---树与二叉树
转载至: https://blog.youkuaiyun.com/javazejian/article/details/53727333树博文总算赶上这周发布了,上篇我们聊完了递归,到现在相隔算挺久了,因为树的内容确实不少,博主写起来也比较费时费脑,一篇也无法涵盖树所有内容,所以后续还会用2篇左右的博文来分析其他内容大家就持续关注吧,而本篇主要了解的知识点如下(还是蛮多的!): 树的基本概...
2018-09-01 17:27:34
469
原创 Java算法与数据结构--希尔排序
1.希尔排序的产生希尔排序是基于插入排序的,插入排序步长为1的,而插入排序的步长是计算出来的。(学习希尔排序之前需要了解插入排序)。2.插入排序的缺陷步长为1的插入排序,必须得移动多次,举个栗子,假如一个很小的数据在考右侧的位置上,那么要讲该数据排序到正确的位置上,则所有中间数据都需要向右移动一次。3.希尔排序的优点希尔排序通过加大插入排序中元素之间的间隔(步长),并对这些间隔...
2018-08-31 19:39:43
205
转载 Java虚拟机----深入JVM字节码执行引擎
我们都知道,在当前的Java中(1.0)之后,编译器讲源代码转成字节码,那么字节码如何被执行的呢?这就涉及到了JVM的字节码执行引擎,执行引擎负责具体的代码调用及执行过程。就目前而言,所有的执行引擎的基本一致:输入:字节码文件 处理:字节码解析 输出:执行结果。物理机的执行引擎是由硬件实现的,和物理机的执行过程不同的是虚拟机的执行引擎由于自己实现的。运行时候的栈结构每一个线程都有...
2018-08-30 20:24:46
152
转载 JVM虚拟机---Class文件的结构
Class文件是一组以8位字节为基础单位的二进制流,包含多个数据项目(数据项目的顺序,占用的字节数均由规范定义),各个数据项目严格按照顺序紧凑的排列在Class文件中,不包含任何分隔符,使得整个Class文件中存储的内容几乎全部都是程序运行的必要数据,没有空隙。当遇到需要占用超过8位字节以上空间的数据项目时,会按照高位在前的方式分割为多个8位字节进行存储数据项目分为2种基本数据类型(以及由这两...
2018-08-30 18:54:59
218
转载 JVM虚拟机---JVM锁机制
1.线程安全如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码。如果每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。----使用锁,维护计数器的串行访问与安全性 import java.util.ArrayList;import java.util.List;public class Test...
2018-08-30 18:45:05
246
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人