- 博客(117)
- 资源 (1)
- 收藏
- 关注
转载 单点登录(SSO),从原理到实现
一、单系统登录机制1、http无状态协议web应用采用browser/server架构,http作为通信协议。http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关联,这个过程用下图说明,三次请求/响应对之间没有任何联系但这也同时意味着,任何用户都能通过浏览器访问服务器资源,如果想保护服务器的某些资源,必须限制浏览器请求;要限制浏览器请求,必须鉴别浏...
2019-10-18 10:24:41
361
转载 细说Spring——AOP详解(AOP概览)
一、对AOP的初印象首先先给出一段比较专业的术语(来自百度):在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从...
2019-10-09 15:10:19
336
转载 docker容器和镜像区别
这篇文章希望能够帮助读者深入理解Docker的命令,还有容器(container)和镜像(image)之间的区别,并深入探讨容器和运行中的容器之间的区别。当我对Docker技术还是一知半解的时候,我发现理解Docker的命令非常困难。于是,我花了几周的时间来学习Docker的工作原理,更确 切地说,是关于Docker统一文件系统(the union file system)的知识,...
2019-09-19 15:36:08
374
原创 ELK
切换java版本 sudoupdate-alternatives--configjava亿级 ELK 日志平台构建实践下载Elastic Searchwgethttps://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.3.0-linux-x86_64.tar.gz启动:bin/elasti...
2019-09-05 15:24:57
144
转载 vim替换转大小写方法
如何在Vim的正则表达式替换中使用字母大小写转换? 比如有下面这段文字: every day 1 想将两个单词都转变为全大写,可以类似下面的vim最下行命令:Vim代码:s/\(.*\)\(.*\)/\U\1\2/ 转变结果为: EVERY DAY 相关的转义序列还有'\u','\...
2019-09-05 14:25:52
2944
原创 c++多线程
#include<iostream>#include<stdio.h>#include<string.h>#include<sstream>#include<unistd.h>#include<pthread.h>using namespace std;pthread_t thread[2];pthread...
2019-08-23 15:22:31
168
转载 kafka详细原理总结
Kafka是最初由Linkedin公司开发,是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于hadoop的批处理系统、低延迟的实时系统、storm/Spark流式处理引擎,web/nginx日志、访问日志,消息服务等等,用scala语言编写,Linkedin于...
2019-08-16 12:15:01
419
转载 Kafka
现在它已被多家不同类型的公司作为多种类型的数据管道和消息系统使用。活动流数据是几乎所有站点在对其网站使用情况做报表时都要用到的数据中最常规的部分。活动数据包括页面访问量(Page View)、被查看内容方面的信息以及搜索情况等内容。这种数据通常的处理方式是先把各种活动以日志的形式写入某种文件,然后周期性地对这些文件进行统计分析。运营数据指的是服务器的性能数据(CPU、...
2019-08-16 12:08:17
368
转载 redis发布/订阅模式
本系列已经过半了,这一篇我们来看看redis好玩的发布订阅模式,其实在很多的MQ产品中都存在这样的一个模式,我们常听到的一个例子就是邮件订阅的场景,什么意思呢,也就是说100个人订阅了你的博客,如果博主发表了文章,那么100个人就会同时收到通知邮件,除了这个场景还能找到其他场景么,当然有啦,你想想,如果你要在内存里面做一个读写分离的程序,为了维持数据的完整性,你是不是需要保证在写入的时候,也要分发...
2019-08-11 23:27:00
578
转载 Redis订阅与发布原理
记录下来以后方便回忆,需要时随时翻阅Redis 订阅与发布原理client->pubsub_channels 是客户端维护的一个以dict结构的维护的订阅频道哈希表,VAL是NULL,不需要值。server->pubsub_channels 是服务端维护的一个以dict结构的维护的订阅频道哈希表,VAL是以client维护的双向链表adlist。一、订阅订阅流程:...
2019-08-11 23:13:30
1233
转载 2019年最新版--Java 最常见的 200+ 面试题汇总
适合人群:1.想要面试的初/中/高级 Java 程序员2.想要查漏补缺的人3.想要不断完善和扩充自己 Java技术栈的人4.原本就掌握了技术却不知道怎么表达的人5.有上进心,也愿意学习的人6.Java面试官说了这么多,直奔主题,这套面试必备的《Java 最常见 200+ 面试题全解析》到底优质在哪?这份面试题总内容包含了十九个模块:Java 基础、容器、多线程、反射、对象拷贝、...
2019-08-10 16:51:04
826
转载 什么是JAVA内存模型
尝试一句话概括java内存模型:保证多线程之间操作共享变量的正确性。synchronization finalvolatile在知识星球中,有个小伙伴提了一个问题:有一个关于JVM名词定义的问题,说”JVM内存模型“,有人会说是关于JVM内存分布(堆栈,方法区等)这些介绍,也有地方说(深入理解JVM虚拟机)上说Java内存模型是JVM的抽象模型(主内存,本地内存)。这两个到底怎么区...
2019-08-09 18:58:15
223
原创 JVM内存结构、内存模型、线程安全
什么是JAVA内存模型深入理解JVM-内存模型(jmm)和GCjava中JVM的原理java线程安全问题-原子性和锁
2019-08-09 17:59:03
477
转载 redis-pipeline
优点将命令批量传给server端,执行完毕后一次性返回结果,节省网络开销时延。管道(pipeline)可以一次性发送多条命令并在执行完后一次性将结果返回,pipeline通过减少客户端与redis的通信次数来实现降低往返延时时间,而且Pipeline 实现的原理是队列,而队列的原理是时先进先出,这样就保证数据的顺序性。 Pipeline 的默认的同步的个数为53个,也就是说arges中累加...
2019-08-09 10:53:17
463
转载 redis持久化的几种方式及区别
1、前言Redis是一种高级key-value数据库。它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富。有字符串,链表,集 合和有序集合。支持在服务器端计算集合的并,交和补集(difference)等,还支持多种排序功能。所以Redis也可以被看成是一个数据结构服务 器。Redis的所有数据都是保存在内存中,然后不定期的通过异步方式保存到磁盘上(这称为“半持久化模式”...
2019-08-07 17:57:08
1852
转载 什么是线程阻塞?为什么会出现线程阻塞?
什么是线程阻塞?在某一时刻某一个线程在运行一段代码的时候,这时候另一个线程也需要运行,但是在运行过程中的那个线程执行完成之前,另一个线程是无法获取到CPU执行权的(调用sleep方法是进入到睡眠暂停状态,但是CPU执行权并没有交出去,而调用wait方法则是将CPU执行权交给另一个线程),这个时候就会造成线程阻塞。为什么会出现线程阻塞?1.睡眠状态:当一个线程执行代码的时候调用了slee...
2019-08-07 11:24:32
11293
7
原创 redis安装使用
docker-redis安装:docker pull redisredis启动:docker run -p 6379:6379 -d redis:latest redis-serverdocker run -it --name redis -p 6379:6379 -v $PWD/redis/data:/data -d redis:latest redis-server --ap...
2019-08-06 17:19:47
233
转载 分布式锁解决并发的三种实现方式
在很多场景中,我们为了保证数据的最终一致性,需要很多的技术方案来支持,比如分布式事务、分布式锁等。有的时候,我们需要保证一个方法在同一时间内只能被同一个线程执行。在单机环境中,Java中其实提供了很多并发处理相关的API,但是这些API在分布式场景中就无能为力了。也就是说单纯的Java Api并不能提供分布式锁的能力。所以针对分布式锁的实现目前有多种方案:分布式锁一般有三种实现方...
2019-07-26 10:59:40
960
转载 UML序列图总结
转载自:http://blog.youkuaiyun.com/tianhai110/article/details/6361338序列图主要用于展示对象之间交互的顺序。序列图将交互关系表示为一个二维图。纵向是时间轴,时间沿竖线向下延伸。横向轴代表了在协作中各独立对象的类元角色。类元角色用生命线表示。当对象存在时,角色用一条虚线表示,当对象的过程处于激活状态时,生命线是一个双道线。消息用从一个对
2013-12-06 15:31:07
652
转载 php中抽象类和接口的概念和区别
//抽象类的定义:abstract class ku{ //定义一个抽象类 abstract function kx(); ......}function aa extends ku{ //实现抽象类的方法 function kx(){ echo 'sdsf'; }}//使用方法$aa=new aa;$aa->kx();//1.定义一些方法,子
2013-11-26 17:58:58
865
转载 Python正则表达式指南
本文介绍了Python对于正则表达式的支持,包括正则表达式基础以及Python正则表达式标准库的完整介绍及使用示例。本文的内容不包括如何编写高效的正则表达式、如何优化正则表达式,这些主题请查看其他教程。注意:本文基于Python2.4完成;如果看到不明白的词汇请记得百度谷歌或维基,whatever。尊重作者的劳动,转载请注明作者及原文地址 >.html1. 正则表达式基础
2013-04-06 13:18:17
644
转载 常量指针与指针常量
常量指针,就是指向常量的指针,关键字 const 出现在 * 左边,表示指针所指向的地址的内容是不可修改的,但指针自身可变。指针常量,指针自身是一个常量,关键字 const 出现在 * 右边,表示指针自身不可变,但其指向的地址的内容是可以被修改的。例: 常量指针: const char* ptr = “hello” 指针常量: char* const
2013-03-09 14:30:32
639
转载 MySql常用命令总结
1:使用SHOW语句找出在服务器上当前存在什么数据库:mysql> SHOW DATABASES;2:2、创建一个数据库MYSQLDATAmysql> CREATE DATABASE MYSQLDATA;3:选择你所创建的数据库mysql> USE MYSQLDATA; (按回车键出现Database changed 时说明操作成功!)4:查看现在的数据库中存在什么表m
2012-12-05 13:55:36
460
原创 使用UDP的情况
UDP首部只有8个字节长。1 性能比完整性更为重要的数据。典型的例子是多媒体应用。2 简短愉快的数据交换。没有必要像TCP那样建立一条连接,不需担心数据到达的失序、设备之间的流控制以及诸如此类的问题。这是使用UDP最常见的情况,但除此之外还有其他原因。例如,如果一个应用程序需要多播或广播数据,则它必须使用UDP,因为TCP仅支持两个设备之间的单播通信。要点:在下列两种情况下
2012-11-26 19:22:55
1123
原创 GCC-C语言执行过程
GCC-C语言执行过程:1预处理: gcc -E hello.c -o hello.i2编译: gcc -S hello.c -o hello.s3汇编: gcc -c hello.s -o hello.o4链接: gcc hello.o -o hello也可以直接这样:gcc -o hello hello.c生成的hello可
2012-11-22 22:48:30
2973
转载 教你如何迅速秒杀掉:99%的海量数据处理面试题
教你如何迅速秒杀掉:99%的海量数据处理面试题作者:July出处:结构之法算法之道blog前言 一般而言,标题含有“秒杀”,“99%”,“史上最全/最强”等词汇的往往都脱不了哗众取宠之嫌,但进一步来讲,如果读者读罢此文,却无任何收获,那么,我也甘愿背负这样的罪名,:-),同时,此文可以看做是对这篇文章:十道海量数据处理面试题与十个方法大总结的一般抽象性总结。
2012-10-26 23:52:57
910
原创 腾讯2012.9.23校园招聘会笔试题
1 表的设计最合理 数据库里面 一般是 学生,学科,分数 分开放。 因此A合理2 数据库系统产生不一致的根本原因 数据库完整性是为了保证由授权用户对数据库所做的修改不会影响数据一致性的损失 觉得C合理3 15L和27升两个杯子可以精确装多少水 15和27 升水 可以装出 3升水 27 + 3 +
2012-10-26 00:27:07
2625
1
转载 腾讯2013年校园招聘笔试,其中的两道关于fork()的题目
今天在机缘巧合下参加了腾讯2013年校园招聘笔试,其中有一道有关fork()的题目比较经典,转载网上一篇文章,原文如下:前两天有人问了个关于Unix的fork()系统调用的面试题,这个题正好是我大约十年前找工作时某公司问我的一个题,我觉得比较有趣,写篇文章与大家分享一下。这个题是这样的:题目:请问下面的程序一共输出多少个“-”?12345
2012-10-26 00:13:41
1157
1
转载 临界区,互斥量,信号量,事件的区别
四种进程或线程同步互斥的控制方法 1、临界区:通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。2、互斥量:为协调共同对一个共享资源的单独访问而设计的。3、信号量:为控制一个具有有限数量用户资源而设计。4、事 件:用来通知线程有一些事件已发生,从而启动后继任务的开始。 临界区(Critical Section)保证在某一时刻只
2012-10-20 23:25:46
579
转载 判断单链表是否存在环,判断两个链表是否相交问题详解
有一个单链表,其中可能有一个环,也就是某个节点的next指向的是链表中在它之前的节点,这样在链表的尾部形成一环。问题:1、如何判断一个链表是不是这类链表?2、如果链表为存在环,如何找到环的入口点?解答:一、判断链表是否存在环,办法为:设置两个指针(fast, slow),初始值都指向头,slow每次前进一步,fast每次前进二步,如果链表存在环,则fas
2012-10-20 22:48:22
537
原创 最长不重复子串+质因数分解算法
#include#include/* 求最长不重复子串 *//************************************************************************/void lnorepstr(char* s){ char A[26
2012-10-13 20:58:09
914
转载 《编程之美》 4.11 扫雷游戏的概率
实验室的峰哥近来在找工作之余经常翻看一本叫做编程之美的算法习题集. 昨天等班车时顺手拿来浏览, 看到最后一题“挖雷游戏的概率”没附答案, 却有一则脚注云“此题适合MATLAB用户解答”, 颇感有趣. 题目说, 一局16×16的扫雷游戏刚开始, 只翻开了两格, 分别显示数字1和2, 如下图所示(只画出了3×5的局部示意图). 设地雷总数从10逐渐增加到240, 请分别作出图中A, B, C三处为
2012-09-15 16:21:37
1857
转载 《编程之美》 3.10 分层遍历二叉树
给定一颗二叉树,要求按分层遍历该二叉树,即从上到下按层次访问该二叉树(每一层将单独输出一行),每一行要求访问的顺序是从左到右。《编程之美》中有递归和非递归的解法。递归解法的思路是,假设要求访问二叉树中第K层的节点,那么可以把它转换成访问以该二叉树根节点的左右节点为根的两颗左右子树的第K-1层的节点。依次递归下面程序是输出第K层的节点int PrintNodeAtLe
2012-09-13 19:46:04
726
原创 创建二叉树(递归)
非递归创建二叉树,需要用到栈,的确太烦了。这里只给出递归创建二叉树的方法。#include "stdafx.h"#includeusing namespace std;typedef struct BiTreeNode{ char data; BiTreeNode* left; BiTreeNode* right;}BiTreeNode,*BiTree;//均为先序创建,即
2012-09-13 11:06:42
1165
转载 《编程之美》 3.8 求二叉树中节点的最大距离
问题定义如果我们把二叉树看成一个图,父子节点之间的连线看成是双向的,我们姑且定义"距离"为两节点之间边的个数。写一个程序求一棵二叉树中相距最远的两个节点之间的距离。书上的解法书中对这个问题的分析是很清楚的,我尝试用自己的方式简短覆述。计算一个二叉树的最大距离有两个情况:情况A: 路径经过左子树的最深节点,通过根节点,再到右子树的最深节点。情况B: 路径不穿过根节点,而是
2012-09-12 20:22:39
624
原创 用两个队列实现栈
程序员面试精选100题(18)给出了用两个栈实现队列的方法,这种方法不再重述,这里将给出用两个队列实现栈的方法。代码清单如下:#include#include#include#includeusing namespace std;templateclass stack{public: stack(){} ~stack(){} void push(T x); T p
2012-09-12 19:54:38
652
转载 微软面试100题(含全部答案)
引言 无私分享造就开源的辉煌。 今是二零一一年十月十三日,明日14日即是本人刚好开博一周年。在一周年之际,特此分享出微软面试全部100题答案的完整版,以作为对本博客所有读者的回馈。 一年之前的10月14日,一个名叫July 的人在一个叫csdn的论坛上开帖分享微软等公司数据结构+算法面试100题,自此,与上千网友一起做,一起思考,一起解答这些面试题目,最终成就了
2012-09-11 21:56:56
7308
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人